@pwrdrvr/microapps-cdk 0.2.11 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +2 -2
- package/changelog.md +1 -1
- package/lib/MicroApps.js +1 -1
- package/lib/MicroAppsAPIGwy.js +1 -1
- package/lib/MicroAppsCF.js +1 -1
- package/lib/MicroAppsEdgeToOrigin.js +3 -3
- package/lib/MicroAppsS3.js +1 -1
- package/lib/MicroAppsSvcs.js +1 -1
- package/lib/MicroAppsTable.js +1 -1
- package/lib/microapps-edge-to-origin/index.js +97 -0
- package/lib/microapps-edge-to-origin/index.js.map +7 -0
- package/package.json +1 -1
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../node_modules/source-map/lib/base64.js", "../../../../node_modules/source-map/lib/base64-vlq.js", "../../../../node_modules/source-map/lib/util.js", "../../../../node_modules/source-map/lib/array-set.js", "../../../../node_modules/source-map/lib/mapping-list.js", "../../../../node_modules/source-map/lib/source-map-generator.js", "../../../../node_modules/source-map/lib/binary-search.js", "../../../../node_modules/source-map/lib/quick-sort.js", "../../../../node_modules/source-map/lib/source-map-consumer.js", "../../../../node_modules/source-map/lib/source-node.js", "../../../../node_modules/source-map/source-map.js", "../../../../node_modules/buffer-from/index.js", "../../../../node_modules/source-map-support/source-map-support.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-node/node_modules/tslib/tslib.js", "../../../../node_modules/tslib/tslib.js", "../../../../node_modules/@aws-sdk/property-provider/dist-cjs/ProviderError.js", "../../../../node_modules/@aws-sdk/property-provider/dist-cjs/CredentialsProviderError.js", "../../../../node_modules/@aws-sdk/property-provider/dist-cjs/chain.js", "../../../../node_modules/@aws-sdk/property-provider/dist-cjs/fromStatic.js", "../../../../node_modules/@aws-sdk/property-provider/dist-cjs/memoize.js", "../../../../node_modules/@aws-sdk/property-provider/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/credential-provider-env/dist-cjs/fromEnv.js", "../../../../node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/node_modules/tslib/tslib.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getHomeDir.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getProfileName.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/normalizeConfigFile.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/parseIni.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/slurpFile.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/loadSharedConfigFiles.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/parseKnownFiles.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/types.js", "../../../../node_modules/@aws-sdk/shared-ini-file-loader/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/httpRequest.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/ImdsCredentials.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/RemoteProviderInit.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/remoteProvider/retry.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/fromContainerMetadata.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/node-config-provider/dist-cjs/fromEnv.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/node-config-provider/dist-cjs/fromSharedConfigFiles.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/node-config-provider/dist-cjs/fromStatic.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/node-config-provider/dist-cjs/configLoader.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/node_modules/@aws-sdk/node-config-provider/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/querystring-parser/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/url-parser/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/Endpoint.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/EndpointConfigOptions.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/EndpointMode.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/config/EndpointModeConfigOptions.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/utils/getInstanceMetadataEndpoint.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/utils/getExtendedInstanceMetadataCredentials.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/utils/staticStabilityProvider.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/fromInstanceMetadata.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/types.js", "../../../../node_modules/@aws-sdk/credential-provider-imds/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveCredentialSource.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveAssumeRoleCredentials.js", "../../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/isSsoProfile.js", "../../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/deserializerMiddleware.js", "../../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/serializerMiddleware.js", "../../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/serdePlugin.js", "../../../../node_modules/@aws-sdk/middleware-serde/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/middleware-stack/dist-cjs/MiddlewareStack.js", "../../../../node_modules/@aws-sdk/middleware-stack/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/client.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/command.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/parse-utils.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/date-utils.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/defaults-mode.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/emitWarningIfUnsupportedVersion.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/exceptions.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/extended-encode-uri-component.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/get-array-if-single-item.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/get-value-from-text-node.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/lazy-json.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/ser-utils.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/split-every.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/smithy-client/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/models/SSOServiceException.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/models/models_0.js", "../../../../node_modules/@aws-sdk/protocol-http/dist-cjs/httpHandler.js", "../../../../node_modules/@aws-sdk/protocol-http/dist-cjs/httpRequest.js", "../../../../node_modules/@aws-sdk/protocol-http/dist-cjs/httpResponse.js", "../../../../node_modules/@aws-sdk/protocol-http/dist-cjs/isValidHostname.js", "../../../../node_modules/@aws-sdk/protocol-http/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/protocols/Aws_restJson1.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/GetRoleCredentialsCommand.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/ListAccountRolesCommand.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/ListAccountsCommand.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/LogoutCommand.js", "../../../../node_modules/@aws-sdk/util-config-provider/dist-cjs/booleanSelector.js", "../../../../node_modules/@aws-sdk/util-config-provider/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/NodeUseFipsEndpointConfigOptions.js", "../../../../node_modules/@aws-sdk/util-middleware/dist-cjs/normalizeProvider.js", "../../../../node_modules/@aws-sdk/util-middleware/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveCustomEndpointsConfig.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/utils/getEndpointFromRegion.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveEndpointsConfig.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/config.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/isFipsRegion.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/getRealRegion.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/resolveRegionConfig.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionConfig/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/PartitionHash.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/RegionHash.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getHostnameFromVariants.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getResolvedHostname.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getResolvedPartition.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getResolvedSigningRegion.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/getRegionInfo.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/regionInfo/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/config-resolver/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/middleware-content-length/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js", "../../../../node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/config.js", "../../../../node_modules/@aws-sdk/service-error-classification/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/service-error-classification/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/DefaultRateLimiter.js", "../../../../node_modules/uuid/dist/rng.js", "../../../../node_modules/uuid/dist/regex.js", "../../../../node_modules/uuid/dist/validate.js", "../../../../node_modules/uuid/dist/stringify.js", "../../../../node_modules/uuid/dist/v1.js", "../../../../node_modules/uuid/dist/parse.js", "../../../../node_modules/uuid/dist/v35.js", "../../../../node_modules/uuid/dist/md5.js", "../../../../node_modules/uuid/dist/v3.js", "../../../../node_modules/uuid/dist/v4.js", "../../../../node_modules/uuid/dist/sha1.js", "../../../../node_modules/uuid/dist/v5.js", "../../../../node_modules/uuid/dist/nil.js", "../../../../node_modules/uuid/dist/version.js", "../../../../node_modules/uuid/dist/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/defaultRetryQuota.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/delayDecider.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/retryDecider.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/StandardRetryStrategy.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/AdaptiveRetryStrategy.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/configurations.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/omitRetryHeadersMiddleware.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/retryMiddleware.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/types.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/middleware-retry/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/configurations.js", "../../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/user-agent-middleware.js", "../../../../node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/is-array-buffer/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-buffer-from/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/hash-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-config-provider/dist-cjs/fromEnv.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-config-provider/dist-cjs/fromSharedConfigFiles.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-config-provider/dist-cjs/fromStatic.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-config-provider/dist-cjs/configLoader.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-config-provider/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-uri-escape/dist-cjs/escape-uri.js", "../../../../node_modules/@aws-sdk/util-uri-escape/dist-cjs/escape-uri-path.js", "../../../../node_modules/@aws-sdk/util-uri-escape/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/querystring-builder/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/get-transformed-headers.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/set-connection-timeout.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/set-socket-timeout.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/write-request-body.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/node-http-handler.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/node-http2-handler.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/stream-collector/collector.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/stream-collector/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/node-http-handler/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-base64-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-body-length-node/dist-cjs/calculateBodyLength.js", "../../../../node_modules/@aws-sdk/util-body-length-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/is-crt-available.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-utf8-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/endpoints.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/defaultsModeConfig.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/resolveDefaultsModeConfig.js", "../../../../node_modules/@aws-sdk/client-sso/node_modules/@aws-sdk/util-defaults-mode-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/SSOClient.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/SSO.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/commands/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/models/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/Interfaces.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/ListAccountRolesPaginator.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/ListAccountsPaginator.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/pagination/index.js", "../../../../node_modules/@aws-sdk/client-sso/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/resolveSSOCredentials.js", "../../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/validateSsoProfile.js", "../../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/fromSSO.js", "../../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/types.js", "../../../../node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveSsoCredentials.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveStaticCredentials.js", "../../../../node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js", "../../../../node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js", "../../../../node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveWebIdentityCredentials.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/resolveProfileData.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/fromIni.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-process/node_modules/tslib/tslib.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-process/dist-cjs/getValidatedProcessCredentials.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-process/dist-cjs/resolveProcessCredentials.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-process/dist-cjs/fromProcess.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-node/dist-cjs/remoteProvider.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-node/dist-cjs/defaultProvider.js", "../../../microapps-edge-to-origin/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-hex-encoding/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/constants.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/credentialDerivation.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/getCanonicalHeaders.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/getCanonicalQuery.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/getPayloadHash.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/headerUtil.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/cloneRequest.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/moveHeadersToQuery.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/prepareRequest.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/utilDate.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/SignatureV4.js", "../../../../node_modules/@aws-sdk/signature-v4/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/tslib/tslib.js", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-browser/src/isEmptyData.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-browser/src/constants.ts", "../../../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js", "../../../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js", "../../../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js", "../../../../node_modules/@aws-sdk/util-locate-window/dist-cjs/index.js", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts", "../../../../node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../../../../node_modules/@aws-crypto/util/src/isEmptyData.ts", "../../../../node_modules/@aws-crypto/util/src/numToUint8.ts", "../../../../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../../../../node_modules/@aws-crypto/util/src/index.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-js/src/constants.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-js/src/index.ts", "../../../../node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.js", "../../../../node_modules/@aws-crypto/supports-web-crypto/src/supportsWebCrypto.ts", "../../../../node_modules/@aws-crypto/supports-web-crypto/src/index.ts", "../../../../node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.js", "../../../../node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js", "../../../../node_modules/@aws-crypto/ie11-detection/build/Key.js", "../../../../node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js", "../../../../node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js", "../../../../node_modules/@aws-crypto/ie11-detection/src/MsWindow.ts", "../../../../node_modules/@aws-crypto/ie11-detection/src/index.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts", "../../../microapps-edge-to-origin/node_modules/@aws-crypto/sha256-browser/src/index.ts", "../../../../node_modules/validator/lib/util/assertString.js", "../../../../node_modules/validator/lib/util/merge.js", "../../../../node_modules/validator/lib/isByteLength.js", "../../../../node_modules/validator/lib/isFQDN.js", "../../../../node_modules/validator/lib/isIP.js", "../../../../node_modules/validator/lib/isEmail.js", "../../../../node_modules/validator/lib/isURL.js", "../../../../node_modules/convict-format-with-validator/src/main.js", "../../../../node_modules/ts-convict/dist/interfaces.js", "../../../../node_modules/ts-convict/dist/Reflector.js", "../../../../node_modules/ts-convict/dist/decorators.js", "../../../../node_modules/yargs-parser/build/index.cjs", "../../../../node_modules/lodash.clonedeep/index.js", "../../../../node_modules/convict/src/main.js", "../../../../node_modules/ts-convict/dist/TSConvict.js", "../../../../node_modules/ts-convict/dist/index.js", "../../../../node_modules/fs-extra/node_modules/universalify/index.js", "../../../../node_modules/graceful-fs/polyfills.js", "../../../../node_modules/graceful-fs/legacy-streams.js", "../../../../node_modules/graceful-fs/clone.js", "../../../../node_modules/graceful-fs/graceful-fs.js", "../../../../node_modules/fs-extra/lib/fs/index.js", "../../../../node_modules/at-least-node/index.js", "../../../../node_modules/fs-extra/lib/mkdirs/make-dir.js", "../../../../node_modules/fs-extra/lib/mkdirs/index.js", "../../../../node_modules/fs-extra/lib/util/utimes.js", "../../../../node_modules/fs-extra/lib/util/stat.js", "../../../../node_modules/fs-extra/lib/copy-sync/copy-sync.js", "../../../../node_modules/fs-extra/lib/copy-sync/index.js", "../../../../node_modules/fs-extra/lib/path-exists/index.js", "../../../../node_modules/fs-extra/lib/copy/copy.js", "../../../../node_modules/fs-extra/lib/copy/index.js", "../../../../node_modules/fs-extra/lib/remove/rimraf.js", "../../../../node_modules/fs-extra/lib/remove/index.js", "../../../../node_modules/fs-extra/lib/empty/index.js", "../../../../node_modules/fs-extra/lib/ensure/file.js", "../../../../node_modules/fs-extra/lib/ensure/link.js", "../../../../node_modules/fs-extra/lib/ensure/symlink-paths.js", "../../../../node_modules/fs-extra/lib/ensure/symlink-type.js", "../../../../node_modules/fs-extra/lib/ensure/symlink.js", "../../../../node_modules/fs-extra/lib/ensure/index.js", "../../../../node_modules/fs-extra/node_modules/jsonfile/utils.js", "../../../../node_modules/fs-extra/node_modules/jsonfile/index.js", "../../../../node_modules/fs-extra/lib/json/jsonfile.js", "../../../../node_modules/fs-extra/lib/output/index.js", "../../../../node_modules/fs-extra/lib/json/output-json.js", "../../../../node_modules/fs-extra/lib/json/output-json-sync.js", "../../../../node_modules/fs-extra/lib/json/index.js", "../../../../node_modules/fs-extra/lib/move-sync/move-sync.js", "../../../../node_modules/fs-extra/lib/move-sync/index.js", "../../../../node_modules/fs-extra/lib/move/move.js", "../../../../node_modules/fs-extra/lib/move/index.js", "../../../../node_modules/fs-extra/lib/index.js", "../../../../node_modules/fast-safe-stringify/index.js", "../../../../node_modules/lambda-log/lib/LogMessage.js", "../../../../node_modules/lambda-log/lib/LambdaLog.js", "../../../../node_modules/lambda-log/index.js", "../../../microapps-edge-to-origin/src/index.ts", "../../../../node_modules/source-map-support/register.js", "../../../../node_modules/reflect-metadata/Reflect.js", "../../../microapps-edge-to-origin/src/translate-request.ts", "../../../microapps-edge-to-origin/src/sign-request.ts", "../../../microapps-edge-to-origin/src/config/config.ts", "../../../../node_modules/js-yaml/dist/js-yaml.mjs", "../../../microapps-edge-to-origin/src/lib/files-exist.ts", "../../../microapps-edge-to-origin/src/lib/log.ts"],
|
|
4
|
+
"sourcesContent": ["/* -*- 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 '<dir>/..' 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 += \"<anonymous>\";\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 || \"<anonymous>\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"<anonymous>\");\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", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProviderError = void 0;\nclass ProviderError extends Error {\n constructor(message, tryNextLink = true) {\n super(message);\n this.tryNextLink = tryNextLink;\n this.name = \"ProviderError\";\n Object.setPrototypeOf(this, ProviderError.prototype);\n }\n static from(error, tryNextLink = true) {\n return Object.assign(new this(error.message, tryNextLink), error);\n }\n}\nexports.ProviderError = ProviderError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CredentialsProviderError = void 0;\nconst ProviderError_1 = require(\"./ProviderError\");\nclass CredentialsProviderError extends ProviderError_1.ProviderError {\n constructor(message, tryNextLink = true) {\n super(message, tryNextLink);\n this.tryNextLink = tryNextLink;\n this.name = \"CredentialsProviderError\";\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\nexports.CredentialsProviderError = CredentialsProviderError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.chain = void 0;\nconst ProviderError_1 = require(\"./ProviderError\");\nfunction chain(...providers) {\n return () => {\n let promise = Promise.reject(new ProviderError_1.ProviderError(\"No providers in chain\"));\n for (const provider of providers) {\n promise = promise.catch((err) => {\n if (err === null || err === void 0 ? void 0 : err.tryNextLink) {\n return provider();\n }\n throw err;\n });\n }\n return promise;\n };\n}\nexports.chain = chain;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromStatic = void 0;\nconst fromStatic = (staticValue) => () => Promise.resolve(staticValue);\nexports.fromStatic = fromStatic;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.memoize = void 0;\nconst memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh)) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || (options === null || options === void 0 ? void 0 : options.forceRefresh)) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\nexports.memoize = memoize;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CredentialsProviderError\"), exports);\ntslib_1.__exportStar(require(\"./ProviderError\"), exports);\ntslib_1.__exportStar(require(\"./chain\"), exports);\ntslib_1.__exportStar(require(\"./fromStatic\"), exports);\ntslib_1.__exportStar(require(\"./memoize\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = exports.ENV_EXPIRATION = exports.ENV_SESSION = exports.ENV_SECRET = exports.ENV_KEY = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nexports.ENV_KEY = \"AWS_ACCESS_KEY_ID\";\nexports.ENV_SECRET = \"AWS_SECRET_ACCESS_KEY\";\nexports.ENV_SESSION = \"AWS_SESSION_TOKEN\";\nexports.ENV_EXPIRATION = \"AWS_CREDENTIAL_EXPIRATION\";\nconst fromEnv = () => async () => {\n const accessKeyId = process.env[exports.ENV_KEY];\n const secretAccessKey = process.env[exports.ENV_SECRET];\n const sessionToken = process.env[exports.ENV_SESSION];\n const expiry = process.env[exports.ENV_EXPIRATION];\n if (accessKeyId && secretAccessKey) {\n return {\n accessKeyId,\n secretAccessKey,\n ...(sessionToken && { sessionToken }),\n ...(expiry && { expiration: new Date(expiry) }),\n };\n }\n throw new property_provider_1.CredentialsProviderError(\"Unable to find environment variable credentials.\");\n};\nexports.fromEnv = fromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromEnv\"), exports);\n", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHomeDir = void 0;\nconst os_1 = require(\"os\");\nconst path_1 = require(\"path\");\nconst getHomeDir = () => {\n const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env;\n if (HOME)\n return HOME;\n if (USERPROFILE)\n return USERPROFILE;\n if (HOMEPATH)\n return `${HOMEDRIVE}${HOMEPATH}`;\n return (0, os_1.homedir)();\n};\nexports.getHomeDir = getHomeDir;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getProfileName = exports.DEFAULT_PROFILE = exports.ENV_PROFILE = void 0;\nexports.ENV_PROFILE = \"AWS_PROFILE\";\nexports.DEFAULT_PROFILE = \"default\";\nconst getProfileName = (init) => init.profile || process.env[exports.ENV_PROFILE] || exports.DEFAULT_PROFILE;\nexports.getProfileName = getProfileName;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFilepath = void 0;\nconst crypto_1 = require(\"crypto\");\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nconst getSSOTokenFilepath = (ssoStartUrl) => {\n const hasher = (0, crypto_1.createHash)(\"sha1\");\n const cacheName = hasher.update(ssoStartUrl).digest(\"hex\");\n return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\nexports.getSSOTokenFilepath = getSSOTokenFilepath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSSOTokenFromFile = void 0;\nconst fs_1 = require(\"fs\");\nconst getSSOTokenFilepath_1 = require(\"./getSSOTokenFilepath\");\nconst { readFile } = fs_1.promises;\nconst getSSOTokenFromFile = async (ssoStartUrl) => {\n const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(ssoStartUrl);\n const ssoTokenText = await readFile(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\nexports.getSSOTokenFromFile = getSSOTokenFromFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalizeConfigFile = void 0;\nconst profileKeyRegex = /^profile\\s([\"'])?([^\\1]+)\\1$/;\nconst normalizeConfigFile = (data) => {\n const map = {};\n for (const key of Object.keys(data)) {\n let matches;\n if (key === \"default\") {\n map.default = data.default;\n }\n else if ((matches = profileKeyRegex.exec(key))) {\n const [_1, _2, normalizedKey] = matches;\n if (normalizedKey) {\n map[normalizedKey] = data[key];\n }\n }\n }\n return map;\n};\nexports.normalizeConfigFile = normalizeConfigFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseIni = void 0;\nconst profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nconst parseIni = (iniData) => {\n const map = {};\n let currentSection;\n for (let line of iniData.split(/\\r?\\n/)) {\n line = line.split(/(^|\\s)[;#]/)[0];\n const section = line.match(/^\\s*\\[([^\\[\\]]+)]\\s*$/);\n if (section) {\n currentSection = section[1];\n if (profileNameBlockList.includes(currentSection)) {\n throw new Error(`Found invalid profile name \"${currentSection}\"`);\n }\n }\n else if (currentSection) {\n const item = line.match(/^\\s*(.+?)\\s*=\\s*(.+?)\\s*$/);\n if (item) {\n map[currentSection] = map[currentSection] || {};\n map[currentSection][item[1]] = item[2];\n }\n }\n }\n return map;\n};\nexports.parseIni = parseIni;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.slurpFile = void 0;\nconst fs_1 = require(\"fs\");\nconst { readFile } = fs_1.promises;\nconst filePromisesHash = {};\nconst slurpFile = (path) => {\n if (!filePromisesHash[path]) {\n filePromisesHash[path] = readFile(path, \"utf8\");\n }\n return filePromisesHash[path];\n};\nexports.slurpFile = slurpFile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadSharedConfigFiles = exports.ENV_CONFIG_PATH = exports.ENV_CREDENTIALS_PATH = void 0;\nconst path_1 = require(\"path\");\nconst getHomeDir_1 = require(\"./getHomeDir\");\nconst normalizeConfigFile_1 = require(\"./normalizeConfigFile\");\nconst parseIni_1 = require(\"./parseIni\");\nconst slurpFile_1 = require(\"./slurpFile\");\nexports.ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nexports.ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nconst swallowError = () => ({});\nconst loadSharedConfigFiles = async (init = {}) => {\n const { filepath = process.env[exports.ENV_CREDENTIALS_PATH] || (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"credentials\"), configFilepath = process.env[exports.ENV_CONFIG_PATH] || (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), \".aws\", \"config\"), } = init;\n const parsedFiles = await Promise.all([\n (0, slurpFile_1.slurpFile)(configFilepath).then(parseIni_1.parseIni).then(normalizeConfigFile_1.normalizeConfigFile).catch(swallowError),\n (0, slurpFile_1.slurpFile)(filepath).then(parseIni_1.parseIni).catch(swallowError),\n ]);\n return {\n configFile: parsedFiles[0],\n credentialsFile: parsedFiles[1],\n };\n};\nexports.loadSharedConfigFiles = loadSharedConfigFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseKnownFiles = void 0;\nconst loadSharedConfigFiles_1 = require(\"./loadSharedConfigFiles\");\nconst parseKnownFiles = async (init) => {\n const parsedFiles = await (0, loadSharedConfigFiles_1.loadSharedConfigFiles)(init);\n return {\n ...parsedFiles.configFile,\n ...parsedFiles.credentialsFile,\n };\n};\nexports.parseKnownFiles = parseKnownFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./getHomeDir\"), exports);\ntslib_1.__exportStar(require(\"./getProfileName\"), exports);\ntslib_1.__exportStar(require(\"./getSSOTokenFilepath\"), exports);\ntslib_1.__exportStar(require(\"./getSSOTokenFromFile\"), exports);\ntslib_1.__exportStar(require(\"./loadSharedConfigFiles\"), exports);\ntslib_1.__exportStar(require(\"./parseKnownFiles\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.httpRequest = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst buffer_1 = require(\"buffer\");\nconst http_1 = require(\"http\");\nfunction httpRequest(options) {\n return new Promise((resolve, reject) => {\n var _a;\n const req = (0, http_1.request)({\n method: \"GET\",\n ...options,\n hostname: (_a = options.hostname) === null || _a === void 0 ? void 0 : _a.replace(/^\\[(.+)\\]$/, \"$1\"),\n });\n req.on(\"error\", (err) => {\n reject(Object.assign(new property_provider_1.ProviderError(\"Unable to connect to instance metadata service\"), err));\n req.destroy();\n });\n req.on(\"timeout\", () => {\n reject(new property_provider_1.ProviderError(\"TimeoutError from instance metadata service\"));\n req.destroy();\n });\n req.on(\"response\", (res) => {\n const { statusCode = 400 } = res;\n if (statusCode < 200 || 300 <= statusCode) {\n reject(Object.assign(new property_provider_1.ProviderError(\"Error response received from instance metadata service\"), { statusCode }));\n req.destroy();\n }\n const chunks = [];\n res.on(\"data\", (chunk) => {\n chunks.push(chunk);\n });\n res.on(\"end\", () => {\n resolve(buffer_1.Buffer.concat(chunks));\n req.destroy();\n });\n });\n req.end();\n });\n}\nexports.httpRequest = httpRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromImdsCredentials = exports.isImdsCredentials = void 0;\nconst isImdsCredentials = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.AccessKeyId === \"string\" &&\n typeof arg.SecretAccessKey === \"string\" &&\n typeof arg.Token === \"string\" &&\n typeof arg.Expiration === \"string\";\nexports.isImdsCredentials = isImdsCredentials;\nconst fromImdsCredentials = (creds) => ({\n accessKeyId: creds.AccessKeyId,\n secretAccessKey: creds.SecretAccessKey,\n sessionToken: creds.Token,\n expiration: new Date(creds.Expiration),\n});\nexports.fromImdsCredentials = fromImdsCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.providerConfigFromInit = exports.DEFAULT_MAX_RETRIES = exports.DEFAULT_TIMEOUT = void 0;\nexports.DEFAULT_TIMEOUT = 1000;\nexports.DEFAULT_MAX_RETRIES = 0;\nconst providerConfigFromInit = ({ maxRetries = exports.DEFAULT_MAX_RETRIES, timeout = exports.DEFAULT_TIMEOUT, }) => ({ maxRetries, timeout });\nexports.providerConfigFromInit = providerConfigFromInit;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retry = void 0;\nconst retry = (toRetry, maxRetries) => {\n let promise = toRetry();\n for (let i = 0; i < maxRetries; i++) {\n promise = promise.catch(toRetry);\n }\n return promise;\n};\nexports.retry = retry;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromContainerMetadata = exports.ENV_CMDS_AUTH_TOKEN = exports.ENV_CMDS_RELATIVE_URI = exports.ENV_CMDS_FULL_URI = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst url_1 = require(\"url\");\nconst httpRequest_1 = require(\"./remoteProvider/httpRequest\");\nconst ImdsCredentials_1 = require(\"./remoteProvider/ImdsCredentials\");\nconst RemoteProviderInit_1 = require(\"./remoteProvider/RemoteProviderInit\");\nconst retry_1 = require(\"./remoteProvider/retry\");\nexports.ENV_CMDS_FULL_URI = \"AWS_CONTAINER_CREDENTIALS_FULL_URI\";\nexports.ENV_CMDS_RELATIVE_URI = \"AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\";\nexports.ENV_CMDS_AUTH_TOKEN = \"AWS_CONTAINER_AUTHORIZATION_TOKEN\";\nconst fromContainerMetadata = (init = {}) => {\n const { timeout, maxRetries } = (0, RemoteProviderInit_1.providerConfigFromInit)(init);\n return () => (0, retry_1.retry)(async () => {\n const requestOptions = await getCmdsUri();\n const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));\n if (!(0, ImdsCredentials_1.isImdsCredentials)(credsResponse)) {\n throw new property_provider_1.CredentialsProviderError(\"Invalid response received from instance metadata service.\");\n }\n return (0, ImdsCredentials_1.fromImdsCredentials)(credsResponse);\n }, maxRetries);\n};\nexports.fromContainerMetadata = fromContainerMetadata;\nconst requestFromEcsImds = async (timeout, options) => {\n if (process.env[exports.ENV_CMDS_AUTH_TOKEN]) {\n options.headers = {\n ...options.headers,\n Authorization: process.env[exports.ENV_CMDS_AUTH_TOKEN],\n };\n }\n const buffer = await (0, httpRequest_1.httpRequest)({\n ...options,\n timeout,\n });\n return buffer.toString();\n};\nconst CMDS_IP = \"169.254.170.2\";\nconst GREENGRASS_HOSTS = {\n localhost: true,\n \"127.0.0.1\": true,\n};\nconst GREENGRASS_PROTOCOLS = {\n \"http:\": true,\n \"https:\": true,\n};\nconst getCmdsUri = async () => {\n if (process.env[exports.ENV_CMDS_RELATIVE_URI]) {\n return {\n hostname: CMDS_IP,\n path: process.env[exports.ENV_CMDS_RELATIVE_URI],\n };\n }\n if (process.env[exports.ENV_CMDS_FULL_URI]) {\n const parsed = (0, url_1.parse)(process.env[exports.ENV_CMDS_FULL_URI]);\n if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {\n throw new property_provider_1.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, false);\n }\n if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {\n throw new property_provider_1.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, false);\n }\n return {\n ...parsed,\n port: parsed.port ? parseInt(parsed.port, 10) : undefined,\n };\n }\n throw new property_provider_1.CredentialsProviderError(\"The container metadata credential provider cannot be used unless\" +\n ` the ${exports.ENV_CMDS_RELATIVE_URI} or ${exports.ENV_CMDS_FULL_URI} environment` +\n \" variable is set\", false);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromEnv = (envVarSelector) => async () => {\n try {\n const config = envVarSelector(process.env);\n if (config === undefined) {\n throw new Error();\n }\n return config;\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message || `Cannot load config from environment variables with getter: ${envVarSelector}`);\n }\n};\nexports.fromEnv = fromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSharedConfigFiles = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst fromSharedConfigFiles = (configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = (0, shared_ini_file_loader_1.getProfileName)(init);\n const { configFile, credentialsFile } = await (0, shared_ini_file_loader_1.loadSharedConfigFiles)(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\"\n ? { ...profileFromCredentials, ...profileFromConfig }\n : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const configValue = configSelector(mergedProfile);\n if (configValue === undefined) {\n throw new Error();\n }\n return configValue;\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message ||\n `Cannot load config for profile ${profile} in SDK configuration files with getter: ${configSelector}`);\n }\n};\nexports.fromSharedConfigFiles = fromSharedConfigFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromStatic = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst isFunction = (func) => typeof func === \"function\";\nconst fromStatic = (defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, property_provider_1.fromStatic)(defaultValue);\nexports.fromStatic = fromStatic;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfig = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromEnv_1 = require(\"./fromEnv\");\nconst fromSharedConfigFiles_1 = require(\"./fromSharedConfigFiles\");\nconst fromStatic_1 = require(\"./fromStatic\");\nconst loadConfig = ({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, property_provider_1.memoize)((0, property_provider_1.chain)((0, fromEnv_1.fromEnv)(environmentVariableSelector), (0, fromSharedConfigFiles_1.fromSharedConfigFiles)(configFileSelector, configuration), (0, fromStatic_1.fromStatic)(defaultValue)));\nexports.loadConfig = loadConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./configLoader\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseQueryString = void 0;\nfunction parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\nexports.parseQueryString = parseQueryString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseUrl = void 0;\nconst querystring_parser_1 = require(\"@aws-sdk/querystring-parser\");\nconst parseUrl = (url) => {\n const { hostname, pathname, port, protocol, search } = new URL(url);\n let query;\n if (search) {\n query = (0, querystring_parser_1.parseQueryString)(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\nexports.parseUrl = parseUrl;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Endpoint = void 0;\nvar Endpoint;\n(function (Endpoint) {\n Endpoint[\"IPv4\"] = \"http://169.254.169.254\";\n Endpoint[\"IPv6\"] = \"http://[fd00:ec2::254]\";\n})(Endpoint = exports.Endpoint || (exports.Endpoint = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_CONFIG_OPTIONS = exports.CONFIG_ENDPOINT_NAME = exports.ENV_ENDPOINT_NAME = void 0;\nexports.ENV_ENDPOINT_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT\";\nexports.CONFIG_ENDPOINT_NAME = \"ec2_metadata_service_endpoint\";\nexports.ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.ENV_ENDPOINT_NAME],\n configFileSelector: (profile) => profile[exports.CONFIG_ENDPOINT_NAME],\n default: undefined,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EndpointMode = void 0;\nvar EndpointMode;\n(function (EndpointMode) {\n EndpointMode[\"IPv4\"] = \"IPv4\";\n EndpointMode[\"IPv6\"] = \"IPv6\";\n})(EndpointMode = exports.EndpointMode || (exports.EndpointMode = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ENDPOINT_MODE_CONFIG_OPTIONS = exports.CONFIG_ENDPOINT_MODE_NAME = exports.ENV_ENDPOINT_MODE_NAME = void 0;\nconst EndpointMode_1 = require(\"./EndpointMode\");\nexports.ENV_ENDPOINT_MODE_NAME = \"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE\";\nexports.CONFIG_ENDPOINT_MODE_NAME = \"ec2_metadata_service_endpoint_mode\";\nexports.ENDPOINT_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.ENV_ENDPOINT_MODE_NAME],\n configFileSelector: (profile) => profile[exports.CONFIG_ENDPOINT_MODE_NAME],\n default: EndpointMode_1.EndpointMode.IPv4,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInstanceMetadataEndpoint = void 0;\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst Endpoint_1 = require(\"../config/Endpoint\");\nconst EndpointConfigOptions_1 = require(\"../config/EndpointConfigOptions\");\nconst EndpointMode_1 = require(\"../config/EndpointMode\");\nconst EndpointModeConfigOptions_1 = require(\"../config/EndpointModeConfigOptions\");\nconst getInstanceMetadataEndpoint = async () => (0, url_parser_1.parseUrl)((await getFromEndpointConfig()) || (await getFromEndpointModeConfig()));\nexports.getInstanceMetadataEndpoint = getInstanceMetadataEndpoint;\nconst getFromEndpointConfig = async () => (0, node_config_provider_1.loadConfig)(EndpointConfigOptions_1.ENDPOINT_CONFIG_OPTIONS)();\nconst getFromEndpointModeConfig = async () => {\n const endpointMode = await (0, node_config_provider_1.loadConfig)(EndpointModeConfigOptions_1.ENDPOINT_MODE_CONFIG_OPTIONS)();\n switch (endpointMode) {\n case EndpointMode_1.EndpointMode.IPv4:\n return Endpoint_1.Endpoint.IPv4;\n case EndpointMode_1.EndpointMode.IPv6:\n return Endpoint_1.Endpoint.IPv6;\n default:\n throw new Error(`Unsupported endpoint mode: ${endpointMode}.` + ` Select from ${Object.values(EndpointMode_1.EndpointMode)}`);\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExtendedInstanceMetadataCredentials = void 0;\nconst STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 15 * 60;\nconst STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60;\nconst STATIC_STABILITY_DOC_URL = \"https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html\";\nconst getExtendedInstanceMetadataCredentials = (credentials, logger) => {\n var _a;\n const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS +\n Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS);\n const newExpiration = new Date(Date.now() + refreshInterval * 1000);\n logger.warn(\"Attempting credential expiration extension due to a credential service availability issue. A refresh of these \" +\n \"credentials will be attempted after ${new Date(newExpiration)}.\\nFor more information, please visit: \" +\n STATIC_STABILITY_DOC_URL);\n const originalExpiration = (_a = credentials.originalExpiration) !== null && _a !== void 0 ? _a : credentials.expiration;\n return {\n ...credentials,\n ...(originalExpiration ? { originalExpiration } : {}),\n expiration: newExpiration,\n };\n};\nexports.getExtendedInstanceMetadataCredentials = getExtendedInstanceMetadataCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.staticStabilityProvider = void 0;\nconst getExtendedInstanceMetadataCredentials_1 = require(\"./getExtendedInstanceMetadataCredentials\");\nconst staticStabilityProvider = (provider, options = {}) => {\n const logger = (options === null || options === void 0 ? void 0 : options.logger) || console;\n let pastCredentials;\n return async () => {\n let credentials;\n try {\n credentials = await provider();\n if (credentials.expiration && credentials.expiration.getTime() < Date.now()) {\n credentials = (0, getExtendedInstanceMetadataCredentials_1.getExtendedInstanceMetadataCredentials)(credentials, logger);\n }\n }\n catch (e) {\n if (pastCredentials) {\n logger.warn(\"Credential renew failed: \", e);\n credentials = (0, getExtendedInstanceMetadataCredentials_1.getExtendedInstanceMetadataCredentials)(pastCredentials, logger);\n }\n else {\n throw e;\n }\n }\n pastCredentials = credentials;\n return credentials;\n };\n};\nexports.staticStabilityProvider = staticStabilityProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromInstanceMetadata = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst httpRequest_1 = require(\"./remoteProvider/httpRequest\");\nconst ImdsCredentials_1 = require(\"./remoteProvider/ImdsCredentials\");\nconst RemoteProviderInit_1 = require(\"./remoteProvider/RemoteProviderInit\");\nconst retry_1 = require(\"./remoteProvider/retry\");\nconst getInstanceMetadataEndpoint_1 = require(\"./utils/getInstanceMetadataEndpoint\");\nconst staticStabilityProvider_1 = require(\"./utils/staticStabilityProvider\");\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst fromInstanceMetadata = (init = {}) => (0, staticStabilityProvider_1.staticStabilityProvider)(getInstanceImdsProvider(init), { logger: init.logger });\nexports.fromInstanceMetadata = fromInstanceMetadata;\nconst getInstanceImdsProvider = (init) => {\n let disableFetchToken = false;\n const { timeout, maxRetries } = (0, RemoteProviderInit_1.providerConfigFromInit)(init);\n const getCredentials = async (maxRetries, options) => {\n const profile = (await (0, retry_1.retry)(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return (0, retry_1.retry)(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(profile, options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await (0, getInstanceMetadataEndpoint_1.getInstanceMetadataEndpoint)();\n if (disableFetchToken) {\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if ((error === null || error === void 0 ? void 0 : error.statusCode) === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n \"x-aws-ec2-metadata-token\": token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => (0, httpRequest_1.httpRequest)({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await (0, httpRequest_1.httpRequest)({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options) => {\n const credsResponse = JSON.parse((await (0, httpRequest_1.httpRequest)({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!(0, ImdsCredentials_1.isImdsCredentials)(credsResponse)) {\n throw new property_provider_1.CredentialsProviderError(\"Invalid response received from instance metadata service.\");\n }\n return (0, ImdsCredentials_1.fromImdsCredentials)(credsResponse);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getInstanceMetadataEndpoint = exports.httpRequest = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromContainerMetadata\"), exports);\ntslib_1.__exportStar(require(\"./fromInstanceMetadata\"), exports);\ntslib_1.__exportStar(require(\"./remoteProvider/RemoteProviderInit\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\nvar httpRequest_1 = require(\"./remoteProvider/httpRequest\");\nObject.defineProperty(exports, \"httpRequest\", { enumerable: true, get: function () { return httpRequest_1.httpRequest; } });\nvar getInstanceMetadataEndpoint_1 = require(\"./utils/getInstanceMetadataEndpoint\");\nObject.defineProperty(exports, \"getInstanceMetadataEndpoint\", { enumerable: true, get: function () { return getInstanceMetadataEndpoint_1.getInstanceMetadataEndpoint; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveCredentialSource = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst resolveCredentialSource = (credentialSource, profileName) => {\n const sourceProvidersMap = {\n EcsContainer: credential_provider_imds_1.fromContainerMetadata,\n Ec2InstanceMetadata: credential_provider_imds_1.fromInstanceMetadata,\n Environment: credential_provider_env_1.fromEnv,\n };\n if (credentialSource in sourceProvidersMap) {\n return sourceProvidersMap[credentialSource]();\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`Unsupported credential source in profile ${profileName}. Got ${credentialSource}, ` +\n `expected EcsContainer or Ec2InstanceMetadata or Environment.`);\n }\n};\nexports.resolveCredentialSource = resolveCredentialSource;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveAssumeRoleCredentials = exports.isAssumeRoleProfile = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst resolveCredentialSource_1 = require(\"./resolveCredentialSource\");\nconst resolveProfileData_1 = require(\"./resolveProfileData\");\nconst isAssumeRoleProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.external_id) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.mfa_serial) > -1 &&\n (isAssumeRoleWithSourceProfile(arg) || isAssumeRoleWithProviderProfile(arg));\nexports.isAssumeRoleProfile = isAssumeRoleProfile;\nconst isAssumeRoleWithSourceProfile = (arg) => typeof arg.source_profile === \"string\" && typeof arg.credential_source === \"undefined\";\nconst isAssumeRoleWithProviderProfile = (arg) => typeof arg.credential_source === \"string\" && typeof arg.source_profile === \"undefined\";\nconst resolveAssumeRoleCredentials = async (profileName, profiles, options, visitedProfiles = {}) => {\n const data = profiles[profileName];\n if (!options.roleAssumer) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} requires a role to be assumed, but no role assumption callback was provided.`, false);\n }\n const { source_profile } = data;\n if (source_profile && source_profile in visitedProfiles) {\n throw new property_provider_1.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile` +\n ` ${(0, shared_ini_file_loader_1.getProfileName)(options)}. Profiles visited: ` +\n Object.keys(visitedProfiles).join(\", \"), false);\n }\n const sourceCredsProvider = source_profile\n ? (0, resolveProfileData_1.resolveProfileData)(source_profile, profiles, options, {\n ...visitedProfiles,\n [source_profile]: true,\n })\n : (0, resolveCredentialSource_1.resolveCredentialSource)(data.credential_source, profileName)();\n const params = {\n RoleArn: data.role_arn,\n RoleSessionName: data.role_session_name || `aws-sdk-js-${Date.now()}`,\n ExternalId: data.external_id,\n };\n const { mfa_serial } = data;\n if (mfa_serial) {\n if (!options.mfaCodeProvider) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, false);\n }\n params.SerialNumber = mfa_serial;\n params.TokenCode = await options.mfaCodeProvider(mfa_serial);\n }\n const sourceCreds = await sourceCredsProvider;\n return options.roleAssumer(sourceCreds, params);\n};\nexports.resolveAssumeRoleCredentials = resolveAssumeRoleCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSsoProfile = void 0;\nconst isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\nexports.isSsoProfile = isSsoProfile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializerMiddleware = void 0;\nconst deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n throw error;\n }\n};\nexports.deserializerMiddleware = deserializerMiddleware;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializerMiddleware = void 0;\nconst serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const request = await serializer(args.input, options);\n return next({\n ...args,\n request,\n });\n};\nexports.serializerMiddleware = serializerMiddleware;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSerdePlugin = exports.serializerMiddlewareOption = exports.deserializerMiddlewareOption = void 0;\nconst deserializerMiddleware_1 = require(\"./deserializerMiddleware\");\nconst serializerMiddleware_1 = require(\"./serializerMiddleware\");\nexports.deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexports.serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nfunction getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add((0, deserializerMiddleware_1.deserializerMiddleware)(config, deserializer), exports.deserializerMiddlewareOption);\n commandStack.add((0, serializerMiddleware_1.serializerMiddleware)(config, serializer), exports.serializerMiddlewareOption);\n },\n };\n}\nexports.getSerdePlugin = getSerdePlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./deserializerMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./serdePlugin\"), exports);\ntslib_1.__exportStar(require(\"./serializerMiddleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.constructStack = void 0;\nconst constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = () => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n throw new Error(`${entry.toMiddleware} is not found when adding ${entry.name || \"anonymous\"} middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expendedMiddlewareList) => {\n wholeList.push(...expendedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain.map((entry) => entry.middleware);\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === name);\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(`\"${name}\" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be ` +\n `overridden by same-name middleware with ${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override } = options;\n const entry = {\n middleware,\n ...options,\n };\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(`Duplicate middleware name '${name}'`);\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === name);\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${name}\" middleware ${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by same-name middleware ${entry.relation} \"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo((0, exports.constructStack)()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name } = entry;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo((0, exports.constructStack)());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList().reverse()) {\n handler = middleware(handler, context);\n }\n return handler;\n },\n };\n return stack;\n};\nexports.constructStack = constructStack;\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./MiddlewareStack\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Client = void 0;\nconst middleware_stack_1 = require(\"@aws-sdk/middleware-stack\");\nclass Client {\n constructor(config) {\n this.middlewareStack = (0, middleware_stack_1.constructStack)();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\nexports.Client = Client;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Command = void 0;\nconst middleware_stack_1 = require(\"@aws-sdk/middleware-stack\");\nclass Command {\n constructor() {\n this.middlewareStack = (0, middleware_stack_1.constructStack)();\n }\n}\nexports.Command = Command;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SENSITIVE_STRING = void 0;\nexports.SENSITIVE_STRING = \"***SensitiveInformation***\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.strictParseByte = exports.strictParseShort = exports.strictParseInt32 = exports.strictParseInt = exports.strictParseLong = exports.limitedParseFloat32 = exports.limitedParseFloat = exports.handleFloat = exports.limitedParseDouble = exports.strictParseFloat32 = exports.strictParseFloat = exports.strictParseDouble = exports.expectUnion = exports.expectString = exports.expectObject = exports.expectNonNull = exports.expectByte = exports.expectShort = exports.expectInt32 = exports.expectInt = exports.expectLong = exports.expectFloat32 = exports.expectNumber = exports.expectBoolean = exports.parseBoolean = void 0;\nconst parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexports.parseBoolean = parseBoolean;\nconst expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}`);\n};\nexports.expectBoolean = expectBoolean;\nconst expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}`);\n};\nexports.expectNumber = expectNumber;\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nconst expectFloat32 = (value) => {\n const expected = (0, exports.expectNumber)(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexports.expectFloat32 = expectFloat32;\nconst expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}`);\n};\nexports.expectLong = expectLong;\nexports.expectInt = exports.expectLong;\nconst expectInt32 = (value) => expectSizedInt(value, 32);\nexports.expectInt32 = expectInt32;\nconst expectShort = (value) => expectSizedInt(value, 16);\nexports.expectShort = expectShort;\nconst expectByte = (value) => expectSizedInt(value, 8);\nexports.expectByte = expectByte;\nconst expectSizedInt = (value, size) => {\n const expected = (0, exports.expectLong)(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nconst expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexports.expectNonNull = expectNonNull;\nconst expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n throw new TypeError(`Expected object, got ${typeof value}`);\n};\nexports.expectObject = expectObject;\nconst expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n throw new TypeError(`Expected string, got ${typeof value}`);\n};\nexports.expectString = expectString;\nconst expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = (0, exports.expectObject)(value);\n const setKeys = Object.entries(asObject)\n .filter(([_, v]) => v !== null && v !== undefined)\n .map(([k, _]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexports.expectUnion = expectUnion;\nconst strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return (0, exports.expectNumber)(parseNumber(value));\n }\n return (0, exports.expectNumber)(value);\n};\nexports.strictParseDouble = strictParseDouble;\nexports.strictParseFloat = exports.strictParseDouble;\nconst strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return (0, exports.expectFloat32)(parseNumber(value));\n }\n return (0, exports.expectFloat32)(value);\n};\nexports.strictParseFloat32 = strictParseFloat32;\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nconst limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return (0, exports.expectNumber)(value);\n};\nexports.limitedParseDouble = limitedParseDouble;\nexports.handleFloat = exports.limitedParseDouble;\nexports.limitedParseFloat = exports.limitedParseDouble;\nconst limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return (0, exports.expectFloat32)(value);\n};\nexports.limitedParseFloat32 = limitedParseFloat32;\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nconst strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectLong)(parseNumber(value));\n }\n return (0, exports.expectLong)(value);\n};\nexports.strictParseLong = strictParseLong;\nexports.strictParseInt = exports.strictParseLong;\nconst strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectInt32)(parseNumber(value));\n }\n return (0, exports.expectInt32)(value);\n};\nexports.strictParseInt32 = strictParseInt32;\nconst strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectShort)(parseNumber(value));\n }\n return (0, exports.expectShort)(value);\n};\nexports.strictParseShort = strictParseShort;\nconst strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return (0, exports.expectByte)(parseNumber(value));\n }\n return (0, exports.expectByte)(value);\n};\nexports.strictParseByte = strictParseByte;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseEpochTimestamp = exports.parseRfc7231DateTime = exports.parseRfc3339DateTime = exports.dateToUtcString = void 0;\nconst parse_utils_1 = require(\"./parse-utils\");\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nfunction dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nexports.dateToUtcString = dateToUtcString;\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nconst parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = (0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nexports.parseRfc3339DateTime = parseRfc3339DateTime;\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nconst parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate((0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate((0, parse_utils_1.strictParseShort)(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexports.parseRfc7231DateTime = parseRfc7231DateTime;\nconst parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = (0, parse_utils_1.strictParseDouble)(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nexports.parseEpochTimestamp = parseEpochTimestamp;\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + (0, parse_utils_1.strictParseShort)(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = (0, parse_utils_1.strictParseByte)(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return (0, parse_utils_1.strictParseFloat32)(\"0.\" + value) * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfigsForDefaultMode = void 0;\nconst loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\nexports.loadConfigsForDefaultMode = loadConfigsForDefaultMode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.emitWarningIfUnsupportedVersion = void 0;\nlet warningEmitted = false;\nconst emitWarningIfUnsupportedVersion = (version) => {\n if (version && !warningEmitted && parseInt(version.substring(1, version.indexOf(\".\"))) < 12) {\n warningEmitted = true;\n process.emitWarning(`The AWS SDK for JavaScript (v3) will\\n` +\n `no longer support Node.js ${version} as of January 1, 2022.\\n` +\n `To continue receiving updates to AWS services, bug fixes, and security\\n` +\n `updates please upgrade to Node.js 12.x or later.\\n\\n` +\n `More information can be found at: https://a.co/1l6FLnu`, `NodeDeprecationWarning`);\n }\n};\nexports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateServiceException = exports.ServiceException = void 0;\nclass ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexports.ServiceException = ServiceException;\nconst decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\nexports.decorateServiceException = decorateServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendedEncodeURIComponent = void 0;\nfunction extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nexports.extendedEncodeURIComponent = extendedEncodeURIComponent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getArrayIfSingleItem = void 0;\nconst getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\nexports.getArrayIfSingleItem = getArrayIfSingleItem;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getValueFromTextNode = void 0;\nconst getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = (0, exports.getValueFromTextNode)(obj[key]);\n }\n }\n return obj;\n};\nexports.getValueFromTextNode = getValueFromTextNode;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LazyJsonString = exports.StringWrapper = void 0;\nconst StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nexports.StringWrapper = StringWrapper;\nexports.StringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: exports.StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(exports.StringWrapper, String);\nclass LazyJsonString extends exports.StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\nexports.LazyJsonString = LazyJsonString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeFloat = void 0;\nconst serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\nexports.serializeFloat = serializeFloat;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitEvery = void 0;\nfunction splitEvery(value, delimiter, numDelimiters) {\n if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) {\n throw new Error(\"Invalid number of delimiters (\" + numDelimiters + \") for splitEvery.\");\n }\n const segments = value.split(delimiter);\n if (numDelimiters === 1) {\n return segments;\n }\n const compoundSegments = [];\n let currentSegment = \"\";\n for (let i = 0; i < segments.length; i++) {\n if (currentSegment === \"\") {\n currentSegment = segments[i];\n }\n else {\n currentSegment += delimiter + segments[i];\n }\n if ((i + 1) % numDelimiters === 0) {\n compoundSegments.push(currentSegment);\n currentSegment = \"\";\n }\n }\n if (currentSegment !== \"\") {\n compoundSegments.push(currentSegment);\n }\n return compoundSegments;\n}\nexports.splitEvery = splitEvery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./client\"), exports);\ntslib_1.__exportStar(require(\"./command\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./date-utils\"), exports);\ntslib_1.__exportStar(require(\"./defaults-mode\"), exports);\ntslib_1.__exportStar(require(\"./emitWarningIfUnsupportedVersion\"), exports);\ntslib_1.__exportStar(require(\"./exceptions\"), exports);\ntslib_1.__exportStar(require(\"./extended-encode-uri-component\"), exports);\ntslib_1.__exportStar(require(\"./get-array-if-single-item\"), exports);\ntslib_1.__exportStar(require(\"./get-value-from-text-node\"), exports);\ntslib_1.__exportStar(require(\"./lazy-json\"), exports);\ntslib_1.__exportStar(require(\"./parse-utils\"), exports);\ntslib_1.__exportStar(require(\"./ser-utils\"), exports);\ntslib_1.__exportStar(require(\"./split-every\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOServiceException = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nclass SSOServiceException extends smithy_client_1.ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, SSOServiceException.prototype);\n }\n}\nexports.SSOServiceException = SSOServiceException;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogoutRequest = exports.ListAccountsResponse = exports.ListAccountsRequest = exports.ListAccountRolesResponse = exports.RoleInfo = exports.ListAccountRolesRequest = exports.UnauthorizedException = exports.TooManyRequestsException = exports.ResourceNotFoundException = exports.InvalidRequestException = exports.GetRoleCredentialsResponse = exports.RoleCredentials = exports.GetRoleCredentialsRequest = exports.AccountInfo = void 0;\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst SSOServiceException_1 = require(\"./SSOServiceException\");\nvar AccountInfo;\n(function (AccountInfo) {\n AccountInfo.filterSensitiveLog = (obj) => ({\n ...obj,\n });\n})(AccountInfo = exports.AccountInfo || (exports.AccountInfo = {}));\nvar GetRoleCredentialsRequest;\n(function (GetRoleCredentialsRequest) {\n GetRoleCredentialsRequest.filterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n });\n})(GetRoleCredentialsRequest = exports.GetRoleCredentialsRequest || (exports.GetRoleCredentialsRequest = {}));\nvar RoleCredentials;\n(function (RoleCredentials) {\n RoleCredentials.filterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.secretAccessKey && { secretAccessKey: smithy_client_1.SENSITIVE_STRING }),\n ...(obj.sessionToken && { sessionToken: smithy_client_1.SENSITIVE_STRING }),\n });\n})(RoleCredentials = exports.RoleCredentials || (exports.RoleCredentials = {}));\nvar GetRoleCredentialsResponse;\n(function (GetRoleCredentialsResponse) {\n GetRoleCredentialsResponse.filterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.roleCredentials && { roleCredentials: RoleCredentials.filterSensitiveLog(obj.roleCredentials) }),\n });\n})(GetRoleCredentialsResponse = exports.GetRoleCredentialsResponse || (exports.GetRoleCredentialsResponse = {}));\nclass InvalidRequestException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"InvalidRequestException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidRequestException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidRequestException.prototype);\n }\n}\nexports.InvalidRequestException = InvalidRequestException;\nclass ResourceNotFoundException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"ResourceNotFoundException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ResourceNotFoundException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ResourceNotFoundException.prototype);\n }\n}\nexports.ResourceNotFoundException = ResourceNotFoundException;\nclass TooManyRequestsException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"TooManyRequestsException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"TooManyRequestsException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, TooManyRequestsException.prototype);\n }\n}\nexports.TooManyRequestsException = TooManyRequestsException;\nclass UnauthorizedException extends SSOServiceException_1.SSOServiceException {\n constructor(opts) {\n super({\n name: \"UnauthorizedException\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"UnauthorizedException\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, UnauthorizedException.prototype);\n }\n}\nexports.UnauthorizedException = UnauthorizedException;\nvar ListAccountRolesRequest;\n(function (ListAccountRolesRequest) {\n ListAccountRolesRequest.filterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n });\n})(ListAccountRolesRequest = exports.ListAccountRolesRequest || (exports.ListAccountRolesRequest = {}));\nvar RoleInfo;\n(function (RoleInfo) {\n RoleInfo.filterSensitiveLog = (obj) => ({\n ...obj,\n });\n})(RoleInfo = exports.RoleInfo || (exports.RoleInfo = {}));\nvar ListAccountRolesResponse;\n(function (ListAccountRolesResponse) {\n ListAccountRolesResponse.filterSensitiveLog = (obj) => ({\n ...obj,\n });\n})(ListAccountRolesResponse = exports.ListAccountRolesResponse || (exports.ListAccountRolesResponse = {}));\nvar ListAccountsRequest;\n(function (ListAccountsRequest) {\n ListAccountsRequest.filterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n });\n})(ListAccountsRequest = exports.ListAccountsRequest || (exports.ListAccountsRequest = {}));\nvar ListAccountsResponse;\n(function (ListAccountsResponse) {\n ListAccountsResponse.filterSensitiveLog = (obj) => ({\n ...obj,\n });\n})(ListAccountsResponse = exports.ListAccountsResponse || (exports.ListAccountsResponse = {}));\nvar LogoutRequest;\n(function (LogoutRequest) {\n LogoutRequest.filterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.accessToken && { accessToken: smithy_client_1.SENSITIVE_STRING }),\n });\n})(LogoutRequest = exports.LogoutRequest || (exports.LogoutRequest = {}));\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpRequest = void 0;\nclass HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nexports.HttpRequest = HttpRequest;\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpResponse = void 0;\nclass HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\nexports.HttpResponse = HttpResponse;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidHostname = void 0;\nfunction isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\nexports.isValidHostname = isValidHostname;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./httpHandler\"), exports);\ntslib_1.__exportStar(require(\"./httpRequest\"), exports);\ntslib_1.__exportStar(require(\"./httpResponse\"), exports);\ntslib_1.__exportStar(require(\"./isValidHostname\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeAws_restJson1LogoutCommand = exports.deserializeAws_restJson1ListAccountsCommand = exports.deserializeAws_restJson1ListAccountRolesCommand = exports.deserializeAws_restJson1GetRoleCredentialsCommand = exports.serializeAws_restJson1LogoutCommand = exports.serializeAws_restJson1ListAccountsCommand = exports.serializeAws_restJson1ListAccountRolesCommand = exports.serializeAws_restJson1GetRoleCredentialsCommand = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst SSOServiceException_1 = require(\"../models/SSOServiceException\");\nconst serializeAws_restJson1GetRoleCredentialsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n ...(isSerializableHeaderValue(input.accessToken) && { \"x-amz-sso_bearer_token\": input.accessToken }),\n };\n const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\"}` + \"/federation/credentials\";\n const query = {\n ...(input.roleName !== undefined && { role_name: input.roleName }),\n ...(input.accountId !== undefined && { account_id: input.accountId }),\n };\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restJson1GetRoleCredentialsCommand = serializeAws_restJson1GetRoleCredentialsCommand;\nconst serializeAws_restJson1ListAccountRolesCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n ...(isSerializableHeaderValue(input.accessToken) && { \"x-amz-sso_bearer_token\": input.accessToken }),\n };\n const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\"}` + \"/assignment/roles\";\n const query = {\n ...(input.nextToken !== undefined && { next_token: input.nextToken }),\n ...(input.maxResults !== undefined && { max_result: input.maxResults.toString() }),\n ...(input.accountId !== undefined && { account_id: input.accountId }),\n };\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restJson1ListAccountRolesCommand = serializeAws_restJson1ListAccountRolesCommand;\nconst serializeAws_restJson1ListAccountsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n ...(isSerializableHeaderValue(input.accessToken) && { \"x-amz-sso_bearer_token\": input.accessToken }),\n };\n const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\"}` + \"/assignment/accounts\";\n const query = {\n ...(input.nextToken !== undefined && { next_token: input.nextToken }),\n ...(input.maxResults !== undefined && { max_result: input.maxResults.toString() }),\n };\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexports.serializeAws_restJson1ListAccountsCommand = serializeAws_restJson1ListAccountsCommand;\nconst serializeAws_restJson1LogoutCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n ...(isSerializableHeaderValue(input.accessToken) && { \"x-amz-sso_bearer_token\": input.accessToken }),\n };\n const resolvedPath = `${(basePath === null || basePath === void 0 ? void 0 : basePath.endsWith(\"/\")) ? basePath.slice(0, -1) : basePath || \"\"}` + \"/logout\";\n let body;\n return new protocol_http_1.HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexports.serializeAws_restJson1LogoutCommand = serializeAws_restJson1LogoutCommand;\nconst deserializeAws_restJson1GetRoleCredentialsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1GetRoleCredentialsCommandError(output, context);\n }\n const contents = {\n $metadata: deserializeMetadata(output),\n roleCredentials: undefined,\n };\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.roleCredentials !== undefined && data.roleCredentials !== null) {\n contents.roleCredentials = deserializeAws_restJson1RoleCredentials(data.roleCredentials, context);\n }\n return Promise.resolve(contents);\n};\nexports.deserializeAws_restJson1GetRoleCredentialsCommand = deserializeAws_restJson1GetRoleCredentialsCommand;\nconst deserializeAws_restJson1GetRoleCredentialsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response;\n let errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n response = new SSOServiceException_1.SSOServiceException({\n name: parsedBody.code || parsedBody.Code || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n });\n throw (0, smithy_client_1.decorateServiceException)(response, parsedBody);\n }\n};\nconst deserializeAws_restJson1ListAccountRolesCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1ListAccountRolesCommandError(output, context);\n }\n const contents = {\n $metadata: deserializeMetadata(output),\n nextToken: undefined,\n roleList: undefined,\n };\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.nextToken !== undefined && data.nextToken !== null) {\n contents.nextToken = (0, smithy_client_1.expectString)(data.nextToken);\n }\n if (data.roleList !== undefined && data.roleList !== null) {\n contents.roleList = deserializeAws_restJson1RoleListType(data.roleList, context);\n }\n return Promise.resolve(contents);\n};\nexports.deserializeAws_restJson1ListAccountRolesCommand = deserializeAws_restJson1ListAccountRolesCommand;\nconst deserializeAws_restJson1ListAccountRolesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response;\n let errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n response = new SSOServiceException_1.SSOServiceException({\n name: parsedBody.code || parsedBody.Code || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n });\n throw (0, smithy_client_1.decorateServiceException)(response, parsedBody);\n }\n};\nconst deserializeAws_restJson1ListAccountsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1ListAccountsCommandError(output, context);\n }\n const contents = {\n $metadata: deserializeMetadata(output),\n accountList: undefined,\n nextToken: undefined,\n };\n const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), \"body\");\n if (data.accountList !== undefined && data.accountList !== null) {\n contents.accountList = deserializeAws_restJson1AccountListType(data.accountList, context);\n }\n if (data.nextToken !== undefined && data.nextToken !== null) {\n contents.nextToken = (0, smithy_client_1.expectString)(data.nextToken);\n }\n return Promise.resolve(contents);\n};\nexports.deserializeAws_restJson1ListAccountsCommand = deserializeAws_restJson1ListAccountsCommand;\nconst deserializeAws_restJson1ListAccountsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response;\n let errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"ResourceNotFoundException\":\n case \"com.amazonaws.sso#ResourceNotFoundException\":\n throw await deserializeAws_restJson1ResourceNotFoundExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n response = new SSOServiceException_1.SSOServiceException({\n name: parsedBody.code || parsedBody.Code || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n });\n throw (0, smithy_client_1.decorateServiceException)(response, parsedBody);\n }\n};\nconst deserializeAws_restJson1LogoutCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return deserializeAws_restJson1LogoutCommandError(output, context);\n }\n const contents = {\n $metadata: deserializeMetadata(output),\n };\n await collectBody(output.body, context);\n return Promise.resolve(contents);\n};\nexports.deserializeAws_restJson1LogoutCommand = deserializeAws_restJson1LogoutCommand;\nconst deserializeAws_restJson1LogoutCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseBody(output.body, context),\n };\n let response;\n let errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidRequestException\":\n case \"com.amazonaws.sso#InvalidRequestException\":\n throw await deserializeAws_restJson1InvalidRequestExceptionResponse(parsedOutput, context);\n case \"TooManyRequestsException\":\n case \"com.amazonaws.sso#TooManyRequestsException\":\n throw await deserializeAws_restJson1TooManyRequestsExceptionResponse(parsedOutput, context);\n case \"UnauthorizedException\":\n case \"com.amazonaws.sso#UnauthorizedException\":\n throw await deserializeAws_restJson1UnauthorizedExceptionResponse(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n response = new SSOServiceException_1.SSOServiceException({\n name: parsedBody.code || parsedBody.Code || errorCode,\n $fault: \"client\",\n $metadata: deserializeMetadata(output),\n });\n throw (0, smithy_client_1.decorateServiceException)(response, parsedBody);\n }\n};\nconst deserializeAws_restJson1InvalidRequestExceptionResponse = async (parsedOutput, context) => {\n const contents = {};\n const data = parsedOutput.body;\n if (data.message !== undefined && data.message !== null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.InvalidRequestException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1ResourceNotFoundExceptionResponse = async (parsedOutput, context) => {\n const contents = {};\n const data = parsedOutput.body;\n if (data.message !== undefined && data.message !== null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.ResourceNotFoundException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1TooManyRequestsExceptionResponse = async (parsedOutput, context) => {\n const contents = {};\n const data = parsedOutput.body;\n if (data.message !== undefined && data.message !== null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.TooManyRequestsException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1UnauthorizedExceptionResponse = async (parsedOutput, context) => {\n const contents = {};\n const data = parsedOutput.body;\n if (data.message !== undefined && data.message !== null) {\n contents.message = (0, smithy_client_1.expectString)(data.message);\n }\n const exception = new models_0_1.UnauthorizedException({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);\n};\nconst deserializeAws_restJson1AccountInfo = (output, context) => {\n return {\n accountId: (0, smithy_client_1.expectString)(output.accountId),\n accountName: (0, smithy_client_1.expectString)(output.accountName),\n emailAddress: (0, smithy_client_1.expectString)(output.emailAddress),\n };\n};\nconst deserializeAws_restJson1AccountListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1AccountInfo(entry, context);\n });\n return retVal;\n};\nconst deserializeAws_restJson1RoleCredentials = (output, context) => {\n return {\n accessKeyId: (0, smithy_client_1.expectString)(output.accessKeyId),\n expiration: (0, smithy_client_1.expectLong)(output.expiration),\n secretAccessKey: (0, smithy_client_1.expectString)(output.secretAccessKey),\n sessionToken: (0, smithy_client_1.expectString)(output.sessionToken),\n };\n};\nconst deserializeAws_restJson1RoleInfo = (output, context) => {\n return {\n accountId: (0, smithy_client_1.expectString)(output.accountId),\n roleName: (0, smithy_client_1.expectString)(output.roleName),\n };\n};\nconst deserializeAws_restJson1RoleListType = (output, context) => {\n const retVal = (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restJson1RoleInfo(entry, context);\n });\n return retVal;\n};\nconst deserializeMetadata = (output) => {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst isSerializableHeaderValue = (value) => value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n});\nconst loadRestJsonErrorCode = (output, data) => {\n const findKey = (object, key) => Object.keys(object).find((k) => k.toLowerCase() === key.toLowerCase());\n const sanitizeErrorCode = (rawValue) => {\n let cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n const headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n return \"\";\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetRoleCredentialsCommand = void 0;\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass GetRoleCredentialsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"GetRoleCredentialsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.GetRoleCredentialsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.GetRoleCredentialsResponse.filterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1GetRoleCredentialsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1GetRoleCredentialsCommand)(output, context);\n }\n}\nexports.GetRoleCredentialsCommand = GetRoleCredentialsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListAccountRolesCommand = void 0;\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass ListAccountRolesCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"ListAccountRolesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListAccountRolesRequest.filterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListAccountRolesResponse.filterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1ListAccountRolesCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1ListAccountRolesCommand)(output, context);\n }\n}\nexports.ListAccountRolesCommand = ListAccountRolesCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ListAccountsCommand = void 0;\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass ListAccountsCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"ListAccountsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.ListAccountsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: models_0_1.ListAccountsResponse.filterSensitiveLog,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1ListAccountsCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1ListAccountsCommand)(output, context);\n }\n}\nexports.ListAccountsCommand = ListAccountsCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogoutCommand = void 0;\nconst middleware_serde_1 = require(\"@aws-sdk/middleware-serde\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst models_0_1 = require(\"../models/models_0\");\nconst Aws_restJson1_1 = require(\"../protocols/Aws_restJson1\");\nclass LogoutCommand extends smithy_client_1.Command {\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"SSOClient\";\n const commandName = \"LogoutCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: models_0_1.LogoutRequest.filterSensitiveLog,\n outputFilterSensitiveLog: (output) => output,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return (0, Aws_restJson1_1.serializeAws_restJson1LogoutCommand)(input, context);\n }\n deserialize(output, context) {\n return (0, Aws_restJson1_1.deserializeAws_restJson1LogoutCommand)(output, context);\n }\n}\nexports.LogoutCommand = LogoutCommand;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.booleanSelector = exports.SelectorType = void 0;\nvar SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType = exports.SelectorType || (exports.SelectorType = {}));\nconst booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\nexports.booleanSelector = booleanSelector;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./booleanSelector\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = exports.DEFAULT_USE_DUALSTACK_ENDPOINT = exports.CONFIG_USE_DUALSTACK_ENDPOINT = exports.ENV_USE_DUALSTACK_ENDPOINT = void 0;\nconst util_config_provider_1 = require(\"@aws-sdk/util-config-provider\");\nexports.ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexports.CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexports.DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexports.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => (0, util_config_provider_1.booleanSelector)(env, exports.ENV_USE_DUALSTACK_ENDPOINT, util_config_provider_1.SelectorType.ENV),\n configFileSelector: (profile) => (0, util_config_provider_1.booleanSelector)(profile, exports.CONFIG_USE_DUALSTACK_ENDPOINT, util_config_provider_1.SelectorType.CONFIG),\n default: false,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = exports.DEFAULT_USE_FIPS_ENDPOINT = exports.CONFIG_USE_FIPS_ENDPOINT = exports.ENV_USE_FIPS_ENDPOINT = void 0;\nconst util_config_provider_1 = require(\"@aws-sdk/util-config-provider\");\nexports.ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexports.CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexports.DEFAULT_USE_FIPS_ENDPOINT = false;\nexports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => (0, util_config_provider_1.booleanSelector)(env, exports.ENV_USE_FIPS_ENDPOINT, util_config_provider_1.SelectorType.ENV),\n configFileSelector: (profile) => (0, util_config_provider_1.booleanSelector)(profile, exports.CONFIG_USE_FIPS_ENDPOINT, util_config_provider_1.SelectorType.CONFIG),\n default: false,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalizeProvider = void 0;\nconst normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\nexports.normalizeProvider = normalizeProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./normalizeProvider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveCustomEndpointsConfig = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst resolveCustomEndpointsConfig = (input) => {\n var _a;\n const { endpoint, urlParser } = input;\n return {\n ...input,\n tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true,\n endpoint: (0, util_middleware_1.normalizeProvider)(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint),\n isCustomEndpoint: true,\n useDualstackEndpoint: (0, util_middleware_1.normalizeProvider)(input.useDualstackEndpoint),\n };\n};\nexports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEndpointFromRegion = void 0;\nconst getEndpointFromRegion = async (input) => {\n var _a;\n const { tls = true } = input;\n const region = await input.region();\n const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n const useDualstackEndpoint = await input.useDualstackEndpoint();\n const useFipsEndpoint = await input.useFipsEndpoint();\n const { hostname } = (_a = (await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }))) !== null && _a !== void 0 ? _a : {};\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return input.urlParser(`${tls ? \"https:\" : \"http:\"}//${hostname}`);\n};\nexports.getEndpointFromRegion = getEndpointFromRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveEndpointsConfig = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst getEndpointFromRegion_1 = require(\"./utils/getEndpointFromRegion\");\nconst resolveEndpointsConfig = (input) => {\n var _a;\n const useDualstackEndpoint = (0, util_middleware_1.normalizeProvider)(input.useDualstackEndpoint);\n const { endpoint, useFipsEndpoint, urlParser } = input;\n return {\n ...input,\n tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true,\n endpoint: endpoint\n ? (0, util_middleware_1.normalizeProvider)(typeof endpoint === \"string\" ? urlParser(endpoint) : endpoint)\n : () => (0, getEndpointFromRegion_1.getEndpointFromRegion)({ ...input, useDualstackEndpoint, useFipsEndpoint }),\n isCustomEndpoint: endpoint ? true : false,\n useDualstackEndpoint,\n };\n};\nexports.resolveEndpointsConfig = resolveEndpointsConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./NodeUseDualstackEndpointConfigOptions\"), exports);\ntslib_1.__exportStar(require(\"./NodeUseFipsEndpointConfigOptions\"), exports);\ntslib_1.__exportStar(require(\"./resolveCustomEndpointsConfig\"), exports);\ntslib_1.__exportStar(require(\"./resolveEndpointsConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = exports.NODE_REGION_CONFIG_OPTIONS = exports.REGION_INI_NAME = exports.REGION_ENV_NAME = void 0;\nexports.REGION_ENV_NAME = \"AWS_REGION\";\nexports.REGION_INI_NAME = \"region\";\nexports.NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.REGION_ENV_NAME],\n configFileSelector: (profile) => profile[exports.REGION_INI_NAME],\n default: () => {\n throw new Error(\"Region is missing\");\n },\n};\nexports.NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isFipsRegion = void 0;\nconst isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\nexports.isFipsRegion = isFipsRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRealRegion = void 0;\nconst isFipsRegion_1 = require(\"./isFipsRegion\");\nconst getRealRegion = (region) => (0, isFipsRegion_1.isFipsRegion)(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\nexports.getRealRegion = getRealRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveRegionConfig = void 0;\nconst getRealRegion_1 = require(\"./getRealRegion\");\nconst isFipsRegion_1 = require(\"./isFipsRegion\");\nconst resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return (0, getRealRegion_1.getRealRegion)(region);\n }\n const providedRegion = await region();\n return (0, getRealRegion_1.getRealRegion)(providedRegion);\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if ((0, isFipsRegion_1.isFipsRegion)(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint === \"boolean\" ? Promise.resolve(useFipsEndpoint) : useFipsEndpoint();\n },\n };\n};\nexports.resolveRegionConfig = resolveRegionConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./config\"), exports);\ntslib_1.__exportStar(require(\"./resolveRegionConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHostnameFromVariants = void 0;\nconst getHostnameFromVariants = (variants = [], { useFipsEndpoint, useDualstackEndpoint }) => {\n var _a;\n return (_a = variants.find(({ tags }) => useFipsEndpoint === tags.includes(\"fips\") && useDualstackEndpoint === tags.includes(\"dualstack\"))) === null || _a === void 0 ? void 0 : _a.hostname;\n};\nexports.getHostnameFromVariants = getHostnameFromVariants;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResolvedHostname = void 0;\nconst getResolvedHostname = (resolvedRegion, { regionHostname, partitionHostname }) => regionHostname\n ? regionHostname\n : partitionHostname\n ? partitionHostname.replace(\"{region}\", resolvedRegion)\n : undefined;\nexports.getResolvedHostname = getResolvedHostname;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResolvedPartition = void 0;\nconst getResolvedPartition = (region, { partitionHash }) => { var _a; return (_a = Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region))) !== null && _a !== void 0 ? _a : \"aws\"; };\nexports.getResolvedPartition = getResolvedPartition;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getResolvedSigningRegion = void 0;\nconst getResolvedSigningRegion = (hostname, { signingRegion, regionRegex, useFipsEndpoint }) => {\n if (signingRegion) {\n return signingRegion;\n }\n else if (useFipsEndpoint) {\n const regionRegexJs = regionRegex.replace(\"\\\\\\\\\", \"\\\\\").replace(/^\\^/g, \"\\\\.\").replace(/\\$$/g, \"\\\\.\");\n const regionRegexmatchArray = hostname.match(regionRegexJs);\n if (regionRegexmatchArray) {\n return regionRegexmatchArray[0].slice(1, -1);\n }\n }\n};\nexports.getResolvedSigningRegion = getResolvedSigningRegion;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRegionInfo = void 0;\nconst getHostnameFromVariants_1 = require(\"./getHostnameFromVariants\");\nconst getResolvedHostname_1 = require(\"./getResolvedHostname\");\nconst getResolvedPartition_1 = require(\"./getResolvedPartition\");\nconst getResolvedSigningRegion_1 = require(\"./getResolvedSigningRegion\");\nconst getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint = false, signingService, regionHash, partitionHash, }) => {\n var _a, _b, _c, _d, _e, _f;\n const partition = (0, getResolvedPartition_1.getResolvedPartition)(region, { partitionHash });\n const resolvedRegion = region in regionHash ? region : (_b = (_a = partitionHash[partition]) === null || _a === void 0 ? void 0 : _a.endpoint) !== null && _b !== void 0 ? _b : region;\n const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint };\n const regionHostname = (0, getHostnameFromVariants_1.getHostnameFromVariants)((_c = regionHash[resolvedRegion]) === null || _c === void 0 ? void 0 : _c.variants, hostnameOptions);\n const partitionHostname = (0, getHostnameFromVariants_1.getHostnameFromVariants)((_d = partitionHash[partition]) === null || _d === void 0 ? void 0 : _d.variants, hostnameOptions);\n const hostname = (0, getResolvedHostname_1.getResolvedHostname)(resolvedRegion, { regionHostname, partitionHostname });\n if (hostname === undefined) {\n throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`);\n }\n const signingRegion = (0, getResolvedSigningRegion_1.getResolvedSigningRegion)(hostname, {\n signingRegion: (_e = regionHash[resolvedRegion]) === null || _e === void 0 ? void 0 : _e.signingRegion,\n regionRegex: partitionHash[partition].regionRegex,\n useFipsEndpoint,\n });\n return {\n partition,\n signingService,\n hostname,\n ...(signingRegion && { signingRegion }),\n ...(((_f = regionHash[resolvedRegion]) === null || _f === void 0 ? void 0 : _f.signingService) && {\n signingService: regionHash[resolvedRegion].signingService,\n }),\n };\n};\nexports.getRegionInfo = getRegionInfo;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./PartitionHash\"), exports);\ntslib_1.__exportStar(require(\"./RegionHash\"), exports);\ntslib_1.__exportStar(require(\"./getRegionInfo\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./endpointsConfig\"), exports);\ntslib_1.__exportStar(require(\"./regionConfig\"), exports);\ntslib_1.__exportStar(require(\"./regionInfo\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getContentLengthPlugin = exports.contentLengthMiddlewareOptions = exports.contentLengthMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nfunction contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexports.contentLengthMiddleware = contentLengthMiddleware;\nexports.contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nconst getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), exports.contentLengthMiddlewareOptions);\n },\n});\nexports.getContentLengthPlugin = getContentLengthPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getHostHeaderPlugin = exports.hostHeaderMiddlewareOptions = exports.hostHeaderMiddleware = exports.resolveHostHeaderConfig = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nfunction resolveHostHeaderConfig(input) {\n return input;\n}\nexports.resolveHostHeaderConfig = resolveHostHeaderConfig;\nconst hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!protocol_http_1.HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return next(args);\n};\nexports.hostHeaderMiddleware = hostHeaderMiddleware;\nexports.hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nconst getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.hostHeaderMiddleware)(options), exports.hostHeaderMiddlewareOptions);\n },\n});\nexports.getHostHeaderPlugin = getHostHeaderPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLoggerPlugin = exports.loggerMiddlewareOptions = exports.loggerMiddleware = void 0;\nconst loggerMiddleware = () => (next, context) => async (args) => {\n const { clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog } = context;\n const response = await next(args);\n if (!logger) {\n return response;\n }\n if (typeof logger.info === \"function\") {\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger.info({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return response;\n};\nexports.loggerMiddleware = loggerMiddleware;\nexports.loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nconst getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.loggerMiddleware)(), exports.loggerMiddlewareOptions);\n },\n});\nexports.getLoggerPlugin = getLoggerPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./loggerMiddleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_RETRY_MODE = exports.DEFAULT_MAX_ATTEMPTS = exports.RETRY_MODES = void 0;\nvar RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES = exports.RETRY_MODES || (exports.RETRY_MODES = {}));\nexports.DEFAULT_MAX_ATTEMPTS = 3;\nexports.DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TRANSIENT_ERROR_STATUS_CODES = exports.TRANSIENT_ERROR_CODES = exports.THROTTLING_ERROR_CODES = exports.CLOCK_SKEW_ERROR_CODES = void 0;\nexports.CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexports.THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexports.TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexports.TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTransientError = exports.isThrottlingError = exports.isClockSkewError = exports.isRetryableByTrait = void 0;\nconst constants_1 = require(\"./constants\");\nconst isRetryableByTrait = (error) => error.$retryable !== undefined;\nexports.isRetryableByTrait = isRetryableByTrait;\nconst isClockSkewError = (error) => constants_1.CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexports.isClockSkewError = isClockSkewError;\nconst isThrottlingError = (error) => {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n constants_1.THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexports.isThrottlingError = isThrottlingError;\nconst isTransientError = (error) => {\n var _a;\n return constants_1.TRANSIENT_ERROR_CODES.includes(error.name) ||\n constants_1.TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\nexports.isTransientError = isTransientError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultRateLimiter = void 0;\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nclass DefaultRateLimiter {\n constructor(options) {\n var _a, _b, _c, _d, _e;\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = (_a = options === null || options === void 0 ? void 0 : options.beta) !== null && _a !== void 0 ? _a : 0.7;\n this.minCapacity = (_b = options === null || options === void 0 ? void 0 : options.minCapacity) !== null && _b !== void 0 ? _b : 1;\n this.minFillRate = (_c = options === null || options === void 0 ? void 0 : options.minFillRate) !== null && _c !== void 0 ? _c : 0.5;\n this.scaleConstant = (_d = options === null || options === void 0 ? void 0 : options.scaleConstant) !== null && _d !== void 0 ? _d : 0.4;\n this.smooth = (_e = options === null || options === void 0 ? void 0 : options.smooth) !== null && _e !== void 0 ? _e : 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if ((0, service_error_classification_1.isThrottlingError)(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\nexports.DefaultRateLimiter = DefaultRateLimiter;\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.REQUEST_HEADER = exports.INVOCATION_ID_HEADER = exports.NO_RETRY_INCREMENT = exports.TIMEOUT_RETRY_COST = exports.RETRY_COST = exports.INITIAL_RETRY_TOKENS = exports.THROTTLING_RETRY_DELAY_BASE = exports.MAXIMUM_RETRY_DELAY = exports.DEFAULT_RETRY_DELAY_BASE = void 0;\nexports.DEFAULT_RETRY_DELAY_BASE = 100;\nexports.MAXIMUM_RETRY_DELAY = 20 * 1000;\nexports.THROTTLING_RETRY_DELAY_BASE = 500;\nexports.INITIAL_RETRY_TOKENS = 500;\nexports.RETRY_COST = 5;\nexports.TIMEOUT_RETRY_COST = 10;\nexports.NO_RETRY_INCREMENT = 1;\nexports.INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexports.REQUEST_HEADER = \"amz-sdk-request\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDefaultRetryQuota = void 0;\nconst constants_1 = require(\"./constants\");\nconst getDefaultRetryQuota = (initialRetryTokens, options) => {\n var _a, _b, _c;\n const MAX_CAPACITY = initialRetryTokens;\n const noRetryIncrement = (_a = options === null || options === void 0 ? void 0 : options.noRetryIncrement) !== null && _a !== void 0 ? _a : constants_1.NO_RETRY_INCREMENT;\n const retryCost = (_b = options === null || options === void 0 ? void 0 : options.retryCost) !== null && _b !== void 0 ? _b : constants_1.RETRY_COST;\n const timeoutRetryCost = (_c = options === null || options === void 0 ? void 0 : options.timeoutRetryCost) !== null && _c !== void 0 ? _c : constants_1.TIMEOUT_RETRY_COST;\n let availableCapacity = initialRetryTokens;\n const getCapacityAmount = (error) => (error.name === \"TimeoutError\" ? timeoutRetryCost : retryCost);\n const hasRetryTokens = (error) => getCapacityAmount(error) <= availableCapacity;\n const retrieveRetryTokens = (error) => {\n if (!hasRetryTokens(error)) {\n throw new Error(\"No retry token available\");\n }\n const capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n const releaseRetryTokens = (capacityReleaseAmount) => {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : noRetryIncrement;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens,\n retrieveRetryTokens,\n releaseRetryTokens,\n });\n};\nexports.getDefaultRetryQuota = getDefaultRetryQuota;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultDelayDecider = void 0;\nconst constants_1 = require(\"./constants\");\nconst defaultDelayDecider = (delayBase, attempts) => Math.floor(Math.min(constants_1.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\nexports.defaultDelayDecider = defaultDelayDecider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultRetryDecider = void 0;\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nconst defaultRetryDecider = (error) => {\n if (!error) {\n return false;\n }\n return (0, service_error_classification_1.isRetryableByTrait)(error) || (0, service_error_classification_1.isClockSkewError)(error) || (0, service_error_classification_1.isThrottlingError)(error) || (0, service_error_classification_1.isTransientError)(error);\n};\nexports.defaultRetryDecider = defaultRetryDecider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StandardRetryStrategy = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst service_error_classification_1 = require(\"@aws-sdk/service-error-classification\");\nconst uuid_1 = require(\"uuid\");\nconst config_1 = require(\"./config\");\nconst constants_1 = require(\"./constants\");\nconst defaultRetryQuota_1 = require(\"./defaultRetryQuota\");\nconst delayDecider_1 = require(\"./delayDecider\");\nconst retryDecider_1 = require(\"./retryDecider\");\nclass StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = config_1.RETRY_MODES.STANDARD;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : retryDecider_1.defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : delayDecider_1.defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : (0, defaultRetryQuota_1.getDefaultRetryQuota)(constants_1.INITIAL_RETRY_TOKENS);\n }\n shouldRetry(error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n }\n async getMaxAttempts() {\n let maxAttempts;\n try {\n maxAttempts = await this.maxAttemptsProvider();\n }\n catch (error) {\n maxAttempts = config_1.DEFAULT_MAX_ATTEMPTS;\n }\n return maxAttempts;\n }\n async retry(next, args, options) {\n let retryTokenAmount;\n let attempts = 0;\n let totalDelay = 0;\n const maxAttempts = await this.getMaxAttempts();\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n request.headers[constants_1.INVOCATION_ID_HEADER] = (0, uuid_1.v4)();\n }\n while (true) {\n try {\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n request.headers[constants_1.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n if (options === null || options === void 0 ? void 0 : options.beforeRequest) {\n await options.beforeRequest();\n }\n const { response, output } = await next(args);\n if (options === null || options === void 0 ? void 0 : options.afterRequest) {\n options.afterRequest(response);\n }\n this.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return { response, output };\n }\n catch (e) {\n const err = asSdkError(e);\n attempts++;\n if (this.shouldRetry(err, attempts, maxAttempts)) {\n retryTokenAmount = this.retryQuota.retrieveRetryTokens(err);\n const delay = this.delayDecider((0, service_error_classification_1.isThrottlingError)(err) ? constants_1.THROTTLING_RETRY_DELAY_BASE : constants_1.DEFAULT_RETRY_DELAY_BASE, attempts);\n totalDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n continue;\n }\n if (!err.$metadata) {\n err.$metadata = {};\n }\n err.$metadata.attempts = attempts;\n err.$metadata.totalRetryDelay = totalDelay;\n throw err;\n }\n }\n }\n}\nexports.StandardRetryStrategy = StandardRetryStrategy;\nconst asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AdaptiveRetryStrategy = void 0;\nconst config_1 = require(\"./config\");\nconst DefaultRateLimiter_1 = require(\"./DefaultRateLimiter\");\nconst StandardRetryStrategy_1 = require(\"./StandardRetryStrategy\");\nclass AdaptiveRetryStrategy extends StandardRetryStrategy_1.StandardRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter, ...superOptions } = options !== null && options !== void 0 ? options : {};\n super(maxAttemptsProvider, superOptions);\n this.rateLimiter = rateLimiter !== null && rateLimiter !== void 0 ? rateLimiter : new DefaultRateLimiter_1.DefaultRateLimiter();\n this.mode = config_1.RETRY_MODES.ADAPTIVE;\n }\n async retry(next, args) {\n return super.retry(next, args, {\n beforeRequest: async () => {\n return this.rateLimiter.getSendToken();\n },\n afterRequest: (response) => {\n this.rateLimiter.updateClientSendingRate(response);\n },\n });\n }\n}\nexports.AdaptiveRetryStrategy = AdaptiveRetryStrategy;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = exports.CONFIG_RETRY_MODE = exports.ENV_RETRY_MODE = exports.resolveRetryConfig = exports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = exports.CONFIG_MAX_ATTEMPTS = exports.ENV_MAX_ATTEMPTS = void 0;\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst AdaptiveRetryStrategy_1 = require(\"./AdaptiveRetryStrategy\");\nconst config_1 = require(\"./config\");\nconst StandardRetryStrategy_1 = require(\"./StandardRetryStrategy\");\nexports.ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexports.CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexports.NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[exports.ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${exports.ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[exports.CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${exports.CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: config_1.DEFAULT_MAX_ATTEMPTS,\n};\nconst resolveRetryConfig = (input) => {\n var _a;\n const maxAttempts = (0, util_middleware_1.normalizeProvider)((_a = input.maxAttempts) !== null && _a !== void 0 ? _a : config_1.DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (input.retryStrategy) {\n return input.retryStrategy;\n }\n const retryMode = await (0, util_middleware_1.normalizeProvider)(input.retryMode)();\n if (retryMode === config_1.RETRY_MODES.ADAPTIVE) {\n return new AdaptiveRetryStrategy_1.AdaptiveRetryStrategy(maxAttempts);\n }\n return new StandardRetryStrategy_1.StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexports.resolveRetryConfig = resolveRetryConfig;\nexports.ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexports.CONFIG_RETRY_MODE = \"retry_mode\";\nexports.NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[exports.ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[exports.CONFIG_RETRY_MODE],\n default: config_1.DEFAULT_RETRY_MODE,\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOmitRetryHeadersPlugin = exports.omitRetryHeadersMiddlewareOptions = exports.omitRetryHeadersMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst constants_1 = require(\"./constants\");\nconst omitRetryHeadersMiddleware = () => (next) => async (args) => {\n const { request } = args;\n if (protocol_http_1.HttpRequest.isInstance(request)) {\n delete request.headers[constants_1.INVOCATION_ID_HEADER];\n delete request.headers[constants_1.REQUEST_HEADER];\n }\n return next(args);\n};\nexports.omitRetryHeadersMiddleware = omitRetryHeadersMiddleware;\nexports.omitRetryHeadersMiddlewareOptions = {\n name: \"omitRetryHeadersMiddleware\",\n tags: [\"RETRY\", \"HEADERS\", \"OMIT_RETRY_HEADERS\"],\n relation: \"before\",\n toMiddleware: \"awsAuthMiddleware\",\n override: true,\n};\nconst getOmitRetryHeadersPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo((0, exports.omitRetryHeadersMiddleware)(), exports.omitRetryHeadersMiddlewareOptions);\n },\n});\nexports.getOmitRetryHeadersPlugin = getOmitRetryHeadersPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRetryPlugin = exports.retryMiddlewareOptions = exports.retryMiddleware = void 0;\nconst retryMiddleware = (options) => (next, context) => async (args) => {\n const retryStrategy = await options.retryStrategy();\n if (retryStrategy === null || retryStrategy === void 0 ? void 0 : retryStrategy.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n};\nexports.retryMiddleware = retryMiddleware;\nexports.retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nconst getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.retryMiddleware)(options), exports.retryMiddlewareOptions);\n },\n});\nexports.getRetryPlugin = getRetryPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./AdaptiveRetryStrategy\"), exports);\ntslib_1.__exportStar(require(\"./DefaultRateLimiter\"), exports);\ntslib_1.__exportStar(require(\"./StandardRetryStrategy\"), exports);\ntslib_1.__exportStar(require(\"./config\"), exports);\ntslib_1.__exportStar(require(\"./configurations\"), exports);\ntslib_1.__exportStar(require(\"./delayDecider\"), exports);\ntslib_1.__exportStar(require(\"./omitRetryHeadersMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./retryDecider\"), exports);\ntslib_1.__exportStar(require(\"./retryMiddleware\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveUserAgentConfig = void 0;\nfunction resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\nexports.resolveUserAgentConfig = resolveUserAgentConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UA_ESCAPE_REGEX = exports.SPACE = exports.X_AMZ_USER_AGENT = exports.USER_AGENT = void 0;\nexports.USER_AGENT = \"user-agent\";\nexports.X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexports.SPACE = \" \";\nexports.UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUserAgentPlugin = exports.getUserAgentMiddlewareOptions = exports.userAgentMiddleware = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst constants_1 = require(\"./constants\");\nconst userAgentMiddleware = (options) => (next, context) => async (args) => {\n var _a, _b;\n const { request } = args;\n if (!protocol_http_1.HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(constants_1.SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(constants_1.SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[constants_1.X_AMZ_USER_AGENT] = headers[constants_1.X_AMZ_USER_AGENT]\n ? `${headers[constants_1.USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[constants_1.USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[constants_1.X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nexports.userAgentMiddleware = userAgentMiddleware;\nconst escapeUserAgent = ([name, version]) => {\n const prefixSeparatorIndex = name.indexOf(\"/\");\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .map((item) => item === null || item === void 0 ? void 0 : item.replace(constants_1.UA_ESCAPE_REGEX, \"_\"))\n .join(\"/\");\n};\nexports.getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nconst getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add((0, exports.userAgentMiddleware)(config), exports.getUserAgentMiddlewareOptions);\n },\n});\nexports.getUserAgentPlugin = getUserAgentPlugin;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./configurations\"), exports);\ntslib_1.__exportStar(require(\"./user-agent-middleware\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArrayBuffer = void 0;\nconst isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\nexports.isArrayBuffer = isArrayBuffer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromString = exports.fromArrayBuffer = void 0;\nconst is_array_buffer_1 = require(\"@aws-sdk/is-array-buffer\");\nconst buffer_1 = require(\"buffer\");\nconst fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n if (!(0, is_array_buffer_1.isArrayBuffer)(input)) {\n throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n }\n return buffer_1.Buffer.from(input, offset, length);\n};\nexports.fromArrayBuffer = fromArrayBuffer;\nconst fromString = (input, encoding) => {\n if (typeof input !== \"string\") {\n throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n }\n return encoding ? buffer_1.Buffer.from(input, encoding) : buffer_1.Buffer.from(input);\n};\nexports.fromString = fromString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hash = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst buffer_1 = require(\"buffer\");\nconst crypto_1 = require(\"crypto\");\nclass Hash {\n constructor(algorithmIdentifier, secret) {\n this.hash = secret ? (0, crypto_1.createHmac)(algorithmIdentifier, castSourceData(secret)) : (0, crypto_1.createHash)(algorithmIdentifier);\n }\n update(toHash, encoding) {\n this.hash.update(castSourceData(toHash, encoding));\n }\n digest() {\n return Promise.resolve(this.hash.digest());\n }\n}\nexports.Hash = Hash;\nfunction castSourceData(toCast, encoding) {\n if (buffer_1.Buffer.isBuffer(toCast)) {\n return toCast;\n }\n if (typeof toCast === \"string\") {\n return (0, util_buffer_from_1.fromString)(toCast, encoding);\n }\n if (ArrayBuffer.isView(toCast)) {\n return (0, util_buffer_from_1.fromArrayBuffer)(toCast.buffer, toCast.byteOffset, toCast.byteLength);\n }\n return (0, util_buffer_from_1.fromArrayBuffer)(toCast);\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromEnv = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromEnv = (envVarSelector) => async () => {\n try {\n const config = envVarSelector(process.env);\n if (config === undefined) {\n throw new Error();\n }\n return config;\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message || `Cannot load config from environment variables with getter: ${envVarSelector}`);\n }\n};\nexports.fromEnv = fromEnv;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSharedConfigFiles = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst fromSharedConfigFiles = (configSelector, { preferredFile = \"config\", ...init } = {}) => async () => {\n const profile = (0, shared_ini_file_loader_1.getProfileName)(init);\n const { configFile, credentialsFile } = await (0, shared_ini_file_loader_1.loadSharedConfigFiles)(init);\n const profileFromCredentials = credentialsFile[profile] || {};\n const profileFromConfig = configFile[profile] || {};\n const mergedProfile = preferredFile === \"config\"\n ? { ...profileFromCredentials, ...profileFromConfig }\n : { ...profileFromConfig, ...profileFromCredentials };\n try {\n const configValue = configSelector(mergedProfile);\n if (configValue === undefined) {\n throw new Error();\n }\n return configValue;\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(e.message ||\n `Cannot load config for profile ${profile} in SDK configuration files with getter: ${configSelector}`);\n }\n};\nexports.fromSharedConfigFiles = fromSharedConfigFiles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromStatic = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst isFunction = (func) => typeof func === \"function\";\nconst fromStatic = (defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, property_provider_1.fromStatic)(defaultValue);\nexports.fromStatic = fromStatic;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfig = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromEnv_1 = require(\"./fromEnv\");\nconst fromSharedConfigFiles_1 = require(\"./fromSharedConfigFiles\");\nconst fromStatic_1 = require(\"./fromStatic\");\nconst loadConfig = ({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => (0, property_provider_1.memoize)((0, property_provider_1.chain)((0, fromEnv_1.fromEnv)(environmentVariableSelector), (0, fromSharedConfigFiles_1.fromSharedConfigFiles)(configFileSelector, configuration), (0, fromStatic_1.fromStatic)(defaultValue)));\nexports.loadConfig = loadConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./configLoader\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUri = void 0;\nconst escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nexports.escapeUri = escapeUri;\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUriPath = void 0;\nconst escape_uri_1 = require(\"./escape-uri\");\nconst escapeUriPath = (uri) => uri.split(\"/\").map(escape_uri_1.escapeUri).join(\"/\");\nexports.escapeUriPath = escapeUriPath;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./escape-uri\"), exports);\ntslib_1.__exportStar(require(\"./escape-uri-path\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildQueryString = void 0;\nconst util_uri_escape_1 = require(\"@aws-sdk/util-uri-escape\");\nfunction buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = (0, util_uri_escape_1.escapeUri)(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${(0, util_uri_escape_1.escapeUri)(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${(0, util_uri_escape_1.escapeUri)(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\nexports.buildQueryString = buildQueryString;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODEJS_TIMEOUT_ERROR_CODES = void 0;\nexports.NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"EPIPE\", \"ETIMEDOUT\"];\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransformedHeaders = void 0;\nconst getTransformedHeaders = (headers) => {\n const transformedHeaders = {};\n for (const name of Object.keys(headers)) {\n const headerValues = headers[name];\n transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(\",\") : headerValues;\n }\n return transformedHeaders;\n};\nexports.getTransformedHeaders = getTransformedHeaders;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setConnectionTimeout = void 0;\nconst setConnectionTimeout = (request, reject, timeoutInMs = 0) => {\n if (!timeoutInMs) {\n return;\n }\n request.on(\"socket\", (socket) => {\n if (socket.connecting) {\n const timeoutId = setTimeout(() => {\n request.destroy();\n reject(Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), {\n name: \"TimeoutError\",\n }));\n }, timeoutInMs);\n socket.on(\"connect\", () => {\n clearTimeout(timeoutId);\n });\n }\n });\n};\nexports.setConnectionTimeout = setConnectionTimeout;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setSocketTimeout = void 0;\nconst setSocketTimeout = (request, reject, timeoutInMs = 0) => {\n request.setTimeout(timeoutInMs, () => {\n request.destroy();\n reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: \"TimeoutError\" }));\n });\n};\nexports.setSocketTimeout = setSocketTimeout;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.writeRequestBody = void 0;\nconst stream_1 = require(\"stream\");\nfunction writeRequestBody(httpRequest, request) {\n const expect = request.headers[\"Expect\"] || request.headers[\"expect\"];\n if (expect === \"100-continue\") {\n httpRequest.on(\"continue\", () => {\n writeBody(httpRequest, request.body);\n });\n }\n else {\n writeBody(httpRequest, request.body);\n }\n}\nexports.writeRequestBody = writeRequestBody;\nfunction writeBody(httpRequest, body) {\n if (body instanceof stream_1.Readable) {\n body.pipe(httpRequest);\n }\n else if (body) {\n httpRequest.end(Buffer.from(body));\n }\n else {\n httpRequest.end();\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHttpHandler = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst querystring_builder_1 = require(\"@aws-sdk/querystring-builder\");\nconst http_1 = require(\"http\");\nconst https_1 = require(\"https\");\nconst constants_1 = require(\"./constants\");\nconst get_transformed_headers_1 = require(\"./get-transformed-headers\");\nconst set_connection_timeout_1 = require(\"./set-connection-timeout\");\nconst set_socket_timeout_1 = require(\"./set-socket-timeout\");\nconst write_request_body_1 = require(\"./write-request-body\");\nclass NodeHttpHandler {\n constructor(options) {\n this.metadata = { handlerProtocol: \"http/1.1\" };\n this.configProvider = new Promise((resolve, reject) => {\n if (typeof options === \"function\") {\n options()\n .then((_options) => {\n resolve(this.resolveDefaultConfig(_options));\n })\n .catch(reject);\n }\n else {\n resolve(this.resolveDefaultConfig(options));\n }\n });\n }\n resolveDefaultConfig(options) {\n const { connectionTimeout, socketTimeout, httpAgent, httpsAgent } = options || {};\n const keepAlive = true;\n const maxSockets = 50;\n return {\n connectionTimeout,\n socketTimeout,\n httpAgent: httpAgent || new http_1.Agent({ keepAlive, maxSockets }),\n httpsAgent: httpsAgent || new https_1.Agent({ keepAlive, maxSockets }),\n };\n }\n destroy() {\n var _a, _b, _c, _d;\n (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.httpAgent) === null || _b === void 0 ? void 0 : _b.destroy();\n (_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.httpsAgent) === null || _d === void 0 ? void 0 : _d.destroy();\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n return new Promise((resolve, reject) => {\n if (!this.config) {\n throw new Error(\"Node HTTP request handler config is not resolved\");\n }\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n return;\n }\n const isSSL = request.protocol === \"https:\";\n const queryString = (0, querystring_builder_1.buildQueryString)(request.query || {});\n const nodeHttpsOptions = {\n headers: request.headers,\n host: request.hostname,\n method: request.method,\n path: queryString ? `${request.path}?${queryString}` : request.path,\n port: request.port,\n agent: isSSL ? this.config.httpsAgent : this.config.httpAgent,\n };\n const requestFunc = isSSL ? https_1.request : http_1.request;\n const req = requestFunc(nodeHttpsOptions, (res) => {\n const httpResponse = new protocol_http_1.HttpResponse({\n statusCode: res.statusCode || -1,\n headers: (0, get_transformed_headers_1.getTransformedHeaders)(res.headers),\n body: res,\n });\n resolve({ response: httpResponse });\n });\n req.on(\"error\", (err) => {\n if (constants_1.NODEJS_TIMEOUT_ERROR_CODES.includes(err.code)) {\n reject(Object.assign(err, { name: \"TimeoutError\" }));\n }\n else {\n reject(err);\n }\n });\n (0, set_connection_timeout_1.setConnectionTimeout)(req, reject, this.config.connectionTimeout);\n (0, set_socket_timeout_1.setSocketTimeout)(req, reject, this.config.socketTimeout);\n if (abortSignal) {\n abortSignal.onabort = () => {\n req.abort();\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }\n (0, write_request_body_1.writeRequestBody)(req, request);\n });\n }\n}\nexports.NodeHttpHandler = NodeHttpHandler;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHttp2Handler = void 0;\nconst protocol_http_1 = require(\"@aws-sdk/protocol-http\");\nconst querystring_builder_1 = require(\"@aws-sdk/querystring-builder\");\nconst http2_1 = require(\"http2\");\nconst get_transformed_headers_1 = require(\"./get-transformed-headers\");\nconst write_request_body_1 = require(\"./write-request-body\");\nclass NodeHttp2Handler {\n constructor({ requestTimeout, sessionTimeout, disableConcurrentStreams } = {}) {\n this.metadata = { handlerProtocol: \"h2\" };\n this.requestTimeout = requestTimeout;\n this.sessionTimeout = sessionTimeout;\n this.disableConcurrentStreams = disableConcurrentStreams;\n this.sessionCache = new Map();\n }\n destroy() {\n for (const sessions of this.sessionCache.values()) {\n sessions.forEach((session) => this.destroySession(session));\n }\n this.sessionCache.clear();\n }\n handle(request, { abortSignal } = {}) {\n return new Promise((resolve, rejectOriginal) => {\n let fulfilled = false;\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n fulfilled = true;\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n rejectOriginal(abortError);\n return;\n }\n const { hostname, method, port, protocol, path, query } = request;\n const authority = `${protocol}//${hostname}${port ? `:${port}` : \"\"}`;\n const session = this.getSession(authority, this.disableConcurrentStreams || false);\n const reject = (err) => {\n if (this.disableConcurrentStreams) {\n this.destroySession(session);\n }\n fulfilled = true;\n rejectOriginal(err);\n };\n const queryString = (0, querystring_builder_1.buildQueryString)(query || {});\n const req = session.request({\n ...request.headers,\n [http2_1.constants.HTTP2_HEADER_PATH]: queryString ? `${path}?${queryString}` : path,\n [http2_1.constants.HTTP2_HEADER_METHOD]: method,\n });\n session.ref();\n req.on(\"response\", (headers) => {\n const httpResponse = new protocol_http_1.HttpResponse({\n statusCode: headers[\":status\"] || -1,\n headers: (0, get_transformed_headers_1.getTransformedHeaders)(headers),\n body: req,\n });\n fulfilled = true;\n resolve({ response: httpResponse });\n if (this.disableConcurrentStreams) {\n session.close();\n this.deleteSessionFromCache(authority, session);\n }\n });\n const requestTimeout = this.requestTimeout;\n if (requestTimeout) {\n req.setTimeout(requestTimeout, () => {\n req.close();\n const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n });\n }\n if (abortSignal) {\n abortSignal.onabort = () => {\n req.close();\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }\n req.on(\"frameError\", (type, code, id) => {\n reject(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));\n });\n req.on(\"error\", reject);\n req.on(\"aborted\", () => {\n reject(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));\n });\n req.on(\"close\", () => {\n session.unref();\n if (this.disableConcurrentStreams) {\n session.destroy();\n }\n if (!fulfilled) {\n reject(new Error(\"Unexpected error: http2 request did not get a response\"));\n }\n });\n (0, write_request_body_1.writeRequestBody)(req, request);\n });\n }\n getSession(authority, disableConcurrentStreams) {\n const sessionCache = this.sessionCache;\n const existingSessions = sessionCache.get(authority) || [];\n if (existingSessions.length > 0 && !disableConcurrentStreams)\n return existingSessions[0];\n const newSession = (0, http2_1.connect)(authority);\n newSession.unref();\n const destroySessionCb = () => {\n this.destroySession(newSession);\n this.deleteSessionFromCache(authority, newSession);\n };\n newSession.on(\"goaway\", destroySessionCb);\n newSession.on(\"error\", destroySessionCb);\n newSession.on(\"frameError\", destroySessionCb);\n const sessionTimeout = this.sessionTimeout;\n if (sessionTimeout) {\n newSession.setTimeout(sessionTimeout, destroySessionCb);\n }\n existingSessions.push(newSession);\n sessionCache.set(authority, existingSessions);\n return newSession;\n }\n destroySession(session) {\n if (!session.destroyed) {\n session.destroy();\n }\n }\n deleteSessionFromCache(authority, session) {\n const existingSessions = this.sessionCache.get(authority) || [];\n if (!existingSessions.includes(session)) {\n return;\n }\n this.sessionCache.set(authority, existingSessions.filter((s) => s !== session));\n }\n}\nexports.NodeHttp2Handler = NodeHttp2Handler;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collector = void 0;\nconst stream_1 = require(\"stream\");\nclass Collector extends stream_1.Writable {\n constructor() {\n super(...arguments);\n this.bufferedBytes = [];\n }\n _write(chunk, encoding, callback) {\n this.bufferedBytes.push(chunk);\n callback();\n }\n}\nexports.Collector = Collector;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.streamCollector = void 0;\nconst collector_1 = require(\"./collector\");\nconst streamCollector = (stream) => new Promise((resolve, reject) => {\n const collector = new collector_1.Collector();\n stream.pipe(collector);\n stream.on(\"error\", (err) => {\n collector.end();\n reject(err);\n });\n collector.on(\"error\", reject);\n collector.on(\"finish\", function () {\n const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));\n resolve(bytes);\n });\n});\nexports.streamCollector = streamCollector;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./node-http-handler\"), exports);\ntslib_1.__exportStar(require(\"./node-http2-handler\"), exports);\ntslib_1.__exportStar(require(\"./stream-collector\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toBase64 = exports.fromBase64 = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;\nfunction fromBase64(input) {\n if ((input.length * 3) % 4 !== 0) {\n throw new TypeError(`Incorrect padding on base64 string.`);\n }\n if (!BASE64_REGEX.exec(input)) {\n throw new TypeError(`Invalid base64 string.`);\n }\n const buffer = (0, util_buffer_from_1.fromString)(input, \"base64\");\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n}\nexports.fromBase64 = fromBase64;\nfunction toBase64(input) {\n return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"base64\");\n}\nexports.toBase64 = toBase64;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateBodyLength = void 0;\nconst fs_1 = require(\"fs\");\nconst calculateBodyLength = (body) => {\n if (!body) {\n return 0;\n }\n if (typeof body === \"string\") {\n return Buffer.from(body).length;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n else if (typeof body.path === \"string\" || Buffer.isBuffer(body.path)) {\n return (0, fs_1.lstatSync)(body.path).size;\n }\n else if (typeof body.fd === \"number\") {\n return (0, fs_1.fstatSync)(body.fd).size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\nexports.calculateBodyLength = calculateBodyLength;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./calculateBodyLength\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCrtAvailable = void 0;\nconst isCrtAvailable = () => {\n try {\n if (typeof require === \"function\" && typeof module !== \"undefined\" && module.require && require(\"aws-crt\")) {\n return [\"md/crt-avail\"];\n }\n return null;\n }\n catch (e) {\n return null;\n }\n};\nexports.isCrtAvailable = isCrtAvailable;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultUserAgent = exports.UA_APP_ID_INI_NAME = exports.UA_APP_ID_ENV_NAME = void 0;\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst os_1 = require(\"os\");\nconst process_1 = require(\"process\");\nconst is_crt_available_1 = require(\"./is-crt-available\");\nexports.UA_APP_ID_ENV_NAME = \"AWS_SDK_UA_APP_ID\";\nexports.UA_APP_ID_INI_NAME = \"sdk-ua-app-id\";\nconst defaultUserAgent = ({ serviceId, clientVersion }) => {\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [`os/${(0, os_1.platform)()}`, (0, os_1.release)()],\n [\"lang/js\"],\n [\"md/nodejs\", `${process_1.versions.node}`],\n ];\n const crtAvailable = (0, is_crt_available_1.isCrtAvailable)();\n if (crtAvailable) {\n sections.push(crtAvailable);\n }\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n if (process_1.env.AWS_EXECUTION_ENV) {\n sections.push([`exec-env/${process_1.env.AWS_EXECUTION_ENV}`]);\n }\n const appIdPromise = (0, node_config_provider_1.loadConfig)({\n environmentVariableSelector: (env) => env[exports.UA_APP_ID_ENV_NAME],\n configFileSelector: (profile) => profile[exports.UA_APP_ID_INI_NAME],\n default: undefined,\n })();\n let resolvedUserAgent = undefined;\n return async () => {\n if (!resolvedUserAgent) {\n const appId = await appIdPromise;\n resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections];\n }\n return resolvedUserAgent;\n };\n};\nexports.defaultUserAgent = defaultUserAgent;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst util_buffer_from_1 = require(\"@aws-sdk/util-buffer-from\");\nconst fromUtf8 = (input) => {\n const buf = (0, util_buffer_from_1.fromString)(input, \"utf8\");\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultRegionInfoProvider = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst regionHash = {\n \"ap-northeast-1\": {\n variants: [\n {\n hostname: \"portal.sso.ap-northeast-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"ap-northeast-1\",\n },\n \"ap-northeast-2\": {\n variants: [\n {\n hostname: \"portal.sso.ap-northeast-2.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"ap-northeast-2\",\n },\n \"ap-south-1\": {\n variants: [\n {\n hostname: \"portal.sso.ap-south-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"ap-south-1\",\n },\n \"ap-southeast-1\": {\n variants: [\n {\n hostname: \"portal.sso.ap-southeast-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"ap-southeast-1\",\n },\n \"ap-southeast-2\": {\n variants: [\n {\n hostname: \"portal.sso.ap-southeast-2.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"ap-southeast-2\",\n },\n \"ca-central-1\": {\n variants: [\n {\n hostname: \"portal.sso.ca-central-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"ca-central-1\",\n },\n \"eu-central-1\": {\n variants: [\n {\n hostname: \"portal.sso.eu-central-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"eu-central-1\",\n },\n \"eu-north-1\": {\n variants: [\n {\n hostname: \"portal.sso.eu-north-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"eu-north-1\",\n },\n \"eu-west-1\": {\n variants: [\n {\n hostname: \"portal.sso.eu-west-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"eu-west-1\",\n },\n \"eu-west-2\": {\n variants: [\n {\n hostname: \"portal.sso.eu-west-2.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"eu-west-2\",\n },\n \"eu-west-3\": {\n variants: [\n {\n hostname: \"portal.sso.eu-west-3.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"eu-west-3\",\n },\n \"sa-east-1\": {\n variants: [\n {\n hostname: \"portal.sso.sa-east-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"sa-east-1\",\n },\n \"us-east-1\": {\n variants: [\n {\n hostname: \"portal.sso.us-east-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"us-east-1\",\n },\n \"us-east-2\": {\n variants: [\n {\n hostname: \"portal.sso.us-east-2.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"us-east-2\",\n },\n \"us-gov-east-1\": {\n variants: [\n {\n hostname: \"portal.sso.us-gov-east-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"us-gov-east-1\",\n },\n \"us-gov-west-1\": {\n variants: [\n {\n hostname: \"portal.sso.us-gov-west-1.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"us-gov-west-1\",\n },\n \"us-west-2\": {\n variants: [\n {\n hostname: \"portal.sso.us-west-2.amazonaws.com\",\n tags: [],\n },\n ],\n signingRegion: \"us-west-2\",\n },\n};\nconst partitionHash = {\n aws: {\n regions: [\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-northeast-3\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ap-southeast-3\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n ],\n regionRegex: \"^(us|eu|ap|sa|ca|me|af)\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"portal.sso.{region}.amazonaws.com\",\n tags: [],\n },\n {\n hostname: \"portal.sso-fips.{region}.amazonaws.com\",\n tags: [\"fips\"],\n },\n {\n hostname: \"portal.sso-fips.{region}.api.aws\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"portal.sso.{region}.api.aws\",\n tags: [\"dualstack\"],\n },\n ],\n },\n \"aws-cn\": {\n regions: [\"cn-north-1\", \"cn-northwest-1\"],\n regionRegex: \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"portal.sso.{region}.amazonaws.com.cn\",\n tags: [],\n },\n {\n hostname: \"portal.sso-fips.{region}.amazonaws.com.cn\",\n tags: [\"fips\"],\n },\n {\n hostname: \"portal.sso-fips.{region}.api.amazonwebservices.com.cn\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"portal.sso.{region}.api.amazonwebservices.com.cn\",\n tags: [\"dualstack\"],\n },\n ],\n },\n \"aws-iso\": {\n regions: [\"us-iso-east-1\", \"us-iso-west-1\"],\n regionRegex: \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"portal.sso.{region}.c2s.ic.gov\",\n tags: [],\n },\n {\n hostname: \"portal.sso-fips.{region}.c2s.ic.gov\",\n tags: [\"fips\"],\n },\n ],\n },\n \"aws-iso-b\": {\n regions: [\"us-isob-east-1\"],\n regionRegex: \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"portal.sso.{region}.sc2s.sgov.gov\",\n tags: [],\n },\n {\n hostname: \"portal.sso-fips.{region}.sc2s.sgov.gov\",\n tags: [\"fips\"],\n },\n ],\n },\n \"aws-us-gov\": {\n regions: [\"us-gov-east-1\", \"us-gov-west-1\"],\n regionRegex: \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n variants: [\n {\n hostname: \"portal.sso.{region}.amazonaws.com\",\n tags: [],\n },\n {\n hostname: \"portal.sso-fips.{region}.amazonaws.com\",\n tags: [\"fips\"],\n },\n {\n hostname: \"portal.sso-fips.{region}.api.aws\",\n tags: [\"dualstack\", \"fips\"],\n },\n {\n hostname: \"portal.sso.{region}.api.aws\",\n tags: [\"dualstack\"],\n },\n ],\n },\n};\nconst defaultRegionInfoProvider = async (region, options) => (0, config_resolver_1.getRegionInfo)(region, {\n ...options,\n signingService: \"awsssoportal\",\n regionHash,\n partitionHash,\n});\nexports.defaultRegionInfoProvider = defaultRegionInfoProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst url_parser_1 = require(\"@aws-sdk/url-parser\");\nconst endpoints_1 = require(\"./endpoints\");\nconst getRuntimeConfig = (config) => {\n var _a, _b, _c, _d, _e;\n return ({\n apiVersion: \"2019-06-10\",\n disableHostPrefix: (_a = config === null || config === void 0 ? void 0 : config.disableHostPrefix) !== null && _a !== void 0 ? _a : false,\n logger: (_b = config === null || config === void 0 ? void 0 : config.logger) !== null && _b !== void 0 ? _b : {},\n regionInfoProvider: (_c = config === null || config === void 0 ? void 0 : config.regionInfoProvider) !== null && _c !== void 0 ? _c : endpoints_1.defaultRegionInfoProvider,\n serviceId: (_d = config === null || config === void 0 ? void 0 : config.serviceId) !== null && _d !== void 0 ? _d : \"SSO\",\n urlParser: (_e = config === null || config === void 0 ? void 0 : config.urlParser) !== null && _e !== void 0 ? _e : url_parser_1.parseUrl,\n });\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IMDS_REGION_PATH = exports.DEFAULTS_MODE_OPTIONS = exports.ENV_IMDS_DISABLED = exports.AWS_DEFAULT_REGION_ENV = exports.AWS_REGION_ENV = exports.AWS_EXECUTION_ENV = void 0;\nexports.AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nexports.AWS_REGION_ENV = \"AWS_REGION\";\nexports.AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nexports.ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexports.DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nexports.IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NODE_DEFAULTS_MODE_CONFIG_OPTIONS = void 0;\nconst AWS_DEFAULTS_MODE_ENV = \"AWS_DEFAULTS_MODE\";\nconst AWS_DEFAULTS_MODE_CONFIG = \"defaults_mode\";\nexports.NODE_DEFAULTS_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n return env[AWS_DEFAULTS_MODE_ENV];\n },\n configFileSelector: (profile) => {\n return profile[AWS_DEFAULTS_MODE_CONFIG];\n },\n default: \"legacy\",\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveDefaultsModeConfig = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst constants_1 = require(\"./constants\");\nconst defaultsModeConfig_1 = require(\"./defaultsModeConfig\");\nconst resolveDefaultsModeConfig = ({ region = (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS), defaultsMode = (0, node_config_provider_1.loadConfig)(defaultsModeConfig_1.NODE_DEFAULTS_MODE_CONFIG_OPTIONS), } = {}) => (0, property_provider_1.memoize)(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode === null || mode === void 0 ? void 0 : mode.toLowerCase()) {\n case \"auto\":\n return resolveNodeDefaultsModeAuto(region);\n case \"in-region\":\n case \"cross-region\":\n case \"mobile\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode === null || mode === void 0 ? void 0 : mode.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${constants_1.DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nexports.resolveDefaultsModeConfig = resolveDefaultsModeConfig;\nconst resolveNodeDefaultsModeAuto = async (clientRegion) => {\n if (clientRegion) {\n const resolvedRegion = typeof clientRegion === \"function\" ? await clientRegion() : clientRegion;\n const inferredRegion = await inferPhysicalRegion();\n if (!inferredRegion) {\n return \"standard\";\n }\n if (resolvedRegion === inferredRegion) {\n return \"in-region\";\n }\n else {\n return \"cross-region\";\n }\n }\n return \"standard\";\n};\nconst inferPhysicalRegion = async () => {\n var _a;\n if (process.env[constants_1.AWS_EXECUTION_ENV] && (process.env[constants_1.AWS_REGION_ENV] || process.env[constants_1.AWS_DEFAULT_REGION_ENV])) {\n return (_a = process.env[constants_1.AWS_REGION_ENV]) !== null && _a !== void 0 ? _a : process.env[constants_1.AWS_DEFAULT_REGION_ENV];\n }\n if (!process.env[constants_1.ENV_IMDS_DISABLED]) {\n try {\n const endpoint = await (0, credential_provider_imds_1.getInstanceMetadataEndpoint)();\n return (await (0, credential_provider_imds_1.httpRequest)({ ...endpoint, path: constants_1.IMDS_REGION_PATH })).toString();\n }\n catch (e) {\n }\n }\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./resolveDefaultsModeConfig\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRuntimeConfig = void 0;\nconst tslib_1 = require(\"tslib\");\nconst package_json_1 = tslib_1.__importDefault(require(\"../package.json\"));\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst hash_node_1 = require(\"@aws-sdk/hash-node\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst node_config_provider_1 = require(\"@aws-sdk/node-config-provider\");\nconst node_http_handler_1 = require(\"@aws-sdk/node-http-handler\");\nconst util_base64_node_1 = require(\"@aws-sdk/util-base64-node\");\nconst util_body_length_node_1 = require(\"@aws-sdk/util-body-length-node\");\nconst util_user_agent_node_1 = require(\"@aws-sdk/util-user-agent-node\");\nconst util_utf8_node_1 = require(\"@aws-sdk/util-utf8-node\");\nconst runtimeConfig_shared_1 = require(\"./runtimeConfig.shared\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst util_defaults_mode_node_1 = require(\"@aws-sdk/util-defaults-mode-node\");\nconst getRuntimeConfig = (config) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config);\n const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode);\n const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"node\",\n defaultsMode,\n base64Decoder: (_a = config === null || config === void 0 ? void 0 : config.base64Decoder) !== null && _a !== void 0 ? _a : util_base64_node_1.fromBase64,\n base64Encoder: (_b = config === null || config === void 0 ? void 0 : config.base64Encoder) !== null && _b !== void 0 ? _b : util_base64_node_1.toBase64,\n bodyLengthChecker: (_c = config === null || config === void 0 ? void 0 : config.bodyLengthChecker) !== null && _c !== void 0 ? _c : util_body_length_node_1.calculateBodyLength,\n defaultUserAgentProvider: (_d = config === null || config === void 0 ? void 0 : config.defaultUserAgentProvider) !== null && _d !== void 0 ? _d : (0, util_user_agent_node_1.defaultUserAgent)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }),\n maxAttempts: (_e = config === null || config === void 0 ? void 0 : config.maxAttempts) !== null && _e !== void 0 ? _e : (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS),\n region: (_f = config === null || config === void 0 ? void 0 : config.region) !== null && _f !== void 0 ? _f : (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS),\n requestHandler: (_g = config === null || config === void 0 ? void 0 : config.requestHandler) !== null && _g !== void 0 ? _g : new node_http_handler_1.NodeHttpHandler(defaultConfigProvider),\n retryMode: (_h = config === null || config === void 0 ? void 0 : config.retryMode) !== null && _h !== void 0 ? _h : (0, node_config_provider_1.loadConfig)({\n ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS,\n default: async () => (await defaultConfigProvider()).retryMode || middleware_retry_1.DEFAULT_RETRY_MODE,\n }),\n sha256: (_j = config === null || config === void 0 ? void 0 : config.sha256) !== null && _j !== void 0 ? _j : hash_node_1.Hash.bind(null, \"sha256\"),\n streamCollector: (_k = config === null || config === void 0 ? void 0 : config.streamCollector) !== null && _k !== void 0 ? _k : node_http_handler_1.streamCollector,\n useDualstackEndpoint: (_l = config === null || config === void 0 ? void 0 : config.useDualstackEndpoint) !== null && _l !== void 0 ? _l : (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS),\n useFipsEndpoint: (_m = config === null || config === void 0 ? void 0 : config.useFipsEndpoint) !== null && _m !== void 0 ? _m : (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS),\n utf8Decoder: (_o = config === null || config === void 0 ? void 0 : config.utf8Decoder) !== null && _o !== void 0 ? _o : util_utf8_node_1.fromUtf8,\n utf8Encoder: (_p = config === null || config === void 0 ? void 0 : config.utf8Encoder) !== null && _p !== void 0 ? _p : util_utf8_node_1.toUtf8,\n };\n};\nexports.getRuntimeConfig = getRuntimeConfig;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOClient = void 0;\nconst config_resolver_1 = require(\"@aws-sdk/config-resolver\");\nconst middleware_content_length_1 = require(\"@aws-sdk/middleware-content-length\");\nconst middleware_host_header_1 = require(\"@aws-sdk/middleware-host-header\");\nconst middleware_logger_1 = require(\"@aws-sdk/middleware-logger\");\nconst middleware_retry_1 = require(\"@aws-sdk/middleware-retry\");\nconst middleware_user_agent_1 = require(\"@aws-sdk/middleware-user-agent\");\nconst smithy_client_1 = require(\"@aws-sdk/smithy-client\");\nconst runtimeConfig_1 = require(\"./runtimeConfig\");\nclass SSOClient extends smithy_client_1.Client {\n constructor(configuration) {\n const _config_0 = (0, runtimeConfig_1.getRuntimeConfig)(configuration);\n const _config_1 = (0, config_resolver_1.resolveRegionConfig)(_config_0);\n const _config_2 = (0, config_resolver_1.resolveEndpointsConfig)(_config_1);\n const _config_3 = (0, middleware_retry_1.resolveRetryConfig)(_config_2);\n const _config_4 = (0, middleware_host_header_1.resolveHostHeaderConfig)(_config_3);\n const _config_5 = (0, middleware_user_agent_1.resolveUserAgentConfig)(_config_4);\n super(_config_5);\n this.config = _config_5;\n this.middlewareStack.use((0, middleware_retry_1.getRetryPlugin)(this.config));\n this.middlewareStack.use((0, middleware_content_length_1.getContentLengthPlugin)(this.config));\n this.middlewareStack.use((0, middleware_host_header_1.getHostHeaderPlugin)(this.config));\n this.middlewareStack.use((0, middleware_logger_1.getLoggerPlugin)(this.config));\n this.middlewareStack.use((0, middleware_user_agent_1.getUserAgentPlugin)(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\nexports.SSOClient = SSOClient;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSO = void 0;\nconst GetRoleCredentialsCommand_1 = require(\"./commands/GetRoleCredentialsCommand\");\nconst ListAccountRolesCommand_1 = require(\"./commands/ListAccountRolesCommand\");\nconst ListAccountsCommand_1 = require(\"./commands/ListAccountsCommand\");\nconst LogoutCommand_1 = require(\"./commands/LogoutCommand\");\nconst SSOClient_1 = require(\"./SSOClient\");\nclass SSO extends SSOClient_1.SSOClient {\n getRoleCredentials(args, optionsOrCb, cb) {\n const command = new GetRoleCredentialsCommand_1.GetRoleCredentialsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listAccountRoles(args, optionsOrCb, cb) {\n const command = new ListAccountRolesCommand_1.ListAccountRolesCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n listAccounts(args, optionsOrCb, cb) {\n const command = new ListAccountsCommand_1.ListAccountsCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n logout(args, optionsOrCb, cb) {\n const command = new LogoutCommand_1.LogoutCommand(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expect http options but get ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n }\n}\nexports.SSO = SSO;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./GetRoleCredentialsCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountRolesCommand\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountsCommand\"), exports);\ntslib_1.__exportStar(require(\"./LogoutCommand\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./models_0\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListAccountRoles = void 0;\nconst ListAccountRolesCommand_1 = require(\"../commands/ListAccountRolesCommand\");\nconst SSO_1 = require(\"../SSO\");\nconst SSOClient_1 = require(\"../SSOClient\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListAccountRolesCommand_1.ListAccountRolesCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listAccountRoles(input, ...args);\n};\nasync function* paginateListAccountRoles(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.nextToken = token;\n input[\"maxResults\"] = config.pageSize;\n if (config.client instanceof SSO_1.SSO) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof SSOClient_1.SSOClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected SSO | SSOClient\");\n }\n yield page;\n const prevToken = token;\n token = page.nextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListAccountRoles = paginateListAccountRoles;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.paginateListAccounts = void 0;\nconst ListAccountsCommand_1 = require(\"../commands/ListAccountsCommand\");\nconst SSO_1 = require(\"../SSO\");\nconst SSOClient_1 = require(\"../SSOClient\");\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListAccountsCommand_1.ListAccountsCommand(input), ...args);\n};\nconst makePagedRequest = async (client, input, ...args) => {\n return await client.listAccounts(input, ...args);\n};\nasync function* paginateListAccounts(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.nextToken = token;\n input[\"maxResults\"] = config.pageSize;\n if (config.client instanceof SSO_1.SSO) {\n page = await makePagedRequest(config.client, input, ...additionalArguments);\n }\n else if (config.client instanceof SSOClient_1.SSOClient) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected SSO | SSOClient\");\n }\n yield page;\n const prevToken = token;\n token = page.nextToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\nexports.paginateListAccounts = paginateListAccounts;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./Interfaces\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountRolesPaginator\"), exports);\ntslib_1.__exportStar(require(\"./ListAccountsPaginator\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSOServiceException = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SSO\"), exports);\ntslib_1.__exportStar(require(\"./SSOClient\"), exports);\ntslib_1.__exportStar(require(\"./commands\"), exports);\ntslib_1.__exportStar(require(\"./models\"), exports);\ntslib_1.__exportStar(require(\"./pagination\"), exports);\nvar SSOServiceException_1 = require(\"./models/SSOServiceException\");\nObject.defineProperty(exports, \"SSOServiceException\", { enumerable: true, get: function () { return SSOServiceException_1.SSOServiceException; } });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSSOCredentials = void 0;\nconst client_sso_1 = require(\"@aws-sdk/client-sso\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst EXPIRE_WINDOW_MS = 15 * 60 * 1000;\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nconst resolveSSOCredentials = async ({ ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n try {\n token = await (0, shared_ini_file_loader_1.getSSOTokenFromFile)(ssoStartUrl);\n }\n catch (e) {\n throw new property_provider_1.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= EXPIRE_WINDOW_MS) {\n throw new property_provider_1.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n const { accessToken } = token;\n const sso = ssoClient || new client_sso_1.SSOClient({ region: ssoRegion });\n let ssoResp;\n try {\n ssoResp = await sso.send(new client_sso_1.GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw property_provider_1.CredentialsProviderError.from(e, SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration } = {} } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new property_provider_1.CredentialsProviderError(\"SSO returns an invalid temporary credential.\", SHOULD_FAIL_CREDENTIAL_CHAIN);\n }\n return { accessKeyId, secretAccessKey, sessionToken, expiration: new Date(expiration) };\n};\nexports.resolveSSOCredentials = resolveSSOCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSsoProfile = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst validateSsoProfile = (profile) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new property_provider_1.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", \"sso_region\", ` +\n `\"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, false);\n }\n return profile;\n};\nexports.validateSsoProfile = validateSsoProfile;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromSSO = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst isSsoProfile_1 = require(\"./isSsoProfile\");\nconst resolveSSOCredentials_1 = require(\"./resolveSSOCredentials\");\nconst validateSsoProfile_1 = require(\"./validateSsoProfile\");\nconst fromSSO = (init = {}) => async () => {\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoClient } = init;\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName) {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n const profileName = (0, shared_ini_file_loader_1.getProfileName)(init);\n const profile = profiles[profileName];\n if (!(0, isSsoProfile_1.isSsoProfile)(profile)) {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`);\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = (0, validateSsoProfile_1.validateSsoProfile)(profile);\n return (0, resolveSSOCredentials_1.resolveSSOCredentials)({\n ssoStartUrl: sso_start_url,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new property_provider_1.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include \"ssoStartUrl\",' +\n ' \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"');\n }\n else {\n return (0, resolveSSOCredentials_1.resolveSSOCredentials)({ ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoClient });\n }\n};\nexports.fromSSO = fromSSO;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromSSO\"), exports);\ntslib_1.__exportStar(require(\"./isSsoProfile\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./validateSsoProfile\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSsoCredentials = exports.isSsoProfile = void 0;\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nvar credential_provider_sso_2 = require(\"@aws-sdk/credential-provider-sso\");\nObject.defineProperty(exports, \"isSsoProfile\", { enumerable: true, get: function () { return credential_provider_sso_2.isSsoProfile; } });\nconst resolveSsoCredentials = (data) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = (0, credential_provider_sso_1.validateSsoProfile)(data);\n return (0, credential_provider_sso_1.fromSSO)({\n ssoStartUrl: sso_start_url,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n })();\n};\nexports.resolveSsoCredentials = resolveSsoCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveStaticCredentials = exports.isStaticCredsProfile = void 0;\nconst isStaticCredsProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.aws_access_key_id === \"string\" &&\n typeof arg.aws_secret_access_key === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1;\nexports.isStaticCredsProfile = isStaticCredsProfile;\nconst resolveStaticCredentials = (profile) => Promise.resolve({\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n});\nexports.resolveStaticCredentials = resolveStaticCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromWebToken = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fromWebToken = (init) => () => {\n const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds, roleAssumerWithWebIdentity, } = init;\n if (!roleAssumerWithWebIdentity) {\n throw new property_provider_1.CredentialsProviderError(`Role Arn '${roleArn}' needs to be assumed with web identity,` +\n ` but no role assumption callback was provided.`, false);\n }\n return roleAssumerWithWebIdentity({\n RoleArn: roleArn,\n RoleSessionName: roleSessionName !== null && roleSessionName !== void 0 ? roleSessionName : `aws-sdk-js-session-${Date.now()}`,\n WebIdentityToken: webIdentityToken,\n ProviderId: providerId,\n PolicyArns: policyArns,\n Policy: policy,\n DurationSeconds: durationSeconds,\n });\n};\nexports.fromWebToken = fromWebToken;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromTokenFile = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst fs_1 = require(\"fs\");\nconst fromWebToken_1 = require(\"./fromWebToken\");\nconst ENV_TOKEN_FILE = \"AWS_WEB_IDENTITY_TOKEN_FILE\";\nconst ENV_ROLE_ARN = \"AWS_ROLE_ARN\";\nconst ENV_ROLE_SESSION_NAME = \"AWS_ROLE_SESSION_NAME\";\nconst fromTokenFile = (init = {}) => async () => {\n return resolveTokenFile(init);\n};\nexports.fromTokenFile = fromTokenFile;\nconst resolveTokenFile = (init) => {\n var _a, _b, _c;\n const webIdentityTokenFile = (_a = init === null || init === void 0 ? void 0 : init.webIdentityTokenFile) !== null && _a !== void 0 ? _a : process.env[ENV_TOKEN_FILE];\n const roleArn = (_b = init === null || init === void 0 ? void 0 : init.roleArn) !== null && _b !== void 0 ? _b : process.env[ENV_ROLE_ARN];\n const roleSessionName = (_c = init === null || init === void 0 ? void 0 : init.roleSessionName) !== null && _c !== void 0 ? _c : process.env[ENV_ROLE_SESSION_NAME];\n if (!webIdentityTokenFile || !roleArn) {\n throw new property_provider_1.CredentialsProviderError(\"Web identity configuration not specified\");\n }\n return (0, fromWebToken_1.fromWebToken)({\n ...init,\n webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: \"ascii\" }),\n roleArn,\n roleSessionName,\n })();\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromTokenFile\"), exports);\ntslib_1.__exportStar(require(\"./fromWebToken\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveWebIdentityCredentials = exports.isWebIdentityProfile = void 0;\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst isWebIdentityProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.web_identity_token_file === \"string\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1;\nexports.isWebIdentityProfile = isWebIdentityProfile;\nconst resolveWebIdentityCredentials = async (profile, options) => (0, credential_provider_web_identity_1.fromTokenFile)({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n})();\nexports.resolveWebIdentityCredentials = resolveWebIdentityCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveProfileData = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst resolveAssumeRoleCredentials_1 = require(\"./resolveAssumeRoleCredentials\");\nconst resolveSsoCredentials_1 = require(\"./resolveSsoCredentials\");\nconst resolveStaticCredentials_1 = require(\"./resolveStaticCredentials\");\nconst resolveWebIdentityCredentials_1 = require(\"./resolveWebIdentityCredentials\");\nconst resolveProfileData = async (profileName, profiles, options, visitedProfiles = {}) => {\n const data = profiles[profileName];\n if (Object.keys(visitedProfiles).length > 0 && (0, resolveStaticCredentials_1.isStaticCredsProfile)(data)) {\n return (0, resolveStaticCredentials_1.resolveStaticCredentials)(data);\n }\n if ((0, resolveAssumeRoleCredentials_1.isAssumeRoleProfile)(data)) {\n return (0, resolveAssumeRoleCredentials_1.resolveAssumeRoleCredentials)(profileName, profiles, options, visitedProfiles);\n }\n if ((0, resolveStaticCredentials_1.isStaticCredsProfile)(data)) {\n return (0, resolveStaticCredentials_1.resolveStaticCredentials)(data);\n }\n if ((0, resolveWebIdentityCredentials_1.isWebIdentityProfile)(data)) {\n return (0, resolveWebIdentityCredentials_1.resolveWebIdentityCredentials)(data, options);\n }\n if ((0, resolveSsoCredentials_1.isSsoProfile)(data)) {\n return (0, resolveSsoCredentials_1.resolveSsoCredentials)(data);\n }\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} could not be found or parsed in shared credentials file.`);\n};\nexports.resolveProfileData = resolveProfileData;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromIni = void 0;\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst resolveProfileData_1 = require(\"./resolveProfileData\");\nconst fromIni = (init = {}) => async () => {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n return (0, resolveProfileData_1.resolveProfileData)((0, shared_ini_file_loader_1.getProfileName)(init), profiles, init);\n};\nexports.fromIni = fromIni;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromIni\"), exports);\n", "/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __classPrivateFieldIn;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n __classPrivateFieldIn = function (state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n exporter(\"__classPrivateFieldIn\", __classPrivateFieldIn);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getValidatedProcessCredentials = void 0;\nconst getValidatedProcessCredentials = (profileName, data) => {\n if (data.Version !== 1) {\n throw Error(`Profile ${profileName} credential_process did not return Version 1.`);\n }\n if (data.AccessKeyId === undefined || data.SecretAccessKey === undefined) {\n throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);\n }\n if (data.Expiration) {\n const currentTime = new Date();\n const expireTime = new Date(data.Expiration);\n if (expireTime < currentTime) {\n throw Error(`Profile ${profileName} credential_process returned expired credentials.`);\n }\n }\n return {\n accessKeyId: data.AccessKeyId,\n secretAccessKey: data.SecretAccessKey,\n ...(data.SessionToken && { sessionToken: data.SessionToken }),\n ...(data.Expiration && { expiration: new Date(data.Expiration) }),\n };\n};\nexports.getValidatedProcessCredentials = getValidatedProcessCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveProcessCredentials = void 0;\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst child_process_1 = require(\"child_process\");\nconst util_1 = require(\"util\");\nconst getValidatedProcessCredentials_1 = require(\"./getValidatedProcessCredentials\");\nconst resolveProcessCredentials = async (profileName, profiles) => {\n const profile = profiles[profileName];\n if (profiles[profileName]) {\n const credentialProcess = profile[\"credential_process\"];\n if (credentialProcess !== undefined) {\n const execPromise = (0, util_1.promisify)(child_process_1.exec);\n try {\n const { stdout } = await execPromise(credentialProcess);\n let data;\n try {\n data = JSON.parse(stdout.trim());\n }\n catch (_a) {\n throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);\n }\n return (0, getValidatedProcessCredentials_1.getValidatedProcessCredentials)(profileName, data);\n }\n catch (error) {\n throw new property_provider_1.CredentialsProviderError(error.message);\n }\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`);\n }\n }\n else {\n throw new property_provider_1.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`);\n }\n};\nexports.resolveProcessCredentials = resolveProcessCredentials;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromProcess = void 0;\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst resolveProcessCredentials_1 = require(\"./resolveProcessCredentials\");\nconst fromProcess = (init = {}) => async () => {\n const profiles = await (0, shared_ini_file_loader_1.parseKnownFiles)(init);\n return (0, resolveProcessCredentials_1.resolveProcessCredentials)((0, shared_ini_file_loader_1.getProfileName)(init), profiles);\n};\nexports.fromProcess = fromProcess;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./fromProcess\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.remoteProvider = exports.ENV_IMDS_DISABLED = void 0;\nconst credential_provider_imds_1 = require(\"@aws-sdk/credential-provider-imds\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nexports.ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nconst remoteProvider = (init) => {\n if (process.env[credential_provider_imds_1.ENV_CMDS_RELATIVE_URI] || process.env[credential_provider_imds_1.ENV_CMDS_FULL_URI]) {\n return (0, credential_provider_imds_1.fromContainerMetadata)(init);\n }\n if (process.env[exports.ENV_IMDS_DISABLED]) {\n return async () => {\n throw new property_provider_1.CredentialsProviderError(\"EC2 Instance Metadata Service access disabled\");\n };\n }\n return (0, credential_provider_imds_1.fromInstanceMetadata)(init);\n};\nexports.remoteProvider = remoteProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultProvider = void 0;\nconst credential_provider_env_1 = require(\"@aws-sdk/credential-provider-env\");\nconst credential_provider_ini_1 = require(\"@aws-sdk/credential-provider-ini\");\nconst credential_provider_process_1 = require(\"@aws-sdk/credential-provider-process\");\nconst credential_provider_sso_1 = require(\"@aws-sdk/credential-provider-sso\");\nconst credential_provider_web_identity_1 = require(\"@aws-sdk/credential-provider-web-identity\");\nconst property_provider_1 = require(\"@aws-sdk/property-provider\");\nconst shared_ini_file_loader_1 = require(\"@aws-sdk/shared-ini-file-loader\");\nconst remoteProvider_1 = require(\"./remoteProvider\");\nconst defaultProvider = (init = {}) => (0, property_provider_1.memoize)((0, property_provider_1.chain)(...(init.profile || process.env[shared_ini_file_loader_1.ENV_PROFILE] ? [] : [(0, credential_provider_env_1.fromEnv)()]), (0, credential_provider_sso_1.fromSSO)(init), (0, credential_provider_ini_1.fromIni)(init), (0, credential_provider_process_1.fromProcess)(init), (0, credential_provider_web_identity_1.fromTokenFile)(init), (0, remoteProvider_1.remoteProvider)(init), async () => {\n throw new property_provider_1.CredentialsProviderError(\"Could not load credentials from any providers\", false);\n}), (credentials) => credentials.expiration !== undefined && credentials.expiration.getTime() - Date.now() < 300000, (credentials) => credentials.expiration !== undefined);\nexports.defaultProvider = defaultProvider;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./defaultProvider\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toHex = exports.fromHex = void 0;\nconst SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nfunction fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexports.fromHex = fromHex;\nfunction toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\nexports.toHex = toHex;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_PRESIGNED_TTL = exports.KEY_TYPE_IDENTIFIER = exports.MAX_CACHE_SIZE = exports.UNSIGNED_PAYLOAD = exports.EVENT_ALGORITHM_IDENTIFIER = exports.ALGORITHM_IDENTIFIER_V4A = exports.ALGORITHM_IDENTIFIER = exports.UNSIGNABLE_PATTERNS = exports.SEC_HEADER_PATTERN = exports.PROXY_HEADER_PATTERN = exports.ALWAYS_UNSIGNABLE_HEADERS = exports.HOST_HEADER = exports.TOKEN_HEADER = exports.SHA256_HEADER = exports.SIGNATURE_HEADER = exports.GENERATED_HEADERS = exports.DATE_HEADER = exports.AMZ_DATE_HEADER = exports.AUTH_HEADER = exports.REGION_SET_PARAM = exports.TOKEN_QUERY_PARAM = exports.SIGNATURE_QUERY_PARAM = exports.EXPIRES_QUERY_PARAM = exports.SIGNED_HEADERS_QUERY_PARAM = exports.AMZ_DATE_QUERY_PARAM = exports.CREDENTIAL_QUERY_PARAM = exports.ALGORITHM_QUERY_PARAM = void 0;\nexports.ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexports.CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexports.AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexports.SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexports.EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexports.SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexports.TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexports.REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexports.AUTH_HEADER = \"authorization\";\nexports.AMZ_DATE_HEADER = exports.AMZ_DATE_QUERY_PARAM.toLowerCase();\nexports.DATE_HEADER = \"date\";\nexports.GENERATED_HEADERS = [exports.AUTH_HEADER, exports.AMZ_DATE_HEADER, exports.DATE_HEADER];\nexports.SIGNATURE_HEADER = exports.SIGNATURE_QUERY_PARAM.toLowerCase();\nexports.SHA256_HEADER = \"x-amz-content-sha256\";\nexports.TOKEN_HEADER = exports.TOKEN_QUERY_PARAM.toLowerCase();\nexports.HOST_HEADER = \"host\";\nexports.ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexports.PROXY_HEADER_PATTERN = /^proxy-/;\nexports.SEC_HEADER_PATTERN = /^sec-/;\nexports.UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexports.ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexports.ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexports.EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexports.UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexports.MAX_CACHE_SIZE = 50;\nexports.KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexports.MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clearCredentialCache = exports.getSigningKey = exports.createScope = void 0;\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst constants_1 = require(\"./constants\");\nconst signingKeyCache = {};\nconst cacheQueue = [];\nconst createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${constants_1.KEY_TYPE_IDENTIFIER}`;\nexports.createScope = createScope;\nconst getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${(0, util_hex_encoding_1.toHex)(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > constants_1.MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, constants_1.KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nexports.getSigningKey = getSigningKey;\nconst clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nexports.clearCredentialCache = clearCredentialCache;\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCanonicalHeaders = void 0;\nconst constants_1 = require(\"./constants\");\nconst getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in constants_1.ALWAYS_UNSIGNABLE_HEADERS ||\n (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n constants_1.PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n constants_1.SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\nexports.getCanonicalHeaders = getCanonicalHeaders;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCanonicalQuery = void 0;\nconst util_uri_escape_1 = require(\"@aws-sdk/util-uri-escape\");\nconst constants_1 = require(\"./constants\");\nconst getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants_1.SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${(0, util_uri_escape_1.escapeUri)(key)}=${(0, util_uri_escape_1.escapeUri)(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce((encoded, value) => encoded.concat([`${(0, util_uri_escape_1.escapeUri)(key)}=${(0, util_uri_escape_1.escapeUri)(value)}`]), [])\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\nexports.getCanonicalQuery = getCanonicalQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getPayloadHash = void 0;\nconst is_array_buffer_1 = require(\"@aws-sdk/is-array-buffer\");\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst constants_1 = require(\"./constants\");\nconst getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === constants_1.SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || (0, is_array_buffer_1.isArrayBuffer)(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(body);\n return (0, util_hex_encoding_1.toHex)(await hashCtor.digest());\n }\n return constants_1.UNSIGNED_PAYLOAD;\n};\nexports.getPayloadHash = getPayloadHash;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deleteHeader = exports.getHeaderValue = exports.hasHeader = void 0;\nconst hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexports.hasHeader = hasHeader;\nconst getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexports.getHeaderValue = getHeaderValue;\nconst deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\nexports.deleteHeader = deleteHeader;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneQuery = exports.cloneRequest = void 0;\nconst cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? (0, exports.cloneQuery)(query) : undefined,\n});\nexports.cloneRequest = cloneRequest;\nconst cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\nexports.cloneQuery = cloneQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.moveHeadersToQuery = void 0;\nconst cloneRequest_1 = require(\"./cloneRequest\");\nconst moveHeadersToQuery = (request, options = {}) => {\n var _a;\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : (0, cloneRequest_1.cloneRequest)(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !((_a = options.unhoistableHeaders) === null || _a === void 0 ? void 0 : _a.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\nexports.moveHeadersToQuery = moveHeadersToQuery;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareRequest = void 0;\nconst cloneRequest_1 = require(\"./cloneRequest\");\nconst constants_1 = require(\"./constants\");\nconst prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : (0, cloneRequest_1.cloneRequest)(request);\n for (const headerName of Object.keys(request.headers)) {\n if (constants_1.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\nexports.prepareRequest = prepareRequest;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toDate = exports.iso8601 = void 0;\nconst iso8601 = (time) => (0, exports.toDate)(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexports.iso8601 = iso8601;\nconst toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\nexports.toDate = toDate;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SignatureV4 = void 0;\nconst util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nconst util_middleware_1 = require(\"@aws-sdk/util-middleware\");\nconst constants_1 = require(\"./constants\");\nconst credentialDerivation_1 = require(\"./credentialDerivation\");\nconst getCanonicalHeaders_1 = require(\"./getCanonicalHeaders\");\nconst getCanonicalQuery_1 = require(\"./getCanonicalQuery\");\nconst getPayloadHash_1 = require(\"./getPayloadHash\");\nconst headerUtil_1 = require(\"./headerUtil\");\nconst moveHeadersToQuery_1 = require(\"./moveHeadersToQuery\");\nconst prepareRequest_1 = require(\"./prepareRequest\");\nconst utilDate_1 = require(\"./utilDate\");\nclass SignatureV4 {\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = (0, util_middleware_1.normalizeProvider)(region);\n this.credentialProvider = (0, util_middleware_1.normalizeProvider)(credentials);\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > constants_1.MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n const request = (0, moveHeadersToQuery_1.moveHeadersToQuery)((0, prepareRequest_1.prepareRequest)(originalRequest), { unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[constants_1.TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[constants_1.ALGORITHM_QUERY_PARAM] = constants_1.ALGORITHM_IDENTIFIER;\n request.query[constants_1.CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[constants_1.AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[constants_1.EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = (0, getCanonicalHeaders_1.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);\n request.query[constants_1.SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n request.query[constants_1.SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await (0, getPayloadHash_1.getPayloadHash)(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n const hashedPayload = await (0, getPayloadHash_1.getPayloadHash)({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = (0, util_hex_encoding_1.toHex)(await hash.digest());\n const stringToSign = [\n constants_1.EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(stringToSign);\n return (0, util_hex_encoding_1.toHex)(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());\n const request = (0, prepareRequest_1.prepareRequest)(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = (0, credentialDerivation_1.createScope)(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[constants_1.AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[constants_1.TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await (0, getPayloadHash_1.getPayloadHash)(request, this.sha256);\n if (!(0, headerUtil_1.hasHeader)(constants_1.SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[constants_1.SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = (0, getCanonicalHeaders_1.getCanonicalHeaders)(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[constants_1.AUTH_HEADER] =\n `${constants_1.ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${(0, getCanonicalQuery_1.getCanonicalQuery)(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest) {\n const hash = new this.sha256();\n hash.update(canonicalRequest);\n const hashedRequest = await hash.digest();\n return `${constants_1.ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${(0, util_hex_encoding_1.toHex)(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if ((pathSegment === null || pathSegment === void 0 ? void 0 : pathSegment.length) === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${(path === null || path === void 0 ? void 0 : path.startsWith(\"/\")) ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && (path === null || path === void 0 ? void 0 : path.endsWith(\"/\")) ? \"/\" : \"\"}`;\n const doubleEncoded = encodeURIComponent(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update(stringToSign);\n return (0, util_hex_encoding_1.toHex)(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return (0, credentialDerivation_1.getSigningKey)(this.sha256, credentials, shortDate, region, service || this.service);\n }\n}\nexports.SignatureV4 = SignatureV4;\nconst formatDate = (now) => {\n const longDate = (0, utilDate_1.iso8601)(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\";\");\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareRequest = exports.moveHeadersToQuery = exports.getPayloadHash = exports.getCanonicalQuery = exports.getCanonicalHeaders = void 0;\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./SignatureV4\"), exports);\nvar getCanonicalHeaders_1 = require(\"./getCanonicalHeaders\");\nObject.defineProperty(exports, \"getCanonicalHeaders\", { enumerable: true, get: function () { return getCanonicalHeaders_1.getCanonicalHeaders; } });\nvar getCanonicalQuery_1 = require(\"./getCanonicalQuery\");\nObject.defineProperty(exports, \"getCanonicalQuery\", { enumerable: true, get: function () { return getCanonicalQuery_1.getCanonicalQuery; } });\nvar getPayloadHash_1 = require(\"./getPayloadHash\");\nObject.defineProperty(exports, \"getPayloadHash\", { enumerable: true, get: function () { return getPayloadHash_1.getPayloadHash; } });\nvar moveHeadersToQuery_1 = require(\"./moveHeadersToQuery\");\nObject.defineProperty(exports, \"moveHeadersToQuery\", { enumerable: true, get: function () { return moveHeadersToQuery_1.moveHeadersToQuery; } });\nvar prepareRequest_1 = require(\"./prepareRequest\");\nObject.defineProperty(exports, \"prepareRequest\", { enumerable: true, get: function () { return prepareRequest_1.prepareRequest; } });\ntslib_1.__exportStar(require(\"./credentialDerivation\"), exports);\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __createBinding = function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n };\r\n\r\n __exportStar = function (m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n };\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result[\"default\"] = mod;\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n", "export const SHA_256_HASH: { name: \"SHA-256\" } = { name: \"SHA-256\" };\n\nexport const SHA_256_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-256\" } } = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\n\nexport const EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nfunction fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst pureJs_1 = require(\"./pureJs\");\nconst whatwgEncodingApi_1 = require(\"./whatwgEncodingApi\");\nconst fromUtf8 = (input) => typeof TextEncoder === \"function\" ? (0, whatwgEncodingApi_1.fromUtf8)(input) : (0, pureJs_1.fromUtf8)(input);\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => typeof TextDecoder === \"function\" ? (0, whatwgEncodingApi_1.toUtf8)(input) : (0, pureJs_1.toUtf8)(input);\nexports.toUtf8 = toUtf8;\n", "Object.defineProperty(exports, \"__esModule\", { value: true });\nexports.locateWindow = void 0;\nconst fallbackWindow = {};\nfunction locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\nexports.locateWindow = locateWindow;\n", "import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_256_HMAC_ALGO } from \"./constants\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private operation: Promise<CryptoOperation>;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(keyData =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_256_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-256\")\n );\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(operation => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise<Uint8Array> {\n return this.operation.then<Uint8Array>(\n operation =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise<Key> {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n", "import { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport {\n EMPTY_DATA_SHA_256,\n SHA_256_HASH,\n SHA_256_HMAC_ALGO,\n} from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private readonly key: Promise<CryptoKey> | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n if (secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise<Uint8Array> {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve()\n .then(() =>\n locateWindow().crypto.subtle.digest(SHA_256_HASH, this.toHash)\n )\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n}\n", "/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n", "import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n", "import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise<Uint8Array> {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n", "export * from \"./jsSha256\";\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __createBinding = function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n };\r\n\r\n __exportStar = function (m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n };\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result[\"default\"] = mod;\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "type SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst subtleCryptoMethods: Array<SubtleCryptoMethod> = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\nexport function supportsWebCrypto(window: Window): boolean {\n if (\n supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\"\n ) {\n const { subtle } = window.crypto;\n\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexport function supportsSecureRandom(window: Window): boolean {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n const { getRandomValues } = window.crypto;\n\n return typeof getRandomValues === \"function\";\n }\n\n return false;\n}\n\nexport function supportsSubtleCrypto(subtle: SubtleCrypto) {\n return (\n subtle &&\n subtleCryptoMethods.every(\n methodName => typeof subtle[methodName] === \"function\"\n )\n );\n}\n\nexport async function supportsZeroByteGCM(subtle: SubtleCrypto) {\n if (!supportsSubtleCrypto(subtle)) return false;\n try {\n const key = await subtle.generateKey(\n { name: \"AES-GCM\", length: 128 },\n false,\n [\"encrypt\"]\n );\n const zeroByteAuthTag = await subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n },\n key,\n new Uint8Array(0)\n );\n return zeroByteAuthTag.byteLength === 16;\n } catch {\n return false;\n }\n}\n", "export * from \"./supportsWebCrypto\";\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __createBinding = function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n };\r\n\r\n __exportStar = function (m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n };\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result[\"default\"] = mod;\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=CryptoOperation.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Key.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=KeyOperation.js.map", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=MsSubtleCrypto.js.map", null, null, "import { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nimport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Hash {\n private readonly hash: Hash;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha256(secret);\n } else {\n this.hash = new JsSha256(secret);\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(data, encoding);\n }\n\n digest(): Promise<Uint8Array> {\n return this.hash.digest();\n }\n}\n", "export * from \"./crossPlatformSha256\";\nexport { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nexport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n /* Remove the optional wildcard before checking validity */\n\n\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/\\s/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n\n if (version === '4') {\n if (!IPv4AddressRegExp.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n }\n\n if (version === '6') {\n return !!IPv6AddressRegExp.test(str);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: []\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\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]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\n\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1'); // display name with only spaces is not valid\n\n if (!display_name_without_quotes.trim()) {\n return false;\n } // check whether display name contains illegal character\n\n\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n\n var user = parts.join('@');\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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 _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n if (split[0] === '') {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n\n if (user === '' && password === '') {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;", "/**\n * convict-format-with-validator\n * Format 'email', 'ipaddress' and 'url' for convict\n */\n'use strict'\n\nconst isEmail = require('validator/lib/isEmail')\nconst isURL = require('validator/lib/isURL')\nconst isIP = require('validator/lib/isIP')\n\nfunction assert(assertion, err_msg) {\n if (!assertion) {\n throw new Error(err_msg)\n }\n}\n\nconst email = {\n name: 'email',\n coerce: (v) => v.toString(),\n validate: function(x) {\n assert(isEmail(x), 'must be an email address')\n }\n}\n\nconst ipaddress = {\n name: 'ipaddress',\n coerce: (v) => v.toString(),\n validate: function(x) {\n assert(isIP(x), 'must be an IP address')\n }\n}\n\nconst url = {\n name: 'url',\n coerce: (v) => v.toString(),\n validate: function(x) {\n assert(isURL(x, {require_tld: false}), 'must be a URL')\n }\n}\n\nmodule.exports = {\n email: email,\n ipaddress: ipaddress,\n url: url\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass Reflector {\n constructor() {\n const reflectInstalled = Reflect && Reflect.getMetadata ? true : false;\n if (!reflectInstalled) {\n throw new Error(\"reflect-metadata should be installed properly\");\n }\n this._reflect = Reflect;\n }\n isConstructor(target) {\n return (!!target.prototype &&\n !!target.prototype.constructor.name &&\n target instanceof Function);\n }\n isConfigClass(target) {\n const hasProps = this._reflect.hasMetadata(\"tsconvict:properties\", target);\n const hasSchema = this._reflect.hasMetadata(\"tsconvict:schema\", target);\n return hasProps || hasSchema;\n }\n getTsType(target, propertyName) {\n return this._reflect.getMetadata(\"design:type\", target, propertyName);\n }\n getConvictMetaForProperty(target, propertyName) {\n return this._reflect.getMetadata(\"tsconvict:property\", target, propertyName);\n }\n setConvictMetaForProperty(schemaObj, target, propertyName) {\n return this._reflect.defineMetadata(\"tsconvict:property\", schemaObj, target, propertyName);\n }\n setConvictMetaForClass(schemaObj, target) {\n return this._reflect.defineMetadata(\"tsconvict:schema\", schemaObj, target);\n }\n getConvictMetaForClass(target) {\n return this._reflect.getMetadata(\"tsconvict:schema\", target) || null;\n }\n setPropertyForClass(target, propertyName) {\n let props = this.getClassProperties(target);\n if (props.length === 0) {\n this._reflect.defineMetadata(\"tsconvict:properties\", [], target.constructor);\n props = this.getClassProperties(target);\n }\n return props.push(propertyName);\n }\n getClassProperties(target) {\n return (this._reflect.getMetadata(\"tsconvict:properties\", target.constructor) || []);\n }\n}\nexports.default = new Reflector();\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.Property = exports.Config = void 0;\nconst Reflector_1 = __importDefault(require(\"./Reflector\"));\nfunction Config(opts = {}) {\n return (constructor) => {\n Reflector_1.default.setConvictMetaForClass(opts, constructor);\n };\n}\nexports.Config = Config;\nfunction Property(schemaObj) {\n return (target, propertyName) => {\n if (typeof schemaObj === \"object\" &&\n typeof schemaObj.format === \"undefined\") {\n const tsType = Reflector_1.default.getTsType(target, propertyName);\n if (tsType) {\n schemaObj.format = tsType;\n }\n }\n Reflector_1.default.setConvictMetaForProperty(schemaObj, target, propertyName);\n Reflector_1.default.setPropertyForClass(target, propertyName);\n };\n}\nexports.Property = Property;\n", "'use strict';\n\nvar util = require('util');\nvar fs = require('fs');\nvar path = require('path');\n\nfunction camelCase(str) {\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nfunction decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nfunction looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n if (typeof x === 'number')\n return true;\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n\nfunction tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n\nvar DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n\nlet mixin;\nclass YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n const args = tokenizeArgString(argsInput);\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n if (arg !== '--' && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n }\n else if (truncatedArg.match(/---+(=|$)/)) {\n pushPositional(arg);\n continue;\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2]);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n applyEnvVars(argv, true);\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next));\n }\n }\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n if (splitKey.length > 1 && configuration['dot-notation']) {\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n const a = [].concat(splitKey);\n a.shift();\n keyProperties = keyProperties.concat(a);\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val) {\n if (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0]) {\n val = val.substring(1, val.length - 1);\n }\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n function setConfig(argv) {\n const configLookup = Object.create(null);\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n setConfigObject(value, fullKey);\n }\n else {\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) {\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n function hasAllShortFlags(arg) {\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n if (arg.match(negative)) {\n return false;\n }\n if (hasAllShortFlags(arg)) {\n return false;\n }\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n const normalFlag = /^-+([^=]+?)$/;\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n function checkConfiguration() {\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\n\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 10;\nif (process && process.version) {\n const major = Number(process.version.match(/v([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format: util.format,\n normalize: path.normalize,\n resolve: path.resolve,\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n return fs.readFileSync(path, 'utf8');\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\n\nmodule.exports = yargsParser;\n", "/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n", "/**\n * convict\n * Configuration management with support for environmental variables, files,\n * and validation.\n */\n'use strict'\n\nconst fs = require('fs')\nconst parseArgs = require('yargs-parser')\nconst cloneDeep = require('lodash.clonedeep')\n\n// Forbidden key paths, for protection against prototype pollution\nconst FORBIDDEN_KEY_PATHS = [\n '__proto__.',\n 'this.constructor.prototype.',\n]\n\nconst ALLOWED_OPTION_STRICT = 'strict'\nconst ALLOWED_OPTION_WARN = 'warn'\n\nfunction assert(assertion, err_msg) {\n if (!assertion) {\n throw new Error(err_msg)\n }\n}\n\n// format can be a:\n// - predefine type, as seen below\n// - an array of enumerated values, e.g. [\"production\", \"development\", \"testing\"]\n// - built-in JavaScript type, i.e. Object, Array, String, Number, Boolean, RegExp\n// - or if omitted, the Object.prototype.toString.call of the default value\n\n/**\n * Checks if x is a valid port\n *\n * @param {*} x\n * @returns {Boolean}\n */\nfunction isPort(x) {\n return Number.isInteger(x) && x >= 0 && x <= 65535\n}\n\n/**\n * Checks if x is a windows named pipe\n *\n * @see https://msdn.microsoft.com/en-us/library/windows/desktop/aa365783(v=vs.85).aspx\n * @param {*} x\n * @returns {Boolean}\n */\nfunction isWindowsNamedPipe(x) {\n return String(x).includes('\\\\\\\\.\\\\pipe\\\\')\n}\n\nconst types = {\n '*': function() { },\n int: function(x) {\n assert(Number.isInteger(x), 'must be an integer')\n },\n nat: function(x) {\n assert(Number.isInteger(x) && x >= 0, 'must be a positive integer')\n },\n port: function(x) {\n assert(isPort(x), 'ports must be within range 0 - 65535')\n },\n windows_named_pipe: function(x) {\n assert(isWindowsNamedPipe(x), 'must be a valid pipe')\n },\n port_or_windows_named_pipe: function(x) {\n if (!isWindowsNamedPipe(x)) {\n assert(isPort(x), 'must be a windows named pipe or a number within range 0 - 65535')\n }\n }\n}\n// alias\ntypes.integer = types.int\n\nconst custom_converters = new Map()\n\nconst parsers_registry = {'*': JSON.parse}\n\nfunction flatten(obj, useProperties) {\n const stack = Object.keys(obj)\n let key\n\n const entries = []\n\n while (stack.length) {\n key = stack.shift()\n let val = walk(obj, key)\n if (typeof val === 'object' && !Array.isArray(val) && val != null) {\n if (useProperties) {\n if ('_cvtProperties' in val) {\n val = val._cvtProperties\n key = key + '._cvtProperties'\n } else {\n entries.push([key, val])\n continue\n }\n }\n const subkeys = Object.keys(val)\n\n // Don't filter out empty objects\n if (subkeys.length > 0) {\n subkeys.forEach(function(subkey) {\n stack.push(key + '.' + subkey)\n })\n continue\n }\n }\n entries.push([key, val])\n }\n\n const flattened = {}\n entries.forEach(function(entry) {\n let key = entry[0]\n if (useProperties) {\n key = key.replace(/\\._cvtProperties/g, '')\n }\n const val = entry[1]\n flattened[key] = val\n })\n\n return flattened\n}\n\nfunction validate(instance, schema, strictValidation) {\n const errors = {\n undeclared: [],\n invalid_type: [],\n missing: []\n }\n\n const flatInstance = flatten(instance)\n const flatSchema = flatten(schema._cvtProperties, true)\n\n Object.keys(flatSchema).forEach(function(name) {\n const schemaItem = flatSchema[name]\n let instanceItem = flatInstance[name]\n if (!(name in flatInstance)) {\n try {\n if (typeof schemaItem.default === 'object' &&\n !Array.isArray(schemaItem.default)) {\n // Missing item may be an object with undeclared children, so try to\n // pull it unflattened from the config instance for type validation\n instanceItem = walk(instance, name)\n } else {\n throw new Error('missing')\n }\n } catch (e) {\n const err = new Error(\"configuration param '\" + name\n + \"' missing from config, did you override its parent?\")\n errors.missing.push(err)\n return\n }\n }\n delete flatInstance[name]\n\n // ignore nested keys of schema 'object' properties\n if (schemaItem.format === 'object' || typeof schemaItem.default === 'object') {\n Object.keys(flatInstance)\n .filter(function(key) {\n return key.lastIndexOf(name + '.', 0) === 0\n }).forEach(function(key) {\n delete flatInstance[key]\n })\n }\n\n if (!(typeof schemaItem.default === 'undefined' &&\n instanceItem === schemaItem.default)) {\n try {\n schemaItem._format(instanceItem)\n } catch (err) {\n errors.invalid_type.push(err)\n }\n }\n\n return\n })\n\n if (strictValidation) {\n Object.keys(flatInstance).forEach(function(name) {\n const err = new Error(\"configuration param '\" + name\n + \"' not declared in the schema\")\n errors.undeclared.push(err)\n })\n }\n\n return errors\n}\n\n// helper for asserting that a value is in the list of valid options\nfunction contains(options, x) {\n assert(options.indexOf(x) !== -1, 'must be one of the possible values: ' +\n JSON.stringify(options))\n}\n\nconst BUILT_INS_BY_NAME = {\n Object: Object,\n Array: Array,\n String: String,\n Number: Number,\n Boolean: Boolean,\n RegExp: RegExp\n}\nconst BUILT_IN_NAMES = Object.keys(BUILT_INS_BY_NAME)\nconst BUILT_INS = BUILT_IN_NAMES.map(function(name) {\n return BUILT_INS_BY_NAME[name]\n})\n\nfunction normalizeSchema(name, node, props, fullName, env, argv, sensitive) {\n if (name === '_cvtProperties') {\n throw new Error(\"'\" + fullName + \"': '_cvtProperties' is reserved word of convict.\")\n }\n\n // If the current schema node is not a config property (has no \"default\"), recursively normalize it.\n if (typeof node === 'object' && node !== null && !Array.isArray(node) &&\n Object.keys(node).length > 0 && !('default' in node)) {\n props[name] = {\n _cvtProperties: {}\n }\n Object.keys(node).forEach(function(k) {\n normalizeSchema(k, node[k], props[name]._cvtProperties, fullName + '.' +\n k, env, argv, sensitive)\n })\n return\n } else if (typeof node !== 'object' || Array.isArray(node) ||\n node === null || Object.keys(node).length == 0) {\n // Normalize shorthand \"value\" config properties\n node = {default: node}\n }\n\n const o = cloneDeep(node)\n props[name] = o\n // associate this property with an environmental variable\n if (o.env) {\n if (!env[o.env]) {\n env[o.env] = []\n }\n env[o.env].push(fullName)\n }\n\n // associate this property with a command-line argument\n if (o.arg) {\n if (argv[o.arg]) {\n throw new Error(\"'\" + fullName + \"' reuses a command-line argument: \" +\n o.arg)\n }\n argv[o.arg] = fullName\n }\n\n // mark this property as sensitive\n if (o.sensitive === true) {\n sensitive.add(fullName)\n }\n\n // store original format function\n const format = o.format\n let newFormat\n\n if (BUILT_INS.indexOf(format) >= 0 || BUILT_IN_NAMES.indexOf(format) >= 0) {\n // if the format property is a built-in JavaScript constructor,\n // assert that the value is of that type\n const Format = typeof format === 'string' ? BUILT_INS_BY_NAME[format] : format\n newFormat = function(x) {\n assert(Object.prototype.toString.call(x) ==\n Object.prototype.toString.call(new Format()),\n 'must be of type ' + Format.name)\n }\n o.format = Format.name.toLowerCase()\n\n } else if (typeof format === 'string') {\n // store declared type\n if (!types[format]) {\n throw new Error(\"'\" + fullName + \"' uses an unknown format type: \" +\n format)\n }\n\n // use a predefined type\n newFormat = types[format]\n\n } else if (Array.isArray(format)) {\n // assert that the value is a valid option\n newFormat = contains.bind(null, format)\n\n } else if (typeof format === 'function') {\n newFormat = format\n\n } else if (format && typeof format !== 'function') {\n throw new Error(\"'\" + fullName +\n \"': `format` must be a function or a known format type.\")\n }\n\n if (!newFormat && !format) {\n // default format is the typeof the default value\n const type = Object.prototype.toString.call(o.default)\n newFormat = function(x) {\n assert(Object.prototype.toString.call(x) == type,\n ' should be of type ' + type.replace(/\\[.* |]/g, ''))\n }\n }\n\n o._format = function(x) {\n // accept null if allowed before calling any format function\n if (this.nullable && x === null) {\n return\n }\n\n try {\n newFormat(x, this)\n } catch (e) {\n // attach the value and the property's fullName to the error\n e.fullName = fullName\n e.value = x\n throw e\n }\n }\n}\n\nfunction importEnvironment(o) {\n const env = o.getEnv()\n Object.keys(o._env).forEach(function(envStr) {\n if (env[envStr] !== undefined) {\n const ks = o._env[envStr]\n ks.forEach(function(k) {\n o.set(k, env[envStr])\n })\n }\n })\n}\n\nfunction importArguments(o) {\n const argv = parseArgs(o.getArgs(), {\n configuration: {\n 'dot-notation': false\n }\n })\n Object.keys(o._argv).forEach(function(argStr) {\n const k = o._argv[argStr]\n if (argv[argStr] !== undefined) {\n o.set(k, String(argv[argStr]))\n }\n })\n}\n\nfunction addDefaultValues(schema, c, instance) {\n Object.keys(schema._cvtProperties).forEach(function(name) {\n const p = schema._cvtProperties[name]\n if (p._cvtProperties) {\n const kids = c[name] || {}\n addDefaultValues(p, kids, instance)\n c[name] = kids\n } else {\n c[name] = coerce(name, cloneDeep(p.default), schema, instance)\n }\n })\n}\n\nfunction isObj(o) {\n return typeof o === 'object' && o !== null\n}\n\nfunction overlay(from, to, schema) {\n Object.keys(from).forEach(function(k) {\n // leaf\n if (Array.isArray(from[k]) || !isObj(from[k]) || !schema || schema.format === 'object') {\n to[k] = coerce(k, from[k], schema)\n } else {\n if (!isObj(to[k])) {\n to[k] = {}\n }\n overlay(from[k], to[k], schema._cvtProperties[k])\n }\n })\n}\n\nfunction traverseSchema(schema, path) {\n const ar = path.split('.')\n let o = schema\n while (ar.length > 0) {\n const k = ar.shift()\n if (o && o._cvtProperties && o._cvtProperties[k]) {\n o = o._cvtProperties[k]\n } else {\n o = null\n break\n }\n }\n\n return o\n}\n\nfunction getFormat(schema, path) {\n const o = traverseSchema(schema, path)\n if (o == null) {\n return null\n }\n if (typeof o.format === 'string') {\n return o.format\n }\n if (o.default != null) {\n return typeof o.default\n }\n return null\n}\n\nfunction coerce(k, v, schema, instance) {\n const format = getFormat(schema, k)\n\n if (typeof v === 'string') {\n if (custom_converters.has(format)) {\n return custom_converters.get(format)(v, instance, k)\n }\n switch (format) {\n case 'port':\n case 'nat':\n case 'integer':\n case 'int': v = parseInt(v, 10); break\n case 'port_or_windows_named_pipe': v = isWindowsNamedPipe(v) ? v : parseInt(v, 10); break\n case 'number': v = parseFloat(v); break\n case 'boolean': v = String(v).toLowerCase() !== 'false'; break\n case 'array': v = v.split(','); break\n case 'object': v = JSON.parse(v); break\n case 'regexp': v = new RegExp(v); break\n default:\n // TODO: Should we throw an exception here?\n }\n }\n\n return v\n}\n\nfunction loadFile(path) {\n const segments = path.split('.')\n const extension = segments.length > 1 ? segments.pop() : ''\n const parse = parsers_registry[extension] || parsers_registry['*']\n\n // TODO Get rid of the sync call\n // eslint-disable-next-line no-sync\n return parse(fs.readFileSync(path, 'utf-8'))\n}\n\nfunction walk(obj, path, initializeMissing) {\n if (path) {\n const ar = path.split('.')\n while (ar.length) {\n const k = ar.shift()\n if (initializeMissing && obj[k] == null) {\n obj[k] = {}\n obj = obj[k]\n } else if (k in obj) {\n obj = obj[k]\n } else {\n throw new Error(\"cannot find configuration param '\" + path + \"'\")\n }\n }\n }\n\n return obj\n}\n\n/**\n * @returns a config object\n */\nconst convict = function convict(def, opts) {\n\n // TODO: Rename this `rv` variable (supposedly \"return value\") into something\n // more meaningful.\n const rv = {\n /**\n * Gets the array of process arguments, using the override passed to the\n * convict function or process.argv if no override was passed.\n */\n getArgs: function() {\n return opts && opts.args || process.argv.slice(2)\n },\n\n /**\n * Gets the environment variable map, using the override passed to the\n * convict function or process.env if no override was passed.\n */\n getEnv: function() {\n return opts && opts.env || process.env\n },\n\n /**\n * Exports all the properties (that is the keys and their current values) as JSON\n */\n getProperties: function() {\n return cloneDeep(this._instance)\n },\n\n /**\n * Exports all the properties (that is the keys and their current values) as\n * a JSON string, with sensitive values masked. Sensitive values are masked\n * even if they aren't set, to avoid revealing any information.\n */\n toString: function() {\n const clone = cloneDeep(this._instance)\n this._sensitive.forEach(function(key) {\n const path = key.split('.')\n const childKey = path.pop()\n const parentKey = path.join('.')\n const parent = walk(clone, parentKey)\n parent[childKey] = '[Sensitive]'\n })\n return JSON.stringify(clone, null, 2)\n },\n\n /**\n * Exports the schema as JSON.\n */\n getSchema: function() {\n return JSON.parse(JSON.stringify(this._schema))\n },\n\n /**\n * Exports the schema as a JSON string\n */\n getSchemaString: function() {\n return JSON.stringify(this._schema, null, 2)\n },\n\n /**\n * @returns the current value of the name property. name can use dot\n * notation to reference nested values\n */\n get: function(path) {\n const o = walk(this._instance, path)\n return cloneDeep(o)\n },\n\n /**\n * @returns the default value of the name property. name can use dot\n * notation to reference nested values\n */\n default: function(path) {\n // The default value for FOO.BAR.BAZ is stored in `_schema._cvtProperties` at:\n // FOO._cvtProperties.BAR._cvtProperties.BAZ.default\n path = path.split('.').join('._cvtProperties.') + '.default'\n const o = walk(this._schema._cvtProperties, path)\n return cloneDeep(o)\n },\n\n /**\n * Resets a property to its default value as defined in the schema\n */\n reset: function(prop_name) {\n this.set(prop_name, this.default(prop_name))\n },\n\n /**\n * @returns true if the property name is defined, or false otherwise\n */\n has: function(path) {\n try {\n const r = this.get(path)\n // values that are set but undefined return false\n return typeof r !== 'undefined'\n } catch (e) {\n return false\n }\n },\n\n /**\n * Sets the value of name to value. name can use dot notation to reference\n * nested values, e.g. \"database.port\". If objects in the chain don't yet\n * exist, they will be initialized to empty objects\n */\n set: function(k, v) {\n for (const forbidden_key_path of FORBIDDEN_KEY_PATHS) {\n if (k.startsWith(forbidden_key_path) ||\n k.includes(`.${forbidden_key_path}`)) {\n return this\n }\n }\n\n v = coerce(k, v, this._schema, this)\n const path = k.split('.')\n const childKey = path.pop()\n const parentKey = path.join('.')\n const parent = walk(this._instance, parentKey, true)\n parent[childKey] = v\n return this\n },\n\n /**\n * Loads and merges a JavaScript object into config\n */\n load: function(conf) {\n overlay(conf, this._instance, this._schema)\n // environment and arguments always overrides config files\n importEnvironment(rv)\n importArguments(rv)\n return this\n },\n\n /**\n * Loads and merges one or multiple JSON configuration files into config\n */\n loadFile: function(paths) {\n const self = this\n if (!Array.isArray(paths)) {\n paths = [paths]\n }\n paths.forEach(function(path) {\n // Support empty config files #253\n const result = loadFile(path)\n if (result) {\n overlay(result, self._instance, self._schema)\n }\n })\n // environment and arguments always overrides config files\n importEnvironment(rv)\n importArguments(rv)\n return this\n },\n\n /**\n * Validates config against the schema used to initialize it\n */\n validate: function(options) {\n options = options || {}\n\n options.allowed = options.allowed || ALLOWED_OPTION_WARN\n\n if (options.output && typeof options.output !== 'function') {\n throw new Error('options.output is optional and must be a function.')\n }\n\n const output_function = options.output || global.console.log\n\n const errors = validate(this._instance, this._schema, options.allowed)\n\n if (errors.invalid_type.length + errors.undeclared.length + errors.missing.length) {\n const sensitive = this._sensitive\n\n const fillErrorBuffer = function(errors) {\n let err_buf = ''\n for (let i = 0; i < errors.length; i++) {\n\n if (err_buf.length) {\n err_buf += '\\n'\n }\n\n const e = errors[i]\n\n if (e.fullName) {\n err_buf += e.fullName + ': '\n }\n if (e.message) {\n err_buf += e.message\n }\n if (e.value && !sensitive.has(e.fullName)) {\n err_buf += ': value was ' + JSON.stringify(e.value)\n }\n }\n return err_buf\n }\n\n const types_err_buf = fillErrorBuffer(errors.invalid_type)\n const params_err_buf = fillErrorBuffer(errors.undeclared)\n const missing_err_buf = fillErrorBuffer(errors.missing)\n\n const output_err_bufs = [types_err_buf, missing_err_buf]\n\n if (options.allowed === ALLOWED_OPTION_WARN && params_err_buf.length) {\n let warning = 'Warning:'\n if (process.stdout.isTTY) {\n // Write 'Warning:' in bold and in yellow\n const SET_BOLD_YELLOW_TEXT = '\\x1b[33;1m'\n const RESET_ALL_ATTRIBUTES = '\\x1b[0m'\n warning = SET_BOLD_YELLOW_TEXT + warning + RESET_ALL_ATTRIBUTES\n }\n output_function(warning + ' ' + params_err_buf)\n } else if (options.allowed === ALLOWED_OPTION_STRICT) {\n output_err_bufs.push(params_err_buf)\n }\n\n const output = output_err_bufs\n .filter(function(str) {\n return str.length\n })\n .join('\\n')\n\n if (output.length) {\n throw new Error(output)\n }\n\n }\n return this\n }\n }\n\n // If the definition is a string treat it as an external schema file\n if (typeof def === 'string') {\n rv._def = loadFile(def)\n } else {\n rv._def = def\n }\n\n // build up current config from definition\n rv._schema = {\n _cvtProperties: {}\n }\n\n rv._env = {}\n rv._argv = {}\n rv._sensitive = new Set()\n\n Object.keys(rv._def).forEach(function(k) {\n normalizeSchema(k, rv._def[k], rv._schema._cvtProperties, k, rv._env, rv._argv,\n rv._sensitive)\n })\n\n rv._instance = {}\n addDefaultValues(rv._schema, rv._instance, rv)\n importEnvironment(rv)\n importArguments(rv)\n\n return rv\n}\n\n/**\n * Adds a new custom format\n */\nconvict.addFormat = function(name, validate, coerce) {\n if (typeof name === 'object') {\n validate = name.validate\n coerce = name.coerce\n name = name.name\n }\n if (typeof validate !== 'function') {\n throw new Error('Validation function for ' + name + ' must be a function.')\n }\n if (coerce && typeof coerce !== 'function') {\n throw new Error('Coerce function for ' + name + ' must be a function.')\n }\n types[name] = validate\n if (coerce) {\n custom_converters.set(name, coerce)\n }\n}\n\n/**\n * Adds new custom formats\n */\nconvict.addFormats = function(formats) {\n Object.keys(formats).forEach(function(type) {\n convict.addFormat(type, formats[type].validate, formats[type].coerce)\n })\n}\n\n/**\n * Adds a new custom file parser\n */\nconvict.addParser = function(parsers) {\n if (!Array.isArray(parsers)) {\n parsers = [parsers]\n }\n\n parsers.forEach(function(parser) {\n if (!parser) {\n throw new Error('Invalid parser')\n }\n if (!parser.extension) {\n throw new Error('Missing parser.extension')\n }\n if (!parser.parse) {\n throw new Error('Missing parser.parse function')\n }\n\n if (typeof parser.parse !== 'function') {\n throw new Error('Invalid parser.parse function')\n }\n\n const extensions = !Array.isArray(parser.extension) ? [parser.extension] : parser.extension\n extensions.forEach(function(extension) {\n if (typeof extension !== 'string') {\n throw new Error('Invalid parser.extension')\n }\n parsers_registry[extension] = parser.parse\n })\n })\n}\n\nmodule.exports = convict\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.TSConvict = void 0;\nconst Reflector_1 = __importDefault(require(\"./Reflector\"));\nconst convict_1 = __importDefault(require(\"convict\"));\nconst fs_1 = __importDefault(require(\"fs\"));\nconst path_1 = __importDefault(require(\"path\"));\nclass TSConvict {\n constructor(ConfigClass) {\n this.opts = {};\n if (!Reflector_1.default.isConfigClass) {\n throw new Error(\"A class must be decorated with Config or at least one Property\");\n }\n const opts = Reflector_1.default.getConvictMetaForClass(ConfigClass);\n if (opts !== null) {\n if (typeof opts.parser !== \"undefined\") {\n convict_1.default.addParser(opts.parser);\n }\n if (typeof opts.formats !== \"undefined\") {\n convict_1.default.addFormats(opts.formats);\n }\n this.opts = opts;\n }\n this.baseModel = new ConfigClass();\n this.schema = this.getSchemaFor(this.baseModel);\n this.client = convict_1.default(this.schema);\n }\n load(config = null) {\n let baseFile = null;\n if (typeof this.opts.file !== \"undefined\" &&\n fs_1.default.existsSync(path_1.default.resolve(this.opts.file))) {\n baseFile = this.opts.file;\n }\n if (typeof config === \"string\" || Array.isArray(config)) {\n let files;\n if (Array.isArray(config)) {\n files = config;\n }\n else {\n files = [config];\n }\n if (baseFile !== null) {\n files.unshift(baseFile);\n }\n this.client.loadFile(files);\n }\n else if (config === null) {\n if (baseFile !== null) {\n this.client.loadFile(baseFile);\n }\n else {\n this.client.load({});\n }\n }\n else if (typeof config === \"object\") {\n if (baseFile !== null) {\n this.client.loadFile(baseFile);\n }\n this.client.load(config);\n }\n else {\n throw new Error(`Could not load the config given: ${config}`);\n }\n const allowed = this.opts.validationMethod === undefined\n ? \"strict\"\n : this.opts.validationMethod;\n this.client.validate({ allowed });\n const rawConfig = this.client.getProperties();\n return this.applyDataToModel(this.baseModel, rawConfig);\n }\n getSchemaFor(target) {\n const schema = {};\n for (const key of Reflector_1.default.getClassProperties(target)) {\n const meta = Reflector_1.default.getConvictMetaForProperty(target, key);\n if (Reflector_1.default.isConstructor(meta) && Reflector_1.default.isConfigClass(meta)) {\n try {\n target[key] = new meta();\n schema[key] = this.getSchemaFor(target[key]);\n }\n catch (error) {\n console.error(error);\n throw new Error(\"Could not make a new class of \" + meta);\n }\n }\n else {\n schema[key] = meta;\n }\n }\n return schema;\n }\n applyDataToModel(target, config) {\n for (const key of Reflector_1.default.getClassProperties(target)) {\n const meta = Reflector_1.default.getConvictMetaForProperty(target, key);\n if (Reflector_1.default.isConstructor(meta) && Reflector_1.default.isConfigClass(meta)) {\n this.applyDataToModel(target[key], config[key] || {});\n }\n else {\n if (key in config) {\n target[key] = config[key];\n }\n }\n }\n return target;\n }\n}\nexports.TSConvict = TSConvict;\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 });\n__exportStar(require(\"./interfaces\"), exports);\n__exportStar(require(\"./decorators\"), exports);\n__exportStar(require(\"./TSConvict\"), exports);\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 fn.call(\n this,\n ...args,\n (err, res) => (err != null) ? reject(err) : resolve(res)\n )\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 fn.apply(this, args.slice(0, -1)).then(r => cb(null, r), cb)\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\")\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.opendir was added in Node.js v12.12.0\n // fs.rm was added in Node.js v14.14.0\n // fs.lchown is not available on at least some Linux\n return typeof fs[key] === 'function'\n})\n\n// Export all keys:\nObject.keys(fs).forEach(key => {\n if (key === 'promises') {\n // fs.promises is a getter property that triggers ExperimentalWarning\n // Don't re-export it here, the getter is defined in \"lib/index.js\"\n return\n }\n exports[key] = fs[key]\n})\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.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// fs.writev only available in Node v12.9.0+\nif (typeof fs.writev === 'function') {\n // Function signature is\n // s.writev(fd, buffers[, position], callback)\n // We need to handle the optional arg, so we use ...args\n exports.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\n// fs.realpath.native only available in Node v9.2+\nif (typeof fs.realpath.native === 'function') {\n exports.realpath.native = u(fs.realpath.native)\n}\n", "module.exports = r => {\n const n = process.versions.node.split('.').map(x => parseInt(x, 10))\n r = r.split('.').map(x => parseInt(x, 10))\n return n[0] > r[0] || (n[0] === r[0] && (n[1] > r[1] || (n[1] === r[1] && n[2] >= r[2])))\n}\n", "// Adapted from https://github.com/sindresorhus/make-dir\n// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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 fs = require('../fs')\nconst path = require('path')\nconst atLeastNode = require('at-least-node')\n\nconst useNativeRecursiveOption = atLeastNode('10.12.0')\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nconst 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\nconst processOptions = options => {\n const defaults = { mode: 0o777 }\n if (typeof options === 'number') options = { mode: options }\n return { ...defaults, ...options }\n}\n\nconst permissionError = pth => {\n // This replicates the exception of `fs.mkdir` with native the\n // `recusive` option when run on an invalid drive under Windows.\n const error = new Error(`operation not permitted, mkdir '${pth}'`)\n error.code = 'EPERM'\n error.errno = -4048\n error.path = pth\n error.syscall = 'mkdir'\n return error\n}\n\nmodule.exports.makeDir = async (input, options) => {\n checkPath(input)\n options = processOptions(options)\n\n if (useNativeRecursiveOption) {\n const pth = path.resolve(input)\n\n return fs.mkdir(pth, {\n mode: options.mode,\n recursive: true\n })\n }\n\n const make = async pth => {\n try {\n await fs.mkdir(pth, options.mode)\n } catch (error) {\n if (error.code === 'EPERM') {\n throw error\n }\n\n if (error.code === 'ENOENT') {\n if (path.dirname(pth) === pth) {\n throw permissionError(pth)\n }\n\n if (error.message.includes('null bytes')) {\n throw error\n }\n\n await make(path.dirname(pth))\n return make(pth)\n }\n\n try {\n const stats = await fs.stat(pth)\n if (!stats.isDirectory()) {\n // This error is never exposed to the user\n // it is caught below, and the original error is thrown\n throw new Error('The path is not a directory')\n }\n } catch {\n throw error\n }\n }\n }\n\n return make(path.resolve(input))\n}\n\nmodule.exports.makeDirSync = (input, options) => {\n checkPath(input)\n options = processOptions(options)\n\n if (useNativeRecursiveOption) {\n const pth = path.resolve(input)\n\n return fs.mkdirSync(pth, {\n mode: options.mode,\n recursive: true\n })\n }\n\n const make = pth => {\n try {\n fs.mkdirSync(pth, options.mode)\n } catch (error) {\n if (error.code === 'EPERM') {\n throw error\n }\n\n if (error.code === 'ENOENT') {\n if (path.dirname(pth) === pth) {\n throw permissionError(pth)\n }\n\n if (error.message.includes('null bytes')) {\n throw error\n }\n\n make(path.dirname(pth))\n return make(pth)\n }\n\n try {\n if (!fs.statSync(pth).isDirectory()) {\n // This error is never exposed to the user\n // it is caught below, and the original error is thrown\n throw new Error('The path is not a directory')\n }\n } catch {\n throw error\n }\n }\n }\n\n return make(path.resolve(input))\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'\n\nconst fs = require('graceful-fs')\n\nfunction utimesMillis (path, atime, mtime, callback) {\n // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)\n fs.open(path, 'r+', (err, fd) => {\n if (err) return callback(err)\n fs.futimes(fd, atime, mtime, futimesErr => {\n fs.close(fd, closeErr => {\n if (callback) callback(futimesErr || closeErr)\n })\n })\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,\n utimesMillisSync\n}\n", "'use strict'\n\nconst fs = require('../fs')\nconst path = require('path')\nconst util = require('util')\nconst atLeastNode = require('at-least-node')\n\nconst nodeSupportsBigInt = atLeastNode('10.5.0')\nconst stat = (file) => nodeSupportsBigInt ? fs.stat(file, { bigint: true }) : fs.stat(file)\nconst statSync = (file) => nodeSupportsBigInt ? fs.statSync(file, { bigint: true }) : fs.statSync(file)\n\nfunction getStats (src, dest) {\n return Promise.all([\n stat(src),\n stat(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) {\n let destStat\n const srcStat = statSync(src)\n try {\n destStat = statSync(dest)\n } catch (err) {\n if (err.code === 'ENOENT') return { srcStat, destStat: null }\n throw err\n }\n return { srcStat, destStat }\n}\n\nfunction checkPaths (src, dest, funcName, cb) {\n util.callbackify(getStats)(src, dest, (err, stats) => {\n if (err) return cb(err)\n const { srcStat, destStat } = stats\n if (destStat && areIdentical(srcStat, destStat)) {\n return cb(new Error('Source and destination must not be the same.'))\n }\n if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {\n return cb(new Error(errMsg(src, dest, funcName)))\n }\n return cb(null, { srcStat, destStat })\n })\n}\n\nfunction checkPathsSync (src, dest, funcName) {\n const { srcStat, destStat } = getStatsSync(src, dest)\n if (destStat && areIdentical(srcStat, destStat)) {\n throw new Error('Source and destination must not be the same.')\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.\nfunction checkParentPaths (src, srcStat, dest, funcName, cb) {\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 cb()\n const callback = (err, destStat) => {\n if (err) {\n if (err.code === 'ENOENT') return cb()\n return cb(err)\n }\n if (areIdentical(srcStat, destStat)) {\n return cb(new Error(errMsg(src, dest, funcName)))\n }\n return checkParentPaths(src, srcStat, destParent, funcName, cb)\n }\n if (nodeSupportsBigInt) fs.stat(destParent, { bigint: true }, callback)\n else fs.stat(destParent, callback)\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 = statSync(destParent)\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 if (destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) {\n if (nodeSupportsBigInt || destStat.ino < Number.MAX_SAFE_INTEGER) {\n // definitive answer\n return true\n }\n // Use additional heuristics if we can't use 'bigint'.\n // Different 'ino' could be represented the same if they are >= Number.MAX_SAFE_INTEGER\n // See issue 657\n if (destStat.size === srcStat.size &&\n destStat.mode === srcStat.mode &&\n destStat.nlink === srcStat.nlink &&\n destStat.atimeMs === srcStat.atimeMs &&\n destStat.mtimeMs === srcStat.mtimeMs &&\n destStat.ctimeMs === srcStat.ctimeMs &&\n destStat.birthtimeMs === srcStat.birthtimeMs) {\n // heuristic answer\n return true\n }\n }\n return false\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.reduce((acc, cur, i) => acc && destArr[i] === cur, true)\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 checkPathsSync,\n checkParentPaths,\n checkParentPathsSync,\n isSrcSubdir\n}\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 console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`)\n }\n\n const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy')\n stat.checkParentPathsSync(src, srcStat, dest, 'copy')\n return handleFilterAndCopy(destStat, src, dest, opts)\n}\n\nfunction handleFilterAndCopy (destStat, src, dest, opts) {\n if (opts.filter && !opts.filter(src, dest)) return\n const destParent = path.dirname(dest)\n if (!fs.existsSync(destParent)) mkdirsSync(destParent)\n return startCopy(destStat, src, dest, opts)\n}\n\nfunction startCopy (destStat, src, dest, opts) {\n if (opts.filter && !opts.filter(src, dest)) return\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}\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 if (destStat && !destStat.isDirectory()) {\n throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)\n }\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 const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy')\n return startCopy(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 (fs.statSync(dest).isDirectory() && 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\nmodule.exports = {\n copySync: require('./copy-sync')\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('graceful-fs')\nconst path = require('path')\nconst mkdirs = require('../mkdirs').mkdirs\nconst pathExists = require('../path-exists').pathExists\nconst utimesMillis = require('../util/utimes').utimesMillis\nconst stat = require('../util/stat')\n\nfunction copy (src, dest, opts, cb) {\n if (typeof opts === 'function' && !cb) {\n cb = opts\n opts = {}\n } else if (typeof opts === 'function') {\n opts = { filter: opts }\n }\n\n cb = cb || function () {}\n opts = opts || {}\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 console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\\n\n see https://github.com/jprichardson/node-fs-extra/issues/269`)\n }\n\n stat.checkPaths(src, dest, 'copy', (err, stats) => {\n if (err) return cb(err)\n const { srcStat, destStat } = stats\n stat.checkParentPaths(src, srcStat, dest, 'copy', err => {\n if (err) return cb(err)\n if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)\n return checkParentDir(destStat, src, dest, opts, cb)\n })\n })\n}\n\nfunction checkParentDir (destStat, src, dest, opts, cb) {\n const destParent = path.dirname(dest)\n pathExists(destParent, (err, dirExists) => {\n if (err) return cb(err)\n if (dirExists) return startCopy(destStat, src, dest, opts, cb)\n mkdirs(destParent, err => {\n if (err) return cb(err)\n return startCopy(destStat, src, dest, opts, cb)\n })\n })\n}\n\nfunction handleFilter (onInclude, destStat, src, dest, opts, cb) {\n Promise.resolve(opts.filter(src, dest)).then(include => {\n if (include) return onInclude(destStat, src, dest, opts, cb)\n return cb()\n }, error => cb(error))\n}\n\nfunction startCopy (destStat, src, dest, opts, cb) {\n if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)\n return getStats(destStat, src, dest, opts, cb)\n}\n\nfunction getStats (destStat, src, dest, opts, cb) {\n const stat = opts.dereference ? fs.stat : fs.lstat\n stat(src, (err, srcStat) => {\n if (err) return cb(err)\n\n if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)\n else if (srcStat.isFile() ||\n srcStat.isCharacterDevice() ||\n srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)\n else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)\n })\n}\n\nfunction onFile (srcStat, destStat, src, dest, opts, cb) {\n if (!destStat) return copyFile(srcStat, src, dest, opts, cb)\n return mayCopyFile(srcStat, src, dest, opts, cb)\n}\n\nfunction mayCopyFile (srcStat, src, dest, opts, cb) {\n if (opts.overwrite) {\n fs.unlink(dest, err => {\n if (err) return cb(err)\n return copyFile(srcStat, src, dest, opts, cb)\n })\n } else if (opts.errorOnExist) {\n return cb(new Error(`'${dest}' already exists`))\n } else return cb()\n}\n\nfunction copyFile (srcStat, src, dest, opts, cb) {\n fs.copyFile(src, dest, err => {\n if (err) return cb(err)\n if (opts.preserveTimestamps) return handleTimestampsAndMode(srcStat.mode, src, dest, cb)\n return setDestMode(dest, srcStat.mode, cb)\n })\n}\n\nfunction handleTimestampsAndMode (srcMode, src, dest, cb) {\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 return makeFileWritable(dest, srcMode, err => {\n if (err) return cb(err)\n return setDestTimestampsAndMode(srcMode, src, dest, cb)\n })\n }\n return setDestTimestampsAndMode(srcMode, src, dest, cb)\n}\n\nfunction fileIsNotWritable (srcMode) {\n return (srcMode & 0o200) === 0\n}\n\nfunction makeFileWritable (dest, srcMode, cb) {\n return setDestMode(dest, srcMode | 0o200, cb)\n}\n\nfunction setDestTimestampsAndMode (srcMode, src, dest, cb) {\n setDestTimestamps(src, dest, err => {\n if (err) return cb(err)\n return setDestMode(dest, srcMode, cb)\n })\n}\n\nfunction setDestMode (dest, srcMode, cb) {\n return fs.chmod(dest, srcMode, cb)\n}\n\nfunction setDestTimestamps (src, dest, cb) {\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 fs.stat(src, (err, updatedSrcStat) => {\n if (err) return cb(err)\n return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb)\n })\n}\n\nfunction onDir (srcStat, destStat, src, dest, opts, cb) {\n if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts, cb)\n if (destStat && !destStat.isDirectory()) {\n return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))\n }\n return copyDir(src, dest, opts, cb)\n}\n\nfunction mkDirAndCopy (srcMode, src, dest, opts, cb) {\n fs.mkdir(dest, err => {\n if (err) return cb(err)\n copyDir(src, dest, opts, err => {\n if (err) return cb(err)\n return setDestMode(dest, srcMode, cb)\n })\n })\n}\n\nfunction copyDir (src, dest, opts, cb) {\n fs.readdir(src, (err, items) => {\n if (err) return cb(err)\n return copyDirItems(items, src, dest, opts, cb)\n })\n}\n\nfunction copyDirItems (items, src, dest, opts, cb) {\n const item = items.pop()\n if (!item) return cb()\n return copyDirItem(items, item, src, dest, opts, cb)\n}\n\nfunction copyDirItem (items, item, src, dest, opts, cb) {\n const srcItem = path.join(src, item)\n const destItem = path.join(dest, item)\n stat.checkPaths(srcItem, destItem, 'copy', (err, stats) => {\n if (err) return cb(err)\n const { destStat } = stats\n startCopy(destStat, srcItem, destItem, opts, err => {\n if (err) return cb(err)\n return copyDirItems(items, src, dest, opts, cb)\n })\n })\n}\n\nfunction onLink (destStat, src, dest, opts, cb) {\n fs.readlink(src, (err, resolvedSrc) => {\n if (err) return cb(err)\n if (opts.dereference) {\n resolvedSrc = path.resolve(process.cwd(), resolvedSrc)\n }\n\n if (!destStat) {\n return fs.symlink(resolvedSrc, dest, cb)\n } else {\n fs.readlink(dest, (err, resolvedDest) => {\n if (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.symlink(resolvedSrc, dest, cb)\n return cb(err)\n }\n if (opts.dereference) {\n resolvedDest = path.resolve(process.cwd(), resolvedDest)\n }\n if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {\n return cb(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 (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {\n return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))\n }\n return copyLink(resolvedSrc, dest, cb)\n })\n }\n })\n}\n\nfunction copyLink (resolvedSrc, dest, cb) {\n fs.unlink(dest, err => {\n if (err) return cb(err)\n return fs.symlink(resolvedSrc, dest, cb)\n })\n}\n\nmodule.exports = copy\n", "'use strict'\n\nconst u = require('universalify').fromCallback\nmodule.exports = {\n copy: u(require('./copy'))\n}\n", "'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst assert = require('assert')\n\nconst isWindows = (process.platform === 'win32')\n\nfunction defaults (options) {\n const methods = [\n 'unlink',\n 'chmod',\n 'stat',\n 'lstat',\n 'rmdir',\n 'readdir'\n ]\n methods.forEach(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}\n\nfunction rimraf (p, options, cb) {\n let busyTries = 0\n\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n assert(p, 'rimraf: missing path')\n assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')\n assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')\n assert(options, 'rimraf: invalid options argument provided')\n assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')\n\n defaults(options)\n\n rimraf_(p, options, function CB (er) {\n if (er) {\n if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&\n busyTries < options.maxBusyTries) {\n busyTries++\n const time = busyTries * 100\n // try again, with the same exact callback as this one.\n return setTimeout(() => rimraf_(p, options, CB), time)\n }\n\n // already gone\n if (er.code === 'ENOENT') er = null\n }\n\n cb(er)\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, (er, st) => {\n if (er && er.code === 'ENOENT') {\n return cb(null)\n }\n\n // Windows can EPERM on stat. Life is suffering.\n if (er && er.code === 'EPERM' && isWindows) {\n return fixWinEPERM(p, options, er, cb)\n }\n\n if (st && st.isDirectory()) {\n return rmdir(p, options, er, cb)\n }\n\n options.unlink(p, er => {\n if (er) {\n if (er.code === 'ENOENT') {\n return cb(null)\n }\n if (er.code === 'EPERM') {\n return (isWindows)\n ? fixWinEPERM(p, options, er, cb)\n : rmdir(p, options, er, cb)\n }\n if (er.code === 'EISDIR') {\n return rmdir(p, options, er, cb)\n }\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\n options.chmod(p, 0o666, er2 => {\n if (er2) {\n cb(er2.code === 'ENOENT' ? null : er)\n } else {\n options.stat(p, (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 })\n}\n\nfunction fixWinEPERMSync (p, options, er) {\n let stats\n\n assert(p)\n assert(options)\n\n try {\n options.chmodSync(p, 0o666)\n } catch (er2) {\n if (er2.code === 'ENOENT') {\n return\n } else {\n throw er\n }\n }\n\n try {\n stats = options.statSync(p)\n } catch (er3) {\n if (er3.code === 'ENOENT') {\n return\n } else {\n throw er\n }\n }\n\n if (stats.isDirectory()) {\n rmdirSync(p, options, er)\n } else {\n options.unlinkSync(p)\n }\n}\n\nfunction rmdir (p, options, originalEr, cb) {\n assert(p)\n assert(options)\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, 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}\n\nfunction rmkids (p, options, cb) {\n assert(p)\n assert(options)\n assert(typeof cb === 'function')\n\n options.readdir(p, (er, files) => {\n if (er) return cb(er)\n\n let n = files.length\n let errState\n\n if (n === 0) return options.rmdir(p, cb)\n\n files.forEach(f => {\n rimraf(path.join(p, f), options, er => {\n if (errState) {\n return\n }\n if (er) return cb(errState = er)\n if (--n === 0) {\n options.rmdir(p, cb)\n }\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 let st\n\n options = options || {}\n defaults(options)\n\n assert(p, 'rimraf: missing path')\n assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')\n assert(options, 'rimraf: missing options')\n assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')\n\n try {\n st = options.lstatSync(p)\n } catch (er) {\n if (er.code === 'ENOENT') {\n return\n }\n\n // Windows can EPERM on stat. Life is suffering.\n if (er.code === 'EPERM' && isWindows) {\n fixWinEPERMSync(p, options, er)\n }\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 }\n } catch (er) {\n if (er.code === 'ENOENT') {\n return\n } else if (er.code === 'EPERM') {\n return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n } else if (er.code !== 'EISDIR') {\n throw er\n }\n rmdirSync(p, options, er)\n }\n}\n\nfunction rmdirSync (p, options, originalEr) {\n assert(p)\n assert(options)\n\n try {\n options.rmdirSync(p)\n } catch (er) {\n if (er.code === 'ENOTDIR') {\n throw originalEr\n } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {\n rmkidsSync(p, options)\n } else if (er.code !== 'ENOENT') {\n throw er\n }\n }\n}\n\nfunction rmkidsSync (p, options) {\n assert(p)\n assert(options)\n options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))\n\n if (isWindows) {\n // We only end up here once we got ENOTEMPTY at least once, and\n // at this point, we are guaranteed to have removed all the kids.\n // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n // try really hard to delete stuff on windows, because it has a\n // PROFOUNDLY annoying habit of not closing handles promptly when\n // files are deleted, resulting in spurious ENOTEMPTY errors.\n const startTime = Date.now()\n do {\n try {\n const ret = options.rmdirSync(p, options)\n return ret\n } catch {}\n } while (Date.now() - startTime < 500) // give up after 500ms\n } else {\n const ret = options.rmdirSync(p, options)\n return ret\n }\n}\n\nmodule.exports = rimraf\nrimraf.sync = rimrafSync\n", "'use strict'\n\nconst u = require('universalify').fromCallback\nconst rimraf = require('./rimraf')\n\nmodule.exports = {\n remove: u(rimraf),\n removeSync: rimraf.sync\n}\n", "'use strict'\n\nconst u = require('universalify').fromCallback\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst remove = require('../remove')\n\nconst emptyDir = u(function emptyDir (dir, callback) {\n callback = callback || function () {}\n fs.readdir(dir, (err, items) => {\n if (err) return mkdir.mkdirs(dir, callback)\n\n items = items.map(item => path.join(dir, item))\n\n deleteItem()\n\n function deleteItem () {\n const item = items.pop()\n if (!item) return callback()\n remove.remove(item, err => {\n if (err) return callback(err)\n deleteItem()\n })\n }\n })\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').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst mkdir = require('../mkdirs')\n\nfunction createFile (file, callback) {\n function makeFile () {\n fs.writeFile(file, '', err => {\n if (err) return callback(err)\n callback()\n })\n }\n\n fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err\n if (!err && stats.isFile()) return callback()\n const dir = path.dirname(file)\n fs.stat(dir, (err, stats) => {\n if (err) {\n // if the directory doesn't exist, make it\n if (err.code === 'ENOENT') {\n return mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n makeFile()\n })\n }\n return callback(err)\n }\n\n if (stats.isDirectory()) makeFile()\n else {\n // parent is not a directory\n // This is just to cause an internal ENOTDIR error to be thrown\n fs.readdir(dir, err => {\n if (err) return callback(err)\n })\n }\n })\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').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction createLink (srcpath, dstpath, callback) {\n function makeLink (srcpath, dstpath) {\n fs.link(srcpath, dstpath, err => {\n if (err) return callback(err)\n callback(null)\n })\n }\n\n pathExists(dstpath, (err, destinationExists) => {\n if (err) return callback(err)\n if (destinationExists) return callback(null)\n fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureLink')\n return callback(err)\n }\n\n const dir = path.dirname(dstpath)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return makeLink(srcpath, dstpath)\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n makeLink(srcpath, dstpath)\n })\n })\n })\n })\n}\n\nfunction createLinkSync (srcpath, dstpath) {\n const destinationExists = fs.existsSync(dstpath)\n if (destinationExists) return undefined\n\n try {\n fs.lstatSync(srcpath)\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('graceful-fs')\nconst pathExists = require('../path-exists').pathExists\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\nfunction symlinkPaths (srcpath, dstpath, callback) {\n if (path.isAbsolute(srcpath)) {\n return fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n return callback(err)\n }\n return callback(null, {\n toCwd: srcpath,\n toDst: srcpath\n })\n })\n } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n return pathExists(relativeToDst, (err, exists) => {\n if (err) return callback(err)\n if (exists) {\n return callback(null, {\n toCwd: relativeToDst,\n toDst: srcpath\n })\n } else {\n return fs.lstat(srcpath, (err) => {\n if (err) {\n err.message = err.message.replace('lstat', 'ensureSymlink')\n return callback(err)\n }\n return callback(null, {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n })\n })\n }\n })\n }\n}\n\nfunction symlinkPathsSync (srcpath, dstpath) {\n let exists\n if (path.isAbsolute(srcpath)) {\n 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 } else {\n const dstdir = path.dirname(dstpath)\n const relativeToDst = path.join(dstdir, srcpath)\n exists = fs.existsSync(relativeToDst)\n if (exists) {\n return {\n toCwd: relativeToDst,\n toDst: srcpath\n }\n } else {\n exists = fs.existsSync(srcpath)\n if (!exists) throw new Error('relative srcpath does not exist')\n return {\n toCwd: srcpath,\n toDst: path.relative(dstdir, srcpath)\n }\n }\n }\n}\n\nmodule.exports = {\n symlinkPaths,\n symlinkPathsSync\n}\n", "'use strict'\n\nconst fs = require('graceful-fs')\n\nfunction symlinkType (srcpath, type, callback) {\n callback = (typeof type === 'function') ? type : callback\n type = (typeof type === 'function') ? false : type\n if (type) return callback(null, type)\n fs.lstat(srcpath, (err, stats) => {\n if (err) return callback(null, 'file')\n type = (stats && stats.isDirectory()) ? 'dir' : 'file'\n callback(null, type)\n })\n}\n\nfunction symlinkTypeSync (srcpath, type) {\n let stats\n\n if (type) return type\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,\n symlinkTypeSync\n}\n", "'use strict'\n\nconst u = require('universalify').fromCallback\nconst path = require('path')\nconst fs = require('graceful-fs')\nconst _mkdirs = require('../mkdirs')\nconst mkdirs = _mkdirs.mkdirs\nconst mkdirsSync = _mkdirs.mkdirsSync\n\nconst _symlinkPaths = require('./symlink-paths')\nconst symlinkPaths = _symlinkPaths.symlinkPaths\nconst symlinkPathsSync = _symlinkPaths.symlinkPathsSync\n\nconst _symlinkType = require('./symlink-type')\nconst symlinkType = _symlinkType.symlinkType\nconst symlinkTypeSync = _symlinkType.symlinkTypeSync\n\nconst pathExists = require('../path-exists').pathExists\n\nfunction createSymlink (srcpath, dstpath, type, callback) {\n callback = (typeof type === 'function') ? type : callback\n type = (typeof type === 'function') ? false : type\n\n pathExists(dstpath, (err, destinationExists) => {\n if (err) return callback(err)\n if (destinationExists) return callback(null)\n symlinkPaths(srcpath, dstpath, (err, relative) => {\n if (err) return callback(err)\n srcpath = relative.toDst\n symlinkType(relative.toCwd, type, (err, type) => {\n if (err) return callback(err)\n const dir = path.dirname(dstpath)\n pathExists(dir, (err, dirExists) => {\n if (err) return callback(err)\n if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)\n mkdirs(dir, err => {\n if (err) return callback(err)\n fs.symlink(srcpath, dstpath, type, callback)\n })\n })\n })\n })\n })\n}\n\nfunction createSymlinkSync (srcpath, dstpath, type) {\n const destinationExists = fs.existsSync(dstpath)\n if (destinationExists) return undefined\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 file = require('./file')\nconst link = require('./link')\nconst symlink = require('./symlink')\n\nmodule.exports = {\n // file\n createFile: file.createFile,\n createFileSync: file.createFileSync,\n ensureFile: file.createFile,\n ensureFileSync: file.createFileSync,\n // link\n createLink: link.createLink,\n createLinkSync: link.createLinkSync,\n ensureLink: link.createLink,\n ensureLinkSync: link.createLinkSync,\n // symlink\n createSymlink: symlink.createSymlink,\n createSymlinkSync: symlink.createSymlinkSync,\n ensureSymlink: symlink.createSymlink,\n ensureSymlinkSync: symlink.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').fromCallback\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst mkdir = require('../mkdirs')\nconst pathExists = require('../path-exists').pathExists\n\nfunction outputFile (file, data, encoding, callback) {\n if (typeof encoding === 'function') {\n callback = encoding\n encoding = 'utf8'\n }\n\n const dir = path.dirname(file)\n pathExists(dir, (err, itDoes) => {\n if (err) return callback(err)\n if (itDoes) return fs.writeFile(file, data, encoding, callback)\n\n mkdir.mkdirs(dir, err => {\n if (err) return callback(err)\n\n fs.writeFile(file, data, encoding, callback)\n })\n })\n}\n\nfunction outputFileSync (file, ...args) {\n const dir = path.dirname(file)\n if (fs.existsSync(dir)) {\n return fs.writeFileSync(file, ...args)\n }\n mkdir.mkdirsSync(dir)\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')\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')\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('graceful-fs')\nconst path = require('path')\nconst copySync = require('../copy-sync').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 } = stat.checkPathsSync(src, dest, 'move')\n stat.checkParentPathsSync(src, srcStat, dest, 'move')\n mkdirpSync(path.dirname(dest))\n return doRename(src, dest, overwrite)\n}\n\nfunction doRename (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 }\n copySync(src, dest, opts)\n return removeSync(src)\n}\n\nmodule.exports = moveSync\n", "'use strict'\n\nmodule.exports = {\n moveSync: require('./move-sync')\n}\n", "'use strict'\n\nconst fs = require('graceful-fs')\nconst path = require('path')\nconst copy = require('../copy').copy\nconst remove = require('../remove').remove\nconst mkdirp = require('../mkdirs').mkdirp\nconst pathExists = require('../path-exists').pathExists\nconst stat = require('../util/stat')\n\nfunction move (src, dest, opts, cb) {\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n const overwrite = opts.overwrite || opts.clobber || false\n\n stat.checkPaths(src, dest, 'move', (err, stats) => {\n if (err) return cb(err)\n const { srcStat } = stats\n stat.checkParentPaths(src, srcStat, dest, 'move', err => {\n if (err) return cb(err)\n mkdirp(path.dirname(dest), err => {\n if (err) return cb(err)\n return doRename(src, dest, overwrite, cb)\n })\n })\n })\n}\n\nfunction doRename (src, dest, overwrite, cb) {\n if (overwrite) {\n return remove(dest, err => {\n if (err) return cb(err)\n return rename(src, dest, overwrite, cb)\n })\n }\n pathExists(dest, (err, destExists) => {\n if (err) return cb(err)\n if (destExists) return cb(new Error('dest already exists.'))\n return rename(src, dest, overwrite, cb)\n })\n}\n\nfunction rename (src, dest, overwrite, cb) {\n fs.rename(src, dest, err => {\n if (!err) return cb()\n if (err.code !== 'EXDEV') return cb(err)\n return moveAcrossDevice(src, dest, overwrite, cb)\n })\n}\n\nfunction moveAcrossDevice (src, dest, overwrite, cb) {\n const opts = {\n overwrite,\n errorOnExist: true\n }\n copy(src, dest, opts, err => {\n if (err) return cb(err)\n return remove(src, cb)\n })\n}\n\nmodule.exports = move\n", "'use strict'\n\nconst u = require('universalify').fromCallback\nmodule.exports = {\n move: u(require('./move'))\n}\n", "'use strict'\n\nmodule.exports = {\n // Export promiseified graceful-fs:\n ...require('./fs'),\n // Export extra methods:\n ...require('./copy-sync'),\n ...require('./copy'),\n ...require('./empty'),\n ...require('./ensure'),\n ...require('./json'),\n ...require('./mkdirs'),\n ...require('./move-sync'),\n ...require('./move'),\n ...require('./output'),\n ...require('./path-exists'),\n ...require('./remove')\n}\n\n// Export fs.promises as a getter property so that we don't trigger\n// ExperimentalWarning before fs.promises is actually accessed.\nconst fs = require('fs')\nif (Object.getOwnPropertyDescriptor(fs, 'promises')) {\n Object.defineProperty(module.exports, 'promises', {\n get () { return fs.promises }\n })\n}\n", "module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n", "const stringify = require('fast-safe-stringify');\n\nconst symbols = {\n LOG: Symbol('log'),\n META: Symbol('meta'),\n ERROR: Symbol('error'),\n OPTS: Symbol('opts')\n};\n\n/**\n * The LogMessage class is a private/internal class that is used for generating log messages. All log methods return an instance of LogMessage allowing for a chainable api.\n * Having a seperate class and instance for each log allows chaining and the ability to further customize this module in the future without major breaking changes. The documentation\n * provided here is what is available to you for each log message.\n */\nclass LogMessage {\n /**\n * Constructor for LogMessage\n * @class\n * @param {object} log Object containing all the information for a log.\n * @param {string} log.level The log level.\n * @param {*} log.msg The message for the log.\n * @param {object} [log.meta] Metadata attached to the log.\n * @param {string[]|Function[]} [log.tags] Additional tags to attach to the log.\n * @param {object} opts Configuration options from LambdaLog.\n */\n constructor(log, opts) {\n this[symbols.LOG] = log;\n this[symbols.META] = {};\n this[symbols.ERROR] = null;\n this[symbols.OPTS] = opts;\n\n const { meta, tags } = this[symbols.LOG];\n if(meta && (typeof meta !== 'object' || Array.isArray(meta))) {\n this[symbols.LOG].meta = { meta };\n }\n\n if(!meta) this[symbols.LOG].meta = {};\n if(!tags) this[symbols.LOG].tags = [];\n\n // If `msg` is an Error-like object, use the message and add the `stack` to `meta`\n if(LogMessage.isError(log.msg)) {\n const err = log.msg;\n this[symbols.ERROR] = err;\n this[symbols.META].stack = err.stack;\n this[symbols.LOG].msg = err.message;\n }\n }\n\n /**\n * String log level of the message.\n * @type {string}\n */\n get level() {\n return this[symbols.LOG].level;\n }\n\n /**\n * The message for the log. If an Error was provided, it will be the message of the error.\n * @type {string}\n */\n get msg() {\n return this[symbols.LOG].msg;\n }\n\n /**\n * Update the message for this log to something else.\n * @param {string} msg A string to update the message with.\n */\n set msg(msg) {\n this[symbols.LOG].msg = msg;\n }\n\n /**\n * Alias for `this.msg`.\n * @type {string}\n */\n get message() {\n return this.msg;\n }\n\n /**\n * Alias for `this.msg = 'New message';`\n * @param {string} msg A string to update the message with.\n */\n set message(msg) {\n this.msg = msg;\n }\n\n /**\n * The fully compiled metadata object for the log. Includes global and dynamic metadata.\n * @type {object}\n */\n get meta() {\n const opts = this[symbols.OPTS];\n\n let meta = {\n ...this[symbols.META],\n ...this[symbols.OPTS].meta,\n ...this[symbols.LOG].meta\n };\n\n if(opts.dynamicMeta && typeof opts.dynamicMeta === 'function') {\n const dynMeta = opts.dynamicMeta.call(this, this, opts);\n\n if(typeof dynMeta === 'object') {\n meta = Object.assign(meta, dynMeta);\n }\n }\n\n for(const [key, val] of Object.entries(meta)) {\n if(typeof val !== 'object') continue;\n if(LogMessage.isError(val)) {\n meta[key] = LogMessage.stubError(val);\n }\n }\n\n return meta;\n }\n\n /**\n * Set additional metadata on the log message.\n * @param {object} obj An object with properties to append or overwrite in the metadata.\n */\n set meta(obj) {\n this[symbols.LOG].meta = {\n ...this[symbols.LOG].meta,\n ...obj\n };\n }\n\n /**\n * Array of tags attached to this log. Includes global tags.\n * @type {string[]}\n */\n get tags() {\n const opts = this[symbols.OPTS];\n const tags = [].concat(opts.tags, this[symbols.LOG].tags);\n\n return tags.map(tag => {\n if(typeof tag === 'function') {\n return tag.call(this, {\n level: this.level,\n meta: this.meta,\n options: opts\n });\n }\n\n const hasVar = tag.match(/(<<(.*)>>)/);\n if(!hasVar) return tag;\n\n const varName = hasVar[2];\n if(varName === 'level') return tag.replace(hasVar[1], this.level);\n\n return tag;\n }).filter(tag => tag !== null && tag !== undefined && tag !== '');\n }\n\n /**\n * Appends additional tags to this log message.\n * @param {string[]|Function[]} tags Array of string tags or enhanced tag functions to append to the tags array.\n */\n set tags(tags) {\n this[symbols.LOG].tags = this[symbols.LOG].tags.concat(tags);\n }\n\n /**\n * The full log object. This is the object used in logMessage.toJSON() and when the log is written to the console.\n * @returns {object} The full log object.\n */\n get value() {\n const opts = this[symbols.OPTS];\n return {\n [opts.levelKey]: opts.levelKey ? this.level : undefined,\n [opts.messageKey]: this.msg,\n ...this.meta,\n [opts.tagsKey]: opts.tagsKey ? this.tags : undefined\n };\n }\n\n /**\n * Alias of `logMessage.value`.\n * @returns {object} The full log object.\n */\n get log() {\n return this.value;\n }\n\n /**\n * Throws the log. If an error was not provided, one will be generated for you and thrown. This is useful in cases where you need to log an\n * error, but also throw it.\n * @throws {Error} The provided error, or a newly generated error.\n */\n get throw() {\n const err = this[symbols.ERROR] || new Error(this.msg);\n err.log = this;\n\n throw err;\n }\n\n /**\n * Returns the compiled log object converted into JSON. This method utilizes `options.replacer` for the replacer function. It also uses\n * [fast-safe-stringify](https://www.npmjs.com/package/fast-safe-stringify) to prevent circular reference issues.\n * @param {boolean} [format=false] Enable pretty-printing of the JSON object (4 space indentation).\n * @returns {string} Log object stringified as JSON.\n */\n toJSON(format) {\n return stringify(this.value, this[symbols.OPTS].replacer || null, format ? 4 : 0);\n }\n\n /**\n * Checks if value is an Error or Error-like object\n * @static\n * @param {*} val Value to test\n * @returns {boolean} Whether the value is an Error or Error-like object\n */\n static isError(val) {\n return Boolean(val) && typeof val === 'object' && (\n val instanceof Error || (\n Object.prototype.hasOwnProperty.call(val, 'message') &&\n Object.prototype.hasOwnProperty.call(val, 'stack')\n )\n );\n }\n\n /**\n * Stubs an Error or Error-like object to include a toJSON method.\n * @static\n * @param {Error} err An Error or Error-like object.\n * @returns {Error} The original error stubbed with a toJSON() method.\n */\n static stubError(err) {\n if(typeof err.toJSON === 'function') return err;\n\n err.toJSON = function () {\n const keys = [\n 'name',\n 'message',\n 'stack'\n ].concat(Object.keys(err));\n\n return keys.reduce((obj, key) => {\n if(key in err) {\n const val = err[key];\n\n if(typeof val === 'function') return obj;\n obj[key] = val;\n }\n\n return obj;\n }, {});\n };\n\n return err;\n }\n}\n\nLogMessage.symbols = symbols;\n\nmodule.exports = LogMessage;\n", "const EventEmitter = require('events');\nconst LogMessage = require('./LogMessage');\n\nconst symbols = {\n LEVELS: Symbol('levels')\n};\n\n/**\n * @typedef {object} LambdaLogOptions - Configuration object for LambdaLog.\n * @property {object} [meta={}] Global metadata to be included in all logs.\n * @property {string[]|Function[]} [tags=[]] Global tags to be included in all logs.\n * @property {Function} [dynamicMeta=null] Function that runs for each log that returns additional metadata. See [Dynamic Metadata](#dynamic-metadata).\n * @property {boolean} [debug=false] Enables `log.debug()`.\n * @property {boolean} [dev=false] Enable development mode which pretty-prints JSON to the console.\n * @property {boolean} [silent=false] Disables logging to `console` but messages and events are still generated.\n * @property {Function} [replacer=null] Replacer function for `JSON.stringify()` to allow handling of sensitive data before logs are written. See [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter).\n * @property {object} [logHandler=console] A console-like object containing all standard console functions. Allows logs to be written to any custom location. See [Log Handler](#loghandler).\n * @property {?string} [levelKey=_logLevel] Override the key name for the log level. Set to `null` to remove the key from the output.\n * @property {string} [messageKey=msg] Override the key name for the message.\n * @property {?string} [tagsKey=_tags] Override the key name for the tags. Set to `null` to remove the key from the output.\n */\n\n/**\n * @augments EventEmitter\n */\nclass LambdaLog extends EventEmitter {\n /**\n * Constructor for the LambdaLog class. Provided to be utilized in more advanced cases to allow overriding and configuration.\n * By default, this module will export an instance of this class, but you may access the class and create your own instance\n * via `log.LambdaLog`.\n * @class\n * @param {LambdaLogOptions} [options={}] Options for configuring LambdaLog.\n * @param {object.<string, string|Function>} [levels={}] Allows adding and customizing log levels. DEPRECATED\n */\n constructor(options = {}, levels = {}) {\n super();\n /**\n * Access to the uninstantiated LambdaLog class. This allows more advanced functionality and customization.\n * @type {LambdaLog}\n */\n this.LambdaLog = LambdaLog;\n\n /**\n * Access to the uninstantiated LogMessage class. You can override this property to use a custom logging class that\n * inherits the same methods.\n * @type {LogMessage}\n * @since 2.2.0\n */\n this.LogMessage = LogMessage;\n\n /**\n * @type {LambdaLogOptions}\n */\n this.options = {\n meta: {},\n tags: [],\n dynamicMeta: null,\n debug: false,\n dev: false,\n silent: ['true', 'yes', 'y', '1'].includes(process.env.LAMBDALOG_SILENT),\n replacer: null,\n logHandler: console,\n levelKey: '_logLevel',\n messageKey: 'msg',\n tagsKey: '_tags',\n ...options\n };\n\n /**\n * Global configuration for log levels\n * @type {object}\n */\n this[symbols.LEVELS] = {\n info: 'info',\n warn: 'warn',\n error: 'error',\n debug() {\n if(this.options.debug) return 'debug';\n return false;\n },\n ...levels\n };\n\n /**\n * Console-like log handler to use for logging messages\n * @type {object}\n */\n this.console = this.options.logHandler;\n\n const levelsConfig = this[symbols.LEVELS];\n for(const lvl in levelsConfig) {\n if(Object.prototype.hasOwnProperty.call(levelsConfig, lvl)) {\n this.addLevel(lvl, levelsConfig[lvl]);\n }\n }\n }\n\n /**\n * Add a new log level to this instance of LambdaLog.\n * @since 3.0.0\n * @deprecated\n * @param {string} name The name of the new log level.\n * @param {string|Function} handler The string name of the `console` method to call or a function that returns a string method name.\n * @returns {this} Instance of LambdaLog.\n */\n addLevel(name, handler) {\n this[symbols.LEVELS][name] = handler;\n\n /**\n * Shortcut methods for `log.log()`. By default, the following methods are available: `log.info()`, `log.warn()`, `log.error()` and `log.debug()`.\n * Additional methods will be added for any [custom log levels](#custom-log-levels) provided.<br><br>The provided msg can be any type, although a string\n * or `Error` is recommended. If `Error` is provided the stack trace is added as metadata to the log as `stack`.\n * @param {*} msg Message to log. Can be any type, but string or `Error` reccommended.\n * @param {object} [meta={}] Optional meta data to attach to the log.\n * @param {string[]} [tags=[]] Additional tags to append to this log.\n * @returns {LogMessage} The LogMessage instance for the log.\n */\n this[name] = (msg, meta = {}, tags = []) => this.log(name, msg, meta, tags);\n\n return this;\n }\n\n /**\n * Generates JSON log message based on the provided parameters and the global configuration. Once the JSON message is created, it is properly logged to the `console`\n * and emitted through an event. If an `Error` or `Error`-like object is provided for `msg`, it will parse out the message and include the stacktrace in the metadata.\n * @throws {Error} If improper log level is provided.\n * @param {string} level Log level (`info`, `debug`, `warn`, `error` or a [custom log level](#custom-log-levels))\n * @param {*} msg Message to log. Can be any type, but string or `Error` reccommended.\n * @param {object} [meta={}] Optional meta data to attach to the log.\n * @param {string[]} [tags=[]] Additional tags to append to this log.\n * @returns {LogMessage|boolean} Returns instance of LogMessage or `false` if `level = \"debug\"` and `options.debug = false`. May also return `false` when a [custom log level](#custom-log-levels) handler function prevents the log from being logged.\n */\n log(level, msg, meta = {}, tags = []) {\n if(!Object.prototype.hasOwnProperty.call(this[symbols.LEVELS], level)) {\n throw new Error(`\"${level}\" is not a valid log level`);\n }\n\n const message = new this.LogMessage({\n level,\n msg,\n meta,\n tags\n }, this.options);\n\n let method = this[symbols.LEVELS][level];\n\n if(typeof method === 'function') {\n method = method.call(this, message);\n }\n\n if(!method) return false;\n\n if(!this.options.silent) {\n this.console[method](message.toJSON(this.options.dev));\n }\n\n /**\n * The log event is emitted (using EventEmitter) for every log generated. This allows for custom integrations, such as logging to a thrid-party service.\n * This event is emitted with the [LogMessage](#logmessage) instance for the log. You may control events using all the methods of EventEmitter.\n * @event LambdaLog#log\n * @type {LogMessage}\n */\n this.emit('log', message);\n return message;\n }\n\n /**\n * Generates a log message if `test` is a falsy value. If `test` is truthy, the log message is skipped and returns `false`. Allows creating log messages without the need to\n * wrap them in an if statement. The log level will be `error`.\n * @since 1.4.0\n * @param {*} test A value which is tested for a falsy value.\n * @param {*} msg Message to log if `test` is falsy. Can be any type, but string or `Error` reccommended.\n * @param {object} [meta={}] Optional meta data to attach to the log.\n * @param {string[]|Function[]} [tags=[]] Additional tags to append to this log.\n * @returns {LogMessage|boolean} The LogMessage instance for the log or `false` if test passed.\n */\n assert(test, msg, meta = {}, tags = []) {\n if(test) return false;\n return this.log('error', msg, meta, tags);\n }\n\n /**\n * Generates a log message with the result or error provided by a promise. Useful for debugging and testing.\n * @since 2.3.0\n * @param {Promise} promise A promise or promise-like object to retrieve a value from.\n * @param {object} [meta={}] Optional meta data to attach to the log.\n * @param {string[]|Function[]} [tags=[]] Additional tags to append to this log.\n * @returns {Promise<LogMessage>} A new Promise that resolves with the LogMessage object after the promise completes.\n */\n result(promise, meta = {}, tags = []) {\n if(!promise || typeof promise.then !== 'function') {\n throw new Error('A promise must be provided as the first argument');\n }\n\n const wrapper = new Promise(resolve => {\n promise\n .then(value => resolve(this.log('info', value, meta, tags)))\n .catch(err => resolve(this.log('error', err, meta, tags)));\n });\n\n return wrapper;\n }\n}\n\nLambdaLog.symbols = symbols;\n\nmodule.exports = LambdaLog;\n", "const LambdaLog = require('./lib/LambdaLog');\n/**\n * Instance of the LambdaLog class which is exported when calling `require('lambda-log')`. For more\n * advanced usage, you can create a new instance of the LambdaLog class via `new log.LambdaLog()`.\n * @type {LambdaLog}\n */\nconst log = new LambdaLog();\n\nmodule.exports = log;\n", "import 'source-map-support/register';\n// Used by ts-convict\nimport 'reflect-metadata';\nimport type * as lambda from 'aws-lambda';\nimport { defaultProvider } from '@aws-sdk/credential-provider-node';\nimport { SignatureV4 } from '@aws-sdk/signature-v4';\nimport { Sha256 } from '@aws-crypto/sha256-browser';\nimport { signRequest, presignRequest } from './sign-request';\nimport { Config } from './config/config';\nimport Log from './lib/log';\n\nconst log = Log.Instance;\nconst config = Config.instance;\n\nlog.info('loading config', { config });\n\n// TODO: get the target region from the config file\n\n// NOTE: signing requires that we know the target region so R53 names with balancing\n// across regions is not supported. We could instead modify the target\n// origin in this function to send to the region closest to this edge location.\n\nconst lambdaSigner = new SignatureV4({\n credentials: defaultProvider(),\n // This is the region of the target service\n region: config.originRegion || 'us-east-2',\n service: 'lambda',\n sha256: Sha256,\n});\n\nconst executeApiSigner = new SignatureV4({\n credentials: defaultProvider(),\n // This is the region of the target service\n region: config.originRegion || 'us-east-2',\n service: 'execute-api',\n sha256: Sha256,\n});\n\nexport const handler: lambda.CloudFrontRequestHandler = async (\n event: lambda.CloudFrontRequestEvent,\n context: lambda.Context,\n): Promise<lambda.CloudFrontResultResponse> => {\n const request = event.Records[0].cf.request;\n try {\n let requestToReturn = request;\n\n // Add x-forwarded-host before signing\n if (config.addXForwardedHostHeader && request.headers['host']) {\n // Overwrite to prevent spoofed value from getting through\n request.headers['x-forwarded-host'] = [\n {\n key: 'X-Forwarded-Host',\n value: request.headers['host'][0].value,\n },\n ];\n }\n\n // Replace the Host header with the target origin host\n // This prevents API Gateway and Function URLs from rejecting\n // the request when the OriginRequestPolicy is forwarding all\n // headers to the origin\n if (config.replaceHostHeader && request.origin?.custom?.domainName) {\n request.headers['host'] = [{ key: 'host', value: request.origin.custom.domainName }];\n }\n\n // Lambda Function URLs cannot have a custom domain name\n // Function URLs will always contain `.lambda-url.`\n // API Gateway URLs can contain '.execute-api.' but will not\n // when customized, so we can only rely on the Lambda URL check.\n const signer = request.origin?.custom?.domainName.includes('.lambda-url.')\n ? lambdaSigner\n : executeApiSigner;\n if (config.signingMode === 'sign') {\n log.info('signing request');\n const signedRequest = await signRequest(request, context, signer);\n requestToReturn = signedRequest;\n } else if (config.signingMode === 'presign') {\n // TODO: presign does not quite work yet\n log.error('presign not yet implemented');\n const presignedRequest = await presignRequest(request, context, signer);\n requestToReturn = presignedRequest;\n } else {\n log.info('not signing request');\n }\n\n log.info('returning request', {\n requestToReturn,\n });\n\n return requestToReturn as unknown as lambda.CloudFrontResultResponse;\n } catch (error) {\n log.error('caught exception at top level', { error });\n\n return {\n status: '500',\n statusDescription: 'Failed Modifying Origin Request',\n };\n }\n};\n", "require('./').install();\n", "/*! *****************************************************************************\nCopyright (C) Microsoft. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\nvar Reflect;\n(function (Reflect) {\n // Metadata Proposal\n // https://rbuckton.github.io/reflect-metadata/\n (function (factory) {\n var root = typeof global === \"object\" ? global :\n typeof self === \"object\" ? self :\n typeof this === \"object\" ? this :\n Function(\"return this;\")();\n var exporter = makeExporter(Reflect);\n if (typeof root.Reflect === \"undefined\") {\n root.Reflect = Reflect;\n }\n else {\n exporter = makeExporter(root.Reflect, exporter);\n }\n factory(exporter);\n function makeExporter(target, previous) {\n return function (key, value) {\n if (typeof target[key] !== \"function\") {\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\n }\n if (previous)\n previous(key, value);\n };\n }\n })(function (exporter) {\n var hasOwn = Object.prototype.hasOwnProperty;\n // feature test for Symbol support\n var supportsSymbol = typeof Symbol === \"function\";\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\n var downLevel = !supportsCreate && !supportsProto;\n var HashMap = {\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\n create: supportsCreate\n ? function () { return MakeDictionary(Object.create(null)); }\n : supportsProto\n ? function () { return MakeDictionary({ __proto__: null }); }\n : function () { return MakeDictionary({}); },\n has: downLevel\n ? function (map, key) { return hasOwn.call(map, key); }\n : function (map, key) { return key in map; },\n get: downLevel\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\n : function (map, key) { return map[key]; },\n };\n // Load global or shim versions of Map, Set, and WeakMap\n var functionPrototype = Object.getPrototypeOf(Function);\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\n // [[Metadata]] internal slot\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\n var Metadata = new _WeakMap();\n /**\n * Applies a set of decorators to a property of a target object.\n * @param decorators An array of decorators.\n * @param target The target object.\n * @param propertyKey (Optional) The property key to decorate.\n * @param attributes (Optional) The property descriptor for the target key.\n * @remarks Decorators are applied in reverse order.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Example = Reflect.decorate(decoratorsArray, Example);\n *\n * // property (on constructor)\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Object.defineProperty(Example, \"staticMethod\",\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\n *\n * // method (on prototype)\n * Object.defineProperty(Example.prototype, \"method\",\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\n *\n */\n function decorate(decorators, target, propertyKey, attributes) {\n if (!IsUndefined(propertyKey)) {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsObject(target))\n throw new TypeError();\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\n throw new TypeError();\n if (IsNull(attributes))\n attributes = undefined;\n propertyKey = ToPropertyKey(propertyKey);\n return DecorateProperty(decorators, target, propertyKey, attributes);\n }\n else {\n if (!IsArray(decorators))\n throw new TypeError();\n if (!IsConstructor(target))\n throw new TypeError();\n return DecorateConstructor(decorators, target);\n }\n }\n exporter(\"decorate\", decorate);\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\n /**\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\n * @param metadataKey The key for the metadata entry.\n * @param metadataValue The value for the metadata entry.\n * @returns A decorator function.\n * @remarks\n * If `metadataKey` is already defined for the target and target key, the\n * metadataValue for that key will be overwritten.\n * @example\n *\n * // constructor\n * @Reflect.metadata(key, value)\n * class Example {\n * }\n *\n * // property (on constructor, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticProperty;\n * }\n *\n * // property (on prototype, TypeScript only)\n * class Example {\n * @Reflect.metadata(key, value)\n * property;\n * }\n *\n * // method (on constructor)\n * class Example {\n * @Reflect.metadata(key, value)\n * static staticMethod() { }\n * }\n *\n * // method (on prototype)\n * class Example {\n * @Reflect.metadata(key, value)\n * method() { }\n * }\n *\n */\n function metadata(metadataKey, metadataValue) {\n function decorator(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\n throw new TypeError();\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n return decorator;\n }\n exporter(\"metadata\", metadata);\n /**\n * Define a unique metadata entry on the target.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param metadataValue A value that contains attached metadata.\n * @param target The target object on which to define metadata.\n * @param propertyKey (Optional) The property key for the target.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\n *\n * // property (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\n *\n * // property (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\n *\n * // method (on constructor)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\n *\n * // method (on prototype)\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\n *\n * // decorator factory as metadata-producing annotation.\n * function MyAnnotation(options): Decorator {\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\n * }\n *\n */\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\n }\n exporter(\"defineMetadata\", defineMetadata);\n /**\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasMetadata\", hasMetadata);\n /**\n * Gets a value indicating whether the target object has the provided metadata key defined.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function hasOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getMetadata\", getMetadata);\n /**\n * Gets the metadata value for the provided metadata key on the target object.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function getOwnMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\n }\n exporter(\"getOwnMetadata\", getOwnMetadata);\n /**\n * Gets the metadata keys defined on the target object or its prototype chain.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryMetadataKeys(target, propertyKey);\n }\n exporter(\"getMetadataKeys\", getMetadataKeys);\n /**\n * Gets the unique metadata keys defined on the target object.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns An array of unique metadata keys.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.getOwnMetadataKeys(Example);\n *\n * // property (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\n *\n */\n function getOwnMetadataKeys(target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n return OrdinaryOwnMetadataKeys(target, propertyKey);\n }\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\n /**\n * Deletes the metadata entry from the target object with the provided key.\n * @param metadataKey A key used to store and retrieve metadata.\n * @param target The target object on which the metadata is defined.\n * @param propertyKey (Optional) The property key for the target.\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\n * @example\n *\n * class Example {\n * // property declarations are not part of ES6, though they are valid in TypeScript:\n * // static staticProperty;\n * // property;\n *\n * constructor(p) { }\n * static staticMethod(p) { }\n * method(p) { }\n * }\n *\n * // constructor\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\n *\n * // property (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\n *\n * // property (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\n *\n * // method (on constructor)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\n *\n * // method (on prototype)\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\n *\n */\n function deleteMetadata(metadataKey, target, propertyKey) {\n if (!IsObject(target))\n throw new TypeError();\n if (!IsUndefined(propertyKey))\n propertyKey = ToPropertyKey(propertyKey);\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n if (!metadataMap.delete(metadataKey))\n return false;\n if (metadataMap.size > 0)\n return true;\n var targetMetadata = Metadata.get(target);\n targetMetadata.delete(propertyKey);\n if (targetMetadata.size > 0)\n return true;\n Metadata.delete(target);\n return true;\n }\n exporter(\"deleteMetadata\", deleteMetadata);\n function DecorateConstructor(decorators, target) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsConstructor(decorated))\n throw new TypeError();\n target = decorated;\n }\n }\n return target;\n }\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\n for (var i = decorators.length - 1; i >= 0; --i) {\n var decorator = decorators[i];\n var decorated = decorator(target, propertyKey, descriptor);\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\n if (!IsObject(decorated))\n throw new TypeError();\n descriptor = decorated;\n }\n }\n return descriptor;\n }\n function GetOrCreateMetadataMap(O, P, Create) {\n var targetMetadata = Metadata.get(O);\n if (IsUndefined(targetMetadata)) {\n if (!Create)\n return undefined;\n targetMetadata = new _Map();\n Metadata.set(O, targetMetadata);\n }\n var metadataMap = targetMetadata.get(P);\n if (IsUndefined(metadataMap)) {\n if (!Create)\n return undefined;\n metadataMap = new _Map();\n targetMetadata.set(P, metadataMap);\n }\n return metadataMap;\n }\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\n function OrdinaryHasMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return true;\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryHasMetadata(MetadataKey, parent, P);\n return false;\n }\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return false;\n return ToBoolean(metadataMap.has(MetadataKey));\n }\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\n function OrdinaryGetMetadata(MetadataKey, O, P) {\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn)\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (!IsNull(parent))\n return OrdinaryGetMetadata(MetadataKey, parent, P);\n return undefined;\n }\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return undefined;\n return metadataMap.get(MetadataKey);\n }\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\n metadataMap.set(MetadataKey, MetadataValue);\n }\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\n function OrdinaryMetadataKeys(O, P) {\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\n var parent = OrdinaryGetPrototypeOf(O);\n if (parent === null)\n return ownKeys;\n var parentKeys = OrdinaryMetadataKeys(parent, P);\n if (parentKeys.length <= 0)\n return ownKeys;\n if (ownKeys.length <= 0)\n return parentKeys;\n var set = new _Set();\n var keys = [];\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\n var key = ownKeys_1[_i];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\n var key = parentKeys_1[_a];\n var hasKey = set.has(key);\n if (!hasKey) {\n set.add(key);\n keys.push(key);\n }\n }\n return keys;\n }\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\n function OrdinaryOwnMetadataKeys(O, P) {\n var keys = [];\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\n if (IsUndefined(metadataMap))\n return keys;\n var keysObj = metadataMap.keys();\n var iterator = GetIterator(keysObj);\n var k = 0;\n while (true) {\n var next = IteratorStep(iterator);\n if (!next) {\n keys.length = k;\n return keys;\n }\n var nextValue = IteratorValue(next);\n try {\n keys[k] = nextValue;\n }\n catch (e) {\n try {\n IteratorClose(iterator);\n }\n finally {\n throw e;\n }\n }\n k++;\n }\n }\n // 6 ECMAScript Data Typ0es and Values\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\n function Type(x) {\n if (x === null)\n return 1 /* Null */;\n switch (typeof x) {\n case \"undefined\": return 0 /* Undefined */;\n case \"boolean\": return 2 /* Boolean */;\n case \"string\": return 3 /* String */;\n case \"symbol\": return 4 /* Symbol */;\n case \"number\": return 5 /* Number */;\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\n default: return 6 /* Object */;\n }\n }\n // 6.1.1 The Undefined Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\n function IsUndefined(x) {\n return x === undefined;\n }\n // 6.1.2 The Null Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\n function IsNull(x) {\n return x === null;\n }\n // 6.1.5 The Symbol Type\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\n function IsSymbol(x) {\n return typeof x === \"symbol\";\n }\n // 6.1.7 The Object Type\n // https://tc39.github.io/ecma262/#sec-object-type\n function IsObject(x) {\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\n }\n // 7.1 Type Conversion\n // https://tc39.github.io/ecma262/#sec-type-conversion\n // 7.1.1 ToPrimitive(input [, PreferredType])\n // https://tc39.github.io/ecma262/#sec-toprimitive\n function ToPrimitive(input, PreferredType) {\n switch (Type(input)) {\n case 0 /* Undefined */: return input;\n case 1 /* Null */: return input;\n case 2 /* Boolean */: return input;\n case 3 /* String */: return input;\n case 4 /* Symbol */: return input;\n case 5 /* Number */: return input;\n }\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\n if (exoticToPrim !== undefined) {\n var result = exoticToPrim.call(input, hint);\n if (IsObject(result))\n throw new TypeError();\n return result;\n }\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\n }\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\n function OrdinaryToPrimitive(O, hint) {\n if (hint === \"string\") {\n var toString_1 = O.toString;\n if (IsCallable(toString_1)) {\n var result = toString_1.call(O);\n if (!IsObject(result))\n return result;\n }\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n else {\n var valueOf = O.valueOf;\n if (IsCallable(valueOf)) {\n var result = valueOf.call(O);\n if (!IsObject(result))\n return result;\n }\n var toString_2 = O.toString;\n if (IsCallable(toString_2)) {\n var result = toString_2.call(O);\n if (!IsObject(result))\n return result;\n }\n }\n throw new TypeError();\n }\n // 7.1.2 ToBoolean(argument)\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\n function ToBoolean(argument) {\n return !!argument;\n }\n // 7.1.12 ToString(argument)\n // https://tc39.github.io/ecma262/#sec-tostring\n function ToString(argument) {\n return \"\" + argument;\n }\n // 7.1.14 ToPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-topropertykey\n function ToPropertyKey(argument) {\n var key = ToPrimitive(argument, 3 /* String */);\n if (IsSymbol(key))\n return key;\n return ToString(key);\n }\n // 7.2 Testing and Comparison Operations\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\n // 7.2.2 IsArray(argument)\n // https://tc39.github.io/ecma262/#sec-isarray\n function IsArray(argument) {\n return Array.isArray\n ? Array.isArray(argument)\n : argument instanceof Object\n ? argument instanceof Array\n : Object.prototype.toString.call(argument) === \"[object Array]\";\n }\n // 7.2.3 IsCallable(argument)\n // https://tc39.github.io/ecma262/#sec-iscallable\n function IsCallable(argument) {\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.4 IsConstructor(argument)\n // https://tc39.github.io/ecma262/#sec-isconstructor\n function IsConstructor(argument) {\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\n return typeof argument === \"function\";\n }\n // 7.2.7 IsPropertyKey(argument)\n // https://tc39.github.io/ecma262/#sec-ispropertykey\n function IsPropertyKey(argument) {\n switch (Type(argument)) {\n case 3 /* String */: return true;\n case 4 /* Symbol */: return true;\n default: return false;\n }\n }\n // 7.3 Operations on Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\n // 7.3.9 GetMethod(V, P)\n // https://tc39.github.io/ecma262/#sec-getmethod\n function GetMethod(V, P) {\n var func = V[P];\n if (func === undefined || func === null)\n return undefined;\n if (!IsCallable(func))\n throw new TypeError();\n return func;\n }\n // 7.4 Operations on Iterator Objects\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\n function GetIterator(obj) {\n var method = GetMethod(obj, iteratorSymbol);\n if (!IsCallable(method))\n throw new TypeError(); // from Call\n var iterator = method.call(obj);\n if (!IsObject(iterator))\n throw new TypeError();\n return iterator;\n }\n // 7.4.4 IteratorValue(iterResult)\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\n function IteratorValue(iterResult) {\n return iterResult.value;\n }\n // 7.4.5 IteratorStep(iterator)\n // https://tc39.github.io/ecma262/#sec-iteratorstep\n function IteratorStep(iterator) {\n var result = iterator.next();\n return result.done ? false : result;\n }\n // 7.4.6 IteratorClose(iterator, completion)\n // https://tc39.github.io/ecma262/#sec-iteratorclose\n function IteratorClose(iterator) {\n var f = iterator[\"return\"];\n if (f)\n f.call(iterator);\n }\n // 9.1 Ordinary Object Internal Methods and Internal Slots\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\n function OrdinaryGetPrototypeOf(O) {\n var proto = Object.getPrototypeOf(O);\n if (typeof O !== \"function\" || O === functionPrototype)\n return proto;\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\n // Try to determine the superclass constructor. Compatible implementations\n // must either set __proto__ on a subclass constructor to the superclass constructor,\n // or ensure each class has a valid `constructor` property on its prototype that\n // points back to the constructor.\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\n if (proto !== functionPrototype)\n return proto;\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\n var prototype = O.prototype;\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\n if (prototypeProto == null || prototypeProto === Object.prototype)\n return proto;\n // If the constructor was not a function, then we cannot determine the heritage.\n var constructor = prototypeProto.constructor;\n if (typeof constructor !== \"function\")\n return proto;\n // If we have some kind of self-reference, then we cannot determine the heritage.\n if (constructor === O)\n return proto;\n // we have a pretty good guess at the heritage.\n return constructor;\n }\n // naive Map shim\n function CreateMapPolyfill() {\n var cacheSentinel = {};\n var arraySentinel = [];\n var MapIterator = /** @class */ (function () {\n function MapIterator(keys, values, selector) {\n this._index = 0;\n this._keys = keys;\n this._values = values;\n this._selector = selector;\n }\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\n MapIterator.prototype.next = function () {\n var index = this._index;\n if (index >= 0 && index < this._keys.length) {\n var result = this._selector(this._keys[index], this._values[index]);\n if (index + 1 >= this._keys.length) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n else {\n this._index++;\n }\n return { value: result, done: false };\n }\n return { value: undefined, done: true };\n };\n MapIterator.prototype.throw = function (error) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n throw error;\n };\n MapIterator.prototype.return = function (value) {\n if (this._index >= 0) {\n this._index = -1;\n this._keys = arraySentinel;\n this._values = arraySentinel;\n }\n return { value: value, done: true };\n };\n return MapIterator;\n }());\n return /** @class */ (function () {\n function Map() {\n this._keys = [];\n this._values = [];\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n Object.defineProperty(Map.prototype, \"size\", {\n get: function () { return this._keys.length; },\n enumerable: true,\n configurable: true\n });\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\n Map.prototype.get = function (key) {\n var index = this._find(key, /*insert*/ false);\n return index >= 0 ? this._values[index] : undefined;\n };\n Map.prototype.set = function (key, value) {\n var index = this._find(key, /*insert*/ true);\n this._values[index] = value;\n return this;\n };\n Map.prototype.delete = function (key) {\n var index = this._find(key, /*insert*/ false);\n if (index >= 0) {\n var size = this._keys.length;\n for (var i = index + 1; i < size; i++) {\n this._keys[i - 1] = this._keys[i];\n this._values[i - 1] = this._values[i];\n }\n this._keys.length--;\n this._values.length--;\n if (key === this._cacheKey) {\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n }\n return true;\n }\n return false;\n };\n Map.prototype.clear = function () {\n this._keys.length = 0;\n this._values.length = 0;\n this._cacheKey = cacheSentinel;\n this._cacheIndex = -2;\n };\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\n Map.prototype._find = function (key, insert) {\n if (this._cacheKey !== key) {\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\n }\n if (this._cacheIndex < 0 && insert) {\n this._cacheIndex = this._keys.length;\n this._keys.push(key);\n this._values.push(undefined);\n }\n return this._cacheIndex;\n };\n return Map;\n }());\n function getKey(key, _) {\n return key;\n }\n function getValue(_, value) {\n return value;\n }\n function getEntry(key, value) {\n return [key, value];\n }\n }\n // naive Set shim\n function CreateSetPolyfill() {\n return /** @class */ (function () {\n function Set() {\n this._map = new _Map();\n }\n Object.defineProperty(Set.prototype, \"size\", {\n get: function () { return this._map.size; },\n enumerable: true,\n configurable: true\n });\n Set.prototype.has = function (value) { return this._map.has(value); };\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\n Set.prototype.delete = function (value) { return this._map.delete(value); };\n Set.prototype.clear = function () { this._map.clear(); };\n Set.prototype.keys = function () { return this._map.keys(); };\n Set.prototype.values = function () { return this._map.values(); };\n Set.prototype.entries = function () { return this._map.entries(); };\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\n return Set;\n }());\n }\n // naive WeakMap shim\n function CreateWeakMapPolyfill() {\n var UUID_SIZE = 16;\n var keys = HashMap.create();\n var rootKey = CreateUniqueKey();\n return /** @class */ (function () {\n function WeakMap() {\n this._key = CreateUniqueKey();\n }\n WeakMap.prototype.has = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.has(table, this._key) : false;\n };\n WeakMap.prototype.get = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\n };\n WeakMap.prototype.set = function (target, value) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\n table[this._key] = value;\n return this;\n };\n WeakMap.prototype.delete = function (target) {\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\n return table !== undefined ? delete table[this._key] : false;\n };\n WeakMap.prototype.clear = function () {\n // NOTE: not a real clear, just makes the previous data unreachable\n this._key = CreateUniqueKey();\n };\n return WeakMap;\n }());\n function CreateUniqueKey() {\n var key;\n do\n key = \"@@WeakMap@@\" + CreateUUID();\n while (HashMap.has(keys, key));\n keys[key] = true;\n return key;\n }\n function GetOrCreateWeakMapTable(target, create) {\n if (!hasOwn.call(target, rootKey)) {\n if (!create)\n return undefined;\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\n }\n return target[rootKey];\n }\n function FillRandomBytes(buffer, size) {\n for (var i = 0; i < size; ++i)\n buffer[i] = Math.random() * 0xff | 0;\n return buffer;\n }\n function GenRandomBytes(size) {\n if (typeof Uint8Array === \"function\") {\n if (typeof crypto !== \"undefined\")\n return crypto.getRandomValues(new Uint8Array(size));\n if (typeof msCrypto !== \"undefined\")\n return msCrypto.getRandomValues(new Uint8Array(size));\n return FillRandomBytes(new Uint8Array(size), size);\n }\n return FillRandomBytes(new Array(size), size);\n }\n function CreateUUID() {\n var data = GenRandomBytes(UUID_SIZE);\n // mark as random - RFC 4122 \u00A7 4.4\n data[6] = data[6] & 0x4f | 0x40;\n data[8] = data[8] & 0xbf | 0x80;\n var result = \"\";\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\n var byte = data[offset];\n if (offset === 4 || offset === 6 || offset === 8)\n result += \"-\";\n if (byte < 16)\n result += \"0\";\n result += byte.toString(16).toLowerCase();\n }\n return result;\n }\n }\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\n function MakeDictionary(obj) {\n obj.__ = undefined;\n delete obj.__;\n return obj;\n }\n });\n})(Reflect || (Reflect = {}));\n", "import type * as lambda from 'aws-lambda';\nimport { HttpRequest } from '@aws-sdk/protocol-http';\n\nconst MUTABLE_HEADERS: { [key: string]: true } = {\n 'x-forwarded-for': true,\n 'x-amzn-trace-id': true,\n};\n\n/**\n * Convert a CloudFront request to an HTTP request that can be signed by AWS\n *\n * Note: will mutate the request.querystring if it contains un-escaped [] characters\n */\nexport function cloudfrontToSignableRequest(options: {\n request: lambda.CloudFrontRequest;\n}): HttpRequest {\n const { request } = options;\n const { headers, method, body, querystring, uri } = request;\n // Lambda URL will reject query parameters with brackets\n // Similarly to API Gateway (maybe this feature was borrowed...)\n // https://stackoverflow.com/questions/51941139/aws-api-gateway-returns-400-error-when-square-bracket-is-in-path/51941567#51941567\n // Error modes:\n // - AWS_IAM auth enabled on the Lambda URL\n // - 403 Forbidden\n // - x-amzn-errortype: AccessDeniedException\n // - AWS_IAM auth disabled on the Lambda URL\n // - 400 Bad Request\n // - x-amzn-errortype: InvalidQueryStringException\n // CloudFront will not encode the brackets in the query string and Lambda URL will reject that request.\n // This is sufficient to get Lambda URLs to accept the requests\n // with [] characters in them.\n const fixedQueryString = querystring.replace(/\\[/g, '%5B').replace(/]/g, '%5D');\n const hostname = headers['host'][0].value;\n const url = new URL(`https://${hostname}${uri}${querystring ? `?${querystring}` : ''}`);\n const headersMap: { [key: string]: string } = {};\n for (const key of Object.keys(headers)) {\n if (MUTABLE_HEADERS[key]) {\n continue;\n }\n headersMap[key] = headers[key][0].value;\n }\n const queryMap: { [key: string]: string } = {};\n for (const key of url.searchParams.keys()) {\n queryMap[key] = url.searchParams.get(key) || '';\n }\n\n // Clobber the query string if we had to fix some [ or ] characters\n request.querystring = fixedQueryString;\n\n let bodyData: Buffer | string | undefined;\n if (body && body.data && body.encoding === 'base64') {\n bodyData = Buffer.from(body.data, 'base64');\n } else if (body && body.data) {\n bodyData = body.data;\n }\n\n return new HttpRequest({\n headers: headersMap,\n hostname,\n method,\n port: 443,\n protocol: 'https:',\n path: request.uri,\n body: bodyData,\n query: queryMap,\n });\n}\n", "import type * as lambda from 'aws-lambda';\nimport { SignatureV4 } from '@aws-sdk/signature-v4';\nimport { cloudfrontToSignableRequest } from './translate-request';\n\n/**\n * Sign (headers) a request with AWS Signature V4\n * @param request\n * @param context\n * @param signer\n * @returns\n */\nexport async function signRequest(\n request: lambda.CloudFrontRequest,\n context: lambda.Context,\n signer: SignatureV4,\n): Promise<lambda.CloudFrontRequest> {\n const httpRequest = cloudfrontToSignableRequest({ request });\n\n const signedRequest = await signer.sign(httpRequest);\n\n // Copy the signature headers into the request to forward to origin\n for (const key of [\n 'authorization',\n 'x-amz-date',\n 'x-amz-security-token',\n 'x-amz-content-sha256',\n ]) {\n request.headers[key] = [{ key: key, value: signedRequest.headers[key] }];\n }\n\n return request;\n}\n\n/**\n * Presign (querystring) a request with AWS Signature V4\n * @param request\n * @param context\n * @param signer\n * @returns\n */\nexport async function presignRequest(\n request: lambda.CloudFrontRequest,\n context: lambda.Context,\n signer: SignatureV4,\n): Promise<lambda.CloudFrontRequest> {\n const httpRequest = cloudfrontToSignableRequest({ request });\n\n const signedRequest = await signer.presign(httpRequest);\n\n // Copy the signature headers into the request to forward to origin\n for (const key of [\n 'authorization',\n 'x-amz-date',\n 'x-amz-security-token',\n 'x-amz-content-sha256',\n ]) {\n request.headers[key] = [{ key: key, value: signedRequest.headers[key] }];\n }\n\n return request;\n}\n", "import { url, ipaddress } from 'convict-format-with-validator';\nimport * as yaml from 'js-yaml';\nimport * as convict from 'ts-convict';\nimport { FilesExist } from '../lib/files-exist';\n\n/**\n * Represents a Config\n */\nexport interface IConfig {\n readonly awsAccountID: number;\n readonly awsRegion: string;\n readonly originRegion: string;\n readonly signingMode: 'sign' | 'presign' | '';\n readonly addXForwardedHostHeader: boolean;\n readonly replaceHostHeader: boolean;\n}\n\n@convict.Config({\n // optional default file to load, no errors if it doesn't exist\n file: 'config.yml', // relative to NODE_PATH or cwd()\n\n // optional parameter. Defaults to 'strict', can also be 'warn'\n validationMethod: 'strict',\n\n // optionally add parsers like yaml or toml\n parser: {\n extension: ['yml', 'yaml'],\n parse: yaml.load,\n },\n\n //optional extra formats to use in validation\n formats: {\n url,\n ipaddress,\n },\n})\nexport class Config implements IConfig {\n public static configFiles(): string[] {\n const possibleFiles = [\n './config.yaml',\n './config.yml',\n './configs/config.yaml',\n './configs/config.yml',\n `./configs/config-${Config.envLevel}.yaml`,\n `./configs/config-${Config.envLevel}.yml`,\n './configs/config.json',\n `./configs/config-${Config.envLevel}.json`,\n ];\n return FilesExist.getExistingFilesSync(possibleFiles);\n }\n\n private static _instance: IConfig;\n public static get instance(): IConfig {\n if (Config._instance === undefined) {\n const configLoader = new convict.TSConvict<Config>(Config);\n Config._instance = configLoader.load(Config.configFiles());\n }\n return Config._instance;\n }\n\n public static get envLevel(): 'dev' | 'qa' | 'prod' | 'local' {\n const nodeEnv = process.env.NODE_ENV || 'dev';\n if (nodeEnv.startsWith('prod')) {\n return 'prod';\n } else if (nodeEnv === 'qa') {\n return 'qa';\n } else if (nodeEnv === 'local') {\n return 'local';\n }\n return 'dev';\n }\n\n @convict.Property({\n doc: 'AWS Account ID for app Lambda function',\n default: 0,\n env: 'AWS_ACCOUNT_ID',\n })\n public awsAccountID!: number;\n\n @convict.Property({\n doc: 'AWS Region for app Lambda function',\n default: 'us-east-1',\n env: 'AWS_REGION',\n })\n public awsRegion!: string;\n\n @convict.Property({\n doc: 'AWS Region where the origin API Gateway is located, used for signing requests',\n default: 'us-east-2',\n env: 'ORIGIN_REGION',\n })\n public originRegion!: string;\n\n @convict.Property({\n doc: `Signing mode\n - 'sign' - Sign API Gateway origin requests with SigV4 in headers\n - 'presign' - Sign API Gateway origin requsets with SigV4 in query params\n - undefined - Do not sign origin requests`,\n default: '',\n env: 'SIGNING_MODE',\n })\n public signingMode!: 'sign' | 'presign';\n\n @convict.Property({\n doc: 'Add X-Forwarded-Host header with value of Host header on the Edge',\n default: true,\n env: 'ADD_X_FORWARDED_HOST_HEADER',\n })\n public addXForwardedHostHeader!: boolean;\n\n @convict.Property({\n doc: `Set the Host header to the Origin host name\n This is useful when the OriginRequestPolicy is set to forward all headers\n API Gateway and Lambda Function URLs will both reject the request if the Host header is set\n to the Edge host name.`,\n default: true,\n env: 'REPLACE_HOST_HEADER',\n })\n public replaceHostHeader!: boolean;\n}\n", "\n/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\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;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '\u2192') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = 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(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = 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(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\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];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).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\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\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}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\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\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\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\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\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\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\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\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 () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\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) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\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\n\n if (ch === 'x') {\n // base 16\n index++;\n\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\n\n if (ch === 'o') {\n // base 8\n index++;\n\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\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\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\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\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) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\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]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // 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\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\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});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\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}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\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});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\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});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\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;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\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\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\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\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\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 &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _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\n // used for this specific key only because Object.defineProperty is slow\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\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\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}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\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\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\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\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\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\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\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\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 === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current 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\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\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\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\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\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\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\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\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\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\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\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 sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\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}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\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\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\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\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\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\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\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\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\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\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\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\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\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\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\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\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\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\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\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\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\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.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 type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\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 type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\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\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n 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\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\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}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\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}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn\u2019t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out \u21D2 ns-plain-safe-out\n// c = flow-in \u21D2 ns-plain-safe-in\n// c = block-key \u21D2 ns-plain-safe-out\n// c = flow-key \u21D2 ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - \u201C:\u201D - \u201C#\u201D )\n// | ( /* An ns-char preceding */ \u201C#\u201D )\n// | ( \u201C:\u201D /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( \u201C?\u201D | \u201C:\u201D | \u201C-\u201D ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // \u201C-\u201D | \u201C?\u201D | \u201C:\u201D | \u201C,\u201D | \u201C[\u201D | \u201C]\u201D | \u201C{\u201D | \u201C}\u201D\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | \u201C#\u201D | \u201C&\u201D | \u201C*\u201D | \u201C!\u201D | \u201C|\u201D | \u201C=\u201D | \u201C>\u201D | \u201C'\u201D | \u201C\"\u201D\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | \u201C%\u201D | \u201C@\u201D | \u201C`\u201D)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// \u2022 No ending newline => unaffected; already using strip \"-\" chomping.\n// \u2022 Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth \u2264 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines\u2014\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | \u201C-\u201D\n // [39] ns-uri-char ::= \u201C%\u201D ns-hex-digit ns-hex-digit | ns-word-char | \u201C#\u201D\n // | \u201C;\u201D | \u201C/\u201D | \u201C?\u201D | \u201C:\u201D | \u201C@\u201D | \u201C&\u201D | \u201C=\u201D | \u201C+\u201D | \u201C$\u201D | \u201C,\u201D\n // | \u201C_\u201D | \u201C.\u201D | \u201C!\u201D | \u201C~\u201D | \u201C*\u201D | \u201C'\u201D | \u201C(\u201D | \u201C)\u201D | \u201C[\u201D | \u201C]\u201D\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport default jsYaml;\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n", "import { pathExists, pathExistsSync } from 'fs-extra';\n\nexport class FilesExist {\n public static async getExistingFiles(filesToCheck: string[]): Promise<string[]> {\n const existingFiles: string[] = [];\n for (const file of filesToCheck) {\n if (await pathExists(file)) {\n existingFiles.push(file);\n }\n }\n\n return existingFiles;\n }\n\n public static getExistingFilesSync(filesToCheck: string[]): string[] {\n const existingFiles: string[] = [];\n for (const file of filesToCheck) {\n if (pathExistsSync(file)) {\n existingFiles.push(file);\n }\n }\n\n return existingFiles;\n }\n}\n", "import { LambdaLog } from 'lambda-log';\n\nexport default class Log {\n public static Instance = new LambdaLog({\n silent: process.env.JEST_WORKER_ID !== undefined,\n });\n}\n"],
|
|
5
|
+
"mappings": "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,YAAa,CACT,SAAU,CACN,CACI,SAAU,qCACV,KAAM,CAAC,CACX,CACJ,EACA,cAAe,WACnB,EACA,gBAAiB,CACb,SAAU,CACN,CACI,SAAU,yCACV,KAAM,CAAC,CACX,CACJ,EACA,cAAe,eACnB,EACA,gBAAiB,CACb,SAAU,CACN,CACI,SAAU,yCACV,KAAM,CAAC,CACX,CACJ,EACA,cAAe,eACnB,EACA,YAAa,CACT,SAAU,CACN,CACI,SAAU,qCACV,KAAM,CAAC,CACX,CACJ,EACA,cAAe,WACnB,CACJ,EACM,GAAgB,CAClB,IAAK,CACD,QAAS,CACL,aACA,YACA,iBACA,iBACA,iBACA,aACA,iBACA,iBACA,iBACA,eACA,eACA,aACA,aACA,YACA,YACA,YACA,aACA,YACA,YACA,YACA,YACA,WACJ,EACA,YAAa,yCACb,SAAU,CACN,CACI,SAAU,oCACV,KAAM,CAAC,CACX,EACA,CACI,SAAU,yCACV,KAAM,CAAC,MAAM,CACjB,EACA,CACI,SAAU,mCACV,KAAM,CAAC,YAAa,MAAM,CAC9B,EACA,CACI,SAAU,8BACV,KAAM,CAAC,WAAW,CACtB,CACJ,CACJ,EACA,SAAU,CACN,QAAS,CAAC,aAAc,gBAAgB,EACxC,YAAa,qBACb,SAAU,CACN,CACI,SAAU,uCACV,KAAM,CAAC,CACX,EACA,CACI,SAAU,4CACV,KAAM,CAAC,MAAM,CACjB,EACA,CACI,SAAU,wDACV,KAAM,CAAC,YAAa,MAAM,CAC9B,EACA,CACI,SAAU,mDACV,KAAM,CAAC,WAAW,CACtB,CACJ,CACJ,EACA,UAAW,CACP,QAAS,CAAC,gBAAiB,eAAe,EAC1C,YAAa,2BACb,SAAU,CACN,CACI,SAAU,iCACV,KAAM,CAAC,CACX,EACA,CACI,SAAU,sCACV,KAAM,CAAC,MAAM,CACjB,CACJ,CACJ,EACA,YAAa,CACT,QAAS,CAAC,gBAAgB,EAC1B,YAAa,4BACb,SAAU,CACN,CACI,SAAU,oCACV,KAAM,CAAC,CACX,EACA,CACI,SAAU,yCACV,KAAM,CAAC,MAAM,CACjB,CACJ,CACJ,EACA,aAAc,CACV,QAAS,CAAC,gBAAiB,eAAe,EAC1C,YAAa,2BACb,SAAU,CACN,CACI,SAAU,oCACV,KAAM,CAAC,CACX,EACA,CACI,SAAU,yCACV,KAAM,CAAC,MAAM,CACjB,EACA,CACI,SAAU,mCACV,KAAM,CAAC,YAAa,MAAM,CAC9B,EACA,CACI,SAAU,8BACV,KAAM,CAAC,WAAW,CACtB,CACJ,CACJ,CACJ,EACM,GAA4B,MAAO,EAAQ,IAAa,AAtR9D,GAsRiE,GAAkB,eAAe,EAAQ,OACnG,GADmG,CAEtG,eAAgB,eAChB,cACA,gBACJ,EAAC,EACD,GAAQ,0BAA4B,KC5RpC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,iBAAmB,OAC3B,GAAM,IAAe,KACf,GAAc,KACd,GAAmB,AAAC,GAAW,CACjC,GAAI,GAAI,EAAI,EAAI,EAAI,EACpB,MAAQ,CACJ,WAAY,aACZ,kBAAoB,GAAK,GAAW,KAA4B,OAAS,EAAO,qBAAuB,MAAQ,IAAO,OAAS,EAAK,GACpI,OAAS,GAAK,GAAW,KAA4B,OAAS,EAAO,UAAY,MAAQ,IAAO,OAAS,EAAK,CAAC,EAC/G,mBAAqB,GAAK,GAAW,KAA4B,OAAS,EAAO,sBAAwB,MAAQ,IAAO,OAAS,EAAK,GAAY,0BAClJ,UAAY,GAAK,GAAW,KAA4B,OAAS,EAAO,aAAe,MAAQ,IAAO,OAAS,EAAK,MACpH,UAAY,GAAK,GAAW,KAA4B,OAAS,EAAO,aAAe,MAAQ,IAAO,OAAS,EAAK,GAAa,QACrI,CACJ,EACA,GAAQ,iBAAmB,KChB3B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,iBAAmB,GAAQ,sBAAwB,GAAQ,kBAAoB,GAAQ,uBAAyB,GAAQ,eAAiB,GAAQ,kBAAoB,OAC7K,GAAQ,kBAAoB,oBAC5B,GAAQ,eAAiB,aACzB,GAAQ,uBAAyB,qBACjC,GAAQ,kBAAoB,4BAC5B,GAAQ,sBAAwB,CAAC,YAAa,eAAgB,SAAU,WAAY,QAAQ,EAC5F,GAAQ,iBAAmB,uCCR3B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,kCAAoC,OAC5C,GAAM,IAAwB,oBACxB,GAA2B,gBACjC,GAAQ,kCAAoC,CACxC,4BAA6B,AAAC,GACnB,EAAI,IAEf,mBAAoB,AAAC,GACV,EAAQ,IAEnB,QAAS,QACb,ICbA,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,0BAA4B,OACpC,GAAM,IAAoB,KACpB,GAA6B,KAC7B,GAAyB,KACzB,GAAsB,KACtB,GAAc,KACd,GAAuB,KACvB,GAA4B,CAAC,CAAE,SAAU,AAT/C,GASkD,GAAuB,YAAY,GAAkB,0BAA0B,EAAG,eAAgB,AATpJ,GASuJ,GAAuB,YAAY,GAAqB,iCAAiC,GAAO,CAAC,IAAO,AAT/P,GASkQ,GAAoB,SAAS,SAAY,CACvS,GAAM,GAAO,MAAO,IAAiB,WAAa,KAAM,GAAa,EAAI,EACzE,OAAQ,GAAS,KAA0B,OAAS,EAAK,YAAY,OAC5D,OACD,MAAO,IAA4B,CAAM,MACxC,gBACA,mBACA,aACA,eACA,SACD,MAAO,SAAQ,QAAQ,GAAS,KAA0B,OAAS,EAAK,kBAAkB,CAAC,MAC1F,QACD,MAAO,SAAQ,QAAQ,QAAQ,UAE/B,KAAM,IAAI,OAAM,gDAAgD,GAAY,sBAAsB,KAAK,IAAI,UAAU,GAAM,EAEvI,CAAC,EACD,GAAQ,0BAA4B,GACpC,GAAM,IAA8B,KAAO,IAAiB,CACxD,GAAI,EAAc,CACd,GAAM,GAAiB,MAAO,IAAiB,WAAa,KAAM,GAAa,EAAI,EAC7E,EAAiB,KAAM,IAAoB,EACjD,MAAK,GAGD,IAAmB,EACZ,YAGA,eANA,UAQf,CACA,MAAO,UACX,EACM,GAAsB,SAAY,CACpC,GAAI,GACJ,GAAI,QAAQ,IAAI,GAAY,oBAAuB,SAAQ,IAAI,GAAY,iBAAmB,QAAQ,IAAI,GAAY,yBAClH,MAAQ,GAAK,QAAQ,IAAI,GAAY,mBAAqB,MAAQ,IAAO,OAAS,EAAK,QAAQ,IAAI,GAAY,wBAEnH,GAAI,CAAC,QAAQ,IAAI,GAAY,mBACzB,GAAI,CACA,GAAM,GAAW,KAAO,AAlDpC,GAkDuC,GAA2B,6BAA6B,EACnF,MAAQ,MAAO,AAnD3B,GAmD8B,GAA2B,aAAa,OAAK,GAAL,CAAe,KAAM,GAAY,gBAAiB,EAAC,GAAG,SAAS,CAC7H,MACA,CACA,CAER,ICxDA,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,IAChB,GAAQ,aAAa,KAAwC,EAAO,ICHpE,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,iBAAmB,OAC3B,GAAM,IAAU,IACV,GAAiB,GAAQ,gBAAgB,IAA0B,EACnE,GAAoB,KACpB,GAAc,KACd,GAAqB,KACrB,GAAyB,KACzB,GAAsB,KACtB,GAAqB,KACrB,GAA0B,KAC1B,GAAyB,KACzB,GAAmB,KACnB,GAAyB,KACzB,GAAkB,KAClB,GAA4B,KAC5B,GAAmB,AAAC,GAAW,CACjC,GAAI,GAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EACxD,GAAM,GAAgB,AAnB1B,GAmB6B,GAA0B,2BAA2B,CAAM,EAC9E,EAAwB,IAAM,EAAa,EAAE,KAAK,GAAgB,yBAAyB,EAC3F,EAAsB,AArBhC,GAqBmC,GAAuB,kBAAkB,CAAM,EAC9E,MAAO,UACA,GACA,GAFA,CAGH,QAAS,OACT,eACA,cAAgB,GAAK,GAAW,KAA4B,OAAS,EAAO,iBAAmB,MAAQ,IAAO,OAAS,EAAK,GAAmB,WAC/I,cAAgB,GAAK,GAAW,KAA4B,OAAS,EAAO,iBAAmB,MAAQ,IAAO,OAAS,EAAK,GAAmB,SAC/I,kBAAoB,GAAK,GAAW,KAA4B,OAAS,EAAO,qBAAuB,MAAQ,IAAO,OAAS,EAAK,GAAwB,oBAC5J,yBAA2B,GAAK,GAAW,KAA4B,OAAS,EAAO,4BAA8B,MAAQ,IAAO,OAAS,EAAM,AA9B3J,GA8B8J,GAAuB,kBAAkB,CAAE,UAAW,EAAmB,UAAW,cAAe,GAAe,QAAQ,OAAQ,CAAC,EACzR,YAAc,GAAK,GAAW,KAA4B,OAAS,EAAO,eAAiB,MAAQ,IAAO,OAAS,EAAM,AA/BjI,GA+BoI,GAAuB,YAAY,GAAmB,+BAA+B,EACjN,OAAS,GAAK,GAAW,KAA4B,OAAS,EAAO,UAAY,MAAQ,IAAO,OAAS,EAAM,AAhCvH,GAgC0H,GAAuB,YAAY,GAAkB,2BAA4B,GAAkB,+BAA+B,EACpP,eAAiB,GAAK,GAAW,KAA4B,OAAS,EAAO,kBAAoB,MAAQ,IAAO,OAAS,EAAK,GAAI,IAAoB,gBAAgB,CAAqB,EAC3L,UAAY,GAAK,GAAW,KAA4B,OAAS,EAAO,aAAe,MAAQ,IAAO,OAAS,EAAM,AAlC7H,GAkCgI,GAAuB,YAAY,OACpJ,GAAmB,gCADiI,CAEvJ,QAAS,SAAa,MAAM,GAAsB,GAAG,WAAa,GAAmB,kBACzF,EAAC,EACD,OAAS,GAAK,GAAW,KAA4B,OAAS,EAAO,UAAY,MAAQ,IAAO,OAAS,EAAK,GAAY,KAAK,KAAK,KAAM,QAAQ,EAClJ,gBAAkB,GAAK,GAAW,KAA4B,OAAS,EAAO,mBAAqB,MAAQ,IAAO,OAAS,EAAK,GAAoB,gBACpJ,qBAAuB,GAAK,GAAW,KAA4B,OAAS,EAAO,wBAA0B,MAAQ,IAAO,OAAS,EAAM,AAxCnJ,GAwCsJ,GAAuB,YAAY,GAAkB,0CAA0C,EAC7O,gBAAkB,GAAK,GAAW,KAA4B,OAAS,EAAO,mBAAqB,MAAQ,IAAO,OAAS,EAAM,AAzCzI,GAyC4I,GAAuB,YAAY,GAAkB,qCAAqC,EAC9N,YAAc,GAAK,GAAW,KAA4B,OAAS,EAAO,eAAiB,MAAQ,IAAO,OAAS,EAAK,GAAiB,SACzI,YAAc,GAAK,GAAW,KAA4B,OAAS,EAAO,eAAiB,MAAQ,IAAO,OAAS,EAAK,GAAiB,MAC7I,EACJ,EACA,GAAQ,iBAAmB,KC9C3B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,UAAY,OACpB,GAAM,IAAoB,KACpB,GAA8B,KAC9B,GAA2B,KAC3B,GAAsB,KACtB,GAAqB,KACrB,GAA0B,KAC1B,GAAkB,KAClB,GAAkB,KACxB,gBAAwB,IAAgB,MAAO,CAC3C,YAAY,EAAe,CACvB,GAAM,GAAa,AAb3B,GAa8B,GAAgB,kBAAkB,CAAa,EAC/D,EAAa,AAd3B,GAc8B,GAAkB,qBAAqB,CAAS,EAChE,EAAa,AAf3B,GAe8B,GAAkB,wBAAwB,CAAS,EACnE,EAAa,AAhB3B,GAgB8B,GAAmB,oBAAoB,CAAS,EAChE,EAAa,AAjB3B,GAiB8B,GAAyB,yBAAyB,CAAS,EAC3E,EAAa,AAlB3B,GAkB8B,GAAwB,wBAAwB,CAAS,EAC/E,MAAM,CAAS,EACf,KAAK,OAAS,EACd,KAAK,gBAAgB,IAAK,AArBlC,GAqBqC,GAAmB,gBAAgB,KAAK,MAAM,CAAC,EAC5E,KAAK,gBAAgB,IAAK,AAtBlC,GAsBqC,GAA4B,wBAAwB,KAAK,MAAM,CAAC,EAC7F,KAAK,gBAAgB,IAAK,AAvBlC,GAuBqC,GAAyB,qBAAqB,KAAK,MAAM,CAAC,EACvF,KAAK,gBAAgB,IAAK,AAxBlC,GAwBqC,GAAoB,iBAAiB,KAAK,MAAM,CAAC,EAC9E,KAAK,gBAAgB,IAAK,AAzBlC,GAyBqC,GAAwB,oBAAoB,KAAK,MAAM,CAAC,CACzF,CACA,SAAU,CACN,MAAM,QAAQ,CAClB,CACJ,EACA,GAAQ,UAAY,KC/BpB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,IAAM,OACd,GAAM,IAA8B,KAC9B,GAA4B,KAC5B,GAAwB,KACxB,GAAkB,KAClB,GAAc,KACpB,gBAAkB,IAAY,SAAU,CACpC,mBAAmB,EAAM,EAAa,EAAI,CACtC,GAAM,GAAU,GAAI,IAA4B,0BAA0B,CAAI,EAC9E,GAAI,MAAO,IAAgB,WACvB,KAAK,KAAK,EAAS,CAAW,UAEzB,MAAO,IAAO,WAAY,CAC/B,GAAI,MAAO,IAAgB,SACvB,KAAM,IAAI,OAAM,+BAA+B,MAAO,IAAa,EACvE,KAAK,KAAK,EAAS,GAAe,CAAC,EAAG,CAAE,CAC5C,KAEI,OAAO,MAAK,KAAK,EAAS,CAAW,CAE7C,CACA,iBAAiB,EAAM,EAAa,EAAI,CACpC,GAAM,GAAU,GAAI,IAA0B,wBAAwB,CAAI,EAC1E,GAAI,MAAO,IAAgB,WACvB,KAAK,KAAK,EAAS,CAAW,UAEzB,MAAO,IAAO,WAAY,CAC/B,GAAI,MAAO,IAAgB,SACvB,KAAM,IAAI,OAAM,+BAA+B,MAAO,IAAa,EACvE,KAAK,KAAK,EAAS,GAAe,CAAC,EAAG,CAAE,CAC5C,KAEI,OAAO,MAAK,KAAK,EAAS,CAAW,CAE7C,CACA,aAAa,EAAM,EAAa,EAAI,CAChC,GAAM,GAAU,GAAI,IAAsB,oBAAoB,CAAI,EAClE,GAAI,MAAO,IAAgB,WACvB,KAAK,KAAK,EAAS,CAAW,UAEzB,MAAO,IAAO,WAAY,CAC/B,GAAI,MAAO,IAAgB,SACvB,KAAM,IAAI,OAAM,+BAA+B,MAAO,IAAa,EACvE,KAAK,KAAK,EAAS,GAAe,CAAC,EAAG,CAAE,CAC5C,KAEI,OAAO,MAAK,KAAK,EAAS,CAAW,CAE7C,CACA,OAAO,EAAM,EAAa,EAAI,CAC1B,GAAM,GAAU,GAAI,IAAgB,cAAc,CAAI,EACtD,GAAI,MAAO,IAAgB,WACvB,KAAK,KAAK,EAAS,CAAW,UAEzB,MAAO,IAAO,WAAY,CAC/B,GAAI,MAAO,IAAgB,SACvB,KAAM,IAAI,OAAM,+BAA+B,MAAO,IAAa,EACvE,KAAK,KAAK,EAAS,GAAe,CAAC,EAAG,CAAE,CAC5C,KAEI,OAAO,MAAK,KAAK,EAAS,CAAW,CAE7C,CACJ,EACA,GAAQ,IAAM,KClEd,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,IAChB,GAAQ,aAAa,KAAwC,EAAO,EACpE,GAAQ,aAAa,KAAsC,EAAO,EAClE,GAAQ,aAAa,KAAkC,EAAO,EAC9D,GAAQ,aAAa,KAA4B,EAAO,ICNxD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,IAChB,GAAQ,aAAa,KAAuB,EAAO,ICHnD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,yBAA2B,OACnC,GAAM,IAA4B,KAC5B,GAAQ,KACR,GAAc,KACd,GAAyB,MAAO,EAAQ,KAAU,IAC7C,KAAM,GAAO,KAAK,GAAI,IAA0B,wBAAwB,CAAK,EAAG,GAAG,CAAI,EAE5F,GAAmB,MAAO,EAAQ,KAAU,IACvC,KAAM,GAAO,iBAAiB,EAAO,GAAG,CAAI,EAEvD,kBAAyC,EAAQ,KAAU,EAAqB,CAC5E,GAAI,GAAQ,EAAO,eAAiB,OAChC,EAAU,GACV,EACJ,KAAO,GAAS,CAGZ,GAFA,EAAM,UAAY,EAClB,EAAM,WAAgB,EAAO,SACzB,EAAO,iBAAkB,IAAM,IAC/B,EAAO,KAAM,IAAiB,EAAO,OAAQ,EAAO,GAAG,CAAmB,UAErE,EAAO,iBAAkB,IAAY,UAC1C,EAAO,KAAM,IAAuB,EAAO,OAAQ,EAAO,GAAG,CAAmB,MAGhF,MAAM,IAAI,OAAM,0CAA0C,EAE9D,KAAM,GACN,GAAM,GAAY,EAClB,EAAQ,EAAK,UACb,EAAU,CAAC,CAAE,IAAU,EAAC,EAAO,iBAAmB,IAAU,GAChE,CACA,MAAO,OACX,CACA,GAAQ,yBAA2B,KCnCnC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,qBAAuB,OAC/B,GAAM,IAAwB,KACxB,GAAQ,KACR,GAAc,KACd,GAAyB,MAAO,EAAQ,KAAU,IAC7C,KAAM,GAAO,KAAK,GAAI,IAAsB,oBAAoB,CAAK,EAAG,GAAG,CAAI,EAEpF,GAAmB,MAAO,EAAQ,KAAU,IACvC,KAAM,GAAO,aAAa,EAAO,GAAG,CAAI,EAEnD,kBAAqC,EAAQ,KAAU,EAAqB,CACxE,GAAI,GAAQ,EAAO,eAAiB,OAChC,EAAU,GACV,EACJ,KAAO,GAAS,CAGZ,GAFA,EAAM,UAAY,EAClB,EAAM,WAAgB,EAAO,SACzB,EAAO,iBAAkB,IAAM,IAC/B,EAAO,KAAM,IAAiB,EAAO,OAAQ,EAAO,GAAG,CAAmB,UAErE,EAAO,iBAAkB,IAAY,UAC1C,EAAO,KAAM,IAAuB,EAAO,OAAQ,EAAO,GAAG,CAAmB,MAGhF,MAAM,IAAI,OAAM,0CAA0C,EAE9D,KAAM,GACN,GAAM,GAAY,EAClB,EAAQ,EAAK,UACb,EAAU,CAAC,CAAE,IAAU,EAAC,EAAO,iBAAmB,IAAU,GAChE,CACA,MAAO,OACX,CACA,GAAQ,qBAAuB,KCnC/B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,IAChB,GAAQ,aAAa,KAAyB,EAAO,EACrD,GAAQ,aAAa,KAAwC,EAAO,EACpE,GAAQ,aAAa,KAAoC,EAAO,ICLhE,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,oBAAsB,OAC9B,GAAM,IAAU,IAChB,GAAQ,aAAa,KAAkB,EAAO,EAC9C,GAAQ,aAAa,KAAwB,EAAO,EACpD,GAAQ,aAAa,KAAuB,EAAO,EACnD,GAAQ,aAAa,KAAqB,EAAO,EACjD,GAAQ,aAAa,KAAyB,EAAO,EACrD,GAAI,IAAwB,KAC5B,OAAO,eAAe,GAAS,sBAAuB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAAsB,mBAAqB,CAAE,CAAC,ICVlJ,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,sBAAwB,OAChC,GAAM,IAAe,KACf,GAAsB,KACtB,GAA2B,KAC3B,GAAmB,GAAK,GAAK,IAC7B,GAA+B,GAC/B,GAAwB,MAAO,CAAE,cAAa,eAAc,YAAW,cAAa,eAAiB,CACvG,GAAI,GACE,EAAiB,gFACvB,GAAI,CACA,EAAQ,KAAO,AAZvB,GAY0B,GAAyB,qBAAqB,CAAW,CAC/E,MACA,CACI,KAAM,IAAI,IAAoB,yBAAyB,4DAA4D,IAAkB,EAA4B,CACrK,CACA,GAAI,GAAI,MAAK,EAAM,SAAS,EAAE,QAAQ,EAAI,KAAK,IAAI,GAAK,GACpD,KAAM,IAAI,IAAoB,yBAAyB,6DAA6D,IAAkB,EAA4B,EAEtK,GAAM,CAAE,eAAgB,EAClB,EAAM,GAAa,GAAI,IAAa,UAAU,CAAE,OAAQ,CAAU,CAAC,EACrE,EACJ,GAAI,CACA,EAAU,KAAM,GAAI,KAAK,GAAI,IAAa,0BAA0B,CAChE,UAAW,EACX,SAAU,EACV,aACJ,CAAC,CAAC,CACN,OACO,EAAP,CACI,KAAM,IAAoB,yBAAyB,KAAK,EAAG,EAA4B,CAC3F,CACA,GAAM,CAAE,gBAAiB,CAAE,cAAa,kBAAiB,eAAc,cAAe,CAAC,GAAM,EAC7F,GAAI,CAAC,GAAe,CAAC,GAAmB,CAAC,GAAgB,CAAC,EACtD,KAAM,IAAI,IAAoB,yBAAyB,+CAAgD,EAA4B,EAEvI,MAAO,CAAE,cAAa,kBAAiB,eAAc,WAAY,GAAI,MAAK,CAAU,CAAE,CAC1F,EACA,GAAQ,sBAAwB,KCvChC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,mBAAqB,OAC7B,GAAM,IAAsB,KACtB,GAAqB,AAAC,GAAY,CACpC,GAAM,CAAE,gBAAe,iBAAgB,aAAY,iBAAkB,EACrE,GAAI,CAAC,GAAiB,CAAC,GAAkB,CAAC,GAAc,CAAC,EACrD,KAAM,IAAI,IAAoB,yBAAyB,iJACV,OAAO,KAAK,CAAO,EAAE,KAAK,IAAI;AAAA,oFAAyF,EAAK,EAE7K,MAAO,EACX,EACA,GAAQ,mBAAqB,KCZ7B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,QAAU,OAClB,GAAM,IAAsB,KACtB,GAA2B,KAC3B,GAAiB,KACjB,GAA0B,KAC1B,GAAuB,KACvB,GAAU,CAAC,EAAO,CAAC,IAAM,SAAY,CACvC,GAAM,CAAE,cAAa,eAAc,YAAW,cAAa,aAAc,EACzE,GAAI,CAAC,GAAe,CAAC,GAAgB,CAAC,GAAa,CAAC,EAAa,CAC7D,GAAM,GAAW,KAAO,AAXhC,GAWmC,GAAyB,iBAAiB,CAAI,EACnE,EAAe,AAZ7B,GAYgC,GAAyB,gBAAgB,CAAI,EAC/D,EAAU,EAAS,GACzB,GAAI,CAAE,AAdd,GAciB,GAAe,cAAc,CAAO,EACzC,KAAM,IAAI,IAAoB,yBAAyB,WAAW,2CAAqD,EAE3H,GAAM,CAAE,gBAAe,iBAAgB,aAAY,iBAAmB,AAjB9E,GAiBiF,GAAqB,oBAAoB,CAAO,EACzH,MAAQ,AAlBhB,GAkBmB,GAAwB,uBAAuB,CACtD,YAAa,EACb,aAAc,EACd,UAAW,EACX,YAAa,EACb,UAAW,CACf,CAAC,CACL,KACK,IAAI,CAAC,GAAe,CAAC,GAAgB,CAAC,GAAa,CAAC,EACrD,KAAM,IAAI,IAAoB,yBAAyB,8HACN,EAGjD,MAAQ,AA/BhB,GA+BmB,GAAwB,uBAAuB,CAAE,cAAa,eAAc,YAAW,cAAa,WAAU,CAAC,EAElI,EACA,GAAQ,QAAU,KClClB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,IAChB,GAAQ,aAAa,KAAsB,EAAO,EAClD,GAAQ,aAAa,KAA2B,EAAO,EACvD,GAAQ,aAAa,KAAoB,EAAO,EAChD,GAAQ,aAAa,KAAiC,EAAO,ICN7D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,sBAAwB,GAAQ,aAAe,OACvD,GAAM,IAA4B,KAC9B,GAA4B,KAChC,OAAO,eAAe,GAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAA0B,YAAc,CAAE,CAAC,EACxI,GAAM,IAAwB,AAAC,GAAS,CACpC,GAAM,CAAE,gBAAe,iBAAgB,aAAY,iBAAmB,AAP1E,GAO6E,GAA0B,oBAAoB,CAAI,EAC3H,MAAQ,AARZ,GAQe,GAA0B,SAAS,CAC1C,YAAa,EACb,aAAc,EACd,UAAW,EACX,YAAa,CACjB,CAAC,EAAE,CACP,EACA,GAAQ,sBAAwB,KCfhC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,yBAA2B,GAAQ,qBAAuB,OAClE,GAAM,IAAuB,AAAC,GAAQ,QAAQ,CAAG,GAC7C,MAAO,IAAQ,UACf,MAAO,GAAI,mBAAsB,UACjC,MAAO,GAAI,uBAA0B,UACrC,CAAC,YAAa,QAAQ,EAAE,QAAQ,MAAO,GAAI,iBAAiB,EAAI,GACpE,GAAQ,qBAAuB,GAC/B,GAAM,IAA2B,AAAC,GAAY,QAAQ,QAAQ,CAC1D,YAAa,EAAQ,kBACrB,gBAAiB,EAAQ,sBACzB,aAAc,EAAQ,iBAC1B,CAAC,EACD,GAAQ,yBAA2B,KCdnC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,aAAe,OACvB,GAAM,IAAsB,KACtB,GAAe,AAAC,GAAS,IAAM,CACjC,GAAM,CAAE,UAAS,kBAAiB,mBAAkB,aAAY,aAAY,SAAQ,kBAAiB,8BAAgC,EACrI,GAAI,CAAC,EACD,KAAM,IAAI,IAAoB,yBAAyB,aAAa,0FACd,EAAK,EAE/D,MAAO,GAA2B,CAC9B,QAAS,EACT,gBAAiB,GAA2E,sBAAsB,KAAK,IAAI,IAC3H,iBAAkB,EAClB,WAAY,EACZ,WAAY,EACZ,OAAQ,EACR,gBAAiB,CACrB,CAAC,CACL,EACA,GAAQ,aAAe,KCpBvB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,cAAgB,OACxB,GAAM,IAAsB,KACtB,GAAO,QAAQ,MACf,GAAiB,KACjB,GAAiB,8BACjB,GAAe,eACf,GAAwB,wBACxB,GAAgB,CAAC,EAAO,CAAC,IAAM,SAC1B,GAAiB,CAAI,EAEhC,GAAQ,cAAgB,GACxB,GAAM,IAAmB,AAAC,GAAS,CAC/B,GAAI,GAAI,EAAI,EACZ,GAAM,GAAwB,GAAK,GAAS,KAA0B,OAAS,EAAK,wBAA0B,MAAQ,IAAO,OAAS,EAAK,QAAQ,IAAI,IACjJ,EAAW,GAAK,GAAS,KAA0B,OAAS,EAAK,WAAa,MAAQ,IAAO,OAAS,EAAK,QAAQ,IAAI,IACvH,EAAmB,GAAK,GAAS,KAA0B,OAAS,EAAK,mBAAqB,MAAQ,IAAO,OAAS,EAAK,QAAQ,IAAI,IAC7I,GAAI,CAAC,GAAwB,CAAC,EAC1B,KAAM,IAAI,IAAoB,yBAAyB,0CAA0C,EAErG,MAAQ,AArBZ,GAqBe,GAAe,cAAc,OACjC,GADiC,CAEpC,iBAAmB,AAvB3B,GAuB8B,GAAK,cAAc,EAAsB,CAAE,SAAU,OAAQ,CAAC,EACpF,UACA,iBACJ,EAAC,EAAE,CACP,IC3BA,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,IAChB,GAAQ,aAAa,KAA4B,EAAO,EACxD,GAAQ,aAAa,KAA2B,EAAO,ICJvD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,8BAAgC,GAAQ,qBAAuB,OACvE,GAAM,IAAqC,KACrC,GAAuB,AAAC,GAAQ,QAAQ,CAAG,GAC7C,MAAO,IAAQ,UACf,MAAO,GAAI,yBAA4B,UACvC,MAAO,GAAI,UAAa,UACxB,CAAC,YAAa,QAAQ,EAAE,QAAQ,MAAO,GAAI,iBAAiB,EAAI,GACpE,GAAQ,qBAAuB,GAC/B,GAAM,IAAgC,MAAO,EAAS,IAAa,AAVnE,GAUsE,GAAmC,eAAe,CACpH,qBAAsB,EAAQ,wBAC9B,QAAS,EAAQ,SACjB,gBAAiB,EAAQ,kBACzB,2BAA4B,EAAQ,0BACxC,CAAC,EAAE,EACH,GAAQ,8BAAgC,KChBxC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,mBAAqB,OAC7B,GAAM,IAAsB,KACtB,GAAiC,KACjC,GAA0B,KAC1B,GAA6B,KAC7B,GAAkC,KAClC,GAAqB,MAAO,EAAa,EAAU,EAAS,EAAkB,CAAC,IAAM,CACvF,GAAM,GAAO,EAAS,GACtB,GAAI,OAAO,KAAK,CAAe,EAAE,OAAS,GAAM,AAVpD,GAUuD,GAA2B,sBAAsB,CAAI,EACpG,MAAQ,AAXhB,GAWmB,GAA2B,0BAA0B,CAAI,EAExE,GAAK,AAbT,GAaY,GAA+B,qBAAqB,CAAI,EAC5D,MAAQ,AAdhB,GAcmB,GAA+B,8BAA8B,EAAa,EAAU,EAAS,CAAe,EAE3H,GAAK,AAhBT,GAgBY,GAA2B,sBAAsB,CAAI,EACzD,MAAQ,AAjBhB,GAiBmB,GAA2B,0BAA0B,CAAI,EAExE,GAAK,AAnBT,GAmBY,GAAgC,sBAAsB,CAAI,EAC9D,MAAQ,AApBhB,GAoBmB,GAAgC,+BAA+B,EAAM,CAAO,EAE3F,GAAK,AAtBT,GAsBY,GAAwB,cAAc,CAAI,EAC9C,MAAQ,AAvBhB,GAuBmB,GAAwB,uBAAuB,CAAI,EAElE,KAAM,IAAI,IAAoB,yBAAyB,WAAW,4DAAsE,CAC5I,EACA,GAAQ,mBAAqB,KC3B7B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,QAAU,OAClB,GAAM,IAA2B,KAC3B,GAAuB,KACvB,GAAU,CAAC,EAAO,CAAC,IAAM,SAAY,CACvC,GAAM,GAAW,KAAO,AAN5B,GAM+B,GAAyB,iBAAiB,CAAI,EACzE,MAAQ,AAPZ,GAOe,GAAqB,oBAAqB,AAPzD,GAO4D,GAAyB,gBAAgB,CAAI,EAAG,EAAU,CAAI,CAC1H,EACA,GAAQ,QAAU,KCTlB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,KAChB,GAAQ,aAAa,KAAsB,EAAO,ICHlD,mBAeA,GAAI,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACJ,AAAC,UAAU,EAAS,CAChB,GAAI,GAAO,MAAO,SAAW,SAAW,OAAS,MAAO,OAAS,SAAW,KAAO,MAAO,OAAS,SAAW,KAAO,CAAC,EACtH,AAAI,MAAO,SAAW,YAAc,OAAO,IACvC,OAAO,QAAS,CAAC,SAAS,EAAG,SAAU,EAAS,CAAE,EAAQ,EAAe,EAAM,EAAe,CAAO,CAAC,CAAC,CAAG,CAAC,EAE1G,AAAI,MAAO,KAAW,UAAY,MAAO,IAAO,SAAY,SAC7D,EAAQ,EAAe,EAAM,EAAe,GAAO,OAAO,CAAC,CAAC,EAG5D,EAAQ,EAAe,CAAI,CAAC,EAEhC,WAAwB,EAAS,EAAU,CACvC,MAAI,KAAY,GACZ,CAAI,MAAO,QAAO,QAAW,WACzB,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAG5D,EAAQ,WAAa,IAGtB,SAAU,EAAI,EAAG,CAAE,MAAO,GAAQ,GAAM,EAAW,EAAS,EAAI,CAAC,EAAI,CAAG,CACnF,CACJ,GACC,SAAU,EAAU,CACjB,GAAI,GAAgB,OAAO,gBACtB,CAAE,UAAW,CAAC,CAAE,WAAa,QAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,EAAG,CAAE,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,GAAI,EAEpG,GAAY,SAAU,EAAG,EAAG,CACxB,GAAI,MAAO,IAAM,YAAc,IAAM,KACjC,KAAM,IAAI,WAAU,uBAAyB,OAAO,CAAC,EAAI,+BAA+B,EAC5F,EAAc,EAAG,CAAC,EAClB,YAAc,CAAE,KAAK,YAAc,CAAG,CACtC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,EAAK,GAAG,UAAY,EAAE,UAAW,GAAI,GACnF,EAEA,GAAW,OAAO,QAAU,SAAU,EAAG,CACrC,OAAS,GAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAAK,CACjD,EAAI,UAAU,GACd,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,GAC9E,CACA,MAAO,EACX,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,CAAC,EACT,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAK,EAAE,QAAQ,CAAC,EAAI,GAC9E,GAAE,GAAK,EAAE,IACb,GAAI,GAAK,MAAQ,MAAO,QAAO,uBAA0B,WACrD,OAAS,GAAI,EAAG,EAAI,OAAO,sBAAsB,CAAC,EAAG,EAAI,EAAE,OAAQ,IAC/D,AAAI,EAAE,QAAQ,EAAE,EAAE,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAK,EAAG,EAAE,EAAE,GACzE,GAAE,EAAE,IAAM,EAAE,EAAE,KAE1B,MAAO,EACX,EAEA,GAAa,SAAU,EAAY,EAAQ,EAAK,EAAM,CAClD,GAAI,GAAI,UAAU,OAAQ,EAAI,EAAI,EAAI,EAAS,IAAS,KAAO,EAAO,OAAO,yBAAyB,EAAQ,CAAG,EAAI,EAAM,EAC3H,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,EAAI,QAAQ,SAAS,EAAY,EAAQ,EAAK,CAAI,MACxH,QAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAAK,AAAI,GAAI,EAAW,KAAI,GAAK,GAAI,EAAI,EAAE,CAAC,EAAI,EAAI,EAAI,EAAE,EAAQ,EAAK,CAAC,EAAI,EAAE,EAAQ,CAAG,IAAM,GAChJ,MAAO,GAAI,GAAK,GAAK,OAAO,eAAe,EAAQ,EAAK,CAAC,EAAG,CAChE,EAEA,GAAU,SAAU,EAAY,EAAW,CACvC,MAAO,UAAU,EAAQ,EAAK,CAAE,EAAU,EAAQ,EAAK,CAAU,CAAG,CACxE,EAEA,GAAa,SAAU,EAAa,EAAe,CAC/C,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,MAAO,SAAQ,SAAS,EAAa,CAAa,CACjI,EAEA,GAAY,SAAU,EAAS,EAAY,EAAG,EAAW,CACrD,WAAe,EAAO,CAAE,MAAO,aAAiB,GAAI,EAAQ,GAAI,GAAE,SAAU,EAAS,CAAE,EAAQ,CAAK,CAAG,CAAC,CAAG,CAC3G,MAAO,IAAK,IAAM,GAAI,UAAU,SAAU,EAAS,EAAQ,CACvD,WAAmB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,KAAK,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC1F,WAAkB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,MAAS,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC7F,WAAc,EAAQ,CAAE,EAAO,KAAO,EAAQ,EAAO,KAAK,EAAI,EAAM,EAAO,KAAK,EAAE,KAAK,EAAW,CAAQ,CAAG,CAC7G,EAAM,GAAY,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EAEA,GAAc,SAAU,EAAS,EAAM,CACnC,GAAI,GAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAI,EAAE,GAAK,EAAG,KAAM,GAAE,GAAI,MAAO,GAAE,EAAI,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAC/G,MAAO,GAAI,CAAE,KAAM,EAAK,CAAC,EAAG,MAAS,EAAK,CAAC,EAAG,OAAU,EAAK,CAAC,CAAE,EAAG,MAAO,SAAW,YAAe,GAAE,OAAO,UAAY,UAAW,CAAE,MAAO,KAAM,GAAI,EACvJ,WAAc,EAAG,CAAE,MAAO,UAAU,EAAG,CAAE,MAAO,GAAK,CAAC,EAAG,CAAC,CAAC,CAAG,CAAG,CACjE,WAAc,EAAI,CACd,GAAI,EAAG,KAAM,IAAI,WAAU,iCAAiC,EAC5D,KAAO,GAAG,GAAI,CACV,GAAI,EAAI,EAAG,GAAM,GAAI,EAAG,GAAK,EAAI,EAAE,OAAY,EAAG,GAAK,EAAE,OAAc,IAAI,EAAE,SAAc,EAAE,KAAK,CAAC,EAAG,GAAK,EAAE,OAAS,CAAE,GAAI,EAAE,KAAK,EAAG,EAAG,EAAE,GAAG,KAAM,MAAO,GAE3J,OADI,EAAI,EAAG,GAAG,GAAK,CAAC,EAAG,GAAK,EAAG,EAAE,KAAK,GAC9B,EAAG,QACF,OAAQ,GAAG,EAAI,EAAI,UACnB,GAAG,SAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,KAAM,EAAM,MACjD,GAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,CAAC,EAAG,aACnC,GAAG,EAAK,EAAE,IAAI,IAAI,EAAG,EAAE,KAAK,IAAI,EAAG,iBAEpC,GAAM,EAAI,EAAE,KAAM,IAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,KAAQ,GAAG,KAAO,GAAK,EAAG,KAAO,GAAI,CAAE,EAAI,EAAG,QAAU,CAC3G,GAAI,EAAG,KAAO,GAAM,EAAC,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,KAAO,CACrF,GAAI,EAAG,KAAO,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,KAAO,CACpE,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,CAAE,EAAG,KAAO,CAClE,AAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EACpB,EAAE,KAAK,IAAI,EAAG,SAEtB,EAAK,EAAK,KAAK,EAAS,CAAC,CAC7B,OAAS,EAAP,CAAY,EAAK,CAAC,EAAG,CAAC,EAAG,EAAI,CAAG,QAAE,CAAU,EAAI,EAAI,CAAG,CACzD,GAAI,EAAG,GAAK,EAAG,KAAM,GAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,GAAK,OAAQ,KAAM,EAAK,CACnF,CACJ,EAEA,GAAe,SAAS,EAAG,EAAG,CAC1B,OAAS,KAAK,GAAG,AAAI,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAgB,EAAG,EAAG,CAAC,CAChH,EAEA,GAAkB,OAAO,OAAU,SAAS,EAAG,EAAG,EAAG,EAAI,CACrD,AAAI,IAAO,QAAW,GAAK,GAC3B,GAAI,GAAO,OAAO,yBAAyB,EAAG,CAAC,EAC/C,AAAI,EAAC,GAAS,QAAS,GAAO,CAAC,EAAE,WAAa,EAAK,UAAY,EAAK,gBAChE,GAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,MAAO,GAAE,EAAI,CAAE,GAEhE,OAAO,eAAe,EAAG,EAAI,CAAI,CACrC,EAAM,SAAS,EAAG,EAAG,EAAG,EAAI,CACxB,AAAI,IAAO,QAAW,GAAK,GAC3B,EAAE,GAAM,EAAE,EACd,EAEA,GAAW,SAAU,EAAG,CACpB,GAAI,GAAI,MAAO,SAAW,YAAc,OAAO,SAAU,EAAI,GAAK,EAAE,GAAI,EAAI,EAC5E,GAAI,EAAG,MAAO,GAAE,KAAK,CAAC,EACtB,GAAI,GAAK,MAAO,GAAE,QAAW,SAAU,MAAO,CAC1C,KAAM,UAAY,CACd,MAAI,IAAK,GAAK,EAAE,QAAQ,GAAI,QACrB,CAAE,MAAO,GAAK,EAAE,KAAM,KAAM,CAAC,CAAE,CAC1C,CACJ,EACA,KAAM,IAAI,WAAU,EAAI,0BAA4B,iCAAiC,CACzF,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,MAAO,SAAW,YAAc,EAAE,OAAO,UACjD,GAAI,CAAC,EAAG,MAAO,GACf,GAAI,GAAI,EAAE,KAAK,CAAC,EAAG,EAAG,EAAK,CAAC,EAAG,EAC/B,GAAI,CACA,KAAQ,KAAM,QAAU,KAAM,IAAM,CAAE,GAAI,EAAE,KAAK,GAAG,MAAM,EAAG,KAAK,EAAE,KAAK,CAC7E,OACO,EAAP,CAAgB,EAAI,CAAE,MAAO,CAAM,CAAG,QACtC,CACI,GAAI,CACA,AAAI,GAAK,CAAC,EAAE,MAAS,GAAI,EAAE,SAAY,EAAE,KAAK,CAAC,CACnD,QACA,CAAU,GAAI,EAAG,KAAM,GAAE,KAAO,CACpC,CACA,MAAO,EACX,EAGA,GAAW,UAAY,CACnB,OAAS,GAAK,CAAC,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,IAC3C,EAAK,EAAG,OAAO,GAAO,UAAU,EAAE,CAAC,EACvC,MAAO,EACX,EAGA,GAAiB,UAAY,CACzB,OAAS,GAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OAC7E,OAAS,GAAI,MAAM,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,IACzC,OAAS,GAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,MAAO,EACX,EAEA,GAAgB,SAAU,EAAI,EAAM,EAAM,CACtC,GAAI,GAAQ,UAAU,SAAW,EAAG,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAI,EAAG,IAC5E,AAAI,IAAM,CAAE,KAAK,MACR,IAAI,GAAK,MAAM,UAAU,MAAM,KAAK,EAAM,EAAG,CAAC,GACnD,EAAG,GAAK,EAAK,IAGrB,MAAO,GAAG,OAAO,GAAM,MAAM,UAAU,MAAM,KAAK,CAAI,CAAC,CAC3D,EAEA,GAAU,SAAU,EAAG,CACnB,MAAO,gBAAgB,IAAW,MAAK,EAAI,EAAG,MAAQ,GAAI,IAAQ,CAAC,CACvE,EAEA,GAAmB,SAAU,EAAS,EAAY,EAAW,CACzD,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,EAAG,EAAG,EAAI,CAAC,EAC5D,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,EACpH,WAAc,EAAG,CAAE,AAAI,EAAE,IAAI,GAAE,GAAK,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAG,EAAG,CAAE,EAAE,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAI,GAAK,EAAO,EAAG,CAAC,CAAG,CAAC,CAAG,EAAG,CACzI,WAAgB,EAAG,EAAG,CAAE,GAAI,CAAE,EAAK,EAAE,GAAG,CAAC,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,EAAE,GAAG,GAAI,CAAC,CAAG,CAAE,CACjF,WAAc,EAAG,CAAE,EAAE,gBAAiB,IAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAS,CAAM,EAAI,EAAO,EAAE,GAAG,GAAI,CAAC,CAAI,CACxH,WAAiB,EAAO,CAAE,EAAO,OAAQ,CAAK,CAAG,CACjD,WAAgB,EAAO,CAAE,EAAO,QAAS,CAAK,CAAG,CACjD,WAAgB,EAAG,EAAG,CAAE,AAAI,EAAE,CAAC,EAAG,EAAE,MAAM,EAAG,EAAE,QAAQ,EAAO,EAAE,GAAG,GAAI,EAAE,GAAG,EAAE,CAAG,CACrF,EAEA,GAAmB,SAAU,EAAG,CAC5B,GAAI,GAAG,EACP,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,QAAS,SAAU,EAAG,CAAE,KAAM,EAAG,CAAC,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,UAAY,UAAY,CAAE,MAAO,KAAM,EAAG,EAC1I,WAAc,EAAG,EAAG,CAAE,EAAE,GAAK,EAAE,GAAK,SAAU,EAAG,CAAE,MAAQ,GAAI,CAAC,GAAK,CAAE,MAAO,GAAQ,EAAE,GAAG,CAAC,CAAC,EAAG,KAAM,IAAM,QAAS,EAAI,EAAI,EAAE,CAAC,EAAI,CAAG,EAAI,CAAG,CAClJ,EAEA,GAAgB,SAAU,EAAG,CACzB,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAE,OAAO,eAAgB,EACjC,MAAO,GAAI,EAAE,KAAK,CAAC,EAAK,GAAI,MAAO,KAAa,WAAa,GAAS,CAAC,EAAI,EAAE,OAAO,UAAU,EAAG,EAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,GAC9M,WAAc,EAAG,CAAE,EAAE,GAAK,EAAE,IAAM,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAS,EAAQ,CAAE,EAAI,EAAE,GAAG,CAAC,EAAG,EAAO,EAAS,EAAQ,EAAE,KAAM,EAAE,KAAK,CAAG,CAAC,CAAG,CAAG,CAC/J,WAAgB,EAAS,EAAQ,EAAG,EAAG,CAAE,QAAQ,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAG,CAAE,EAAQ,CAAE,MAAO,EAAG,KAAM,CAAE,CAAC,CAAG,EAAG,CAAM,CAAG,CAC/H,EAEA,GAAuB,SAAU,EAAQ,EAAK,CAC1C,MAAI,QAAO,eAAkB,OAAO,eAAe,EAAQ,MAAO,CAAE,MAAO,CAAI,CAAC,EAAY,EAAO,IAAM,EAClG,CACX,EAEA,GAAI,GAAqB,OAAO,OAAU,SAAS,EAAG,EAAG,CACrD,OAAO,eAAe,EAAG,UAAW,CAAE,WAAY,GAAM,MAAO,CAAE,CAAC,CACtE,EAAK,SAAS,EAAG,EAAG,CAChB,EAAE,QAAa,CACnB,EAEA,GAAe,SAAU,EAAK,CAC1B,GAAI,GAAO,EAAI,WAAY,MAAO,GAClC,GAAI,GAAS,CAAC,EACd,GAAI,GAAO,KAAM,OAAS,KAAK,GAAK,AAAI,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK,EAAK,CAAC,GAAG,GAAgB,EAAQ,EAAK,CAAC,EACvI,SAAmB,EAAQ,CAAG,EACvB,CACX,EAEA,GAAkB,SAAU,EAAK,CAC7B,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,CAAI,CAC5D,EAEA,GAAyB,SAAU,EAAU,EAAO,EAAM,EAAG,CACzD,GAAI,IAAS,KAAO,CAAC,EAAG,KAAM,IAAI,WAAU,+CAA+C,EAC3F,GAAI,MAAO,IAAU,WAAa,IAAa,GAAS,CAAC,EAAI,CAAC,EAAM,IAAI,CAAQ,EAAG,KAAM,IAAI,WAAU,0EAA0E,EACjL,MAAO,KAAS,IAAM,EAAI,IAAS,IAAM,EAAE,KAAK,CAAQ,EAAI,EAAI,EAAE,MAAQ,EAAM,IAAI,CAAQ,CAChG,EAEA,GAAyB,SAAU,EAAU,EAAO,EAAO,EAAM,EAAG,CAChE,GAAI,IAAS,IAAK,KAAM,IAAI,WAAU,gCAAgC,EACtE,GAAI,IAAS,KAAO,CAAC,EAAG,KAAM,IAAI,WAAU,+CAA+C,EAC3F,GAAI,MAAO,IAAU,WAAa,IAAa,GAAS,CAAC,EAAI,CAAC,EAAM,IAAI,CAAQ,EAAG,KAAM,IAAI,WAAU,yEAAyE,EAChL,MAAQ,KAAS,IAAM,EAAE,KAAK,EAAU,CAAK,EAAI,EAAI,EAAE,MAAQ,EAAQ,EAAM,IAAI,EAAU,CAAK,EAAI,CACxG,EAEA,GAAwB,SAAU,EAAO,EAAU,CAC/C,GAAI,IAAa,MAAS,MAAO,IAAa,UAAY,MAAO,IAAa,WAAa,KAAM,IAAI,WAAU,wCAAwC,EACvJ,MAAO,OAAO,IAAU,WAAa,IAAa,EAAQ,EAAM,IAAI,CAAQ,CAChF,EAEA,EAAS,YAAa,EAAS,EAC/B,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,aAAc,EAAU,EACjC,EAAS,UAAW,EAAO,EAC3B,EAAS,aAAc,EAAU,EACjC,EAAS,YAAa,EAAS,EAC/B,EAAS,cAAe,EAAW,EACnC,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,WAAY,EAAQ,EAC7B,EAAS,iBAAkB,EAAc,EACzC,EAAS,gBAAiB,EAAa,EACvC,EAAS,UAAW,EAAO,EAC3B,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,gBAAiB,EAAa,EACvC,EAAS,uBAAwB,EAAoB,EACrD,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,yBAA0B,EAAsB,EACzD,EAAS,yBAA0B,EAAsB,EACzD,EAAS,wBAAyB,EAAqB,CAC3D,CAAC,IC5TD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,+BAAiC,OACzC,GAAM,IAAiC,CAAC,EAAa,IAAS,CAC1D,GAAI,EAAK,UAAY,EACjB,KAAM,OAAM,WAAW,gDAA0D,EAErF,GAAI,EAAK,cAAgB,QAAa,EAAK,kBAAoB,OAC3D,KAAM,OAAM,WAAW,oDAA8D,EAEzF,GAAI,EAAK,WAAY,CACjB,GAAM,GAAc,GAAI,MAExB,GAAI,AADe,GAAI,MAAK,EAAK,UAAU,EAC1B,EACb,KAAM,OAAM,WAAW,oDAA8D,CAE7F,CACA,MAAO,MACH,YAAa,EAAK,YAClB,gBAAiB,EAAK,iBAClB,EAAK,cAAgB,CAAE,aAAc,EAAK,YAAa,GACvD,EAAK,YAAc,CAAE,WAAY,GAAI,MAAK,EAAK,UAAU,CAAE,EAEvE,EACA,GAAQ,+BAAiC,KCxBzC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,0BAA4B,OACpC,GAAM,IAAsB,KACtB,GAAkB,QAAQ,iBAC1B,GAAS,QAAQ,QACjB,GAAmC,KACnC,GAA4B,MAAO,EAAa,IAAa,CAC/D,GAAM,GAAU,EAAS,GACzB,GAAI,EAAS,GAAc,CACvB,GAAM,GAAoB,EAAQ,mBAClC,GAAI,IAAsB,OAAW,CACjC,GAAM,GAAe,AAZjC,GAYoC,GAAO,WAAW,GAAgB,IAAI,EAC9D,GAAI,CACA,GAAM,CAAE,UAAW,KAAM,GAAY,CAAiB,EAClD,EACJ,GAAI,CACA,EAAO,KAAK,MAAM,EAAO,KAAK,CAAC,CACnC,MACA,CACI,KAAM,OAAM,WAAW,6CAAuD,CAClF,CACA,MAAQ,AAtBxB,GAsB2B,GAAiC,gCAAgC,EAAa,CAAI,CACjG,OACO,EAAP,CACI,KAAM,IAAI,IAAoB,yBAAyB,EAAM,OAAO,CACxE,CACJ,KAEI,MAAM,IAAI,IAAoB,yBAAyB,WAAW,uCAAiD,CAE3H,KAEI,MAAM,IAAI,IAAoB,yBAAyB,WAAW,kDAA4D,CAEtI,EACA,GAAQ,0BAA4B,KCpCpC,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,YAAc,OACtB,GAAM,IAA2B,KAC3B,GAA8B,KAC9B,GAAc,CAAC,EAAO,CAAC,IAAM,SAAY,CAC3C,GAAM,GAAW,KAAO,AAN5B,GAM+B,GAAyB,iBAAiB,CAAI,EACzE,MAAQ,AAPZ,GAOe,GAA4B,2BAA4B,AAPvE,GAO0E,GAAyB,gBAAgB,CAAI,EAAG,CAAQ,CAClI,EACA,GAAQ,YAAc,KCTtB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,KAChB,GAAQ,aAAa,KAA0B,EAAO,ICHtD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,eAAiB,GAAQ,kBAAoB,OACrD,GAAM,IAA6B,KAC7B,GAAsB,KAC5B,GAAQ,kBAAoB,4BAC5B,GAAM,IAAiB,AAAC,GAChB,QAAQ,IAAI,GAA2B,wBAA0B,QAAQ,IAAI,GAA2B,mBAChG,AARhB,GAQmB,GAA2B,uBAAuB,CAAI,EAEjE,QAAQ,IAAI,GAAQ,mBACb,SAAY,CACf,KAAM,IAAI,IAAoB,yBAAyB,+CAA+C,CAC1G,EAEI,AAfZ,GAee,GAA2B,sBAAsB,CAAI,EAEpE,GAAQ,eAAiB,KCjBzB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,gBAAkB,OAC1B,GAAM,IAA4B,KAC5B,GAA4B,KAC5B,GAAgC,KAChC,GAA4B,KAC5B,GAAqC,KACrC,GAAsB,KACtB,GAA2B,KAC3B,GAAmB,KACnB,GAAkB,CAAC,EAAO,CAAC,IAAO,AAXxC,GAW2C,GAAoB,SAAU,AAXzE,GAW4E,GAAoB,OAAO,GAAI,EAAK,SAAW,QAAQ,IAAI,GAAyB,aAAe,CAAC,EAAI,CAAE,AAXtL,GAWyL,GAA0B,SAAS,CAAC,EAAK,AAXlO,GAWqO,GAA0B,SAAS,CAAI,EAAI,AAXhR,GAWmR,GAA0B,SAAS,CAAI,EAAI,AAX9T,GAWiU,GAA8B,aAAa,CAAI,EAAI,AAXpX,GAWuX,GAAmC,eAAe,CAAI,EAAI,AAXjb,GAWob,GAAiB,gBAAgB,CAAI,EAAG,SAAY,CACpe,KAAM,IAAI,IAAoB,yBAAyB,gDAAiD,EAAK,CACjH,CAAC,EAAG,AAAC,GAAgB,EAAY,aAAe,QAAa,EAAY,WAAW,QAAQ,EAAI,KAAK,IAAI,EAAI,IAAQ,AAAC,GAAgB,EAAY,aAAe,MAAS,EAC1K,GAAQ,gBAAkB,KCd1B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAM,IAAU,KAChB,GAAQ,aAAa,KAA8B,EAAO,ICH1D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,MAAQ,GAAQ,QAAU,OAClC,GAAM,IAAe,CAAC,EAChB,GAAe,CAAC,EACtB,OAAS,GAAI,EAAG,EAAI,IAAK,IAAK,CAC1B,GAAI,GAAc,EAAE,SAAS,EAAE,EAAE,YAAY,EAC7C,AAAI,EAAY,SAAW,GACvB,GAAc,IAAI,KAEtB,GAAa,GAAK,EAClB,GAAa,GAAe,CAChC,CACA,YAAiB,EAAS,CACtB,GAAI,EAAQ,OAAS,IAAM,EACvB,KAAM,IAAI,OAAM,qDAAqD,EAEzE,GAAM,GAAM,GAAI,YAAW,EAAQ,OAAS,CAAC,EAC7C,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,GAAK,EAAG,CACxC,GAAM,GAAc,EAAQ,MAAM,EAAG,EAAI,CAAC,EAAE,YAAY,EACxD,GAAI,IAAe,IACf,EAAI,EAAI,GAAK,GAAa,OAG1B,MAAM,IAAI,OAAM,uCAAuC,kBAA4B,CAE3F,CACA,MAAO,EACX,CACA,GAAQ,QAAU,GAClB,YAAe,EAAO,CAClB,GAAI,GAAM,GACV,OAAS,GAAI,EAAG,EAAI,EAAM,WAAY,IAClC,GAAO,GAAa,EAAM,IAE9B,MAAO,EACX,CACA,GAAQ,MAAQ,KCrChB,0BACA,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,EAAQ,kBAAoB,EAAQ,oBAAsB,EAAQ,eAAiB,EAAQ,iBAAmB,EAAQ,2BAA6B,EAAQ,yBAA2B,EAAQ,qBAAuB,EAAQ,oBAAsB,EAAQ,mBAAqB,EAAQ,qBAAuB,EAAQ,0BAA4B,EAAQ,YAAc,EAAQ,aAAe,EAAQ,cAAgB,EAAQ,iBAAmB,EAAQ,kBAAoB,EAAQ,YAAc,EAAQ,gBAAkB,EAAQ,YAAc,EAAQ,iBAAmB,EAAQ,kBAAoB,EAAQ,sBAAwB,EAAQ,oBAAsB,EAAQ,2BAA6B,EAAQ,qBAAuB,EAAQ,uBAAyB,EAAQ,sBAAwB,OAC/wB,EAAQ,sBAAwB,kBAChC,EAAQ,uBAAyB,mBACjC,EAAQ,qBAAuB,aAC/B,EAAQ,2BAA6B,sBACrC,EAAQ,oBAAsB,gBAC9B,EAAQ,sBAAwB,kBAChC,EAAQ,kBAAoB,uBAC5B,EAAQ,iBAAmB,mBAC3B,EAAQ,YAAc,gBACtB,EAAQ,gBAAkB,EAAQ,qBAAqB,YAAY,EACnE,EAAQ,YAAc,OACtB,EAAQ,kBAAoB,CAAC,EAAQ,YAAa,EAAQ,gBAAiB,EAAQ,WAAW,EAC9F,EAAQ,iBAAmB,EAAQ,sBAAsB,YAAY,EACrE,EAAQ,cAAgB,uBACxB,EAAQ,aAAe,EAAQ,kBAAkB,YAAY,EAC7D,EAAQ,YAAc,OACtB,EAAQ,0BAA4B,CAChC,cAAe,GACf,gBAAiB,GACjB,WAAY,GACZ,OAAQ,GACR,KAAM,GACN,aAAc,GACd,eAAgB,GAChB,OAAQ,GACR,QAAS,GACT,GAAI,GACJ,QAAS,GACT,oBAAqB,GACrB,QAAS,GACT,aAAc,GACd,kBAAmB,EACvB,EACA,EAAQ,qBAAuB,UAC/B,EAAQ,mBAAqB,QAC7B,EAAQ,oBAAsB,CAAC,WAAY,QAAQ,EACnD,EAAQ,qBAAuB,mBAC/B,EAAQ,yBAA2B,yBACnC,EAAQ,2BAA6B,2BACrC,EAAQ,iBAAmB,mBAC3B,EAAQ,eAAiB,GACzB,EAAQ,oBAAsB,eAC9B,EAAQ,kBAAoB,GAAK,GAAK,GAAK,IC7C3C,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,qBAAuB,GAAQ,cAAgB,GAAQ,YAAc,OAC7E,GAAM,IAAsB,KACtB,GAAc,KACd,GAAkB,CAAC,EACnB,GAAa,CAAC,EACd,GAAc,CAAC,EAAW,EAAQ,IAAY,GAAG,KAAa,KAAU,KAAW,GAAY,sBACrG,GAAQ,YAAc,GACtB,GAAM,IAAgB,MAAO,EAAmB,EAAa,EAAW,EAAQ,IAAY,CACxF,GAAM,GAAY,KAAM,IAAK,EAAmB,EAAY,gBAAiB,EAAY,WAAW,EAC9F,EAAW,GAAG,KAAa,KAAU,KAAY,AAX3D,GAW8D,GAAoB,OAAO,CAAS,KAAK,EAAY,eAC/G,GAAI,IAAY,IACZ,MAAO,IAAgB,GAG3B,IADA,GAAW,KAAK,CAAQ,EACjB,GAAW,OAAS,GAAY,gBACnC,MAAO,IAAgB,GAAW,MAAM,GAE5C,GAAI,GAAM,OAAO,EAAY,kBAC7B,OAAW,KAAY,CAAC,EAAW,EAAQ,EAAS,GAAY,mBAAmB,EAC/E,EAAM,KAAM,IAAK,EAAmB,EAAK,CAAQ,EAErD,MAAQ,IAAgB,GAAY,CACxC,EACA,GAAQ,cAAgB,GACxB,GAAM,IAAuB,IAAM,CAC/B,GAAW,OAAS,EACpB,OAAO,KAAK,EAAe,EAAE,QAAQ,AAAC,GAAa,CAC/C,MAAO,IAAgB,EAC3B,CAAC,CACL,EACA,GAAQ,qBAAuB,GAC/B,GAAM,IAAO,CAAC,EAAM,EAAQ,IAAS,CACjC,GAAM,GAAO,GAAI,GAAK,CAAM,EAC5B,SAAK,OAAO,CAAI,EACT,EAAK,OAAO,CACvB,ICrCA,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,oBAAsB,OAC9B,GAAM,IAAc,KACd,GAAsB,CAAC,CAAE,WAAW,EAAmB,IAAoB,CAC7E,GAAM,GAAY,CAAC,EACnB,OAAW,KAAc,QAAO,KAAK,CAAO,EAAE,KAAK,EAAG,CAClD,GAAM,GAAsB,EAAW,YAAY,EACnD,AAAI,KAAuB,IAAY,2BAClC,IAAsB,KAAuC,OAAS,EAAkB,IAAI,CAAmB,IAChH,GAAY,qBAAqB,KAAK,CAAmB,GACzD,GAAY,mBAAmB,KAAK,CAAmB,IACnD,EAAC,GAAoB,GAAmB,CAAC,EAAgB,IAAI,CAAmB,IAIxF,GAAU,GAAuB,EAAQ,GAAY,KAAK,EAAE,QAAQ,OAAQ,GAAG,EACnF,CACA,MAAO,EACX,EACA,GAAQ,oBAAsB,KCpB9B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,kBAAoB,OAC5B,GAAM,IAAoB,KACpB,GAAc,KACd,GAAoB,CAAC,CAAE,QAAQ,CAAC,KAAQ,CAC1C,GAAM,GAAO,CAAC,EACR,EAAa,CAAC,EACpB,OAAW,KAAO,QAAO,KAAK,CAAK,EAAE,KAAK,EAAG,CACzC,GAAI,EAAI,YAAY,IAAM,GAAY,iBAClC,SAEJ,EAAK,KAAK,CAAG,EACb,GAAM,GAAQ,EAAM,GACpB,AAAI,MAAO,IAAU,SACjB,EAAW,GAAO,GAAI,AAflC,GAeqC,GAAkB,WAAW,CAAG,KAAM,AAf3E,GAe8E,GAAkB,WAAW,CAAK,IAE/F,MAAM,QAAQ,CAAK,GACxB,GAAW,GAAO,EACb,MAAM,CAAC,EACP,KAAK,EACL,OAAO,CAAC,EAAS,IAAU,EAAQ,OAAO,CAAC,GAAI,AArBhE,GAqBmE,GAAkB,WAAW,CAAG,KAAM,AArBzG,GAqB4G,GAAkB,WAAW,CAAK,GAAG,CAAC,EAAG,CAAC,CAAC,EACtI,KAAK,GAAG,EAErB,CACA,MAAO,GACF,IAAI,AAAC,GAAQ,EAAW,EAAI,EAC5B,OAAO,AAAC,GAAe,CAAU,EACjC,KAAK,GAAG,CACjB,EACA,GAAQ,kBAAoB,KC9B5B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,eAAiB,OACzB,GAAM,IAAoB,KACpB,GAAsB,KACtB,GAAc,KACd,GAAiB,MAAO,CAAE,UAAS,QAAQ,IAAoB,CACjE,OAAW,KAAc,QAAO,KAAK,CAAO,EACxC,GAAI,EAAW,YAAY,IAAM,GAAY,cACzC,MAAO,GAAQ,GAGvB,GAAI,GAAQ,KACR,MAAO,mEAEN,GAAI,MAAO,IAAS,UAAY,YAAY,OAAO,CAAI,GAAM,AAftE,GAeyE,GAAkB,eAAe,CAAI,EAAG,CACzG,GAAM,GAAW,GAAI,GACrB,SAAS,OAAO,CAAI,EACZ,AAlBhB,GAkBmB,GAAoB,OAAO,KAAM,GAAS,OAAO,CAAC,CACjE,CACA,MAAO,IAAY,gBACvB,EACA,GAAQ,eAAiB,KCtBzB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,aAAe,GAAQ,eAAiB,GAAQ,UAAY,OACpE,GAAM,IAAY,CAAC,EAAc,IAAY,CACzC,EAAe,EAAa,YAAY,EACxC,OAAW,KAAc,QAAO,KAAK,CAAO,EACxC,GAAI,IAAiB,EAAW,YAAY,EACxC,MAAO,GAGf,MAAO,EACX,EACA,GAAQ,UAAY,GACpB,GAAM,IAAiB,CAAC,EAAc,IAAY,CAC9C,EAAe,EAAa,YAAY,EACxC,OAAW,KAAc,QAAO,KAAK,CAAO,EACxC,GAAI,IAAiB,EAAW,YAAY,EACxC,MAAO,GAAQ,EAI3B,EACA,GAAQ,eAAiB,GACzB,GAAM,IAAe,CAAC,EAAc,IAAY,CAC5C,EAAe,EAAa,YAAY,EACxC,OAAW,KAAc,QAAO,KAAK,CAAO,EACxC,AAAI,IAAiB,EAAW,YAAY,GACxC,MAAO,GAAQ,EAG3B,EACA,GAAQ,aAAe,KC/BvB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,WAAa,GAAQ,aAAe,OAC5C,GAAM,IAAe,AAAC,GAA6B,CAA7B,QAAE,WAAS,SAAX,EAAqB,KAArB,EAAqB,CAAnB,UAAS,UAAsB,cAChD,GADgD,CAEnD,QAAS,KAAK,GACd,MAAO,EAAS,AANpB,GAMuB,GAAQ,YAAY,CAAK,EAAI,MACpD,IACA,GAAQ,aAAe,GACvB,GAAM,IAAa,AAAC,GAAU,OAAO,KAAK,CAAK,EAAE,OAAO,CAAC,EAAO,IAAc,CAC1E,GAAM,GAAQ,EAAM,GACpB,MAAO,QACA,GADA,EAEF,GAAY,MAAM,QAAQ,CAAK,EAAI,CAAC,GAAG,CAAK,EAAI,CACrD,EACJ,EAAG,CAAC,CAAC,EACL,GAAQ,WAAa,KChBrB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,mBAAqB,OAC7B,GAAM,IAAiB,KACjB,GAAqB,CAAC,EAAS,EAAU,CAAC,IAAM,CAClD,GAAI,GACJ,GAAM,CAAE,UAAS,QAAQ,CAAC,GAAM,MAAO,GAAQ,OAAU,WAAa,EAAQ,MAAM,EAAK,AAN7F,GAMgG,GAAe,cAAc,CAAO,EAChI,OAAW,KAAQ,QAAO,KAAK,CAAO,EAAG,CACrC,GAAM,GAAQ,EAAK,YAAY,EAC/B,AAAI,EAAM,MAAM,EAAG,CAAC,IAAM,UAAY,CAAG,MAAK,EAAQ,sBAAwB,MAAQ,IAAO,SAAkB,EAAG,IAAI,CAAK,IACvH,GAAM,GAAQ,EAAQ,GACtB,MAAO,GAAQ,GAEvB,CACA,MAAO,QACA,GADA,CAEH,UACA,OACJ,EACJ,EACA,GAAQ,mBAAqB,KCpB7B,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,eAAiB,OACzB,GAAM,IAAiB,KACjB,GAAc,KACd,GAAiB,AAAC,GAAY,CAChC,EAAU,MAAO,GAAQ,OAAU,WAAa,EAAQ,MAAM,EAAK,AANvE,GAM0E,GAAe,cAAc,CAAO,EAC1G,OAAW,KAAc,QAAO,KAAK,EAAQ,OAAO,EAChD,AAAI,GAAY,kBAAkB,QAAQ,EAAW,YAAY,CAAC,EAAI,IAClE,MAAO,GAAQ,QAAQ,GAG/B,MAAO,EACX,EACA,GAAQ,eAAiB,KCdzB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,OAAS,GAAQ,QAAU,OACnC,GAAM,IAAU,AAAC,GAAU,AAH3B,GAG8B,GAAQ,QAAQ,CAAI,EAC7C,YAAY,EACZ,QAAQ,YAAa,GAAG,EAC7B,GAAQ,QAAU,GAClB,GAAM,IAAS,AAAC,GACR,MAAO,IAAS,SACT,GAAI,MAAK,EAAO,GAAI,EAE3B,MAAO,IAAS,SACZ,OAAO,CAAI,EACJ,GAAI,MAAK,OAAO,CAAI,EAAI,GAAI,EAEhC,GAAI,MAAK,CAAI,EAEjB,EAEX,GAAQ,OAAS,KCnBjB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,YAAc,OACtB,GAAM,IAAsB,KACtB,GAAoB,KACpB,GAAc,KACd,GAAyB,KACzB,GAAwB,KACxB,GAAsB,KACtB,GAAmB,KACnB,GAAe,KACf,GAAuB,KACvB,GAAmB,KACnB,GAAa,KACnB,QAAkB,CACd,YAAY,CAAE,gBAAe,cAAa,SAAQ,UAAS,SAAQ,gBAAgB,IAAS,CACxF,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,cAAgB,EACrB,KAAK,cAAgB,MAAO,IAAkB,UAAY,EAAgB,GAC1E,KAAK,eAAkB,AApB/B,GAoBkC,GAAkB,mBAAmB,CAAM,EACrE,KAAK,mBAAsB,AArBnC,GAqBsC,GAAkB,mBAAmB,CAAW,CAClF,MACM,SAAQ,EAAiB,EAAU,CAAC,EAAG,CACzC,GAAM,CAAE,cAAc,GAAI,MAAQ,YAAY,KAAM,oBAAmB,qBAAoB,kBAAiB,gBAAe,kBAAoB,EACzI,EAAc,KAAM,MAAK,mBAAmB,EAC5C,EAAS,GAAsE,KAAM,MAAK,eAAe,EACzG,CAAE,WAAU,aAAc,GAAW,CAAW,EACtD,GAAI,EAAY,GAAY,kBACxB,MAAO,SAAQ,OAAO,kGAA4G,EAEtI,GAAM,GAAS,AA/BvB,GA+B0B,GAAuB,aAAa,EAAW,EAAQ,GAAwE,KAAK,OAAO,EACvJ,EAAW,AAhCzB,GAgC4B,GAAqB,oBAAqB,AAhCtE,GAgCyE,GAAiB,gBAAgB,CAAe,EAAG,CAAE,oBAAmB,CAAC,EAC1I,AAAI,EAAY,cACZ,GAAQ,MAAM,GAAY,mBAAqB,EAAY,cAE/D,EAAQ,MAAM,GAAY,uBAAyB,GAAY,qBAC/D,EAAQ,MAAM,GAAY,wBAA0B,GAAG,EAAY,eAAe,IAClF,EAAQ,MAAM,GAAY,sBAAwB,EAClD,EAAQ,MAAM,GAAY,qBAAuB,EAAU,SAAS,EAAE,EACtE,GAAM,GAAoB,AAxClC,GAwCqC,GAAsB,qBAAqB,EAAS,EAAmB,CAAe,EACnH,SAAQ,MAAM,GAAY,4BAA8B,GAAuB,CAAgB,EAC/F,EAAQ,MAAM,GAAY,uBAAyB,KAAM,MAAK,aAAa,EAAU,EAAO,KAAK,cAAc,EAAa,EAAQ,EAAW,CAAc,EAAG,KAAK,uBAAuB,EAAS,EAAkB,KAAO,AA1CtO,GA0CyO,GAAiB,gBAAgB,EAAiB,KAAK,MAAM,CAAC,CAAC,EACzR,CACX,MACM,MAAK,EAAQ,EAAS,CACxB,MAAI,OAAO,IAAW,SACX,KAAK,WAAW,EAAQ,CAAO,EAEjC,EAAO,SAAW,EAAO,QACvB,KAAK,UAAU,EAAQ,CAAO,EAG9B,KAAK,YAAY,EAAQ,CAAO,CAE/C,MACM,WAAU,CAAE,UAAS,WAAW,CAAE,cAAc,GAAI,MAAQ,iBAAgB,gBAAe,kBAAkB,CAC/G,GAAM,GAAS,GAAsE,KAAM,MAAK,eAAe,EACzG,CAAE,YAAW,YAAa,GAAW,CAAW,EAChD,EAAS,AA3DvB,GA2D0B,GAAuB,aAAa,EAAW,EAAQ,GAAwE,KAAK,OAAO,EACvJ,EAAgB,KAAO,AA5DrC,GA4DwC,GAAiB,gBAAgB,CAAE,QAAS,CAAC,EAAG,KAAM,CAAQ,EAAG,KAAK,MAAM,EACtG,EAAO,GAAI,MAAK,OACtB,EAAK,OAAO,CAAO,EACnB,GAAM,GAAiB,AA/D/B,GA+DkC,GAAoB,OAAO,KAAM,GAAK,OAAO,CAAC,EAClE,EAAe,CACjB,GAAY,2BACZ,EACA,EACA,EACA,EACA,CACJ,EAAE,KAAK;AAAA,CAAI,EACX,MAAO,MAAK,WAAW,EAAc,CAAE,cAAa,cAAe,EAAQ,gBAAe,CAAC,CAC/F,MACM,YAAW,EAAc,CAAE,cAAc,GAAI,MAAQ,gBAAe,kBAAmB,CAAC,EAAG,CAC7F,GAAM,GAAc,KAAM,MAAK,mBAAmB,EAC5C,EAAS,GAAsE,KAAM,MAAK,eAAe,EACzG,CAAE,aAAc,GAAW,CAAW,EACtC,EAAO,GAAI,MAAK,OAAO,KAAM,MAAK,cAAc,EAAa,EAAQ,EAAW,CAAc,CAAC,EACrG,SAAK,OAAO,CAAY,EAChB,AAhFhB,GAgFmB,GAAoB,OAAO,KAAM,GAAK,OAAO,CAAC,CAC7D,MACM,aAAY,EAAe,CAAE,cAAc,GAAI,MAAQ,kBAAiB,oBAAmB,gBAAe,kBAAoB,CAAC,EAAG,CACpI,GAAM,GAAc,KAAM,MAAK,mBAAmB,EAC5C,EAAS,GAAsE,KAAM,MAAK,eAAe,EACzG,EAAW,AArFzB,GAqF4B,GAAiB,gBAAgB,CAAa,EAC5D,CAAE,WAAU,aAAc,GAAW,CAAW,EAChD,EAAS,AAvFvB,GAuF0B,GAAuB,aAAa,EAAW,EAAQ,GAAwE,KAAK,OAAO,EAC7J,EAAQ,QAAQ,GAAY,iBAAmB,EAC3C,EAAY,cACZ,GAAQ,QAAQ,GAAY,cAAgB,EAAY,cAE5D,GAAM,GAAc,KAAO,AA5FnC,GA4FsC,GAAiB,gBAAgB,EAAS,KAAK,MAAM,EACnF,AAAI,CAAE,AA7Fd,GA6FiB,GAAa,WAAW,GAAY,cAAe,EAAQ,OAAO,GAAK,KAAK,eACjF,GAAQ,QAAQ,GAAY,eAAiB,GAEjD,GAAM,GAAoB,AAhGlC,GAgGqC,GAAsB,qBAAqB,EAAS,EAAmB,CAAe,EAC7G,EAAY,KAAM,MAAK,aAAa,EAAU,EAAO,KAAK,cAAc,EAAa,EAAQ,EAAW,CAAc,EAAG,KAAK,uBAAuB,EAAS,EAAkB,CAAW,CAAC,EAClM,SAAQ,QAAQ,GAAY,aACxB,GAAG,GAAY,mCACG,EAAY,eAAe,oBACxB,GAAuB,CAAgB,gBAC3C,IACd,CACX,CACA,uBAAuB,EAAS,EAAkB,EAAa,CAC3D,GAAM,GAAgB,OAAO,KAAK,CAAgB,EAAE,KAAK,EACzD,MAAO,GAAG,EAAQ;AAAA,EACxB,KAAK,iBAAiB,CAAO;AAAA,EAC5B,AA7GH,GA6GM,GAAoB,mBAAmB,CAAO;AAAA,EAClD,EAAc,IAAI,AAAC,GAAS,GAAG,KAAQ,EAAiB,IAAO,EAAE,KAAK;AAAA,CAAI;AAAA;AAAA,EAE1E,EAAc,KAAK,GAAG;AAAA,EACtB,GACE,MACM,oBAAmB,EAAU,EAAiB,EAAkB,CAClE,GAAM,GAAO,GAAI,MAAK,OACtB,EAAK,OAAO,CAAgB,EAC5B,GAAM,GAAgB,KAAM,GAAK,OAAO,EACxC,MAAO,GAAG,GAAY;AAAA,EAC5B;AAAA,EACA;AAAA,EACC,AA1HH,GA0HM,GAAoB,OAAO,CAAa,GAC1C,CACA,iBAAiB,CAAE,QAAQ,CACvB,GAAI,KAAK,cAAe,CACpB,GAAM,GAAyB,CAAC,EAChC,OAAW,KAAe,GAAK,MAAM,GAAG,EACpC,AAAK,IAAgB,KAAiC,OAAS,EAAY,UAAY,GAEnF,IAAgB,KAEpB,CAAI,IAAgB,KAChB,EAAuB,IAAI,EAG3B,EAAuB,KAAK,CAAW,GAG/C,GAAM,GAAiB,GAAI,GAAS,MAAmC,EAAK,WAAW,GAAG,EAAK,IAAM,KAAK,EAAuB,KAAK,GAAG,IAAI,EAAuB,OAAS,GAAM,IAAS,KAA0B,OAAS,EAAK,SAAS,GAAG,GAAK,IAAM,KAE3P,MAAO,AADe,oBAAmB,CAAc,EAClC,QAAQ,OAAQ,GAAG,CAC5C,CACA,MAAO,EACX,MACM,cAAa,EAAU,EAAiB,EAAY,EAAkB,CACxE,GAAM,GAAe,KAAM,MAAK,mBAAmB,EAAU,EAAiB,CAAgB,EACxF,EAAO,GAAI,MAAK,OAAO,KAAM,EAAU,EAC7C,SAAK,OAAO,CAAY,EAChB,AArJhB,GAqJmB,GAAoB,OAAO,KAAM,GAAK,OAAO,CAAC,CAC7D,CACA,cAAc,EAAa,EAAQ,EAAW,EAAS,CACnD,MAAQ,AAxJhB,GAwJmB,GAAuB,eAAe,KAAK,OAAQ,EAAa,EAAW,EAAQ,GAAW,KAAK,OAAO,CACzH,CACJ,EACA,GAAQ,YAAc,GACtB,GAAM,IAAa,AAAC,GAAQ,CACxB,GAAM,GAAY,AA7JtB,GA6JyB,GAAW,SAAS,CAAG,EAAE,QAAQ,SAAU,EAAE,EAClE,MAAO,CACH,WACA,UAAW,EAAS,MAAM,EAAG,CAAC,CAClC,CACJ,EACM,GAAyB,AAAC,GAAY,OAAO,KAAK,CAAO,EAAE,KAAK,EAAE,KAAK,GAAG,ICnKhF,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,eAAiB,GAAQ,mBAAqB,GAAQ,eAAiB,GAAQ,kBAAoB,GAAQ,oBAAsB,OACzI,GAAM,IAAU,IAChB,GAAQ,aAAa,KAA0B,EAAO,EACtD,GAAI,IAAwB,KAC5B,OAAO,eAAe,GAAS,sBAAuB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAAsB,mBAAqB,CAAE,CAAC,EAClJ,GAAI,IAAsB,KAC1B,OAAO,eAAe,GAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAAoB,iBAAmB,CAAE,CAAC,EAC5I,GAAI,IAAmB,KACvB,OAAO,eAAe,GAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAAiB,cAAgB,CAAE,CAAC,EACnI,GAAI,IAAuB,KAC3B,OAAO,eAAe,GAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAAqB,kBAAoB,CAAE,CAAC,EAC/I,GAAI,IAAmB,KACvB,OAAO,eAAe,GAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,MAAO,IAAiB,cAAgB,CAAE,CAAC,EACnI,GAAQ,aAAa,KAAmC,EAAO,ICf/D,mBAgBA,GAAI,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACJ,AAAC,UAAU,EAAS,CAChB,GAAI,GAAO,MAAO,SAAW,SAAW,OAAS,MAAO,OAAS,SAAW,KAAO,MAAO,OAAS,SAAW,KAAO,CAAC,EACtH,AAAI,MAAO,SAAW,YAAc,OAAO,IACvC,OAAO,QAAS,CAAC,SAAS,EAAG,SAAU,EAAS,CAAE,EAAQ,EAAe,EAAM,EAAe,CAAO,CAAC,CAAC,CAAG,CAAC,EAE1G,AAAI,MAAO,KAAW,UAAY,MAAO,IAAO,SAAY,SAC7D,EAAQ,EAAe,EAAM,EAAe,GAAO,OAAO,CAAC,CAAC,EAG5D,EAAQ,EAAe,CAAI,CAAC,EAEhC,WAAwB,EAAS,EAAU,CACvC,MAAI,KAAY,GACZ,CAAI,MAAO,QAAO,QAAW,WACzB,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAG5D,EAAQ,WAAa,IAGtB,SAAU,EAAI,EAAG,CAAE,MAAO,GAAQ,GAAM,EAAW,EAAS,EAAI,CAAC,EAAI,CAAG,CACnF,CACJ,GACC,SAAU,EAAU,CACjB,GAAI,GAAgB,OAAO,gBACtB,CAAE,UAAW,CAAC,CAAE,WAAa,QAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,EAAG,CAAE,OAAS,KAAK,GAAG,AAAI,EAAE,eAAe,CAAC,GAAG,GAAE,GAAK,EAAE,GAAI,EAE7E,GAAY,SAAU,EAAG,EAAG,CACxB,EAAc,EAAG,CAAC,EAClB,YAAc,CAAE,KAAK,YAAc,CAAG,CACtC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,EAAK,GAAG,UAAY,EAAE,UAAW,GAAI,GACnF,EAEA,GAAW,OAAO,QAAU,SAAU,EAAG,CACrC,OAAS,GAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAAK,CACjD,EAAI,UAAU,GACd,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,GAC9E,CACA,MAAO,EACX,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,CAAC,EACT,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAK,EAAE,QAAQ,CAAC,EAAI,GAC9E,GAAE,GAAK,EAAE,IACb,GAAI,GAAK,MAAQ,MAAO,QAAO,uBAA0B,WACrD,OAAS,GAAI,EAAG,EAAI,OAAO,sBAAsB,CAAC,EAAG,EAAI,EAAE,OAAQ,IAC/D,AAAI,EAAE,QAAQ,EAAE,EAAE,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAK,EAAG,EAAE,EAAE,GACzE,GAAE,EAAE,IAAM,EAAE,EAAE,KAE1B,MAAO,EACX,EAEA,GAAa,SAAU,EAAY,EAAQ,EAAK,EAAM,CAClD,GAAI,GAAI,UAAU,OAAQ,EAAI,EAAI,EAAI,EAAS,IAAS,KAAO,EAAO,OAAO,yBAAyB,EAAQ,CAAG,EAAI,EAAM,EAC3H,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,EAAI,QAAQ,SAAS,EAAY,EAAQ,EAAK,CAAI,MACxH,QAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAAK,AAAI,GAAI,EAAW,KAAI,GAAK,GAAI,EAAI,EAAE,CAAC,EAAI,EAAI,EAAI,EAAE,EAAQ,EAAK,CAAC,EAAI,EAAE,EAAQ,CAAG,IAAM,GAChJ,MAAO,GAAI,GAAK,GAAK,OAAO,eAAe,EAAQ,EAAK,CAAC,EAAG,CAChE,EAEA,GAAU,SAAU,EAAY,EAAW,CACvC,MAAO,UAAU,EAAQ,EAAK,CAAE,EAAU,EAAQ,EAAK,CAAU,CAAG,CACxE,EAEA,GAAa,SAAU,EAAa,EAAe,CAC/C,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,MAAO,SAAQ,SAAS,EAAa,CAAa,CACjI,EAEA,GAAY,SAAU,EAAS,EAAY,EAAG,EAAW,CACrD,WAAe,EAAO,CAAE,MAAO,aAAiB,GAAI,EAAQ,GAAI,GAAE,SAAU,EAAS,CAAE,EAAQ,CAAK,CAAG,CAAC,CAAG,CAC3G,MAAO,IAAK,IAAM,GAAI,UAAU,SAAU,EAAS,EAAQ,CACvD,WAAmB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,KAAK,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC1F,WAAkB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,MAAS,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC7F,WAAc,EAAQ,CAAE,EAAO,KAAO,EAAQ,EAAO,KAAK,EAAI,EAAM,EAAO,KAAK,EAAE,KAAK,EAAW,CAAQ,CAAG,CAC7G,EAAM,GAAY,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EAEA,GAAc,SAAU,EAAS,EAAM,CACnC,GAAI,GAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAI,EAAE,GAAK,EAAG,KAAM,GAAE,GAAI,MAAO,GAAE,EAAI,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAC/G,MAAO,GAAI,CAAE,KAAM,EAAK,CAAC,EAAG,MAAS,EAAK,CAAC,EAAG,OAAU,EAAK,CAAC,CAAE,EAAG,MAAO,SAAW,YAAe,GAAE,OAAO,UAAY,UAAW,CAAE,MAAO,KAAM,GAAI,EACvJ,WAAc,EAAG,CAAE,MAAO,UAAU,EAAG,CAAE,MAAO,GAAK,CAAC,EAAG,CAAC,CAAC,CAAG,CAAG,CACjE,WAAc,EAAI,CACd,GAAI,EAAG,KAAM,IAAI,WAAU,iCAAiC,EAC5D,KAAO,GAAG,GAAI,CACV,GAAI,EAAI,EAAG,GAAM,GAAI,EAAG,GAAK,EAAI,EAAE,OAAY,EAAG,GAAK,EAAE,OAAc,IAAI,EAAE,SAAc,EAAE,KAAK,CAAC,EAAG,GAAK,EAAE,OAAS,CAAE,GAAI,EAAE,KAAK,EAAG,EAAG,EAAE,GAAG,KAAM,MAAO,GAE3J,OADI,EAAI,EAAG,GAAG,GAAK,CAAC,EAAG,GAAK,EAAG,EAAE,KAAK,GAC9B,EAAG,QACF,OAAQ,GAAG,EAAI,EAAI,UACnB,GAAG,SAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,KAAM,EAAM,MACjD,GAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,CAAC,EAAG,aACnC,GAAG,EAAK,EAAE,IAAI,IAAI,EAAG,EAAE,KAAK,IAAI,EAAG,iBAEpC,GAAM,EAAI,EAAE,KAAM,IAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,KAAQ,GAAG,KAAO,GAAK,EAAG,KAAO,GAAI,CAAE,EAAI,EAAG,QAAU,CAC3G,GAAI,EAAG,KAAO,GAAM,EAAC,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,KAAO,CACrF,GAAI,EAAG,KAAO,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,KAAO,CACpE,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,CAAE,EAAG,KAAO,CAClE,AAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EACpB,EAAE,KAAK,IAAI,EAAG,SAEtB,EAAK,EAAK,KAAK,EAAS,CAAC,CAC7B,OAAS,EAAP,CAAY,EAAK,CAAC,EAAG,CAAC,EAAG,EAAI,CAAG,QAAE,CAAU,EAAI,EAAI,CAAG,CACzD,GAAI,EAAG,GAAK,EAAG,KAAM,GAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,GAAK,OAAQ,KAAM,EAAK,CACnF,CACJ,EAEA,GAAkB,SAAS,EAAG,EAAG,EAAG,EAAI,CACpC,AAAI,IAAO,QAAW,GAAK,GAC3B,EAAE,GAAM,EAAE,EACd,EAEA,GAAe,SAAU,EAAG,EAAS,CACjC,OAAS,KAAK,GAAG,AAAI,IAAM,WAAa,CAAC,EAAQ,eAAe,CAAC,GAAG,GAAQ,GAAK,EAAE,GACvF,EAEA,GAAW,SAAU,EAAG,CACpB,GAAI,GAAI,MAAO,SAAW,YAAc,OAAO,SAAU,EAAI,GAAK,EAAE,GAAI,EAAI,EAC5E,GAAI,EAAG,MAAO,GAAE,KAAK,CAAC,EACtB,GAAI,GAAK,MAAO,GAAE,QAAW,SAAU,MAAO,CAC1C,KAAM,UAAY,CACd,MAAI,IAAK,GAAK,EAAE,QAAQ,GAAI,QACrB,CAAE,MAAO,GAAK,EAAE,KAAM,KAAM,CAAC,CAAE,CAC1C,CACJ,EACA,KAAM,IAAI,WAAU,EAAI,0BAA4B,iCAAiC,CACzF,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,MAAO,SAAW,YAAc,EAAE,OAAO,UACjD,GAAI,CAAC,EAAG,MAAO,GACf,GAAI,GAAI,EAAE,KAAK,CAAC,EAAG,EAAG,EAAK,CAAC,EAAG,EAC/B,GAAI,CACA,KAAQ,KAAM,QAAU,KAAM,IAAM,CAAE,GAAI,EAAE,KAAK,GAAG,MAAM,EAAG,KAAK,EAAE,KAAK,CAC7E,OACO,EAAP,CAAgB,EAAI,CAAE,MAAO,CAAM,CAAG,QACtC,CACI,GAAI,CACA,AAAI,GAAK,CAAC,EAAE,MAAS,GAAI,EAAE,SAAY,EAAE,KAAK,CAAC,CACnD,QACA,CAAU,GAAI,EAAG,KAAM,GAAE,KAAO,CACpC,CACA,MAAO,EACX,EAEA,GAAW,UAAY,CACnB,OAAS,GAAK,CAAC,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,IAC3C,EAAK,EAAG,OAAO,GAAO,UAAU,EAAE,CAAC,EACvC,MAAO,EACX,EAEA,GAAiB,UAAY,CACzB,OAAS,GAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OAC7E,OAAS,GAAI,MAAM,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,IACzC,OAAS,GAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,MAAO,EACX,EAEA,GAAU,SAAU,EAAG,CACnB,MAAO,gBAAgB,IAAW,MAAK,EAAI,EAAG,MAAQ,GAAI,IAAQ,CAAC,CACvE,EAEA,GAAmB,SAAU,EAAS,EAAY,EAAW,CACzD,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,EAAG,EAAG,EAAI,CAAC,EAC5D,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,EACpH,WAAc,EAAG,CAAE,AAAI,EAAE,IAAI,GAAE,GAAK,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAG,EAAG,CAAE,EAAE,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAI,GAAK,EAAO,EAAG,CAAC,CAAG,CAAC,CAAG,EAAG,CACzI,WAAgB,EAAG,EAAG,CAAE,GAAI,CAAE,EAAK,EAAE,GAAG,CAAC,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,EAAE,GAAG,GAAI,CAAC,CAAG,CAAE,CACjF,WAAc,EAAG,CAAE,EAAE,gBAAiB,IAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAS,CAAM,EAAI,EAAO,EAAE,GAAG,GAAI,CAAC,CAAI,CACxH,WAAiB,EAAO,CAAE,EAAO,OAAQ,CAAK,CAAG,CACjD,WAAgB,EAAO,CAAE,EAAO,QAAS,CAAK,CAAG,CACjD,WAAgB,EAAG,EAAG,CAAE,AAAI,EAAE,CAAC,EAAG,EAAE,MAAM,EAAG,EAAE,QAAQ,EAAO,EAAE,GAAG,GAAI,EAAE,GAAG,EAAE,CAAG,CACrF,EAEA,GAAmB,SAAU,EAAG,CAC5B,GAAI,GAAG,EACP,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,QAAS,SAAU,EAAG,CAAE,KAAM,EAAG,CAAC,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,UAAY,UAAY,CAAE,MAAO,KAAM,EAAG,EAC1I,WAAc,EAAG,EAAG,CAAE,EAAE,GAAK,EAAE,GAAK,SAAU,EAAG,CAAE,MAAQ,GAAI,CAAC,GAAK,CAAE,MAAO,GAAQ,EAAE,GAAG,CAAC,CAAC,EAAG,KAAM,IAAM,QAAS,EAAI,EAAI,EAAE,CAAC,EAAI,CAAG,EAAI,CAAG,CAClJ,EAEA,GAAgB,SAAU,EAAG,CACzB,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAE,OAAO,eAAgB,EACjC,MAAO,GAAI,EAAE,KAAK,CAAC,EAAK,GAAI,MAAO,KAAa,WAAa,GAAS,CAAC,EAAI,EAAE,OAAO,UAAU,EAAG,EAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,GAC9M,WAAc,EAAG,CAAE,EAAE,GAAK,EAAE,IAAM,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAS,EAAQ,CAAE,EAAI,EAAE,GAAG,CAAC,EAAG,EAAO,EAAS,EAAQ,EAAE,KAAM,EAAE,KAAK,CAAG,CAAC,CAAG,CAAG,CAC/J,WAAgB,EAAS,EAAQ,EAAG,EAAG,CAAE,QAAQ,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAG,CAAE,EAAQ,CAAE,MAAO,EAAG,KAAM,CAAE,CAAC,CAAG,EAAG,CAAM,CAAG,CAC/H,EAEA,GAAuB,SAAU,EAAQ,EAAK,CAC1C,MAAI,QAAO,eAAkB,OAAO,eAAe,EAAQ,MAAO,CAAE,MAAO,CAAI,CAAC,EAAY,EAAO,IAAM,EAClG,CACX,EAEA,GAAe,SAAU,EAAK,CAC1B,GAAI,GAAO,EAAI,WAAY,MAAO,GAClC,GAAI,GAAS,CAAC,EACd,GAAI,GAAO,KAAM,OAAS,KAAK,GAAK,AAAI,OAAO,eAAe,KAAK,EAAK,CAAC,GAAG,GAAO,GAAK,EAAI,IAC5F,SAAO,QAAa,EACb,CACX,EAEA,GAAkB,SAAU,EAAK,CAC7B,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,CAAI,CAC5D,EAEA,GAAyB,SAAU,EAAU,EAAY,CACrD,GAAI,CAAC,EAAW,IAAI,CAAQ,EACxB,KAAM,IAAI,WAAU,gDAAgD,EAExE,MAAO,GAAW,IAAI,CAAQ,CAClC,EAEA,GAAyB,SAAU,EAAU,EAAY,EAAO,CAC5D,GAAI,CAAC,EAAW,IAAI,CAAQ,EACxB,KAAM,IAAI,WAAU,gDAAgD,EAExE,SAAW,IAAI,EAAU,CAAK,EACvB,CACX,EAEA,EAAS,YAAa,EAAS,EAC/B,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,aAAc,EAAU,EACjC,EAAS,UAAW,EAAO,EAC3B,EAAS,aAAc,EAAU,EACjC,EAAS,YAAa,EAAS,EAC/B,EAAS,cAAe,EAAW,EACnC,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,WAAY,EAAQ,EAC7B,EAAS,iBAAkB,EAAc,EACzC,EAAS,UAAW,EAAO,EAC3B,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,gBAAiB,EAAa,EACvC,EAAS,uBAAwB,EAAoB,EACrD,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,yBAA0B,EAAsB,EACzD,EAAS,yBAA0B,EAAsB,CAC7D,CAAC,uGCzRD,YAA4B,EAAgB,CAC1C,MAAI,OAAO,IAAS,SACX,EAAK,SAAW,EAGlB,EAAK,aAAe,CAC7B,CANA,GAAA,YAAA,oJCFa,GAAA,aAAoC,CAAE,KAAM,SAAS,EAErD,GAAA,kBAAiE,CAC5E,KAAM,OACN,KAAM,GAAA,cAGK,GAAA,mBAAqB,GAAI,YAAW,CAC/C,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACD,ICxCD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,OAAS,GAAQ,SAAW,OACpC,GAAM,IAAW,AAAC,GAAU,CACxB,GAAM,GAAQ,CAAC,EACf,OAAS,GAAI,EAAG,EAAM,EAAM,OAAQ,EAAI,EAAK,IAAK,CAC9C,GAAM,GAAQ,EAAM,WAAW,CAAC,EAChC,GAAI,EAAQ,IACR,EAAM,KAAK,CAAK,UAEX,EAAQ,KACb,EAAM,KAAM,GAAS,EAAK,IAAa,EAAQ,GAAY,GAAU,UAEhE,EAAI,EAAI,EAAM,QAAW,GAAQ,SAAY,OAAW,GAAM,WAAW,EAAI,CAAC,EAAI,SAAY,MAAQ,CAC3G,GAAM,GAAgB,MAAY,IAAQ,OAAiB,IAAO,GAAM,WAAW,EAAE,CAAC,EAAI,MAC1F,EAAM,KAAM,GAAiB,GAAM,IAAc,GAAiB,GAAM,GAAY,IAAc,GAAiB,EAAK,GAAY,IAAa,EAAgB,GAAY,GAAU,CAC3L,KAEI,GAAM,KAAM,GAAS,GAAM,IAAc,GAAS,EAAK,GAAY,IAAa,EAAQ,GAAY,GAAU,CAEtH,CACA,MAAO,YAAW,KAAK,CAAK,CAChC,EACA,GAAQ,SAAW,GACnB,GAAM,IAAS,AAAC,GAAU,CACtB,GAAI,GAAU,GACd,OAAS,GAAI,EAAG,EAAM,EAAM,OAAQ,EAAI,EAAK,IAAK,CAC9C,GAAM,GAAO,EAAM,GACnB,GAAI,EAAO,IACP,GAAW,OAAO,aAAa,CAAI,UAE9B,KAAc,GAAQ,EAAO,IAAY,CAC9C,GAAM,GAAW,EAAM,EAAE,GACzB,GAAW,OAAO,aAAe,GAAO,KAAY,EAAM,EAAW,EAAS,CAClF,SACS,KAAc,GAAQ,EAAO,IAAa,CAC/C,GAAM,GAAgB,CAAC,EAAM,EAAM,EAAE,GAAI,EAAM,EAAE,GAAI,EAAM,EAAE,EAAE,EACzD,EAAU,IAAM,EAAc,IAAI,AAAC,GAAc,EAAU,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,EACvF,GAAW,mBAAmB,CAAO,CACzC,KAEI,IAAW,OAAO,aAAe,GAAO,KAAW,GAAQ,GAAM,EAAE,GAAK,KAAa,EAAM,EAAM,EAAE,GAAK,EAAS,CAEzH,CACA,MAAO,EACX,EACA,GAAQ,OAAS,KC9CjB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,OAAS,GAAQ,SAAW,OACpC,YAAkB,EAAO,CACrB,MAAO,IAAI,aAAY,EAAE,OAAO,CAAK,CACzC,CACA,GAAQ,SAAW,GACnB,YAAgB,EAAO,CACnB,MAAO,IAAI,aAAY,OAAO,EAAE,OAAO,CAAK,CAChD,CACA,GAAQ,OAAS,KCVjB,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,OAAS,GAAQ,SAAW,OACpC,GAAM,IAAW,KACX,GAAsB,KACtB,GAAW,AAAC,GAAU,MAAO,cAAgB,WAAc,AALjE,GAKoE,GAAoB,UAAU,CAAK,EAAK,AAL5G,GAK+G,GAAS,UAAU,CAAK,EACvI,GAAQ,SAAW,GACnB,GAAM,IAAS,AAAC,GAAU,MAAO,cAAgB,WAAc,AAP/D,GAOkE,GAAoB,QAAQ,CAAK,EAAK,AAPxG,GAO2G,GAAS,QAAQ,CAAK,EACjI,GAAQ,OAAS,KCRjB,qBAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,aAAe,OACvB,GAAM,IAAiB,CAAC,EACxB,aAAwB,CACpB,MAAI,OAAO,QAAW,IACX,OAEF,MAAO,MAAS,IACd,KAEJ,EACX,CACA,GAAQ,aAAe,mGCZvB,GAAA,IAAA,KACA,GAAA,KAEA,GAAA,KAEA,GAAA,KAEA,GAAA,UAAA,CAGE,WAAY,EAAmB,CAC7B,AAAI,EACF,MAAK,UAAY,GAAc,CAAM,EAAE,KAAK,SAAA,EAAO,CACjD,MAAC,GAAA,GAAA,cAAY,EAAgB,SAAS,OAAO,KAC3C,GAAA,kBACA,CAAO,CAFT,CAGC,EAEH,KAAK,UAAU,MAAM,UAAA,CAAO,CAAC,GAE7B,KAAK,UAAY,QAAQ,QACtB,GAAA,GAAA,cAAY,EAAgB,SAAS,OAAO,OAAO,SAAS,CAAC,CAGpE,CAEA,SAAA,UAAA,OAAA,SAAO,EAAkB,CAAzB,GAAA,GAAA,KACE,AAAI,GAAA,GAAA,aAAY,CAAM,GAItB,MAAK,UAAY,KAAK,UAAU,KAAK,SAAA,EAAS,CAC5C,SAAU,QAAU,UAAA,CAClB,EAAK,UAAY,QAAQ,OACvB,GAAI,OAAM,iCAAiC,CAAC,CAEhD,EACA,EAAU,QAAQ,GAAkB,CAAM,CAAC,EAEpC,CACT,CAAC,EACD,KAAK,UAAU,MAAM,UAAA,CAAO,CAAC,EAC/B,EAEA,EAAA,UAAA,OAAA,UAAA,CACE,MAAO,MAAK,UAAU,KACpB,SAAA,EAAS,CACP,MAAA,IAAI,SAAQ,SAAC,EAAS,EAAM,CAC1B,EAAU,QAAU,UAAA,CAClB,EAAO,GAAI,OAAM,mCAAmC,CAAC,CACvD,EACA,EAAU,WAAa,UAAA,CACrB,AAAI,EAAU,QACZ,EAAQ,GAAI,YAAW,EAAU,MAAM,CAAC,EAE1C,EAAO,GAAI,OAAM,mCAAmC,CAAC,CACvD,EAEA,EAAU,OAAM,CAClB,CAAC,CAZD,CAYE,CAER,EACF,CAAA,EAvDA,EAAa,GAAA,OAAA,GAyDb,YAAuB,EAAkB,CACvC,MAAO,IAAI,SAAQ,SAAC,EAAS,EAAM,CACjC,GAAM,GAAgB,GAAA,GAAA,cAAY,EAAgB,SAAS,OAAO,UAChE,MACA,GAAkB,CAAM,EACxB,GAAA,kBACA,GACA,CAAC,MAAM,CAAC,EAGV,EAAa,WAAa,UAAA,CACxB,AAAI,EAAa,QACf,EAAQ,EAAa,MAAM,EAG7B,EAAO,GAAI,OAAM,4CAA4C,CAAC,CAChE,EACA,EAAa,QAAU,UAAA,CACrB,EAAO,GAAI,OAAM,iCAAiC,CAAC,CACrD,CACF,CAAC,CACH,CAEA,YAA2B,EAAgB,CACzC,MAAI,OAAO,IAAS,SACX,GAAA,GAAA,UAAS,CAAI,EAGlB,YAAY,OAAO,CAAI,EAClB,GAAI,YACT,EAAK,OACL,EAAK,WACL,EAAK,WAAa,WAAW,iBAAiB,EAI3C,GAAI,YAAW,CAAI,CAC5B,2GCjGA,GAAA,IAAA,KAGM,GACJ,MAAO,QAAW,KAAe,OAAO,KACpC,SAAC,EAAa,CAAK,MAAA,QAAO,KAAK,EAAO,MAAM,CAAzB,EACnB,GAAA,SAEN,YAAgC,EAAgB,CAE9C,MAAI,aAAgB,YAAmB,EAEnC,MAAO,IAAS,SACX,GAAS,CAAI,EAGlB,YAAY,OAAO,CAAI,EAClB,GAAI,YACT,EAAK,OACL,EAAK,WACL,EAAK,WAAa,WAAW,iBAAiB,EAI3C,GAAI,YAAW,CAAI,CAC5B,CAjBA,GAAA,gBAAA,wGCPA,YAA4B,EAAgB,CAC1C,MAAI,OAAO,IAAS,SACX,EAAK,SAAW,EAGlB,EAAK,aAAe,CAC7B,CANA,GAAA,YAAA,uGCFA,YAA2B,EAAW,CACpC,MAAO,IAAI,YAAW,CACnB,GAAM,aAAe,GACrB,GAAM,WAAe,GACrB,GAAM,QAAe,EACtB,EAAM,IACP,CACH,CAPA,GAAA,WAAA,4GCCA,YAAgC,EAA4B,CAC1D,GAAI,CAAC,YAAY,KAAM,CAGrB,OAFM,GAAe,GAAI,aAAY,EAAc,MAAM,EACrD,EAAU,EACP,EAAU,EAAc,QAC7B,EAAa,GAAW,EAAc,GACtC,GAAW,EAEb,MAAO,GAET,MAAO,aAAY,KAAK,CAAa,CACvC,CAXA,GAAA,gBAAA,4JCDA,GAAA,IAAA,KAAS,OAAA,eAAA,GAAA,kBAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,MAAA,IAAA,eAAe,CAAA,CAAA,EACxB,GAAA,IAAA,KAAS,OAAA,eAAA,GAAA,cAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,MAAA,IAAA,WAAW,CAAA,CAAA,EACpB,GAAA,IAAA,KAAS,OAAA,eAAA,GAAA,aAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,MAAA,IAAA,UAAU,CAAA,CAAA,EACnB,GAAA,IAAA,KAAQ,OAAA,eAAA,GAAA,kBAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,MAAA,IAAA,eAAe,CAAA,CAAA,kGCLvB,GAAA,IAAA,KACA,GAAA,KAKA,GAAA,KAEA,GAAA,UAAA,CAIE,WAAY,EAAmB,CAFvB,KAAA,OAAqB,GAAI,YAAW,CAAC,EAGvC,IAAW,QACb,MAAK,IAAM,GAAI,SAAQ,SAAC,EAAS,EAAM,CACrC,AAAA,GAAA,GAAA,cAAY,EACT,OAAO,OAAO,UACb,MACA,GAAA,GAAA,iBAAgB,CAAM,EACtB,GAAA,kBACA,GACA,CAAC,MAAM,CAAC,EAET,KAAK,EAAS,CAAM,CACzB,CAAC,EACD,KAAK,IAAI,MAAM,UAAA,CAAO,CAAC,EAE3B,CAEA,SAAA,UAAA,OAAA,SAAO,EAAgB,CACrB,GAAI,IAAA,GAAA,aAAY,CAAI,EAIpB,IAAM,GAAS,GAAA,GAAA,iBAAgB,CAAI,EAC7B,EAAa,GAAI,YACrB,KAAK,OAAO,WAAa,EAAO,UAAU,EAE5C,EAAW,IAAI,KAAK,OAAQ,CAAC,EAC7B,EAAW,IAAI,EAAQ,KAAK,OAAO,UAAU,EAC7C,KAAK,OAAS,EAChB,EAEA,EAAA,UAAA,OAAA,UAAA,CAAA,GAAA,GAAA,KACE,MAAI,MAAK,IACA,KAAK,IAAI,KAAK,SAAC,EAAG,CACvB,MAAA,GAAA,GAAA,cAAY,EACT,OAAO,OAAO,KAAK,GAAA,kBAAmB,EAAK,EAAK,MAAM,EACtD,KAAK,SAAC,EAAI,CAAK,MAAA,IAAI,YAAW,CAAI,CAAnB,CAAoB,CAFtC,CAEuC,EAIvC,GAAA,GAAA,aAAY,KAAK,MAAM,EAClB,QAAQ,QAAQ,GAAA,kBAAkB,EAGpC,QAAQ,QAAO,EACnB,KAAK,UAAA,CACJ,MAAA,GAAA,GAAA,cAAY,EAAG,OAAO,OAAO,OAAO,GAAA,aAAc,EAAK,MAAM,CAA7D,CAA8D,EAE/D,KAAK,SAAC,EAAI,CAAK,MAAA,SAAQ,QAAQ,GAAI,YAAW,CAAI,CAAC,CAApC,CAAqC,CACzD,EACF,CAAA,EAtDA,EAAa,GAAA,OAAA,8JCNA,GAAA,WAAqB,GAKrB,GAAA,cAAwB,GAKxB,GAAA,IAAM,GAAI,aAAY,CACjC,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACD,EAKY,GAAA,KAAO,CAClB,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAMW,GAAA,oBAAsB,KAAA,IAAA,EAAK,EAAE,EAAG,qGCjG7C,GAAA,IAAA,KAWA,GAAA,UAAA,CAAA,YAAA,CACU,KAAA,MAAoB,WAAW,KAAK,GAAA,IAAI,EACxC,KAAA,KAAmB,GAAI,YAAW,EAAE,EACpC,KAAA,OAAqB,GAAI,YAAW,EAAE,EACtC,KAAA,aAAuB,EACvB,KAAA,YAAsB,EAK9B,KAAA,SAAoB,EA8ItB,CA5IE,SAAA,UAAA,OAAA,SAAO,EAAgB,CACrB,GAAI,KAAK,SACP,KAAM,IAAI,OAAM,+CAA+C,EAGjE,GAAI,GAAW,EACT,EAAe,EAAI,WAGzB,GAFA,KAAK,aAAe,EAEhB,KAAK,YAAc,EAAI,GAAA,oBACzB,KAAM,IAAI,OAAM,qCAAqC,EAGvD,KAAO,EAAa,GAClB,KAAK,OAAO,KAAK,gBAAkB,EAAK,KACxC,IAEI,KAAK,eAAiB,GAAA,YACxB,MAAK,WAAU,EACf,KAAK,aAAe,EAG1B,EAEA,EAAA,UAAA,OAAA,UAAA,CACE,GAAI,CAAC,KAAK,SAAU,CAClB,GAAM,GAAa,KAAK,YAAc,EAChC,EAAa,GAAI,UACrB,KAAK,OAAO,OACZ,KAAK,OAAO,WACZ,KAAK,OAAO,UAAU,EAGlB,EAAoB,KAAK,aAI/B,GAHA,EAAW,SAAS,KAAK,eAAgB,GAAI,EAGzC,EAAoB,GAAA,YAAc,GAAA,WAAa,EAAG,CACpD,OAAS,GAAI,KAAK,aAAc,EAAI,GAAA,WAAY,IAC9C,EAAW,SAAS,EAAG,CAAC,EAE1B,KAAK,WAAU,EACf,KAAK,aAAe,EAGtB,OAAS,GAAI,KAAK,aAAc,EAAI,GAAA,WAAa,EAAG,IAClD,EAAW,SAAS,EAAG,CAAC,EAE1B,EAAW,UACT,GAAA,WAAa,EACb,KAAK,MAAM,EAAa,UAAW,EACnC,EAAI,EAEN,EAAW,UAAU,GAAA,WAAa,EAAG,CAAU,EAE/C,KAAK,WAAU,EAEf,KAAK,SAAW,GAMlB,OADM,GAAM,GAAI,YAAW,GAAA,aAAa,EAC/B,EAAI,EAAG,EAAI,EAAG,IACrB,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,GAAM,IACtC,EAAI,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,GAAM,IAC1C,EAAI,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,EAAK,IACzC,EAAI,EAAI,EAAI,GAAM,KAAK,MAAM,KAAO,EAAK,IAG3C,MAAO,EACT,EAEQ,EAAA,UAAA,WAAR,UAAA,CAYE,OAXM,GAAoB,KAAlB,EAAM,EAAA,OAAE,EAAK,EAAA,MAEjB,EAAS,EAAM,GACjB,EAAS,EAAM,GACf,EAAS,EAAM,GACf,EAAS,EAAM,GACf,EAAS,EAAM,GACf,EAAS,EAAM,GACf,EAAS,EAAM,GACf,EAAS,EAAM,GAER,EAAI,EAAG,EAAI,GAAA,WAAY,IAAK,CACnC,GAAI,EAAI,GACN,KAAK,KAAK,GACN,GAAO,EAAI,GAAK,MAAS,GACzB,GAAO,EAAI,EAAI,GAAK,MAAS,GAC7B,GAAO,EAAI,EAAI,GAAK,MAAS,EAC9B,EAAO,EAAI,EAAI,GAAK,QAClB,CACL,GAAI,GAAI,KAAK,KAAK,EAAI,GAChB,EACF,KAAM,GAAO,GAAK,IAAS,KAAM,GAAO,GAAK,IAAQ,IAAM,GAE/D,EAAI,KAAK,KAAK,EAAI,IAClB,GAAM,GACF,KAAM,EAAM,GAAK,IAAS,KAAM,GAAO,GAAK,IAAQ,IAAM,EAE9D,KAAK,KAAK,GACN,GAAK,KAAK,KAAK,EAAI,GAAM,GAAO,GAAK,KAAK,KAAK,EAAI,IAAO,GAGhE,GAAM,GACE,OAAW,EAAM,GAAU,IAC7B,KAAW,GAAO,GAAU,IAC5B,KAAW,GAAO,GAAU,IAC5B,GAAS,EAAW,CAAC,EAAS,GAChC,GACE,GAAW,IAAA,IAAI,GAAK,KAAK,KAAK,GAAM,GAAM,GAC9C,EAEI,EACA,MAAW,EAAM,GAAU,IAC3B,KAAW,GAAO,GAAU,IAC5B,KAAW,GAAO,GAAU,KAC5B,GAAS,EAAW,EAAS,EAAW,EAAS,GACrD,EAEF,EAAS,EACT,EAAS,EACT,EAAS,EACT,EAAU,EAAS,EAAM,EACzB,EAAS,EACT,EAAS,EACT,EAAS,EACT,EAAU,EAAK,EAAM,EAGvB,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,EACZ,EAAM,IAAM,CACd,EACF,CAAA,EAxJA,EAAa,GAAA,UAAA,+GCXb,GAAA,KACA,GAAA,KAEA,GAAA,KAEA,GAAA,UAAA,CAKE,WAAY,EAAmB,CAC7B,GALe,KAAA,KAAO,GAAI,IAAA,UAKtB,EAAQ,CACV,KAAK,MAAQ,GAAI,IAAA,UACjB,GAAM,GAAQ,GAAiB,CAAM,EAC/B,EAAQ,GAAI,YAAW,GAAA,UAAU,EACvC,EAAM,IAAI,CAAK,EAEf,OAAS,GAAI,EAAG,EAAI,GAAA,WAAY,IAC9B,EAAM,IAAM,GACZ,EAAM,IAAM,GAGd,KAAK,KAAK,OAAO,CAAK,EACtB,KAAK,MAAM,OAAO,CAAK,EAGvB,OAAS,GAAI,EAAG,EAAI,EAAM,WAAY,IACpC,EAAM,GAAK,EAGjB,CAEA,SAAA,UAAA,OAAA,SAAO,EAAkB,CACvB,GAAI,KAAA,GAAA,aAAY,CAAM,GAAK,KAAK,OAIhC,GAAI,CACF,KAAK,KAAK,OAAO,GAAA,GAAA,iBAAgB,CAAM,CAAC,QACjC,EAAP,CACA,KAAK,MAAQ,EAEjB,EAKA,EAAA,UAAA,WAAA,UAAA,CACE,GAAI,KAAK,MACP,KAAM,MAAK,MAGb,MAAI,MAAK,MACF,MAAK,MAAM,UACd,KAAK,MAAM,OAAO,KAAK,KAAK,OAAM,CAAE,EAG/B,KAAK,MAAM,OAAM,GAGnB,KAAK,KAAK,OAAM,CACzB,EAOM,EAAA,UAAA,OAAN,UAAA,gGACE,MAAA,CAAA,EAAO,KAAK,WAAU,CAAE,OAE5B,CAAA,EAlEA,EAAa,GAAA,OAAA,GAoEb,YAA0B,EAAkB,CAC1C,GAAI,GAAQ,GAAA,GAAA,iBAAgB,CAAM,EAElC,GAAI,EAAM,WAAa,GAAA,WAAY,CACjC,GAAM,GAAa,GAAI,IAAA,UACvB,EAAW,OAAO,CAAK,EACvB,EAAQ,EAAW,OAAM,EAG3B,GAAM,GAAS,GAAI,YAAW,GAAA,UAAU,EACxC,SAAO,IAAI,CAAK,EACT,CACT,6FCrFA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,ICAA,mBAgBA,GAAI,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACJ,AAAC,UAAU,EAAS,CAChB,GAAI,GAAO,MAAO,SAAW,SAAW,OAAS,MAAO,OAAS,SAAW,KAAO,MAAO,OAAS,SAAW,KAAO,CAAC,EACtH,AAAI,MAAO,SAAW,YAAc,OAAO,IACvC,OAAO,QAAS,CAAC,SAAS,EAAG,SAAU,EAAS,CAAE,EAAQ,EAAe,EAAM,EAAe,CAAO,CAAC,CAAC,CAAG,CAAC,EAE1G,AAAI,MAAO,KAAW,UAAY,MAAO,IAAO,SAAY,SAC7D,EAAQ,EAAe,EAAM,EAAe,GAAO,OAAO,CAAC,CAAC,EAG5D,EAAQ,EAAe,CAAI,CAAC,EAEhC,WAAwB,EAAS,EAAU,CACvC,MAAI,KAAY,GACZ,CAAI,MAAO,QAAO,QAAW,WACzB,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAG5D,EAAQ,WAAa,IAGtB,SAAU,EAAI,EAAG,CAAE,MAAO,GAAQ,GAAM,EAAW,EAAS,EAAI,CAAC,EAAI,CAAG,CACnF,CACJ,GACC,SAAU,EAAU,CACjB,GAAI,GAAgB,OAAO,gBACtB,CAAE,UAAW,CAAC,CAAE,WAAa,QAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,EAAG,CAAE,OAAS,KAAK,GAAG,AAAI,EAAE,eAAe,CAAC,GAAG,GAAE,GAAK,EAAE,GAAI,EAE7E,GAAY,SAAU,EAAG,EAAG,CACxB,EAAc,EAAG,CAAC,EAClB,YAAc,CAAE,KAAK,YAAc,CAAG,CACtC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,EAAK,GAAG,UAAY,EAAE,UAAW,GAAI,GACnF,EAEA,GAAW,OAAO,QAAU,SAAU,EAAG,CACrC,OAAS,GAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAAK,CACjD,EAAI,UAAU,GACd,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,GAC9E,CACA,MAAO,EACX,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,CAAC,EACT,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAK,EAAE,QAAQ,CAAC,EAAI,GAC9E,GAAE,GAAK,EAAE,IACb,GAAI,GAAK,MAAQ,MAAO,QAAO,uBAA0B,WACrD,OAAS,GAAI,EAAG,EAAI,OAAO,sBAAsB,CAAC,EAAG,EAAI,EAAE,OAAQ,IAC/D,AAAI,EAAE,QAAQ,EAAE,EAAE,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAK,EAAG,EAAE,EAAE,GACzE,GAAE,EAAE,IAAM,EAAE,EAAE,KAE1B,MAAO,EACX,EAEA,GAAa,SAAU,EAAY,EAAQ,EAAK,EAAM,CAClD,GAAI,GAAI,UAAU,OAAQ,EAAI,EAAI,EAAI,EAAS,IAAS,KAAO,EAAO,OAAO,yBAAyB,EAAQ,CAAG,EAAI,EAAM,EAC3H,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,EAAI,QAAQ,SAAS,EAAY,EAAQ,EAAK,CAAI,MACxH,QAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAAK,AAAI,GAAI,EAAW,KAAI,GAAK,GAAI,EAAI,EAAE,CAAC,EAAI,EAAI,EAAI,EAAE,EAAQ,EAAK,CAAC,EAAI,EAAE,EAAQ,CAAG,IAAM,GAChJ,MAAO,GAAI,GAAK,GAAK,OAAO,eAAe,EAAQ,EAAK,CAAC,EAAG,CAChE,EAEA,GAAU,SAAU,EAAY,EAAW,CACvC,MAAO,UAAU,EAAQ,EAAK,CAAE,EAAU,EAAQ,EAAK,CAAU,CAAG,CACxE,EAEA,GAAa,SAAU,EAAa,EAAe,CAC/C,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,MAAO,SAAQ,SAAS,EAAa,CAAa,CACjI,EAEA,GAAY,SAAU,EAAS,EAAY,EAAG,EAAW,CACrD,WAAe,EAAO,CAAE,MAAO,aAAiB,GAAI,EAAQ,GAAI,GAAE,SAAU,EAAS,CAAE,EAAQ,CAAK,CAAG,CAAC,CAAG,CAC3G,MAAO,IAAK,IAAM,GAAI,UAAU,SAAU,EAAS,EAAQ,CACvD,WAAmB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,KAAK,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC1F,WAAkB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,MAAS,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC7F,WAAc,EAAQ,CAAE,EAAO,KAAO,EAAQ,EAAO,KAAK,EAAI,EAAM,EAAO,KAAK,EAAE,KAAK,EAAW,CAAQ,CAAG,CAC7G,EAAM,GAAY,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EAEA,GAAc,SAAU,EAAS,EAAM,CACnC,GAAI,GAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAI,EAAE,GAAK,EAAG,KAAM,GAAE,GAAI,MAAO,GAAE,EAAI,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAC/G,MAAO,GAAI,CAAE,KAAM,EAAK,CAAC,EAAG,MAAS,EAAK,CAAC,EAAG,OAAU,EAAK,CAAC,CAAE,EAAG,MAAO,SAAW,YAAe,GAAE,OAAO,UAAY,UAAW,CAAE,MAAO,KAAM,GAAI,EACvJ,WAAc,EAAG,CAAE,MAAO,UAAU,EAAG,CAAE,MAAO,GAAK,CAAC,EAAG,CAAC,CAAC,CAAG,CAAG,CACjE,WAAc,EAAI,CACd,GAAI,EAAG,KAAM,IAAI,WAAU,iCAAiC,EAC5D,KAAO,GAAG,GAAI,CACV,GAAI,EAAI,EAAG,GAAM,GAAI,EAAG,GAAK,EAAI,EAAE,OAAY,EAAG,GAAK,EAAE,OAAc,IAAI,EAAE,SAAc,EAAE,KAAK,CAAC,EAAG,GAAK,EAAE,OAAS,CAAE,GAAI,EAAE,KAAK,EAAG,EAAG,EAAE,GAAG,KAAM,MAAO,GAE3J,OADI,EAAI,EAAG,GAAG,GAAK,CAAC,EAAG,GAAK,EAAG,EAAE,KAAK,GAC9B,EAAG,QACF,OAAQ,GAAG,EAAI,EAAI,UACnB,GAAG,SAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,KAAM,EAAM,MACjD,GAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,CAAC,EAAG,aACnC,GAAG,EAAK,EAAE,IAAI,IAAI,EAAG,EAAE,KAAK,IAAI,EAAG,iBAEpC,GAAM,EAAI,EAAE,KAAM,IAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,KAAQ,GAAG,KAAO,GAAK,EAAG,KAAO,GAAI,CAAE,EAAI,EAAG,QAAU,CAC3G,GAAI,EAAG,KAAO,GAAM,EAAC,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,KAAO,CACrF,GAAI,EAAG,KAAO,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,KAAO,CACpE,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,CAAE,EAAG,KAAO,CAClE,AAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EACpB,EAAE,KAAK,IAAI,EAAG,SAEtB,EAAK,EAAK,KAAK,EAAS,CAAC,CAC7B,OAAS,EAAP,CAAY,EAAK,CAAC,EAAG,CAAC,EAAG,EAAI,CAAG,QAAE,CAAU,EAAI,EAAI,CAAG,CACzD,GAAI,EAAG,GAAK,EAAG,KAAM,GAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,GAAK,OAAQ,KAAM,EAAK,CACnF,CACJ,EAEA,GAAkB,SAAS,EAAG,EAAG,EAAG,EAAI,CACpC,AAAI,IAAO,QAAW,GAAK,GAC3B,EAAE,GAAM,EAAE,EACd,EAEA,GAAe,SAAU,EAAG,EAAS,CACjC,OAAS,KAAK,GAAG,AAAI,IAAM,WAAa,CAAC,EAAQ,eAAe,CAAC,GAAG,GAAQ,GAAK,EAAE,GACvF,EAEA,GAAW,SAAU,EAAG,CACpB,GAAI,GAAI,MAAO,SAAW,YAAc,OAAO,SAAU,EAAI,GAAK,EAAE,GAAI,EAAI,EAC5E,GAAI,EAAG,MAAO,GAAE,KAAK,CAAC,EACtB,GAAI,GAAK,MAAO,GAAE,QAAW,SAAU,MAAO,CAC1C,KAAM,UAAY,CACd,MAAI,IAAK,GAAK,EAAE,QAAQ,GAAI,QACrB,CAAE,MAAO,GAAK,EAAE,KAAM,KAAM,CAAC,CAAE,CAC1C,CACJ,EACA,KAAM,IAAI,WAAU,EAAI,0BAA4B,iCAAiC,CACzF,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,MAAO,SAAW,YAAc,EAAE,OAAO,UACjD,GAAI,CAAC,EAAG,MAAO,GACf,GAAI,GAAI,EAAE,KAAK,CAAC,EAAG,EAAG,EAAK,CAAC,EAAG,EAC/B,GAAI,CACA,KAAQ,KAAM,QAAU,KAAM,IAAM,CAAE,GAAI,EAAE,KAAK,GAAG,MAAM,EAAG,KAAK,EAAE,KAAK,CAC7E,OACO,EAAP,CAAgB,EAAI,CAAE,MAAO,CAAM,CAAG,QACtC,CACI,GAAI,CACA,AAAI,GAAK,CAAC,EAAE,MAAS,GAAI,EAAE,SAAY,EAAE,KAAK,CAAC,CACnD,QACA,CAAU,GAAI,EAAG,KAAM,GAAE,KAAO,CACpC,CACA,MAAO,EACX,EAEA,GAAW,UAAY,CACnB,OAAS,GAAK,CAAC,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,IAC3C,EAAK,EAAG,OAAO,GAAO,UAAU,EAAE,CAAC,EACvC,MAAO,EACX,EAEA,GAAiB,UAAY,CACzB,OAAS,GAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OAC7E,OAAS,GAAI,MAAM,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,IACzC,OAAS,GAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,MAAO,EACX,EAEA,GAAU,SAAU,EAAG,CACnB,MAAO,gBAAgB,IAAW,MAAK,EAAI,EAAG,MAAQ,GAAI,IAAQ,CAAC,CACvE,EAEA,GAAmB,SAAU,EAAS,EAAY,EAAW,CACzD,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,EAAG,EAAG,EAAI,CAAC,EAC5D,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,EACpH,WAAc,EAAG,CAAE,AAAI,EAAE,IAAI,GAAE,GAAK,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAG,EAAG,CAAE,EAAE,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAI,GAAK,EAAO,EAAG,CAAC,CAAG,CAAC,CAAG,EAAG,CACzI,WAAgB,EAAG,EAAG,CAAE,GAAI,CAAE,EAAK,EAAE,GAAG,CAAC,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,EAAE,GAAG,GAAI,CAAC,CAAG,CAAE,CACjF,WAAc,EAAG,CAAE,EAAE,gBAAiB,IAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAS,CAAM,EAAI,EAAO,EAAE,GAAG,GAAI,CAAC,CAAI,CACxH,WAAiB,EAAO,CAAE,EAAO,OAAQ,CAAK,CAAG,CACjD,WAAgB,EAAO,CAAE,EAAO,QAAS,CAAK,CAAG,CACjD,WAAgB,EAAG,EAAG,CAAE,AAAI,EAAE,CAAC,EAAG,EAAE,MAAM,EAAG,EAAE,QAAQ,EAAO,EAAE,GAAG,GAAI,EAAE,GAAG,EAAE,CAAG,CACrF,EAEA,GAAmB,SAAU,EAAG,CAC5B,GAAI,GAAG,EACP,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,QAAS,SAAU,EAAG,CAAE,KAAM,EAAG,CAAC,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,UAAY,UAAY,CAAE,MAAO,KAAM,EAAG,EAC1I,WAAc,EAAG,EAAG,CAAE,EAAE,GAAK,EAAE,GAAK,SAAU,EAAG,CAAE,MAAQ,GAAI,CAAC,GAAK,CAAE,MAAO,GAAQ,EAAE,GAAG,CAAC,CAAC,EAAG,KAAM,IAAM,QAAS,EAAI,EAAI,EAAE,CAAC,EAAI,CAAG,EAAI,CAAG,CAClJ,EAEA,GAAgB,SAAU,EAAG,CACzB,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAE,OAAO,eAAgB,EACjC,MAAO,GAAI,EAAE,KAAK,CAAC,EAAK,GAAI,MAAO,KAAa,WAAa,GAAS,CAAC,EAAI,EAAE,OAAO,UAAU,EAAG,EAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,GAC9M,WAAc,EAAG,CAAE,EAAE,GAAK,EAAE,IAAM,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAS,EAAQ,CAAE,EAAI,EAAE,GAAG,CAAC,EAAG,EAAO,EAAS,EAAQ,EAAE,KAAM,EAAE,KAAK,CAAG,CAAC,CAAG,CAAG,CAC/J,WAAgB,EAAS,EAAQ,EAAG,EAAG,CAAE,QAAQ,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAG,CAAE,EAAQ,CAAE,MAAO,EAAG,KAAM,CAAE,CAAC,CAAG,EAAG,CAAM,CAAG,CAC/H,EAEA,GAAuB,SAAU,EAAQ,EAAK,CAC1C,MAAI,QAAO,eAAkB,OAAO,eAAe,EAAQ,MAAO,CAAE,MAAO,CAAI,CAAC,EAAY,EAAO,IAAM,EAClG,CACX,EAEA,GAAe,SAAU,EAAK,CAC1B,GAAI,GAAO,EAAI,WAAY,MAAO,GAClC,GAAI,GAAS,CAAC,EACd,GAAI,GAAO,KAAM,OAAS,KAAK,GAAK,AAAI,OAAO,eAAe,KAAK,EAAK,CAAC,GAAG,GAAO,GAAK,EAAI,IAC5F,SAAO,QAAa,EACb,CACX,EAEA,GAAkB,SAAU,EAAK,CAC7B,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,CAAI,CAC5D,EAEA,GAAyB,SAAU,EAAU,EAAY,CACrD,GAAI,CAAC,EAAW,IAAI,CAAQ,EACxB,KAAM,IAAI,WAAU,gDAAgD,EAExE,MAAO,GAAW,IAAI,CAAQ,CAClC,EAEA,GAAyB,SAAU,EAAU,EAAY,EAAO,CAC5D,GAAI,CAAC,EAAW,IAAI,CAAQ,EACxB,KAAM,IAAI,WAAU,gDAAgD,EAExE,SAAW,IAAI,EAAU,CAAK,EACvB,CACX,EAEA,EAAS,YAAa,EAAS,EAC/B,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,aAAc,EAAU,EACjC,EAAS,UAAW,EAAO,EAC3B,EAAS,aAAc,EAAU,EACjC,EAAS,YAAa,EAAS,EAC/B,EAAS,cAAe,EAAW,EACnC,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,WAAY,EAAQ,EAC7B,EAAS,iBAAkB,EAAc,EACzC,EAAS,UAAW,EAAO,EAC3B,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,gBAAiB,EAAa,EACvC,EAAS,uBAAwB,EAAoB,EACrD,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,yBAA0B,EAAsB,EACzD,EAAS,yBAA0B,EAAsB,CAC7D,CAAC,gMCjRK,GAAiD,CACrD,UACA,SACA,UACA,YACA,cACA,YACA,OACA,UAGF,YAAkC,EAAc,CAC9C,GACE,GAAqB,CAAM,GAC3B,MAAO,GAAO,OAAO,QAAW,SAChC,CACQ,GAAA,GAAW,EAAO,OAAM,OAEhC,MAAO,IAAqB,CAAM,EAGpC,MAAO,EACT,CAXA,GAAA,kBAAA,GAaA,YAAqC,EAAc,CACjD,GAAI,MAAO,IAAW,UAAY,MAAO,GAAO,QAAW,SAAU,CAC3D,GAAA,GAAoB,EAAO,OAAM,gBAEzC,MAAO,OAAO,IAAoB,WAGpC,MAAO,EACT,CARA,GAAA,qBAAA,GAUA,YAAqC,EAAoB,CACvD,MACE,IACA,GAAoB,MAClB,SAAA,EAAU,CAAI,MAAA,OAAO,GAAO,IAAgB,UAA9B,CAAwC,CAG5D,CAPA,GAAA,qBAAA,GASA,YAA0C,EAAoB,iIAC5D,GAAI,CAAC,GAAqB,CAAM,EAAG,MAAA,CAAA,EAAO,EAAK,gDAEjC,CAAA,EAAM,EAAO,YACvB,CAAE,KAAM,UAAW,OAAQ,GAAG,EAC9B,GACA,CAAC,SAAS,CAAC,CACZ,SAJK,SAAM,EAAA,KAAA,EAKY,CAAA,EAAM,EAAO,QACnC,CACE,KAAM,UACN,GAAI,GAAI,YAAW,MAAM,EAAE,CAAC,EAC5B,eAAgB,GAAI,YAAW,MAAM,EAAE,CAAC,EACxC,UAAW,KAEb,EACA,GAAI,YAAW,CAAC,CAAC,CAClB,SATK,SAAkB,EAAA,KAAA,EAUxB,CAAA,EAAO,EAAgB,aAAe,EAAE,2BAExC,CAAA,EAAO,EAAK,wBApBhB,GAAA,oBAAA,8FCrDA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,ICAA,mBAgBA,GAAI,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACJ,AAAC,UAAU,EAAS,CAChB,GAAI,GAAO,MAAO,SAAW,SAAW,OAAS,MAAO,OAAS,SAAW,KAAO,MAAO,OAAS,SAAW,KAAO,CAAC,EACtH,AAAI,MAAO,SAAW,YAAc,OAAO,IACvC,OAAO,QAAS,CAAC,SAAS,EAAG,SAAU,EAAS,CAAE,EAAQ,EAAe,EAAM,EAAe,CAAO,CAAC,CAAC,CAAG,CAAC,EAE1G,AAAI,MAAO,KAAW,UAAY,MAAO,IAAO,SAAY,SAC7D,EAAQ,EAAe,EAAM,EAAe,GAAO,OAAO,CAAC,CAAC,EAG5D,EAAQ,EAAe,CAAI,CAAC,EAEhC,WAAwB,EAAS,EAAU,CACvC,MAAI,KAAY,GACZ,CAAI,MAAO,QAAO,QAAW,WACzB,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAG5D,EAAQ,WAAa,IAGtB,SAAU,EAAI,EAAG,CAAE,MAAO,GAAQ,GAAM,EAAW,EAAS,EAAI,CAAC,EAAI,CAAG,CACnF,CACJ,GACC,SAAU,EAAU,CACjB,GAAI,GAAgB,OAAO,gBACtB,CAAE,UAAW,CAAC,CAAE,WAAa,QAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,EAAG,CAAE,OAAS,KAAK,GAAG,AAAI,EAAE,eAAe,CAAC,GAAG,GAAE,GAAK,EAAE,GAAI,EAE7E,GAAY,SAAU,EAAG,EAAG,CACxB,EAAc,EAAG,CAAC,EAClB,YAAc,CAAE,KAAK,YAAc,CAAG,CACtC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,EAAK,GAAG,UAAY,EAAE,UAAW,GAAI,GACnF,EAEA,GAAW,OAAO,QAAU,SAAU,EAAG,CACrC,OAAS,GAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAAK,CACjD,EAAI,UAAU,GACd,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,GAC9E,CACA,MAAO,EACX,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,CAAC,EACT,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAK,EAAE,QAAQ,CAAC,EAAI,GAC9E,GAAE,GAAK,EAAE,IACb,GAAI,GAAK,MAAQ,MAAO,QAAO,uBAA0B,WACrD,OAAS,GAAI,EAAG,EAAI,OAAO,sBAAsB,CAAC,EAAG,EAAI,EAAE,OAAQ,IAC/D,AAAI,EAAE,QAAQ,EAAE,EAAE,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAK,EAAG,EAAE,EAAE,GACzE,GAAE,EAAE,IAAM,EAAE,EAAE,KAE1B,MAAO,EACX,EAEA,GAAa,SAAU,EAAY,EAAQ,EAAK,EAAM,CAClD,GAAI,GAAI,UAAU,OAAQ,EAAI,EAAI,EAAI,EAAS,IAAS,KAAO,EAAO,OAAO,yBAAyB,EAAQ,CAAG,EAAI,EAAM,EAC3H,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,EAAI,QAAQ,SAAS,EAAY,EAAQ,EAAK,CAAI,MACxH,QAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,IAAK,AAAI,GAAI,EAAW,KAAI,GAAK,GAAI,EAAI,EAAE,CAAC,EAAI,EAAI,EAAI,EAAE,EAAQ,EAAK,CAAC,EAAI,EAAE,EAAQ,CAAG,IAAM,GAChJ,MAAO,GAAI,GAAK,GAAK,OAAO,eAAe,EAAQ,EAAK,CAAC,EAAG,CAChE,EAEA,GAAU,SAAU,EAAY,EAAW,CACvC,MAAO,UAAU,EAAQ,EAAK,CAAE,EAAU,EAAQ,EAAK,CAAU,CAAG,CACxE,EAEA,GAAa,SAAU,EAAa,EAAe,CAC/C,GAAI,MAAO,UAAY,UAAY,MAAO,SAAQ,UAAa,WAAY,MAAO,SAAQ,SAAS,EAAa,CAAa,CACjI,EAEA,GAAY,SAAU,EAAS,EAAY,EAAG,EAAW,CACrD,WAAe,EAAO,CAAE,MAAO,aAAiB,GAAI,EAAQ,GAAI,GAAE,SAAU,EAAS,CAAE,EAAQ,CAAK,CAAG,CAAC,CAAG,CAC3G,MAAO,IAAK,IAAM,GAAI,UAAU,SAAU,EAAS,EAAQ,CACvD,WAAmB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,KAAK,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC1F,WAAkB,EAAO,CAAE,GAAI,CAAE,EAAK,EAAU,MAAS,CAAK,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,CAAC,CAAG,CAAE,CAC7F,WAAc,EAAQ,CAAE,EAAO,KAAO,EAAQ,EAAO,KAAK,EAAI,EAAM,EAAO,KAAK,EAAE,KAAK,EAAW,CAAQ,CAAG,CAC7G,EAAM,GAAY,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EAEA,GAAc,SAAU,EAAS,EAAM,CACnC,GAAI,GAAI,CAAE,MAAO,EAAG,KAAM,UAAW,CAAE,GAAI,EAAE,GAAK,EAAG,KAAM,GAAE,GAAI,MAAO,GAAE,EAAI,EAAG,KAAM,CAAC,EAAG,IAAK,CAAC,CAAE,EAAG,EAAG,EAAG,EAAG,EAC/G,MAAO,GAAI,CAAE,KAAM,EAAK,CAAC,EAAG,MAAS,EAAK,CAAC,EAAG,OAAU,EAAK,CAAC,CAAE,EAAG,MAAO,SAAW,YAAe,GAAE,OAAO,UAAY,UAAW,CAAE,MAAO,KAAM,GAAI,EACvJ,WAAc,EAAG,CAAE,MAAO,UAAU,EAAG,CAAE,MAAO,GAAK,CAAC,EAAG,CAAC,CAAC,CAAG,CAAG,CACjE,WAAc,EAAI,CACd,GAAI,EAAG,KAAM,IAAI,WAAU,iCAAiC,EAC5D,KAAO,GAAG,GAAI,CACV,GAAI,EAAI,EAAG,GAAM,GAAI,EAAG,GAAK,EAAI,EAAE,OAAY,EAAG,GAAK,EAAE,OAAc,IAAI,EAAE,SAAc,EAAE,KAAK,CAAC,EAAG,GAAK,EAAE,OAAS,CAAE,GAAI,EAAE,KAAK,EAAG,EAAG,EAAE,GAAG,KAAM,MAAO,GAE3J,OADI,EAAI,EAAG,GAAG,GAAK,CAAC,EAAG,GAAK,EAAG,EAAE,KAAK,GAC9B,EAAG,QACF,OAAQ,GAAG,EAAI,EAAI,UACnB,GAAG,SAAE,QAAgB,CAAE,MAAO,EAAG,GAAI,KAAM,EAAM,MACjD,GAAG,EAAE,QAAS,EAAI,EAAG,GAAI,EAAK,CAAC,CAAC,EAAG,aACnC,GAAG,EAAK,EAAE,IAAI,IAAI,EAAG,EAAE,KAAK,IAAI,EAAG,iBAEpC,GAAM,EAAI,EAAE,KAAM,IAAI,EAAE,OAAS,GAAK,EAAE,EAAE,OAAS,KAAQ,GAAG,KAAO,GAAK,EAAG,KAAO,GAAI,CAAE,EAAI,EAAG,QAAU,CAC3G,GAAI,EAAG,KAAO,GAAM,EAAC,GAAM,EAAG,GAAK,EAAE,IAAM,EAAG,GAAK,EAAE,IAAM,CAAE,EAAE,MAAQ,EAAG,GAAI,KAAO,CACrF,GAAI,EAAG,KAAO,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAI,EAAI,KAAO,CACpE,GAAI,GAAK,EAAE,MAAQ,EAAE,GAAI,CAAE,EAAE,MAAQ,EAAE,GAAI,EAAE,IAAI,KAAK,CAAE,EAAG,KAAO,CAClE,AAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EACpB,EAAE,KAAK,IAAI,EAAG,SAEtB,EAAK,EAAK,KAAK,EAAS,CAAC,CAC7B,OAAS,EAAP,CAAY,EAAK,CAAC,EAAG,CAAC,EAAG,EAAI,CAAG,QAAE,CAAU,EAAI,EAAI,CAAG,CACzD,GAAI,EAAG,GAAK,EAAG,KAAM,GAAG,GAAI,MAAO,CAAE,MAAO,EAAG,GAAK,EAAG,GAAK,OAAQ,KAAM,EAAK,CACnF,CACJ,EAEA,GAAkB,SAAS,EAAG,EAAG,EAAG,EAAI,CACpC,AAAI,IAAO,QAAW,GAAK,GAC3B,EAAE,GAAM,EAAE,EACd,EAEA,GAAe,SAAU,EAAG,EAAS,CACjC,OAAS,KAAK,GAAG,AAAI,IAAM,WAAa,CAAC,EAAQ,eAAe,CAAC,GAAG,GAAQ,GAAK,EAAE,GACvF,EAEA,GAAW,SAAU,EAAG,CACpB,GAAI,GAAI,MAAO,SAAW,YAAc,OAAO,SAAU,EAAI,GAAK,EAAE,GAAI,EAAI,EAC5E,GAAI,EAAG,MAAO,GAAE,KAAK,CAAC,EACtB,GAAI,GAAK,MAAO,GAAE,QAAW,SAAU,MAAO,CAC1C,KAAM,UAAY,CACd,MAAI,IAAK,GAAK,EAAE,QAAQ,GAAI,QACrB,CAAE,MAAO,GAAK,EAAE,KAAM,KAAM,CAAC,CAAE,CAC1C,CACJ,EACA,KAAM,IAAI,WAAU,EAAI,0BAA4B,iCAAiC,CACzF,EAEA,GAAS,SAAU,EAAG,EAAG,CACrB,GAAI,GAAI,MAAO,SAAW,YAAc,EAAE,OAAO,UACjD,GAAI,CAAC,EAAG,MAAO,GACf,GAAI,GAAI,EAAE,KAAK,CAAC,EAAG,EAAG,EAAK,CAAC,EAAG,EAC/B,GAAI,CACA,KAAQ,KAAM,QAAU,KAAM,IAAM,CAAE,GAAI,EAAE,KAAK,GAAG,MAAM,EAAG,KAAK,EAAE,KAAK,CAC7E,OACO,EAAP,CAAgB,EAAI,CAAE,MAAO,CAAM,CAAG,QACtC,CACI,GAAI,CACA,AAAI,GAAK,CAAC,EAAE,MAAS,GAAI,EAAE,SAAY,EAAE,KAAK,CAAC,CACnD,QACA,CAAU,GAAI,EAAG,KAAM,GAAE,KAAO,CACpC,CACA,MAAO,EACX,EAEA,GAAW,UAAY,CACnB,OAAS,GAAK,CAAC,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,IAC3C,EAAK,EAAG,OAAO,GAAO,UAAU,EAAE,CAAC,EACvC,MAAO,EACX,EAEA,GAAiB,UAAY,CACzB,OAAS,GAAI,EAAG,EAAI,EAAG,EAAK,UAAU,OAAQ,EAAI,EAAI,IAAK,GAAK,UAAU,GAAG,OAC7E,OAAS,GAAI,MAAM,CAAC,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAI,IACzC,OAAS,GAAI,UAAU,GAAI,EAAI,EAAG,EAAK,EAAE,OAAQ,EAAI,EAAI,IAAK,IAC1D,EAAE,GAAK,EAAE,GACjB,MAAO,EACX,EAEA,GAAU,SAAU,EAAG,CACnB,MAAO,gBAAgB,IAAW,MAAK,EAAI,EAAG,MAAQ,GAAI,IAAQ,CAAC,CACvE,EAEA,GAAmB,SAAU,EAAS,EAAY,EAAW,CACzD,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAU,MAAM,EAAS,GAAc,CAAC,CAAC,EAAG,EAAG,EAAI,CAAC,EAC5D,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,EACpH,WAAc,EAAG,CAAE,AAAI,EAAE,IAAI,GAAE,GAAK,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAG,EAAG,CAAE,EAAE,KAAK,CAAC,EAAG,EAAG,EAAG,CAAC,CAAC,EAAI,GAAK,EAAO,EAAG,CAAC,CAAG,CAAC,CAAG,EAAG,CACzI,WAAgB,EAAG,EAAG,CAAE,GAAI,CAAE,EAAK,EAAE,GAAG,CAAC,CAAC,CAAG,OAAS,EAAP,CAAY,EAAO,EAAE,GAAG,GAAI,CAAC,CAAG,CAAE,CACjF,WAAc,EAAG,CAAE,EAAE,gBAAiB,IAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAS,CAAM,EAAI,EAAO,EAAE,GAAG,GAAI,CAAC,CAAI,CACxH,WAAiB,EAAO,CAAE,EAAO,OAAQ,CAAK,CAAG,CACjD,WAAgB,EAAO,CAAE,EAAO,QAAS,CAAK,CAAG,CACjD,WAAgB,EAAG,EAAG,CAAE,AAAI,EAAE,CAAC,EAAG,EAAE,MAAM,EAAG,EAAE,QAAQ,EAAO,EAAE,GAAG,GAAI,EAAE,GAAG,EAAE,CAAG,CACrF,EAEA,GAAmB,SAAU,EAAG,CAC5B,GAAI,GAAG,EACP,MAAO,GAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,QAAS,SAAU,EAAG,CAAE,KAAM,EAAG,CAAC,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,UAAY,UAAY,CAAE,MAAO,KAAM,EAAG,EAC1I,WAAc,EAAG,EAAG,CAAE,EAAE,GAAK,EAAE,GAAK,SAAU,EAAG,CAAE,MAAQ,GAAI,CAAC,GAAK,CAAE,MAAO,GAAQ,EAAE,GAAG,CAAC,CAAC,EAAG,KAAM,IAAM,QAAS,EAAI,EAAI,EAAE,CAAC,EAAI,CAAG,EAAI,CAAG,CAClJ,EAEA,GAAgB,SAAU,EAAG,CACzB,GAAI,CAAC,OAAO,cAAe,KAAM,IAAI,WAAU,sCAAsC,EACrF,GAAI,GAAI,EAAE,OAAO,eAAgB,EACjC,MAAO,GAAI,EAAE,KAAK,CAAC,EAAK,GAAI,MAAO,KAAa,WAAa,GAAS,CAAC,EAAI,EAAE,OAAO,UAAU,EAAG,EAAI,CAAC,EAAG,EAAK,MAAM,EAAG,EAAK,OAAO,EAAG,EAAK,QAAQ,EAAG,EAAE,OAAO,eAAiB,UAAY,CAAE,MAAO,KAAM,EAAG,GAC9M,WAAc,EAAG,CAAE,EAAE,GAAK,EAAE,IAAM,SAAU,EAAG,CAAE,MAAO,IAAI,SAAQ,SAAU,EAAS,EAAQ,CAAE,EAAI,EAAE,GAAG,CAAC,EAAG,EAAO,EAAS,EAAQ,EAAE,KAAM,EAAE,KAAK,CAAG,CAAC,CAAG,CAAG,CAC/J,WAAgB,EAAS,EAAQ,EAAG,EAAG,CAAE,QAAQ,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAG,CAAE,EAAQ,CAAE,MAAO,EAAG,KAAM,CAAE,CAAC,CAAG,EAAG,CAAM,CAAG,CAC/H,EAEA,GAAuB,SAAU,EAAQ,EAAK,CAC1C,MAAI,QAAO,eAAkB,OAAO,eAAe,EAAQ,MAAO,CAAE,MAAO,CAAI,CAAC,EAAY,EAAO,IAAM,EAClG,CACX,EAEA,GAAe,SAAU,EAAK,CAC1B,GAAI,GAAO,EAAI,WAAY,MAAO,GAClC,GAAI,GAAS,CAAC,EACd,GAAI,GAAO,KAAM,OAAS,KAAK,GAAK,AAAI,OAAO,eAAe,KAAK,EAAK,CAAC,GAAG,GAAO,GAAK,EAAI,IAC5F,SAAO,QAAa,EACb,CACX,EAEA,GAAkB,SAAU,EAAK,CAC7B,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,CAAI,CAC5D,EAEA,GAAyB,SAAU,EAAU,EAAY,CACrD,GAAI,CAAC,EAAW,IAAI,CAAQ,EACxB,KAAM,IAAI,WAAU,gDAAgD,EAExE,MAAO,GAAW,IAAI,CAAQ,CAClC,EAEA,GAAyB,SAAU,EAAU,EAAY,EAAO,CAC5D,GAAI,CAAC,EAAW,IAAI,CAAQ,EACxB,KAAM,IAAI,WAAU,gDAAgD,EAExE,SAAW,IAAI,EAAU,CAAK,EACvB,CACX,EAEA,EAAS,YAAa,EAAS,EAC/B,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,aAAc,EAAU,EACjC,EAAS,UAAW,EAAO,EAC3B,EAAS,aAAc,EAAU,EACjC,EAAS,YAAa,EAAS,EAC/B,EAAS,cAAe,EAAW,EACnC,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,WAAY,EAAQ,EAC7B,EAAS,SAAU,EAAM,EACzB,EAAS,WAAY,EAAQ,EAC7B,EAAS,iBAAkB,EAAc,EACzC,EAAS,UAAW,EAAO,EAC3B,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,mBAAoB,EAAgB,EAC7C,EAAS,gBAAiB,EAAa,EACvC,EAAS,uBAAwB,EAAoB,EACrD,EAAS,eAAgB,EAAY,EACrC,EAAS,kBAAmB,EAAe,EAC3C,EAAS,yBAA0B,EAAsB,EACzD,EAAS,yBAA0B,EAAsB,CAC7D,CAAC,IC3RD,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,sGCW5D,GAAM,IAAmD,CACvD,UACA,SACA,UACA,YACA,cACA,YACA,OACA,UAoBF,YAA8B,EAAc,CAC1C,MAAO,wBAA0B,IAAU,YAAc,EAC3D,CAMA,YAA2B,EAAc,CACvC,GAAI,GAAqB,CAAM,GAAK,EAAO,SAAS,SAAW,OAAW,CAClE,GAAA,GAA8B,EAAO,SAAnC,EAAe,EAAA,gBAAE,EAAM,EAAA,OAC/B,MAAO,IACJ,IAAc,SAAA,EAAU,CAAI,MAAA,GAAO,EAAP,CAAkB,EAC9C,OAAO,CAAe,EACtB,MAAM,SAAA,EAAM,CAAI,MAAA,OAAO,IAAW,UAAlB,CAA4B,EAGjD,MAAO,EACT,CAVA,GAAA,WAAA,8FChDA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,EACA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,EACA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,EACA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,EACA,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,kGCJA,GAAA,IAAA,KACA,GAAA,KACA,GAAA,KAEA,GAAA,KACA,GAAA,KACA,GAAA,KAEA,GAAA,UAAA,CAGE,WAAY,EAAmB,CAC7B,AAAI,GAAA,GAAA,mBAAkB,GAAA,GAAA,cAAY,CAAE,EAClC,KAAK,KAAO,GAAI,IAAA,OAAgB,CAAM,EACjC,AAAI,GAAA,GAAA,YAAW,GAAA,GAAA,cAAY,CAAE,EAClC,KAAK,KAAO,GAAI,IAAA,OAAW,CAAM,EAEjC,KAAK,KAAO,GAAI,IAAA,OAAS,CAAM,CAEnC,CAEA,SAAA,UAAA,OAAA,SAAO,EAAkB,EAAsC,CAC7D,KAAK,KAAK,OAAO,EAAM,CAAQ,CACjC,EAEA,EAAA,UAAA,OAAA,UAAA,CACE,MAAO,MAAK,KAAK,OAAM,CACzB,EACF,CAAA,EApBA,EAAa,GAAA,OAAA,sICRb,AAAA,GAAA,GAAA,cAAA,KAAA,EAAA,EACA,GAAA,IAAA,KAAS,OAAA,eAAA,GAAA,aAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,MAAA,IAAA,MAAM,CAAA,CAAA,EACf,GAAA,IAAA,KAAS,OAAA,eAAA,GAAA,kBAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,MAAA,IAAA,MAAM,CAAA,CAAA,ICFf,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,YAAiB,EAAK,CAA6B,MAAI,OAAO,SAAW,YAAc,MAAO,QAAO,UAAa,SAAY,GAAU,SAAiB,EAAK,CAAE,MAAO,OAAO,EAAK,EAAY,GAAU,SAAiB,EAAK,CAAE,MAAO,IAAO,MAAO,SAAW,YAAc,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,MAAO,EAAK,EAAY,GAAQ,CAAG,CAAG,CAEzX,YAAsB,EAAO,CAC3B,GAAI,GAAW,MAAO,IAAU,UAAY,YAAiB,QAE7D,GAAI,CAAC,EAAU,CACb,GAAI,GAAc,GAAQ,CAAK,EAE/B,KAAI,KAAU,KAAM,EAAc,OAAgB,IAAgB,UAAU,GAAc,EAAM,YAAY,MACtG,GAAI,WAAU,oCAAoC,OAAO,CAAW,CAAC,CAC7E,CACF,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UCrBjC,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,aAAiB,CACf,GAAI,GAAM,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EAC3E,EAAW,UAAU,OAAS,EAAI,UAAU,GAAK,OAErD,OAAS,KAAO,GACd,AAAI,MAAO,GAAI,GAAS,KACtB,GAAI,GAAO,EAAS,IAIxB,MAAO,EACT,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UCrBjC,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,GAAI,IAAgB,GAAuB,IAA8B,EAEzE,YAAgC,EAAK,CAAE,MAAO,IAAO,EAAI,WAAa,EAAM,CAAE,QAAS,CAAI,CAAG,CAE9F,YAAiB,EAAK,CAA6B,MAAI,OAAO,SAAW,YAAc,MAAO,QAAO,UAAa,SAAY,GAAU,SAAiB,EAAK,CAAE,MAAO,OAAO,EAAK,EAAY,GAAU,SAAiB,EAAK,CAAE,MAAO,IAAO,MAAO,SAAW,YAAc,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,MAAO,EAAK,EAAY,GAAQ,CAAG,CAAG,CAGzX,YAAsB,EAAK,EAAS,CAClC,AAAC,AAfH,GAeM,GAAc,SAAS,CAAG,EAC9B,GAAI,GACA,EAEJ,AAAI,GAAQ,CAAO,IAAM,SACvB,GAAM,EAAQ,KAAO,EACrB,EAAM,EAAQ,KAGd,GAAM,UAAU,GAChB,EAAM,UAAU,IAGlB,GAAI,GAAM,UAAU,CAAG,EAAE,MAAM,OAAO,EAAE,OAAS,EACjD,MAAO,IAAO,GAAQ,OAAO,GAAQ,KAAe,GAAO,EAC7D,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UCjCjC,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,GAAI,IAAgB,GAAuB,IAA8B,EAErE,GAAS,GAAuB,IAAuB,EAE3D,YAAgC,EAAK,CAAE,MAAO,IAAO,EAAI,WAAa,EAAM,CAAE,QAAS,CAAI,CAAG,CAE9F,GAAI,IAAuB,CACzB,YAAa,GACb,kBAAmB,GACnB,mBAAoB,GACpB,kBAAmB,GACnB,eAAgB,EAClB,EAEA,YAAgB,EAAK,EAAS,CAC5B,AAAC,AAtBH,GAsBM,GAAc,SAAS,CAAG,EAC9B,EAAW,AAvBb,GAuBgB,GAAO,SAAS,EAAS,EAAoB,EAGvD,EAAQ,oBAAsB,EAAI,EAAI,OAAS,KAAO,KACxD,GAAM,EAAI,UAAU,EAAG,EAAI,OAAS,CAAC,GAKnC,EAAQ,iBAAmB,IAAQ,EAAI,QAAQ,IAAI,IAAM,GAC3D,GAAM,EAAI,UAAU,CAAC,GAGvB,GAAI,GAAQ,EAAI,MAAM,GAAG,EACrB,EAAM,EAAM,EAAM,OAAS,GAmB/B,MAjBI,GAAQ,aAEN,GAAM,OAAS,GAIf,CAAC,qFAAqF,KAAK,CAAG,GAK9F,KAAK,KAAK,CAAG,IAMf,CAAC,EAAQ,mBAAqB,QAAQ,KAAK,CAAG,EACzC,GAGF,EAAM,MAAM,SAAU,EAAM,CAmBjC,MAlBI,IAAK,OAAS,IAId,CAAC,8BAA8B,KAAK,CAAI,GAKxC,kBAAkB,KAAK,CAAI,GAK3B,QAAQ,KAAK,CAAI,GAIjB,CAAC,EAAQ,mBAAqB,IAAI,KAAK,CAAI,EAKjD,CAAC,CACH,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UCxFjC,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,GAAI,IAAgB,GAAuB,IAA8B,EAEzE,YAAgC,EAAK,CAAE,MAAO,IAAO,EAAI,WAAa,EAAM,CAAE,QAAS,CAAI,CAAG,CA+B9F,GAAI,IAAoB,uDACpB,GAAoB,IAAI,OAAO,GAAmB,SAAS,EAAE,OAAO,EAAiB,EACrF,GAAoB,GAAI,QAAO,IAAI,OAAO,GAAmB,GAAG,CAAC,EACjE,GAAoB,uBACpB,GAAoB,GAAI,QAAO,KAAO,MAAM,OAAO,GAAmB,UAAU,EAAE,OAAO,GAAmB,MAAM,EAAI,MAAM,OAAO,GAAmB,UAAU,EAAE,OAAO,GAAmB,IAAI,EAAE,OAAO,GAAmB,MAAM,EAAI,MAAM,OAAO,GAAmB,WAAW,EAAE,OAAO,GAAmB,KAAK,EAAE,OAAO,GAAmB,YAAY,EAAI,MAAM,OAAO,GAAmB,YAAY,EAAE,OAAO,GAAmB,SAAS,EAAE,OAAO,GAAmB,KAAK,EAAE,OAAO,GAAmB,YAAY,EAAI,MAAM,OAAO,GAAmB,YAAY,EAAE,OAAO,GAAmB,SAAS,EAAE,OAAO,GAAmB,KAAK,EAAE,OAAO,GAAmB,YAAY,EAAI,MAAM,OAAO,GAAmB,YAAY,EAAE,OAAO,GAAmB,SAAS,EAAE,OAAO,GAAmB,KAAK,EAAE,OAAO,GAAmB,YAAY,EAAI,MAAM,OAAO,GAAmB,YAAY,EAAE,OAAO,GAAmB,SAAS,EAAE,OAAO,GAAmB,KAAK,EAAE,OAAO,GAAmB,YAAY,EAAI,YAAY,OAAO,GAAmB,SAAS,EAAE,OAAO,GAAmB,OAAO,EAAE,OAAO,GAAmB,YAAY,EAAI,0BAA0B,EAElnC,YAAc,EAAK,CACjB,GAAI,GAAU,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,GAIlF,GAHC,AAhDH,GAgDM,GAAc,SAAS,CAAG,EAC9B,EAAU,OAAO,CAAO,EAEpB,CAAC,EACH,MAAO,IAAK,EAAK,CAAC,GAAK,GAAK,EAAK,CAAC,EAGpC,GAAI,IAAY,IAAK,CACnB,GAAI,CAAC,GAAkB,KAAK,CAAG,EAC7B,MAAO,GAGT,GAAI,GAAQ,EAAI,MAAM,GAAG,EAAE,KAAK,SAAU,EAAG,EAAG,CAC9C,MAAO,GAAI,CACb,CAAC,EACD,MAAO,GAAM,IAAM,GACrB,CAEA,MAAI,KAAY,IACP,CAAC,CAAC,GAAkB,KAAK,CAAG,EAG9B,EACT,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UC1EjC,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,GAAI,IAAgB,GAAuB,IAA8B,EAErE,GAAS,GAAuB,IAAuB,EAEvD,GAAgB,GAAuB,IAAyB,EAEhE,GAAU,GAAuB,IAAmB,EAEpD,GAAQ,GAAuB,IAAiB,EAEpD,YAAgC,EAAK,CAAE,MAAO,IAAO,EAAI,WAAa,EAAM,CAAE,QAAS,CAAI,CAAG,CAE9F,GAAI,IAAwB,CAC1B,mBAAoB,GACpB,qBAAsB,GACtB,sBAAuB,GACvB,YAAa,GACb,kBAAmB,GACnB,kBAAmB,GACnB,eAAgB,CAAC,CACnB,EAKI,GAAmB,iCACnB,GAAgB,yCAChB,GAAgB,aAChB,GAAkB,kGAClB,GAAoB,gFACpB,GAAsB,gLACtB,GAAwB,IAU5B,YAA6B,EAAc,CACzC,GAAI,GAA8B,EAAa,QAAQ,WAAY,IAAI,EAEvE,GAAI,CAAC,EAA4B,KAAK,EACpC,MAAO,GAIT,GAAI,GAAmB,WAAW,KAAK,CAA2B,EAElE,GAAI,EAAkB,CAGpB,GAAI,IAAgC,EAClC,MAAO,GAIT,GAAI,GAA4B,EAA4B,MAAM,GAAG,EAAE,SAAW,EAA4B,MAAM,KAAK,EAAE,OAE3H,GAAI,CAAC,EACH,MAAO,EAEX,CAEA,MAAO,EACT,CAEA,YAAiB,EAAK,EAAS,CAI7B,GAHC,AA7EH,GA6EM,GAAc,SAAS,CAAG,EAC9B,EAAW,AA9Eb,GA8EgB,GAAO,SAAS,EAAS,EAAqB,EAExD,EAAQ,sBAAwB,EAAQ,mBAAoB,CAC9D,GAAI,GAAgB,EAAI,MAAM,EAAgB,EAE9C,GAAI,EAAe,CACjB,GAAI,GAAe,EAAc,GAYjC,GATA,EAAM,EAAI,QAAQ,EAAc,EAAE,EAAE,QAAQ,WAAY,EAAE,EAKtD,EAAa,SAAS,GAAG,GAC3B,GAAe,EAAa,OAAO,EAAG,EAAa,OAAS,CAAC,GAG3D,CAAC,GAAoB,CAAY,EACnC,MAAO,EAEX,SAAW,EAAQ,qBACjB,MAAO,EAEX,CAEA,GAAI,CAAC,EAAQ,mBAAqB,EAAI,OAAS,GAC7C,MAAO,GAGT,GAAI,GAAQ,EAAI,MAAM,GAAG,EACrB,EAAS,EAAM,IAAI,EACnB,EAAe,EAAO,YAAY,EAEtC,GAAI,EAAQ,eAAe,SAAS,CAAY,EAC9C,MAAO,GAGT,GAAI,GAAO,EAAM,KAAK,GAAG,EAEzB,GAAI,EAAQ,4BAA+B,KAAiB,aAAe,IAAiB,kBAAmB,CAQ7G,EAAO,EAAK,YAAY,EAExB,GAAI,GAAW,EAAK,MAAM,GAAG,EAAE,GAE/B,GAAI,CAAE,AAlIV,GAkIa,GAAc,SAAS,EAAS,QAAQ,MAAO,EAAE,EAAG,CAC3D,IAAK,EACL,IAAK,EACP,CAAC,EACC,MAAO,GAKT,OAFI,GAAc,EAAS,MAAM,GAAG,EAE3B,EAAI,EAAG,EAAI,EAAY,OAAQ,IACtC,GAAI,CAAC,GAAc,KAAK,EAAY,EAAE,EACpC,MAAO,EAGb,CAEA,GAAI,EAAQ,oBAAsB,IAAU,EAAE,AAlJhD,GAkJmD,GAAc,SAAS,EAAM,CAC5E,IAAK,EACP,CAAC,GAAK,CAAE,AApJV,GAoJa,GAAc,SAAS,EAAQ,CACxC,IAAK,GACP,CAAC,GACC,MAAO,GAGT,GAAI,CAAE,AA1JR,GA0JW,GAAQ,SAAS,EAAQ,CAChC,YAAa,EAAQ,WACvB,CAAC,EAAG,CACF,GAAI,CAAC,EAAQ,gBACX,MAAO,GAGT,GAAI,CAAE,AAjKV,GAiKa,GAAM,SAAS,CAAM,EAAG,CAC/B,GAAI,CAAC,EAAO,WAAW,GAAG,GAAK,CAAC,EAAO,SAAS,GAAG,EACjD,MAAO,GAGT,GAAI,GAAkB,EAAO,OAAO,EAAG,EAAO,OAAS,CAAC,EAExD,GAAI,EAAgB,SAAW,GAAK,CAAE,AAxK5C,GAwK+C,GAAM,SAAS,CAAe,EACrE,MAAO,EAEX,CACF,CAEA,GAAI,EAAK,KAAO,IACd,SAAO,EAAK,MAAM,EAAG,EAAK,OAAS,CAAC,EAC7B,EAAQ,sBAAwB,GAAoB,KAAK,CAAI,EAAI,GAAgB,KAAK,CAAI,EAMnG,OAHI,GAAU,EAAQ,sBAAwB,GAAoB,GAC9D,EAAa,EAAK,MAAM,GAAG,EAEtB,EAAK,EAAG,EAAK,EAAW,OAAQ,IACvC,GAAI,CAAC,EAAQ,KAAK,EAAW,EAAG,EAC9B,MAAO,GAIX,MAAI,IAAQ,mBACN,EAAK,OAAO,GAAI,QAAO,IAAI,OAAO,EAAQ,kBAAmB,IAAI,EAAG,GAAG,CAAC,IAAM,GAItF,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UCpMjC,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAElB,GAAI,IAAgB,GAAuB,IAA8B,EAErE,GAAU,GAAuB,IAAmB,EAEpD,GAAQ,GAAuB,IAAiB,EAEhD,GAAS,GAAuB,IAAuB,EAE3D,YAAgC,EAAK,CAAE,MAAO,IAAO,EAAI,WAAa,EAAM,CAAE,QAAS,CAAI,CAAG,CAE9F,YAAwB,EAAK,EAAG,CAAE,MAAO,IAAgB,CAAG,GAAK,GAAsB,EAAK,CAAC,GAAK,GAA4B,EAAK,CAAC,GAAK,GAAiB,CAAG,CAE7J,aAA4B,CAAE,KAAM,IAAI,WAAU;AAAA,mFAA2I,CAAG,CAEhM,YAAqC,EAAG,EAAQ,CAAE,GAAI,EAAC,EAAW,IAAI,MAAO,IAAM,SAAU,MAAO,IAAkB,EAAG,CAAM,EAAG,GAAI,GAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzD,IAAM,UAAY,EAAE,aAAa,GAAI,EAAE,YAAY,MAAU,IAAM,OAAS,IAAM,MAAO,MAAO,OAAM,KAAK,CAAC,EAAG,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,MAAO,IAAkB,EAAG,CAAM,EAAG,CAE/Z,YAA2B,EAAK,EAAK,CAAE,AAAI,IAAO,MAAQ,EAAM,EAAI,SAAQ,GAAM,EAAI,QAAQ,OAAS,GAAI,EAAG,EAAO,GAAI,OAAM,CAAG,EAAG,EAAI,EAAK,IAAO,EAAK,GAAK,EAAI,GAAM,MAAO,EAAM,CAEtL,YAA+B,EAAK,EAAG,CAAE,GAAI,QAAO,QAAW,KAAe,CAAE,QAAO,WAAY,QAAO,CAAG,IAAY,IAAI,GAAO,CAAC,EAAO,EAAK,GAAU,EAAK,GAAW,EAAK,OAAW,GAAI,CAAE,OAAS,GAAK,EAAI,OAAO,UAAU,EAAG,EAAI,CAAE,GAAM,GAAK,EAAG,KAAK,GAAG,OAAoB,GAAK,KAAK,EAAG,KAAK,EAAO,KAAK,EAAK,SAAW,IAA3D,EAAK,GAA6B,CAAqC,OAAS,EAAP,CAAc,EAAK,GAAM,EAAK,CAAK,QAAE,CAAU,GAAI,CAAE,AAAI,CAAC,GAAM,EAAG,QAAa,MAAM,EAAG,OAAU,CAAG,QAAE,CAAU,GAAI,EAAI,KAAM,EAAI,CAAE,CAAE,MAAO,GAAM,CAExe,YAAyB,EAAK,CAAE,GAAI,MAAM,QAAQ,CAAG,EAAG,MAAO,EAAK,CAcpE,GAAI,IAAsB,CACxB,UAAW,CAAC,OAAQ,QAAS,KAAK,EAClC,YAAa,GACb,iBAAkB,GAClB,aAAc,GACd,aAAc,GACd,uBAAwB,GACxB,kBAAmB,GACnB,mBAAoB,GACpB,6BAA8B,GAC9B,gBAAiB,GACjB,uBAAwB,GACxB,gBAAiB,EACnB,EACI,GAAe,+BAEnB,YAAkB,EAAK,CACrB,MAAO,QAAO,UAAU,SAAS,KAAK,CAAG,IAAM,iBACjD,CAEA,YAAmB,EAAM,EAAS,CAChC,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CACvC,GAAI,GAAQ,EAAQ,GAEpB,GAAI,IAAS,GAAS,GAAS,CAAK,GAAK,EAAM,KAAK,CAAI,EACtD,MAAO,EAEX,CAEA,MAAO,EACT,CAEA,YAAe,EAAK,EAAS,CAqB3B,GApBC,AA1EH,GA0EM,GAAc,SAAS,CAAG,EAE1B,CAAC,GAAO,SAAS,KAAK,CAAG,GAIzB,EAAI,QAAQ,SAAS,IAAM,GAI/B,GAAW,AApFb,GAoFgB,GAAO,SAAS,EAAS,EAAmB,EAEtD,EAAQ,iBAAmB,EAAI,QAAU,OAIzC,CAAC,EAAQ,iBAAmB,EAAI,SAAS,GAAG,GAI5C,CAAC,EAAQ,wBAA2B,GAAI,SAAS,GAAG,GAAK,EAAI,SAAS,GAAG,GAC3E,MAAO,GAGT,GAAI,GAAU,EAAM,EAAM,EAAU,EAAM,EAAU,EAAO,EAO3D,GANA,EAAQ,EAAI,MAAM,GAAG,EACrB,EAAM,EAAM,MAAM,EAClB,EAAQ,EAAI,MAAM,GAAG,EACrB,EAAM,EAAM,MAAM,EAClB,EAAQ,EAAI,MAAM,KAAK,EAEnB,EAAM,OAAS,GAGjB,GAFA,EAAW,EAAM,MAAM,EAAE,YAAY,EAEjC,EAAQ,wBAA0B,EAAQ,UAAU,QAAQ,CAAQ,IAAM,GAC5E,MAAO,OAEJ,IAAI,EAAQ,iBACjB,MAAO,GACF,GAAI,EAAI,OAAO,EAAG,CAAC,IAAM,KAAM,CACpC,GAAI,CAAC,EAAQ,6BACX,MAAO,GAGT,EAAM,GAAK,EAAI,OAAO,CAAC,CACzB,EAIA,GAFA,EAAM,EAAM,KAAK,KAAK,EAElB,IAAQ,GACV,MAAO,GAMT,GAHA,EAAQ,EAAI,MAAM,GAAG,EACrB,EAAM,EAAM,MAAM,EAEd,IAAQ,IAAM,CAAC,EAAQ,aACzB,MAAO,GAKT,GAFA,EAAQ,EAAI,MAAM,GAAG,EAEjB,EAAM,OAAS,EAAG,CAWpB,GAVI,EAAQ,eAIR,EAAM,KAAO,IAIjB,GAAO,EAAM,MAAM,EAEf,EAAK,QAAQ,GAAG,GAAK,GAAK,EAAK,MAAM,GAAG,EAAE,OAAS,GACrD,MAAO,GAGT,GAAI,GAAc,EAAK,MAAM,GAAG,EAC5B,EAAe,GAAe,EAAa,CAAC,EAC5C,EAAO,EAAa,GACpB,EAAW,EAAa,GAE5B,GAAI,IAAS,IAAM,IAAa,GAC9B,MAAO,EAEX,CAEA,EAAW,EAAM,KAAK,GAAG,EACzB,EAAW,KACX,EAAO,KACP,GAAI,GAAa,EAAS,MAAM,EAAY,EAe5C,GAbA,AAAI,EACF,GAAO,GACP,EAAO,EAAW,GAClB,EAAW,EAAW,IAAM,MAE5B,GAAQ,EAAS,MAAM,GAAG,EAC1B,EAAO,EAAM,MAAM,EAEf,EAAM,QACR,GAAW,EAAM,KAAK,GAAG,IAIzB,IAAa,MAAQ,EAAS,OAAS,GAGzC,GAFA,EAAO,SAAS,EAAU,EAAE,EAExB,CAAC,WAAW,KAAK,CAAQ,GAAK,GAAQ,GAAK,EAAO,MACpD,MAAO,WAEA,EAAQ,aACjB,MAAO,GAGT,MAAI,GAAQ,eACH,GAAU,EAAM,EAAQ,cAAc,EAG3C,GAAE,AAjMR,GAiMW,GAAM,SAAS,CAAI,GAAK,CAAE,AAjMrC,GAiMwC,GAAQ,SAAS,EAAM,CAAO,GAAM,EAAC,GAAQ,CAAE,AAjMvF,GAiM0F,GAAM,SAAS,EAAM,CAAC,IAI9G,GAAO,GAAQ,EAEX,EAAQ,gBAAkB,GAAU,EAAM,EAAQ,cAAc,GAKtE,CAEA,GAAO,QAAU,GAAQ,QACzB,GAAO,QAAQ,QAAU,GAAQ,UC/MjC,gCAMA,GAAM,IAAU,KACV,GAAQ,KACR,GAAO,KAEb,YAAgB,EAAW,EAAS,CAClC,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,CAAO,CAE3B,CAEA,GAAM,IAAQ,CACZ,KAAM,QACN,OAAQ,AAAC,GAAM,EAAE,SAAS,EAC1B,SAAU,SAAS,EAAG,CACpB,GAAO,GAAQ,CAAC,EAAG,0BAA0B,CAC/C,CACF,EAEM,GAAY,CAChB,KAAM,YACN,OAAQ,AAAC,GAAM,EAAE,SAAS,EAC1B,SAAU,SAAS,EAAG,CACpB,GAAO,GAAK,CAAC,EAAG,uBAAuB,CACzC,CACF,EAEM,GAAM,CACV,KAAM,MACN,OAAQ,AAAC,GAAM,EAAE,SAAS,EAC1B,SAAU,SAAS,EAAG,CACpB,GAAO,GAAM,EAAG,CAAC,YAAa,EAAK,CAAC,EAAG,eAAe,CACxD,CACF,EAEA,GAAO,QAAU,CACf,MAAO,GACP,UAAW,GACX,IAAK,EACP,IC5CA,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,2BACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,YAAgB,CACZ,aAAc,CAEV,GAAI,CADqB,YAAW,QAAQ,aAExC,KAAM,IAAI,OAAM,+CAA+C,EAEnE,KAAK,SAAW,OACpB,CACA,cAAc,EAAQ,CAClB,MAAQ,CAAC,CAAC,EAAO,WACb,CAAC,CAAC,EAAO,UAAU,YAAY,MAC/B,YAAkB,SAC1B,CACA,cAAc,EAAQ,CAClB,GAAM,GAAW,KAAK,SAAS,YAAY,uBAAwB,CAAM,EACnE,EAAY,KAAK,SAAS,YAAY,mBAAoB,CAAM,EACtE,MAAO,IAAY,CACvB,CACA,UAAU,EAAQ,EAAc,CAC5B,MAAO,MAAK,SAAS,YAAY,cAAe,EAAQ,CAAY,CACxE,CACA,0BAA0B,EAAQ,EAAc,CAC5C,MAAO,MAAK,SAAS,YAAY,qBAAsB,EAAQ,CAAY,CAC/E,CACA,0BAA0B,EAAW,EAAQ,EAAc,CACvD,MAAO,MAAK,SAAS,eAAe,qBAAsB,EAAW,EAAQ,CAAY,CAC7F,CACA,uBAAuB,EAAW,EAAQ,CACtC,MAAO,MAAK,SAAS,eAAe,mBAAoB,EAAW,CAAM,CAC7E,CACA,uBAAuB,EAAQ,CAC3B,MAAO,MAAK,SAAS,YAAY,mBAAoB,CAAM,GAAK,IACpE,CACA,oBAAoB,EAAQ,EAAc,CACtC,GAAI,GAAQ,KAAK,mBAAmB,CAAM,EAC1C,MAAI,GAAM,SAAW,GACjB,MAAK,SAAS,eAAe,uBAAwB,CAAC,EAAG,EAAO,WAAW,EAC3E,EAAQ,KAAK,mBAAmB,CAAM,GAEnC,EAAM,KAAK,CAAY,CAClC,CACA,mBAAmB,EAAQ,CACvB,MAAQ,MAAK,SAAS,YAAY,uBAAwB,EAAO,WAAW,GAAK,CAAC,CACtF,CACJ,EACA,GAAQ,QAAU,GAAI,MC/CtB,2BACA,GAAI,IAAmB,IAAQ,GAAK,iBAAoB,SAAU,EAAK,CACnE,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,CAAI,CAC5D,EACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,SAAW,GAAQ,OAAS,OACpC,GAAM,IAAc,GAAgB,IAAsB,EAC1D,YAAgB,EAAO,CAAC,EAAG,CACvB,MAAO,AAAC,IAAgB,CACpB,GAAY,QAAQ,uBAAuB,EAAM,CAAW,CAChE,CACJ,CACA,GAAQ,OAAS,GACjB,YAAkB,EAAW,CACzB,MAAO,CAAC,EAAQ,IAAiB,CAC7B,GAAI,MAAO,IAAc,UACrB,MAAO,GAAU,OAAW,IAAa,CACzC,GAAM,GAAS,GAAY,QAAQ,UAAU,EAAQ,CAAY,EACjE,AAAI,GACA,GAAU,OAAS,EAE3B,CACA,GAAY,QAAQ,0BAA0B,EAAW,EAAQ,CAAY,EAC7E,GAAY,QAAQ,oBAAoB,EAAQ,CAAY,CAChE,CACJ,CACA,GAAQ,SAAW,KC1BnB,gCAEA,GAAI,IAAO,QAAQ,QACf,GAAK,QAAQ,MACb,GAAO,QAAQ,QAEnB,YAAmB,EAAK,CAKpB,GAHK,AADe,IAAQ,EAAI,YAAY,GAAK,IAAQ,EAAI,YAAY,GAErE,GAAM,EAAI,YAAY,GAEtB,EAAI,QAAQ,GAAG,IAAM,IAAM,EAAI,QAAQ,GAAG,IAAM,GAChD,MAAO,GAEN,CACD,GAAI,GAAY,GACZ,EAAe,GACb,EAAiB,EAAI,MAAM,KAAK,EACtC,OAAS,GAAI,EAAiB,EAAe,GAAG,OAAS,EAAG,EAAI,EAAI,OAAQ,IAAK,CAC7E,GAAI,GAAM,EAAI,OAAO,CAAC,EACtB,AAAI,GACA,GAAe,GACf,EAAM,EAAI,YAAY,GAE1B,AAAI,IAAM,GAAM,KAAQ,KAAO,IAAQ,KACnC,EAAe,GAEV,IAAQ,KAAO,IAAQ,KAC5B,IAAa,EAErB,CACA,MAAO,EACX,CACJ,CACA,YAAoB,EAAK,EAAY,CACjC,GAAM,GAAY,EAAI,YAAY,EAClC,EAAa,GAAc,IAC3B,GAAI,GAAe,GACnB,OAAS,GAAI,EAAG,EAAI,EAAI,OAAQ,IAAK,CACjC,GAAM,GAAW,EAAU,OAAO,CAAC,EAC7B,EAAY,EAAI,OAAO,CAAC,EAC9B,AAAI,IAAa,GAAa,EAAI,EAC9B,GAAgB,GAAG,IAAa,EAAU,OAAO,CAAC,IAGlD,GAAgB,CAExB,CACA,MAAO,EACX,CACA,YAAyB,EAAG,CACxB,MAAI,IAAM,KACC,GACP,MAAO,IAAM,UAEb,iBAAiB,KAAK,CAAC,EAChB,GACP,SAAS,KAAK,CAAC,EACR,GACJ,4CAA4C,KAAK,CAAC,CAC7D,CAEA,YAA2B,EAAW,CAClC,GAAI,MAAM,QAAQ,CAAS,EACvB,MAAO,GAAU,IAAI,GAAK,MAAO,IAAM,SAAW,EAAI,GAAK,CAAC,EAEhE,EAAY,EAAU,KAAK,EAC3B,GAAI,GAAI,EACJ,EAAQ,KACR,EAAI,KACJ,EAAU,KACR,EAAO,CAAC,EACd,OAAS,GAAK,EAAG,EAAK,EAAU,OAAQ,IAAM,CAG1C,GAFA,EAAQ,EACR,EAAI,EAAU,OAAO,CAAE,EACnB,IAAM,KAAO,CAAC,EAAS,CACvB,AAAM,IAAU,KACZ,IAEJ,QACJ,CACA,AAAI,IAAM,EACN,EAAU,KAEJ,KAAM,KAAO,IAAM,MAAQ,CAAC,GAClC,GAAU,GAET,EAAK,IACN,GAAK,GAAK,IACd,EAAK,IAAM,CACf,CACA,MAAO,EACX,CAEA,GAAI,IACJ,AAAC,UAAU,EAAyB,CAChC,EAAwB,QAAa,UACrC,EAAwB,OAAY,SACpC,EAAwB,OAAY,SACpC,EAAwB,MAAW,OACvC,GAAG,IAA4B,IAA0B,CAAC,EAAE,EAE5D,GAAI,IACJ,QAAkB,CACd,YAAY,EAAQ,CAChB,GAAQ,CACZ,CACA,MAAM,EAAW,EAAS,CACtB,GAAM,GAAO,OAAO,OAAO,CACvB,MAAO,OACP,MAAO,OACP,QAAS,OACT,OAAQ,OACR,cAAe,OACf,cAAe,OACf,OAAQ,OACR,MAAO,OACP,QAAS,OACT,UAAW,OACX,KAAM,OACN,UAAW,OACX,OAAQ,OACR,OAAQ,OACR,GAAI,OACJ,IAAK,MACT,EAAG,CAAO,EACJ,EAAO,GAAkB,CAAS,EAClC,EAAU,GAAe,OAAO,OAAO,OAAO,OAAO,IAAI,EAAG,EAAK,KAAK,CAAC,EACvE,EAAgB,OAAO,OAAO,CAChC,mBAAoB,GACpB,uBAAwB,GACxB,iBAAkB,GAClB,eAAgB,GAChB,4BAA6B,GAC7B,2BAA4B,GAC5B,gBAAiB,GACjB,qBAAsB,GACtB,qBAAsB,GACtB,kBAAmB,MACnB,gBAAiB,GACjB,2BAA4B,GAC5B,aAAc,GACd,sBAAuB,GACvB,sBAAuB,GACvB,gBAAiB,GACjB,eAAgB,GAChB,0BAA2B,EAC/B,EAAG,EAAK,aAAa,EACf,EAAW,OAAO,OAAO,OAAO,OAAO,IAAI,EAAG,EAAK,OAAO,EAC1D,EAAgB,EAAK,eAAiB,CAAC,EACvC,EAAY,EAAK,UACjB,EAAiB,EAAc,cAC/B,EAAe,EAAiB,KAAO,IACvC,EAAa,OAAO,OAAO,IAAI,EAC/B,EAAY,OAAO,OAAO,IAAI,EAC9B,EAAK,EAAK,IAAM,GAAM,OACtB,EAAQ,CACV,QAAS,OAAO,OAAO,IAAI,EAC3B,OAAQ,OAAO,OAAO,IAAI,EAC1B,MAAO,OAAO,OAAO,IAAI,EACzB,QAAS,OAAO,OAAO,IAAI,EAC3B,QAAS,OAAO,OAAO,IAAI,EAC3B,OAAQ,OAAO,OAAO,IAAI,EAC1B,UAAW,OAAO,OAAO,IAAI,EAC7B,QAAS,OAAO,OAAO,IAAI,EAC3B,MAAO,OAAO,OAAO,IAAI,EACzB,UAAW,OAAO,OAAO,IAAI,EAC7B,KAAM,CAAC,CACX,EACM,EAAW,kCACX,EAAiB,GAAI,QAAO,MAAQ,EAAc,mBAAqB,MAAM,EACnF,CAAC,EAAE,OAAO,EAAK,OAAS,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CAC/D,GAAM,GAAM,MAAO,IAAQ,SAAW,EAAI,IAAM,EAC1C,EAAa,OAAO,KAAK,CAAG,EAAE,IAAI,SAAU,EAAK,CAMnD,MAAO,AALe,CAClB,QAAS,QACT,OAAQ,UACR,OAAQ,SACZ,EACqB,EACzB,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,EACvB,AAAI,GACA,GAAM,GAAY,GAAO,IAE7B,EAAM,OAAO,GAAO,GACpB,EAAM,KAAK,KAAK,CAAG,CACvB,CAAC,EACD,CAAC,EAAE,OAAO,EAAK,SAAW,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CACjE,EAAM,MAAM,GAAO,GACnB,EAAM,KAAK,KAAK,CAAG,CACvB,CAAC,EACD,CAAC,EAAE,OAAO,EAAK,QAAU,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CAChE,EAAM,QAAQ,GAAO,GACrB,EAAM,KAAK,KAAK,CAAG,CACvB,CAAC,EACD,CAAC,EAAE,OAAO,EAAK,QAAU,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CAChE,EAAM,QAAQ,GAAO,GACrB,EAAM,KAAK,KAAK,CAAG,CACvB,CAAC,EACD,CAAC,EAAE,OAAO,EAAK,OAAS,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CAC/D,EAAM,OAAO,GAAO,GACpB,EAAM,KAAK,KAAK,CAAG,CACvB,CAAC,EACD,CAAC,EAAE,OAAO,EAAK,WAAa,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CACnE,EAAM,UAAU,GAAO,GACvB,EAAM,KAAK,KAAK,CAAG,CACvB,CAAC,EACG,MAAO,GAAK,MAAS,UACrB,OAAO,QAAQ,EAAK,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAK,KAAW,CAChD,AAAI,MAAO,IAAU,UACjB,GAAM,MAAM,GAAO,EACnB,EAAM,KAAK,KAAK,CAAG,EAE3B,CAAC,EAED,MAAO,GAAK,QAAW,UACvB,OAAO,QAAQ,EAAK,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAK,KAAW,CAClD,AAAI,MAAO,IAAU,YACjB,GAAM,UAAU,GAAO,EACvB,EAAM,KAAK,KAAK,CAAG,EAE3B,CAAC,EAED,MAAO,GAAK,OAAW,KACvB,CAAI,MAAM,QAAQ,EAAK,MAAM,GAAK,MAAO,GAAK,QAAW,SACrD,CAAC,EAAE,OAAO,EAAK,MAAM,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,EAAK,CAC1D,EAAM,QAAQ,GAAO,EACzB,CAAC,EAEI,MAAO,GAAK,QAAW,UAC5B,OAAO,QAAQ,EAAK,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAK,KAAW,CAClD,AAAI,OAAO,IAAU,WAAa,MAAO,IAAU,aAC/C,GAAM,QAAQ,GAAO,EAE7B,CAAC,GAGT,GAAc,EAAK,IAAK,EAAS,EAAK,QAAS,EAAM,MAAM,EAC3D,OAAO,KAAK,CAAQ,EAAE,QAAQ,SAAU,EAAK,CACzC,AAAC,GAAM,QAAQ,IAAQ,CAAC,GAAG,QAAQ,SAAU,EAAO,CAChD,EAAS,GAAS,EAAS,EAC/B,CAAC,CACL,CAAC,EACD,GAAI,GAAQ,KACZ,GAAmB,EACnB,GAAI,GAAW,CAAC,EACV,EAAO,OAAO,OAAO,OAAO,OAAO,IAAI,EAAG,CAAE,EAAG,CAAC,CAAE,CAAC,EACnD,GAAa,CAAC,EACpB,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CAClC,GAAM,GAAM,EAAK,GACX,EAAe,EAAI,QAAQ,SAAU,KAAK,EAC5C,EACA,EACA,EACA,EACA,EACA,GACJ,GAAI,IAAQ,MAAQ,GAAqB,CAAG,EACxC,GAAe,CAAG,UAEb,EAAa,MAAM,WAAW,EAAG,CACtC,GAAe,CAAG,EAClB,QACJ,SACS,EAAI,MAAM,QAAQ,GAAM,CAAC,EAAc,wBAA0B,EAAI,MAAM,OAAO,EACvF,EAAI,EAAI,MAAM,wBAAwB,EAClC,IAAM,MAAQ,MAAM,QAAQ,CAAC,GAAK,EAAE,QAAU,GAC9C,CAAI,EAAgB,EAAE,GAAI,EAAM,MAAM,EAClC,EAAI,GAAS,EAAG,EAAE,GAAI,EAAM,EAAE,EAAE,EAE/B,AAAI,EAAgB,EAAE,GAAI,EAAM,KAAK,IAAM,GAC5C,EAAI,GAAS,EAAG,EAAE,GAAI,EAAM,EAAE,EAAE,EAGhC,EAAO,EAAE,GAAI,EAAE,EAAE,WAIpB,EAAI,MAAM,CAAc,GAAK,EAAc,oBAChD,EAAI,EAAI,MAAM,CAAc,EACxB,IAAM,MAAQ,MAAM,QAAQ,CAAC,GAAK,EAAE,QAAU,GAC9C,GAAM,EAAE,GACR,EAAO,EAAK,EAAgB,EAAK,EAAM,MAAM,EAAI,CAAC,EAAK,EAAI,EAAK,WAG/D,EAAI,MAAM,OAAO,GAAM,CAAC,EAAc,wBAA0B,EAAI,MAAM,SAAS,EACxF,EAAI,EAAI,MAAM,UAAU,EACpB,IAAM,MAAQ,MAAM,QAAQ,CAAC,GAAK,EAAE,QAAU,GAC9C,GAAM,EAAE,GACR,AAAI,EAAgB,EAAK,EAAM,MAAM,EACjC,EAAI,GAAS,EAAG,EAAK,CAAI,EAExB,AAAI,EAAgB,EAAK,EAAM,KAAK,IAAM,GAC3C,EAAI,GAAS,EAAG,EAAK,CAAI,EAGzB,GAAO,EAAK,EAAI,GAChB,AAAI,IAAS,QAAc,EAAC,EAAK,MAAM,IAAI,GACvC,EAAK,MAAM,CAAQ,IACnB,CAAC,EAAgB,EAAK,EAAM,KAAK,GACjC,CAAC,EAAgB,EAAK,EAAM,MAAM,GAI7B,iBAAiB,KAAK,CAAI,EAH/B,GAAO,EAAK,CAAI,EAChB,KAOA,EAAO,EAAK,GAAa,CAAG,CAAC,YAKpC,EAAI,MAAM,UAAU,EACzB,EAAI,EAAI,MAAM,sBAAsB,EAChC,IAAM,MAAQ,MAAM,QAAQ,CAAC,GAAK,EAAE,QAAU,GAC9C,EAAO,EAAE,GAAI,EAAE,EAAE,UAGhB,EAAI,MAAM,SAAS,GAAK,CAAC,EAAI,MAAM,CAAQ,EAChD,EAAO,EAAK,EAAI,GAChB,EAAI,EAAI,MAAM,WAAW,EACrB,IAAM,MAAQ,MAAM,QAAQ,CAAC,GAAK,EAAE,QAAU,GAC9C,GAAM,EAAE,GACR,AAAI,IAAS,QAAa,CAAC,EAAK,MAAM,IAAI,GACtC,CAAC,EAAgB,EAAK,EAAM,KAAK,GACjC,CAAC,EAAgB,EAAK,EAAM,MAAM,EAClC,GAAO,EAAK,CAAI,EAChB,KAGA,EAAO,EAAK,GAAa,CAAG,CAAC,WAIhC,EAAI,MAAM,SAAS,GAAK,CAAC,EAAI,MAAM,CAAQ,EAAG,CACnD,EAAU,EAAI,MAAM,EAAG,EAAE,EAAE,MAAM,EAAE,EACnC,EAAS,GACT,OAAS,IAAI,EAAG,GAAI,EAAQ,OAAQ,KAAK,CAErC,GADA,EAAO,EAAI,MAAM,GAAI,CAAC,EAClB,EAAQ,GAAI,IAAM,EAAQ,GAAI,KAAO,IAAK,CAC1C,GAAQ,EAAI,MAAM,GAAI,CAAC,EACvB,EAAM,EAAQ,IACd,AAAI,EAAgB,EAAK,EAAM,MAAM,EACjC,EAAI,GAAS,EAAG,EAAK,EAAM,EAAK,EAE/B,AAAI,EAAgB,EAAK,EAAM,KAAK,IAAM,GAC3C,EAAI,GAAS,EAAG,EAAK,EAAM,EAAK,EAGhC,EAAO,EAAK,EAAK,EAErB,EAAS,GACT,KACJ,CACA,GAAI,IAAS,IAAK,CACd,EAAO,EAAQ,IAAI,CAAI,EACvB,QACJ,CACA,GAAI,WAAW,KAAK,EAAQ,GAAE,GAC1B,2BAA2B,KAAK,CAAI,GACpC,EAAgB,EAAM,EAAM,KAAK,IAAM,GAAO,CAC9C,EAAO,EAAQ,IAAI,CAAI,EACvB,EAAS,GACT,KACJ,CACA,GAAI,EAAQ,GAAI,IAAM,EAAQ,GAAI,GAAG,MAAM,IAAI,EAAG,CAC9C,EAAO,EAAQ,IAAI,CAAI,EACvB,EAAS,GACT,KACJ,KAEI,GAAO,EAAQ,IAAI,GAAa,EAAQ,GAAE,CAAC,CAEnD,CACA,EAAM,EAAI,MAAM,EAAE,EAAE,GAChB,CAAC,GAAU,IAAQ,KACnB,CAAI,EAAgB,EAAK,EAAM,MAAM,EACjC,EAAI,GAAS,EAAG,EAAK,CAAI,EAExB,AAAI,EAAgB,EAAK,EAAM,KAAK,IAAM,GAC3C,EAAI,GAAS,EAAG,EAAK,CAAI,EAGzB,GAAO,EAAK,EAAI,GAChB,AAAI,IAAS,QAAc,EAAC,cAAc,KAAK,CAAI,GAC/C,EAAK,MAAM,CAAQ,IACnB,CAAC,EAAgB,EAAK,EAAM,KAAK,GACjC,CAAC,EAAgB,EAAK,EAAM,MAAM,GAI7B,iBAAiB,KAAK,CAAI,EAH/B,GAAO,EAAK,CAAI,EAChB,KAOA,EAAO,EAAK,GAAa,CAAG,CAAC,GAI7C,SACS,EAAI,MAAM,UAAU,GACzB,EAAI,MAAM,CAAQ,GAClB,EAAgB,EAAI,MAAM,CAAC,EAAG,EAAM,KAAK,EACzC,EAAM,EAAI,MAAM,CAAC,EACjB,EAAO,EAAK,GAAa,CAAG,CAAC,UAExB,IAAQ,KAAM,CACnB,EAAW,EAAK,MAAM,EAAI,CAAC,EAC3B,KACJ,SACS,EAAc,sBAAuB,CAC1C,EAAW,EAAK,MAAM,CAAC,EACvB,KACJ,KAEI,IAAe,CAAG,CAE1B,CACA,GAAa,EAAM,EAAI,EACvB,GAAa,EAAM,EAAK,EACxB,GAAU,CAAI,EACd,GAAiB,EACjB,EAAwB,EAAM,EAAM,QAAS,EAAU,EAAI,EAC3D,EAAe,CAAI,EACf,EAAc,wBACd,GAAmB,CAAI,EAC3B,OAAO,KAAK,EAAM,MAAM,EAAE,QAAQ,SAAU,EAAK,CAC7C,AAAK,GAAO,EAAM,EAAI,MAAM,GAAG,CAAC,GAC5B,EAAO,EAAK,CAAC,CACrB,CAAC,EACG,GAAkB,EAAS,QAC3B,GAAK,GAAgB,CAAC,GAC1B,EAAS,QAAQ,SAAU,EAAK,CAC5B,EAAK,GAAc,KAAK,CAAG,CAC/B,CAAC,EACG,EAAc,yBAA2B,EAAc,iBACvD,OAAO,KAAK,CAAI,EAAE,OAAO,GAAO,IAAQ,MAAQ,EAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAO,CAC9E,MAAO,GAAK,EAChB,CAAC,EAED,EAAc,kBACd,CAAC,EAAE,OAAO,GAAG,OAAO,KAAK,CAAO,EAAE,IAAI,GAAK,EAAQ,EAAE,CAAC,EAAE,QAAQ,GAAS,CACrE,AAAI,EAAc,yBAA2B,EAAM,SAAS,GAAG,GAC3D,MAAO,GAAK,EAAM,MAAM,GAAG,EAAE,IAAI,GAAQ,GAAU,CAAI,CAAC,EAAE,KAAK,GAAG,GAEtE,MAAO,GAAK,EAChB,CAAC,EAEL,YAAwB,EAAK,CACzB,GAAM,GAAqB,GAAkB,IAAK,CAAG,EACrD,AAAI,OAAO,IAAuB,UAAY,MAAO,IAAuB,WACxE,EAAK,EAAE,KAAK,CAAkB,CAEtC,CACA,YAAkB,EAAG,EAAK,EAAM,EAAmB,CAC/C,GAAI,GACA,EAAQ,EAAgB,EAAK,EAAM,KAAK,EAE5C,GADA,EAAQ,MAAO,IAAU,UAAY,MAAM,CAAK,EAAI,EAAI,EACpD,IAAU,EACV,MAAK,IAAY,CAAiB,GAC9B,GAAQ,MAAM,EAAG,8BAA+B,CAAG,CAAC,GAExD,EAAO,EAAK,GAAa,CAAG,CAAC,EACtB,EAEX,GAAI,GAAY,GAAY,CAAiB,EAAI,EAAI,EACrD,GAAI,EAAc,sBACd,AAAI,EAAK,OAAU,GAAI,GAAK,EAAY,GACpC,GAAQ,MAAM,EAAG,qCAAsC,CAAG,CAAC,GAE/D,EAAY,MAEX,CACD,IAAK,EAAK,EAAI,EAAG,EAAK,EAAK,QACnB,EAAC,EAAK,GAAI,MAAM,UAAU,GAAK,EAAK,GAAI,MAAM,CAAQ,GAAK,GAAqB,EAAK,EAAG,GAD7D,IAE3B,IAIR,AAAI,EAAY,GACZ,GAAQ,MAAM,EAAG,qCAAsC,CAAG,CAAC,EACnE,CACA,GAAI,GAAW,KAAK,IAAI,EAAW,CAAK,EAKxC,IAJI,CAAC,GAAY,CAAiB,GAAK,EAAW,GAC9C,GAAO,EAAK,CAAiB,EAC7B,KAEC,EAAK,EAAI,EAAG,EAAM,EAAW,EAAI,EAAI,IACtC,EAAO,EAAK,EAAK,EAAG,EAExB,MAAQ,GAAI,CAChB,CACA,YAAkB,EAAG,EAAK,EAAM,EAAmB,CAC/C,GAAI,GAAY,CAAC,EACb,EAAO,GAAqB,EAAK,EAAI,GACnC,EAAa,EAAgB,EAAK,EAAM,KAAK,EACnD,GAAI,EAAgB,EAAK,EAAM,KAAK,GAAK,CAAE,iBAAiB,KAAK,CAAI,EACjE,EAAU,KAAK,EAAI,UAEd,GAAY,CAAI,GACpB,GAAY,CAAiB,GAAK,KAAK,KAAK,CAAI,GAAK,CAAC,EAAS,KAAK,CAAI,GAAK,CAAC,GAAqB,CAAI,GACxG,GAAI,EAAS,KAAS,OAAW,CAC7B,GAAM,GAAS,EAAS,GACxB,EAAY,MAAM,QAAQ,CAAM,EAAI,EAAS,CAAC,CAAM,CACxD,MAEC,CACD,AAAK,GAAY,CAAiB,GAC9B,EAAU,KAAK,EAAa,EAAK,CAAiB,CAAC,EAEvD,OAAS,GAAK,EAAI,EAAG,EAAK,EAAK,QACtB,GAAC,EAAc,kBAAoB,EAAU,OAAS,GACtD,GAAc,MAAO,IAAe,UAAY,EAAU,QAAU,GAEzE,GAAO,EAAK,GACR,KAAK,KAAK,CAAI,GAAK,CAAC,EAAS,KAAK,CAAI,GAAK,CAAC,GAAqB,CAAI,IALtC,IAOnC,EAAI,EACJ,EAAU,KAAK,EAAa,EAAK,CAAI,CAAC,CAE9C,CACA,MAAI,OAAO,IAAe,UAAc,IAAc,EAAU,OAAS,GACpE,MAAM,CAAU,GAAK,EAAU,SAAW,IAC3C,GAAQ,MAAM,EAAG,qCAAsC,CAAG,CAAC,GAE/D,EAAO,EAAK,CAAS,EACd,CACX,CACA,WAAgB,EAAK,EAAK,CACtB,GAAI,IAAI,KAAK,CAAG,GAAK,EAAc,wBAAyB,CACxD,GAAM,GAAQ,EAAI,MAAM,GAAG,EAAE,IAAI,SAAU,EAAM,CAC7C,MAAO,IAAU,CAAI,CACzB,CAAC,EAAE,KAAK,GAAG,EACX,EAAY,EAAK,CAAK,CAC1B,CACA,GAAM,GAAQ,EAAa,EAAK,CAAG,EAC7B,EAAW,EAAI,MAAM,GAAG,EAC9B,GAAO,EAAM,EAAU,CAAK,EACxB,EAAM,QAAQ,IACd,EAAM,QAAQ,GAAK,QAAQ,SAAU,EAAG,CACpC,GAAM,GAAgB,EAAE,MAAM,GAAG,EACjC,GAAO,EAAM,EAAe,CAAK,CACrC,CAAC,EAED,EAAS,OAAS,GAAK,EAAc,iBACpC,GAAM,QAAQ,EAAS,KAAO,CAAC,GAAG,QAAQ,SAAU,EAAG,CACpD,GAAI,GAAgB,EAAE,MAAM,GAAG,EACzB,EAAI,CAAC,EAAE,OAAO,CAAQ,EAC5B,EAAE,MAAM,EACR,EAAgB,EAAc,OAAO,CAAC,EAChC,GAAM,QAAQ,IAAQ,CAAC,GAAG,SAAS,EAAc,KAAK,GAAG,CAAC,GAC5D,GAAO,EAAM,EAAe,CAAK,CAEzC,CAAC,EAED,EAAgB,EAAK,EAAM,SAAS,GAAK,CAAC,EAAgB,EAAK,EAAM,MAAM,GAE3E,AADa,CAAC,CAAG,EAAE,OAAO,EAAM,QAAQ,IAAQ,CAAC,CAAC,EAC7C,QAAQ,SAAU,EAAK,CACxB,OAAO,eAAe,GAAY,EAAK,CACnC,WAAY,GACZ,KAAM,CACF,MAAO,EACX,EACA,IAAI,EAAO,CACP,EAAM,MAAO,IAAU,SAAW,GAAM,UAAU,CAAK,EAAI,CAC/D,CACJ,CAAC,CACL,CAAC,CAET,CACA,WAAqB,EAAK,EAAO,CAC7B,AAAM,EAAM,QAAQ,IAAQ,EAAM,QAAQ,GAAK,QAC3C,GAAM,QAAQ,GAAO,CAAC,CAAK,EAC3B,EAAW,GAAS,IAElB,EAAM,QAAQ,IAAU,EAAM,QAAQ,GAAO,QAC/C,EAAY,EAAO,CAAG,CAE9B,CACA,WAAsB,EAAK,EAAK,CAC5B,AAAI,MAAO,IAAQ,UACd,GAAI,KAAO,KAAO,EAAI,KAAO,MAC9B,EAAI,EAAI,OAAS,KAAO,EAAI,IAC5B,GAAM,EAAI,UAAU,EAAG,EAAI,OAAS,CAAC,GAErC,GAAgB,EAAK,EAAM,KAAK,GAAK,EAAgB,EAAK,EAAM,MAAM,IAClE,MAAO,IAAQ,UACf,GAAM,IAAQ,QAEtB,GAAI,GAAQ,MAAM,QAAQ,CAAG,EACvB,EAAI,IAAI,SAAU,EAAG,CAAE,MAAO,IAAkB,EAAK,CAAC,CAAG,CAAC,EAC1D,GAAkB,EAAK,CAAG,EAChC,MAAI,GAAgB,EAAK,EAAM,MAAM,GAAM,IAAY,CAAK,GAAK,MAAO,IAAU,YAC9E,GAAQ,GAAU,GAElB,EAAgB,EAAK,EAAM,SAAS,GAAK,EAAgB,EAAK,EAAM,MAAM,GAC1E,CAAI,MAAM,QAAQ,CAAG,EACjB,EAAQ,EAAI,IAAI,AAAC,GAAiB,GAAM,UAAU,CAAG,CAAI,EAEzD,EAAQ,GAAM,UAAU,CAAG,GAE5B,CACX,CACA,YAA2B,EAAK,EAAO,CACnC,MAAI,CAAC,EAAc,6BAA+B,IAAQ,KAEtD,CAAC,EAAgB,EAAK,EAAM,OAAO,GAAK,CAAC,EAAgB,EAAK,EAAM,KAAK,GAAK,CAAC,MAAM,QAAQ,CAAK,GAE9F,CADuB,GAAgB,CAAK,GAAK,EAAc,kBAAqB,OAAO,cAAc,KAAK,MAAM,WAAW,GAAG,GAAO,CAAC,CAAC,GACpH,CAAC,GAAY,CAAK,GAAK,EAAgB,EAAK,EAAM,OAAO,IAChF,GAAQ,OAAO,CAAK,GAGrB,CACX,CACA,YAAmB,EAAM,CACrB,GAAM,GAAe,OAAO,OAAO,IAAI,EACvC,EAAwB,EAAc,EAAM,QAAS,CAAQ,EAC7D,OAAO,KAAK,EAAM,OAAO,EAAE,QAAQ,SAAU,EAAW,CACpD,GAAM,GAAa,EAAK,IAAc,EAAa,GACnD,GAAI,EACA,GAAI,CACA,GAAI,GAAS,KACP,EAAqB,GAAM,QAAQ,GAAM,IAAI,EAAG,CAAU,EAC1D,EAAgB,EAAM,QAAQ,GACpC,GAAI,MAAO,IAAkB,WAAY,CACrC,GAAI,CACA,EAAS,EAAc,CAAkB,CAC7C,OACO,EAAP,CACI,EAAS,CACb,CACA,GAAI,YAAkB,OAAO,CACzB,EAAQ,EACR,MACJ,CACJ,KAEI,GAAS,GAAM,QAAQ,CAAkB,EAE7C,GAAgB,CAAM,CAC1B,OACO,EAAP,CACI,AAAI,EAAG,OAAS,mBACZ,EAAQ,EACH,EAAK,IACV,GAAQ,MAAM,EAAG,+BAAgC,CAAU,CAAC,EACpE,CAER,CAAC,CACL,CACA,YAAyB,EAAQ,EAAM,CACnC,OAAO,KAAK,CAAM,EAAE,QAAQ,SAAU,EAAK,CACvC,GAAM,GAAQ,EAAO,GACf,EAAU,EAAO,EAAO,IAAM,EAAM,EAC1C,AAAI,MAAO,IAAU,UAAY,IAAU,MAAQ,CAAC,MAAM,QAAQ,CAAK,GAAK,EAAc,gBACtF,GAAgB,EAAO,CAAO,EAG1B,EAAC,GAAO,EAAM,EAAQ,MAAM,GAAG,CAAC,GAAM,EAAgB,EAAS,EAAM,MAAM,GAAK,EAAc,oBAC9F,EAAO,EAAS,CAAK,CAGjC,CAAC,CACL,CACA,aAA4B,CACxB,AAAI,MAAO,GAAkB,KACzB,EAAc,QAAQ,SAAU,EAAc,CAC1C,GAAgB,CAAY,CAChC,CAAC,CAET,CACA,YAAsB,EAAM,EAAY,CACpC,GAAI,MAAO,GAAc,IACrB,OACJ,GAAM,GAAS,MAAO,IAAc,SAAW,EAAY,GACrD,EAAM,GAAM,IAAI,EACtB,OAAO,KAAK,CAAG,EAAE,QAAQ,SAAU,EAAQ,CACvC,GAAI,IAAW,IAAM,EAAO,YAAY,EAAQ,CAAC,IAAM,EAAG,CACtD,GAAM,GAAO,EAAO,MAAM,IAAI,EAAE,IAAI,SAAU,EAAK,EAAG,CAClD,MAAI,KAAM,GACN,GAAM,EAAI,UAAU,EAAO,MAAM,GAE9B,GAAU,CAAG,CACxB,CAAC,EACD,AAAM,IAAc,EAAM,QAAQ,EAAK,KAAK,GAAG,IAAO,CAAC,IAAe,CAAC,GAAO,EAAM,CAAI,GACpF,EAAO,EAAK,KAAK,GAAG,EAAG,EAAI,EAAO,CAE1C,CACJ,CAAC,CACL,CACA,WAAwB,EAAM,CAC1B,GAAI,GACE,EAAU,GAAI,KACpB,OAAO,KAAK,CAAI,EAAE,QAAQ,SAAU,EAAK,CACrC,GAAI,CAAC,EAAQ,IAAI,CAAG,GAChB,GAAS,EAAgB,EAAK,EAAM,SAAS,EACzC,MAAO,IAAW,YAClB,GAAI,CACA,GAAM,GAAQ,GAAkB,EAAK,EAAO,EAAK,EAAI,CAAC,EACtD,AAAC,CAAC,EAAE,OAAO,EAAM,QAAQ,IAAQ,CAAC,EAAG,CAAG,EAAG,QAAQ,GAAO,CACtD,EAAQ,IAAI,CAAG,EACf,EAAK,GAAO,CAChB,CAAC,CACL,OACO,EAAP,CACI,EAAQ,CACZ,CAGZ,CAAC,CACL,CACA,YAA4B,EAAM,CAC9B,SAAM,KAAK,QAAQ,AAAC,GAAQ,CACxB,AAAI,CAAC,EAAI,QAAQ,GAAG,GAEhB,MAAO,GAAK,GAAS,KACrB,GAAK,GAAO,OACpB,CAAC,EACM,CACX,CACA,WAAiC,EAAK,EAAS,EAAU,EAAS,GAAO,CACrE,OAAO,KAAK,CAAQ,EAAE,QAAQ,SAAU,EAAK,CACzC,AAAK,GAAO,EAAK,EAAI,MAAM,GAAG,CAAC,GAC3B,IAAO,EAAK,EAAI,MAAM,GAAG,EAAG,EAAS,EAAI,EACrC,GACA,GAAU,GAAO,IACpB,GAAQ,IAAQ,CAAC,GAAG,QAAQ,SAAU,EAAG,CACtC,AAAI,GAAO,EAAK,EAAE,MAAM,GAAG,CAAC,GAE5B,GAAO,EAAK,EAAE,MAAM,GAAG,EAAG,EAAS,EAAI,CAC3C,CAAC,EAET,CAAC,CACL,CACA,YAAgB,EAAK,EAAM,CACvB,GAAI,GAAI,EACR,AAAK,EAAc,iBACf,GAAO,CAAC,EAAK,KAAK,GAAG,CAAC,GAC1B,EAAK,MAAM,EAAG,EAAE,EAAE,QAAQ,SAAU,EAAK,CACrC,EAAK,EAAE,IAAQ,CAAC,CACpB,CAAC,EACD,GAAM,GAAM,EAAK,EAAK,OAAS,GAC/B,MAAI,OAAO,IAAM,SACN,GAEA,IAAO,EACtB,CACA,YAAgB,EAAK,EAAM,EAAO,CAC9B,GAAI,GAAI,EACR,AAAK,EAAc,iBACf,GAAO,CAAC,EAAK,KAAK,GAAG,CAAC,GAC1B,EAAK,MAAM,EAAG,EAAE,EAAE,QAAQ,SAAU,GAAK,CACrC,GAAM,GAAY,EAAG,EACjB,MAAO,IAAM,UAAY,EAAE,MAAS,QACpC,GAAE,IAAO,CAAC,GAEd,AAAI,MAAO,GAAE,KAAS,UAAY,MAAM,QAAQ,EAAE,GAAI,EAClD,CAAI,MAAM,QAAQ,EAAE,GAAI,EACpB,EAAE,IAAK,KAAK,CAAC,CAAC,EAGd,EAAE,IAAO,CAAC,EAAE,IAAM,CAAC,CAAC,EAExB,EAAI,EAAE,IAAK,EAAE,IAAK,OAAS,IAG3B,EAAI,EAAE,GAEd,CAAC,EACD,GAAM,GAAM,GAAY,EAAK,EAAK,OAAS,EAAE,EACvC,EAAc,EAAgB,EAAK,KAAK,GAAG,EAAG,EAAM,MAAM,EAC1D,EAAe,MAAM,QAAQ,CAAK,EACpC,EAAY,EAAc,6BAC9B,AAAI,CAAC,GAAa,EAAgB,EAAK,EAAM,KAAK,GAC9C,GAAY,GACP,EAAC,GAAY,EAAE,EAAI,GAAK,EAAM,MAAM,KAAS,GAAO,MAAM,QAAQ,EAAE,EAAI,GAAK,EAAE,GAAK,SAAW,EAAM,MAAM,KAC5G,GAAE,GAAO,SAGjB,AAAI,IAAU,GAAU,EACpB,EAAE,GAAO,GAAU,EAAE,EAAI,EAExB,AAAI,MAAM,QAAQ,EAAE,EAAI,EACzB,AAAI,GAAa,GAAe,EAC5B,EAAE,GAAO,EAAc,4BAA8B,EAAE,GAAK,OAAO,CAAK,EAAK,OAAM,QAAQ,EAAE,GAAK,EAAE,EAAI,EAAE,GAAO,CAAC,EAAE,EAAI,GAAG,OAAO,CAAC,CAAK,CAAC,EAExI,AAAI,CAAC,GAAa,QAAQ,CAAW,IAAM,QAAQ,CAAY,EAChE,EAAE,GAAO,EAGT,EAAE,GAAO,EAAE,GAAK,OAAO,CAAC,CAAK,CAAC,EAGjC,AAAI,EAAE,KAAS,QAAa,EAC7B,EAAE,GAAO,EAAe,EAAQ,CAAC,CAAK,EAErC,AAAI,GAAa,CAAE,GAAE,KAAS,QAC/B,EAAgB,EAAK,EAAM,MAAM,GACjC,EAAgB,EAAK,EAAM,KAAK,GAChC,EAAE,GAAO,CAAC,EAAE,GAAM,CAAK,EAGvB,EAAE,GAAO,CAEjB,CACA,eAA0B,EAAM,CAC5B,EAAK,QAAQ,SAAU,EAAK,CACxB,OAAO,KAAK,GAAO,CAAC,CAAC,EAAE,QAAQ,SAAU,EAAK,CAC1C,AAAI,EAAM,QAAQ,IAElB,GAAM,QAAQ,GAAO,CAAC,EAAE,OAAO,EAAQ,IAAQ,CAAC,CAAC,EACjD,EAAM,QAAQ,GAAK,OAAO,CAAG,EAAE,QAAQ,SAAU,EAAG,CAChD,GAAI,IAAI,KAAK,CAAC,GAAK,EAAc,wBAAyB,CACtD,GAAM,GAAI,GAAU,CAAC,EACrB,AAAI,IAAM,GAAO,EAAM,QAAQ,GAAK,QAAQ,CAAC,IAAM,IAC/C,GAAM,QAAQ,GAAK,KAAK,CAAC,EACzB,EAAW,GAAK,GAExB,CACJ,CAAC,EACD,EAAM,QAAQ,GAAK,OAAO,CAAG,EAAE,QAAQ,SAAU,EAAG,CAChD,GAAI,EAAE,OAAS,GAAK,QAAQ,KAAK,CAAC,GAAK,EAAc,wBAAyB,CAC1E,GAAM,GAAI,GAAW,EAAG,GAAG,EAC3B,AAAI,IAAM,GAAO,EAAM,QAAQ,GAAK,QAAQ,CAAC,IAAM,IAC/C,GAAM,QAAQ,GAAK,KAAK,CAAC,EACzB,EAAW,GAAK,GAExB,CACJ,CAAC,EACD,EAAM,QAAQ,GAAK,QAAQ,SAAU,EAAG,CACpC,EAAM,QAAQ,GAAK,CAAC,CAAG,EAAE,OAAO,EAAM,QAAQ,GAAK,OAAO,SAAU,EAAG,CACnE,MAAO,KAAM,CACjB,CAAC,CAAC,CACN,CAAC,EACL,CAAC,CACL,CAAC,CACL,CACA,WAAyB,EAAK,EAAM,CAChC,GAAM,GAAU,CAAC,EAAE,OAAO,EAAM,QAAQ,IAAQ,CAAC,EAAG,CAAG,EACjD,EAAO,OAAO,KAAK,CAAI,EACvB,EAAW,EAAQ,KAAK,GAAO,EAAK,SAAS,CAAG,CAAC,EACvD,MAAO,GAAW,EAAK,GAAY,EACvC,CACA,YAAoB,EAAK,CACrB,GAAM,GAAY,OAAO,KAAK,CAAK,EAEnC,MAAO,AADS,CAAC,EAAE,OAAO,EAAU,IAAI,GAAK,EAAM,EAAE,CAAC,EACvC,KAAK,SAAU,EAAM,CAChC,MAAO,OAAM,QAAQ,CAAI,EAAI,EAAK,SAAS,CAAG,EAAI,EAAK,EAC3D,CAAC,CACL,CACA,YAA0B,KAAQ,EAAU,CAExC,MAAO,AADS,CAAC,EAAE,OAAO,GAAG,CAAQ,EACtB,KAAK,SAAU,EAAS,CACnC,GAAM,GAAQ,EAAI,MAAM,CAAO,EAC/B,MAAO,IAAS,GAAW,EAAM,EAAE,CACvC,CAAC,CACL,CACA,YAA0B,EAAK,CAC3B,GAAI,EAAI,MAAM,CAAQ,GAAK,CAAC,EAAI,MAAM,SAAS,EAC3C,MAAO,GAEX,GAAI,GAAc,GACd,EACE,EAAU,EAAI,MAAM,CAAC,EAAE,MAAM,EAAE,EACrC,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IAAK,CAErC,GADA,EAAO,EAAI,MAAM,EAAI,CAAC,EAClB,CAAC,GAAW,EAAQ,EAAE,EAAG,CACzB,EAAc,GACd,KACJ,CACA,GAAK,EAAQ,EAAI,IAAM,EAAQ,EAAI,KAAO,KACtC,IAAS,KACR,WAAW,KAAK,EAAQ,EAAE,GAAK,2BAA2B,KAAK,CAAI,GACnE,EAAQ,EAAI,IAAM,EAAQ,EAAI,GAAG,MAAM,IAAI,EAC5C,KAER,CACA,MAAO,EACX,CACA,YAA8B,EAAK,CAC/B,MAAO,GAAc,4BAA8B,GAAgB,CAAG,CAC1E,CACA,YAAyB,EAAK,CAK1B,MAJA,GAAM,EAAI,QAAQ,SAAU,IAAI,EAC5B,EAAI,MAAM,CAAQ,GAGlB,GAAiB,CAAG,EACb,GAOJ,CAAC,GAAiB,EALF,uBAKuB,EAJ3B,eACQ,gBACA,kBACW,mBACyG,CACnJ,CACA,YAAsB,EAAK,CACvB,MAAI,CAAC,EAAgB,EAAK,EAAM,KAAK,GACjC,CAAC,EAAgB,EAAK,EAAM,MAAM,GAClC,GAAG,KAAS,GACL,EAAS,GAGT,GAAe,GAAU,CAAG,CAAC,CAE5C,CACA,YAAwB,EAAM,CAO1B,MAAO,AANK,EACP,GAAwB,SAAU,IAClC,GAAwB,QAAS,IACjC,GAAwB,QAAS,QACjC,GAAwB,OAAQ,CAAC,CACtC,EACW,EACf,CACA,YAAmB,EAAK,CACpB,GAAI,GAAO,GAAwB,QACnC,MAAI,GAAgB,EAAK,EAAM,OAAO,EAClC,EAAO,GAAwB,OAC9B,AAAI,EAAgB,EAAK,EAAM,OAAO,EACvC,EAAO,GAAwB,OAC9B,AAAI,EAAgB,EAAK,EAAM,KAAK,EACrC,EAAO,GAAwB,QAC1B,EAAgB,EAAK,EAAM,MAAM,GACtC,GAAO,GAAwB,OAC5B,CACX,CACA,YAAqB,EAAK,CACtB,MAAO,KAAQ,MACnB,CACA,aAA8B,CAC1B,OAAO,KAAK,EAAM,MAAM,EAAE,KAAK,GACvB,EAAgB,EAAK,EAAM,MAAM,EACjC,GAAQ,MAAM,EAAG,6DAA8D,CAAG,CAAC,EAC5E,IAEF,EAAgB,EAAK,EAAM,KAAK,EACrC,GAAQ,MAAM,EAAG,4DAA6D,CAAG,CAAC,EAC3E,IAEJ,EACV,CACL,CACA,MAAO,CACH,QAAS,OAAO,OAAO,CAAC,EAAG,EAAM,OAAO,EACxC,KAAM,OAAO,OAAO,GAAY,CAAI,EACpC,cAAe,EACf,UAAW,OAAO,OAAO,CAAC,EAAG,CAAS,EACtC,MAAO,EACP,WAAY,OAAO,OAAO,CAAC,EAAG,CAAU,CAC5C,CACJ,CACJ,EACA,YAAwB,EAAS,CAC7B,GAAM,GAAc,CAAC,EACf,EAAW,OAAO,OAAO,IAAI,EAC/B,EAAS,GAIb,IAHA,OAAO,KAAK,CAAO,EAAE,QAAQ,SAAU,EAAK,CACxC,EAAY,KAAK,CAAC,EAAE,OAAO,EAAQ,GAAM,CAAG,CAAC,CACjD,CAAC,EACM,GAAQ,CACX,EAAS,GACT,OAAS,GAAI,EAAG,EAAI,EAAY,OAAQ,IACpC,OAAS,GAAK,EAAI,EAAG,EAAK,EAAY,OAAQ,IAI1C,GAAI,AAHc,EAAY,GAAG,OAAO,SAAU,EAAG,CACjD,MAAO,GAAY,GAAI,QAAQ,CAAC,IAAM,EAC1C,CAAC,EACa,OAAQ,CAClB,EAAY,GAAK,EAAY,GAAG,OAAO,EAAY,EAAG,EACtD,EAAY,OAAO,EAAI,CAAC,EACxB,EAAS,GACT,KACJ,CAGZ,CACA,SAAY,QAAQ,SAAU,EAAY,CACtC,EAAa,EAAW,OAAO,SAAU,EAAG,EAAG,EAAM,CACjD,MAAO,GAAK,QAAQ,CAAC,IAAM,CAC/B,CAAC,EACD,GAAM,GAAY,EAAW,IAAI,EACjC,AAAI,IAAc,QAAa,MAAO,IAAc,UAChD,GAAS,GAAa,EAE9B,CAAC,EACM,CACX,CACA,YAAmB,EAAM,CACrB,MAAO,KAAS,OAAY,EAAO,EAAI,CAC3C,CACA,YAAqB,EAAK,CACtB,MAAI,KAAQ,YACD,cACJ,CACX,CAEA,GAAM,IAAkB,SAAW,QAAQ,KAAO,QAAQ,IAAI,uBACxD,OAAO,QAAQ,IAAI,sBAAsB,EACzC,GACN,GAAI,SAAW,QAAQ,SAEf,AADU,OAAO,QAAQ,QAAQ,MAAM,UAAU,EAAE,EAAE,EAC7C,GACR,KAAM,OAAM,sDAAsD,sGAAkH,EAG5L,GAAM,IAAM,QAAU,QAAQ,IAAM,CAAC,EAC/B,GAAS,GAAI,IAAY,CAC3B,IAAK,QAAQ,IACb,IAAK,IACM,GAEX,OAAQ,GAAK,OACb,UAAW,GAAK,UAChB,QAAS,GAAK,QACd,QAAS,AAAC,GAAS,CACf,GAAI,MAAO,SAAY,IACnB,MAAO,SAAQ,GAEd,GAAI,EAAK,MAAM,SAAS,EACzB,MAAO,IAAG,aAAa,EAAM,MAAM,EAGnC,KAAM,OAAM,8CAA8C,CAElE,CACJ,CAAC,EACK,GAAc,SAAgB,EAAM,EAAM,CAE5C,MAAO,AADQ,IAAO,MAAM,EAAK,MAAM,EAAG,CAAI,EAChC,IAClB,EACA,GAAY,SAAW,SAAU,EAAM,EAAM,CACzC,MAAO,IAAO,MAAM,EAAK,MAAM,EAAG,CAAI,CAC1C,EACA,GAAY,UAAY,GACxB,GAAY,WAAa,GACzB,GAAY,gBAAkB,GAE9B,GAAO,QAAU,KCjhCjB,mBAUA,GAAI,IAAmB,IAGnB,GAAiB,4BAGjB,GAAmB,iBAGnB,GAAU,qBACV,GAAW,iBACX,GAAU,mBACV,GAAU,gBACV,GAAW,iBACX,GAAU,oBACV,GAAS,6BACT,GAAS,eACT,GAAY,kBACZ,GAAY,kBACZ,GAAa,mBACb,GAAY,kBACZ,GAAS,eACT,GAAY,kBACZ,GAAY,kBACZ,GAAa,mBAEb,GAAiB,uBACjB,GAAc,oBACd,GAAa,wBACb,GAAa,wBACb,GAAU,qBACV,GAAW,sBACX,GAAW,sBACX,GAAW,sBACX,GAAkB,6BAClB,GAAY,uBACZ,GAAY,uBAMZ,GAAe,sBAGf,GAAU,OAGV,GAAe,8BAGf,GAAW,mBAGX,GAAgB,CAAC,EACrB,GAAc,IAAW,GAAc,IACvC,GAAc,IAAkB,GAAc,IAC9C,GAAc,IAAW,GAAc,IACvC,GAAc,IAAc,GAAc,IAC1C,GAAc,IAAW,GAAc,IACvC,GAAc,IAAY,GAAc,IACxC,GAAc,IAAa,GAAc,IACzC,GAAc,IAAa,GAAc,IACzC,GAAc,IAAa,GAAc,IACzC,GAAc,IAAY,GAAc,IACxC,GAAc,IAAa,GAAc,IAAa,GACtD,GAAc,IAAY,GAAc,IACxC,GAAc,IAAc,GAG5B,GAAI,IAAa,MAAO,SAAU,UAAY,QAAU,OAAO,SAAW,QAAU,OAGhF,GAAW,MAAO,OAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxE,GAAO,IAAc,IAAY,SAAS,aAAa,EAAE,EAGzD,GAAc,MAAO,KAAW,UAAY,IAAW,CAAC,GAAQ,UAAY,GAG5E,GAAa,IAAe,MAAO,KAAU,UAAY,IAAU,CAAC,GAAO,UAAY,GAGvF,GAAgB,IAAc,GAAW,UAAY,GAUzD,YAAqB,EAAK,EAAM,CAE9B,SAAI,IAAI,EAAK,GAAI,EAAK,EAAE,EACjB,CACT,CAUA,YAAqB,EAAK,EAAO,CAE/B,SAAI,IAAI,CAAK,EACN,CACT,CAWA,YAAmB,EAAO,EAAU,CAIlC,OAHI,GAAQ,GACR,EAAS,EAAQ,EAAM,OAAS,EAE7B,EAAE,EAAQ,GACX,EAAS,EAAM,GAAQ,EAAO,CAAK,IAAM,IAA7C,CAIF,MAAO,EACT,CAUA,YAAmB,EAAO,EAAQ,CAKhC,OAJI,GAAQ,GACR,EAAS,EAAO,OAChB,EAAS,EAAM,OAEZ,EAAE,EAAQ,GACf,EAAM,EAAS,GAAS,EAAO,GAEjC,MAAO,EACT,CAcA,YAAqB,EAAO,EAAU,EAAa,EAAW,CAC5D,GAAI,GAAQ,GACR,EAAS,EAAQ,EAAM,OAAS,EAKpC,IAHI,GAAa,GACf,GAAc,EAAM,EAAE,IAEjB,EAAE,EAAQ,GACf,EAAc,EAAS,EAAa,EAAM,GAAQ,EAAO,CAAK,EAEhE,MAAO,EACT,CAWA,YAAmB,EAAG,EAAU,CAI9B,OAHI,GAAQ,GACR,EAAS,MAAM,CAAC,EAEb,EAAE,EAAQ,GACf,EAAO,GAAS,EAAS,CAAK,EAEhC,MAAO,EACT,CAUA,YAAkB,EAAQ,EAAK,CAC7B,MAAO,IAAU,KAAO,OAAY,EAAO,EAC7C,CASA,YAAsB,EAAO,CAG3B,GAAI,GAAS,GACb,GAAI,GAAS,MAAQ,MAAO,GAAM,UAAY,WAC5C,GAAI,CACF,EAAS,CAAC,CAAE,GAAQ,GACtB,MAAE,CAAW,CAEf,MAAO,EACT,CASA,YAAoB,EAAK,CACvB,GAAI,GAAQ,GACR,EAAS,MAAM,EAAI,IAAI,EAE3B,SAAI,QAAQ,SAAS,EAAO,EAAK,CAC/B,EAAO,EAAE,GAAS,CAAC,EAAK,CAAK,CAC/B,CAAC,EACM,CACT,CAUA,YAAiB,EAAM,EAAW,CAChC,MAAO,UAAS,EAAK,CACnB,MAAO,GAAK,EAAU,CAAG,CAAC,CAC5B,CACF,CASA,YAAoB,EAAK,CACvB,GAAI,GAAQ,GACR,EAAS,MAAM,EAAI,IAAI,EAE3B,SAAI,QAAQ,SAAS,EAAO,CAC1B,EAAO,EAAE,GAAS,CACpB,CAAC,EACM,CACT,CAGA,GAAI,IAAa,MAAM,UACnB,GAAY,SAAS,UACrB,GAAc,OAAO,UAGrB,GAAa,GAAK,sBAGlB,GAAc,UAAW,CAC3B,GAAI,GAAM,SAAS,KAAK,IAAc,GAAW,MAAQ,GAAW,KAAK,UAAY,EAAE,EACvF,MAAO,GAAO,iBAAmB,EAAO,EAC1C,EAAE,EAGE,GAAe,GAAU,SAGzB,GAAiB,GAAY,eAO7B,GAAiB,GAAY,SAG7B,GAAa,OAAO,IACtB,GAAa,KAAK,EAAc,EAAE,QAAQ,GAAc,MAAM,EAC7D,QAAQ,yDAA0D,OAAO,EAAI,GAChF,EAGI,GAAS,GAAgB,GAAK,OAAS,OACvC,GAAS,GAAK,OACd,GAAa,GAAK,WAClB,GAAe,GAAQ,OAAO,eAAgB,MAAM,EACpD,GAAe,OAAO,OACtB,GAAuB,GAAY,qBACnC,GAAS,GAAW,OAGpB,GAAmB,OAAO,sBAC1B,GAAiB,GAAS,GAAO,SAAW,OAC5C,GAAa,GAAQ,OAAO,KAAM,MAAM,EAGxC,GAAW,GAAU,GAAM,UAAU,EACrC,GAAM,GAAU,GAAM,KAAK,EAC3B,GAAU,GAAU,GAAM,SAAS,EACnC,GAAM,GAAU,GAAM,KAAK,EAC3B,GAAU,GAAU,GAAM,SAAS,EACnC,GAAe,GAAU,OAAQ,QAAQ,EAGzC,GAAqB,GAAS,EAAQ,EACtC,GAAgB,GAAS,EAAG,EAC5B,GAAoB,GAAS,EAAO,EACpC,GAAgB,GAAS,EAAG,EAC5B,GAAoB,GAAS,EAAO,EAGpC,GAAc,GAAS,GAAO,UAAY,OAC1C,GAAgB,GAAc,GAAY,QAAU,OASxD,YAAc,EAAS,CACrB,GAAI,GAAQ,GACR,EAAS,EAAU,EAAQ,OAAS,EAGxC,IADA,KAAK,MAAM,EACJ,EAAE,EAAQ,GAAQ,CACvB,GAAI,GAAQ,EAAQ,GACpB,KAAK,IAAI,EAAM,GAAI,EAAM,EAAE,CAC7B,CACF,CASA,aAAqB,CACnB,KAAK,SAAW,GAAe,GAAa,IAAI,EAAI,CAAC,CACvD,CAYA,YAAoB,EAAK,CACvB,MAAO,MAAK,IAAI,CAAG,GAAK,MAAO,MAAK,SAAS,EAC/C,CAWA,YAAiB,EAAK,CACpB,GAAI,GAAO,KAAK,SAChB,GAAI,GAAc,CAChB,GAAI,GAAS,EAAK,GAClB,MAAO,KAAW,GAAiB,OAAY,CACjD,CACA,MAAO,IAAe,KAAK,EAAM,CAAG,EAAI,EAAK,GAAO,MACtD,CAWA,YAAiB,EAAK,CACpB,GAAI,GAAO,KAAK,SAChB,MAAO,IAAe,EAAK,KAAS,OAAY,GAAe,KAAK,EAAM,CAAG,CAC/E,CAYA,YAAiB,EAAK,EAAO,CAC3B,GAAI,GAAO,KAAK,SAChB,SAAK,GAAQ,IAAgB,IAAU,OAAa,GAAiB,EAC9D,IACT,CAGA,GAAK,UAAU,MAAQ,GACvB,GAAK,UAAU,OAAY,GAC3B,GAAK,UAAU,IAAM,GACrB,GAAK,UAAU,IAAM,GACrB,GAAK,UAAU,IAAM,GASrB,YAAmB,EAAS,CAC1B,GAAI,GAAQ,GACR,EAAS,EAAU,EAAQ,OAAS,EAGxC,IADA,KAAK,MAAM,EACJ,EAAE,EAAQ,GAAQ,CACvB,GAAI,GAAQ,EAAQ,GACpB,KAAK,IAAI,EAAM,GAAI,EAAM,EAAE,CAC7B,CACF,CASA,aAA0B,CACxB,KAAK,SAAW,CAAC,CACnB,CAWA,YAAyB,EAAK,CAC5B,GAAI,GAAO,KAAK,SACZ,EAAQ,GAAa,EAAM,CAAG,EAElC,GAAI,EAAQ,EACV,MAAO,GAET,GAAI,GAAY,EAAK,OAAS,EAC9B,MAAI,IAAS,EACX,EAAK,IAAI,EAET,GAAO,KAAK,EAAM,EAAO,CAAC,EAErB,EACT,CAWA,YAAsB,EAAK,CACzB,GAAI,GAAO,KAAK,SACZ,EAAQ,GAAa,EAAM,CAAG,EAElC,MAAO,GAAQ,EAAI,OAAY,EAAK,GAAO,EAC7C,CAWA,YAAsB,EAAK,CACzB,MAAO,IAAa,KAAK,SAAU,CAAG,EAAI,EAC5C,CAYA,YAAsB,EAAK,EAAO,CAChC,GAAI,GAAO,KAAK,SACZ,EAAQ,GAAa,EAAM,CAAG,EAElC,MAAI,GAAQ,EACV,EAAK,KAAK,CAAC,EAAK,CAAK,CAAC,EAEtB,EAAK,GAAO,GAAK,EAEZ,IACT,CAGA,GAAU,UAAU,MAAQ,GAC5B,GAAU,UAAU,OAAY,GAChC,GAAU,UAAU,IAAM,GAC1B,GAAU,UAAU,IAAM,GAC1B,GAAU,UAAU,IAAM,GAS1B,YAAkB,EAAS,CACzB,GAAI,GAAQ,GACR,EAAS,EAAU,EAAQ,OAAS,EAGxC,IADA,KAAK,MAAM,EACJ,EAAE,EAAQ,GAAQ,CACvB,GAAI,GAAQ,EAAQ,GACpB,KAAK,IAAI,EAAM,GAAI,EAAM,EAAE,CAC7B,CACF,CASA,aAAyB,CACvB,KAAK,SAAW,CACd,KAAQ,GAAI,IACZ,IAAO,GAAK,KAAO,IACnB,OAAU,GAAI,GAChB,CACF,CAWA,YAAwB,EAAK,CAC3B,MAAO,IAAW,KAAM,CAAG,EAAE,OAAU,CAAG,CAC5C,CAWA,YAAqB,EAAK,CACxB,MAAO,IAAW,KAAM,CAAG,EAAE,IAAI,CAAG,CACtC,CAWA,YAAqB,EAAK,CACxB,MAAO,IAAW,KAAM,CAAG,EAAE,IAAI,CAAG,CACtC,CAYA,YAAqB,EAAK,EAAO,CAC/B,UAAW,KAAM,CAAG,EAAE,IAAI,EAAK,CAAK,EAC7B,IACT,CAGA,GAAS,UAAU,MAAQ,GAC3B,GAAS,UAAU,OAAY,GAC/B,GAAS,UAAU,IAAM,GACzB,GAAS,UAAU,IAAM,GACzB,GAAS,UAAU,IAAM,GASzB,YAAe,EAAS,CACtB,KAAK,SAAW,GAAI,IAAU,CAAO,CACvC,CASA,aAAsB,CACpB,KAAK,SAAW,GAAI,GACtB,CAWA,YAAqB,EAAK,CACxB,MAAO,MAAK,SAAS,OAAU,CAAG,CACpC,CAWA,YAAkB,EAAK,CACrB,MAAO,MAAK,SAAS,IAAI,CAAG,CAC9B,CAWA,YAAkB,EAAK,CACrB,MAAO,MAAK,SAAS,IAAI,CAAG,CAC9B,CAYA,YAAkB,EAAK,EAAO,CAC5B,GAAI,GAAQ,KAAK,SACjB,GAAI,YAAiB,IAAW,CAC9B,GAAI,GAAQ,EAAM,SAClB,GAAI,CAAC,IAAQ,EAAM,OAAS,GAAmB,EAC7C,SAAM,KAAK,CAAC,EAAK,CAAK,CAAC,EAChB,KAET,EAAQ,KAAK,SAAW,GAAI,IAAS,CAAK,CAC5C,CACA,SAAM,IAAI,EAAK,CAAK,EACb,IACT,CAGA,GAAM,UAAU,MAAQ,GACxB,GAAM,UAAU,OAAY,GAC5B,GAAM,UAAU,IAAM,GACtB,GAAM,UAAU,IAAM,GACtB,GAAM,UAAU,IAAM,GAUtB,YAAuB,EAAO,EAAW,CAGvC,GAAI,GAAU,GAAQ,CAAK,GAAK,GAAY,CAAK,EAC7C,GAAU,EAAM,OAAQ,MAAM,EAC9B,CAAC,EAED,EAAS,EAAO,OAChB,EAAc,CAAC,CAAC,EAEpB,OAAS,KAAO,GACd,AAAK,IAAa,GAAe,KAAK,EAAO,CAAG,IAC5C,CAAE,IAAgB,IAAO,UAAY,GAAQ,EAAK,CAAM,KAC1D,EAAO,KAAK,CAAG,EAGnB,MAAO,EACT,CAYA,YAAqB,EAAQ,EAAK,EAAO,CACvC,GAAI,GAAW,EAAO,GACtB,AAAI,EAAE,IAAe,KAAK,EAAQ,CAAG,GAAK,GAAG,EAAU,CAAK,IACvD,IAAU,QAAa,CAAE,KAAO,MACnC,GAAO,GAAO,EAElB,CAUA,YAAsB,EAAO,EAAK,CAEhC,OADI,GAAS,EAAM,OACZ,KACL,GAAI,GAAG,EAAM,GAAQ,GAAI,CAAG,EAC1B,MAAO,GAGX,MAAO,EACT,CAWA,YAAoB,EAAQ,EAAQ,CAClC,MAAO,IAAU,GAAW,EAAQ,GAAK,CAAM,EAAG,CAAM,CAC1D,CAgBA,YAAmB,EAAO,EAAQ,EAAQ,EAAY,EAAK,EAAQ,EAAO,CACxE,GAAI,GAIJ,GAHI,GACF,GAAS,EAAS,EAAW,EAAO,EAAK,EAAQ,CAAK,EAAI,EAAW,CAAK,GAExE,IAAW,OACb,MAAO,GAET,GAAI,CAAC,GAAS,CAAK,EACjB,MAAO,GAET,GAAI,GAAQ,GAAQ,CAAK,EACzB,GAAI,GAEF,GADA,EAAS,GAAe,CAAK,EACzB,CAAC,EACH,MAAO,IAAU,EAAO,CAAM,MAE3B,CACL,GAAI,GAAM,GAAO,CAAK,EAClB,EAAS,GAAO,IAAW,GAAO,GAEtC,GAAI,GAAS,CAAK,EAChB,MAAO,IAAY,EAAO,CAAM,EAElC,GAAI,GAAO,IAAa,GAAO,IAAY,GAAU,CAAC,EAAS,CAC7D,GAAI,GAAa,CAAK,EACpB,MAAO,GAAS,EAAQ,CAAC,EAG3B,GADA,EAAS,GAAgB,EAAS,CAAC,EAAI,CAAK,EACxC,CAAC,EACH,MAAO,IAAY,EAAO,GAAW,EAAQ,CAAK,CAAC,CAEvD,KAAO,CACL,GAAI,CAAC,GAAc,GACjB,MAAO,GAAS,EAAQ,CAAC,EAE3B,EAAS,GAAe,EAAO,EAAK,GAAW,CAAM,CACvD,CACF,CAEA,GAAU,GAAQ,GAAI,KACtB,GAAI,GAAU,EAAM,IAAI,CAAK,EAC7B,GAAI,EACF,MAAO,GAIT,GAFA,EAAM,IAAI,EAAO,CAAM,EAEnB,CAAC,EACH,GAAI,GAAQ,EAAS,GAAW,CAAK,EAAI,GAAK,CAAK,EAErD,UAAU,GAAS,EAAO,SAAS,EAAU,EAAK,CAChD,AAAI,GACF,GAAM,EACN,EAAW,EAAM,IAGnB,GAAY,EAAQ,EAAK,GAAU,EAAU,EAAQ,EAAQ,EAAY,EAAK,EAAO,CAAK,CAAC,CAC7F,CAAC,EACM,CACT,CAUA,YAAoB,EAAO,CACzB,MAAO,IAAS,CAAK,EAAI,GAAa,CAAK,EAAI,CAAC,CAClD,CAaA,YAAwB,EAAQ,EAAU,EAAa,CACrD,GAAI,GAAS,EAAS,CAAM,EAC5B,MAAO,IAAQ,CAAM,EAAI,EAAS,GAAU,EAAQ,EAAY,CAAM,CAAC,CACzE,CASA,YAAoB,EAAO,CACzB,MAAO,IAAe,KAAK,CAAK,CAClC,CAUA,YAAsB,EAAO,CAC3B,GAAI,CAAC,GAAS,CAAK,GAAK,GAAS,CAAK,EACpC,MAAO,GAET,GAAI,GAAW,GAAW,CAAK,GAAK,GAAa,CAAK,EAAK,GAAa,GACxE,MAAO,GAAQ,KAAK,GAAS,CAAK,CAAC,CACrC,CASA,YAAkB,EAAQ,CACxB,GAAI,CAAC,GAAY,CAAM,EACrB,MAAO,IAAW,CAAM,EAE1B,GAAI,GAAS,CAAC,EACd,OAAS,KAAO,QAAO,CAAM,EAC3B,AAAI,GAAe,KAAK,EAAQ,CAAG,GAAK,GAAO,eAC7C,EAAO,KAAK,CAAG,EAGnB,MAAO,EACT,CAUA,YAAqB,EAAQ,EAAQ,CACnC,GAAI,EACF,MAAO,GAAO,MAAM,EAEtB,GAAI,GAAS,GAAI,GAAO,YAAY,EAAO,MAAM,EACjD,SAAO,KAAK,CAAM,EACX,CACT,CASA,YAA0B,EAAa,CACrC,GAAI,GAAS,GAAI,GAAY,YAAY,EAAY,UAAU,EAC/D,UAAI,IAAW,CAAM,EAAE,IAAI,GAAI,IAAW,CAAW,CAAC,EAC/C,CACT,CAUA,YAAuB,EAAU,EAAQ,CACvC,GAAI,GAAS,EAAS,GAAiB,EAAS,MAAM,EAAI,EAAS,OACnE,MAAO,IAAI,GAAS,YAAY,EAAQ,EAAS,WAAY,EAAS,UAAU,CAClF,CAWA,YAAkB,EAAK,EAAQ,EAAW,CACxC,GAAI,GAAQ,EAAS,EAAU,GAAW,CAAG,EAAG,EAAI,EAAI,GAAW,CAAG,EACtE,MAAO,IAAY,EAAO,GAAa,GAAI,GAAI,WAAW,CAC5D,CASA,YAAqB,EAAQ,CAC3B,GAAI,GAAS,GAAI,GAAO,YAAY,EAAO,OAAQ,GAAQ,KAAK,CAAM,CAAC,EACvE,SAAO,UAAY,EAAO,UACnB,CACT,CAWA,YAAkB,EAAK,EAAQ,EAAW,CACxC,GAAI,GAAQ,EAAS,EAAU,GAAW,CAAG,EAAG,EAAI,EAAI,GAAW,CAAG,EACtE,MAAO,IAAY,EAAO,GAAa,GAAI,GAAI,WAAW,CAC5D,CASA,YAAqB,EAAQ,CAC3B,MAAO,IAAgB,OAAO,GAAc,KAAK,CAAM,CAAC,EAAI,CAAC,CAC/D,CAUA,YAAyB,EAAY,EAAQ,CAC3C,GAAI,GAAS,EAAS,GAAiB,EAAW,MAAM,EAAI,EAAW,OACvE,MAAO,IAAI,GAAW,YAAY,EAAQ,EAAW,WAAY,EAAW,MAAM,CACpF,CAUA,YAAmB,EAAQ,EAAO,CAChC,GAAI,GAAQ,GACR,EAAS,EAAO,OAGpB,IADA,GAAU,GAAQ,MAAM,CAAM,GACvB,EAAE,EAAQ,GACf,EAAM,GAAS,EAAO,GAExB,MAAO,EACT,CAYA,YAAoB,EAAQ,EAAO,EAAQ,EAAY,CACrD,GAAW,GAAS,CAAC,GAKrB,OAHI,GAAQ,GACR,EAAS,EAAM,OAEZ,EAAE,EAAQ,GAAQ,CACvB,GAAI,GAAM,EAAM,GAEZ,EAAW,EACX,EAAW,EAAO,GAAM,EAAO,GAAM,EAAK,EAAQ,CAAM,EACxD,OAEJ,GAAY,EAAQ,EAAK,IAAa,OAAY,EAAO,GAAO,CAAQ,CAC1E,CACA,MAAO,EACT,CAUA,YAAqB,EAAQ,EAAQ,CACnC,MAAO,IAAW,EAAQ,GAAW,CAAM,EAAG,CAAM,CACtD,CASA,YAAoB,EAAQ,CAC1B,MAAO,IAAe,EAAQ,GAAM,EAAU,CAChD,CAUA,YAAoB,EAAK,EAAK,CAC5B,GAAI,GAAO,EAAI,SACf,MAAO,IAAU,CAAG,EAChB,EAAK,MAAO,IAAO,SAAW,SAAW,QACzC,EAAK,GACX,CAUA,YAAmB,EAAQ,EAAK,CAC9B,GAAI,GAAQ,GAAS,EAAQ,CAAG,EAChC,MAAO,IAAa,CAAK,EAAI,EAAQ,MACvC,CASA,GAAI,IAAa,GAAmB,GAAQ,GAAkB,MAAM,EAAI,GASpE,GAAS,GAIb,AAAK,KAAY,GAAO,GAAI,IAAS,GAAI,aAAY,CAAC,CAAC,CAAC,GAAK,IACxD,IAAO,GAAO,GAAI,GAAG,GAAK,IAC1B,IAAW,GAAO,GAAQ,QAAQ,CAAC,GAAK,IACxC,IAAO,GAAO,GAAI,GAAG,GAAK,IAC1B,IAAW,GAAO,GAAI,GAAO,GAAK,KACrC,IAAS,SAAS,EAAO,CACvB,GAAI,GAAS,GAAe,KAAK,CAAK,EAClC,EAAO,GAAU,GAAY,EAAM,YAAc,OACjD,EAAa,EAAO,GAAS,CAAI,EAAI,OAEzC,GAAI,EACF,OAAQ,OACD,IAAoB,MAAO,QAC3B,IAAe,MAAO,QACtB,IAAmB,MAAO,QAC1B,IAAe,MAAO,QACtB,IAAmB,MAAO,IAGnC,MAAO,EACT,GAUF,YAAwB,EAAO,CAC7B,GAAI,GAAS,EAAM,OACf,EAAS,EAAM,YAAY,CAAM,EAGrC,MAAI,IAAU,MAAO,GAAM,IAAM,UAAY,GAAe,KAAK,EAAO,OAAO,GAC7E,GAAO,MAAQ,EAAM,MACrB,EAAO,MAAQ,EAAM,OAEhB,CACT,CASA,YAAyB,EAAQ,CAC/B,MAAQ,OAAO,GAAO,aAAe,YAAc,CAAC,GAAY,CAAM,EAClE,GAAW,GAAa,CAAM,CAAC,EAC/B,CAAC,CACP,CAeA,YAAwB,EAAQ,EAAK,EAAW,EAAQ,CACtD,GAAI,GAAO,EAAO,YAClB,OAAQ,OACD,IACH,MAAO,IAAiB,CAAM,MAE3B,QACA,IACH,MAAO,IAAI,GAAK,CAAC,CAAM,MAEpB,IACH,MAAO,IAAc,EAAQ,CAAM,MAEhC,QAAiB,QACjB,QAAc,QAAe,QAC7B,QAAe,QAAsB,QAAgB,IACxD,MAAO,IAAgB,EAAQ,CAAM,MAElC,IACH,MAAO,IAAS,EAAQ,EAAQ,CAAS,MAEtC,QACA,IACH,MAAO,IAAI,GAAK,CAAM,MAEnB,IACH,MAAO,IAAY,CAAM,MAEtB,IACH,MAAO,IAAS,EAAQ,EAAQ,CAAS,MAEtC,IACH,MAAO,IAAY,CAAM,EAE/B,CAUA,YAAiB,EAAO,EAAQ,CAC9B,SAAS,GAAiB,GACnB,CAAC,CAAC,GACN,OAAO,IAAS,UAAY,GAAS,KAAK,CAAK,IAC/C,EAAQ,IAAM,EAAQ,GAAK,GAAK,EAAQ,CAC7C,CASA,YAAmB,EAAO,CACxB,GAAI,GAAO,MAAO,GAClB,MAAQ,IAAQ,UAAY,GAAQ,UAAY,GAAQ,UAAY,GAAQ,UACvE,IAAU,YACV,IAAU,IACjB,CASA,YAAkB,EAAM,CACtB,MAAO,CAAC,CAAC,IAAe,KAAc,EACxC,CASA,YAAqB,EAAO,CAC1B,GAAI,GAAO,GAAS,EAAM,YACtB,EAAS,MAAO,IAAQ,YAAc,EAAK,WAAc,GAE7D,MAAO,KAAU,CACnB,CASA,YAAkB,EAAM,CACtB,GAAI,GAAQ,KAAM,CAChB,GAAI,CACF,MAAO,IAAa,KAAK,CAAI,CAC/B,MAAE,CAAW,CACb,GAAI,CACF,MAAQ,GAAO,EACjB,MAAE,CAAW,CACf,CACA,MAAO,EACT,CAoBA,YAAmB,EAAO,CACxB,MAAO,IAAU,EAAO,GAAM,EAAI,CACpC,CAkCA,YAAY,EAAO,EAAO,CACxB,MAAO,KAAU,GAAU,IAAU,GAAS,IAAU,CAC1D,CAoBA,YAAqB,EAAO,CAE1B,MAAO,IAAkB,CAAK,GAAK,GAAe,KAAK,EAAO,QAAQ,GACnE,EAAC,GAAqB,KAAK,EAAO,QAAQ,GAAK,GAAe,KAAK,CAAK,GAAK,GAClF,CAyBA,GAAI,IAAU,MAAM,QA2BpB,YAAqB,EAAO,CAC1B,MAAO,IAAS,MAAQ,GAAS,EAAM,MAAM,GAAK,CAAC,GAAW,CAAK,CACrE,CA2BA,YAA2B,EAAO,CAChC,MAAO,IAAa,CAAK,GAAK,GAAY,CAAK,CACjD,CAmBA,GAAI,IAAW,IAAkB,GAmBjC,YAAoB,EAAO,CAGzB,GAAI,GAAM,GAAS,CAAK,EAAI,GAAe,KAAK,CAAK,EAAI,GACzD,MAAO,IAAO,IAAW,GAAO,EAClC,CA4BA,YAAkB,EAAO,CACvB,MAAO,OAAO,IAAS,UACrB,EAAQ,IAAM,EAAQ,GAAK,GAAK,GAAS,EAC7C,CA2BA,YAAkB,EAAO,CACvB,GAAI,GAAO,MAAO,GAClB,MAAO,CAAC,CAAC,GAAU,IAAQ,UAAY,GAAQ,WACjD,CA0BA,YAAsB,EAAO,CAC3B,MAAO,CAAC,CAAC,GAAS,MAAO,IAAS,QACpC,CA8BA,YAAc,EAAQ,CACpB,MAAO,IAAY,CAAM,EAAI,GAAc,CAAM,EAAI,GAAS,CAAM,CACtE,CAoBA,aAAqB,CACnB,MAAO,CAAC,CACV,CAeA,aAAqB,CACnB,MAAO,EACT,CAEA,GAAO,QAAU,KCntDjB,gCAOA,GAAM,IAAK,QAAQ,MACb,GAAY,KACZ,GAAY,KAGZ,GAAsB,CAC1B,aACA,6BACF,EAEM,GAAwB,SACxB,GAAsB,OAE5B,YAAgB,EAAW,EAAS,CAClC,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,CAAO,CAE3B,CAcA,YAAgB,EAAG,CACjB,MAAO,QAAO,UAAU,CAAC,GAAK,GAAK,GAAK,GAAK,KAC/C,CASA,YAA4B,EAAG,CAC7B,MAAO,QAAO,CAAC,EAAE,SAAS,eAAe,CAC3C,CAEA,GAAM,IAAQ,CACZ,IAAK,UAAW,CAAE,EAClB,IAAK,SAAS,EAAG,CACf,GAAO,OAAO,UAAU,CAAC,EAAG,oBAAoB,CAClD,EACA,IAAK,SAAS,EAAG,CACf,GAAO,OAAO,UAAU,CAAC,GAAK,GAAK,EAAG,4BAA4B,CACpE,EACA,KAAM,SAAS,EAAG,CAChB,GAAO,GAAO,CAAC,EAAG,sCAAsC,CAC1D,EACA,mBAAoB,SAAS,EAAG,CAC9B,GAAO,GAAmB,CAAC,EAAG,sBAAsB,CACtD,EACA,2BAA4B,SAAS,EAAG,CACtC,AAAK,GAAmB,CAAC,GACvB,GAAO,GAAO,CAAC,EAAG,iEAAiE,CAEvF,CACF,EAEA,GAAM,QAAU,GAAM,IAEtB,GAAM,IAAoB,GAAI,KAExB,GAAmB,CAAC,IAAK,KAAK,KAAK,EAEzC,YAAiB,EAAK,EAAe,CACnC,GAAM,GAAQ,OAAO,KAAK,CAAG,EACzB,EAEE,EAAU,CAAC,EAEjB,KAAO,EAAM,QAAQ,CACnB,EAAM,EAAM,MAAM,EAClB,GAAI,GAAM,GAAK,EAAK,CAAG,EACvB,GAAI,MAAO,IAAQ,UAAY,CAAC,MAAM,QAAQ,CAAG,GAAK,GAAO,KAAM,CACjE,GAAI,EACF,GAAI,kBAAoB,GACtB,EAAM,EAAI,eACV,EAAM,EAAM,sBACP,CACL,EAAQ,KAAK,CAAC,EAAK,CAAG,CAAC,EACvB,QACF,CAEF,GAAM,GAAU,OAAO,KAAK,CAAG,EAG/B,GAAI,EAAQ,OAAS,EAAG,CACtB,EAAQ,QAAQ,SAAS,EAAQ,CAC/B,EAAM,KAAK,EAAM,IAAM,CAAM,CAC/B,CAAC,EACD,QACF,CACF,CACA,EAAQ,KAAK,CAAC,EAAK,CAAG,CAAC,CACzB,CAEA,GAAM,GAAY,CAAC,EACnB,SAAQ,QAAQ,SAAS,EAAO,CAC9B,GAAI,GAAM,EAAM,GAChB,AAAI,GACF,GAAM,EAAI,QAAQ,oBAAqB,EAAE,GAE3C,GAAM,GAAM,EAAM,GAClB,EAAU,GAAO,CACnB,CAAC,EAEM,CACT,CAEA,YAAkB,EAAU,EAAQ,EAAkB,CACpD,GAAM,GAAS,CACb,WAAY,CAAC,EACb,aAAc,CAAC,EACf,QAAS,CAAC,CACZ,EAEM,EAAe,GAAQ,CAAQ,EAC/B,EAAa,GAAQ,EAAO,eAAgB,EAAI,EAEtD,cAAO,KAAK,CAAU,EAAE,QAAQ,SAAS,EAAM,CAC7C,GAAM,GAAa,EAAW,GAC1B,EAAe,EAAa,GAChC,GAAI,CAAE,KAAQ,IACZ,GAAI,CACF,GAAI,MAAO,GAAW,SAAY,UAChC,CAAC,MAAM,QAAQ,EAAW,OAAO,EAGjC,EAAe,GAAK,EAAU,CAAI,MAElC,MAAM,IAAI,OAAM,SAAS,CAE7B,MAAE,CACA,GAAM,GAAM,GAAI,OAAM,wBAA0B,EAC5C,qDAAqD,EACzD,EAAO,QAAQ,KAAK,CAAG,EACvB,MACF,CAcF,GAZA,MAAO,GAAa,GAGhB,GAAW,SAAW,UAAY,MAAO,GAAW,SAAY,WAClE,OAAO,KAAK,CAAY,EACrB,OAAO,SAAS,EAAK,CACpB,MAAO,GAAI,YAAY,EAAO,IAAK,CAAC,IAAM,CAC5C,CAAC,EAAE,QAAQ,SAAS,EAAK,CACvB,MAAO,GAAa,EACtB,CAAC,EAGD,CAAE,OAAO,GAAW,QAAY,KAC9B,IAAiB,EAAW,SAChC,GAAI,CACF,EAAW,QAAQ,CAAY,CACjC,OAAS,EAAP,CACA,EAAO,aAAa,KAAK,CAAG,CAC9B,CAIJ,CAAC,EAEG,GACF,OAAO,KAAK,CAAY,EAAE,QAAQ,SAAS,EAAM,CAC/C,GAAM,GAAM,GAAI,OAAM,wBAA0B,EAC5C,8BAA8B,EAClC,EAAO,WAAW,KAAK,CAAG,CAC5B,CAAC,EAGI,CACT,CAGA,YAAkB,EAAS,EAAG,CAC5B,GAAO,EAAQ,QAAQ,CAAC,IAAM,GAAI,uCAC3B,KAAK,UAAU,CAAO,CAAC,CAChC,CAEA,GAAM,IAAoB,CACxB,OACA,MACA,OACA,OACA,QACA,MACF,EACM,GAAiB,OAAO,KAAK,EAAiB,EAC9C,GAAY,GAAe,IAAI,SAAS,EAAM,CAClD,MAAO,IAAkB,EAC3B,CAAC,EAED,YAAyB,EAAM,EAAM,EAAO,EAAU,EAAK,EAAM,EAAW,CAC1E,GAAI,IAAS,iBACX,KAAM,IAAI,OAAM,IAAM,EAAW,kDAAkD,EAIrF,GAAI,MAAO,IAAS,UAAY,IAAS,MAAQ,CAAC,MAAM,QAAQ,CAAI,GAClE,OAAO,KAAK,CAAI,EAAE,OAAS,GAAK,CAAE,YAAa,IAAO,CACtD,EAAM,GAAQ,CACZ,eAAgB,CAAC,CACnB,EACA,OAAO,KAAK,CAAI,EAAE,QAAQ,SAAS,EAAG,CACpC,GAAgB,EAAG,EAAK,GAAI,EAAM,GAAM,eAAgB,EAAW,IACnD,EAAG,EAAK,EAAM,CAAS,CACzC,CAAC,EACD,MACF,KAAO,AAAI,OAAO,IAAS,UAAY,MAAM,QAAQ,CAAI,GACvD,IAAS,MAAQ,OAAO,KAAK,CAAI,EAAE,QAAU,IAE7C,GAAO,CAAC,QAAS,CAAI,GAGvB,GAAM,GAAI,GAAU,CAAI,EAWxB,GAVA,EAAM,GAAQ,EAEV,EAAE,KACC,GAAI,EAAE,MACT,GAAI,EAAE,KAAO,CAAC,GAEhB,EAAI,EAAE,KAAK,KAAK,CAAQ,GAItB,EAAE,IAAK,CACT,GAAI,EAAK,EAAE,KACT,KAAM,IAAI,OAAM,IAAM,EAAW,qCAC/B,EAAE,GAAG,EAET,EAAK,EAAE,KAAO,CAChB,CAGA,AAAI,EAAE,YAAc,IAClB,EAAU,IAAI,CAAQ,EAIxB,GAAM,GAAS,EAAE,OACb,EAEJ,GAAI,GAAU,QAAQ,CAAM,GAAK,GAAK,GAAe,QAAQ,CAAM,GAAK,EAAG,CAGzE,GAAM,GAAS,MAAO,IAAW,SAAW,GAAkB,GAAU,EACxE,EAAY,SAAS,EAAG,CACtB,GAAO,OAAO,UAAU,SAAS,KAAK,CAAC,GACrC,OAAO,UAAU,SAAS,KAAK,GAAI,EAAQ,EAC7C,mBAAqB,EAAO,IAAI,CAClC,EACA,EAAE,OAAS,EAAO,KAAK,YAAY,CAErC,SAAW,MAAO,IAAW,SAAU,CAErC,GAAI,CAAC,GAAM,GACT,KAAM,IAAI,OAAM,IAAM,EAAW,kCAC/B,CAAM,EAIV,EAAY,GAAM,EAEpB,SAAW,MAAM,QAAQ,CAAM,EAE7B,EAAY,GAAS,KAAK,KAAM,CAAM,UAE7B,MAAO,IAAW,WAC3B,EAAY,UAEH,GAAU,MAAO,IAAW,WACrC,KAAM,IAAI,OAAM,IAAM,EACpB,wDAAwD,EAG5D,GAAI,CAAC,GAAa,CAAC,EAAQ,CAEzB,GAAM,GAAO,OAAO,UAAU,SAAS,KAAK,EAAE,OAAO,EACrD,EAAY,SAAS,EAAG,CACtB,GAAO,OAAO,UAAU,SAAS,KAAK,CAAC,GAAK,EAC1C,sBAAwB,EAAK,QAAQ,WAAY,EAAE,CAAC,CACxD,CACF,CAEA,EAAE,QAAU,SAAS,EAAG,CAEtB,GAAI,OAAK,UAAY,IAAM,MAI3B,GAAI,CACF,EAAU,EAAG,IAAI,CACnB,OAAS,EAAP,CAEA,QAAE,SAAW,EACb,EAAE,MAAQ,EACJ,CACR,CACF,CACF,CAEA,YAA2B,EAAG,CAC5B,GAAM,GAAM,EAAE,OAAO,EACrB,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,SAAS,EAAQ,CAC3C,AAAI,EAAI,KAAY,QAElB,AADW,EAAE,KAAK,GACf,QAAQ,SAAS,EAAG,CACrB,EAAE,IAAI,EAAG,EAAI,EAAO,CACtB,CAAC,CAEL,CAAC,CACH,CAEA,YAAyB,EAAG,CAC1B,GAAM,GAAO,GAAU,EAAE,QAAQ,EAAG,CAClC,cAAe,CACb,eAAgB,EAClB,CACF,CAAC,EACD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,SAAS,EAAQ,CAC5C,GAAM,GAAI,EAAE,MAAM,GAClB,AAAI,EAAK,KAAY,QACnB,EAAE,IAAI,EAAG,OAAO,EAAK,EAAO,CAAC,CAEjC,CAAC,CACH,CAEA,YAA0B,EAAQ,EAAG,EAAU,CAC7C,OAAO,KAAK,EAAO,cAAc,EAAE,QAAQ,SAAS,EAAM,CACxD,GAAM,GAAI,EAAO,eAAe,GAChC,GAAI,EAAE,eAAgB,CACpB,GAAM,GAAO,EAAE,IAAS,CAAC,EACzB,GAAiB,EAAG,EAAM,CAAQ,EAClC,EAAE,GAAQ,CACZ,KACE,GAAE,GAAQ,GAAO,EAAM,GAAU,EAAE,OAAO,EAAG,EAAQ,CAAQ,CAEjE,CAAC,CACH,CAEA,YAAe,EAAG,CAChB,MAAO,OAAO,IAAM,UAAY,IAAM,IACxC,CAEA,YAAiB,EAAM,EAAI,EAAQ,CACjC,OAAO,KAAK,CAAI,EAAE,QAAQ,SAAS,EAAG,CAEpC,AAAI,MAAM,QAAQ,EAAK,EAAE,GAAK,CAAC,GAAM,EAAK,EAAE,GAAK,CAAC,GAAU,EAAO,SAAW,SAC5E,EAAG,GAAK,GAAO,EAAG,EAAK,GAAI,CAAM,EAE5B,IAAM,EAAG,EAAE,GACd,GAAG,GAAK,CAAC,GAEX,GAAQ,EAAK,GAAI,EAAG,GAAI,EAAO,eAAe,EAAE,EAEpD,CAAC,CACH,CAEA,YAAwB,EAAQ,EAAM,CACpC,GAAM,GAAK,EAAK,MAAM,GAAG,EACrB,EAAI,EACR,KAAO,EAAG,OAAS,GAAG,CACpB,GAAM,GAAI,EAAG,MAAM,EACnB,GAAI,GAAK,EAAE,gBAAkB,EAAE,eAAe,GAC5C,EAAI,EAAE,eAAe,OAChB,CACL,EAAI,KACJ,KACF,CACF,CAEA,MAAO,EACT,CAEA,YAAmB,EAAQ,EAAM,CAC/B,GAAM,GAAI,GAAe,EAAQ,CAAI,EACrC,MAAI,IAAK,KACA,KAEL,MAAO,GAAE,QAAW,SACf,EAAE,OAEP,EAAE,SAAW,KACR,MAAO,GAAE,QAEX,IACT,CAEA,YAAgB,EAAG,EAAG,EAAQ,EAAU,CACtC,GAAM,GAAS,GAAU,EAAQ,CAAC,EAElC,GAAI,MAAO,IAAM,SAAU,CACzB,GAAI,GAAkB,IAAI,CAAM,EAC9B,MAAO,IAAkB,IAAI,CAAM,EAAE,EAAG,EAAU,CAAC,EAErD,OAAQ,OACH,WACA,UACA,cACA,MAAO,EAAI,SAAS,EAAG,EAAE,EAAG,UAC5B,6BAA8B,EAAI,GAAmB,CAAC,EAAI,EAAI,SAAS,EAAG,EAAE,EAAG,UAC/E,SAAU,EAAI,WAAW,CAAC,EAAG,UAC7B,UAAW,EAAI,OAAO,CAAC,EAAE,YAAY,IAAM,QAAS,UACpD,QAAS,EAAI,EAAE,MAAM,GAAG,EAAG,UAC3B,SAAU,EAAI,KAAK,MAAM,CAAC,EAAG,UAC7B,SAAU,EAAI,GAAI,QAAO,CAAC,EAAG,eAIpC,CAEA,MAAO,EACT,CAEA,YAAkB,EAAM,CACtB,GAAM,GAAW,EAAK,MAAM,GAAG,EACzB,EAAY,EAAS,OAAS,EAAI,EAAS,IAAI,EAAI,GAKzD,MAAO,AAJO,IAAiB,IAAc,GAAiB,MAIjD,GAAG,aAAa,EAAM,OAAO,CAAC,CAC7C,CAEA,YAAc,EAAK,EAAM,EAAmB,CAC1C,GAAI,EAAM,CACR,GAAM,GAAK,EAAK,MAAM,GAAG,EACzB,KAAO,EAAG,QAAQ,CAChB,GAAM,GAAI,EAAG,MAAM,EACnB,GAAI,GAAqB,EAAI,IAAM,KACjC,EAAI,GAAK,CAAC,EACV,EAAM,EAAI,WACD,IAAK,GACd,EAAM,EAAI,OAEV,MAAM,IAAI,OAAM,oCAAsC,EAAO,GAAG,CAEpE,CACF,CAEA,MAAO,EACT,CAKA,GAAM,IAAU,SAAiB,EAAK,EAAM,CAI1C,GAAM,GAAK,CAKT,QAAS,UAAW,CAClB,MAAO,IAAQ,EAAK,MAAQ,QAAQ,KAAK,MAAM,CAAC,CAClD,EAMA,OAAQ,UAAW,CACjB,MAAO,IAAQ,EAAK,KAAO,QAAQ,GACrC,EAKA,cAAe,UAAW,CACxB,MAAO,IAAU,KAAK,SAAS,CACjC,EAOA,SAAU,UAAW,CACnB,GAAM,GAAQ,GAAU,KAAK,SAAS,EACtC,YAAK,WAAW,QAAQ,SAAS,EAAK,CACpC,GAAM,GAAO,EAAI,MAAM,GAAG,EACpB,EAAW,EAAK,IAAI,EACpB,EAAY,EAAK,KAAK,GAAG,EACzB,EAAS,GAAK,EAAO,CAAS,EACpC,EAAO,GAAY,aACrB,CAAC,EACM,KAAK,UAAU,EAAO,KAAM,CAAC,CACtC,EAKA,UAAW,UAAW,CACpB,MAAO,MAAK,MAAM,KAAK,UAAU,KAAK,OAAO,CAAC,CAChD,EAKA,gBAAiB,UAAW,CAC1B,MAAO,MAAK,UAAU,KAAK,QAAS,KAAM,CAAC,CAC7C,EAMA,IAAK,SAAS,EAAM,CAClB,GAAM,GAAI,GAAK,KAAK,UAAW,CAAI,EACnC,MAAO,IAAU,CAAC,CACpB,EAMA,QAAS,SAAS,EAAM,CAGtB,EAAO,EAAK,MAAM,GAAG,EAAE,KAAK,kBAAkB,EAAI,WAClD,GAAM,GAAI,GAAK,KAAK,QAAQ,eAAgB,CAAI,EAChD,MAAO,IAAU,CAAC,CACpB,EAKA,MAAO,SAAS,EAAW,CACzB,KAAK,IAAI,EAAW,KAAK,QAAQ,CAAS,CAAC,CAC7C,EAKA,IAAK,SAAS,EAAM,CAClB,GAAI,CAGF,MAAO,OAFG,MAAK,IAAI,CAAI,EAEH,GACtB,MAAE,CACA,MAAO,EACT,CACF,EAOA,IAAK,SAAS,EAAG,EAAG,CAClB,OAAW,KAAsB,IAC/B,GAAI,EAAE,WAAW,CAAkB,GAC/B,EAAE,SAAS,IAAI,GAAoB,EACrC,MAAO,MAIX,EAAI,GAAO,EAAG,EAAG,KAAK,QAAS,IAAI,EACnC,GAAM,GAAO,EAAE,MAAM,GAAG,EAClB,EAAW,EAAK,IAAI,EACpB,EAAY,EAAK,KAAK,GAAG,EACzB,EAAS,GAAK,KAAK,UAAW,EAAW,EAAI,EACnD,SAAO,GAAY,EACZ,IACT,EAKA,KAAM,SAAS,EAAM,CACnB,UAAQ,EAAM,KAAK,UAAW,KAAK,OAAO,EAE1C,GAAkB,CAAE,EACpB,GAAgB,CAAE,EACX,IACT,EAKA,SAAU,SAAS,EAAO,CACxB,GAAM,GAAO,KACb,MAAK,OAAM,QAAQ,CAAK,GACtB,GAAQ,CAAC,CAAK,GAEhB,EAAM,QAAQ,SAAS,EAAM,CAE3B,GAAM,GAAS,GAAS,CAAI,EAC5B,AAAI,GACF,GAAQ,EAAQ,EAAK,UAAW,EAAK,OAAO,CAEhD,CAAC,EAED,GAAkB,CAAE,EACpB,GAAgB,CAAE,EACX,IACT,EAKA,SAAU,SAAS,EAAS,CAK1B,GAJA,EAAU,GAAW,CAAC,EAEtB,EAAQ,QAAU,EAAQ,SAAW,GAEjC,EAAQ,QAAU,MAAO,GAAQ,QAAW,WAC9C,KAAM,IAAI,OAAM,oDAAoD,EAGtE,GAAM,GAAkB,EAAQ,QAAU,OAAO,QAAQ,IAEnD,EAAS,GAAS,KAAK,UAAW,KAAK,QAAS,EAAQ,OAAO,EAErE,GAAI,EAAO,aAAa,OAAS,EAAO,WAAW,OAAS,EAAO,QAAQ,OAAQ,CACjF,GAAM,GAAY,KAAK,WAEjB,EAAkB,SAAS,EAAQ,CACvC,GAAI,GAAU,GACd,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CAEtC,AAAI,EAAQ,QACV,IAAW;AAAA,GAGb,GAAM,GAAI,EAAO,GAEjB,AAAI,EAAE,UACJ,IAAW,EAAE,SAAW,MAEtB,EAAE,SACJ,IAAW,EAAE,SAEX,EAAE,OAAS,CAAC,EAAU,IAAI,EAAE,QAAQ,GACtC,IAAW,eAAiB,KAAK,UAAU,EAAE,KAAK,EAEtD,CACA,MAAO,EACT,EAEM,EAAgB,EAAgB,EAAO,YAAY,EACnD,EAAiB,EAAgB,EAAO,UAAU,EAClD,EAAkB,EAAgB,EAAO,OAAO,EAEhD,EAAkB,CAAC,EAAe,CAAe,EAEvD,GAAI,EAAQ,UAAY,IAAuB,EAAe,OAAQ,CACpE,GAAI,GAAU,WACd,GAAI,QAAQ,OAAO,MAAO,CAExB,GAAM,GAAuB,aACvB,EAAuB,UAC7B,EAAU,EAAuB,EAAU,CAC7C,CACA,EAAgB,EAAU,IAAM,CAAc,CAChD,KAAO,AAAI,GAAQ,UAAY,IAC7B,EAAgB,KAAK,CAAc,EAGrC,GAAM,GAAS,EACZ,OAAO,SAAS,EAAK,CACpB,MAAO,GAAI,MACb,CAAC,EACA,KAAK;AAAA,CAAI,EAEZ,GAAI,EAAO,OACT,KAAM,IAAI,OAAM,CAAM,CAG1B,CACA,MAAO,KACT,CACF,EAGA,MAAI,OAAO,IAAQ,SACjB,EAAG,KAAO,GAAS,CAAG,EAEtB,EAAG,KAAO,EAIZ,EAAG,QAAU,CACX,eAAgB,CAAC,CACnB,EAEA,EAAG,KAAO,CAAC,EACX,EAAG,MAAQ,CAAC,EACZ,EAAG,WAAa,GAAI,KAEpB,OAAO,KAAK,EAAG,IAAI,EAAE,QAAQ,SAAS,EAAG,CACvC,GAAgB,EAAG,EAAG,KAAK,GAAI,EAAG,QAAQ,eAAgB,EAAG,EAAG,KAAM,EAAG,MACvE,EAAG,UAAU,CACjB,CAAC,EAED,EAAG,UAAY,CAAC,EAChB,GAAiB,EAAG,QAAS,EAAG,UAAW,CAAE,EAC7C,GAAkB,CAAE,EACpB,GAAgB,CAAE,EAEX,CACT,EAKA,GAAQ,UAAY,SAAS,EAAM,EAAU,EAAQ,CAMnD,GALI,MAAO,IAAS,UAClB,GAAW,EAAK,SAChB,EAAS,EAAK,OACd,EAAO,EAAK,MAEV,MAAO,IAAa,WACtB,KAAM,IAAI,OAAM,2BAA6B,EAAO,sBAAsB,EAE5E,GAAI,GAAU,MAAO,IAAW,WAC9B,KAAM,IAAI,OAAM,uBAAyB,EAAO,sBAAsB,EAExE,GAAM,GAAQ,EACV,GACF,GAAkB,IAAI,EAAM,CAAM,CAEtC,EAKA,GAAQ,WAAa,SAAS,EAAS,CACrC,OAAO,KAAK,CAAO,EAAE,QAAQ,SAAS,EAAM,CAC1C,GAAQ,UAAU,EAAM,EAAQ,GAAM,SAAU,EAAQ,GAAM,MAAM,CACtE,CAAC,CACH,EAKA,GAAQ,UAAY,SAAS,EAAS,CACpC,AAAK,MAAM,QAAQ,CAAO,GACxB,GAAU,CAAC,CAAO,GAGpB,EAAQ,QAAQ,SAAS,EAAQ,CAC/B,GAAI,CAAC,EACH,KAAM,IAAI,OAAM,gBAAgB,EAElC,GAAI,CAAC,EAAO,UACV,KAAM,IAAI,OAAM,0BAA0B,EAE5C,GAAI,CAAC,EAAO,MACV,KAAM,IAAI,OAAM,+BAA+B,EAGjD,GAAI,MAAO,GAAO,OAAU,WAC1B,KAAM,IAAI,OAAM,+BAA+B,EAIjD,AADmB,CAAC,MAAM,QAAQ,EAAO,SAAS,EAAyB,EAAO,UAA5B,CAAC,EAAO,SAAS,GAC5D,QAAQ,SAAS,EAAW,CACrC,GAAI,MAAO,IAAc,SACvB,KAAM,IAAI,OAAM,0BAA0B,EAE5C,GAAiB,GAAa,EAAO,KACvC,CAAC,CACH,CAAC,CACH,EAEA,GAAO,QAAU,KCjxBjB,2BACA,GAAI,IAAmB,IAAQ,GAAK,iBAAoB,SAAU,EAAK,CACnE,MAAQ,IAAO,EAAI,WAAc,EAAM,CAAE,QAAW,CAAI,CAC5D,EACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAQ,UAAY,OACpB,GAAM,IAAc,GAAgB,IAAsB,EACpD,GAAY,GAAgB,IAAkB,EAC9C,GAAO,GAAgB,QAAQ,KAAK,EACpC,GAAS,GAAgB,QAAQ,OAAO,EAC9C,QAAgB,CACZ,YAAY,EAAa,CAErB,GADA,KAAK,KAAO,CAAC,EACT,CAAC,GAAY,QAAQ,cACrB,KAAM,IAAI,OAAM,gEAAgE,EAEpF,GAAM,GAAO,GAAY,QAAQ,uBAAuB,CAAW,EACnE,AAAI,IAAS,MACL,OAAO,GAAK,OAAW,KACvB,GAAU,QAAQ,UAAU,EAAK,MAAM,EAEvC,MAAO,GAAK,QAAY,KACxB,GAAU,QAAQ,WAAW,EAAK,OAAO,EAE7C,KAAK,KAAO,GAEhB,KAAK,UAAY,GAAI,GACrB,KAAK,OAAS,KAAK,aAAa,KAAK,SAAS,EAC9C,KAAK,OAAS,GAAU,QAAQ,KAAK,MAAM,CAC/C,CACA,KAAK,EAAS,KAAM,CAChB,GAAI,GAAW,KAKf,GAJI,MAAO,MAAK,KAAK,KAAS,KAC1B,GAAK,QAAQ,WAAW,GAAO,QAAQ,QAAQ,KAAK,KAAK,IAAI,CAAC,GAC9D,GAAW,KAAK,KAAK,MAErB,MAAO,IAAW,UAAY,MAAM,QAAQ,CAAM,EAAG,CACrD,GAAI,GACJ,AAAI,MAAM,QAAQ,CAAM,EACpB,EAAQ,EAGR,EAAQ,CAAC,CAAM,EAEf,IAAa,MACb,EAAM,QAAQ,CAAQ,EAE1B,KAAK,OAAO,SAAS,CAAK,CAC9B,SACS,IAAW,KAChB,AAAI,IAAa,KACb,KAAK,OAAO,SAAS,CAAQ,EAG7B,KAAK,OAAO,KAAK,CAAC,CAAC,UAGlB,MAAO,IAAW,SACvB,AAAI,IAAa,MACb,KAAK,OAAO,SAAS,CAAQ,EAEjC,KAAK,OAAO,KAAK,CAAM,MAGvB,MAAM,IAAI,OAAM,oCAAoC,GAAQ,EAEhE,GAAM,GAAU,KAAK,KAAK,mBAAqB,OACzC,SACA,KAAK,KAAK,iBAChB,KAAK,OAAO,SAAS,CAAE,SAAQ,CAAC,EAChC,GAAM,GAAY,KAAK,OAAO,cAAc,EAC5C,MAAO,MAAK,iBAAiB,KAAK,UAAW,CAAS,CAC1D,CACA,aAAa,EAAQ,CACjB,GAAM,GAAS,CAAC,EAChB,OAAW,KAAO,IAAY,QAAQ,mBAAmB,CAAM,EAAG,CAC9D,GAAM,GAAO,GAAY,QAAQ,0BAA0B,EAAQ,CAAG,EACtE,GAAI,GAAY,QAAQ,cAAc,CAAI,GAAK,GAAY,QAAQ,cAAc,CAAI,EACjF,GAAI,CACA,EAAO,GAAO,GAAI,GAClB,EAAO,GAAO,KAAK,aAAa,EAAO,EAAI,CAC/C,OACO,EAAP,CACI,cAAQ,MAAM,CAAK,EACb,GAAI,OAAM,iCAAmC,CAAI,CAC3D,KAGA,GAAO,GAAO,CAEtB,CACA,MAAO,EACX,CACA,iBAAiB,EAAQ,EAAQ,CAC7B,OAAW,KAAO,IAAY,QAAQ,mBAAmB,CAAM,EAAG,CAC9D,GAAM,GAAO,GAAY,QAAQ,0BAA0B,EAAQ,CAAG,EACtE,AAAI,GAAY,QAAQ,cAAc,CAAI,GAAK,GAAY,QAAQ,cAAc,CAAI,EACjF,KAAK,iBAAiB,EAAO,GAAM,EAAO,IAAQ,CAAC,CAAC,EAGhD,IAAO,IACP,GAAO,GAAO,EAAO,GAGjC,CACA,MAAO,EACX,CACJ,EACA,GAAQ,UAAY,KC5GpB,2BACA,GAAI,IAAmB,IAAQ,GAAK,iBAAqB,QAAO,OAAU,SAAS,EAAG,EAAG,EAAG,EAAI,CAC5F,AAAI,IAAO,QAAW,GAAK,GAC3B,OAAO,eAAe,EAAG,EAAI,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,MAAO,GAAE,EAAI,CAAE,CAAC,CACvF,EAAM,SAAS,EAAG,EAAG,EAAG,EAAI,CACxB,AAAI,IAAO,QAAW,GAAK,GAC3B,EAAE,GAAM,EAAE,EACd,GACI,GAAgB,IAAQ,GAAK,cAAiB,SAAS,EAAG,EAAS,CACnE,OAAS,KAAK,GAAG,AAAI,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAK,EAAS,CAAC,GAAG,GAAgB,EAAS,EAAG,CAAC,CAC5H,EACA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,GAAa,KAAyB,EAAO,EAC7C,GAAa,KAAyB,EAAO,EAC7C,GAAa,KAAwB,EAAO,ICd5C,2BAEA,GAAQ,aAAe,SAAU,EAAI,CACnC,MAAO,QAAO,eAAe,YAAa,EAAM,CAC9C,GAAI,MAAO,GAAK,EAAK,OAAS,IAAO,WAAY,EAAG,MAAM,KAAM,CAAI,MAElE,OAAO,IAAI,SAAQ,CAAC,EAAS,IAAW,CACtC,EAAG,KACD,KACA,GAAG,EACH,CAAC,EAAK,IAAS,GAAO,KAAQ,EAAO,CAAG,EAAI,EAAQ,CAAG,CACzD,CACF,CAAC,CAEL,EAAG,OAAQ,CAAE,MAAO,EAAG,IAAK,CAAC,CAC/B,EAEA,GAAQ,YAAc,SAAU,EAAI,CAClC,MAAO,QAAO,eAAe,YAAa,EAAM,CAC9C,GAAM,GAAK,EAAK,EAAK,OAAS,GAC9B,GAAI,MAAO,IAAO,WAAY,MAAO,GAAG,MAAM,KAAM,CAAI,EACnD,EAAG,MAAM,KAAM,EAAK,MAAM,EAAG,EAAE,CAAC,EAAE,KAAK,GAAK,EAAG,KAAM,CAAC,EAAG,CAAE,CAClE,EAAG,OAAQ,CAAE,MAAO,EAAG,IAAK,CAAC,CAC/B,ICvBA,sBAAI,IAAY,QAAQ,aAEpB,GAAU,QAAQ,IAClB,GAAM,KAEN,GAAW,QAAQ,IAAI,sBAAwB,QAAQ,SAE3D,QAAQ,IAAM,UAAW,CACvB,MAAK,KACH,IAAM,GAAQ,KAAK,OAAO,GACrB,EACT,EACA,GAAI,CACF,QAAQ,IAAI,CACd,MAAE,CAAY,CAGd,AAAI,MAAO,SAAQ,OAAU,YACvB,IAAQ,QAAQ,MACpB,QAAQ,MAAQ,SAAU,EAAG,CAC3B,GAAM,KACN,GAAM,KAAK,QAAS,CAAC,CACvB,EACI,OAAO,gBAAgB,OAAO,eAAe,QAAQ,MAAO,EAAK,GALjE,OAQN,GAAO,QAAU,GAEjB,YAAgB,EAAI,CAKlB,AAAI,GAAU,eAAe,WAAW,GACpC,QAAQ,QAAQ,MAAM,wBAAwB,GAChD,EAAY,CAAE,EAIX,EAAG,SACN,EAAa,CAAE,EAQjB,EAAG,MAAQ,EAAS,EAAG,KAAK,EAC5B,EAAG,OAAS,EAAS,EAAG,MAAM,EAC9B,EAAG,OAAS,EAAS,EAAG,MAAM,EAE9B,EAAG,MAAQ,EAAS,EAAG,KAAK,EAC5B,EAAG,OAAS,EAAS,EAAG,MAAM,EAC9B,EAAG,OAAS,EAAS,EAAG,MAAM,EAE9B,EAAG,UAAY,EAAa,EAAG,SAAS,EACxC,EAAG,WAAa,EAAa,EAAG,UAAU,EAC1C,EAAG,WAAa,EAAa,EAAG,UAAU,EAE1C,EAAG,UAAY,EAAa,EAAG,SAAS,EACxC,EAAG,WAAa,EAAa,EAAG,UAAU,EAC1C,EAAG,WAAa,EAAa,EAAG,UAAU,EAE1C,EAAG,KAAO,EAAQ,EAAG,IAAI,EACzB,EAAG,MAAQ,EAAQ,EAAG,KAAK,EAC3B,EAAG,MAAQ,EAAQ,EAAG,KAAK,EAE3B,EAAG,SAAW,EAAY,EAAG,QAAQ,EACrC,EAAG,UAAY,EAAY,EAAG,SAAS,EACvC,EAAG,UAAY,EAAY,EAAG,SAAS,EAGnC,EAAG,OAAS,CAAC,EAAG,QAClB,GAAG,OAAS,SAAU,EAAM,EAAM,EAAI,CACpC,AAAI,GAAI,QAAQ,SAAS,CAAE,CAC7B,EACA,EAAG,WAAa,UAAY,CAAC,GAE3B,EAAG,OAAS,CAAC,EAAG,QAClB,GAAG,OAAS,SAAU,EAAM,EAAK,EAAK,EAAI,CACxC,AAAI,GAAI,QAAQ,SAAS,CAAE,CAC7B,EACA,EAAG,WAAa,UAAY,CAAC,GAY3B,KAAa,SACf,GAAG,OAAS,MAAO,GAAG,QAAW,WAAa,EAAG,OAC9C,SAAU,EAAW,CACtB,WAAiB,EAAM,EAAI,EAAI,CAC7B,GAAI,GAAQ,KAAK,IAAI,EACjB,EAAU,EACd,EAAU,EAAM,EAAI,WAAa,EAAI,CACnC,GAAI,GACI,GAAG,OAAS,UAAY,EAAG,OAAS,UACrC,KAAK,IAAI,EAAI,EAAQ,IAAO,CACjC,WAAW,UAAW,CACpB,EAAG,KAAK,EAAI,SAAU,EAAQ,EAAI,CAChC,AAAI,GAAU,EAAO,OAAS,SAC5B,EAAU,EAAM,EAAI,CAAE,EAEtB,EAAG,CAAE,CACT,CAAC,CACH,EAAG,CAAO,EACN,EAAU,KACZ,IAAW,IACb,MACF,CACA,AAAI,GAAI,EAAG,CAAE,CACf,CAAC,CACH,CACA,MAAI,QAAO,gBAAgB,OAAO,eAAe,EAAQ,CAAS,EAC3D,CACT,EAAG,EAAG,MAAM,GAId,EAAG,KAAO,MAAO,GAAG,MAAS,WAAa,EAAG,KAC1C,SAAU,EAAS,CACpB,WAAe,EAAI,EAAQ,EAAQ,EAAQ,EAAU,EAAW,CAC9D,GAAI,GACJ,GAAI,GAAa,MAAO,IAAc,WAAY,CAChD,GAAI,GAAa,EACjB,EAAW,SAAU,EAAI,GAAG,GAAI,CAC9B,GAAI,GAAM,EAAG,OAAS,UAAY,EAAa,GAC7C,WACO,EAAQ,KAAK,EAAI,EAAI,EAAQ,EAAQ,EAAQ,EAAU,CAAQ,EAExE,EAAU,MAAM,KAAM,SAAS,CACjC,CACF,CACA,MAAO,GAAQ,KAAK,EAAI,EAAI,EAAQ,EAAQ,EAAQ,EAAU,CAAQ,CACxE,CAGA,MAAI,QAAO,gBAAgB,OAAO,eAAe,EAAM,CAAO,EACvD,CACT,EAAG,EAAG,IAAI,EAEV,EAAG,SAAW,MAAO,GAAG,UAAa,WAAa,EAAG,SAClD,SAAU,EAAa,CAAE,MAAO,UAAU,EAAI,EAAQ,EAAQ,EAAQ,EAAU,CAEjF,OADI,GAAa,IAEf,GAAI,CACF,MAAO,GAAY,KAAK,EAAI,EAAI,EAAQ,EAAQ,EAAQ,CAAQ,CAClE,OAAS,EAAP,CACA,GAAI,EAAG,OAAS,UAAY,EAAa,GAAI,CAC3C,IACA,QACF,CACA,KAAM,EACR,CAEJ,CAAC,EAAG,EAAG,QAAQ,EAEf,WAAsB,EAAI,CACxB,EAAG,OAAS,SAAU,EAAM,EAAM,EAAU,CAC1C,EAAG,KAAM,EACA,GAAU,SAAW,GAAU,UAC/B,EACA,SAAU,EAAK,EAAI,CAC1B,GAAI,EAAK,CACP,AAAI,GAAU,EAAS,CAAG,EAC1B,MACF,CAGA,EAAG,OAAO,EAAI,EAAM,SAAU,EAAK,CACjC,EAAG,MAAM,EAAI,SAAS,EAAM,CAC1B,AAAI,GAAU,EAAS,GAAO,CAAI,CACpC,CAAC,CACH,CAAC,CACH,CAAC,CACH,EAEA,EAAG,WAAa,SAAU,EAAM,EAAM,CACpC,GAAI,GAAK,EAAG,SAAS,EAAM,GAAU,SAAW,GAAU,UAAW,CAAI,EAIrE,EAAQ,GACR,EACJ,GAAI,CACF,EAAM,EAAG,WAAW,EAAI,CAAI,EAC5B,EAAQ,EACV,QAAE,CACA,GAAI,EACF,GAAI,CACF,EAAG,UAAU,CAAE,CACjB,MAAE,CAAY,KAEd,GAAG,UAAU,CAAE,CAEnB,CACA,MAAO,EACT,CACF,CAEA,WAAuB,EAAI,CACzB,AAAI,GAAU,eAAe,WAAW,GAAK,EAAG,QAC9C,GAAG,QAAU,SAAU,EAAM,EAAI,EAAI,EAAI,CACvC,EAAG,KAAK,EAAM,GAAU,UAAW,SAAU,EAAI,EAAI,CACnD,GAAI,EAAI,CACN,AAAI,GAAI,EAAG,CAAE,EACb,MACF,CACA,EAAG,QAAQ,EAAI,EAAI,EAAI,SAAU,EAAI,CACnC,EAAG,MAAM,EAAI,SAAU,EAAK,CAC1B,AAAI,GAAI,EAAG,GAAM,CAAG,CACtB,CAAC,CACH,CAAC,CACH,CAAC,CACH,EAEA,EAAG,YAAc,SAAU,EAAM,EAAI,EAAI,CACvC,GAAI,GAAK,EAAG,SAAS,EAAM,GAAU,SAAS,EAC1C,EACA,EAAQ,GACZ,GAAI,CACF,EAAM,EAAG,YAAY,EAAI,EAAI,CAAE,EAC/B,EAAQ,EACV,QAAE,CACA,GAAI,EACF,GAAI,CACF,EAAG,UAAU,CAAE,CACjB,MAAE,CAAY,KAEd,GAAG,UAAU,CAAE,CAEnB,CACA,MAAO,EACT,GAES,EAAG,SACZ,GAAG,QAAU,SAAU,EAAI,EAAI,EAAI,EAAI,CAAE,AAAI,GAAI,QAAQ,SAAS,CAAE,CAAE,EACtE,EAAG,YAAc,UAAY,CAAC,EAElC,CAEA,WAAmB,EAAM,CACvB,MAAK,IACE,SAAU,EAAQ,EAAM,EAAI,CACjC,MAAO,GAAK,KAAK,EAAI,EAAQ,EAAM,SAAU,EAAI,CAC/C,AAAI,EAAU,CAAE,GAAG,GAAK,MACpB,GAAI,EAAG,MAAM,KAAM,SAAS,CAClC,CAAC,CACH,CACF,CAEA,WAAuB,EAAM,CAC3B,MAAK,IACE,SAAU,EAAQ,EAAM,CAC7B,GAAI,CACF,MAAO,GAAK,KAAK,EAAI,EAAQ,CAAI,CACnC,OAAS,EAAP,CACA,GAAI,CAAC,EAAU,CAAE,EAAG,KAAM,EAC5B,CACF,CACF,CAGA,WAAmB,EAAM,CACvB,MAAK,IACE,SAAU,EAAQ,EAAK,EAAK,EAAI,CACrC,MAAO,GAAK,KAAK,EAAI,EAAQ,EAAK,EAAK,SAAU,EAAI,CACnD,AAAI,EAAU,CAAE,GAAG,GAAK,MACpB,GAAI,EAAG,MAAM,KAAM,SAAS,CAClC,CAAC,CACH,CACF,CAEA,WAAuB,EAAM,CAC3B,MAAK,IACE,SAAU,EAAQ,EAAK,EAAK,CACjC,GAAI,CACF,MAAO,GAAK,KAAK,EAAI,EAAQ,EAAK,CAAG,CACvC,OAAS,EAAP,CACA,GAAI,CAAC,EAAU,CAAE,EAAG,KAAM,EAC5B,CACF,CACF,CAEA,WAAkB,EAAM,CACtB,MAAK,IAGE,SAAU,EAAQ,EAAS,EAAI,CACpC,AAAI,MAAO,IAAY,YACrB,GAAK,EACL,EAAU,MAEZ,WAAmB,EAAI,EAAO,CAC5B,AAAI,GACE,GAAM,IAAM,GAAG,GAAM,KAAO,YAC5B,EAAM,IAAM,GAAG,GAAM,KAAO,aAE9B,GAAI,EAAG,MAAM,KAAM,SAAS,CAClC,CACA,MAAO,GAAU,EAAK,KAAK,EAAI,EAAQ,EAAS,CAAQ,EACpD,EAAK,KAAK,EAAI,EAAQ,CAAQ,CACpC,CACF,CAEA,WAAsB,EAAM,CAC1B,MAAK,IAGE,SAAU,EAAQ,EAAS,CAChC,GAAI,GAAQ,EAAU,EAAK,KAAK,EAAI,EAAQ,CAAO,EAC/C,EAAK,KAAK,EAAI,CAAM,EACxB,MAAI,IACE,GAAM,IAAM,GAAG,GAAM,KAAO,YAC5B,EAAM,IAAM,GAAG,GAAM,KAAO,aAE3B,CACT,CACF,CAcA,WAAoB,EAAI,CAItB,GAHI,CAAC,GAGD,EAAG,OAAS,SACd,MAAO,GAET,GAAI,GAAU,CAAC,QAAQ,QAAU,QAAQ,OAAO,IAAM,EACtD,MAAI,MACE,GAAG,OAAS,UAAY,EAAG,OAAS,SAK5C,CACF,IClWA,sBAAI,IAAS,QAAQ,UAAU,OAE/B,GAAO,QAAU,GAEjB,YAAiB,EAAI,CACnB,MAAO,CACL,WAAY,EACZ,YAAa,CACf,EAEA,WAAqB,EAAM,EAAS,CAClC,GAAI,CAAE,gBAAgB,IAAa,MAAO,IAAI,GAAW,EAAM,CAAO,EAEtE,GAAO,KAAK,IAAI,EAEhB,GAAI,GAAO,KAEX,KAAK,KAAO,EACZ,KAAK,GAAK,KACV,KAAK,SAAW,GAChB,KAAK,OAAS,GAEd,KAAK,MAAQ,IACb,KAAK,KAAO,IACZ,KAAK,WAAa,GAAK,KAEvB,EAAU,GAAW,CAAC,EAItB,OADI,GAAO,OAAO,KAAK,CAAO,EACrB,EAAQ,EAAG,EAAS,EAAK,OAAQ,EAAQ,EAAQ,IAAS,CACjE,GAAI,GAAM,EAAK,GACf,KAAK,GAAO,EAAQ,EACtB,CAIA,GAFI,KAAK,UAAU,KAAK,YAAY,KAAK,QAAQ,EAE7C,KAAK,QAAU,OAAW,CAC5B,GAAI,AAAa,MAAO,MAAK,OAAzB,SACF,KAAM,WAAU,wBAAwB,EAE1C,GAAI,KAAK,MAAQ,OACf,KAAK,IAAM,YACF,AAAa,MAAO,MAAK,KAAzB,SACT,KAAM,WAAU,sBAAsB,EAGxC,GAAI,KAAK,MAAQ,KAAK,IACpB,KAAM,IAAI,OAAM,sBAAsB,EAGxC,KAAK,IAAM,KAAK,KAClB,CAEA,GAAI,KAAK,KAAO,KAAM,CACpB,QAAQ,SAAS,UAAW,CAC1B,EAAK,MAAM,CACb,CAAC,EACD,MACF,CAEA,EAAG,KAAK,KAAK,KAAM,KAAK,MAAO,KAAK,KAAM,SAAU,EAAK,EAAI,CAC3D,GAAI,EAAK,CACP,EAAK,KAAK,QAAS,CAAG,EACtB,EAAK,SAAW,GAChB,MACF,CAEA,EAAK,GAAK,EACV,EAAK,KAAK,OAAQ,CAAE,EACpB,EAAK,MAAM,CACb,CAAC,CACH,CAEA,WAAsB,EAAM,EAAS,CACnC,GAAI,CAAE,gBAAgB,IAAc,MAAO,IAAI,GAAY,EAAM,CAAO,EAExE,GAAO,KAAK,IAAI,EAEhB,KAAK,KAAO,EACZ,KAAK,GAAK,KACV,KAAK,SAAW,GAEhB,KAAK,MAAQ,IACb,KAAK,SAAW,SAChB,KAAK,KAAO,IACZ,KAAK,aAAe,EAEpB,EAAU,GAAW,CAAC,EAItB,OADI,GAAO,OAAO,KAAK,CAAO,EACrB,EAAQ,EAAG,EAAS,EAAK,OAAQ,EAAQ,EAAQ,IAAS,CACjE,GAAI,GAAM,EAAK,GACf,KAAK,GAAO,EAAQ,EACtB,CAEA,GAAI,KAAK,QAAU,OAAW,CAC5B,GAAI,AAAa,MAAO,MAAK,OAAzB,SACF,KAAM,WAAU,wBAAwB,EAE1C,GAAI,KAAK,MAAQ,EACf,KAAM,IAAI,OAAM,uBAAuB,EAGzC,KAAK,IAAM,KAAK,KAClB,CAEA,KAAK,KAAO,GACZ,KAAK,OAAS,CAAC,EAEX,KAAK,KAAO,MACd,MAAK,MAAQ,EAAG,KAChB,KAAK,OAAO,KAAK,CAAC,KAAK,MAAO,KAAK,KAAM,KAAK,MAAO,KAAK,KAAM,MAAS,CAAC,EAC1E,KAAK,MAAM,EAEf,CACF,ICrHA,gCAEA,GAAO,QAAU,GAEjB,GAAI,IAAiB,OAAO,gBAAkB,SAAU,EAAK,CAC3D,MAAO,GAAI,SACb,EAEA,YAAgB,EAAK,CACnB,GAAI,IAAQ,MAAQ,MAAO,IAAQ,SACjC,MAAO,GAET,GAAI,YAAe,QACjB,GAAI,GAAO,CAAE,UAAW,GAAe,CAAG,CAAE,MAE5C,IAAI,GAAO,OAAO,OAAO,IAAI,EAE/B,cAAO,oBAAoB,CAAG,EAAE,QAAQ,SAAU,EAAK,CACrD,OAAO,eAAe,EAAM,EAAK,OAAO,yBAAyB,EAAK,CAAG,CAAC,CAC5E,CAAC,EAEM,CACT,ICtBA,sBAAI,IAAK,QAAQ,MACb,GAAY,KACZ,GAAS,KACT,GAAQ,KAER,GAAO,QAAQ,QAGf,GACA,GAGJ,AAAI,MAAO,SAAW,YAAc,MAAO,QAAO,KAAQ,WACxD,IAAgB,OAAO,IAAI,mBAAmB,EAE9C,GAAiB,OAAO,IAAI,sBAAsB,GAElD,IAAgB,uBAChB,GAAiB,2BAGnB,aAAiB,CAAC,CAElB,YAAsB,EAAS,EAAO,CACpC,OAAO,eAAe,EAAS,GAAe,CAC5C,IAAK,UAAW,CACd,MAAO,EACT,CACF,CAAC,CACH,CAEA,GAAI,IAAQ,GACZ,AAAI,GAAK,SACP,GAAQ,GAAK,SAAS,MAAM,EACrB,YAAY,KAAK,QAAQ,IAAI,YAAc,EAAE,GACpD,IAAQ,UAAW,CACjB,GAAI,GAAI,GAAK,OAAO,MAAM,GAAM,SAAS,EACzC,EAAI,SAAW,EAAE,MAAM,IAAI,EAAE,KAAK;AAAA,OAAU,EAC5C,QAAQ,MAAM,CAAC,CACjB,GAGF,AAAK,GAAG,KAEF,IAAQ,OAAO,KAAkB,CAAC,EACtC,GAAa,GAAI,EAAK,EAMtB,GAAG,MAAS,SAAU,EAAU,CAC9B,WAAgB,EAAI,EAAI,CACtB,MAAO,GAAS,KAAK,GAAI,EAAI,SAAU,EAAK,CAE1C,AAAK,GACH,GAAW,EAGT,MAAO,IAAO,YAChB,EAAG,MAAM,KAAM,SAAS,CAC5B,CAAC,CACH,CAEA,cAAO,eAAe,EAAO,GAAgB,CAC3C,MAAO,CACT,CAAC,EACM,CACT,EAAG,GAAG,KAAK,EAEX,GAAG,UAAa,SAAU,EAAc,CACtC,WAAoB,EAAI,CAEtB,EAAa,MAAM,GAAI,SAAS,EAChC,GAAW,CACb,CAEA,cAAO,eAAe,EAAW,GAAgB,CAC/C,MAAO,CACT,CAAC,EACM,CACT,EAAG,GAAG,SAAS,EAEX,YAAY,KAAK,QAAQ,IAAI,YAAc,EAAE,GAC/C,QAAQ,GAAG,OAAQ,UAAW,CAC5B,GAAM,GAAG,GAAc,EACvB,QAAQ,UAAU,MAAM,GAAG,IAAe,OAAQ,CAAC,CACrD,CAAC,GA3CC,OA+CN,AAAK,OAAO,KACV,GAAa,OAAQ,GAAG,GAAc,EAGxC,GAAO,QAAU,GAAM,GAAM,EAAE,CAAC,EAChC,AAAI,QAAQ,IAAI,+BAAiC,CAAC,GAAG,WACjD,IAAO,QAAU,GAAM,EAAE,EACzB,GAAG,UAAY,IAGnB,YAAgB,EAAI,CAElB,GAAU,CAAE,EACZ,EAAG,YAAc,GAEjB,EAAG,iBAAmB,GACtB,EAAG,kBAAoB,GACvB,GAAI,GAAc,EAAG,SACrB,EAAG,SAAW,EACd,WAAmB,EAAM,EAAS,EAAI,CACpC,MAAI,OAAO,IAAY,YACrB,GAAK,EAAS,EAAU,MAEnB,GAAY,EAAM,EAAS,CAAE,EAEpC,YAAsB,GAAM,GAAS,GAAI,GAAW,CAClD,MAAO,GAAY,GAAM,GAAS,SAAU,EAAK,CAC/C,AAAI,GAAQ,GAAI,OAAS,UAAY,EAAI,OAAS,UAChD,GAAQ,CAAC,GAAa,CAAC,GAAM,GAAS,EAAE,EAAG,EAAK,IAAa,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,EAEhF,MAAO,KAAO,YAChB,GAAG,MAAM,KAAM,SAAS,CAE9B,CAAC,CACH,CACF,CAEA,GAAI,GAAe,EAAG,UACtB,EAAG,UAAY,EACf,WAAoB,EAAM,EAAM,EAAS,GAAI,CAC3C,MAAI,OAAO,IAAY,YACrB,IAAK,EAAS,EAAU,MAEnB,GAAa,EAAM,EAAM,EAAS,EAAE,EAE3C,YAAuB,GAAM,GAAM,GAAS,EAAI,GAAW,CACzD,MAAO,GAAa,GAAM,GAAM,GAAS,SAAU,EAAK,CACtD,AAAI,GAAQ,GAAI,OAAS,UAAY,EAAI,OAAS,UAChD,GAAQ,CAAC,GAAc,CAAC,GAAM,GAAM,GAAS,CAAE,EAAG,EAAK,IAAa,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,EAEvF,MAAO,IAAO,YAChB,EAAG,MAAM,KAAM,SAAS,CAE9B,CAAC,CACH,CACF,CAEA,GAAI,GAAgB,EAAG,WACvB,AAAI,GACF,GAAG,WAAa,GAClB,WAAqB,EAAM,EAAM,EAAS,GAAI,CAC5C,MAAI,OAAO,IAAY,YACrB,IAAK,EAAS,EAAU,MAEnB,GAAc,EAAM,EAAM,EAAS,EAAE,EAE5C,YAAwB,GAAM,GAAM,GAAS,EAAI,GAAW,CAC1D,MAAO,GAAc,GAAM,GAAM,GAAS,SAAU,EAAK,CACvD,AAAI,GAAQ,GAAI,OAAS,UAAY,EAAI,OAAS,UAChD,GAAQ,CAAC,GAAe,CAAC,GAAM,GAAM,GAAS,CAAE,EAAG,EAAK,IAAa,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,EAExF,MAAO,IAAO,YAChB,EAAG,MAAM,KAAM,SAAS,CAE9B,CAAC,CACH,CACF,CAEA,GAAI,GAAc,EAAG,SACrB,AAAI,GACF,GAAG,SAAW,GAChB,WAAmB,EAAK,EAAM,EAAO,GAAI,CACvC,MAAI,OAAO,IAAU,YACnB,IAAK,EACL,EAAQ,GAEH,GAAY,EAAK,EAAM,EAAO,EAAE,EAEvC,YAAsB,GAAK,GAAM,GAAO,EAAI,GAAW,CACrD,MAAO,GAAY,GAAK,GAAM,GAAO,SAAU,EAAK,CAClD,AAAI,GAAQ,GAAI,OAAS,UAAY,EAAI,OAAS,UAChD,GAAQ,CAAC,GAAa,CAAC,GAAK,GAAM,GAAO,CAAE,EAAG,EAAK,IAAa,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,EAEnF,MAAO,IAAO,YAChB,EAAG,MAAM,KAAM,SAAS,CAE9B,CAAC,CACH,CACF,CAEA,GAAI,GAAa,EAAG,QACpB,EAAG,QAAU,EACb,GAAI,GAA0B,YAC9B,WAAkB,EAAM,EAAS,EAAI,CACnC,AAAI,MAAO,IAAY,YACrB,GAAK,EAAS,EAAU,MAE1B,GAAI,IAAa,EAAwB,KAAK,QAAQ,OAAO,EACzD,SAAqB,GAAM,GAAS,EAAI,GAAW,CACnD,MAAO,GAAW,GAAM,GACtB,GAAM,GAAS,EAAI,EACrB,CAAC,CACH,EACE,SAAqB,GAAM,GAAS,EAAI,GAAW,CACnD,MAAO,GAAW,GAAM,GAAS,GAC/B,GAAM,GAAS,EAAI,EACrB,CAAC,CACH,EAEF,MAAO,IAAW,EAAM,EAAS,CAAE,EAEnC,YAA6B,GAAM,GAAS,GAAI,EAAW,CACzD,MAAO,UAAU,GAAK,EAAO,CAC3B,AAAI,IAAQ,IAAI,OAAS,UAAY,GAAI,OAAS,UAChD,GAAQ,CACN,GACA,CAAC,GAAM,GAAS,EAAE,EAClB,GACA,GAAa,KAAK,IAAI,EACtB,KAAK,IAAI,CACX,CAAC,EAEG,IAAS,EAAM,MACjB,EAAM,KAAK,EAET,MAAO,KAAO,YAChB,GAAG,KAAK,KAAM,GAAK,CAAK,EAE9B,CACF,CACF,CAEA,GAAI,QAAQ,QAAQ,OAAO,EAAG,CAAC,IAAM,OAAQ,CAC3C,GAAI,GAAa,GAAO,CAAE,EAC1B,EAAa,EAAW,WACxB,EAAc,EAAW,WAC3B,CAEA,GAAI,GAAgB,EAAG,WACvB,AAAI,GACF,GAAW,UAAY,OAAO,OAAO,EAAc,SAAS,EAC5D,EAAW,UAAU,KAAO,GAG9B,GAAI,GAAiB,EAAG,YACxB,AAAI,GACF,GAAY,UAAY,OAAO,OAAO,EAAe,SAAS,EAC9D,EAAY,UAAU,KAAO,GAG/B,OAAO,eAAe,EAAI,aAAc,CACtC,IAAK,UAAY,CACf,MAAO,EACT,EACA,IAAK,SAAU,EAAK,CAClB,EAAa,CACf,EACA,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,OAAO,eAAe,EAAI,cAAe,CACvC,IAAK,UAAY,CACf,MAAO,EACT,EACA,IAAK,SAAU,EAAK,CAClB,EAAc,CAChB,EACA,WAAY,GACZ,aAAc,EAChB,CAAC,EAGD,GAAI,GAAiB,EACrB,OAAO,eAAe,EAAI,iBAAkB,CAC1C,IAAK,UAAY,CACf,MAAO,EACT,EACA,IAAK,SAAU,EAAK,CAClB,EAAiB,CACnB,EACA,WAAY,GACZ,aAAc,EAChB,CAAC,EACD,GAAI,GAAkB,EACtB,OAAO,eAAe,EAAI,kBAAmB,CAC3C,IAAK,UAAY,CACf,MAAO,EACT,EACA,IAAK,SAAU,EAAK,CAClB,EAAkB,CACpB,EACA,WAAY,GACZ,aAAc,EAChB,CAAC,EAED,WAAqB,EAAM,EAAS,CAClC,MAAI,gBAAgB,GACX,GAAc,MAAM,KAAM,SAAS,EAAG,MAEtC,EAAW,MAAM,OAAO,OAAO,EAAW,SAAS,EAAG,SAAS,CAC1E,CAEA,YAA4B,CAC1B,GAAI,GAAO,KACX,GAAK,EAAK,KAAM,EAAK,MAAO,EAAK,KAAM,SAAU,EAAK,EAAI,CACxD,AAAI,EACE,GAAK,WACP,EAAK,QAAQ,EAEf,EAAK,KAAK,QAAS,CAAG,GAEtB,GAAK,GAAK,EACV,EAAK,KAAK,OAAQ,CAAE,EACpB,EAAK,KAAK,EAEd,CAAC,CACH,CAEA,WAAsB,EAAM,EAAS,CACnC,MAAI,gBAAgB,GACX,GAAe,MAAM,KAAM,SAAS,EAAG,MAEvC,EAAY,MAAM,OAAO,OAAO,EAAY,SAAS,EAAG,SAAS,CAC5E,CAEA,YAA6B,CAC3B,GAAI,GAAO,KACX,GAAK,EAAK,KAAM,EAAK,MAAO,EAAK,KAAM,SAAU,EAAK,EAAI,CACxD,AAAI,EACF,GAAK,QAAQ,EACb,EAAK,KAAK,QAAS,CAAG,GAEtB,GAAK,GAAK,EACV,EAAK,KAAK,OAAQ,CAAE,EAExB,CAAC,CACH,CAEA,YAA2B,EAAM,EAAS,CACxC,MAAO,IAAI,GAAG,WAAW,EAAM,CAAO,CACxC,CAEA,YAA4B,EAAM,EAAS,CACzC,MAAO,IAAI,GAAG,YAAY,EAAM,CAAO,CACzC,CAEA,GAAI,IAAU,EAAG,KACjB,EAAG,KAAO,GACV,YAAe,EAAM,EAAO,EAAM,GAAI,CACpC,MAAI,OAAO,IAAS,YAClB,IAAK,EAAM,EAAO,MAEb,GAAQ,EAAM,EAAO,EAAM,EAAE,EAEpC,YAAkB,GAAM,GAAO,GAAM,EAAI,GAAW,CAClD,MAAO,IAAQ,GAAM,GAAO,GAAM,SAAU,EAAK,GAAI,CACnD,AAAI,GAAQ,GAAI,OAAS,UAAY,EAAI,OAAS,UAChD,GAAQ,CAAC,GAAS,CAAC,GAAM,GAAO,GAAM,CAAE,EAAG,EAAK,IAAa,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,CAAC,EAEhF,MAAO,IAAO,YAChB,EAAG,MAAM,KAAM,SAAS,CAE9B,CAAC,CACH,CACF,CAEA,MAAO,EACT,CAEA,YAAkB,EAAM,CACtB,GAAM,UAAW,EAAK,GAAG,KAAM,EAAK,EAAE,EACtC,GAAG,IAAe,KAAK,CAAI,EAC3B,GAAM,CACR,CAGA,GAAI,IAKJ,aAAuB,CAErB,OADI,GAAM,KAAK,IAAI,EACV,EAAI,EAAG,EAAI,GAAG,IAAe,OAAQ,EAAE,EAG9C,AAAI,GAAG,IAAe,GAAG,OAAS,GAChC,IAAG,IAAe,GAAG,GAAK,EAC1B,GAAG,IAAe,GAAG,GAAK,GAI9B,GAAM,CACR,CAEA,aAAkB,CAKhB,GAHA,aAAa,EAAU,EACvB,GAAa,OAET,GAAG,IAAe,SAAW,EAGjC,IAAI,GAAO,GAAG,IAAe,MAAM,EAC/B,EAAK,EAAK,GACV,EAAO,EAAK,GAEZ,EAAM,EAAK,GACX,EAAY,EAAK,GACjB,EAAW,EAAK,GAIpB,GAAI,IAAc,OAChB,GAAM,QAAS,EAAG,KAAM,CAAI,EAC5B,EAAG,MAAM,KAAM,CAAI,UACV,KAAK,IAAI,EAAI,GAAa,IAAO,CAE1C,GAAM,UAAW,EAAG,KAAM,CAAI,EAC9B,GAAI,GAAK,EAAK,IAAI,EAClB,AAAI,MAAO,IAAO,YAChB,EAAG,KAAK,KAAM,CAAG,CACrB,KAAO,CAEL,GAAI,GAAe,KAAK,IAAI,EAAI,EAG5B,EAAa,KAAK,IAAI,EAAW,EAAW,CAAC,EAG7C,EAAe,KAAK,IAAI,EAAa,IAAK,GAAG,EAEjD,AAAI,GAAgB,EAClB,IAAM,QAAS,EAAG,KAAM,CAAI,EAC5B,EAAG,MAAM,KAAM,EAAK,OAAO,CAAC,CAAS,CAAC,CAAC,GAIvC,GAAG,IAAe,KAAK,CAAI,CAE/B,CAGA,AAAI,KAAe,QACjB,IAAa,WAAW,GAAO,CAAC,GAEpC,IC/bA,2BAGA,GAAM,IAAI,KAAwB,aAC5B,GAAK,KAEL,GAAM,CACV,SACA,aACA,QACA,QACA,QACA,WACA,SACA,SACA,YACA,QACA,QACA,YACA,UACA,SACA,SACA,OACA,QACA,QACA,UACA,OACA,UACA,UACA,WACA,WACA,WACA,SACA,KACA,QACA,OACA,UACA,WACA,SACA,SACA,WACF,EAAE,OAAO,GAKA,MAAO,IAAG,IAAS,UAC3B,EAGD,OAAO,KAAK,EAAE,EAAE,QAAQ,GAAO,CAC7B,AAAI,IAAQ,YAKZ,IAAQ,GAAO,GAAG,GACpB,CAAC,EAGD,GAAI,QAAQ,GAAU,CACpB,GAAQ,GAAU,GAAE,GAAG,EAAO,CAChC,CAAC,EAID,GAAQ,OAAS,SAAU,EAAU,EAAU,CAC7C,MAAI,OAAO,IAAa,WACf,GAAG,OAAO,EAAU,CAAQ,EAE9B,GAAI,SAAQ,GACV,GAAG,OAAO,EAAU,CAAO,CACnC,CACH,EAIA,GAAQ,KAAO,SAAU,EAAI,EAAQ,EAAQ,EAAQ,EAAU,EAAU,CACvE,MAAI,OAAO,IAAa,WACf,GAAG,KAAK,EAAI,EAAQ,EAAQ,EAAQ,EAAU,CAAQ,EAExD,GAAI,SAAQ,CAAC,EAAS,IAAW,CACtC,GAAG,KAAK,EAAI,EAAQ,EAAQ,EAAQ,EAAU,CAAC,EAAK,EAAW,IAAW,CACxE,GAAI,EAAK,MAAO,GAAO,CAAG,EAC1B,EAAQ,CAAE,YAAW,QAAO,CAAC,CAC/B,CAAC,CACH,CAAC,CACH,EAOA,GAAQ,MAAQ,SAAU,EAAI,KAAW,EAAM,CAC7C,MAAI,OAAO,GAAK,EAAK,OAAS,IAAO,WAC5B,GAAG,MAAM,EAAI,EAAQ,GAAG,CAAI,EAG9B,GAAI,SAAQ,CAAC,EAAS,IAAW,CACtC,GAAG,MAAM,EAAI,EAAQ,GAAG,EAAM,CAAC,EAAK,EAAc,IAAW,CAC3D,GAAI,EAAK,MAAO,GAAO,CAAG,EAC1B,EAAQ,CAAE,eAAc,QAAO,CAAC,CAClC,CAAC,CACH,CAAC,CACH,EAGA,AAAI,MAAO,IAAG,QAAW,YAIvB,IAAQ,OAAS,SAAU,EAAI,KAAY,EAAM,CAC/C,MAAI,OAAO,GAAK,EAAK,OAAS,IAAO,WAC5B,GAAG,OAAO,EAAI,EAAS,GAAG,CAAI,EAGhC,GAAI,SAAQ,CAAC,EAAS,IAAW,CACtC,GAAG,OAAO,EAAI,EAAS,GAAG,EAAM,CAAC,EAAK,EAAc,IAAY,CAC9D,GAAI,EAAK,MAAO,GAAO,CAAG,EAC1B,EAAQ,CAAE,eAAc,SAAQ,CAAC,CACnC,CAAC,CACH,CAAC,CACH,GAIF,AAAI,MAAO,IAAG,SAAS,QAAW,YAChC,IAAQ,SAAS,OAAS,GAAE,GAAG,SAAS,MAAM,KChIhD,sBAAO,QAAU,GAAK,CACpB,GAAM,GAAI,QAAQ,SAAS,KAAK,MAAM,GAAG,EAAE,IAAI,GAAK,SAAS,EAAG,EAAE,CAAC,EACnE,SAAI,EAAE,MAAM,GAAG,EAAE,IAAI,GAAK,SAAS,EAAG,EAAE,CAAC,EAClC,EAAE,GAAK,EAAE,IAAO,EAAE,KAAO,EAAE,IAAO,GAAE,GAAK,EAAE,IAAO,EAAE,KAAO,EAAE,IAAM,EAAE,IAAM,EAAE,GACtF,ICJA,gCAMA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAc,KAEd,GAA2B,GAAY,SAAS,EAIhD,GAAY,GAAO,CACvB,GAAI,QAAQ,WAAa,SACa,YAAY,KAAK,EAAI,QAAQ,GAAK,MAAM,CAAG,EAAE,KAAM,EAAE,CAAC,EAEzD,CAC/B,GAAM,GAAQ,GAAI,OAAM,qCAAqC,GAAK,EAClE,QAAM,KAAO,SACP,CACR,CAEJ,EAEM,GAAiB,GAAW,CAChC,GAAM,GAAW,CAAE,KAAM,GAAM,EAC/B,MAAI,OAAO,IAAY,UAAU,GAAU,CAAE,KAAM,CAAQ,GACpD,OAAK,GAAa,EAC3B,EAEM,GAAkB,GAAO,CAG7B,GAAM,GAAQ,GAAI,OAAM,mCAAmC,IAAM,EACjE,SAAM,KAAO,QACb,EAAM,MAAQ,MACd,EAAM,KAAO,EACb,EAAM,QAAU,QACT,CACT,EAEA,GAAO,QAAQ,QAAU,MAAO,EAAO,IAAY,CAIjD,GAHA,GAAU,CAAK,EACf,EAAU,GAAe,CAAO,EAE5B,GAA0B,CAC5B,GAAM,GAAM,GAAK,QAAQ,CAAK,EAE9B,MAAO,IAAG,MAAM,EAAK,CACnB,KAAM,EAAQ,KACd,UAAW,EACb,CAAC,CACH,CAEA,GAAM,GAAO,KAAM,IAAO,CACxB,GAAI,CACF,KAAM,IAAG,MAAM,EAAK,EAAQ,IAAI,CAClC,OAAS,EAAP,CACA,GAAI,EAAM,OAAS,QACjB,KAAM,GAGR,GAAI,EAAM,OAAS,SAAU,CAC3B,GAAI,GAAK,QAAQ,CAAG,IAAM,EACxB,KAAM,IAAgB,CAAG,EAG3B,GAAI,EAAM,QAAQ,SAAS,YAAY,EACrC,KAAM,GAGR,YAAM,GAAK,GAAK,QAAQ,CAAG,CAAC,EACrB,EAAK,CAAG,CACjB,CAEA,GAAI,CAEF,GAAI,CAAC,AADS,MAAM,IAAG,KAAK,CAAG,GACpB,YAAY,EAGrB,KAAM,IAAI,OAAM,6BAA6B,CAEjD,MAAE,CACA,KAAM,EACR,CACF,CACF,EAEA,MAAO,GAAK,GAAK,QAAQ,CAAK,CAAC,CACjC,EAEA,GAAO,QAAQ,YAAc,CAAC,EAAO,IAAY,CAI/C,GAHA,GAAU,CAAK,EACf,EAAU,GAAe,CAAO,EAE5B,GAA0B,CAC5B,GAAM,GAAM,GAAK,QAAQ,CAAK,EAE9B,MAAO,IAAG,UAAU,EAAK,CACvB,KAAM,EAAQ,KACd,UAAW,EACb,CAAC,CACH,CAEA,GAAM,GAAO,GAAO,CAClB,GAAI,CACF,GAAG,UAAU,EAAK,EAAQ,IAAI,CAChC,OAAS,EAAP,CACA,GAAI,EAAM,OAAS,QACjB,KAAM,GAGR,GAAI,EAAM,OAAS,SAAU,CAC3B,GAAI,GAAK,QAAQ,CAAG,IAAM,EACxB,KAAM,IAAgB,CAAG,EAG3B,GAAI,EAAM,QAAQ,SAAS,YAAY,EACrC,KAAM,GAGR,SAAK,GAAK,QAAQ,CAAG,CAAC,EACf,EAAK,CAAG,CACjB,CAEA,GAAI,CACF,GAAI,CAAC,GAAG,SAAS,CAAG,EAAE,YAAY,EAGhC,KAAM,IAAI,OAAM,6BAA6B,CAEjD,MAAE,CACA,KAAM,EACR,CACF,CACF,EAEA,MAAO,GAAK,GAAK,QAAQ,CAAK,CAAC,CACjC,IC5IA,gCACA,GAAM,IAAI,KAAwB,YAC5B,CAAE,QAAS,GAAU,gBAAgB,KACrC,GAAU,GAAE,EAAQ,EAE1B,GAAO,QAAU,CACf,OAAQ,GACR,WAAY,GAEZ,OAAQ,GACR,WAAY,GACZ,UAAW,GACX,cAAe,EACjB,ICbA,gCAEA,GAAM,IAAK,KAEX,YAAuB,EAAM,EAAO,EAAO,EAAU,CAEnD,GAAG,KAAK,EAAM,KAAM,CAAC,EAAK,IAAO,CAC/B,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAG,QAAQ,EAAI,EAAO,EAAO,GAAc,CACzC,GAAG,MAAM,EAAI,GAAY,CACvB,AAAI,GAAU,EAAS,GAAc,CAAQ,CAC/C,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAEA,YAA2B,EAAM,EAAO,EAAO,CAC7C,GAAM,GAAK,GAAG,SAAS,EAAM,IAAI,EACjC,UAAG,YAAY,EAAI,EAAO,CAAK,EACxB,GAAG,UAAU,CAAE,CACxB,CAEA,GAAO,QAAU,CACf,gBACA,mBACF,ICzBA,gCAEA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAO,QAAQ,QACf,GAAc,KAEd,GAAqB,GAAY,QAAQ,EACzC,GAAO,AAAC,GAAS,GAAqB,GAAG,KAAK,EAAM,CAAE,OAAQ,EAAK,CAAC,EAAI,GAAG,KAAK,CAAI,EACpF,GAAW,AAAC,GAAS,GAAqB,GAAG,SAAS,EAAM,CAAE,OAAQ,EAAK,CAAC,EAAI,GAAG,SAAS,CAAI,EAEtG,YAAmB,EAAK,EAAM,CAC5B,MAAO,SAAQ,IAAI,CACjB,GAAK,CAAG,EACR,GAAK,CAAI,EAAE,MAAM,GAAO,CACtB,GAAI,EAAI,OAAS,SAAU,MAAO,MAClC,KAAM,EACR,CAAC,CACH,CAAC,EAAE,KAAK,CAAC,CAAC,EAAS,KAAe,EAAE,UAAS,UAAS,EAAE,CAC1D,CAEA,YAAuB,EAAK,EAAM,CAChC,GAAI,GACE,EAAU,GAAS,CAAG,EAC5B,GAAI,CACF,EAAW,GAAS,CAAI,CAC1B,OAAS,EAAP,CACA,GAAI,EAAI,OAAS,SAAU,MAAO,CAAE,UAAS,SAAU,IAAK,EAC5D,KAAM,EACR,CACA,MAAO,CAAE,UAAS,UAAS,CAC7B,CAEA,YAAqB,EAAK,EAAM,EAAU,EAAI,CAC5C,GAAK,YAAY,EAAQ,EAAE,EAAK,EAAM,CAAC,EAAK,IAAU,CACpD,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAM,CAAE,UAAS,YAAa,EAC9B,MAAI,IAAY,GAAa,EAAS,CAAQ,EACrC,EAAG,GAAI,OAAM,8CAA8C,CAAC,EAEjE,EAAQ,YAAY,GAAK,GAAY,EAAK,CAAI,EACzC,EAAG,GAAI,OAAM,GAAO,EAAK,EAAM,CAAQ,CAAC,CAAC,EAE3C,EAAG,KAAM,CAAE,UAAS,UAAS,CAAC,CACvC,CAAC,CACH,CAEA,YAAyB,EAAK,EAAM,EAAU,CAC5C,GAAM,CAAE,UAAS,YAAa,GAAa,EAAK,CAAI,EACpD,GAAI,GAAY,GAAa,EAAS,CAAQ,EAC5C,KAAM,IAAI,OAAM,8CAA8C,EAEhE,GAAI,EAAQ,YAAY,GAAK,GAAY,EAAK,CAAI,EAChD,KAAM,IAAI,OAAM,GAAO,EAAK,EAAM,CAAQ,CAAC,EAE7C,MAAO,CAAE,UAAS,UAAS,CAC7B,CAMA,YAA2B,EAAK,EAAS,EAAM,EAAU,EAAI,CAC3D,GAAM,GAAY,GAAK,QAAQ,GAAK,QAAQ,CAAG,CAAC,EAC1C,EAAa,GAAK,QAAQ,GAAK,QAAQ,CAAI,CAAC,EAClD,GAAI,IAAe,GAAa,IAAe,GAAK,MAAM,CAAU,EAAE,KAAM,MAAO,GAAG,EACtF,GAAM,GAAW,CAAC,EAAK,IACjB,EACE,EAAI,OAAS,SAAiB,EAAG,EAC9B,EAAG,CAAG,EAEX,GAAa,EAAS,CAAQ,EACzB,EAAG,GAAI,OAAM,GAAO,EAAK,EAAM,CAAQ,CAAC,CAAC,EAE3C,GAAiB,EAAK,EAAS,EAAY,EAAU,CAAE,EAEhE,AAAI,GAAoB,GAAG,KAAK,EAAY,CAAE,OAAQ,EAAK,EAAG,CAAQ,EACjE,GAAG,KAAK,EAAY,CAAQ,CACnC,CAEA,YAA+B,EAAK,EAAS,EAAM,EAAU,CAC3D,GAAM,GAAY,GAAK,QAAQ,GAAK,QAAQ,CAAG,CAAC,EAC1C,EAAa,GAAK,QAAQ,GAAK,QAAQ,CAAI,CAAC,EAClD,GAAI,IAAe,GAAa,IAAe,GAAK,MAAM,CAAU,EAAE,KAAM,OAC5E,GAAI,GACJ,GAAI,CACF,EAAW,GAAS,CAAU,CAChC,OAAS,EAAP,CACA,GAAI,EAAI,OAAS,SAAU,OAC3B,KAAM,EACR,CACA,GAAI,GAAa,EAAS,CAAQ,EAChC,KAAM,IAAI,OAAM,GAAO,EAAK,EAAM,CAAQ,CAAC,EAE7C,MAAO,IAAqB,EAAK,EAAS,EAAY,CAAQ,CAChE,CAEA,YAAuB,EAAS,EAAU,CACxC,MAAI,KAAS,KAAO,EAAS,KAAO,EAAS,MAAQ,EAAQ,KAAO,EAAS,MAAQ,EAAQ,KACvF,KAAsB,EAAS,IAAM,OAAO,kBAO5C,EAAS,OAAS,EAAQ,MAC1B,EAAS,OAAS,EAAQ,MAC1B,EAAS,QAAU,EAAQ,OAC3B,EAAS,UAAY,EAAQ,SAC7B,EAAS,UAAY,EAAQ,SAC7B,EAAS,UAAY,EAAQ,SAC7B,EAAS,cAAgB,EAAQ,aAMzC,CAIA,YAAsB,EAAK,EAAM,CAC/B,GAAM,GAAS,GAAK,QAAQ,CAAG,EAAE,MAAM,GAAK,GAAG,EAAE,OAAO,GAAK,CAAC,EACxD,EAAU,GAAK,QAAQ,CAAI,EAAE,MAAM,GAAK,GAAG,EAAE,OAAO,GAAK,CAAC,EAChE,MAAO,GAAO,OAAO,CAAC,EAAK,EAAK,IAAM,GAAO,EAAQ,KAAO,EAAK,EAAI,CACvE,CAEA,YAAiB,EAAK,EAAM,EAAU,CACpC,MAAO,UAAU,MAAa,oCAAsC,KACtE,CAEA,GAAO,QAAU,CACf,cACA,kBACA,oBACA,wBACA,cACF,IC1IA,gCAEA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAa,KAAqB,WAClC,GAAmB,KAA0B,iBAC7C,GAAO,KAEb,YAAmB,EAAK,EAAM,EAAM,CAClC,AAAI,MAAO,IAAS,YAClB,GAAO,CAAE,OAAQ,CAAK,GAGxB,EAAO,GAAQ,CAAC,EAChB,EAAK,QAAU,WAAa,GAAO,CAAC,CAAC,EAAK,QAAU,GACpD,EAAK,UAAY,aAAe,GAAO,CAAC,CAAC,EAAK,UAAY,EAAK,QAG3D,EAAK,oBAAsB,QAAQ,OAAS,QAC9C,QAAQ,KAAK;AAAA;AAAA,iEACgD,EAG/D,GAAM,CAAE,UAAS,YAAa,GAAK,eAAe,EAAK,EAAM,MAAM,EACnE,UAAK,qBAAqB,EAAK,EAAS,EAAM,MAAM,EAC7C,GAAoB,EAAU,EAAK,EAAM,CAAI,CACtD,CAEA,YAA8B,EAAU,EAAK,EAAM,EAAM,CACvD,GAAI,EAAK,QAAU,CAAC,EAAK,OAAO,EAAK,CAAI,EAAG,OAC5C,GAAM,GAAa,GAAK,QAAQ,CAAI,EACpC,MAAK,IAAG,WAAW,CAAU,GAAG,GAAW,CAAU,EAC9C,GAAU,EAAU,EAAK,EAAM,CAAI,CAC5C,CAEA,YAAoB,EAAU,EAAK,EAAM,EAAM,CAC7C,GAAI,IAAK,QAAU,CAAC,EAAK,OAAO,EAAK,CAAI,GACzC,MAAO,IAAS,EAAU,EAAK,EAAM,CAAI,CAC3C,CAEA,YAAmB,EAAU,EAAK,EAAM,EAAM,CAE5C,GAAM,GAAU,AADC,GAAK,YAAc,GAAG,SAAW,GAAG,WAC5B,CAAG,EAE5B,GAAI,EAAQ,YAAY,EAAG,MAAO,IAAM,EAAS,EAAU,EAAK,EAAM,CAAI,EACrE,GAAI,EAAQ,OAAO,GACf,EAAQ,kBAAkB,GAC1B,EAAQ,cAAc,EAAG,MAAO,IAAO,EAAS,EAAU,EAAK,EAAM,CAAI,EAC7E,GAAI,EAAQ,eAAe,EAAG,MAAO,IAAO,EAAU,EAAK,EAAM,CAAI,CAC5E,CAEA,YAAiB,EAAS,EAAU,EAAK,EAAM,EAAM,CACnD,MAAK,GACE,GAAY,EAAS,EAAK,EAAM,CAAI,EADrB,GAAS,EAAS,EAAK,EAAM,CAAI,CAEzD,CAEA,YAAsB,EAAS,EAAK,EAAM,EAAM,CAC9C,GAAI,EAAK,UACP,UAAG,WAAW,CAAI,EACX,GAAS,EAAS,EAAK,EAAM,CAAI,EACnC,GAAI,EAAK,aACd,KAAM,IAAI,OAAM,IAAI,mBAAsB,CAE9C,CAEA,YAAmB,EAAS,EAAK,EAAM,EAAM,CAC3C,UAAG,aAAa,EAAK,CAAI,EACrB,EAAK,oBAAoB,GAAiB,EAAQ,KAAM,EAAK,CAAI,EAC9D,GAAY,EAAM,EAAQ,IAAI,CACvC,CAEA,YAA2B,EAAS,EAAK,EAAM,CAI7C,MAAI,IAAkB,CAAO,GAAG,GAAiB,EAAM,CAAO,EACvD,GAAkB,EAAK,CAAI,CACpC,CAEA,YAA4B,EAAS,CACnC,MAAQ,GAAU,OAAW,CAC/B,CAEA,YAA2B,EAAM,EAAS,CACxC,MAAO,IAAY,EAAM,EAAU,GAAK,CAC1C,CAEA,YAAsB,EAAM,EAAS,CACnC,MAAO,IAAG,UAAU,EAAM,CAAO,CACnC,CAEA,YAA4B,EAAK,EAAM,CAIrC,GAAM,GAAiB,GAAG,SAAS,CAAG,EACtC,MAAO,IAAiB,EAAM,EAAe,MAAO,EAAe,KAAK,CAC1E,CAEA,YAAgB,EAAS,EAAU,EAAK,EAAM,EAAM,CAClD,GAAI,CAAC,EAAU,MAAO,IAAa,EAAQ,KAAM,EAAK,EAAM,CAAI,EAChE,GAAI,GAAY,CAAC,EAAS,YAAY,EACpC,KAAM,IAAI,OAAM,mCAAmC,sBAAyB,KAAO,EAErF,MAAO,IAAQ,EAAK,EAAM,CAAI,CAChC,CAEA,YAAuB,EAAS,EAAK,EAAM,EAAM,CAC/C,UAAG,UAAU,CAAI,EACjB,GAAQ,EAAK,EAAM,CAAI,EAChB,GAAY,EAAM,CAAO,CAClC,CAEA,YAAkB,EAAK,EAAM,EAAM,CACjC,GAAG,YAAY,CAAG,EAAE,QAAQ,GAAQ,GAAY,EAAM,EAAK,EAAM,CAAI,CAAC,CACxE,CAEA,YAAsB,EAAM,EAAK,EAAM,EAAM,CAC3C,GAAM,GAAU,GAAK,KAAK,EAAK,CAAI,EAC7B,EAAW,GAAK,KAAK,EAAM,CAAI,EAC/B,CAAE,YAAa,GAAK,eAAe,EAAS,EAAU,MAAM,EAClE,MAAO,IAAU,EAAU,EAAS,EAAU,CAAI,CACpD,CAEA,YAAiB,EAAU,EAAK,EAAM,EAAM,CAC1C,GAAI,GAAc,GAAG,aAAa,CAAG,EAKrC,GAJI,EAAK,aACP,GAAc,GAAK,QAAQ,QAAQ,IAAI,EAAG,CAAW,GAGlD,EAEE,CACL,GAAI,GACJ,GAAI,CACF,EAAe,GAAG,aAAa,CAAI,CACrC,OAAS,EAAP,CAIA,GAAI,EAAI,OAAS,UAAY,EAAI,OAAS,UAAW,MAAO,IAAG,YAAY,EAAa,CAAI,EAC5F,KAAM,EACR,CAIA,GAHI,EAAK,aACP,GAAe,GAAK,QAAQ,QAAQ,IAAI,EAAG,CAAY,GAErD,GAAK,YAAY,EAAa,CAAY,EAC5C,KAAM,IAAI,OAAM,gBAAgB,oCAA8C,KAAgB,EAMhG,GAAI,GAAG,SAAS,CAAI,EAAE,YAAY,GAAK,GAAK,YAAY,EAAc,CAAW,EAC/E,KAAM,IAAI,OAAM,qBAAqB,YAAuB,KAAe,EAE7E,MAAO,IAAS,EAAa,CAAI,CACnC,KA1BE,OAAO,IAAG,YAAY,EAAa,CAAI,CA2B3C,CAEA,YAAmB,EAAa,EAAM,CACpC,UAAG,WAAW,CAAI,EACX,GAAG,YAAY,EAAa,CAAI,CACzC,CAEA,GAAO,QAAU,KCrKjB,gCAEA,GAAO,QAAU,CACf,SAAU,IACZ,ICJA,gCACA,GAAM,IAAI,KAAwB,YAC5B,GAAK,KAEX,YAAqB,EAAM,CACzB,MAAO,IAAG,OAAO,CAAI,EAAE,KAAK,IAAM,EAAI,EAAE,MAAM,IAAM,EAAK,CAC3D,CAEA,GAAO,QAAU,CACf,WAAY,GAAE,EAAU,EACxB,eAAgB,GAAG,UACrB,ICXA,gCAEA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAS,KAAqB,OAC9B,GAAa,KAA0B,WACvC,GAAe,KAA0B,aACzC,GAAO,KAEb,YAAe,EAAK,EAAM,EAAM,EAAI,CAClC,AAAI,MAAO,IAAS,YAAc,CAAC,EACjC,GAAK,EACL,EAAO,CAAC,GACC,MAAO,IAAS,YACzB,GAAO,CAAE,OAAQ,CAAK,GAGxB,EAAK,GAAM,UAAY,CAAC,EACxB,EAAO,GAAQ,CAAC,EAEhB,EAAK,QAAU,WAAa,GAAO,CAAC,CAAC,EAAK,QAAU,GACpD,EAAK,UAAY,aAAe,GAAO,CAAC,CAAC,EAAK,UAAY,EAAK,QAG3D,EAAK,oBAAsB,QAAQ,OAAS,QAC9C,QAAQ,KAAK;AAAA;AAAA,iEACgD,EAG/D,GAAK,WAAW,EAAK,EAAM,OAAQ,CAAC,EAAK,IAAU,CACjD,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAM,CAAE,UAAS,YAAa,EAC9B,GAAK,iBAAiB,EAAK,EAAS,EAAM,OAAQ,GAC5C,EAAY,EAAG,CAAG,EAClB,EAAK,OAAe,GAAa,GAAgB,EAAU,EAAK,EAAM,EAAM,CAAE,EAC3E,GAAe,EAAU,EAAK,EAAM,EAAM,CAAE,CACpD,CACH,CAAC,CACH,CAEA,YAAyB,EAAU,EAAK,EAAM,EAAM,EAAI,CACtD,GAAM,GAAa,GAAK,QAAQ,CAAI,EACpC,GAAW,EAAY,CAAC,EAAK,IAAc,CACzC,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAI,EAAW,MAAO,IAAU,EAAU,EAAK,EAAM,EAAM,CAAE,EAC7D,GAAO,EAAY,GACb,EAAY,EAAG,CAAG,EACf,GAAU,EAAU,EAAK,EAAM,EAAM,CAAE,CAC/C,CACH,CAAC,CACH,CAEA,YAAuB,EAAW,EAAU,EAAK,EAAM,EAAM,EAAI,CAC/D,QAAQ,QAAQ,EAAK,OAAO,EAAK,CAAI,CAAC,EAAE,KAAK,GACvC,EAAgB,EAAU,EAAU,EAAK,EAAM,EAAM,CAAE,EACpD,EAAG,EACT,GAAS,EAAG,CAAK,CAAC,CACvB,CAEA,YAAoB,EAAU,EAAK,EAAM,EAAM,EAAI,CACjD,MAAI,GAAK,OAAe,GAAa,GAAU,EAAU,EAAK,EAAM,EAAM,CAAE,EACrE,GAAS,EAAU,EAAK,EAAM,EAAM,CAAE,CAC/C,CAEA,YAAmB,EAAU,EAAK,EAAM,EAAM,EAAI,CAEhD,AADa,GAAK,YAAc,GAAG,KAAO,GAAG,OACxC,EAAK,CAAC,EAAK,IAAY,CAC1B,GAAI,EAAK,MAAO,GAAG,CAAG,EAEtB,GAAI,EAAQ,YAAY,EAAG,MAAO,IAAM,EAAS,EAAU,EAAK,EAAM,EAAM,CAAE,EACzE,GAAI,EAAQ,OAAO,GACf,EAAQ,kBAAkB,GAC1B,EAAQ,cAAc,EAAG,MAAO,IAAO,EAAS,EAAU,EAAK,EAAM,EAAM,CAAE,EACjF,GAAI,EAAQ,eAAe,EAAG,MAAO,IAAO,EAAU,EAAK,EAAM,EAAM,CAAE,CAChF,CAAC,CACH,CAEA,YAAiB,EAAS,EAAU,EAAK,EAAM,EAAM,EAAI,CACvD,MAAK,GACE,GAAY,EAAS,EAAK,EAAM,EAAM,CAAE,EADzB,GAAS,EAAS,EAAK,EAAM,EAAM,CAAE,CAE7D,CAEA,YAAsB,EAAS,EAAK,EAAM,EAAM,EAAI,CAClD,GAAI,EAAK,UACP,GAAG,OAAO,EAAM,GACV,EAAY,EAAG,CAAG,EACf,GAAS,EAAS,EAAK,EAAM,EAAM,CAAE,CAC7C,MACI,OAAI,GAAK,aACP,EAAG,GAAI,OAAM,IAAI,mBAAsB,CAAC,EACnC,EAAG,CACnB,CAEA,YAAmB,EAAS,EAAK,EAAM,EAAM,EAAI,CAC/C,GAAG,SAAS,EAAK,EAAM,GACjB,EAAY,EAAG,CAAG,EAClB,EAAK,mBAA2B,GAAwB,EAAQ,KAAM,EAAK,EAAM,CAAE,EAChF,GAAY,EAAM,EAAQ,KAAM,CAAE,CAC1C,CACH,CAEA,YAAkC,EAAS,EAAK,EAAM,EAAI,CAIxD,MAAI,IAAkB,CAAO,EACpB,GAAiB,EAAM,EAAS,GACjC,EAAY,EAAG,CAAG,EACf,GAAyB,EAAS,EAAK,EAAM,CAAE,CACvD,EAEI,GAAyB,EAAS,EAAK,EAAM,CAAE,CACxD,CAEA,YAA4B,EAAS,CACnC,MAAQ,GAAU,OAAW,CAC/B,CAEA,YAA2B,EAAM,EAAS,EAAI,CAC5C,MAAO,IAAY,EAAM,EAAU,IAAO,CAAE,CAC9C,CAEA,YAAmC,EAAS,EAAK,EAAM,EAAI,CACzD,GAAkB,EAAK,EAAM,GACvB,EAAY,EAAG,CAAG,EACf,GAAY,EAAM,EAAS,CAAE,CACrC,CACH,CAEA,YAAsB,EAAM,EAAS,EAAI,CACvC,MAAO,IAAG,MAAM,EAAM,EAAS,CAAE,CACnC,CAEA,YAA4B,EAAK,EAAM,EAAI,CAIzC,GAAG,KAAK,EAAK,CAAC,EAAK,IACb,EAAY,EAAG,CAAG,EACf,GAAa,EAAM,EAAe,MAAO,EAAe,MAAO,CAAE,CACzE,CACH,CAEA,YAAgB,EAAS,EAAU,EAAK,EAAM,EAAM,EAAI,CACtD,MAAK,GACD,GAAY,CAAC,EAAS,YAAY,EAC7B,EAAG,GAAI,OAAM,mCAAmC,sBAAyB,KAAO,CAAC,EAEnF,GAAQ,EAAK,EAAM,EAAM,CAAE,EAJZ,GAAa,EAAQ,KAAM,EAAK,EAAM,EAAM,CAAE,CAKtE,CAEA,YAAuB,EAAS,EAAK,EAAM,EAAM,EAAI,CACnD,GAAG,MAAM,EAAM,GAAO,CACpB,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAQ,EAAK,EAAM,EAAM,GACnB,EAAY,EAAG,CAAG,EACf,GAAY,EAAM,EAAS,CAAE,CACrC,CACH,CAAC,CACH,CAEA,YAAkB,EAAK,EAAM,EAAM,EAAI,CACrC,GAAG,QAAQ,EAAK,CAAC,EAAK,IAChB,EAAY,EAAG,CAAG,EACf,GAAa,EAAO,EAAK,EAAM,EAAM,CAAE,CAC/C,CACH,CAEA,YAAuB,EAAO,EAAK,EAAM,EAAM,EAAI,CACjD,GAAM,GAAO,EAAM,IAAI,EACvB,MAAK,GACE,GAAY,EAAO,EAAM,EAAK,EAAM,EAAM,CAAE,EADjC,EAAG,CAEvB,CAEA,YAAsB,EAAO,EAAM,EAAK,EAAM,EAAM,EAAI,CACtD,GAAM,GAAU,GAAK,KAAK,EAAK,CAAI,EAC7B,EAAW,GAAK,KAAK,EAAM,CAAI,EACrC,GAAK,WAAW,EAAS,EAAU,OAAQ,CAAC,EAAK,IAAU,CACzD,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAM,CAAE,YAAa,EACrB,GAAU,EAAU,EAAS,EAAU,EAAM,GACvC,EAAY,EAAG,CAAG,EACf,GAAa,EAAO,EAAK,EAAM,EAAM,CAAE,CAC/C,CACH,CAAC,CACH,CAEA,YAAiB,EAAU,EAAK,EAAM,EAAM,EAAI,CAC9C,GAAG,SAAS,EAAK,CAAC,EAAK,IAAgB,CACrC,GAAI,EAAK,MAAO,GAAG,CAAG,EAKtB,GAJI,EAAK,aACP,GAAc,GAAK,QAAQ,QAAQ,IAAI,EAAG,CAAW,GAGlD,EAGH,GAAG,SAAS,EAAM,CAAC,EAAK,IAClB,EAIE,EAAI,OAAS,UAAY,EAAI,OAAS,UAAkB,GAAG,QAAQ,EAAa,EAAM,CAAE,EACrF,EAAG,CAAG,EAEX,GAAK,aACP,GAAe,GAAK,QAAQ,QAAQ,IAAI,EAAG,CAAY,GAErD,GAAK,YAAY,EAAa,CAAY,EACrC,EAAG,GAAI,OAAM,gBAAgB,oCAA8C,KAAgB,CAAC,EAMjG,EAAS,YAAY,GAAK,GAAK,YAAY,EAAc,CAAW,EAC/D,EAAG,GAAI,OAAM,qBAAqB,YAAuB,KAAe,CAAC,EAE3E,GAAS,EAAa,EAAM,CAAE,EACtC,MAxBD,OAAO,IAAG,QAAQ,EAAa,EAAM,CAAE,CA0B3C,CAAC,CACH,CAEA,YAAmB,EAAa,EAAM,EAAI,CACxC,GAAG,OAAO,EAAM,GACV,EAAY,EAAG,CAAG,EACf,GAAG,QAAQ,EAAa,EAAM,CAAE,CACxC,CACH,CAEA,GAAO,QAAU,KCvOjB,gCAEA,GAAM,IAAI,KAAwB,aAClC,GAAO,QAAU,CACf,KAAM,GAAE,IAAiB,CAC3B,ICLA,gCAEA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAS,QAAQ,UAEjB,GAAa,QAAQ,WAAa,QAExC,YAAmB,EAAS,CAS1B,AARgB,CACd,SACA,QACA,OACA,QACA,QACA,SACF,EACQ,QAAQ,GAAK,CACnB,EAAQ,GAAK,EAAQ,IAAM,GAAG,GAC9B,EAAI,EAAI,OACR,EAAQ,GAAK,EAAQ,IAAM,GAAG,EAChC,CAAC,EAED,EAAQ,aAAe,EAAQ,cAAgB,CACjD,CAEA,YAAiB,EAAG,EAAS,EAAI,CAC/B,GAAI,GAAY,EAEhB,AAAI,MAAO,IAAY,YACrB,GAAK,EACL,EAAU,CAAC,GAGb,GAAO,EAAG,sBAAsB,EAChC,GAAO,YAAY,MAAO,GAAG,SAAU,iCAAiC,EACxE,GAAO,YAAY,MAAO,GAAI,WAAY,oCAAoC,EAC9E,GAAO,EAAS,2CAA2C,EAC3D,GAAO,YAAY,MAAO,GAAS,SAAU,kCAAkC,EAE/E,GAAS,CAAO,EAEhB,GAAQ,EAAG,EAAS,WAAa,EAAI,CACnC,GAAI,EAAI,CACN,GAAK,GAAG,OAAS,SAAW,EAAG,OAAS,aAAe,EAAG,OAAS,UAC/D,EAAY,EAAQ,aAAc,CACpC,IACA,GAAM,GAAO,EAAY,IAEzB,MAAO,YAAW,IAAM,GAAQ,EAAG,EAAS,CAAE,EAAG,CAAI,CACvD,CAGA,AAAI,EAAG,OAAS,UAAU,GAAK,KACjC,CAEA,EAAG,CAAE,CACP,CAAC,CACH,CAaA,YAAkB,EAAG,EAAS,EAAI,CAChC,GAAO,CAAC,EACR,GAAO,CAAO,EACd,GAAO,MAAO,IAAO,UAAU,EAI/B,EAAQ,MAAM,EAAG,CAAC,EAAI,IAAO,CAC3B,GAAI,GAAM,EAAG,OAAS,SACpB,MAAO,GAAG,IAAI,EAIhB,GAAI,GAAM,EAAG,OAAS,SAAW,GAC/B,MAAO,IAAY,EAAG,EAAS,EAAI,CAAE,EAGvC,GAAI,GAAM,EAAG,YAAY,EACvB,MAAO,IAAM,EAAG,EAAS,EAAI,CAAE,EAGjC,EAAQ,OAAO,EAAG,GAAM,CACtB,GAAI,EAAI,CACN,GAAI,EAAG,OAAS,SACd,MAAO,GAAG,IAAI,EAEhB,GAAI,EAAG,OAAS,QACd,MAAQ,IACJ,GAAY,EAAG,EAAS,EAAI,CAAE,EAC9B,GAAM,EAAG,EAAS,EAAI,CAAE,EAE9B,GAAI,EAAG,OAAS,SACd,MAAO,IAAM,EAAG,EAAS,EAAI,CAAE,CAEnC,CACA,MAAO,GAAG,CAAE,CACd,CAAC,CACH,CAAC,CACH,CAEA,YAAsB,EAAG,EAAS,EAAI,EAAI,CACxC,GAAO,CAAC,EACR,GAAO,CAAO,EACd,GAAO,MAAO,IAAO,UAAU,EAE/B,EAAQ,MAAM,EAAG,IAAO,GAAO,CAC7B,AAAI,EACF,EAAG,EAAI,OAAS,SAAW,KAAO,CAAE,EAEpC,EAAQ,KAAK,EAAG,CAAC,EAAK,IAAU,CAC9B,AAAI,EACF,EAAG,EAAI,OAAS,SAAW,KAAO,CAAE,EAC/B,AAAI,EAAM,YAAY,EAC3B,GAAM,EAAG,EAAS,EAAI,CAAE,EAExB,EAAQ,OAAO,EAAG,CAAE,CAExB,CAAC,CAEL,CAAC,CACH,CAEA,YAA0B,EAAG,EAAS,EAAI,CACxC,GAAI,GAEJ,GAAO,CAAC,EACR,GAAO,CAAO,EAEd,GAAI,CACF,EAAQ,UAAU,EAAG,GAAK,CAC5B,OAAS,EAAP,CACA,GAAI,EAAI,OAAS,SACf,OAEA,KAAM,EAEV,CAEA,GAAI,CACF,EAAQ,EAAQ,SAAS,CAAC,CAC5B,OAAS,EAAP,CACA,GAAI,EAAI,OAAS,SACf,OAEA,KAAM,EAEV,CAEA,AAAI,EAAM,YAAY,EACpB,GAAU,EAAG,EAAS,CAAE,EAExB,EAAQ,WAAW,CAAC,CAExB,CAEA,YAAgB,EAAG,EAAS,EAAY,EAAI,CAC1C,GAAO,CAAC,EACR,GAAO,CAAO,EACd,GAAO,MAAO,IAAO,UAAU,EAK/B,EAAQ,MAAM,EAAG,GAAM,CACrB,AAAI,GAAO,GAAG,OAAS,aAAe,EAAG,OAAS,UAAY,EAAG,OAAS,SACxE,GAAO,EAAG,EAAS,CAAE,EAChB,AAAI,GAAM,EAAG,OAAS,UAC3B,EAAG,CAAU,EAEb,EAAG,CAAE,CAET,CAAC,CACH,CAEA,YAAiB,EAAG,EAAS,EAAI,CAC/B,GAAO,CAAC,EACR,GAAO,CAAO,EACd,GAAO,MAAO,IAAO,UAAU,EAE/B,EAAQ,QAAQ,EAAG,CAAC,EAAI,IAAU,CAChC,GAAI,EAAI,MAAO,GAAG,CAAE,EAEpB,GAAI,GAAI,EAAM,OACV,EAEJ,GAAI,IAAM,EAAG,MAAO,GAAQ,MAAM,EAAG,CAAE,EAEvC,EAAM,QAAQ,GAAK,CACjB,GAAO,GAAK,KAAK,EAAG,CAAC,EAAG,EAAS,GAAM,CACrC,GAAI,GAGJ,IAAI,EAAI,MAAO,GAAG,EAAW,CAAE,EAC/B,AAAI,EAAE,IAAM,GACV,EAAQ,MAAM,EAAG,CAAE,EAEvB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAKA,YAAqB,EAAG,EAAS,CAC/B,GAAI,GAEJ,EAAU,GAAW,CAAC,EACtB,GAAS,CAAO,EAEhB,GAAO,EAAG,sBAAsB,EAChC,GAAO,YAAY,MAAO,GAAG,SAAU,iCAAiC,EACxE,GAAO,EAAS,yBAAyB,EACzC,GAAO,YAAY,MAAO,GAAS,SAAU,kCAAkC,EAE/E,GAAI,CACF,EAAK,EAAQ,UAAU,CAAC,CAC1B,OAAS,EAAP,CACA,GAAI,EAAG,OAAS,SACd,OAIF,AAAI,EAAG,OAAS,SAAW,IACzB,GAAgB,EAAG,EAAS,CAAE,CAElC,CAEA,GAAI,CAEF,AAAI,GAAM,EAAG,YAAY,EACvB,GAAU,EAAG,EAAS,IAAI,EAE1B,EAAQ,WAAW,CAAC,CAExB,OAAS,EAAP,CACA,GAAI,EAAG,OAAS,SACd,OACK,GAAI,EAAG,OAAS,QACrB,MAAO,IAAY,GAAgB,EAAG,EAAS,CAAE,EAAI,GAAU,EAAG,EAAS,CAAE,EACxE,GAAI,EAAG,OAAS,SACrB,KAAM,GAER,GAAU,EAAG,EAAS,CAAE,CAC1B,CACF,CAEA,YAAoB,EAAG,EAAS,EAAY,CAC1C,GAAO,CAAC,EACR,GAAO,CAAO,EAEd,GAAI,CACF,EAAQ,UAAU,CAAC,CACrB,OAAS,EAAP,CACA,GAAI,EAAG,OAAS,UACd,KAAM,GACD,GAAI,EAAG,OAAS,aAAe,EAAG,OAAS,UAAY,EAAG,OAAS,QACxE,GAAW,EAAG,CAAO,UACZ,EAAG,OAAS,SACrB,KAAM,EAEV,CACF,CAEA,YAAqB,EAAG,EAAS,CAK/B,GAJA,GAAO,CAAC,EACR,GAAO,CAAO,EACd,EAAQ,YAAY,CAAC,EAAE,QAAQ,GAAK,GAAW,GAAK,KAAK,EAAG,CAAC,EAAG,CAAO,CAAC,EAEpE,GAAW,CAOb,GAAM,GAAY,KAAK,IAAI,EAC3B,EACE,IAAI,CAEF,MADY,GAAQ,UAAU,EAAG,CAAO,CAE1C,MAAE,CAAO,OACF,KAAK,IAAI,EAAI,EAAY,IACpC,KAEE,OADY,GAAQ,UAAU,EAAG,CAAO,CAG5C,CAEA,GAAO,QAAU,GACjB,GAAO,KAAO,KC7Sd,gCAEA,GAAM,IAAI,KAAwB,aAC5B,GAAS,KAEf,GAAO,QAAU,CACf,OAAQ,GAAE,EAAM,EAChB,WAAY,GAAO,IACrB,ICRA,gCAEA,GAAM,IAAI,KAAwB,aAC5B,GAAK,KACL,GAAO,QAAQ,QACf,GAAQ,KACR,GAAS,KAET,GAAW,GAAE,SAAmB,EAAK,EAAU,CACnD,EAAW,GAAY,UAAY,CAAC,EACpC,GAAG,QAAQ,EAAK,CAAC,EAAK,IAAU,CAC9B,GAAI,EAAK,MAAO,IAAM,OAAO,EAAK,CAAQ,EAE1C,EAAQ,EAAM,IAAI,GAAQ,GAAK,KAAK,EAAK,CAAI,CAAC,EAE9C,EAAW,EAEX,YAAuB,CACrB,GAAM,GAAO,EAAM,IAAI,EACvB,GAAI,CAAC,EAAM,MAAO,GAAS,EAC3B,GAAO,OAAO,EAAM,GAAO,CACzB,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,EAAW,CACb,CAAC,CACH,CACF,CAAC,CACH,CAAC,EAED,YAAuB,EAAK,CAC1B,GAAI,GACJ,GAAI,CACF,EAAQ,GAAG,YAAY,CAAG,CAC5B,MAAE,CACA,MAAO,IAAM,WAAW,CAAG,CAC7B,CAEA,EAAM,QAAQ,GAAQ,CACpB,EAAO,GAAK,KAAK,EAAK,CAAI,EAC1B,GAAO,WAAW,CAAI,CACxB,CAAC,CACH,CAEA,GAAO,QAAU,CACf,gBACA,aAAc,GACd,YACA,SAAU,EACZ,IC/CA,gCAEA,GAAM,IAAI,KAAwB,aAC5B,GAAO,QAAQ,QACf,GAAK,KACL,GAAQ,KAEd,YAAqB,EAAM,EAAU,CACnC,YAAqB,CACnB,GAAG,UAAU,EAAM,GAAI,GAAO,CAC5B,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,EAAS,CACX,CAAC,CACH,CAEA,GAAG,KAAK,EAAM,CAAC,EAAK,IAAU,CAC5B,GAAI,CAAC,GAAO,EAAM,OAAO,EAAG,MAAO,GAAS,EAC5C,GAAM,GAAM,GAAK,QAAQ,CAAI,EAC7B,GAAG,KAAK,EAAK,CAAC,EAAK,IAAU,CAC3B,GAAI,EAEF,MAAI,GAAI,OAAS,SACR,GAAM,OAAO,EAAK,GAAO,CAC9B,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,EAAS,CACX,CAAC,EAEI,EAAS,CAAG,EAGrB,AAAI,EAAM,YAAY,EAAG,EAAS,EAIhC,GAAG,QAAQ,EAAK,GAAO,CACrB,GAAI,EAAK,MAAO,GAAS,CAAG,CAC9B,CAAC,CAEL,CAAC,CACH,CAAC,CACH,CAEA,YAAyB,EAAM,CAC7B,GAAI,GACJ,GAAI,CACF,EAAQ,GAAG,SAAS,CAAI,CAC1B,MAAE,CAAO,CACT,GAAI,GAAS,EAAM,OAAO,EAAG,OAE7B,GAAM,GAAM,GAAK,QAAQ,CAAI,EAC7B,GAAI,CACF,AAAK,GAAG,SAAS,CAAG,EAAE,YAAY,GAGhC,GAAG,YAAY,CAAG,CAEtB,OAAS,EAAP,CAEA,GAAI,GAAO,EAAI,OAAS,SAAU,GAAM,WAAW,CAAG,MACjD,MAAM,EACb,CAEA,GAAG,cAAc,EAAM,EAAE,CAC3B,CAEA,GAAO,QAAU,CACf,WAAY,GAAE,EAAU,EACxB,iBACF,ICpEA,gCAEA,GAAM,IAAI,KAAwB,aAC5B,GAAO,QAAQ,QACf,GAAK,KACL,GAAQ,KACR,GAAa,KAA0B,WAE7C,YAAqB,EAAS,EAAS,EAAU,CAC/C,WAAmB,EAAS,EAAS,CACnC,GAAG,KAAK,EAAS,EAAS,GAAO,CAC/B,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,EAAS,IAAI,CACf,CAAC,CACH,CAEA,GAAW,EAAS,CAAC,EAAK,IAAsB,CAC9C,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAI,EAAmB,MAAO,GAAS,IAAI,EAC3C,GAAG,MAAM,EAAS,AAAC,GAAQ,CACzB,GAAI,EACF,SAAI,QAAU,EAAI,QAAQ,QAAQ,QAAS,YAAY,EAChD,EAAS,CAAG,EAGrB,GAAM,GAAM,GAAK,QAAQ,CAAO,EAChC,GAAW,EAAK,CAAC,EAAK,IAAc,CAClC,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAI,EAAW,MAAO,GAAS,EAAS,CAAO,EAC/C,GAAM,OAAO,EAAK,GAAO,CACvB,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,EAAS,EAAS,CAAO,CAC3B,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAEA,YAAyB,EAAS,EAAS,CAEzC,GAD0B,GAAG,WAAW,CAAO,EACxB,OAEvB,GAAI,CACF,GAAG,UAAU,CAAO,CACtB,OAAS,EAAP,CACA,QAAI,QAAU,EAAI,QAAQ,QAAQ,QAAS,YAAY,EACjD,CACR,CAEA,GAAM,GAAM,GAAK,QAAQ,CAAO,EAEhC,MADkB,IAAG,WAAW,CAAG,GAEnC,GAAM,WAAW,CAAG,EAEb,GAAG,SAAS,EAAS,CAAO,CACrC,CAEA,GAAO,QAAU,CACf,WAAY,GAAE,EAAU,EACxB,iBACF,IC5DA,gCAEA,GAAM,IAAO,QAAQ,QACf,GAAK,KACL,GAAa,KAA0B,WAwB7C,YAAuB,EAAS,EAAS,EAAU,CACjD,GAAI,GAAK,WAAW,CAAO,EACzB,MAAO,IAAG,MAAM,EAAS,AAAC,GACpB,EACF,GAAI,QAAU,EAAI,QAAQ,QAAQ,QAAS,eAAe,EACnD,EAAS,CAAG,GAEd,EAAS,KAAM,CACpB,MAAO,EACP,MAAO,CACT,CAAC,CACF,EACI,CACL,GAAM,GAAS,GAAK,QAAQ,CAAO,EAC7B,EAAgB,GAAK,KAAK,EAAQ,CAAO,EAC/C,MAAO,IAAW,EAAe,CAAC,EAAK,IACjC,EAAY,EAAS,CAAG,EACxB,EACK,EAAS,KAAM,CACpB,MAAO,EACP,MAAO,CACT,CAAC,EAEM,GAAG,MAAM,EAAS,AAAC,GACpB,EACF,GAAI,QAAU,EAAI,QAAQ,QAAQ,QAAS,eAAe,EACnD,EAAS,CAAG,GAEd,EAAS,KAAM,CACpB,MAAO,EACP,MAAO,GAAK,SAAS,EAAQ,CAAO,CACtC,CAAC,CACF,CAEJ,CACH,CACF,CAEA,YAA2B,EAAS,EAAS,CAC3C,GAAI,GACJ,GAAI,GAAK,WAAW,CAAO,EAAG,CAE5B,GADA,EAAS,GAAG,WAAW,CAAO,EAC1B,CAAC,EAAQ,KAAM,IAAI,OAAM,iCAAiC,EAC9D,MAAO,CACL,MAAO,EACP,MAAO,CACT,CACF,KAAO,CACL,GAAM,GAAS,GAAK,QAAQ,CAAO,EAC7B,EAAgB,GAAK,KAAK,EAAQ,CAAO,EAE/C,GADA,EAAS,GAAG,WAAW,CAAa,EAChC,EACF,MAAO,CACL,MAAO,EACP,MAAO,CACT,EAGA,GADA,EAAS,GAAG,WAAW,CAAO,EAC1B,CAAC,EAAQ,KAAM,IAAI,OAAM,iCAAiC,EAC9D,MAAO,CACL,MAAO,EACP,MAAO,GAAK,SAAS,EAAQ,CAAO,CACtC,CAEJ,CACF,CAEA,GAAO,QAAU,CACf,gBACA,mBACF,IClGA,gCAEA,GAAM,IAAK,KAEX,YAAsB,EAAS,EAAM,EAAU,CAG7C,GAFA,EAAY,MAAO,IAAS,WAAc,EAAO,EACjD,EAAQ,MAAO,IAAS,WAAc,GAAQ,EAC1C,EAAM,MAAO,GAAS,KAAM,CAAI,EACpC,GAAG,MAAM,EAAS,CAAC,EAAK,IAAU,CAChC,GAAI,EAAK,MAAO,GAAS,KAAM,MAAM,EACrC,EAAQ,GAAS,EAAM,YAAY,EAAK,MAAQ,OAChD,EAAS,KAAM,CAAI,CACrB,CAAC,CACH,CAEA,YAA0B,EAAS,EAAM,CACvC,GAAI,GAEJ,GAAI,EAAM,MAAO,GACjB,GAAI,CACF,EAAQ,GAAG,UAAU,CAAO,CAC9B,MAAE,CACA,MAAO,MACT,CACA,MAAQ,IAAS,EAAM,YAAY,EAAK,MAAQ,MAClD,CAEA,GAAO,QAAU,CACf,eACA,kBACF,IC9BA,gCAEA,GAAM,IAAI,KAAwB,aAC5B,GAAO,QAAQ,QACf,GAAK,KACL,GAAU,KACV,GAAS,GAAQ,OACjB,GAAa,GAAQ,WAErB,GAAgB,KAChB,GAAe,GAAc,aAC7B,GAAmB,GAAc,iBAEjC,GAAe,KACf,GAAc,GAAa,YAC3B,GAAkB,GAAa,gBAE/B,GAAa,KAA0B,WAE7C,YAAwB,EAAS,EAAS,EAAM,EAAU,CACxD,EAAY,MAAO,IAAS,WAAc,EAAO,EACjD,EAAQ,MAAO,IAAS,WAAc,GAAQ,EAE9C,GAAW,EAAS,CAAC,EAAK,IAAsB,CAC9C,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAI,EAAmB,MAAO,GAAS,IAAI,EAC3C,GAAa,EAAS,EAAS,CAAC,EAAK,IAAa,CAChD,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,EAAU,EAAS,MACnB,GAAY,EAAS,MAAO,EAAM,CAAC,EAAK,IAAS,CAC/C,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAM,GAAM,GAAK,QAAQ,CAAO,EAChC,GAAW,EAAK,CAAC,EAAK,IAAc,CAClC,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAI,EAAW,MAAO,IAAG,QAAQ,EAAS,EAAS,EAAM,CAAQ,EACjE,GAAO,EAAK,GAAO,CACjB,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAG,QAAQ,EAAS,EAAS,EAAM,CAAQ,CAC7C,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAEA,YAA4B,EAAS,EAAS,EAAM,CAElD,GAD0B,GAAG,WAAW,CAAO,EACxB,OAEvB,GAAM,GAAW,GAAiB,EAAS,CAAO,EAClD,EAAU,EAAS,MACnB,EAAO,GAAgB,EAAS,MAAO,CAAI,EAC3C,GAAM,GAAM,GAAK,QAAQ,CAAO,EAEhC,MADe,IAAG,WAAW,CAAG,GAEhC,GAAW,CAAG,EACP,GAAG,YAAY,EAAS,EAAS,CAAI,CAC9C,CAEA,GAAO,QAAU,CACf,cAAe,GAAE,EAAa,EAC9B,oBACF,IC9DA,gCAEA,GAAM,IAAO,KACP,GAAO,KACP,GAAU,KAEhB,GAAO,QAAU,CAEf,WAAY,GAAK,WACjB,eAAgB,GAAK,eACrB,WAAY,GAAK,WACjB,eAAgB,GAAK,eAErB,WAAY,GAAK,WACjB,eAAgB,GAAK,eACrB,WAAY,GAAK,WACjB,eAAgB,GAAK,eAErB,cAAe,GAAQ,cACvB,kBAAmB,GAAQ,kBAC3B,cAAe,GAAQ,cACvB,kBAAmB,GAAQ,iBAC7B,ICtBA,+BAAoB,EAAK,CAAE,MAAM;AAAA,EAAM,WAAW,GAAM,WAAW,KAAM,UAAW,CAAC,EAAG,CACtF,GAAM,GAAM,EAAW,EAAM,GAG7B,MAAO,AAFK,MAAK,UAAU,EAAK,EAAU,CAAM,EAErC,QAAQ,MAAO,CAAG,EAAI,CACnC,CAEA,YAAmB,EAAS,CAE1B,MAAI,QAAO,SAAS,CAAO,GAAG,GAAU,EAAQ,SAAS,MAAM,GACxD,EAAQ,QAAQ,UAAW,EAAE,CACtC,CAEA,GAAO,QAAU,CAAE,aAAW,WAAS,ICbvC,sBAAI,IACJ,GAAI,CACF,GAAM,IACR,MAAE,CACA,GAAM,QAAQ,KAChB,CACA,GAAM,IAAe,KACf,CAAE,aAAW,aAAa,KAEhC,kBAA0B,EAAM,EAAU,CAAC,EAAG,CAC5C,AAAI,MAAO,IAAY,UACrB,GAAU,CAAE,SAAU,CAAQ,GAGhC,GAAM,GAAK,EAAQ,IAAM,GAEnB,EAAc,UAAY,GAAU,EAAQ,OAAS,GAEvD,EAAO,KAAM,IAAa,aAAa,EAAG,QAAQ,EAAE,EAAM,CAAO,EAErE,EAAO,GAAS,CAAI,EAEpB,GAAI,GACJ,GAAI,CACF,EAAM,KAAK,MAAM,EAAM,EAAU,EAAQ,QAAU,IAAI,CACzD,OAAS,EAAP,CACA,GAAI,EACF,QAAI,QAAU,GAAG,MAAS,EAAI,UACxB,EAEN,MAAO,KAEX,CAEA,MAAO,EACT,CAEA,GAAM,IAAW,GAAa,YAAY,EAAS,EAEnD,YAAuB,EAAM,EAAU,CAAC,EAAG,CACzC,AAAI,MAAO,IAAY,UACrB,GAAU,CAAE,SAAU,CAAQ,GAGhC,GAAM,GAAK,EAAQ,IAAM,GAEnB,EAAc,UAAY,GAAU,EAAQ,OAAS,GAE3D,GAAI,CACF,GAAI,GAAU,EAAG,aAAa,EAAM,CAAO,EAC3C,SAAU,GAAS,CAAO,EACnB,KAAK,MAAM,EAAS,EAAQ,OAAO,CAC5C,OAAS,EAAP,CACA,GAAI,EACF,QAAI,QAAU,GAAG,MAAS,EAAI,UACxB,EAEN,MAAO,KAEX,CACF,CAEA,kBAA2B,EAAM,EAAK,EAAU,CAAC,EAAG,CAClD,GAAM,GAAK,EAAQ,IAAM,GAEnB,EAAM,GAAU,EAAK,CAAO,EAElC,KAAM,IAAa,aAAa,EAAG,SAAS,EAAE,EAAM,EAAK,CAAO,CAClE,CAEA,GAAM,IAAY,GAAa,YAAY,EAAU,EAErD,YAAwB,EAAM,EAAK,EAAU,CAAC,EAAG,CAC/C,GAAM,GAAK,EAAQ,IAAM,GAEnB,EAAM,GAAU,EAAK,CAAO,EAElC,MAAO,GAAG,cAAc,EAAM,EAAK,CAAO,CAC5C,CAEA,GAAM,IAAW,CACf,YACA,gBACA,aACA,gBACF,EAEA,GAAO,QAAU,KCvFjB,gCAEA,GAAM,IAAW,KAEjB,GAAO,QAAU,CAEf,SAAU,GAAS,SACnB,aAAc,GAAS,aACvB,UAAW,GAAS,UACpB,cAAe,GAAS,aAC1B,ICVA,gCAEA,GAAM,IAAI,KAAwB,aAC5B,GAAK,KACL,GAAO,QAAQ,QACf,GAAQ,KACR,GAAa,KAA0B,WAE7C,YAAqB,EAAM,EAAM,EAAU,EAAU,CACnD,AAAI,MAAO,IAAa,YACtB,GAAW,EACX,EAAW,QAGb,GAAM,GAAM,GAAK,QAAQ,CAAI,EAC7B,GAAW,EAAK,CAAC,EAAK,IAAW,CAC/B,GAAI,EAAK,MAAO,GAAS,CAAG,EAC5B,GAAI,EAAQ,MAAO,IAAG,UAAU,EAAM,EAAM,EAAU,CAAQ,EAE9D,GAAM,OAAO,EAAK,GAAO,CACvB,GAAI,EAAK,MAAO,GAAS,CAAG,EAE5B,GAAG,UAAU,EAAM,EAAM,EAAU,CAAQ,CAC7C,CAAC,CACH,CAAC,CACH,CAEA,YAAyB,KAAS,EAAM,CACtC,GAAM,GAAM,GAAK,QAAQ,CAAI,EAC7B,GAAI,GAAG,WAAW,CAAG,EACnB,MAAO,IAAG,cAAc,EAAM,GAAG,CAAI,EAEvC,GAAM,WAAW,CAAG,EACpB,GAAG,cAAc,EAAM,GAAG,CAAI,CAChC,CAEA,GAAO,QAAU,CACf,WAAY,GAAE,EAAU,EACxB,iBACF,ICvCA,gCAEA,GAAM,CAAE,cAAc,KAChB,CAAE,eAAe,KAEvB,kBAA2B,EAAM,EAAM,EAAU,CAAC,EAAG,CACnD,GAAM,GAAM,GAAU,EAAM,CAAO,EAEnC,KAAM,IAAW,EAAM,EAAK,CAAO,CACrC,CAEA,GAAO,QAAU,KCXjB,gCAEA,GAAM,CAAE,cAAc,KAChB,CAAE,mBAAmB,KAE3B,YAAyB,EAAM,EAAM,EAAS,CAC5C,GAAM,GAAM,GAAU,EAAM,CAAO,EAEnC,GAAe,EAAM,EAAK,CAAO,CACnC,CAEA,GAAO,QAAU,KCXjB,gCAEA,GAAM,IAAI,KAAwB,YAC5B,GAAW,KAEjB,GAAS,WAAa,GAAE,IAAwB,EAChD,GAAS,eAAiB,KAE1B,GAAS,WAAa,GAAS,WAC/B,GAAS,eAAiB,GAAS,eACnC,GAAS,UAAY,GAAS,UAC9B,GAAS,cAAgB,GAAS,cAClC,GAAS,SAAW,GAAS,SAC7B,GAAS,aAAe,GAAS,aAEjC,GAAO,QAAU,KCfjB,gCAEA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAW,KAAwB,SACnC,GAAa,KAAqB,WAClC,GAAa,KAAqB,WAClC,GAAO,KAEb,YAAmB,EAAK,EAAM,EAAM,CAClC,EAAO,GAAQ,CAAC,EAChB,GAAM,GAAY,EAAK,WAAa,EAAK,SAAW,GAE9C,CAAE,WAAY,GAAK,eAAe,EAAK,EAAM,MAAM,EACzD,UAAK,qBAAqB,EAAK,EAAS,EAAM,MAAM,EACpD,GAAW,GAAK,QAAQ,CAAI,CAAC,EACtB,GAAS,EAAK,EAAM,CAAS,CACtC,CAEA,YAAmB,EAAK,EAAM,EAAW,CACvC,GAAI,EACF,UAAW,CAAI,EACR,GAAO,EAAK,EAAM,CAAS,EAEpC,GAAI,GAAG,WAAW,CAAI,EAAG,KAAM,IAAI,OAAM,sBAAsB,EAC/D,MAAO,IAAO,EAAK,EAAM,CAAS,CACpC,CAEA,YAAiB,EAAK,EAAM,EAAW,CACrC,GAAI,CACF,GAAG,WAAW,EAAK,CAAI,CACzB,OAAS,EAAP,CACA,GAAI,EAAI,OAAS,QAAS,KAAM,GAChC,MAAO,IAAiB,EAAK,EAAM,CAAS,CAC9C,CACF,CAEA,YAA2B,EAAK,EAAM,EAAW,CAK/C,UAAS,EAAK,EAJD,CACX,YACA,aAAc,EAChB,CACwB,EACjB,GAAW,CAAG,CACvB,CAEA,GAAO,QAAU,KC9CjB,gCAEA,GAAO,QAAU,CACf,SAAU,IACZ,ICJA,gCAEA,GAAM,IAAK,KACL,GAAO,QAAQ,QACf,GAAO,KAAmB,KAC1B,GAAS,KAAqB,OAC9B,GAAS,KAAqB,OAC9B,GAAa,KAA0B,WACvC,GAAO,KAEb,YAAe,EAAK,EAAM,EAAM,EAAI,CAClC,AAAI,MAAO,IAAS,YAClB,GAAK,EACL,EAAO,CAAC,GAGV,GAAM,GAAY,EAAK,WAAa,EAAK,SAAW,GAEpD,GAAK,WAAW,EAAK,EAAM,OAAQ,CAAC,EAAK,IAAU,CACjD,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAM,CAAE,WAAY,EACpB,GAAK,iBAAiB,EAAK,EAAS,EAAM,OAAQ,GAAO,CACvD,GAAI,EAAK,MAAO,GAAG,CAAG,EACtB,GAAO,GAAK,QAAQ,CAAI,EAAG,GACrB,EAAY,EAAG,CAAG,EACf,GAAS,EAAK,EAAM,EAAW,CAAE,CACzC,CACH,CAAC,CACH,CAAC,CACH,CAEA,YAAmB,EAAK,EAAM,EAAW,EAAI,CAC3C,GAAI,EACF,MAAO,IAAO,EAAM,GACd,EAAY,EAAG,CAAG,EACf,GAAO,EAAK,EAAM,EAAW,CAAE,CACvC,EAEH,GAAW,EAAM,CAAC,EAAK,IACjB,EAAY,EAAG,CAAG,EAClB,EAAmB,EAAG,GAAI,OAAM,sBAAsB,CAAC,EACpD,GAAO,EAAK,EAAM,EAAW,CAAE,CACvC,CACH,CAEA,YAAiB,EAAK,EAAM,EAAW,EAAI,CACzC,GAAG,OAAO,EAAK,EAAM,GACd,EACD,EAAI,OAAS,QAAgB,EAAG,CAAG,EAChC,GAAiB,EAAK,EAAM,EAAW,CAAE,EAF/B,EAAG,CAGrB,CACH,CAEA,YAA2B,EAAK,EAAM,EAAW,EAAI,CAKnD,GAAK,EAAK,EAJG,CACX,YACA,aAAc,EAChB,EACsB,GAChB,EAAY,EAAG,CAAG,EACf,GAAO,EAAK,CAAE,CACtB,CACH,CAEA,GAAO,QAAU,KChEjB,gCAEA,GAAM,IAAI,KAAwB,aAClC,GAAO,QAAU,CACf,KAAM,GAAE,IAAiB,CAC3B,ICLA,gCAEA,GAAO,QAAU,2BAEZ,MAEA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MAKL,GAAM,IAAK,QAAQ,MACnB,AAAI,OAAO,yBAAyB,GAAI,UAAU,GAChD,OAAO,eAAe,GAAO,QAAS,WAAY,CAChD,KAAO,CAAE,MAAO,IAAG,QAAS,CAC9B,CAAC,ICzBH,sBAAO,QAAU,GACjB,GAAU,QAAU,GACpB,GAAU,OAAS,GACnB,GAAU,gBAAkB,GAE5B,GAAI,IAAqB,QACrB,GAAwB,aAExB,GAAM,CAAC,EACP,GAAgB,CAAC,EAErB,aAA2B,CACzB,MAAO,CACL,WAAY,OAAO,iBACnB,WAAY,OAAO,gBACrB,CACF,CAGA,YAAoB,EAAK,EAAU,EAAQ,EAAS,CAClD,AAAI,MAAO,GAAY,KACrB,GAAU,GAAe,GAG3B,GAAO,EAAK,GAAI,EAAG,CAAC,EAAG,OAAW,EAAG,CAAO,EAC5C,GAAI,GACJ,GAAI,CACF,AAAI,GAAc,SAAW,EAC3B,EAAM,KAAK,UAAU,EAAK,EAAU,CAAM,EAE1C,EAAM,KAAK,UAAU,EAAK,GAAoB,CAAQ,EAAG,CAAM,CAEnE,MAAE,CACA,MAAO,MAAK,UAAU,qEAAqE,CAC7F,QAAE,CACA,KAAO,GAAI,SAAW,GAAG,CACvB,GAAI,GAAO,GAAI,IAAI,EACnB,AAAI,EAAK,SAAW,EAClB,OAAO,eAAe,EAAK,GAAI,EAAK,GAAI,EAAK,EAAE,EAE/C,EAAK,GAAG,EAAK,IAAM,EAAK,EAE5B,CACF,CACA,MAAO,EACT,CAEA,YAAqB,EAAS,EAAK,EAAG,EAAQ,CAC5C,GAAI,GAAqB,OAAO,yBAAyB,EAAQ,CAAC,EAClE,AAAI,EAAmB,MAAQ,OAC7B,AAAI,EAAmB,aACrB,QAAO,eAAe,EAAQ,EAAG,CAAE,MAAO,CAAQ,CAAC,EACnD,GAAI,KAAK,CAAC,EAAQ,EAAG,EAAK,CAAkB,CAAC,GAE7C,GAAc,KAAK,CAAC,EAAK,EAAG,CAAO,CAAC,EAGtC,GAAO,GAAK,EACZ,GAAI,KAAK,CAAC,EAAQ,EAAG,CAAG,CAAC,EAE7B,CAEA,YAAiB,EAAK,EAAG,EAAW,EAAO,EAAQ,EAAO,EAAS,CACjE,GAAS,EACT,GAAI,GACJ,GAAI,MAAO,IAAQ,UAAY,IAAQ,KAAM,CAC3C,IAAK,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC5B,GAAI,EAAM,KAAO,EAAK,CACpB,GAAW,GAAuB,EAAK,EAAG,CAAM,EAChD,MACF,CAGF,GACE,MAAO,GAAQ,WAAe,KAC9B,EAAQ,EAAQ,WAChB,CACA,GAAW,GAAoB,EAAK,EAAG,CAAM,EAC7C,MACF,CAEA,GACE,MAAO,GAAQ,WAAe,KAC9B,EAAY,EAAI,EAAQ,WACxB,CACA,GAAW,GAAoB,EAAK,EAAG,CAAM,EAC7C,MACF,CAIA,GAFA,EAAM,KAAK,CAAG,EAEV,MAAM,QAAQ,CAAG,EACnB,IAAK,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC1B,GAAO,EAAI,GAAI,EAAG,EAAG,EAAO,EAAK,EAAO,CAAO,MAE5C,CACL,GAAI,GAAO,OAAO,KAAK,CAAG,EAC1B,IAAK,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CAChC,GAAI,GAAM,EAAK,GACf,GAAO,EAAI,GAAM,EAAK,EAAG,EAAO,EAAK,EAAO,CAAO,CACrD,CACF,CACA,EAAM,IAAI,CACZ,CACF,CAGA,YAA0B,EAAG,EAAG,CAC9B,MAAI,GAAI,EACC,GAEL,EAAI,EACC,EAEF,CACT,CAEA,YAAiC,EAAK,EAAU,EAAQ,EAAS,CAC/D,AAAI,MAAO,GAAY,KACrB,GAAU,GAAe,GAG3B,GAAI,GAAM,GAAoB,EAAK,GAAI,EAAG,CAAC,EAAG,OAAW,EAAG,CAAO,GAAK,EACpE,EACJ,GAAI,CACF,AAAI,GAAc,SAAW,EAC3B,EAAM,KAAK,UAAU,EAAK,EAAU,CAAM,EAE1C,EAAM,KAAK,UAAU,EAAK,GAAoB,CAAQ,EAAG,CAAM,CAEnE,MAAE,CACA,MAAO,MAAK,UAAU,qEAAqE,CAC7F,QAAE,CAEA,KAAO,GAAI,SAAW,GAAG,CACvB,GAAI,GAAO,GAAI,IAAI,EACnB,AAAI,EAAK,SAAW,EAClB,OAAO,eAAe,EAAK,GAAI,EAAK,GAAI,EAAK,EAAE,EAE/C,EAAK,GAAG,EAAK,IAAM,EAAK,EAE5B,CACF,CACA,MAAO,EACT,CAEA,YAA8B,EAAK,EAAG,EAAW,EAAO,EAAQ,EAAO,EAAS,CAC9E,GAAS,EACT,GAAI,GACJ,GAAI,MAAO,IAAQ,UAAY,IAAQ,KAAM,CAC3C,IAAK,EAAI,EAAG,EAAI,EAAM,OAAQ,IAC5B,GAAI,EAAM,KAAO,EAAK,CACpB,GAAW,GAAuB,EAAK,EAAG,CAAM,EAChD,MACF,CAEF,GAAI,CACF,GAAI,MAAO,GAAI,QAAW,WACxB,MAEJ,MAAE,CACA,MACF,CAEA,GACE,MAAO,GAAQ,WAAe,KAC9B,EAAQ,EAAQ,WAChB,CACA,GAAW,GAAoB,EAAK,EAAG,CAAM,EAC7C,MACF,CAEA,GACE,MAAO,GAAQ,WAAe,KAC9B,EAAY,EAAI,EAAQ,WACxB,CACA,GAAW,GAAoB,EAAK,EAAG,CAAM,EAC7C,MACF,CAIA,GAFA,EAAM,KAAK,CAAG,EAEV,MAAM,QAAQ,CAAG,EACnB,IAAK,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC1B,GAAoB,EAAI,GAAI,EAAG,EAAG,EAAO,EAAK,EAAO,CAAO,MAEzD,CAEL,GAAI,GAAM,CAAC,EACP,EAAO,OAAO,KAAK,CAAG,EAAE,KAAK,EAAe,EAChD,IAAK,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CAChC,GAAI,GAAM,EAAK,GACf,GAAoB,EAAI,GAAM,EAAK,EAAG,EAAO,EAAK,EAAO,CAAO,EAChE,EAAI,GAAO,EAAI,EACjB,CACA,GAAI,MAAO,GAAW,IACpB,GAAI,KAAK,CAAC,EAAQ,EAAG,CAAG,CAAC,EACzB,EAAO,GAAK,MAEZ,OAAO,EAEX,CACA,EAAM,IAAI,CACZ,CACF,CAIA,YAA8B,EAAU,CACtC,SACE,MAAO,GAAa,IAChB,EACA,SAAU,EAAG,EAAG,CAChB,MAAO,EACT,EACG,SAAU,EAAK,EAAK,CACzB,GAAI,GAAc,OAAS,EACzB,OAAS,GAAI,EAAG,EAAI,GAAc,OAAQ,IAAK,CAC7C,GAAI,GAAO,GAAc,GACzB,GAAI,EAAK,KAAO,GAAO,EAAK,KAAO,EAAK,CACtC,EAAM,EAAK,GACX,GAAc,OAAO,EAAG,CAAC,EACzB,KACF,CACF,CAEF,MAAO,GAAS,KAAK,KAAM,EAAK,CAAG,CACrC,CACF,ICpOA,sBAAM,IAAY,KAEZ,GAAU,CACd,IAAK,OAAO,KAAK,EACjB,KAAM,OAAO,MAAM,EACnB,MAAO,OAAO,OAAO,EACrB,KAAM,OAAO,MAAM,CACrB,EAOA,QAAiB,CAWf,YAAY,EAAK,EAAM,CACrB,KAAK,GAAQ,KAAO,EACpB,KAAK,GAAQ,MAAQ,CAAC,EACtB,KAAK,GAAQ,OAAS,KACtB,KAAK,GAAQ,MAAQ,EAErB,GAAM,CAAE,OAAM,QAAS,KAAK,GAAQ,KASpC,GARG,GAAS,OAAO,IAAS,UAAY,MAAM,QAAQ,CAAI,IACxD,MAAK,GAAQ,KAAK,KAAO,CAAE,MAAK,GAG9B,GAAM,MAAK,GAAQ,KAAK,KAAO,CAAC,GAChC,GAAM,MAAK,GAAQ,KAAK,KAAO,CAAC,GAGjC,GAAW,QAAQ,EAAI,GAAG,EAAG,CAC9B,GAAM,GAAM,EAAI,IAChB,KAAK,GAAQ,OAAS,EACtB,KAAK,GAAQ,MAAM,MAAQ,EAAI,MAC/B,KAAK,GAAQ,KAAK,IAAM,EAAI,OAC9B,CACF,IAMI,QAAQ,CACV,MAAO,MAAK,GAAQ,KAAK,KAC3B,IAMI,MAAM,CACR,MAAO,MAAK,GAAQ,KAAK,GAC3B,IAMI,KAAI,EAAK,CACX,KAAK,GAAQ,KAAK,IAAM,CAC1B,IAMI,UAAU,CACZ,MAAO,MAAK,GACd,IAMI,SAAQ,EAAK,CACf,KAAK,IAAM,CACb,IAMI,OAAO,CACT,GAAM,GAAO,KAAK,GAAQ,MAEtB,EAAO,SACN,KAAK,GAAQ,OACb,KAAK,GAAQ,MAAM,MACnB,KAAK,GAAQ,KAAK,MAGvB,GAAG,EAAK,aAAe,MAAO,GAAK,aAAgB,WAAY,CAC7D,GAAM,GAAU,EAAK,YAAY,KAAK,KAAM,KAAM,CAAI,EAEtD,AAAG,MAAO,IAAY,UACpB,GAAO,OAAO,OAAO,EAAM,CAAO,EAEtC,CAEA,OAAU,CAAC,EAAK,IAAQ,QAAO,QAAQ,CAAI,EACzC,AAAG,MAAO,IAAQ,UACf,GAAW,QAAQ,CAAG,GACvB,GAAK,GAAO,GAAW,UAAU,CAAG,GAIxC,MAAO,EACT,IAMI,MAAK,EAAK,CACZ,KAAK,GAAQ,KAAK,KAAO,OACpB,KAAK,GAAQ,KAAK,MAClB,EAEP,IAMI,OAAO,CACT,GAAM,GAAO,KAAK,GAAQ,MAG1B,MAAO,AAFM,CAAC,EAAE,OAAO,EAAK,KAAM,KAAK,GAAQ,KAAK,IAAI,EAE5C,IAAI,GAAO,CACrB,GAAG,MAAO,IAAQ,WAChB,MAAO,GAAI,KAAK,KAAM,CACpB,MAAO,KAAK,MACZ,KAAM,KAAK,KACX,QAAS,CACX,CAAC,EAGH,GAAM,GAAS,EAAI,MAAM,YAAY,EACrC,MAAI,IAGD,AADa,EAAO,KACR,QAAgB,EAAI,QAAQ,EAAO,GAAI,KAAK,KAAK,EAH7C,CAMrB,CAAC,EAAE,OAAO,GAAO,GAAQ,MAA6B,IAAQ,EAAE,CAClE,IAMI,MAAK,EAAM,CACb,KAAK,GAAQ,KAAK,KAAO,KAAK,GAAQ,KAAK,KAAK,OAAO,CAAI,CAC7D,IAMI,QAAQ,CACV,GAAM,GAAO,KAAK,GAAQ,MAC1B,MAAO,OACJ,EAAK,UAAW,EAAK,SAAW,KAAK,MAAQ,QAC7C,EAAK,YAAa,KAAK,KACrB,KAAK,MAHH,EAIJ,EAAK,SAAU,EAAK,QAAU,KAAK,KAAO,MAC7C,EACF,IAMI,MAAM,CACR,MAAO,MAAK,KACd,IAOI,QAAQ,CACV,GAAM,GAAM,KAAK,GAAQ,QAAU,GAAI,OAAM,KAAK,GAAG,EACrD,QAAI,IAAM,KAEJ,CACR,CAQA,OAAO,EAAQ,CACb,MAAO,IAAU,KAAK,MAAO,KAAK,GAAQ,MAAM,UAAY,KAAM,EAAS,EAAI,CAAC,CAClF,OAQO,SAAQ,EAAK,CAClB,MAAO,SAAQ,CAAG,GAAK,MAAO,IAAQ,UACpC,aAAe,QACb,OAAO,UAAU,eAAe,KAAK,EAAK,SAAS,GACnD,OAAO,UAAU,eAAe,KAAK,EAAK,OAAO,EAGvD,OAQO,WAAU,EAAK,CACpB,MAAG,OAAO,GAAI,QAAW,YAEzB,GAAI,OAAS,UAAY,CAOvB,MAAO,AANM,CACX,OACA,UACA,OACF,EAAE,OAAO,OAAO,KAAK,CAAG,CAAC,EAEb,OAAO,CAAC,EAAK,IAAQ,CAC/B,GAAG,IAAO,GAAK,CACb,GAAM,GAAM,EAAI,GAEhB,GAAG,MAAO,IAAQ,WAAY,MAAO,GACrC,EAAI,GAAO,CACb,CAEA,MAAO,EACT,EAAG,CAAC,CAAC,CACP,GAEO,CACT,CACF,EAEA,GAAW,QAAU,GAErB,GAAO,QAAU,KClQjB,sBAAM,IAAe,QAAQ,UACvB,GAAa,KAEb,GAAU,CACd,OAAQ,OAAO,QAAQ,CACzB,EAoBA,gBAAwB,GAAa,CASnC,YAAY,EAAU,CAAC,EAAG,EAAS,CAAC,EAAG,CACrC,MAAM,EAKN,KAAK,UAAY,GAQjB,KAAK,WAAa,GAKlB,KAAK,QAAU,GACb,KAAM,CAAC,EACP,KAAM,CAAC,EACP,YAAa,KACb,MAAO,GACP,IAAK,GACL,OAAQ,CAAC,OAAQ,MAAO,IAAK,GAAG,EAAE,SAAS,QAAQ,IAAI,gBAAgB,EACvE,SAAU,KACV,WAAY,QACZ,SAAU,YACV,WAAY,MACZ,QAAS,SACN,GAOL,KAAK,GAAQ,QAAU,GACrB,KAAM,OACN,KAAM,OACN,MAAO,QACP,OAAQ,CACN,MAAG,MAAK,QAAQ,MAAc,QACvB,EACT,GACG,GAOL,KAAK,QAAU,KAAK,QAAQ,WAE5B,GAAM,GAAe,KAAK,GAAQ,QAClC,OAAU,KAAO,GACf,AAAG,OAAO,UAAU,eAAe,KAAK,EAAc,CAAG,GACvD,KAAK,SAAS,EAAK,EAAa,EAAI,CAG1C,CAUA,SAAS,EAAM,EAAS,CACtB,YAAK,GAAQ,QAAQ,GAAQ,EAW7B,KAAK,GAAQ,CAAC,EAAK,EAAO,CAAC,EAAG,EAAO,CAAC,IAAM,KAAK,IAAI,EAAM,EAAK,EAAM,CAAI,EAEnE,IACT,CAYA,IAAI,EAAO,EAAK,EAAO,CAAC,EAAG,EAAO,CAAC,EAAG,CACpC,GAAG,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,GAAQ,QAAS,CAAK,EAClE,KAAM,IAAI,OAAM,IAAI,6BAAiC,EAGvD,GAAM,GAAU,GAAI,MAAK,WAAW,CAClC,QACA,MACA,OACA,MACF,EAAG,KAAK,OAAO,EAEX,EAAS,KAAK,GAAQ,QAAQ,GAMlC,MAJG,OAAO,IAAW,YACnB,GAAS,EAAO,KAAK,KAAM,CAAO,GAGjC,AAAC,EAEA,MAAK,QAAQ,QACf,KAAK,QAAQ,GAAQ,EAAQ,OAAO,KAAK,QAAQ,GAAG,CAAC,EASvD,KAAK,KAAK,MAAO,CAAO,EACjB,GAbY,EAcrB,CAYA,OAAO,EAAM,EAAK,EAAO,CAAC,EAAG,EAAO,CAAC,EAAG,CACtC,MAAG,GAAa,GACT,KAAK,IAAI,QAAS,EAAK,EAAM,CAAI,CAC1C,CAUA,OAAO,EAAS,EAAO,CAAC,EAAG,EAAO,CAAC,EAAG,CACpC,GAAG,CAAC,GAAW,MAAO,GAAQ,MAAS,WACrC,KAAM,IAAI,OAAM,kDAAkD,EASpE,MANgB,IAAI,SAAQ,GAAW,CACrC,EACG,KAAK,GAAS,EAAQ,KAAK,IAAI,OAAQ,EAAO,EAAM,CAAI,CAAC,CAAC,EAC1D,MAAM,GAAO,EAAQ,KAAK,IAAI,QAAS,EAAK,EAAM,CAAI,CAAC,CAAC,CAC7D,CAAC,CAGH,CACF,EAEA,GAAU,QAAU,GAEpB,GAAO,QAAU,KC9MjB,sBAAM,IAAY,KAMZ,GAAM,GAAI,IAEhB,GAAO,QAAU,KCRjB,wDCAA,KAAc,QAAQ,ECAtB,AAcA,GAAI,IACJ,AAAC,UAAU,EAAS,CAGhB,AAAC,UAAU,EAAS,CAChB,GAAI,GAAO,MAAO,SAAW,SAAW,OACpC,MAAO,OAAS,SAAW,KACvB,MAAO,OAAS,SAAW,KACvB,SAAS,cAAc,EAAE,EACjC,EAAW,EAAa,CAAO,EACnC,AAAI,MAAO,GAAK,QAAY,IACxB,EAAK,QAAU,EAGf,EAAW,EAAa,EAAK,QAAS,CAAQ,EAElD,EAAQ,CAAQ,EAChB,WAAsB,EAAQ,EAAU,CACpC,MAAO,UAAU,EAAK,EAAO,CACzB,AAAI,MAAO,GAAO,IAAS,YACvB,OAAO,eAAe,EAAQ,EAAK,CAAE,aAAc,GAAM,SAAU,GAAM,MAAO,CAAM,CAAC,EAEvF,GACA,EAAS,EAAK,CAAK,CAC3B,CACJ,CACJ,GAAG,SAAU,EAAU,CACnB,GAAI,GAAS,OAAO,UAAU,eAE1B,EAAiB,MAAO,SAAW,WACnC,EAAoB,GAAkB,MAAO,QAAO,YAAgB,IAAc,OAAO,YAAc,gBACvG,EAAiB,GAAkB,MAAO,QAAO,SAAa,IAAc,OAAO,SAAW,aAC9F,EAAiB,MAAO,QAAO,QAAW,WAC1C,EAAgB,CAAE,UAAW,CAAC,CAAE,WAAa,OAC7C,EAAY,CAAC,GAAkB,CAAC,EAChC,EAAU,CAEV,OAAQ,EACF,UAAY,CAAE,MAAO,IAAe,OAAO,OAAO,IAAI,CAAC,CAAG,EAC1D,EACI,UAAY,CAAE,MAAO,IAAe,CAAE,UAAW,IAAK,CAAC,CAAG,EAC1D,UAAY,CAAE,MAAO,IAAe,CAAC,CAAC,CAAG,EACnD,IAAK,EACC,SAAU,EAAK,EAAK,CAAE,MAAO,GAAO,KAAK,EAAK,CAAG,CAAG,EACpD,SAAU,EAAK,EAAK,CAAE,MAAO,KAAO,EAAK,EAC/C,IAAK,EACC,SAAU,EAAK,EAAK,CAAE,MAAO,GAAO,KAAK,EAAK,CAAG,EAAI,EAAI,GAAO,MAAW,EAC3E,SAAU,EAAK,EAAK,CAAE,MAAO,GAAI,EAAM,CACjD,EAEI,EAAoB,OAAO,eAAe,QAAQ,EAClD,EAAc,MAAO,UAAY,UAAY,QAAQ,KAAO,QAAQ,IAAI,oCAAyC,OACjH,EAAO,CAAC,GAAe,MAAO,MAAQ,YAAc,MAAO,KAAI,UAAU,SAAY,WAAa,IAAM,EAAkB,EAC1H,EAAO,CAAC,GAAe,MAAO,MAAQ,YAAc,MAAO,KAAI,UAAU,SAAY,WAAa,IAAM,EAAkB,EAC1H,EAAW,CAAC,GAAe,MAAO,UAAY,WAAa,QAAU,GAAsB,EAG3F,EAAW,GAAI,GAwCnB,WAAkB,EAAY,EAAQ,EAAa,EAAY,CAC3D,GAAK,GAAY,CAAW,EAYvB,CACD,GAAI,CAAC,GAAQ,CAAU,EACnB,KAAM,IAAI,WACd,GAAI,CAAC,GAAc,CAAM,EACrB,KAAM,IAAI,WACd,MAAO,GAAoB,EAAY,CAAM,CACjD,KAlB+B,CAC3B,GAAI,CAAC,GAAQ,CAAU,EACnB,KAAM,IAAI,WACd,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,GAAI,CAAC,GAAS,CAAU,GAAK,CAAC,GAAY,CAAU,GAAK,CAAC,GAAO,CAAU,EACvE,KAAM,IAAI,WACd,MAAI,IAAO,CAAU,GACjB,GAAa,QACjB,EAAc,GAAc,CAAW,EAChC,EAAiB,EAAY,EAAQ,EAAa,CAAU,CACvE,CAQJ,CACA,EAAS,WAAY,CAAQ,EA2C7B,WAAkB,EAAa,EAAe,CAC1C,WAAmB,EAAQ,EAAa,CACpC,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,GAAI,CAAC,GAAY,CAAW,GAAK,CAAC,GAAc,CAAW,EACvD,KAAM,IAAI,WACd,EAA0B,EAAa,EAAe,EAAQ,CAAW,CAC7E,CACA,MAAO,EACX,CACA,EAAS,WAAY,CAAQ,EAwC7B,WAAwB,EAAa,EAAe,EAAQ,EAAa,CACrE,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,EAA0B,EAAa,EAAe,EAAQ,CAAW,CACpF,CACA,EAAS,iBAAkB,CAAc,EAmCzC,WAAqB,EAAa,EAAQ,EAAa,CACnD,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,GAAoB,EAAa,EAAQ,CAAW,CAC/D,CACA,EAAS,cAAe,CAAW,EAmCnC,WAAwB,EAAa,EAAQ,EAAa,CACtD,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,GAAuB,EAAa,EAAQ,CAAW,CAClE,CACA,EAAS,iBAAkB,CAAc,EAmCzC,YAAqB,EAAa,EAAQ,EAAa,CACnD,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,GAAoB,EAAa,EAAQ,CAAW,CAC/D,CACA,EAAS,cAAe,EAAW,EAmCnC,YAAwB,EAAa,EAAQ,EAAa,CACtD,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,GAAuB,EAAa,EAAQ,CAAW,CAClE,CACA,EAAS,iBAAkB,EAAc,EAkCzC,YAAyB,EAAQ,EAAa,CAC1C,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,GAAqB,EAAQ,CAAW,CACnD,CACA,EAAS,kBAAmB,EAAe,EAkC3C,YAA4B,EAAQ,EAAa,CAC7C,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,MAAK,IAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GACpC,EAAwB,EAAQ,CAAW,CACtD,CACA,EAAS,qBAAsB,EAAkB,EAmCjD,WAAwB,EAAa,EAAQ,EAAa,CACtD,GAAI,CAAC,GAAS,CAAM,EAChB,KAAM,IAAI,WACd,AAAK,GAAY,CAAW,GACxB,GAAc,GAAc,CAAW,GAC3C,GAAI,GAAc,GAAuB,EAAQ,EAAwB,EAAK,EAG9E,GAFI,GAAY,CAAW,GAEvB,CAAC,EAAY,OAAO,CAAW,EAC/B,MAAO,GACX,GAAI,EAAY,KAAO,EACnB,MAAO,GACX,GAAI,GAAiB,EAAS,IAAI,CAAM,EAExC,MADA,GAAe,OAAO,CAAW,EAC7B,EAAe,KAAO,GAE1B,EAAS,OAAO,CAAM,EACf,EACX,CACA,EAAS,iBAAkB,CAAc,EACzC,WAA6B,EAAY,EAAQ,CAC7C,OAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,EAAE,EAAG,CAC7C,GAAI,GAAY,EAAW,GACvB,EAAY,EAAU,CAAM,EAChC,GAAI,CAAC,GAAY,CAAS,GAAK,CAAC,GAAO,CAAS,EAAG,CAC/C,GAAI,CAAC,GAAc,CAAS,EACxB,KAAM,IAAI,WACd,EAAS,CACb,CACJ,CACA,MAAO,EACX,CACA,WAA0B,EAAY,EAAQ,EAAa,EAAY,CACnE,OAAS,GAAI,EAAW,OAAS,EAAG,GAAK,EAAG,EAAE,EAAG,CAC7C,GAAI,IAAY,EAAW,GACvB,EAAY,GAAU,EAAQ,EAAa,CAAU,EACzD,GAAI,CAAC,GAAY,CAAS,GAAK,CAAC,GAAO,CAAS,EAAG,CAC/C,GAAI,CAAC,GAAS,CAAS,EACnB,KAAM,IAAI,WACd,EAAa,CACjB,CACJ,CACA,MAAO,EACX,CACA,YAAgC,EAAG,EAAG,EAAQ,CAC1C,GAAI,GAAiB,EAAS,IAAI,CAAC,EACnC,GAAI,GAAY,CAAc,EAAG,CAC7B,GAAI,CAAC,EACD,OACJ,EAAiB,GAAI,GACrB,EAAS,IAAI,EAAG,CAAc,CAClC,CACA,GAAI,GAAc,EAAe,IAAI,CAAC,EACtC,GAAI,GAAY,CAAW,EAAG,CAC1B,GAAI,CAAC,EACD,OACJ,EAAc,GAAI,GAClB,EAAe,IAAI,EAAG,CAAW,CACrC,CACA,MAAO,EACX,CAGA,YAA6B,EAAa,EAAG,EAAG,CAC5C,GAAI,GAAS,GAAuB,EAAa,EAAG,CAAC,EACrD,GAAI,EACA,MAAO,GACX,GAAI,GAAS,EAAuB,CAAC,EACrC,MAAK,IAAO,CAAM,EAEX,GADI,GAAoB,EAAa,EAAQ,CAAC,CAEzD,CAGA,YAAgC,EAAa,EAAG,EAAG,CAC/C,GAAI,GAAc,GAAuB,EAAG,EAAc,EAAK,EAC/D,MAAI,IAAY,CAAW,EAChB,GACJ,GAAU,EAAY,IAAI,CAAW,CAAC,CACjD,CAGA,YAA6B,EAAa,EAAG,EAAG,CAC5C,GAAI,GAAS,GAAuB,EAAa,EAAG,CAAC,EACrD,GAAI,EACA,MAAO,IAAuB,EAAa,EAAG,CAAC,EACnD,GAAI,GAAS,EAAuB,CAAC,EACrC,GAAI,CAAC,GAAO,CAAM,EACd,MAAO,IAAoB,EAAa,EAAQ,CAAC,CAEzD,CAGA,YAAgC,EAAa,EAAG,EAAG,CAC/C,GAAI,GAAc,GAAuB,EAAG,EAAc,EAAK,EAC/D,GAAI,IAAY,CAAW,EAE3B,MAAO,GAAY,IAAI,CAAW,CACtC,CAGA,WAAmC,EAAa,EAAe,EAAG,EAAG,CACjE,GAAI,GAAc,GAAuB,EAAG,EAAc,EAAI,EAC9D,EAAY,IAAI,EAAa,CAAa,CAC9C,CAGA,YAA8B,EAAG,EAAG,CAChC,GAAI,GAAU,EAAwB,EAAG,CAAC,EACtC,EAAS,EAAuB,CAAC,EACrC,GAAI,IAAW,KACX,MAAO,GACX,GAAI,GAAa,GAAqB,EAAQ,CAAC,EAC/C,GAAI,EAAW,QAAU,EACrB,MAAO,GACX,GAAI,EAAQ,QAAU,EAClB,MAAO,GAGX,OAFI,IAAM,GAAI,GACV,EAAO,CAAC,EACH,EAAK,EAAG,EAAY,EAAS,EAAK,EAAU,OAAQ,IAAM,CAC/D,GAAI,GAAM,EAAU,GAChB,EAAS,GAAI,IAAI,CAAG,EACxB,AAAK,GACD,IAAI,IAAI,CAAG,EACX,EAAK,KAAK,CAAG,EAErB,CACA,OAAS,IAAK,EAAG,GAAe,EAAY,GAAK,GAAa,OAAQ,KAAM,CACxE,GAAI,GAAM,GAAa,IACnB,EAAS,GAAI,IAAI,CAAG,EACxB,AAAK,GACD,IAAI,IAAI,CAAG,EACX,EAAK,KAAK,CAAG,EAErB,CACA,MAAO,EACX,CAGA,WAAiC,EAAG,EAAG,CACnC,GAAI,GAAO,CAAC,EACR,EAAc,GAAuB,EAAG,EAAc,EAAK,EAC/D,GAAI,GAAY,CAAW,EACvB,MAAO,GAIX,OAHI,GAAU,EAAY,KAAK,EAC3B,GAAW,EAAY,CAAO,EAC9B,EAAI,IACK,CACT,GAAI,GAAO,EAAa,EAAQ,EAChC,GAAI,CAAC,EACD,SAAK,OAAS,EACP,EAEX,GAAI,GAAY,EAAc,CAAI,EAClC,GAAI,CACA,EAAK,GAAK,CACd,OACO,EAAP,CACI,GAAI,CACA,EAAc,EAAQ,CAC1B,QACA,CACI,KAAM,EACV,CACJ,CACA,GACJ,CACJ,CAGA,YAAc,EAAG,CACb,GAAI,IAAM,KACN,MAAO,GACX,OAAQ,MAAO,QACN,YAAa,MAAO,OACpB,UAAW,MAAO,OAClB,SAAU,MAAO,OACjB,SAAU,MAAO,OACjB,SAAU,MAAO,OACjB,SAAU,MAAO,KAAM,KAAO,EAAe,UACzC,MAAO,GAExB,CAGA,YAAqB,EAAG,CACpB,MAAO,KAAM,MACjB,CAGA,YAAgB,EAAG,CACf,MAAO,KAAM,IACjB,CAGA,WAAkB,EAAG,CACjB,MAAO,OAAO,IAAM,QACxB,CAGA,YAAkB,EAAG,CACjB,MAAO,OAAO,IAAM,SAAW,IAAM,KAAO,MAAO,IAAM,UAC7D,CAKA,YAAqB,EAAO,EAAe,CACvC,OAAQ,GAAK,CAAK,OACT,GAAmB,MAAO,OAC1B,GAAc,MAAO,OACrB,GAAiB,MAAO,OACxB,GAAgB,MAAO,OACvB,GAAgB,MAAO,OACvB,GAAgB,MAAO,GAEhC,GAAI,GAAO,IAAkB,EAAiB,SAAW,IAAkB,EAAiB,SAAW,UACnG,EAAe,EAAU,EAAO,CAAiB,EACrD,GAAI,IAAiB,OAAW,CAC5B,GAAI,GAAS,EAAa,KAAK,EAAO,CAAI,EAC1C,GAAI,GAAS,CAAM,EACf,KAAM,IAAI,WACd,MAAO,EACX,CACA,MAAO,IAAoB,EAAO,IAAS,UAAY,SAAW,CAAI,CAC1E,CAGA,YAA6B,EAAG,EAAM,CAClC,GAAI,IAAS,SAAU,CACnB,GAAI,GAAa,EAAE,SACnB,GAAI,GAAW,CAAU,EAAG,CACxB,GAAI,GAAS,EAAW,KAAK,CAAC,EAC9B,GAAI,CAAC,GAAS,CAAM,EAChB,MAAO,EACf,CACA,GAAI,GAAU,EAAE,QAChB,GAAI,GAAW,CAAO,EAAG,CACrB,GAAI,GAAS,EAAQ,KAAK,CAAC,EAC3B,GAAI,CAAC,GAAS,CAAM,EAChB,MAAO,EACf,CACJ,KACK,CACD,GAAI,GAAU,EAAE,QAChB,GAAI,GAAW,CAAO,EAAG,CACrB,GAAI,GAAS,EAAQ,KAAK,CAAC,EAC3B,GAAI,CAAC,GAAS,CAAM,EAChB,MAAO,EACf,CACA,GAAI,IAAa,EAAE,SACnB,GAAI,GAAW,EAAU,EAAG,CACxB,GAAI,GAAS,GAAW,KAAK,CAAC,EAC9B,GAAI,CAAC,GAAS,CAAM,EAChB,MAAO,EACf,CACJ,CACA,KAAM,IAAI,UACd,CAGA,YAAmB,EAAU,CACzB,MAAO,CAAC,CAAC,CACb,CAGA,YAAkB,EAAU,CACxB,MAAO,GAAK,CAChB,CAGA,YAAuB,EAAU,CAC7B,GAAI,GAAM,GAAY,EAAU,CAAc,EAC9C,MAAI,GAAS,CAAG,EACL,EACJ,GAAS,CAAG,CACvB,CAKA,YAAiB,EAAU,CACvB,MAAO,OAAM,QACP,MAAM,QAAQ,CAAQ,EACtB,YAAoB,QAChB,YAAoB,OACpB,OAAO,UAAU,SAAS,KAAK,CAAQ,IAAM,gBAC3D,CAGA,YAAoB,EAAU,CAE1B,MAAO,OAAO,IAAa,UAC/B,CAGA,YAAuB,EAAU,CAE7B,MAAO,OAAO,IAAa,UAC/B,CAGA,YAAuB,EAAU,CAC7B,OAAQ,GAAK,CAAQ,OACZ,GAAgB,MAAO,OACvB,GAAgB,MAAO,WACnB,MAAO,GAExB,CAKA,WAAmB,EAAG,EAAG,CACrB,GAAI,GAAO,EAAE,GACb,GAAI,AAAsB,GAAS,KAEnC,IAAI,CAAC,GAAW,CAAI,EAChB,KAAM,IAAI,WACd,MAAO,GACX,CAGA,WAAqB,EAAK,CACtB,GAAI,GAAS,EAAU,EAAK,CAAc,EAC1C,GAAI,CAAC,GAAW,CAAM,EAClB,KAAM,IAAI,WACd,GAAI,GAAW,EAAO,KAAK,CAAG,EAC9B,GAAI,CAAC,GAAS,CAAQ,EAClB,KAAM,IAAI,WACd,MAAO,EACX,CAGA,WAAuB,EAAY,CAC/B,MAAO,GAAW,KACtB,CAGA,WAAsB,EAAU,CAC5B,GAAI,GAAS,EAAS,KAAK,EAC3B,MAAO,GAAO,KAAO,GAAQ,CACjC,CAGA,WAAuB,EAAU,CAC7B,GAAI,GAAI,EAAS,OACjB,AAAI,GACA,EAAE,KAAK,CAAQ,CACvB,CAKA,WAAgC,EAAG,CAC/B,GAAI,GAAQ,OAAO,eAAe,CAAC,EAUnC,GATI,MAAO,IAAM,YAAc,IAAM,GASjC,IAAU,EACV,MAAO,GAEX,GAAI,GAAY,EAAE,UACd,EAAiB,GAAa,OAAO,eAAe,CAAS,EACjE,GAAI,GAAkB,MAAQ,IAAmB,OAAO,UACpD,MAAO,GAEX,GAAI,GAAc,EAAe,YAIjC,MAHI,OAAO,IAAgB,YAGvB,IAAgB,EACT,EAEJ,CACX,CAEA,YAA6B,CACzB,GAAI,GAAgB,CAAC,EACjB,EAAgB,CAAC,EACjB,EAA6B,UAAY,CACzC,WAAqB,EAAM,EAAQ,EAAU,CACzC,KAAK,OAAS,EACd,KAAK,MAAQ,EACb,KAAK,QAAU,EACf,KAAK,UAAY,CACrB,CACA,SAAY,UAAU,cAAgB,UAAY,CAAE,MAAO,KAAM,EACjE,EAAY,UAAU,GAAkB,UAAY,CAAE,MAAO,KAAM,EACnE,EAAY,UAAU,KAAO,UAAY,CACrC,GAAI,GAAQ,KAAK,OACjB,GAAI,GAAS,GAAK,EAAQ,KAAK,MAAM,OAAQ,CACzC,GAAI,GAAS,KAAK,UAAU,KAAK,MAAM,GAAQ,KAAK,QAAQ,EAAM,EAClE,MAAI,GAAQ,GAAK,KAAK,MAAM,OACxB,MAAK,OAAS,GACd,KAAK,MAAQ,EACb,KAAK,QAAU,GAGf,KAAK,SAEF,CAAE,MAAO,EAAQ,KAAM,EAAM,CACxC,CACA,MAAO,CAAE,MAAO,OAAW,KAAM,EAAK,CAC1C,EACA,EAAY,UAAU,MAAQ,SAAU,EAAO,CAC3C,KAAI,MAAK,QAAU,GACf,MAAK,OAAS,GACd,KAAK,MAAQ,EACb,KAAK,QAAU,GAEb,CACV,EACA,EAAY,UAAU,OAAS,SAAU,EAAO,CAC5C,MAAI,MAAK,QAAU,GACf,MAAK,OAAS,GACd,KAAK,MAAQ,EACb,KAAK,QAAU,GAEZ,CAAE,MAAO,EAAO,KAAM,EAAK,CACtC,EACO,CACX,EAAE,EACF,MAAsB,WAAY,CAC9B,YAAe,CACX,KAAK,MAAQ,CAAC,EACd,KAAK,QAAU,CAAC,EAChB,KAAK,UAAY,EACjB,KAAK,YAAc,EACvB,CACA,cAAO,eAAe,EAAI,UAAW,OAAQ,CACzC,IAAK,UAAY,CAAE,MAAO,MAAK,MAAM,MAAQ,EAC7C,WAAY,GACZ,aAAc,EAClB,CAAC,EACD,EAAI,UAAU,IAAM,SAAU,EAAK,CAAE,MAAO,MAAK,MAAM,EAAgB,EAAK,GAAK,CAAG,EACpF,EAAI,UAAU,IAAM,SAAU,EAAK,CAC/B,GAAI,GAAQ,KAAK,MAAM,EAAgB,EAAK,EAC5C,MAAO,IAAS,EAAI,KAAK,QAAQ,GAAS,MAC9C,EACA,EAAI,UAAU,IAAM,SAAU,EAAK,EAAO,CACtC,GAAI,GAAQ,KAAK,MAAM,EAAgB,EAAI,EAC3C,YAAK,QAAQ,GAAS,EACf,IACX,EACA,EAAI,UAAU,OAAS,SAAU,EAAK,CAClC,GAAI,GAAQ,KAAK,MAAM,EAAgB,EAAK,EAC5C,GAAI,GAAS,EAAG,CAEZ,OADI,GAAO,KAAK,MAAM,OACb,EAAI,EAAQ,EAAG,EAAI,EAAM,IAC9B,KAAK,MAAM,EAAI,GAAK,KAAK,MAAM,GAC/B,KAAK,QAAQ,EAAI,GAAK,KAAK,QAAQ,GAEvC,YAAK,MAAM,SACX,KAAK,QAAQ,SACT,IAAQ,KAAK,WACb,MAAK,UAAY,EACjB,KAAK,YAAc,IAEhB,EACX,CACA,MAAO,EACX,EACA,EAAI,UAAU,MAAQ,UAAY,CAC9B,KAAK,MAAM,OAAS,EACpB,KAAK,QAAQ,OAAS,EACtB,KAAK,UAAY,EACjB,KAAK,YAAc,EACvB,EACA,EAAI,UAAU,KAAO,UAAY,CAAE,MAAO,IAAI,GAAY,KAAK,MAAO,KAAK,QAAS,CAAM,CAAG,EAC7F,EAAI,UAAU,OAAS,UAAY,CAAE,MAAO,IAAI,GAAY,KAAK,MAAO,KAAK,QAAS,CAAQ,CAAG,EACjG,EAAI,UAAU,QAAU,UAAY,CAAE,MAAO,IAAI,GAAY,KAAK,MAAO,KAAK,QAAS,EAAQ,CAAG,EAClG,EAAI,UAAU,cAAgB,UAAY,CAAE,MAAO,MAAK,QAAQ,CAAG,EACnE,EAAI,UAAU,GAAkB,UAAY,CAAE,MAAO,MAAK,QAAQ,CAAG,EACrE,EAAI,UAAU,MAAQ,SAAU,EAAK,EAAQ,CACzC,MAAI,MAAK,YAAc,GACnB,MAAK,YAAc,KAAK,MAAM,QAAQ,KAAK,UAAY,CAAG,GAE1D,KAAK,YAAc,GAAK,GACxB,MAAK,YAAc,KAAK,MAAM,OAC9B,KAAK,MAAM,KAAK,CAAG,EACnB,KAAK,QAAQ,KAAK,MAAS,GAExB,KAAK,WAChB,EACO,CACX,EAAE,EACF,WAAgB,EAAK,EAAG,CACpB,MAAO,EACX,CACA,WAAkB,EAAG,EAAO,CACxB,MAAO,EACX,CACA,YAAkB,EAAK,EAAO,CAC1B,MAAO,CAAC,EAAK,CAAK,CACtB,CACJ,CAEA,YAA6B,CACzB,MAAsB,WAAY,CAC9B,YAAe,CACX,KAAK,KAAO,GAAI,EACpB,CACA,cAAO,eAAe,EAAI,UAAW,OAAQ,CACzC,IAAK,UAAY,CAAE,MAAO,MAAK,KAAK,IAAM,EAC1C,WAAY,GACZ,aAAc,EAClB,CAAC,EACD,EAAI,UAAU,IAAM,SAAU,EAAO,CAAE,MAAO,MAAK,KAAK,IAAI,CAAK,CAAG,EACpE,EAAI,UAAU,IAAM,SAAU,EAAO,CAAE,MAAO,MAAK,KAAK,IAAI,EAAO,CAAK,EAAG,IAAM,EACjF,EAAI,UAAU,OAAS,SAAU,EAAO,CAAE,MAAO,MAAK,KAAK,OAAO,CAAK,CAAG,EAC1E,EAAI,UAAU,MAAQ,UAAY,CAAE,KAAK,KAAK,MAAM,CAAG,EACvD,EAAI,UAAU,KAAO,UAAY,CAAE,MAAO,MAAK,KAAK,KAAK,CAAG,EAC5D,EAAI,UAAU,OAAS,UAAY,CAAE,MAAO,MAAK,KAAK,OAAO,CAAG,EAChE,EAAI,UAAU,QAAU,UAAY,CAAE,MAAO,MAAK,KAAK,QAAQ,CAAG,EAClE,EAAI,UAAU,cAAgB,UAAY,CAAE,MAAO,MAAK,KAAK,CAAG,EAChE,EAAI,UAAU,GAAkB,UAAY,CAAE,MAAO,MAAK,KAAK,CAAG,EAC3D,CACX,EAAE,CACN,CAEA,aAAiC,CAC7B,GAAI,GAAY,GACZ,EAAO,EAAQ,OAAO,EACtB,EAAU,EAAgB,EAC9B,MAAsB,WAAY,CAC9B,YAAmB,CACf,KAAK,KAAO,EAAgB,CAChC,CACA,SAAQ,UAAU,IAAM,SAAU,EAAQ,CACtC,GAAI,GAAQ,EAAwB,EAAmB,EAAK,EAC5D,MAAO,KAAU,OAAY,EAAQ,IAAI,EAAO,KAAK,IAAI,EAAI,EACjE,EACA,EAAQ,UAAU,IAAM,SAAU,EAAQ,CACtC,GAAI,GAAQ,EAAwB,EAAmB,EAAK,EAC5D,MAAO,KAAU,OAAY,EAAQ,IAAI,EAAO,KAAK,IAAI,EAAI,MACjE,EACA,EAAQ,UAAU,IAAM,SAAU,EAAQ,EAAO,CAC7C,GAAI,IAAQ,EAAwB,EAAmB,EAAI,EAC3D,UAAM,KAAK,MAAQ,EACZ,IACX,EACA,EAAQ,UAAU,OAAS,SAAU,EAAQ,CACzC,GAAI,GAAQ,EAAwB,EAAmB,EAAK,EAC5D,MAAO,KAAU,OAAY,MAAO,GAAM,KAAK,MAAQ,EAC3D,EACA,EAAQ,UAAU,MAAQ,UAAY,CAElC,KAAK,KAAO,EAAgB,CAChC,EACO,CACX,EAAE,EACF,YAA2B,CACvB,GAAI,GACJ,EACI,GAAM,cAAgB,EAAW,QAC9B,EAAQ,IAAI,EAAM,CAAG,GAC5B,SAAK,GAAO,GACL,CACX,CACA,WAAiC,EAAQ,EAAQ,CAC7C,GAAI,CAAC,EAAO,KAAK,EAAQ,CAAO,EAAG,CAC/B,GAAI,CAAC,EACD,OACJ,OAAO,eAAe,EAAQ,EAAS,CAAE,MAAO,EAAQ,OAAO,CAAE,CAAC,CACtE,CACA,MAAO,GAAO,EAClB,CACA,YAAyB,EAAQ,EAAM,CACnC,OAAS,GAAI,EAAG,EAAI,EAAM,EAAE,EACxB,EAAO,GAAK,KAAK,OAAO,EAAI,IAAO,EACvC,MAAO,EACX,CACA,WAAwB,EAAM,CAC1B,MAAI,OAAO,aAAe,WAClB,MAAO,QAAW,IACX,OAAO,gBAAgB,GAAI,YAAW,CAAI,CAAC,EAClD,MAAO,UAAa,IACb,SAAS,gBAAgB,GAAI,YAAW,CAAI,CAAC,EACjD,GAAgB,GAAI,YAAW,CAAI,EAAG,CAAI,EAE9C,GAAgB,GAAI,OAAM,CAAI,EAAG,CAAI,CAChD,CACA,YAAsB,CAClB,GAAI,GAAO,EAAe,CAAS,EAEnC,EAAK,GAAK,EAAK,GAAK,GAAO,GAC3B,EAAK,GAAK,EAAK,GAAK,IAAO,IAE3B,OADI,GAAS,GACJ,EAAS,EAAG,EAAS,EAAW,EAAE,EAAQ,CAC/C,GAAI,IAAO,EAAK,GAChB,AAAI,KAAW,GAAK,IAAW,GAAK,IAAW,IAC3C,IAAU,KACV,GAAO,IACP,IAAU,KACd,GAAU,GAAK,SAAS,EAAE,EAAE,YAAY,CAC5C,CACA,MAAO,EACX,CACJ,CAEA,YAAwB,EAAK,CACzB,SAAI,GAAK,OACT,MAAO,GAAI,GACJ,CACX,CACJ,CAAC,CACL,GAAG,IAAY,IAAU,CAAC,EAAE,EFtmC5B,OAAgC,SAChC,GAA4B,SAC5B,GAAuB,SGLvB,OAA4B,SAEtB,GAA2C,CAC/C,kBAAmB,GACnB,kBAAmB,EACrB,EAOO,YAAqC,EAE5B,CACd,GAAM,CAAE,WAAY,EACd,CAAE,UAAS,SAAQ,OAAM,cAAa,OAAQ,EAc9C,EAAmB,EAAY,QAAQ,MAAO,KAAK,EAAE,QAAQ,KAAM,KAAK,EACxE,EAAW,EAAQ,KAAQ,GAAG,MAC9B,EAAM,GAAI,KAAI,WAAW,IAAW,IAAM,EAAc,IAAI,IAAgB,IAAI,EAChF,EAAwC,CAAC,EAC/C,OAAW,KAAO,QAAO,KAAK,CAAO,EACnC,AAAI,GAAgB,IAGpB,GAAW,GAAO,EAAQ,GAAK,GAAG,OAEpC,GAAM,GAAsC,CAAC,EAC7C,OAAW,KAAO,GAAI,aAAa,KAAK,EACtC,EAAS,GAAO,EAAI,aAAa,IAAI,CAAG,GAAK,GAI/C,EAAQ,YAAc,EAEtB,GAAI,GACJ,MAAI,IAAQ,EAAK,MAAQ,EAAK,WAAa,SACzC,EAAW,OAAO,KAAK,EAAK,KAAM,QAAQ,EACjC,GAAQ,EAAK,MACtB,GAAW,EAAK,MAGX,GAAI,gBAAY,CACrB,QAAS,EACT,WACA,SACA,KAAM,IACN,SAAU,SACV,KAAM,EAAQ,IACd,KAAM,EACN,MAAO,CACT,CAAC,CACH,CCvDA,kBACE,EACA,EACA,EACmC,CACnC,GAAM,GAAc,GAA4B,CAAE,SAAQ,CAAC,EAErD,EAAgB,KAAM,GAAO,KAAK,CAAW,EAGnD,OAAW,KAAO,CAChB,gBACA,aACA,uBACA,sBACF,EACE,EAAQ,QAAQ,GAAO,CAAC,CAAE,IAAK,EAAK,MAAO,EAAc,QAAQ,EAAK,CAAC,EAGzE,MAAO,EACT,CASA,kBACE,EACA,EACA,EACmC,CACnC,GAAM,GAAc,GAA4B,CAAE,SAAQ,CAAC,EAErD,EAAgB,KAAM,GAAO,QAAQ,CAAW,EAGtD,OAAW,KAAO,CAChB,gBACA,aACA,uBACA,sBACF,EACE,EAAQ,QAAQ,GAAO,CAAC,CAAE,IAAK,EAAK,MAAO,EAAc,QAAQ,EAAK,CAAC,EAGzE,MAAO,EACT,CC5DA,OAA+B,SCC/B,AACA,YAAmB,EAAS,CAC1B,MAAQ,OAAO,GAAY,KAAiB,IAAY,IAC1D,CAGA,YAAkB,EAAS,CACzB,MAAQ,OAAO,IAAY,UAAc,IAAY,IACvD,CAGA,YAAiB,EAAU,CACzB,MAAI,OAAM,QAAQ,CAAQ,EAAU,EAC3B,GAAU,CAAQ,EAAU,CAAC,EAE/B,CAAE,CAAS,CACpB,CAGA,YAAgB,EAAQ,EAAQ,CAC9B,GAAI,GAAO,EAAQ,EAAK,EAExB,GAAI,EAGF,IAFA,EAAa,OAAO,KAAK,CAAM,EAE1B,EAAQ,EAAG,EAAS,EAAW,OAAQ,EAAQ,EAAQ,GAAS,EACnE,EAAM,EAAW,GACjB,EAAO,GAAO,EAAO,GAIzB,MAAO,EACT,CAGA,YAAgB,EAAQ,EAAO,CAC7B,GAAI,GAAS,GAAI,EAEjB,IAAK,EAAQ,EAAG,EAAQ,EAAO,GAAS,EACtC,GAAU,EAGZ,MAAO,EACT,CAGA,YAAwB,EAAQ,CAC9B,MAAQ,KAAW,GAAO,OAAO,oBAAsB,EAAI,CAC7D,CAGA,GAAI,IAAmB,GACnB,GAAmB,GACnB,GAAmB,GACnB,GAAmB,GACnB,GAAmB,GACnB,GAAmB,GAEnB,GAAS,CACZ,UAAW,GACX,SAAU,GACV,QAAS,GACT,OAAQ,GACR,eAAgB,GAChB,OAAQ,EACT,EAKA,YAAqB,EAAW,EAAS,CACvC,GAAI,GAAQ,GAAI,EAAU,EAAU,QAAU,mBAE9C,MAAK,GAAU,KAEX,GAAU,KAAK,MACjB,IAAS,OAAS,EAAU,KAAK,KAAO,MAG1C,GAAS,IAAO,GAAU,KAAK,KAAO,GAAK,IAAO,GAAU,KAAK,OAAS,GAAK,IAE3E,CAAC,GAAW,EAAU,KAAK,SAC7B,IAAS;AAAA;AAAA,EAAS,EAAU,KAAK,SAG5B,EAAU,IAAM,GAZK,CAa9B,CAGA,YAAyB,EAAQ,EAAM,CAErC,MAAM,KAAK,IAAI,EAEf,KAAK,KAAO,gBACZ,KAAK,OAAS,EACd,KAAK,KAAO,EACZ,KAAK,QAAU,GAAY,KAAM,EAAK,EAGtC,AAAI,MAAM,kBAER,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAG9C,KAAK,MAAS,GAAI,OAAM,EAAG,OAAS,EAExC,CAIA,GAAgB,UAAY,OAAO,OAAO,MAAM,SAAS,EACzD,GAAgB,UAAU,YAAc,GAGxC,GAAgB,UAAU,SAAW,SAAkB,EAAS,CAC9D,MAAO,MAAK,KAAO,KAAO,GAAY,KAAM,CAAO,CACrD,EAGA,GAAI,IAAY,GAGhB,YAAiB,EAAQ,EAAW,EAAS,EAAU,EAAe,CACpE,GAAI,GAAO,GACP,EAAO,GACP,EAAgB,KAAK,MAAM,EAAgB,CAAC,EAAI,EAEpD,MAAI,GAAW,EAAY,GACzB,GAAO,QACP,EAAY,EAAW,EAAgB,EAAK,QAG1C,EAAU,EAAW,GACvB,GAAO,OACP,EAAU,EAAW,EAAgB,EAAK,QAGrC,CACL,IAAK,EAAO,EAAO,MAAM,EAAW,CAAO,EAAE,QAAQ,MAAO,QAAG,EAAI,EACnE,IAAK,EAAW,EAAY,EAAK,MACnC,CACF,CAGA,YAAkB,EAAQ,EAAK,CAC7B,MAAO,IAAO,OAAO,IAAK,EAAM,EAAO,MAAM,EAAI,CACnD,CAGA,YAAqB,EAAM,EAAS,CAGlC,GAFA,EAAU,OAAO,OAAO,GAAW,IAAI,EAEnC,CAAC,EAAK,OAAQ,MAAO,MAEzB,AAAK,EAAQ,WAAW,GAAQ,UAAY,IACxC,MAAO,GAAQ,QAAgB,UAAU,GAAQ,OAAc,GAC/D,MAAO,GAAQ,aAAgB,UAAU,GAAQ,YAAc,GAC/D,MAAO,GAAQ,YAAgB,UAAU,GAAQ,WAAc,GAQnE,OANI,GAAK,eACL,EAAa,CAAE,CAAE,EACjB,EAAW,CAAC,EACZ,EACA,EAAc,GAEV,EAAQ,EAAG,KAAK,EAAK,MAAM,GACjC,EAAS,KAAK,EAAM,KAAK,EACzB,EAAW,KAAK,EAAM,MAAQ,EAAM,GAAG,MAAM,EAEzC,EAAK,UAAY,EAAM,OAAS,EAAc,GAChD,GAAc,EAAW,OAAS,GAItC,AAAI,EAAc,GAAG,GAAc,EAAW,OAAS,GAEvD,GAAI,GAAS,GAAI,EAAG,EAChB,EAAe,KAAK,IAAI,EAAK,KAAO,EAAQ,WAAY,EAAS,MAAM,EAAE,SAAS,EAAE,OACpF,EAAgB,EAAQ,UAAa,GAAQ,OAAS,EAAe,GAEzE,IAAK,EAAI,EAAG,GAAK,EAAQ,aACnB,IAAc,EAAI,GADc,IAEpC,EAAO,GACL,EAAK,OACL,EAAW,EAAc,GACzB,EAAS,EAAc,GACvB,EAAK,SAAY,GAAW,GAAe,EAAW,EAAc,IACpE,CACF,EACA,EAAS,GAAO,OAAO,IAAK,EAAQ,MAAM,EAAI,GAAU,GAAK,KAAO,EAAI,GAAG,SAAS,EAAG,CAAY,EACjG,MAAQ,EAAK,IAAM;AAAA,EAAO,EAQ9B,IALA,EAAO,GAAQ,EAAK,OAAQ,EAAW,GAAc,EAAS,GAAc,EAAK,SAAU,CAAa,EACxG,GAAU,GAAO,OAAO,IAAK,EAAQ,MAAM,EAAI,GAAU,GAAK,KAAO,GAAG,SAAS,EAAG,CAAY,EAC9F,MAAQ,EAAK,IAAM;AAAA,EACrB,GAAU,GAAO,OAAO,IAAK,EAAQ,OAAS,EAAe,EAAI,EAAK,GAAG,EAAI;AAAA,EAExE,EAAI,EAAG,GAAK,EAAQ,YACnB,IAAc,GAAK,EAAS,QADG,IAEnC,EAAO,GACL,EAAK,OACL,EAAW,EAAc,GACzB,EAAS,EAAc,GACvB,EAAK,SAAY,GAAW,GAAe,EAAW,EAAc,IACpE,CACF,EACA,GAAU,GAAO,OAAO,IAAK,EAAQ,MAAM,EAAI,GAAU,GAAK,KAAO,EAAI,GAAG,SAAS,EAAG,CAAY,EAClG,MAAQ,EAAK,IAAM;AAAA,EAGvB,MAAO,GAAO,QAAQ,MAAO,EAAE,CACjC,CAGA,GAAI,IAAU,GAEV,GAA2B,CAC7B,OACA,QACA,UACA,YACA,aACA,YACA,YACA,gBACA,eACA,cACF,EAEI,GAAkB,CACpB,SACA,WACA,SACF,EAEA,YAA6B,EAAK,CAChC,GAAI,GAAS,CAAC,EAEd,MAAI,KAAQ,MACV,OAAO,KAAK,CAAG,EAAE,QAAQ,SAAU,EAAO,CACxC,EAAI,GAAO,QAAQ,SAAU,EAAO,CAClC,EAAO,OAAO,CAAK,GAAK,CAC1B,CAAC,CACH,CAAC,EAGI,CACT,CAEA,YAAgB,EAAK,EAAS,CAuB5B,GAtBA,EAAU,GAAW,CAAC,EAEtB,OAAO,KAAK,CAAO,EAAE,QAAQ,SAAU,EAAM,CAC3C,GAAI,GAAyB,QAAQ,CAAI,IAAM,GAC7C,KAAM,IAAI,IAAU,mBAAqB,EAAO,8BAAgC,EAAM,cAAc,CAExG,CAAC,EAGD,KAAK,QAAgB,EACrB,KAAK,IAAgB,EACrB,KAAK,KAAgB,EAAQ,MAAoB,KACjD,KAAK,QAAgB,EAAQ,SAAoB,UAAY,CAAE,MAAO,EAAM,EAC5E,KAAK,UAAgB,EAAQ,WAAoB,SAAU,EAAM,CAAE,MAAO,EAAM,EAChF,KAAK,WAAgB,EAAQ,YAAoB,KACjD,KAAK,UAAgB,EAAQ,WAAoB,KACjD,KAAK,UAAgB,EAAQ,WAAoB,KACjD,KAAK,cAAgB,EAAQ,eAAoB,KACjD,KAAK,aAAgB,EAAQ,cAAoB,KACjD,KAAK,MAAgB,EAAQ,OAAoB,GACjD,KAAK,aAAgB,GAAoB,EAAQ,cAAmB,IAAI,EAEpE,GAAgB,QAAQ,KAAK,IAAI,IAAM,GACzC,KAAM,IAAI,IAAU,iBAAmB,KAAK,KAAO,uBAAyB,EAAM,cAAc,CAEpG,CAEA,GAAI,IAAO,GAQX,YAAqB,EAAQ,EAAM,CACjC,GAAI,GAAS,CAAC,EAEd,SAAO,GAAM,QAAQ,SAAU,EAAa,CAC1C,GAAI,GAAW,EAAO,OAEtB,EAAO,QAAQ,SAAU,EAAc,EAAe,CACpD,AAAI,EAAa,MAAQ,EAAY,KACjC,EAAa,OAAS,EAAY,MAClC,EAAa,QAAU,EAAY,OAErC,GAAW,EAEf,CAAC,EAED,EAAO,GAAY,CACrB,CAAC,EAEM,CACT,CAGA,aAAoC,CAClC,GAAI,GAAS,CACP,OAAQ,CAAC,EACT,SAAU,CAAC,EACX,QAAS,CAAC,EACV,SAAU,CAAC,EACX,MAAO,CACL,OAAQ,CAAC,EACT,SAAU,CAAC,EACX,QAAS,CAAC,EACV,SAAU,CAAC,CACb,CACF,EAAG,EAAO,EAEd,WAAqB,EAAM,CACzB,AAAI,EAAK,MACP,GAAO,MAAM,EAAK,MAAM,KAAK,CAAI,EACjC,EAAO,MAAM,SAAY,KAAK,CAAI,GAElC,EAAO,EAAK,MAAM,EAAK,KAAO,EAAO,SAAY,EAAK,KAAO,CAEjE,CAEA,IAAK,EAAQ,EAAG,EAAS,UAAU,OAAQ,EAAQ,EAAQ,GAAS,EAClE,UAAU,GAAO,QAAQ,CAAW,EAEtC,MAAO,EACT,CAGA,YAAkB,EAAY,CAC5B,MAAO,MAAK,OAAO,CAAU,CAC/B,CAGA,GAAS,UAAU,OAAS,SAAgB,EAAY,CACtD,GAAI,GAAW,CAAC,EACZ,EAAW,CAAC,EAEhB,GAAI,YAAsB,IAExB,EAAS,KAAK,CAAU,UAEf,MAAM,QAAQ,CAAU,EAEjC,EAAW,EAAS,OAAO,CAAU,UAE5B,GAAe,OAAM,QAAQ,EAAW,QAAQ,GAAK,MAAM,QAAQ,EAAW,QAAQ,GAE/F,AAAI,EAAW,UAAU,GAAW,EAAS,OAAO,EAAW,QAAQ,GACnE,EAAW,UAAU,GAAW,EAAS,OAAO,EAAW,QAAQ,OAGvE,MAAM,IAAI,IAAU,kHAC6C,EAGnE,EAAS,QAAQ,SAAU,EAAQ,CACjC,GAAI,CAAE,aAAkB,KACtB,KAAM,IAAI,IAAU,oFAAoF,EAG1G,GAAI,EAAO,UAAY,EAAO,WAAa,SACzC,KAAM,IAAI,IAAU,iHAAiH,EAGvI,GAAI,EAAO,MACT,KAAM,IAAI,IAAU,oGAAoG,CAE5H,CAAC,EAED,EAAS,QAAQ,SAAU,EAAQ,CACjC,GAAI,CAAE,aAAkB,KACtB,KAAM,IAAI,IAAU,oFAAoF,CAE5G,CAAC,EAED,GAAI,GAAS,OAAO,OAAO,GAAS,SAAS,EAE7C,SAAO,SAAY,MAAK,UAAY,CAAC,GAAG,OAAO,CAAQ,EACvD,EAAO,SAAY,MAAK,UAAY,CAAC,GAAG,OAAO,CAAQ,EAEvD,EAAO,iBAAmB,GAAY,EAAQ,UAAU,EACxD,EAAO,iBAAmB,GAAY,EAAQ,UAAU,EACxD,EAAO,gBAAmB,GAAW,EAAO,iBAAkB,EAAO,gBAAgB,EAE9E,CACT,EAGA,GAAI,IAAS,GAET,GAAM,GAAI,IAAK,wBAAyB,CAC1C,KAAM,SACN,UAAW,SAAU,EAAM,CAAE,MAAO,KAAS,KAAO,EAAO,EAAI,CACjE,CAAC,EAEG,GAAM,GAAI,IAAK,wBAAyB,CAC1C,KAAM,WACN,UAAW,SAAU,EAAM,CAAE,MAAO,KAAS,KAAO,EAAO,CAAC,CAAG,CACjE,CAAC,EAEG,GAAM,GAAI,IAAK,wBAAyB,CAC1C,KAAM,UACN,UAAW,SAAU,EAAM,CAAE,MAAO,KAAS,KAAO,EAAO,CAAC,CAAG,CACjE,CAAC,EAEG,GAAW,GAAI,IAAO,CACxB,SAAU,CACR,GACA,GACA,EACF,CACF,CAAC,EAED,YAAyB,EAAM,CAC7B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,OAEf,MAAQ,KAAQ,GAAK,IAAS,KACtB,IAAQ,GAAM,KAAS,QAAU,IAAS,QAAU,IAAS,OACvE,CAEA,aAA6B,CAC3B,MAAO,KACT,CAEA,YAAgB,EAAQ,CACtB,MAAO,KAAW,IACpB,CAEA,GAAI,IAAQ,GAAI,IAAK,yBAA0B,CAC7C,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,CACT,UAAW,UAAY,CAAE,MAAO,GAAQ,EACxC,UAAW,UAAY,CAAE,MAAO,MAAQ,EACxC,UAAW,UAAY,CAAE,MAAO,MAAQ,EACxC,UAAW,UAAY,CAAE,MAAO,MAAQ,EACxC,MAAW,UAAY,CAAE,MAAO,EAAQ,CAC1C,EACA,aAAc,WAChB,CAAC,EAED,YAA4B,EAAM,CAChC,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,OAEf,MAAQ,KAAQ,GAAM,KAAS,QAAU,IAAS,QAAU,IAAS,SAC7D,IAAQ,GAAM,KAAS,SAAW,IAAS,SAAW,IAAS,QACzE,CAEA,YAA8B,EAAM,CAClC,MAAO,KAAS,QACT,IAAS,QACT,IAAS,MAClB,CAEA,YAAmB,EAAQ,CACzB,MAAO,QAAO,UAAU,SAAS,KAAK,CAAM,IAAM,kBACpD,CAEA,GAAI,IAAO,GAAI,IAAK,yBAA0B,CAC5C,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,CACT,UAAW,SAAU,EAAQ,CAAE,MAAO,GAAS,OAAS,OAAS,EACjE,UAAW,SAAU,EAAQ,CAAE,MAAO,GAAS,OAAS,OAAS,EACjE,UAAW,SAAU,EAAQ,CAAE,MAAO,GAAS,OAAS,OAAS,CACnE,EACA,aAAc,WAChB,CAAC,EAED,YAAmB,EAAG,CACpB,MAAS,KAAe,GAAO,GAAK,IAC3B,IAAe,GAAO,GAAK,IAC3B,IAAe,GAAO,GAAK,GACtC,CAEA,YAAmB,EAAG,CACpB,MAAS,KAAe,GAAO,GAAK,EACtC,CAEA,YAAmB,EAAG,CACpB,MAAS,KAAe,GAAO,GAAK,EACtC,CAEA,YAA4B,EAAM,CAChC,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,OACX,EAAQ,EACR,EAAY,GACZ,EAEJ,GAAI,CAAC,EAAK,MAAO,GASjB,GAPA,EAAK,EAAK,GAGN,KAAO,KAAO,IAAO,MACvB,GAAK,EAAK,EAAE,IAGV,IAAO,IAAK,CAEd,GAAI,EAAQ,IAAM,EAAK,MAAO,GAK9B,GAJA,EAAK,EAAK,EAAE,GAIR,IAAO,IAAK,CAId,IAFA,IAEO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,IAAO,KAAO,IAAO,IAAK,MAAO,GACrC,EAAY,GAEd,MAAO,IAAa,IAAO,GAC7B,CAGA,GAAI,IAAO,IAAK,CAId,IAFA,IAEO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,CAAC,GAAU,EAAK,WAAW,CAAK,CAAC,EAAG,MAAO,GAC/C,EAAY,GAEd,MAAO,IAAa,IAAO,GAC7B,CAGA,GAAI,IAAO,IAAK,CAId,IAFA,IAEO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,CAAC,GAAU,EAAK,WAAW,CAAK,CAAC,EAAG,MAAO,GAC/C,EAAY,GAEd,MAAO,IAAa,IAAO,GAC7B,CACF,CAKA,GAAI,IAAO,IAAK,MAAO,GAEvB,KAAO,EAAQ,EAAK,IAElB,GADA,EAAK,EAAK,GACN,IAAO,IACX,IAAI,CAAC,GAAU,EAAK,WAAW,CAAK,CAAC,EACnC,MAAO,GAET,EAAY,GAId,MAAI,GAAC,GAAa,IAAO,IAG3B,CAEA,YAA8B,EAAM,CAClC,GAAI,GAAQ,EAAM,EAAO,EAAG,EAc5B,GAZI,EAAM,QAAQ,GAAG,IAAM,IACzB,GAAQ,EAAM,QAAQ,KAAM,EAAE,GAGhC,EAAK,EAAM,GAEP,KAAO,KAAO,IAAO,MACnB,KAAO,KAAK,GAAO,IACvB,EAAQ,EAAM,MAAM,CAAC,EACrB,EAAK,EAAM,IAGT,IAAU,IAAK,MAAO,GAE1B,GAAI,IAAO,IAAK,CACd,GAAI,EAAM,KAAO,IAAK,MAAO,GAAO,SAAS,EAAM,MAAM,CAAC,EAAG,CAAC,EAC9D,GAAI,EAAM,KAAO,IAAK,MAAO,GAAO,SAAS,EAAM,MAAM,CAAC,EAAG,EAAE,EAC/D,GAAI,EAAM,KAAO,IAAK,MAAO,GAAO,SAAS,EAAM,MAAM,CAAC,EAAG,CAAC,CAChE,CAEA,MAAO,GAAO,SAAS,EAAO,EAAE,CAClC,CAEA,YAAmB,EAAQ,CACzB,MAAQ,QAAO,UAAU,SAAS,KAAK,CAAM,IAAO,mBAC5C,EAAS,IAAM,GAAK,CAAC,GAAO,eAAe,CAAM,CAC3D,CAEA,GAAI,IAAM,GAAI,IAAK,wBAAyB,CAC1C,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,CACT,OAAa,SAAU,EAAK,CAAE,MAAO,IAAO,EAAI,KAAO,EAAI,SAAS,CAAC,EAAI,MAAQ,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAAG,EAC3G,MAAa,SAAU,EAAK,CAAE,MAAO,IAAO,EAAI,KAAQ,EAAI,SAAS,CAAC,EAAI,MAAS,EAAI,SAAS,CAAC,EAAE,MAAM,CAAC,CAAG,EAC7G,QAAa,SAAU,EAAK,CAAE,MAAO,GAAI,SAAS,EAAE,CAAG,EAEvD,YAAa,SAAU,EAAK,CAAE,MAAO,IAAO,EAAI,KAAO,EAAI,SAAS,EAAE,EAAE,YAAY,EAAK,MAAQ,EAAI,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,CAAG,CAC5I,EACA,aAAc,UACd,aAAc,CACZ,OAAa,CAAE,EAAI,KAAM,EACzB,MAAa,CAAE,EAAI,KAAM,EACzB,QAAa,CAAE,GAAI,KAAM,EACzB,YAAa,CAAE,GAAI,KAAM,CAC3B,CACF,CAAC,EAEG,GAAqB,GAAI,QAE3B,0IAOuB,EAEzB,YAA0B,EAAM,CAG9B,MAFI,MAAS,MAET,CAAC,GAAmB,KAAK,CAAI,GAG7B,EAAK,EAAK,OAAS,KAAO,IAKhC,CAEA,YAA4B,EAAM,CAChC,GAAI,GAAO,EASX,MAPA,GAAS,EAAK,QAAQ,KAAM,EAAE,EAAE,YAAY,EAC5C,EAAS,EAAM,KAAO,IAAM,GAAK,EAE7B,KAAK,QAAQ,EAAM,EAAE,GAAK,GAC5B,GAAQ,EAAM,MAAM,CAAC,GAGnB,IAAU,OACJ,IAAS,EAAK,OAAO,kBAAoB,OAAO,kBAE/C,IAAU,OACZ,IAEF,EAAO,WAAW,EAAO,EAAE,CACpC,CAGA,GAAI,IAAyB,gBAE7B,YAA4B,EAAQ,EAAO,CACzC,GAAI,GAEJ,GAAI,MAAM,CAAM,EACd,OAAQ,OACD,YAAa,MAAO,WACpB,YAAa,MAAO,WACpB,YAAa,MAAO,eAElB,OAAO,oBAAsB,EACtC,OAAQ,OACD,YAAa,MAAO,WACpB,YAAa,MAAO,WACpB,YAAa,MAAO,eAElB,OAAO,oBAAsB,EACtC,OAAQ,OACD,YAAa,MAAO,YACpB,YAAa,MAAO,YACpB,YAAa,MAAO,gBAElB,GAAO,eAAe,CAAM,EACrC,MAAO,OAGT,SAAM,EAAO,SAAS,EAAE,EAKjB,GAAuB,KAAK,CAAG,EAAI,EAAI,QAAQ,IAAK,IAAI,EAAI,CACrE,CAEA,YAAiB,EAAQ,CACvB,MAAQ,QAAO,UAAU,SAAS,KAAK,CAAM,IAAM,mBAC3C,GAAS,IAAM,GAAK,GAAO,eAAe,CAAM,EAC1D,CAEA,GAAI,IAAQ,GAAI,IAAK,0BAA2B,CAC9C,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,GACX,aAAc,WAChB,CAAC,EAEG,GAAO,GAAS,OAAO,CACzB,SAAU,CACR,GACA,GACA,GACA,EACF,CACF,CAAC,EAEG,GAAO,GAEP,GAAmB,GAAI,QACzB,oDAEgB,EAEd,GAAwB,GAAI,QAC9B,kLASwB,EAE1B,YAA8B,EAAM,CAClC,MAAI,KAAS,KAAa,GACtB,GAAiB,KAAK,CAAI,IAAM,MAChC,GAAsB,KAAK,CAAI,IAAM,IAE3C,CAEA,YAAgC,EAAM,CACpC,GAAI,GAAO,EAAM,EAAO,EAAK,EAAM,EAAQ,EAAQ,EAAW,EAC1D,EAAQ,KAAM,EAAS,EAAW,EAKtC,GAHA,EAAQ,GAAiB,KAAK,CAAI,EAC9B,IAAU,MAAM,GAAQ,GAAsB,KAAK,CAAI,GAEvD,IAAU,KAAM,KAAM,IAAI,OAAM,oBAAoB,EAQxD,GAJA,EAAO,CAAE,EAAM,GACf,EAAQ,CAAE,EAAM,GAAM,EACtB,EAAM,CAAE,EAAM,GAEV,CAAC,EAAM,GACT,MAAO,IAAI,MAAK,KAAK,IAAI,EAAM,EAAO,CAAG,CAAC,EAS5C,GAJA,EAAO,CAAE,EAAM,GACf,EAAS,CAAE,EAAM,GACjB,EAAS,CAAE,EAAM,GAEb,EAAM,GAAI,CAEZ,IADA,EAAW,EAAM,GAAG,MAAM,EAAG,CAAC,EACvB,EAAS,OAAS,GACvB,GAAY,IAEd,EAAW,CAAC,CACd,CAIA,MAAI,GAAM,IACR,GAAU,CAAE,EAAM,IAClB,EAAY,CAAE,GAAM,KAAO,GAC3B,EAAS,GAAU,GAAK,GAAa,IACjC,EAAM,KAAO,KAAK,GAAQ,CAAC,IAGjC,EAAO,GAAI,MAAK,KAAK,IAAI,EAAM,EAAO,EAAK,EAAM,EAAQ,EAAQ,CAAQ,CAAC,EAEtE,GAAO,EAAK,QAAQ,EAAK,QAAQ,EAAI,CAAK,EAEvC,CACT,CAEA,YAAgC,EAAoB,CAClD,MAAO,GAAO,YAAY,CAC5B,CAEA,GAAI,IAAY,GAAI,IAAK,8BAA+B,CACtD,KAAM,SACN,QAAS,GACT,UAAW,GACX,WAAY,KACZ,UAAW,EACb,CAAC,EAED,YAA0B,EAAM,CAC9B,MAAO,KAAS,MAAQ,IAAS,IACnC,CAEA,GAAI,IAAQ,GAAI,IAAK,0BAA2B,CAC9C,KAAM,SACN,QAAS,EACX,CAAC,EASG,GAAa;AAAA,IAGjB,YAA2B,EAAM,CAC/B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAM,EAAK,EAAS,EAAG,EAAM,EAAK,OAAQ,EAAM,GAGpD,IAAK,EAAM,EAAG,EAAM,EAAK,IAIvB,GAHA,EAAO,EAAI,QAAQ,EAAK,OAAO,CAAG,CAAC,EAG/B,IAAO,IAGX,IAAI,EAAO,EAAG,MAAO,GAErB,GAAU,EAIZ,MAAQ,GAAS,IAAO,CAC1B,CAEA,YAA6B,EAAM,CACjC,GAAI,GAAK,EACL,EAAQ,EAAK,QAAQ,WAAY,EAAE,EACnC,EAAM,EAAM,OACZ,EAAM,GACN,EAAO,EACP,EAAS,CAAC,EAId,IAAK,EAAM,EAAG,EAAM,EAAK,IACvB,AAAK,EAAM,IAAM,GAAM,GACrB,GAAO,KAAM,GAAQ,GAAM,GAAI,EAC/B,EAAO,KAAM,GAAQ,EAAK,GAAI,EAC9B,EAAO,KAAK,EAAO,GAAI,GAGzB,EAAQ,GAAQ,EAAK,EAAI,QAAQ,EAAM,OAAO,CAAG,CAAC,EAKpD,SAAY,EAAM,EAAK,EAEvB,AAAI,IAAa,EACf,GAAO,KAAM,GAAQ,GAAM,GAAI,EAC/B,EAAO,KAAM,GAAQ,EAAK,GAAI,EAC9B,EAAO,KAAK,EAAO,GAAI,GAClB,AAAI,IAAa,GACtB,GAAO,KAAM,GAAQ,GAAM,GAAI,EAC/B,EAAO,KAAM,GAAQ,EAAK,GAAI,GACrB,IAAa,IACtB,EAAO,KAAM,GAAQ,EAAK,GAAI,EAGzB,GAAI,YAAW,CAAM,CAC9B,CAEA,YAA6B,EAAoB,CAC/C,GAAI,GAAS,GAAI,EAAO,EAAG,EAAK,EAC5B,EAAM,EAAO,OACb,EAAM,GAIV,IAAK,EAAM,EAAG,EAAM,EAAK,IACvB,AAAK,EAAM,IAAM,GAAM,GACrB,IAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,EAAO,KAGvB,EAAQ,IAAQ,GAAK,EAAO,GAK9B,SAAO,EAAM,EAEb,AAAI,IAAS,EACX,IAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,EAAO,KAChB,AAAI,IAAS,EAClB,IAAU,EAAK,GAAQ,GAAM,IAC7B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,KACL,IAAS,GAClB,IAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAK,GAAQ,EAAK,IAC5B,GAAU,EAAI,IACd,GAAU,EAAI,KAGT,CACT,CAEA,YAAkB,EAAK,CACrB,MAAO,QAAO,UAAU,SAAS,KAAK,CAAG,IAAO,qBAClD,CAEA,GAAI,IAAS,GAAI,IAAK,2BAA4B,CAChD,KAAM,SACN,QAAS,GACT,UAAW,GACX,UAAW,GACX,UAAW,EACb,CAAC,EAEG,GAAoB,OAAO,UAAU,eACrC,GAAoB,OAAO,UAAU,SAEzC,YAAyB,EAAM,CAC7B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAa,CAAC,EAAG,EAAO,EAAQ,EAAM,EAAS,EAC/C,EAAS,EAEb,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAAG,CAIlE,GAHA,EAAO,EAAO,GACd,EAAa,GAET,GAAY,KAAK,CAAI,IAAM,kBAAmB,MAAO,GAEzD,IAAK,IAAW,GACd,GAAI,GAAkB,KAAK,EAAM,CAAO,EACtC,GAAI,CAAC,EAAY,EAAa,OACzB,OAAO,GAIhB,GAAI,CAAC,EAAY,MAAO,GAExB,GAAI,EAAW,QAAQ,CAAO,IAAM,GAAI,EAAW,KAAK,CAAO,MAC1D,OAAO,EACd,CAEA,MAAO,EACT,CAEA,YAA2B,EAAM,CAC/B,MAAO,KAAS,KAAO,EAAO,CAAC,CACjC,CAEA,GAAI,IAAO,GAAI,IAAK,yBAA0B,CAC5C,KAAM,WACN,QAAS,GACT,UAAW,EACb,CAAC,EAEG,GAAc,OAAO,UAAU,SAEnC,YAA0B,EAAM,CAC9B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAO,EAAQ,EAAM,EAAM,EAC3B,EAAS,EAIb,IAFA,EAAS,GAAI,OAAM,EAAO,MAAM,EAE3B,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAAG,CAOlE,GANA,EAAO,EAAO,GAEV,GAAY,KAAK,CAAI,IAAM,mBAE/B,GAAO,OAAO,KAAK,CAAI,EAEnB,EAAK,SAAW,GAAG,MAAO,GAE9B,EAAO,GAAS,CAAE,EAAK,GAAI,EAAK,EAAK,GAAI,CAC3C,CAEA,MAAO,EACT,CAEA,YAA4B,EAAM,CAChC,GAAI,IAAS,KAAM,MAAO,CAAC,EAE3B,GAAI,GAAO,EAAQ,EAAM,EAAM,EAC3B,EAAS,EAIb,IAFA,EAAS,GAAI,OAAM,EAAO,MAAM,EAE3B,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAC/D,EAAO,EAAO,GAEd,EAAO,OAAO,KAAK,CAAI,EAEvB,EAAO,GAAS,CAAE,EAAK,GAAI,EAAK,EAAK,GAAI,EAG3C,MAAO,EACT,CAEA,GAAI,IAAQ,GAAI,IAAK,0BAA2B,CAC9C,KAAM,WACN,QAAS,GACT,UAAW,EACb,CAAC,EAEG,GAAoB,OAAO,UAAU,eAEzC,YAAwB,EAAM,CAC5B,GAAI,IAAS,KAAM,MAAO,GAE1B,GAAI,GAAK,EAAS,EAElB,IAAK,IAAO,GACV,GAAI,GAAkB,KAAK,EAAQ,CAAG,GAChC,EAAO,KAAS,KAAM,MAAO,GAIrC,MAAO,EACT,CAEA,YAA0B,EAAM,CAC9B,MAAO,KAAS,KAAO,EAAO,CAAC,CACjC,CAEA,GAAI,IAAM,GAAI,IAAK,wBAAyB,CAC1C,KAAM,UACN,QAAS,GACT,UAAW,EACb,CAAC,EAEG,GAAW,GAAK,OAAO,CACzB,SAAU,CACR,GACA,EACF,EACA,SAAU,CACR,GACA,GACA,GACA,EACF,CACF,CAAC,EAUG,GAAoB,OAAO,UAAU,eAGrC,GAAoB,EACpB,GAAoB,EACpB,GAAoB,EACpB,GAAoB,EAGpB,GAAiB,EACjB,GAAiB,EACjB,GAAiB,EAGjB,GAAgC,sIAChC,GAAgC,qBAChC,GAAgC,cAChC,GAAgC,yBAChC,GAAgC,mFAGpC,YAAgB,EAAK,CAAE,MAAO,QAAO,UAAU,SAAS,KAAK,CAAG,CAAG,CAEnE,YAAgB,EAAG,CACjB,MAAQ,KAAM,IAAkB,IAAM,EACxC,CAEA,YAAwB,EAAG,CACzB,MAAQ,KAAM,GAAmB,IAAM,EACzC,CAEA,YAAsB,EAAG,CACvB,MAAQ,KAAM,GACN,IAAM,IACN,IAAM,IACN,IAAM,EAChB,CAEA,YAA2B,EAAG,CAC5B,MAAO,KAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,GACf,CAEA,YAAqB,EAAG,CACtB,GAAI,GAEJ,MAAK,KAAe,GAAO,GAAK,GACvB,EAAI,GAIb,GAAK,EAAI,GAEJ,IAAe,GAAQ,GAAM,IACzB,EAAK,GAAO,GAGd,GACT,CAEA,YAAuB,EAAG,CACxB,MAAI,KAAM,IAAsB,EAC5B,IAAM,IAAsB,EAC5B,IAAM,GAAsB,EACzB,CACT,CAEA,YAAyB,EAAG,CAC1B,MAAK,KAAe,GAAO,GAAK,GACvB,EAAI,GAGN,EACT,CAEA,YAA8B,EAAG,CAE/B,MAAQ,KAAM,GAAe,KACtB,IAAM,GAAe,OACrB,IAAM,GAAe,KACrB,IAAM,KACN,IAAM,EADe,IAErB,IAAM,IAAe;AAAA,EACrB,IAAM,IAAe,KACrB,IAAM,IAAe,KACrB,IAAM,IAAe,KACrB,IAAM,IAAe,OACrB,IAAM,GAAmB,IACzB,IAAM,GAAe,IACrB,IAAM,GAAe,IACrB,IAAM,GAAe,KACrB,IAAM,GAAe,OACrB,IAAM,GAAe,OACrB,IAAM,GAAe,SACrB,IAAM,GAAe,SAAW,EACzC,CAEA,YAA2B,EAAG,CAC5B,MAAI,IAAK,MACA,OAAO,aAAa,CAAC,EAIvB,OAAO,aACV,GAAI,OAAa,IAAM,MACvB,GAAI,MAAY,MAAU,KAC9B,CACF,CAEA,GAAI,IAAoB,GAAI,OAAM,GAAG,EACjC,GAAkB,GAAI,OAAM,GAAG,EACnC,IAAS,GAAI,EAAG,GAAI,IAAK,KACvB,GAAkB,IAAK,GAAqB,EAAC,EAAI,EAAI,EACrD,GAAgB,IAAK,GAAqB,EAAC,EAFpC,OAMT,YAAiB,EAAO,EAAS,CAC/B,KAAK,MAAQ,EAEb,KAAK,SAAY,EAAQ,UAAgB,KACzC,KAAK,OAAY,EAAQ,QAAgB,GACzC,KAAK,UAAY,EAAQ,WAAgB,KAGzC,KAAK,OAAY,EAAQ,QAAgB,GAEzC,KAAK,KAAY,EAAQ,MAAgB,GACzC,KAAK,SAAY,EAAQ,UAAgB,KAEzC,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,QAAgB,KAAK,OAAO,gBAEjC,KAAK,OAAa,EAAM,OACxB,KAAK,SAAa,EAClB,KAAK,KAAa,EAClB,KAAK,UAAa,EAClB,KAAK,WAAa,EAIlB,KAAK,eAAiB,GAEtB,KAAK,UAAY,CAAC,CAYpB,CAGA,YAAuB,EAAO,EAAS,CACrC,GAAI,GAAO,CACT,KAAU,EAAM,SAChB,OAAU,EAAM,MAAM,MAAM,EAAG,EAAE,EACjC,SAAU,EAAM,SAChB,KAAU,EAAM,KAChB,OAAU,EAAM,SAAW,EAAM,SACnC,EAEA,SAAK,QAAU,GAAQ,CAAI,EAEpB,GAAI,IAAU,EAAS,CAAI,CACpC,CAEA,WAAoB,EAAO,EAAS,CAClC,KAAM,IAAc,EAAO,CAAO,CACpC,CAEA,YAAsB,EAAO,EAAS,CACpC,AAAI,EAAM,WACR,EAAM,UAAU,KAAK,KAAM,GAAc,EAAO,CAAO,CAAC,CAE5D,CAGA,GAAI,IAAoB,CAEtB,KAAM,SAA6B,EAAO,EAAM,EAAM,CAEpD,GAAI,GAAO,EAAO,EAElB,AAAI,EAAM,UAAY,MACpB,EAAW,EAAO,gCAAgC,EAGhD,EAAK,SAAW,GAClB,EAAW,EAAO,6CAA6C,EAGjE,EAAQ,uBAAuB,KAAK,EAAK,EAAE,EAEvC,IAAU,MACZ,EAAW,EAAO,2CAA2C,EAG/D,EAAQ,SAAS,EAAM,GAAI,EAAE,EAC7B,EAAQ,SAAS,EAAM,GAAI,EAAE,EAEzB,IAAU,GACZ,EAAW,EAAO,2CAA2C,EAG/D,EAAM,QAAU,EAAK,GACrB,EAAM,gBAAmB,EAAQ,EAE7B,IAAU,GAAK,IAAU,GAC3B,GAAa,EAAO,0CAA0C,CAElE,EAEA,IAAK,SAA4B,EAAO,EAAM,EAAM,CAElD,GAAI,GAAQ,EAEZ,AAAI,EAAK,SAAW,GAClB,EAAW,EAAO,6CAA6C,EAGjE,EAAS,EAAK,GACd,EAAS,EAAK,GAET,GAAmB,KAAK,CAAM,GACjC,EAAW,EAAO,6DAA6D,EAG7E,GAAkB,KAAK,EAAM,OAAQ,CAAM,GAC7C,EAAW,EAAO,8CAAgD,EAAS,cAAc,EAGtF,GAAgB,KAAK,CAAM,GAC9B,EAAW,EAAO,8DAA8D,EAGlF,GAAI,CACF,EAAS,mBAAmB,CAAM,CACpC,MAAE,CACA,EAAW,EAAO,4BAA8B,CAAM,CACxD,CAEA,EAAM,OAAO,GAAU,CACzB,CACF,EAGA,YAAwB,EAAO,EAAO,EAAK,EAAW,CACpD,GAAI,GAAW,EAAS,EAAY,EAEpC,GAAI,EAAQ,EAAK,CAGf,GAFA,EAAU,EAAM,MAAM,MAAM,EAAO,CAAG,EAElC,EACF,IAAK,EAAY,EAAG,EAAU,EAAQ,OAAQ,EAAY,EAAS,GAAa,EAC9E,EAAa,EAAQ,WAAW,CAAS,EACnC,IAAe,GACd,IAAQ,GAAc,GAAc,SACzC,EAAW,EAAO,+BAA+B,MAGhD,AAAI,IAAsB,KAAK,CAAO,GAC3C,EAAW,EAAO,8CAA8C,EAGlE,EAAM,QAAU,CAClB,CACF,CAEA,YAAuB,EAAO,EAAa,EAAQ,EAAiB,CAClE,GAAI,GAAY,EAAK,EAAO,EAQ5B,IANK,GAAO,SAAS,CAAM,GACzB,EAAW,EAAO,mEAAmE,EAGvF,EAAa,OAAO,KAAK,CAAM,EAE1B,EAAQ,EAAG,EAAW,EAAW,OAAQ,EAAQ,EAAU,GAAS,EACvE,EAAM,EAAW,GAEZ,GAAkB,KAAK,EAAa,CAAG,GAC1C,GAAY,GAAO,EAAO,GAC1B,EAAgB,GAAO,GAG7B,CAEA,YAA0B,EAAO,EAAS,EAAiB,EAAQ,EAAS,EAC1E,EAAW,EAAgB,EAAU,CAErC,GAAI,GAAO,EAKX,GAAI,MAAM,QAAQ,CAAO,EAGvB,IAFA,EAAU,MAAM,UAAU,MAAM,KAAK,CAAO,EAEvC,EAAQ,EAAG,EAAW,EAAQ,OAAQ,EAAQ,EAAU,GAAS,EACpE,AAAI,MAAM,QAAQ,EAAQ,EAAM,GAC9B,EAAW,EAAO,6CAA6C,EAG7D,MAAO,IAAY,UAAY,GAAO,EAAQ,EAAM,IAAM,mBAC5D,GAAQ,GAAS,mBAmBvB,GAXI,MAAO,IAAY,UAAY,GAAO,CAAO,IAAM,mBACrD,GAAU,mBAIZ,EAAU,OAAO,CAAO,EAEpB,IAAY,MACd,GAAU,CAAC,GAGT,IAAW,0BACb,GAAI,MAAM,QAAQ,CAAS,EACzB,IAAK,EAAQ,EAAG,EAAW,EAAU,OAAQ,EAAQ,EAAU,GAAS,EACtE,GAAc,EAAO,EAAS,EAAU,GAAQ,CAAe,MAGjE,IAAc,EAAO,EAAS,EAAW,CAAe,MAG1D,AAAI,CAAC,EAAM,MACP,CAAC,GAAkB,KAAK,EAAiB,CAAO,GAChD,GAAkB,KAAK,EAAS,CAAO,GACzC,GAAM,KAAO,GAAa,EAAM,KAChC,EAAM,UAAY,GAAkB,EAAM,UAC1C,EAAM,SAAW,GAAY,EAAM,SACnC,EAAW,EAAO,wBAAwB,GAI5C,AAAI,IAAY,YACd,OAAO,eAAe,EAAS,EAAS,CACtC,aAAc,GACd,WAAY,GACZ,SAAU,GACV,MAAO,CACT,CAAC,EAED,EAAQ,GAAW,EAErB,MAAO,GAAgB,GAGzB,MAAO,EACT,CAEA,YAAuB,EAAO,CAC5B,GAAI,GAEJ,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAE1C,AAAI,IAAO,GACT,EAAM,WACD,AAAI,IAAO,GAChB,GAAM,WACF,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAM,IAC7C,EAAM,YAGR,EAAW,EAAO,0BAA0B,EAG9C,EAAM,MAAQ,EACd,EAAM,UAAY,EAAM,SACxB,EAAM,eAAiB,EACzB,CAEA,YAA6B,EAAO,EAAe,EAAa,CAI9D,OAHI,GAAa,EACb,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEvC,IAAO,GAAG,CACf,KAAO,GAAe,CAAE,GACtB,AAAI,IAAO,GAAiB,EAAM,iBAAmB,IACnD,GAAM,eAAiB,EAAM,UAE/B,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAI,GAAiB,IAAO,GAC1B,EACE,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QACrC,IAAO,IAAgB,IAAO,IAAgB,IAAO,GAGhE,GAAI,GAAO,CAAE,EAOX,IANA,GAAc,CAAK,EAEnB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAC1C,IACA,EAAM,WAAa,EAEZ,IAAO,IACZ,EAAM,aACN,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,MAG9C,MAEJ,CAEA,MAAI,KAAgB,IAAM,IAAe,GAAK,EAAM,WAAa,GAC/D,GAAa,EAAO,uBAAuB,EAGtC,CACT,CAEA,YAA+B,EAAO,CACpC,GAAI,GAAY,EAAM,SAClB,EAMJ,MAJA,GAAK,EAAM,MAAM,WAAW,CAAS,EAIhC,QAAO,IAAe,IAAO,KAC9B,IAAO,EAAM,MAAM,WAAW,EAAY,CAAC,GAC3C,IAAO,EAAM,MAAM,WAAW,EAAY,CAAC,GAE7C,IAAa,EAEb,EAAK,EAAM,MAAM,WAAW,CAAS,EAEjC,IAAO,GAAK,GAAa,CAAE,GAMnC,CAEA,YAA0B,EAAO,EAAO,CACtC,AAAI,IAAU,EACZ,EAAM,QAAU,IACP,EAAQ,GACjB,GAAM,QAAU,GAAO,OAAO;AAAA,EAAM,EAAQ,CAAC,EAEjD,CAGA,YAAyB,EAAO,EAAY,EAAsB,CAChE,GAAI,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAAQ,EAAM,KACd,EAAU,EAAM,OAChB,EAoBJ,GAlBA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,GAAa,CAAE,GACf,GAAkB,CAAE,GACpB,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IAIP,KAAO,IAAe,IAAO,KAC/B,GAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,GACtB,GAAwB,GAAkB,CAAS,GACrD,MAAO,GASX,IALA,EAAM,KAAO,SACb,EAAM,OAAS,GACf,EAAe,EAAa,EAAM,SAClC,EAAoB,GAEb,IAAO,GAAG,CACf,GAAI,IAAO,IAGT,GAFA,EAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,GACtB,GAAwB,GAAkB,CAAS,EACrD,cAGO,IAAO,IAGhB,GAFA,EAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,EACxB,UAGG,IAAK,EAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,GAClE,GAAwB,GAAkB,CAAE,EACrD,MAEK,GAAI,GAAO,CAAE,EAMlB,GALA,EAAQ,EAAM,KACd,EAAa,EAAM,UACnB,EAAc,EAAM,WACpB,GAAoB,EAAO,GAAO,EAAE,EAEhC,EAAM,YAAc,EAAY,CAClC,EAAoB,GACpB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAC1C,QACF,KAAO,CACL,EAAM,SAAW,EACjB,EAAM,KAAO,EACb,EAAM,UAAY,EAClB,EAAM,WAAa,EACnB,KACF,EAGF,AAAI,GACF,IAAe,EAAO,EAAc,EAAY,EAAK,EACrD,GAAiB,EAAO,EAAM,KAAO,CAAK,EAC1C,EAAe,EAAa,EAAM,SAClC,EAAoB,IAGjB,GAAe,CAAE,GACpB,GAAa,EAAM,SAAW,GAGhC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,CAC9C,CAIA,MAFA,IAAe,EAAO,EAAc,EAAY,EAAK,EAEjD,EAAM,OACD,GAGT,GAAM,KAAO,EACb,EAAM,OAAS,EACR,GACT,CAEA,YAAgC,EAAO,EAAY,CACjD,GAAI,GACA,EAAc,EAIlB,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GACT,MAAO,GAQT,IALA,EAAM,KAAO,SACb,EAAM,OAAS,GACf,EAAM,WACN,EAAe,EAAa,EAAM,SAE1B,GAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,KAAO,GACvD,GAAI,IAAO,GAIT,GAHA,GAAe,EAAO,EAAc,EAAM,SAAU,EAAI,EACxD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAExC,IAAO,GACT,EAAe,EAAM,SACrB,EAAM,WACN,EAAa,EAAM,aAEnB,OAAO,OAGJ,AAAI,IAAO,CAAE,EAClB,IAAe,EAAO,EAAc,EAAY,EAAI,EACpD,GAAiB,EAAO,GAAoB,EAAO,GAAO,CAAU,CAAC,EACrE,EAAe,EAAa,EAAM,UAE7B,AAAI,EAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,EAC1E,EAAW,EAAO,8DAA8D,EAGhF,GAAM,WACN,EAAa,EAAM,UAIvB,EAAW,EAAO,4DAA4D,CAChF,CAEA,YAAgC,EAAO,EAAY,CACjD,GAAI,GACA,EACA,EACA,EACA,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GACT,MAAO,GAQT,IALA,EAAM,KAAO,SACb,EAAM,OAAS,GACf,EAAM,WACN,EAAe,EAAa,EAAM,SAE1B,GAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,KAAO,GAAG,CAC1D,GAAI,IAAO,GACT,UAAe,EAAO,EAAc,EAAM,SAAU,EAAI,EACxD,EAAM,WACC,GAEF,GAAI,IAAO,GAAa,CAI7B,GAHA,GAAe,EAAO,EAAc,EAAM,SAAU,EAAI,EACxD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAExC,GAAO,CAAE,EACX,GAAoB,EAAO,GAAO,CAAU,UAGnC,EAAK,KAAO,GAAkB,GACvC,EAAM,QAAU,GAAgB,GAChC,EAAM,mBAEI,GAAM,GAAc,CAAE,GAAK,EAAG,CAIxC,IAHA,EAAY,EACZ,EAAY,EAEL,EAAY,EAAG,IACpB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAE5C,AAAK,GAAM,GAAY,CAAE,IAAM,EAC7B,EAAa,IAAa,GAAK,EAG/B,EAAW,EAAO,gCAAgC,EAItD,EAAM,QAAU,GAAkB,CAAS,EAE3C,EAAM,UAER,KACE,GAAW,EAAO,yBAAyB,EAG7C,EAAe,EAAa,EAAM,QAEpC,KAAO,AAAI,IAAO,CAAE,EAClB,IAAe,EAAO,EAAc,EAAY,EAAI,EACpD,GAAiB,EAAO,GAAoB,EAAO,GAAO,CAAU,CAAC,EACrE,EAAe,EAAa,EAAM,UAE7B,AAAI,EAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,EAC1E,EAAW,EAAO,8DAA8D,EAGhF,GAAM,WACN,EAAa,EAAM,SAEvB,CAEA,EAAW,EAAO,4DAA4D,CAChF,CAEA,YAA4B,EAAO,EAAY,CAC7C,GAAI,GAAW,GACX,EACA,EACA,EACA,EAAW,EAAM,IACjB,EACA,EAAW,EAAM,OACjB,EACA,EACA,EACA,EACA,EACA,EAAkB,OAAO,OAAO,IAAI,EACpC,EACA,EACA,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GACT,EAAa,GACb,EAAY,GACZ,EAAU,CAAC,UACF,IAAO,IAChB,EAAa,IACb,EAAY,GACZ,EAAU,CAAC,MAEX,OAAO,GAST,IANI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,GAGlC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAErC,IAAO,GAAG,CAKf,GAJA,GAAoB,EAAO,GAAM,CAAU,EAE3C,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,EACT,SAAM,WACN,EAAM,IAAM,EACZ,EAAM,OAAS,EACf,EAAM,KAAO,EAAY,UAAY,WACrC,EAAM,OAAS,EACR,GACF,AAAK,EAED,IAAO,IAEhB,EAAW,EAAO,0CAA0C,EAH5D,EAAW,EAAO,8CAA8C,EAMlE,EAAS,EAAU,EAAY,KAC/B,EAAS,EAAiB,GAEtB,IAAO,IACT,GAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,GAAa,CAAS,GACxB,GAAS,EAAiB,GAC1B,EAAM,WACN,GAAoB,EAAO,GAAM,CAAU,IAI/C,EAAQ,EAAM,KACd,EAAa,EAAM,UACnB,EAAO,EAAM,SACb,GAAY,EAAO,EAAY,GAAiB,GAAO,EAAI,EAC3D,EAAS,EAAM,IACf,EAAU,EAAM,OAChB,GAAoB,EAAO,GAAM,CAAU,EAE3C,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAErC,IAAkB,EAAM,OAAS,IAAU,IAAO,IACrD,GAAS,GACT,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,GAAoB,EAAO,GAAM,CAAU,EAC3C,GAAY,EAAO,EAAY,GAAiB,GAAO,EAAI,EAC3D,EAAY,EAAM,QAGpB,AAAI,EACF,GAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,EAAW,EAAO,EAAY,CAAI,EAChG,AAAI,EACT,EAAQ,KAAK,GAAiB,EAAO,KAAM,EAAiB,EAAQ,EAAS,EAAW,EAAO,EAAY,CAAI,CAAC,EAEhH,EAAQ,KAAK,CAAO,EAGtB,GAAoB,EAAO,GAAM,CAAU,EAE3C,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAE1C,AAAI,IAAO,GACT,GAAW,GACX,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAE5C,EAAW,EAEf,CAEA,EAAW,EAAO,uDAAuD,CAC3E,CAEA,YAAyB,EAAO,EAAY,CAC1C,GAAI,GACA,EACA,EAAiB,GACjB,EAAiB,GACjB,EAAiB,GACjB,EAAiB,EACjB,EAAiB,EACjB,EAAiB,GACjB,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,IACT,EAAU,WACD,IAAO,GAChB,EAAU,OAEV,OAAO,GAMT,IAHA,EAAM,KAAO,SACb,EAAM,OAAS,GAER,IAAO,GAGZ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAExC,IAAO,IAAe,IAAO,GAC/B,AAAI,KAAkB,EACpB,EAAY,IAAO,GAAe,GAAgB,GAElD,EAAW,EAAO,sCAAsC,UAGhD,GAAM,GAAgB,CAAE,IAAM,EACxC,AAAI,IAAQ,EACV,EAAW,EAAO,8EAA8E,EAC3F,AAAK,EAIV,EAAW,EAAO,2CAA2C,EAH7D,GAAa,EAAa,EAAM,EAChC,EAAiB,QAMnB,OAIJ,GAAI,GAAe,CAAE,EAAG,CACtB,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,GAAe,CAAE,GAExB,GAAI,IAAO,GACT,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,CAAC,GAAO,CAAE,GAAM,IAAO,EAElC,CAEA,KAAO,IAAO,GAAG,CAMf,IALA,GAAc,CAAK,EACnB,EAAM,WAAa,EAEnB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAElC,EAAC,GAAkB,EAAM,WAAa,IACtC,IAAO,IACb,EAAM,aACN,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAO9C,GAJI,CAAC,GAAkB,EAAM,WAAa,GACxC,GAAa,EAAM,YAGjB,GAAO,CAAE,EAAG,CACd,IACA,QACF,CAGA,GAAI,EAAM,WAAa,EAAY,CAGjC,AAAI,IAAa,GACf,EAAM,QAAU,GAAO,OAAO;AAAA,EAAM,EAAiB,EAAI,EAAa,CAAU,EACvE,IAAa,IAClB,GACF,GAAM,QAAU;AAAA,GAKpB,KACF,CAsCA,IAnCA,AAAI,EAGF,AAAI,GAAe,CAAE,EACnB,GAAiB,GAEjB,EAAM,QAAU,GAAO,OAAO;AAAA,EAAM,EAAiB,EAAI,EAAa,CAAU,GAG3E,AAAI,EACT,GAAiB,GACjB,EAAM,QAAU,GAAO,OAAO;AAAA,EAAM,EAAa,CAAC,GAG7C,AAAI,IAAe,EACpB,GACF,GAAM,QAAU,KAKlB,EAAM,QAAU,GAAO,OAAO;AAAA,EAAM,CAAU,EAMhD,EAAM,QAAU,GAAO,OAAO;AAAA,EAAM,EAAiB,EAAI,EAAa,CAAU,EAGlF,EAAiB,GACjB,EAAiB,GACjB,EAAa,EACb,EAAe,EAAM,SAEd,CAAC,GAAO,CAAE,GAAM,IAAO,GAC5B,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAe,EAAO,EAAc,EAAM,SAAU,EAAK,CAC3D,CAEA,MAAO,EACT,CAEA,YAA2B,EAAO,EAAY,CAC5C,GAAI,GACA,EAAY,EAAM,IAClB,EAAY,EAAM,OAClB,EAAY,CAAC,EACb,EACA,EAAY,GACZ,EAIJ,GAAI,EAAM,iBAAmB,GAAI,MAAO,GAQxC,IANI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,GAGlC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEnC,IAAO,GACR,GAAM,iBAAmB,IAC3B,GAAM,SAAW,EAAM,eACvB,EAAW,EAAO,gDAAgD,GAGhE,MAAO,IAIX,GAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EAEjD,CAAC,GAAa,CAAS,MAZZ,CAmBf,GAHA,EAAW,GACX,EAAM,WAEF,GAAoB,EAAO,GAAM,EAAE,GACjC,EAAM,YAAc,EAAY,CAClC,EAAQ,KAAK,IAAI,EACjB,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAC1C,QACF,CAUF,GAPA,EAAQ,EAAM,KACd,GAAY,EAAO,EAAY,GAAkB,GAAO,EAAI,EAC5D,EAAQ,KAAK,EAAM,MAAM,EACzB,GAAoB,EAAO,GAAM,EAAE,EAEnC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAErC,GAAM,OAAS,GAAS,EAAM,WAAa,IAAgB,IAAO,EACrE,EAAW,EAAO,qCAAqC,UAC9C,EAAM,WAAa,EAC5B,KAEJ,CAEA,MAAI,GACF,GAAM,IAAM,EACZ,EAAM,OAAS,EACf,EAAM,KAAO,WACb,EAAM,OAAS,EACR,IAEF,EACT,CAEA,YAA0B,EAAO,EAAY,EAAY,CACvD,GAAI,GACA,EACA,EACA,EACA,EACA,EACA,EAAgB,EAAM,IACtB,EAAgB,EAAM,OACtB,EAAgB,CAAC,EACjB,EAAkB,OAAO,OAAO,IAAI,EACpC,EAAgB,KAChB,EAAgB,KAChB,EAAgB,KAChB,EAAgB,GAChB,EAAgB,GAChB,EAIJ,GAAI,EAAM,iBAAmB,GAAI,MAAO,GAQxC,IANI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,GAGlC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEnC,IAAO,GAAG,CAaf,GAZI,CAAC,GAAiB,EAAM,iBAAmB,IAC7C,GAAM,SAAW,EAAM,eACvB,EAAW,EAAO,gDAAgD,GAGpE,EAAY,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,EACrD,EAAQ,EAAM,KAMT,KAAO,IAAe,IAAO,KAAgB,GAAa,CAAS,EAEtE,AAAI,IAAO,GACL,IACF,IAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,KAAM,EAAU,EAAe,CAAO,EACzG,EAAS,EAAU,EAAY,MAGjC,EAAW,GACX,EAAgB,GAChB,EAAe,IAEV,AAAI,EAET,GAAgB,GAChB,EAAe,IAGf,EAAW,EAAO,mGAAmG,EAGvH,EAAM,UAAY,EAClB,EAAK,MAKA,CAKL,GAJA,EAAW,EAAM,KACjB,EAAgB,EAAM,UACtB,EAAU,EAAM,SAEZ,CAAC,GAAY,EAAO,EAAY,GAAkB,GAAO,EAAI,EAG/D,MAGF,GAAI,EAAM,OAAS,EAAO,CAGxB,IAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEnC,GAAe,CAAE,GACtB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAI,IAAO,GACT,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAEvC,GAAa,CAAE,GAClB,EAAW,EAAO,yFAAyF,EAGzG,GACF,IAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,KAAM,EAAU,EAAe,CAAO,EACzG,EAAS,EAAU,EAAY,MAGjC,EAAW,GACX,EAAgB,GAChB,EAAe,GACf,EAAS,EAAM,IACf,EAAU,EAAM,eAEP,EACT,EAAW,EAAO,0DAA0D,MAG5E,UAAM,IAAM,EACZ,EAAM,OAAS,EACR,EAGX,SAAW,EACT,EAAW,EAAO,gFAAgF,MAGlG,UAAM,IAAM,EACZ,EAAM,OAAS,EACR,EAEX,CA6BA,GAxBI,GAAM,OAAS,GAAS,EAAM,WAAa,IACzC,IACF,GAAW,EAAM,KACjB,EAAgB,EAAM,UACtB,EAAU,EAAM,UAGd,GAAY,EAAO,EAAY,GAAmB,GAAM,CAAY,GACtE,CAAI,EACF,EAAU,EAAM,OAEhB,EAAY,EAAM,QAIjB,GACH,IAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,EAAW,EAAU,EAAe,CAAO,EAC9G,EAAS,EAAU,EAAY,MAGjC,GAAoB,EAAO,GAAM,EAAE,EACnC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,GAGvC,GAAM,OAAS,GAAS,EAAM,WAAa,IAAgB,IAAO,EACrE,EAAW,EAAO,oCAAoC,UAC7C,EAAM,WAAa,EAC5B,KAEJ,CAOA,MAAI,IACF,GAAiB,EAAO,EAAS,EAAiB,EAAQ,EAAS,KAAM,EAAU,EAAe,CAAO,EAIvG,GACF,GAAM,IAAM,EACZ,EAAM,OAAS,EACf,EAAM,KAAO,UACb,EAAM,OAAS,GAGV,CACT,CAEA,YAAyB,EAAO,CAC9B,GAAI,GACA,EAAa,GACb,EAAa,GACb,EACA,EACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GAAa,MAAO,GAuB/B,GArBI,EAAM,MAAQ,MAChB,EAAW,EAAO,+BAA+B,EAGnD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAE5C,AAAI,IAAO,GACT,GAAa,GACb,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAEvC,AAAI,IAAO,GAChB,GAAU,GACV,EAAY,KACZ,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAG5C,EAAY,IAGd,EAAY,EAAM,SAEd,EAAY,CACd,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,IAAO,GAAK,IAAO,IAE1B,AAAI,EAAM,SAAW,EAAM,OACzB,GAAU,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EACrD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,GAE5C,EAAW,EAAO,oDAAoD,CAE1E,KAAO,CACL,KAAO,IAAO,GAAK,CAAC,GAAa,CAAE,GAEjC,AAAI,IAAO,IACT,CAAK,EAUH,EAAW,EAAO,6CAA6C,EAT/D,GAAY,EAAM,MAAM,MAAM,EAAY,EAAG,EAAM,SAAW,CAAC,EAE1D,GAAmB,KAAK,CAAS,GACpC,EAAW,EAAO,iDAAiD,EAGrE,EAAU,GACV,EAAY,EAAM,SAAW,IAMjC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,EAAU,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EAEjD,GAAwB,KAAK,CAAO,GACtC,EAAW,EAAO,qDAAqD,CAE3E,CAEA,AAAI,GAAW,CAAC,GAAgB,KAAK,CAAO,GAC1C,EAAW,EAAO,4CAA8C,CAAO,EAGzE,GAAI,CACF,EAAU,mBAAmB,CAAO,CACtC,MAAE,CACA,EAAW,EAAO,0BAA4B,CAAO,CACvD,CAEA,MAAI,GACF,EAAM,IAAM,EAEP,AAAI,GAAkB,KAAK,EAAM,OAAQ,CAAS,EACvD,EAAM,IAAM,EAAM,OAAO,GAAa,EAEjC,AAAI,IAAc,IACvB,EAAM,IAAM,IAAM,EAEb,AAAI,IAAc,KACvB,EAAM,IAAM,qBAAuB,EAGnC,EAAW,EAAO,0BAA4B,EAAY,GAAG,EAGxD,EACT,CAEA,YAA4B,EAAO,CACjC,GAAI,GACA,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GAAa,MAAO,GAS/B,IAPI,EAAM,SAAW,MACnB,EAAW,EAAO,mCAAmC,EAGvD,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GAAK,CAAC,GAAkB,CAAE,GAC3D,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,MAAI,GAAM,WAAa,GACrB,EAAW,EAAO,4DAA4D,EAGhF,EAAM,OAAS,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EACnD,EACT,CAEA,YAAmB,EAAO,CACxB,GAAI,GAAW,EACX,EAIJ,GAFA,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAO,GAAa,MAAO,GAK/B,IAHA,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GAAK,CAAC,GAAkB,CAAE,GAC3D,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,MAAI,GAAM,WAAa,GACrB,EAAW,EAAO,2DAA2D,EAG/E,EAAQ,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EAE9C,GAAkB,KAAK,EAAM,UAAW,CAAK,GAChD,EAAW,EAAO,uBAAyB,EAAQ,GAAG,EAGxD,EAAM,OAAS,EAAM,UAAU,GAC/B,GAAoB,EAAO,GAAM,EAAE,EAC5B,EACT,CAEA,YAAqB,EAAO,EAAc,EAAa,EAAa,EAAc,CAChF,GAAI,GACA,EACA,EACA,EAAe,EACf,EAAa,GACb,EAAa,GACb,EACA,EACA,EACA,EACA,EACA,EA6BJ,GA3BI,EAAM,WAAa,MACrB,EAAM,SAAS,OAAQ,CAAK,EAG9B,EAAM,IAAS,KACf,EAAM,OAAS,KACf,EAAM,KAAS,KACf,EAAM,OAAS,KAEf,EAAmB,EAAoB,EACrC,KAAsB,GACtB,KAAsB,EAEpB,GACE,GAAoB,EAAO,GAAM,EAAE,GACrC,GAAY,GAEZ,AAAI,EAAM,WAAa,EACrB,EAAe,EACV,AAAI,EAAM,aAAe,EAC9B,EAAe,EACN,EAAM,WAAa,GAC5B,GAAe,KAKjB,IAAiB,EACnB,KAAO,GAAgB,CAAK,GAAK,GAAmB,CAAK,GACvD,AAAI,GAAoB,EAAO,GAAM,EAAE,EACrC,GAAY,GACZ,EAAwB,EAExB,AAAI,EAAM,WAAa,EACrB,EAAe,EACV,AAAI,EAAM,aAAe,EAC9B,EAAe,EACN,EAAM,WAAa,GAC5B,GAAe,KAGjB,EAAwB,GAwD9B,GAnDI,GACF,GAAwB,GAAa,GAGnC,KAAiB,GAAK,KAAsB,IAC9C,CAAI,KAAoB,GAAe,KAAqB,EAC1D,EAAa,EAEb,EAAa,EAAe,EAG9B,EAAc,EAAM,SAAW,EAAM,UAErC,AAAI,IAAiB,EACnB,AAAI,GACC,IAAkB,EAAO,CAAW,GACpC,GAAiB,EAAO,EAAa,CAAU,IAChD,GAAmB,EAAO,CAAU,EACtC,EAAa,GAEb,CAAK,GAAqB,GAAgB,EAAO,CAAU,GACvD,GAAuB,EAAO,CAAU,GACxC,GAAuB,EAAO,CAAU,EAC1C,EAAa,GAER,AAAI,GAAU,CAAK,EACxB,GAAa,GAET,GAAM,MAAQ,MAAQ,EAAM,SAAW,OACzC,EAAW,EAAO,2CAA2C,GAGtD,GAAgB,EAAO,EAAY,KAAoB,CAAW,GAC3E,GAAa,GAET,EAAM,MAAQ,MAChB,GAAM,IAAM,MAIZ,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,SAGjC,IAAiB,GAG1B,GAAa,GAAyB,GAAkB,EAAO,CAAW,IAI1E,EAAM,MAAQ,KAChB,AAAI,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,gBAG/B,EAAM,MAAQ,KAWvB,IAJI,EAAM,SAAW,MAAQ,EAAM,OAAS,UAC1C,EAAW,EAAO,oEAAsE,EAAM,KAAO,GAAG,EAGrG,EAAY,EAAG,EAAe,EAAM,cAAc,OAAQ,EAAY,EAAc,GAAa,EAGpG,GAFA,EAAO,EAAM,cAAc,GAEvB,EAAK,QAAQ,EAAM,MAAM,EAAG,CAC9B,EAAM,OAAS,EAAK,UAAU,EAAM,MAAM,EAC1C,EAAM,IAAM,EAAK,IACb,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,QAExC,KACF,UAEO,EAAM,MAAQ,IAAK,CAC5B,GAAI,GAAkB,KAAK,EAAM,QAAQ,EAAM,MAAQ,YAAa,EAAM,GAAG,EAC3E,EAAO,EAAM,QAAQ,EAAM,MAAQ,YAAY,EAAM,SAMrD,KAHA,EAAO,KACP,EAAW,EAAM,QAAQ,MAAM,EAAM,MAAQ,YAExC,EAAY,EAAG,EAAe,EAAS,OAAQ,EAAY,EAAc,GAAa,EACzF,GAAI,EAAM,IAAI,MAAM,EAAG,EAAS,GAAW,IAAI,MAAM,IAAM,EAAS,GAAW,IAAK,CAClF,EAAO,EAAS,GAChB,KACF,CAIJ,AAAK,GACH,EAAW,EAAO,iBAAmB,EAAM,IAAM,GAAG,EAGlD,EAAM,SAAW,MAAQ,EAAK,OAAS,EAAM,MAC/C,EAAW,EAAO,gCAAkC,EAAM,IAAM,wBAA0B,EAAK,KAAO,WAAa,EAAM,KAAO,GAAG,EAGrI,AAAK,EAAK,QAAQ,EAAM,OAAQ,EAAM,GAAG,EAGvC,GAAM,OAAS,EAAK,UAAU,EAAM,OAAQ,EAAM,GAAG,EACjD,EAAM,SAAW,MACnB,GAAM,UAAU,EAAM,QAAU,EAAM,SAJxC,EAAW,EAAO,gCAAkC,EAAM,IAAM,gBAAgB,CAOpF,CAEA,MAAI,GAAM,WAAa,MACrB,EAAM,SAAS,QAAS,CAAK,EAExB,EAAM,MAAQ,MAAS,EAAM,SAAW,MAAQ,CACzD,CAEA,YAAsB,EAAO,CAC3B,GAAI,GAAgB,EAAM,SACtB,EACA,EACA,EACA,EAAgB,GAChB,EAOJ,IALA,EAAM,QAAU,KAChB,EAAM,gBAAkB,EAAM,OAC9B,EAAM,OAAS,OAAO,OAAO,IAAI,EACjC,EAAM,UAAY,OAAO,OAAO,IAAI,EAE5B,GAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,KAAO,GACvD,IAAoB,EAAO,GAAM,EAAE,EAEnC,EAAK,EAAM,MAAM,WAAW,EAAM,QAAQ,EAEtC,IAAM,WAAa,GAAK,IAAO,MALuB,CAa1D,IAJA,EAAgB,GAChB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAC5C,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GACjC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAU9C,IAPA,EAAgB,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,EAC3D,EAAgB,CAAC,EAEb,EAAc,OAAS,GACzB,EAAW,EAAO,8DAA8D,EAG3E,IAAO,GAAG,CACf,KAAO,GAAe,CAAE,GACtB,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,GAAI,IAAO,GAAa,CACtB,EAAK,GAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,QAC1C,IAAO,GAAK,CAAC,GAAO,CAAE,GAC7B,KACF,CAEA,GAAI,GAAO,CAAE,EAAG,MAIhB,IAFA,EAAY,EAAM,SAEX,IAAO,GAAK,CAAC,GAAa,CAAE,GACjC,EAAK,EAAM,MAAM,WAAW,EAAE,EAAM,QAAQ,EAG9C,EAAc,KAAK,EAAM,MAAM,MAAM,EAAW,EAAM,QAAQ,CAAC,CACjE,CAEA,AAAI,IAAO,GAAG,GAAc,CAAK,EAEjC,AAAI,GAAkB,KAAK,GAAmB,CAAa,EACzD,GAAkB,GAAe,EAAO,EAAe,CAAa,EAEpE,GAAa,EAAO,+BAAiC,EAAgB,GAAG,CAE5E,CAyBA,GAvBA,GAAoB,EAAO,GAAM,EAAE,EAEnC,AAAI,EAAM,aAAe,GACrB,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAU,IAC/C,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,IAAM,IAC/C,EAAM,MAAM,WAAW,EAAM,SAAW,CAAC,IAAM,GACjD,GAAM,UAAY,EAClB,GAAoB,EAAO,GAAM,EAAE,GAE1B,GACT,EAAW,EAAO,iCAAiC,EAGrD,GAAY,EAAO,EAAM,WAAa,EAAG,GAAmB,GAAO,EAAI,EACvE,GAAoB,EAAO,GAAM,EAAE,EAE/B,EAAM,iBACN,GAA8B,KAAK,EAAM,MAAM,MAAM,EAAe,EAAM,QAAQ,CAAC,GACrF,GAAa,EAAO,kDAAkD,EAGxE,EAAM,UAAU,KAAK,EAAM,MAAM,EAE7B,EAAM,WAAa,EAAM,WAAa,GAAsB,CAAK,EAAG,CAEtE,AAAI,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAM,IAC7C,GAAM,UAAY,EAClB,GAAoB,EAAO,GAAM,EAAE,GAErC,MACF,CAEA,GAAI,EAAM,SAAY,EAAM,OAAS,EACnC,EAAW,EAAO,uDAAuD,MAEzE,OAEJ,CAGA,YAAuB,EAAO,EAAS,CACrC,EAAQ,OAAO,CAAK,EACpB,EAAU,GAAW,CAAC,EAElB,EAAM,SAAW,GAGf,GAAM,WAAW,EAAM,OAAS,CAAC,IAAM,IACvC,EAAM,WAAW,EAAM,OAAS,CAAC,IAAM,IACzC,IAAS;AAAA,GAIP,EAAM,WAAW,CAAC,IAAM,OAC1B,GAAQ,EAAM,MAAM,CAAC,IAIzB,GAAI,GAAQ,GAAI,IAAQ,EAAO,CAAO,EAElC,EAAU,EAAM,QAAQ,IAAI,EAUhC,IARI,IAAY,IACd,GAAM,SAAW,EACjB,EAAW,EAAO,mCAAmC,GAIvD,EAAM,OAAS,KAER,EAAM,MAAM,WAAW,EAAM,QAAQ,IAAM,IAChD,EAAM,YAAc,EACpB,EAAM,UAAY,EAGpB,KAAO,EAAM,SAAY,EAAM,OAAS,GACtC,GAAa,CAAK,EAGpB,MAAO,GAAM,SACf,CAGA,YAAmB,EAAO,EAAU,EAAS,CAC3C,AAAI,IAAa,MAAQ,MAAO,IAAa,UAAY,MAAO,GAAY,KAC1E,GAAU,EACV,EAAW,MAGb,GAAI,GAAY,GAAc,EAAO,CAAO,EAE5C,GAAI,MAAO,IAAa,WACtB,MAAO,GAGT,OAAS,GAAQ,EAAG,EAAS,EAAU,OAAQ,EAAQ,EAAQ,GAAS,EACtE,EAAS,EAAU,EAAM,CAE7B,CAGA,YAAgB,EAAO,EAAS,CAC9B,GAAI,GAAY,GAAc,EAAO,CAAO,EAE5C,GAAI,EAAU,SAAW,EAGlB,IAAI,EAAU,SAAW,EAC9B,MAAO,GAAU,GAEnB,KAAM,IAAI,IAAU,0DAA0D,EAChF,CAGA,GAAI,IAAY,GACZ,GAAY,GAEZ,GAAS,CACZ,QAAS,GACT,KAAM,EACP,EAQI,GAAkB,OAAO,UAAU,SACnC,GAAkB,OAAO,UAAU,eAEnC,GAA4B,MAC5B,GAA4B,EAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,GAC5B,GAA4B,IAC5B,GAA4B,IAC5B,GAA4B,IAE5B,GAAmB,CAAC,EAExB,GAAiB,GAAU,MAC3B,GAAiB,GAAU,MAC3B,GAAiB,GAAU,MAC3B,GAAiB,GAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,MAC3B,GAAiB,IAAU,OAC3B,GAAiB,KAAU,MAC3B,GAAiB,KAAU,MAC3B,GAAiB,MAAU,MAC3B,GAAiB,MAAU,MAE3B,GAAI,IAA6B,CAC/B,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,KAC3C,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,KAC5C,EAEI,GAA2B,4CAE/B,YAAyB,EAAQ,EAAK,CACpC,GAAI,GAAQ,EAAM,EAAO,EAAQ,EAAK,EAAO,EAE7C,GAAI,IAAQ,KAAM,MAAO,CAAC,EAK1B,IAHA,EAAS,CAAC,EACV,EAAO,OAAO,KAAK,CAAG,EAEjB,EAAQ,EAAG,EAAS,EAAK,OAAQ,EAAQ,EAAQ,GAAS,EAC7D,EAAM,EAAK,GACX,EAAQ,OAAO,EAAI,EAAI,EAEnB,EAAI,MAAM,EAAG,CAAC,IAAM,MACtB,GAAM,qBAAuB,EAAI,MAAM,CAAC,GAE1C,EAAO,EAAO,gBAAgB,SAAY,GAEtC,GAAQ,GAAgB,KAAK,EAAK,aAAc,CAAK,GACvD,GAAQ,EAAK,aAAa,IAG5B,EAAO,GAAO,EAGhB,MAAO,EACT,CAEA,YAAmB,EAAW,CAC5B,GAAI,GAAQ,EAAQ,EAIpB,GAFA,EAAS,EAAU,SAAS,EAAE,EAAE,YAAY,EAExC,GAAa,IACf,EAAS,IACT,EAAS,UACA,GAAa,MACtB,EAAS,IACT,EAAS,UACA,GAAa,WACtB,EAAS,IACT,EAAS,MAET,MAAM,IAAI,IAAU,+DAA+D,EAGrF,MAAO,KAAO,EAAS,GAAO,OAAO,IAAK,EAAS,EAAO,MAAM,EAAI,CACtE,CAGA,GAAI,IAAsB,EACtB,GAAsB,EAE1B,YAAe,EAAS,CACtB,KAAK,OAAgB,EAAQ,QAAa,GAC1C,KAAK,OAAgB,KAAK,IAAI,EAAI,EAAQ,QAAa,CAAE,EACzD,KAAK,cAAgB,EAAQ,eAAoB,GACjD,KAAK,YAAgB,EAAQ,aAAkB,GAC/C,KAAK,UAAiB,GAAO,UAAU,EAAQ,SAAY,EAAI,GAAK,EAAQ,UAC5E,KAAK,SAAgB,GAAgB,KAAK,OAAQ,EAAQ,QAAa,IAAI,EAC3E,KAAK,SAAgB,EAAQ,UAAe,GAC5C,KAAK,UAAgB,EAAQ,WAAgB,GAC7C,KAAK,OAAgB,EAAQ,QAAa,GAC1C,KAAK,aAAgB,EAAQ,cAAmB,GAChD,KAAK,aAAgB,EAAQ,cAAmB,GAChD,KAAK,YAAgB,EAAQ,cAAmB,IAAM,GAAsB,GAC5E,KAAK,YAAgB,EAAQ,aAAkB,GAC/C,KAAK,SAAgB,MAAO,GAAQ,UAAgB,WAAa,EAAQ,SAAc,KAEvF,KAAK,cAAgB,KAAK,OAAO,iBACjC,KAAK,cAAgB,KAAK,OAAO,iBAEjC,KAAK,IAAM,KACX,KAAK,OAAS,GAEd,KAAK,WAAa,CAAC,EACnB,KAAK,eAAiB,IACxB,CAGA,YAAsB,EAAQ,EAAQ,CAQpC,OAPI,GAAM,GAAO,OAAO,IAAK,CAAM,EAC/B,EAAW,EACX,EAAO,GACP,EAAS,GACT,EACA,EAAS,EAAO,OAEb,EAAW,GAChB,EAAO,EAAO,QAAQ;AAAA,EAAM,CAAQ,EACpC,AAAI,IAAS,GACX,GAAO,EAAO,MAAM,CAAQ,EAC5B,EAAW,GAEX,GAAO,EAAO,MAAM,EAAU,EAAO,CAAC,EACtC,EAAW,EAAO,GAGhB,EAAK,QAAU,IAAS;AAAA,GAAM,IAAU,GAE5C,GAAU,EAGZ,MAAO,EACT,CAEA,YAA0B,EAAO,EAAO,CACtC,MAAO;AAAA,EAAO,GAAO,OAAO,IAAK,EAAM,OAAS,CAAK,CACvD,CAEA,YAA+B,EAAO,EAAK,CACzC,GAAI,GAAO,EAAQ,EAEnB,IAAK,EAAQ,EAAG,EAAS,EAAM,cAAc,OAAQ,EAAQ,EAAQ,GAAS,EAG5E,GAFA,EAAO,EAAM,cAAc,GAEvB,EAAK,QAAQ,CAAG,EAClB,MAAO,GAIX,MAAO,EACT,CAGA,YAAsB,EAAG,CACvB,MAAO,KAAM,IAAc,IAAM,EACnC,CAMA,YAAqB,EAAG,CACtB,MAAS,KAAW,GAAK,GAAK,KACrB,KAAW,GAAK,GAAK,OAAa,IAAM,MAAU,IAAM,MACxD,OAAW,GAAK,GAAK,OAAa,IAAM,IACxC,OAAW,GAAK,GAAK,OAChC,CAOA,YAA8B,EAAG,CAC/B,MAAO,IAAY,CAAC,GACf,IAAM,IAEN,IAAM,IACN,IAAM,EACb,CAWA,YAAqB,EAAG,EAAM,EAAS,CACrC,GAAI,GAAwB,GAAqB,CAAC,EAC9C,EAAY,GAAyB,CAAC,GAAa,CAAC,EACxD,MAEE,GACE,EACE,GAEG,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KAGV,IAAM,IACN,CAAE,KAAS,IAAc,CAAC,IACzB,GAAqB,CAAI,GAAK,CAAC,GAAa,CAAI,GAAK,IAAM,IAC3D,IAAS,IAAc,CAC/B,CAGA,YAA0B,EAAG,CAI3B,MAAO,IAAY,CAAC,GAAK,IAAM,IAC1B,CAAC,GAAa,CAAC,GAGf,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAEN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAEN,IAAM,IACN,IAAM,IACN,IAAM,EACb,CAGA,YAAyB,EAAG,CAE1B,MAAO,CAAC,GAAa,CAAC,GAAK,IAAM,EACnC,CAGA,YAAqB,EAAQ,EAAK,CAChC,GAAI,GAAQ,EAAO,WAAW,CAAG,EAAG,EACpC,MAAI,IAAS,OAAU,GAAS,OAAU,EAAM,EAAI,EAAO,QACzD,GAAS,EAAO,WAAW,EAAM,CAAC,EAC9B,GAAU,OAAU,GAAU,OAExB,GAAQ,OAAU,KAAQ,EAAS,MAAS,MAGjD,CACT,CAGA,YAA6B,EAAQ,CACnC,GAAI,GAAiB,QACrB,MAAO,GAAe,KAAK,CAAM,CACnC,CAEA,GAAI,IAAgB,EAChB,GAAgB,EAChB,GAAgB,EAChB,GAAgB,EAChB,GAAgB,EASpB,YAA2B,EAAQ,EAAgB,EAAgB,EACjE,EAAmB,EAAa,EAAa,EAAS,CAEtD,GAAI,GACA,EAAO,EACP,EAAW,KACX,EAAe,GACf,EAAkB,GAClB,EAAmB,IAAc,GACjC,EAAoB,GACpB,EAAQ,GAAiB,GAAY,EAAQ,CAAC,CAAC,GACxC,GAAgB,GAAY,EAAQ,EAAO,OAAS,CAAC,CAAC,EAEjE,GAAI,GAAkB,EAGpB,IAAK,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAQ,MAAU,GAAK,EAAI,IAAK,CAE7D,GADA,EAAO,GAAY,EAAQ,CAAC,EACxB,CAAC,GAAY,CAAI,EACnB,MAAO,IAET,EAAQ,GAAS,GAAY,EAAM,EAAU,CAAO,EACpD,EAAW,CACb,KACK,CAEL,IAAK,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAQ,MAAU,GAAK,EAAI,IAAK,CAE7D,GADA,EAAO,GAAY,EAAQ,CAAC,EACxB,IAAS,GACX,EAAe,GAEX,GACF,GAAkB,GAEf,EAAI,EAAoB,EAAI,GAC5B,EAAO,EAAoB,KAAO,IACrC,EAAoB,WAEb,CAAC,GAAY,CAAI,EAC1B,MAAO,IAET,EAAQ,GAAS,GAAY,EAAM,EAAU,CAAO,EACpD,EAAW,CACb,CAEA,EAAkB,GAAoB,GACnC,EAAI,EAAoB,EAAI,GAC5B,EAAO,EAAoB,KAAO,GACvC,CAIA,MAAI,CAAC,GAAgB,CAAC,EAGhB,GAAS,CAAC,GAAe,CAAC,EAAkB,CAAM,EAC7C,GAEF,IAAgB,GAAsB,GAAe,GAG1D,EAAiB,GAAK,GAAoB,CAAM,EAC3C,GAIJ,EAGE,IAAgB,GAAsB,GAAe,GAFnD,EAAkB,GAAe,EAG5C,CAQA,YAAqB,EAAO,EAAQ,EAAO,EAAO,EAAS,CACzD,EAAM,KAAQ,UAAY,CACxB,GAAI,EAAO,SAAW,EACpB,MAAO,GAAM,cAAgB,GAAsB,KAAO,KAE5D,GAAI,CAAC,EAAM,cACL,IAA2B,QAAQ,CAAM,IAAM,IAAM,GAAyB,KAAK,CAAM,GAC3F,MAAO,GAAM,cAAgB,GAAuB,IAAM,EAAS,IAAQ,IAAM,EAAS,IAI9F,GAAI,GAAS,EAAM,OAAS,KAAK,IAAI,EAAG,CAAK,EAQzC,EAAY,EAAM,YAAc,GAChC,GAAK,KAAK,IAAI,KAAK,IAAI,EAAM,UAAW,EAAE,EAAG,EAAM,UAAY,CAAM,EAGrE,EAAiB,GAEf,EAAM,UAAY,IAAM,GAAS,EAAM,UAC7C,WAAuB,EAAQ,CAC7B,MAAO,IAAsB,EAAO,CAAM,CAC5C,CAEA,OAAQ,GAAkB,EAAQ,EAAgB,EAAM,OAAQ,EAC9D,EAAe,EAAM,YAAa,EAAM,aAAe,CAAC,EAAO,CAAO,OAEjE,IACH,MAAO,OACJ,IACH,MAAO,IAAM,EAAO,QAAQ,KAAM,IAAI,EAAI,QACvC,IACH,MAAO,IAAM,GAAY,EAAQ,EAAM,MAAM,EACzC,GAAkB,GAAa,EAAQ,CAAM,CAAC,MAC/C,IACH,MAAO,IAAM,GAAY,EAAQ,EAAM,MAAM,EACzC,GAAkB,GAAa,GAAW,EAAQ,CAAS,EAAG,CAAM,CAAC,MACtE,IACH,MAAO,IAAM,GAAa,CAAM,EAAI,YAEpC,KAAM,IAAI,IAAU,wCAAwC,EAElE,EAAE,CACJ,CAGA,YAAqB,EAAQ,EAAgB,CAC3C,GAAI,GAAkB,GAAoB,CAAM,EAAI,OAAO,CAAc,EAAI,GAGzE,EAAgB,EAAO,EAAO,OAAS,KAAO;AAAA,EAC9C,EAAO,GAAS,GAAO,EAAO,OAAS,KAAO;AAAA,GAAQ,IAAW;AAAA,GACjE,EAAQ,EAAO,IAAO,EAAO,GAAK,IAEtC,MAAO,GAAkB,EAAQ;AAAA,CACnC,CAGA,YAA2B,EAAQ,CACjC,MAAO,GAAO,EAAO,OAAS,KAAO;AAAA,EAAO,EAAO,MAAM,EAAG,EAAE,EAAI,CACpE,CAIA,YAAoB,EAAQ,EAAO,CAoBjC,OAfI,GAAS,iBAGT,EAAU,UAAY,CACxB,GAAI,GAAS,EAAO,QAAQ;AAAA,CAAI,EAChC,SAAS,IAAW,GAAK,EAAS,EAAO,OACzC,EAAO,UAAY,EACZ,GAAS,EAAO,MAAM,EAAG,CAAM,EAAG,CAAK,CAChD,EAAE,EAEE,EAAmB,EAAO,KAAO;AAAA,GAAQ,EAAO,KAAO,IACvD,EAGA,EACI,EAAQ,EAAO,KAAK,CAAM,GAAI,CACpC,GAAI,GAAS,EAAM,GAAI,EAAO,EAAM,GACpC,EAAgB,EAAK,KAAO,IAC5B,GAAU,EACL,EAAC,GAAoB,CAAC,GAAgB,IAAS,GAC9C;AAAA,EAAO,IACT,GAAS,EAAM,CAAK,EACxB,EAAmB,CACrB,CAEA,MAAO,EACT,CAMA,YAAkB,EAAM,EAAO,CAC7B,GAAI,IAAS,IAAM,EAAK,KAAO,IAAK,MAAO,GAa3C,OAVI,GAAU,SACV,EAEA,EAAQ,EAAG,EAAK,EAAO,EAAG,EAAO,EACjC,EAAS,GAML,EAAQ,EAAQ,KAAK,CAAI,GAC/B,EAAO,EAAM,MAET,EAAO,EAAQ,GACjB,GAAO,EAAO,EAAS,EAAO,EAC9B,GAAU;AAAA,EAAO,EAAK,MAAM,EAAO,CAAG,EAEtC,EAAQ,EAAM,GAEhB,EAAO,EAKT,UAAU;AAAA,EAEV,AAAI,EAAK,OAAS,EAAQ,GAAS,EAAO,EACxC,GAAU,EAAK,MAAM,EAAO,CAAI,EAAI;AAAA,EAAO,EAAK,MAAM,EAAO,CAAC,EAE9D,GAAU,EAAK,MAAM,CAAK,EAGrB,EAAO,MAAM,CAAC,CACvB,CAGA,YAAsB,EAAQ,CAK5B,OAJI,GAAS,GACT,EAAO,EACP,EAEK,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAQ,MAAU,GAAK,EAAI,IAC5D,EAAO,GAAY,EAAQ,CAAC,EAC5B,EAAY,GAAiB,GAE7B,AAAI,CAAC,GAAa,GAAY,CAAI,EAChC,IAAU,EAAO,GACb,GAAQ,OAAS,IAAU,EAAO,EAAI,KAE1C,GAAU,GAAa,GAAU,CAAI,EAIzC,MAAO,EACT,CAEA,YAA2B,EAAO,EAAO,EAAQ,CAC/C,GAAI,GAAU,GACV,EAAU,EAAM,IAChB,EACA,EACA,EAEJ,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAC/D,EAAQ,EAAO,GAEX,EAAM,UACR,GAAQ,EAAM,SAAS,KAAK,EAAQ,OAAO,CAAK,EAAG,CAAK,GAItD,IAAU,EAAO,EAAO,EAAO,GAAO,EAAK,GAC1C,MAAO,GAAU,KACjB,GAAU,EAAO,EAAO,KAAM,GAAO,EAAK,IAEzC,KAAY,IAAI,IAAW,IAAO,CAAC,EAAM,aAAqB,GAAN,MAC5D,GAAW,EAAM,MAIrB,EAAM,IAAM,EACZ,EAAM,KAAO,IAAM,EAAU,GAC/B,CAEA,YAA4B,EAAO,EAAO,EAAQ,EAAS,CACzD,GAAI,GAAU,GACV,EAAU,EAAM,IAChB,EACA,EACA,EAEJ,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAC/D,EAAQ,EAAO,GAEX,EAAM,UACR,GAAQ,EAAM,SAAS,KAAK,EAAQ,OAAO,CAAK,EAAG,CAAK,GAItD,IAAU,EAAO,EAAQ,EAAG,EAAO,GAAM,GAAM,GAAO,EAAI,GACzD,MAAO,GAAU,KACjB,GAAU,EAAO,EAAQ,EAAG,KAAM,GAAM,GAAM,GAAO,EAAI,IAExD,GAAC,GAAW,IAAY,KAC1B,IAAW,GAAiB,EAAO,CAAK,GAG1C,AAAI,EAAM,MAAQ,KAAmB,EAAM,KAAK,WAAW,CAAC,EAC1D,GAAW,IAEX,GAAW,KAGb,GAAW,EAAM,MAIrB,EAAM,IAAM,EACZ,EAAM,KAAO,GAAW,IAC1B,CAEA,YAA0B,EAAO,EAAO,EAAQ,CAC9C,GAAI,GAAgB,GAChB,EAAgB,EAAM,IACtB,EAAgB,OAAO,KAAK,CAAM,EAClC,EACA,EACA,EACA,EACA,EAEJ,IAAK,EAAQ,EAAG,EAAS,EAAc,OAAQ,EAAQ,EAAQ,GAAS,EActE,AAZA,EAAa,GACT,IAAY,IAAI,IAAc,MAE9B,EAAM,cAAc,IAAc,KAEtC,EAAY,EAAc,GAC1B,EAAc,EAAO,GAEjB,EAAM,UACR,GAAc,EAAM,SAAS,KAAK,EAAQ,EAAW,CAAW,GAG9D,AAAC,GAAU,EAAO,EAAO,EAAW,GAAO,EAAK,GAIhD,GAAM,KAAK,OAAS,MAAM,IAAc,MAE5C,GAAc,EAAM,KAAQ,GAAM,aAAe,IAAM,IAAM,IAAO,GAAM,aAAe,GAAK,KAE1F,AAAC,GAAU,EAAO,EAAO,EAAa,GAAO,EAAK,GAItD,IAAc,EAAM,KAGpB,GAAW,IAGb,EAAM,IAAM,EACZ,EAAM,KAAO,IAAM,EAAU,GAC/B,CAEA,YAA2B,EAAO,EAAO,EAAQ,EAAS,CACxD,GAAI,GAAgB,GAChB,EAAgB,EAAM,IACtB,EAAgB,OAAO,KAAK,CAAM,EAClC,EACA,EACA,EACA,EACA,EACA,EAGJ,GAAI,EAAM,WAAa,GAErB,EAAc,KAAK,UACV,MAAO,GAAM,UAAa,WAEnC,EAAc,KAAK,EAAM,QAAQ,UACxB,EAAM,SAEf,KAAM,IAAI,IAAU,0CAA0C,EAGhE,IAAK,EAAQ,EAAG,EAAS,EAAc,OAAQ,EAAQ,EAAQ,GAAS,EActE,AAbA,EAAa,GAET,EAAC,GAAW,IAAY,KAC1B,IAAc,GAAiB,EAAO,CAAK,GAG7C,EAAY,EAAc,GAC1B,EAAc,EAAO,GAEjB,EAAM,UACR,GAAc,EAAM,SAAS,KAAK,EAAQ,EAAW,CAAW,GAG9D,AAAC,GAAU,EAAO,EAAQ,EAAG,EAAW,GAAM,GAAM,EAAI,GAI5D,GAAgB,EAAM,MAAQ,MAAQ,EAAM,MAAQ,KACpC,EAAM,MAAQ,EAAM,KAAK,OAAS,KAE9C,GACF,CAAI,EAAM,MAAQ,KAAmB,EAAM,KAAK,WAAW,CAAC,EAC1D,GAAc,IAEd,GAAc,MAIlB,GAAc,EAAM,KAEhB,GACF,IAAc,GAAiB,EAAO,CAAK,GAGzC,AAAC,GAAU,EAAO,EAAQ,EAAG,EAAa,GAAM,CAAY,GAIhE,CAAI,EAAM,MAAQ,KAAmB,EAAM,KAAK,WAAW,CAAC,EAC1D,GAAc,IAEd,GAAc,KAGhB,GAAc,EAAM,KAGpB,GAAW,IAGb,EAAM,IAAM,EACZ,EAAM,KAAO,GAAW,IAC1B,CAEA,YAAoB,EAAO,EAAQ,EAAU,CAC3C,GAAI,GAAS,EAAU,EAAO,EAAQ,EAAM,EAI5C,IAFA,EAAW,EAAW,EAAM,cAAgB,EAAM,cAE7C,EAAQ,EAAG,EAAS,EAAS,OAAQ,EAAQ,EAAQ,GAAS,EAGjE,GAFA,EAAO,EAAS,GAEX,GAAK,YAAe,EAAK,YACzB,EAAC,EAAK,YAAgB,MAAO,IAAW,UAAc,YAAkB,GAAK,aAC7E,EAAC,EAAK,WAAc,EAAK,UAAU,CAAM,GAAI,CAYhD,GAVA,AAAI,EACF,AAAI,EAAK,OAAS,EAAK,cACrB,EAAM,IAAM,EAAK,cAAc,CAAM,EAErC,EAAM,IAAM,EAAK,IAGnB,EAAM,IAAM,IAGV,EAAK,UAAW,CAGlB,GAFA,EAAQ,EAAM,SAAS,EAAK,MAAQ,EAAK,aAErC,GAAU,KAAK,EAAK,SAAS,IAAM,oBACrC,EAAU,EAAK,UAAU,EAAQ,CAAK,UAC7B,GAAgB,KAAK,EAAK,UAAW,CAAK,EACnD,EAAU,EAAK,UAAU,GAAO,EAAQ,CAAK,MAE7C,MAAM,IAAI,IAAU,KAAO,EAAK,IAAM,+BAAiC,EAAQ,SAAS,EAG1F,EAAM,KAAO,CACf,CAEA,MAAO,EACT,CAGF,MAAO,EACT,CAKA,YAAmB,EAAO,EAAO,EAAQ,EAAO,EAAS,EAAO,EAAY,CAC1E,EAAM,IAAM,KACZ,EAAM,KAAO,EAER,GAAW,EAAO,EAAQ,EAAK,GAClC,GAAW,EAAO,EAAQ,EAAI,EAGhC,GAAI,GAAO,GAAU,KAAK,EAAM,IAAI,EAChC,EAAU,EACV,EAEJ,AAAI,GACF,GAAS,EAAM,UAAY,GAAK,EAAM,UAAY,GAGpD,GAAI,GAAgB,IAAS,mBAAqB,IAAS,iBACvD,EACA,EAWJ,GATI,GACF,GAAiB,EAAM,WAAW,QAAQ,CAAM,EAChD,EAAY,IAAmB,IAG5B,GAAM,MAAQ,MAAQ,EAAM,MAAQ,KAAQ,GAAc,EAAM,SAAW,GAAK,EAAQ,IAC3F,GAAU,IAGR,GAAa,EAAM,eAAe,GACpC,EAAM,KAAO,QAAU,MAClB,CAIL,GAHI,GAAiB,GAAa,CAAC,EAAM,eAAe,IACtD,GAAM,eAAe,GAAkB,IAErC,IAAS,kBACX,AAAI,GAAU,OAAO,KAAK,EAAM,IAAI,EAAE,SAAW,EAC/C,IAAkB,EAAO,EAAO,EAAM,KAAM,CAAO,EAC/C,GACF,GAAM,KAAO,QAAU,EAAiB,EAAM,OAGhD,IAAiB,EAAO,EAAO,EAAM,IAAI,EACrC,GACF,GAAM,KAAO,QAAU,EAAiB,IAAM,EAAM,eAG/C,IAAS,iBAClB,AAAI,GAAU,EAAM,KAAK,SAAW,EAClC,CAAI,EAAM,eAAiB,CAAC,GAAc,EAAQ,EAChD,GAAmB,EAAO,EAAQ,EAAG,EAAM,KAAM,CAAO,EAExD,GAAmB,EAAO,EAAO,EAAM,KAAM,CAAO,EAElD,GACF,GAAM,KAAO,QAAU,EAAiB,EAAM,OAGhD,IAAkB,EAAO,EAAO,EAAM,IAAI,EACtC,GACF,GAAM,KAAO,QAAU,EAAiB,IAAM,EAAM,eAG/C,IAAS,kBAClB,AAAI,EAAM,MAAQ,KAChB,GAAY,EAAO,EAAM,KAAM,EAAO,EAAO,CAAO,MAEjD,IAAI,IAAS,qBAClB,MAAO,GAEP,GAAI,EAAM,YAAa,MAAO,GAC9B,KAAM,IAAI,IAAU,0CAA4C,CAAI,EAGtE,AAAI,EAAM,MAAQ,MAAQ,EAAM,MAAQ,KActC,GAAS,UACP,EAAM,IAAI,KAAO,IAAM,EAAM,IAAI,MAAM,CAAC,EAAI,EAAM,GACpD,EAAE,QAAQ,KAAM,KAAK,EAErB,AAAI,EAAM,IAAI,KAAO,IACnB,EAAS,IAAM,EACV,AAAI,EAAO,MAAM,EAAG,EAAE,IAAM,qBACjC,EAAS,KAAO,EAAO,MAAM,EAAE,EAE/B,EAAS,KAAO,EAAS,IAG3B,EAAM,KAAO,EAAS,IAAM,EAAM,KAEtC,CAEA,MAAO,EACT,CAEA,YAAgC,EAAQ,EAAO,CAC7C,GAAI,GAAU,CAAC,EACX,EAAoB,CAAC,EACrB,EACA,EAIJ,IAFA,GAAY,EAAQ,EAAS,CAAiB,EAEzC,EAAQ,EAAG,EAAS,EAAkB,OAAQ,EAAQ,EAAQ,GAAS,EAC1E,EAAM,WAAW,KAAK,EAAQ,EAAkB,GAAO,EAEzD,EAAM,eAAiB,GAAI,OAAM,CAAM,CACzC,CAEA,YAAqB,EAAQ,EAAS,EAAmB,CACvD,GAAI,GACA,EACA,EAEJ,GAAI,IAAW,MAAQ,MAAO,IAAW,SAEvC,GADA,EAAQ,EAAQ,QAAQ,CAAM,EAC1B,IAAU,GACZ,AAAI,EAAkB,QAAQ,CAAK,IAAM,IACvC,EAAkB,KAAK,CAAK,UAG9B,EAAQ,KAAK,CAAM,EAEf,MAAM,QAAQ,CAAM,EACtB,IAAK,EAAQ,EAAG,EAAS,EAAO,OAAQ,EAAQ,EAAQ,GAAS,EAC/D,GAAY,EAAO,GAAQ,EAAS,CAAiB,MAKvD,KAFA,EAAgB,OAAO,KAAK,CAAM,EAE7B,EAAQ,EAAG,EAAS,EAAc,OAAQ,EAAQ,EAAQ,GAAS,EACtE,GAAY,EAAO,EAAc,IAAS,EAAS,CAAiB,CAK9E,CAEA,YAAgB,EAAO,EAAS,CAC9B,EAAU,GAAW,CAAC,EAEtB,GAAI,GAAQ,GAAI,IAAM,CAAO,EAE7B,AAAK,EAAM,QAAQ,GAAuB,EAAO,CAAK,EAEtD,GAAI,GAAQ,EAMZ,MAJI,GAAM,UACR,GAAQ,EAAM,SAAS,KAAK,CAAE,GAAI,CAAM,EAAG,GAAI,CAAK,GAGlD,GAAU,EAAO,EAAG,EAAO,GAAM,EAAI,EAAU,EAAM,KAAO;AAAA,EAEzD,EACT,CAEA,GAAI,IAAS,GAET,GAAS,CACZ,KAAM,EACP,EAEA,YAAiB,EAAM,EAAI,CACzB,MAAO,WAAY,CACjB,KAAM,IAAI,OAAM,iBAAmB,EAAO,sCAC1B,EAAK,yCAAyC,CAChE,CACF,CASA,GAAI,IAAsB,GAAO,KAC7B,GAAsB,GAAO,QAC7B,GAAsB,GAAO,KAqBjC,GAAI,IAAsB,GAAQ,WAAY,MAAM,EAChD,GAAsB,GAAQ,cAAe,SAAS,EACtD,GAAsB,GAAQ,WAAY,MAAM,EDpvHpD,OAAyB,SEFzB,OAA2C,SAEpC,QAAiB,aACF,kBAAiB,EAA2C,CAC9E,GAAM,GAA0B,CAAC,EACjC,OAAW,KAAQ,GACjB,AAAI,KAAM,kBAAW,CAAI,GACvB,EAAc,KAAK,CAAI,EAI3B,MAAO,EACT,OAEc,sBAAqB,EAAkC,CACnE,GAAM,GAA0B,CAAC,EACjC,OAAW,KAAQ,GACjB,AAAI,sBAAe,CAAI,GACrB,EAAc,KAAK,CAAI,EAI3B,MAAO,EACT,CACF,EFYO,YAAgC,OACvB,cAAwB,CACpC,GAAM,GAAgB,CACpB,gBACA,eACA,wBACA,uBACA,oBAAoB,GAAO,gBAC3B,oBAAoB,GAAO,eAC3B,wBACA,oBAAoB,GAAO,eAC7B,EACA,MAAO,IAAW,qBAAqB,CAAa,CACtD,WAGkB,WAAoB,CACpC,GAAI,GAAO,YAAc,OAAW,CAClC,GAAM,GAAe,GAAY,cAAkB,EAAM,EACzD,GAAO,UAAY,EAAa,KAAK,GAAO,YAAY,CAAC,CAC3D,CACA,MAAO,IAAO,SAChB,WAEkB,WAA4C,CAC5D,GAAM,GAAU,QAAQ,IAAI,UAAY,MACxC,MAAI,GAAQ,WAAW,MAAM,EACpB,OACE,IAAY,KACd,KACE,IAAY,QACd,QAEF,KACT,CAiDF,EA1CS,IALP,AAAS,YAAS,CAChB,IAAK,yCACL,QAAS,EACT,IAAK,gBACP,CAAC,GACM,AAzCF,GAyCE,4BAOA,IALP,AAAS,YAAS,CAChB,IAAK,qCACL,QAAS,YACT,IAAK,YACP,CAAC,GACM,AAhDF,GAgDE,yBAOA,IALP,AAAS,YAAS,CAChB,IAAK,gFACL,QAAS,YACT,IAAK,eACP,CAAC,GACM,AAvDF,GAuDE,4BAUA,IARP,AAAS,YAAS,CAChB,IAAK;AAAA;AAAA;AAAA,+CAIL,QAAS,GACT,IAAK,cACP,CAAC,GACM,AAjEF,GAiEE,2BAOA,IALP,AAAS,YAAS,CAChB,IAAK,oEACL,QAAS,GACT,IAAK,6BACP,CAAC,GACM,AAxEF,GAwEE,uCAUA,IARP,AAAS,YAAS,CAChB,IAAK;AAAA;AAAA;AAAA,4BAIL,QAAS,GACT,IAAK,qBACP,CAAC,GACM,AAlFF,GAkFE,iCAlFF,OAnBP,AAAS,UAAO,CAEd,KAAM,aAGN,iBAAkB,SAGlB,OAAQ,CACN,UAAW,CAAC,MAAO,MAAM,EACzB,MAAY,EACd,EAGA,QAAS,CACP,WACA,sBACF,CACF,CAAC,GACM,IGpCP,OAA0B,SAE1B,QAAyB,CAIzB,EAHgB,AADhB,GACgB,SAAW,GAAI,cAAU,CACrC,OAAQ,QAAQ,IAAI,iBAAmB,MACzC,CAAC,ERMH,GAAM,IAAM,GAAI,SACV,GAAS,GAAO,SAEtB,GAAI,KAAK,iBAAkB,CAAE,SAAO,CAAC,EAQrC,GAAM,IAAe,GAAI,gBAAY,CACnC,YAAa,uBAAgB,EAE7B,OAAQ,GAAO,cAAgB,YAC/B,QAAS,SACT,OAAQ,SACV,CAAC,EAEK,GAAmB,GAAI,gBAAY,CACvC,YAAa,uBAAgB,EAE7B,OAAQ,GAAO,cAAgB,YAC/B,QAAS,cACT,OAAQ,SACV,CAAC,EAEY,GAA2C,MACtD,EACA,IAC6C,CAzC/C,YA0CE,GAAM,GAAU,EAAM,QAAQ,GAAG,GAAG,QACpC,GAAI,CACF,GAAI,GAAkB,EAGtB,AAAI,GAAO,yBAA2B,EAAQ,QAAQ,MAEpD,GAAQ,QAAQ,oBAAsB,CACpC,CACE,IAAK,mBACL,MAAO,EAAQ,QAAQ,KAAQ,GAAG,KACpC,CACF,GAOE,GAAO,mBAAqB,SAAQ,SAAR,cAAgB,SAAhB,cAAwB,aACtD,GAAQ,QAAQ,KAAU,CAAC,CAAE,IAAK,OAAQ,MAAO,EAAQ,OAAO,OAAO,UAAW,CAAC,GAOrF,GAAM,GAAS,QAAQ,SAAR,cAAgB,SAAhB,QAAwB,WAAW,SAAS,gBACvD,GACA,GACJ,MAAI,IAAO,cAAgB,OACzB,IAAI,KAAK,iBAAiB,EAE1B,EADsB,KAAM,IAAY,EAAS,EAAS,CAAM,GAE3D,AAAI,GAAO,cAAgB,UAEhC,IAAI,MAAM,6BAA6B,EAEvC,EADyB,KAAM,IAAe,EAAS,EAAS,CAAM,GAGtE,GAAI,KAAK,qBAAqB,EAGhC,GAAI,KAAK,oBAAqB,CAC5B,iBACF,CAAC,EAEM,CACT,OAAS,EAAP,CACA,UAAI,MAAM,gCAAiC,CAAE,OAAM,CAAC,EAE7C,CACL,OAAQ,MACR,kBAAmB,iCACrB,CACF,CACF",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|