{"version":3,"file":"colors-DDIO6MOO.js","sources":["../../../node_modules/@slideslive/fuse-kit/dist/utils/number/format_size.js","../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/get_files_from_data_transfer.js","../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/add_classes.js","../../../node_modules/@uppy/utils/lib/getSpeed.js","../../../node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js","../../../node_modules/@smithy/types/dist-es/auth/auth.js","../../../node_modules/@smithy/types/dist-es/auth/HttpApiKeyAuth.js","../../../node_modules/@smithy/types/dist-es/endpoint.js","../../../node_modules/@smithy/types/dist-es/extensions/checksum.js","../../../node_modules/@smithy/types/dist-es/http.js","../../../node_modules/@smithy/types/dist-es/middleware.js","../../../node_modules/@smithy/types/dist-es/profile.js","../../../node_modules/@smithy/types/dist-es/transfer.js","../../../node_modules/@smithy/protocol-http/dist-es/httpRequest.js","../../../node_modules/@smithy/protocol-http/dist-es/httpResponse.js","../../../node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringUnionSelector.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js","../../../node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js","../../../node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js","../../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js","../../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js","../../../node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js","../../../node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js","../../../node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js","../../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js","../../../node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js","../../../node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js","../../../node_modules/@smithy/core/dist-es/normalizeProvider.js","../../../node_modules/@smithy/util-base64/dist-es/constants.browser.js","../../../node_modules/@smithy/util-base64/dist-es/fromBase64.browser.js","../../../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../../node_modules/@smithy/util-utf8/dist-es/toUint8Array.js","../../../node_modules/@smithy/util-utf8/dist-es/toUtf8.browser.js","../../../node_modules/@smithy/util-base64/dist-es/toBase64.browser.js","../../../node_modules/@smithy/util-stream/dist-es/blob/transforms.js","../../../node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js","../../../node_modules/@smithy/util-stream/dist-es/getAwsChunkedEncodingStream.browser.js","../../../node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js","../../../node_modules/@smithy/querystring-builder/dist-es/index.js","../../../node_modules/@smithy/fetch-http-handler/dist-es/create-request.js","../../../node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js","../../../node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js","../../../node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js","../../../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../../../node_modules/@smithy/util-stream/dist-es/stream-type-check.js","../../../node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js","../../../node_modules/@smithy/util-stream/dist-es/splitStream.browser.js","../../../node_modules/@smithy/util-stream/dist-es/headStream.browser.js","../../../node_modules/@smithy/util-stream/dist-es/checksum/ChecksumStream.browser.js","../../../node_modules/@smithy/util-stream/dist-es/checksum/createChecksumStream.browser.js","../../../node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js","../../../node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js","../../../node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js","../../../node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js","../../../node_modules/@smithy/core/dist-es/setFeature.js","../../../node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js","../../../node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js","../../../node_modules/@smithy/property-provider/dist-es/memoize.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js","../../../node_modules/@smithy/signature-v4/dist-es/constants.js","../../../node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js","../../../node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js","../../../node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js","../../../node_modules/@smithy/is-array-buffer/dist-es/index.js","../../../node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js","../../../node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js","../../../node_modules/@smithy/signature-v4/dist-es/headerUtil.js","../../../node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js","../../../node_modules/@smithy/signature-v4/dist-es/prepareRequest.js","../../../node_modules/@smithy/signature-v4/dist-es/utilDate.js","../../../node_modules/@smithy/signature-v4/dist-es/SignatureV4.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js","../../../node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js","../../../node_modules/@smithy/smithy-client/dist-es/client.js","../../../node_modules/@smithy/smithy-client/dist-es/command.js","../../../node_modules/@smithy/smithy-client/dist-es/constants.js","../../../node_modules/@smithy/smithy-client/dist-es/parse-utils.js","../../../node_modules/@smithy/smithy-client/dist-es/date-utils.js","../../../node_modules/@smithy/smithy-client/dist-es/exceptions.js","../../../node_modules/@smithy/smithy-client/dist-es/default-error-handler.js","../../../node_modules/@smithy/smithy-client/dist-es/defaults-mode.js","../../../node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js","../../../node_modules/@smithy/smithy-client/dist-es/extensions/retry.js","../../../node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js","../../../node_modules/@smithy/smithy-client/dist-es/get-array-if-single-item.js","../../../node_modules/@smithy/smithy-client/dist-es/get-value-from-text-node.js","../../../node_modules/@smithy/smithy-client/dist-es/is-serializable-header-value.js","../../../node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js","../../../node_modules/@smithy/smithy-client/dist-es/object-mapping.js","../../../node_modules/@smithy/smithy-client/dist-es/ser-utils.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js","../../../node_modules/fast-xml-parser/src/util.js","../../../node_modules/fast-xml-parser/src/validator.js","../../../node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","../../../node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","../../../node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","../../../node_modules/strnum/strnum.js","../../../node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","../../../node_modules/fast-xml-parser/src/xmlparser/node2json.js","../../../node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","../../../node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","../../../node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","../../../node_modules/fast-xml-parser/src/fxp.js","../../../node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeaderWithPrefix.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../../node_modules/@aws-crypto/util/build/module/convertToBuffer.js","../../../node_modules/@aws-crypto/util/build/module/isEmptyData.js","../../../node_modules/@aws-crypto/util/build/module/numToUint8.js","../../../node_modules/@aws-crypto/util/build/module/uint32ArrayFrom.js","../../../node_modules/@aws-crypto/crc32c/build/module/aws_crc32c.js","../../../node_modules/@aws-crypto/crc32c/build/module/index.js","../../../node_modules/@aws-crypto/crc32/build/module/aws_crc32.js","../../../node_modules/@aws-crypto/crc32/build/module/index.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getCrc32ChecksumAlgorithmFunction.browser.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsInputMiddleware.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isChecksumWithPartNumber.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/streams/create-read-stream-on-buffer.browser.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js","../../../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/resolveFlexibleChecksumsConfig.js","../../../node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","../../../node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","../../../node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js","../../../node_modules/@smithy/util-config-provider/dist-es/types.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js","../../../node_modules/@aws-sdk/util-arn-parser/dist-es/index.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js","../../../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js","../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","../../../node_modules/@smithy/util-endpoints/dist-es/cache/EndpointCache.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/isIpAddress.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/isValidHostLabel.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js","../../../node_modules/@smithy/util-endpoints/dist-es/debug/debugId.js","../../../node_modules/@smithy/util-endpoints/dist-es/debug/toDebugString.js","../../../node_modules/@smithy/util-endpoints/dist-es/types/EndpointError.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/booleanEquals.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttrPathList.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/isSet.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/not.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/parseURL.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/stringEquals.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/substring.js","../../../node_modules/@smithy/util-endpoints/dist-es/lib/uriEncode.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/callFunction.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperty.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointUrl.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTreeRule.js","../../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js","../../../node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js","../../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js","../../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js","../../../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js","../../../node_modules/@aws-sdk/util-endpoints/dist-es/aws.js","../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/check-features.js","../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/encode-features.js","../../../node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","../../../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","../../../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js","../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js","../../../node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","../../../node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js","../../../node_modules/@smithy/middleware-content-length/dist-es/index.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.browser.js","../../../node_modules/@smithy/querystring-parser/dist-es/index.js","../../../node_modules/@smithy/url-parser/dist-es/index.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js","../../../node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js","../../../node_modules/@smithy/util-retry/dist-es/config.js","../../../node_modules/@smithy/service-error-classification/dist-es/constants.js","../../../node_modules/@smithy/service-error-classification/dist-es/index.js","../../../node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js","../../../node_modules/@smithy/util-retry/dist-es/constants.js","../../../node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js","../../../node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js","../../../node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js","../../../node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js","../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/@smithy/middleware-retry/dist-es/util.js","../../../node_modules/@smithy/middleware-retry/dist-es/configurations.js","../../../node_modules/@smithy/middleware-retry/dist-es/isStreamingPayload/isStreamingPayload.browser.js","../../../node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js","../../../node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js","../../../node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js","../../../node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js","../../../node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js","../../../node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js","../../../node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js","../../../node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js","../../../node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js","../../../node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js","../../../node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js","../../../node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js","../../../node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js","../../../node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js","../../../node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js","../../../node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../../node_modules/@aws-crypto/sha1-browser/build/module/isEmptyData.js","../../../node_modules/@aws-crypto/sha1-browser/build/module/constants.js","../../../node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../../../node_modules/@aws-crypto/sha1-browser/build/module/webCryptoSha1.js","../../../node_modules/@aws-crypto/supports-web-crypto/build/module/supportsWebCrypto.js","../../../node_modules/@aws-crypto/sha1-browser/build/module/crossPlatformSha1.js","../../../node_modules/@aws-crypto/sha256-browser/build/module/constants.js","../../../node_modules/@aws-crypto/sha256-browser/build/module/webCryptoSha256.js","../../../node_modules/@aws-crypto/sha256-js/build/module/constants.js","../../../node_modules/@aws-crypto/sha256-js/build/module/RawSha256.js","../../../node_modules/@aws-crypto/sha256-js/build/module/jsSha256.js","../../../node_modules/@aws-crypto/sha256-browser/build/module/crossPlatformSha256.js","../../../node_modules/bowser/src/constants.js","../../../node_modules/bowser/src/utils.js","../../../node_modules/bowser/src/parser-browsers.js","../../../node_modules/bowser/src/parser-os.js","../../../node_modules/bowser/src/parser-platforms.js","../../../node_modules/bowser/src/parser-engines.js","../../../node_modules/bowser/src/parser.js","../../../node_modules/bowser/src/bowser.js","../../../node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","../../../node_modules/@smithy/eventstream-codec/dist-es/Int64.js","../../../node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js","../../../node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js","../../../node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js","../../../node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js","../../../node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js","../../../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js","../../../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js","../../../node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js","../../../node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js","../../../node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js","../../../node_modules/@smithy/eventstream-serde-browser/dist-es/utils.js","../../../node_modules/@smithy/eventstream-serde-browser/dist-es/EventStreamMarshaller.js","../../../node_modules/@smithy/eventstream-serde-browser/dist-es/provider.js","../../../node_modules/@smithy/chunked-blob-reader/dist-es/index.js","../../../node_modules/@smithy/hash-blob-browser/dist-es/index.js","../../../node_modules/@smithy/invalid-dependency/dist-es/invalidProvider.js","../../../node_modules/@smithy/md5-js/dist-es/constants.js","../../../node_modules/@smithy/md5-js/dist-es/index.js","../../../node_modules/@smithy/util-body-length-browser/dist-es/calculateBodyLength.js","../../../node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js","../../../node_modules/@smithy/util-defaults-mode-browser/dist-es/constants.js","../../../node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js","../../../node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js","../../../node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js","../../../node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthExtensionConfiguration.js","../../../node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js","../../../node_modules/@aws-sdk/client-s3/dist-es/S3Client.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js","../../../node_modules/@aws-sdk/middleware-ssec/dist-es/index.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js","../../../node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js","../../../node_modules/@aws-sdk/util-format-url/dist-es/index.js","../../../node_modules/@aws-sdk/s3-request-presigner/dist-es/constants.js","../../../node_modules/@aws-sdk/s3-request-presigner/dist-es/presigner.js","../../../node_modules/@aws-sdk/s3-request-presigner/dist-es/getSignedUrl.js","../../../app/frontend/modules/resumable_upload/aws_s3_multipart_upload_helper.js","../../../app/frontend/modules/resumable_upload/index.js","../../../node_modules/@slideslive/fuse-kit/dist/assets/styles/colors.js"],"sourcesContent":["function formatSize(size, units = \"B\") {\n  if (size >= 1e3 * 1e3 * 1e3) {\n    return `${Math.round(size / (1e3 * 1e3 * 1e3), -2)} G${units}`;\n  }\n  if (size >= 1e3 * 1e3) {\n    return `${Math.round(size / (1e3 * 1e3), -2)} M${units}`;\n  }\n  if (size >= 1e3) {\n    return `${Math.round(size / 1e3, -2)} K${units}`;\n  }\n  return `${Math.round(size, -2)} ${units}`;\n}\nexport {\n  formatSize as default\n};\n","async function readEntriesPromise(directoryReader) {\n  try {\n    return await new Promise((resolve, reject) => {\n      directoryReader.readEntries(resolve, reject);\n    });\n  } catch (error) {\n    console.warn(error);\n    return [];\n  }\n}\nasync function readDirectoryEntries(directoryEntry) {\n  const directoryReader = directoryEntry.createReader();\n  const directoryEntries = [];\n  let readEntries = await readEntriesPromise(directoryReader);\n  while (readEntries.length > 0) {\n    directoryEntries.push(...readEntries);\n    readEntries = await readEntriesPromise(directoryReader);\n  }\n  return directoryEntries;\n}\nasync function getFilesFromDataTransfer(dataTransfer) {\n  const items = dataTransfer.items;\n  const queue = [];\n  for (let i = 0; i < items.length; i++) {\n    queue.push(items[i].webkitGetAsEntry());\n  }\n  const fileEntries = [];\n  while (queue.length > 0) {\n    const entry = queue.shift();\n    if (entry.isFile) {\n      fileEntries.push(entry);\n    } else {\n      queue.push(...await readDirectoryEntries(entry));\n    }\n  }\n  const filePromises = fileEntries.map(\n    (fileEntry) => new Promise((accept) => {\n      fileEntry.file((file) => {\n        file.slidesliveRelativePath = fileEntry.fullPath.replace(/^\\//, \"\");\n        accept(file);\n      });\n    })\n  );\n  return Promise.all(filePromises);\n}\nexport {\n  getFilesFromDataTransfer as default\n};\n","function addClasses(...args) {\n  const classes = [];\n  args.forEach((className) => {\n    if (className) {\n      if (typeof className === \"string\") {\n        classes.push(className);\n      } else if (Array.isArray(className)) {\n        classes.push(...addClasses(...className));\n      } else if (typeof className === \"object\") {\n        Object.keys(className).forEach((key) => {\n          if (className[key]) {\n            classes.push(...addClasses(key));\n          }\n        });\n      }\n    }\n  });\n  return classes.flat().filter((value, index, self) => self.indexOf(value) === index);\n}\nexport {\n  addClasses as default\n};\n","export default function getSpeed(fileProgress) {\n  if (!fileProgress.bytesUploaded) return 0;\n  const timeElapsed = Date.now() - fileProgress.uploadStarted;\n  const uploadSpeed = fileProgress.bytesUploaded / (timeElapsed / 1000);\n  return uploadSpeed;\n}","export const getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n    let httpHandler = runtimeConfig.httpHandler;\n    return {\n        setHttpHandler(handler) {\n            httpHandler = handler;\n        },\n        httpHandler() {\n            return httpHandler;\n        },\n        updateHttpClientConfig(key, value) {\n            httpHandler.updateHttpClientConfig(key, value);\n        },\n        httpHandlerConfigs() {\n            return httpHandler.httpHandlerConfigs();\n        },\n    };\n};\nexport const resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n    return {\n        httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n    };\n};\n","export var HttpAuthLocation;\n(function (HttpAuthLocation) {\n    HttpAuthLocation[\"HEADER\"] = \"header\";\n    HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation || (HttpAuthLocation = {}));\n","export var HttpApiKeyAuthLocation;\n(function (HttpApiKeyAuthLocation) {\n    HttpApiKeyAuthLocation[\"HEADER\"] = \"header\";\n    HttpApiKeyAuthLocation[\"QUERY\"] = \"query\";\n})(HttpApiKeyAuthLocation || (HttpApiKeyAuthLocation = {}));\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n    EndpointURLScheme[\"HTTP\"] = \"http\";\n    EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export var AlgorithmId;\n(function (AlgorithmId) {\n    AlgorithmId[\"MD5\"] = \"md5\";\n    AlgorithmId[\"CRC32\"] = \"crc32\";\n    AlgorithmId[\"CRC32C\"] = \"crc32c\";\n    AlgorithmId[\"SHA1\"] = \"sha1\";\n    AlgorithmId[\"SHA256\"] = \"sha256\";\n})(AlgorithmId || (AlgorithmId = {}));\nexport const getChecksumConfiguration = (runtimeConfig) => {\n    const checksumAlgorithms = [];\n    if (runtimeConfig.sha256 !== undefined) {\n        checksumAlgorithms.push({\n            algorithmId: () => AlgorithmId.SHA256,\n            checksumConstructor: () => runtimeConfig.sha256,\n        });\n    }\n    if (runtimeConfig.md5 != undefined) {\n        checksumAlgorithms.push({\n            algorithmId: () => AlgorithmId.MD5,\n            checksumConstructor: () => runtimeConfig.md5,\n        });\n    }\n    return {\n        _checksumAlgorithms: checksumAlgorithms,\n        addChecksumAlgorithm(algo) {\n            this._checksumAlgorithms.push(algo);\n        },\n        checksumAlgorithms() {\n            return this._checksumAlgorithms;\n        },\n    };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n    const runtimeConfig = {};\n    clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n        runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n    });\n    return runtimeConfig;\n};\n","export var FieldPosition;\n(function (FieldPosition) {\n    FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n    FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export const SMITHY_CONTEXT_KEY = \"__smithy_context\";\n","export var IniSectionType;\n(function (IniSectionType) {\n    IniSectionType[\"PROFILE\"] = \"profile\";\n    IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n    IniSectionType[\"SERVICES\"] = \"services\";\n})(IniSectionType || (IniSectionType = {}));\n","export var RequestHandlerProtocol;\n(function (RequestHandlerProtocol) {\n    RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n    RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n    RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(RequestHandlerProtocol || (RequestHandlerProtocol = {}));\n","export class 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        this.username = options.username;\n        this.password = options.password;\n        this.fragment = options.fragment;\n    }\n    static clone(request) {\n        const cloned = new HttpRequest({\n            ...request,\n            headers: { ...request.headers },\n        });\n        if (cloned.query) {\n            cloned.query = cloneQuery(cloned.query);\n        }\n        return cloned;\n    }\n    static isInstance(request) {\n        if (!request) {\n            return false;\n        }\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        return HttpRequest.clone(this);\n    }\n}\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","export class HttpResponse {\n    constructor(options) {\n        this.statusCode = options.statusCode;\n        this.reason = options.reason;\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}\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n    return (next) => async (args) => {\n        const { request } = args;\n        if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n            if (options.requestHandler?.constructor?.name !== \"FetchHttpHandler\") {\n                request.headers = {\n                    ...request.headers,\n                    Expect: \"100-continue\",\n                };\n            }\n        }\n        return next({\n            ...args,\n            request,\n        });\n    };\n}\nexport const addExpectContinueMiddlewareOptions = {\n    step: \"build\",\n    tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n    name: \"addExpectContinueMiddleware\",\n    override: true,\n};\nexport const getAddExpectContinuePlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n    },\n});\n","export const RequestChecksumCalculation = {\n    WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n    WHEN_REQUIRED: \"WHEN_REQUIRED\",\n};\nexport const DEFAULT_REQUEST_CHECKSUM_CALCULATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nexport const ResponseChecksumValidation = {\n    WHEN_SUPPORTED: \"WHEN_SUPPORTED\",\n    WHEN_REQUIRED: \"WHEN_REQUIRED\",\n};\nexport const DEFAULT_RESPONSE_CHECKSUM_VALIDATION = RequestChecksumCalculation.WHEN_SUPPORTED;\nexport var ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n    ChecksumAlgorithm[\"MD5\"] = \"MD5\";\n    ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n    ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n    ChecksumAlgorithm[\"CRC64NVME\"] = \"CRC64NVME\";\n    ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n    ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm || (ChecksumAlgorithm = {}));\nexport var ChecksumLocation;\n(function (ChecksumLocation) {\n    ChecksumLocation[\"HEADER\"] = \"header\";\n    ChecksumLocation[\"TRAILER\"] = \"trailer\";\n})(ChecksumLocation || (ChecksumLocation = {}));\nexport const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;\n","export var SelectorType;\n(function (SelectorType) {\n    SelectorType[\"ENV\"] = \"env\";\n    SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\nexport const stringUnionSelector = (obj, key, union, type) => {\n    if (!(key in obj))\n        return undefined;\n    const value = obj[key].toUpperCase();\n    if (!Object.values(union).includes(value)) {\n        throw new TypeError(`Cannot load ${type} '${key}'. Expected one of ${Object.values(union)}, got '${obj[key]}'.`);\n    }\n    return value;\n};\n","export function setCredentialFeature(credentials, feature, value) {\n    if (!credentials.$source) {\n        credentials.$source = {};\n    }\n    credentials.$source[feature] = value;\n    return credentials;\n}\n","export function setFeature(context, feature, value) {\n    if (!context.__aws_sdk_context) {\n        context.__aws_sdk_context = {\n            features: {},\n        };\n    }\n    else if (!context.__aws_sdk_context.features) {\n        context.__aws_sdk_context.features = {};\n    }\n    context.__aws_sdk_context.features[feature] = value;\n}\n","import { HttpResponse } from \"@smithy/protocol-http\";\nexport const getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n","export const getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport const isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport const getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n    const clockTimeInMs = Date.parse(clockTime);\n    if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n        return clockTimeInMs - Date.now();\n    }\n    return currentSystemClockOffset;\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getDateHeader, getSkewCorrectedDate, getUpdatedSystemClockOffset } from \"../utils\";\nconst throwSigningPropertyError = (name, property) => {\n    if (!property) {\n        throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n    }\n    return property;\n};\nexport const validateSigningProperties = async (signingProperties) => {\n    const context = throwSigningPropertyError(\"context\", signingProperties.context);\n    const config = throwSigningPropertyError(\"config\", signingProperties.config);\n    const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n    const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n    const signer = await signerFunction(authScheme);\n    const signingRegion = signingProperties?.signingRegion;\n    const signingRegionSet = signingProperties?.signingRegionSet;\n    const signingName = signingProperties?.signingName;\n    return {\n        config,\n        signer,\n        signingRegion,\n        signingRegionSet,\n        signingName,\n    };\n};\nexport class AwsSdkSigV4Signer {\n    async sign(httpRequest, identity, signingProperties) {\n        if (!HttpRequest.isInstance(httpRequest)) {\n            throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n        }\n        const validatedProps = await validateSigningProperties(signingProperties);\n        const { config, signer } = validatedProps;\n        let { signingRegion, signingName } = validatedProps;\n        const handlerExecutionContext = signingProperties.context;\n        if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n            const [first, second] = handlerExecutionContext.authSchemes;\n            if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n                signingRegion = second?.signingRegion ?? signingRegion;\n                signingName = second?.signingName ?? signingName;\n            }\n        }\n        const signedRequest = await signer.sign(httpRequest, {\n            signingDate: getSkewCorrectedDate(config.systemClockOffset),\n            signingRegion: signingRegion,\n            signingService: signingName,\n        });\n        return signedRequest;\n    }\n    errorHandler(signingProperties) {\n        return (error) => {\n            const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n            if (serverTime) {\n                const config = throwSigningPropertyError(\"config\", signingProperties.config);\n                const initialSystemClockOffset = config.systemClockOffset;\n                config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n                const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset;\n                if (clockSkewCorrected && error.$metadata) {\n                    error.$metadata.clockSkewCorrected = true;\n                }\n            }\n            throw error;\n        };\n    }\n    successHandler(httpResponse, signingProperties) {\n        const dateHeader = getDateHeader(httpResponse);\n        if (dateHeader) {\n            const config = throwSigningPropertyError(\"config\", signingProperties.config);\n            config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n        }\n    }\n}\nexport const AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getSkewCorrectedDate } from \"../utils\";\nimport { AwsSdkSigV4Signer, validateSigningProperties } from \"./AwsSdkSigV4Signer\";\nexport class AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {\n    async sign(httpRequest, identity, signingProperties) {\n        if (!HttpRequest.isInstance(httpRequest)) {\n            throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n        }\n        const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);\n        const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();\n        const multiRegionOverride = (configResolvedSigningRegionSet ??\n            signingRegionSet ?? [signingRegion]).join(\",\");\n        const signedRequest = await signer.sign(httpRequest, {\n            signingDate: getSkewCorrectedDate(config.systemClockOffset),\n            signingRegion: multiRegionOverride,\n            signingService: signingName,\n        });\n        return signedRequest;\n    }\n}\n","import { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport const getSmithyContext = (context) => context[SMITHY_CONTEXT_KEY] || (context[SMITHY_CONTEXT_KEY] = {});\n","export const normalizeProvider = (input) => {\n    if (typeof input === \"function\")\n        return input;\n    const promisified = Promise.resolve(input);\n    return () => promisified;\n};\n","import { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n    const map = new Map();\n    for (const scheme of httpAuthSchemes) {\n        map.set(scheme.schemeId, scheme);\n    }\n    return map;\n}\nexport const httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => {\n    const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input));\n    const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n    const smithyContext = getSmithyContext(context);\n    const failureReasons = [];\n    for (const option of options) {\n        const scheme = authSchemes.get(option.schemeId);\n        if (!scheme) {\n            failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` was not enabled for this service.`);\n            continue;\n        }\n        const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config));\n        if (!identityProvider) {\n            failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` did not have an IdentityProvider configured.`);\n            continue;\n        }\n        const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {};\n        option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties);\n        option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties);\n        smithyContext.selectedHttpAuthScheme = {\n            httpAuthOption: option,\n            identity: await identityProvider(option.identityProperties),\n            signer: scheme.signer,\n        };\n        break;\n    }\n    if (!smithyContext.selectedHttpAuthScheme) {\n        throw new Error(failureReasons.join(\"\\n\"));\n    }\n    return next(args);\n};\n","import { httpAuthSchemeMiddleware } from \"./httpAuthSchemeMiddleware\";\nexport const httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n    step: \"serialize\",\n    tags: [\"HTTP_AUTH_SCHEME\"],\n    name: \"httpAuthSchemeMiddleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: \"endpointV2Middleware\",\n};\nexport const getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n            httpAuthSchemeParametersProvider,\n            identityProviderConfigProvider,\n        }), httpAuthSchemeEndpointRuleSetMiddlewareOptions);\n    },\n});\n","export const deserializerMiddleware = (options, deserializer) => (next) => 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        if (!(\"$metadata\" in error)) {\n            const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n            error.message += \"\\n  \" + hint;\n            if (typeof error.$responseBodyText !== \"undefined\") {\n                if (error.$response) {\n                    error.$response.body = error.$responseBodyText;\n                }\n            }\n        }\n        throw error;\n    }\n};\n","export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n    const endpoint = context.endpointV2?.url && options.urlParser\n        ? async () => options.urlParser(context.endpointV2.url)\n        : options.endpoint;\n    if (!endpoint) {\n        throw new Error(\"No valid endpoint provider available.\");\n    }\n    const request = await serializer(args.input, { ...options, endpoint });\n    return next({\n        ...args,\n        request,\n    });\n};\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n    name: \"deserializerMiddleware\",\n    step: \"deserialize\",\n    tags: [\"DESERIALIZER\"],\n    override: true,\n};\nexport const serializerMiddlewareOption = {\n    name: \"serializerMiddleware\",\n    step: \"serialize\",\n    tags: [\"SERIALIZER\"],\n    override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n    return {\n        applyToStack: (commandStack) => {\n            commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n            commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n        },\n    };\n}\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { httpAuthSchemeMiddleware } from \"./httpAuthSchemeMiddleware\";\nexport const httpAuthSchemeMiddlewareOptions = {\n    step: \"serialize\",\n    tags: [\"HTTP_AUTH_SCHEME\"],\n    name: \"httpAuthSchemeMiddleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getHttpAuthSchemePlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n            httpAuthSchemeParametersProvider,\n            identityProviderConfigProvider,\n        }), httpAuthSchemeMiddlewareOptions);\n    },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nconst defaultErrorHandler = (signingProperties) => (error) => {\n    throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nexport const httpSigningMiddleware = (config) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    const smithyContext = getSmithyContext(context);\n    const scheme = smithyContext.selectedHttpAuthScheme;\n    if (!scheme) {\n        throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n    }\n    const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n    const output = await next({\n        ...args,\n        request: await signer.sign(args.request, identity, signingProperties),\n    }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n    (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n    return output;\n};\n","import { httpSigningMiddleware } from \"./httpSigningMiddleware\";\nexport const httpSigningMiddlewareOptions = {\n    step: \"finalizeRequest\",\n    tags: [\"HTTP_SIGNING\"],\n    name: \"httpSigningMiddleware\",\n    aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n    override: true,\n    relation: \"after\",\n    toMiddleware: \"retryMiddleware\",\n};\nexport const getHttpSigningPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions);\n    },\n});\n","export const normalizeProvider = (input) => {\n    if (typeof input === \"function\")\n        return input;\n    const promisified = Promise.resolve(input);\n    return () => promisified;\n};\n","const alphabetByEncoding = {};\nconst alphabetByValue = new Array(64);\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n    const char = String.fromCharCode(i + start);\n    alphabetByEncoding[char] = i;\n    alphabetByValue[i] = char;\n}\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n    const char = String.fromCharCode(i + start);\n    const index = i + 26;\n    alphabetByEncoding[char] = index;\n    alphabetByValue[index] = char;\n}\nfor (let i = 0; i < 10; i++) {\n    alphabetByEncoding[i.toString(10)] = i + 52;\n    const char = i.toString(10);\n    const index = i + 52;\n    alphabetByEncoding[char] = index;\n    alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\nexport { alphabetByEncoding, alphabetByValue, bitsPerLetter, bitsPerByte, maxLetterValue };\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants.browser\";\nexport const fromBase64 = (input) => {\n    let totalByteLength = (input.length / 4) * 3;\n    if (input.slice(-2) === \"==\") {\n        totalByteLength -= 2;\n    }\n    else if (input.slice(-1) === \"=\") {\n        totalByteLength--;\n    }\n    const out = new ArrayBuffer(totalByteLength);\n    const dataView = new DataView(out);\n    for (let i = 0; i < input.length; i += 4) {\n        let bits = 0;\n        let bitLength = 0;\n        for (let j = i, limit = i + 3; j <= limit; j++) {\n            if (input[j] !== \"=\") {\n                if (!(input[j] in alphabetByEncoding)) {\n                    throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n                }\n                bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n                bitLength += bitsPerLetter;\n            }\n            else {\n                bits >>= bitsPerLetter;\n            }\n        }\n        const chunkOffset = (i / 4) * 3;\n        bits >>= bitLength % bitsPerByte;\n        const byteLength = Math.floor(bitLength / bitsPerByte);\n        for (let k = 0; k < byteLength; k++) {\n            const offset = (byteLength - k - 1) * bitsPerByte;\n            dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n        }\n    }\n    return new Uint8Array(out);\n};\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","import { fromUtf8 } from \"./fromUtf8\";\nexport const toUint8Array = (data) => {\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n};\n","export const toUtf8 = (input) => {\n    if (typeof input === \"string\") {\n        return input;\n    }\n    if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n        throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n    }\n    return new TextDecoder(\"utf-8\").decode(input);\n};\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants.browser\";\nexport function toBase64(_input) {\n    let input;\n    if (typeof _input === \"string\") {\n        input = fromUtf8(_input);\n    }\n    else {\n        input = _input;\n    }\n    const isArrayLike = typeof input === \"object\" && typeof input.length === \"number\";\n    const isUint8Array = typeof input === \"object\" &&\n        typeof input.byteOffset === \"number\" &&\n        typeof input.byteLength === \"number\";\n    if (!isArrayLike && !isUint8Array) {\n        throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n    }\n    let str = \"\";\n    for (let i = 0; i < input.length; i += 3) {\n        let bits = 0;\n        let bitLength = 0;\n        for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n            bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n            bitLength += bitsPerByte;\n        }\n        const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n        bits <<= bitClusterCount * bitsPerLetter - bitLength;\n        for (let k = 1; k <= bitClusterCount; k++) {\n            const offset = (bitClusterCount - k) * bitsPerLetter;\n            str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n        }\n        str += \"==\".slice(0, 4 - bitClusterCount);\n    }\n    return str;\n}\n","import { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { Uint8ArrayBlobAdapter } from \"./Uint8ArrayBlobAdapter\";\nexport function transformToString(payload, encoding = \"utf-8\") {\n    if (encoding === \"base64\") {\n        return toBase64(payload);\n    }\n    return toUtf8(payload);\n}\nexport function transformFromString(str, encoding) {\n    if (encoding === \"base64\") {\n        return Uint8ArrayBlobAdapter.mutate(fromBase64(str));\n    }\n    return Uint8ArrayBlobAdapter.mutate(fromUtf8(str));\n}\n","import { transformFromString, transformToString } from \"./transforms\";\nexport class Uint8ArrayBlobAdapter extends Uint8Array {\n    static fromString(source, encoding = \"utf-8\") {\n        switch (typeof source) {\n            case \"string\":\n                return transformFromString(source, encoding);\n            default:\n                throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n        }\n    }\n    static mutate(source) {\n        Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n        return source;\n    }\n    transformToString(encoding = \"utf-8\") {\n        return transformToString(this, encoding);\n    }\n}\n","export const getAwsChunkedEncodingStream = (readableStream, options) => {\n    const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n    const checksumRequired = base64Encoder !== undefined &&\n        bodyLengthChecker !== undefined &&\n        checksumAlgorithmFn !== undefined &&\n        checksumLocationName !== undefined &&\n        streamHasher !== undefined;\n    const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n    const reader = readableStream.getReader();\n    return new ReadableStream({\n        async pull(controller) {\n            const { value, done } = await reader.read();\n            if (done) {\n                controller.enqueue(`0\\r\\n`);\n                if (checksumRequired) {\n                    const checksum = base64Encoder(await digest);\n                    controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n                    controller.enqueue(`\\r\\n`);\n                }\n                controller.close();\n            }\n            else {\n                controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n            }\n        },\n    });\n};\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nexport function buildQueryString(query) {\n    const parts = [];\n    for (let key of Object.keys(query).sort()) {\n        const value = query[key];\n        key = escapeUri(key);\n        if (Array.isArray(value)) {\n            for (let i = 0, iLen = value.length; i < iLen; i++) {\n                parts.push(`${key}=${escapeUri(value[i])}`);\n            }\n        }\n        else {\n            let qsEntry = key;\n            if (value || typeof value === \"string\") {\n                qsEntry += `=${escapeUri(value)}`;\n            }\n            parts.push(qsEntry);\n        }\n    }\n    return parts.join(\"&\");\n}\n","export function createRequest(url, requestOptions) {\n    return new Request(url, requestOptions);\n}\n","export function requestTimeout(timeoutInMs = 0) {\n    return new Promise((resolve, reject) => {\n        if (timeoutInMs) {\n            setTimeout(() => {\n                const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n                timeoutError.name = \"TimeoutError\";\n                reject(timeoutError);\n            }, timeoutInMs);\n        }\n    });\n}\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { buildQueryString } from \"@smithy/querystring-builder\";\nimport { createRequest } from \"./create-request\";\nimport { requestTimeout } from \"./request-timeout\";\nexport const keepAliveSupport = {\n    supported: undefined,\n};\nexport class FetchHttpHandler {\n    static create(instanceOrOptions) {\n        if (typeof instanceOrOptions?.handle === \"function\") {\n            return instanceOrOptions;\n        }\n        return new FetchHttpHandler(instanceOrOptions);\n    }\n    constructor(options) {\n        if (typeof options === \"function\") {\n            this.configProvider = options().then((opts) => opts || {});\n        }\n        else {\n            this.config = options ?? {};\n            this.configProvider = Promise.resolve(this.config);\n        }\n        if (keepAliveSupport.supported === undefined) {\n            keepAliveSupport.supported = Boolean(typeof Request !== \"undefined\" && \"keepalive\" in createRequest(\"https://[::1]\"));\n        }\n    }\n    destroy() {\n    }\n    async handle(request, { abortSignal } = {}) {\n        if (!this.config) {\n            this.config = await this.configProvider;\n        }\n        const requestTimeoutInMs = this.config.requestTimeout;\n        const keepAlive = this.config.keepAlive === true;\n        const credentials = this.config.credentials;\n        if (abortSignal?.aborted) {\n            const abortError = new Error(\"Request aborted\");\n            abortError.name = \"AbortError\";\n            return Promise.reject(abortError);\n        }\n        let path = request.path;\n        const queryString = buildQueryString(request.query || {});\n        if (queryString) {\n            path += `?${queryString}`;\n        }\n        if (request.fragment) {\n            path += `#${request.fragment}`;\n        }\n        let auth = \"\";\n        if (request.username != null || request.password != null) {\n            const username = request.username ?? \"\";\n            const password = request.password ?? \"\";\n            auth = `${username}:${password}@`;\n        }\n        const { port, method } = request;\n        const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n        const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n        const requestOptions = {\n            body,\n            headers: new Headers(request.headers),\n            method: method,\n            credentials,\n        };\n        if (this.config?.cache) {\n            requestOptions.cache = this.config.cache;\n        }\n        if (body) {\n            requestOptions.duplex = \"half\";\n        }\n        if (typeof AbortController !== \"undefined\") {\n            requestOptions.signal = abortSignal;\n        }\n        if (keepAliveSupport.supported) {\n            requestOptions.keepalive = keepAlive;\n        }\n        if (typeof this.config.requestInit === \"function\") {\n            Object.assign(requestOptions, this.config.requestInit(request));\n        }\n        let removeSignalEventListener = () => { };\n        const fetchRequest = createRequest(url, requestOptions);\n        const raceOfPromises = [\n            fetch(fetchRequest).then((response) => {\n                const fetchHeaders = response.headers;\n                const transformedHeaders = {};\n                for (const pair of fetchHeaders.entries()) {\n                    transformedHeaders[pair[0]] = pair[1];\n                }\n                const hasReadableStream = response.body != undefined;\n                if (!hasReadableStream) {\n                    return response.blob().then((body) => ({\n                        response: new HttpResponse({\n                            headers: transformedHeaders,\n                            reason: response.statusText,\n                            statusCode: response.status,\n                            body,\n                        }),\n                    }));\n                }\n                return {\n                    response: new HttpResponse({\n                        headers: transformedHeaders,\n                        reason: response.statusText,\n                        statusCode: response.status,\n                        body: response.body,\n                    }),\n                };\n            }),\n            requestTimeout(requestTimeoutInMs),\n        ];\n        if (abortSignal) {\n            raceOfPromises.push(new Promise((resolve, reject) => {\n                const onAbort = () => {\n                    const abortError = new Error(\"Request aborted\");\n                    abortError.name = \"AbortError\";\n                    reject(abortError);\n                };\n                if (typeof abortSignal.addEventListener === \"function\") {\n                    const signal = abortSignal;\n                    signal.addEventListener(\"abort\", onAbort, { once: true });\n                    removeSignalEventListener = () => signal.removeEventListener(\"abort\", onAbort);\n                }\n                else {\n                    abortSignal.onabort = onAbort;\n                }\n            }));\n        }\n        return Promise.race(raceOfPromises).finally(removeSignalEventListener);\n    }\n    updateHttpClientConfig(key, value) {\n        this.config = undefined;\n        this.configProvider = this.configProvider.then((config) => {\n            config[key] = value;\n            return config;\n        });\n    }\n    httpHandlerConfigs() {\n        return this.config ?? {};\n    }\n}\n","import { fromBase64 } from \"@smithy/util-base64\";\nexport const streamCollector = async (stream) => {\n    if ((typeof Blob === \"function\" && stream instanceof Blob) || stream.constructor?.name === \"Blob\") {\n        if (Blob.prototype.arrayBuffer !== undefined) {\n            return new Uint8Array(await stream.arrayBuffer());\n        }\n        return collectBlob(stream);\n    }\n    return collectStream(stream);\n};\nasync function collectBlob(blob) {\n    const base64 = await readToBase64(blob);\n    const arrayBuffer = fromBase64(base64);\n    return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n    const chunks = [];\n    const reader = stream.getReader();\n    let isDone = false;\n    let length = 0;\n    while (!isDone) {\n        const { done, value } = await reader.read();\n        if (value) {\n            chunks.push(value);\n            length += value.length;\n        }\n        isDone = done;\n    }\n    const collected = new Uint8Array(length);\n    let offset = 0;\n    for (const chunk of chunks) {\n        collected.set(chunk, offset);\n        offset += chunk.length;\n    }\n    return collected;\n}\nfunction readToBase64(blob) {\n    return new Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.onloadend = () => {\n            if (reader.readyState !== 2) {\n                return reject(new Error(\"Reader aborted too early\"));\n            }\n            const result = (reader.result ?? \"\");\n            const commaIndex = result.indexOf(\",\");\n            const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n            resolve(result.substring(dataOffset));\n        };\n        reader.onabort = () => reject(new Error(\"Read aborted\"));\n        reader.onerror = () => reject(reader.error);\n        reader.readAsDataURL(blob);\n    });\n}\n","const 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}\nexport function 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}\nexport function 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}\n","export const isReadableStream = (stream) => typeof ReadableStream === \"function\" &&\n    (stream?.constructor?.name === ReadableStream.name || stream instanceof ReadableStream);\nexport const isBlob = (blob) => {\n    return typeof Blob === \"function\" && (blob?.constructor?.name === Blob.name || blob instanceof Blob);\n};\n","import { streamCollector } from \"@smithy/fetch-http-handler\";\nimport { toBase64 } from \"@smithy/util-base64\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nimport { isReadableStream } from \"./stream-type-check\";\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nexport const sdkStreamMixin = (stream) => {\n    if (!isBlobInstance(stream) && !isReadableStream(stream)) {\n        const name = stream?.__proto__?.constructor?.name || stream;\n        throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n    }\n    let transformed = false;\n    const transformToByteArray = async () => {\n        if (transformed) {\n            throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n        }\n        transformed = true;\n        return await streamCollector(stream);\n    };\n    const blobToWebStream = (blob) => {\n        if (typeof blob.stream !== \"function\") {\n            throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n                \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n        }\n        return blob.stream();\n    };\n    return Object.assign(stream, {\n        transformToByteArray: transformToByteArray,\n        transformToString: async (encoding) => {\n            const buf = await transformToByteArray();\n            if (encoding === \"base64\") {\n                return toBase64(buf);\n            }\n            else if (encoding === \"hex\") {\n                return toHex(buf);\n            }\n            else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n                return toUtf8(buf);\n            }\n            else if (typeof TextDecoder === \"function\") {\n                return new TextDecoder(encoding).decode(buf);\n            }\n            else {\n                throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n            }\n        },\n        transformToWebStream: () => {\n            if (transformed) {\n                throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n            }\n            transformed = true;\n            if (isBlobInstance(stream)) {\n                return blobToWebStream(stream);\n            }\n            else if (isReadableStream(stream)) {\n                return stream;\n            }\n            else {\n                throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n            }\n        },\n    });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\n","export async function splitStream(stream) {\n    if (typeof stream.stream === \"function\") {\n        stream = stream.stream();\n    }\n    const readableStream = stream;\n    return readableStream.tee();\n}\n","export async function headStream(stream, bytes) {\n    let byteLengthCounter = 0;\n    const chunks = [];\n    const reader = stream.getReader();\n    let isDone = false;\n    while (!isDone) {\n        const { done, value } = await reader.read();\n        if (value) {\n            chunks.push(value);\n            byteLengthCounter += value?.byteLength ?? 0;\n        }\n        if (byteLengthCounter >= bytes) {\n            break;\n        }\n        isDone = done;\n    }\n    reader.releaseLock();\n    const collected = new Uint8Array(Math.min(bytes, byteLengthCounter));\n    let offset = 0;\n    for (const chunk of chunks) {\n        if (chunk.byteLength > collected.byteLength - offset) {\n            collected.set(chunk.subarray(0, collected.byteLength - offset), offset);\n            break;\n        }\n        else {\n            collected.set(chunk, offset);\n        }\n        offset += chunk.length;\n    }\n    return collected;\n}\n","const ReadableStreamRef = typeof ReadableStream === \"function\" ? ReadableStream : function () { };\nexport class ChecksumStream extends ReadableStreamRef {\n}\n","import { toBase64 } from \"@smithy/util-base64\";\nimport { isReadableStream } from \"../stream-type-check\";\nimport { ChecksumStream } from \"./ChecksumStream.browser\";\nexport const createChecksumStream = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder, }) => {\n    if (!isReadableStream(source)) {\n        throw new Error(`@smithy/util-stream: unsupported source type ${source?.constructor?.name ?? source} in ChecksumStream.`);\n    }\n    const encoder = base64Encoder ?? toBase64;\n    if (typeof TransformStream !== \"function\") {\n        throw new Error(\"@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.\");\n    }\n    const transform = new TransformStream({\n        start() { },\n        async transform(chunk, controller) {\n            checksum.update(chunk);\n            controller.enqueue(chunk);\n        },\n        async flush(controller) {\n            const digest = await checksum.digest();\n            const received = encoder(digest);\n            if (expectedChecksum !== received) {\n                const error = new Error(`Checksum mismatch: expected \"${expectedChecksum}\" but received \"${received}\"` +\n                    ` in response header \"${checksumSourceLocation}\".`);\n                controller.error(error);\n            }\n            else {\n                controller.terminate();\n            }\n        },\n    });\n    source.pipeThrough(transform);\n    const readable = transform.readable;\n    Object.setPrototypeOf(readable, ChecksumStream.prototype);\n    return readable;\n};\n","import { Uint8ArrayBlobAdapter } from \"@smithy/util-stream\";\nexport const collectBody = async (streamBody = new Uint8Array(), context) => {\n    if (streamBody instanceof Uint8Array) {\n        return Uint8ArrayBlobAdapter.mutate(streamBody);\n    }\n    if (!streamBody) {\n        return Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n    }\n    const fromContext = context.streamCollector(streamBody);\n    return Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n","export function extendedEncodeURIComponent(str) {\n    return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n        return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n    });\n}\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport const resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n    if (input != null && input[memberName] !== undefined) {\n        const labelValue = labelValueProvider();\n        if (labelValue.length <= 0) {\n            throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n        }\n        resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n            ? labelValue\n                .split(\"/\")\n                .map((segment) => extendedEncodeURIComponent(segment))\n                .join(\"/\")\n            : extendedEncodeURIComponent(labelValue));\n    }\n    else {\n        throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n    }\n    return resolvedPath;\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { resolvedPath } from \"./resolve-path\";\nexport function requestBuilder(input, context) {\n    return new RequestBuilder(input, context);\n}\nexport class RequestBuilder {\n    constructor(input, context) {\n        this.input = input;\n        this.context = context;\n        this.query = {};\n        this.method = \"\";\n        this.headers = {};\n        this.path = \"\";\n        this.body = null;\n        this.hostname = \"\";\n        this.resolvePathStack = [];\n    }\n    async build() {\n        const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n        this.path = basePath;\n        for (const resolvePath of this.resolvePathStack) {\n            resolvePath(this.path);\n        }\n        return new HttpRequest({\n            protocol,\n            hostname: this.hostname || hostname,\n            port,\n            method: this.method,\n            path: this.path,\n            query: this.query,\n            body: this.body,\n            headers: this.headers,\n        });\n    }\n    hn(hostname) {\n        this.hostname = hostname;\n        return this;\n    }\n    bp(uriLabel) {\n        this.resolvePathStack.push((basePath) => {\n            this.path = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n        });\n        return this;\n    }\n    p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n        this.resolvePathStack.push((path) => {\n            this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n        });\n        return this;\n    }\n    h(headers) {\n        this.headers = headers;\n        return this;\n    }\n    q(query) {\n        this.query = query;\n        return this;\n    }\n    b(body) {\n        this.body = body;\n        return this;\n    }\n    m(method) {\n        this.method = method;\n        return this;\n    }\n}\n","export function setFeature(context, feature, value) {\n    if (!context.__smithy_context) {\n        context.__smithy_context = {\n            features: {},\n        };\n    }\n    else if (!context.__smithy_context.features) {\n        context.__smithy_context.features = {};\n    }\n    context.__smithy_context.features[feature] = value;\n}\n","export class DefaultIdentityProviderConfig {\n    constructor(config) {\n        this.authSchemes = new Map();\n        for (const [key, value] of Object.entries(config)) {\n            if (value !== undefined) {\n                this.authSchemes.set(key, value);\n            }\n        }\n    }\n    getIdentityProvider(schemeId) {\n        return this.authSchemes.get(schemeId);\n    }\n}\n","export const createIsIdentityExpiredFunction = (expirationMs) => (identity) => doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs;\nexport const EXPIRATION_MS = 300000;\nexport const isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nexport const doesIdentityRequireRefresh = (identity) => identity.expiration !== undefined;\nexport const memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => {\n    if (provider === undefined) {\n        return undefined;\n    }\n    const normalizedProvider = typeof provider !== \"function\" ? async () => Promise.resolve(provider) : provider;\n    let resolved;\n    let pending;\n    let hasResult;\n    let isConstant = false;\n    const coalesceProvider = async (options) => {\n        if (!pending) {\n            pending = normalizedProvider(options);\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?.forceRefresh) {\n                resolved = await coalesceProvider(options);\n            }\n            return resolved;\n        };\n    }\n    return async (options) => {\n        if (!hasResult || options?.forceRefresh) {\n            resolved = await coalesceProvider(options);\n        }\n        if (isConstant) {\n            return resolved;\n        }\n        if (!requiresRefresh(resolved)) {\n            isConstant = true;\n            return resolved;\n        }\n        if (isExpired(resolved)) {\n            await coalesceProvider(options);\n            return resolved;\n        }\n        return resolved;\n    };\n};\n","export const 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?.forceRefresh) {\n                resolved = await coalesceProvider();\n            }\n            return resolved;\n        };\n    }\n    return async (options) => {\n        if (!hasResult || 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};\n","import { normalizeProvider } from \"@smithy/core\";\nimport { ProviderError } from \"@smithy/property-provider\";\nexport const resolveAwsSdkSigV4AConfig = (config) => {\n    config.sigv4aSigningRegionSet = normalizeProvider(config.sigv4aSigningRegionSet);\n    return config;\n};\nexport const NODE_SIGV4A_CONFIG_OPTIONS = {\n    environmentVariableSelector(env) {\n        if (env.AWS_SIGV4A_SIGNING_REGION_SET) {\n            return env.AWS_SIGV4A_SIGNING_REGION_SET.split(\",\").map((_) => _.trim());\n        }\n        throw new ProviderError(\"AWS_SIGV4A_SIGNING_REGION_SET not set in env.\", {\n            tryNextLink: true,\n        });\n    },\n    configFileSelector(profile) {\n        if (profile.sigv4a_signing_region_set) {\n            return (profile.sigv4a_signing_region_set ?? \"\").split(\",\").map((_) => _.trim());\n        }\n        throw new ProviderError(\"sigv4a_signing_region_set not set in profile.\", {\n            tryNextLink: true,\n        });\n    },\n    default: undefined,\n};\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const 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};\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nconst signingKeyCache = {};\nconst cacheQueue = [];\nexport const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nexport const getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n    const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n    const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n    if (cacheKey in signingKeyCache) {\n        return signingKeyCache[cacheKey];\n    }\n    cacheQueue.push(cacheKey);\n    while (cacheQueue.length > MAX_CACHE_SIZE) {\n        delete signingKeyCache[cacheQueue.shift()];\n    }\n    let key = `AWS4${credentials.secretAccessKey}`;\n    for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n        key = await hmac(sha256Constructor, key, signable);\n    }\n    return (signingKeyCache[cacheKey] = key);\n};\nexport const clearCredentialCache = () => {\n    cacheQueue.length = 0;\n    Object.keys(signingKeyCache).forEach((cacheKey) => {\n        delete signingKeyCache[cacheKey];\n    });\n};\nconst hmac = (ctor, secret, data) => {\n    const hash = new ctor(secret);\n    hash.update(toUint8Array(data));\n    return hash.digest();\n};\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n    const canonical = {};\n    for (const headerName of Object.keys(headers).sort()) {\n        if (headers[headerName] == undefined) {\n            continue;\n        }\n        const canonicalHeaderName = headerName.toLowerCase();\n        if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n            unsignableHeaders?.has(canonicalHeaderName) ||\n            PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n            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};\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n    const keys = [];\n    const serialized = {};\n    for (const key of Object.keys(query)) {\n        if (key.toLowerCase() === SIGNATURE_HEADER) {\n            continue;\n        }\n        const encodedKey = escapeUri(key);\n        keys.push(encodedKey);\n        const value = query[key];\n        if (typeof value === \"string\") {\n            serialized[encodedKey] = `${encodedKey}=${escapeUri(value)}`;\n        }\n        else if (Array.isArray(value)) {\n            serialized[encodedKey] = value\n                .slice(0)\n                .reduce((encoded, value) => encoded.concat([`${encodedKey}=${escapeUri(value)}`]), [])\n                .sort()\n                .join(\"&\");\n        }\n    }\n    return keys\n        .sort()\n        .map((key) => serialized[key])\n        .filter((serialized) => serialized)\n        .join(\"&\");\n};\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n    Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport const getPayloadHash = async ({ headers, body }, hashConstructor) => {\n    for (const headerName of Object.keys(headers)) {\n        if (headerName.toLowerCase() === 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) || isArrayBuffer(body)) {\n        const hashCtor = new hashConstructor();\n        hashCtor.update(toUint8Array(body));\n        return toHex(await hashCtor.digest());\n    }\n    return UNSIGNED_PAYLOAD;\n};\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { fromUtf8 } from \"@smithy/util-utf8\";\nexport class HeaderFormatter {\n    format(headers) {\n        const chunks = [];\n        for (const headerName of Object.keys(headers)) {\n            const bytes = fromUtf8(headerName);\n            chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n        }\n        const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n        let position = 0;\n        for (const chunk of chunks) {\n            out.set(chunk, position);\n            position += chunk.byteLength;\n        }\n        return out;\n    }\n    formatHeaderValue(header) {\n        switch (header.type) {\n            case \"boolean\":\n                return Uint8Array.from([header.value ? 0 : 1]);\n            case \"byte\":\n                return Uint8Array.from([2, header.value]);\n            case \"short\":\n                const shortView = new DataView(new ArrayBuffer(3));\n                shortView.setUint8(0, 3);\n                shortView.setInt16(1, header.value, false);\n                return new Uint8Array(shortView.buffer);\n            case \"integer\":\n                const intView = new DataView(new ArrayBuffer(5));\n                intView.setUint8(0, 4);\n                intView.setInt32(1, header.value, false);\n                return new Uint8Array(intView.buffer);\n            case \"long\":\n                const longBytes = new Uint8Array(9);\n                longBytes[0] = 5;\n                longBytes.set(header.value.bytes, 1);\n                return longBytes;\n            case \"binary\":\n                const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n                binView.setUint8(0, 6);\n                binView.setUint16(1, header.value.byteLength, false);\n                const binBytes = new Uint8Array(binView.buffer);\n                binBytes.set(header.value, 3);\n                return binBytes;\n            case \"string\":\n                const utf8Bytes = fromUtf8(header.value);\n                const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n                strView.setUint8(0, 7);\n                strView.setUint16(1, utf8Bytes.byteLength, false);\n                const strBytes = new Uint8Array(strView.buffer);\n                strBytes.set(utf8Bytes, 3);\n                return strBytes;\n            case \"timestamp\":\n                const tsBytes = new Uint8Array(9);\n                tsBytes[0] = 8;\n                tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n                return tsBytes;\n            case \"uuid\":\n                if (!UUID_PATTERN.test(header.value)) {\n                    throw new Error(`Invalid UUID received: ${header.value}`);\n                }\n                const uuidBytes = new Uint8Array(17);\n                uuidBytes[0] = 9;\n                uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n                return uuidBytes;\n        }\n    }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nexport class Int64 {\n    constructor(bytes) {\n        this.bytes = bytes;\n        if (bytes.byteLength !== 8) {\n            throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n        }\n    }\n    static fromNumber(number) {\n        if (number > 9223372036854776000 || number < -9223372036854776000) {\n            throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n        }\n        const bytes = new Uint8Array(8);\n        for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n            bytes[i] = remaining;\n        }\n        if (number < 0) {\n            negate(bytes);\n        }\n        return new Int64(bytes);\n    }\n    valueOf() {\n        const bytes = this.bytes.slice(0);\n        const negative = bytes[0] & 0b10000000;\n        if (negative) {\n            negate(bytes);\n        }\n        return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n    }\n    toString() {\n        return String(this.valueOf());\n    }\n}\nfunction negate(bytes) {\n    for (let i = 0; i < 8; i++) {\n        bytes[i] ^= 0xff;\n    }\n    for (let i = 7; i > -1; i--) {\n        bytes[i]++;\n        if (bytes[i] !== 0)\n            break;\n    }\n}\n","export const 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};\nexport const 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};\nexport const 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};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n    const { headers, query = {} } = HttpRequest.clone(request);\n    for (const name of Object.keys(headers)) {\n        const lname = name.toLowerCase();\n        if ((lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) ||\n            options.hoistableHeaders?.has(lname)) {\n            query[name] = headers[name];\n            delete headers[name];\n        }\n    }\n    return {\n        ...request,\n        headers,\n        query,\n    };\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n    request = HttpRequest.clone(request);\n    for (const headerName of Object.keys(request.headers)) {\n        if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n            delete request.headers[headerName];\n        }\n    }\n    return request;\n};\n","export const iso8601 = (time) => toDate(time)\n    .toISOString()\n    .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const 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};\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nimport { escapeUri } from \"@smithy/util-uri-escape\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { HeaderFormatter } from \"./HeaderFormatter\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4 {\n    constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n        this.headerFormatter = new HeaderFormatter();\n        this.service = service;\n        this.sha256 = sha256;\n        this.uriEscapePath = uriEscapePath;\n        this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n        this.regionProvider = normalizeProvider(region);\n        this.credentialProvider = normalizeProvider(credentials);\n    }\n    async presign(originalRequest, options = {}) {\n        const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService, } = options;\n        const credentials = await this.credentialProvider();\n        this.validateResolvedCredentials(credentials);\n        const region = signingRegion ?? (await this.regionProvider());\n        const { longDate, shortDate } = formatDate(signingDate);\n        if (expiresIn > 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 = createScope(shortDate, region, signingService ?? this.service);\n        const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders });\n        if (credentials.sessionToken) {\n            request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n        }\n        request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n        request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n        request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n        request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n        const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n        request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n        request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await 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 if (toSign.message) {\n            return this.signMessage(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 ?? (await this.regionProvider());\n        const { shortDate, longDate } = formatDate(signingDate);\n        const scope = createScope(shortDate, region, signingService ?? this.service);\n        const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n        const hash = new this.sha256();\n        hash.update(headers);\n        const hashedHeaders = toHex(await hash.digest());\n        const stringToSign = [\n            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 signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n        const promise = this.signEvent({\n            headers: this.headerFormatter.format(signableMessage.message.headers),\n            payload: signableMessage.message.body,\n        }, {\n            signingDate,\n            signingRegion,\n            signingService,\n            priorSignature: signableMessage.priorSignature,\n        });\n        return promise.then((signature) => {\n            return { message: signableMessage.message, signature };\n        });\n    }\n    async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n        const credentials = await this.credentialProvider();\n        this.validateResolvedCredentials(credentials);\n        const region = 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(toUint8Array(stringToSign));\n        return toHex(await hash.digest());\n    }\n    async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n        const credentials = await this.credentialProvider();\n        this.validateResolvedCredentials(credentials);\n        const region = signingRegion ?? (await this.regionProvider());\n        const request = prepareRequest(requestToSign);\n        const { longDate, shortDate } = formatDate(signingDate);\n        const scope = createScope(shortDate, region, signingService ?? this.service);\n        request.headers[AMZ_DATE_HEADER] = longDate;\n        if (credentials.sessionToken) {\n            request.headers[TOKEN_HEADER] = credentials.sessionToken;\n        }\n        const payloadHash = await getPayloadHash(request, this.sha256);\n        if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n            request.headers[SHA256_HEADER] = payloadHash;\n        }\n        const canonicalHeaders = 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[AUTH_HEADER] =\n            `${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${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(toUint8Array(canonicalRequest));\n        const hashedRequest = await hash.digest();\n        return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n    }\n    getCanonicalPath({ path }) {\n        if (this.uriEscapePath) {\n            const normalizedPathSegments = [];\n            for (const pathSegment of path.split(\"/\")) {\n                if (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?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n            const doubleEncoded = escapeUri(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(toUint8Array(stringToSign));\n        return toHex(await hash.digest());\n    }\n    getSigningKey(credentials, region, shortDate, service) {\n        return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n    }\n    validateResolvedCredentials(credentials) {\n        if (typeof credentials !== \"object\" ||\n            typeof credentials.accessKeyId !== \"string\" ||\n            typeof credentials.secretAccessKey !== \"string\") {\n            throw new Error(\"Resolved credential object is not valid\");\n        }\n    }\n}\nconst formatDate = (now) => {\n    const longDate = 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","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { doesIdentityRequireRefresh, isIdentityExpired, memoizeIdentityProvider, normalizeProvider, } from \"@smithy/core\";\nimport { SignatureV4 } from \"@smithy/signature-v4\";\nexport const resolveAwsSdkSigV4Config = (config) => {\n    let isUserSupplied = false;\n    let credentialsProvider;\n    if (config.credentials) {\n        isUserSupplied = true;\n        credentialsProvider = memoizeIdentityProvider(config.credentials, isIdentityExpired, doesIdentityRequireRefresh);\n    }\n    if (!credentialsProvider) {\n        if (config.credentialDefaultProvider) {\n            credentialsProvider = normalizeProvider(config.credentialDefaultProvider(Object.assign({}, config, {\n                parentClientConfig: config,\n            })));\n        }\n        else {\n            credentialsProvider = async () => {\n                throw new Error(\"`credentials` is missing\");\n            };\n        }\n    }\n    const boundCredentialsProvider = async () => credentialsProvider({ callerClientConfig: config });\n    const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n    let signer;\n    if (config.signer) {\n        signer = normalizeProvider(config.signer);\n    }\n    else if (config.regionInfoProvider) {\n        signer = () => normalizeProvider(config.region)()\n            .then(async (region) => [\n            (await config.regionInfoProvider(region, {\n                useFipsEndpoint: await config.useFipsEndpoint(),\n                useDualstackEndpoint: await config.useDualstackEndpoint(),\n            })) || {},\n            region,\n        ])\n            .then(([regionInfo, region]) => {\n            const { signingRegion, signingService } = regionInfo;\n            config.signingRegion = config.signingRegion || signingRegion || region;\n            config.signingName = config.signingName || signingService || config.serviceId;\n            const params = {\n                ...config,\n                credentials: boundCredentialsProvider,\n                region: config.signingRegion,\n                service: config.signingName,\n                sha256,\n                uriEscapePath: signingEscapePath,\n            };\n            const SignerCtor = config.signerConstructor || SignatureV4;\n            return new SignerCtor(params);\n        });\n    }\n    else {\n        signer = async (authScheme) => {\n            authScheme = Object.assign({}, {\n                name: \"sigv4\",\n                signingName: config.signingName || config.defaultSigningName,\n                signingRegion: await normalizeProvider(config.region)(),\n                properties: {},\n            }, authScheme);\n            const signingRegion = authScheme.signingRegion;\n            const signingService = authScheme.signingName;\n            config.signingRegion = config.signingRegion || signingRegion;\n            config.signingName = config.signingName || signingService || config.serviceId;\n            const params = {\n                ...config,\n                credentials: boundCredentialsProvider,\n                region: config.signingRegion,\n                service: config.signingName,\n                sha256,\n                uriEscapePath: signingEscapePath,\n            };\n            const SignerCtor = config.signerConstructor || SignatureV4;\n            return new SignerCtor(params);\n        };\n    }\n    return {\n        ...config,\n        systemClockOffset,\n        signingEscapePath,\n        credentials: isUserSupplied\n            ? async () => boundCredentialsProvider().then((creds) => setCredentialFeature(creds, \"CREDENTIALS_CODE\", \"e\"))\n            : boundCredentialsProvider,\n        signer,\n    };\n};\nexport const resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\n","const getAllAliases = (name, aliases) => {\n    const _aliases = [];\n    if (name) {\n        _aliases.push(name);\n    }\n    if (aliases) {\n        for (const alias of aliases) {\n            _aliases.push(alias);\n        }\n    }\n    return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n    return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nexport const constructStack = () => {\n    let absoluteEntries = [];\n    let relativeEntries = [];\n    let identifyOnResolve = false;\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            const aliases = getAllAliases(entry.name, entry.aliases);\n            if (aliases.includes(toRemove)) {\n                isRemoved = true;\n                for (const alias of aliases) {\n                    entriesNameSet.delete(alias);\n                }\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                for (const alias of getAllAliases(entry.name, entry.aliases)) {\n                    entriesNameSet.delete(alias);\n                }\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        toStack.identifyOnResolve?.(stack.identifyOnResolve());\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 = (debug = false) => {\n        const normalizedAbsoluteEntries = [];\n        const normalizedRelativeEntries = [];\n        const normalizedEntriesNameMap = {};\n        absoluteEntries.forEach((entry) => {\n            const normalizedEntry = {\n                ...entry,\n                before: [],\n                after: [],\n            };\n            for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n                normalizedEntriesNameMap[alias] = normalizedEntry;\n            }\n            normalizedAbsoluteEntries.push(normalizedEntry);\n        });\n        relativeEntries.forEach((entry) => {\n            const normalizedEntry = {\n                ...entry,\n                before: [],\n                after: [],\n            };\n            for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n                normalizedEntriesNameMap[alias] = normalizedEntry;\n            }\n            normalizedRelativeEntries.push(normalizedEntry);\n        });\n        normalizedRelativeEntries.forEach((entry) => {\n            if (entry.toMiddleware) {\n                const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n                if (toMiddleware === undefined) {\n                    if (debug) {\n                        return;\n                    }\n                    throw new Error(`${entry.toMiddleware} is not found when adding ` +\n                        `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n                        `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, expandedMiddlewareList) => {\n            wholeList.push(...expandedMiddlewareList);\n            return wholeList;\n        }, []);\n        return mainChain;\n    };\n    const stack = {\n        add: (middleware, options = {}) => {\n            const { name, override, aliases: _aliases } = options;\n            const entry = {\n                step: \"initialize\",\n                priority: \"normal\",\n                middleware,\n                ...options,\n            };\n            const aliases = getAllAliases(name, _aliases);\n            if (aliases.length > 0) {\n                if (aliases.some((alias) => entriesNameSet.has(alias))) {\n                    if (!override)\n                        throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n                    for (const alias of aliases) {\n                        const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n                        if (toOverrideIndex === -1) {\n                            continue;\n                        }\n                        const toOverride = absoluteEntries[toOverrideIndex];\n                        if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n                            throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n                                `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n                                `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n                                `${entry.priority} priority in ${entry.step} step.`);\n                        }\n                        absoluteEntries.splice(toOverrideIndex, 1);\n                    }\n                }\n                for (const alias of aliases) {\n                    entriesNameSet.add(alias);\n                }\n            }\n            absoluteEntries.push(entry);\n        },\n        addRelativeTo: (middleware, options) => {\n            const { name, override, aliases: _aliases } = options;\n            const entry = {\n                middleware,\n                ...options,\n            };\n            const aliases = getAllAliases(name, _aliases);\n            if (aliases.length > 0) {\n                if (aliases.some((alias) => entriesNameSet.has(alias))) {\n                    if (!override)\n                        throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n                    for (const alias of aliases) {\n                        const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n                        if (toOverrideIndex === -1) {\n                            continue;\n                        }\n                        const toOverride = relativeEntries[toOverrideIndex];\n                        if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n                            throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n                                `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n                                `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n                                `\"${entry.toMiddleware}\" middleware.`);\n                        }\n                        relativeEntries.splice(toOverrideIndex, 1);\n                    }\n                }\n                for (const alias of aliases) {\n                    entriesNameSet.add(alias);\n                }\n            }\n            relativeEntries.push(entry);\n        },\n        clone: () => cloneTo(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, aliases: _aliases } = entry;\n                if (tags && tags.includes(toRemove)) {\n                    const aliases = getAllAliases(name, _aliases);\n                    for (const alias of aliases) {\n                        entriesNameSet.delete(alias);\n                    }\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(constructStack());\n            cloned.use(from);\n            cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n            return cloned;\n        },\n        applyToStack: cloneTo,\n        identify: () => {\n            return getMiddlewareList(true).map((mw) => {\n                const step = mw.step ??\n                    mw.relation +\n                        \" \" +\n                        mw.toMiddleware;\n                return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n            });\n        },\n        identifyOnResolve(toggle) {\n            if (typeof toggle === \"boolean\")\n                identifyOnResolve = toggle;\n            return identifyOnResolve;\n        },\n        resolve: (handler, context) => {\n            for (const middleware of getMiddlewareList()\n                .map((entry) => entry.middleware)\n                .reverse()) {\n                handler = middleware(handler, context);\n            }\n            if (identifyOnResolve) {\n                console.log(stack.identify());\n            }\n            return handler;\n        },\n    };\n    return stack;\n};\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","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Client {\n    constructor(config) {\n        this.config = config;\n        this.middlewareStack = constructStack();\n    }\n    send(command, optionsOrCb, cb) {\n        const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n        const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n        const useHandlerCache = options === undefined && this.config.cacheMiddleware === true;\n        let handler;\n        if (useHandlerCache) {\n            if (!this.handlers) {\n                this.handlers = new WeakMap();\n            }\n            const handlers = this.handlers;\n            if (handlers.has(command.constructor)) {\n                handler = handlers.get(command.constructor);\n            }\n            else {\n                handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n                handlers.set(command.constructor, handler);\n            }\n        }\n        else {\n            delete this.handlers;\n            handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n        }\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        this.config?.requestHandler?.destroy?.();\n        delete this.handlers;\n    }\n}\n","import { constructStack } from \"@smithy/middleware-stack\";\nimport { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport class Command {\n    constructor() {\n        this.middlewareStack = constructStack();\n    }\n    static classBuilder() {\n        return new ClassBuilder();\n    }\n    resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor, }) {\n        for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n            this.middlewareStack.use(mw);\n        }\n        const stack = clientStack.concat(this.middlewareStack);\n        const { logger } = configuration;\n        const handlerExecutionContext = {\n            logger,\n            clientName,\n            commandName,\n            inputFilterSensitiveLog,\n            outputFilterSensitiveLog,\n            [SMITHY_CONTEXT_KEY]: {\n                commandInstance: this,\n                ...smithyContext,\n            },\n            ...additionalContext,\n        };\n        const { requestHandler } = configuration;\n        return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n    }\n}\nclass ClassBuilder {\n    constructor() {\n        this._init = () => { };\n        this._ep = {};\n        this._middlewareFn = () => [];\n        this._commandName = \"\";\n        this._clientName = \"\";\n        this._additionalContext = {};\n        this._smithyContext = {};\n        this._inputFilterSensitiveLog = (_) => _;\n        this._outputFilterSensitiveLog = (_) => _;\n        this._serializer = null;\n        this._deserializer = null;\n    }\n    init(cb) {\n        this._init = cb;\n    }\n    ep(endpointParameterInstructions) {\n        this._ep = endpointParameterInstructions;\n        return this;\n    }\n    m(middlewareSupplier) {\n        this._middlewareFn = middlewareSupplier;\n        return this;\n    }\n    s(service, operation, smithyContext = {}) {\n        this._smithyContext = {\n            service,\n            operation,\n            ...smithyContext,\n        };\n        return this;\n    }\n    c(additionalContext = {}) {\n        this._additionalContext = additionalContext;\n        return this;\n    }\n    n(clientName, commandName) {\n        this._clientName = clientName;\n        this._commandName = commandName;\n        return this;\n    }\n    f(inputFilter = (_) => _, outputFilter = (_) => _) {\n        this._inputFilterSensitiveLog = inputFilter;\n        this._outputFilterSensitiveLog = outputFilter;\n        return this;\n    }\n    ser(serializer) {\n        this._serializer = serializer;\n        return this;\n    }\n    de(deserializer) {\n        this._deserializer = deserializer;\n        return this;\n    }\n    build() {\n        const closure = this;\n        let CommandRef;\n        return (CommandRef = class extends Command {\n            static getEndpointParameterInstructions() {\n                return closure._ep;\n            }\n            constructor(...[input]) {\n                super();\n                this.serialize = closure._serializer;\n                this.deserialize = closure._deserializer;\n                this.input = input ?? {};\n                closure._init(this);\n            }\n            resolveMiddleware(stack, configuration, options) {\n                return this.resolveMiddlewareWithContext(stack, configuration, options, {\n                    CommandCtor: CommandRef,\n                    middlewareFn: closure._middlewareFn,\n                    clientName: closure._clientName,\n                    commandName: closure._commandName,\n                    inputFilterSensitiveLog: closure._inputFilterSensitiveLog,\n                    outputFilterSensitiveLog: closure._outputFilterSensitiveLog,\n                    smithyContext: closure._smithyContext,\n                    additionalContext: closure._additionalContext,\n                });\n            }\n        });\n    }\n}\n","export const SENSITIVE_STRING = \"***SensitiveInformation***\";\n","export const 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};\nexport const expectBoolean = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"number\") {\n        if (value === 0 || value === 1) {\n            logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n        }\n        if (value === 0) {\n            return false;\n        }\n        if (value === 1) {\n            return true;\n        }\n    }\n    if (typeof value === \"string\") {\n        const lower = value.toLowerCase();\n        if (lower === \"false\" || lower === \"true\") {\n            logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n        }\n        if (lower === \"false\") {\n            return false;\n        }\n        if (lower === \"true\") {\n            return true;\n        }\n    }\n    if (typeof value === \"boolean\") {\n        return value;\n    }\n    throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"string\") {\n        const parsed = parseFloat(value);\n        if (!Number.isNaN(parsed)) {\n            if (String(parsed) !== String(value)) {\n                logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n            }\n            return parsed;\n        }\n    }\n    if (typeof value === \"number\") {\n        return value;\n    }\n    throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n    const expected = 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};\nexport const 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}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n    const expected = 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};\nexport const 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};\nexport const 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    const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n    throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    if (typeof value === \"string\") {\n        return value;\n    }\n    if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n        logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n        return String(value);\n    }\n    throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n    if (value === null || value === undefined) {\n        return undefined;\n    }\n    const asObject = expectObject(value);\n    const setKeys = Object.entries(asObject)\n        .filter(([, v]) => v != null)\n        .map(([k]) => k);\n    if (setKeys.length === 0) {\n        throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\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};\nexport const strictParseDouble = (value) => {\n    if (typeof value == \"string\") {\n        return expectNumber(parseNumber(value));\n    }\n    return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n    if (typeof value == \"string\") {\n        return expectFloat32(parseNumber(value));\n    }\n    return expectFloat32(value);\n};\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};\nexport const limitedParseDouble = (value) => {\n    if (typeof value == \"string\") {\n        return parseFloatString(value);\n    }\n    return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n    if (typeof value == \"string\") {\n        return parseFloatString(value);\n    }\n    return expectFloat32(value);\n};\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};\nexport const strictParseLong = (value) => {\n    if (typeof value === \"string\") {\n        return expectLong(parseNumber(value));\n    }\n    return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n    if (typeof value === \"string\") {\n        return expectInt32(parseNumber(value));\n    }\n    return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n    if (typeof value === \"string\") {\n        return expectShort(parseNumber(value));\n    }\n    return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n    if (typeof value === \"string\") {\n        return expectByte(parseNumber(value));\n    }\n    return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n    return String(new TypeError(message).stack || message)\n        .split(\"\\n\")\n        .slice(0, 5)\n        .filter((s) => !s.includes(\"stackTraceWarning\"))\n        .join(\"\\n\");\n};\nexport const logger = {\n    warn: console.warn,\n};\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./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\"];\nexport function 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}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const 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 = 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};\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nexport const parseRfc3339DateTimeWithOffset = (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_WITH_OFFSET.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, offsetStr] = match;\n    const year = strictParseShort(stripLeadingZeroes(yearStr));\n    const month = parseDateValue(monthStr, \"month\", 1, 12);\n    const day = parseDateValue(dayStr, \"day\", 1, 31);\n    const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n    if (offsetStr.toUpperCase() != \"Z\") {\n        date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n    }\n    return date;\n};\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{1,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{1,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{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const 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(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(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};\nexport const 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 = strictParseDouble(value);\n    }\n    else if (typeof value === \"object\" && value.tag === 1) {\n        valueAsDouble = value.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};\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 + 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 = 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 strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n    const directionStr = value[0];\n    let direction = 1;\n    if (directionStr == \"+\") {\n        direction = 1;\n    }\n    else if (directionStr == \"-\") {\n        direction = -1;\n    }\n    else {\n        throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n    }\n    const hour = Number(value.substring(1, 3));\n    const minute = Number(value.substring(4, 6));\n    return direction * (hour * 60 + minute) * 60 * 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","export class ServiceException extends Error {\n    constructor(options) {\n        super(options.message);\n        Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype);\n        this.name = options.name;\n        this.$fault = options.$fault;\n        this.$metadata = options.$metadata;\n    }\n    static isInstance(value) {\n        if (!value)\n            return false;\n        const candidate = value;\n        return (ServiceException.prototype.isPrototypeOf(candidate) ||\n            (Boolean(candidate.$fault) &&\n                Boolean(candidate.$metadata) &&\n                (candidate.$fault === \"client\" || candidate.$fault === \"server\")));\n    }\n    static [Symbol.hasInstance](instance) {\n        if (!instance)\n            return false;\n        const candidate = instance;\n        if (this === ServiceException) {\n            return ServiceException.isInstance(instance);\n        }\n        if (ServiceException.isInstance(instance)) {\n            if (candidate.name && this.name) {\n                return this.prototype.isPrototypeOf(instance) || candidate.name === this.name;\n            }\n            return this.prototype.isPrototypeOf(instance);\n        }\n        return false;\n    }\n}\nexport const 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};\n","import { decorateServiceException } from \"./exceptions\";\nexport const throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n    const $metadata = deserializeMetadata(output);\n    const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n    const response = new exceptionCtor({\n        name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n        $fault: \"client\",\n        $metadata,\n    });\n    throw decorateServiceException(response, parsedBody);\n};\nexport const withBaseException = (ExceptionCtor) => {\n    return ({ output, parsedBody, errorCode }) => {\n        throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n    };\n};\nconst deserializeMetadata = (output) => ({\n    httpStatusCode: output.statusCode,\n    requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n    extendedRequestId: output.headers[\"x-amz-id-2\"],\n    cfId: output.headers[\"x-amz-cf-id\"],\n});\n","export const 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};\n","import { AlgorithmId } from \"@smithy/types\";\nexport { AlgorithmId };\nexport const getChecksumConfiguration = (runtimeConfig) => {\n    const checksumAlgorithms = [];\n    for (const id in AlgorithmId) {\n        const algorithmId = AlgorithmId[id];\n        if (runtimeConfig[algorithmId] === undefined) {\n            continue;\n        }\n        checksumAlgorithms.push({\n            algorithmId: () => algorithmId,\n            checksumConstructor: () => runtimeConfig[algorithmId],\n        });\n    }\n    return {\n        _checksumAlgorithms: checksumAlgorithms,\n        addChecksumAlgorithm(algo) {\n            this._checksumAlgorithms.push(algo);\n        },\n        checksumAlgorithms() {\n            return this._checksumAlgorithms;\n        },\n    };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n    const runtimeConfig = {};\n    clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n        runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n    });\n    return runtimeConfig;\n};\n","export const getRetryConfiguration = (runtimeConfig) => {\n    let _retryStrategy = runtimeConfig.retryStrategy;\n    return {\n        setRetryStrategy(retryStrategy) {\n            _retryStrategy = retryStrategy;\n        },\n        retryStrategy() {\n            return _retryStrategy;\n        },\n    };\n};\nexport const resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n    const runtimeConfig = {};\n    runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n    return runtimeConfig;\n};\n","import { getChecksumConfiguration, resolveChecksumRuntimeConfig } from \"./checksum\";\nimport { getRetryConfiguration, resolveRetryRuntimeConfig } from \"./retry\";\nexport const getDefaultExtensionConfiguration = (runtimeConfig) => {\n    return {\n        ...getChecksumConfiguration(runtimeConfig),\n        ...getRetryConfiguration(runtimeConfig),\n    };\n};\nexport const getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nexport const resolveDefaultRuntimeConfig = (config) => {\n    return {\n        ...resolveChecksumRuntimeConfig(config),\n        ...resolveRetryRuntimeConfig(config),\n    };\n};\n","export const getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n","export const 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] = getValueFromTextNode(obj[key]);\n        }\n    }\n    return obj;\n};\n","export const isSerializableHeaderValue = (value) => {\n    return value != null;\n};\n","export class NoOpLogger {\n    trace() { }\n    debug() { }\n    info() { }\n    warn() { }\n    error() { }\n}\n","export function map(arg0, arg1, arg2) {\n    let target;\n    let filter;\n    let instructions;\n    if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n        target = {};\n        instructions = arg0;\n    }\n    else {\n        target = arg0;\n        if (typeof arg1 === \"function\") {\n            filter = arg1;\n            instructions = arg2;\n            return mapWithFilter(target, filter, instructions);\n        }\n        else {\n            instructions = arg1;\n        }\n    }\n    for (const key of Object.keys(instructions)) {\n        if (!Array.isArray(instructions[key])) {\n            target[key] = instructions[key];\n            continue;\n        }\n        applyInstruction(target, null, instructions, key);\n    }\n    return target;\n}\nexport const convertMap = (target) => {\n    const output = {};\n    for (const [k, v] of Object.entries(target || {})) {\n        output[k] = [, v];\n    }\n    return output;\n};\nexport const take = (source, instructions) => {\n    const out = {};\n    for (const key in instructions) {\n        applyInstruction(out, source, instructions, key);\n    }\n    return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n    return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n        if (Array.isArray(value)) {\n            _instructions[key] = value;\n        }\n        else {\n            if (typeof value === \"function\") {\n                _instructions[key] = [filter, value()];\n            }\n            else {\n                _instructions[key] = [filter, value];\n            }\n        }\n        return _instructions;\n    }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n    if (source !== null) {\n        let instruction = instructions[targetKey];\n        if (typeof instruction === \"function\") {\n            instruction = [, instruction];\n        }\n        const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n        if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n            target[targetKey] = valueFn(source[sourceKey]);\n        }\n        return;\n    }\n    let [filter, value] = instructions[targetKey];\n    if (typeof value === \"function\") {\n        let _value;\n        const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n        const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n        if (defaultFilterPassed) {\n            target[targetKey] = _value;\n        }\n        else if (customFilterPassed) {\n            target[targetKey] = value();\n        }\n    }\n    else {\n        const defaultFilterPassed = filter === undefined && value != null;\n        const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n        if (defaultFilterPassed || customFilterPassed) {\n            target[targetKey] = value;\n        }\n    }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n","export const 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};\nexport const serializeDateTime = (date) => date.toISOString().replace(\".000Z\", \"Z\");\n","import { collectBody } from \"@smithy/smithy-client\";\nexport const collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n};\n\nconst isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n  return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n  return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n};\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/(<!DOCTYPE[\\s\\w\\\"\\.\\/\\-\\:]+(\\[.*\\])*\\s*>)/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n","\nconst defaultOptions = {\n    preserveOrder: false,\n    attributeNamePrefix: '@_',\n    attributesGroupName: false,\n    textNodeName: '#text',\n    ignoreAttributes: true,\n    removeNSPrefix: false, // remove NS from tag name or attribute name if true\n    allowBooleanAttributes: false, //a tag can have attributes without any value\n    //ignoreRootElement : false,\n    parseTagValue: true,\n    parseAttributeValue: false,\n    trimValues: true, //Trim string values of tag and attributes\n    cdataPropName: false,\n    numberParseOptions: {\n      hex: true,\n      leadingZeros: true,\n      eNotation: true\n    },\n    tagValueProcessor: function(tagName, val) {\n      return val;\n    },\n    attributeValueProcessor: function(attrName, val) {\n      return val;\n    },\n    stopNodes: [], //nested tags will not be parsed even for errors\n    alwaysCreateTextNode: false,\n    isArray: () => false,\n    commentPropName: false,\n    unpairedTags: [],\n    processEntities: true,\n    htmlEntities: false,\n    ignoreDeclaration: false,\n    ignorePiTags: false,\n    transformTagName: false,\n    transformAttributeName: false,\n    updateTag: function(tagName, jPath, attrs){\n      return tagName\n    },\n    // skipEmptyListItem: false\n};\n   \nconst buildOptions = function(options) {\n    return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;","'use strict';\n\nclass XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n  };\n};\n\n\nmodule.exports = XmlNode;","const util = require('../util');\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n    \n    const entities = {};\n    if( xmlData[i + 3] === 'O' &&\n         xmlData[i + 4] === 'C' &&\n         xmlData[i + 5] === 'T' &&\n         xmlData[i + 6] === 'Y' &&\n         xmlData[i + 7] === 'P' &&\n         xmlData[i + 8] === 'E')\n    {    \n        i = i+9;\n        let angleBracketsCount = 1;\n        let hasBody = false, comment = false;\n        let exp = \"\";\n        for(;i<xmlData.length;i++){\n            if (xmlData[i] === '<' && !comment) { //Determine the tag type\n                if( hasBody && isEntity(xmlData, i)){\n                    i += 7; \n                    [entityName, val,i] = readEntityExp(xmlData,i+1);\n                    if(val.indexOf(\"&\") === -1) //Parameter entities are not supported\n                        entities[ validateEntityName(entityName) ] = {\n                            regx : RegExp( `&${entityName};`,\"g\"),\n                            val: val\n                        };\n                }\n                else if( hasBody && isElement(xmlData, i))  i += 8;//Not supported\n                else if( hasBody && isAttlist(xmlData, i))  i += 8;//Not supported\n                else if( hasBody && isNotation(xmlData, i)) i += 9;//Not supported\n                else if( isComment)                         comment = true;\n                else                                        throw new Error(\"Invalid DOCTYPE\");\n\n                angleBracketsCount++;\n                exp = \"\";\n            } else if (xmlData[i] === '>') { //Read tag content\n                if(comment){\n                    if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n                        comment = false;\n                        angleBracketsCount--;\n                    }\n                }else{\n                    angleBracketsCount--;\n                }\n                if (angleBracketsCount === 0) {\n                  break;\n                }\n            }else if( xmlData[i] === '['){\n                hasBody = true;\n            }else{\n                exp += xmlData[i];\n            }\n        }\n        if(angleBracketsCount !== 0){\n            throw new Error(`Unclosed DOCTYPE`);\n        }\n    }else{\n        throw new Error(`Invalid Tag instead of DOCTYPE`);\n    }\n    return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n    //External entities are not supported\n    //    <!ENTITY ext SYSTEM \"http://normal-website.com\" >\n\n    //Parameter entities are not supported\n    //    <!ENTITY entityname \"&anotherElement;\">\n\n    //Internal entities are supported\n    //    <!ENTITY entityname \"replacement text\">\n    \n    //read EntityName\n    let entityName = \"\";\n    for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n        // if(xmlData[i] === \" \") continue;\n        // else \n        entityName += xmlData[i];\n    }\n    entityName = entityName.trim();\n    if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n    //read Entity Value\n    const startChar = xmlData[i++];\n    let val = \"\"\n    for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n        val += xmlData[i];\n    }\n    return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === '-' &&\n    xmlData[i+3] === '-') return true\n    return false\n}\nfunction isEntity(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'E' &&\n    xmlData[i+3] === 'N' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'I' &&\n    xmlData[i+6] === 'T' &&\n    xmlData[i+7] === 'Y') return true\n    return false\n}\nfunction isElement(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'E' &&\n    xmlData[i+3] === 'L' &&\n    xmlData[i+4] === 'E' &&\n    xmlData[i+5] === 'M' &&\n    xmlData[i+6] === 'E' &&\n    xmlData[i+7] === 'N' &&\n    xmlData[i+8] === 'T') return true\n    return false\n}\n\nfunction isAttlist(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'A' &&\n    xmlData[i+3] === 'T' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'L' &&\n    xmlData[i+6] === 'I' &&\n    xmlData[i+7] === 'S' &&\n    xmlData[i+8] === 'T') return true\n    return false\n}\nfunction isNotation(xmlData, i){\n    if(xmlData[i+1] === '!' &&\n    xmlData[i+2] === 'N' &&\n    xmlData[i+3] === 'O' &&\n    xmlData[i+4] === 'T' &&\n    xmlData[i+5] === 'A' &&\n    xmlData[i+6] === 'T' &&\n    xmlData[i+7] === 'I' &&\n    xmlData[i+8] === 'O' &&\n    xmlData[i+9] === 'N') return true\n    return false\n}\n\nfunction validateEntityName(name){\n    if (util.isName(name))\n\treturn name;\n    else\n        throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n// const octRegex = /0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n\n//polyfill\nif (!Number.parseInt && window.parseInt) {\n    Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n    Number.parseFloat = window.parseFloat;\n}\n\n  \nconst consider = {\n    hex :  true,\n    leadingZeros: true,\n    decimalPoint: \"\\.\",\n    eNotation: true\n    //skipLike: /regex/\n};\n\nfunction toNumber(str, options = {}){\n    // const options = Object.assign({}, consider);\n    // if(opt.leadingZeros === false){\n    //     options.leadingZeros = false;\n    // }else if(opt.hex === false){\n    //     options.hex = false;\n    // }\n\n    options = Object.assign({}, consider, options );\n    if(!str || typeof str !== \"string\" ) return str;\n    \n    let trimmedStr  = str.trim();\n    // if(trimmedStr === \"0.0\") return 0;\n    // else if(trimmedStr === \"+0.0\") return 0;\n    // else if(trimmedStr === \"-0.0\") return -0;\n\n    if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n        return Number.parseInt(trimmedStr, 16);\n    // } else if (options.parseOct && octRegex.test(str)) {\n    //     return Number.parseInt(val, 8);\n    // }else if (options.parseBin && binRegex.test(str)) {\n    //     return Number.parseInt(val, 2);\n    }else{\n        //separate negative sign, leading zeros, and rest number\n        const match = numRegex.exec(trimmedStr);\n        if(match){\n            const sign = match[1];\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            //trim ending zeros for floating number\n            \n            const eNotation = match[4] || match[6];\n            if(!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str; //-0123\n            else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str; //0123\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const numStr = \"\" + num;\n                if(numStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(eNotation){ //given number has enotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    // const decimalPart = match[5].substr(1);\n                    // const intPart = trimmedStr.substr(0,trimmedStr.indexOf(\".\"));\n\n                    \n                    // const p = numStr.indexOf(\".\");\n                    // const givenIntPart = numStr.substr(0,p);\n                    // const givenDecPart = numStr.substr(p+1);\n                    if(numStr === \"0\" && (numTrimmedByZeros === \"\") ) return num; //0.0\n                    else if(numStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( sign && numStr === \"-\"+numTrimmedByZeros) return num;\n                    else return str;\n                }\n                \n                if(leadingZeros){\n                    // if(numTrimmedByZeros === numStr){\n                    //     if(options.leadingZeros) return num;\n                    //     else return str;\n                    // }else return str;\n                    if(numTrimmedByZeros === numStr) return num;\n                    else if(sign+numTrimmedByZeros === numStr) return num;\n                    else return str;\n                }\n\n                if(trimmedStr === numStr) return num;\n                else if(trimmedStr === sign+numStr) return num;\n                // else{\n                //     //number with +/- sign\n                //     trimmedStr.test(/[-+][0-9]);\n\n                // }\n                return str;\n            }\n            // else if(!eNotation && trimmedStr && trimmedStr !== Number(trimmedStr) ) return str;\n            \n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substr(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\nmodule.exports = toNumber\n","'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n  constructor(options){\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n      \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n      \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n      \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n      \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => String.fromCharCode(Number.parseInt(str, 16)) },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n  }\n\n}\n\nfunction addExternalEntities(externalEntities){\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n       regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n       val : externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if(val.length > 0){\n      if(!escapeEntities) val = this.replaceEntitiesValue(val);\n      \n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if(newval === null || newval === undefined){\n        //don't parse\n        return val;\n      }else if(typeof newval !== typeof val || newval !== val){\n        //overwrite\n        return newval;\n      }else if(this.options.trimValues){\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      }else{\n        const trimmedVal = val.trim();\n        if(trimmedVal === val){\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        }else{\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = util.getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if(aName === \"__proto__\") aName  = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if(newVal === null || newVal === undefined){\n            //don't parse\n            attrs[aName] = oldVal;\n          }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n            //overwrite\n            attrs[aName] = newVal;\n          }else{\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  for(let i=0; i< xmlData.length; i++){//for each char in XML data\n    const ch = xmlData[i];\n    if(ch === '<'){\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if( xmlData[i+1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n        if(this.options.removeNSPrefix){\n          const colonIndex = tagName.indexOf(\":\");\n          if(colonIndex !== -1){\n            tagName = tagName.substr(colonIndex+1);\n          }\n        }\n\n        if(this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if(currentNode){\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n        if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n          throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n        }\n        let propIndex = 0\n        if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n          this.tagsNodeStack.pop();\n        }else{\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if( xmlData[i+1] === '?') {\n\n        let tagData = readTagExp(xmlData,i, false, \"?>\");\n        if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n        }else{\n  \n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          \n          if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath)\n\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if(xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n        if(this.options.commentPropName){\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n        }\n        i = endIndex;\n      } else if( xmlData.substr(i + 1, 2) === '!D') {\n        const result = readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      }else if(xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9,closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if(val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if(this.options.cdataPropName){\n          currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n        }else{\n          currentNode.add(this.options.textNodeName, val);\n        }\n        \n        i = closeIndex + 2;\n      }else {//Opening tag\n        let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n        let tagName= result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n        \n        //save text as child node\n        if (currentNode && textData) {\n          if(currentNode.tagname !== '!xml'){\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if(tagName !== xmlObj.tagname){\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n            \n            i = result.closeIndex;\n          }\n          //normal tag\n          else{\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n          if(tagName !== tagExp && attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if(tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          \n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          \n          this.addChild(currentNode, childNode, jPath)\n        }else{\n  //selfClosing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            \n            if(this.options.transformTagName) {\n              tagName = this.options.transformTagName(tagName);\n            }\n\n            const childNode = new xmlNode(tagName);\n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath)\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n    //opening tag\n          else{\n            const childNode = new xmlNode( tagName);\n            this.tagsNodeStack.push(currentNode);\n            \n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath)\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    }else{\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if(result === false){\n  }else if(typeof result === \"string\"){\n    childNode.tagname = result\n    currentNode.addChild(childNode);\n  }else{\n    currentNode.addChild(childNode);\n  }\n}\n\nconst replaceEntitiesValue = function(val){\n\n  if(this.options.processEntities){\n    for(let entityName in this.docTypeEntities){\n      const entity = this.docTypeEntities[entityName];\n      val = val.replace( entity.regx, entity.val);\n    }\n    for(let entityName in this.lastEntities){\n      const entity = this.lastEntities[entityName];\n      val = val.replace( entity.regex, entity.val);\n    }\n    if(this.options.htmlEntities){\n      for(let entityName in this.htmlEntities){\n        const entity = this.htmlEntities[entityName];\n        val = val.replace( entity.regex, entity.val);\n      }\n    }\n    val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n    \n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n  const allNodesExp = \"*.\" + currentTagName;\n  for (const stopNodePath in stopNodes) {\n    const stopNodeExp = stopNodes[stopNodePath];\n    if( allNodesExp === stopNodeExp || jPath === stopNodeExp  ) return true;\n  }\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n        if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n        attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if(closingChar[1]){\n        if(xmlData[index + 1] === closingChar[1]){\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      }else{\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n  const closingIndex = xmlData.indexOf(str, i);\n  if(closingIndex === -1){\n    throw new Error(errMsg)\n  }else{\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n  const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n  if(!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if(separatorIndex !== -1){//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if(removeNSPrefix){\n    const colonIndex = tagName.indexOf(\":\");\n    if(colonIndex !== -1){\n      tagName = tagName.substr(colonIndex+1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if( xmlData[i] === \"<\"){ \n      if (xmlData[i+1] === \"/\") {//close tag\n          const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n          let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n          if(closeTagName === tagName){\n            openTagCount--;\n            if (openTagCount === 0) {\n              return {\n                tagContent: xmlData.substring(startIndex, i),\n                i : closeIndex\n              }\n            }\n          }\n          i=closeIndex;\n        } else if(xmlData[i+1] === '?') { \n          const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 3) === '!--') { \n          const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 2) === '![') { \n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n          i=closeIndex;\n        } else {\n          const tagData = readTagExp(xmlData, i, '>')\n\n          if (tagData) {\n            const openTagName = tagData && tagData.tagName;\n            if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n              openTagCount++;\n            }\n            i=tagData.closeIndex;\n          }\n        }\n      }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if(newval === 'true' ) return true;\n    else if(newval === 'false' ) return false;\n    else return toNumber(val, options);\n  } else {\n    if (util.isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\n\nmodule.exports = OrderedObjParser;\n","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\nexports.prettify = prettify;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Buffer} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData === \"string\"){\n        }else if( xmlData.toString){\n            xmlData = xmlData.toString();\n        }else{\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validator.validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n}\n\nmodule.exports = XMLParser;","const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nfunction toXml(jArray, options) {\n    let indentation = \"\";\n    if (options.format && options.indentBy.length > 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n                xmlStr += indentation + options.indentBy + tagValue + indentation;\n            } else {\n                xmlStr += tagValue;\n            }\n            xmlStr += `</${tagName}>`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\nmodule.exports = toXml;\n","'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"&apos;\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \"&quot;\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nfunction Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n  let attrStr = '';\n  let val = '';\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      }else {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      let listTagAttr = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup){\n            const result = this.j2x(item, level + 1);\n            listTagVal += result.val;\n            if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n              listTagAttr += result.attrStr\n            }\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level)\n          }\n        } else {\n          if (this.options.oneListGroup) {\n            let textValue = this.options.tagValueProcessor(key, item);\n            textValue = this.replaceEntitiesValue(textValue);\n            listTagVal += textValue;\n          } else {\n            listTagVal += this.buildTextValNode(item, key, '', level);\n          }\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n  const result = this.j2x(object, level + 1);\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '</' + key + this.tagEndChar;\n    let piClosingChar = \"\";\n    \n    if(key[0] === \"?\") {\n      piClosingChar = \"?\";\n      tagEndExp = \"\";\n    }\n  \n    // attrStr is an empty string in case the attribute came as undefined or null\n    if ((attrStr || attrStr === '') && val.indexOf('<') === -1) {\n      return ( this.indentate(level) + '<' +  key + attrStr + piClosingChar + '>' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `<!--${val}-->` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `></${key}`\n  }\n  return closeTag;\n}\n\nfunction buildEmptyObjNode(val, key, attrStr, level) {\n  if (val !== '') {\n    return this.buildObjectNode(val, key, attrStr, level);\n  } else {\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return  this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;\n      // return this.buildTagStr(level,key, attrStr);\n    }\n  }\n}\n\nBuilder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n  if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n    return this.indentate(level) + `<![CDATA[${val}]]>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `<!--${val}-->` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        '</' + key + this.tagEndChar;\n    }\n  }\n}\n\nBuilder.prototype.replaceEntitiesValue = function(textValue){\n  if(textValue && textValue.length > 0 && this.options.processEntities){\n    for (let i=0; i<this.options.entities.length; i++) {\n      const entity = this.options.entities[i];\n      textValue = textValue.replace(entity.regex, entity.val);\n    }\n  }\n  return textValue;\n}\n\nfunction indentate(level) {\n  return this.options.indentBy.repeat(level);\n}\n\nfunction isAttribute(name /*, options*/) {\n  if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n    return name.substr(this.attrPrefixLen);\n  } else {\n    return false;\n  }\n}\n\nmodule.exports = Builder;\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n  XMLParser: XMLParser,\n  XMLValidator: validator,\n  XMLBuilder: XMLBuilder\n}","import { getValueFromTextNode } from \"@smithy/smithy-client\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { collectBodyString } from \"../common\";\nexport const parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n    if (encoded.length) {\n        const parser = new XMLParser({\n            attributeNamePrefix: \"\",\n            htmlEntities: true,\n            ignoreAttributes: false,\n            ignoreDeclaration: true,\n            parseTagValue: false,\n            trimValues: false,\n            tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n        });\n        parser.addEntity(\"#xD\", \"\\r\");\n        parser.addEntity(\"#10\", \"\\n\");\n        let parsedObj;\n        try {\n            parsedObj = parser.parse(encoded, true);\n        }\n        catch (e) {\n            if (e && typeof e === \"object\") {\n                Object.defineProperty(e, \"$responseBodyText\", {\n                    value: encoded,\n                });\n            }\n            throw e;\n        }\n        const textNodeName = \"#text\";\n        const key = Object.keys(parsedObj)[0];\n        const parsedObjToReturn = parsedObj[key];\n        if (parsedObjToReturn[textNodeName]) {\n            parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n            delete parsedObjToReturn[textNodeName];\n        }\n        return getValueFromTextNode(parsedObjToReturn);\n    }\n    return {};\n});\nexport const parseXmlErrorBody = async (errorBody, context) => {\n    const value = await parseXmlBody(errorBody, context);\n    if (value.Error) {\n        value.Error.message = value.Error.message ?? value.Error.Message;\n    }\n    return value;\n};\nexport const loadRestXmlErrorCode = (output, data) => {\n    if (data?.Error?.Code !== undefined) {\n        return data.Error.Code;\n    }\n    if (data?.Code !== undefined) {\n        return data.Code;\n    }\n    if (output.statusCode == 404) {\n        return \"NotFound\";\n    }\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const CLIENT_SUPPORTED_ALGORITHMS = [\n    ChecksumAlgorithm.CRC32,\n    ChecksumAlgorithm.CRC32C,\n    ChecksumAlgorithm.CRC64NVME,\n    ChecksumAlgorithm.SHA1,\n    ChecksumAlgorithm.SHA256,\n];\nexport const PRIORITY_ORDER_ALGORITHMS = [\n    ChecksumAlgorithm.SHA256,\n    ChecksumAlgorithm.SHA1,\n    ChecksumAlgorithm.CRC32,\n    ChecksumAlgorithm.CRC32C,\n    ChecksumAlgorithm.CRC64NVME,\n];\n","import { DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from \"./constants\";\nimport { CLIENT_SUPPORTED_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {\n    if (!requestAlgorithmMember) {\n        return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired\n            ? DEFAULT_CHECKSUM_ALGORITHM\n            : undefined;\n    }\n    if (!input[requestAlgorithmMember]) {\n        return undefined;\n    }\n    const checksumAlgorithm = input[requestAlgorithmMember];\n    if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {\n        throw new Error(`The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client.` +\n            ` Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`);\n    }\n    return checksumAlgorithm;\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const getChecksumLocationName = (algorithm) => algorithm === ChecksumAlgorithm.MD5 ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`;\n","export const hasHeader = (header, headers) => {\n    const soughtHeader = header.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (soughtHeader === headerName.toLowerCase()) {\n            return true;\n        }\n    }\n    return false;\n};\n","export const hasHeaderWithPrefix = (headerPrefix, headers) => {\n    const soughtHeaderPrefix = headerPrefix.toLowerCase();\n    for (const headerName of Object.keys(headers)) {\n        if (headerName.toLowerCase().startsWith(soughtHeaderPrefix)) {\n            return true;\n        }\n    }\n    return false;\n};\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nexport const isStreaming = (body) => body !== undefined && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !isArrayBuffer(body);\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n  return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n  ownKeys = Object.getOwnPropertyNames || function (o) {\n    var ar = [];\n    for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n    return ar;\n  };\n  return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  var r, s = 0;\n  function next() {\n    while (r = env.stack.pop()) {\n      try {\n        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n        if (r.dispose) {\n          var result = r.dispose.call(r.value);\n          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n        }\n        else s |= 1;\n      }\n      catch (e) {\n        fail(e);\n      }\n    }\n    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n  if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n      return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n          return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n      });\n  }\n  return path;\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __esDecorate,\n  __runInitializers,\n  __propKey,\n  __setFunctionName,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n  __rewriteRelativeImportExtension,\n};\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fromUtf8 as fromUtf8Browser } from \"@smithy/util-utf8\";\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n    ? function (input) { return Buffer.from(input, \"utf8\"); }\n    : fromUtf8Browser;\nexport function convertToBuffer(data) {\n    // Already a Uint8, do nothing\n    if (data instanceof Uint8Array)\n        return data;\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n}\n//# sourceMappingURL=convertToBuffer.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function isEmptyData(data) {\n    if (typeof data === \"string\") {\n        return data.length === 0;\n    }\n    return data.byteLength === 0;\n}\n//# sourceMappingURL=isEmptyData.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function numToUint8(num) {\n    return new Uint8Array([\n        (num & 0xff000000) >> 24,\n        (num & 0x00ff0000) >> 16,\n        (num & 0x0000ff00) >> 8,\n        num & 0x000000ff,\n    ]);\n}\n//# sourceMappingURL=numToUint8.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable) {\n    if (!Uint32Array.from) {\n        var return_array = new Uint32Array(a_lookUpTable.length);\n        var 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//# sourceMappingURL=uint32ArrayFrom.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32c } from \"./index\";\nvar AwsCrc32c = /** @class */ (function () {\n    function AwsCrc32c() {\n        this.crc32c = new Crc32c();\n    }\n    AwsCrc32c.prototype.update = function (toHash) {\n        if (isEmptyData(toHash))\n            return;\n        this.crc32c.update(convertToBuffer(toHash));\n    };\n    AwsCrc32c.prototype.digest = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                return [2 /*return*/, numToUint8(this.crc32c.digest())];\n            });\n        });\n    };\n    AwsCrc32c.prototype.reset = function () {\n        this.crc32c = new Crc32c();\n    };\n    return AwsCrc32c;\n}());\nexport { AwsCrc32c };\n//# sourceMappingURL=aws_crc32c.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __values } from \"tslib\";\nimport { uint32ArrayFrom } from \"@aws-crypto/util\";\nexport function crc32c(data) {\n    return new Crc32c().update(data).digest();\n}\nvar Crc32c = /** @class */ (function () {\n    function Crc32c() {\n        this.checksum = 0xffffffff;\n    }\n    Crc32c.prototype.update = function (data) {\n        var e_1, _a;\n        try {\n            for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n                var byte = data_1_1.value;\n                this.checksum =\n                    (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return this;\n    };\n    Crc32c.prototype.digest = function () {\n        return (this.checksum ^ 0xffffffff) >>> 0;\n    };\n    return Crc32c;\n}());\nexport { Crc32c };\n// prettier-ignore\nvar a_lookupTable = [\n    0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n    0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n    0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n    0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n    0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n    0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n    0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n    0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n    0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n    0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n    0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n    0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n    0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n    0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n    0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n    0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n    0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n    0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n    0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n    0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n    0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n    0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n    0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n    0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n    0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n    0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n    0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n    0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n    0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n    0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n    0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n    0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\nvar lookupTable = uint32ArrayFrom(a_lookupTable);\nexport { AwsCrc32c } from \"./aws_crc32c\";\n//# sourceMappingURL=index.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { __awaiter, __generator } from \"tslib\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\nvar AwsCrc32 = /** @class */ (function () {\n    function AwsCrc32() {\n        this.crc32 = new Crc32();\n    }\n    AwsCrc32.prototype.update = function (toHash) {\n        if (isEmptyData(toHash))\n            return;\n        this.crc32.update(convertToBuffer(toHash));\n    };\n    AwsCrc32.prototype.digest = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                return [2 /*return*/, numToUint8(this.crc32.digest())];\n            });\n        });\n    };\n    AwsCrc32.prototype.reset = function () {\n        this.crc32 = new Crc32();\n    };\n    return AwsCrc32;\n}());\nexport { AwsCrc32 };\n//# sourceMappingURL=aws_crc32.js.map","import { __values } from \"tslib\";\nimport { uint32ArrayFrom } from \"@aws-crypto/util\";\nexport function crc32(data) {\n    return new Crc32().update(data).digest();\n}\nvar Crc32 = /** @class */ (function () {\n    function Crc32() {\n        this.checksum = 0xffffffff;\n    }\n    Crc32.prototype.update = function (data) {\n        var e_1, _a;\n        try {\n            for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n                var byte = data_1_1.value;\n                this.checksum =\n                    (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return this;\n    };\n    Crc32.prototype.digest = function () {\n        return (this.checksum ^ 0xffffffff) >>> 0;\n    };\n    return Crc32;\n}());\nexport { Crc32 };\n// prettier-ignore\nvar a_lookUpTable = [\n    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = uint32ArrayFrom(a_lookUpTable);\nexport { AwsCrc32 } from \"./aws_crc32\";\n//# sourceMappingURL=index.js.map","import { AwsCrc32 } from \"@aws-crypto/crc32\";\nexport const getCrc32ChecksumAlgorithmFunction = () => AwsCrc32;\n","import { AwsCrc32c } from \"@aws-crypto/crc32c\";\nimport { ChecksumAlgorithm } from \"./constants\";\nimport { crc64NvmeCrtContainer } from \"./crc64-nvme-crt-container\";\nimport { getCrc32ChecksumAlgorithmFunction } from \"./getCrc32ChecksumAlgorithmFunction\";\nexport const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => {\n    switch (checksumAlgorithm) {\n        case ChecksumAlgorithm.MD5:\n            return config.md5;\n        case ChecksumAlgorithm.CRC32:\n            return getCrc32ChecksumAlgorithmFunction();\n        case ChecksumAlgorithm.CRC32C:\n            return AwsCrc32c;\n        case ChecksumAlgorithm.CRC64NVME:\n            if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== \"function\") {\n                throw new Error(`Please check whether you have installed the \"@aws-sdk/crc64-nvme-crt\" package explicitly. \\n` +\n                    `You must also register the package by calling [require(\"@aws-sdk/crc64-nvme-crt\");] ` +\n                    `or an ESM equivalent such as [import \"@aws-sdk/crc64-nvme-crt\";]. \\n` +\n                    \"For more information please go to \" +\n                    \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\");\n            }\n            return crc64NvmeCrtContainer.CrtCrc64Nvme;\n        case ChecksumAlgorithm.SHA1:\n            return config.sha1;\n        case ChecksumAlgorithm.SHA256:\n            return config.sha256;\n        default:\n            throw new Error(`Unsupported checksum algorithm: ${checksumAlgorithm}`);\n    }\n};\n","import { toUint8Array } from \"@smithy/util-utf8\";\nexport const stringHasher = (checksumAlgorithmFn, body) => {\n    const hash = new checksumAlgorithmFn();\n    hash.update(toUint8Array(body || \"\"));\n    return hash.digest();\n};\n","import { setFeature } from \"@aws-sdk/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { ChecksumAlgorithm, DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from \"./constants\";\nimport { getChecksumAlgorithmForRequest } from \"./getChecksumAlgorithmForRequest\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { hasHeader } from \"./hasHeader\";\nimport { hasHeaderWithPrefix } from \"./hasHeaderWithPrefix\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nimport { stringHasher } from \"./stringHasher\";\nexport const flexibleChecksumsMiddlewareOptions = {\n    name: \"flexibleChecksumsMiddleware\",\n    step: \"build\",\n    tags: [\"BODY_CHECKSUM\"],\n    override: true,\n};\nexport const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    if (hasHeaderWithPrefix(\"x-amz-checksum-\", args.request.headers)) {\n        return next(args);\n    }\n    const { request, input } = args;\n    const { body: requestBody, headers } = request;\n    const { base64Encoder, streamHasher } = config;\n    const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n    const requestChecksumCalculation = await config.requestChecksumCalculation();\n    const requestAlgorithmMemberName = requestAlgorithmMember?.name;\n    const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;\n    if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {\n        if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {\n            input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;\n            if (requestAlgorithmMemberHttpHeader) {\n                headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;\n            }\n        }\n    }\n    const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n        requestChecksumRequired,\n        requestAlgorithmMember: requestAlgorithmMember?.name,\n        requestChecksumCalculation,\n    });\n    let updatedBody = requestBody;\n    let updatedHeaders = headers;\n    if (checksumAlgorithm) {\n        switch (checksumAlgorithm) {\n            case ChecksumAlgorithm.CRC32:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32\", \"U\");\n                break;\n            case ChecksumAlgorithm.CRC32C:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC32C\", \"V\");\n                break;\n            case ChecksumAlgorithm.CRC64NVME:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_CRC64\", \"W\");\n                break;\n            case ChecksumAlgorithm.SHA1:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA1\", \"X\");\n                break;\n            case ChecksumAlgorithm.SHA256:\n                setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_SHA256\", \"Y\");\n                break;\n        }\n        const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n        const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n        if (isStreaming(requestBody)) {\n            const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n            updatedBody = getAwsChunkedEncodingStream(requestBody, {\n                base64Encoder,\n                bodyLengthChecker,\n                checksumLocationName,\n                checksumAlgorithmFn,\n                streamHasher,\n            });\n            updatedHeaders = {\n                ...headers,\n                \"content-encoding\": headers[\"content-encoding\"]\n                    ? `${headers[\"content-encoding\"]},aws-chunked`\n                    : \"aws-chunked\",\n                \"transfer-encoding\": \"chunked\",\n                \"x-amz-decoded-content-length\": headers[\"content-length\"],\n                \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n                \"x-amz-trailer\": checksumLocationName,\n            };\n            delete updatedHeaders[\"content-length\"];\n        }\n        else if (!hasHeader(checksumLocationName, headers)) {\n            const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n            updatedHeaders = {\n                ...headers,\n                [checksumLocationName]: base64Encoder(rawChecksum),\n            };\n        }\n    }\n    const result = await next({\n        ...args,\n        request: {\n            ...request,\n            headers: updatedHeaders,\n            body: updatedBody,\n        },\n    });\n    return result;\n};\n","import { setFeature } from \"@aws-sdk/core\";\nimport { RequestChecksumCalculation, ResponseChecksumValidation } from \"./constants\";\nexport const flexibleChecksumsInputMiddlewareOptions = {\n    name: \"flexibleChecksumsInputMiddleware\",\n    toMiddleware: \"serializerMiddleware\",\n    relation: \"before\",\n    tags: [\"BODY_CHECKSUM\"],\n    override: true,\n};\nexport const flexibleChecksumsInputMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n    const input = args.input;\n    const { requestValidationModeMember } = middlewareConfig;\n    const requestChecksumCalculation = await config.requestChecksumCalculation();\n    const responseChecksumValidation = await config.responseChecksumValidation();\n    switch (requestChecksumCalculation) {\n        case RequestChecksumCalculation.WHEN_REQUIRED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED\", \"a\");\n            break;\n        case RequestChecksumCalculation.WHEN_SUPPORTED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED\", \"Z\");\n            break;\n    }\n    switch (responseChecksumValidation) {\n        case ResponseChecksumValidation.WHEN_REQUIRED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED\", \"c\");\n            break;\n        case ResponseChecksumValidation.WHEN_SUPPORTED:\n            setFeature(context, \"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED\", \"b\");\n            break;\n    }\n    if (requestValidationModeMember && !input[requestValidationModeMember]) {\n        if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {\n            input[requestValidationModeMember] = \"ENABLED\";\n        }\n    }\n    return next(args);\n};\n","import { CLIENT_SUPPORTED_ALGORITHMS, PRIORITY_ORDER_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {\n    const validChecksumAlgorithms = [];\n    for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {\n        if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {\n            continue;\n        }\n        validChecksumAlgorithms.push(algorithm);\n    }\n    return validChecksumAlgorithms;\n};\n","export const isChecksumWithPartNumber = (checksum) => {\n    const lastHyphenIndex = checksum.lastIndexOf(\"-\");\n    if (lastHyphenIndex !== -1) {\n        const numberPart = checksum.slice(lastHyphenIndex + 1);\n        if (!numberPart.startsWith(\"0\")) {\n            const number = parseInt(numberPart, 10);\n            if (!isNaN(number) && number >= 1 && number <= 10000) {\n                return true;\n            }\n        }\n    }\n    return false;\n};\n","export function createReadStreamOnBuffer(buffer) {\n    return new Blob([buffer]).stream();\n}\n","import { stringHasher } from \"./stringHasher\";\nexport const getChecksum = async (body, { checksumAlgorithmFn, base64Encoder }) => base64Encoder(await stringHasher(checksumAlgorithmFn, body));\n","import { createChecksumStream } from \"@smithy/util-stream\";\nimport { getChecksum } from \"./getChecksum\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nexport const validateChecksumFromResponse = async (response, { config, responseAlgorithms }) => {\n    const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n    const { body: responseBody, headers: responseHeaders } = response;\n    for (const algorithm of checksumAlgorithms) {\n        const responseHeader = getChecksumLocationName(algorithm);\n        const checksumFromResponse = responseHeaders[responseHeader];\n        if (checksumFromResponse) {\n            const checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n            const { base64Encoder } = config;\n            if (isStreaming(responseBody)) {\n                response.body = createChecksumStream({\n                    expectedChecksum: checksumFromResponse,\n                    checksumSourceLocation: responseHeader,\n                    checksum: new checksumAlgorithmFn(),\n                    source: responseBody,\n                    base64Encoder,\n                });\n                return;\n            }\n            const checksum = await getChecksum(responseBody, { checksumAlgorithmFn, base64Encoder });\n            if (checksum === checksumFromResponse) {\n                break;\n            }\n            throw new Error(`Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\"` +\n                ` in response header \"${responseHeader}\".`);\n        }\n    }\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isChecksumWithPartNumber } from \"./isChecksumWithPartNumber\";\nimport { isStreaming } from \"./isStreaming\";\nimport { createReadStreamOnBuffer } from \"./streams/create-read-stream-on-buffer\";\nimport { validateChecksumFromResponse } from \"./validateChecksumFromResponse\";\nexport const flexibleChecksumsResponseMiddlewareOptions = {\n    name: \"flexibleChecksumsResponseMiddleware\",\n    toMiddleware: \"deserializerMiddleware\",\n    relation: \"after\",\n    tags: [\"BODY_CHECKSUM\"],\n    override: true,\n};\nexport const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    const input = args.input;\n    const result = await next(args);\n    const response = result.response;\n    let collectedStream = undefined;\n    const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n    if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n        const { clientName, commandName } = context;\n        const isS3WholeObjectMultipartGetResponseChecksum = clientName === \"S3Client\" &&\n            commandName === \"GetObjectCommand\" &&\n            getChecksumAlgorithmListForResponse(responseAlgorithms).every((algorithm) => {\n                const responseHeader = getChecksumLocationName(algorithm);\n                const checksumFromResponse = response.headers[responseHeader];\n                return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);\n            });\n        if (isS3WholeObjectMultipartGetResponseChecksum) {\n            return result;\n        }\n        const isStreamingBody = isStreaming(response.body);\n        if (isStreamingBody) {\n            collectedStream = await config.streamCollector(response.body);\n            response.body = createReadStreamOnBuffer(collectedStream);\n        }\n        await validateChecksumFromResponse(result.response, {\n            config,\n            responseAlgorithms,\n        });\n        if (isStreamingBody && collectedStream) {\n            response.body = createReadStreamOnBuffer(collectedStream);\n        }\n    }\n    return result;\n};\n","import { flexibleChecksumsInputMiddleware, flexibleChecksumsInputMiddlewareOptions, } from \"./flexibleChecksumsInputMiddleware\";\nimport { flexibleChecksumsMiddleware, flexibleChecksumsMiddlewareOptions, } from \"./flexibleChecksumsMiddleware\";\nimport { flexibleChecksumsResponseMiddleware, flexibleChecksumsResponseMiddlewareOptions, } from \"./flexibleChecksumsResponseMiddleware\";\nexport const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n        clientStack.addRelativeTo(flexibleChecksumsInputMiddleware(config, middlewareConfig), flexibleChecksumsInputMiddlewareOptions);\n        clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);\n    },\n});\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { DEFAULT_REQUEST_CHECKSUM_CALCULATION, DEFAULT_RESPONSE_CHECKSUM_VALIDATION, } from \"./constants\";\nexport const resolveFlexibleChecksumsConfig = (input) => ({\n    ...input,\n    requestChecksumCalculation: normalizeProvider(input.requestChecksumCalculation ?? DEFAULT_REQUEST_CHECKSUM_CALCULATION),\n    responseChecksumValidation: normalizeProvider(input.responseChecksumValidation ?? DEFAULT_RESPONSE_CHECKSUM_VALIDATION),\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n    return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n    if (!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\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n    }\n    else if (!request.headers[\"host\"]) {\n        let host = request.hostname;\n        if (request.port != null)\n            host += `:${request.port}`;\n        request.headers[\"host\"] = host;\n    }\n    return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n    name: \"hostHeaderMiddleware\",\n    step: \"build\",\n    priority: \"low\",\n    tags: [\"HOST\"],\n    override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n    },\n});\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n    try {\n        const response = await next(args);\n        const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n        const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n        const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n        const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\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        return response;\n    }\n    catch (error) {\n        const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n        const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n        const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n        logger?.error?.({\n            clientName,\n            commandName,\n            input: inputFilterSensitiveLog(args.input),\n            error,\n            metadata: error.$metadata,\n        });\n        throw error;\n    }\n};\nexport const loggerMiddlewareOptions = {\n    name: \"loggerMiddleware\",\n    tags: [\"LOGGER\"],\n    step: \"initialize\",\n    override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n    },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport const recursionDetectionMiddleware = (options) => (next) => async (args) => {\n    const { request } = args;\n    if (!HttpRequest.isInstance(request) ||\n        options.runtime !== \"node\" ||\n        request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n        return next(args);\n    }\n    const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n    const traceId = process.env[ENV_TRACE_ID];\n    const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n    if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n        request.headers[TRACE_ID_HEADER_NAME] = traceId;\n    }\n    return next({\n        ...args,\n        request,\n    });\n};\nexport const addRecursionDetectionMiddlewareOptions = {\n    step: \"build\",\n    tags: [\"RECURSION_DETECTION\"],\n    name: \"recursionDetectionMiddleware\",\n    override: true,\n    priority: \"low\",\n};\nexport const getRecursionDetectionPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n    },\n});\n","export const regionRedirectEndpointMiddleware = (config) => {\n    return (next, context) => async (args) => {\n        const originalRegion = await config.region();\n        const regionProviderRef = config.region;\n        let unlock = () => { };\n        if (context.__s3RegionRedirect) {\n            Object.defineProperty(config, \"region\", {\n                writable: false,\n                value: async () => {\n                    return context.__s3RegionRedirect;\n                },\n            });\n            unlock = () => Object.defineProperty(config, \"region\", {\n                writable: true,\n                value: regionProviderRef,\n            });\n        }\n        try {\n            const result = await next(args);\n            if (context.__s3RegionRedirect) {\n                unlock();\n                const region = await config.region();\n                if (originalRegion !== region) {\n                    throw new Error(\"Region was not restored following S3 region redirect.\");\n                }\n            }\n            return result;\n        }\n        catch (e) {\n            unlock();\n            throw e;\n        }\n    };\n};\nexport const regionRedirectEndpointMiddlewareOptions = {\n    tags: [\"REGION_REDIRECT\", \"S3\"],\n    name: \"regionRedirectEndpointMiddleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: \"endpointV2Middleware\",\n};\n","import { regionRedirectEndpointMiddleware, regionRedirectEndpointMiddlewareOptions, } from \"./region-redirect-endpoint-middleware\";\nexport function regionRedirectMiddleware(clientConfig) {\n    return (next, context) => async (args) => {\n        try {\n            return await next(args);\n        }\n        catch (err) {\n            if (clientConfig.followRegionRedirects) {\n                if (err?.$metadata?.httpStatusCode === 301 ||\n                    (err?.$metadata?.httpStatusCode === 400 && err?.name === \"IllegalLocationConstraintException\")) {\n                    try {\n                        const actualRegion = err.$response.headers[\"x-amz-bucket-region\"];\n                        context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);\n                        context.__s3RegionRedirect = actualRegion;\n                    }\n                    catch (e) {\n                        throw new Error(\"Region redirect failed: \" + e);\n                    }\n                    return next(args);\n                }\n            }\n            throw err;\n        }\n    };\n}\nexport const regionRedirectMiddlewareOptions = {\n    step: \"initialize\",\n    tags: [\"REGION_REDIRECT\", \"S3\"],\n    name: \"regionRedirectMiddleware\",\n    override: true,\n};\nexport const getRegionRedirectMiddlewarePlugin = (clientConfig) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);\n        clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);\n    },\n});\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { parseRfc7231DateTime } from \"@smithy/smithy-client\";\nexport const s3ExpiresMiddleware = (config) => {\n    return (next, context) => async (args) => {\n        const result = await next(args);\n        const { response } = result;\n        if (HttpResponse.isInstance(response)) {\n            if (response.headers.expires) {\n                response.headers.expiresstring = response.headers.expires;\n                try {\n                    parseRfc7231DateTime(response.headers.expires);\n                }\n                catch (e) {\n                    context.logger?.warn(`AWS SDK Warning for ${context.clientName}::${context.commandName} response parsing (${response.headers.expires}): ${e}`);\n                    delete response.headers.expires;\n                }\n            }\n        }\n        return result;\n    };\n};\nexport const s3ExpiresMiddlewareOptions = {\n    tags: [\"S3\"],\n    name: \"s3ExpiresMiddleware\",\n    override: true,\n    relation: \"after\",\n    toMiddleware: \"deserializerMiddleware\",\n};\nexport const getS3ExpiresMiddlewarePlugin = (clientConfig) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(s3ExpiresMiddleware(clientConfig), s3ExpiresMiddlewareOptions);\n    },\n});\n","export class S3ExpressIdentityCache {\n    data;\n    lastPurgeTime = Date.now();\n    static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS = 30000;\n    constructor(data = {}) {\n        this.data = data;\n    }\n    get(key) {\n        const entry = this.data[key];\n        if (!entry) {\n            return;\n        }\n        return entry;\n    }\n    set(key, entry) {\n        this.data[key] = entry;\n        return entry;\n    }\n    delete(key) {\n        delete this.data[key];\n    }\n    async purgeExpired() {\n        const now = Date.now();\n        if (this.lastPurgeTime + S3ExpressIdentityCache.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS > now) {\n            return;\n        }\n        for (const key in this.data) {\n            const entry = this.data[key];\n            if (!entry.isRefreshing) {\n                const credential = await entry.identity;\n                if (credential.expiration) {\n                    if (credential.expiration.getTime() < now) {\n                        delete this.data[key];\n                    }\n                }\n            }\n        }\n    }\n}\n","export class S3ExpressIdentityCacheEntry {\n    _identity;\n    isRefreshing;\n    accessed;\n    constructor(_identity, isRefreshing = false, accessed = Date.now()) {\n        this._identity = _identity;\n        this.isRefreshing = isRefreshing;\n        this.accessed = accessed;\n    }\n    get identity() {\n        this.accessed = Date.now();\n        return this._identity;\n    }\n}\n","import { S3ExpressIdentityCache } from \"./S3ExpressIdentityCache\";\nimport { S3ExpressIdentityCacheEntry } from \"./S3ExpressIdentityCacheEntry\";\nexport class S3ExpressIdentityProviderImpl {\n    createSessionFn;\n    cache;\n    static REFRESH_WINDOW_MS = 60000;\n    constructor(createSessionFn, cache = new S3ExpressIdentityCache()) {\n        this.createSessionFn = createSessionFn;\n        this.cache = cache;\n    }\n    async getS3ExpressIdentity(awsIdentity, identityProperties) {\n        const key = identityProperties.Bucket;\n        const { cache } = this;\n        const entry = cache.get(key);\n        if (entry) {\n            return entry.identity.then((identity) => {\n                const isExpired = (identity.expiration?.getTime() ?? 0) < Date.now();\n                if (isExpired) {\n                    return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n                }\n                const isExpiringSoon = (identity.expiration?.getTime() ?? 0) < Date.now() + S3ExpressIdentityProviderImpl.REFRESH_WINDOW_MS;\n                if (isExpiringSoon && !entry.isRefreshing) {\n                    entry.isRefreshing = true;\n                    this.getIdentity(key).then((id) => {\n                        cache.set(key, new S3ExpressIdentityCacheEntry(Promise.resolve(id)));\n                    });\n                }\n                return identity;\n            });\n        }\n        return cache.set(key, new S3ExpressIdentityCacheEntry(this.getIdentity(key))).identity;\n    }\n    async getIdentity(key) {\n        await this.cache.purgeExpired().catch((error) => {\n            console.warn(\"Error while clearing expired entries in S3ExpressIdentityCache: \\n\" + error);\n        });\n        const session = await this.createSessionFn(key);\n        if (!session.Credentials?.AccessKeyId || !session.Credentials?.SecretAccessKey) {\n            throw new Error(\"s3#createSession response credential missing AccessKeyId or SecretAccessKey.\");\n        }\n        const identity = {\n            accessKeyId: session.Credentials.AccessKeyId,\n            secretAccessKey: session.Credentials.SecretAccessKey,\n            sessionToken: session.Credentials.SessionToken,\n            expiration: session.Credentials.Expiration ? new Date(session.Credentials.Expiration) : undefined,\n        };\n        return identity;\n    }\n}\n","export var SelectorType;\n(function (SelectorType) {\n    SelectorType[\"ENV\"] = \"env\";\n    SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const S3_EXPRESS_BUCKET_TYPE = \"Directory\";\nexport const S3_EXPRESS_BACKEND = \"S3Express\";\nexport const S3_EXPRESS_AUTH_SCHEME = \"sigv4-s3express\";\nexport const SESSION_TOKEN_QUERY_PARAM = \"X-Amz-S3session-Token\";\nexport const SESSION_TOKEN_HEADER = SESSION_TOKEN_QUERY_PARAM.toLowerCase();\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME = \"AWS_S3_DISABLE_EXPRESS_SESSION_AUTH\";\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME = \"s3_disable_express_session_auth\";\nexport const NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_OPTIONS = {\n    environmentVariableSelector: (env) => booleanSelector(env, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_ENV_NAME, SelectorType.ENV),\n    configFileSelector: (profile) => booleanSelector(profile, NODE_DISABLE_S3_EXPRESS_SESSION_AUTH_INI_NAME, SelectorType.CONFIG),\n    default: false,\n};\n","import { SignatureV4 } from \"@smithy/signature-v4\";\nimport { SESSION_TOKEN_HEADER, SESSION_TOKEN_QUERY_PARAM } from \"../constants\";\nexport class SignatureV4S3Express extends SignatureV4 {\n    async signWithCredentials(requestToSign, credentials, options) {\n        const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n        requestToSign.headers[SESSION_TOKEN_HEADER] = credentials.sessionToken;\n        const privateAccess = this;\n        setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n        return privateAccess.signRequest(requestToSign, options ?? {});\n    }\n    async presignWithCredentials(requestToSign, credentials, options) {\n        const credentialsWithoutSessionToken = getCredentialsWithoutSessionToken(credentials);\n        delete requestToSign.headers[SESSION_TOKEN_HEADER];\n        requestToSign.headers[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n        requestToSign.query = requestToSign.query ?? {};\n        requestToSign.query[SESSION_TOKEN_QUERY_PARAM] = credentials.sessionToken;\n        const privateAccess = this;\n        setSingleOverride(privateAccess, credentialsWithoutSessionToken);\n        return this.presign(requestToSign, options);\n    }\n}\nfunction getCredentialsWithoutSessionToken(credentials) {\n    const credentialsWithoutSessionToken = {\n        accessKeyId: credentials.accessKeyId,\n        secretAccessKey: credentials.secretAccessKey,\n        expiration: credentials.expiration,\n    };\n    return credentialsWithoutSessionToken;\n}\nfunction setSingleOverride(privateAccess, credentialsWithoutSessionToken) {\n    const id = setTimeout(() => {\n        throw new Error(\"SignatureV4S3Express credential override was created but not called.\");\n    }, 10);\n    const currentCredentialProvider = privateAccess.credentialProvider;\n    const overrideCredentialsProviderOnce = () => {\n        clearTimeout(id);\n        privateAccess.credentialProvider = currentCredentialProvider;\n        return Promise.resolve(credentialsWithoutSessionToken);\n    };\n    privateAccess.credentialProvider = overrideCredentialsProviderOnce;\n}\n","import { setFeature } from \"@aws-sdk/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { S3_EXPRESS_AUTH_SCHEME, S3_EXPRESS_BACKEND, S3_EXPRESS_BUCKET_TYPE, SESSION_TOKEN_HEADER } from \"../constants\";\nexport const s3ExpressMiddleware = (options) => {\n    return (next, context) => async (args) => {\n        if (context.endpointV2) {\n            const endpoint = context.endpointV2;\n            const isS3ExpressAuth = endpoint.properties?.authSchemes?.[0]?.name === S3_EXPRESS_AUTH_SCHEME;\n            const isS3ExpressBucket = endpoint.properties?.backend === S3_EXPRESS_BACKEND ||\n                endpoint.properties?.bucketType === S3_EXPRESS_BUCKET_TYPE;\n            if (isS3ExpressBucket) {\n                setFeature(context, \"S3_EXPRESS_BUCKET\", \"J\");\n                context.isS3ExpressBucket = true;\n            }\n            if (isS3ExpressAuth) {\n                const requestBucket = args.input.Bucket;\n                if (requestBucket) {\n                    const s3ExpressIdentity = await options.s3ExpressIdentityProvider.getS3ExpressIdentity(await options.credentials(), {\n                        Bucket: requestBucket,\n                    });\n                    context.s3ExpressIdentity = s3ExpressIdentity;\n                    if (HttpRequest.isInstance(args.request) && s3ExpressIdentity.sessionToken) {\n                        args.request.headers[SESSION_TOKEN_HEADER] = s3ExpressIdentity.sessionToken;\n                    }\n                }\n            }\n        }\n        return next(args);\n    };\n};\nexport const s3ExpressMiddlewareOptions = {\n    name: \"s3ExpressMiddleware\",\n    step: \"build\",\n    tags: [\"S3\", \"S3_EXPRESS\"],\n    override: true,\n};\nexport const getS3ExpressPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(s3ExpressMiddleware(options), s3ExpressMiddlewareOptions);\n    },\n});\n","export const signS3Express = async (s3ExpressIdentity, signingOptions, request, sigV4MultiRegionSigner) => {\n    const signedRequest = await sigV4MultiRegionSigner.signWithCredentials(request, s3ExpressIdentity, {});\n    if (signedRequest.headers[\"X-Amz-Security-Token\"] || signedRequest.headers[\"x-amz-security-token\"]) {\n        throw new Error(\"X-Amz-Security-Token must not be set for s3-express requests.\");\n    }\n    return signedRequest;\n};\n","import { httpSigningMiddlewareOptions } from \"@smithy/core\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { signS3Express } from \"./signS3Express\";\nconst defaultErrorHandler = (signingProperties) => (error) => {\n    throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nexport const s3ExpressHttpSigningMiddlewareOptions = httpSigningMiddlewareOptions;\nexport const s3ExpressHttpSigningMiddleware = (config) => (next, context) => async (args) => {\n    if (!HttpRequest.isInstance(args.request)) {\n        return next(args);\n    }\n    const smithyContext = getSmithyContext(context);\n    const scheme = smithyContext.selectedHttpAuthScheme;\n    if (!scheme) {\n        throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n    }\n    const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n    let request;\n    if (context.s3ExpressIdentity) {\n        request = await signS3Express(context.s3ExpressIdentity, signingProperties, args.request, await config.signer());\n    }\n    else {\n        request = await signer.sign(args.request, identity, signingProperties);\n    }\n    const output = await next({\n        ...args,\n        request,\n    }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n    (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n    return output;\n};\nexport const getS3ExpressHttpSigningPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(s3ExpressHttpSigningMiddleware(config), httpSigningMiddlewareOptions);\n    },\n});\n","import { S3ExpressIdentityProviderImpl } from \"./s3-express\";\nexport const resolveS3Config = (input, { session, }) => {\n    const [s3ClientProvider, CreateSessionCommandCtor] = session;\n    return {\n        ...input,\n        forcePathStyle: input.forcePathStyle ?? false,\n        useAccelerateEndpoint: input.useAccelerateEndpoint ?? false,\n        disableMultiregionAccessPoints: input.disableMultiregionAccessPoints ?? false,\n        followRegionRedirects: input.followRegionRedirects ?? false,\n        s3ExpressIdentityProvider: input.s3ExpressIdentityProvider ??\n            new S3ExpressIdentityProviderImpl(async (key) => s3ClientProvider().send(new CreateSessionCommandCtor({\n                Bucket: key,\n                SessionMode: \"ReadWrite\",\n            }))),\n        bucketEndpoint: input.bucketEndpoint ?? false,\n    };\n};\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { headStream, splitStream } from \"@smithy/util-stream\";\nconst THROW_IF_EMPTY_BODY = {\n    CopyObjectCommand: true,\n    UploadPartCopyCommand: true,\n    CompleteMultipartUploadCommand: true,\n};\nconst MAX_BYTES_TO_INSPECT = 3000;\nexport const throw200ExceptionsMiddleware = (config) => (next, context) => async (args) => {\n    const result = await next(args);\n    const { response } = result;\n    if (!HttpResponse.isInstance(response)) {\n        return result;\n    }\n    const { statusCode, body: sourceBody } = response;\n    if (statusCode < 200 || statusCode >= 300) {\n        return result;\n    }\n    const isSplittableStream = typeof sourceBody?.stream === \"function\" ||\n        typeof sourceBody?.pipe === \"function\" ||\n        typeof sourceBody?.tee === \"function\";\n    if (!isSplittableStream) {\n        return result;\n    }\n    let bodyCopy = sourceBody;\n    let body = sourceBody;\n    if (sourceBody && typeof sourceBody === \"object\" && !(sourceBody instanceof Uint8Array)) {\n        [bodyCopy, body] = await splitStream(sourceBody);\n    }\n    response.body = body;\n    const bodyBytes = await collectBody(bodyCopy, {\n        streamCollector: async (stream) => {\n            return headStream(stream, MAX_BYTES_TO_INSPECT);\n        },\n    });\n    if (typeof bodyCopy?.destroy === \"function\") {\n        bodyCopy.destroy();\n    }\n    const bodyStringTail = config.utf8Encoder(bodyBytes.subarray(bodyBytes.length - 16));\n    if (bodyBytes.length === 0 && THROW_IF_EMPTY_BODY[context.commandName]) {\n        const err = new Error(\"S3 aborted request\");\n        err.name = \"InternalError\";\n        throw err;\n    }\n    if (bodyStringTail && bodyStringTail.endsWith(\"</Error>\")) {\n        response.statusCode = 400;\n    }\n    return result;\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};\nexport const throw200ExceptionsMiddlewareOptions = {\n    relation: \"after\",\n    toMiddleware: \"deserializerMiddleware\",\n    tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n    name: \"throw200ExceptionsMiddleware\",\n    override: true,\n};\nexport const getThrow200ExceptionsPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n    },\n});\n","export const validate = (str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\nexport const parse = (arn) => {\n    const segments = arn.split(\":\");\n    if (segments.length < 6 || segments[0] !== \"arn\")\n        throw new Error(\"Malformed ARN\");\n    const [, partition, service, region, accountId, ...resource] = segments;\n    return {\n        partition,\n        service,\n        region,\n        accountId,\n        resource: resource.join(\":\"),\n    };\n};\nexport const build = (arnObject) => {\n    const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n    if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n        throw new Error(\"Input ARN object is invalid\");\n    }\n    return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n};\n","export function bucketEndpointMiddleware(options) {\n    return (next, context) => async (args) => {\n        if (options.bucketEndpoint) {\n            const endpoint = context.endpointV2;\n            if (endpoint) {\n                const bucket = args.input.Bucket;\n                if (typeof bucket === \"string\") {\n                    try {\n                        const bucketEndpointUrl = new URL(bucket);\n                        context.endpointV2 = {\n                            ...endpoint,\n                            url: bucketEndpointUrl,\n                        };\n                    }\n                    catch (e) {\n                        const warning = `@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${bucket} could not be parsed as URL.`;\n                        if (context.logger?.constructor?.name === \"NoOpLogger\") {\n                            console.warn(warning);\n                        }\n                        else {\n                            context.logger?.warn?.(warning);\n                        }\n                        throw e;\n                    }\n                }\n            }\n        }\n        return next(args);\n    };\n}\nexport const bucketEndpointMiddlewareOptions = {\n    name: \"bucketEndpointMiddleware\",\n    override: true,\n    relation: \"after\",\n    toMiddleware: \"endpointV2Middleware\",\n};\n","import { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketEndpointMiddleware, bucketEndpointMiddlewareOptions } from \"./bucket-endpoint-middleware\";\nexport function validateBucketNameMiddleware({ bucketEndpoint }) {\n    return (next) => async (args) => {\n        const { input: { Bucket }, } = args;\n        if (!bucketEndpoint && typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n            const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n            err.name = \"InvalidBucketName\";\n            throw err;\n        }\n        return next({ ...args });\n    };\n}\nexport const validateBucketNameMiddlewareOptions = {\n    step: \"initialize\",\n    tags: [\"VALIDATE_BUCKET_NAME\"],\n    name: \"validateBucketNameMiddleware\",\n    override: true,\n};\nexport const getValidateBucketNamePlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(validateBucketNameMiddleware(options), validateBucketNameMiddlewareOptions);\n        clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n    },\n});\n","import { normalizeProvider } from \"@smithy/core\";\nexport const DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n    if (appId === undefined) {\n        return true;\n    }\n    return typeof appId === \"string\" && appId.length <= 50;\n}\nexport function resolveUserAgentConfig(input) {\n    const normalizedAppIdProvider = normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n    return {\n        ...input,\n        customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n        userAgentAppId: async () => {\n            const appId = await normalizedAppIdProvider();\n            if (!isValidUserAgentAppId(appId)) {\n                const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n                if (typeof appId !== \"string\") {\n                    logger?.warn(\"userAgentAppId must be a string or undefined.\");\n                }\n                else if (appId.length > 50) {\n                    logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n                }\n            }\n            return appId;\n        },\n    };\n}\n","export class EndpointCache {\n    constructor({ size, params }) {\n        this.data = new Map();\n        this.parameters = [];\n        this.capacity = size ?? 50;\n        if (params) {\n            this.parameters = params;\n        }\n    }\n    get(endpointParams, resolver) {\n        const key = this.hash(endpointParams);\n        if (key === false) {\n            return resolver();\n        }\n        if (!this.data.has(key)) {\n            if (this.data.size > this.capacity + 10) {\n                const keys = this.data.keys();\n                let i = 0;\n                while (true) {\n                    const { value, done } = keys.next();\n                    this.data.delete(value);\n                    if (done || ++i > 10) {\n                        break;\n                    }\n                }\n            }\n            this.data.set(key, resolver());\n        }\n        return this.data.get(key);\n    }\n    size() {\n        return this.data.size;\n    }\n    hash(endpointParams) {\n        let buffer = \"\";\n        const { parameters } = this;\n        if (parameters.length === 0) {\n            return false;\n        }\n        for (const param of parameters) {\n            const val = String(endpointParams[param] ?? \"\");\n            if (val.includes(\"|;\")) {\n                return false;\n            }\n            buffer += val + \"|;\";\n        }\n        return buffer;\n    }\n}\n","const IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n","const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const isValidHostLabel = (value, allowSubDomains = false) => {\n    if (!allowSubDomains) {\n        return VALID_HOST_LABEL_REGEX.test(value);\n    }\n    const labels = value.split(\".\");\n    for (const label of labels) {\n        if (!isValidHostLabel(label)) {\n            return false;\n        }\n    }\n    return true;\n};\n","export const customEndpointFunctions = {};\n","export const debugId = \"endpoints\";\n","export function toDebugString(input) {\n    if (typeof input !== \"object\" || input == null) {\n        return input;\n    }\n    if (\"ref\" in input) {\n        return `$${toDebugString(input.ref)}`;\n    }\n    if (\"fn\" in input) {\n        return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n    }\n    return JSON.stringify(input, null, 2);\n}\n","export class EndpointError extends Error {\n    constructor(message) {\n        super(message);\n        this.name = \"EndpointError\";\n    }\n}\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","import { EndpointError } from \"../types\";\nexport const getAttrPathList = (path) => {\n    const parts = path.split(\".\");\n    const pathList = [];\n    for (const part of parts) {\n        const squareBracketIndex = part.indexOf(\"[\");\n        if (squareBracketIndex !== -1) {\n            if (part.indexOf(\"]\") !== part.length - 1) {\n                throw new EndpointError(`Path: '${path}' does not end with ']'`);\n            }\n            const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n            if (Number.isNaN(parseInt(arrayIndex))) {\n                throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n            }\n            if (squareBracketIndex !== 0) {\n                pathList.push(part.slice(0, squareBracketIndex));\n            }\n            pathList.push(arrayIndex);\n        }\n        else {\n            pathList.push(part);\n        }\n    }\n    return pathList;\n};\n","import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n    if (typeof acc !== \"object\") {\n        throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n    }\n    else if (Array.isArray(acc)) {\n        return acc[parseInt(index)];\n    }\n    return acc[index];\n}, value);\n","export const isSet = (value) => value != null;\n","export const not = (value) => !value;\n","import { EndpointURLScheme } from \"@smithy/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n    [EndpointURLScheme.HTTP]: 80,\n    [EndpointURLScheme.HTTPS]: 443,\n};\nexport const parseURL = (value) => {\n    const whatwgURL = (() => {\n        try {\n            if (value instanceof URL) {\n                return value;\n            }\n            if (typeof value === \"object\" && \"hostname\" in value) {\n                const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n                const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n                url.search = Object.entries(query)\n                    .map(([k, v]) => `${k}=${v}`)\n                    .join(\"&\");\n                return url;\n            }\n            return new URL(value);\n        }\n        catch (error) {\n            return null;\n        }\n    })();\n    if (!whatwgURL) {\n        console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n        return null;\n    }\n    const urlString = whatwgURL.href;\n    const { host, hostname, pathname, protocol, search } = whatwgURL;\n    if (search) {\n        return null;\n    }\n    const scheme = protocol.slice(0, -1);\n    if (!Object.values(EndpointURLScheme).includes(scheme)) {\n        return null;\n    }\n    const isIp = isIpAddress(hostname);\n    const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n        (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n    const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n    return {\n        scheme,\n        authority,\n        path: pathname,\n        normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n        isIp,\n    };\n};\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n    if (start >= stop || input.length < stop) {\n        return null;\n    }\n    if (!reverse) {\n        return input.substring(start, stop);\n    }\n    return input.substring(input.length - stop, input.length - start);\n};\n","export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n","import { booleanEquals, getAttr, isSet, isValidHostLabel, not, parseURL, stringEquals, substring, uriEncode, } from \"../lib\";\nexport const endpointFunctions = {\n    booleanEquals,\n    getAttr,\n    isSet,\n    isValidHostLabel,\n    not,\n    parseURL,\n    stringEquals,\n    substring,\n    uriEncode,\n};\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n    const evaluatedTemplateArr = [];\n    const templateContext = {\n        ...options.endpointParams,\n        ...options.referenceRecord,\n    };\n    let currentIndex = 0;\n    while (currentIndex < template.length) {\n        const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n        if (openingBraceIndex === -1) {\n            evaluatedTemplateArr.push(template.slice(currentIndex));\n            break;\n        }\n        evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n        const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n        if (closingBraceIndex === -1) {\n            evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n            break;\n        }\n        if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n            evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n            currentIndex = closingBraceIndex + 2;\n        }\n        const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n        if (parameterName.includes(\"#\")) {\n            const [refName, attrName] = parameterName.split(\"#\");\n            evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));\n        }\n        else {\n            evaluatedTemplateArr.push(templateContext[parameterName]);\n        }\n        currentIndex = closingBraceIndex + 1;\n    }\n    return evaluatedTemplateArr.join(\"\");\n};\n","export const getReferenceValue = ({ ref }, options) => {\n    const referenceRecord = {\n        ...options.endpointParams,\n        ...options.referenceRecord,\n    };\n    return referenceRecord[ref];\n};\n","import { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n    if (typeof obj === \"string\") {\n        return evaluateTemplate(obj, options);\n    }\n    else if (obj[\"fn\"]) {\n        return callFunction(obj, options);\n    }\n    else if (obj[\"ref\"]) {\n        return getReferenceValue(obj, options);\n    }\n    throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\n","import { customEndpointFunctions } from \"./customEndpointFunctions\";\nimport { endpointFunctions } from \"./endpointFunctions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const callFunction = ({ fn, argv }, options) => {\n    const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : evaluateExpression(arg, \"arg\", options));\n    const fnSegments = fn.split(\".\");\n    if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) {\n        return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);\n    }\n    return endpointFunctions[fn](...evaluatedArgs);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = ({ assign, ...fnArgs }, options) => {\n    if (assign && assign in options.referenceRecord) {\n        throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n    }\n    const value = callFunction(fnArgs, options);\n    options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n    return {\n        result: value === \"\" ? true : !!value,\n        ...(assign != null && { toAssign: { name: assign, value } }),\n    };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const evaluateConditions = (conditions = [], options) => {\n    const conditionsReferenceRecord = {};\n    for (const condition of conditions) {\n        const { result, toAssign } = evaluateCondition(condition, {\n            ...options,\n            referenceRecord: {\n                ...options.referenceRecord,\n                ...conditionsReferenceRecord,\n            },\n        });\n        if (!result) {\n            return { result };\n        }\n        if (toAssign) {\n            conditionsReferenceRecord[toAssign.name] = toAssign.value;\n            options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n        }\n    }\n    return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n    ...acc,\n    [headerKey]: headerVal.map((headerValEntry) => {\n        const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n        if (typeof processedExpr !== \"string\") {\n            throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n        }\n        return processedExpr;\n    }),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nexport const getEndpointProperty = (property, options) => {\n    if (Array.isArray(property)) {\n        return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n    }\n    switch (typeof property) {\n        case \"string\":\n            return evaluateTemplate(property, options);\n        case \"object\":\n            if (property === null) {\n                throw new EndpointError(`Unexpected endpoint property: ${property}`);\n            }\n            return getEndpointProperties(property, options);\n        case \"boolean\":\n            return property;\n        default:\n            throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n    }\n};\n","import { getEndpointProperty } from \"./getEndpointProperty\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n    ...acc,\n    [propertyKey]: getEndpointProperty(propertyVal, options),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointUrl = (endpointUrl, options) => {\n    const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n    if (typeof expression === \"string\") {\n        try {\n            return new URL(expression);\n        }\n        catch (error) {\n            console.error(`Failed to construct URL with ${expression}`, error);\n            throw error;\n        }\n    }\n    throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const evaluateEndpointRule = (endpointRule, options) => {\n    const { conditions, endpoint } = endpointRule;\n    const { result, referenceRecord } = evaluateConditions(conditions, options);\n    if (!result) {\n        return;\n    }\n    const endpointRuleOptions = {\n        ...options,\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n    };\n    const { url, properties, headers } = endpoint;\n    options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n    return {\n        ...(headers != undefined && {\n            headers: getEndpointHeaders(headers, endpointRuleOptions),\n        }),\n        ...(properties != undefined && {\n            properties: getEndpointProperties(properties, endpointRuleOptions),\n        }),\n        url: getEndpointUrl(url, endpointRuleOptions),\n    };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const evaluateErrorRule = (errorRule, options) => {\n    const { conditions, error } = errorRule;\n    const { result, referenceRecord } = evaluateConditions(conditions, options);\n    if (!result) {\n        return;\n    }\n    throw new EndpointError(evaluateExpression(error, \"Error\", {\n        ...options,\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n    }));\n};\n","import { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateRules } from \"./evaluateRules\";\nexport const evaluateTreeRule = (treeRule, options) => {\n    const { conditions, rules } = treeRule;\n    const { result, referenceRecord } = evaluateConditions(conditions, options);\n    if (!result) {\n        return;\n    }\n    return evaluateRules(rules, {\n        ...options,\n        referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n    });\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nimport { evaluateTreeRule } from \"./evaluateTreeRule\";\nexport const evaluateRules = (rules, options) => {\n    for (const rule of rules) {\n        if (rule.type === \"endpoint\") {\n            const endpointOrUndefined = evaluateEndpointRule(rule, options);\n            if (endpointOrUndefined) {\n                return endpointOrUndefined;\n            }\n        }\n        else if (rule.type === \"error\") {\n            evaluateErrorRule(rule, options);\n        }\n        else if (rule.type === \"tree\") {\n            const endpointOrUndefined = evaluateTreeRule(rule, options);\n            if (endpointOrUndefined) {\n                return endpointOrUndefined;\n            }\n        }\n        else {\n            throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n        }\n    }\n    throw new EndpointError(`Rules evaluation failed`);\n};\n","import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const resolveEndpoint = (ruleSetObject, options) => {\n    const { endpointParams, logger } = options;\n    const { parameters, rules } = ruleSetObject;\n    options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n    const paramsWithDefault = Object.entries(parameters)\n        .filter(([, v]) => v.default != null)\n        .map(([k, v]) => [k, v.default]);\n    if (paramsWithDefault.length > 0) {\n        for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n            endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n        }\n    }\n    const requiredParams = Object.entries(parameters)\n        .filter(([, v]) => v.required)\n        .map(([k]) => k);\n    for (const requiredParam of requiredParams) {\n        if (endpointParams[requiredParam] == null) {\n            throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n        }\n    }\n    const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n    options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n    return endpoint;\n};\n","import { isValidHostLabel } from \"@smithy/util-endpoints\";\nimport { isIpAddress } from \"../isIpAddress\";\nexport const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n    if (allowSubDomains) {\n        for (const label of value.split(\".\")) {\n            if (!isVirtualHostableS3Bucket(label)) {\n                return false;\n            }\n        }\n        return true;\n    }\n    if (!isValidHostLabel(value)) {\n        return false;\n    }\n    if (value.length < 3 || value.length > 63) {\n        return false;\n    }\n    if (value !== value.toLowerCase()) {\n        return false;\n    }\n    if (isIpAddress(value)) {\n        return false;\n    }\n    return true;\n};\n","const ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nexport const parseArn = (value) => {\n    const segments = value.split(ARN_DELIMITER);\n    if (segments.length < 6)\n        return null;\n    const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n    if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n        return null;\n    const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n    return {\n        partition,\n        service,\n        region,\n        accountId,\n        resourceId,\n    };\n};\n","import partitionsInfo from \"./partitions.json\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const partition = (value) => {\n    const { partitions } = selectedPartitionsInfo;\n    for (const partition of partitions) {\n        const { regions, outputs } = partition;\n        for (const [region, regionData] of Object.entries(regions)) {\n            if (region === value) {\n                return {\n                    ...outputs,\n                    ...regionData,\n                };\n            }\n        }\n    }\n    for (const partition of partitions) {\n        const { regionRegex, outputs } = partition;\n        if (new RegExp(regionRegex).test(value)) {\n            return {\n                ...outputs,\n            };\n        }\n    }\n    const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n    if (!DEFAULT_PARTITION) {\n        throw new Error(\"Provided region was not found in the partition array or regex,\" +\n            \" and default partition with id 'aws' doesn't exist.\");\n    }\n    return {\n        ...DEFAULT_PARTITION.outputs,\n    };\n};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n    selectedPartitionsInfo = partitionsInfo;\n    selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n    setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n","import { customEndpointFunctions } from \"@smithy/util-endpoints\";\nimport { isVirtualHostableS3Bucket } from \"./lib/aws/isVirtualHostableS3Bucket\";\nimport { parseArn } from \"./lib/aws/parseArn\";\nimport { partition } from \"./lib/aws/partition\";\nexport const awsEndpointFunctions = {\n    isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n    parseArn: parseArn,\n    partition: partition,\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n","import { setFeature } from \"@aws-sdk/core\";\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nexport async function checkFeatures(context, config, args) {\n    const request = args.request;\n    if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n        setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n    }\n    if (typeof config.retryStrategy === \"function\") {\n        const retryStrategy = await config.retryStrategy();\n        if (typeof retryStrategy.acquireInitialRetryToken === \"function\") {\n            if (retryStrategy.constructor?.name?.includes(\"Adaptive\")) {\n                setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n            }\n            else {\n                setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n            }\n        }\n        else {\n            setFeature(context, \"RETRY_MODE_LEGACY\", \"D\");\n        }\n    }\n    if (typeof config.accountIdEndpointMode === \"function\") {\n        const endpointV2 = context.endpointV2;\n        if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n            setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n        }\n        switch (await config.accountIdEndpointMode?.()) {\n            case \"disabled\":\n                setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n                break;\n            case \"preferred\":\n                setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n                break;\n            case \"required\":\n                setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n                break;\n        }\n    }\n    const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n    if (identity?.$source) {\n        const credentials = identity;\n        if (credentials.accountId) {\n            setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n        }\n        for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n            setFeature(context, key, value);\n        }\n    }\n}\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","const BYTE_LIMIT = 1024;\nexport function encodeFeatures(features) {\n    let buffer = \"\";\n    for (const key in features) {\n        const val = features[key];\n        if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n            if (buffer.length) {\n                buffer += \",\" + val;\n            }\n            else {\n                buffer += val;\n            }\n            continue;\n        }\n        break;\n    }\n    return buffer;\n}\n","import { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { checkFeatures } from \"./check-features\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nimport { encodeFeatures } from \"./encode-features\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n    const { request } = args;\n    if (!HttpRequest.isInstance(request)) {\n        return next(args);\n    }\n    const { headers } = request;\n    const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n    const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n    await checkFeatures(context, options, args);\n    const awsContext = context;\n    defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n    const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n    const appId = await options.userAgentAppId();\n    if (appId) {\n        defaultUserAgent.push(escapeUserAgent([`app/${appId}`]));\n    }\n    const prefix = getUserAgentPrefix();\n    const sdkUserAgentValue = (prefix ? [prefix] : [])\n        .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n        .join(SPACE);\n    const normalUAValue = [\n        ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n        ...customUserAgent,\n    ].join(SPACE);\n    if (options.runtime !== \"browser\") {\n        if (normalUAValue) {\n            headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n                ? `${headers[USER_AGENT]} ${normalUAValue}`\n                : normalUAValue;\n        }\n        headers[USER_AGENT] = sdkUserAgentValue;\n    }\n    else {\n        headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n    }\n    return next({\n        ...args,\n        request,\n    });\n};\nconst escapeUserAgent = (userAgentPair) => {\n    const name = userAgentPair[0]\n        .split(UA_NAME_SEPARATOR)\n        .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n        .join(UA_NAME_SEPARATOR);\n    const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n    const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\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        .reduce((acc, item, index) => {\n        switch (index) {\n            case 0:\n                return item;\n            case 1:\n                return `${acc}/${item}`;\n            default:\n                return `${acc}#${item}`;\n        }\n    }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n    name: \"getUserAgentMiddleware\",\n    step: \"build\",\n    priority: \"low\",\n    tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n    override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n    },\n});\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n    environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),\n    configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),\n    default: false,\n};\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport const CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n    environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),\n    configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),\n    default: false,\n};\n","export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport const getRealRegion = (region) => isFipsRegion(region)\n    ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n        ? \"us-east-1\"\n        : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n    : region;\n","import { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const 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 getRealRegion(region);\n            }\n            const providedRegion = await region();\n            return getRealRegion(providedRegion);\n        },\n        useFipsEndpoint: async () => {\n            const providedRegion = typeof region === \"string\" ? region : await region();\n            if (isFipsRegion(providedRegion)) {\n                return true;\n            }\n            return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n        },\n    };\n};\n","export const resolveEventStreamSerdeConfig = (input) => ({\n    ...input,\n    eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n    return (next) => async (args) => {\n        const request = args.request;\n        if (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}\nexport const contentLengthMiddlewareOptions = {\n    step: \"build\",\n    tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n    name: \"contentLengthMiddleware\",\n    override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n    },\n});\n","export const resolveParamsForS3 = async (endpointParams) => {\n    const bucket = endpointParams?.Bucket || \"\";\n    if (typeof endpointParams.Bucket === \"string\") {\n        endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n    }\n    if (isArnBucketName(bucket)) {\n        if (endpointParams.ForcePathStyle === true) {\n            throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n        }\n    }\n    else if (!isDnsCompatibleBucketName(bucket) ||\n        (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n        bucket.toLowerCase() !== bucket ||\n        bucket.length < 3) {\n        endpointParams.ForcePathStyle = true;\n    }\n    if (endpointParams.DisableMultiRegionAccessPoints) {\n        endpointParams.disableMultiRegionAccessPoints = true;\n        endpointParams.DisableMRAP = true;\n    }\n    return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n    const [arn, partition, service, , , bucket] = bucketName.split(\":\");\n    const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n    const isValidArn = Boolean(isArn && partition && service && bucket);\n    if (isArn && !isValidArn) {\n        throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n    }\n    return isValidArn;\n};\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n    const configProvider = async () => {\n        const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n        if (typeof configValue === \"function\") {\n            return configValue();\n        }\n        return configValue;\n    };\n    if (configKey === \"credentialScope\" || canonicalEndpointParamKey === \"CredentialScope\") {\n        return async () => {\n            const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n            const configValue = credentials?.credentialScope ?? credentials?.CredentialScope;\n            return configValue;\n        };\n    }\n    if (configKey === \"accountId\" || canonicalEndpointParamKey === \"AccountId\") {\n        return async () => {\n            const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n            const configValue = credentials?.accountId ?? credentials?.AccountId;\n            return configValue;\n        };\n    }\n    if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n        return async () => {\n            const endpoint = await configProvider();\n            if (endpoint && typeof endpoint === \"object\") {\n                if (\"url\" in endpoint) {\n                    return endpoint.url.href;\n                }\n                if (\"hostname\" in endpoint) {\n                    const { protocol, hostname, port, path } = endpoint;\n                    return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n                }\n            }\n            return endpoint;\n        };\n    }\n    return configProvider;\n};\n","export const getEndpointFromConfig = async (serviceId) => undefined;\n","export function 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}\n","import { parseQueryString } from \"@smithy/querystring-parser\";\nexport const parseUrl = (url) => {\n    if (typeof url === \"string\") {\n        return parseUrl(new URL(url));\n    }\n    const { hostname, pathname, port, protocol, search } = url;\n    let query;\n    if (search) {\n        query = parseQueryString(search);\n    }\n    return {\n        hostname,\n        port: port ? parseInt(port) : undefined,\n        protocol,\n        path: pathname,\n        query,\n    };\n};\n","import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n    if (typeof endpoint === \"object\") {\n        if (\"url\" in endpoint) {\n            return parseUrl(endpoint.url);\n        }\n        return endpoint;\n    }\n    return parseUrl(endpoint);\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nimport { getEndpointFromConfig } from \"./getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./toEndpointV1\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n    if (!clientConfig.endpoint) {\n        let endpointFromConfig;\n        if (clientConfig.serviceConfiguredEndpoint) {\n            endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n        }\n        else {\n            endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId);\n        }\n        if (endpointFromConfig) {\n            clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n        }\n    }\n    const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n    if (typeof clientConfig.endpointProvider !== \"function\") {\n        throw new Error(\"config.endpointProvider is not set.\");\n    }\n    const endpoint = clientConfig.endpointProvider(endpointParams, context);\n    return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n    const endpointParams = {};\n    const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n    for (const [name, instruction] of Object.entries(instructions)) {\n        switch (instruction.type) {\n            case \"staticContextParams\":\n                endpointParams[name] = instruction.value;\n                break;\n            case \"contextParams\":\n                endpointParams[name] = commandInput[instruction.name];\n                break;\n            case \"clientContextParams\":\n            case \"builtInParams\":\n                endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)();\n                break;\n            case \"operationContextParams\":\n                endpointParams[name] = instruction.get(commandInput);\n                break;\n            default:\n                throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n        }\n    }\n    if (Object.keys(instructions).length === 0) {\n        Object.assign(endpointParams, clientConfig);\n    }\n    if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n        await resolveParamsForS3(endpointParams);\n    }\n    return endpointParams;\n};\n","import { setFeature } from \"@smithy/core\";\nimport { getSmithyContext } from \"@smithy/util-middleware\";\nimport { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n    return (next, context) => async (args) => {\n        if (config.endpoint) {\n            setFeature(context, \"ENDPOINT_OVERRIDE\", \"N\");\n        }\n        const endpoint = await getEndpointFromInstructions(args.input, {\n            getEndpointParameterInstructions() {\n                return instructions;\n            },\n        }, { ...config }, context);\n        context.endpointV2 = endpoint;\n        context.authSchemes = endpoint.properties?.authSchemes;\n        const authScheme = context.authSchemes?.[0];\n        if (authScheme) {\n            context[\"signing_region\"] = authScheme.signingRegion;\n            context[\"signing_service\"] = authScheme.signingName;\n            const smithyContext = getSmithyContext(context);\n            const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption;\n            if (httpAuthOption) {\n                httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, {\n                    signing_region: authScheme.signingRegion,\n                    signingRegion: authScheme.signingRegion,\n                    signing_service: authScheme.signingName,\n                    signingName: authScheme.signingName,\n                    signingRegionSet: authScheme.signingRegionSet,\n                }, authScheme.properties);\n            }\n        }\n        return next({\n            ...args,\n        });\n    };\n};\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n    step: \"serialize\",\n    tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n    name: \"endpointV2Middleware\",\n    override: true,\n    relation: \"before\",\n    toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n    applyToStack: (clientStack) => {\n        clientStack.addRelativeTo(endpointMiddleware({\n            config,\n            instructions,\n        }), endpointMiddlewareOptions);\n    },\n});\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { getEndpointFromConfig } from \"./adaptors/getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n    const tls = input.tls ?? true;\n    const { endpoint } = input;\n    const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n    const isCustomEndpoint = !!endpoint;\n    const resolvedConfig = {\n        ...input,\n        endpoint: customEndpointProvider,\n        tls,\n        isCustomEndpoint,\n        useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n        useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n    };\n    let configuredEndpointPromise = undefined;\n    resolvedConfig.serviceConfiguredEndpoint = async () => {\n        if (input.serviceId && !configuredEndpointPromise) {\n            configuredEndpointPromise = getEndpointFromConfig(input.serviceId);\n        }\n        return configuredEndpointPromise;\n    };\n    return resolvedConfig;\n};\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n    RETRY_MODES[\"STANDARD\"] = \"standard\";\n    RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport const DEFAULT_MAX_ATTEMPTS = 3;\nexport const DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","export const CLOCK_SKEW_ERROR_CODES = [\n    \"AuthFailure\",\n    \"InvalidSignatureException\",\n    \"RequestExpired\",\n    \"RequestInTheFuture\",\n    \"RequestTimeTooSkewed\",\n    \"SignatureDoesNotMatch\",\n];\nexport const 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];\nexport const TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n    THROTTLING_ERROR_CODES.includes(error.name) ||\n    error.$retryable?.throttling == true;\nexport const isTransientError = (error, depth = 0) => isClockSkewCorrectedError(error) ||\n    TRANSIENT_ERROR_CODES.includes(error.name) ||\n    NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n    TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||\n    (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));\nexport const isServerError = (error) => {\n    if (error.$metadata?.httpStatusCode !== undefined) {\n        const statusCode = error.$metadata.httpStatusCode;\n        if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n            return true;\n        }\n        return false;\n    }\n    return false;\n};\n","import { isThrottlingError } from \"@smithy/service-error-classification\";\nexport class DefaultRateLimiter {\n    constructor(options) {\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 = options?.beta ?? 0.7;\n        this.minCapacity = options?.minCapacity ?? 1;\n        this.minFillRate = options?.minFillRate ?? 0.5;\n        this.scaleConstant = options?.scaleConstant ?? 0.4;\n        this.smooth = options?.smooth ?? 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) => DefaultRateLimiter.setTimeoutFn(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 (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}\nDefaultRateLimiter.setTimeoutFn = setTimeout;\n","export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const getDefaultRetryBackoffStrategy = () => {\n    let delayBase = DEFAULT_RETRY_DELAY_BASE;\n    const computeNextBackoffDelay = (attempts) => {\n        return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n    };\n    const setDelayBase = (delay) => {\n        delayBase = delay;\n    };\n    return {\n        computeNextBackoffDelay,\n        setDelayBase,\n    };\n};\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n    const getRetryCount = () => retryCount;\n    const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n    const getRetryCost = () => retryCost;\n    return {\n        getRetryCount,\n        getRetryDelay,\n        getRetryCost,\n    };\n};\n","import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n    constructor(maxAttempts) {\n        this.maxAttempts = maxAttempts;\n        this.mode = RETRY_MODES.STANDARD;\n        this.capacity = INITIAL_RETRY_TOKENS;\n        this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n        this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n    }\n    async acquireInitialRetryToken(retryTokenScope) {\n        return createDefaultRetryToken({\n            retryDelay: DEFAULT_RETRY_DELAY_BASE,\n            retryCount: 0,\n        });\n    }\n    async refreshRetryTokenForRetry(token, errorInfo) {\n        const maxAttempts = await this.getMaxAttempts();\n        if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n            const errorType = errorInfo.errorType;\n            this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n            const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n            const retryDelay = errorInfo.retryAfterHint\n                ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n                : delayFromErrorType;\n            const capacityCost = this.getCapacityCost(errorType);\n            this.capacity -= capacityCost;\n            return createDefaultRetryToken({\n                retryDelay,\n                retryCount: token.getRetryCount() + 1,\n                retryCost: capacityCost,\n            });\n        }\n        throw new Error(\"No retry token available\");\n    }\n    recordSuccess(token) {\n        this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n    }\n    getCapacity() {\n        return this.capacity;\n    }\n    async getMaxAttempts() {\n        try {\n            return await this.maxAttemptsProvider();\n        }\n        catch (error) {\n            console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n            return DEFAULT_MAX_ATTEMPTS;\n        }\n    }\n    shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n        const attempts = tokenToRenew.getRetryCount() + 1;\n        return (attempts < maxAttempts &&\n            this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n            this.isRetryableError(errorInfo.errorType));\n    }\n    getCapacityCost(errorType) {\n        return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n    }\n    isRetryableError(errorType) {\n        return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n    }\n}\n","import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n    constructor(maxAttemptsProvider, options) {\n        this.maxAttemptsProvider = maxAttemptsProvider;\n        this.mode = RETRY_MODES.ADAPTIVE;\n        const { rateLimiter } = options ?? {};\n        this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n        this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n    }\n    async acquireInitialRetryToken(retryTokenScope) {\n        await this.rateLimiter.getSendToken();\n        return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n    }\n    async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n        this.rateLimiter.updateClientSendingRate(errorInfo);\n        return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n    }\n    recordSuccess(token) {\n        this.rateLimiter.updateClientSendingRate({});\n        this.standardRetryStrategy.recordSuccess(token);\n    }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n  // lazy load so that environments that need to polyfill have a chance to do so\n  if (!getRandomValues) {\n    // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n    if (!getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n  }\n\n  return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(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  return 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]];\n}\n\nfunction stringify(arr, offset = 0) {\n  const uuid = unsafeStringify(arr, offset); // 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 (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n  randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  if (native.randomUUID && !buf && !options) {\n    return native.randomUUID();\n  }\n\n  options = options || {};\n  const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\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 unsafeStringify(rnds);\n}\n\nexport default v4;","export const 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","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@smithy/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n    environmentVariableSelector: (env) => {\n        const value = env[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 ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n        }\n        return maxAttempt;\n    },\n    configFileSelector: (profile) => {\n        const value = profile[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 ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n        }\n        return maxAttempt;\n    },\n    default: DEFAULT_MAX_ATTEMPTS,\n};\nexport const resolveRetryConfig = (input) => {\n    const { retryStrategy } = input;\n    const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n    return {\n        ...input,\n        maxAttempts,\n        retryStrategy: async () => {\n            if (retryStrategy) {\n                return retryStrategy;\n            }\n            const retryMode = await normalizeProvider(input.retryMode)();\n            if (retryMode === RETRY_MODES.ADAPTIVE) {\n                return new AdaptiveRetryStrategy(maxAttempts);\n            }\n            return new StandardRetryStrategy(maxAttempts);\n        },\n    };\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n    environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n    configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n    default: DEFAULT_RETRY_MODE,\n};\n","export const isStreamingPayload = (request) => request?.body instanceof ReadableStream;\n","import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@smithy/service-error-classification\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@smithy/util-retry\";\nimport { v4 } from \"uuid\";\nimport { isStreamingPayload } from \"./isStreamingPayload/isStreamingPayload\";\nimport { asSdkError } from \"./util\";\nexport const retryMiddleware = (options) => (next, context) => async (args) => {\n    let retryStrategy = await options.retryStrategy();\n    const maxAttempts = await options.maxAttempts();\n    if (isRetryStrategyV2(retryStrategy)) {\n        retryStrategy = retryStrategy;\n        let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n        let lastError = new Error();\n        let attempts = 0;\n        let totalRetryDelay = 0;\n        const { request } = args;\n        const isRequest = HttpRequest.isInstance(request);\n        if (isRequest) {\n            request.headers[INVOCATION_ID_HEADER] = v4();\n        }\n        while (true) {\n            try {\n                if (isRequest) {\n                    request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n                }\n                const { response, output } = await next(args);\n                retryStrategy.recordSuccess(retryToken);\n                output.$metadata.attempts = attempts + 1;\n                output.$metadata.totalRetryDelay = totalRetryDelay;\n                return { response, output };\n            }\n            catch (e) {\n                const retryErrorInfo = getRetryErrorInfo(e);\n                lastError = asSdkError(e);\n                if (isRequest && isStreamingPayload(request)) {\n                    (context.logger instanceof NoOpLogger ? console : context.logger)?.warn(\"An error was encountered in a non-retryable streaming request.\");\n                    throw lastError;\n                }\n                try {\n                    retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n                }\n                catch (refreshError) {\n                    if (!lastError.$metadata) {\n                        lastError.$metadata = {};\n                    }\n                    lastError.$metadata.attempts = attempts + 1;\n                    lastError.$metadata.totalRetryDelay = totalRetryDelay;\n                    throw lastError;\n                }\n                attempts = retryToken.getRetryCount();\n                const delay = retryToken.getRetryDelay();\n                totalRetryDelay += delay;\n                await new Promise((resolve) => setTimeout(resolve, delay));\n            }\n        }\n    }\n    else {\n        retryStrategy = retryStrategy;\n        if (retryStrategy?.mode)\n            context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n        return retryStrategy.retry(next, args);\n    }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n    typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n    typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n    const errorInfo = {\n        error,\n        errorType: getRetryErrorType(error),\n    };\n    const retryAfterHint = getRetryAfterHint(error.$response);\n    if (retryAfterHint) {\n        errorInfo.retryAfterHint = retryAfterHint;\n    }\n    return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n    if (isThrottlingError(error))\n        return \"THROTTLING\";\n    if (isTransientError(error))\n        return \"TRANSIENT\";\n    if (isServerError(error))\n        return \"SERVER_ERROR\";\n    return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n    name: \"retryMiddleware\",\n    tags: [\"RETRY\"],\n    step: \"finalizeRequest\",\n    priority: \"high\",\n    override: true,\n};\nexport const getRetryPlugin = (options) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n    },\n});\nexport const getRetryAfterHint = (response) => {\n    if (!HttpResponse.isInstance(response))\n        return;\n    const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n    if (!retryAfterHeaderName)\n        return;\n    const retryAfter = response.headers[retryAfterHeaderName];\n    const retryAfterSeconds = Number(retryAfter);\n    if (!Number.isNaN(retryAfterSeconds))\n        return new Date(retryAfterSeconds * 1000);\n    const retryAfterDate = new Date(retryAfter);\n    return retryAfterDate;\n};\n","export const signatureV4CrtContainer = {\n    CrtSignerV4: null,\n};\n","import { SignatureV4S3Express } from \"@aws-sdk/middleware-sdk-s3\";\nimport { signatureV4CrtContainer } from \"./signature-v4-crt-container\";\nexport class SignatureV4MultiRegion {\n    sigv4aSigner;\n    sigv4Signer;\n    signerOptions;\n    constructor(options) {\n        this.sigv4Signer = new SignatureV4S3Express(options);\n        this.signerOptions = options;\n    }\n    async sign(requestToSign, options = {}) {\n        if (options.signingRegion === \"*\") {\n            if (this.signerOptions.runtime !== \"node\")\n                throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n            return this.getSigv4aSigner().sign(requestToSign, options);\n        }\n        return this.sigv4Signer.sign(requestToSign, options);\n    }\n    async signWithCredentials(requestToSign, credentials, options = {}) {\n        if (options.signingRegion === \"*\") {\n            if (this.signerOptions.runtime !== \"node\")\n                throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n            return this.getSigv4aSigner().signWithCredentials(requestToSign, credentials, options);\n        }\n        return this.sigv4Signer.signWithCredentials(requestToSign, credentials, options);\n    }\n    async presign(originalRequest, options = {}) {\n        if (options.signingRegion === \"*\") {\n            if (this.signerOptions.runtime !== \"node\")\n                throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n            return this.getSigv4aSigner().presign(originalRequest, options);\n        }\n        return this.sigv4Signer.presign(originalRequest, options);\n    }\n    async presignWithCredentials(originalRequest, credentials, options = {}) {\n        if (options.signingRegion === \"*\") {\n            throw new Error(\"Method presignWithCredentials is not supported for [signingRegion=*].\");\n        }\n        return this.sigv4Signer.presignWithCredentials(originalRequest, credentials, options);\n    }\n    getSigv4aSigner() {\n        if (!this.sigv4aSigner) {\n            let CrtSignerV4 = null;\n            try {\n                CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n                if (typeof CrtSignerV4 !== \"function\")\n                    throw new Error();\n            }\n            catch (e) {\n                e.message =\n                    `${e.message}\\n` +\n                        `Please check whether you have installed the \"@aws-sdk/signature-v4-crt\" package explicitly. \\n` +\n                        `You must also register the package by calling [require(\"@aws-sdk/signature-v4-crt\");] ` +\n                        `or an ESM equivalent such as [import \"@aws-sdk/signature-v4-crt\";]. \\n` +\n                        \"For more information please go to \" +\n                        \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\";\n                throw e;\n            }\n            this.sigv4aSigner = new CrtSignerV4({\n                ...this.signerOptions,\n                signingAlgorithm: 1,\n            });\n        }\n        return this.sigv4aSigner;\n    }\n}\n","const ci = \"required\", cj = \"type\", ck = \"conditions\", cl = \"fn\", cm = \"argv\", cn = \"ref\", co = \"assign\", cp = \"url\", cq = \"properties\", cr = \"backend\", cs = \"authSchemes\", ct = \"disableDoubleEncoding\", cu = \"signingName\", cv = \"signingRegion\", cw = \"headers\", cx = \"signingRegionSet\";\nconst a = 6, b = false, c = true, d = \"isSet\", e = \"booleanEquals\", f = \"error\", g = \"aws.partition\", h = \"stringEquals\", i = \"getAttr\", j = \"name\", k = \"substring\", l = \"bucketSuffix\", m = \"parseURL\", n = \"{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}\", o = \"endpoint\", p = \"tree\", q = \"aws.isVirtualHostableS3Bucket\", r = \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", s = \"not\", t = \"{url#scheme}://{url#authority}{url#path}\", u = \"hardwareType\", v = \"regionPrefix\", w = \"bucketAliasSuffix\", x = \"outpostId\", y = \"isValidHostLabel\", z = \"sigv4a\", A = \"s3-outposts\", B = \"s3\", C = \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", D = \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", E = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", F = \"aws.parseArn\", G = \"bucketArn\", H = \"arnType\", I = \"\", J = \"s3-object-lambda\", K = \"accesspoint\", L = \"accessPointName\", M = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", N = \"mrapPartition\", O = \"outpostType\", P = \"arnPrefix\", Q = \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", R = \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", S = \"https://s3.{partitionResult#dnsSuffix}\", T = { [ci]: false, [cj]: \"String\" }, U = { [ci]: true, \"default\": false, [cj]: \"Boolean\" }, V = { [ci]: false, [cj]: \"Boolean\" }, W = { [cl]: e, [cm]: [{ [cn]: \"Accelerate\" }, true] }, X = { [cl]: e, [cm]: [{ [cn]: \"UseFIPS\" }, true] }, Y = { [cl]: e, [cm]: [{ [cn]: \"UseDualStack\" }, true] }, Z = { [cl]: d, [cm]: [{ [cn]: \"Endpoint\" }] }, aa = { [cl]: g, [cm]: [{ [cn]: \"Region\" }], [co]: \"partitionResult\" }, ab = { [cl]: h, [cm]: [{ [cl]: i, [cm]: [{ [cn]: \"partitionResult\" }, j] }, \"aws-cn\"] }, ac = { [cl]: d, [cm]: [{ [cn]: \"Bucket\" }] }, ad = { [cn]: \"Bucket\" }, ae = { [cl]: m, [cm]: [{ [cn]: \"Endpoint\" }], [co]: \"url\" }, af = { [cl]: e, [cm]: [{ [cl]: i, [cm]: [{ [cn]: \"url\" }, \"isIp\"] }, true] }, ag = { [cn]: \"url\" }, ah = { [cl]: \"uriEncode\", [cm]: [ad], [co]: \"uri_encoded_bucket\" }, ai = { [cr]: \"S3Express\", [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: \"s3express\", [cv]: \"{Region}\" }] }, aj = {}, ak = { [cl]: q, [cm]: [ad, false] }, al = { [f]: \"S3Express bucket name is not a valid virtual hostable name.\", [cj]: f }, am = { [cr]: \"S3Express\", [cs]: [{ [ct]: true, [j]: \"sigv4-s3express\", [cu]: \"s3express\", [cv]: \"{Region}\" }] }, an = { [cl]: d, [cm]: [{ [cn]: \"UseS3ExpressControlEndpoint\" }] }, ao = { [cl]: e, [cm]: [{ [cn]: \"UseS3ExpressControlEndpoint\" }, true] }, ap = { [cl]: s, [cm]: [Z] }, aq = { [f]: \"Unrecognized S3Express bucket name format.\", [cj]: f }, ar = { [cl]: s, [cm]: [ac] }, as = { [cn]: u }, at = { [ck]: [ap], [f]: \"Expected a endpoint to be specified but no endpoint was found\", [cj]: f }, au = { [cs]: [{ [ct]: true, [j]: z, [cu]: A, [cx]: [\"*\"] }, { [ct]: true, [j]: \"sigv4\", [cu]: A, [cv]: \"{Region}\" }] }, av = { [cl]: e, [cm]: [{ [cn]: \"ForcePathStyle\" }, false] }, aw = { [cn]: \"ForcePathStyle\" }, ax = { [cl]: e, [cm]: [{ [cn]: \"Accelerate\" }, false] }, ay = { [cl]: h, [cm]: [{ [cn]: \"Region\" }, \"aws-global\"] }, az = { [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: B, [cv]: \"us-east-1\" }] }, aA = { [cl]: s, [cm]: [ay] }, aB = { [cl]: e, [cm]: [{ [cn]: \"UseGlobalEndpoint\" }, true] }, aC = { [cp]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cq]: { [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: B, [cv]: \"{Region}\" }] }, [cw]: {} }, aD = { [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: B, [cv]: \"{Region}\" }] }, aE = { [cl]: e, [cm]: [{ [cn]: \"UseGlobalEndpoint\" }, false] }, aF = { [cl]: e, [cm]: [{ [cn]: \"UseDualStack\" }, false] }, aG = { [cp]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, aH = { [cl]: e, [cm]: [{ [cn]: \"UseFIPS\" }, false] }, aI = { [cp]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, aJ = { [cp]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, aK = { [cl]: e, [cm]: [{ [cl]: i, [cm]: [ag, \"isIp\"] }, false] }, aL = { [cp]: C, [cq]: aD, [cw]: {} }, aM = { [cp]: r, [cq]: aD, [cw]: {} }, aN = { [o]: aM, [cj]: o }, aO = { [cp]: D, [cq]: aD, [cw]: {} }, aP = { [cp]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, aQ = { [f]: \"Invalid region: region was not a valid DNS name.\", [cj]: f }, aR = { [cn]: G }, aS = { [cn]: H }, aT = { [cl]: i, [cm]: [aR, \"service\"] }, aU = { [cn]: L }, aV = { [ck]: [Y], [f]: \"S3 Object Lambda does not support Dual-stack\", [cj]: f }, aW = { [ck]: [W], [f]: \"S3 Object Lambda does not support S3 Accelerate\", [cj]: f }, aX = { [ck]: [{ [cl]: d, [cm]: [{ [cn]: \"DisableAccessPoints\" }] }, { [cl]: e, [cm]: [{ [cn]: \"DisableAccessPoints\" }, true] }], [f]: \"Access points are not supported for this operation\", [cj]: f }, aY = { [ck]: [{ [cl]: d, [cm]: [{ [cn]: \"UseArnRegion\" }] }, { [cl]: e, [cm]: [{ [cn]: \"UseArnRegion\" }, false] }, { [cl]: s, [cm]: [{ [cl]: h, [cm]: [{ [cl]: i, [cm]: [aR, \"region\"] }, \"{Region}\"] }] }], [f]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [cj]: f }, aZ = { [cl]: i, [cm]: [{ [cn]: \"bucketPartition\" }, j] }, ba = { [cl]: i, [cm]: [aR, \"accountId\"] }, bb = { [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: J, [cv]: \"{bucketArn#region}\" }] }, bc = { [f]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [cj]: f }, bd = { [f]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [cj]: f }, be = { [f]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [cj]: f }, bf = { [f]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [cj]: f }, bg = { [f]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [cj]: f }, bh = { [f]: \"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided\", [cj]: f }, bi = { [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: B, [cv]: \"{bucketArn#region}\" }] }, bj = { [cs]: [{ [ct]: true, [j]: z, [cu]: A, [cx]: [\"*\"] }, { [ct]: true, [j]: \"sigv4\", [cu]: A, [cv]: \"{bucketArn#region}\" }] }, bk = { [cl]: F, [cm]: [ad] }, bl = { [cp]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: aD, [cw]: {} }, bm = { [cp]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: aD, [cw]: {} }, bn = { [cp]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: aD, [cw]: {} }, bo = { [cp]: Q, [cq]: aD, [cw]: {} }, bp = { [cp]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: aD, [cw]: {} }, bq = { [cn]: \"UseObjectLambdaEndpoint\" }, br = { [cs]: [{ [ct]: true, [j]: \"sigv4\", [cu]: J, [cv]: \"{Region}\" }] }, bs = { [cp]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, bt = { [cp]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, bu = { [cp]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, bv = { [cp]: t, [cq]: aD, [cw]: {} }, bw = { [cp]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [cq]: aD, [cw]: {} }, bx = [{ [cn]: \"Region\" }], by = [{ [cn]: \"Endpoint\" }], bz = [ad], bA = [Y], bB = [W], bC = [Z, ae], bD = [{ [cl]: d, [cm]: [{ [cn]: \"DisableS3ExpressSessionAuth\" }] }, { [cl]: e, [cm]: [{ [cn]: \"DisableS3ExpressSessionAuth\" }, true] }], bE = [af], bF = [ah], bG = [ak], bH = [X], bI = [{ [cl]: k, [cm]: [ad, 6, 14, true], [co]: \"s3expressAvailabilityZoneId\" }, { [cl]: k, [cm]: [ad, 14, 16, true], [co]: \"s3expressAvailabilityZoneDelim\" }, { [cl]: h, [cm]: [{ [cn]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bJ = [{ [ck]: [X], [o]: { [cp]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com\", [cq]: ai, [cw]: {} }, [cj]: o }, { [o]: { [cp]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com\", [cq]: ai, [cw]: {} }, [cj]: o }], bK = [{ [cl]: k, [cm]: [ad, 6, 15, true], [co]: \"s3expressAvailabilityZoneId\" }, { [cl]: k, [cm]: [ad, 15, 17, true], [co]: \"s3expressAvailabilityZoneDelim\" }, { [cl]: h, [cm]: [{ [cn]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bL = [{ [cl]: k, [cm]: [ad, 6, 19, true], [co]: \"s3expressAvailabilityZoneId\" }, { [cl]: k, [cm]: [ad, 19, 21, true], [co]: \"s3expressAvailabilityZoneDelim\" }, { [cl]: h, [cm]: [{ [cn]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bM = [{ [cl]: k, [cm]: [ad, 6, 20, true], [co]: \"s3expressAvailabilityZoneId\" }, { [cl]: k, [cm]: [ad, 20, 22, true], [co]: \"s3expressAvailabilityZoneDelim\" }, { [cl]: h, [cm]: [{ [cn]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bN = [{ [cl]: k, [cm]: [ad, 6, 26, true], [co]: \"s3expressAvailabilityZoneId\" }, { [cl]: k, [cm]: [ad, 26, 28, true], [co]: \"s3expressAvailabilityZoneDelim\" }, { [cl]: h, [cm]: [{ [cn]: \"s3expressAvailabilityZoneDelim\" }, \"--\"] }], bO = [{ [ck]: [X], [o]: { [cp]: \"https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com\", [cq]: am, [cw]: {} }, [cj]: o }, { [o]: { [cp]: \"https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com\", [cq]: am, [cw]: {} }, [cj]: o }], bP = [ac], bQ = [{ [cl]: y, [cm]: [{ [cn]: x }, false] }], bR = [{ [cl]: h, [cm]: [{ [cn]: v }, \"beta\"] }], bS = [\"*\"], bT = [aa], bU = [{ [cl]: y, [cm]: [{ [cn]: \"Region\" }, false] }], bV = [{ [cl]: h, [cm]: [{ [cn]: \"Region\" }, \"us-east-1\"] }], bW = [{ [cl]: h, [cm]: [aS, K] }], bX = [{ [cl]: i, [cm]: [aR, \"resourceId[1]\"], [co]: L }, { [cl]: s, [cm]: [{ [cl]: h, [cm]: [aU, I] }] }], bY = [aR, \"resourceId[1]\"], bZ = [{ [cl]: s, [cm]: [{ [cl]: h, [cm]: [{ [cl]: i, [cm]: [aR, \"region\"] }, I] }] }], ca = [{ [cl]: s, [cm]: [{ [cl]: d, [cm]: [{ [cl]: i, [cm]: [aR, \"resourceId[2]\"] }] }] }], cb = [aR, \"resourceId[2]\"], cc = [{ [cl]: g, [cm]: [{ [cl]: i, [cm]: [aR, \"region\"] }], [co]: \"bucketPartition\" }], cd = [{ [cl]: h, [cm]: [aZ, { [cl]: i, [cm]: [{ [cn]: \"partitionResult\" }, j] }] }], ce = [{ [cl]: y, [cm]: [{ [cl]: i, [cm]: [aR, \"region\"] }, true] }], cf = [{ [cl]: y, [cm]: [ba, false] }], cg = [{ [cl]: y, [cm]: [aU, false] }], ch = [{ [cl]: y, [cm]: [{ [cn]: \"Region\" }, true] }];\nconst _data = { version: \"1.0\", parameters: { Bucket: T, Region: T, UseFIPS: U, UseDualStack: U, Endpoint: T, ForcePathStyle: U, Accelerate: U, UseGlobalEndpoint: U, UseObjectLambdaEndpoint: V, Key: T, Prefix: T, CopySource: T, DisableAccessPoints: V, DisableMultiRegionAccessPoints: U, UseArnRegion: V, UseS3ExpressControlEndpoint: V, DisableS3ExpressSessionAuth: V }, rules: [{ [ck]: [{ [cl]: d, [cm]: bx }], rules: [{ [ck]: [W, X], error: \"Accelerate cannot be used with FIPS\", [cj]: f }, { [ck]: [Y, Z], error: \"Cannot set dual-stack in combination with a custom endpoint.\", [cj]: f }, { [ck]: [Z, X], error: \"A custom endpoint cannot be combined with FIPS\", [cj]: f }, { [ck]: [Z, W], error: \"A custom endpoint cannot be combined with S3 Accelerate\", [cj]: f }, { [ck]: [X, aa, ab], error: \"Partition does not support FIPS\", [cj]: f }, { [ck]: [ac, { [cl]: k, [cm]: [ad, 0, a, c], [co]: l }, { [cl]: h, [cm]: [{ [cn]: l }, \"--x-s3\"] }], rules: [{ [ck]: bA, error: \"S3Express does not support Dual-stack.\", [cj]: f }, { [ck]: bB, error: \"S3Express does not support S3 Accelerate.\", [cj]: f }, { [ck]: bC, rules: [{ [ck]: bD, rules: [{ [ck]: bE, rules: [{ [ck]: bF, rules: [{ endpoint: { [cp]: n, [cq]: ai, [cw]: aj }, [cj]: o }], [cj]: p }], [cj]: p }, { [ck]: bG, rules: [{ endpoint: { [cp]: r, [cq]: ai, [cw]: aj }, [cj]: o }], [cj]: p }, al], [cj]: p }, { [ck]: bE, rules: [{ [ck]: bF, rules: [{ endpoint: { [cp]: n, [cq]: am, [cw]: aj }, [cj]: o }], [cj]: p }], [cj]: p }, { [ck]: bG, rules: [{ endpoint: { [cp]: r, [cq]: am, [cw]: aj }, [cj]: o }], [cj]: p }, al], [cj]: p }, { [ck]: [an, ao], rules: [{ [ck]: [ah, ap], rules: [{ [ck]: bH, endpoint: { [cp]: \"https://s3express-control-fips.{Region}.amazonaws.com/{uri_encoded_bucket}\", [cq]: ai, [cw]: aj }, [cj]: o }, { endpoint: { [cp]: \"https://s3express-control.{Region}.amazonaws.com/{uri_encoded_bucket}\", [cq]: ai, [cw]: aj }, [cj]: o }], [cj]: p }], [cj]: p }, { [ck]: bG, rules: [{ [ck]: bD, rules: [{ [ck]: bI, rules: bJ, [cj]: p }, { [ck]: bK, rules: bJ, [cj]: p }, { [ck]: bL, rules: bJ, [cj]: p }, { [ck]: bM, rules: bJ, [cj]: p }, { [ck]: bN, rules: bJ, [cj]: p }, aq], [cj]: p }, { [ck]: bI, rules: bO, [cj]: p }, { [ck]: bK, rules: bO, [cj]: p }, { [ck]: bL, rules: bO, [cj]: p }, { [ck]: bM, rules: bO, [cj]: p }, { [ck]: bN, rules: bO, [cj]: p }, aq], [cj]: p }, al], [cj]: p }, { [ck]: [ar, an, ao], rules: [{ [ck]: bC, endpoint: { [cp]: t, [cq]: ai, [cw]: aj }, [cj]: o }, { [ck]: bH, endpoint: { [cp]: \"https://s3express-control-fips.{Region}.amazonaws.com\", [cq]: ai, [cw]: aj }, [cj]: o }, { endpoint: { [cp]: \"https://s3express-control.{Region}.amazonaws.com\", [cq]: ai, [cw]: aj }, [cj]: o }], [cj]: p }, { [ck]: [ac, { [cl]: k, [cm]: [ad, 49, 50, c], [co]: u }, { [cl]: k, [cm]: [ad, 8, 12, c], [co]: v }, { [cl]: k, [cm]: [ad, 0, 7, c], [co]: w }, { [cl]: k, [cm]: [ad, 32, 49, c], [co]: x }, { [cl]: g, [cm]: bx, [co]: \"regionPartition\" }, { [cl]: h, [cm]: [{ [cn]: w }, \"--op-s3\"] }], rules: [{ [ck]: bQ, rules: [{ [ck]: [{ [cl]: h, [cm]: [as, \"e\"] }], rules: [{ [ck]: bR, rules: [at, { [ck]: bC, endpoint: { [cp]: \"https://{Bucket}.ec2.{url#authority}\", [cq]: au, [cw]: aj }, [cj]: o }], [cj]: p }, { endpoint: { [cp]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cq]: au, [cw]: aj }, [cj]: o }], [cj]: p }, { [ck]: [{ [cl]: h, [cm]: [as, \"o\"] }], rules: [{ [ck]: bR, rules: [at, { [ck]: bC, endpoint: { [cp]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [cq]: au, [cw]: aj }, [cj]: o }], [cj]: p }, { endpoint: { [cp]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [cq]: au, [cw]: aj }, [cj]: o }], [cj]: p }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [cj]: f }], [cj]: p }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [cj]: f }], [cj]: p }, { [ck]: bP, rules: [{ [ck]: [Z, { [cl]: s, [cm]: [{ [cl]: d, [cm]: [{ [cl]: m, [cm]: by }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [cj]: f }, { [ck]: [av, ak], rules: [{ [ck]: bT, rules: [{ [ck]: bU, rules: [{ [ck]: [W, ab], error: \"S3 Accelerate cannot be used in this region\", [cj]: f }, { [ck]: [Y, X, ax, ap, ay], endpoint: { [cp]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [Y, X, ax, ap, aA, aB], rules: [{ endpoint: aC, [cj]: o }], [cj]: p }, { [ck]: [Y, X, ax, ap, aA, aE], endpoint: aC, [cj]: o }, { [ck]: [aF, X, ax, ap, ay], endpoint: { [cp]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, X, ax, ap, aA, aB], rules: [{ endpoint: aG, [cj]: o }], [cj]: p }, { [ck]: [aF, X, ax, ap, aA, aE], endpoint: aG, [cj]: o }, { [ck]: [Y, aH, W, ap, ay], endpoint: { [cp]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [Y, aH, W, ap, aA, aB], rules: [{ endpoint: aI, [cj]: o }], [cj]: p }, { [ck]: [Y, aH, W, ap, aA, aE], endpoint: aI, [cj]: o }, { [ck]: [Y, aH, ax, ap, ay], endpoint: { [cp]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [Y, aH, ax, ap, aA, aB], rules: [{ endpoint: aJ, [cj]: o }], [cj]: p }, { [ck]: [Y, aH, ax, ap, aA, aE], endpoint: aJ, [cj]: o }, { [ck]: [aF, aH, ax, Z, ae, af, ay], endpoint: { [cp]: C, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, aH, ax, Z, ae, aK, ay], endpoint: { [cp]: r, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, aH, ax, Z, ae, af, aA, aB], rules: [{ [ck]: bV, endpoint: aL, [cj]: o }, { endpoint: aL, [cj]: o }], [cj]: p }, { [ck]: [aF, aH, ax, Z, ae, aK, aA, aB], rules: [{ [ck]: bV, endpoint: aM, [cj]: o }, aN], [cj]: p }, { [ck]: [aF, aH, ax, Z, ae, af, aA, aE], endpoint: aL, [cj]: o }, { [ck]: [aF, aH, ax, Z, ae, aK, aA, aE], endpoint: aM, [cj]: o }, { [ck]: [aF, aH, W, ap, ay], endpoint: { [cp]: D, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, aH, W, ap, aA, aB], rules: [{ [ck]: bV, endpoint: aO, [cj]: o }, { endpoint: aO, [cj]: o }], [cj]: p }, { [ck]: [aF, aH, W, ap, aA, aE], endpoint: aO, [cj]: o }, { [ck]: [aF, aH, ax, ap, ay], endpoint: { [cp]: E, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, aH, ax, ap, aA, aB], rules: [{ [ck]: bV, endpoint: { [cp]: E, [cq]: aD, [cw]: aj }, [cj]: o }, { endpoint: aP, [cj]: o }], [cj]: p }, { [ck]: [aF, aH, ax, ap, aA, aE], endpoint: aP, [cj]: o }], [cj]: p }, aQ], [cj]: p }], [cj]: p }, { [ck]: [Z, ae, { [cl]: h, [cm]: [{ [cl]: i, [cm]: [ag, \"scheme\"] }, \"http\"] }, { [cl]: q, [cm]: [ad, c] }, av, aH, aF, ax], rules: [{ [ck]: bT, rules: [{ [ck]: bU, rules: [aN], [cj]: p }, aQ], [cj]: p }], [cj]: p }, { [ck]: [av, { [cl]: F, [cm]: bz, [co]: G }], rules: [{ [ck]: [{ [cl]: i, [cm]: [aR, \"resourceId[0]\"], [co]: H }, { [cl]: s, [cm]: [{ [cl]: h, [cm]: [aS, I] }] }], rules: [{ [ck]: [{ [cl]: h, [cm]: [aT, J] }], rules: [{ [ck]: bW, rules: [{ [ck]: bX, rules: [aV, aW, { [ck]: bZ, rules: [aX, { [ck]: ca, rules: [aY, { [ck]: cc, rules: [{ [ck]: bT, rules: [{ [ck]: cd, rules: [{ [ck]: ce, rules: [{ [ck]: [{ [cl]: h, [cm]: [ba, I] }], error: \"Invalid ARN: Missing account id\", [cj]: f }, { [ck]: cf, rules: [{ [ck]: cg, rules: [{ [ck]: bC, endpoint: { [cp]: M, [cq]: bb, [cw]: aj }, [cj]: o }, { [ck]: bH, endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bb, [cw]: aj }, [cj]: o }, { endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bb, [cw]: aj }, [cj]: o }], [cj]: p }, bc], [cj]: p }, bd], [cj]: p }, be], [cj]: p }, bf], [cj]: p }], [cj]: p }], [cj]: p }, bg], [cj]: p }, { error: \"Invalid ARN: bucket ARN is missing a region\", [cj]: f }], [cj]: p }, bh], [cj]: p }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [cj]: f }], [cj]: p }, { [ck]: bW, rules: [{ [ck]: bX, rules: [{ [ck]: bZ, rules: [{ [ck]: bW, rules: [{ [ck]: bZ, rules: [aX, { [ck]: ca, rules: [aY, { [ck]: cc, rules: [{ [ck]: bT, rules: [{ [ck]: [{ [cl]: h, [cm]: [aZ, \"{partitionResult#name}\"] }], rules: [{ [ck]: ce, rules: [{ [ck]: [{ [cl]: h, [cm]: [aT, B] }], rules: [{ [ck]: cf, rules: [{ [ck]: cg, rules: [{ [ck]: bB, error: \"Access Points do not support S3 Accelerate\", [cj]: f }, { [ck]: [X, Y], endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bi, [cw]: aj }, [cj]: o }, { [ck]: [X, aF], endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bi, [cw]: aj }, [cj]: o }, { [ck]: [aH, Y], endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bi, [cw]: aj }, [cj]: o }, { [ck]: [aH, aF, Z, ae], endpoint: { [cp]: M, [cq]: bi, [cw]: aj }, [cj]: o }, { [ck]: [aH, aF], endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bi, [cw]: aj }, [cj]: o }], [cj]: p }, bc], [cj]: p }, bd], [cj]: p }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [cj]: f }], [cj]: p }, be], [cj]: p }, bf], [cj]: p }], [cj]: p }], [cj]: p }, bg], [cj]: p }], [cj]: p }], [cj]: p }, { [ck]: [{ [cl]: y, [cm]: [aU, c] }], rules: [{ [ck]: bA, error: \"S3 MRAP does not support dual-stack\", [cj]: f }, { [ck]: bH, error: \"S3 MRAP does not support FIPS\", [cj]: f }, { [ck]: bB, error: \"S3 MRAP does not support S3 Accelerate\", [cj]: f }, { [ck]: [{ [cl]: e, [cm]: [{ [cn]: \"DisableMultiRegionAccessPoints\" }, c] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [cj]: f }, { [ck]: [{ [cl]: g, [cm]: bx, [co]: N }], rules: [{ [ck]: [{ [cl]: h, [cm]: [{ [cl]: i, [cm]: [{ [cn]: N }, j] }, { [cl]: i, [cm]: [aR, \"partition\"] }] }], rules: [{ endpoint: { [cp]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [cq]: { [cs]: [{ [ct]: c, name: z, [cu]: B, [cx]: bS }] }, [cw]: aj }, [cj]: o }], [cj]: p }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [cj]: f }], [cj]: p }], [cj]: p }, { error: \"Invalid Access Point Name\", [cj]: f }], [cj]: p }, bh], [cj]: p }, { [ck]: [{ [cl]: h, [cm]: [aT, A] }], rules: [{ [ck]: bA, error: \"S3 Outposts does not support Dual-stack\", [cj]: f }, { [ck]: bH, error: \"S3 Outposts does not support FIPS\", [cj]: f }, { [ck]: bB, error: \"S3 Outposts does not support S3 Accelerate\", [cj]: f }, { [ck]: [{ [cl]: d, [cm]: [{ [cl]: i, [cm]: [aR, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [cj]: f }, { [ck]: [{ [cl]: i, [cm]: bY, [co]: x }], rules: [{ [ck]: bQ, rules: [aY, { [ck]: cc, rules: [{ [ck]: bT, rules: [{ [ck]: cd, rules: [{ [ck]: ce, rules: [{ [ck]: cf, rules: [{ [ck]: [{ [cl]: i, [cm]: cb, [co]: O }], rules: [{ [ck]: [{ [cl]: i, [cm]: [aR, \"resourceId[3]\"], [co]: L }], rules: [{ [ck]: [{ [cl]: h, [cm]: [{ [cn]: O }, K] }], rules: [{ [ck]: bC, endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [cq]: bj, [cw]: aj }, [cj]: o }, { endpoint: { [cp]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [cq]: bj, [cw]: aj }, [cj]: o }], [cj]: p }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [cj]: f }], [cj]: p }, { error: \"Invalid ARN: expected an access point name\", [cj]: f }], [cj]: p }, { error: \"Invalid ARN: Expected a 4-component resource\", [cj]: f }], [cj]: p }, bd], [cj]: p }, be], [cj]: p }, bf], [cj]: p }], [cj]: p }], [cj]: p }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [cj]: f }], [cj]: p }, { error: \"Invalid ARN: The Outpost Id was not set\", [cj]: f }], [cj]: p }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [cj]: f }], [cj]: p }, { error: \"Invalid ARN: No ARN type specified\", [cj]: f }], [cj]: p }, { [ck]: [{ [cl]: k, [cm]: [ad, 0, 4, b], [co]: P }, { [cl]: h, [cm]: [{ [cn]: P }, \"arn:\"] }, { [cl]: s, [cm]: [{ [cl]: d, [cm]: [bk] }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [cj]: f }, { [ck]: [{ [cl]: e, [cm]: [aw, c] }, bk], error: \"Path-style addressing cannot be used with ARN buckets\", [cj]: f }, { [ck]: bF, rules: [{ [ck]: bT, rules: [{ [ck]: [ax], rules: [{ [ck]: [Y, ap, X, ay], endpoint: { [cp]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [Y, ap, X, aA, aB], rules: [{ endpoint: bl, [cj]: o }], [cj]: p }, { [ck]: [Y, ap, X, aA, aE], endpoint: bl, [cj]: o }, { [ck]: [aF, ap, X, ay], endpoint: { [cp]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, ap, X, aA, aB], rules: [{ endpoint: bm, [cj]: o }], [cj]: p }, { [ck]: [aF, ap, X, aA, aE], endpoint: bm, [cj]: o }, { [ck]: [Y, ap, aH, ay], endpoint: { [cp]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [Y, ap, aH, aA, aB], rules: [{ endpoint: bn, [cj]: o }], [cj]: p }, { [ck]: [Y, ap, aH, aA, aE], endpoint: bn, [cj]: o }, { [ck]: [aF, Z, ae, aH, ay], endpoint: { [cp]: Q, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, Z, ae, aH, aA, aB], rules: [{ [ck]: bV, endpoint: bo, [cj]: o }, { endpoint: bo, [cj]: o }], [cj]: p }, { [ck]: [aF, Z, ae, aH, aA, aE], endpoint: bo, [cj]: o }, { [ck]: [aF, ap, aH, ay], endpoint: { [cp]: R, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aF, ap, aH, aA, aB], rules: [{ [ck]: bV, endpoint: { [cp]: R, [cq]: aD, [cw]: aj }, [cj]: o }, { endpoint: bp, [cj]: o }], [cj]: p }, { [ck]: [aF, ap, aH, aA, aE], endpoint: bp, [cj]: o }], [cj]: p }, { error: \"Path-style addressing cannot be used with S3 Accelerate\", [cj]: f }], [cj]: p }], [cj]: p }], [cj]: p }, { [ck]: [{ [cl]: d, [cm]: [bq] }, { [cl]: e, [cm]: [bq, c] }], rules: [{ [ck]: bT, rules: [{ [ck]: ch, rules: [aV, aW, { [ck]: bC, endpoint: { [cp]: t, [cq]: br, [cw]: aj }, [cj]: o }, { [ck]: bH, endpoint: { [cp]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [cq]: br, [cw]: aj }, [cj]: o }, { endpoint: { [cp]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [cq]: br, [cw]: aj }, [cj]: o }], [cj]: p }, aQ], [cj]: p }], [cj]: p }, { [ck]: [ar], rules: [{ [ck]: bT, rules: [{ [ck]: ch, rules: [{ [ck]: [X, Y, ap, ay], endpoint: { [cp]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [X, Y, ap, aA, aB], rules: [{ endpoint: bs, [cj]: o }], [cj]: p }, { [ck]: [X, Y, ap, aA, aE], endpoint: bs, [cj]: o }, { [ck]: [X, aF, ap, ay], endpoint: { [cp]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [X, aF, ap, aA, aB], rules: [{ endpoint: bt, [cj]: o }], [cj]: p }, { [ck]: [X, aF, ap, aA, aE], endpoint: bt, [cj]: o }, { [ck]: [aH, Y, ap, ay], endpoint: { [cp]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aH, Y, ap, aA, aB], rules: [{ endpoint: bu, [cj]: o }], [cj]: p }, { [ck]: [aH, Y, ap, aA, aE], endpoint: bu, [cj]: o }, { [ck]: [aH, aF, Z, ae, ay], endpoint: { [cp]: t, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aH, aF, Z, ae, aA, aB], rules: [{ [ck]: bV, endpoint: bv, [cj]: o }, { endpoint: bv, [cj]: o }], [cj]: p }, { [ck]: [aH, aF, Z, ae, aA, aE], endpoint: bv, [cj]: o }, { [ck]: [aH, aF, ap, ay], endpoint: { [cp]: S, [cq]: az, [cw]: aj }, [cj]: o }, { [ck]: [aH, aF, ap, aA, aB], rules: [{ [ck]: bV, endpoint: { [cp]: S, [cq]: aD, [cw]: aj }, [cj]: o }, { endpoint: bw, [cj]: o }], [cj]: p }, { [ck]: [aH, aF, ap, aA, aE], endpoint: bw, [cj]: o }], [cj]: p }, aQ], [cj]: p }], [cj]: p }], [cj]: p }, { error: \"A region must be set when sending requests to S3.\", [cj]: f }] };\nexport const ruleSet = _data;\n","import { awsEndpointFunctions } from \"@aws-sdk/util-endpoints\";\nimport { customEndpointFunctions, EndpointCache, resolveEndpoint } from \"@smithy/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nconst cache = new EndpointCache({\n    size: 50,\n    params: [\n        \"Accelerate\",\n        \"Bucket\",\n        \"DisableAccessPoints\",\n        \"DisableMultiRegionAccessPoints\",\n        \"DisableS3ExpressSessionAuth\",\n        \"Endpoint\",\n        \"ForcePathStyle\",\n        \"Region\",\n        \"UseArnRegion\",\n        \"UseDualStack\",\n        \"UseFIPS\",\n        \"UseGlobalEndpoint\",\n        \"UseObjectLambdaEndpoint\",\n        \"UseS3ExpressControlEndpoint\",\n    ],\n});\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n    return cache.get(endpointParams, () => resolveEndpoint(ruleSet, {\n        endpointParams: endpointParams,\n        logger: context.logger,\n    }));\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\n","import { resolveAwsSdkSigV4AConfig, resolveAwsSdkSigV4Config, } from \"@aws-sdk/core\";\nimport { signatureV4CrtContainer } from \"@aws-sdk/signature-v4-multi-region\";\nimport { resolveParams } from \"@smithy/middleware-endpoint\";\nimport { getSmithyContext, normalizeProvider } from \"@smithy/util-middleware\";\nimport { defaultEndpointResolver } from \"../endpoint/endpointResolver\";\nconst createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {\n    if (!input) {\n        throw new Error(`Could not find \\`input\\` for \\`defaultEndpointRuleSetHttpAuthSchemeParametersProvider\\``);\n    }\n    const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);\n    const instructionsFn = getSmithyContext(context)?.commandInstance?.constructor\n        ?.getEndpointParameterInstructions;\n    if (!instructionsFn) {\n        throw new Error(`getEndpointParameterInstructions() is not defined on \\`${context.commandName}\\``);\n    }\n    const endpointParameters = await resolveParams(input, { getEndpointParameterInstructions: instructionsFn }, config);\n    return Object.assign(defaultParameters, endpointParameters);\n};\nconst _defaultS3HttpAuthSchemeParametersProvider = async (config, context, input) => {\n    return {\n        operation: getSmithyContext(context).operation,\n        region: (await normalizeProvider(config.region)()) ||\n            (() => {\n                throw new Error(\"expected `region` to be configured for `aws.auth#sigv4`\");\n            })(),\n    };\n};\nexport const defaultS3HttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultS3HttpAuthSchemeParametersProvider);\nfunction createAwsAuthSigv4HttpAuthOption(authParameters) {\n    return {\n        schemeId: \"aws.auth#sigv4\",\n        signingProperties: {\n            name: \"s3\",\n            region: authParameters.region,\n        },\n        propertiesExtractor: (config, context) => ({\n            signingProperties: {\n                config,\n                context,\n            },\n        }),\n    };\n}\nfunction createAwsAuthSigv4aHttpAuthOption(authParameters) {\n    return {\n        schemeId: \"aws.auth#sigv4a\",\n        signingProperties: {\n            name: \"s3\",\n            region: authParameters.region,\n        },\n        propertiesExtractor: (config, context) => ({\n            signingProperties: {\n                config,\n                context,\n            },\n        }),\n    };\n}\nconst createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {\n    const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {\n        const endpoint = defaultEndpointResolver(authParameters);\n        const authSchemes = endpoint.properties?.authSchemes;\n        if (!authSchemes) {\n            return defaultHttpAuthSchemeResolver(authParameters);\n        }\n        const options = [];\n        for (const scheme of authSchemes) {\n            const { name: resolvedName, properties = {}, ...rest } = scheme;\n            const name = resolvedName.toLowerCase();\n            if (resolvedName !== name) {\n                console.warn(`HttpAuthScheme has been normalized with lowercasing: \\`${resolvedName}\\` to \\`${name}\\``);\n            }\n            let schemeId;\n            if (name === \"sigv4a\") {\n                schemeId = \"aws.auth#sigv4a\";\n                const sigv4Present = authSchemes.find((s) => {\n                    const name = s.name.toLowerCase();\n                    return name !== \"sigv4a\" && name.startsWith(\"sigv4\");\n                });\n                if (!signatureV4CrtContainer.CrtSignerV4 && sigv4Present) {\n                    continue;\n                }\n            }\n            else if (name.startsWith(\"sigv4\")) {\n                schemeId = \"aws.auth#sigv4\";\n            }\n            else {\n                throw new Error(`Unknown HttpAuthScheme found in \\`@smithy.rules#endpointRuleSet\\`: \\`${name}\\``);\n            }\n            const createOption = createHttpAuthOptionFunctions[schemeId];\n            if (!createOption) {\n                throw new Error(`Could not find HttpAuthOption create function for \\`${schemeId}\\``);\n            }\n            const option = createOption(authParameters);\n            option.schemeId = schemeId;\n            option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };\n            options.push(option);\n        }\n        return options;\n    };\n    return endpointRuleSetHttpAuthSchemeProvider;\n};\nconst _defaultS3HttpAuthSchemeProvider = (authParameters) => {\n    const options = [];\n    switch (authParameters.operation) {\n        default: {\n            options.push(createAwsAuthSigv4HttpAuthOption(authParameters));\n            options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));\n        }\n    }\n    return options;\n};\nexport const defaultS3HttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(defaultEndpointResolver, _defaultS3HttpAuthSchemeProvider, {\n    \"aws.auth#sigv4\": createAwsAuthSigv4HttpAuthOption,\n    \"aws.auth#sigv4a\": createAwsAuthSigv4aHttpAuthOption,\n});\nexport const resolveHttpAuthSchemeConfig = (config) => {\n    const config_0 = resolveAwsSdkSigV4Config(config);\n    const config_1 = resolveAwsSdkSigV4AConfig(config_0);\n    return {\n        ...config_1,\n    };\n};\n","export const resolveClientEndpointParameters = (options) => {\n    return {\n        ...options,\n        useFipsEndpoint: options.useFipsEndpoint ?? false,\n        useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n        forcePathStyle: options.forcePathStyle ?? false,\n        useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n        useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n        disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n        defaultSigningName: \"s3\",\n    };\n};\nexport const commonParams = {\n    ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n    UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n    DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n    Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n    DisableS3ExpressSessionAuth: { type: \"clientContextParams\", name: \"disableS3ExpressSessionAuth\" },\n    UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n    UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n    Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n    Region: { type: \"builtInParams\", name: \"region\" },\n    UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n};\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class S3ServiceException extends __ServiceException {\n    constructor(options) {\n        super(options);\n        Object.setPrototypeOf(this, S3ServiceException.prototype);\n    }\n}\n","import { SENSITIVE_STRING } from \"@smithy/smithy-client\";\nimport { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport const RequestCharged = {\n    requester: \"requester\",\n};\nexport const RequestPayer = {\n    requester: \"requester\",\n};\nexport class NoSuchUpload extends __BaseException {\n    name = \"NoSuchUpload\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NoSuchUpload\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NoSuchUpload.prototype);\n    }\n}\nexport const BucketAccelerateStatus = {\n    Enabled: \"Enabled\",\n    Suspended: \"Suspended\",\n};\nexport const Type = {\n    AmazonCustomerByEmail: \"AmazonCustomerByEmail\",\n    CanonicalUser: \"CanonicalUser\",\n    Group: \"Group\",\n};\nexport const Permission = {\n    FULL_CONTROL: \"FULL_CONTROL\",\n    READ: \"READ\",\n    READ_ACP: \"READ_ACP\",\n    WRITE: \"WRITE\",\n    WRITE_ACP: \"WRITE_ACP\",\n};\nexport const OwnerOverride = {\n    Destination: \"Destination\",\n};\nexport const ChecksumType = {\n    COMPOSITE: \"COMPOSITE\",\n    FULL_OBJECT: \"FULL_OBJECT\",\n};\nexport const ServerSideEncryption = {\n    AES256: \"AES256\",\n    aws_kms: \"aws:kms\",\n    aws_kms_dsse: \"aws:kms:dsse\",\n};\nexport const ObjectCannedACL = {\n    authenticated_read: \"authenticated-read\",\n    aws_exec_read: \"aws-exec-read\",\n    bucket_owner_full_control: \"bucket-owner-full-control\",\n    bucket_owner_read: \"bucket-owner-read\",\n    private: \"private\",\n    public_read: \"public-read\",\n    public_read_write: \"public-read-write\",\n};\nexport const ChecksumAlgorithm = {\n    CRC32: \"CRC32\",\n    CRC32C: \"CRC32C\",\n    CRC64NVME: \"CRC64NVME\",\n    SHA1: \"SHA1\",\n    SHA256: \"SHA256\",\n};\nexport const MetadataDirective = {\n    COPY: \"COPY\",\n    REPLACE: \"REPLACE\",\n};\nexport const ObjectLockLegalHoldStatus = {\n    OFF: \"OFF\",\n    ON: \"ON\",\n};\nexport const ObjectLockMode = {\n    COMPLIANCE: \"COMPLIANCE\",\n    GOVERNANCE: \"GOVERNANCE\",\n};\nexport const StorageClass = {\n    DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n    EXPRESS_ONEZONE: \"EXPRESS_ONEZONE\",\n    GLACIER: \"GLACIER\",\n    GLACIER_IR: \"GLACIER_IR\",\n    INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n    ONEZONE_IA: \"ONEZONE_IA\",\n    OUTPOSTS: \"OUTPOSTS\",\n    REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n    SNOW: \"SNOW\",\n    STANDARD: \"STANDARD\",\n    STANDARD_IA: \"STANDARD_IA\",\n};\nexport const TaggingDirective = {\n    COPY: \"COPY\",\n    REPLACE: \"REPLACE\",\n};\nexport class ObjectNotInActiveTierError extends __BaseException {\n    name = \"ObjectNotInActiveTierError\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"ObjectNotInActiveTierError\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, ObjectNotInActiveTierError.prototype);\n    }\n}\nexport class BucketAlreadyExists extends __BaseException {\n    name = \"BucketAlreadyExists\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"BucketAlreadyExists\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, BucketAlreadyExists.prototype);\n    }\n}\nexport class BucketAlreadyOwnedByYou extends __BaseException {\n    name = \"BucketAlreadyOwnedByYou\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"BucketAlreadyOwnedByYou\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, BucketAlreadyOwnedByYou.prototype);\n    }\n}\nexport const BucketCannedACL = {\n    authenticated_read: \"authenticated-read\",\n    private: \"private\",\n    public_read: \"public-read\",\n    public_read_write: \"public-read-write\",\n};\nexport const DataRedundancy = {\n    SingleAvailabilityZone: \"SingleAvailabilityZone\",\n    SingleLocalZone: \"SingleLocalZone\",\n};\nexport const BucketType = {\n    Directory: \"Directory\",\n};\nexport const LocationType = {\n    AvailabilityZone: \"AvailabilityZone\",\n    LocalZone: \"LocalZone\",\n};\nexport const BucketLocationConstraint = {\n    EU: \"EU\",\n    af_south_1: \"af-south-1\",\n    ap_east_1: \"ap-east-1\",\n    ap_northeast_1: \"ap-northeast-1\",\n    ap_northeast_2: \"ap-northeast-2\",\n    ap_northeast_3: \"ap-northeast-3\",\n    ap_south_1: \"ap-south-1\",\n    ap_south_2: \"ap-south-2\",\n    ap_southeast_1: \"ap-southeast-1\",\n    ap_southeast_2: \"ap-southeast-2\",\n    ap_southeast_3: \"ap-southeast-3\",\n    ca_central_1: \"ca-central-1\",\n    cn_north_1: \"cn-north-1\",\n    cn_northwest_1: \"cn-northwest-1\",\n    eu_central_1: \"eu-central-1\",\n    eu_north_1: \"eu-north-1\",\n    eu_south_1: \"eu-south-1\",\n    eu_south_2: \"eu-south-2\",\n    eu_west_1: \"eu-west-1\",\n    eu_west_2: \"eu-west-2\",\n    eu_west_3: \"eu-west-3\",\n    me_south_1: \"me-south-1\",\n    sa_east_1: \"sa-east-1\",\n    us_east_2: \"us-east-2\",\n    us_gov_east_1: \"us-gov-east-1\",\n    us_gov_west_1: \"us-gov-west-1\",\n    us_west_1: \"us-west-1\",\n    us_west_2: \"us-west-2\",\n};\nexport const ObjectOwnership = {\n    BucketOwnerEnforced: \"BucketOwnerEnforced\",\n    BucketOwnerPreferred: \"BucketOwnerPreferred\",\n    ObjectWriter: \"ObjectWriter\",\n};\nexport const SessionMode = {\n    ReadOnly: \"ReadOnly\",\n    ReadWrite: \"ReadWrite\",\n};\nexport class NoSuchBucket extends __BaseException {\n    name = \"NoSuchBucket\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NoSuchBucket\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NoSuchBucket.prototype);\n    }\n}\nexport var AnalyticsFilter;\n(function (AnalyticsFilter) {\n    AnalyticsFilter.visit = (value, visitor) => {\n        if (value.Prefix !== undefined)\n            return visitor.Prefix(value.Prefix);\n        if (value.Tag !== undefined)\n            return visitor.Tag(value.Tag);\n        if (value.And !== undefined)\n            return visitor.And(value.And);\n        return visitor._(value.$unknown[0], value.$unknown[1]);\n    };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nexport const AnalyticsS3ExportFileFormat = {\n    CSV: \"CSV\",\n};\nexport const StorageClassAnalysisSchemaVersion = {\n    V_1: \"V_1\",\n};\nexport const IntelligentTieringStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const IntelligentTieringAccessTier = {\n    ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n    DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\",\n};\nexport const InventoryFormat = {\n    CSV: \"CSV\",\n    ORC: \"ORC\",\n    Parquet: \"Parquet\",\n};\nexport const InventoryIncludedObjectVersions = {\n    All: \"All\",\n    Current: \"Current\",\n};\nexport const InventoryOptionalField = {\n    BucketKeyStatus: \"BucketKeyStatus\",\n    ChecksumAlgorithm: \"ChecksumAlgorithm\",\n    ETag: \"ETag\",\n    EncryptionStatus: \"EncryptionStatus\",\n    IntelligentTieringAccessTier: \"IntelligentTieringAccessTier\",\n    IsMultipartUploaded: \"IsMultipartUploaded\",\n    LastModifiedDate: \"LastModifiedDate\",\n    ObjectAccessControlList: \"ObjectAccessControlList\",\n    ObjectLockLegalHoldStatus: \"ObjectLockLegalHoldStatus\",\n    ObjectLockMode: \"ObjectLockMode\",\n    ObjectLockRetainUntilDate: \"ObjectLockRetainUntilDate\",\n    ObjectOwner: \"ObjectOwner\",\n    ReplicationStatus: \"ReplicationStatus\",\n    Size: \"Size\",\n    StorageClass: \"StorageClass\",\n};\nexport const InventoryFrequency = {\n    Daily: \"Daily\",\n    Weekly: \"Weekly\",\n};\nexport const TransitionStorageClass = {\n    DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n    GLACIER: \"GLACIER\",\n    GLACIER_IR: \"GLACIER_IR\",\n    INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n    ONEZONE_IA: \"ONEZONE_IA\",\n    STANDARD_IA: \"STANDARD_IA\",\n};\nexport const ExpirationStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const TransitionDefaultMinimumObjectSize = {\n    all_storage_classes_128K: \"all_storage_classes_128K\",\n    varies_by_storage_class: \"varies_by_storage_class\",\n};\nexport const BucketLogsPermission = {\n    FULL_CONTROL: \"FULL_CONTROL\",\n    READ: \"READ\",\n    WRITE: \"WRITE\",\n};\nexport const PartitionDateSource = {\n    DeliveryTime: \"DeliveryTime\",\n    EventTime: \"EventTime\",\n};\nexport var MetricsFilter;\n(function (MetricsFilter) {\n    MetricsFilter.visit = (value, visitor) => {\n        if (value.Prefix !== undefined)\n            return visitor.Prefix(value.Prefix);\n        if (value.Tag !== undefined)\n            return visitor.Tag(value.Tag);\n        if (value.AccessPointArn !== undefined)\n            return visitor.AccessPointArn(value.AccessPointArn);\n        if (value.And !== undefined)\n            return visitor.And(value.And);\n        return visitor._(value.$unknown[0], value.$unknown[1]);\n    };\n})(MetricsFilter || (MetricsFilter = {}));\nexport const Event = {\n    s3_IntelligentTiering: \"s3:IntelligentTiering\",\n    s3_LifecycleExpiration_: \"s3:LifecycleExpiration:*\",\n    s3_LifecycleExpiration_Delete: \"s3:LifecycleExpiration:Delete\",\n    s3_LifecycleExpiration_DeleteMarkerCreated: \"s3:LifecycleExpiration:DeleteMarkerCreated\",\n    s3_LifecycleTransition: \"s3:LifecycleTransition\",\n    s3_ObjectAcl_Put: \"s3:ObjectAcl:Put\",\n    s3_ObjectCreated_: \"s3:ObjectCreated:*\",\n    s3_ObjectCreated_CompleteMultipartUpload: \"s3:ObjectCreated:CompleteMultipartUpload\",\n    s3_ObjectCreated_Copy: \"s3:ObjectCreated:Copy\",\n    s3_ObjectCreated_Post: \"s3:ObjectCreated:Post\",\n    s3_ObjectCreated_Put: \"s3:ObjectCreated:Put\",\n    s3_ObjectRemoved_: \"s3:ObjectRemoved:*\",\n    s3_ObjectRemoved_Delete: \"s3:ObjectRemoved:Delete\",\n    s3_ObjectRemoved_DeleteMarkerCreated: \"s3:ObjectRemoved:DeleteMarkerCreated\",\n    s3_ObjectRestore_: \"s3:ObjectRestore:*\",\n    s3_ObjectRestore_Completed: \"s3:ObjectRestore:Completed\",\n    s3_ObjectRestore_Delete: \"s3:ObjectRestore:Delete\",\n    s3_ObjectRestore_Post: \"s3:ObjectRestore:Post\",\n    s3_ObjectTagging_: \"s3:ObjectTagging:*\",\n    s3_ObjectTagging_Delete: \"s3:ObjectTagging:Delete\",\n    s3_ObjectTagging_Put: \"s3:ObjectTagging:Put\",\n    s3_ReducedRedundancyLostObject: \"s3:ReducedRedundancyLostObject\",\n    s3_Replication_: \"s3:Replication:*\",\n    s3_Replication_OperationFailedReplication: \"s3:Replication:OperationFailedReplication\",\n    s3_Replication_OperationMissedThreshold: \"s3:Replication:OperationMissedThreshold\",\n    s3_Replication_OperationNotTracked: \"s3:Replication:OperationNotTracked\",\n    s3_Replication_OperationReplicatedAfterThreshold: \"s3:Replication:OperationReplicatedAfterThreshold\",\n};\nexport const FilterRuleName = {\n    prefix: \"prefix\",\n    suffix: \"suffix\",\n};\nexport const DeleteMarkerReplicationStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const MetricsStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const ReplicationTimeStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const ExistingObjectReplicationStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const ReplicaModificationsStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const SseKmsEncryptedObjectsStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const ReplicationRuleStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const Payer = {\n    BucketOwner: \"BucketOwner\",\n    Requester: \"Requester\",\n};\nexport const MFADeleteStatus = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport const BucketVersioningStatus = {\n    Enabled: \"Enabled\",\n    Suspended: \"Suspended\",\n};\nexport const Protocol = {\n    http: \"http\",\n    https: \"https\",\n};\nexport const ReplicationStatus = {\n    COMPLETE: \"COMPLETE\",\n    COMPLETED: \"COMPLETED\",\n    FAILED: \"FAILED\",\n    PENDING: \"PENDING\",\n    REPLICA: \"REPLICA\",\n};\nexport const ChecksumMode = {\n    ENABLED: \"ENABLED\",\n};\nexport class InvalidObjectState extends __BaseException {\n    name = \"InvalidObjectState\";\n    $fault = \"client\";\n    StorageClass;\n    AccessTier;\n    constructor(opts) {\n        super({\n            name: \"InvalidObjectState\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, InvalidObjectState.prototype);\n        this.StorageClass = opts.StorageClass;\n        this.AccessTier = opts.AccessTier;\n    }\n}\nexport class NoSuchKey extends __BaseException {\n    name = \"NoSuchKey\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NoSuchKey\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NoSuchKey.prototype);\n    }\n}\nexport const ObjectAttributes = {\n    CHECKSUM: \"Checksum\",\n    ETAG: \"ETag\",\n    OBJECT_PARTS: \"ObjectParts\",\n    OBJECT_SIZE: \"ObjectSize\",\n    STORAGE_CLASS: \"StorageClass\",\n};\nexport const ObjectLockEnabled = {\n    Enabled: \"Enabled\",\n};\nexport const ObjectLockRetentionMode = {\n    COMPLIANCE: \"COMPLIANCE\",\n    GOVERNANCE: \"GOVERNANCE\",\n};\nexport class NotFound extends __BaseException {\n    name = \"NotFound\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"NotFound\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, NotFound.prototype);\n    }\n}\nexport const ArchiveStatus = {\n    ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n    DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\",\n};\nexport const EncodingType = {\n    url: \"url\",\n};\nexport const ObjectStorageClass = {\n    DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n    EXPRESS_ONEZONE: \"EXPRESS_ONEZONE\",\n    GLACIER: \"GLACIER\",\n    GLACIER_IR: \"GLACIER_IR\",\n    INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n    ONEZONE_IA: \"ONEZONE_IA\",\n    OUTPOSTS: \"OUTPOSTS\",\n    REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n    SNOW: \"SNOW\",\n    STANDARD: \"STANDARD\",\n    STANDARD_IA: \"STANDARD_IA\",\n};\nexport const OptionalObjectAttributes = {\n    RESTORE_STATUS: \"RestoreStatus\",\n};\nexport const ObjectVersionStorageClass = {\n    STANDARD: \"STANDARD\",\n};\nexport const CompleteMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const CompleteMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const CopyObjectOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const CopyObjectRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n    ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }),\n});\nexport const CreateMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const CreateMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const SessionCredentialsFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SecretAccessKey && { SecretAccessKey: SENSITIVE_STRING }),\n    ...(obj.SessionToken && { SessionToken: SENSITIVE_STRING }),\n});\nexport const CreateSessionOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n    ...(obj.Credentials && { Credentials: SessionCredentialsFilterSensitiveLog(obj.Credentials) }),\n});\nexport const CreateSessionRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const ServerSideEncryptionByDefaultFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.KMSMasterKeyID && { KMSMasterKeyID: SENSITIVE_STRING }),\n});\nexport const ServerSideEncryptionRuleFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.ApplyServerSideEncryptionByDefault && {\n        ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefaultFilterSensitiveLog(obj.ApplyServerSideEncryptionByDefault),\n    }),\n});\nexport const ServerSideEncryptionConfigurationFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.Rules && { Rules: obj.Rules.map((item) => ServerSideEncryptionRuleFilterSensitiveLog(item)) }),\n});\nexport const GetBucketEncryptionOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.ServerSideEncryptionConfiguration && {\n        ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n    }),\n});\nexport const SSEKMSFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.KeyId && { KeyId: SENSITIVE_STRING }),\n});\nexport const InventoryEncryptionFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMS && { SSEKMS: SSEKMSFilterSensitiveLog(obj.SSEKMS) }),\n});\nexport const InventoryS3BucketDestinationFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.Encryption && { Encryption: InventoryEncryptionFilterSensitiveLog(obj.Encryption) }),\n});\nexport const InventoryDestinationFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.S3BucketDestination && {\n        S3BucketDestination: InventoryS3BucketDestinationFilterSensitiveLog(obj.S3BucketDestination),\n    }),\n});\nexport const InventoryConfigurationFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.Destination && { Destination: InventoryDestinationFilterSensitiveLog(obj.Destination) }),\n});\nexport const GetBucketInventoryConfigurationOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.InventoryConfiguration && {\n        InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration),\n    }),\n});\nexport const GetObjectOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const GetObjectRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const GetObjectAttributesRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const GetObjectTorrentOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n});\nexport const HeadObjectOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const HeadObjectRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const ListBucketInventoryConfigurationsOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.InventoryConfigurationList && {\n        InventoryConfigurationList: obj.InventoryConfigurationList.map((item) => InventoryConfigurationFilterSensitiveLog(item)),\n    }),\n});\nexport const ListPartsRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\n","export function escapeAttribute(value) {\n    return value.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n}\n","export function escapeElement(value) {\n    return value\n        .replace(/&/g, \"&amp;\")\n        .replace(/\"/g, \"&quot;\")\n        .replace(/'/g, \"&apos;\")\n        .replace(/</g, \"&lt;\")\n        .replace(/>/g, \"&gt;\")\n        .replace(/\\r/g, \"&#x0D;\")\n        .replace(/\\n/g, \"&#x0A;\")\n        .replace(/\\u0085/g, \"&#x85;\")\n        .replace(/\\u2028/, \"&#x2028;\");\n}\n","import { escapeElement } from \"./escape-element\";\nexport class XmlText {\n    value;\n    constructor(value) {\n        this.value = value;\n    }\n    toString() {\n        return escapeElement(\"\" + this.value);\n    }\n}\n","import { escapeAttribute } from \"./escape-attribute\";\nimport { XmlText } from \"./XmlText\";\nexport class XmlNode {\n    name;\n    children;\n    attributes = {};\n    static of(name, childText, withName) {\n        const node = new XmlNode(name);\n        if (childText !== undefined) {\n            node.addChildNode(new XmlText(childText));\n        }\n        if (withName !== undefined) {\n            node.withName(withName);\n        }\n        return node;\n    }\n    constructor(name, children = []) {\n        this.name = name;\n        this.children = children;\n    }\n    withName(name) {\n        this.name = name;\n        return this;\n    }\n    addAttribute(name, value) {\n        this.attributes[name] = value;\n        return this;\n    }\n    addChildNode(child) {\n        this.children.push(child);\n        return this;\n    }\n    removeAttribute(name) {\n        delete this.attributes[name];\n        return this;\n    }\n    n(name) {\n        this.name = name;\n        return this;\n    }\n    c(child) {\n        this.children.push(child);\n        return this;\n    }\n    a(name, value) {\n        if (value != null) {\n            this.attributes[name] = value;\n        }\n        return this;\n    }\n    cc(input, field, withName = field) {\n        if (input[field] != null) {\n            const node = XmlNode.of(field, input[field]).withName(withName);\n            this.c(node);\n        }\n    }\n    l(input, listName, memberName, valueProvider) {\n        if (input[listName] != null) {\n            const nodes = valueProvider();\n            nodes.map((node) => {\n                node.withName(memberName);\n                this.c(node);\n            });\n        }\n    }\n    lc(input, listName, memberName, valueProvider) {\n        if (input[listName] != null) {\n            const nodes = valueProvider();\n            const containerNode = new XmlNode(memberName);\n            nodes.map((node) => {\n                containerNode.c(node);\n            });\n            this.c(containerNode);\n        }\n    }\n    toString() {\n        const hasChildren = Boolean(this.children.length);\n        let xmlText = `<${this.name}`;\n        const attributes = this.attributes;\n        for (const attributeName of Object.keys(attributes)) {\n            const attribute = attributes[attributeName];\n            if (attribute != null) {\n                xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n            }\n        }\n        return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}</${this.name}>`);\n    }\n}\n","import { SENSITIVE_STRING } from \"@smithy/smithy-client\";\nimport { InventoryConfigurationFilterSensitiveLog, ServerSideEncryptionConfigurationFilterSensitiveLog, } from \"./models_0\";\nimport { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport const MFADelete = {\n    Disabled: \"Disabled\",\n    Enabled: \"Enabled\",\n};\nexport class EncryptionTypeMismatch extends __BaseException {\n    name = \"EncryptionTypeMismatch\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"EncryptionTypeMismatch\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, EncryptionTypeMismatch.prototype);\n    }\n}\nexport class InvalidRequest extends __BaseException {\n    name = \"InvalidRequest\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"InvalidRequest\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, InvalidRequest.prototype);\n    }\n}\nexport class InvalidWriteOffset extends __BaseException {\n    name = \"InvalidWriteOffset\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"InvalidWriteOffset\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, InvalidWriteOffset.prototype);\n    }\n}\nexport class TooManyParts extends __BaseException {\n    name = \"TooManyParts\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"TooManyParts\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, TooManyParts.prototype);\n    }\n}\nexport class ObjectAlreadyInActiveTierError extends __BaseException {\n    name = \"ObjectAlreadyInActiveTierError\";\n    $fault = \"client\";\n    constructor(opts) {\n        super({\n            name: \"ObjectAlreadyInActiveTierError\",\n            $fault: \"client\",\n            ...opts,\n        });\n        Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype);\n    }\n}\nexport const Tier = {\n    Bulk: \"Bulk\",\n    Expedited: \"Expedited\",\n    Standard: \"Standard\",\n};\nexport const ExpressionType = {\n    SQL: \"SQL\",\n};\nexport const CompressionType = {\n    BZIP2: \"BZIP2\",\n    GZIP: \"GZIP\",\n    NONE: \"NONE\",\n};\nexport const FileHeaderInfo = {\n    IGNORE: \"IGNORE\",\n    NONE: \"NONE\",\n    USE: \"USE\",\n};\nexport const JSONType = {\n    DOCUMENT: \"DOCUMENT\",\n    LINES: \"LINES\",\n};\nexport const QuoteFields = {\n    ALWAYS: \"ALWAYS\",\n    ASNEEDED: \"ASNEEDED\",\n};\nexport const RestoreRequestType = {\n    SELECT: \"SELECT\",\n};\nexport var SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n    SelectObjectContentEventStream.visit = (value, visitor) => {\n        if (value.Records !== undefined)\n            return visitor.Records(value.Records);\n        if (value.Stats !== undefined)\n            return visitor.Stats(value.Stats);\n        if (value.Progress !== undefined)\n            return visitor.Progress(value.Progress);\n        if (value.Cont !== undefined)\n            return visitor.Cont(value.Cont);\n        if (value.End !== undefined)\n            return visitor.End(value.End);\n        return visitor._(value.$unknown[0], value.$unknown[1]);\n    };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nexport const PutBucketEncryptionRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.ServerSideEncryptionConfiguration && {\n        ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n    }),\n});\nexport const PutBucketInventoryConfigurationRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.InventoryConfiguration && {\n        InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration),\n    }),\n});\nexport const PutObjectOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const PutObjectRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n    ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const EncryptionFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.KMSKeyId && { KMSKeyId: SENSITIVE_STRING }),\n});\nexport const S3LocationFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.Encryption && { Encryption: EncryptionFilterSensitiveLog(obj.Encryption) }),\n});\nexport const OutputLocationFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.S3 && { S3: S3LocationFilterSensitiveLog(obj.S3) }),\n});\nexport const RestoreRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.OutputLocation && { OutputLocation: OutputLocationFilterSensitiveLog(obj.OutputLocation) }),\n});\nexport const RestoreObjectRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.RestoreRequest && { RestoreRequest: RestoreRequestFilterSensitiveLog(obj.RestoreRequest) }),\n});\nexport const SelectObjectContentEventStreamFilterSensitiveLog = (obj) => {\n    if (obj.Records !== undefined)\n        return { Records: obj.Records };\n    if (obj.Stats !== undefined)\n        return { Stats: obj.Stats };\n    if (obj.Progress !== undefined)\n        return { Progress: obj.Progress };\n    if (obj.Cont !== undefined)\n        return { Cont: obj.Cont };\n    if (obj.End !== undefined)\n        return { End: obj.End };\n    if (obj.$unknown !== undefined)\n        return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexport const SelectObjectContentOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.Payload && { Payload: \"STREAMING_CONTENT\" }),\n});\nexport const SelectObjectContentRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const UploadPartOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const UploadPartRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const UploadPartCopyOutputFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const UploadPartCopyRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n    ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }),\n});\nexport const WriteGetObjectResponseRequestFilterSensitiveLog = (obj) => ({\n    ...obj,\n    ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\n","import { loadRestXmlErrorCode, parseXmlBody as parseBody, parseXmlErrorBody as parseErrorBody } from \"@aws-sdk/core\";\nimport { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { requestBuilder as rb } from \"@smithy/core\";\nimport { isValidHostname as __isValidHostname, } from \"@smithy/protocol-http\";\nimport { collectBody, dateToUtcString as __dateToUtcString, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, expectUnion as __expectUnion, getArrayIfSingleItem as __getArrayIfSingleItem, isSerializableHeaderValue, map, parseBoolean as __parseBoolean, parseRfc3339DateTimeWithOffset as __parseRfc3339DateTimeWithOffset, parseRfc7231DateTime as __parseRfc7231DateTime, quoteHeader as __quoteHeader, serializeDateTime as __serializeDateTime, strictParseInt32 as __strictParseInt32, strictParseLong as __strictParseLong, withBaseException, } from \"@smithy/smithy-client\";\nimport { AnalyticsFilter, BucketAlreadyExists, BucketAlreadyOwnedByYou, InvalidObjectState, MetricsFilter, NoSuchBucket, NoSuchKey, NoSuchUpload, NotFound, ObjectNotInActiveTierError, } from \"../models/models_0\";\nimport { EncryptionTypeMismatch, InvalidRequest, InvalidWriteOffset, ObjectAlreadyInActiveTierError, TooManyParts, } from \"../models/models_1\";\nimport { S3ServiceException as __BaseException } from \"../models/S3ServiceException\";\nexport const se_AbortMultipartUploadCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xaimit]: [() => isSerializableHeaderValue(input[_IMIT]), () => __dateToUtcString(input[_IMIT]).toString()],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"AbortMultipartUpload\"],\n        [_uI]: [, __expectNonNull(input[_UI], `UploadId`)],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_CompleteMultipartUploadCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xacc]: input[_CCRC],\n        [_xacc_]: input[_CCRCC],\n        [_xacc__]: input[_CCRCNVME],\n        [_xacs]: input[_CSHA],\n        [_xacs_]: input[_CSHAh],\n        [_xact]: input[_CT],\n        [_xamos]: input[_MOS],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_im]: input[_IM],\n        [_inm]: input[_INM],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_uI]: [, __expectNonNull(input[_UI], `UploadId`)],\n    });\n    let body;\n    let contents;\n    if (input.MultipartUpload !== undefined) {\n        contents = se_CompletedMultipartUpload(input.MultipartUpload, context);\n        contents = contents.n(\"CompleteMultipartUpload\");\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"POST\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_CopyObjectCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaa]: input[_ACL],\n        [_cc]: input[_CC],\n        [_xaca]: input[_CA],\n        [_cd]: input[_CD],\n        [_ce]: input[_CE],\n        [_cl]: input[_CL],\n        [_ct]: input[_CTo],\n        [_xacs__]: input[_CS],\n        [_xacsim]: input[_CSIM],\n        [_xacsims]: [() => isSerializableHeaderValue(input[_CSIMS]), () => __dateToUtcString(input[_CSIMS]).toString()],\n        [_xacsinm]: input[_CSINM],\n        [_xacsius]: [() => isSerializableHeaderValue(input[_CSIUS]), () => __dateToUtcString(input[_CSIUS]).toString()],\n        [_e]: [() => isSerializableHeaderValue(input[_E]), () => __dateToUtcString(input[_E]).toString()],\n        [_xagfc]: input[_GFC],\n        [_xagr]: input[_GR],\n        [_xagra]: input[_GRACP],\n        [_xagwa]: input[_GWACP],\n        [_xamd]: input[_MD],\n        [_xatd]: input[_TD],\n        [_xasse]: input[_SSE],\n        [_xasc]: input[_SC],\n        [_xawrl]: input[_WRL],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xasseakki]: input[_SSEKMSKI],\n        [_xassec]: input[_SSEKMSEC],\n        [_xassebke]: [() => isSerializableHeaderValue(input[_BKE]), () => input[_BKE].toString()],\n        [_xacssseca]: input[_CSSSECA],\n        [_xacssseck]: input[_CSSSECK],\n        [_xacssseckm]: input[_CSSSECKMD],\n        [_xarp]: input[_RP],\n        [_xat]: input[_T],\n        [_xaolm]: input[_OLM],\n        [_xaolrud]: [() => isSerializableHeaderValue(input[_OLRUD]), () => __serializeDateTime(input[_OLRUD]).toString()],\n        [_xaollh]: input[_OLLHS],\n        [_xaebo]: input[_EBO],\n        [_xasebo]: input[_ESBO],\n        ...(input.Metadata !== undefined &&\n            Object.keys(input.Metadata).reduce((acc, suffix) => {\n                acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n                return acc;\n            }, {})),\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"CopyObject\"],\n    });\n    let body;\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_CreateBucketCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaa]: input[_ACL],\n        [_xagfc]: input[_GFC],\n        [_xagr]: input[_GR],\n        [_xagra]: input[_GRACP],\n        [_xagw]: input[_GW],\n        [_xagwa]: input[_GWACP],\n        [_xabole]: [() => isSerializableHeaderValue(input[_OLEFB]), () => input[_OLEFB].toString()],\n        [_xaoo]: input[_OO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    let body;\n    let contents;\n    if (input.CreateBucketConfiguration !== undefined) {\n        contents = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).b(body);\n    return b.build();\n};\nexport const se_CreateBucketMetadataTableConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_mT]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.MetadataTableConfiguration !== undefined) {\n        contents = se_MetadataTableConfiguration(input.MetadataTableConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"POST\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_CreateMultipartUploadCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaa]: input[_ACL],\n        [_cc]: input[_CC],\n        [_cd]: input[_CD],\n        [_ce]: input[_CE],\n        [_cl]: input[_CL],\n        [_ct]: input[_CTo],\n        [_e]: [() => isSerializableHeaderValue(input[_E]), () => __dateToUtcString(input[_E]).toString()],\n        [_xagfc]: input[_GFC],\n        [_xagr]: input[_GR],\n        [_xagra]: input[_GRACP],\n        [_xagwa]: input[_GWACP],\n        [_xasse]: input[_SSE],\n        [_xasc]: input[_SC],\n        [_xawrl]: input[_WRL],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xasseakki]: input[_SSEKMSKI],\n        [_xassec]: input[_SSEKMSEC],\n        [_xassebke]: [() => isSerializableHeaderValue(input[_BKE]), () => input[_BKE].toString()],\n        [_xarp]: input[_RP],\n        [_xat]: input[_T],\n        [_xaolm]: input[_OLM],\n        [_xaolrud]: [() => isSerializableHeaderValue(input[_OLRUD]), () => __serializeDateTime(input[_OLRUD]).toString()],\n        [_xaollh]: input[_OLLHS],\n        [_xaebo]: input[_EBO],\n        [_xaca]: input[_CA],\n        [_xact]: input[_CT],\n        ...(input.Metadata !== undefined &&\n            Object.keys(input.Metadata).reduce((acc, suffix) => {\n                acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n                return acc;\n            }, {})),\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_u]: [, \"\"],\n    });\n    let body;\n    b.m(\"POST\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_CreateSessionCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xacsm]: input[_SM],\n        [_xasse]: input[_SSE],\n        [_xasseakki]: input[_SSEKMSKI],\n        [_xassec]: input[_SSEKMSEC],\n        [_xassebke]: [() => isSerializableHeaderValue(input[_BKE]), () => input[_BKE].toString()],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_s]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    let body;\n    b.m(\"DELETE\").h(headers).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketAnalyticsConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_a]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketCorsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_c]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketEncryptionCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_en]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = {};\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_it]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketInventoryConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_in]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketLifecycleCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_l]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketMetadataTableConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_mT]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketMetricsConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_m]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketOwnershipControlsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_oC]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketPolicyCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_p]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketReplicationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_r]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketTaggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_t]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteBucketWebsiteCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_w]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteObjectCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xam]: input[_MFA],\n        [_xarp]: input[_RP],\n        [_xabgr]: [() => isSerializableHeaderValue(input[_BGR]), () => input[_BGR].toString()],\n        [_xaebo]: input[_EBO],\n        [_im]: input[_IM],\n        [_xaimlmt]: [() => isSerializableHeaderValue(input[_IMLMT]), () => __dateToUtcString(input[_IMLMT]).toString()],\n        [_xaims]: [() => isSerializableHeaderValue(input[_IMS]), () => input[_IMS].toString()],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"DeleteObject\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteObjectsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xam]: input[_MFA],\n        [_xarp]: input[_RP],\n        [_xabgr]: [() => isSerializableHeaderValue(input[_BGR]), () => input[_BGR].toString()],\n        [_xaebo]: input[_EBO],\n        [_xasca]: input[_CA],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_d]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.Delete !== undefined) {\n        contents = se_Delete(input.Delete, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"POST\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeleteObjectTaggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_t]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_DeletePublicAccessBlockCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_pAB]: [, \"\"],\n    });\n    let body;\n    b.m(\"DELETE\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketAccelerateConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n        [_xarp]: input[_RP],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_ac]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketAclCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_acl]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketAnalyticsConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_a]: [, \"\"],\n        [_xi]: [, \"GetBucketAnalyticsConfiguration\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketCorsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_c]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketEncryptionCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_en]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = {};\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_it]: [, \"\"],\n        [_xi]: [, \"GetBucketIntelligentTieringConfiguration\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketInventoryConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_in]: [, \"\"],\n        [_xi]: [, \"GetBucketInventoryConfiguration\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketLifecycleConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_l]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketLocationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_lo]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketLoggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_log]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketMetadataTableConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_mT]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketMetricsConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_m]: [, \"\"],\n        [_xi]: [, \"GetBucketMetricsConfiguration\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketNotificationConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_n]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketOwnershipControlsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_oC]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketPolicyCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_p]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketPolicyStatusCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_pS]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketReplicationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_r]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketRequestPaymentCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_rP]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketTaggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_t]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketVersioningCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_v]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetBucketWebsiteCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_w]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_im]: input[_IM],\n        [_ims]: [() => isSerializableHeaderValue(input[_IMSf]), () => __dateToUtcString(input[_IMSf]).toString()],\n        [_inm]: input[_INM],\n        [_ius]: [() => isSerializableHeaderValue(input[_IUS]), () => __dateToUtcString(input[_IUS]).toString()],\n        [_ra]: input[_R],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xacm]: input[_CM],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"GetObject\"],\n        [_rcc]: [, input[_RCC]],\n        [_rcd]: [, input[_RCD]],\n        [_rce]: [, input[_RCE]],\n        [_rcl]: [, input[_RCL]],\n        [_rct]: [, input[_RCT]],\n        [_re]: [() => input.ResponseExpires !== void 0, () => __dateToUtcString(input[_RE]).toString()],\n        [_vI]: [, input[_VI]],\n        [_pN]: [() => input.PartNumber !== void 0, () => input[_PN].toString()],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectAclCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_acl]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectAttributesCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xamp]: [() => isSerializableHeaderValue(input[_MP]), () => input[_MP].toString()],\n        [_xapnm]: input[_PNM],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xaoa]: [() => isSerializableHeaderValue(input[_OA]), () => (input[_OA] || []).map(__quoteHeader).join(\", \")],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_at]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectLegalHoldCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_lh]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectLockConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_ol]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectRetentionCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_ret]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectTaggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n        [_xarp]: input[_RP],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_t]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetObjectTorrentCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_to]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_GetPublicAccessBlockCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_pAB]: [, \"\"],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_HeadBucketCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    let body;\n    b.m(\"HEAD\").h(headers).b(body);\n    return b.build();\n};\nexport const se_HeadObjectCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_im]: input[_IM],\n        [_ims]: [() => isSerializableHeaderValue(input[_IMSf]), () => __dateToUtcString(input[_IMSf]).toString()],\n        [_inm]: input[_INM],\n        [_ius]: [() => isSerializableHeaderValue(input[_IUS]), () => __dateToUtcString(input[_IUS]).toString()],\n        [_ra]: input[_R],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xacm]: input[_CM],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_rcc]: [, input[_RCC]],\n        [_rcd]: [, input[_RCD]],\n        [_rce]: [, input[_RCE]],\n        [_rcl]: [, input[_RCL]],\n        [_rct]: [, input[_RCT]],\n        [_re]: [() => input.ResponseExpires !== void 0, () => __dateToUtcString(input[_RE]).toString()],\n        [_vI]: [, input[_VI]],\n        [_pN]: [() => input.PartNumber !== void 0, () => input[_PN].toString()],\n    });\n    let body;\n    b.m(\"HEAD\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListBucketAnalyticsConfigurationsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_a]: [, \"\"],\n        [_xi]: [, \"ListBucketAnalyticsConfigurations\"],\n        [_ct_]: [, input[_CTon]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListBucketIntelligentTieringConfigurationsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = {};\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_it]: [, \"\"],\n        [_xi]: [, \"ListBucketIntelligentTieringConfigurations\"],\n        [_ct_]: [, input[_CTon]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListBucketInventoryConfigurationsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_in]: [, \"\"],\n        [_xi]: [, \"ListBucketInventoryConfigurations\"],\n        [_ct_]: [, input[_CTon]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListBucketMetricsConfigurationsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_m]: [, \"\"],\n        [_xi]: [, \"ListBucketMetricsConfigurations\"],\n        [_ct_]: [, input[_CTon]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListBucketsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = {};\n    b.bp(\"/\");\n    const query = map({\n        [_xi]: [, \"ListBuckets\"],\n        [_mb]: [() => input.MaxBuckets !== void 0, () => input[_MB].toString()],\n        [_ct_]: [, input[_CTon]],\n        [_pr]: [, input[_P]],\n        [_br]: [, input[_BR]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListDirectoryBucketsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = {};\n    b.bp(\"/\");\n    const query = map({\n        [_xi]: [, \"ListDirectoryBuckets\"],\n        [_ct_]: [, input[_CTon]],\n        [_mdb]: [() => input.MaxDirectoryBuckets !== void 0, () => input[_MDB].toString()],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListMultipartUploadsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n        [_xarp]: input[_RP],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_u]: [, \"\"],\n        [_de]: [, input[_D]],\n        [_et]: [, input[_ET]],\n        [_km]: [, input[_KM]],\n        [_mu]: [() => input.MaxUploads !== void 0, () => input[_MU].toString()],\n        [_pr]: [, input[_P]],\n        [_uim]: [, input[_UIM]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListObjectsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xaooa]: [() => isSerializableHeaderValue(input[_OOA]), () => (input[_OOA] || []).map(__quoteHeader).join(\", \")],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_de]: [, input[_D]],\n        [_et]: [, input[_ET]],\n        [_ma]: [, input[_M]],\n        [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n        [_pr]: [, input[_P]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListObjectsV2Command = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xaooa]: [() => isSerializableHeaderValue(input[_OOA]), () => (input[_OOA] || []).map(__quoteHeader).join(\", \")],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_lt]: [, \"2\"],\n        [_de]: [, input[_D]],\n        [_et]: [, input[_ET]],\n        [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n        [_pr]: [, input[_P]],\n        [_ct_]: [, input[_CTon]],\n        [_fo]: [() => input.FetchOwner !== void 0, () => input[_FO].toString()],\n        [_sa]: [, input[_SA]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListObjectVersionsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xaebo]: input[_EBO],\n        [_xarp]: input[_RP],\n        [_xaooa]: [() => isSerializableHeaderValue(input[_OOA]), () => (input[_OOA] || []).map(__quoteHeader).join(\", \")],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_ver]: [, \"\"],\n        [_de]: [, input[_D]],\n        [_et]: [, input[_ET]],\n        [_km]: [, input[_KM]],\n        [_mk]: [() => input.MaxKeys !== void 0, () => input[_MK].toString()],\n        [_pr]: [, input[_P]],\n        [_vim]: [, input[_VIM]],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_ListPartsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"ListParts\"],\n        [_mp]: [() => input.MaxParts !== void 0, () => input[_MP].toString()],\n        [_pnm]: [, input[_PNM]],\n        [_uI]: [, __expectNonNull(input[_UI], `UploadId`)],\n    });\n    let body;\n    b.m(\"GET\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketAccelerateConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaebo]: input[_EBO],\n        [_xasca]: input[_CA],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_ac]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.AccelerateConfiguration !== undefined) {\n        contents = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketAclCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaa]: input[_ACL],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xagfc]: input[_GFC],\n        [_xagr]: input[_GR],\n        [_xagra]: input[_GRACP],\n        [_xagw]: input[_GW],\n        [_xagwa]: input[_GWACP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_acl]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.AccessControlPolicy !== undefined) {\n        contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketAnalyticsConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_a]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    let contents;\n    if (input.AnalyticsConfiguration !== undefined) {\n        contents = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketCorsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_c]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.CORSConfiguration !== undefined) {\n        contents = se_CORSConfiguration(input.CORSConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketEncryptionCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_en]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.ServerSideEncryptionConfiguration !== undefined) {\n        contents = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = {\n        \"content-type\": \"application/xml\",\n    };\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_it]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    let contents;\n    if (input.IntelligentTieringConfiguration !== undefined) {\n        contents = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketInventoryConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_in]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    let contents;\n    if (input.InventoryConfiguration !== undefined) {\n        contents = se_InventoryConfiguration(input.InventoryConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketLifecycleConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n        [_xatdmos]: input[_TDMOS],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_l]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.LifecycleConfiguration !== undefined) {\n        contents = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n        contents = contents.n(\"LifecycleConfiguration\");\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketLoggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_log]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.BucketLoggingStatus !== undefined) {\n        contents = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketMetricsConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_m]: [, \"\"],\n        [_i]: [, __expectNonNull(input[_I], `Id`)],\n    });\n    let body;\n    let contents;\n    if (input.MetricsConfiguration !== undefined) {\n        contents = se_MetricsConfiguration(input.MetricsConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketNotificationConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaebo]: input[_EBO],\n        [_xasdv]: [() => isSerializableHeaderValue(input[_SDV]), () => input[_SDV].toString()],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_n]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.NotificationConfiguration !== undefined) {\n        contents = se_NotificationConfiguration(input.NotificationConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketOwnershipControlsCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_oC]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.OwnershipControls !== undefined) {\n        contents = se_OwnershipControls(input.OwnershipControls, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketPolicyCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"text/plain\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xacrsba]: [() => isSerializableHeaderValue(input[_CRSBA]), () => input[_CRSBA].toString()],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_p]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.Policy !== undefined) {\n        contents = input.Policy;\n        body = contents;\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketReplicationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xabolt]: input[_To],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_r]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.ReplicationConfiguration !== undefined) {\n        contents = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketRequestPaymentCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_rP]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.RequestPaymentConfiguration !== undefined) {\n        contents = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketTaggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_t]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.Tagging !== undefined) {\n        contents = se_Tagging(input.Tagging, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketVersioningCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xam]: input[_MFA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_v]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.VersioningConfiguration !== undefined) {\n        contents = se_VersioningConfiguration(input.VersioningConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutBucketWebsiteCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_w]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.WebsiteConfiguration !== undefined) {\n        contents = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutObjectCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_ct]: input[_CTo] || \"application/octet-stream\",\n        [_xaa]: input[_ACL],\n        [_cc]: input[_CC],\n        [_cd]: input[_CD],\n        [_ce]: input[_CE],\n        [_cl]: input[_CL],\n        [_cl_]: [() => isSerializableHeaderValue(input[_CLo]), () => input[_CLo].toString()],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xacc]: input[_CCRC],\n        [_xacc_]: input[_CCRCC],\n        [_xacc__]: input[_CCRCNVME],\n        [_xacs]: input[_CSHA],\n        [_xacs_]: input[_CSHAh],\n        [_e]: [() => isSerializableHeaderValue(input[_E]), () => __dateToUtcString(input[_E]).toString()],\n        [_im]: input[_IM],\n        [_inm]: input[_INM],\n        [_xagfc]: input[_GFC],\n        [_xagr]: input[_GR],\n        [_xagra]: input[_GRACP],\n        [_xagwa]: input[_GWACP],\n        [_xawob]: [() => isSerializableHeaderValue(input[_WOB]), () => input[_WOB].toString()],\n        [_xasse]: input[_SSE],\n        [_xasc]: input[_SC],\n        [_xawrl]: input[_WRL],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xasseakki]: input[_SSEKMSKI],\n        [_xassec]: input[_SSEKMSEC],\n        [_xassebke]: [() => isSerializableHeaderValue(input[_BKE]), () => input[_BKE].toString()],\n        [_xarp]: input[_RP],\n        [_xat]: input[_T],\n        [_xaolm]: input[_OLM],\n        [_xaolrud]: [() => isSerializableHeaderValue(input[_OLRUD]), () => __serializeDateTime(input[_OLRUD]).toString()],\n        [_xaollh]: input[_OLLHS],\n        [_xaebo]: input[_EBO],\n        ...(input.Metadata !== undefined &&\n            Object.keys(input.Metadata).reduce((acc, suffix) => {\n                acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n                return acc;\n            }, {})),\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"PutObject\"],\n    });\n    let body;\n    let contents;\n    if (input.Body !== undefined) {\n        contents = input.Body;\n        body = contents;\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutObjectAclCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xaa]: input[_ACL],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xagfc]: input[_GFC],\n        [_xagr]: input[_GR],\n        [_xagra]: input[_GRACP],\n        [_xagw]: input[_GW],\n        [_xagwa]: input[_GWACP],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_acl]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    let contents;\n    if (input.AccessControlPolicy !== undefined) {\n        contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutObjectLegalHoldCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xarp]: input[_RP],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_lh]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    let contents;\n    if (input.LegalHold !== undefined) {\n        contents = se_ObjectLockLegalHold(input.LegalHold, context);\n        contents = contents.n(\"LegalHold\");\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutObjectLockConfigurationCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xarp]: input[_RP],\n        [_xabolt]: input[_To],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_ol]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.ObjectLockConfiguration !== undefined) {\n        contents = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutObjectRetentionCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xarp]: input[_RP],\n        [_xabgr]: [() => isSerializableHeaderValue(input[_BGR]), () => input[_BGR].toString()],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_ret]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    let contents;\n    if (input.Retention !== undefined) {\n        contents = se_ObjectLockRetention(input.Retention, context);\n        contents = contents.n(\"Retention\");\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutObjectTaggingCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n        [_xarp]: input[_RP],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_t]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    let contents;\n    if (input.Tagging !== undefined) {\n        contents = se_Tagging(input.Tagging, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_PutPublicAccessBlockCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    const query = map({\n        [_pAB]: [, \"\"],\n    });\n    let body;\n    let contents;\n    if (input.PublicAccessBlockConfiguration !== undefined) {\n        contents = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_RestoreObjectCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xarp]: input[_RP],\n        [_xasca]: input[_CA],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_res]: [, \"\"],\n        [_vI]: [, input[_VI]],\n    });\n    let body;\n    let contents;\n    if (input.RestoreRequest !== undefined) {\n        contents = se_RestoreRequest(input.RestoreRequest, context);\n        body = _ve;\n        contents.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n        body += contents.toString();\n    }\n    b.m(\"POST\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_SelectObjectContentCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/xml\",\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_se]: [, \"\"],\n        [_st]: [, \"2\"],\n    });\n    let body;\n    body = _ve;\n    const bn = new __XmlNode(_SOCR);\n    bn.a(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n    bn.cc(input, _Ex);\n    bn.cc(input, _ETx);\n    if (input[_IS] != null) {\n        bn.c(se_InputSerialization(input[_IS], context).n(_IS));\n    }\n    if (input[_OS] != null) {\n        bn.c(se_OutputSerialization(input[_OS], context).n(_OS));\n    }\n    if (input[_RPe] != null) {\n        bn.c(se_RequestProgress(input[_RPe], context).n(_RPe));\n    }\n    if (input[_SR] != null) {\n        bn.c(se_ScanRange(input[_SR], context).n(_SR));\n    }\n    body += bn.toString();\n    b.m(\"POST\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_UploadPartCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"content-type\": \"application/octet-stream\",\n        [_cl_]: [() => isSerializableHeaderValue(input[_CLo]), () => input[_CLo].toString()],\n        [_cm]: input[_CMD],\n        [_xasca]: input[_CA],\n        [_xacc]: input[_CCRC],\n        [_xacc_]: input[_CCRCC],\n        [_xacc__]: input[_CCRCNVME],\n        [_xacs]: input[_CSHA],\n        [_xacs_]: input[_CSHAh],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"UploadPart\"],\n        [_pN]: [__expectNonNull(input.PartNumber, `PartNumber`) != null, () => input[_PN].toString()],\n        [_uI]: [, __expectNonNull(input[_UI], `UploadId`)],\n    });\n    let body;\n    let contents;\n    if (input.Body !== undefined) {\n        contents = input.Body;\n        body = contents;\n    }\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_UploadPartCopyCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        [_xacs__]: input[_CS],\n        [_xacsim]: input[_CSIM],\n        [_xacsims]: [() => isSerializableHeaderValue(input[_CSIMS]), () => __dateToUtcString(input[_CSIMS]).toString()],\n        [_xacsinm]: input[_CSINM],\n        [_xacsius]: [() => isSerializableHeaderValue(input[_CSIUS]), () => __dateToUtcString(input[_CSIUS]).toString()],\n        [_xacsr]: input[_CSR],\n        [_xasseca]: input[_SSECA],\n        [_xasseck]: input[_SSECK],\n        [_xasseckm]: input[_SSECKMD],\n        [_xacssseca]: input[_CSSSECA],\n        [_xacssseck]: input[_CSSSECK],\n        [_xacssseckm]: input[_CSSSECKMD],\n        [_xarp]: input[_RP],\n        [_xaebo]: input[_EBO],\n        [_xasebo]: input[_ESBO],\n    });\n    b.bp(\"/{Key+}\");\n    b.p(\"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n    b.p(\"Key\", () => input.Key, \"{Key+}\", true);\n    const query = map({\n        [_xi]: [, \"UploadPartCopy\"],\n        [_pN]: [__expectNonNull(input.PartNumber, `PartNumber`) != null, () => input[_PN].toString()],\n        [_uI]: [, __expectNonNull(input[_UI], `UploadId`)],\n    });\n    let body;\n    b.m(\"PUT\").h(headers).q(query).b(body);\n    return b.build();\n};\nexport const se_WriteGetObjectResponseCommand = async (input, context) => {\n    const b = rb(input, context);\n    const headers = map({}, isSerializableHeaderValue, {\n        \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n        \"content-type\": \"application/octet-stream\",\n        [_xarr]: input[_RR],\n        [_xart]: input[_RT],\n        [_xafs]: [() => isSerializableHeaderValue(input[_SCt]), () => input[_SCt].toString()],\n        [_xafec]: input[_EC],\n        [_xafem]: input[_EM],\n        [_xafhar]: input[_AR],\n        [_xafhcc]: input[_CC],\n        [_xafhcd]: input[_CD],\n        [_xafhce]: input[_CE],\n        [_xafhcl]: input[_CL],\n        [_cl_]: [() => isSerializableHeaderValue(input[_CLo]), () => input[_CLo].toString()],\n        [_xafhcr]: input[_CR],\n        [_xafhct]: input[_CTo],\n        [_xafhxacc]: input[_CCRC],\n        [_xafhxacc_]: input[_CCRCC],\n        [_xafhxacc__]: input[_CCRCNVME],\n        [_xafhxacs]: input[_CSHA],\n        [_xafhxacs_]: input[_CSHAh],\n        [_xafhxadm]: [() => isSerializableHeaderValue(input[_DM]), () => input[_DM].toString()],\n        [_xafhe]: input[_ETa],\n        [_xafhe_]: [() => isSerializableHeaderValue(input[_E]), () => __dateToUtcString(input[_E]).toString()],\n        [_xafhxae]: input[_Exp],\n        [_xafhlm]: [() => isSerializableHeaderValue(input[_LM]), () => __dateToUtcString(input[_LM]).toString()],\n        [_xafhxamm]: [() => isSerializableHeaderValue(input[_MM]), () => input[_MM].toString()],\n        [_xafhxaolm]: input[_OLM],\n        [_xafhxaollh]: input[_OLLHS],\n        [_xafhxaolrud]: [\n            () => isSerializableHeaderValue(input[_OLRUD]),\n            () => __serializeDateTime(input[_OLRUD]).toString(),\n        ],\n        [_xafhxampc]: [() => isSerializableHeaderValue(input[_PC]), () => input[_PC].toString()],\n        [_xafhxars]: input[_RS],\n        [_xafhxarc]: input[_RC],\n        [_xafhxar]: input[_Re],\n        [_xafhxasse]: input[_SSE],\n        [_xafhxasseca]: input[_SSECA],\n        [_xafhxasseakki]: input[_SSEKMSKI],\n        [_xafhxasseckm]: input[_SSECKMD],\n        [_xafhxasc]: input[_SC],\n        [_xafhxatc]: [() => isSerializableHeaderValue(input[_TC]), () => input[_TC].toString()],\n        [_xafhxavi]: input[_VI],\n        [_xafhxassebke]: [() => isSerializableHeaderValue(input[_BKE]), () => input[_BKE].toString()],\n        ...(input.Metadata !== undefined &&\n            Object.keys(input.Metadata).reduce((acc, suffix) => {\n                acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n                return acc;\n            }, {})),\n    });\n    b.bp(\"/WriteGetObjectResponse\");\n    let body;\n    let contents;\n    if (input.Body !== undefined) {\n        contents = input.Body;\n        body = contents;\n    }\n    let { hostname: resolvedHostname } = await context.endpoint();\n    if (context.disableHostPrefix !== true) {\n        resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n        if (input.RequestRoute === undefined) {\n            throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n        }\n        resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n        if (!__isValidHostname(resolvedHostname)) {\n            throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n        }\n    }\n    b.hn(resolvedHostname);\n    b.m(\"POST\").h(headers).b(body);\n    return b.build();\n};\nexport const de_AbortMultipartUploadCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_CompleteMultipartUploadCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_Exp]: [, output.headers[_xae]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_VI]: [, output.headers[_xavi]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_B] != null) {\n        contents[_B] = __expectString(data[_B]);\n    }\n    if (data[_CCRC] != null) {\n        contents[_CCRC] = __expectString(data[_CCRC]);\n    }\n    if (data[_CCRCC] != null) {\n        contents[_CCRCC] = __expectString(data[_CCRCC]);\n    }\n    if (data[_CCRCNVME] != null) {\n        contents[_CCRCNVME] = __expectString(data[_CCRCNVME]);\n    }\n    if (data[_CSHA] != null) {\n        contents[_CSHA] = __expectString(data[_CSHA]);\n    }\n    if (data[_CSHAh] != null) {\n        contents[_CSHAh] = __expectString(data[_CSHAh]);\n    }\n    if (data[_CT] != null) {\n        contents[_CT] = __expectString(data[_CT]);\n    }\n    if (data[_ETa] != null) {\n        contents[_ETa] = __expectString(data[_ETa]);\n    }\n    if (data[_K] != null) {\n        contents[_K] = __expectString(data[_K]);\n    }\n    if (data[_L] != null) {\n        contents[_L] = __expectString(data[_L]);\n    }\n    return contents;\n};\nexport const de_CopyObjectCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_Exp]: [, output.headers[_xae]],\n        [_CSVI]: [, output.headers[_xacsvi]],\n        [_VI]: [, output.headers[_xavi]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_SSEKMSEC]: [, output.headers[_xassec]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.CopyObjectResult = de_CopyObjectResult(data, context);\n    return contents;\n};\nexport const de_CreateBucketCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_L]: [, output.headers[_lo]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_CreateBucketMetadataTableConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_CreateMultipartUploadCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_AD]: [\n            () => void 0 !== output.headers[_xaad],\n            () => __expectNonNull(__parseRfc7231DateTime(output.headers[_xaad])),\n        ],\n        [_ARI]: [, output.headers[_xaari]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_SSEKMSEC]: [, output.headers[_xassec]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_RC]: [, output.headers[_xarc]],\n        [_CA]: [, output.headers[_xaca]],\n        [_CT]: [, output.headers[_xact]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_B] != null) {\n        contents[_B] = __expectString(data[_B]);\n    }\n    if (data[_K] != null) {\n        contents[_K] = __expectString(data[_K]);\n    }\n    if (data[_UI] != null) {\n        contents[_UI] = __expectString(data[_UI]);\n    }\n    return contents;\n};\nexport const de_CreateSessionCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_SSE]: [, output.headers[_xasse]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_SSEKMSEC]: [, output.headers[_xassec]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_C] != null) {\n        contents[_C] = de_SessionCredentials(data[_C], context);\n    }\n    return contents;\n};\nexport const de_DeleteBucketCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketAnalyticsConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketCorsCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketEncryptionCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketInventoryConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketLifecycleCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketMetadataTableConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketMetricsConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketOwnershipControlsCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketPolicyCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketReplicationCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketTaggingCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteBucketWebsiteCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteObjectCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_DM]: [() => void 0 !== output.headers[_xadm], () => __parseBoolean(output.headers[_xadm])],\n        [_VI]: [, output.headers[_xavi]],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeleteObjectsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.Deleted === \"\") {\n        contents[_De] = [];\n    }\n    else if (data[_De] != null) {\n        contents[_De] = de_DeletedObjects(__getArrayIfSingleItem(data[_De]), context);\n    }\n    if (data.Error === \"\") {\n        contents[_Err] = [];\n    }\n    else if (data[_Er] != null) {\n        contents[_Err] = de_Errors(__getArrayIfSingleItem(data[_Er]), context);\n    }\n    return contents;\n};\nexport const de_DeleteObjectTaggingCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_VI]: [, output.headers[_xavi]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_DeletePublicAccessBlockCommand = async (output, context) => {\n    if (output.statusCode !== 204 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_GetBucketAccelerateConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_S] != null) {\n        contents[_S] = __expectString(data[_S]);\n    }\n    return contents;\n};\nexport const de_GetBucketAclCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.AccessControlList === \"\") {\n        contents[_Gr] = [];\n    }\n    else if (data[_ACLc] != null && data[_ACLc][_G] != null) {\n        contents[_Gr] = de_Grants(__getArrayIfSingleItem(data[_ACLc][_G]), context);\n    }\n    if (data[_O] != null) {\n        contents[_O] = de_Owner(data[_O], context);\n    }\n    return contents;\n};\nexport const de_GetBucketAnalyticsConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.AnalyticsConfiguration = de_AnalyticsConfiguration(data, context);\n    return contents;\n};\nexport const de_GetBucketCorsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.CORSRule === \"\") {\n        contents[_CORSRu] = [];\n    }\n    else if (data[_CORSR] != null) {\n        contents[_CORSRu] = de_CORSRules(__getArrayIfSingleItem(data[_CORSR]), context);\n    }\n    return contents;\n};\nexport const de_GetBucketEncryptionCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.ServerSideEncryptionConfiguration = de_ServerSideEncryptionConfiguration(data, context);\n    return contents;\n};\nexport const de_GetBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.IntelligentTieringConfiguration = de_IntelligentTieringConfiguration(data, context);\n    return contents;\n};\nexport const de_GetBucketInventoryConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.InventoryConfiguration = de_InventoryConfiguration(data, context);\n    return contents;\n};\nexport const de_GetBucketLifecycleConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_TDMOS]: [, output.headers[_xatdmos]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.Rule === \"\") {\n        contents[_Rul] = [];\n    }\n    else if (data[_Ru] != null) {\n        contents[_Rul] = de_LifecycleRules(__getArrayIfSingleItem(data[_Ru]), context);\n    }\n    return contents;\n};\nexport const de_GetBucketLocationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_LC] != null) {\n        contents[_LC] = __expectString(data[_LC]);\n    }\n    return contents;\n};\nexport const de_GetBucketLoggingCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_LE] != null) {\n        contents[_LE] = de_LoggingEnabled(data[_LE], context);\n    }\n    return contents;\n};\nexport const de_GetBucketMetadataTableConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.GetBucketMetadataTableConfigurationResult = de_GetBucketMetadataTableConfigurationResult(data, context);\n    return contents;\n};\nexport const de_GetBucketMetricsConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.MetricsConfiguration = de_MetricsConfiguration(data, context);\n    return contents;\n};\nexport const de_GetBucketNotificationConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_EBC] != null) {\n        contents[_EBC] = de_EventBridgeConfiguration(data[_EBC], context);\n    }\n    if (data.CloudFunctionConfiguration === \"\") {\n        contents[_LFC] = [];\n    }\n    else if (data[_CFC] != null) {\n        contents[_LFC] = de_LambdaFunctionConfigurationList(__getArrayIfSingleItem(data[_CFC]), context);\n    }\n    if (data.QueueConfiguration === \"\") {\n        contents[_QCu] = [];\n    }\n    else if (data[_QC] != null) {\n        contents[_QCu] = de_QueueConfigurationList(__getArrayIfSingleItem(data[_QC]), context);\n    }\n    if (data.TopicConfiguration === \"\") {\n        contents[_TCop] = [];\n    }\n    else if (data[_TCo] != null) {\n        contents[_TCop] = de_TopicConfigurationList(__getArrayIfSingleItem(data[_TCo]), context);\n    }\n    return contents;\n};\nexport const de_GetBucketOwnershipControlsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.OwnershipControls = de_OwnershipControls(data, context);\n    return contents;\n};\nexport const de_GetBucketPolicyCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = await collectBodyString(output.body, context);\n    contents.Policy = __expectString(data);\n    return contents;\n};\nexport const de_GetBucketPolicyStatusCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.PolicyStatus = de_PolicyStatus(data, context);\n    return contents;\n};\nexport const de_GetBucketReplicationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.ReplicationConfiguration = de_ReplicationConfiguration(data, context);\n    return contents;\n};\nexport const de_GetBucketRequestPaymentCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_Pa] != null) {\n        contents[_Pa] = __expectString(data[_Pa]);\n    }\n    return contents;\n};\nexport const de_GetBucketTaggingCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.TagSet === \"\") {\n        contents[_TS] = [];\n    }\n    else if (data[_TS] != null && data[_TS][_Ta] != null) {\n        contents[_TS] = de_TagSet(__getArrayIfSingleItem(data[_TS][_Ta]), context);\n    }\n    return contents;\n};\nexport const de_GetBucketVersioningCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_MDf] != null) {\n        contents[_MFAD] = __expectString(data[_MDf]);\n    }\n    if (data[_S] != null) {\n        contents[_S] = __expectString(data[_S]);\n    }\n    return contents;\n};\nexport const de_GetBucketWebsiteCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_ED] != null) {\n        contents[_ED] = de_ErrorDocument(data[_ED], context);\n    }\n    if (data[_ID] != null) {\n        contents[_ID] = de_IndexDocument(data[_ID], context);\n    }\n    if (data[_RART] != null) {\n        contents[_RART] = de_RedirectAllRequestsTo(data[_RART], context);\n    }\n    if (data.RoutingRules === \"\") {\n        contents[_RRo] = [];\n    }\n    else if (data[_RRo] != null && data[_RRo][_RRou] != null) {\n        contents[_RRo] = de_RoutingRules(__getArrayIfSingleItem(data[_RRo][_RRou]), context);\n    }\n    return contents;\n};\nexport const de_GetObjectCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_DM]: [() => void 0 !== output.headers[_xadm], () => __parseBoolean(output.headers[_xadm])],\n        [_AR]: [, output.headers[_ar]],\n        [_Exp]: [, output.headers[_xae]],\n        [_Re]: [, output.headers[_xar]],\n        [_LM]: [() => void 0 !== output.headers[_lm], () => __expectNonNull(__parseRfc7231DateTime(output.headers[_lm]))],\n        [_CLo]: [() => void 0 !== output.headers[_cl_], () => __strictParseLong(output.headers[_cl_])],\n        [_ETa]: [, output.headers[_eta]],\n        [_CCRC]: [, output.headers[_xacc]],\n        [_CCRCC]: [, output.headers[_xacc_]],\n        [_CCRCNVME]: [, output.headers[_xacc__]],\n        [_CSHA]: [, output.headers[_xacs]],\n        [_CSHAh]: [, output.headers[_xacs_]],\n        [_CT]: [, output.headers[_xact]],\n        [_MM]: [() => void 0 !== output.headers[_xamm], () => __strictParseInt32(output.headers[_xamm])],\n        [_VI]: [, output.headers[_xavi]],\n        [_CC]: [, output.headers[_cc]],\n        [_CD]: [, output.headers[_cd]],\n        [_CE]: [, output.headers[_ce]],\n        [_CL]: [, output.headers[_cl]],\n        [_CR]: [, output.headers[_cr]],\n        [_CTo]: [, output.headers[_ct]],\n        [_E]: [() => void 0 !== output.headers[_e], () => __expectNonNull(__parseRfc7231DateTime(output.headers[_e]))],\n        [_ES]: [, output.headers[_ex]],\n        [_WRL]: [, output.headers[_xawrl]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_SC]: [, output.headers[_xasc]],\n        [_RC]: [, output.headers[_xarc]],\n        [_RS]: [, output.headers[_xars]],\n        [_PC]: [() => void 0 !== output.headers[_xampc], () => __strictParseInt32(output.headers[_xampc])],\n        [_TC]: [() => void 0 !== output.headers[_xatc], () => __strictParseInt32(output.headers[_xatc])],\n        [_OLM]: [, output.headers[_xaolm]],\n        [_OLRUD]: [\n            () => void 0 !== output.headers[_xaolrud],\n            () => __expectNonNull(__parseRfc3339DateTimeWithOffset(output.headers[_xaolrud])),\n        ],\n        [_OLLHS]: [, output.headers[_xaollh]],\n        Metadata: [\n            ,\n            Object.keys(output.headers)\n                .filter((header) => header.startsWith(\"x-amz-meta-\"))\n                .reduce((acc, header) => {\n                acc[header.substring(11)] = output.headers[header];\n                return acc;\n            }, {}),\n        ],\n    });\n    const data = output.body;\n    context.sdkStreamMixin(data);\n    contents.Body = data;\n    return contents;\n};\nexport const de_GetObjectAclCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.AccessControlList === \"\") {\n        contents[_Gr] = [];\n    }\n    else if (data[_ACLc] != null && data[_ACLc][_G] != null) {\n        contents[_Gr] = de_Grants(__getArrayIfSingleItem(data[_ACLc][_G]), context);\n    }\n    if (data[_O] != null) {\n        contents[_O] = de_Owner(data[_O], context);\n    }\n    return contents;\n};\nexport const de_GetObjectAttributesCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_DM]: [() => void 0 !== output.headers[_xadm], () => __parseBoolean(output.headers[_xadm])],\n        [_LM]: [() => void 0 !== output.headers[_lm], () => __expectNonNull(__parseRfc7231DateTime(output.headers[_lm]))],\n        [_VI]: [, output.headers[_xavi]],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_Ch] != null) {\n        contents[_Ch] = de_Checksum(data[_Ch], context);\n    }\n    if (data[_ETa] != null) {\n        contents[_ETa] = __expectString(data[_ETa]);\n    }\n    if (data[_OP] != null) {\n        contents[_OP] = de_GetObjectAttributesParts(data[_OP], context);\n    }\n    if (data[_OSb] != null) {\n        contents[_OSb] = __strictParseLong(data[_OSb]);\n    }\n    if (data[_SC] != null) {\n        contents[_SC] = __expectString(data[_SC]);\n    }\n    return contents;\n};\nexport const de_GetObjectLegalHoldCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.LegalHold = de_ObjectLockLegalHold(data, context);\n    return contents;\n};\nexport const de_GetObjectLockConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.ObjectLockConfiguration = de_ObjectLockConfiguration(data, context);\n    return contents;\n};\nexport const de_GetObjectRetentionCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.Retention = de_ObjectLockRetention(data, context);\n    return contents;\n};\nexport const de_GetObjectTaggingCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_VI]: [, output.headers[_xavi]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.TagSet === \"\") {\n        contents[_TS] = [];\n    }\n    else if (data[_TS] != null && data[_TS][_Ta] != null) {\n        contents[_TS] = de_TagSet(__getArrayIfSingleItem(data[_TS][_Ta]), context);\n    }\n    return contents;\n};\nexport const de_GetObjectTorrentCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = output.body;\n    context.sdkStreamMixin(data);\n    contents.Body = data;\n    return contents;\n};\nexport const de_GetPublicAccessBlockCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.PublicAccessBlockConfiguration = de_PublicAccessBlockConfiguration(data, context);\n    return contents;\n};\nexport const de_HeadBucketCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_BLT]: [, output.headers[_xablt]],\n        [_BLN]: [, output.headers[_xabln]],\n        [_BR]: [, output.headers[_xabr]],\n        [_APA]: [() => void 0 !== output.headers[_xaapa], () => __parseBoolean(output.headers[_xaapa])],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_HeadObjectCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_DM]: [() => void 0 !== output.headers[_xadm], () => __parseBoolean(output.headers[_xadm])],\n        [_AR]: [, output.headers[_ar]],\n        [_Exp]: [, output.headers[_xae]],\n        [_Re]: [, output.headers[_xar]],\n        [_AS]: [, output.headers[_xaas]],\n        [_LM]: [() => void 0 !== output.headers[_lm], () => __expectNonNull(__parseRfc7231DateTime(output.headers[_lm]))],\n        [_CLo]: [() => void 0 !== output.headers[_cl_], () => __strictParseLong(output.headers[_cl_])],\n        [_CCRC]: [, output.headers[_xacc]],\n        [_CCRCC]: [, output.headers[_xacc_]],\n        [_CCRCNVME]: [, output.headers[_xacc__]],\n        [_CSHA]: [, output.headers[_xacs]],\n        [_CSHAh]: [, output.headers[_xacs_]],\n        [_CT]: [, output.headers[_xact]],\n        [_ETa]: [, output.headers[_eta]],\n        [_MM]: [() => void 0 !== output.headers[_xamm], () => __strictParseInt32(output.headers[_xamm])],\n        [_VI]: [, output.headers[_xavi]],\n        [_CC]: [, output.headers[_cc]],\n        [_CD]: [, output.headers[_cd]],\n        [_CE]: [, output.headers[_ce]],\n        [_CL]: [, output.headers[_cl]],\n        [_CTo]: [, output.headers[_ct]],\n        [_E]: [() => void 0 !== output.headers[_e], () => __expectNonNull(__parseRfc7231DateTime(output.headers[_e]))],\n        [_ES]: [, output.headers[_ex]],\n        [_WRL]: [, output.headers[_xawrl]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_SC]: [, output.headers[_xasc]],\n        [_RC]: [, output.headers[_xarc]],\n        [_RS]: [, output.headers[_xars]],\n        [_PC]: [() => void 0 !== output.headers[_xampc], () => __strictParseInt32(output.headers[_xampc])],\n        [_OLM]: [, output.headers[_xaolm]],\n        [_OLRUD]: [\n            () => void 0 !== output.headers[_xaolrud],\n            () => __expectNonNull(__parseRfc3339DateTimeWithOffset(output.headers[_xaolrud])),\n        ],\n        [_OLLHS]: [, output.headers[_xaollh]],\n        Metadata: [\n            ,\n            Object.keys(output.headers)\n                .filter((header) => header.startsWith(\"x-amz-meta-\"))\n                .reduce((acc, header) => {\n                acc[header.substring(11)] = output.headers[header];\n                return acc;\n            }, {}),\n        ],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_ListBucketAnalyticsConfigurationsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.AnalyticsConfiguration === \"\") {\n        contents[_ACLn] = [];\n    }\n    else if (data[_AC] != null) {\n        contents[_ACLn] = de_AnalyticsConfigurationList(__getArrayIfSingleItem(data[_AC]), context);\n    }\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_NCT] != null) {\n        contents[_NCT] = __expectString(data[_NCT]);\n    }\n    return contents;\n};\nexport const de_ListBucketIntelligentTieringConfigurationsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    if (data.IntelligentTieringConfiguration === \"\") {\n        contents[_ITCL] = [];\n    }\n    else if (data[_ITC] != null) {\n        contents[_ITCL] = de_IntelligentTieringConfigurationList(__getArrayIfSingleItem(data[_ITC]), context);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_NCT] != null) {\n        contents[_NCT] = __expectString(data[_NCT]);\n    }\n    return contents;\n};\nexport const de_ListBucketInventoryConfigurationsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    if (data.InventoryConfiguration === \"\") {\n        contents[_ICL] = [];\n    }\n    else if (data[_IC] != null) {\n        contents[_ICL] = de_InventoryConfigurationList(__getArrayIfSingleItem(data[_IC]), context);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_NCT] != null) {\n        contents[_NCT] = __expectString(data[_NCT]);\n    }\n    return contents;\n};\nexport const de_ListBucketMetricsConfigurationsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data.MetricsConfiguration === \"\") {\n        contents[_MCL] = [];\n    }\n    else if (data[_MC] != null) {\n        contents[_MCL] = de_MetricsConfigurationList(__getArrayIfSingleItem(data[_MC]), context);\n    }\n    if (data[_NCT] != null) {\n        contents[_NCT] = __expectString(data[_NCT]);\n    }\n    return contents;\n};\nexport const de_ListBucketsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.Buckets === \"\") {\n        contents[_Bu] = [];\n    }\n    else if (data[_Bu] != null && data[_Bu][_B] != null) {\n        contents[_Bu] = de_Buckets(__getArrayIfSingleItem(data[_Bu][_B]), context);\n    }\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    if (data[_O] != null) {\n        contents[_O] = de_Owner(data[_O], context);\n    }\n    if (data[_P] != null) {\n        contents[_P] = __expectString(data[_P]);\n    }\n    return contents;\n};\nexport const de_ListDirectoryBucketsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.Buckets === \"\") {\n        contents[_Bu] = [];\n    }\n    else if (data[_Bu] != null && data[_Bu][_B] != null) {\n        contents[_Bu] = de_Buckets(__getArrayIfSingleItem(data[_Bu][_B]), context);\n    }\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    return contents;\n};\nexport const de_ListMultipartUploadsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_B] != null) {\n        contents[_B] = __expectString(data[_B]);\n    }\n    if (data.CommonPrefixes === \"\") {\n        contents[_CP] = [];\n    }\n    else if (data[_CP] != null) {\n        contents[_CP] = de_CommonPrefixList(__getArrayIfSingleItem(data[_CP]), context);\n    }\n    if (data[_D] != null) {\n        contents[_D] = __expectString(data[_D]);\n    }\n    if (data[_ET] != null) {\n        contents[_ET] = __expectString(data[_ET]);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_KM] != null) {\n        contents[_KM] = __expectString(data[_KM]);\n    }\n    if (data[_MU] != null) {\n        contents[_MU] = __strictParseInt32(data[_MU]);\n    }\n    if (data[_NKM] != null) {\n        contents[_NKM] = __expectString(data[_NKM]);\n    }\n    if (data[_NUIM] != null) {\n        contents[_NUIM] = __expectString(data[_NUIM]);\n    }\n    if (data[_P] != null) {\n        contents[_P] = __expectString(data[_P]);\n    }\n    if (data[_UIM] != null) {\n        contents[_UIM] = __expectString(data[_UIM]);\n    }\n    if (data.Upload === \"\") {\n        contents[_Up] = [];\n    }\n    else if (data[_U] != null) {\n        contents[_Up] = de_MultipartUploadList(__getArrayIfSingleItem(data[_U]), context);\n    }\n    return contents;\n};\nexport const de_ListObjectsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.CommonPrefixes === \"\") {\n        contents[_CP] = [];\n    }\n    else if (data[_CP] != null) {\n        contents[_CP] = de_CommonPrefixList(__getArrayIfSingleItem(data[_CP]), context);\n    }\n    if (data.Contents === \"\") {\n        contents[_Co] = [];\n    }\n    else if (data[_Co] != null) {\n        contents[_Co] = de_ObjectList(__getArrayIfSingleItem(data[_Co]), context);\n    }\n    if (data[_D] != null) {\n        contents[_D] = __expectString(data[_D]);\n    }\n    if (data[_ET] != null) {\n        contents[_ET] = __expectString(data[_ET]);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_M] != null) {\n        contents[_M] = __expectString(data[_M]);\n    }\n    if (data[_MK] != null) {\n        contents[_MK] = __strictParseInt32(data[_MK]);\n    }\n    if (data[_N] != null) {\n        contents[_N] = __expectString(data[_N]);\n    }\n    if (data[_NM] != null) {\n        contents[_NM] = __expectString(data[_NM]);\n    }\n    if (data[_P] != null) {\n        contents[_P] = __expectString(data[_P]);\n    }\n    return contents;\n};\nexport const de_ListObjectsV2Command = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.CommonPrefixes === \"\") {\n        contents[_CP] = [];\n    }\n    else if (data[_CP] != null) {\n        contents[_CP] = de_CommonPrefixList(__getArrayIfSingleItem(data[_CP]), context);\n    }\n    if (data.Contents === \"\") {\n        contents[_Co] = [];\n    }\n    else if (data[_Co] != null) {\n        contents[_Co] = de_ObjectList(__getArrayIfSingleItem(data[_Co]), context);\n    }\n    if (data[_CTon] != null) {\n        contents[_CTon] = __expectString(data[_CTon]);\n    }\n    if (data[_D] != null) {\n        contents[_D] = __expectString(data[_D]);\n    }\n    if (data[_ET] != null) {\n        contents[_ET] = __expectString(data[_ET]);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_KC] != null) {\n        contents[_KC] = __strictParseInt32(data[_KC]);\n    }\n    if (data[_MK] != null) {\n        contents[_MK] = __strictParseInt32(data[_MK]);\n    }\n    if (data[_N] != null) {\n        contents[_N] = __expectString(data[_N]);\n    }\n    if (data[_NCT] != null) {\n        contents[_NCT] = __expectString(data[_NCT]);\n    }\n    if (data[_P] != null) {\n        contents[_P] = __expectString(data[_P]);\n    }\n    if (data[_SA] != null) {\n        contents[_SA] = __expectString(data[_SA]);\n    }\n    return contents;\n};\nexport const de_ListObjectVersionsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data.CommonPrefixes === \"\") {\n        contents[_CP] = [];\n    }\n    else if (data[_CP] != null) {\n        contents[_CP] = de_CommonPrefixList(__getArrayIfSingleItem(data[_CP]), context);\n    }\n    if (data.DeleteMarker === \"\") {\n        contents[_DMe] = [];\n    }\n    else if (data[_DM] != null) {\n        contents[_DMe] = de_DeleteMarkers(__getArrayIfSingleItem(data[_DM]), context);\n    }\n    if (data[_D] != null) {\n        contents[_D] = __expectString(data[_D]);\n    }\n    if (data[_ET] != null) {\n        contents[_ET] = __expectString(data[_ET]);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_KM] != null) {\n        contents[_KM] = __expectString(data[_KM]);\n    }\n    if (data[_MK] != null) {\n        contents[_MK] = __strictParseInt32(data[_MK]);\n    }\n    if (data[_N] != null) {\n        contents[_N] = __expectString(data[_N]);\n    }\n    if (data[_NKM] != null) {\n        contents[_NKM] = __expectString(data[_NKM]);\n    }\n    if (data[_NVIM] != null) {\n        contents[_NVIM] = __expectString(data[_NVIM]);\n    }\n    if (data[_P] != null) {\n        contents[_P] = __expectString(data[_P]);\n    }\n    if (data[_VIM] != null) {\n        contents[_VIM] = __expectString(data[_VIM]);\n    }\n    if (data.Version === \"\") {\n        contents[_Ve] = [];\n    }\n    else if (data[_V] != null) {\n        contents[_Ve] = de_ObjectVersionList(__getArrayIfSingleItem(data[_V]), context);\n    }\n    return contents;\n};\nexport const de_ListPartsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_AD]: [\n            () => void 0 !== output.headers[_xaad],\n            () => __expectNonNull(__parseRfc7231DateTime(output.headers[_xaad])),\n        ],\n        [_ARI]: [, output.headers[_xaari]],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n    if (data[_B] != null) {\n        contents[_B] = __expectString(data[_B]);\n    }\n    if (data[_CA] != null) {\n        contents[_CA] = __expectString(data[_CA]);\n    }\n    if (data[_CT] != null) {\n        contents[_CT] = __expectString(data[_CT]);\n    }\n    if (data[_In] != null) {\n        contents[_In] = de_Initiator(data[_In], context);\n    }\n    if (data[_IT] != null) {\n        contents[_IT] = __parseBoolean(data[_IT]);\n    }\n    if (data[_K] != null) {\n        contents[_K] = __expectString(data[_K]);\n    }\n    if (data[_MP] != null) {\n        contents[_MP] = __strictParseInt32(data[_MP]);\n    }\n    if (data[_NPNM] != null) {\n        contents[_NPNM] = __expectString(data[_NPNM]);\n    }\n    if (data[_O] != null) {\n        contents[_O] = de_Owner(data[_O], context);\n    }\n    if (data[_PNM] != null) {\n        contents[_PNM] = __expectString(data[_PNM]);\n    }\n    if (data.Part === \"\") {\n        contents[_Part] = [];\n    }\n    else if (data[_Par] != null) {\n        contents[_Part] = de_Parts(__getArrayIfSingleItem(data[_Par]), context);\n    }\n    if (data[_SC] != null) {\n        contents[_SC] = __expectString(data[_SC]);\n    }\n    if (data[_UI] != null) {\n        contents[_UI] = __expectString(data[_UI]);\n    }\n    return contents;\n};\nexport const de_PutBucketAccelerateConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketAclCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketAnalyticsConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketCorsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketEncryptionCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketInventoryConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketLifecycleConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_TDMOS]: [, output.headers[_xatdmos]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketLoggingCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketMetricsConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketNotificationConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketOwnershipControlsCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketPolicyCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketReplicationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketRequestPaymentCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketTaggingCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketVersioningCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutBucketWebsiteCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutObjectCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_Exp]: [, output.headers[_xae]],\n        [_ETa]: [, output.headers[_eta]],\n        [_CCRC]: [, output.headers[_xacc]],\n        [_CCRCC]: [, output.headers[_xacc_]],\n        [_CCRCNVME]: [, output.headers[_xacc__]],\n        [_CSHA]: [, output.headers[_xacs]],\n        [_CSHAh]: [, output.headers[_xacs_]],\n        [_CT]: [, output.headers[_xact]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_VI]: [, output.headers[_xavi]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_SSEKMSEC]: [, output.headers[_xassec]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_Si]: [() => void 0 !== output.headers[_xaos], () => __strictParseLong(output.headers[_xaos])],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutObjectAclCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutObjectLegalHoldCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutObjectLockConfigurationCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutObjectRetentionCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutObjectTaggingCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_VI]: [, output.headers[_xavi]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_PutPublicAccessBlockCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_RestoreObjectCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_RC]: [, output.headers[_xarc]],\n        [_ROP]: [, output.headers[_xarop]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_SelectObjectContentCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    const data = output.body;\n    contents.Payload = de_SelectObjectContentEventStream(data, context);\n    return contents;\n};\nexport const de_UploadPartCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_SSE]: [, output.headers[_xasse]],\n        [_ETa]: [, output.headers[_eta]],\n        [_CCRC]: [, output.headers[_xacc]],\n        [_CCRCC]: [, output.headers[_xacc_]],\n        [_CCRCNVME]: [, output.headers[_xacc__]],\n        [_CSHA]: [, output.headers[_xacs]],\n        [_CSHAh]: [, output.headers[_xacs_]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nexport const de_UploadPartCopyCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n        [_CSVI]: [, output.headers[_xacsvi]],\n        [_SSE]: [, output.headers[_xasse]],\n        [_SSECA]: [, output.headers[_xasseca]],\n        [_SSECKMD]: [, output.headers[_xasseckm]],\n        [_SSEKMSKI]: [, output.headers[_xasseakki]],\n        [_BKE]: [() => void 0 !== output.headers[_xassebke], () => __parseBoolean(output.headers[_xassebke])],\n        [_RC]: [, output.headers[_xarc]],\n    });\n    const data = __expectObject(await parseBody(output.body, context));\n    contents.CopyPartResult = de_CopyPartResult(data, context);\n    return contents;\n};\nexport const de_WriteGetObjectResponseCommand = async (output, context) => {\n    if (output.statusCode !== 200 && output.statusCode >= 300) {\n        return de_CommandError(output, context);\n    }\n    const contents = map({\n        $metadata: deserializeMetadata(output),\n    });\n    await collectBody(output.body, context);\n    return contents;\n};\nconst de_CommandError = async (output, context) => {\n    const parsedOutput = {\n        ...output,\n        body: await parseErrorBody(output.body, context),\n    };\n    const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n    switch (errorCode) {\n        case \"NoSuchUpload\":\n        case \"com.amazonaws.s3#NoSuchUpload\":\n            throw await de_NoSuchUploadRes(parsedOutput, context);\n        case \"ObjectNotInActiveTierError\":\n        case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n            throw await de_ObjectNotInActiveTierErrorRes(parsedOutput, context);\n        case \"BucketAlreadyExists\":\n        case \"com.amazonaws.s3#BucketAlreadyExists\":\n            throw await de_BucketAlreadyExistsRes(parsedOutput, context);\n        case \"BucketAlreadyOwnedByYou\":\n        case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n            throw await de_BucketAlreadyOwnedByYouRes(parsedOutput, context);\n        case \"NoSuchBucket\":\n        case \"com.amazonaws.s3#NoSuchBucket\":\n            throw await de_NoSuchBucketRes(parsedOutput, context);\n        case \"InvalidObjectState\":\n        case \"com.amazonaws.s3#InvalidObjectState\":\n            throw await de_InvalidObjectStateRes(parsedOutput, context);\n        case \"NoSuchKey\":\n        case \"com.amazonaws.s3#NoSuchKey\":\n            throw await de_NoSuchKeyRes(parsedOutput, context);\n        case \"NotFound\":\n        case \"com.amazonaws.s3#NotFound\":\n            throw await de_NotFoundRes(parsedOutput, context);\n        case \"EncryptionTypeMismatch\":\n        case \"com.amazonaws.s3#EncryptionTypeMismatch\":\n            throw await de_EncryptionTypeMismatchRes(parsedOutput, context);\n        case \"InvalidRequest\":\n        case \"com.amazonaws.s3#InvalidRequest\":\n            throw await de_InvalidRequestRes(parsedOutput, context);\n        case \"InvalidWriteOffset\":\n        case \"com.amazonaws.s3#InvalidWriteOffset\":\n            throw await de_InvalidWriteOffsetRes(parsedOutput, context);\n        case \"TooManyParts\":\n        case \"com.amazonaws.s3#TooManyParts\":\n            throw await de_TooManyPartsRes(parsedOutput, context);\n        case \"ObjectAlreadyInActiveTierError\":\n        case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n            throw await de_ObjectAlreadyInActiveTierErrorRes(parsedOutput, context);\n        default:\n            const parsedBody = parsedOutput.body;\n            return throwDefaultError({\n                output,\n                parsedBody,\n                errorCode,\n            });\n    }\n};\nconst throwDefaultError = withBaseException(__BaseException);\nconst de_BucketAlreadyExistsRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new BucketAlreadyExists({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_BucketAlreadyOwnedByYouRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new BucketAlreadyOwnedByYou({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_EncryptionTypeMismatchRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new EncryptionTypeMismatch({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_InvalidObjectStateRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    if (data[_AT] != null) {\n        contents[_AT] = __expectString(data[_AT]);\n    }\n    if (data[_SC] != null) {\n        contents[_SC] = __expectString(data[_SC]);\n    }\n    const exception = new InvalidObjectState({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_InvalidRequestRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new InvalidRequest({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_InvalidWriteOffsetRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new InvalidWriteOffset({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchBucketRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new NoSuchBucket({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchKeyRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new NoSuchKey({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchUploadRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new NoSuchUpload({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NotFoundRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new NotFound({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_ObjectAlreadyInActiveTierErrorRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new ObjectAlreadyInActiveTierError({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_ObjectNotInActiveTierErrorRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new ObjectNotInActiveTierError({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_TooManyPartsRes = async (parsedOutput, context) => {\n    const contents = map({});\n    const data = parsedOutput.body;\n    const exception = new TooManyParts({\n        $metadata: deserializeMetadata(parsedOutput),\n        ...contents,\n    });\n    return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_SelectObjectContentEventStream = (output, context) => {\n    return context.eventStreamMarshaller.deserialize(output, async (event) => {\n        if (event[\"Records\"] != null) {\n            return {\n                Records: await de_RecordsEvent_event(event[\"Records\"], context),\n            };\n        }\n        if (event[\"Stats\"] != null) {\n            return {\n                Stats: await de_StatsEvent_event(event[\"Stats\"], context),\n            };\n        }\n        if (event[\"Progress\"] != null) {\n            return {\n                Progress: await de_ProgressEvent_event(event[\"Progress\"], context),\n            };\n        }\n        if (event[\"Cont\"] != null) {\n            return {\n                Cont: await de_ContinuationEvent_event(event[\"Cont\"], context),\n            };\n        }\n        if (event[\"End\"] != null) {\n            return {\n                End: await de_EndEvent_event(event[\"End\"], context),\n            };\n        }\n        return { $unknown: output };\n    });\n};\nconst de_ContinuationEvent_event = async (output, context) => {\n    const contents = {};\n    const data = await parseBody(output.body, context);\n    Object.assign(contents, de_ContinuationEvent(data, context));\n    return contents;\n};\nconst de_EndEvent_event = async (output, context) => {\n    const contents = {};\n    const data = await parseBody(output.body, context);\n    Object.assign(contents, de_EndEvent(data, context));\n    return contents;\n};\nconst de_ProgressEvent_event = async (output, context) => {\n    const contents = {};\n    const data = await parseBody(output.body, context);\n    contents.Details = de_Progress(data, context);\n    return contents;\n};\nconst de_RecordsEvent_event = async (output, context) => {\n    const contents = {};\n    contents.Payload = output.body;\n    return contents;\n};\nconst de_StatsEvent_event = async (output, context) => {\n    const contents = {};\n    const data = await parseBody(output.body, context);\n    contents.Details = de_Stats(data, context);\n    return contents;\n};\nconst se_AbortIncompleteMultipartUpload = (input, context) => {\n    const bn = new __XmlNode(_AIMU);\n    if (input[_DAI] != null) {\n        bn.c(__XmlNode.of(_DAI, String(input[_DAI])).n(_DAI));\n    }\n    return bn;\n};\nconst se_AccelerateConfiguration = (input, context) => {\n    const bn = new __XmlNode(_ACc);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_BAS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_AccessControlPolicy = (input, context) => {\n    const bn = new __XmlNode(_ACP);\n    bn.lc(input, \"Grants\", \"AccessControlList\", () => se_Grants(input[_Gr], context));\n    if (input[_O] != null) {\n        bn.c(se_Owner(input[_O], context).n(_O));\n    }\n    return bn;\n};\nconst se_AccessControlTranslation = (input, context) => {\n    const bn = new __XmlNode(_ACT);\n    if (input[_O] != null) {\n        bn.c(__XmlNode.of(_OOw, input[_O]).n(_O));\n    }\n    return bn;\n};\nconst se_AllowedHeaders = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = __XmlNode.of(_AH, entry);\n        return n.n(_me);\n    });\n};\nconst se_AllowedMethods = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = __XmlNode.of(_AM, entry);\n        return n.n(_me);\n    });\n};\nconst se_AllowedOrigins = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = __XmlNode.of(_AO, entry);\n        return n.n(_me);\n    });\n};\nconst se_AnalyticsAndOperator = (input, context) => {\n    const bn = new __XmlNode(_AAO);\n    bn.cc(input, _P);\n    bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n    return bn;\n};\nconst se_AnalyticsConfiguration = (input, context) => {\n    const bn = new __XmlNode(_AC);\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_AI, input[_I]).n(_I));\n    }\n    if (input[_F] != null) {\n        bn.c(se_AnalyticsFilter(input[_F], context).n(_F));\n    }\n    if (input[_SCA] != null) {\n        bn.c(se_StorageClassAnalysis(input[_SCA], context).n(_SCA));\n    }\n    return bn;\n};\nconst se_AnalyticsExportDestination = (input, context) => {\n    const bn = new __XmlNode(_AED);\n    if (input[_SBD] != null) {\n        bn.c(se_AnalyticsS3BucketDestination(input[_SBD], context).n(_SBD));\n    }\n    return bn;\n};\nconst se_AnalyticsFilter = (input, context) => {\n    const bn = new __XmlNode(_AF);\n    AnalyticsFilter.visit(input, {\n        Prefix: (value) => {\n            if (input[_P] != null) {\n                bn.c(__XmlNode.of(_P, value).n(_P));\n            }\n        },\n        Tag: (value) => {\n            if (input[_Ta] != null) {\n                bn.c(se_Tag(value, context).n(_Ta));\n            }\n        },\n        And: (value) => {\n            if (input[_A] != null) {\n                bn.c(se_AnalyticsAndOperator(value, context).n(_A));\n            }\n        },\n        _: (name, value) => {\n            if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n                throw new Error(\"Unable to serialize unknown union members in XML.\");\n            }\n            bn.c(new __XmlNode(name).c(value));\n        },\n    });\n    return bn;\n};\nconst se_AnalyticsS3BucketDestination = (input, context) => {\n    const bn = new __XmlNode(_ASBD);\n    if (input[_Fo] != null) {\n        bn.c(__XmlNode.of(_ASEFF, input[_Fo]).n(_Fo));\n    }\n    if (input[_BAI] != null) {\n        bn.c(__XmlNode.of(_AIc, input[_BAI]).n(_BAI));\n    }\n    if (input[_B] != null) {\n        bn.c(__XmlNode.of(_BN, input[_B]).n(_B));\n    }\n    bn.cc(input, _P);\n    return bn;\n};\nconst se_BucketInfo = (input, context) => {\n    const bn = new __XmlNode(_BI);\n    bn.cc(input, _DR);\n    if (input[_Ty] != null) {\n        bn.c(__XmlNode.of(_BT, input[_Ty]).n(_Ty));\n    }\n    return bn;\n};\nconst se_BucketLifecycleConfiguration = (input, context) => {\n    const bn = new __XmlNode(_BLC);\n    bn.l(input, \"Rules\", \"Rule\", () => se_LifecycleRules(input[_Rul], context));\n    return bn;\n};\nconst se_BucketLoggingStatus = (input, context) => {\n    const bn = new __XmlNode(_BLS);\n    if (input[_LE] != null) {\n        bn.c(se_LoggingEnabled(input[_LE], context).n(_LE));\n    }\n    return bn;\n};\nconst se_CompletedMultipartUpload = (input, context) => {\n    const bn = new __XmlNode(_CMU);\n    bn.l(input, \"Parts\", \"Part\", () => se_CompletedPartList(input[_Part], context));\n    return bn;\n};\nconst se_CompletedPart = (input, context) => {\n    const bn = new __XmlNode(_CPo);\n    bn.cc(input, _ETa);\n    bn.cc(input, _CCRC);\n    bn.cc(input, _CCRCC);\n    bn.cc(input, _CCRCNVME);\n    bn.cc(input, _CSHA);\n    bn.cc(input, _CSHAh);\n    if (input[_PN] != null) {\n        bn.c(__XmlNode.of(_PN, String(input[_PN])).n(_PN));\n    }\n    return bn;\n};\nconst se_CompletedPartList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_CompletedPart(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_Condition = (input, context) => {\n    const bn = new __XmlNode(_Con);\n    bn.cc(input, _HECRE);\n    bn.cc(input, _KPE);\n    return bn;\n};\nconst se_CORSConfiguration = (input, context) => {\n    const bn = new __XmlNode(_CORSC);\n    bn.l(input, \"CORSRules\", \"CORSRule\", () => se_CORSRules(input[_CORSRu], context));\n    return bn;\n};\nconst se_CORSRule = (input, context) => {\n    const bn = new __XmlNode(_CORSR);\n    bn.cc(input, _ID_);\n    bn.l(input, \"AllowedHeaders\", \"AllowedHeader\", () => se_AllowedHeaders(input[_AHl], context));\n    bn.l(input, \"AllowedMethods\", \"AllowedMethod\", () => se_AllowedMethods(input[_AMl], context));\n    bn.l(input, \"AllowedOrigins\", \"AllowedOrigin\", () => se_AllowedOrigins(input[_AOl], context));\n    bn.l(input, \"ExposeHeaders\", \"ExposeHeader\", () => se_ExposeHeaders(input[_EH], context));\n    if (input[_MAS] != null) {\n        bn.c(__XmlNode.of(_MAS, String(input[_MAS])).n(_MAS));\n    }\n    return bn;\n};\nconst se_CORSRules = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_CORSRule(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_CreateBucketConfiguration = (input, context) => {\n    const bn = new __XmlNode(_CBC);\n    if (input[_LC] != null) {\n        bn.c(__XmlNode.of(_BLCu, input[_LC]).n(_LC));\n    }\n    if (input[_L] != null) {\n        bn.c(se_LocationInfo(input[_L], context).n(_L));\n    }\n    if (input[_B] != null) {\n        bn.c(se_BucketInfo(input[_B], context).n(_B));\n    }\n    return bn;\n};\nconst se_CSVInput = (input, context) => {\n    const bn = new __XmlNode(_CSVIn);\n    bn.cc(input, _FHI);\n    bn.cc(input, _Com);\n    bn.cc(input, _QEC);\n    bn.cc(input, _RD);\n    bn.cc(input, _FD);\n    bn.cc(input, _QCuo);\n    if (input[_AQRD] != null) {\n        bn.c(__XmlNode.of(_AQRD, String(input[_AQRD])).n(_AQRD));\n    }\n    return bn;\n};\nconst se_CSVOutput = (input, context) => {\n    const bn = new __XmlNode(_CSVO);\n    bn.cc(input, _QF);\n    bn.cc(input, _QEC);\n    bn.cc(input, _RD);\n    bn.cc(input, _FD);\n    bn.cc(input, _QCuo);\n    return bn;\n};\nconst se_DefaultRetention = (input, context) => {\n    const bn = new __XmlNode(_DRe);\n    if (input[_Mo] != null) {\n        bn.c(__XmlNode.of(_OLRM, input[_Mo]).n(_Mo));\n    }\n    if (input[_Da] != null) {\n        bn.c(__XmlNode.of(_Da, String(input[_Da])).n(_Da));\n    }\n    if (input[_Y] != null) {\n        bn.c(__XmlNode.of(_Y, String(input[_Y])).n(_Y));\n    }\n    return bn;\n};\nconst se_Delete = (input, context) => {\n    const bn = new __XmlNode(_Del);\n    bn.l(input, \"Objects\", \"Object\", () => se_ObjectIdentifierList(input[_Ob], context));\n    if (input[_Q] != null) {\n        bn.c(__XmlNode.of(_Q, String(input[_Q])).n(_Q));\n    }\n    return bn;\n};\nconst se_DeleteMarkerReplication = (input, context) => {\n    const bn = new __XmlNode(_DMR);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_DMRS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_Destination = (input, context) => {\n    const bn = new __XmlNode(_Des);\n    if (input[_B] != null) {\n        bn.c(__XmlNode.of(_BN, input[_B]).n(_B));\n    }\n    if (input[_Ac] != null) {\n        bn.c(__XmlNode.of(_AIc, input[_Ac]).n(_Ac));\n    }\n    bn.cc(input, _SC);\n    if (input[_ACT] != null) {\n        bn.c(se_AccessControlTranslation(input[_ACT], context).n(_ACT));\n    }\n    if (input[_ECn] != null) {\n        bn.c(se_EncryptionConfiguration(input[_ECn], context).n(_ECn));\n    }\n    if (input[_RTe] != null) {\n        bn.c(se_ReplicationTime(input[_RTe], context).n(_RTe));\n    }\n    if (input[_Me] != null) {\n        bn.c(se_Metrics(input[_Me], context).n(_Me));\n    }\n    return bn;\n};\nconst se_Encryption = (input, context) => {\n    const bn = new __XmlNode(_En);\n    if (input[_ETn] != null) {\n        bn.c(__XmlNode.of(_SSE, input[_ETn]).n(_ETn));\n    }\n    if (input[_KMSKI] != null) {\n        bn.c(__XmlNode.of(_SSEKMSKI, input[_KMSKI]).n(_KMSKI));\n    }\n    bn.cc(input, _KMSC);\n    return bn;\n};\nconst se_EncryptionConfiguration = (input, context) => {\n    const bn = new __XmlNode(_ECn);\n    bn.cc(input, _RKKID);\n    return bn;\n};\nconst se_ErrorDocument = (input, context) => {\n    const bn = new __XmlNode(_ED);\n    if (input[_K] != null) {\n        bn.c(__XmlNode.of(_OK, input[_K]).n(_K));\n    }\n    return bn;\n};\nconst se_EventBridgeConfiguration = (input, context) => {\n    const bn = new __XmlNode(_EBC);\n    return bn;\n};\nconst se_EventList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = __XmlNode.of(_Ev, entry);\n        return n.n(_me);\n    });\n};\nconst se_ExistingObjectReplication = (input, context) => {\n    const bn = new __XmlNode(_EOR);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_EORS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_ExposeHeaders = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = __XmlNode.of(_EHx, entry);\n        return n.n(_me);\n    });\n};\nconst se_FilterRule = (input, context) => {\n    const bn = new __XmlNode(_FR);\n    if (input[_N] != null) {\n        bn.c(__XmlNode.of(_FRN, input[_N]).n(_N));\n    }\n    if (input[_Va] != null) {\n        bn.c(__XmlNode.of(_FRV, input[_Va]).n(_Va));\n    }\n    return bn;\n};\nconst se_FilterRuleList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_FilterRule(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_GlacierJobParameters = (input, context) => {\n    const bn = new __XmlNode(_GJP);\n    bn.cc(input, _Ti);\n    return bn;\n};\nconst se_Grant = (input, context) => {\n    const bn = new __XmlNode(_G);\n    if (input[_Gra] != null) {\n        const n = se_Grantee(input[_Gra], context).n(_Gra);\n        n.a(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n        bn.c(n);\n    }\n    bn.cc(input, _Pe);\n    return bn;\n};\nconst se_Grantee = (input, context) => {\n    const bn = new __XmlNode(_Gra);\n    bn.cc(input, _DN);\n    bn.cc(input, _EA);\n    bn.cc(input, _ID_);\n    bn.cc(input, _URI);\n    bn.a(\"xsi:type\", input[_Ty]);\n    return bn;\n};\nconst se_Grants = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_Grant(entry, context);\n        return n.n(_G);\n    });\n};\nconst se_IndexDocument = (input, context) => {\n    const bn = new __XmlNode(_ID);\n    bn.cc(input, _Su);\n    return bn;\n};\nconst se_InputSerialization = (input, context) => {\n    const bn = new __XmlNode(_IS);\n    if (input[_CSV] != null) {\n        bn.c(se_CSVInput(input[_CSV], context).n(_CSV));\n    }\n    bn.cc(input, _CTom);\n    if (input[_JSON] != null) {\n        bn.c(se_JSONInput(input[_JSON], context).n(_JSON));\n    }\n    if (input[_Parq] != null) {\n        bn.c(se_ParquetInput(input[_Parq], context).n(_Parq));\n    }\n    return bn;\n};\nconst se_IntelligentTieringAndOperator = (input, context) => {\n    const bn = new __XmlNode(_ITAO);\n    bn.cc(input, _P);\n    bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n    return bn;\n};\nconst se_IntelligentTieringConfiguration = (input, context) => {\n    const bn = new __XmlNode(_ITC);\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_ITI, input[_I]).n(_I));\n    }\n    if (input[_F] != null) {\n        bn.c(se_IntelligentTieringFilter(input[_F], context).n(_F));\n    }\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_ITS, input[_S]).n(_S));\n    }\n    bn.l(input, \"Tierings\", \"Tiering\", () => se_TieringList(input[_Tie], context));\n    return bn;\n};\nconst se_IntelligentTieringFilter = (input, context) => {\n    const bn = new __XmlNode(_ITF);\n    bn.cc(input, _P);\n    if (input[_Ta] != null) {\n        bn.c(se_Tag(input[_Ta], context).n(_Ta));\n    }\n    if (input[_A] != null) {\n        bn.c(se_IntelligentTieringAndOperator(input[_A], context).n(_A));\n    }\n    return bn;\n};\nconst se_InventoryConfiguration = (input, context) => {\n    const bn = new __XmlNode(_IC);\n    if (input[_Des] != null) {\n        bn.c(se_InventoryDestination(input[_Des], context).n(_Des));\n    }\n    if (input[_IE] != null) {\n        bn.c(__XmlNode.of(_IE, String(input[_IE])).n(_IE));\n    }\n    if (input[_F] != null) {\n        bn.c(se_InventoryFilter(input[_F], context).n(_F));\n    }\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_II, input[_I]).n(_I));\n    }\n    if (input[_IOV] != null) {\n        bn.c(__XmlNode.of(_IIOV, input[_IOV]).n(_IOV));\n    }\n    bn.lc(input, \"OptionalFields\", \"OptionalFields\", () => se_InventoryOptionalFields(input[_OF], context));\n    if (input[_Sc] != null) {\n        bn.c(se_InventorySchedule(input[_Sc], context).n(_Sc));\n    }\n    return bn;\n};\nconst se_InventoryDestination = (input, context) => {\n    const bn = new __XmlNode(_IDn);\n    if (input[_SBD] != null) {\n        bn.c(se_InventoryS3BucketDestination(input[_SBD], context).n(_SBD));\n    }\n    return bn;\n};\nconst se_InventoryEncryption = (input, context) => {\n    const bn = new __XmlNode(_IEn);\n    if (input[_SSES] != null) {\n        bn.c(se_SSES3(input[_SSES], context).n(_SS));\n    }\n    if (input[_SSEKMS] != null) {\n        bn.c(se_SSEKMS(input[_SSEKMS], context).n(_SK));\n    }\n    return bn;\n};\nconst se_InventoryFilter = (input, context) => {\n    const bn = new __XmlNode(_IF);\n    bn.cc(input, _P);\n    return bn;\n};\nconst se_InventoryOptionalFields = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = __XmlNode.of(_IOF, entry);\n        return n.n(_Fi);\n    });\n};\nconst se_InventoryS3BucketDestination = (input, context) => {\n    const bn = new __XmlNode(_ISBD);\n    bn.cc(input, _AIc);\n    if (input[_B] != null) {\n        bn.c(__XmlNode.of(_BN, input[_B]).n(_B));\n    }\n    if (input[_Fo] != null) {\n        bn.c(__XmlNode.of(_IFn, input[_Fo]).n(_Fo));\n    }\n    bn.cc(input, _P);\n    if (input[_En] != null) {\n        bn.c(se_InventoryEncryption(input[_En], context).n(_En));\n    }\n    return bn;\n};\nconst se_InventorySchedule = (input, context) => {\n    const bn = new __XmlNode(_ISn);\n    if (input[_Fr] != null) {\n        bn.c(__XmlNode.of(_IFnv, input[_Fr]).n(_Fr));\n    }\n    return bn;\n};\nconst se_JSONInput = (input, context) => {\n    const bn = new __XmlNode(_JSONI);\n    if (input[_Ty] != null) {\n        bn.c(__XmlNode.of(_JSONT, input[_Ty]).n(_Ty));\n    }\n    return bn;\n};\nconst se_JSONOutput = (input, context) => {\n    const bn = new __XmlNode(_JSONO);\n    bn.cc(input, _RD);\n    return bn;\n};\nconst se_LambdaFunctionConfiguration = (input, context) => {\n    const bn = new __XmlNode(_LFCa);\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_NI, input[_I]).n(_I));\n    }\n    if (input[_LFA] != null) {\n        bn.c(__XmlNode.of(_LFA, input[_LFA]).n(_CF));\n    }\n    bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n    if (input[_F] != null) {\n        bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n    }\n    return bn;\n};\nconst se_LambdaFunctionConfigurationList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_LambdaFunctionConfiguration(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_LifecycleExpiration = (input, context) => {\n    const bn = new __XmlNode(_LEi);\n    if (input[_Dat] != null) {\n        bn.c(__XmlNode.of(_Dat, __serializeDateTime(input[_Dat]).toString()).n(_Dat));\n    }\n    if (input[_Da] != null) {\n        bn.c(__XmlNode.of(_Da, String(input[_Da])).n(_Da));\n    }\n    if (input[_EODM] != null) {\n        bn.c(__XmlNode.of(_EODM, String(input[_EODM])).n(_EODM));\n    }\n    return bn;\n};\nconst se_LifecycleRule = (input, context) => {\n    const bn = new __XmlNode(_LR);\n    if (input[_Exp] != null) {\n        bn.c(se_LifecycleExpiration(input[_Exp], context).n(_Exp));\n    }\n    bn.cc(input, _ID_);\n    bn.cc(input, _P);\n    if (input[_F] != null) {\n        bn.c(se_LifecycleRuleFilter(input[_F], context).n(_F));\n    }\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_ESx, input[_S]).n(_S));\n    }\n    bn.l(input, \"Transitions\", \"Transition\", () => se_TransitionList(input[_Tr], context));\n    bn.l(input, \"NoncurrentVersionTransitions\", \"NoncurrentVersionTransition\", () => se_NoncurrentVersionTransitionList(input[_NVT], context));\n    if (input[_NVE] != null) {\n        bn.c(se_NoncurrentVersionExpiration(input[_NVE], context).n(_NVE));\n    }\n    if (input[_AIMU] != null) {\n        bn.c(se_AbortIncompleteMultipartUpload(input[_AIMU], context).n(_AIMU));\n    }\n    return bn;\n};\nconst se_LifecycleRuleAndOperator = (input, context) => {\n    const bn = new __XmlNode(_LRAO);\n    bn.cc(input, _P);\n    bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n    if (input[_OSGT] != null) {\n        bn.c(__XmlNode.of(_OSGTB, String(input[_OSGT])).n(_OSGT));\n    }\n    if (input[_OSLT] != null) {\n        bn.c(__XmlNode.of(_OSLTB, String(input[_OSLT])).n(_OSLT));\n    }\n    return bn;\n};\nconst se_LifecycleRuleFilter = (input, context) => {\n    const bn = new __XmlNode(_LRF);\n    bn.cc(input, _P);\n    if (input[_Ta] != null) {\n        bn.c(se_Tag(input[_Ta], context).n(_Ta));\n    }\n    if (input[_OSGT] != null) {\n        bn.c(__XmlNode.of(_OSGTB, String(input[_OSGT])).n(_OSGT));\n    }\n    if (input[_OSLT] != null) {\n        bn.c(__XmlNode.of(_OSLTB, String(input[_OSLT])).n(_OSLT));\n    }\n    if (input[_A] != null) {\n        bn.c(se_LifecycleRuleAndOperator(input[_A], context).n(_A));\n    }\n    return bn;\n};\nconst se_LifecycleRules = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_LifecycleRule(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_LocationInfo = (input, context) => {\n    const bn = new __XmlNode(_LI);\n    if (input[_Ty] != null) {\n        bn.c(__XmlNode.of(_LT, input[_Ty]).n(_Ty));\n    }\n    if (input[_N] != null) {\n        bn.c(__XmlNode.of(_LNAS, input[_N]).n(_N));\n    }\n    return bn;\n};\nconst se_LoggingEnabled = (input, context) => {\n    const bn = new __XmlNode(_LE);\n    bn.cc(input, _TB);\n    bn.lc(input, \"TargetGrants\", \"TargetGrants\", () => se_TargetGrants(input[_TG], context));\n    bn.cc(input, _TP);\n    if (input[_TOKF] != null) {\n        bn.c(se_TargetObjectKeyFormat(input[_TOKF], context).n(_TOKF));\n    }\n    return bn;\n};\nconst se_MetadataEntry = (input, context) => {\n    const bn = new __XmlNode(_ME);\n    if (input[_N] != null) {\n        bn.c(__XmlNode.of(_MKe, input[_N]).n(_N));\n    }\n    if (input[_Va] != null) {\n        bn.c(__XmlNode.of(_MV, input[_Va]).n(_Va));\n    }\n    return bn;\n};\nconst se_MetadataTableConfiguration = (input, context) => {\n    const bn = new __XmlNode(_MTC);\n    if (input[_STD] != null) {\n        bn.c(se_S3TablesDestination(input[_STD], context).n(_STD));\n    }\n    return bn;\n};\nconst se_Metrics = (input, context) => {\n    const bn = new __XmlNode(_Me);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_MS, input[_S]).n(_S));\n    }\n    if (input[_ETv] != null) {\n        bn.c(se_ReplicationTimeValue(input[_ETv], context).n(_ETv));\n    }\n    return bn;\n};\nconst se_MetricsAndOperator = (input, context) => {\n    const bn = new __XmlNode(_MAO);\n    bn.cc(input, _P);\n    bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n    bn.cc(input, _APAc);\n    return bn;\n};\nconst se_MetricsConfiguration = (input, context) => {\n    const bn = new __XmlNode(_MC);\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_MI, input[_I]).n(_I));\n    }\n    if (input[_F] != null) {\n        bn.c(se_MetricsFilter(input[_F], context).n(_F));\n    }\n    return bn;\n};\nconst se_MetricsFilter = (input, context) => {\n    const bn = new __XmlNode(_MF);\n    MetricsFilter.visit(input, {\n        Prefix: (value) => {\n            if (input[_P] != null) {\n                bn.c(__XmlNode.of(_P, value).n(_P));\n            }\n        },\n        Tag: (value) => {\n            if (input[_Ta] != null) {\n                bn.c(se_Tag(value, context).n(_Ta));\n            }\n        },\n        AccessPointArn: (value) => {\n            if (input[_APAc] != null) {\n                bn.c(__XmlNode.of(_APAc, value).n(_APAc));\n            }\n        },\n        And: (value) => {\n            if (input[_A] != null) {\n                bn.c(se_MetricsAndOperator(value, context).n(_A));\n            }\n        },\n        _: (name, value) => {\n            if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n                throw new Error(\"Unable to serialize unknown union members in XML.\");\n            }\n            bn.c(new __XmlNode(name).c(value));\n        },\n    });\n    return bn;\n};\nconst se_NoncurrentVersionExpiration = (input, context) => {\n    const bn = new __XmlNode(_NVE);\n    if (input[_ND] != null) {\n        bn.c(__XmlNode.of(_Da, String(input[_ND])).n(_ND));\n    }\n    if (input[_NNV] != null) {\n        bn.c(__XmlNode.of(_VC, String(input[_NNV])).n(_NNV));\n    }\n    return bn;\n};\nconst se_NoncurrentVersionTransition = (input, context) => {\n    const bn = new __XmlNode(_NVTo);\n    if (input[_ND] != null) {\n        bn.c(__XmlNode.of(_Da, String(input[_ND])).n(_ND));\n    }\n    if (input[_SC] != null) {\n        bn.c(__XmlNode.of(_TSC, input[_SC]).n(_SC));\n    }\n    if (input[_NNV] != null) {\n        bn.c(__XmlNode.of(_VC, String(input[_NNV])).n(_NNV));\n    }\n    return bn;\n};\nconst se_NoncurrentVersionTransitionList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_NoncurrentVersionTransition(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_NotificationConfiguration = (input, context) => {\n    const bn = new __XmlNode(_NC);\n    bn.l(input, \"TopicConfigurations\", \"TopicConfiguration\", () => se_TopicConfigurationList(input[_TCop], context));\n    bn.l(input, \"QueueConfigurations\", \"QueueConfiguration\", () => se_QueueConfigurationList(input[_QCu], context));\n    bn.l(input, \"LambdaFunctionConfigurations\", \"CloudFunctionConfiguration\", () => se_LambdaFunctionConfigurationList(input[_LFC], context));\n    if (input[_EBC] != null) {\n        bn.c(se_EventBridgeConfiguration(input[_EBC], context).n(_EBC));\n    }\n    return bn;\n};\nconst se_NotificationConfigurationFilter = (input, context) => {\n    const bn = new __XmlNode(_NCF);\n    if (input[_K] != null) {\n        bn.c(se_S3KeyFilter(input[_K], context).n(_SKe));\n    }\n    return bn;\n};\nconst se_ObjectIdentifier = (input, context) => {\n    const bn = new __XmlNode(_OI);\n    if (input[_K] != null) {\n        bn.c(__XmlNode.of(_OK, input[_K]).n(_K));\n    }\n    if (input[_VI] != null) {\n        bn.c(__XmlNode.of(_OVI, input[_VI]).n(_VI));\n    }\n    bn.cc(input, _ETa);\n    if (input[_LMT] != null) {\n        bn.c(__XmlNode.of(_LMT, __dateToUtcString(input[_LMT]).toString()).n(_LMT));\n    }\n    if (input[_Si] != null) {\n        bn.c(__XmlNode.of(_Si, String(input[_Si])).n(_Si));\n    }\n    return bn;\n};\nconst se_ObjectIdentifierList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_ObjectIdentifier(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_ObjectLockConfiguration = (input, context) => {\n    const bn = new __XmlNode(_OLC);\n    bn.cc(input, _OLE);\n    if (input[_Ru] != null) {\n        bn.c(se_ObjectLockRule(input[_Ru], context).n(_Ru));\n    }\n    return bn;\n};\nconst se_ObjectLockLegalHold = (input, context) => {\n    const bn = new __XmlNode(_OLLH);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_OLLHS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_ObjectLockRetention = (input, context) => {\n    const bn = new __XmlNode(_OLR);\n    if (input[_Mo] != null) {\n        bn.c(__XmlNode.of(_OLRM, input[_Mo]).n(_Mo));\n    }\n    if (input[_RUD] != null) {\n        bn.c(__XmlNode.of(_Dat, __serializeDateTime(input[_RUD]).toString()).n(_RUD));\n    }\n    return bn;\n};\nconst se_ObjectLockRule = (input, context) => {\n    const bn = new __XmlNode(_OLRb);\n    if (input[_DRe] != null) {\n        bn.c(se_DefaultRetention(input[_DRe], context).n(_DRe));\n    }\n    return bn;\n};\nconst se_OutputLocation = (input, context) => {\n    const bn = new __XmlNode(_OL);\n    if (input[_S_] != null) {\n        bn.c(se_S3Location(input[_S_], context).n(_S_));\n    }\n    return bn;\n};\nconst se_OutputSerialization = (input, context) => {\n    const bn = new __XmlNode(_OS);\n    if (input[_CSV] != null) {\n        bn.c(se_CSVOutput(input[_CSV], context).n(_CSV));\n    }\n    if (input[_JSON] != null) {\n        bn.c(se_JSONOutput(input[_JSON], context).n(_JSON));\n    }\n    return bn;\n};\nconst se_Owner = (input, context) => {\n    const bn = new __XmlNode(_O);\n    bn.cc(input, _DN);\n    bn.cc(input, _ID_);\n    return bn;\n};\nconst se_OwnershipControls = (input, context) => {\n    const bn = new __XmlNode(_OC);\n    bn.l(input, \"Rules\", \"Rule\", () => se_OwnershipControlsRules(input[_Rul], context));\n    return bn;\n};\nconst se_OwnershipControlsRule = (input, context) => {\n    const bn = new __XmlNode(_OCR);\n    bn.cc(input, _OO);\n    return bn;\n};\nconst se_OwnershipControlsRules = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_OwnershipControlsRule(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_ParquetInput = (input, context) => {\n    const bn = new __XmlNode(_PI);\n    return bn;\n};\nconst se_PartitionedPrefix = (input, context) => {\n    const bn = new __XmlNode(_PP);\n    bn.cc(input, _PDS);\n    return bn;\n};\nconst se_PublicAccessBlockConfiguration = (input, context) => {\n    const bn = new __XmlNode(_PABC);\n    if (input[_BPA] != null) {\n        bn.c(__XmlNode.of(_Se, String(input[_BPA])).n(_BPA));\n    }\n    if (input[_IPA] != null) {\n        bn.c(__XmlNode.of(_Se, String(input[_IPA])).n(_IPA));\n    }\n    if (input[_BPP] != null) {\n        bn.c(__XmlNode.of(_Se, String(input[_BPP])).n(_BPP));\n    }\n    if (input[_RPB] != null) {\n        bn.c(__XmlNode.of(_Se, String(input[_RPB])).n(_RPB));\n    }\n    return bn;\n};\nconst se_QueueConfiguration = (input, context) => {\n    const bn = new __XmlNode(_QC);\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_NI, input[_I]).n(_I));\n    }\n    if (input[_QA] != null) {\n        bn.c(__XmlNode.of(_QA, input[_QA]).n(_Qu));\n    }\n    bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n    if (input[_F] != null) {\n        bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n    }\n    return bn;\n};\nconst se_QueueConfigurationList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_QueueConfiguration(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_Redirect = (input, context) => {\n    const bn = new __XmlNode(_Red);\n    bn.cc(input, _HN);\n    bn.cc(input, _HRC);\n    bn.cc(input, _Pr);\n    bn.cc(input, _RKPW);\n    bn.cc(input, _RKW);\n    return bn;\n};\nconst se_RedirectAllRequestsTo = (input, context) => {\n    const bn = new __XmlNode(_RART);\n    bn.cc(input, _HN);\n    bn.cc(input, _Pr);\n    return bn;\n};\nconst se_ReplicaModifications = (input, context) => {\n    const bn = new __XmlNode(_RM);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_RMS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_ReplicationConfiguration = (input, context) => {\n    const bn = new __XmlNode(_RCe);\n    bn.cc(input, _Ro);\n    bn.l(input, \"Rules\", \"Rule\", () => se_ReplicationRules(input[_Rul], context));\n    return bn;\n};\nconst se_ReplicationRule = (input, context) => {\n    const bn = new __XmlNode(_RRe);\n    bn.cc(input, _ID_);\n    if (input[_Pri] != null) {\n        bn.c(__XmlNode.of(_Pri, String(input[_Pri])).n(_Pri));\n    }\n    bn.cc(input, _P);\n    if (input[_F] != null) {\n        bn.c(se_ReplicationRuleFilter(input[_F], context).n(_F));\n    }\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_RRS, input[_S]).n(_S));\n    }\n    if (input[_SSC] != null) {\n        bn.c(se_SourceSelectionCriteria(input[_SSC], context).n(_SSC));\n    }\n    if (input[_EOR] != null) {\n        bn.c(se_ExistingObjectReplication(input[_EOR], context).n(_EOR));\n    }\n    if (input[_Des] != null) {\n        bn.c(se_Destination(input[_Des], context).n(_Des));\n    }\n    if (input[_DMR] != null) {\n        bn.c(se_DeleteMarkerReplication(input[_DMR], context).n(_DMR));\n    }\n    return bn;\n};\nconst se_ReplicationRuleAndOperator = (input, context) => {\n    const bn = new __XmlNode(_RRAO);\n    bn.cc(input, _P);\n    bn.l(input, \"Tags\", \"Tag\", () => se_TagSet(input[_Tag], context));\n    return bn;\n};\nconst se_ReplicationRuleFilter = (input, context) => {\n    const bn = new __XmlNode(_RRF);\n    bn.cc(input, _P);\n    if (input[_Ta] != null) {\n        bn.c(se_Tag(input[_Ta], context).n(_Ta));\n    }\n    if (input[_A] != null) {\n        bn.c(se_ReplicationRuleAndOperator(input[_A], context).n(_A));\n    }\n    return bn;\n};\nconst se_ReplicationRules = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_ReplicationRule(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_ReplicationTime = (input, context) => {\n    const bn = new __XmlNode(_RTe);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_RTS, input[_S]).n(_S));\n    }\n    if (input[_Tim] != null) {\n        bn.c(se_ReplicationTimeValue(input[_Tim], context).n(_Tim));\n    }\n    return bn;\n};\nconst se_ReplicationTimeValue = (input, context) => {\n    const bn = new __XmlNode(_RTV);\n    if (input[_Mi] != null) {\n        bn.c(__XmlNode.of(_Mi, String(input[_Mi])).n(_Mi));\n    }\n    return bn;\n};\nconst se_RequestPaymentConfiguration = (input, context) => {\n    const bn = new __XmlNode(_RPC);\n    bn.cc(input, _Pa);\n    return bn;\n};\nconst se_RequestProgress = (input, context) => {\n    const bn = new __XmlNode(_RPe);\n    if (input[_Ena] != null) {\n        bn.c(__XmlNode.of(_ERP, String(input[_Ena])).n(_Ena));\n    }\n    return bn;\n};\nconst se_RestoreRequest = (input, context) => {\n    const bn = new __XmlNode(_RRes);\n    if (input[_Da] != null) {\n        bn.c(__XmlNode.of(_Da, String(input[_Da])).n(_Da));\n    }\n    if (input[_GJP] != null) {\n        bn.c(se_GlacierJobParameters(input[_GJP], context).n(_GJP));\n    }\n    if (input[_Ty] != null) {\n        bn.c(__XmlNode.of(_RRT, input[_Ty]).n(_Ty));\n    }\n    bn.cc(input, _Ti);\n    bn.cc(input, _Desc);\n    if (input[_SP] != null) {\n        bn.c(se_SelectParameters(input[_SP], context).n(_SP));\n    }\n    if (input[_OL] != null) {\n        bn.c(se_OutputLocation(input[_OL], context).n(_OL));\n    }\n    return bn;\n};\nconst se_RoutingRule = (input, context) => {\n    const bn = new __XmlNode(_RRou);\n    if (input[_Con] != null) {\n        bn.c(se_Condition(input[_Con], context).n(_Con));\n    }\n    if (input[_Red] != null) {\n        bn.c(se_Redirect(input[_Red], context).n(_Red));\n    }\n    return bn;\n};\nconst se_RoutingRules = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_RoutingRule(entry, context);\n        return n.n(_RRou);\n    });\n};\nconst se_S3KeyFilter = (input, context) => {\n    const bn = new __XmlNode(_SKF);\n    bn.l(input, \"FilterRules\", \"FilterRule\", () => se_FilterRuleList(input[_FRi], context));\n    return bn;\n};\nconst se_S3Location = (input, context) => {\n    const bn = new __XmlNode(_SL);\n    bn.cc(input, _BN);\n    if (input[_P] != null) {\n        bn.c(__XmlNode.of(_LP, input[_P]).n(_P));\n    }\n    if (input[_En] != null) {\n        bn.c(se_Encryption(input[_En], context).n(_En));\n    }\n    if (input[_CACL] != null) {\n        bn.c(__XmlNode.of(_OCACL, input[_CACL]).n(_CACL));\n    }\n    bn.lc(input, \"AccessControlList\", \"AccessControlList\", () => se_Grants(input[_ACLc], context));\n    if (input[_T] != null) {\n        bn.c(se_Tagging(input[_T], context).n(_T));\n    }\n    bn.lc(input, \"UserMetadata\", \"UserMetadata\", () => se_UserMetadata(input[_UM], context));\n    bn.cc(input, _SC);\n    return bn;\n};\nconst se_S3TablesDestination = (input, context) => {\n    const bn = new __XmlNode(_STD);\n    if (input[_TBA] != null) {\n        bn.c(__XmlNode.of(_STBA, input[_TBA]).n(_TBA));\n    }\n    if (input[_TN] != null) {\n        bn.c(__XmlNode.of(_STN, input[_TN]).n(_TN));\n    }\n    return bn;\n};\nconst se_ScanRange = (input, context) => {\n    const bn = new __XmlNode(_SR);\n    if (input[_St] != null) {\n        bn.c(__XmlNode.of(_St, String(input[_St])).n(_St));\n    }\n    if (input[_End] != null) {\n        bn.c(__XmlNode.of(_End, String(input[_End])).n(_End));\n    }\n    return bn;\n};\nconst se_SelectParameters = (input, context) => {\n    const bn = new __XmlNode(_SP);\n    if (input[_IS] != null) {\n        bn.c(se_InputSerialization(input[_IS], context).n(_IS));\n    }\n    bn.cc(input, _ETx);\n    bn.cc(input, _Ex);\n    if (input[_OS] != null) {\n        bn.c(se_OutputSerialization(input[_OS], context).n(_OS));\n    }\n    return bn;\n};\nconst se_ServerSideEncryptionByDefault = (input, context) => {\n    const bn = new __XmlNode(_SSEBD);\n    if (input[_SSEA] != null) {\n        bn.c(__XmlNode.of(_SSE, input[_SSEA]).n(_SSEA));\n    }\n    if (input[_KMSMKID] != null) {\n        bn.c(__XmlNode.of(_SSEKMSKI, input[_KMSMKID]).n(_KMSMKID));\n    }\n    return bn;\n};\nconst se_ServerSideEncryptionConfiguration = (input, context) => {\n    const bn = new __XmlNode(_SSEC);\n    bn.l(input, \"Rules\", \"Rule\", () => se_ServerSideEncryptionRules(input[_Rul], context));\n    return bn;\n};\nconst se_ServerSideEncryptionRule = (input, context) => {\n    const bn = new __XmlNode(_SSER);\n    if (input[_ASSEBD] != null) {\n        bn.c(se_ServerSideEncryptionByDefault(input[_ASSEBD], context).n(_ASSEBD));\n    }\n    if (input[_BKE] != null) {\n        bn.c(__XmlNode.of(_BKE, String(input[_BKE])).n(_BKE));\n    }\n    return bn;\n};\nconst se_ServerSideEncryptionRules = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_ServerSideEncryptionRule(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_SimplePrefix = (input, context) => {\n    const bn = new __XmlNode(_SPi);\n    return bn;\n};\nconst se_SourceSelectionCriteria = (input, context) => {\n    const bn = new __XmlNode(_SSC);\n    if (input[_SKEO] != null) {\n        bn.c(se_SseKmsEncryptedObjects(input[_SKEO], context).n(_SKEO));\n    }\n    if (input[_RM] != null) {\n        bn.c(se_ReplicaModifications(input[_RM], context).n(_RM));\n    }\n    return bn;\n};\nconst se_SSEKMS = (input, context) => {\n    const bn = new __XmlNode(_SK);\n    if (input[_KI] != null) {\n        bn.c(__XmlNode.of(_SSEKMSKI, input[_KI]).n(_KI));\n    }\n    return bn;\n};\nconst se_SseKmsEncryptedObjects = (input, context) => {\n    const bn = new __XmlNode(_SKEO);\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_SKEOS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_SSES3 = (input, context) => {\n    const bn = new __XmlNode(_SS);\n    return bn;\n};\nconst se_StorageClassAnalysis = (input, context) => {\n    const bn = new __XmlNode(_SCA);\n    if (input[_DE] != null) {\n        bn.c(se_StorageClassAnalysisDataExport(input[_DE], context).n(_DE));\n    }\n    return bn;\n};\nconst se_StorageClassAnalysisDataExport = (input, context) => {\n    const bn = new __XmlNode(_SCADE);\n    if (input[_OSV] != null) {\n        bn.c(__XmlNode.of(_SCASV, input[_OSV]).n(_OSV));\n    }\n    if (input[_Des] != null) {\n        bn.c(se_AnalyticsExportDestination(input[_Des], context).n(_Des));\n    }\n    return bn;\n};\nconst se_Tag = (input, context) => {\n    const bn = new __XmlNode(_Ta);\n    if (input[_K] != null) {\n        bn.c(__XmlNode.of(_OK, input[_K]).n(_K));\n    }\n    bn.cc(input, _Va);\n    return bn;\n};\nconst se_Tagging = (input, context) => {\n    const bn = new __XmlNode(_T);\n    bn.lc(input, \"TagSet\", \"TagSet\", () => se_TagSet(input[_TS], context));\n    return bn;\n};\nconst se_TagSet = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_Tag(entry, context);\n        return n.n(_Ta);\n    });\n};\nconst se_TargetGrant = (input, context) => {\n    const bn = new __XmlNode(_TGa);\n    if (input[_Gra] != null) {\n        const n = se_Grantee(input[_Gra], context).n(_Gra);\n        n.a(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n        bn.c(n);\n    }\n    if (input[_Pe] != null) {\n        bn.c(__XmlNode.of(_BLP, input[_Pe]).n(_Pe));\n    }\n    return bn;\n};\nconst se_TargetGrants = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_TargetGrant(entry, context);\n        return n.n(_G);\n    });\n};\nconst se_TargetObjectKeyFormat = (input, context) => {\n    const bn = new __XmlNode(_TOKF);\n    if (input[_SPi] != null) {\n        bn.c(se_SimplePrefix(input[_SPi], context).n(_SPi));\n    }\n    if (input[_PP] != null) {\n        bn.c(se_PartitionedPrefix(input[_PP], context).n(_PP));\n    }\n    return bn;\n};\nconst se_Tiering = (input, context) => {\n    const bn = new __XmlNode(_Tier);\n    if (input[_Da] != null) {\n        bn.c(__XmlNode.of(_ITD, String(input[_Da])).n(_Da));\n    }\n    if (input[_AT] != null) {\n        bn.c(__XmlNode.of(_ITAT, input[_AT]).n(_AT));\n    }\n    return bn;\n};\nconst se_TieringList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_Tiering(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_TopicConfiguration = (input, context) => {\n    const bn = new __XmlNode(_TCo);\n    if (input[_I] != null) {\n        bn.c(__XmlNode.of(_NI, input[_I]).n(_I));\n    }\n    if (input[_TA] != null) {\n        bn.c(__XmlNode.of(_TA, input[_TA]).n(_Top));\n    }\n    bn.l(input, \"Events\", \"Event\", () => se_EventList(input[_Eve], context));\n    if (input[_F] != null) {\n        bn.c(se_NotificationConfigurationFilter(input[_F], context).n(_F));\n    }\n    return bn;\n};\nconst se_TopicConfigurationList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_TopicConfiguration(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_Transition = (input, context) => {\n    const bn = new __XmlNode(_Tra);\n    if (input[_Dat] != null) {\n        bn.c(__XmlNode.of(_Dat, __serializeDateTime(input[_Dat]).toString()).n(_Dat));\n    }\n    if (input[_Da] != null) {\n        bn.c(__XmlNode.of(_Da, String(input[_Da])).n(_Da));\n    }\n    if (input[_SC] != null) {\n        bn.c(__XmlNode.of(_TSC, input[_SC]).n(_SC));\n    }\n    return bn;\n};\nconst se_TransitionList = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_Transition(entry, context);\n        return n.n(_me);\n    });\n};\nconst se_UserMetadata = (input, context) => {\n    return input\n        .filter((e) => e != null)\n        .map((entry) => {\n        const n = se_MetadataEntry(entry, context);\n        return n.n(_ME);\n    });\n};\nconst se_VersioningConfiguration = (input, context) => {\n    const bn = new __XmlNode(_VCe);\n    if (input[_MFAD] != null) {\n        bn.c(__XmlNode.of(_MFAD, input[_MFAD]).n(_MDf));\n    }\n    if (input[_S] != null) {\n        bn.c(__XmlNode.of(_BVS, input[_S]).n(_S));\n    }\n    return bn;\n};\nconst se_WebsiteConfiguration = (input, context) => {\n    const bn = new __XmlNode(_WC);\n    if (input[_ED] != null) {\n        bn.c(se_ErrorDocument(input[_ED], context).n(_ED));\n    }\n    if (input[_ID] != null) {\n        bn.c(se_IndexDocument(input[_ID], context).n(_ID));\n    }\n    if (input[_RART] != null) {\n        bn.c(se_RedirectAllRequestsTo(input[_RART], context).n(_RART));\n    }\n    bn.lc(input, \"RoutingRules\", \"RoutingRules\", () => se_RoutingRules(input[_RRo], context));\n    return bn;\n};\nconst de_AbortIncompleteMultipartUpload = (output, context) => {\n    const contents = {};\n    if (output[_DAI] != null) {\n        contents[_DAI] = __strictParseInt32(output[_DAI]);\n    }\n    return contents;\n};\nconst de_AccessControlTranslation = (output, context) => {\n    const contents = {};\n    if (output[_O] != null) {\n        contents[_O] = __expectString(output[_O]);\n    }\n    return contents;\n};\nconst de_AllowedHeaders = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_AllowedMethods = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_AllowedOrigins = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_AnalyticsAndOperator = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output.Tag === \"\") {\n        contents[_Tag] = [];\n    }\n    else if (output[_Ta] != null) {\n        contents[_Tag] = de_TagSet(__getArrayIfSingleItem(output[_Ta]), context);\n    }\n    return contents;\n};\nconst de_AnalyticsConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output.Filter === \"\") {\n    }\n    else if (output[_F] != null) {\n        contents[_F] = de_AnalyticsFilter(__expectUnion(output[_F]), context);\n    }\n    if (output[_SCA] != null) {\n        contents[_SCA] = de_StorageClassAnalysis(output[_SCA], context);\n    }\n    return contents;\n};\nconst de_AnalyticsConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_AnalyticsConfiguration(entry, context);\n    });\n};\nconst de_AnalyticsExportDestination = (output, context) => {\n    const contents = {};\n    if (output[_SBD] != null) {\n        contents[_SBD] = de_AnalyticsS3BucketDestination(output[_SBD], context);\n    }\n    return contents;\n};\nconst de_AnalyticsFilter = (output, context) => {\n    if (output[_P] != null) {\n        return {\n            Prefix: __expectString(output[_P]),\n        };\n    }\n    if (output[_Ta] != null) {\n        return {\n            Tag: de_Tag(output[_Ta], context),\n        };\n    }\n    if (output[_A] != null) {\n        return {\n            And: de_AnalyticsAndOperator(output[_A], context),\n        };\n    }\n    return { $unknown: Object.entries(output)[0] };\n};\nconst de_AnalyticsS3BucketDestination = (output, context) => {\n    const contents = {};\n    if (output[_Fo] != null) {\n        contents[_Fo] = __expectString(output[_Fo]);\n    }\n    if (output[_BAI] != null) {\n        contents[_BAI] = __expectString(output[_BAI]);\n    }\n    if (output[_B] != null) {\n        contents[_B] = __expectString(output[_B]);\n    }\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    return contents;\n};\nconst de_Bucket = (output, context) => {\n    const contents = {};\n    if (output[_N] != null) {\n        contents[_N] = __expectString(output[_N]);\n    }\n    if (output[_CDr] != null) {\n        contents[_CDr] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_CDr]));\n    }\n    if (output[_BR] != null) {\n        contents[_BR] = __expectString(output[_BR]);\n    }\n    return contents;\n};\nconst de_Buckets = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_Bucket(entry, context);\n    });\n};\nconst de_Checksum = (output, context) => {\n    const contents = {};\n    if (output[_CCRC] != null) {\n        contents[_CCRC] = __expectString(output[_CCRC]);\n    }\n    if (output[_CCRCC] != null) {\n        contents[_CCRCC] = __expectString(output[_CCRCC]);\n    }\n    if (output[_CCRCNVME] != null) {\n        contents[_CCRCNVME] = __expectString(output[_CCRCNVME]);\n    }\n    if (output[_CSHA] != null) {\n        contents[_CSHA] = __expectString(output[_CSHA]);\n    }\n    if (output[_CSHAh] != null) {\n        contents[_CSHAh] = __expectString(output[_CSHAh]);\n    }\n    if (output[_CT] != null) {\n        contents[_CT] = __expectString(output[_CT]);\n    }\n    return contents;\n};\nconst de_ChecksumAlgorithmList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_CommonPrefix = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    return contents;\n};\nconst de_CommonPrefixList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_CommonPrefix(entry, context);\n    });\n};\nconst de_Condition = (output, context) => {\n    const contents = {};\n    if (output[_HECRE] != null) {\n        contents[_HECRE] = __expectString(output[_HECRE]);\n    }\n    if (output[_KPE] != null) {\n        contents[_KPE] = __expectString(output[_KPE]);\n    }\n    return contents;\n};\nconst de_ContinuationEvent = (output, context) => {\n    const contents = {};\n    return contents;\n};\nconst de_CopyObjectResult = (output, context) => {\n    const contents = {};\n    if (output[_ETa] != null) {\n        contents[_ETa] = __expectString(output[_ETa]);\n    }\n    if (output[_LM] != null) {\n        contents[_LM] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_LM]));\n    }\n    if (output[_CT] != null) {\n        contents[_CT] = __expectString(output[_CT]);\n    }\n    if (output[_CCRC] != null) {\n        contents[_CCRC] = __expectString(output[_CCRC]);\n    }\n    if (output[_CCRCC] != null) {\n        contents[_CCRCC] = __expectString(output[_CCRCC]);\n    }\n    if (output[_CCRCNVME] != null) {\n        contents[_CCRCNVME] = __expectString(output[_CCRCNVME]);\n    }\n    if (output[_CSHA] != null) {\n        contents[_CSHA] = __expectString(output[_CSHA]);\n    }\n    if (output[_CSHAh] != null) {\n        contents[_CSHAh] = __expectString(output[_CSHAh]);\n    }\n    return contents;\n};\nconst de_CopyPartResult = (output, context) => {\n    const contents = {};\n    if (output[_ETa] != null) {\n        contents[_ETa] = __expectString(output[_ETa]);\n    }\n    if (output[_LM] != null) {\n        contents[_LM] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_LM]));\n    }\n    if (output[_CCRC] != null) {\n        contents[_CCRC] = __expectString(output[_CCRC]);\n    }\n    if (output[_CCRCC] != null) {\n        contents[_CCRCC] = __expectString(output[_CCRCC]);\n    }\n    if (output[_CCRCNVME] != null) {\n        contents[_CCRCNVME] = __expectString(output[_CCRCNVME]);\n    }\n    if (output[_CSHA] != null) {\n        contents[_CSHA] = __expectString(output[_CSHA]);\n    }\n    if (output[_CSHAh] != null) {\n        contents[_CSHAh] = __expectString(output[_CSHAh]);\n    }\n    return contents;\n};\nconst de_CORSRule = (output, context) => {\n    const contents = {};\n    if (output[_ID_] != null) {\n        contents[_ID_] = __expectString(output[_ID_]);\n    }\n    if (output.AllowedHeader === \"\") {\n        contents[_AHl] = [];\n    }\n    else if (output[_AH] != null) {\n        contents[_AHl] = de_AllowedHeaders(__getArrayIfSingleItem(output[_AH]), context);\n    }\n    if (output.AllowedMethod === \"\") {\n        contents[_AMl] = [];\n    }\n    else if (output[_AM] != null) {\n        contents[_AMl] = de_AllowedMethods(__getArrayIfSingleItem(output[_AM]), context);\n    }\n    if (output.AllowedOrigin === \"\") {\n        contents[_AOl] = [];\n    }\n    else if (output[_AO] != null) {\n        contents[_AOl] = de_AllowedOrigins(__getArrayIfSingleItem(output[_AO]), context);\n    }\n    if (output.ExposeHeader === \"\") {\n        contents[_EH] = [];\n    }\n    else if (output[_EHx] != null) {\n        contents[_EH] = de_ExposeHeaders(__getArrayIfSingleItem(output[_EHx]), context);\n    }\n    if (output[_MAS] != null) {\n        contents[_MAS] = __strictParseInt32(output[_MAS]);\n    }\n    return contents;\n};\nconst de_CORSRules = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_CORSRule(entry, context);\n    });\n};\nconst de_DefaultRetention = (output, context) => {\n    const contents = {};\n    if (output[_Mo] != null) {\n        contents[_Mo] = __expectString(output[_Mo]);\n    }\n    if (output[_Da] != null) {\n        contents[_Da] = __strictParseInt32(output[_Da]);\n    }\n    if (output[_Y] != null) {\n        contents[_Y] = __strictParseInt32(output[_Y]);\n    }\n    return contents;\n};\nconst de_DeletedObject = (output, context) => {\n    const contents = {};\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_VI] != null) {\n        contents[_VI] = __expectString(output[_VI]);\n    }\n    if (output[_DM] != null) {\n        contents[_DM] = __parseBoolean(output[_DM]);\n    }\n    if (output[_DMVI] != null) {\n        contents[_DMVI] = __expectString(output[_DMVI]);\n    }\n    return contents;\n};\nconst de_DeletedObjects = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_DeletedObject(entry, context);\n    });\n};\nconst de_DeleteMarkerEntry = (output, context) => {\n    const contents = {};\n    if (output[_O] != null) {\n        contents[_O] = de_Owner(output[_O], context);\n    }\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_VI] != null) {\n        contents[_VI] = __expectString(output[_VI]);\n    }\n    if (output[_IL] != null) {\n        contents[_IL] = __parseBoolean(output[_IL]);\n    }\n    if (output[_LM] != null) {\n        contents[_LM] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_LM]));\n    }\n    return contents;\n};\nconst de_DeleteMarkerReplication = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    return contents;\n};\nconst de_DeleteMarkers = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_DeleteMarkerEntry(entry, context);\n    });\n};\nconst de_Destination = (output, context) => {\n    const contents = {};\n    if (output[_B] != null) {\n        contents[_B] = __expectString(output[_B]);\n    }\n    if (output[_Ac] != null) {\n        contents[_Ac] = __expectString(output[_Ac]);\n    }\n    if (output[_SC] != null) {\n        contents[_SC] = __expectString(output[_SC]);\n    }\n    if (output[_ACT] != null) {\n        contents[_ACT] = de_AccessControlTranslation(output[_ACT], context);\n    }\n    if (output[_ECn] != null) {\n        contents[_ECn] = de_EncryptionConfiguration(output[_ECn], context);\n    }\n    if (output[_RTe] != null) {\n        contents[_RTe] = de_ReplicationTime(output[_RTe], context);\n    }\n    if (output[_Me] != null) {\n        contents[_Me] = de_Metrics(output[_Me], context);\n    }\n    return contents;\n};\nconst de_EncryptionConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_RKKID] != null) {\n        contents[_RKKID] = __expectString(output[_RKKID]);\n    }\n    return contents;\n};\nconst de_EndEvent = (output, context) => {\n    const contents = {};\n    return contents;\n};\nconst de__Error = (output, context) => {\n    const contents = {};\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_VI] != null) {\n        contents[_VI] = __expectString(output[_VI]);\n    }\n    if (output[_Cod] != null) {\n        contents[_Cod] = __expectString(output[_Cod]);\n    }\n    if (output[_Mes] != null) {\n        contents[_Mes] = __expectString(output[_Mes]);\n    }\n    return contents;\n};\nconst de_ErrorDetails = (output, context) => {\n    const contents = {};\n    if (output[_EC] != null) {\n        contents[_EC] = __expectString(output[_EC]);\n    }\n    if (output[_EM] != null) {\n        contents[_EM] = __expectString(output[_EM]);\n    }\n    return contents;\n};\nconst de_ErrorDocument = (output, context) => {\n    const contents = {};\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    return contents;\n};\nconst de_Errors = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de__Error(entry, context);\n    });\n};\nconst de_EventBridgeConfiguration = (output, context) => {\n    const contents = {};\n    return contents;\n};\nconst de_EventList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_ExistingObjectReplication = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    return contents;\n};\nconst de_ExposeHeaders = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_FilterRule = (output, context) => {\n    const contents = {};\n    if (output[_N] != null) {\n        contents[_N] = __expectString(output[_N]);\n    }\n    if (output[_Va] != null) {\n        contents[_Va] = __expectString(output[_Va]);\n    }\n    return contents;\n};\nconst de_FilterRuleList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_FilterRule(entry, context);\n    });\n};\nconst de_GetBucketMetadataTableConfigurationResult = (output, context) => {\n    const contents = {};\n    if (output[_MTCR] != null) {\n        contents[_MTCR] = de_MetadataTableConfigurationResult(output[_MTCR], context);\n    }\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    if (output[_Er] != null) {\n        contents[_Er] = de_ErrorDetails(output[_Er], context);\n    }\n    return contents;\n};\nconst de_GetObjectAttributesParts = (output, context) => {\n    const contents = {};\n    if (output[_PC] != null) {\n        contents[_TPC] = __strictParseInt32(output[_PC]);\n    }\n    if (output[_PNM] != null) {\n        contents[_PNM] = __expectString(output[_PNM]);\n    }\n    if (output[_NPNM] != null) {\n        contents[_NPNM] = __expectString(output[_NPNM]);\n    }\n    if (output[_MP] != null) {\n        contents[_MP] = __strictParseInt32(output[_MP]);\n    }\n    if (output[_IT] != null) {\n        contents[_IT] = __parseBoolean(output[_IT]);\n    }\n    if (output.Part === \"\") {\n        contents[_Part] = [];\n    }\n    else if (output[_Par] != null) {\n        contents[_Part] = de_PartsList(__getArrayIfSingleItem(output[_Par]), context);\n    }\n    return contents;\n};\nconst de_Grant = (output, context) => {\n    const contents = {};\n    if (output[_Gra] != null) {\n        contents[_Gra] = de_Grantee(output[_Gra], context);\n    }\n    if (output[_Pe] != null) {\n        contents[_Pe] = __expectString(output[_Pe]);\n    }\n    return contents;\n};\nconst de_Grantee = (output, context) => {\n    const contents = {};\n    if (output[_DN] != null) {\n        contents[_DN] = __expectString(output[_DN]);\n    }\n    if (output[_EA] != null) {\n        contents[_EA] = __expectString(output[_EA]);\n    }\n    if (output[_ID_] != null) {\n        contents[_ID_] = __expectString(output[_ID_]);\n    }\n    if (output[_URI] != null) {\n        contents[_URI] = __expectString(output[_URI]);\n    }\n    if (output[_x] != null) {\n        contents[_Ty] = __expectString(output[_x]);\n    }\n    return contents;\n};\nconst de_Grants = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_Grant(entry, context);\n    });\n};\nconst de_IndexDocument = (output, context) => {\n    const contents = {};\n    if (output[_Su] != null) {\n        contents[_Su] = __expectString(output[_Su]);\n    }\n    return contents;\n};\nconst de_Initiator = (output, context) => {\n    const contents = {};\n    if (output[_ID_] != null) {\n        contents[_ID_] = __expectString(output[_ID_]);\n    }\n    if (output[_DN] != null) {\n        contents[_DN] = __expectString(output[_DN]);\n    }\n    return contents;\n};\nconst de_IntelligentTieringAndOperator = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output.Tag === \"\") {\n        contents[_Tag] = [];\n    }\n    else if (output[_Ta] != null) {\n        contents[_Tag] = de_TagSet(__getArrayIfSingleItem(output[_Ta]), context);\n    }\n    return contents;\n};\nconst de_IntelligentTieringConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_IntelligentTieringFilter(output[_F], context);\n    }\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    if (output.Tiering === \"\") {\n        contents[_Tie] = [];\n    }\n    else if (output[_Tier] != null) {\n        contents[_Tie] = de_TieringList(__getArrayIfSingleItem(output[_Tier]), context);\n    }\n    return contents;\n};\nconst de_IntelligentTieringConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_IntelligentTieringConfiguration(entry, context);\n    });\n};\nconst de_IntelligentTieringFilter = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output[_Ta] != null) {\n        contents[_Ta] = de_Tag(output[_Ta], context);\n    }\n    if (output[_A] != null) {\n        contents[_A] = de_IntelligentTieringAndOperator(output[_A], context);\n    }\n    return contents;\n};\nconst de_InventoryConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_Des] != null) {\n        contents[_Des] = de_InventoryDestination(output[_Des], context);\n    }\n    if (output[_IE] != null) {\n        contents[_IE] = __parseBoolean(output[_IE]);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_InventoryFilter(output[_F], context);\n    }\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output[_IOV] != null) {\n        contents[_IOV] = __expectString(output[_IOV]);\n    }\n    if (output.OptionalFields === \"\") {\n        contents[_OF] = [];\n    }\n    else if (output[_OF] != null && output[_OF][_Fi] != null) {\n        contents[_OF] = de_InventoryOptionalFields(__getArrayIfSingleItem(output[_OF][_Fi]), context);\n    }\n    if (output[_Sc] != null) {\n        contents[_Sc] = de_InventorySchedule(output[_Sc], context);\n    }\n    return contents;\n};\nconst de_InventoryConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_InventoryConfiguration(entry, context);\n    });\n};\nconst de_InventoryDestination = (output, context) => {\n    const contents = {};\n    if (output[_SBD] != null) {\n        contents[_SBD] = de_InventoryS3BucketDestination(output[_SBD], context);\n    }\n    return contents;\n};\nconst de_InventoryEncryption = (output, context) => {\n    const contents = {};\n    if (output[_SS] != null) {\n        contents[_SSES] = de_SSES3(output[_SS], context);\n    }\n    if (output[_SK] != null) {\n        contents[_SSEKMS] = de_SSEKMS(output[_SK], context);\n    }\n    return contents;\n};\nconst de_InventoryFilter = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    return contents;\n};\nconst de_InventoryOptionalFields = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return __expectString(entry);\n    });\n};\nconst de_InventoryS3BucketDestination = (output, context) => {\n    const contents = {};\n    if (output[_AIc] != null) {\n        contents[_AIc] = __expectString(output[_AIc]);\n    }\n    if (output[_B] != null) {\n        contents[_B] = __expectString(output[_B]);\n    }\n    if (output[_Fo] != null) {\n        contents[_Fo] = __expectString(output[_Fo]);\n    }\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output[_En] != null) {\n        contents[_En] = de_InventoryEncryption(output[_En], context);\n    }\n    return contents;\n};\nconst de_InventorySchedule = (output, context) => {\n    const contents = {};\n    if (output[_Fr] != null) {\n        contents[_Fr] = __expectString(output[_Fr]);\n    }\n    return contents;\n};\nconst de_LambdaFunctionConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output[_CF] != null) {\n        contents[_LFA] = __expectString(output[_CF]);\n    }\n    if (output.Event === \"\") {\n        contents[_Eve] = [];\n    }\n    else if (output[_Ev] != null) {\n        contents[_Eve] = de_EventList(__getArrayIfSingleItem(output[_Ev]), context);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n    }\n    return contents;\n};\nconst de_LambdaFunctionConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_LambdaFunctionConfiguration(entry, context);\n    });\n};\nconst de_LifecycleExpiration = (output, context) => {\n    const contents = {};\n    if (output[_Dat] != null) {\n        contents[_Dat] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_Dat]));\n    }\n    if (output[_Da] != null) {\n        contents[_Da] = __strictParseInt32(output[_Da]);\n    }\n    if (output[_EODM] != null) {\n        contents[_EODM] = __parseBoolean(output[_EODM]);\n    }\n    return contents;\n};\nconst de_LifecycleRule = (output, context) => {\n    const contents = {};\n    if (output[_Exp] != null) {\n        contents[_Exp] = de_LifecycleExpiration(output[_Exp], context);\n    }\n    if (output[_ID_] != null) {\n        contents[_ID_] = __expectString(output[_ID_]);\n    }\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_LifecycleRuleFilter(output[_F], context);\n    }\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    if (output.Transition === \"\") {\n        contents[_Tr] = [];\n    }\n    else if (output[_Tra] != null) {\n        contents[_Tr] = de_TransitionList(__getArrayIfSingleItem(output[_Tra]), context);\n    }\n    if (output.NoncurrentVersionTransition === \"\") {\n        contents[_NVT] = [];\n    }\n    else if (output[_NVTo] != null) {\n        contents[_NVT] = de_NoncurrentVersionTransitionList(__getArrayIfSingleItem(output[_NVTo]), context);\n    }\n    if (output[_NVE] != null) {\n        contents[_NVE] = de_NoncurrentVersionExpiration(output[_NVE], context);\n    }\n    if (output[_AIMU] != null) {\n        contents[_AIMU] = de_AbortIncompleteMultipartUpload(output[_AIMU], context);\n    }\n    return contents;\n};\nconst de_LifecycleRuleAndOperator = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output.Tag === \"\") {\n        contents[_Tag] = [];\n    }\n    else if (output[_Ta] != null) {\n        contents[_Tag] = de_TagSet(__getArrayIfSingleItem(output[_Ta]), context);\n    }\n    if (output[_OSGT] != null) {\n        contents[_OSGT] = __strictParseLong(output[_OSGT]);\n    }\n    if (output[_OSLT] != null) {\n        contents[_OSLT] = __strictParseLong(output[_OSLT]);\n    }\n    return contents;\n};\nconst de_LifecycleRuleFilter = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output[_Ta] != null) {\n        contents[_Ta] = de_Tag(output[_Ta], context);\n    }\n    if (output[_OSGT] != null) {\n        contents[_OSGT] = __strictParseLong(output[_OSGT]);\n    }\n    if (output[_OSLT] != null) {\n        contents[_OSLT] = __strictParseLong(output[_OSLT]);\n    }\n    if (output[_A] != null) {\n        contents[_A] = de_LifecycleRuleAndOperator(output[_A], context);\n    }\n    return contents;\n};\nconst de_LifecycleRules = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_LifecycleRule(entry, context);\n    });\n};\nconst de_LoggingEnabled = (output, context) => {\n    const contents = {};\n    if (output[_TB] != null) {\n        contents[_TB] = __expectString(output[_TB]);\n    }\n    if (output.TargetGrants === \"\") {\n        contents[_TG] = [];\n    }\n    else if (output[_TG] != null && output[_TG][_G] != null) {\n        contents[_TG] = de_TargetGrants(__getArrayIfSingleItem(output[_TG][_G]), context);\n    }\n    if (output[_TP] != null) {\n        contents[_TP] = __expectString(output[_TP]);\n    }\n    if (output[_TOKF] != null) {\n        contents[_TOKF] = de_TargetObjectKeyFormat(output[_TOKF], context);\n    }\n    return contents;\n};\nconst de_MetadataTableConfigurationResult = (output, context) => {\n    const contents = {};\n    if (output[_STDR] != null) {\n        contents[_STDR] = de_S3TablesDestinationResult(output[_STDR], context);\n    }\n    return contents;\n};\nconst de_Metrics = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    if (output[_ETv] != null) {\n        contents[_ETv] = de_ReplicationTimeValue(output[_ETv], context);\n    }\n    return contents;\n};\nconst de_MetricsAndOperator = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output.Tag === \"\") {\n        contents[_Tag] = [];\n    }\n    else if (output[_Ta] != null) {\n        contents[_Tag] = de_TagSet(__getArrayIfSingleItem(output[_Ta]), context);\n    }\n    if (output[_APAc] != null) {\n        contents[_APAc] = __expectString(output[_APAc]);\n    }\n    return contents;\n};\nconst de_MetricsConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output.Filter === \"\") {\n    }\n    else if (output[_F] != null) {\n        contents[_F] = de_MetricsFilter(__expectUnion(output[_F]), context);\n    }\n    return contents;\n};\nconst de_MetricsConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_MetricsConfiguration(entry, context);\n    });\n};\nconst de_MetricsFilter = (output, context) => {\n    if (output[_P] != null) {\n        return {\n            Prefix: __expectString(output[_P]),\n        };\n    }\n    if (output[_Ta] != null) {\n        return {\n            Tag: de_Tag(output[_Ta], context),\n        };\n    }\n    if (output[_APAc] != null) {\n        return {\n            AccessPointArn: __expectString(output[_APAc]),\n        };\n    }\n    if (output[_A] != null) {\n        return {\n            And: de_MetricsAndOperator(output[_A], context),\n        };\n    }\n    return { $unknown: Object.entries(output)[0] };\n};\nconst de_MultipartUpload = (output, context) => {\n    const contents = {};\n    if (output[_UI] != null) {\n        contents[_UI] = __expectString(output[_UI]);\n    }\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_Ini] != null) {\n        contents[_Ini] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_Ini]));\n    }\n    if (output[_SC] != null) {\n        contents[_SC] = __expectString(output[_SC]);\n    }\n    if (output[_O] != null) {\n        contents[_O] = de_Owner(output[_O], context);\n    }\n    if (output[_In] != null) {\n        contents[_In] = de_Initiator(output[_In], context);\n    }\n    if (output[_CA] != null) {\n        contents[_CA] = __expectString(output[_CA]);\n    }\n    if (output[_CT] != null) {\n        contents[_CT] = __expectString(output[_CT]);\n    }\n    return contents;\n};\nconst de_MultipartUploadList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_MultipartUpload(entry, context);\n    });\n};\nconst de_NoncurrentVersionExpiration = (output, context) => {\n    const contents = {};\n    if (output[_ND] != null) {\n        contents[_ND] = __strictParseInt32(output[_ND]);\n    }\n    if (output[_NNV] != null) {\n        contents[_NNV] = __strictParseInt32(output[_NNV]);\n    }\n    return contents;\n};\nconst de_NoncurrentVersionTransition = (output, context) => {\n    const contents = {};\n    if (output[_ND] != null) {\n        contents[_ND] = __strictParseInt32(output[_ND]);\n    }\n    if (output[_SC] != null) {\n        contents[_SC] = __expectString(output[_SC]);\n    }\n    if (output[_NNV] != null) {\n        contents[_NNV] = __strictParseInt32(output[_NNV]);\n    }\n    return contents;\n};\nconst de_NoncurrentVersionTransitionList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_NoncurrentVersionTransition(entry, context);\n    });\n};\nconst de_NotificationConfigurationFilter = (output, context) => {\n    const contents = {};\n    if (output[_SKe] != null) {\n        contents[_K] = de_S3KeyFilter(output[_SKe], context);\n    }\n    return contents;\n};\nconst de__Object = (output, context) => {\n    const contents = {};\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_LM] != null) {\n        contents[_LM] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_LM]));\n    }\n    if (output[_ETa] != null) {\n        contents[_ETa] = __expectString(output[_ETa]);\n    }\n    if (output.ChecksumAlgorithm === \"\") {\n        contents[_CA] = [];\n    }\n    else if (output[_CA] != null) {\n        contents[_CA] = de_ChecksumAlgorithmList(__getArrayIfSingleItem(output[_CA]), context);\n    }\n    if (output[_CT] != null) {\n        contents[_CT] = __expectString(output[_CT]);\n    }\n    if (output[_Si] != null) {\n        contents[_Si] = __strictParseLong(output[_Si]);\n    }\n    if (output[_SC] != null) {\n        contents[_SC] = __expectString(output[_SC]);\n    }\n    if (output[_O] != null) {\n        contents[_O] = de_Owner(output[_O], context);\n    }\n    if (output[_RSe] != null) {\n        contents[_RSe] = de_RestoreStatus(output[_RSe], context);\n    }\n    return contents;\n};\nconst de_ObjectList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de__Object(entry, context);\n    });\n};\nconst de_ObjectLockConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_OLE] != null) {\n        contents[_OLE] = __expectString(output[_OLE]);\n    }\n    if (output[_Ru] != null) {\n        contents[_Ru] = de_ObjectLockRule(output[_Ru], context);\n    }\n    return contents;\n};\nconst de_ObjectLockLegalHold = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    return contents;\n};\nconst de_ObjectLockRetention = (output, context) => {\n    const contents = {};\n    if (output[_Mo] != null) {\n        contents[_Mo] = __expectString(output[_Mo]);\n    }\n    if (output[_RUD] != null) {\n        contents[_RUD] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_RUD]));\n    }\n    return contents;\n};\nconst de_ObjectLockRule = (output, context) => {\n    const contents = {};\n    if (output[_DRe] != null) {\n        contents[_DRe] = de_DefaultRetention(output[_DRe], context);\n    }\n    return contents;\n};\nconst de_ObjectPart = (output, context) => {\n    const contents = {};\n    if (output[_PN] != null) {\n        contents[_PN] = __strictParseInt32(output[_PN]);\n    }\n    if (output[_Si] != null) {\n        contents[_Si] = __strictParseLong(output[_Si]);\n    }\n    if (output[_CCRC] != null) {\n        contents[_CCRC] = __expectString(output[_CCRC]);\n    }\n    if (output[_CCRCC] != null) {\n        contents[_CCRCC] = __expectString(output[_CCRCC]);\n    }\n    if (output[_CCRCNVME] != null) {\n        contents[_CCRCNVME] = __expectString(output[_CCRCNVME]);\n    }\n    if (output[_CSHA] != null) {\n        contents[_CSHA] = __expectString(output[_CSHA]);\n    }\n    if (output[_CSHAh] != null) {\n        contents[_CSHAh] = __expectString(output[_CSHAh]);\n    }\n    return contents;\n};\nconst de_ObjectVersion = (output, context) => {\n    const contents = {};\n    if (output[_ETa] != null) {\n        contents[_ETa] = __expectString(output[_ETa]);\n    }\n    if (output.ChecksumAlgorithm === \"\") {\n        contents[_CA] = [];\n    }\n    else if (output[_CA] != null) {\n        contents[_CA] = de_ChecksumAlgorithmList(__getArrayIfSingleItem(output[_CA]), context);\n    }\n    if (output[_CT] != null) {\n        contents[_CT] = __expectString(output[_CT]);\n    }\n    if (output[_Si] != null) {\n        contents[_Si] = __strictParseLong(output[_Si]);\n    }\n    if (output[_SC] != null) {\n        contents[_SC] = __expectString(output[_SC]);\n    }\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_VI] != null) {\n        contents[_VI] = __expectString(output[_VI]);\n    }\n    if (output[_IL] != null) {\n        contents[_IL] = __parseBoolean(output[_IL]);\n    }\n    if (output[_LM] != null) {\n        contents[_LM] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_LM]));\n    }\n    if (output[_O] != null) {\n        contents[_O] = de_Owner(output[_O], context);\n    }\n    if (output[_RSe] != null) {\n        contents[_RSe] = de_RestoreStatus(output[_RSe], context);\n    }\n    return contents;\n};\nconst de_ObjectVersionList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_ObjectVersion(entry, context);\n    });\n};\nconst de_Owner = (output, context) => {\n    const contents = {};\n    if (output[_DN] != null) {\n        contents[_DN] = __expectString(output[_DN]);\n    }\n    if (output[_ID_] != null) {\n        contents[_ID_] = __expectString(output[_ID_]);\n    }\n    return contents;\n};\nconst de_OwnershipControls = (output, context) => {\n    const contents = {};\n    if (output.Rule === \"\") {\n        contents[_Rul] = [];\n    }\n    else if (output[_Ru] != null) {\n        contents[_Rul] = de_OwnershipControlsRules(__getArrayIfSingleItem(output[_Ru]), context);\n    }\n    return contents;\n};\nconst de_OwnershipControlsRule = (output, context) => {\n    const contents = {};\n    if (output[_OO] != null) {\n        contents[_OO] = __expectString(output[_OO]);\n    }\n    return contents;\n};\nconst de_OwnershipControlsRules = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_OwnershipControlsRule(entry, context);\n    });\n};\nconst de_Part = (output, context) => {\n    const contents = {};\n    if (output[_PN] != null) {\n        contents[_PN] = __strictParseInt32(output[_PN]);\n    }\n    if (output[_LM] != null) {\n        contents[_LM] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_LM]));\n    }\n    if (output[_ETa] != null) {\n        contents[_ETa] = __expectString(output[_ETa]);\n    }\n    if (output[_Si] != null) {\n        contents[_Si] = __strictParseLong(output[_Si]);\n    }\n    if (output[_CCRC] != null) {\n        contents[_CCRC] = __expectString(output[_CCRC]);\n    }\n    if (output[_CCRCC] != null) {\n        contents[_CCRCC] = __expectString(output[_CCRCC]);\n    }\n    if (output[_CCRCNVME] != null) {\n        contents[_CCRCNVME] = __expectString(output[_CCRCNVME]);\n    }\n    if (output[_CSHA] != null) {\n        contents[_CSHA] = __expectString(output[_CSHA]);\n    }\n    if (output[_CSHAh] != null) {\n        contents[_CSHAh] = __expectString(output[_CSHAh]);\n    }\n    return contents;\n};\nconst de_PartitionedPrefix = (output, context) => {\n    const contents = {};\n    if (output[_PDS] != null) {\n        contents[_PDS] = __expectString(output[_PDS]);\n    }\n    return contents;\n};\nconst de_Parts = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_Part(entry, context);\n    });\n};\nconst de_PartsList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_ObjectPart(entry, context);\n    });\n};\nconst de_PolicyStatus = (output, context) => {\n    const contents = {};\n    if (output[_IP] != null) {\n        contents[_IP] = __parseBoolean(output[_IP]);\n    }\n    return contents;\n};\nconst de_Progress = (output, context) => {\n    const contents = {};\n    if (output[_BS] != null) {\n        contents[_BS] = __strictParseLong(output[_BS]);\n    }\n    if (output[_BP] != null) {\n        contents[_BP] = __strictParseLong(output[_BP]);\n    }\n    if (output[_BRy] != null) {\n        contents[_BRy] = __strictParseLong(output[_BRy]);\n    }\n    return contents;\n};\nconst de_PublicAccessBlockConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_BPA] != null) {\n        contents[_BPA] = __parseBoolean(output[_BPA]);\n    }\n    if (output[_IPA] != null) {\n        contents[_IPA] = __parseBoolean(output[_IPA]);\n    }\n    if (output[_BPP] != null) {\n        contents[_BPP] = __parseBoolean(output[_BPP]);\n    }\n    if (output[_RPB] != null) {\n        contents[_RPB] = __parseBoolean(output[_RPB]);\n    }\n    return contents;\n};\nconst de_QueueConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output[_Qu] != null) {\n        contents[_QA] = __expectString(output[_Qu]);\n    }\n    if (output.Event === \"\") {\n        contents[_Eve] = [];\n    }\n    else if (output[_Ev] != null) {\n        contents[_Eve] = de_EventList(__getArrayIfSingleItem(output[_Ev]), context);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n    }\n    return contents;\n};\nconst de_QueueConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_QueueConfiguration(entry, context);\n    });\n};\nconst de_Redirect = (output, context) => {\n    const contents = {};\n    if (output[_HN] != null) {\n        contents[_HN] = __expectString(output[_HN]);\n    }\n    if (output[_HRC] != null) {\n        contents[_HRC] = __expectString(output[_HRC]);\n    }\n    if (output[_Pr] != null) {\n        contents[_Pr] = __expectString(output[_Pr]);\n    }\n    if (output[_RKPW] != null) {\n        contents[_RKPW] = __expectString(output[_RKPW]);\n    }\n    if (output[_RKW] != null) {\n        contents[_RKW] = __expectString(output[_RKW]);\n    }\n    return contents;\n};\nconst de_RedirectAllRequestsTo = (output, context) => {\n    const contents = {};\n    if (output[_HN] != null) {\n        contents[_HN] = __expectString(output[_HN]);\n    }\n    if (output[_Pr] != null) {\n        contents[_Pr] = __expectString(output[_Pr]);\n    }\n    return contents;\n};\nconst de_ReplicaModifications = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    return contents;\n};\nconst de_ReplicationConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_Ro] != null) {\n        contents[_Ro] = __expectString(output[_Ro]);\n    }\n    if (output.Rule === \"\") {\n        contents[_Rul] = [];\n    }\n    else if (output[_Ru] != null) {\n        contents[_Rul] = de_ReplicationRules(__getArrayIfSingleItem(output[_Ru]), context);\n    }\n    return contents;\n};\nconst de_ReplicationRule = (output, context) => {\n    const contents = {};\n    if (output[_ID_] != null) {\n        contents[_ID_] = __expectString(output[_ID_]);\n    }\n    if (output[_Pri] != null) {\n        contents[_Pri] = __strictParseInt32(output[_Pri]);\n    }\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_ReplicationRuleFilter(output[_F], context);\n    }\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    if (output[_SSC] != null) {\n        contents[_SSC] = de_SourceSelectionCriteria(output[_SSC], context);\n    }\n    if (output[_EOR] != null) {\n        contents[_EOR] = de_ExistingObjectReplication(output[_EOR], context);\n    }\n    if (output[_Des] != null) {\n        contents[_Des] = de_Destination(output[_Des], context);\n    }\n    if (output[_DMR] != null) {\n        contents[_DMR] = de_DeleteMarkerReplication(output[_DMR], context);\n    }\n    return contents;\n};\nconst de_ReplicationRuleAndOperator = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output.Tag === \"\") {\n        contents[_Tag] = [];\n    }\n    else if (output[_Ta] != null) {\n        contents[_Tag] = de_TagSet(__getArrayIfSingleItem(output[_Ta]), context);\n    }\n    return contents;\n};\nconst de_ReplicationRuleFilter = (output, context) => {\n    const contents = {};\n    if (output[_P] != null) {\n        contents[_P] = __expectString(output[_P]);\n    }\n    if (output[_Ta] != null) {\n        contents[_Ta] = de_Tag(output[_Ta], context);\n    }\n    if (output[_A] != null) {\n        contents[_A] = de_ReplicationRuleAndOperator(output[_A], context);\n    }\n    return contents;\n};\nconst de_ReplicationRules = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_ReplicationRule(entry, context);\n    });\n};\nconst de_ReplicationTime = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    if (output[_Tim] != null) {\n        contents[_Tim] = de_ReplicationTimeValue(output[_Tim], context);\n    }\n    return contents;\n};\nconst de_ReplicationTimeValue = (output, context) => {\n    const contents = {};\n    if (output[_Mi] != null) {\n        contents[_Mi] = __strictParseInt32(output[_Mi]);\n    }\n    return contents;\n};\nconst de_RestoreStatus = (output, context) => {\n    const contents = {};\n    if (output[_IRIP] != null) {\n        contents[_IRIP] = __parseBoolean(output[_IRIP]);\n    }\n    if (output[_RED] != null) {\n        contents[_RED] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_RED]));\n    }\n    return contents;\n};\nconst de_RoutingRule = (output, context) => {\n    const contents = {};\n    if (output[_Con] != null) {\n        contents[_Con] = de_Condition(output[_Con], context);\n    }\n    if (output[_Red] != null) {\n        contents[_Red] = de_Redirect(output[_Red], context);\n    }\n    return contents;\n};\nconst de_RoutingRules = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_RoutingRule(entry, context);\n    });\n};\nconst de_S3KeyFilter = (output, context) => {\n    const contents = {};\n    if (output.FilterRule === \"\") {\n        contents[_FRi] = [];\n    }\n    else if (output[_FR] != null) {\n        contents[_FRi] = de_FilterRuleList(__getArrayIfSingleItem(output[_FR]), context);\n    }\n    return contents;\n};\nconst de_S3TablesDestinationResult = (output, context) => {\n    const contents = {};\n    if (output[_TBA] != null) {\n        contents[_TBA] = __expectString(output[_TBA]);\n    }\n    if (output[_TN] != null) {\n        contents[_TN] = __expectString(output[_TN]);\n    }\n    if (output[_TAa] != null) {\n        contents[_TAa] = __expectString(output[_TAa]);\n    }\n    if (output[_TNa] != null) {\n        contents[_TNa] = __expectString(output[_TNa]);\n    }\n    return contents;\n};\nconst de_ServerSideEncryptionByDefault = (output, context) => {\n    const contents = {};\n    if (output[_SSEA] != null) {\n        contents[_SSEA] = __expectString(output[_SSEA]);\n    }\n    if (output[_KMSMKID] != null) {\n        contents[_KMSMKID] = __expectString(output[_KMSMKID]);\n    }\n    return contents;\n};\nconst de_ServerSideEncryptionConfiguration = (output, context) => {\n    const contents = {};\n    if (output.Rule === \"\") {\n        contents[_Rul] = [];\n    }\n    else if (output[_Ru] != null) {\n        contents[_Rul] = de_ServerSideEncryptionRules(__getArrayIfSingleItem(output[_Ru]), context);\n    }\n    return contents;\n};\nconst de_ServerSideEncryptionRule = (output, context) => {\n    const contents = {};\n    if (output[_ASSEBD] != null) {\n        contents[_ASSEBD] = de_ServerSideEncryptionByDefault(output[_ASSEBD], context);\n    }\n    if (output[_BKE] != null) {\n        contents[_BKE] = __parseBoolean(output[_BKE]);\n    }\n    return contents;\n};\nconst de_ServerSideEncryptionRules = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_ServerSideEncryptionRule(entry, context);\n    });\n};\nconst de_SessionCredentials = (output, context) => {\n    const contents = {};\n    if (output[_AKI] != null) {\n        contents[_AKI] = __expectString(output[_AKI]);\n    }\n    if (output[_SAK] != null) {\n        contents[_SAK] = __expectString(output[_SAK]);\n    }\n    if (output[_ST] != null) {\n        contents[_ST] = __expectString(output[_ST]);\n    }\n    if (output[_Exp] != null) {\n        contents[_Exp] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_Exp]));\n    }\n    return contents;\n};\nconst de_SimplePrefix = (output, context) => {\n    const contents = {};\n    return contents;\n};\nconst de_SourceSelectionCriteria = (output, context) => {\n    const contents = {};\n    if (output[_SKEO] != null) {\n        contents[_SKEO] = de_SseKmsEncryptedObjects(output[_SKEO], context);\n    }\n    if (output[_RM] != null) {\n        contents[_RM] = de_ReplicaModifications(output[_RM], context);\n    }\n    return contents;\n};\nconst de_SSEKMS = (output, context) => {\n    const contents = {};\n    if (output[_KI] != null) {\n        contents[_KI] = __expectString(output[_KI]);\n    }\n    return contents;\n};\nconst de_SseKmsEncryptedObjects = (output, context) => {\n    const contents = {};\n    if (output[_S] != null) {\n        contents[_S] = __expectString(output[_S]);\n    }\n    return contents;\n};\nconst de_SSES3 = (output, context) => {\n    const contents = {};\n    return contents;\n};\nconst de_Stats = (output, context) => {\n    const contents = {};\n    if (output[_BS] != null) {\n        contents[_BS] = __strictParseLong(output[_BS]);\n    }\n    if (output[_BP] != null) {\n        contents[_BP] = __strictParseLong(output[_BP]);\n    }\n    if (output[_BRy] != null) {\n        contents[_BRy] = __strictParseLong(output[_BRy]);\n    }\n    return contents;\n};\nconst de_StorageClassAnalysis = (output, context) => {\n    const contents = {};\n    if (output[_DE] != null) {\n        contents[_DE] = de_StorageClassAnalysisDataExport(output[_DE], context);\n    }\n    return contents;\n};\nconst de_StorageClassAnalysisDataExport = (output, context) => {\n    const contents = {};\n    if (output[_OSV] != null) {\n        contents[_OSV] = __expectString(output[_OSV]);\n    }\n    if (output[_Des] != null) {\n        contents[_Des] = de_AnalyticsExportDestination(output[_Des], context);\n    }\n    return contents;\n};\nconst de_Tag = (output, context) => {\n    const contents = {};\n    if (output[_K] != null) {\n        contents[_K] = __expectString(output[_K]);\n    }\n    if (output[_Va] != null) {\n        contents[_Va] = __expectString(output[_Va]);\n    }\n    return contents;\n};\nconst de_TagSet = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_Tag(entry, context);\n    });\n};\nconst de_TargetGrant = (output, context) => {\n    const contents = {};\n    if (output[_Gra] != null) {\n        contents[_Gra] = de_Grantee(output[_Gra], context);\n    }\n    if (output[_Pe] != null) {\n        contents[_Pe] = __expectString(output[_Pe]);\n    }\n    return contents;\n};\nconst de_TargetGrants = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_TargetGrant(entry, context);\n    });\n};\nconst de_TargetObjectKeyFormat = (output, context) => {\n    const contents = {};\n    if (output[_SPi] != null) {\n        contents[_SPi] = de_SimplePrefix(output[_SPi], context);\n    }\n    if (output[_PP] != null) {\n        contents[_PP] = de_PartitionedPrefix(output[_PP], context);\n    }\n    return contents;\n};\nconst de_Tiering = (output, context) => {\n    const contents = {};\n    if (output[_Da] != null) {\n        contents[_Da] = __strictParseInt32(output[_Da]);\n    }\n    if (output[_AT] != null) {\n        contents[_AT] = __expectString(output[_AT]);\n    }\n    return contents;\n};\nconst de_TieringList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_Tiering(entry, context);\n    });\n};\nconst de_TopicConfiguration = (output, context) => {\n    const contents = {};\n    if (output[_I] != null) {\n        contents[_I] = __expectString(output[_I]);\n    }\n    if (output[_Top] != null) {\n        contents[_TA] = __expectString(output[_Top]);\n    }\n    if (output.Event === \"\") {\n        contents[_Eve] = [];\n    }\n    else if (output[_Ev] != null) {\n        contents[_Eve] = de_EventList(__getArrayIfSingleItem(output[_Ev]), context);\n    }\n    if (output[_F] != null) {\n        contents[_F] = de_NotificationConfigurationFilter(output[_F], context);\n    }\n    return contents;\n};\nconst de_TopicConfigurationList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_TopicConfiguration(entry, context);\n    });\n};\nconst de_Transition = (output, context) => {\n    const contents = {};\n    if (output[_Dat] != null) {\n        contents[_Dat] = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[_Dat]));\n    }\n    if (output[_Da] != null) {\n        contents[_Da] = __strictParseInt32(output[_Da]);\n    }\n    if (output[_SC] != null) {\n        contents[_SC] = __expectString(output[_SC]);\n    }\n    return contents;\n};\nconst de_TransitionList = (output, context) => {\n    return (output || [])\n        .filter((e) => e != null)\n        .map((entry) => {\n        return de_Transition(entry, context);\n    });\n};\nconst deserializeMetadata = (output) => ({\n    httpStatusCode: output.statusCode,\n    requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n    extendedRequestId: output.headers[\"x-amz-id-2\"],\n    cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst _A = \"And\";\nconst _AAO = \"AnalyticsAndOperator\";\nconst _AC = \"AnalyticsConfiguration\";\nconst _ACL = \"ACL\";\nconst _ACLc = \"AccessControlList\";\nconst _ACLn = \"AnalyticsConfigurationList\";\nconst _ACP = \"AccessControlPolicy\";\nconst _ACT = \"AccessControlTranslation\";\nconst _ACc = \"AccelerateConfiguration\";\nconst _AD = \"AbortDate\";\nconst _AED = \"AnalyticsExportDestination\";\nconst _AF = \"AnalyticsFilter\";\nconst _AH = \"AllowedHeader\";\nconst _AHl = \"AllowedHeaders\";\nconst _AI = \"AnalyticsId\";\nconst _AIMU = \"AbortIncompleteMultipartUpload\";\nconst _AIc = \"AccountId\";\nconst _AKI = \"AccessKeyId\";\nconst _AM = \"AllowedMethod\";\nconst _AMl = \"AllowedMethods\";\nconst _AO = \"AllowedOrigin\";\nconst _AOl = \"AllowedOrigins\";\nconst _APA = \"AccessPointAlias\";\nconst _APAc = \"AccessPointArn\";\nconst _AQRD = \"AllowQuotedRecordDelimiter\";\nconst _AR = \"AcceptRanges\";\nconst _ARI = \"AbortRuleId\";\nconst _AS = \"ArchiveStatus\";\nconst _ASBD = \"AnalyticsS3BucketDestination\";\nconst _ASEFF = \"AnalyticsS3ExportFileFormat\";\nconst _ASSEBD = \"ApplyServerSideEncryptionByDefault\";\nconst _AT = \"AccessTier\";\nconst _Ac = \"Account\";\nconst _B = \"Bucket\";\nconst _BAI = \"BucketAccountId\";\nconst _BAS = \"BucketAccelerateStatus\";\nconst _BGR = \"BypassGovernanceRetention\";\nconst _BI = \"BucketInfo\";\nconst _BKE = \"BucketKeyEnabled\";\nconst _BLC = \"BucketLifecycleConfiguration\";\nconst _BLCu = \"BucketLocationConstraint\";\nconst _BLN = \"BucketLocationName\";\nconst _BLP = \"BucketLogsPermission\";\nconst _BLS = \"BucketLoggingStatus\";\nconst _BLT = \"BucketLocationType\";\nconst _BN = \"BucketName\";\nconst _BP = \"BytesProcessed\";\nconst _BPA = \"BlockPublicAcls\";\nconst _BPP = \"BlockPublicPolicy\";\nconst _BR = \"BucketRegion\";\nconst _BRy = \"BytesReturned\";\nconst _BS = \"BytesScanned\";\nconst _BT = \"BucketType\";\nconst _BVS = \"BucketVersioningStatus\";\nconst _Bu = \"Buckets\";\nconst _C = \"Credentials\";\nconst _CA = \"ChecksumAlgorithm\";\nconst _CACL = \"CannedACL\";\nconst _CBC = \"CreateBucketConfiguration\";\nconst _CC = \"CacheControl\";\nconst _CCRC = \"ChecksumCRC32\";\nconst _CCRCC = \"ChecksumCRC32C\";\nconst _CCRCNVME = \"ChecksumCRC64NVME\";\nconst _CD = \"ContentDisposition\";\nconst _CDr = \"CreationDate\";\nconst _CE = \"ContentEncoding\";\nconst _CF = \"CloudFunction\";\nconst _CFC = \"CloudFunctionConfiguration\";\nconst _CL = \"ContentLanguage\";\nconst _CLo = \"ContentLength\";\nconst _CM = \"ChecksumMode\";\nconst _CMD = \"ContentMD5\";\nconst _CMU = \"CompletedMultipartUpload\";\nconst _CORSC = \"CORSConfiguration\";\nconst _CORSR = \"CORSRule\";\nconst _CORSRu = \"CORSRules\";\nconst _CP = \"CommonPrefixes\";\nconst _CPo = \"CompletedPart\";\nconst _CR = \"ContentRange\";\nconst _CRSBA = \"ConfirmRemoveSelfBucketAccess\";\nconst _CS = \"CopySource\";\nconst _CSHA = \"ChecksumSHA1\";\nconst _CSHAh = \"ChecksumSHA256\";\nconst _CSIM = \"CopySourceIfMatch\";\nconst _CSIMS = \"CopySourceIfModifiedSince\";\nconst _CSINM = \"CopySourceIfNoneMatch\";\nconst _CSIUS = \"CopySourceIfUnmodifiedSince\";\nconst _CSR = \"CopySourceRange\";\nconst _CSSSECA = \"CopySourceSSECustomerAlgorithm\";\nconst _CSSSECK = \"CopySourceSSECustomerKey\";\nconst _CSSSECKMD = \"CopySourceSSECustomerKeyMD5\";\nconst _CSV = \"CSV\";\nconst _CSVI = \"CopySourceVersionId\";\nconst _CSVIn = \"CSVInput\";\nconst _CSVO = \"CSVOutput\";\nconst _CT = \"ChecksumType\";\nconst _CTo = \"ContentType\";\nconst _CTom = \"CompressionType\";\nconst _CTon = \"ContinuationToken\";\nconst _Ch = \"Checksum\";\nconst _Co = \"Contents\";\nconst _Cod = \"Code\";\nconst _Com = \"Comments\";\nconst _Con = \"Condition\";\nconst _D = \"Delimiter\";\nconst _DAI = \"DaysAfterInitiation\";\nconst _DE = \"DataExport\";\nconst _DM = \"DeleteMarker\";\nconst _DMR = \"DeleteMarkerReplication\";\nconst _DMRS = \"DeleteMarkerReplicationStatus\";\nconst _DMVI = \"DeleteMarkerVersionId\";\nconst _DMe = \"DeleteMarkers\";\nconst _DN = \"DisplayName\";\nconst _DR = \"DataRedundancy\";\nconst _DRe = \"DefaultRetention\";\nconst _Da = \"Days\";\nconst _Dat = \"Date\";\nconst _De = \"Deleted\";\nconst _Del = \"Delete\";\nconst _Des = \"Destination\";\nconst _Desc = \"Description\";\nconst _E = \"Expires\";\nconst _EA = \"EmailAddress\";\nconst _EBC = \"EventBridgeConfiguration\";\nconst _EBO = \"ExpectedBucketOwner\";\nconst _EC = \"ErrorCode\";\nconst _ECn = \"EncryptionConfiguration\";\nconst _ED = \"ErrorDocument\";\nconst _EH = \"ExposeHeaders\";\nconst _EHx = \"ExposeHeader\";\nconst _EM = \"ErrorMessage\";\nconst _EODM = \"ExpiredObjectDeleteMarker\";\nconst _EOR = \"ExistingObjectReplication\";\nconst _EORS = \"ExistingObjectReplicationStatus\";\nconst _ERP = \"EnableRequestProgress\";\nconst _ES = \"ExpiresString\";\nconst _ESBO = \"ExpectedSourceBucketOwner\";\nconst _ESx = \"ExpirationStatus\";\nconst _ET = \"EncodingType\";\nconst _ETa = \"ETag\";\nconst _ETn = \"EncryptionType\";\nconst _ETv = \"EventThreshold\";\nconst _ETx = \"ExpressionType\";\nconst _En = \"Encryption\";\nconst _Ena = \"Enabled\";\nconst _End = \"End\";\nconst _Er = \"Error\";\nconst _Err = \"Errors\";\nconst _Ev = \"Event\";\nconst _Eve = \"Events\";\nconst _Ex = \"Expression\";\nconst _Exp = \"Expiration\";\nconst _F = \"Filter\";\nconst _FD = \"FieldDelimiter\";\nconst _FHI = \"FileHeaderInfo\";\nconst _FO = \"FetchOwner\";\nconst _FR = \"FilterRule\";\nconst _FRN = \"FilterRuleName\";\nconst _FRV = \"FilterRuleValue\";\nconst _FRi = \"FilterRules\";\nconst _Fi = \"Field\";\nconst _Fo = \"Format\";\nconst _Fr = \"Frequency\";\nconst _G = \"Grant\";\nconst _GFC = \"GrantFullControl\";\nconst _GJP = \"GlacierJobParameters\";\nconst _GR = \"GrantRead\";\nconst _GRACP = \"GrantReadACP\";\nconst _GW = \"GrantWrite\";\nconst _GWACP = \"GrantWriteACP\";\nconst _Gr = \"Grants\";\nconst _Gra = \"Grantee\";\nconst _HECRE = \"HttpErrorCodeReturnedEquals\";\nconst _HN = \"HostName\";\nconst _HRC = \"HttpRedirectCode\";\nconst _I = \"Id\";\nconst _IC = \"InventoryConfiguration\";\nconst _ICL = \"InventoryConfigurationList\";\nconst _ID = \"IndexDocument\";\nconst _ID_ = \"ID\";\nconst _IDn = \"InventoryDestination\";\nconst _IE = \"IsEnabled\";\nconst _IEn = \"InventoryEncryption\";\nconst _IF = \"InventoryFilter\";\nconst _IFn = \"InventoryFormat\";\nconst _IFnv = \"InventoryFrequency\";\nconst _II = \"InventoryId\";\nconst _IIOV = \"InventoryIncludedObjectVersions\";\nconst _IL = \"IsLatest\";\nconst _IM = \"IfMatch\";\nconst _IMIT = \"IfMatchInitiatedTime\";\nconst _IMLMT = \"IfMatchLastModifiedTime\";\nconst _IMS = \"IfMatchSize\";\nconst _IMSf = \"IfModifiedSince\";\nconst _INM = \"IfNoneMatch\";\nconst _IOF = \"InventoryOptionalField\";\nconst _IOV = \"IncludedObjectVersions\";\nconst _IP = \"IsPublic\";\nconst _IPA = \"IgnorePublicAcls\";\nconst _IRIP = \"IsRestoreInProgress\";\nconst _IS = \"InputSerialization\";\nconst _ISBD = \"InventoryS3BucketDestination\";\nconst _ISn = \"InventorySchedule\";\nconst _IT = \"IsTruncated\";\nconst _ITAO = \"IntelligentTieringAndOperator\";\nconst _ITAT = \"IntelligentTieringAccessTier\";\nconst _ITC = \"IntelligentTieringConfiguration\";\nconst _ITCL = \"IntelligentTieringConfigurationList\";\nconst _ITD = \"IntelligentTieringDays\";\nconst _ITF = \"IntelligentTieringFilter\";\nconst _ITI = \"IntelligentTieringId\";\nconst _ITS = \"IntelligentTieringStatus\";\nconst _IUS = \"IfUnmodifiedSince\";\nconst _In = \"Initiator\";\nconst _Ini = \"Initiated\";\nconst _JSON = \"JSON\";\nconst _JSONI = \"JSONInput\";\nconst _JSONO = \"JSONOutput\";\nconst _JSONT = \"JSONType\";\nconst _K = \"Key\";\nconst _KC = \"KeyCount\";\nconst _KI = \"KeyId\";\nconst _KM = \"KeyMarker\";\nconst _KMSC = \"KMSContext\";\nconst _KMSKI = \"KMSKeyId\";\nconst _KMSMKID = \"KMSMasterKeyID\";\nconst _KPE = \"KeyPrefixEquals\";\nconst _L = \"Location\";\nconst _LC = \"LocationConstraint\";\nconst _LE = \"LoggingEnabled\";\nconst _LEi = \"LifecycleExpiration\";\nconst _LFA = \"LambdaFunctionArn\";\nconst _LFC = \"LambdaFunctionConfigurations\";\nconst _LFCa = \"LambdaFunctionConfiguration\";\nconst _LI = \"LocationInfo\";\nconst _LM = \"LastModified\";\nconst _LMT = \"LastModifiedTime\";\nconst _LNAS = \"LocationNameAsString\";\nconst _LP = \"LocationPrefix\";\nconst _LR = \"LifecycleRule\";\nconst _LRAO = \"LifecycleRuleAndOperator\";\nconst _LRF = \"LifecycleRuleFilter\";\nconst _LT = \"LocationType\";\nconst _M = \"Marker\";\nconst _MAO = \"MetricsAndOperator\";\nconst _MAS = \"MaxAgeSeconds\";\nconst _MB = \"MaxBuckets\";\nconst _MC = \"MetricsConfiguration\";\nconst _MCL = \"MetricsConfigurationList\";\nconst _MD = \"MetadataDirective\";\nconst _MDB = \"MaxDirectoryBuckets\";\nconst _MDf = \"MfaDelete\";\nconst _ME = \"MetadataEntry\";\nconst _MF = \"MetricsFilter\";\nconst _MFA = \"MFA\";\nconst _MFAD = \"MFADelete\";\nconst _MI = \"MetricsId\";\nconst _MK = \"MaxKeys\";\nconst _MKe = \"MetadataKey\";\nconst _MM = \"MissingMeta\";\nconst _MOS = \"MpuObjectSize\";\nconst _MP = \"MaxParts\";\nconst _MS = \"MetricsStatus\";\nconst _MTC = \"MetadataTableConfiguration\";\nconst _MTCR = \"MetadataTableConfigurationResult\";\nconst _MU = \"MaxUploads\";\nconst _MV = \"MetadataValue\";\nconst _Me = \"Metrics\";\nconst _Mes = \"Message\";\nconst _Mi = \"Minutes\";\nconst _Mo = \"Mode\";\nconst _N = \"Name\";\nconst _NC = \"NotificationConfiguration\";\nconst _NCF = \"NotificationConfigurationFilter\";\nconst _NCT = \"NextContinuationToken\";\nconst _ND = \"NoncurrentDays\";\nconst _NI = \"NotificationId\";\nconst _NKM = \"NextKeyMarker\";\nconst _NM = \"NextMarker\";\nconst _NNV = \"NewerNoncurrentVersions\";\nconst _NPNM = \"NextPartNumberMarker\";\nconst _NUIM = \"NextUploadIdMarker\";\nconst _NVE = \"NoncurrentVersionExpiration\";\nconst _NVIM = \"NextVersionIdMarker\";\nconst _NVT = \"NoncurrentVersionTransitions\";\nconst _NVTo = \"NoncurrentVersionTransition\";\nconst _O = \"Owner\";\nconst _OA = \"ObjectAttributes\";\nconst _OC = \"OwnershipControls\";\nconst _OCACL = \"ObjectCannedACL\";\nconst _OCR = \"OwnershipControlsRule\";\nconst _OF = \"OptionalFields\";\nconst _OI = \"ObjectIdentifier\";\nconst _OK = \"ObjectKey\";\nconst _OL = \"OutputLocation\";\nconst _OLC = \"ObjectLockConfiguration\";\nconst _OLE = \"ObjectLockEnabled\";\nconst _OLEFB = \"ObjectLockEnabledForBucket\";\nconst _OLLH = \"ObjectLockLegalHold\";\nconst _OLLHS = \"ObjectLockLegalHoldStatus\";\nconst _OLM = \"ObjectLockMode\";\nconst _OLR = \"ObjectLockRetention\";\nconst _OLRM = \"ObjectLockRetentionMode\";\nconst _OLRUD = \"ObjectLockRetainUntilDate\";\nconst _OLRb = \"ObjectLockRule\";\nconst _OO = \"ObjectOwnership\";\nconst _OOA = \"OptionalObjectAttributes\";\nconst _OOw = \"OwnerOverride\";\nconst _OP = \"ObjectParts\";\nconst _OS = \"OutputSerialization\";\nconst _OSGT = \"ObjectSizeGreaterThan\";\nconst _OSGTB = \"ObjectSizeGreaterThanBytes\";\nconst _OSLT = \"ObjectSizeLessThan\";\nconst _OSLTB = \"ObjectSizeLessThanBytes\";\nconst _OSV = \"OutputSchemaVersion\";\nconst _OSb = \"ObjectSize\";\nconst _OVI = \"ObjectVersionId\";\nconst _Ob = \"Objects\";\nconst _P = \"Prefix\";\nconst _PABC = \"PublicAccessBlockConfiguration\";\nconst _PC = \"PartsCount\";\nconst _PDS = \"PartitionDateSource\";\nconst _PI = \"ParquetInput\";\nconst _PN = \"PartNumber\";\nconst _PNM = \"PartNumberMarker\";\nconst _PP = \"PartitionedPrefix\";\nconst _Pa = \"Payer\";\nconst _Par = \"Part\";\nconst _Parq = \"Parquet\";\nconst _Part = \"Parts\";\nconst _Pe = \"Permission\";\nconst _Pr = \"Protocol\";\nconst _Pri = \"Priority\";\nconst _Q = \"Quiet\";\nconst _QA = \"QueueArn\";\nconst _QC = \"QueueConfiguration\";\nconst _QCu = \"QueueConfigurations\";\nconst _QCuo = \"QuoteCharacter\";\nconst _QEC = \"QuoteEscapeCharacter\";\nconst _QF = \"QuoteFields\";\nconst _Qu = \"Queue\";\nconst _R = \"Range\";\nconst _RART = \"RedirectAllRequestsTo\";\nconst _RC = \"RequestCharged\";\nconst _RCC = \"ResponseCacheControl\";\nconst _RCD = \"ResponseContentDisposition\";\nconst _RCE = \"ResponseContentEncoding\";\nconst _RCL = \"ResponseContentLanguage\";\nconst _RCT = \"ResponseContentType\";\nconst _RCe = \"ReplicationConfiguration\";\nconst _RD = \"RecordDelimiter\";\nconst _RE = \"ResponseExpires\";\nconst _RED = \"RestoreExpiryDate\";\nconst _RKKID = \"ReplicaKmsKeyID\";\nconst _RKPW = \"ReplaceKeyPrefixWith\";\nconst _RKW = \"ReplaceKeyWith\";\nconst _RM = \"ReplicaModifications\";\nconst _RMS = \"ReplicaModificationsStatus\";\nconst _ROP = \"RestoreOutputPath\";\nconst _RP = \"RequestPayer\";\nconst _RPB = \"RestrictPublicBuckets\";\nconst _RPC = \"RequestPaymentConfiguration\";\nconst _RPe = \"RequestProgress\";\nconst _RR = \"RequestRoute\";\nconst _RRAO = \"ReplicationRuleAndOperator\";\nconst _RRF = \"ReplicationRuleFilter\";\nconst _RRS = \"ReplicationRuleStatus\";\nconst _RRT = \"RestoreRequestType\";\nconst _RRe = \"ReplicationRule\";\nconst _RRes = \"RestoreRequest\";\nconst _RRo = \"RoutingRules\";\nconst _RRou = \"RoutingRule\";\nconst _RS = \"ReplicationStatus\";\nconst _RSe = \"RestoreStatus\";\nconst _RT = \"RequestToken\";\nconst _RTS = \"ReplicationTimeStatus\";\nconst _RTV = \"ReplicationTimeValue\";\nconst _RTe = \"ReplicationTime\";\nconst _RUD = \"RetainUntilDate\";\nconst _Re = \"Restore\";\nconst _Red = \"Redirect\";\nconst _Ro = \"Role\";\nconst _Ru = \"Rule\";\nconst _Rul = \"Rules\";\nconst _S = \"Status\";\nconst _SA = \"StartAfter\";\nconst _SAK = \"SecretAccessKey\";\nconst _SBD = \"S3BucketDestination\";\nconst _SC = \"StorageClass\";\nconst _SCA = \"StorageClassAnalysis\";\nconst _SCADE = \"StorageClassAnalysisDataExport\";\nconst _SCASV = \"StorageClassAnalysisSchemaVersion\";\nconst _SCt = \"StatusCode\";\nconst _SDV = \"SkipDestinationValidation\";\nconst _SK = \"SSE-KMS\";\nconst _SKEO = \"SseKmsEncryptedObjects\";\nconst _SKEOS = \"SseKmsEncryptedObjectsStatus\";\nconst _SKF = \"S3KeyFilter\";\nconst _SKe = \"S3Key\";\nconst _SL = \"S3Location\";\nconst _SM = \"SessionMode\";\nconst _SOCR = \"SelectObjectContentRequest\";\nconst _SP = \"SelectParameters\";\nconst _SPi = \"SimplePrefix\";\nconst _SR = \"ScanRange\";\nconst _SS = \"SSE-S3\";\nconst _SSC = \"SourceSelectionCriteria\";\nconst _SSE = \"ServerSideEncryption\";\nconst _SSEA = \"SSEAlgorithm\";\nconst _SSEBD = \"ServerSideEncryptionByDefault\";\nconst _SSEC = \"ServerSideEncryptionConfiguration\";\nconst _SSECA = \"SSECustomerAlgorithm\";\nconst _SSECK = \"SSECustomerKey\";\nconst _SSECKMD = \"SSECustomerKeyMD5\";\nconst _SSEKMS = \"SSEKMS\";\nconst _SSEKMSEC = \"SSEKMSEncryptionContext\";\nconst _SSEKMSKI = \"SSEKMSKeyId\";\nconst _SSER = \"ServerSideEncryptionRule\";\nconst _SSES = \"SSES3\";\nconst _ST = \"SessionToken\";\nconst _STBA = \"S3TablesBucketArn\";\nconst _STD = \"S3TablesDestination\";\nconst _STDR = \"S3TablesDestinationResult\";\nconst _STN = \"S3TablesName\";\nconst _S_ = \"S3\";\nconst _Sc = \"Schedule\";\nconst _Se = \"Setting\";\nconst _Si = \"Size\";\nconst _St = \"Start\";\nconst _Su = \"Suffix\";\nconst _T = \"Tagging\";\nconst _TA = \"TopicArn\";\nconst _TAa = \"TableArn\";\nconst _TB = \"TargetBucket\";\nconst _TBA = \"TableBucketArn\";\nconst _TC = \"TagCount\";\nconst _TCo = \"TopicConfiguration\";\nconst _TCop = \"TopicConfigurations\";\nconst _TD = \"TaggingDirective\";\nconst _TDMOS = \"TransitionDefaultMinimumObjectSize\";\nconst _TG = \"TargetGrants\";\nconst _TGa = \"TargetGrant\";\nconst _TN = \"TableName\";\nconst _TNa = \"TableNamespace\";\nconst _TOKF = \"TargetObjectKeyFormat\";\nconst _TP = \"TargetPrefix\";\nconst _TPC = \"TotalPartsCount\";\nconst _TS = \"TagSet\";\nconst _TSC = \"TransitionStorageClass\";\nconst _Ta = \"Tag\";\nconst _Tag = \"Tags\";\nconst _Ti = \"Tier\";\nconst _Tie = \"Tierings\";\nconst _Tier = \"Tiering\";\nconst _Tim = \"Time\";\nconst _To = \"Token\";\nconst _Top = \"Topic\";\nconst _Tr = \"Transitions\";\nconst _Tra = \"Transition\";\nconst _Ty = \"Type\";\nconst _U = \"Upload\";\nconst _UI = \"UploadId\";\nconst _UIM = \"UploadIdMarker\";\nconst _UM = \"UserMetadata\";\nconst _URI = \"URI\";\nconst _Up = \"Uploads\";\nconst _V = \"Version\";\nconst _VC = \"VersionCount\";\nconst _VCe = \"VersioningConfiguration\";\nconst _VI = \"VersionId\";\nconst _VIM = \"VersionIdMarker\";\nconst _Va = \"Value\";\nconst _Ve = \"Versions\";\nconst _WC = \"WebsiteConfiguration\";\nconst _WOB = \"WriteOffsetBytes\";\nconst _WRL = \"WebsiteRedirectLocation\";\nconst _Y = \"Years\";\nconst _a = \"analytics\";\nconst _ac = \"accelerate\";\nconst _acl = \"acl\";\nconst _ar = \"accept-ranges\";\nconst _at = \"attributes\";\nconst _br = \"bucket-region\";\nconst _c = \"cors\";\nconst _cc = \"cache-control\";\nconst _cd = \"content-disposition\";\nconst _ce = \"content-encoding\";\nconst _cl = \"content-language\";\nconst _cl_ = \"content-length\";\nconst _cm = \"content-md5\";\nconst _cr = \"content-range\";\nconst _ct = \"content-type\";\nconst _ct_ = \"continuation-token\";\nconst _d = \"delete\";\nconst _de = \"delimiter\";\nconst _e = \"expires\";\nconst _en = \"encryption\";\nconst _et = \"encoding-type\";\nconst _eta = \"etag\";\nconst _ex = \"expiresstring\";\nconst _fo = \"fetch-owner\";\nconst _i = \"id\";\nconst _im = \"if-match\";\nconst _ims = \"if-modified-since\";\nconst _in = \"inventory\";\nconst _inm = \"if-none-match\";\nconst _it = \"intelligent-tiering\";\nconst _ius = \"if-unmodified-since\";\nconst _km = \"key-marker\";\nconst _l = \"lifecycle\";\nconst _lh = \"legal-hold\";\nconst _lm = \"last-modified\";\nconst _lo = \"location\";\nconst _log = \"logging\";\nconst _lt = \"list-type\";\nconst _m = \"metrics\";\nconst _mT = \"metadataTable\";\nconst _ma = \"marker\";\nconst _mb = \"max-buckets\";\nconst _mdb = \"max-directory-buckets\";\nconst _me = \"member\";\nconst _mk = \"max-keys\";\nconst _mp = \"max-parts\";\nconst _mu = \"max-uploads\";\nconst _n = \"notification\";\nconst _oC = \"ownershipControls\";\nconst _ol = \"object-lock\";\nconst _p = \"policy\";\nconst _pAB = \"publicAccessBlock\";\nconst _pN = \"partNumber\";\nconst _pS = \"policyStatus\";\nconst _pnm = \"part-number-marker\";\nconst _pr = \"prefix\";\nconst _r = \"replication\";\nconst _rP = \"requestPayment\";\nconst _ra = \"range\";\nconst _rcc = \"response-cache-control\";\nconst _rcd = \"response-content-disposition\";\nconst _rce = \"response-content-encoding\";\nconst _rcl = \"response-content-language\";\nconst _rct = \"response-content-type\";\nconst _re = \"response-expires\";\nconst _res = \"restore\";\nconst _ret = \"retention\";\nconst _s = \"session\";\nconst _sa = \"start-after\";\nconst _se = \"select\";\nconst _st = \"select-type\";\nconst _t = \"tagging\";\nconst _to = \"torrent\";\nconst _u = \"uploads\";\nconst _uI = \"uploadId\";\nconst _uim = \"upload-id-marker\";\nconst _v = \"versioning\";\nconst _vI = \"versionId\";\nconst _ve = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';\nconst _ver = \"versions\";\nconst _vim = \"version-id-marker\";\nconst _w = \"website\";\nconst _x = \"xsi:type\";\nconst _xaa = \"x-amz-acl\";\nconst _xaad = \"x-amz-abort-date\";\nconst _xaapa = \"x-amz-access-point-alias\";\nconst _xaari = \"x-amz-abort-rule-id\";\nconst _xaas = \"x-amz-archive-status\";\nconst _xabgr = \"x-amz-bypass-governance-retention\";\nconst _xabln = \"x-amz-bucket-location-name\";\nconst _xablt = \"x-amz-bucket-location-type\";\nconst _xabole = \"x-amz-bucket-object-lock-enabled\";\nconst _xabolt = \"x-amz-bucket-object-lock-token\";\nconst _xabr = \"x-amz-bucket-region\";\nconst _xaca = \"x-amz-checksum-algorithm\";\nconst _xacc = \"x-amz-checksum-crc32\";\nconst _xacc_ = \"x-amz-checksum-crc32c\";\nconst _xacc__ = \"x-amz-checksum-crc64nvme\";\nconst _xacm = \"x-amz-checksum-mode\";\nconst _xacrsba = \"x-amz-confirm-remove-self-bucket-access\";\nconst _xacs = \"x-amz-checksum-sha1\";\nconst _xacs_ = \"x-amz-checksum-sha256\";\nconst _xacs__ = \"x-amz-copy-source\";\nconst _xacsim = \"x-amz-copy-source-if-match\";\nconst _xacsims = \"x-amz-copy-source-if-modified-since\";\nconst _xacsinm = \"x-amz-copy-source-if-none-match\";\nconst _xacsius = \"x-amz-copy-source-if-unmodified-since\";\nconst _xacsm = \"x-amz-create-session-mode\";\nconst _xacsr = \"x-amz-copy-source-range\";\nconst _xacssseca = \"x-amz-copy-source-server-side-encryption-customer-algorithm\";\nconst _xacssseck = \"x-amz-copy-source-server-side-encryption-customer-key\";\nconst _xacssseckm = \"x-amz-copy-source-server-side-encryption-customer-key-md5\";\nconst _xacsvi = \"x-amz-copy-source-version-id\";\nconst _xact = \"x-amz-checksum-type\";\nconst _xadm = \"x-amz-delete-marker\";\nconst _xae = \"x-amz-expiration\";\nconst _xaebo = \"x-amz-expected-bucket-owner\";\nconst _xafec = \"x-amz-fwd-error-code\";\nconst _xafem = \"x-amz-fwd-error-message\";\nconst _xafhar = \"x-amz-fwd-header-accept-ranges\";\nconst _xafhcc = \"x-amz-fwd-header-cache-control\";\nconst _xafhcd = \"x-amz-fwd-header-content-disposition\";\nconst _xafhce = \"x-amz-fwd-header-content-encoding\";\nconst _xafhcl = \"x-amz-fwd-header-content-language\";\nconst _xafhcr = \"x-amz-fwd-header-content-range\";\nconst _xafhct = \"x-amz-fwd-header-content-type\";\nconst _xafhe = \"x-amz-fwd-header-etag\";\nconst _xafhe_ = \"x-amz-fwd-header-expires\";\nconst _xafhlm = \"x-amz-fwd-header-last-modified\";\nconst _xafhxacc = \"x-amz-fwd-header-x-amz-checksum-crc32\";\nconst _xafhxacc_ = \"x-amz-fwd-header-x-amz-checksum-crc32c\";\nconst _xafhxacc__ = \"x-amz-fwd-header-x-amz-checksum-crc64nvme\";\nconst _xafhxacs = \"x-amz-fwd-header-x-amz-checksum-sha1\";\nconst _xafhxacs_ = \"x-amz-fwd-header-x-amz-checksum-sha256\";\nconst _xafhxadm = \"x-amz-fwd-header-x-amz-delete-marker\";\nconst _xafhxae = \"x-amz-fwd-header-x-amz-expiration\";\nconst _xafhxamm = \"x-amz-fwd-header-x-amz-missing-meta\";\nconst _xafhxampc = \"x-amz-fwd-header-x-amz-mp-parts-count\";\nconst _xafhxaollh = \"x-amz-fwd-header-x-amz-object-lock-legal-hold\";\nconst _xafhxaolm = \"x-amz-fwd-header-x-amz-object-lock-mode\";\nconst _xafhxaolrud = \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\";\nconst _xafhxar = \"x-amz-fwd-header-x-amz-restore\";\nconst _xafhxarc = \"x-amz-fwd-header-x-amz-request-charged\";\nconst _xafhxars = \"x-amz-fwd-header-x-amz-replication-status\";\nconst _xafhxasc = \"x-amz-fwd-header-x-amz-storage-class\";\nconst _xafhxasse = \"x-amz-fwd-header-x-amz-server-side-encryption\";\nconst _xafhxasseakki = \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\";\nconst _xafhxassebke = \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\";\nconst _xafhxasseca = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\";\nconst _xafhxasseckm = \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\";\nconst _xafhxatc = \"x-amz-fwd-header-x-amz-tagging-count\";\nconst _xafhxavi = \"x-amz-fwd-header-x-amz-version-id\";\nconst _xafs = \"x-amz-fwd-status\";\nconst _xagfc = \"x-amz-grant-full-control\";\nconst _xagr = \"x-amz-grant-read\";\nconst _xagra = \"x-amz-grant-read-acp\";\nconst _xagw = \"x-amz-grant-write\";\nconst _xagwa = \"x-amz-grant-write-acp\";\nconst _xaimit = \"x-amz-if-match-initiated-time\";\nconst _xaimlmt = \"x-amz-if-match-last-modified-time\";\nconst _xaims = \"x-amz-if-match-size\";\nconst _xam = \"x-amz-mfa\";\nconst _xamd = \"x-amz-metadata-directive\";\nconst _xamm = \"x-amz-missing-meta\";\nconst _xamos = \"x-amz-mp-object-size\";\nconst _xamp = \"x-amz-max-parts\";\nconst _xampc = \"x-amz-mp-parts-count\";\nconst _xaoa = \"x-amz-object-attributes\";\nconst _xaollh = \"x-amz-object-lock-legal-hold\";\nconst _xaolm = \"x-amz-object-lock-mode\";\nconst _xaolrud = \"x-amz-object-lock-retain-until-date\";\nconst _xaoo = \"x-amz-object-ownership\";\nconst _xaooa = \"x-amz-optional-object-attributes\";\nconst _xaos = \"x-amz-object-size\";\nconst _xapnm = \"x-amz-part-number-marker\";\nconst _xar = \"x-amz-restore\";\nconst _xarc = \"x-amz-request-charged\";\nconst _xarop = \"x-amz-restore-output-path\";\nconst _xarp = \"x-amz-request-payer\";\nconst _xarr = \"x-amz-request-route\";\nconst _xars = \"x-amz-replication-status\";\nconst _xart = \"x-amz-request-token\";\nconst _xasc = \"x-amz-storage-class\";\nconst _xasca = \"x-amz-sdk-checksum-algorithm\";\nconst _xasdv = \"x-amz-skip-destination-validation\";\nconst _xasebo = \"x-amz-source-expected-bucket-owner\";\nconst _xasse = \"x-amz-server-side-encryption\";\nconst _xasseakki = \"x-amz-server-side-encryption-aws-kms-key-id\";\nconst _xassebke = \"x-amz-server-side-encryption-bucket-key-enabled\";\nconst _xassec = \"x-amz-server-side-encryption-context\";\nconst _xasseca = \"x-amz-server-side-encryption-customer-algorithm\";\nconst _xasseck = \"x-amz-server-side-encryption-customer-key\";\nconst _xasseckm = \"x-amz-server-side-encryption-customer-key-md5\";\nconst _xat = \"x-amz-tagging\";\nconst _xatc = \"x-amz-tagging-count\";\nconst _xatd = \"x-amz-tagging-directive\";\nconst _xatdmos = \"x-amz-transition-default-minimum-object-size\";\nconst _xavi = \"x-amz-version-id\";\nconst _xawob = \"x-amz-write-offset-bytes\";\nconst _xawrl = \"x-amz-website-redirect-location\";\nconst _xi = \"x-id\";\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CreateSessionOutputFilterSensitiveLog, CreateSessionRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CreateSessionCommand, se_CreateSessionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CreateSessionCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    DisableS3ExpressSessionAuth: { type: \"staticContextParams\", value: true },\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CreateSession\", {})\n    .n(\"S3Client\", \"CreateSessionCommand\")\n    .f(CreateSessionRequestFilterSensitiveLog, CreateSessionOutputFilterSensitiveLog)\n    .ser(se_CreateSessionCommand)\n    .de(de_CreateSessionCommand)\n    .build() {\n}\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","export function isEmptyData(data) {\n    if (typeof data === \"string\") {\n        return data.length === 0;\n    }\n    return data.byteLength === 0;\n}\n//# sourceMappingURL=isEmptyData.js.map","export var SHA_1_HASH = { name: \"SHA-1\" };\nexport var SHA_1_HMAC_ALGO = {\n    name: \"HMAC\",\n    hash: SHA_1_HASH,\n};\nexport var EMPTY_DATA_SHA_1 = new Uint8Array([\n    218,\n    57,\n    163,\n    238,\n    94,\n    107,\n    75,\n    13,\n    50,\n    85,\n    191,\n    239,\n    149,\n    96,\n    24,\n    144,\n    175,\n    216,\n    7,\n    9,\n]);\n//# sourceMappingURL=constants.js.map","const fallbackWindow = {};\nexport function locateWindow() {\n    if (typeof window !== \"undefined\") {\n        return window;\n    }\n    else if (typeof self !== \"undefined\") {\n        return self;\n    }\n    return fallbackWindow;\n}\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { isEmptyData } from \"./isEmptyData\";\nimport { EMPTY_DATA_SHA_1, SHA_1_HASH, SHA_1_HMAC_ALGO } from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nvar Sha1 = /** @class */ (function () {\n    function Sha1(secret) {\n        this.toHash = new Uint8Array(0);\n        if (secret !== void 0) {\n            this.key = new Promise(function (resolve, reject) {\n                locateWindow()\n                    .crypto.subtle.importKey(\"raw\", convertToBuffer(secret), SHA_1_HMAC_ALGO, false, [\"sign\"])\n                    .then(resolve, reject);\n            });\n            this.key.catch(function () { });\n        }\n    }\n    Sha1.prototype.update = function (data) {\n        if (isEmptyData(data)) {\n            return;\n        }\n        var update = convertToBuffer(data);\n        var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n        typedArray.set(this.toHash, 0);\n        typedArray.set(update, this.toHash.byteLength);\n        this.toHash = typedArray;\n    };\n    Sha1.prototype.digest = function () {\n        var _this = this;\n        if (this.key) {\n            return this.key.then(function (key) {\n                return locateWindow()\n                    .crypto.subtle.sign(SHA_1_HMAC_ALGO, key, _this.toHash)\n                    .then(function (data) { return new Uint8Array(data); });\n            });\n        }\n        if (isEmptyData(this.toHash)) {\n            return Promise.resolve(EMPTY_DATA_SHA_1);\n        }\n        return Promise.resolve()\n            .then(function () { return locateWindow().crypto.subtle.digest(SHA_1_HASH, _this.toHash); })\n            .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n    };\n    Sha1.prototype.reset = function () {\n        this.toHash = new Uint8Array(0);\n    };\n    return Sha1;\n}());\nexport { Sha1 };\nfunction convertToBuffer(data) {\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n}\n//# sourceMappingURL=webCryptoSha1.js.map","import { __awaiter, __generator } from \"tslib\";\nvar subtleCryptoMethods = [\n    \"decrypt\",\n    \"digest\",\n    \"encrypt\",\n    \"exportKey\",\n    \"generateKey\",\n    \"importKey\",\n    \"sign\",\n    \"verify\"\n];\nexport function supportsWebCrypto(window) {\n    if (supportsSecureRandom(window) &&\n        typeof window.crypto.subtle === \"object\") {\n        var subtle = window.crypto.subtle;\n        return supportsSubtleCrypto(subtle);\n    }\n    return false;\n}\nexport function supportsSecureRandom(window) {\n    if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n        var getRandomValues = window.crypto.getRandomValues;\n        return typeof getRandomValues === \"function\";\n    }\n    return false;\n}\nexport function supportsSubtleCrypto(subtle) {\n    return (subtle &&\n        subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexport function supportsZeroByteGCM(subtle) {\n    return __awaiter(this, void 0, void 0, function () {\n        var key, zeroByteAuthTag, _a;\n        return __generator(this, function (_b) {\n            switch (_b.label) {\n                case 0:\n                    if (!supportsSubtleCrypto(subtle))\n                        return [2 /*return*/, false];\n                    _b.label = 1;\n                case 1:\n                    _b.trys.push([1, 4, , 5]);\n                    return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n                case 2:\n                    key = _b.sent();\n                    return [4 /*yield*/, subtle.encrypt({\n                            name: \"AES-GCM\",\n                            iv: new Uint8Array(Array(12)),\n                            additionalData: new Uint8Array(Array(16)),\n                            tagLength: 128\n                        }, key, new Uint8Array(0))];\n                case 3:\n                    zeroByteAuthTag = _b.sent();\n                    return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n                case 4:\n                    _a = _b.sent();\n                    return [2 /*return*/, false];\n                case 5: return [2 /*return*/];\n            }\n        });\n    });\n}\n//# sourceMappingURL=supportsWebCrypto.js.map","import { Sha1 as WebCryptoSha1 } from \"./webCryptoSha1\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\nvar Sha1 = /** @class */ (function () {\n    function Sha1(secret) {\n        if (supportsWebCrypto(locateWindow())) {\n            this.hash = new WebCryptoSha1(secret);\n        }\n        else {\n            throw new Error(\"SHA1 not supported\");\n        }\n    }\n    Sha1.prototype.update = function (data, encoding) {\n        this.hash.update(convertToBuffer(data));\n    };\n    Sha1.prototype.digest = function () {\n        return this.hash.digest();\n    };\n    Sha1.prototype.reset = function () {\n        this.hash.reset();\n    };\n    return Sha1;\n}());\nexport { Sha1 };\n//# sourceMappingURL=crossPlatformSha1.js.map","export var SHA_256_HASH = { name: \"SHA-256\" };\nexport var SHA_256_HMAC_ALGO = {\n    name: \"HMAC\",\n    hash: SHA_256_HASH\n};\nexport var 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//# sourceMappingURL=constants.js.map","import { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport { EMPTY_DATA_SHA_256, SHA_256_HASH, SHA_256_HMAC_ALGO, } from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nvar Sha256 = /** @class */ (function () {\n    function Sha256(secret) {\n        this.toHash = new Uint8Array(0);\n        this.secret = secret;\n        this.reset();\n    }\n    Sha256.prototype.update = function (data) {\n        if (isEmptyData(data)) {\n            return;\n        }\n        var update = convertToBuffer(data);\n        var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n        typedArray.set(this.toHash, 0);\n        typedArray.set(update, this.toHash.byteLength);\n        this.toHash = typedArray;\n    };\n    Sha256.prototype.digest = function () {\n        var _this = this;\n        if (this.key) {\n            return this.key.then(function (key) {\n                return locateWindow()\n                    .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, _this.toHash)\n                    .then(function (data) { return new Uint8Array(data); });\n            });\n        }\n        if (isEmptyData(this.toHash)) {\n            return Promise.resolve(EMPTY_DATA_SHA_256);\n        }\n        return Promise.resolve()\n            .then(function () {\n            return locateWindow().crypto.subtle.digest(SHA_256_HASH, _this.toHash);\n        })\n            .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n    };\n    Sha256.prototype.reset = function () {\n        var _this = this;\n        this.toHash = new Uint8Array(0);\n        if (this.secret && this.secret !== void 0) {\n            this.key = new Promise(function (resolve, reject) {\n                locateWindow()\n                    .crypto.subtle.importKey(\"raw\", convertToBuffer(_this.secret), SHA_256_HMAC_ALGO, false, [\"sign\"])\n                    .then(resolve, reject);\n            });\n            this.key.catch(function () { });\n        }\n    };\n    return Sha256;\n}());\nexport { Sha256 };\n//# sourceMappingURL=webCryptoSha256.js.map","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexport var DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexport var 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 * @internal\n */\nexport var INIT = [\n    0x6a09e667,\n    0xbb67ae85,\n    0x3c6ef372,\n    0xa54ff53a,\n    0x510e527f,\n    0x9b05688c,\n    0x1f83d9ab,\n    0x5be0cd19\n];\n/**\n * @internal\n */\nexport var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=constants.js.map","import { BLOCK_SIZE, DIGEST_LENGTH, INIT, KEY, MAX_HASHABLE_LENGTH } from \"./constants\";\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n    function RawSha256() {\n        this.state = Int32Array.from(INIT);\n        this.temp = new Int32Array(64);\n        this.buffer = new Uint8Array(64);\n        this.bufferLength = 0;\n        this.bytesHashed = 0;\n        /**\n         * @internal\n         */\n        this.finished = false;\n    }\n    RawSha256.prototype.update = function (data) {\n        if (this.finished) {\n            throw new Error(\"Attempted to update an already finished hash.\");\n        }\n        var position = 0;\n        var byteLength = data.byteLength;\n        this.bytesHashed += byteLength;\n        if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n            throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n        }\n        while (byteLength > 0) {\n            this.buffer[this.bufferLength++] = data[position++];\n            byteLength--;\n            if (this.bufferLength === BLOCK_SIZE) {\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n        }\n    };\n    RawSha256.prototype.digest = function () {\n        if (!this.finished) {\n            var bitsHashed = this.bytesHashed * 8;\n            var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n            var undecoratedLength = this.bufferLength;\n            bufferView.setUint8(this.bufferLength++, 0x80);\n            // Ensure the final block has enough room for the hashed length\n            if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n                for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n                    bufferView.setUint8(i, 0);\n                }\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n            for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n                bufferView.setUint8(i, 0);\n            }\n            bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n            bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n            this.hashBuffer();\n            this.finished = true;\n        }\n        // The value in state is little-endian rather than big-endian, so flip\n        // each word into a new Uint8Array\n        var out = new Uint8Array(DIGEST_LENGTH);\n        for (var 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        return out;\n    };\n    RawSha256.prototype.hashBuffer = function () {\n        var _a = this, buffer = _a.buffer, state = _a.state;\n        var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n        for (var 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            }\n            else {\n                var u = this.temp[i - 2];\n                var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n                u = this.temp[i - 15];\n                var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n                this.temp[i] =\n                    ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n            }\n            var t1 = ((((((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            var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n                ((state0 >>> 13) | (state0 << 19)) ^\n                ((state0 >>> 22) | (state0 << 10))) +\n                ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n                0;\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        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    return RawSha256;\n}());\nexport { RawSha256 };\n//# sourceMappingURL=RawSha256.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nvar Sha256 = /** @class */ (function () {\n    function Sha256(secret) {\n        this.secret = secret;\n        this.hash = new RawSha256();\n        this.reset();\n    }\n    Sha256.prototype.update = function (toHash) {\n        if (isEmptyData(toHash) || this.error) {\n            return;\n        }\n        try {\n            this.hash.update(convertToBuffer(toHash));\n        }\n        catch (e) {\n            this.error = e;\n        }\n    };\n    /* This synchronous method keeps compatibility\n     * with the v2 aws-sdk.\n     */\n    Sha256.prototype.digestSync = function () {\n        if (this.error) {\n            throw this.error;\n        }\n        if (this.outer) {\n            if (!this.outer.finished) {\n                this.outer.update(this.hash.digest());\n            }\n            return this.outer.digest();\n        }\n        return this.hash.digest();\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    Sha256.prototype.digest = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                return [2 /*return*/, this.digestSync()];\n            });\n        });\n    };\n    Sha256.prototype.reset = function () {\n        this.hash = new RawSha256();\n        if (this.secret) {\n            this.outer = new RawSha256();\n            var inner = bufferFromSecret(this.secret);\n            var outer = new Uint8Array(BLOCK_SIZE);\n            outer.set(inner);\n            for (var i = 0; i < BLOCK_SIZE; i++) {\n                inner[i] ^= 0x36;\n                outer[i] ^= 0x5c;\n            }\n            this.hash.update(inner);\n            this.outer.update(outer);\n            // overwrite the copied key in memory\n            for (var i = 0; i < inner.byteLength; i++) {\n                inner[i] = 0;\n            }\n        }\n    };\n    return Sha256;\n}());\nexport { Sha256 };\nfunction bufferFromSecret(secret) {\n    var input = convertToBuffer(secret);\n    if (input.byteLength > BLOCK_SIZE) {\n        var bufferHash = new RawSha256();\n        bufferHash.update(input);\n        input = bufferHash.digest();\n    }\n    var buffer = new Uint8Array(BLOCK_SIZE);\n    buffer.set(input);\n    return buffer;\n}\n//# sourceMappingURL=jsSha256.js.map","import { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\nvar Sha256 = /** @class */ (function () {\n    function Sha256(secret) {\n        if (supportsWebCrypto(locateWindow())) {\n            this.hash = new WebCryptoSha256(secret);\n        }\n        else {\n            this.hash = new JsSha256(secret);\n        }\n    }\n    Sha256.prototype.update = function (data, encoding) {\n        this.hash.update(convertToBuffer(data));\n    };\n    Sha256.prototype.digest = function () {\n        return this.hash.digest();\n    };\n    Sha256.prototype.reset = function () {\n        this.hash.reset();\n    };\n    return Sha256;\n}());\nexport { Sha256 };\n//# sourceMappingURL=crossPlatformSha256.js.map","// NOTE: this list must be up-to-date with browsers listed in\n// test/acceptance/useragentstrings.yml\nexport const BROWSER_ALIASES_MAP = {\n  'Amazon Silk': 'amazon_silk',\n  'Android Browser': 'android',\n  Bada: 'bada',\n  BlackBerry: 'blackberry',\n  Chrome: 'chrome',\n  Chromium: 'chromium',\n  Electron: 'electron',\n  Epiphany: 'epiphany',\n  Firefox: 'firefox',\n  Focus: 'focus',\n  Generic: 'generic',\n  'Google Search': 'google_search',\n  Googlebot: 'googlebot',\n  'Internet Explorer': 'ie',\n  'K-Meleon': 'k_meleon',\n  Maxthon: 'maxthon',\n  'Microsoft Edge': 'edge',\n  'MZ Browser': 'mz',\n  'NAVER Whale Browser': 'naver',\n  Opera: 'opera',\n  'Opera Coast': 'opera_coast',\n  PhantomJS: 'phantomjs',\n  Puffin: 'puffin',\n  QupZilla: 'qupzilla',\n  QQ: 'qq',\n  QQLite: 'qqlite',\n  Safari: 'safari',\n  Sailfish: 'sailfish',\n  'Samsung Internet for Android': 'samsung_internet',\n  SeaMonkey: 'seamonkey',\n  Sleipnir: 'sleipnir',\n  Swing: 'swing',\n  Tizen: 'tizen',\n  'UC Browser': 'uc',\n  Vivaldi: 'vivaldi',\n  'WebOS Browser': 'webos',\n  WeChat: 'wechat',\n  'Yandex Browser': 'yandex',\n  Roku: 'roku',\n};\n\nexport const BROWSER_MAP = {\n  amazon_silk: 'Amazon Silk',\n  android: 'Android Browser',\n  bada: 'Bada',\n  blackberry: 'BlackBerry',\n  chrome: 'Chrome',\n  chromium: 'Chromium',\n  electron: 'Electron',\n  epiphany: 'Epiphany',\n  firefox: 'Firefox',\n  focus: 'Focus',\n  generic: 'Generic',\n  googlebot: 'Googlebot',\n  google_search: 'Google Search',\n  ie: 'Internet Explorer',\n  k_meleon: 'K-Meleon',\n  maxthon: 'Maxthon',\n  edge: 'Microsoft Edge',\n  mz: 'MZ Browser',\n  naver: 'NAVER Whale Browser',\n  opera: 'Opera',\n  opera_coast: 'Opera Coast',\n  phantomjs: 'PhantomJS',\n  puffin: 'Puffin',\n  qupzilla: 'QupZilla',\n  qq: 'QQ Browser',\n  qqlite: 'QQ Browser Lite',\n  safari: 'Safari',\n  sailfish: 'Sailfish',\n  samsung_internet: 'Samsung Internet for Android',\n  seamonkey: 'SeaMonkey',\n  sleipnir: 'Sleipnir',\n  swing: 'Swing',\n  tizen: 'Tizen',\n  uc: 'UC Browser',\n  vivaldi: 'Vivaldi',\n  webos: 'WebOS Browser',\n  wechat: 'WeChat',\n  yandex: 'Yandex Browser',\n};\n\nexport const PLATFORMS_MAP = {\n  tablet: 'tablet',\n  mobile: 'mobile',\n  desktop: 'desktop',\n  tv: 'tv',\n};\n\nexport const OS_MAP = {\n  WindowsPhone: 'Windows Phone',\n  Windows: 'Windows',\n  MacOS: 'macOS',\n  iOS: 'iOS',\n  Android: 'Android',\n  WebOS: 'WebOS',\n  BlackBerry: 'BlackBerry',\n  Bada: 'Bada',\n  Tizen: 'Tizen',\n  Linux: 'Linux',\n  ChromeOS: 'Chrome OS',\n  PlayStation4: 'PlayStation 4',\n  Roku: 'Roku',\n};\n\nexport const ENGINE_MAP = {\n  EdgeHTML: 'EdgeHTML',\n  Blink: 'Blink',\n  Trident: 'Trident',\n  Presto: 'Presto',\n  Gecko: 'Gecko',\n  WebKit: 'WebKit',\n};\n","import { BROWSER_MAP, BROWSER_ALIASES_MAP } from './constants.js';\n\nexport default class Utils {\n  /**\n   * Get first matched item for a string\n   * @param {RegExp} regexp\n   * @param {String} ua\n   * @return {Array|{index: number, input: string}|*|boolean|string}\n   */\n  static getFirstMatch(regexp, ua) {\n    const match = ua.match(regexp);\n    return (match && match.length > 0 && match[1]) || '';\n  }\n\n  /**\n   * Get second matched item for a string\n   * @param regexp\n   * @param {String} ua\n   * @return {Array|{index: number, input: string}|*|boolean|string}\n   */\n  static getSecondMatch(regexp, ua) {\n    const match = ua.match(regexp);\n    return (match && match.length > 1 && match[2]) || '';\n  }\n\n  /**\n   * Match a regexp and return a constant or undefined\n   * @param {RegExp} regexp\n   * @param {String} ua\n   * @param {*} _const Any const that will be returned if regexp matches the string\n   * @return {*}\n   */\n  static matchAndReturnConst(regexp, ua, _const) {\n    if (regexp.test(ua)) {\n      return _const;\n    }\n    return void (0);\n  }\n\n  static getWindowsVersionName(version) {\n    switch (version) {\n      case 'NT': return 'NT';\n      case 'XP': return 'XP';\n      case 'NT 5.0': return '2000';\n      case 'NT 5.1': return 'XP';\n      case 'NT 5.2': return '2003';\n      case 'NT 6.0': return 'Vista';\n      case 'NT 6.1': return '7';\n      case 'NT 6.2': return '8';\n      case 'NT 6.3': return '8.1';\n      case 'NT 10.0': return '10';\n      default: return undefined;\n    }\n  }\n\n  /**\n   * Get macOS version name\n   *    10.5 - Leopard\n   *    10.6 - Snow Leopard\n   *    10.7 - Lion\n   *    10.8 - Mountain Lion\n   *    10.9 - Mavericks\n   *    10.10 - Yosemite\n   *    10.11 - El Capitan\n   *    10.12 - Sierra\n   *    10.13 - High Sierra\n   *    10.14 - Mojave\n   *    10.15 - Catalina\n   *\n   * @example\n   *   getMacOSVersionName(\"10.14\") // 'Mojave'\n   *\n   * @param  {string} version\n   * @return {string} versionName\n   */\n  static getMacOSVersionName(version) {\n    const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);\n    v.push(0);\n    if (v[0] !== 10) return undefined;\n    switch (v[1]) {\n      case 5: return 'Leopard';\n      case 6: return 'Snow Leopard';\n      case 7: return 'Lion';\n      case 8: return 'Mountain Lion';\n      case 9: return 'Mavericks';\n      case 10: return 'Yosemite';\n      case 11: return 'El Capitan';\n      case 12: return 'Sierra';\n      case 13: return 'High Sierra';\n      case 14: return 'Mojave';\n      case 15: return 'Catalina';\n      default: return undefined;\n    }\n  }\n\n  /**\n   * Get Android version name\n   *    1.5 - Cupcake\n   *    1.6 - Donut\n   *    2.0 - Eclair\n   *    2.1 - Eclair\n   *    2.2 - Froyo\n   *    2.x - Gingerbread\n   *    3.x - Honeycomb\n   *    4.0 - Ice Cream Sandwich\n   *    4.1 - Jelly Bean\n   *    4.4 - KitKat\n   *    5.x - Lollipop\n   *    6.x - Marshmallow\n   *    7.x - Nougat\n   *    8.x - Oreo\n   *    9.x - Pie\n   *\n   * @example\n   *   getAndroidVersionName(\"7.0\") // 'Nougat'\n   *\n   * @param  {string} version\n   * @return {string} versionName\n   */\n  static getAndroidVersionName(version) {\n    const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);\n    v.push(0);\n    if (v[0] === 1 && v[1] < 5) return undefined;\n    if (v[0] === 1 && v[1] < 6) return 'Cupcake';\n    if (v[0] === 1 && v[1] >= 6) return 'Donut';\n    if (v[0] === 2 && v[1] < 2) return 'Eclair';\n    if (v[0] === 2 && v[1] === 2) return 'Froyo';\n    if (v[0] === 2 && v[1] > 2) return 'Gingerbread';\n    if (v[0] === 3) return 'Honeycomb';\n    if (v[0] === 4 && v[1] < 1) return 'Ice Cream Sandwich';\n    if (v[0] === 4 && v[1] < 4) return 'Jelly Bean';\n    if (v[0] === 4 && v[1] >= 4) return 'KitKat';\n    if (v[0] === 5) return 'Lollipop';\n    if (v[0] === 6) return 'Marshmallow';\n    if (v[0] === 7) return 'Nougat';\n    if (v[0] === 8) return 'Oreo';\n    if (v[0] === 9) return 'Pie';\n    return undefined;\n  }\n\n  /**\n   * Get version precisions count\n   *\n   * @example\n   *   getVersionPrecision(\"1.10.3\") // 3\n   *\n   * @param  {string} version\n   * @return {number}\n   */\n  static getVersionPrecision(version) {\n    return version.split('.').length;\n  }\n\n  /**\n   * Calculate browser version weight\n   *\n   * @example\n   *   compareVersions('1.10.2.1',  '1.8.2.1.90')    // 1\n   *   compareVersions('1.010.2.1', '1.09.2.1.90');  // 1\n   *   compareVersions('1.10.2.1',  '1.10.2.1');     // 0\n   *   compareVersions('1.10.2.1',  '1.0800.2');     // -1\n   *   compareVersions('1.10.2.1',  '1.10',  true);  // 0\n   *\n   * @param {String} versionA versions versions to compare\n   * @param {String} versionB versions versions to compare\n   * @param {boolean} [isLoose] enable loose comparison\n   * @return {Number} comparison result: -1 when versionA is lower,\n   * 1 when versionA is bigger, 0 when both equal\n   */\n  /* eslint consistent-return: 1 */\n  static compareVersions(versionA, versionB, isLoose = false) {\n    // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n    const versionAPrecision = Utils.getVersionPrecision(versionA);\n    const versionBPrecision = Utils.getVersionPrecision(versionB);\n\n    let precision = Math.max(versionAPrecision, versionBPrecision);\n    let lastPrecision = 0;\n\n    const chunks = Utils.map([versionA, versionB], (version) => {\n      const delta = precision - Utils.getVersionPrecision(version);\n\n      // 2) \"9\" -> \"9.0\" (for precision = 2)\n      const _version = version + new Array(delta + 1).join('.0');\n\n      // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n      return Utils.map(_version.split('.'), chunk => new Array(20 - chunk.length).join('0') + chunk).reverse();\n    });\n\n    // adjust precision for loose comparison\n    if (isLoose) {\n      lastPrecision = precision - Math.min(versionAPrecision, versionBPrecision);\n    }\n\n    // iterate in reverse order by reversed chunks array\n    precision -= 1;\n    while (precision >= lastPrecision) {\n      // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n      if (chunks[0][precision] > chunks[1][precision]) {\n        return 1;\n      }\n\n      if (chunks[0][precision] === chunks[1][precision]) {\n        if (precision === lastPrecision) {\n          // all version chunks are same\n          return 0;\n        }\n\n        precision -= 1;\n      } else if (chunks[0][precision] < chunks[1][precision]) {\n        return -1;\n      }\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Array::map polyfill\n   *\n   * @param  {Array} arr\n   * @param  {Function} iterator\n   * @return {Array}\n   */\n  static map(arr, iterator) {\n    const result = [];\n    let i;\n    if (Array.prototype.map) {\n      return Array.prototype.map.call(arr, iterator);\n    }\n    for (i = 0; i < arr.length; i += 1) {\n      result.push(iterator(arr[i]));\n    }\n    return result;\n  }\n\n  /**\n   * Array::find polyfill\n   *\n   * @param  {Array} arr\n   * @param  {Function} predicate\n   * @return {Array}\n   */\n  static find(arr, predicate) {\n    let i;\n    let l;\n    if (Array.prototype.find) {\n      return Array.prototype.find.call(arr, predicate);\n    }\n    for (i = 0, l = arr.length; i < l; i += 1) {\n      const value = arr[i];\n      if (predicate(value, i)) {\n        return value;\n      }\n    }\n    return undefined;\n  }\n\n  /**\n   * Object::assign polyfill\n   *\n   * @param  {Object} obj\n   * @param  {Object} ...objs\n   * @return {Object}\n   */\n  static assign(obj, ...assigners) {\n    const result = obj;\n    let i;\n    let l;\n    if (Object.assign) {\n      return Object.assign(obj, ...assigners);\n    }\n    for (i = 0, l = assigners.length; i < l; i += 1) {\n      const assigner = assigners[i];\n      if (typeof assigner === 'object' && assigner !== null) {\n        const keys = Object.keys(assigner);\n        keys.forEach((key) => {\n          result[key] = assigner[key];\n        });\n      }\n    }\n    return obj;\n  }\n\n  /**\n   * Get short version/alias for a browser name\n   *\n   * @example\n   *   getBrowserAlias('Microsoft Edge') // edge\n   *\n   * @param  {string} browserName\n   * @return {string}\n   */\n  static getBrowserAlias(browserName) {\n    return BROWSER_ALIASES_MAP[browserName];\n  }\n\n  /**\n   * Get short version/alias for a browser name\n   *\n   * @example\n   *   getBrowserAlias('edge') // Microsoft Edge\n   *\n   * @param  {string} browserAlias\n   * @return {string}\n   */\n  static getBrowserTypeByAlias(browserAlias) {\n    return BROWSER_MAP[browserAlias] || '';\n  }\n}\n","/**\n * Browsers' descriptors\n *\n * The idea of descriptors is simple. You should know about them two simple things:\n * 1. Every descriptor has a method or property called `test` and a `describe` method.\n * 2. Order of descriptors is important.\n *\n * More details:\n * 1. Method or property `test` serves as a way to detect whether the UA string\n * matches some certain browser or not. The `describe` method helps to make a result\n * object with params that show some browser-specific things: name, version, etc.\n * 2. Order of descriptors is important because a Parser goes through them one by one\n * in course. For example, if you insert Chrome's descriptor as the first one,\n * more then a half of browsers will be described as Chrome, because they will pass\n * the Chrome descriptor's test.\n *\n * Descriptor's `test` could be a property with an array of RegExps, where every RegExp\n * will be applied to a UA string to test it whether it matches or not.\n * If a descriptor has two or more regexps in the `test` array it tests them one by one\n * with a logical sum operation. Parser stops if it has found any RegExp that matches the UA.\n *\n * Or `test` could be a method. In that case it gets a Parser instance and should\n * return true/false to get the Parser know if this browser descriptor matches the UA or not.\n */\n\nimport Utils from './utils.js';\n\nconst commonVersionIdentifier = /version\\/(\\d+(\\.?_?\\d+)+)/i;\n\nconst browsersList = [\n  /* Googlebot */\n  {\n    test: [/googlebot/i],\n    describe(ua) {\n      const browser = {\n        name: 'Googlebot',\n      };\n      const version = Utils.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n\n  /* Opera < 13.0 */\n  {\n    test: [/opera/i],\n    describe(ua) {\n      const browser = {\n        name: 'Opera',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n\n  /* Opera > 13.0 */\n  {\n    test: [/opr\\/|opios/i],\n    describe(ua) {\n      const browser = {\n        name: 'Opera',\n      };\n      const version = Utils.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/SamsungBrowser/i],\n    describe(ua) {\n      const browser = {\n        name: 'Samsung Internet for Android',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/Whale/i],\n    describe(ua) {\n      const browser = {\n        name: 'NAVER Whale Browser',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/MZBrowser/i],\n    describe(ua) {\n      const browser = {\n        name: 'MZ Browser',\n      };\n      const version = Utils.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/focus/i],\n    describe(ua) {\n      const browser = {\n        name: 'Focus',\n      };\n      const version = Utils.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/swing/i],\n    describe(ua) {\n      const browser = {\n        name: 'Swing',\n      };\n      const version = Utils.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/coast/i],\n    describe(ua) {\n      const browser = {\n        name: 'Opera Coast',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n    describe(ua) {\n      const browser = {\n        name: 'Opera Touch',\n      };\n      const version = Utils.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/yabrowser/i],\n    describe(ua) {\n      const browser = {\n        name: 'Yandex Browser',\n      };\n      const version = Utils.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/ucbrowser/i],\n    describe(ua) {\n      const browser = {\n        name: 'UC Browser',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/Maxthon|mxios/i],\n    describe(ua) {\n      const browser = {\n        name: 'Maxthon',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/epiphany/i],\n    describe(ua) {\n      const browser = {\n        name: 'Epiphany',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/puffin/i],\n    describe(ua) {\n      const browser = {\n        name: 'Puffin',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/sleipnir/i],\n    describe(ua) {\n      const browser = {\n        name: 'Sleipnir',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/k-meleon/i],\n    describe(ua) {\n      const browser = {\n        name: 'K-Meleon',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/micromessenger/i],\n    describe(ua) {\n      const browser = {\n        name: 'WeChat',\n      };\n      const version = Utils.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/qqbrowser/i],\n    describe(ua) {\n      const browser = {\n        name: (/qqbrowserlite/i).test(ua) ? 'QQ Browser Lite' : 'QQ Browser',\n      };\n      const version = Utils.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/msie|trident/i],\n    describe(ua) {\n      const browser = {\n        name: 'Internet Explorer',\n      };\n      const version = Utils.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/\\sedg\\//i],\n    describe(ua) {\n      const browser = {\n        name: 'Microsoft Edge',\n      };\n\n      const version = Utils.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/edg([ea]|ios)/i],\n    describe(ua) {\n      const browser = {\n        name: 'Microsoft Edge',\n      };\n\n      const version = Utils.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/vivaldi/i],\n    describe(ua) {\n      const browser = {\n        name: 'Vivaldi',\n      };\n      const version = Utils.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/seamonkey/i],\n    describe(ua) {\n      const browser = {\n        name: 'SeaMonkey',\n      };\n      const version = Utils.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/sailfish/i],\n    describe(ua) {\n      const browser = {\n        name: 'Sailfish',\n      };\n\n      const version = Utils.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/silk/i],\n    describe(ua) {\n      const browser = {\n        name: 'Amazon Silk',\n      };\n      const version = Utils.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/phantom/i],\n    describe(ua) {\n      const browser = {\n        name: 'PhantomJS',\n      };\n      const version = Utils.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/slimerjs/i],\n    describe(ua) {\n      const browser = {\n        name: 'SlimerJS',\n      };\n      const version = Utils.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n    describe(ua) {\n      const browser = {\n        name: 'BlackBerry',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/(web|hpw)[o0]s/i],\n    describe(ua) {\n      const browser = {\n        name: 'WebOS Browser',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/bada/i],\n    describe(ua) {\n      const browser = {\n        name: 'Bada',\n      };\n      const version = Utils.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/tizen/i],\n    describe(ua) {\n      const browser = {\n        name: 'Tizen',\n      };\n      const version = Utils.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/qupzilla/i],\n    describe(ua) {\n      const browser = {\n        name: 'QupZilla',\n      };\n      const version = Utils.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/firefox|iceweasel|fxios/i],\n    describe(ua) {\n      const browser = {\n        name: 'Firefox',\n      };\n      const version = Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/electron/i],\n    describe(ua) {\n      const browser = {\n        name: 'Electron',\n      };\n      const version = Utils.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/MiuiBrowser/i],\n    describe(ua) {\n      const browser = {\n        name: 'Miui',\n      };\n      const version = Utils.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/chromium/i],\n    describe(ua) {\n      const browser = {\n        name: 'Chromium',\n      };\n      const version = Utils.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/chrome|crios|crmo/i],\n    describe(ua) {\n      const browser = {\n        name: 'Chrome',\n      };\n      const version = Utils.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n  {\n    test: [/GSA/i],\n    describe(ua) {\n      const browser = {\n        name: 'Google Search',\n      };\n      const version = Utils.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n\n  /* Android Browser */\n  {\n    test(parser) {\n      const notLikeAndroid = !parser.test(/like android/i);\n      const butAndroid = parser.test(/android/i);\n      return notLikeAndroid && butAndroid;\n    },\n    describe(ua) {\n      const browser = {\n        name: 'Android Browser',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n\n  /* PlayStation 4 */\n  {\n    test: [/playstation 4/i],\n    describe(ua) {\n      const browser = {\n        name: 'PlayStation 4',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n\n  /* Safari */\n  {\n    test: [/safari|applewebkit/i],\n    describe(ua) {\n      const browser = {\n        name: 'Safari',\n      };\n      const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n      if (version) {\n        browser.version = version;\n      }\n\n      return browser;\n    },\n  },\n\n  /* Something else */\n  {\n    test: [/.*/i],\n    describe(ua) {\n      /* Here we try to make sure that there are explicit details about the device\n       * in order to decide what regexp exactly we want to apply\n       * (as there is a specific decision based on that conclusion)\n       */\n      const regexpWithoutDeviceSpec = /^(.*)\\/(.*) /;\n      const regexpWithDeviceSpec = /^(.*)\\/(.*)[ \\t]\\((.*)/;\n      const hasDeviceSpec = ua.search('\\\\(') !== -1;\n      const regexp = hasDeviceSpec ? regexpWithDeviceSpec : regexpWithoutDeviceSpec;\n      return {\n        name: Utils.getFirstMatch(regexp, ua),\n        version: Utils.getSecondMatch(regexp, ua),\n      };\n    },\n  },\n];\n\nexport default browsersList;\n","import Utils from './utils.js';\nimport { OS_MAP } from './constants.js';\n\nexport default [\n  /* Roku */\n  {\n    test: [/Roku\\/DVP/],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, ua);\n      return {\n        name: OS_MAP.Roku,\n        version,\n      };\n    },\n  },\n\n  /* Windows Phone */\n  {\n    test: [/windows phone/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, ua);\n      return {\n        name: OS_MAP.WindowsPhone,\n        version,\n      };\n    },\n  },\n\n  /* Windows */\n  {\n    test: [/windows /i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, ua);\n      const versionName = Utils.getWindowsVersionName(version);\n\n      return {\n        name: OS_MAP.Windows,\n        version,\n        versionName,\n      };\n    },\n  },\n\n  /* Firefox on iPad */\n  {\n    test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n    describe(ua) {\n      const result = {\n        name: OS_MAP.iOS,\n      };\n      const version = Utils.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, ua);\n      if (version) {\n        result.version = version;\n      }\n      return result;\n    },\n  },\n\n  /* macOS */\n  {\n    test: [/macintosh/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, ua).replace(/[_\\s]/g, '.');\n      const versionName = Utils.getMacOSVersionName(version);\n\n      const os = {\n        name: OS_MAP.MacOS,\n        version,\n      };\n      if (versionName) {\n        os.versionName = versionName;\n      }\n      return os;\n    },\n  },\n\n  /* iOS */\n  {\n    test: [/(ipod|iphone|ipad)/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, ua).replace(/[_\\s]/g, '.');\n\n      return {\n        name: OS_MAP.iOS,\n        version,\n      };\n    },\n  },\n\n  /* Android */\n  {\n    test(parser) {\n      const notLikeAndroid = !parser.test(/like android/i);\n      const butAndroid = parser.test(/android/i);\n      return notLikeAndroid && butAndroid;\n    },\n    describe(ua) {\n      const version = Utils.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, ua);\n      const versionName = Utils.getAndroidVersionName(version);\n      const os = {\n        name: OS_MAP.Android,\n        version,\n      };\n      if (versionName) {\n        os.versionName = versionName;\n      }\n      return os;\n    },\n  },\n\n  /* WebOS */\n  {\n    test: [/(web|hpw)[o0]s/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, ua);\n      const os = {\n        name: OS_MAP.WebOS,\n      };\n\n      if (version && version.length) {\n        os.version = version;\n      }\n      return os;\n    },\n  },\n\n  /* BlackBerry */\n  {\n    test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, ua)\n        || Utils.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, ua)\n        || Utils.getFirstMatch(/\\bbb(\\d+)/i, ua);\n\n      return {\n        name: OS_MAP.BlackBerry,\n        version,\n      };\n    },\n  },\n\n  /* Bada */\n  {\n    test: [/bada/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, ua);\n\n      return {\n        name: OS_MAP.Bada,\n        version,\n      };\n    },\n  },\n\n  /* Tizen */\n  {\n    test: [/tizen/i],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, ua);\n\n      return {\n        name: OS_MAP.Tizen,\n        version,\n      };\n    },\n  },\n\n  /* Linux */\n  {\n    test: [/linux/i],\n    describe() {\n      return {\n        name: OS_MAP.Linux,\n      };\n    },\n  },\n\n  /* Chrome OS */\n  {\n    test: [/CrOS/],\n    describe() {\n      return {\n        name: OS_MAP.ChromeOS,\n      };\n    },\n  },\n\n  /* Playstation 4 */\n  {\n    test: [/PlayStation 4/],\n    describe(ua) {\n      const version = Utils.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, ua);\n      return {\n        name: OS_MAP.PlayStation4,\n        version,\n      };\n    },\n  },\n];\n","import Utils from './utils.js';\nimport { PLATFORMS_MAP } from './constants.js';\n\n/*\n * Tablets go first since usually they have more specific\n * signs to detect.\n */\n\nexport default [\n  /* Googlebot */\n  {\n    test: [/googlebot/i],\n    describe() {\n      return {\n        type: 'bot',\n        vendor: 'Google',\n      };\n    },\n  },\n\n  /* Huawei */\n  {\n    test: [/huawei/i],\n    describe(ua) {\n      const model = Utils.getFirstMatch(/(can-l01)/i, ua) && 'Nova';\n      const platform = {\n        type: PLATFORMS_MAP.mobile,\n        vendor: 'Huawei',\n      };\n      if (model) {\n        platform.model = model;\n      }\n      return platform;\n    },\n  },\n\n  /* Nexus Tablet */\n  {\n    test: [/nexus\\s*(?:7|8|9|10).*/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n        vendor: 'Nexus',\n      };\n    },\n  },\n\n  /* iPad */\n  {\n    test: [/ipad/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n        vendor: 'Apple',\n        model: 'iPad',\n      };\n    },\n  },\n\n  /* Firefox on iPad */\n  {\n    test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n        vendor: 'Apple',\n        model: 'iPad',\n      };\n    },\n  },\n\n  /* Amazon Kindle Fire */\n  {\n    test: [/kftt build/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n        vendor: 'Amazon',\n        model: 'Kindle Fire HD 7',\n      };\n    },\n  },\n\n  /* Another Amazon Tablet with Silk */\n  {\n    test: [/silk/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n        vendor: 'Amazon',\n      };\n    },\n  },\n\n  /* Tablet */\n  {\n    test: [/tablet(?! pc)/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n      };\n    },\n  },\n\n  /* iPod/iPhone */\n  {\n    test(parser) {\n      const iDevice = parser.test(/ipod|iphone/i);\n      const likeIDevice = parser.test(/like (ipod|iphone)/i);\n      return iDevice && !likeIDevice;\n    },\n    describe(ua) {\n      const model = Utils.getFirstMatch(/(ipod|iphone)/i, ua);\n      return {\n        type: PLATFORMS_MAP.mobile,\n        vendor: 'Apple',\n        model,\n      };\n    },\n  },\n\n  /* Nexus Mobile */\n  {\n    test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.mobile,\n        vendor: 'Nexus',\n      };\n    },\n  },\n\n  /* Mobile */\n  {\n    test: [/[^-]mobi/i],\n    describe() {\n      return {\n        type: PLATFORMS_MAP.mobile,\n      };\n    },\n  },\n\n  /* BlackBerry */\n  {\n    test(parser) {\n      return parser.getBrowserName(true) === 'blackberry';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.mobile,\n        vendor: 'BlackBerry',\n      };\n    },\n  },\n\n  /* Bada */\n  {\n    test(parser) {\n      return parser.getBrowserName(true) === 'bada';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.mobile,\n      };\n    },\n  },\n\n  /* Windows Phone */\n  {\n    test(parser) {\n      return parser.getBrowserName() === 'windows phone';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.mobile,\n        vendor: 'Microsoft',\n      };\n    },\n  },\n\n  /* Android Tablet */\n  {\n    test(parser) {\n      const osMajorVersion = Number(String(parser.getOSVersion()).split('.')[0]);\n      return parser.getOSName(true) === 'android' && (osMajorVersion >= 3);\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tablet,\n      };\n    },\n  },\n\n  /* Android Mobile */\n  {\n    test(parser) {\n      return parser.getOSName(true) === 'android';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.mobile,\n      };\n    },\n  },\n\n  /* desktop */\n  {\n    test(parser) {\n      return parser.getOSName(true) === 'macos';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.desktop,\n        vendor: 'Apple',\n      };\n    },\n  },\n\n  /* Windows */\n  {\n    test(parser) {\n      return parser.getOSName(true) === 'windows';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.desktop,\n      };\n    },\n  },\n\n  /* Linux */\n  {\n    test(parser) {\n      return parser.getOSName(true) === 'linux';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.desktop,\n      };\n    },\n  },\n\n  /* PlayStation 4 */\n  {\n    test(parser) {\n      return parser.getOSName(true) === 'playstation 4';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tv,\n      };\n    },\n  },\n\n  /* Roku */\n  {\n    test(parser) {\n      return parser.getOSName(true) === 'roku';\n    },\n    describe() {\n      return {\n        type: PLATFORMS_MAP.tv,\n      };\n    },\n  },\n];\n","import Utils from './utils.js';\nimport { ENGINE_MAP } from './constants.js';\n\n/*\n * More specific goes first\n */\nexport default [\n  /* EdgeHTML */\n  {\n    test(parser) {\n      return parser.getBrowserName(true) === 'microsoft edge';\n    },\n    describe(ua) {\n      const isBlinkBased = /\\sedg\\//i.test(ua);\n\n      // return blink if it's blink-based one\n      if (isBlinkBased) {\n        return {\n          name: ENGINE_MAP.Blink,\n        };\n      }\n\n      // otherwise match the version and return EdgeHTML\n      const version = Utils.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      return {\n        name: ENGINE_MAP.EdgeHTML,\n        version,\n      };\n    },\n  },\n\n  /* Trident */\n  {\n    test: [/trident/i],\n    describe(ua) {\n      const engine = {\n        name: ENGINE_MAP.Trident,\n      };\n\n      const version = Utils.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        engine.version = version;\n      }\n\n      return engine;\n    },\n  },\n\n  /* Presto */\n  {\n    test(parser) {\n      return parser.test(/presto/i);\n    },\n    describe(ua) {\n      const engine = {\n        name: ENGINE_MAP.Presto,\n      };\n\n      const version = Utils.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        engine.version = version;\n      }\n\n      return engine;\n    },\n  },\n\n  /* Gecko */\n  {\n    test(parser) {\n      const isGecko = parser.test(/gecko/i);\n      const likeGecko = parser.test(/like gecko/i);\n      return isGecko && !likeGecko;\n    },\n    describe(ua) {\n      const engine = {\n        name: ENGINE_MAP.Gecko,\n      };\n\n      const version = Utils.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        engine.version = version;\n      }\n\n      return engine;\n    },\n  },\n\n  /* Blink */\n  {\n    test: [/(apple)?webkit\\/537\\.36/i],\n    describe() {\n      return {\n        name: ENGINE_MAP.Blink,\n      };\n    },\n  },\n\n  /* WebKit */\n  {\n    test: [/(apple)?webkit/i],\n    describe(ua) {\n      const engine = {\n        name: ENGINE_MAP.WebKit,\n      };\n\n      const version = Utils.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n      if (version) {\n        engine.version = version;\n      }\n\n      return engine;\n    },\n  },\n];\n","import browserParsersList from './parser-browsers.js';\nimport osParsersList from './parser-os.js';\nimport platformParsersList from './parser-platforms.js';\nimport enginesParsersList from './parser-engines.js';\nimport Utils from './utils.js';\n\n/**\n * The main class that arranges the whole parsing process.\n */\nclass Parser {\n  /**\n   * Create instance of Parser\n   *\n   * @param {String} UA User-Agent string\n   * @param {Boolean} [skipParsing=false] parser can skip parsing in purpose of performance\n   * improvements if you need to make a more particular parsing\n   * like {@link Parser#parseBrowser} or {@link Parser#parsePlatform}\n   *\n   * @throw {Error} in case of empty UA String\n   *\n   * @constructor\n   */\n  constructor(UA, skipParsing = false) {\n    if (UA === void (0) || UA === null || UA === '') {\n      throw new Error(\"UserAgent parameter can't be empty\");\n    }\n\n    this._ua = UA;\n\n    /**\n     * @typedef ParsedResult\n     * @property {Object} browser\n     * @property {String|undefined} [browser.name]\n     * Browser name, like `\"Chrome\"` or `\"Internet Explorer\"`\n     * @property {String|undefined} [browser.version] Browser version as a String `\"12.01.45334.10\"`\n     * @property {Object} os\n     * @property {String|undefined} [os.name] OS name, like `\"Windows\"` or `\"macOS\"`\n     * @property {String|undefined} [os.version] OS version, like `\"NT 5.1\"` or `\"10.11.1\"`\n     * @property {String|undefined} [os.versionName] OS name, like `\"XP\"` or `\"High Sierra\"`\n     * @property {Object} platform\n     * @property {String|undefined} [platform.type]\n     * platform type, can be either `\"desktop\"`, `\"tablet\"` or `\"mobile\"`\n     * @property {String|undefined} [platform.vendor] Vendor of the device,\n     * like `\"Apple\"` or `\"Samsung\"`\n     * @property {String|undefined} [platform.model] Device model,\n     * like `\"iPhone\"` or `\"Kindle Fire HD 7\"`\n     * @property {Object} engine\n     * @property {String|undefined} [engine.name]\n     * Can be any of this: `WebKit`, `Blink`, `Gecko`, `Trident`, `Presto`, `EdgeHTML`\n     * @property {String|undefined} [engine.version] String version of the engine\n     */\n    this.parsedResult = {};\n\n    if (skipParsing !== true) {\n      this.parse();\n    }\n  }\n\n  /**\n   * Get UserAgent string of current Parser instance\n   * @return {String} User-Agent String of the current <Parser> object\n   *\n   * @public\n   */\n  getUA() {\n    return this._ua;\n  }\n\n  /**\n   * Test a UA string for a regexp\n   * @param {RegExp} regex\n   * @return {Boolean}\n   */\n  test(regex) {\n    return regex.test(this._ua);\n  }\n\n  /**\n   * Get parsed browser object\n   * @return {Object}\n   */\n  parseBrowser() {\n    this.parsedResult.browser = {};\n\n    const browserDescriptor = Utils.find(browserParsersList, (_browser) => {\n      if (typeof _browser.test === 'function') {\n        return _browser.test(this);\n      }\n\n      if (_browser.test instanceof Array) {\n        return _browser.test.some(condition => this.test(condition));\n      }\n\n      throw new Error(\"Browser's test function is not valid\");\n    });\n\n    if (browserDescriptor) {\n      this.parsedResult.browser = browserDescriptor.describe(this.getUA());\n    }\n\n    return this.parsedResult.browser;\n  }\n\n  /**\n   * Get parsed browser object\n   * @return {Object}\n   *\n   * @public\n   */\n  getBrowser() {\n    if (this.parsedResult.browser) {\n      return this.parsedResult.browser;\n    }\n\n    return this.parseBrowser();\n  }\n\n  /**\n   * Get browser's name\n   * @return {String} Browser's name or an empty string\n   *\n   * @public\n   */\n  getBrowserName(toLowerCase) {\n    if (toLowerCase) {\n      return String(this.getBrowser().name).toLowerCase() || '';\n    }\n    return this.getBrowser().name || '';\n  }\n\n\n  /**\n   * Get browser's version\n   * @return {String} version of browser\n   *\n   * @public\n   */\n  getBrowserVersion() {\n    return this.getBrowser().version;\n  }\n\n  /**\n   * Get OS\n   * @return {Object}\n   *\n   * @example\n   * this.getOS();\n   * {\n   *   name: 'macOS',\n   *   version: '10.11.12'\n   * }\n   */\n  getOS() {\n    if (this.parsedResult.os) {\n      return this.parsedResult.os;\n    }\n\n    return this.parseOS();\n  }\n\n  /**\n   * Parse OS and save it to this.parsedResult.os\n   * @return {*|{}}\n   */\n  parseOS() {\n    this.parsedResult.os = {};\n\n    const os = Utils.find(osParsersList, (_os) => {\n      if (typeof _os.test === 'function') {\n        return _os.test(this);\n      }\n\n      if (_os.test instanceof Array) {\n        return _os.test.some(condition => this.test(condition));\n      }\n\n      throw new Error(\"Browser's test function is not valid\");\n    });\n\n    if (os) {\n      this.parsedResult.os = os.describe(this.getUA());\n    }\n\n    return this.parsedResult.os;\n  }\n\n  /**\n   * Get OS name\n   * @param {Boolean} [toLowerCase] return lower-cased value\n   * @return {String} name of the OS — macOS, Windows, Linux, etc.\n   */\n  getOSName(toLowerCase) {\n    const { name } = this.getOS();\n\n    if (toLowerCase) {\n      return String(name).toLowerCase() || '';\n    }\n\n    return name || '';\n  }\n\n  /**\n   * Get OS version\n   * @return {String} full version with dots ('10.11.12', '5.6', etc)\n   */\n  getOSVersion() {\n    return this.getOS().version;\n  }\n\n  /**\n   * Get parsed platform\n   * @return {{}}\n   */\n  getPlatform() {\n    if (this.parsedResult.platform) {\n      return this.parsedResult.platform;\n    }\n\n    return this.parsePlatform();\n  }\n\n  /**\n   * Get platform name\n   * @param {Boolean} [toLowerCase=false]\n   * @return {*}\n   */\n  getPlatformType(toLowerCase = false) {\n    const { type } = this.getPlatform();\n\n    if (toLowerCase) {\n      return String(type).toLowerCase() || '';\n    }\n\n    return type || '';\n  }\n\n  /**\n   * Get parsed platform\n   * @return {{}}\n   */\n  parsePlatform() {\n    this.parsedResult.platform = {};\n\n    const platform = Utils.find(platformParsersList, (_platform) => {\n      if (typeof _platform.test === 'function') {\n        return _platform.test(this);\n      }\n\n      if (_platform.test instanceof Array) {\n        return _platform.test.some(condition => this.test(condition));\n      }\n\n      throw new Error(\"Browser's test function is not valid\");\n    });\n\n    if (platform) {\n      this.parsedResult.platform = platform.describe(this.getUA());\n    }\n\n    return this.parsedResult.platform;\n  }\n\n  /**\n   * Get parsed engine\n   * @return {{}}\n   */\n  getEngine() {\n    if (this.parsedResult.engine) {\n      return this.parsedResult.engine;\n    }\n\n    return this.parseEngine();\n  }\n\n  /**\n   * Get engines's name\n   * @return {String} Engines's name or an empty string\n   *\n   * @public\n   */\n  getEngineName(toLowerCase) {\n    if (toLowerCase) {\n      return String(this.getEngine().name).toLowerCase() || '';\n    }\n    return this.getEngine().name || '';\n  }\n\n  /**\n   * Get parsed platform\n   * @return {{}}\n   */\n  parseEngine() {\n    this.parsedResult.engine = {};\n\n    const engine = Utils.find(enginesParsersList, (_engine) => {\n      if (typeof _engine.test === 'function') {\n        return _engine.test(this);\n      }\n\n      if (_engine.test instanceof Array) {\n        return _engine.test.some(condition => this.test(condition));\n      }\n\n      throw new Error(\"Browser's test function is not valid\");\n    });\n\n    if (engine) {\n      this.parsedResult.engine = engine.describe(this.getUA());\n    }\n\n    return this.parsedResult.engine;\n  }\n\n  /**\n   * Parse full information about the browser\n   * @returns {Parser}\n   */\n  parse() {\n    this.parseBrowser();\n    this.parseOS();\n    this.parsePlatform();\n    this.parseEngine();\n\n    return this;\n  }\n\n  /**\n   * Get parsed result\n   * @return {ParsedResult}\n   */\n  getResult() {\n    return Utils.assign({}, this.parsedResult);\n  }\n\n  /**\n   * Check if parsed browser matches certain conditions\n   *\n   * @param {Object} checkTree It's one or two layered object,\n   * which can include a platform or an OS on the first layer\n   * and should have browsers specs on the bottom-laying layer\n   *\n   * @returns {Boolean|undefined} Whether the browser satisfies the set conditions or not.\n   * Returns `undefined` when the browser is no described in the checkTree object.\n   *\n   * @example\n   * const browser = Bowser.getParser(window.navigator.userAgent);\n   * if (browser.satisfies({chrome: '>118.01.1322' }))\n   * // or with os\n   * if (browser.satisfies({windows: { chrome: '>118.01.1322' } }))\n   * // or with platforms\n   * if (browser.satisfies({desktop: { chrome: '>118.01.1322' } }))\n   */\n  satisfies(checkTree) {\n    const platformsAndOSes = {};\n    let platformsAndOSCounter = 0;\n    const browsers = {};\n    let browsersCounter = 0;\n\n    const allDefinitions = Object.keys(checkTree);\n\n    allDefinitions.forEach((key) => {\n      const currentDefinition = checkTree[key];\n      if (typeof currentDefinition === 'string') {\n        browsers[key] = currentDefinition;\n        browsersCounter += 1;\n      } else if (typeof currentDefinition === 'object') {\n        platformsAndOSes[key] = currentDefinition;\n        platformsAndOSCounter += 1;\n      }\n    });\n\n    if (platformsAndOSCounter > 0) {\n      const platformsAndOSNames = Object.keys(platformsAndOSes);\n      const OSMatchingDefinition = Utils.find(platformsAndOSNames, name => (this.isOS(name)));\n\n      if (OSMatchingDefinition) {\n        const osResult = this.satisfies(platformsAndOSes[OSMatchingDefinition]);\n\n        if (osResult !== void 0) {\n          return osResult;\n        }\n      }\n\n      const platformMatchingDefinition = Utils.find(\n        platformsAndOSNames,\n        name => (this.isPlatform(name)),\n      );\n      if (platformMatchingDefinition) {\n        const platformResult = this.satisfies(platformsAndOSes[platformMatchingDefinition]);\n\n        if (platformResult !== void 0) {\n          return platformResult;\n        }\n      }\n    }\n\n    if (browsersCounter > 0) {\n      const browserNames = Object.keys(browsers);\n      const matchingDefinition = Utils.find(browserNames, name => (this.isBrowser(name, true)));\n\n      if (matchingDefinition !== void 0) {\n        return this.compareVersion(browsers[matchingDefinition]);\n      }\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Check if the browser name equals the passed string\n   * @param browserName The string to compare with the browser name\n   * @param [includingAlias=false] The flag showing whether alias will be included into comparison\n   * @returns {boolean}\n   */\n  isBrowser(browserName, includingAlias = false) {\n    const defaultBrowserName = this.getBrowserName().toLowerCase();\n    let browserNameLower = browserName.toLowerCase();\n    const alias = Utils.getBrowserTypeByAlias(browserNameLower);\n\n    if (includingAlias && alias) {\n      browserNameLower = alias.toLowerCase();\n    }\n    return browserNameLower === defaultBrowserName;\n  }\n\n  compareVersion(version) {\n    let expectedResults = [0];\n    let comparableVersion = version;\n    let isLoose = false;\n\n    const currentBrowserVersion = this.getBrowserVersion();\n\n    if (typeof currentBrowserVersion !== 'string') {\n      return void 0;\n    }\n\n    if (version[0] === '>' || version[0] === '<') {\n      comparableVersion = version.substr(1);\n      if (version[1] === '=') {\n        isLoose = true;\n        comparableVersion = version.substr(2);\n      } else {\n        expectedResults = [];\n      }\n      if (version[0] === '>') {\n        expectedResults.push(1);\n      } else {\n        expectedResults.push(-1);\n      }\n    } else if (version[0] === '=') {\n      comparableVersion = version.substr(1);\n    } else if (version[0] === '~') {\n      isLoose = true;\n      comparableVersion = version.substr(1);\n    }\n\n    return expectedResults.indexOf(\n      Utils.compareVersions(currentBrowserVersion, comparableVersion, isLoose),\n    ) > -1;\n  }\n\n  isOS(osName) {\n    return this.getOSName(true) === String(osName).toLowerCase();\n  }\n\n  isPlatform(platformType) {\n    return this.getPlatformType(true) === String(platformType).toLowerCase();\n  }\n\n  isEngine(engineName) {\n    return this.getEngineName(true) === String(engineName).toLowerCase();\n  }\n\n  /**\n   * Is anything? Check if the browser is called \"anything\",\n   * the OS called \"anything\" or the platform called \"anything\"\n   * @param {String} anything\n   * @param [includingAlias=false] The flag showing whether alias will be included into comparison\n   * @returns {Boolean}\n   */\n  is(anything, includingAlias = false) {\n    return this.isBrowser(anything, includingAlias) || this.isOS(anything)\n      || this.isPlatform(anything);\n  }\n\n  /**\n   * Check if any of the given values satisfies this.is(anything)\n   * @param {String[]} anythings\n   * @returns {Boolean}\n   */\n  some(anythings = []) {\n    return anythings.some(anything => this.is(anything));\n  }\n}\n\nexport default Parser;\n","/*!\n * Bowser - a browser detector\n * https://github.com/lancedikson/bowser\n * MIT License | (c) Dustin Diaz 2012-2015\n * MIT License | (c) Denis Demchenko 2015-2019\n */\nimport Parser from './parser.js';\nimport {\n  BROWSER_MAP,\n  ENGINE_MAP,\n  OS_MAP,\n  PLATFORMS_MAP,\n} from './constants.js';\n\n/**\n * Bowser class.\n * Keep it simple as much as it can be.\n * It's supposed to work with collections of {@link Parser} instances\n * rather then solve one-instance problems.\n * All the one-instance stuff is located in Parser class.\n *\n * @class\n * @classdesc Bowser is a static object, that provides an API to the Parsers\n * @hideconstructor\n */\nclass Bowser {\n  /**\n   * Creates a {@link Parser} instance\n   *\n   * @param {String} UA UserAgent string\n   * @param {Boolean} [skipParsing=false] Will make the Parser postpone parsing until you ask it\n   * explicitly. Same as `skipParsing` for {@link Parser}.\n   * @returns {Parser}\n   * @throws {Error} when UA is not a String\n   *\n   * @example\n   * const parser = Bowser.getParser(window.navigator.userAgent);\n   * const result = parser.getResult();\n   */\n  static getParser(UA, skipParsing = false) {\n    if (typeof UA !== 'string') {\n      throw new Error('UserAgent should be a string');\n    }\n    return new Parser(UA, skipParsing);\n  }\n\n  /**\n   * Creates a {@link Parser} instance and runs {@link Parser.getResult} immediately\n   *\n   * @param UA\n   * @return {ParsedResult}\n   *\n   * @example\n   * const result = Bowser.parse(window.navigator.userAgent);\n   */\n  static parse(UA) {\n    return (new Parser(UA)).getResult();\n  }\n\n  static get BROWSER_MAP() {\n    return BROWSER_MAP;\n  }\n\n  static get ENGINE_MAP() {\n    return ENGINE_MAP;\n  }\n\n  static get OS_MAP() {\n    return OS_MAP;\n  }\n\n  static get PLATFORMS_MAP() {\n    return PLATFORMS_MAP;\n  }\n}\n\nexport default Bowser;\n","import bowser from \"bowser\";\nexport const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => {\n    const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n        ? bowser.parse(window.navigator.userAgent)\n        : undefined;\n    const sections = [\n        [\"aws-sdk-js\", clientVersion],\n        [\"ua\", \"2.1\"],\n        [`os/${parsedUA?.os?.name || \"other\"}`, parsedUA?.os?.version],\n        [\"lang/js\"],\n        [\"md/browser\", `${parsedUA?.browser?.name ?? \"unknown\"}_${parsedUA?.browser?.version ?? \"unknown\"}`],\n    ];\n    if (serviceId) {\n        sections.push([`api/${serviceId}`, clientVersion]);\n    }\n    const appId = await config?.userAgentAppId?.();\n    if (appId) {\n        sections.push([`app/${appId}`]);\n    }\n    return sections;\n};\nexport const defaultUserAgent = createDefaultUserAgentProvider;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n    constructor(bytes) {\n        this.bytes = bytes;\n        if (bytes.byteLength !== 8) {\n            throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n        }\n    }\n    static fromNumber(number) {\n        if (number > 9223372036854776000 || number < -9223372036854776000) {\n            throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n        }\n        const bytes = new Uint8Array(8);\n        for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n            bytes[i] = remaining;\n        }\n        if (number < 0) {\n            negate(bytes);\n        }\n        return new Int64(bytes);\n    }\n    valueOf() {\n        const bytes = this.bytes.slice(0);\n        const negative = bytes[0] & 0b10000000;\n        if (negative) {\n            negate(bytes);\n        }\n        return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n    }\n    toString() {\n        return String(this.valueOf());\n    }\n}\nfunction negate(bytes) {\n    for (let i = 0; i < 8; i++) {\n        bytes[i] ^= 0xff;\n    }\n    for (let i = 7; i > -1; i--) {\n        bytes[i]++;\n        if (bytes[i] !== 0)\n            break;\n    }\n}\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n    constructor(toUtf8, fromUtf8) {\n        this.toUtf8 = toUtf8;\n        this.fromUtf8 = fromUtf8;\n    }\n    format(headers) {\n        const chunks = [];\n        for (const headerName of Object.keys(headers)) {\n            const bytes = this.fromUtf8(headerName);\n            chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n        }\n        const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n        let position = 0;\n        for (const chunk of chunks) {\n            out.set(chunk, position);\n            position += chunk.byteLength;\n        }\n        return out;\n    }\n    formatHeaderValue(header) {\n        switch (header.type) {\n            case \"boolean\":\n                return Uint8Array.from([header.value ? 0 : 1]);\n            case \"byte\":\n                return Uint8Array.from([2, header.value]);\n            case \"short\":\n                const shortView = new DataView(new ArrayBuffer(3));\n                shortView.setUint8(0, 3);\n                shortView.setInt16(1, header.value, false);\n                return new Uint8Array(shortView.buffer);\n            case \"integer\":\n                const intView = new DataView(new ArrayBuffer(5));\n                intView.setUint8(0, 4);\n                intView.setInt32(1, header.value, false);\n                return new Uint8Array(intView.buffer);\n            case \"long\":\n                const longBytes = new Uint8Array(9);\n                longBytes[0] = 5;\n                longBytes.set(header.value.bytes, 1);\n                return longBytes;\n            case \"binary\":\n                const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n                binView.setUint8(0, 6);\n                binView.setUint16(1, header.value.byteLength, false);\n                const binBytes = new Uint8Array(binView.buffer);\n                binBytes.set(header.value, 3);\n                return binBytes;\n            case \"string\":\n                const utf8Bytes = this.fromUtf8(header.value);\n                const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n                strView.setUint8(0, 7);\n                strView.setUint16(1, utf8Bytes.byteLength, false);\n                const strBytes = new Uint8Array(strView.buffer);\n                strBytes.set(utf8Bytes, 3);\n                return strBytes;\n            case \"timestamp\":\n                const tsBytes = new Uint8Array(9);\n                tsBytes[0] = 8;\n                tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n                return tsBytes;\n            case \"uuid\":\n                if (!UUID_PATTERN.test(header.value)) {\n                    throw new Error(`Invalid UUID received: ${header.value}`);\n                }\n                const uuidBytes = new Uint8Array(17);\n                uuidBytes[0] = 9;\n                uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n                return uuidBytes;\n        }\n    }\n    parse(headers) {\n        const out = {};\n        let position = 0;\n        while (position < headers.byteLength) {\n            const nameLength = headers.getUint8(position++);\n            const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n            position += nameLength;\n            switch (headers.getUint8(position++)) {\n                case 0:\n                    out[name] = {\n                        type: BOOLEAN_TAG,\n                        value: true,\n                    };\n                    break;\n                case 1:\n                    out[name] = {\n                        type: BOOLEAN_TAG,\n                        value: false,\n                    };\n                    break;\n                case 2:\n                    out[name] = {\n                        type: BYTE_TAG,\n                        value: headers.getInt8(position++),\n                    };\n                    break;\n                case 3:\n                    out[name] = {\n                        type: SHORT_TAG,\n                        value: headers.getInt16(position, false),\n                    };\n                    position += 2;\n                    break;\n                case 4:\n                    out[name] = {\n                        type: INT_TAG,\n                        value: headers.getInt32(position, false),\n                    };\n                    position += 4;\n                    break;\n                case 5:\n                    out[name] = {\n                        type: LONG_TAG,\n                        value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n                    };\n                    position += 8;\n                    break;\n                case 6:\n                    const binaryLength = headers.getUint16(position, false);\n                    position += 2;\n                    out[name] = {\n                        type: BINARY_TAG,\n                        value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n                    };\n                    position += binaryLength;\n                    break;\n                case 7:\n                    const stringLength = headers.getUint16(position, false);\n                    position += 2;\n                    out[name] = {\n                        type: STRING_TAG,\n                        value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n                    };\n                    position += stringLength;\n                    break;\n                case 8:\n                    out[name] = {\n                        type: TIMESTAMP_TAG,\n                        value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n                    };\n                    position += 8;\n                    break;\n                case 9:\n                    const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n                    position += 16;\n                    out[name] = {\n                        type: UUID_TAG,\n                        value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n                    };\n                    break;\n                default:\n                    throw new Error(`Unrecognized header type tag`);\n            }\n        }\n        return out;\n    }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n    if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n        throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n    }\n    const view = new DataView(buffer, byteOffset, byteLength);\n    const messageLength = view.getUint32(0, false);\n    if (byteLength !== messageLength) {\n        throw new Error(\"Reported message length does not match received message length\");\n    }\n    const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n    const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n    const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n    const checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n    if (expectedPreludeChecksum !== checksummer.digest()) {\n        throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n    }\n    checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n    if (expectedMessageChecksum !== checksummer.digest()) {\n        throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n    }\n    return {\n        headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n        body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n    };\n}\n","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n    constructor(toUtf8, fromUtf8) {\n        this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n        this.messageBuffer = [];\n        this.isEndOfStream = false;\n    }\n    feed(message) {\n        this.messageBuffer.push(this.decode(message));\n    }\n    endOfStream() {\n        this.isEndOfStream = true;\n    }\n    getMessage() {\n        const message = this.messageBuffer.pop();\n        const isEndOfStream = this.isEndOfStream;\n        return {\n            getMessage() {\n                return message;\n            },\n            isEndOfStream() {\n                return isEndOfStream;\n            },\n        };\n    }\n    getAvailableMessages() {\n        const messages = this.messageBuffer;\n        this.messageBuffer = [];\n        const isEndOfStream = this.isEndOfStream;\n        return {\n            getMessages() {\n                return messages;\n            },\n            isEndOfStream() {\n                return isEndOfStream;\n            },\n        };\n    }\n    encode({ headers: rawHeaders, body }) {\n        const headers = this.headerMarshaller.format(rawHeaders);\n        const length = headers.byteLength + body.byteLength + 16;\n        const out = new Uint8Array(length);\n        const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n        const checksum = new Crc32();\n        view.setUint32(0, length, false);\n        view.setUint32(4, headers.byteLength, false);\n        view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n        out.set(headers, 12);\n        out.set(body, headers.byteLength + 12);\n        view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n        return out;\n    }\n    decode(message) {\n        const { headers, body } = splitMessage(message);\n        return { headers: this.headerMarshaller.parse(headers), body };\n    }\n    formatHeaders(rawHeaders) {\n        return this.headerMarshaller.format(rawHeaders);\n    }\n}\n","export class MessageDecoderStream {\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const bytes of this.options.inputStream) {\n            const decoded = this.options.decoder.decode(bytes);\n            yield decoded;\n        }\n    }\n}\n","export class MessageEncoderStream {\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const msg of this.options.messageStream) {\n            const encoded = this.options.encoder.encode(msg);\n            yield encoded;\n        }\n        if (this.options.includeEndFrame) {\n            yield new Uint8Array(0);\n        }\n    }\n}\n","export class SmithyMessageDecoderStream {\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const message of this.options.messageStream) {\n            const deserialized = await this.options.deserializer(message);\n            if (deserialized === undefined)\n                continue;\n            yield deserialized;\n        }\n    }\n}\n","export class SmithyMessageEncoderStream {\n    constructor(options) {\n        this.options = options;\n    }\n    [Symbol.asyncIterator]() {\n        return this.asyncIterator();\n    }\n    async *asyncIterator() {\n        for await (const chunk of this.options.inputStream) {\n            const payloadBuf = this.options.serializer(chunk);\n            yield payloadBuf;\n        }\n    }\n}\n","export function getChunkedStream(source) {\n    let currentMessageTotalLength = 0;\n    let currentMessagePendingLength = 0;\n    let currentMessage = null;\n    let messageLengthBuffer = null;\n    const allocateMessage = (size) => {\n        if (typeof size !== \"number\") {\n            throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n        }\n        currentMessageTotalLength = size;\n        currentMessagePendingLength = 4;\n        currentMessage = new Uint8Array(size);\n        const currentMessageView = new DataView(currentMessage.buffer);\n        currentMessageView.setUint32(0, size, false);\n    };\n    const iterator = async function* () {\n        const sourceIterator = source[Symbol.asyncIterator]();\n        while (true) {\n            const { value, done } = await sourceIterator.next();\n            if (done) {\n                if (!currentMessageTotalLength) {\n                    return;\n                }\n                else if (currentMessageTotalLength === currentMessagePendingLength) {\n                    yield currentMessage;\n                }\n                else {\n                    throw new Error(\"Truncated event message received.\");\n                }\n                return;\n            }\n            const chunkLength = value.length;\n            let currentOffset = 0;\n            while (currentOffset < chunkLength) {\n                if (!currentMessage) {\n                    const bytesRemaining = chunkLength - currentOffset;\n                    if (!messageLengthBuffer) {\n                        messageLengthBuffer = new Uint8Array(4);\n                    }\n                    const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n                    messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n                    currentMessagePendingLength += numBytesForTotal;\n                    currentOffset += numBytesForTotal;\n                    if (currentMessagePendingLength < 4) {\n                        break;\n                    }\n                    allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n                    messageLengthBuffer = null;\n                }\n                const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n                currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n                currentMessagePendingLength += numBytesToWrite;\n                currentOffset += numBytesToWrite;\n                if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n                    yield currentMessage;\n                    currentMessage = null;\n                    currentMessageTotalLength = 0;\n                    currentMessagePendingLength = 0;\n                }\n            }\n        }\n    };\n    return {\n        [Symbol.asyncIterator]: iterator,\n    };\n}\n","export function getUnmarshalledStream(source, options) {\n    const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n    return {\n        [Symbol.asyncIterator]: async function* () {\n            for await (const chunk of source) {\n                const message = options.eventStreamCodec.decode(chunk);\n                const type = await messageUnmarshaller(message);\n                if (type === undefined)\n                    continue;\n                yield type;\n            }\n        },\n    };\n}\nexport function getMessageUnmarshaller(deserializer, toUtf8) {\n    return async function (message) {\n        const { value: messageType } = message.headers[\":message-type\"];\n        if (messageType === \"error\") {\n            const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n            unmodeledError.name = message.headers[\":error-code\"].value;\n            throw unmodeledError;\n        }\n        else if (messageType === \"exception\") {\n            const code = message.headers[\":exception-type\"].value;\n            const exception = { [code]: message };\n            const deserializedException = await deserializer(exception);\n            if (deserializedException.$unknown) {\n                const error = new Error(toUtf8(message.body));\n                error.name = code;\n                throw error;\n            }\n            throw deserializedException[code];\n        }\n        else if (messageType === \"event\") {\n            const event = {\n                [message.headers[\":event-type\"].value]: message,\n            };\n            const deserialized = await deserializer(event);\n            if (deserialized.$unknown)\n                return;\n            return deserialized;\n        }\n        else {\n            throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n        }\n    };\n}\n","import { EventStreamCodec, MessageDecoderStream, MessageEncoderStream, SmithyMessageDecoderStream, SmithyMessageEncoderStream, } from \"@smithy/eventstream-codec\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getMessageUnmarshaller } from \"./getUnmarshalledStream\";\nexport class EventStreamMarshaller {\n    constructor({ utf8Encoder, utf8Decoder }) {\n        this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n        this.utfEncoder = utf8Encoder;\n    }\n    deserialize(body, deserializer) {\n        const inputStream = getChunkedStream(body);\n        return new SmithyMessageDecoderStream({\n            messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n            deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n        });\n    }\n    serialize(inputStream, serializer) {\n        return new MessageEncoderStream({\n            messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n            encoder: this.eventStreamCodec,\n            includeEndFrame: true,\n        });\n    }\n}\n","export const readableStreamtoIterable = (readableStream) => ({\n    [Symbol.asyncIterator]: async function* () {\n        const reader = readableStream.getReader();\n        try {\n            while (true) {\n                const { done, value } = await reader.read();\n                if (done)\n                    return;\n                yield value;\n            }\n        }\n        finally {\n            reader.releaseLock();\n        }\n    },\n});\nexport const iterableToReadableStream = (asyncIterable) => {\n    const iterator = asyncIterable[Symbol.asyncIterator]();\n    return new ReadableStream({\n        async pull(controller) {\n            const { done, value } = await iterator.next();\n            if (done) {\n                return controller.close();\n            }\n            controller.enqueue(value);\n        },\n    });\n};\n","import { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@smithy/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\nexport class EventStreamMarshaller {\n    constructor({ utf8Encoder, utf8Decoder }) {\n        this.universalMarshaller = new UniversalEventStreamMarshaller({\n            utf8Decoder,\n            utf8Encoder,\n        });\n    }\n    deserialize(body, deserializer) {\n        const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n        return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n    }\n    serialize(input, serializer) {\n        const serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n        return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n    }\n}\nconst isReadableStream = (body) => typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n","export async function blobReader(blob, onChunk, chunkSize = 1024 * 1024) {\n    const size = blob.size;\n    let totalBytesRead = 0;\n    while (totalBytesRead < size) {\n        const slice = blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize));\n        onChunk(new Uint8Array(await slice.arrayBuffer()));\n        totalBytesRead += slice.size;\n    }\n}\n","import { blobReader } from \"@smithy/chunked-blob-reader\";\nexport const blobHasher = async function blobHasher(hashCtor, blob) {\n    const hash = new hashCtor();\n    await blobReader(blob, (chunk) => {\n        hash.update(chunk);\n    });\n    return hash.digest();\n};\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","export const BLOCK_SIZE = 64;\nexport const DIGEST_LENGTH = 16;\nexport const INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nexport class Md5 {\n    constructor() {\n        this.reset();\n    }\n    update(sourceData) {\n        if (isEmptyData(sourceData)) {\n            return;\n        }\n        else if (this.finished) {\n            throw new Error(\"Attempted to update an already finished hash.\");\n        }\n        const data = convertToBuffer(sourceData);\n        let position = 0;\n        let { byteLength } = data;\n        this.bytesHashed += byteLength;\n        while (byteLength > 0) {\n            this.buffer.setUint8(this.bufferLength++, data[position++]);\n            byteLength--;\n            if (this.bufferLength === BLOCK_SIZE) {\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n        }\n    }\n    async digest() {\n        if (!this.finished) {\n            const { buffer, bufferLength: undecoratedLength, bytesHashed } = this;\n            const bitsHashed = bytesHashed * 8;\n            buffer.setUint8(this.bufferLength++, 0b10000000);\n            if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n                for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n                    buffer.setUint8(i, 0);\n                }\n                this.hashBuffer();\n                this.bufferLength = 0;\n            }\n            for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n                buffer.setUint8(i, 0);\n            }\n            buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n            buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n            this.hashBuffer();\n            this.finished = true;\n        }\n        const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n        for (let i = 0; i < 4; i++) {\n            out.setUint32(i * 4, this.state[i], true);\n        }\n        return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n    }\n    hashBuffer() {\n        const { buffer, state } = this;\n        let a = state[0], b = state[1], c = state[2], d = state[3];\n        a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n        d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n        c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n        b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n        a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n        d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n        c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n        b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n        a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n        d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n        c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n        b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n        a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n        d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n        c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n        b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n        a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n        d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n        c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n        b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n        a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n        d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n        c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n        b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n        a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n        d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n        c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n        b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n        a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n        d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n        c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n        b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n        a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n        d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n        c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n        b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n        a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n        d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n        c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n        b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n        a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n        d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n        c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n        b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n        a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n        d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n        c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n        b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n        a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n        d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n        c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n        b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n        a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n        d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n        c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n        b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n        a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n        d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n        c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n        b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n        a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n        d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n        c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n        b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n        state[0] = (a + state[0]) & 0xffffffff;\n        state[1] = (b + state[1]) & 0xffffffff;\n        state[2] = (c + state[2]) & 0xffffffff;\n        state[3] = (d + state[3]) & 0xffffffff;\n    }\n    reset() {\n        this.state = Uint32Array.from(INIT);\n        this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n        this.bufferLength = 0;\n        this.bytesHashed = 0;\n        this.finished = false;\n    }\n}\nfunction cmn(q, a, b, x, s, t) {\n    a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n    return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n    return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n    return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n    return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n    return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n    if (typeof data === \"string\") {\n        return data.length === 0;\n    }\n    return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n    if (typeof data === \"string\") {\n        return fromUtf8(data);\n    }\n    if (ArrayBuffer.isView(data)) {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n    }\n    return new Uint8Array(data);\n}\n","const TEXT_ENCODER = typeof TextEncoder == \"function\" ? new TextEncoder() : null;\nexport const calculateBodyLength = (body) => {\n    if (typeof body === \"string\") {\n        if (TEXT_ENCODER) {\n            return TEXT_ENCODER.encode(body).byteLength;\n        }\n        let len = body.length;\n        for (let i = len - 1; i >= 0; i--) {\n            const code = body.charCodeAt(i);\n            if (code > 0x7f && code <= 0x7ff)\n                len++;\n            else if (code > 0x7ff && code <= 0xffff)\n                len += 2;\n            if (code >= 0xdc00 && code <= 0xdfff)\n                i--;\n        }\n        return len;\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    throw new Error(`Body Length computation failed for ${body}`);\n};\n","import { AwsSdkSigV4ASigner, AwsSdkSigV4Signer } from \"@aws-sdk/core\";\nimport { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { getAwsChunkedEncodingStream, sdkStreamMixin } from \"@smithy/util-stream\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultS3HttpAuthSchemeProvider } from \"./auth/httpAuthSchemeProvider\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nexport const getRuntimeConfig = (config) => {\n    return {\n        apiVersion: \"2006-03-01\",\n        base64Decoder: config?.base64Decoder ?? fromBase64,\n        base64Encoder: config?.base64Encoder ?? toBase64,\n        disableHostPrefix: config?.disableHostPrefix ?? false,\n        endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n        extensions: config?.extensions ?? [],\n        getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream,\n        httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultS3HttpAuthSchemeProvider,\n        httpAuthSchemes: config?.httpAuthSchemes ?? [\n            {\n                schemeId: \"aws.auth#sigv4\",\n                identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4\"),\n                signer: new AwsSdkSigV4Signer(),\n            },\n            {\n                schemeId: \"aws.auth#sigv4a\",\n                identityProvider: (ipc) => ipc.getIdentityProvider(\"aws.auth#sigv4a\"),\n                signer: new AwsSdkSigV4ASigner(),\n            },\n        ],\n        logger: config?.logger ?? new NoOpLogger(),\n        sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin,\n        serviceId: config?.serviceId ?? \"S3\",\n        signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,\n        signingEscapePath: config?.signingEscapePath ?? false,\n        urlParser: config?.urlParser ?? parseUrl,\n        useArnRegion: config?.useArnRegion ?? false,\n        utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n        utf8Encoder: config?.utf8Encoder ?? toUtf8,\n    };\n};\n","export const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","import { memoize } from \"@smithy/property-provider\";\nimport bowser from \"bowser\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport const resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => memoize(async () => {\n    const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n    switch (mode?.toLowerCase()) {\n        case \"auto\":\n            return Promise.resolve(isMobileBrowser() ? \"mobile\" : \"standard\");\n        case \"mobile\":\n        case \"in-region\":\n        case \"cross-region\":\n        case \"standard\":\n        case \"legacy\":\n            return Promise.resolve(mode?.toLocaleLowerCase());\n        case undefined:\n            return Promise.resolve(\"legacy\");\n        default:\n            throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n    }\n});\nconst isMobileBrowser = () => {\n    const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n        ? bowser.parse(window.navigator.userAgent)\n        : undefined;\n    const platform = parsedUA?.platform?.type;\n    return platform === \"tablet\" || platform === \"mobile\";\n};\n","import packageInfo from \"../package.json\";\nimport { Sha1 } from \"@aws-crypto/sha1-browser\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { createDefaultUserAgentProvider } from \"@aws-sdk/util-user-agent-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@smithy/config-resolver\";\nimport { eventStreamSerdeProvider } from \"@smithy/eventstream-serde-browser\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@smithy/fetch-http-handler\";\nimport { blobHasher as streamHasher } from \"@smithy/hash-blob-browser\";\nimport { invalidProvider } from \"@smithy/invalid-dependency\";\nimport { Md5 } from \"@smithy/md5-js\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-browser\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-browser\";\nexport const getRuntimeConfig = (config) => {\n    const defaultsMode = resolveDefaultsModeConfig(config);\n    const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n    const clientSharedValues = getSharedRuntimeConfig(config);\n    return {\n        ...clientSharedValues,\n        ...config,\n        runtime: \"browser\",\n        defaultsMode,\n        bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n        credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\"Credential is missing\"))),\n        defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n            createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n        eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider,\n        maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,\n        md5: config?.md5 ?? Md5,\n        region: config?.region ?? invalidProvider(\"Region is missing\"),\n        requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),\n        retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),\n        sha1: config?.sha1 ?? Sha1,\n        sha256: config?.sha256 ?? Sha256,\n        streamCollector: config?.streamCollector ?? streamCollector,\n        streamHasher: config?.streamHasher ?? streamHasher,\n        useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),\n        useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),\n    };\n};\n","export const getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n    let runtimeConfigRegion = async () => {\n        if (runtimeConfig.region === undefined) {\n            throw new Error(\"Region is missing from runtimeConfig\");\n        }\n        const region = runtimeConfig.region;\n        if (typeof region === \"string\") {\n            return region;\n        }\n        return region();\n    };\n    return {\n        setRegion(region) {\n            runtimeConfigRegion = region;\n        },\n        region() {\n            return runtimeConfigRegion;\n        },\n    };\n};\nexport const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n    return {\n        region: awsRegionExtensionConfiguration.region(),\n    };\n};\n","export const getHttpAuthExtensionConfiguration = (runtimeConfig) => {\n    const _httpAuthSchemes = runtimeConfig.httpAuthSchemes;\n    let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider;\n    let _credentials = runtimeConfig.credentials;\n    return {\n        setHttpAuthScheme(httpAuthScheme) {\n            const index = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId);\n            if (index === -1) {\n                _httpAuthSchemes.push(httpAuthScheme);\n            }\n            else {\n                _httpAuthSchemes.splice(index, 1, httpAuthScheme);\n            }\n        },\n        httpAuthSchemes() {\n            return _httpAuthSchemes;\n        },\n        setHttpAuthSchemeProvider(httpAuthSchemeProvider) {\n            _httpAuthSchemeProvider = httpAuthSchemeProvider;\n        },\n        httpAuthSchemeProvider() {\n            return _httpAuthSchemeProvider;\n        },\n        setCredentials(credentials) {\n            _credentials = credentials;\n        },\n        credentials() {\n            return _credentials;\n        },\n    };\n};\nexport const resolveHttpAuthRuntimeConfig = (config) => {\n    return {\n        httpAuthSchemes: config.httpAuthSchemes(),\n        httpAuthSchemeProvider: config.httpAuthSchemeProvider(),\n        credentials: config.credentials(),\n    };\n};\n","import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nimport { getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig } from \"./auth/httpAuthExtensionConfiguration\";\nconst asPartial = (t) => t;\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n    const extensionConfiguration = {\n        ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)),\n        ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)),\n        ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)),\n        ...asPartial(getHttpAuthExtensionConfiguration(runtimeConfig)),\n    };\n    extensions.forEach((extension) => extension.configure(extensionConfiguration));\n    return {\n        ...runtimeConfig,\n        ...resolveAwsRegionExtensionConfiguration(extensionConfiguration),\n        ...resolveDefaultRuntimeConfig(extensionConfiguration),\n        ...resolveHttpHandlerRuntimeConfig(extensionConfiguration),\n        ...resolveHttpAuthRuntimeConfig(extensionConfiguration),\n    };\n};\n","import { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { resolveFlexibleChecksumsConfig, } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRegionRedirectMiddlewarePlugin, getS3ExpressHttpSigningPlugin, getS3ExpressPlugin, getValidateBucketNamePlugin, resolveS3Config, } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { DefaultIdentityProviderConfig, getHttpAuthSchemeEndpointRuleSetPlugin, getHttpSigningPlugin, } from \"@smithy/core\";\nimport { resolveEventStreamSerdeConfig, } from \"@smithy/eventstream-serde-config-resolver\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { defaultS3HttpAuthSchemeParametersProvider, resolveHttpAuthSchemeConfig, } from \"./auth/httpAuthSchemeProvider\";\nimport { CreateSessionCommand, } from \"./commands/CreateSessionCommand\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class S3Client extends __Client {\n    config;\n    constructor(...[configuration]) {\n        const _config_0 = __getRuntimeConfig(configuration || {});\n        const _config_1 = resolveClientEndpointParameters(_config_0);\n        const _config_2 = resolveUserAgentConfig(_config_1);\n        const _config_3 = resolveFlexibleChecksumsConfig(_config_2);\n        const _config_4 = resolveRetryConfig(_config_3);\n        const _config_5 = resolveRegionConfig(_config_4);\n        const _config_6 = resolveHostHeaderConfig(_config_5);\n        const _config_7 = resolveEndpointConfig(_config_6);\n        const _config_8 = resolveEventStreamSerdeConfig(_config_7);\n        const _config_9 = resolveHttpAuthSchemeConfig(_config_8);\n        const _config_10 = resolveS3Config(_config_9, { session: [() => this, CreateSessionCommand] });\n        const _config_11 = resolveRuntimeExtensions(_config_10, configuration?.extensions || []);\n        super(_config_11);\n        this.config = _config_11;\n        this.middlewareStack.use(getUserAgentPlugin(this.config));\n        this.middlewareStack.use(getRetryPlugin(this.config));\n        this.middlewareStack.use(getContentLengthPlugin(this.config));\n        this.middlewareStack.use(getHostHeaderPlugin(this.config));\n        this.middlewareStack.use(getLoggerPlugin(this.config));\n        this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n        this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {\n            httpAuthSchemeParametersProvider: defaultS3HttpAuthSchemeParametersProvider,\n            identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({\n                \"aws.auth#sigv4\": config.credentials,\n                \"aws.auth#sigv4a\": config.credentials,\n            }),\n        }));\n        this.middlewareStack.use(getHttpSigningPlugin(this.config));\n        this.middlewareStack.use(getValidateBucketNamePlugin(this.config));\n        this.middlewareStack.use(getAddExpectContinuePlugin(this.config));\n        this.middlewareStack.use(getRegionRedirectMiddlewarePlugin(this.config));\n        this.middlewareStack.use(getS3ExpressPlugin(this.config));\n        this.middlewareStack.use(getS3ExpressHttpSigningPlugin(this.config));\n    }\n    destroy() {\n        super.destroy();\n    }\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { de_AbortMultipartUploadCommand, se_AbortMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class AbortMultipartUploadCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"AbortMultipartUpload\", {})\n    .n(\"S3Client\", \"AbortMultipartUploadCommand\")\n    .f(void 0, void 0)\n    .ser(se_AbortMultipartUploadCommand)\n    .de(de_AbortMultipartUploadCommand)\n    .build() {\n}\n","export function ssecMiddleware(options) {\n    return (next) => async (args) => {\n        const input = { ...args.input };\n        const properties = [\n            {\n                target: \"SSECustomerKey\",\n                hash: \"SSECustomerKeyMD5\",\n            },\n            {\n                target: \"CopySourceSSECustomerKey\",\n                hash: \"CopySourceSSECustomerKeyMD5\",\n            },\n        ];\n        for (const prop of properties) {\n            const value = input[prop.target];\n            if (value) {\n                let valueForHash;\n                if (typeof value === \"string\") {\n                    if (isValidBase64EncodedSSECustomerKey(value, options)) {\n                        valueForHash = options.base64Decoder(value);\n                    }\n                    else {\n                        valueForHash = options.utf8Decoder(value);\n                        input[prop.target] = options.base64Encoder(valueForHash);\n                    }\n                }\n                else {\n                    valueForHash = ArrayBuffer.isView(value)\n                        ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n                        : new Uint8Array(value);\n                    input[prop.target] = options.base64Encoder(valueForHash);\n                }\n                const hash = new options.md5();\n                hash.update(valueForHash);\n                input[prop.hash] = options.base64Encoder(await hash.digest());\n            }\n        }\n        return next({\n            ...args,\n            input,\n        });\n    };\n}\nexport const ssecMiddlewareOptions = {\n    name: \"ssecMiddleware\",\n    step: \"initialize\",\n    tags: [\"SSE\"],\n    override: true,\n};\nexport const getSsecPlugin = (config) => ({\n    applyToStack: (clientStack) => {\n        clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n    },\n});\nexport function isValidBase64EncodedSSECustomerKey(str, options) {\n    const base64Regex = /^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n    if (!base64Regex.test(str))\n        return false;\n    try {\n        const decodedBytes = options.base64Decoder(str);\n        return decodedBytes.length === 32;\n    }\n    catch {\n        return false;\n    }\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CompleteMultipartUploadOutputFilterSensitiveLog, CompleteMultipartUploadRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CompleteMultipartUploadCommand, se_CompleteMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CompleteMultipartUploadCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CompleteMultipartUpload\", {})\n    .n(\"S3Client\", \"CompleteMultipartUploadCommand\")\n    .f(CompleteMultipartUploadRequestFilterSensitiveLog, CompleteMultipartUploadOutputFilterSensitiveLog)\n    .ser(se_CompleteMultipartUploadCommand)\n    .de(de_CompleteMultipartUploadCommand)\n    .build() {\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { CreateMultipartUploadOutputFilterSensitiveLog, CreateMultipartUploadRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CreateMultipartUploadCommand, se_CreateMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CreateMultipartUploadCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"CreateMultipartUpload\", {})\n    .n(\"S3Client\", \"CreateMultipartUploadCommand\")\n    .f(CreateMultipartUploadRequestFilterSensitiveLog, CreateMultipartUploadOutputFilterSensitiveLog)\n    .ser(se_CreateMultipartUploadCommand)\n    .de(de_CreateMultipartUploadCommand)\n    .build() {\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getS3ExpiresMiddlewarePlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { GetObjectOutputFilterSensitiveLog, GetObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectCommand, se_GetObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getFlexibleChecksumsPlugin(config, {\n            requestChecksumRequired: false,\n            requestValidationModeMember: \"ChecksumMode\",\n            responseAlgorithms: [\"CRC64NVME\", \"CRC32\", \"CRC32C\", \"SHA256\", \"SHA1\"],\n        }),\n        getSsecPlugin(config),\n        getS3ExpiresMiddlewarePlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"GetObject\", {})\n    .n(\"S3Client\", \"GetObjectCommand\")\n    .f(GetObjectRequestFilterSensitiveLog, GetObjectOutputFilterSensitiveLog)\n    .ser(se_GetObjectCommand)\n    .de(de_GetObjectCommand)\n    .build() {\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { ListPartsRequestFilterSensitiveLog } from \"../models/models_0\";\nimport { de_ListPartsCommand, se_ListPartsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListPartsCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"ListParts\", {})\n    .n(\"S3Client\", \"ListPartsCommand\")\n    .f(ListPartsRequestFilterSensitiveLog, void 0)\n    .ser(se_ListPartsCommand)\n    .de(de_ListPartsCommand)\n    .build() {\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { commonParams } from \"../endpoint/EndpointParameters\";\nimport { UploadPartOutputFilterSensitiveLog, UploadPartRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_UploadPartCommand, se_UploadPartCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class UploadPartCommand extends $Command\n    .classBuilder()\n    .ep({\n    ...commonParams,\n    Bucket: { type: \"contextParams\", name: \"Bucket\" },\n    Key: { type: \"contextParams\", name: \"Key\" },\n})\n    .m(function (Command, cs, config, o) {\n    return [\n        getSerdePlugin(config, this.serialize, this.deserialize),\n        getEndpointPlugin(config, Command.getEndpointParameterInstructions()),\n        getFlexibleChecksumsPlugin(config, {\n            requestAlgorithmMember: { httpHeader: \"x-amz-sdk-checksum-algorithm\", name: \"ChecksumAlgorithm\" },\n            requestChecksumRequired: false,\n        }),\n        getThrow200ExceptionsPlugin(config),\n        getSsecPlugin(config),\n    ];\n})\n    .s(\"AmazonS3\", \"UploadPart\", {})\n    .n(\"S3Client\", \"UploadPartCommand\")\n    .f(UploadPartRequestFilterSensitiveLog, UploadPartOutputFilterSensitiveLog)\n    .ser(se_UploadPartCommand)\n    .de(de_UploadPartCommand)\n    .build() {\n}\n","import { buildQueryString } from \"@smithy/querystring-builder\";\nexport function formatUrl(request) {\n    const { port, query } = request;\n    let { protocol, path, hostname } = request;\n    if (protocol && protocol.slice(-1) !== \":\") {\n        protocol += \":\";\n    }\n    if (port) {\n        hostname += `:${port}`;\n    }\n    if (path && path.charAt(0) !== \"/\") {\n        path = `/${path}`;\n    }\n    let queryString = query ? buildQueryString(query) : \"\";\n    if (queryString && queryString[0] !== \"?\") {\n        queryString = `?${queryString}`;\n    }\n    let auth = \"\";\n    if (request.username != null || request.password != null) {\n        const username = request.username ?? \"\";\n        const password = request.password ?? \"\";\n        auth = `${username}:${password}@`;\n    }\n    let fragment = \"\";\n    if (request.fragment) {\n        fragment = `#${request.fragment}`;\n    }\n    return `${protocol}//${auth}${hostname}${path}${queryString}${fragment}`;\n}\n","export const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const SHA256_HEADER = \"X-Amz-Content-Sha256\";\nexport const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const HOST_HEADER = \"host\";\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\n","import { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport class S3RequestPresigner {\n    signer;\n    constructor(options) {\n        const resolvedOptions = {\n            service: options.signingName || options.service || \"s3\",\n            uriEscapePath: options.uriEscapePath || false,\n            applyChecksum: options.applyChecksum || false,\n            ...options,\n        };\n        this.signer = new SignatureV4MultiRegion(resolvedOptions);\n    }\n    presign(requestToSign, { unsignableHeaders = new Set(), hoistableHeaders = new Set(), unhoistableHeaders = new Set(), ...options } = {}) {\n        this.prepareRequest(requestToSign, {\n            unsignableHeaders,\n            unhoistableHeaders,\n            hoistableHeaders,\n        });\n        return this.signer.presign(requestToSign, {\n            expiresIn: 900,\n            unsignableHeaders,\n            unhoistableHeaders,\n            ...options,\n        });\n    }\n    presignWithCredentials(requestToSign, credentials, { unsignableHeaders = new Set(), hoistableHeaders = new Set(), unhoistableHeaders = new Set(), ...options } = {}) {\n        this.prepareRequest(requestToSign, {\n            unsignableHeaders,\n            unhoistableHeaders,\n            hoistableHeaders,\n        });\n        return this.signer.presignWithCredentials(requestToSign, credentials, {\n            expiresIn: 900,\n            unsignableHeaders,\n            unhoistableHeaders,\n            ...options,\n        });\n    }\n    prepareRequest(requestToSign, { unsignableHeaders = new Set(), unhoistableHeaders = new Set(), hoistableHeaders = new Set(), } = {}) {\n        unsignableHeaders.add(\"content-type\");\n        Object.keys(requestToSign.headers)\n            .map((header) => header.toLowerCase())\n            .filter((header) => header.startsWith(\"x-amz-server-side-encryption\"))\n            .forEach((header) => {\n            if (!hoistableHeaders.has(header)) {\n                unhoistableHeaders.add(header);\n            }\n        });\n        requestToSign.headers[SHA256_HEADER] = UNSIGNED_PAYLOAD;\n        const currentHostHeader = requestToSign.headers.host;\n        const port = requestToSign.port;\n        const expectedHostHeader = `${requestToSign.hostname}${requestToSign.port != null ? \":\" + port : \"\"}`;\n        if (!currentHostHeader || (currentHostHeader === requestToSign.hostname && requestToSign.port != null)) {\n            requestToSign.headers.host = expectedHostHeader;\n        }\n    }\n}\n","import { formatUrl } from \"@aws-sdk/util-format-url\";\nimport { getEndpointFromInstructions } from \"@smithy/middleware-endpoint\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { S3RequestPresigner } from \"./presigner\";\nexport const getSignedUrl = async (client, command, options = {}) => {\n    let s3Presigner;\n    let region;\n    if (typeof client.config.endpointProvider === \"function\") {\n        const endpointV2 = await getEndpointFromInstructions(command.input, command.constructor, client.config);\n        const authScheme = endpointV2.properties?.authSchemes?.[0];\n        if (authScheme?.name === \"sigv4a\") {\n            region = authScheme?.signingRegionSet?.join(\",\");\n        }\n        else {\n            region = authScheme?.signingRegion;\n        }\n        s3Presigner = new S3RequestPresigner({\n            ...client.config,\n            signingName: authScheme?.signingName,\n            region: async () => region,\n        });\n    }\n    else {\n        s3Presigner = new S3RequestPresigner(client.config);\n    }\n    const presignInterceptMiddleware = (next, context) => async (args) => {\n        const { request } = args;\n        if (!HttpRequest.isInstance(request)) {\n            throw new Error(\"Request to be presigned is not an valid HTTP request.\");\n        }\n        delete request.headers[\"amz-sdk-invocation-id\"];\n        delete request.headers[\"amz-sdk-request\"];\n        delete request.headers[\"x-amz-user-agent\"];\n        let presigned;\n        const presignerOptions = {\n            ...options,\n            signingRegion: options.signingRegion ?? context[\"signing_region\"] ?? region,\n            signingService: options.signingService ?? context[\"signing_service\"],\n        };\n        if (context.s3ExpressIdentity) {\n            presigned = await s3Presigner.presignWithCredentials(request, context.s3ExpressIdentity, presignerOptions);\n        }\n        else {\n            presigned = await s3Presigner.presign(request, presignerOptions);\n        }\n        return {\n            response: {},\n            output: {\n                $metadata: { httpStatusCode: 200 },\n                presigned,\n            },\n        };\n    };\n    const middlewareName = \"presignInterceptMiddleware\";\n    const clientStack = client.middlewareStack.clone();\n    clientStack.addRelativeTo(presignInterceptMiddleware, {\n        name: middlewareName,\n        relation: \"before\",\n        toMiddleware: \"awsAuthMiddleware\",\n        override: true,\n    });\n    const handler = command.resolveMiddleware(clientStack, client.config, {});\n    const { output } = await handler({ input: command.input });\n    const { presigned } = output;\n    return formatUrl(presigned);\n};\n","import {\n  AbortMultipartUploadCommand,\n  CompleteMultipartUploadCommand,\n  CreateMultipartUploadCommand,\n  GetObjectCommand,\n  ListPartsCommand,\n  S3Client,\n  UploadPartCommand,\n} from '@aws-sdk/client-s3';\nimport { getSignedUrl } from '@aws-sdk/s3-request-presigner';\n\nexport default class AwsS3MultipartUploadHelper {\n  constructor(options) {\n    this.options = {\n      endpoint: options.endpoint || null,\n      region: options.region || 'us-east-1',\n      bucket: options.bucket,\n      acl: options.acl || 'public-read',\n      expires: options.expires || 5 * 60,\n      prefix: options.prefix || null,\n      forcePathStyle: options.forcePathStyle || false,\n      serviceAlias: options.serviceAlias,\n    };\n\n    const credentials = {\n      accessKeyId: options.credentials.accessKeyId,\n      secretAccessKey: options.credentials.secretAccessKey,\n      sessionToken: options.credentials.sessionToken,\n    };\n\n    this.s3 = new S3Client({\n      credentials,\n      signatureVersion: 'v4',\n      endpoint: this.options.endpoint,\n      region: this.options.region,\n      forcePathStyle: this.options.forcePathStyle,\n      correctClockSkew: true,\n      retryDelayOptions: {\n        base: 100,\n        customBackoff: (retryCount) => {\n          if (retryCount > 2) return -1;\n\n          return (retryCount + 1) * 200;\n        },\n      },\n    });\n  }\n\n  createMultipartUpload(file) {\n    return new Promise((resolve, reject) => {\n      const key = file.name;\n\n      this.s3\n        .send(\n          new CreateMultipartUploadCommand({\n            Bucket: this.options.bucket,\n            Key: key,\n            ACL: this.options.acl,\n            ContentType: file.type,\n          }),\n        )\n        .then((data) =>\n          resolve({\n            key: data.Key,\n            uploadId: data.UploadId,\n          }),\n        )\n        .catch((error) => reject(error));\n    });\n  }\n\n  listParts(file, { key, uploadId }) {\n    return new Promise((resolve, reject) => {\n      let parts = [];\n\n      const listPartsPart = (part) => {\n        this.s3\n          .send(\n            new ListPartsCommand({\n              Bucket: this.options.bucket,\n              Key: key,\n              UploadId: uploadId,\n              PartNumberMarker: part,\n            }),\n          )\n          .then((data) => {\n            parts = parts.concat(data.Parts);\n            if (data.IsTruncated) {\n              listPartsPart(data.NextPartNumberMarker);\n            } else {\n              resolve(parts);\n            }\n          })\n          .catch((error) => reject(error));\n      };\n\n      listPartsPart(0);\n    });\n  }\n\n  prepareUploadPart(file, { uploadId, key, partNumber }) {\n    return new Promise((resolve, reject) => {\n      const command = new UploadPartCommand({\n        Bucket: this.options.bucket,\n        Key: key,\n        UploadId: uploadId,\n        PartNumber: partNumber,\n        Body: '',\n      });\n\n      getSignedUrl(this.s3, command, { expiresIn: this.options.expires })\n        .then((url) => resolve({ partNumber, url }))\n        .catch((error) => reject(error));\n    });\n  }\n\n  prepareUploadParts(file, partData) {\n    return new Promise((resolve, reject) => {\n      const promises = partData.parts.map((part) =>\n        this.prepareUploadPart(file, {\n          uploadId: partData.uploadId,\n          key: partData.key,\n          partNumber: part.number,\n        }),\n      );\n\n      Promise.all(promises)\n        .catch(() => reject({ source: { status: 500 } }))\n        .then((preparedParts) => {\n          const presignedUrls = {};\n\n          for (const preparedPart of preparedParts) {\n            presignedUrls[preparedPart.partNumber.toString()] = preparedPart.url;\n          }\n\n          resolve({ presignedUrls });\n        });\n    });\n  }\n\n  abortMultipartUpload(file, { key, uploadId }) {\n    return new Promise((resolve) => {\n      this.s3\n        .send(\n          new AbortMultipartUploadCommand({\n            Bucket: this.options.bucket,\n            Key: key,\n            UploadId: uploadId,\n          }),\n        )\n        .then(() => resolve({}))\n        .catch(() => resolve({}));\n    });\n  }\n\n  completeMultipartUpload(file, { key, uploadId, parts }) {\n    return new Promise((resolve, reject) => {\n      this.s3\n        .send(\n          new CompleteMultipartUploadCommand({\n            Bucket: this.options.bucket,\n            Key: key,\n            UploadId: uploadId,\n            MultipartUpload: {\n              Parts: this.uniqueParts(parts),\n            },\n          }),\n        )\n        .then((data) => resolve({ location: data.Location }))\n        .catch((error) => reject(error));\n    });\n  }\n\n  getSignedUrl(key, { expiresIn = 24 * 60 * 60 } = {}) {\n    const command = new GetObjectCommand({\n      Bucket: this.options.bucket,\n      Key: key,\n    });\n\n    return getSignedUrl(this.s3, command, { expiresIn });\n  }\n\n  uniqueParts(parts) {\n    const addedPartNumbers = [];\n    const uniqueParts = [];\n\n    for (const part of parts) {\n      if (addedPartNumbers.indexOf(part.PartNumber) < 0) {\n        addedPartNumbers.push(part.PartNumber);\n        uniqueParts.push(part);\n      }\n    }\n\n    return uniqueParts.sort((a, b) => a.PartNumber - b.PartNumber);\n  }\n\n  keyWithPrefix(key) {\n    if (!this.options.prefix) return key;\n\n    return `${this.options.prefix}/${key}`;\n  }\n\n  get metaForUpload() {\n    return {\n      endpoint: this.options.endpoint,\n      region: this.options.region,\n      bucket: this.options.bucket,\n      service_alias: this.options.serviceAlias,\n    };\n  }\n}\n","import AwsS3 from '@uppy/aws-s3';\nimport Uppy from '@uppy/core';\nimport getSpeed from '@uppy/utils/lib/getSpeed';\n\nimport AwsS3MultipartUploadHelper from './aws_s3_multipart_upload_helper';\n\nclass ResumableUpload {\n  constructor(options = {}) {\n    const uploadInfoRequestOptions = options.uploadInfoRequest || {};\n\n    this.options = {\n      debug: false,\n      uploadInfoEndpoint: options.uploadInfoEndpoint || null,\n      uploadInfoData: options.uploadInfoData || {},\n\n      retryTimeout: options.retryTimeout || 5000,\n      awsS3MultipartExpires: options.awsS3MultipartExpires || 2 * 60 * 60,\n      awsS3MultipartLimit: options.awsS3MultipartLimit || 10,\n\n      uploadInfoRequest: {\n        noCsrfTokenHeader: uploadInfoRequestOptions.noCsrfTokenHeader || false,\n        method: uploadInfoRequestOptions.method || 'POST',\n        credentials: uploadInfoRequestOptions.credentials || 'include',\n      },\n    };\n\n    this.props = {\n      service: null,\n      retryTimeouts: new Map(),\n    };\n\n    this.fileMetaPromises = new Map();\n    this.pendingUploads = [];\n    this.uploadProgress = {};\n\n    this.callbacks = new Map([\n      ['initialized', new Set()],\n      ['error', new Set()],\n\n      ['uploadAdded', new Set()],\n      ['uploadStarted', new Set()],\n      ['uploadProgress', new Set()],\n      ['uploadComplete', new Set()],\n      ['uploadStalled', new Set()],\n      ['uploadError', new Set()],\n      ['uploadRetry', new Set()],\n\n      ['totalProgress', new Set()],\n      ['totalComplete', new Set()],\n    ]);\n\n    this.fileCallbacks = new Map();\n  }\n\n  on(event, callback) {\n    this.callbacks.get(event).add(callback);\n  }\n\n  emit(fileId, event, ...args) {\n    if (fileId) {\n      this.emitFileCallbacks(fileId, event, ...args);\n    }\n\n    for (const callback of this.callbacks.get(event)) {\n      callback(...args);\n    }\n  }\n\n  emitFileCallbacks(fileId, event, ...args) {\n    const fileCallbacks = this.fileCallbacks.get(fileId);\n    if (!fileCallbacks) {\n      return;\n    }\n\n    const callback = fileCallbacks[event];\n    if (!callback) {\n      return;\n    }\n\n    callback(...args);\n  }\n\n  initialize() {\n    if (!this.options.uploadInfoEndpoint) {\n      const error = new Error('No upload info endpoint set!');\n\n      this.logError(error);\n      this.emit(null, 'error', { error, errorMessage: error.message });\n\n      return Promise.reject(error);\n    }\n\n    const headers = {\n      'Content-Type': 'application/json',\n      Accept: 'application/json',\n    };\n\n    if (!this.options.uploadInfoRequest.noCsrfTokenHeader) {\n      const csrfTokenMetaTag = document.querySelector(\"meta[name='csrf-token']\");\n      if (csrfTokenMetaTag) {\n        headers['X-CSRF-Token'] = csrfTokenMetaTag.content;\n      } else {\n        console.warn('CSRF token meta tag not found!');\n      }\n    }\n\n    const data = JSON.stringify(this.options.uploadInfoData);\n\n    return fetch(this.options.uploadInfoEndpoint, {\n      method: this.options.uploadInfoRequest.method,\n      cache: 'no-cache',\n      credentials: this.options.uploadInfoRequest.credentials,\n      headers,\n      redirect: 'follow',\n      referrerPolicy: 'no-referrer',\n      body: data,\n    })\n      .catch((error) => {\n        this.logError(error);\n        this.emit(null, 'error', { error, errorMessage: 'Upload server is not responding.' });\n\n        throw new Error('Upload server is not responding.');\n      })\n      .then((response) =>\n        response.json().catch((error) => {\n          this.logError(error);\n          this.emit(null, 'error', { error, errorMessage: 'Internal upload server error.' });\n\n          throw new Error('Internal upload server error.');\n        }),\n      )\n      .then((response) => {\n        if (response.success) {\n          this.initializeUppyFromUploadInfo(response.upload_info || response.data);\n          return;\n        }\n\n        const errorMessages = response.errors ? response.errors : ['Server error.'];\n\n        this.emit(null, 'error', {\n          error: null,\n          errorMessage: errorMessages,\n        });\n\n        throw new Error('Server error.');\n      });\n  }\n\n  initializeUppyFromUploadInfo(uploadInfo) {\n    this.service = uploadInfo.service;\n\n    if (uploadInfo.service === 'aws_s3_multipart') {\n      this.initializeUppyWithAwsS3Multipart(uploadInfo);\n    } else {\n      throw new Error(`Unsupported upload service: ${uploadInfo.service}`);\n    }\n\n    this.setupUppyEventHandlers();\n\n    this.emit(null, 'initialized', { service: uploadInfo.service });\n  }\n\n  initializeUppyWithAwsS3Multipart(uploadInfo) {\n    this.awsS3MultipartHelper = new AwsS3MultipartUploadHelper({\n      endpoint: uploadInfo.options.endpoint,\n      region: uploadInfo.options.region,\n      bucket: uploadInfo.options.bucket,\n      acl: uploadInfo.options.acl,\n      prefix: uploadInfo.options.prefix,\n      forcePathStyle: uploadInfo.options.force_path_style,\n      serviceAlias: uploadInfo.options.service_alias,\n      credentials: {\n        accessKeyId: uploadInfo.options.credentials.access_key_id,\n        secretAccessKey: uploadInfo.options.credentials.secret_access_key,\n        sessionToken: uploadInfo.options.credentials.session_token,\n      },\n      expires: this.options.awsS3MultipartExpires,\n    });\n\n    const awsS3Options = {\n      allowedMetaFields: [],\n      limit: this.options.awsS3MultipartLimit,\n      shouldUseMultipart: () => true,\n\n      createMultipartUpload: (file) => this.awsS3MultipartHelper.createMultipartUpload(file),\n      listParts: (file, { uploadId, key }) => this.awsS3MultipartHelper.listParts(file, { uploadId, key }),\n      signPart: (file, { uploadId, key, partNumber, body, signal }) =>\n        this.awsS3MultipartHelper.prepareUploadPart(file, { uploadId, key, partNumber, body, signal }),\n      abortMultipartUpload: (file, { uploadId, key }) =>\n        this.awsS3MultipartHelper.abortMultipartUpload(file, { uploadId, key }),\n      completeMultipartUpload: (file, { uploadId, key, parts }) =>\n        this.awsS3MultipartHelper.completeMultipartUpload(file, { uploadId, key, parts }),\n    };\n\n    this.uppy = new Uppy(this.uploadInfoToUppyOptions(uploadInfo)).use(AwsS3, awsS3Options);\n  }\n\n  startUpload() {\n    return Promise.all(this.fileMetaPromises.values()).then(() => this.uppy.upload());\n  }\n\n  abortUpload() {\n    return this.uppy.cancelAll();\n  }\n\n  retryUpload(fileId) {\n    const retryNumber = ++this.uploadProgress[fileId].retries;\n    this.logDebug('retryUpload', fileId, retryNumber, this.uploadProgress[fileId].retries);\n\n    return this.uppy.retryUpload(fileId);\n  }\n\n  addFile(name, type, data, callbacks = null, meta = null) {\n    let nameForUpload;\n    if (this.awsS3MultipartHelper) {\n      nameForUpload = this.awsS3MultipartHelper.keyWithPrefix(name);\n    } else {\n      nameForUpload = name;\n    }\n\n    const fileId = this.uppy.addFile({\n      name: nameForUpload,\n      type,\n      data,\n      source: 'Local',\n      isRemote: false,\n    });\n\n    this._setFileMeta(fileId, name, meta);\n    this._addFileCallbacks(fileId, callbacks);\n    this._addUpload(fileId, data);\n\n    return fileId;\n  }\n\n  _addFileCallbacks(fileId, callbacks) {\n    if (callbacks) {\n      this.fileCallbacks.set(fileId, callbacks);\n    }\n  }\n\n  _setFileMeta(fileId, name, meta) {\n    this.fileMetaPromises.set(\n      fileId,\n      (async () => {\n        const uploadMeta = { ...(meta || {}) };\n        if (this.awsS3MultipartHelper) {\n          const s3Key = this.awsS3MultipartHelper.keyWithPrefix(name);\n          const s3GetUrl = await this.awsS3MultipartHelper.getSignedUrl(s3Key);\n\n          uploadMeta.s3 = {\n            key: s3Key,\n            getUrl: s3GetUrl,\n            ...this.awsS3MultipartHelper.metaForUpload,\n          };\n        }\n\n        if (Object.keys(uploadMeta).length > 0) {\n          this.uppy.setFileMeta(fileId, uploadMeta);\n        }\n      })(),\n    );\n  }\n\n  _addUpload(fileId, data) {\n    this.pendingUploads.push(fileId);\n    this.uploadProgress[fileId] = this.createEmptyUploadProgress(fileId, data);\n\n    this.emit(fileId, 'uploadAdded', this.uploadProgress[fileId]);\n  }\n\n  setupUppyEventHandlers() {\n    this.uppy.on('file-added', (file) => this.logDebug('file-added', file));\n    this.uppy.on('file-removed', (file) => {\n      this.logDebug('file-removed', file);\n      this.removeRetryTimeout(file.id);\n    });\n    this.uppy.on('upload', (uploadID, files) => {\n      this.logDebug('upload', uploadID, files);\n      this.setUploadStart(files);\n    });\n    this.uppy.on('upload-progress', (file, progress) => this.setUploadProgress(file, progress));\n    this.uppy.on('upload-success', (file, response) => {\n      this.logDebug('upload-success', file, response);\n      this.setUploadComplete(file, response);\n    });\n    this.uppy.on('complete', (result) => {\n      this.logDebug('complete', result);\n\n      if (Object.keys(this.uploadProgress).length === 0) {\n        this.setTotalComplete();\n      }\n    });\n    this.uppy.on('error', () => this.logError('error', this.uppy.getState().error));\n    this.uppy.on('upload-error', (file, error, response) => {\n      this.logError('upload-error', file, error, response);\n      this.setUploadErrorAndRetry(file, error, response);\n    });\n    this.uppy.on('upload-retry', (fileId) => {\n      this.logDebug('upload-retry', fileId);\n      this.emit(fileId, 'uploadRetry', this.uploadProgress[fileId]);\n    });\n    this.uppy.on('info-visible', () => this.logDebug('info-visible', this.uppy.getState().info));\n    this.uppy.on('info-hidden', () => this.logDebug('info-hidden'));\n    this.uppy.on('cancel-all', () => this.logDebug('cancel-all'));\n    this.uppy.on('restriction-failed', (file, error) => this.logDebug('restriction-failed', file, error));\n    this.uppy.on('reset-progress', () => this.logDebug('reset-progress'));\n  }\n\n  setUploadStart(files) {\n    for (const file of files) {\n      const fileId = file.id;\n\n      this.uploadProgress[fileId].started = true;\n      this.uploadProgress[fileId].lastUpdateAt = window.performance.now();\n\n      this.emit(fileId, 'uploadStarted', this.uploadProgress[fileId]);\n    }\n  }\n\n  setUploadProgress(file, progress) {\n    if (this.uploadProgress[file.id].error) {\n      this.uploadProgress[file.id].error = false;\n    }\n\n    this.uploadProgress[file.id].bytesUploaded = progress.bytesUploaded;\n    this.uploadProgress[file.id].bytesTotal = progress.bytesTotal;\n    this.uploadProgress[file.id].progress = (progress.bytesUploaded / progress.bytesTotal) * 100;\n    this.uploadProgress[file.id].speed = getSpeed(this.uploadProgress[file.id]);\n    this.uploadProgress[file.id].lastUpdateAt = window.performance.now();\n\n    this.emit(file.id, 'uploadProgress', this.uploadProgress[file.id]);\n\n    this.updateTotalProgress();\n  }\n\n  setUploadComplete(file, response) {\n    const pendingUploadIndex = this.pendingUploads.indexOf(file.id);\n    this.pendingUploads.splice(pendingUploadIndex, 1);\n\n    if (this.uploadProgress[file.id]) {\n      this.uploadProgress[file.id].complete = true;\n\n      this.uploadProgress[file.id].response = response;\n\n      if (file.meta) {\n        this.uploadProgress[file.id].meta = file.meta;\n      }\n    }\n\n    this.fileMetaPromises.delete(file.id);\n\n    this.emit(file.id, 'uploadComplete', this.uploadProgress[file.id]);\n\n    this.setTotalComplete();\n  }\n\n  setTotalComplete() {\n    if (this.pendingUploads.length === 0) {\n      this.emit(null, 'totalComplete', this.uploadProgress);\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  setUploadErrorAndRetry(file, error, response) {\n    let retry = true;\n    let errorMessage;\n    let errorType = 'error';\n\n    if (error.code === 'ExpiredToken') {\n      retry = false;\n      errorMessage = 'Your upload session expired. Reload the page and start your upload again.';\n    } else if (error.code === 'NoSuchUpload' || error.code === 'InvalidAccessKeyId' || error.code === 'AccessDenied') {\n      retry = false;\n      errorMessage = 'Amazon S3 upload error occurred. Reload the page and start your upload again.';\n    } else if (error.code === 'RequestTimeTooSkewed') {\n      retry = false;\n      errorMessage = 'Check your computer time if it is set properly. Then start your upload again.';\n    } else if (error.code === 'NetworkingError' || (error.code === undefined && error.message === 'Unknown error')) {\n      errorMessage =\n        'Uploading failed due to a network error. Check your Internet connection and firewall. We will automatically retry uploading your files.';\n      errorType = 'warning';\n    } else if (error.code === 'TimeoutError') {\n      errorMessage =\n        'Uploading timed out. This can be caused by poor Internet connection. Please wait while we automatically retry uploading your files.';\n      errorType = 'warning';\n    } else if (error.code === 'AwsS3/Multipart') {\n      errorMessage =\n        'Amazon S3 upload error occurred. We will automatically retry uploading your files. If problem persists reload the page and start your upload again.';\n    } else {\n      errorMessage =\n        'Unknown upload error occurred. We will automatically retry uploading your files. If problem persists reload the page and start your upload again.';\n      errorMessage += ` [${error.message}]`;\n    }\n\n    if (retry) {\n      this.uploadProgress[file.id].error = true;\n      this.uploadProgress[file.id].errorMessage = errorMessage;\n      this.uploadProgress[file.id].errorType = errorType;\n\n      this.emit(file.id, 'uploadError', this.uploadProgress[file.id]);\n\n      if (this.options.retryTimeout) {\n        const retryTimeout = setTimeout(() => {\n          this.removeRetryTimeout(file.id);\n          this.retryUpload(file.id).catch(() => {});\n        }, this.options.retryTimeout);\n\n        this.addRetryTimeout(file.id, retryTimeout);\n      }\n    } else {\n      this.uppy.cancelAll();\n      this.emit(null, 'error', { error, type: errorType, message: [errorMessage] });\n    }\n  }\n\n  updateTotalProgress() {\n    let totalSpeed = 0;\n    let totalUploadedBytes = 0;\n    let totalBytes = 0;\n\n    for (const fileId of Object.keys(this.uploadProgress)) {\n      const progress = this.uploadProgress[fileId];\n\n      totalUploadedBytes += progress.bytesUploaded;\n      totalBytes += progress.bytesTotal;\n\n      if (!progress.error) {\n        totalSpeed += progress.speed;\n\n        if (!progress.complete && progress.bytesTotal > 0) {\n          const diff = window.performance.now() - progress.lastUpdateAt;\n\n          if (diff > 60000) {\n            this.emit(fileId, 'uploadStalled', progress);\n          } else if (progress.bytesUploaded === progress.bytesTotal && diff > 30000) {\n            this.emit(fileId, 'uploadStalled', progress);\n          }\n        }\n      }\n    }\n\n    const totalProgress = {\n      pendingFiles: this.pendingUploads.length,\n      totalFiles: Object.keys(this.uploadProgress).length,\n      totalSpeed,\n      totalUploadedBytes,\n      totalBytes,\n      totalProgress: (totalUploadedBytes / totalBytes) * 100,\n      timeRemaining: (totalBytes - totalUploadedBytes) / totalSpeed,\n    };\n\n    this.emit(null, 'totalProgress', totalProgress);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  uploadInfoToUppyOptions(uploadInfo) {\n    return {\n      debug: this.options.debug,\n      meta: {},\n    };\n  }\n\n  createEmptyUploadProgress(fileId, data) {\n    return {\n      fileId,\n      uploadStarted: new Date(),\n      bytesUploaded: 0,\n      bytesTotal: data.size || 0,\n      progress: 0,\n      speed: 0,\n      retries: 0,\n      lastUpdateAt: window.performance.now(),\n      started: false,\n      complete: false,\n      error: false,\n      errorMessage: '',\n    };\n  }\n\n  addRetryTimeout(fileId, retryTimeout) {\n    this.props.retryTimeouts.set(fileId, retryTimeout);\n  }\n\n  removeRetryTimeout(fileId) {\n    if (!this.props.retryTimeouts.has(fileId)) return;\n\n    clearTimeout(this.props.retryTimeouts.get(fileId));\n    this.props.retryTimeouts.delete(fileId);\n  }\n\n  clearAllRetryTimeouts() {\n    for (const timeout of this.props.retryTimeouts.values()) {\n      clearTimeout(timeout);\n    }\n\n    this.props.retryTimeouts.clear();\n  }\n\n  logError(...args) {\n    console.warn(args);\n  }\n\n  logDebug(...args) {\n    if (!this.options.debug) return;\n\n    // eslint-disable-next-line no-console\n    console.log(...args);\n  }\n\n  get initialized() {\n    return !!this.uppy;\n  }\n\n  get service() {\n    return this.props.service;\n  }\n\n  set service(service) {\n    this.props.service = service;\n  }\n}\n\nexport default ResumableUpload;\n","const fuseColors = {\n  primary: {\n    DEFAULT: \"#2BCDA8\",\n    hover: \"#51DABB\",\n    focus: \"#80FFE2\"\n  },\n  red: {\n    DEFAULT: \"#F0353D\",\n    light: \"#FFB0B0\",\n    dark: \"#502B2B\"\n  },\n  orange: {\n    DEFAULT: \"#FF9900\"\n  },\n  green: {\n    DEFAULT: \"#63CF51\",\n    light: \"#42E4BF\",\n    dark: \"#2d3e3a\"\n  },\n  purple: {\n    DEFAULT: \"#B69ADB\",\n    dark: \"#5a526c\",\n    subtle: \"#403e89\"\n  },\n  lightgrey: \"#f9f9fa\",\n  grey: \"#545454\",\n  semidark: \"#343039\",\n  dark: \"#1D1D1D\",\n  gradient: {\n    from: \"#3D3580\",\n    to: \"#593370\"\n  },\n  state: {\n    succ: \"#63CF51\",\n    err: \"#F0353D\",\n    warn: \"#FF9900\",\n    info: \"#187DDA\"\n  },\n  disabled: {\n    green: \"#4F786F\",\n    grey: \"#3C3C3C\"\n  },\n  facebook: \"#3B5998\",\n  linkedin: \"#007AB9\",\n  twitter: \"#55ACEE\"\n};\nexport {\n  fuseColors as default\n};\n"],"names":["formatSize","size","units","readEntriesPromise","directoryReader","resolve","reject","error","readDirectoryEntries","directoryEntry","directoryEntries","readEntries","getFilesFromDataTransfer","dataTransfer","items","queue","fileEntries","entry","filePromises","fileEntry","accept","file","addClasses","args","classes","className","key","value","index","self","getSpeed","fileProgress","timeElapsed","getHttpHandlerExtensionConfiguration","runtimeConfig","httpHandler","handler","resolveHttpHandlerRuntimeConfig","httpHandlerExtensionConfiguration","HttpAuthLocation","HttpApiKeyAuthLocation","EndpointURLScheme","AlgorithmId","FieldPosition","SMITHY_CONTEXT_KEY","IniSectionType","RequestHandlerProtocol","HttpRequest","options","request","cloned","cloneQuery","req","query","carry","paramName","param","HttpResponse","response","resp","addExpectContinueMiddleware","next","_b","_a","addExpectContinueMiddlewareOptions","getAddExpectContinuePlugin","clientStack","RequestChecksumCalculation","DEFAULT_REQUEST_CHECKSUM_CALCULATION","ResponseChecksumValidation","DEFAULT_RESPONSE_CHECKSUM_VALIDATION","ChecksumAlgorithm","ChecksumLocation","DEFAULT_CHECKSUM_ALGORITHM","SelectorType","setCredentialFeature","credentials","feature","setFeature","context","getDateHeader","getSkewCorrectedDate","systemClockOffset","isClockSkewed","clockTime","getUpdatedSystemClockOffset","currentSystemClockOffset","clockTimeInMs","throwSigningPropertyError","name","property","validateSigningProperties","signingProperties","config","authScheme","_c","signer","signingRegion","signingRegionSet","signingName","AwsSdkSigV4Signer","httpRequest","identity","validatedProps","handlerExecutionContext","first","second","serverTime","initialSystemClockOffset","httpResponse","dateHeader","AwsSdkSigV4ASigner","multiRegionOverride","getSmithyContext","normalizeProvider","input","promisified","convertHttpAuthSchemesToMap","httpAuthSchemes","map","scheme","httpAuthSchemeMiddleware","mwOptions","authSchemes","smithyContext","failureReasons","option","identityProvider","identityProperties","httpAuthSchemeEndpointRuleSetMiddlewareOptions","getHttpAuthSchemeEndpointRuleSetPlugin","httpAuthSchemeParametersProvider","identityProviderConfigProvider","deserializerMiddleware","deserializer","parsed","hint","serializerMiddleware","serializer","endpoint","deserializerMiddlewareOption","serializerMiddlewareOption","getSerdePlugin","commandStack","defaultErrorHandler","defaultSuccessHandler","httpSigningMiddleware","output","httpSigningMiddlewareOptions","getHttpSigningPlugin","alphabetByEncoding","alphabetByValue","i","start","limit","char","bitsPerLetter","bitsPerByte","maxLetterValue","fromBase64","totalByteLength","out","dataView","bits","bitLength","j","chunkOffset","byteLength","k","offset","fromUtf8","toUint8Array","data","toUtf8","toBase64","_input","isArrayLike","isUint8Array","str","bitClusterCount","transformToString","payload","encoding","transformFromString","Uint8ArrayBlobAdapter","source","getAwsChunkedEncodingStream","readableStream","base64Encoder","bodyLengthChecker","checksumAlgorithmFn","checksumLocationName","streamHasher","checksumRequired","digest","reader","controller","done","checksum","escapeUri","uri","hexEncode","c","buildQueryString","parts","iLen","qsEntry","createRequest","url","requestOptions","requestTimeout","timeoutInMs","timeoutError","keepAliveSupport","FetchHttpHandler","instanceOrOptions","opts","abortSignal","requestTimeoutInMs","keepAlive","abortError","path","queryString","auth","username","password","port","method","body","removeSignalEventListener","fetchRequest","raceOfPromises","fetchHeaders","transformedHeaders","pair","onAbort","signal","streamCollector","stream","collectBlob","collectStream","blob","base64","readToBase64","arrayBuffer","chunks","isDone","length","collected","chunk","result","commaIndex","dataOffset","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","fromHex","encoded","toHex","bytes","isReadableStream","ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED","sdkStreamMixin","isBlobInstance","transformed","transformToByteArray","blobToWebStream","buf","splitStream","headStream","byteLengthCounter","ReadableStreamRef","ChecksumStream","createChecksumStream","expectedChecksum","checksumSourceLocation","encoder","transform","received","readable","collectBody","streamBody","fromContext","extendedEncodeURIComponent","resolvedPath","memberName","labelValueProvider","uriLabel","isGreedyLabel","labelValue","segment","requestBuilder","RequestBuilder","hostname","protocol","basePath","resolvePath","headers","DefaultIdentityProviderConfig","schemeId","createIsIdentityExpiredFunction","expirationMs","doesIdentityRequireRefresh","EXPIRATION_MS","isIdentityExpired","memoizeIdentityProvider","provider","isExpired","requiresRefresh","normalizedProvider","resolved","pending","hasResult","isConstant","coalesceProvider","memoize","resolveAwsSdkSigV4AConfig","ALGORITHM_QUERY_PARAM","CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","SIGNED_HEADERS_QUERY_PARAM","EXPIRES_QUERY_PARAM","SIGNATURE_QUERY_PARAM","TOKEN_QUERY_PARAM","AUTH_HEADER","AMZ_DATE_HEADER","DATE_HEADER","GENERATED_HEADERS","SIGNATURE_HEADER","SHA256_HEADER","TOKEN_HEADER","ALWAYS_UNSIGNABLE_HEADERS","PROXY_HEADER_PATTERN","SEC_HEADER_PATTERN","ALGORITHM_IDENTIFIER","EVENT_ALGORITHM_IDENTIFIER","UNSIGNED_PAYLOAD","MAX_CACHE_SIZE","KEY_TYPE_IDENTIFIER","MAX_PRESIGNED_TTL","signingKeyCache","cacheQueue","createScope","shortDate","region","service","getSigningKey","sha256Constructor","credsHash","hmac","cacheKey","signable","ctor","secret","hash","getCanonicalHeaders","unsignableHeaders","signableHeaders","canonical","headerName","canonicalHeaderName","getCanonicalQuery","keys","serialized","encodedKey","isArrayBuffer","arg","getPayloadHash","hashConstructor","hashCtor","HeaderFormatter","position","header","shortView","intView","longBytes","binView","binBytes","utf8Bytes","strView","strBytes","tsBytes","Int64","UUID_PATTERN","uuidBytes","HEADER_VALUE_TYPE","Int64$1","number","remaining","negate","negative","hasHeader","soughtHeader","moveHeadersToQuery","lname","prepareRequest","iso8601","time","toDate","SignatureV4","applyChecksum","sha256","uriEscapePath","originalRequest","signingDate","expiresIn","unhoistableHeaders","hoistableHeaders","signingService","longDate","formatDate","scope","canonicalHeaders","getCanonicalHeaderList","toSign","priorSignature","hashedPayload","hashedHeaders","stringToSign","signableMessage","signature","requestToSign","payloadHash","sortedHeaders","credentialScope","canonicalRequest","hashedRequest","normalizedPathSegments","pathSegment","normalizedPath","keyPromise","now","resolveAwsSdkSigV4Config","isUserSupplied","credentialsProvider","boundCredentialsProvider","signingEscapePath","regionInfo","params","SignerCtor","creds","getAllAliases","aliases","_aliases","alias","getMiddlewareNameWithAliases","constructStack","absoluteEntries","relativeEntries","identifyOnResolve","entriesNameSet","sort","entries","a","b","stepWeights","priorityWeights","removeByName","toRemove","isRemoved","filterCb","removeByReference","cloneTo","toStack","stack","expandRelativeMiddlewareList","from","expandedMiddlewareList","getMiddlewareList","debug","normalizedAbsoluteEntries","normalizedRelativeEntries","normalizedEntriesNameMap","normalizedEntry","toMiddleware","wholeList","middleware","override","toOverrideIndex","toOverride","plugin","tags","mw","step","toggle","Client","command","optionsOrCb","cb","callback","useHandlerCache","handlers","err","Command","ClassBuilder","configuration","middlewareFn","clientName","commandName","inputFilterSensitiveLog","outputFilterSensitiveLog","additionalContext","CommandCtor","logger","requestHandler","_","endpointParameterInstructions","middlewareSupplier","operation","inputFilter","outputFilter","closure","CommandRef","SENSITIVE_STRING","parseBoolean","expectNumber","stackTraceWarning","MAX_FLOAT","expectFloat32","expected","expectLong","expectInt32","expectSizedInt","expectShort","expectByte","castInt","expectNonNull","location","expectObject","receivedType","expectString","strictParseFloat32","parseNumber","NUMBER_REGEX","matches","strictParseLong","strictParseInt32","strictParseShort","strictParseByte","message","s","DAYS","MONTHS","dateToUtcString","date","year","month","dayOfWeek","dayOfMonthInt","hoursInt","minutesInt","secondsInt","dayOfMonthString","hoursString","minutesString","secondsString","RFC3339_WITH_OFFSET","parseRfc3339DateTimeWithOffset","match","yearStr","monthStr","dayStr","hours","minutes","seconds","fractionalMilliseconds","offsetStr","stripLeadingZeroes","parseDateValue","day","buildDate","parseOffsetToMilliseconds","IMF_FIXDATE","RFC_850_DATE","ASC_TIME","parseRfc7231DateTime","parseMonthByShortName","adjustRfc850Year","parseTwoDigitYear","adjustedMonth","validateDayOfMonth","parseMilliseconds","thisYear","valueInThisCentury","FIFTY_YEARS_IN_MILLIS","monthIdx","DAYS_IN_MONTH","maxDays","isLeapYear","type","lower","upper","dateVal","directionStr","direction","hour","minute","idx","ServiceException","candidate","instance","decorateServiceException","exception","additions","v","throwDefaultError","parsedBody","exceptionCtor","errorCode","$metadata","deserializeMetadata","statusCode","withBaseException","ExceptionCtor","loadConfigsForDefaultMode","mode","getChecksumConfiguration","checksumAlgorithms","id","algorithmId","algo","resolveChecksumRuntimeConfig","clientConfig","checksumAlgorithm","getRetryConfiguration","_retryStrategy","retryStrategy","resolveRetryRuntimeConfig","retryStrategyConfiguration","getDefaultExtensionConfiguration","resolveDefaultRuntimeConfig","getArrayIfSingleItem","mayBeArray","getValueFromTextNode","obj","textNodeName","isSerializableHeaderValue","NoOpLogger","arg0","arg1","arg2","target","filter","instructions","mapWithFilter","applyInstruction","_instructions","targetKey","_value","defaultFilterPassed","customFilterPassed","serializeDateTime","collectBodyString","nameStartChar","nameChar","nameRegexp","regexName","getAllMatches","string","regex","allmatches","len","isName","exports","arrayMode","util","require$$0","defaultOptions","validator","xmlData","tagFound","reachedRoot","readPI","tagStartPos","readCommentAndCDATA","closingTag","tagName","validateTagName","msg","getErrorObject","getLineNumberForPosition","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","otg","openPos","afterAmp","validateAmpersand","isWhiteSpace","t","tagname","angleBracketsCount","doubleQuote","singleQuote","startChar","tagClosed","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","validateNumberAmpersand","re","count","code","lineNumber","lines","val","jPath","attrs","buildOptions","OptionsBuilder","XmlNode","node","xmlNode","readDocType","entities","hasBody","comment","exp","isEntity","readEntityExp","validateEntityName","isElement","isAttlist","isNotation","isComment","entityName","DocTypeReader","hexRegex","numRegex","consider","toNumber","trimmedStr","sign","leadingZeros","numTrimmedByZeros","trimZeros","eNotation","num","numStr","strnum","require$$1","require$$2","require$$3","OrderedObjParser","addExternalEntities","parseXml","parseTextData","resolveNameSpace","buildAttributesMap","isItStopNode","replaceEntitiesValue","readStopNodeData","saveTextToParentTag","addChild","externalEntities","entKeys","ent","dontTrim","hasAttributes","isLeafNode","escapeEntities","newval","parseValue","prefix","attrsRegx","oldVal","aName","newVal","attrCollection","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","lastTagName","propIndex","tagData","readTagExp","childNode","endIndex","tagExp","rawTagName","attrExpPresent","lastTag","tagContent","entity","stopNodes","currentTagName","allNodesExp","stopNodePath","stopNodeExp","tagExpWithClosingIndex","closingChar","attrBoundary","ch","errMsg","closingIndex","removeNSPrefix","separatorIndex","startIndex","openTagCount","shouldParse","OrderedObjParser_1","prettify","compress","arr","text","compressedObj","tagObj","propName","newJpath","isLeaf","isLeafTag","assignAttributes","attrMap","jpath","atrrName","propCount","node2json","XMLParser","validationOption","orderedObjParser","orderedResult","XMLParser_1","EOL","toXml","jArray","indentation","arrToStr","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr","attr_to_str","tempInd","piTextNodeName","newIdentation","tagStart","tagValue","attr","attrVal","textValue","orderedJs2Xml","buildFromOrderedJs","Builder","isAttribute","processTextOrObjNode","indentate","jObj","level","arrLen","listTagVal","listTagAttr","item","Ks","L","object","tagEndExp","piClosingChar","closeTag","json2xml","XMLBuilder","fxp","parseXmlBody","parser","parsedObj","e","parsedObjToReturn","parseXmlErrorBody","errorBody","loadRestXmlErrorCode","CLIENT_SUPPORTED_ALGORITHMS","PRIORITY_ORDER_ALGORITHMS","getChecksumAlgorithmForRequest","requestChecksumRequired","requestAlgorithmMember","requestChecksumCalculation","getChecksumLocationName","algorithm","hasHeaderWithPrefix","headerPrefix","soughtHeaderPrefix","isStreaming","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","rejected","__generator","f","y","g","verb","n","op","__values","o","m","fromUtf8Browser","convertToBuffer","isEmptyData","numToUint8","uint32ArrayFrom","a_lookUpTable","return_array","a_index","AwsCrc32c","Crc32c","toHash","e_1","data_1","data_1_1","byte","lookupTable","e_1_1","a_lookupTable","AwsCrc32","Crc32","getCrc32ChecksumAlgorithmFunction","selectChecksumAlgorithmFunction","stringHasher","flexibleChecksumsMiddlewareOptions","flexibleChecksumsMiddleware","middlewareConfig","requestBody","requestAlgorithmMemberName","requestAlgorithmMemberHttpHeader","updatedBody","updatedHeaders","rawChecksum","flexibleChecksumsInputMiddlewareOptions","flexibleChecksumsInputMiddleware","requestValidationModeMember","responseChecksumValidation","getChecksumAlgorithmListForResponse","responseAlgorithms","validChecksumAlgorithms","isChecksumWithPartNumber","lastHyphenIndex","numberPart","createReadStreamOnBuffer","buffer","getChecksum","validateChecksumFromResponse","responseBody","responseHeaders","responseHeader","checksumFromResponse","flexibleChecksumsResponseMiddlewareOptions","flexibleChecksumsResponseMiddleware","collectedStream","isStreamingBody","getFlexibleChecksumsPlugin","resolveFlexibleChecksumsConfig","hostHeaderMiddleware","handlerProtocol","host","hostHeaderMiddlewareOptions","getHostHeaderPlugin","loggerMiddleware","dynamoDbDocumentClientOptions","overrideInputFilterSensitiveLog","overrideOutputFilterSensitiveLog","outputWithoutMetadata","loggerMiddlewareOptions","getLoggerPlugin","TRACE_ID_HEADER_NAME","ENV_LAMBDA_FUNCTION_NAME","ENV_TRACE_ID","recursionDetectionMiddleware","functionName","define_process_env_default","traceId","nonEmptyString","addRecursionDetectionMiddlewareOptions","getRecursionDetectionPlugin","regionRedirectEndpointMiddleware","originalRegion","regionProviderRef","unlock","regionRedirectEndpointMiddlewareOptions","regionRedirectMiddleware","actualRegion","regionRedirectMiddlewareOptions","getRegionRedirectMiddlewarePlugin","s3ExpiresMiddleware","s3ExpiresMiddlewareOptions","getS3ExpiresMiddlewarePlugin","_S3ExpressIdentityCache","__publicField","credential","S3ExpressIdentityCache","S3ExpressIdentityCacheEntry","_identity","isRefreshing","accessed","_S3ExpressIdentityProviderImpl","createSessionFn","cache","awsIdentity","session","S3ExpressIdentityProviderImpl","S3_EXPRESS_BUCKET_TYPE","S3_EXPRESS_BACKEND","S3_EXPRESS_AUTH_SCHEME","SESSION_TOKEN_QUERY_PARAM","SESSION_TOKEN_HEADER","SignatureV4S3Express","credentialsWithoutSessionToken","getCredentialsWithoutSessionToken","privateAccess","setSingleOverride","currentCredentialProvider","overrideCredentialsProviderOnce","s3ExpressMiddleware","isS3ExpressAuth","_d","_e","requestBucket","s3ExpressIdentity","s3ExpressMiddlewareOptions","getS3ExpressPlugin","signS3Express","signingOptions","sigV4MultiRegionSigner","signedRequest","s3ExpressHttpSigningMiddleware","getS3ExpressHttpSigningPlugin","resolveS3Config","s3ClientProvider","CreateSessionCommandCtor","THROW_IF_EMPTY_BODY","MAX_BYTES_TO_INSPECT","throw200ExceptionsMiddleware","sourceBody","bodyCopy","bodyBytes","bodyStringTail","throw200ExceptionsMiddlewareOptions","getThrow200ExceptionsPlugin","validate","bucketEndpointMiddleware","bucket","bucketEndpointUrl","warning","bucketEndpointMiddlewareOptions","validateBucketNameMiddleware","bucketEndpoint","Bucket","validateArn","validateBucketNameMiddlewareOptions","getValidateBucketNamePlugin","DEFAULT_UA_APP_ID","isValidUserAgentAppId","appId","resolveUserAgentConfig","normalizedAppIdProvider","EndpointCache","endpointParams","resolver","parameters","IP_V4_REGEX","isIpAddress","VALID_HOST_LABEL_REGEX","isValidHostLabel","allowSubDomains","labels","label","customEndpointFunctions","debugId","toDebugString","EndpointError","booleanEquals","value1","value2","getAttrPathList","pathList","part","squareBracketIndex","arrayIndex","getAttr","acc","isSet","not","DEFAULT_PORTS","parseURL","whatwgURL","urlString","pathname","search","isIp","inputContainsDefaultPort","authority","stringEquals","substring","stop","reverse","uriEncode","endpointFunctions","evaluateTemplate","template","evaluatedTemplateArr","templateContext","currentIndex","openingBraceIndex","closingBraceIndex","parameterName","refName","getReferenceValue","ref","evaluateExpression","keyName","callFunction","fn","argv","evaluatedArgs","fnSegments","evaluateCondition","assign","fnArgs","evaluateConditions","conditions","conditionsReferenceRecord","condition","toAssign","getEndpointHeaders","headerKey","headerVal","headerValEntry","processedExpr","getEndpointProperty","propertyEntry","getEndpointProperties","properties","propertyKey","propertyVal","getEndpointUrl","endpointUrl","expression","evaluateEndpointRule","endpointRule","referenceRecord","endpointRuleOptions","evaluateErrorRule","errorRule","evaluateTreeRule","treeRule","rules","evaluateRules","rule","endpointOrUndefined","resolveEndpoint","ruleSetObject","paramsWithDefault","paramKey","paramDefaultValue","requiredParams","requiredParam","isVirtualHostableS3Bucket","ARN_DELIMITER","RESOURCE_DELIMITER","parseArn","segments","arn","partition","accountId","resourcePath","resourceId","resource","selectedPartitionsInfo","partitionsInfo","partitions","regions","outputs","regionData","regionRegex","DEFAULT_PARTITION","awsEndpointFunctions","ACCOUNT_ID_ENDPOINT_REGEX","checkFeatures","endpointV2","_g","_f","USER_AGENT","X_AMZ_USER_AGENT","SPACE","UA_NAME_SEPARATOR","UA_NAME_ESCAPE_REGEX","UA_VALUE_ESCAPE_REGEX","UA_ESCAPE_CHAR","BYTE_LIMIT","encodeFeatures","features","userAgentMiddleware","userAgent","escapeUserAgent","defaultUserAgent","awsContext","customUserAgent","sdkUserAgentValue","normalUAValue","section","userAgentPair","version","prefixSeparatorIndex","uaName","getUserAgentMiddlewareOptions","getUserAgentPlugin","DEFAULT_USE_DUALSTACK_ENDPOINT","DEFAULT_USE_FIPS_ENDPOINT","isFipsRegion","getRealRegion","resolveRegionConfig","useFipsEndpoint","providedRegion","resolveEventStreamSerdeConfig","CONTENT_LENGTH_HEADER","contentLengthMiddleware","contentLengthMiddlewareOptions","getContentLengthPlugin","resolveParamsForS3","isArnBucketName","isDnsCompatibleBucketName","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","bucketName","isArn","isValidArn","createConfigValueProvider","configKey","canonicalEndpointParamKey","configProvider","configValue","getEndpointFromConfig","serviceId","parseQueryString","querystring","parseUrl","toEndpointV1","getEndpointFromInstructions","commandInput","instructionsSupplier","endpointFromConfig","resolveParams","instruction","endpointMiddleware","httpAuthOption","endpointMiddlewareOptions","getEndpointPlugin","resolveEndpointConfig","tls","customEndpointProvider","resolvedConfig","configuredEndpointPromise","RETRY_MODES","DEFAULT_MAX_ATTEMPTS","DEFAULT_RETRY_MODE","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","NODEJS_TIMEOUT_ERROR_CODES","isClockSkewCorrectedError","isThrottlingError","isTransientError","depth","isServerError","DefaultRateLimiter","currentTimeInSeconds","amount","delay","timestamp","fillAmount","calculatedRate","rateToUse","newRate","timeBucket","currentRate","DEFAULT_RETRY_DELAY_BASE","MAXIMUM_RETRY_DELAY","THROTTLING_RETRY_DELAY_BASE","INITIAL_RETRY_TOKENS","RETRY_COST","TIMEOUT_RETRY_COST","NO_RETRY_INCREMENT","INVOCATION_ID_HEADER","REQUEST_HEADER","getDefaultRetryBackoffStrategy","delayBase","attempts","createDefaultRetryToken","retryDelay","retryCount","retryCost","StandardRetryStrategy","maxAttempts","retryTokenScope","token","errorInfo","errorType","delayFromErrorType","capacityCost","tokenToRenew","AdaptiveRetryStrategy","maxAttemptsProvider","rateLimiter","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","randomUUID","native","v4","rnds","asSdkError","resolveRetryConfig","isStreamingPayload","retryMiddleware","isRetryStrategyV2","retryToken","lastError","totalRetryDelay","isRequest","retryErrorInfo","getRetryErrorInfo","getRetryErrorType","retryAfterHint","getRetryAfterHint","retryMiddlewareOptions","getRetryPlugin","retryAfterHeaderName","retryAfter","retryAfterSeconds","signatureV4CrtContainer","SignatureV4MultiRegion","CrtSignerV4","ci","cj","ck","cl","cm","cn","co","cp","cq","cr","cs","ct","cu","cv","cw","cx","d","h","l","p","q","r","u","w","x","z","A","B","C","D","E","F","G","H","I","J","K","M","N","O","Q","R","S","T","U","V","W","X","Y","Z","aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","an","ao","ap","aq","ar","as","at","au","av","aw","ax","ay","az","aA","aB","aC","aD","aE","aF","aG","aH","aI","aJ","aK","aL","aM","aN","aO","aP","aQ","aR","aS","aT","aU","aV","aW","aX","aY","aZ","ba","bb","bc","bd","be","bf","bg","bh","bi","bj","bk","bl","bm","bn","bo","bp","bq","br","bs","bt","bu","bv","bw","bx","by","bz","bA","bB","bC","bD","bE","bF","bG","bH","bI","bJ","bK","bL","bM","bN","bO","bP","bQ","bR","bS","bT","bU","bV","bW","bX","bY","bZ","ca","cc","cd","ce","cf","cg","_data","ruleSet","defaultEndpointResolver","createEndpointRuleSetHttpAuthSchemeParametersProvider","defaultHttpAuthSchemeParametersProvider","defaultParameters","instructionsFn","endpointParameters","_defaultS3HttpAuthSchemeParametersProvider","defaultS3HttpAuthSchemeParametersProvider","createAwsAuthSigv4HttpAuthOption","authParameters","createAwsAuthSigv4aHttpAuthOption","createEndpointRuleSetHttpAuthSchemeProvider","defaultHttpAuthSchemeResolver","createHttpAuthOptionFunctions","resolvedName","rest","createOption","_defaultS3HttpAuthSchemeProvider","defaultS3HttpAuthSchemeProvider","resolveHttpAuthSchemeConfig","config_0","resolveClientEndpointParameters","commonParams","S3ServiceException","__ServiceException","NoSuchUpload","__BaseException","ObjectNotInActiveTierError","BucketAlreadyExists","BucketAlreadyOwnedByYou","NoSuchBucket","AnalyticsFilter","visitor","MetricsFilter","InvalidObjectState","NoSuchKey","NotFound","CompleteMultipartUploadOutputFilterSensitiveLog","CompleteMultipartUploadRequestFilterSensitiveLog","CreateMultipartUploadOutputFilterSensitiveLog","CreateMultipartUploadRequestFilterSensitiveLog","SessionCredentialsFilterSensitiveLog","CreateSessionOutputFilterSensitiveLog","CreateSessionRequestFilterSensitiveLog","GetObjectOutputFilterSensitiveLog","GetObjectRequestFilterSensitiveLog","ListPartsRequestFilterSensitiveLog","escapeAttribute","escapeElement","XmlText","children","childText","withName","child","field","listName","valueProvider","nodes","containerNode","hasChildren","xmlText","attributes","attributeName","attribute","EncryptionTypeMismatch","InvalidRequest","InvalidWriteOffset","TooManyParts","ObjectAlreadyInActiveTierError","SelectObjectContentEventStream","UploadPartOutputFilterSensitiveLog","UploadPartRequestFilterSensitiveLog","se_AbortMultipartUploadCommand","rb","_xarp","_RP","_xaebo","_EBO","_xaimit","_IMIT","__dateToUtcString","_xi","_uI","__expectNonNull","_UI","se_CompleteMultipartUploadCommand","_xacc","_CCRC","_xacc_","_CCRCC","_xacc__","_CCRCNVME","_xacs","_CSHA","_xacs_","_CSHAh","_xact","_CT","_xamos","_MOS","_im","_IM","_inm","_INM","_xasseca","_SSECA","_xasseck","_SSECK","_xasseckm","_SSECKMD","contents","se_CompletedMultipartUpload","_ve","se_CreateMultipartUploadCommand","_xaa","_ACL","_cc","_CC","_cd","_CD","_ce","_CE","_cl","_CL","_ct","_CTo","_E","_xagfc","_GFC","_xagr","_GR","_xagra","_GRACP","_xagwa","_GWACP","_xasse","_SSE","_xasc","_SC","_xawrl","_WRL","_xasseakki","_SSEKMSKI","_xassec","_SSEKMSEC","_xassebke","_BKE","_xat","_T","_xaolm","_OLM","_xaolrud","_OLRUD","__serializeDateTime","_xaollh","_OLLHS","_xaca","_CA","suffix","_u","se_CreateSessionCommand","_xacsm","_SM","_s","se_GetObjectCommand","_ims","_IMSf","_ius","_IUS","_ra","_R","_xacm","_CM","_rcc","_RCC","_rcd","_RCD","_rce","_RCE","_rcl","_RCL","_rct","_RCT","_re","_RE","_vI","_VI","_pN","_PN","se_ListPartsCommand","_mp","_MP","_pnm","_PNM","se_UploadPartCommand","_cl_","_CLo","_cm","_CMD","_xasca","de_AbortMultipartUploadCommand","de_CommandError","_RC","_xarc","de_CompleteMultipartUploadCommand","_Exp","_xae","_xavi","__parseBoolean","__expectObject","parseBody","_B","__expectString","_ETa","_K","_L","de_CreateMultipartUploadCommand","_AD","_xaad","__parseRfc7231DateTime","_ARI","_xaari","de_CreateSessionCommand","_C","de_SessionCredentials","de_GetObjectCommand","_DM","_xadm","_AR","_ar","_Re","_xar","_LM","_lm","__strictParseLong","_eta","_MM","_xamm","__strictParseInt32","_CR","_cr","_ES","_ex","_RS","_xars","_PC","_xampc","_TC","_xatc","__parseRfc3339DateTimeWithOffset","de_ListPartsCommand","_In","de_Initiator","_IT","_NPNM","_O","de_Owner","_Part","_Par","de_Parts","__getArrayIfSingleItem","de_UploadPartCommand","parsedOutput","parseErrorBody","de_NoSuchUploadRes","de_ObjectNotInActiveTierErrorRes","de_BucketAlreadyExistsRes","de_BucketAlreadyOwnedByYouRes","de_NoSuchBucketRes","de_InvalidObjectStateRes","de_NoSuchKeyRes","de_NotFoundRes","de_EncryptionTypeMismatchRes","de_InvalidRequestRes","de_InvalidWriteOffsetRes","de_TooManyPartsRes","de_ObjectAlreadyInActiveTierErrorRes","__decorateServiceException","_AT","__XmlNode","_CMU","se_CompletedPartList","se_CompletedPart","_CPo","_me","_ID_","_DN","de_Part","_Si","_AKI","_SAK","_ST","CreateSessionCommand","$Command","SHA_1_HASH","SHA_1_HMAC_ALGO","EMPTY_DATA_SHA_1","fallbackWindow","locateWindow","Sha1","update","typedArray","_this","subtleCryptoMethods","supportsWebCrypto","window","supportsSecureRandom","subtle","supportsSubtleCrypto","methodName","WebCryptoSha1","SHA_256_HASH","SHA_256_HMAC_ALGO","EMPTY_DATA_SHA_256","Sha256","BLOCK_SIZE","DIGEST_LENGTH","KEY","INIT","MAX_HASHABLE_LENGTH","RawSha256","bitsHashed","bufferView","undecoratedLength","state","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","t1","t2","inner","bufferFromSecret","outer","bufferHash","WebCryptoSha256","JsSha256","BROWSER_ALIASES_MAP","BROWSER_MAP","PLATFORMS_MAP","OS_MAP","ENGINE_MAP","Utils","regexp","ua","_const","versionA","versionB","isLoose","versionAPrecision","versionBPrecision","precision","lastPrecision","delta","_version","iterator","predicate","assigners","assigner","browserName","browserAlias","commonVersionIdentifier","browsersList","browser","notLikeAndroid","butAndroid","regexpWithoutDeviceSpec","regexpWithDeviceSpec","osParsersList","versionName","os","platformParsersList","model","platform","iDevice","likeIDevice","osMajorVersion","enginesParsersList","engine","isGecko","likeGecko","Parser","UA","skipParsing","browserDescriptor","browserParsersList","_browser","toLowerCase","_os","_platform","_engine","checkTree","platformsAndOSes","platformsAndOSCounter","browsers","browsersCounter","currentDefinition","platformsAndOSNames","OSMatchingDefinition","osResult","platformMatchingDefinition","platformResult","browserNames","matchingDefinition","includingAlias","defaultBrowserName","browserNameLower","expectedResults","comparableVersion","currentBrowserVersion","osName","platformType","engineName","anything","anythings","Bowser","createDefaultUserAgentProvider","clientVersion","parsedUA","bowser","sections","HeaderMarshaller","nameLength","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","binaryLength","BINARY_TAG","stringLength","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","PRELUDE_MEMBER_LENGTH","PRELUDE_LENGTH","CHECKSUM_LENGTH","MINIMUM_MESSAGE_LENGTH","splitMessage","byteOffset","view","messageLength","headerLength","expectedPreludeChecksum","expectedMessageChecksum","checksummer","EventStreamCodec","isEndOfStream","messages","rawHeaders","MessageDecoderStream","MessageEncoderStream","SmithyMessageDecoderStream","deserialized","SmithyMessageEncoderStream","getChunkedStream","currentMessageTotalLength","currentMessagePendingLength","currentMessage","messageLengthBuffer","allocateMessage","sourceIterator","chunkLength","currentOffset","bytesRemaining","numBytesForTotal","numBytesToWrite","getMessageUnmarshaller","messageType","unmodeledError","deserializedException","event","EventStreamMarshaller$1","utf8Encoder","utf8Decoder","inputStream","readableStreamtoIterable","iterableToReadableStream","asyncIterable","EventStreamMarshaller","UniversalEventStreamMarshaller","bodyIterable","serialziedIterable","eventStreamSerdeProvider","blobReader","onChunk","chunkSize","totalBytesRead","slice","blobHasher","invalidProvider","Md5","sourceData","bytesHashed","ff","gg","hh","ii","cmn","TEXT_ENCODER","calculateBodyLength","getRuntimeConfig","ipc","DEFAULTS_MODE_OPTIONS","resolveDefaultsModeConfig","defaultsMode","isMobileBrowser","defaultConfigProvider","clientSharedValues","getSharedRuntimeConfig","packageInfo","RequestHandler","getAwsRegionExtensionConfiguration","runtimeConfigRegion","resolveAwsRegionExtensionConfiguration","awsRegionExtensionConfiguration","getHttpAuthExtensionConfiguration","_httpAuthSchemes","_httpAuthSchemeProvider","_credentials","httpAuthScheme","httpAuthSchemeProvider","resolveHttpAuthRuntimeConfig","asPartial","resolveRuntimeExtensions","extensions","extensionConfiguration","extension","S3Client","__Client","_config_0","__getRuntimeConfig","_config_1","_config_2","_config_3","_config_4","_config_5","_config_6","_config_7","_config_8","_config_9","_config_10","_config_11","AbortMultipartUploadCommand","ssecMiddleware","prop","valueForHash","isValidBase64EncodedSSECustomerKey","ssecMiddlewareOptions","getSsecPlugin","CompleteMultipartUploadCommand","CreateMultipartUploadCommand","GetObjectCommand","ListPartsCommand","UploadPartCommand","formatUrl","fragment","S3RequestPresigner","resolvedOptions","currentHostHeader","expectedHostHeader","getSignedUrl","client","s3Presigner","presignInterceptMiddleware","presigned","presignerOptions","middlewareName","AwsS3MultipartUploadHelper","uploadId","listPartsPart","partNumber","partData","promises","preparedParts","presignedUrls","preparedPart","addedPartNumbers","uniqueParts","ResumableUpload","uploadInfoRequestOptions","fileId","fileCallbacks","csrfTokenMetaTag","errorMessages","uploadInfo","awsS3Options","Uppy","AwsS3","retryNumber","callbacks","meta","nameForUpload","uploadMeta","s3Key","s3GetUrl","uploadID","files","progress","pendingUploadIndex","retry","errorMessage","retryTimeout","totalSpeed","totalUploadedBytes","totalBytes","diff","totalProgress","timeout","fuseColors"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,315]}