Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-cdk/aws-cloudfront

Package Overview
Dependencies
Maintainers
5
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-cloudfront - npm Package Compare versions

Comparing version 1.144.0 to 1.145.0

164

.warnings.jsii.js

@@ -97,10 +97,2 @@ function _aws_cdk_aws_cloudfront_HttpVersion(p) {

}
function _aws_cdk_aws_cloudfront_ResponseCustomHeadersBehavior(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.customHeaders))
_aws_cdk_aws_cloudfront_ResponseCustomHeader(p.customHeaders);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_ResponseHeadersFrameOptions(p) {

@@ -114,2 +106,4 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_ResponseHeadersStrictTransportSecurity(p) {
}
function _aws_cdk_aws_cloudfront_ResponseHeadersReferrerPolicy(p) {

@@ -123,4 +117,2 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_ResponseHeadersStrictTransportSecurity(p) {
}
function _aws_cdk_aws_cloudfront_LoggingConfiguration(p) {

@@ -148,2 +140,10 @@ }

}
function _aws_cdk_aws_cloudfront_ResponseCustomHeadersBehavior(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.customHeaders))
_aws_cdk_aws_cloudfront_ResponseCustomHeader(p.customHeaders);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_BehaviorOptions(p) {

@@ -179,2 +179,12 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_FunctionAssociation(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.eventType))
_aws_cdk_aws_cloudfront_FunctionEventType(p.eventType);
if (!visitedObjects.has(p.function))
_aws_cdk_aws_cloudfront_IFunction(p.function);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_EdgeLambda(p) {

@@ -198,14 +208,12 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_FunctionAssociation(p) {
function _aws_cdk_aws_cloudfront_IOrigin(p) {
}
function _aws_cdk_aws_cloudfront_S3OriginConfig(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.eventType))
_aws_cdk_aws_cloudfront_FunctionEventType(p.eventType);
if (!visitedObjects.has(p.function))
_aws_cdk_aws_cloudfront_IFunction(p.function);
if (!visitedObjects.has(p.originAccessIdentity))
_aws_cdk_aws_cloudfront_IOriginAccessIdentity(p.originAccessIdentity);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_IOrigin(p) {
}
function _aws_cdk_aws_cloudfront_LambdaFunctionAssociation(p) {

@@ -219,10 +227,2 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_S3OriginConfig(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.originAccessIdentity))
_aws_cdk_aws_cloudfront_IOriginAccessIdentity(p.originAccessIdentity);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_CfnCachePolicyProps(p) {

@@ -236,2 +236,4 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentityProps(p) {
}
function _aws_cdk_aws_cloudfront_CfnKeyGroupProps(p) {

@@ -241,8 +243,6 @@ }

}
function _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentityProps(p) {
function _aws_cdk_aws_cloudfront_CfnPublicKeyProps(p) {
}
function _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicyProps(p) {
}
function _aws_cdk_aws_cloudfront_CfnPublicKeyProps(p) {
}
function _aws_cdk_aws_cloudfront_AllowedMethods(p) {

@@ -252,8 +252,4 @@ }

}
function _aws_cdk_aws_cloudfront_OriginRequestQueryStringBehavior(p) {
}
function _aws_cdk_aws_cloudfront_OriginRequestHeaderBehavior(p) {
}
function _aws_cdk_aws_cloudfront_CfnRealtimeLogConfigProps(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistributionProps(p) {

@@ -267,2 +263,4 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_CfnRealtimeLogConfigProps(p) {
}
function _aws_cdk_aws_cloudfront_CfnStreamingDistributionProps(p) {

@@ -280,2 +278,14 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_ResponseHeadersPolicyProps(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.corsBehavior))
_aws_cdk_aws_cloudfront_ResponseHeadersCorsBehavior(p.corsBehavior);
if (!visitedObjects.has(p.customHeadersBehavior))
_aws_cdk_aws_cloudfront_ResponseCustomHeadersBehavior(p.customHeadersBehavior);
if (!visitedObjects.has(p.securityHeadersBehavior))
_aws_cdk_aws_cloudfront_ResponseSecurityHeadersBehavior(p.securityHeadersBehavior);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_OriginRequestPolicyProps(p) {

@@ -293,13 +303,3 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_ResponseHeadersPolicyProps(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.corsBehavior))
_aws_cdk_aws_cloudfront_ResponseHeadersCorsBehavior(p.corsBehavior);
if (!visitedObjects.has(p.customHeadersBehavior))
_aws_cdk_aws_cloudfront_ResponseCustomHeadersBehavior(p.customHeadersBehavior);
if (!visitedObjects.has(p.securityHeadersBehavior))
_aws_cdk_aws_cloudfront_ResponseSecurityHeadersBehavior(p.securityHeadersBehavior);
visitedObjects.delete(p);
function _aws_cdk_aws_cloudfront_OriginRequestQueryStringBehavior(p) {
}

@@ -340,2 +340,12 @@ function _aws_cdk_aws_cloudfront_CacheCookieBehavior(p) {

}
function _aws_cdk_aws_cloudfront_CustomOriginConfig(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.allowedOriginSSLVersions))
_aws_cdk_aws_cloudfront_OriginSslPolicy(p.allowedOriginSSLVersions);
if (!visitedObjects.has(p.originProtocolPolicy))
_aws_cdk_aws_cloudfront_OriginProtocolPolicy(p.originProtocolPolicy);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_CachePolicyProps(p) {

@@ -353,16 +363,4 @@ if (p == null)

}
function _aws_cdk_aws_cloudfront_CustomOriginConfig(p) {
if (p == null)
return;
visitedObjects.add(p);
if (!visitedObjects.has(p.allowedOriginSSLVersions))
_aws_cdk_aws_cloudfront_OriginSslPolicy(p.allowedOriginSSLVersions);
if (!visitedObjects.has(p.originProtocolPolicy))
_aws_cdk_aws_cloudfront_OriginProtocolPolicy(p.originProtocolPolicy);
visitedObjects.delete(p);
}
function _aws_cdk_aws_cloudfront_Distribution(p) {
}
function _aws_cdk_aws_cloudfront_CloudFrontWebDistribution(p) {
}
function _aws_cdk_aws_cloudfront_OriginAccessIdentity(p) {

@@ -378,6 +376,2 @@ }

}
function _aws_cdk_aws_cloudfront_CfnKeyGroup(p) {
}
function _aws_cdk_aws_cloudfront_CfnKeyGroup_KeyGroupConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentity(p) {

@@ -387,6 +381,12 @@ }

}
function _aws_cdk_aws_cloudfront_CfnPublicKey(p) {
function _aws_cdk_aws_cloudfront_CloudFrontWebDistribution(p) {
}
function _aws_cdk_aws_cloudfront_CfnPublicKey_PublicKeyConfigProperty(p) {
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy(p) {
}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_CookiesConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_HeadersConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_QueryStringsConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy(p) {

@@ -402,9 +402,9 @@ }

}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy(p) {
function _aws_cdk_aws_cloudfront_CfnPublicKey(p) {
}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_CookiesConfigProperty(p) {
function _aws_cdk_aws_cloudfront_CfnPublicKey_PublicKeyConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_HeadersConfigProperty(p) {
function _aws_cdk_aws_cloudfront_CfnKeyGroup(p) {
}
function _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_QueryStringsConfigProperty(p) {
function _aws_cdk_aws_cloudfront_CfnKeyGroup_KeyGroupConfigProperty(p) {
}

@@ -455,2 +455,8 @@ function _aws_cdk_aws_cloudfront_SourceConfiguration(p) {

}
function _aws_cdk_aws_cloudfront_CfnFunction(p) {
}
function _aws_cdk_aws_cloudfront_CfnFunction_FunctionConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnFunction_FunctionMetadataProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentTypeOptionsProperty(p) {

@@ -460,2 +466,4 @@ }

}
function _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentSecurityPolicyProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CustomHeaderProperty(p) {

@@ -465,4 +473,6 @@ }

}
function _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentSecurityPolicyProperty(p) {
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution(p) {
}
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution_S3OriginProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig(p) {

@@ -472,28 +482,18 @@ }

}
function _aws_cdk_aws_cloudfront_CfnFunction(p) {
function _aws_cdk_aws_cloudfront_CfnCachePolicy_CachePolicyConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnFunction_FunctionConfigProperty(p) {
function _aws_cdk_aws_cloudfront_CfnDistribution_OriginShieldProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnFunction_FunctionMetadataProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution(p) {
}
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution_S3OriginProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnCachePolicy_CachePolicyConfigProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistribution_StatusCodesProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistribution_OriginShieldProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistribution_LoggingProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistribution_ViewerCertificateProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistribution_LambdaFunctionAssociationProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnDistribution_ViewerCertificateProperty(p) {
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution_LoggingProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution_TrustedSignersProperty(p) {
}
function _aws_cdk_aws_cloudfront_CfnStreamingDistribution_LoggingProperty(p) {
}
function _aws_cdk_aws_cloudfront_ViewerCertificateOptions(p) {

@@ -682,3 +682,3 @@ if (p == null)

}
module.exports = { print, _aws_cdk_aws_cloudfront_HttpVersion, _aws_cdk_aws_cloudfront_PriceClass, _aws_cdk_aws_cloudfront_ViewerProtocolPolicy, _aws_cdk_aws_cloudfront_OriginProtocolPolicy, _aws_cdk_aws_cloudfront_SSLMethod, _aws_cdk_aws_cloudfront_SecurityPolicyProtocol, _aws_cdk_aws_cloudfront_LambdaEdgeEventType, _aws_cdk_aws_cloudfront_FunctionEventType, _aws_cdk_aws_cloudfront_HeadersFrameOption, _aws_cdk_aws_cloudfront_HeadersReferrerPolicy, _aws_cdk_aws_cloudfront_FailoverStatusCode, _aws_cdk_aws_cloudfront_OriginSslPolicy, _aws_cdk_aws_cloudfront_CloudFrontAllowedMethods, _aws_cdk_aws_cloudfront_CloudFrontAllowedCachedMethods, _aws_cdk_aws_cloudfront_ICachePolicy, _aws_cdk_aws_cloudfront_FileCodeOptions, _aws_cdk_aws_cloudfront_OriginBindOptions, _aws_cdk_aws_cloudfront_IOriginRequestPolicy, _aws_cdk_aws_cloudfront_IResponseHeadersPolicy, _aws_cdk_aws_cloudfront_ResponseHeadersContentTypeOptions, _aws_cdk_aws_cloudfront_DistributionAttributes, _aws_cdk_aws_cloudfront_FunctionAttributes, _aws_cdk_aws_cloudfront_ResponseHeadersContentSecurityPolicy, _aws_cdk_aws_cloudfront_CloudFrontWebDistributionAttributes, _aws_cdk_aws_cloudfront_OriginAccessIdentityProps, _aws_cdk_aws_cloudfront_ResponseCustomHeader, _aws_cdk_aws_cloudfront_PublicKeyProps, _aws_cdk_aws_cloudfront_ResponseHeadersXSSProtection, _aws_cdk_aws_cloudfront_experimental_EdgeFunctionProps, _aws_cdk_aws_cloudfront_IDistribution, _aws_cdk_aws_cloudfront_IFunction, _aws_cdk_aws_cloudfront_IKeyGroup, _aws_cdk_aws_cloudfront_IOriginAccessIdentity, _aws_cdk_aws_cloudfront_IPublicKey, _aws_cdk_aws_cloudfront_ErrorResponse, _aws_cdk_aws_cloudfront_OriginFailoverConfig, _aws_cdk_aws_cloudfront_ResponseCustomHeadersBehavior, _aws_cdk_aws_cloudfront_ResponseHeadersFrameOptions, _aws_cdk_aws_cloudfront_ResponseHeadersReferrerPolicy, _aws_cdk_aws_cloudfront_ResponseHeadersStrictTransportSecurity, _aws_cdk_aws_cloudfront_LoggingConfiguration, _aws_cdk_aws_cloudfront_OriginProps, _aws_cdk_aws_cloudfront_FunctionProps, _aws_cdk_aws_cloudfront_KeyGroupProps, _aws_cdk_aws_cloudfront_ResponseHeadersCorsBehavior, _aws_cdk_aws_cloudfront_BehaviorOptions, _aws_cdk_aws_cloudfront_CachedMethods, _aws_cdk_aws_cloudfront_CacheHeaderBehavior, _aws_cdk_aws_cloudfront_EdgeLambda, _aws_cdk_aws_cloudfront_OriginBindConfig, _aws_cdk_aws_cloudfront_FunctionAssociation, _aws_cdk_aws_cloudfront_IOrigin, _aws_cdk_aws_cloudfront_LambdaFunctionAssociation, _aws_cdk_aws_cloudfront_S3OriginConfig, _aws_cdk_aws_cloudfront_CfnCachePolicyProps, _aws_cdk_aws_cloudfront_CfnKeyGroupProps, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicyProps, _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentityProps, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicyProps, _aws_cdk_aws_cloudfront_CfnPublicKeyProps, _aws_cdk_aws_cloudfront_AllowedMethods, _aws_cdk_aws_cloudfront_OriginRequestCookieBehavior, _aws_cdk_aws_cloudfront_OriginRequestQueryStringBehavior, _aws_cdk_aws_cloudfront_OriginRequestHeaderBehavior, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfigProps, _aws_cdk_aws_cloudfront_CfnDistributionProps, _aws_cdk_aws_cloudfront_CfnStreamingDistributionProps, _aws_cdk_aws_cloudfront_FunctionCode, _aws_cdk_aws_cloudfront_CfnFunctionProps, _aws_cdk_aws_cloudfront_OriginRequestPolicyProps, _aws_cdk_aws_cloudfront_ResponseHeadersPolicyProps, _aws_cdk_aws_cloudfront_CacheCookieBehavior, _aws_cdk_aws_cloudfront_CacheQueryStringBehavior, _aws_cdk_aws_cloudfront_GeoRestriction, _aws_cdk_aws_cloudfront_Function, _aws_cdk_aws_cloudfront_KeyGroup, _aws_cdk_aws_cloudfront_OriginBase, _aws_cdk_aws_cloudfront_PublicKey, _aws_cdk_aws_cloudfront_ViewerCertificate, _aws_cdk_aws_cloudfront_ResponseSecurityHeadersBehavior, _aws_cdk_aws_cloudfront_CachePolicyProps, _aws_cdk_aws_cloudfront_CustomOriginConfig, _aws_cdk_aws_cloudfront_Distribution, _aws_cdk_aws_cloudfront_CloudFrontWebDistribution, _aws_cdk_aws_cloudfront_OriginAccessIdentity, _aws_cdk_aws_cloudfront_CfnCachePolicy, _aws_cdk_aws_cloudfront_CfnCachePolicy_CookiesConfigProperty, _aws_cdk_aws_cloudfront_CfnCachePolicy_HeadersConfigProperty, _aws_cdk_aws_cloudfront_CfnCachePolicy_QueryStringsConfigProperty, _aws_cdk_aws_cloudfront_CfnKeyGroup, _aws_cdk_aws_cloudfront_CfnKeyGroup_KeyGroupConfigProperty, _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentity, _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfigProperty, _aws_cdk_aws_cloudfront_CfnPublicKey, _aws_cdk_aws_cloudfront_CfnPublicKey_PublicKeyConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlAllowHeadersProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlAllowMethodsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlAllowOriginsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlExposeHeadersProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_CookiesConfigProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_HeadersConfigProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_QueryStringsConfigProperty, _aws_cdk_aws_cloudfront_SourceConfiguration, _aws_cdk_aws_cloudfront_CfnDistribution, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupMemberProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginCustomHeaderProperty, _aws_cdk_aws_cloudfront_CfnDistribution_S3OriginConfigProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LegacyS3OriginProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CookiesProperty, _aws_cdk_aws_cloudfront_CfnDistribution_FunctionAssociationProperty, _aws_cdk_aws_cloudfront_CfnDistribution_GeoRestrictionProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CustomErrorResponseProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LegacyCustomOriginProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CustomOriginConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentTypeOptionsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ReferrerPolicyProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CustomHeaderProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_FrameOptionsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentSecurityPolicyProperty, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig_KinesisStreamConfigProperty, _aws_cdk_aws_cloudfront_CfnFunction, _aws_cdk_aws_cloudfront_CfnFunction_FunctionConfigProperty, _aws_cdk_aws_cloudfront_CfnFunction_FunctionMetadataProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_S3OriginProperty, _aws_cdk_aws_cloudfront_CfnCachePolicy_CachePolicyConfigProperty, _aws_cdk_aws_cloudfront_CfnDistribution_StatusCodesProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginShieldProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LoggingProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LambdaFunctionAssociationProperty, _aws_cdk_aws_cloudfront_CfnDistribution_ViewerCertificateProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_TrustedSignersProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_LoggingProperty, _aws_cdk_aws_cloudfront_ViewerCertificateOptions, _aws_cdk_aws_cloudfront_AliasConfiguration, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupFailoverCriteriaProperty, _aws_cdk_aws_cloudfront_CfnDistribution_RestrictionsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CustomHeadersConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_XSSProtectionProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_StrictTransportSecurityProperty, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig_EndPointProperty, _aws_cdk_aws_cloudfront_CachePolicy, _aws_cdk_aws_cloudfront_OriginRequestPolicy, _aws_cdk_aws_cloudfront_CfnDistribution_ForwardedValuesProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupMembersProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupsProperty, _aws_cdk_aws_cloudfront_ResponseHeadersPolicy, _aws_cdk_aws_cloudfront_AddBehaviorOptions, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_OriginRequestPolicyConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ResponseHeadersPolicyConfigProperty, _aws_cdk_aws_cloudfront_CloudFrontWebDistributionProps, _aws_cdk_aws_cloudfront_CfnCachePolicy_ParametersInCacheKeyAndForwardedToOriginProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_StreamingDistributionConfigProperty, _aws_cdk_aws_cloudfront_Behavior, _aws_cdk_aws_cloudfront_CfnDistribution_OriginProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CorsConfigProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CacheBehaviorProperty, _aws_cdk_aws_cloudfront_CfnDistribution_DefaultCacheBehaviorProperty, _aws_cdk_aws_cloudfront_DistributionProps, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_SecurityHeadersConfigProperty, _aws_cdk_aws_cloudfront_experimental_EdgeFunction, _aws_cdk_aws_cloudfront_CfnDistribution_DistributionConfigProperty };
module.exports = { print, _aws_cdk_aws_cloudfront_HttpVersion, _aws_cdk_aws_cloudfront_PriceClass, _aws_cdk_aws_cloudfront_ViewerProtocolPolicy, _aws_cdk_aws_cloudfront_OriginProtocolPolicy, _aws_cdk_aws_cloudfront_SSLMethod, _aws_cdk_aws_cloudfront_SecurityPolicyProtocol, _aws_cdk_aws_cloudfront_LambdaEdgeEventType, _aws_cdk_aws_cloudfront_FunctionEventType, _aws_cdk_aws_cloudfront_HeadersFrameOption, _aws_cdk_aws_cloudfront_HeadersReferrerPolicy, _aws_cdk_aws_cloudfront_FailoverStatusCode, _aws_cdk_aws_cloudfront_OriginSslPolicy, _aws_cdk_aws_cloudfront_CloudFrontAllowedMethods, _aws_cdk_aws_cloudfront_CloudFrontAllowedCachedMethods, _aws_cdk_aws_cloudfront_ICachePolicy, _aws_cdk_aws_cloudfront_FileCodeOptions, _aws_cdk_aws_cloudfront_OriginBindOptions, _aws_cdk_aws_cloudfront_IOriginRequestPolicy, _aws_cdk_aws_cloudfront_IResponseHeadersPolicy, _aws_cdk_aws_cloudfront_ResponseHeadersContentTypeOptions, _aws_cdk_aws_cloudfront_DistributionAttributes, _aws_cdk_aws_cloudfront_FunctionAttributes, _aws_cdk_aws_cloudfront_ResponseHeadersContentSecurityPolicy, _aws_cdk_aws_cloudfront_CloudFrontWebDistributionAttributes, _aws_cdk_aws_cloudfront_OriginAccessIdentityProps, _aws_cdk_aws_cloudfront_ResponseCustomHeader, _aws_cdk_aws_cloudfront_PublicKeyProps, _aws_cdk_aws_cloudfront_ResponseHeadersXSSProtection, _aws_cdk_aws_cloudfront_experimental_EdgeFunctionProps, _aws_cdk_aws_cloudfront_IDistribution, _aws_cdk_aws_cloudfront_IFunction, _aws_cdk_aws_cloudfront_IKeyGroup, _aws_cdk_aws_cloudfront_IOriginAccessIdentity, _aws_cdk_aws_cloudfront_IPublicKey, _aws_cdk_aws_cloudfront_ErrorResponse, _aws_cdk_aws_cloudfront_OriginFailoverConfig, _aws_cdk_aws_cloudfront_ResponseHeadersFrameOptions, _aws_cdk_aws_cloudfront_ResponseHeadersStrictTransportSecurity, _aws_cdk_aws_cloudfront_ResponseHeadersReferrerPolicy, _aws_cdk_aws_cloudfront_LoggingConfiguration, _aws_cdk_aws_cloudfront_OriginProps, _aws_cdk_aws_cloudfront_FunctionProps, _aws_cdk_aws_cloudfront_KeyGroupProps, _aws_cdk_aws_cloudfront_ResponseHeadersCorsBehavior, _aws_cdk_aws_cloudfront_ResponseCustomHeadersBehavior, _aws_cdk_aws_cloudfront_BehaviorOptions, _aws_cdk_aws_cloudfront_CachedMethods, _aws_cdk_aws_cloudfront_CacheHeaderBehavior, _aws_cdk_aws_cloudfront_FunctionAssociation, _aws_cdk_aws_cloudfront_EdgeLambda, _aws_cdk_aws_cloudfront_OriginBindConfig, _aws_cdk_aws_cloudfront_IOrigin, _aws_cdk_aws_cloudfront_S3OriginConfig, _aws_cdk_aws_cloudfront_LambdaFunctionAssociation, _aws_cdk_aws_cloudfront_CfnCachePolicyProps, _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentityProps, _aws_cdk_aws_cloudfront_CfnKeyGroupProps, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicyProps, _aws_cdk_aws_cloudfront_CfnPublicKeyProps, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicyProps, _aws_cdk_aws_cloudfront_AllowedMethods, _aws_cdk_aws_cloudfront_OriginRequestCookieBehavior, _aws_cdk_aws_cloudfront_OriginRequestHeaderBehavior, _aws_cdk_aws_cloudfront_CfnDistributionProps, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfigProps, _aws_cdk_aws_cloudfront_CfnStreamingDistributionProps, _aws_cdk_aws_cloudfront_FunctionCode, _aws_cdk_aws_cloudfront_CfnFunctionProps, _aws_cdk_aws_cloudfront_ResponseHeadersPolicyProps, _aws_cdk_aws_cloudfront_OriginRequestPolicyProps, _aws_cdk_aws_cloudfront_OriginRequestQueryStringBehavior, _aws_cdk_aws_cloudfront_CacheCookieBehavior, _aws_cdk_aws_cloudfront_CacheQueryStringBehavior, _aws_cdk_aws_cloudfront_GeoRestriction, _aws_cdk_aws_cloudfront_Function, _aws_cdk_aws_cloudfront_KeyGroup, _aws_cdk_aws_cloudfront_OriginBase, _aws_cdk_aws_cloudfront_PublicKey, _aws_cdk_aws_cloudfront_ViewerCertificate, _aws_cdk_aws_cloudfront_ResponseSecurityHeadersBehavior, _aws_cdk_aws_cloudfront_CustomOriginConfig, _aws_cdk_aws_cloudfront_CachePolicyProps, _aws_cdk_aws_cloudfront_Distribution, _aws_cdk_aws_cloudfront_OriginAccessIdentity, _aws_cdk_aws_cloudfront_CfnCachePolicy, _aws_cdk_aws_cloudfront_CfnCachePolicy_CookiesConfigProperty, _aws_cdk_aws_cloudfront_CfnCachePolicy_HeadersConfigProperty, _aws_cdk_aws_cloudfront_CfnCachePolicy_QueryStringsConfigProperty, _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentity, _aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfigProperty, _aws_cdk_aws_cloudfront_CloudFrontWebDistribution, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_CookiesConfigProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_HeadersConfigProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_QueryStringsConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlAllowHeadersProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlAllowMethodsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlAllowOriginsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_AccessControlExposeHeadersProperty, _aws_cdk_aws_cloudfront_CfnPublicKey, _aws_cdk_aws_cloudfront_CfnPublicKey_PublicKeyConfigProperty, _aws_cdk_aws_cloudfront_CfnKeyGroup, _aws_cdk_aws_cloudfront_CfnKeyGroup_KeyGroupConfigProperty, _aws_cdk_aws_cloudfront_SourceConfiguration, _aws_cdk_aws_cloudfront_CfnDistribution, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupMemberProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginCustomHeaderProperty, _aws_cdk_aws_cloudfront_CfnDistribution_S3OriginConfigProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LegacyS3OriginProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CookiesProperty, _aws_cdk_aws_cloudfront_CfnDistribution_FunctionAssociationProperty, _aws_cdk_aws_cloudfront_CfnDistribution_GeoRestrictionProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CustomErrorResponseProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LegacyCustomOriginProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CustomOriginConfigProperty, _aws_cdk_aws_cloudfront_CfnFunction, _aws_cdk_aws_cloudfront_CfnFunction_FunctionConfigProperty, _aws_cdk_aws_cloudfront_CfnFunction_FunctionMetadataProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentTypeOptionsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ReferrerPolicyProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ContentSecurityPolicyProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CustomHeaderProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_FrameOptionsProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_S3OriginProperty, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig_KinesisStreamConfigProperty, _aws_cdk_aws_cloudfront_CfnCachePolicy_CachePolicyConfigProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginShieldProperty, _aws_cdk_aws_cloudfront_CfnDistribution_StatusCodesProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LoggingProperty, _aws_cdk_aws_cloudfront_CfnDistribution_ViewerCertificateProperty, _aws_cdk_aws_cloudfront_CfnDistribution_LambdaFunctionAssociationProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_LoggingProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_TrustedSignersProperty, _aws_cdk_aws_cloudfront_ViewerCertificateOptions, _aws_cdk_aws_cloudfront_AliasConfiguration, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupFailoverCriteriaProperty, _aws_cdk_aws_cloudfront_CfnDistribution_RestrictionsProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CustomHeadersConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_XSSProtectionProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_StrictTransportSecurityProperty, _aws_cdk_aws_cloudfront_CfnRealtimeLogConfig_EndPointProperty, _aws_cdk_aws_cloudfront_CachePolicy, _aws_cdk_aws_cloudfront_OriginRequestPolicy, _aws_cdk_aws_cloudfront_CfnDistribution_ForwardedValuesProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupMembersProperty, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupsProperty, _aws_cdk_aws_cloudfront_ResponseHeadersPolicy, _aws_cdk_aws_cloudfront_AddBehaviorOptions, _aws_cdk_aws_cloudfront_CfnDistribution_OriginGroupProperty, _aws_cdk_aws_cloudfront_CfnOriginRequestPolicy_OriginRequestPolicyConfigProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_ResponseHeadersPolicyConfigProperty, _aws_cdk_aws_cloudfront_CloudFrontWebDistributionProps, _aws_cdk_aws_cloudfront_CfnCachePolicy_ParametersInCacheKeyAndForwardedToOriginProperty, _aws_cdk_aws_cloudfront_CfnStreamingDistribution_StreamingDistributionConfigProperty, _aws_cdk_aws_cloudfront_Behavior, _aws_cdk_aws_cloudfront_CfnDistribution_OriginProperty, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_CorsConfigProperty, _aws_cdk_aws_cloudfront_CfnDistribution_CacheBehaviorProperty, _aws_cdk_aws_cloudfront_CfnDistribution_DefaultCacheBehaviorProperty, _aws_cdk_aws_cloudfront_DistributionProps, _aws_cdk_aws_cloudfront_CfnResponseHeadersPolicy_SecurityHeadersConfigProperty, _aws_cdk_aws_cloudfront_experimental_EdgeFunction, _aws_cdk_aws_cloudfront_CfnDistribution_DistributionConfigProperty };
module.exports.DeprecationError = DeprecationError;
import { Duration, Resource } from '@aws-cdk/core';
import { Construct } from 'constructs';
/**
* Represents a Cache Policy.
*
* @stability stable
* Represents a Cache Policy
*/
export interface ICachePolicy {
/**
* The ID of the cache policy.
*
* @stability stable
* @attribute true
* The ID of the cache policy
* @attribute
*/

@@ -18,5 +14,3 @@ readonly cachePolicyId: string;

/**
* Properties for creating a Cache Policy.
*
* @stability stable
* Properties for creating a Cache Policy
*/

@@ -26,7 +20,4 @@ export interface CachePolicyProps {

* A unique name to identify the cache policy.
*
* The name must only include '-', '_', or alphanumeric characters.
*
* @default - generated from the `id`
* @stability stable
*/

@@ -36,5 +27,3 @@ readonly cachePolicyName?: string;

* A comment to describe the cache policy.
*
* @default - no comment
* @stability stable
*/

@@ -44,7 +33,4 @@ readonly comment?: string;

* The default amount of time for objects to stay in the CloudFront cache.
*
* Only used when the origin does not send Cache-Control or Expires headers with the object.
*
* @default - The greater of 1 day and ``minTtl``
* @stability stable
*/

@@ -54,5 +40,3 @@ readonly defaultTtl?: Duration;

* The minimum amount of time for objects to stay in the CloudFront cache.
*
* @default Duration.seconds(0)
* @stability stable
*/

@@ -62,7 +46,4 @@ readonly minTtl?: Duration;

* The maximum amount of time for objects to stay in the CloudFront cache.
*
* CloudFront uses this value only when the origin sends Cache-Control or Expires headers with the object.
*
* @default - The greater of 1 year and ``defaultTtl``
* @stability stable
*/

@@ -72,5 +53,3 @@ readonly maxTtl?: Duration;

* Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @default CacheCookieBehavior.none()
* @stability stable
*/

@@ -80,5 +59,3 @@ readonly cookieBehavior?: CacheCookieBehavior;

* Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @default CacheHeaderBehavior.none()
* @stability stable
*/

@@ -88,5 +65,3 @@ readonly headerBehavior?: CacheHeaderBehavior;

* Determines whether any query strings are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @default CacheQueryStringBehavior.none()
* @stability stable
*/

@@ -96,5 +71,3 @@ readonly queryStringBehavior?: CacheQueryStringBehavior;

* Whether to normalize and include the `Accept-Encoding` header in the cache key when the `Accept-Encoding` header is 'gzip'.
*
* @default false
* @stability stable
*/

@@ -104,5 +77,3 @@ readonly enableAcceptEncodingGzip?: boolean;

* Whether to normalize and include the `Accept-Encoding` header in the cache key when the `Accept-Encoding` header is 'br'.
*
* @default false
* @stability stable
*/

@@ -114,3 +85,2 @@ readonly enableAcceptEncodingBrotli?: boolean;

*
* @stability stable
* @resource AWS::CloudFront::CachePolicy

@@ -122,4 +92,2 @@ * @link https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html

* This policy is designed for use with an origin that is an AWS Amplify web app.
*
* @stability stable
*/

@@ -129,6 +97,3 @@ static readonly AMPLIFY: ICachePolicy;

* Optimize cache efficiency by minimizing the values that CloudFront includes in the cache key.
*
* Query strings and cookies are not included in the cache key, and only the normalized 'Accept-Encoding' header is included.
*
* @stability stable
*/

@@ -138,40 +103,15 @@ static readonly CACHING_OPTIMIZED: ICachePolicy;

* Optimize cache efficiency by minimizing the values that CloudFront includes in the cache key.
*
* Query strings and cookies are not included in the cache key, and only the normalized 'Accept-Encoding' header is included.
* Disables cache compression.
*
* @stability stable
*/
static readonly CACHING_OPTIMIZED_FOR_UNCOMPRESSED_OBJECTS: ICachePolicy;
/**
* Disables caching.
*
* This policy is useful for dynamic content and for requests that are not cacheable.
*
* @stability stable
*/
/** Disables caching. This policy is useful for dynamic content and for requests that are not cacheable. */
static readonly CACHING_DISABLED: ICachePolicy;
/**
* Designed for use with an origin that is an AWS Elemental MediaPackage endpoint.
*
* @stability stable
*/
/** Designed for use with an origin that is an AWS Elemental MediaPackage endpoint. */
static readonly ELEMENTAL_MEDIA_PACKAGE: ICachePolicy;
/**
* Imports a Cache Policy from its id.
*
* @stability stable
*/
/** Imports a Cache Policy from its id. */
static fromCachePolicyId(scope: Construct, id: string, cachePolicyId: string): ICachePolicy;
/** Use an existing managed cache policy. */
private static fromManagedCachePolicy;
/**
* The ID of the cache policy.
*
* @stability stable
*/
readonly cachePolicyId: string;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props?: CachePolicyProps);

@@ -181,11 +121,9 @@ private renderCacheKey;

/**
* Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any cookies in viewer requests are included in the cache key and
* automatically included in requests that CloudFront sends to the origin.
*/
export declare class CacheCookieBehavior {
/**
* Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Cookies in viewer requests are not included in the cache key and
* are not automatically included in requests that CloudFront sends to the origin.
*/

@@ -195,4 +133,2 @@ static none(): CacheCookieBehavior;

* All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -202,23 +138,12 @@ static all(): CacheCookieBehavior;

* Only the provided `cookies` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
static allowList(...cookies: string[]): CacheCookieBehavior;
/**
* All cookies except the provided `cookies` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* All cookies except the provided `cookies` are included in the cache key and
* automatically included in requests that CloudFront sends to the origin.
*/
static denyList(...cookies: string[]): CacheCookieBehavior;
/**
* The behavior of cookies: allow all, none, an allow list, or a deny list.
*
* @stability stable
*/
/** The behavior of cookies: allow all, none, an allow list, or a deny list. */
readonly behavior: string;
/**
* The cookies to allow or deny, if the behavior is an allow or deny list.
*
* @stability stable
*/
/** The cookies to allow or deny, if the behavior is an allow or deny list. */
readonly cookies?: string[];

@@ -229,29 +154,11 @@ private constructor();

* Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
export declare class CacheHeaderBehavior {
/**
* HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. */
static none(): CacheHeaderBehavior;
/**
* Listed headers are included in the cache key and are automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Listed headers are included in the cache key and are automatically included in requests that CloudFront sends to the origin. */
static allowList(...headers: string[]): CacheHeaderBehavior;
/**
* If no headers will be passed, or an allow list of headers.
*
* @stability stable
*/
/** If no headers will be passed, or an allow list of headers. */
readonly behavior: string;
/**
* The headers for the allow/deny list, if applicable.
*
* @stability stable
*/
/** The headers for the allow/deny list, if applicable. */
readonly headers?: string[];

@@ -261,11 +168,9 @@ private constructor();

/**
* Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any URL query strings in viewer requests are included in the cache key
* and automatically included in requests that CloudFront sends to the origin.
*/
export declare class CacheQueryStringBehavior {
/**
* Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Query strings in viewer requests are not included in the cache key and
* are not automatically included in requests that CloudFront sends to the origin.
*/

@@ -275,4 +180,2 @@ static none(): CacheQueryStringBehavior;

* All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -282,25 +185,14 @@ static all(): CacheQueryStringBehavior;

* Only the provided `queryStrings` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
static allowList(...queryStrings: string[]): CacheQueryStringBehavior;
/**
* All query strings except the provided `queryStrings` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* All query strings except the provided `queryStrings` are included in the cache key and
* automatically included in requests that CloudFront sends to the origin.
*/
static denyList(...queryStrings: string[]): CacheQueryStringBehavior;
/**
* The behavior of query strings -- allow all, none, only an allow list, or a deny list.
*
* @stability stable
*/
/** The behavior of query strings -- allow all, none, only an allow list, or a deny list. */
readonly behavior: string;
/**
* The query strings to allow or deny, if the behavior is an allow or deny list.
*
* @stability stable
*/
/** The query strings to allow or deny, if the behavior is an allow or deny list. */
readonly queryStrings?: string[];
private constructor();
}

@@ -12,3 +12,2 @@ "use strict";

*
* @stability stable
* @resource AWS::CloudFront::CachePolicy

@@ -18,5 +17,2 @@ * @link https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html

class CachePolicy extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props = {}) {

@@ -47,7 +43,3 @@ var _e, _f, _g, _h;

}
/**
* Imports a Cache Policy from its id.
*
* @stability stable
*/
/** Imports a Cache Policy from its id. */
static fromCachePolicyId(scope, id, cachePolicyId) {

@@ -94,7 +86,5 @@ return new class extends core_1.Resource {

_a = JSII_RTTI_SYMBOL_1;
CachePolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.CachePolicy", version: "1.144.0" };
CachePolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.CachePolicy", version: "1.145.0" };
/**
* This policy is designed for use with an origin that is an AWS Amplify web app.
*
* @stability stable
*/

@@ -104,6 +94,3 @@ CachePolicy.AMPLIFY = CachePolicy.fromManagedCachePolicy('2e54312d-136d-493c-8eb9-b001f22f67d2');

* Optimize cache efficiency by minimizing the values that CloudFront includes in the cache key.
*
* Query strings and cookies are not included in the cache key, and only the normalized 'Accept-Encoding' header is included.
*
* @stability stable
*/

@@ -113,27 +100,13 @@ CachePolicy.CACHING_OPTIMIZED = CachePolicy.fromManagedCachePolicy('658327ea-f89d-4fab-a63d-7e88639e58f6');

* Optimize cache efficiency by minimizing the values that CloudFront includes in the cache key.
*
* Query strings and cookies are not included in the cache key, and only the normalized 'Accept-Encoding' header is included.
* Disables cache compression.
*
* @stability stable
*/
CachePolicy.CACHING_OPTIMIZED_FOR_UNCOMPRESSED_OBJECTS = CachePolicy.fromManagedCachePolicy('b2884449-e4de-46a7-ac36-70bc7f1ddd6d');
/**
* Disables caching.
*
* This policy is useful for dynamic content and for requests that are not cacheable.
*
* @stability stable
*/
/** Disables caching. This policy is useful for dynamic content and for requests that are not cacheable. */
CachePolicy.CACHING_DISABLED = CachePolicy.fromManagedCachePolicy('4135ea2d-6df8-44a3-9df3-4b5a84be39ad');
/**
* Designed for use with an origin that is an AWS Elemental MediaPackage endpoint.
*
* @stability stable
*/
/** Designed for use with an origin that is an AWS Elemental MediaPackage endpoint. */
CachePolicy.ELEMENTAL_MEDIA_PACKAGE = CachePolicy.fromManagedCachePolicy('08627262-05a9-4f76-9ded-b50ca2e3a84f');
/**
* Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any cookies in viewer requests are included in the cache key and
* automatically included in requests that CloudFront sends to the origin.
*/

@@ -146,5 +119,4 @@ class CacheCookieBehavior {

/**
* Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Cookies in viewer requests are not included in the cache key and
* are not automatically included in requests that CloudFront sends to the origin.
*/

@@ -154,4 +126,2 @@ static none() { return new CacheCookieBehavior('none'); }

* All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -161,4 +131,2 @@ static all() { return new CacheCookieBehavior('all'); }

* Only the provided `cookies` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -172,5 +140,4 @@ static allowList(...cookies) {

/**
* All cookies except the provided `cookies` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* All cookies except the provided `cookies` are included in the cache key and
* automatically included in requests that CloudFront sends to the origin.
*/

@@ -186,7 +153,5 @@ static denyList(...cookies) {

_b = JSII_RTTI_SYMBOL_1;
CacheCookieBehavior[_b] = { fqn: "@aws-cdk/aws-cloudfront.CacheCookieBehavior", version: "1.144.0" };
CacheCookieBehavior[_b] = { fqn: "@aws-cdk/aws-cloudfront.CacheCookieBehavior", version: "1.145.0" };
/**
* Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -198,13 +163,5 @@ class CacheHeaderBehavior {

}
/**
* HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. */
static none() { return new CacheHeaderBehavior('none'); }
/**
* Listed headers are included in the cache key and are automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Listed headers are included in the cache key and are automatically included in requests that CloudFront sends to the origin. */
static allowList(...headers) {

@@ -219,7 +176,6 @@ if (headers.length === 0) {

_c = JSII_RTTI_SYMBOL_1;
CacheHeaderBehavior[_c] = { fqn: "@aws-cdk/aws-cloudfront.CacheHeaderBehavior", version: "1.144.0" };
CacheHeaderBehavior[_c] = { fqn: "@aws-cdk/aws-cloudfront.CacheHeaderBehavior", version: "1.145.0" };
/**
* Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any URL query strings in viewer requests are included in the cache key
* and automatically included in requests that CloudFront sends to the origin.
*/

@@ -232,5 +188,4 @@ class CacheQueryStringBehavior {

/**
* Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* Query strings in viewer requests are not included in the cache key and
* are not automatically included in requests that CloudFront sends to the origin.
*/

@@ -240,4 +195,2 @@ static none() { return new CacheQueryStringBehavior('none'); }

* All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -247,4 +200,2 @@ static all() { return new CacheQueryStringBehavior('all'); }

* Only the provided `queryStrings` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -258,5 +209,4 @@ static allowList(...queryStrings) {

/**
* All query strings except the provided `queryStrings` are included in the cache key and automatically included in requests that CloudFront sends to the origin.
*
* @stability stable
* All query strings except the provided `queryStrings` are included in the cache key and
* automatically included in requests that CloudFront sends to the origin.
*/

@@ -272,3 +222,3 @@ static denyList(...queryStrings) {

_d = JSII_RTTI_SYMBOL_1;
CacheQueryStringBehavior[_d] = { fqn: "@aws-cdk/aws-cloudfront.CacheQueryStringBehavior", version: "1.144.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2FjaGUtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUF3RTtBQUV4RSxpRUFBd0Q7Ozs7Ozs7O0FBMEN4RCxNQUFhLFdBQVksU0FBUSxlQUFROzs7O0lBNEJ2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTBCLEVBQUU7O1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxlQUFlO1NBQ3BDLENBQUMsQ0FBQzs7UUFFSCxNQUFNLGVBQWUsU0FBRyxLQUFLLENBQUMsZUFBZSxtQ0FBSSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksWUFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwRyxJQUFJLENBQUMsWUFBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRkFBbUYsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7U0FDOUg7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFDLEtBQUssQ0FBQyxNQUFNLG1DQUFJLGVBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQUMsS0FBSyxDQUFDLFVBQVUsbUNBQUksZUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBQyxLQUFLLENBQUMsTUFBTSxtQ0FBSSxl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QTRCbkMsWUFBb0IsUUFBZ0IsRUFBRSxZQUF1QjtRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztLQUNsQzs7Ozs7O0lBN0JNLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Ozs7OztJQUc5RCxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFOzs7Ozs7SUFHNUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFlBQXNCO1FBQy9DLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNoRTs7Ozs7O0lBR00sTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFlBQXNCO1FBQzlDLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNoRTs7QUFyQkgsNERBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIE5hbWVzLCBSZXNvdXJjZSwgU3RhY2ssIFRva2VuIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkNhY2hlUG9saWN5IH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBJQ2FjaGVQb2xpY3kge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2FjaGVQb2xpY3lJZDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlUG9saWN5UHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2FjaGVQb2xpY3lOYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlZmF1bHRUdGw/OiBEdXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWluVHRsPzogRHVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG1heFR0bD86IER1cmF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29va2llQmVoYXZpb3I/OiBDYWNoZUNvb2tpZUJlaGF2aW9yO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhlYWRlckJlaGF2aW9yPzogQ2FjaGVIZWFkZXJCZWhhdmlvcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBxdWVyeVN0cmluZ0JlaGF2aW9yPzogQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcD86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpPzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQ2FjaGVQb2xpY3kgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElDYWNoZVBvbGljeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFNUExJRlkgPSBDYWNoZVBvbGljeS5mcm9tTWFuYWdlZENhY2hlUG9saWN5KCcyZTU0MzEyZC0xMzZkLTQ5M2MtOGViOS1iMDAxZjIyZjY3ZDInKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQUNISU5HX09QVElNSVpFRCA9IENhY2hlUG9saWN5LmZyb21NYW5hZ2VkQ2FjaGVQb2xpY3koJzY1ODMyN2VhLWY4OWQtNGZhYi1hNjNkLTdlODg2MzllNThmNicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hJTkdfT1BUSU1JWkVEX0ZPUl9VTkNPTVBSRVNTRURfT0JKRUNUUyA9IENhY2hlUG9saWN5LmZyb21NYW5hZ2VkQ2FjaGVQb2xpY3koJ2IyODg0NDQ5LWU0ZGUtNDZhNy1hYzM2LTcwYmM3ZjFkZGQ2ZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hJTkdfRElTQUJMRUQgPSBDYWNoZVBvbGljeS5mcm9tTWFuYWdlZENhY2hlUG9saWN5KCc0MTM1ZWEyZC02ZGY4LTQ0YTMtOWRmMy00YjVhODRiZTM5YWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTEVNRU5UQUxfTUVESUFfUEFDS0FHRSA9IENhY2hlUG9saWN5LmZyb21NYW5hZ2VkQ2FjaGVQb2xpY3koJzA4NjI3MjYyLTA1YTktNGY3Ni05ZGVkLWI1MGNhMmUzYTg0ZicpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGZyb21DYWNoZVBvbGljeUlkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNhY2hlUG9saWN5SWQ6IHN0cmluZyk6IElDYWNoZVBvbGljeSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUNhY2hlUG9saWN5IHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjYWNoZVBvbGljeUlkID0gY2FjaGVQb2xpY3lJZDtcbiAgICB9KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKiogVXNlIGFuIGV4aXN0aW5nIG1hbmFnZWQgY2FjaGUgcG9saWN5LiAqL1xuICBwcml2YXRlIHN0YXRpYyBmcm9tTWFuYWdlZENhY2hlUG9saWN5KG1hbmFnZWRDYWNoZVBvbGljeUlkOiBzdHJpbmcpOiBJQ2FjaGVQb2xpY3kge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQ2FjaGVQb2xpY3kge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNhY2hlUG9saWN5SWQgPSBtYW5hZ2VkQ2FjaGVQb2xpY3lJZDtcbiAgICB9KCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY2FjaGVQb2xpY3lJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDYWNoZVBvbGljeVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuY2FjaGVQb2xpY3lOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2FjaGVQb2xpY3lOYW1lID0gcHJvcHMuY2FjaGVQb2xpY3lOYW1lID8/IGAke05hbWVzLnVuaXF1ZUlkKHRoaXMpfS0ke1N0YWNrLm9mKHRoaXMpLnJlZ2lvbn1gO1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNhY2hlUG9saWN5TmFtZSkgJiYgIWNhY2hlUG9saWN5TmFtZS5tYXRjaCgvXltcXHctXSskL2kpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdjYWNoZVBvbGljeU5hbWUnIGNhbiBvbmx5IGluY2x1ZGUgJy0nLCAnXycsIGFuZCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZ290OiAnJHtwcm9wcy5jYWNoZVBvbGljeU5hbWV9J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IG1pblR0bCA9IChwcm9wcy5taW5UdGwgPz8gRHVyYXRpb24uc2Vjb25kcygwKSkudG9TZWNvbmRzKCk7XG4gICAgY29uc3QgZGVmYXVsdFR0bCA9IE1hdGgubWF4KChwcm9wcy5kZWZhdWx0VHRsID8/IER1cmF0aW9uLmRheXMoMSkpLnRvU2Vjb25kcygpLCBtaW5UdGwpO1xuICAgIGNvbnN0IG1heFR0bCA9IE1hdGgubWF4KChwcm9wcy5tYXhUdGwgPz8gRHVyYXRpb24uZGF5cygzNjUpKS50b1NlY29uZHMoKSwgZGVmYXVsdFR0bCk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5DYWNoZVBvbGljeSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjYWNoZVBvbGljeUNvbmZpZzoge1xuICAgICAgICBuYW1lOiBjYWNoZVBvbGljeU5hbWUsXG4gICAgICAgIGNvbW1lbnQ6IHByb3BzLmNvbW1lbnQsXG4gICAgICAgIG1pblR0bCxcbiAgICAgICAgbWF4VHRsLFxuICAgICAgICBkZWZhdWx0VHRsLFxuICAgICAgICBwYXJhbWV0ZXJzSW5DYWNoZUtleUFuZEZvcndhcmRlZFRvT3JpZ2luOiB0aGlzLnJlbmRlckNhY2hlS2V5KHByb3BzKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNhY2hlUG9saWN5SWQgPSByZXNvdXJjZS5yZWY7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckNhY2hlS2V5KHByb3BzOiBDYWNoZVBvbGljeVByb3BzKTogQ2ZuQ2FjaGVQb2xpY3kuUGFyYW1ldGVyc0luQ2FjaGVLZXlBbmRGb3J3YXJkZWRUb09yaWdpblByb3BlcnR5IHtcbiAgICBjb25zdCBjb29raWVzID0gcHJvcHMuY29va2llQmVoYXZpb3IgPz8gQ2FjaGVDb29raWVCZWhhdmlvci5ub25lKCk7XG4gICAgY29uc3QgaGVhZGVycyA9IHByb3BzLmhlYWRlckJlaGF2aW9yID8/IENhY2hlSGVhZGVyQmVoYXZpb3Iubm9uZSgpO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5ncyA9IHByb3BzLnF1ZXJ5U3RyaW5nQmVoYXZpb3IgPz8gQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLm5vbmUoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb29raWVzQ29uZmlnOiB7XG4gICAgICAgIGNvb2tpZUJlaGF2aW9yOiBjb29raWVzLmJlaGF2aW9yLFxuICAgICAgICBjb29raWVzOiBjb29raWVzLmNvb2tpZXMsXG4gICAgICB9LFxuICAgICAgaGVhZGVyc0NvbmZpZzoge1xuICAgICAgICBoZWFkZXJCZWhhdmlvcjogaGVhZGVycy5iZWhhdmlvcixcbiAgICAgICAgaGVhZGVyczogaGVhZGVycy5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcDogcHJvcHMuZW5hYmxlQWNjZXB0RW5jb2RpbmdHemlwID8/IGZhbHNlLFxuICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdCcm90bGk6IHByb3BzLmVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpID8/IGZhbHNlLFxuICAgICAgcXVlcnlTdHJpbmdzQ29uZmlnOiB7XG4gICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IHF1ZXJ5U3RyaW5ncy5iZWhhdmlvcixcbiAgICAgICAgcXVlcnlTdHJpbmdzOiBxdWVyeVN0cmluZ3MucXVlcnlTdHJpbmdzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDYWNoZUNvb2tpZUJlaGF2aW9yIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBub25lKCkgeyByZXR1cm4gbmV3IENhY2hlQ29va2llQmVoYXZpb3IoJ25vbmUnKTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgYWxsKCkgeyByZXR1cm4gbmV3IENhY2hlQ29va2llQmVoYXZpb3IoJ2FsbCcpOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGFsbG93TGlzdCguLi5jb29raWVzOiBzdHJpbmdbXSkge1xuICAgIGlmIChjb29raWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgY29va2llIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDYWNoZUNvb2tpZUJlaGF2aW9yKCd3aGl0ZWxpc3QnLCBjb29raWVzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZGVueUxpc3QoLi4uY29va2llczogc3RyaW5nW10pIHtcbiAgICBpZiAoY29va2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIGNvb2tpZSB0byBkZW55IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDYWNoZUNvb2tpZUJlaGF2aW9yKCdhbGxFeGNlcHQnLCBjb29raWVzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGJlaGF2aW9yOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY29va2llcz86IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoYmVoYXZpb3I6IHN0cmluZywgY29va2llcz86IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMuY29va2llcyA9IGNvb2tpZXM7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDYWNoZUhlYWRlckJlaGF2aW9yIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBub25lKCkgeyByZXR1cm4gbmV3IENhY2hlSGVhZGVyQmVoYXZpb3IoJ25vbmUnKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGFsbG93TGlzdCguLi5oZWFkZXJzOiBzdHJpbmdbXSkge1xuICAgIGlmIChoZWFkZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgaGVhZGVyIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDYWNoZUhlYWRlckJlaGF2aW9yKCd3aGl0ZWxpc3QnLCBoZWFkZXJzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBiZWhhdmlvcjogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJzPzogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiZWhhdmlvcjogc3RyaW5nLCBoZWFkZXJzPzogc3RyaW5nW10pIHtcbiAgICB0aGlzLmJlaGF2aW9yID0gYmVoYXZpb3I7XG4gICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgbm9uZSgpIHsgcmV0dXJuIG5ldyBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IoJ25vbmUnKTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgYWxsKCkgeyByZXR1cm4gbmV3IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvcignYWxsJyk7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBhbGxvd0xpc3QoLi4ucXVlcnlTdHJpbmdzOiBzdHJpbmdbXSkge1xuICAgIGlmIChxdWVyeVN0cmluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBxdWVyeSBzdHJpbmcgdG8gYWxsb3cgbXVzdCBiZSBwcm92aWRlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvcignd2hpdGVsaXN0JywgcXVlcnlTdHJpbmdzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBkZW55TGlzdCguLi5xdWVyeVN0cmluZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHF1ZXJ5U3RyaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIHF1ZXJ5IHN0cmluZyB0byBkZW55IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IoJ2FsbEV4Y2VwdCcsIHF1ZXJ5U3RyaW5ncyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgYmVoYXZpb3I6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeVN0cmluZ3M/OiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGJlaGF2aW9yOiBzdHJpbmcsIHF1ZXJ5U3RyaW5ncz86IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMucXVlcnlTdHJpbmdzID0gcXVlcnlTdHJpbmdzO1xuICB9XG59XG4iXX0=
CacheQueryStringBehavior[_d] = { fqn: "@aws-cdk/aws-cloudfront.CacheQueryStringBehavior", version: "1.145.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2FjaGUtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUF3RTtBQUV4RSxpRUFBd0Q7QUFpRnhEOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsZUFBUTtJQXFDdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUEwQixFQUFFOztRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsZUFBZTtTQUNwQyxDQUFDLENBQUM7O1FBRUgsTUFBTSxlQUFlLFNBQUcsS0FBSyxDQUFDLGVBQWUsbUNBQUksR0FBRyxZQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEcsSUFBSSxDQUFDLFlBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQy9FLE1BQU0sSUFBSSxLQUFLLENBQUMsbUZBQW1GLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1NBQzlIO1FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBQyxLQUFLLENBQUMsTUFBTSxtQ0FBSSxlQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFDLEtBQUssQ0FBQyxVQUFVLG1DQUFJLGVBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQUMsS0FBSyxDQUFDLE1BQU0sbUNB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bEU7UUFDRCxPQUFPLElBQUksbUJBQW1CLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3REOztBQVRILGtEQW9CQzs7O0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSx3QkFBd0I7SUFzQ25DLFlBQW9CLFFBQWdCLEVBQUUsWUFBdUI7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7S0FDbEM7SUF4Q0Q7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtJQUVyRTs7T0FFRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7SUFFbkU7O09BRUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBc0I7UUFDL0MsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxPQUFPLElBQUksd0JBQXdCLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ2hFO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFlBQXNCO1FBQzlDLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxJQUFJLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNoRTs7QUEvQkgsNERBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIE5hbWVzLCBSZXNvdXJjZSwgU3RhY2ssIFRva2VuIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkNhY2hlUG9saWN5IH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIENhY2hlIFBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDYWNoZVBvbGljeSB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGNhY2hlIHBvbGljeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjYWNoZVBvbGljeUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBDYWNoZSBQb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZVBvbGljeVByb3BzIHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIG5hbWUgdG8gaWRlbnRpZnkgdGhlIGNhY2hlIHBvbGljeS5cbiAgICogVGhlIG5hbWUgbXVzdCBvbmx5IGluY2x1ZGUgJy0nLCAnXycsIG9yIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZCBmcm9tIHRoZSBgaWRgXG4gICAqL1xuICByZWFkb25seSBjYWNoZVBvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29tbWVudCB0byBkZXNjcmliZSB0aGUgY2FjaGUgcG9saWN5LlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGFtb3VudCBvZiB0aW1lIGZvciBvYmplY3RzIHRvIHN0YXkgaW4gdGhlIENsb3VkRnJvbnQgY2FjaGUuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRoZSBvcmlnaW4gZG9lcyBub3Qgc2VuZCBDYWNoZS1Db250cm9sIG9yIEV4cGlyZXMgaGVhZGVycyB3aXRoIHRoZSBvYmplY3QuXG4gICAqIEBkZWZhdWx0IC0gVGhlIGdyZWF0ZXIgb2YgMSBkYXkgYW5kIGBgbWluVHRsYGBcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRUdGw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gYW1vdW50IG9mIHRpbWUgZm9yIG9iamVjdHMgdG8gc3RheSBpbiB0aGUgQ2xvdWRGcm9udCBjYWNoZS5cbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygwKVxuICAgKi9cbiAgcmVhZG9ubHkgbWluVHRsPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIGZvciBvYmplY3RzIHRvIHN0YXkgaW4gdGhlIENsb3VkRnJvbnQgY2FjaGUuXG4gICAqIENsb3VkRnJvbnQgdXNlcyB0aGlzIHZhbHVlIG9ubHkgd2hlbiB0aGUgb3JpZ2luIHNlbmRzIENhY2hlLUNvbnRyb2wgb3IgRXhwaXJlcyBoZWFkZXJzIHdpdGggdGhlIG9iamVjdC5cbiAgICogQGRlZmF1bHQgLSBUaGUgZ3JlYXRlciBvZiAxIHllYXIgYW5kIGBgZGVmYXVsdFR0bGBgXG4gICAqL1xuICByZWFkb25seSBtYXhUdGw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFueSBjb29raWVzIGluIHZpZXdlciByZXF1ZXN0cyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNhY2hlIGtleSBhbmQgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAgICogQGRlZmF1bHQgQ2FjaGVDb29raWVCZWhhdmlvci5ub25lKClcbiAgICovXG4gIHJlYWRvbmx5IGNvb2tpZUJlaGF2aW9yPzogQ2FjaGVDb29raWVCZWhhdmlvcjtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFueSBIVFRQIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gICAqIEBkZWZhdWx0IENhY2hlSGVhZGVyQmVoYXZpb3Iubm9uZSgpXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJCZWhhdmlvcj86IENhY2hlSGVhZGVyQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBhbnkgcXVlcnkgc3RyaW5ncyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNhY2hlIGtleSBhbmQgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAgICogQGRlZmF1bHQgQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLm5vbmUoKVxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlTdHJpbmdCZWhhdmlvcj86IENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBub3JtYWxpemUgYW5kIGluY2x1ZGUgdGhlIGBBY2NlcHQtRW5jb2RpbmdgIGhlYWRlciBpbiB0aGUgY2FjaGUga2V5IHdoZW4gdGhlIGBBY2NlcHQtRW5jb2RpbmdgIGhlYWRlciBpcyAnZ3ppcCcuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVBY2NlcHRFbmNvZGluZ0d6aXA/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG5vcm1hbGl6ZSBhbmQgaW5jbHVkZSB0aGUgYEFjY2VwdC1FbmNvZGluZ2AgaGVhZGVyIGluIHRoZSBjYWNoZSBrZXkgd2hlbiB0aGUgYEFjY2VwdC1FbmNvZGluZ2AgaGVhZGVyIGlzICdicicuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVBY2NlcHRFbmNvZGluZ0Jyb3RsaT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBDYWNoZSBQb2xpY3kgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeVxuICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL3VzaW5nLW1hbmFnZWQtY2FjaGUtcG9saWNpZXMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVQb2xpY3kgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElDYWNoZVBvbGljeSB7XG4gIC8qKlxuICAgKiBUaGlzIHBvbGljeSBpcyBkZXNpZ25lZCBmb3IgdXNlIHdpdGggYW4gb3JpZ2luIHRoYXQgaXMgYW4gQVdTIEFtcGxpZnkgd2ViIGFwcC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQU1QTElGWSA9IENhY2hlUG9saWN5LmZyb21NYW5hZ2VkQ2FjaGVQb2xpY3koJzJlNTQzMTJkLTEzNmQtNDkzYy04ZWI5LWIwMDFmMjJmNjdkMicpO1xuICAvKipcbiAgICogT3B0aW1pemUgY2FjaGUgZWZmaWNpZW5jeSBieSBtaW5pbWl6aW5nIHRoZSB2YWx1ZXMgdGhhdCBDbG91ZEZyb250IGluY2x1ZGVzIGluIHRoZSBjYWNoZSBrZXkuXG4gICAqIFF1ZXJ5IHN0cmluZ3MgYW5kIGNvb2tpZXMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgY2FjaGUga2V5LCBhbmQgb25seSB0aGUgbm9ybWFsaXplZCAnQWNjZXB0LUVuY29kaW5nJyBoZWFkZXIgaXMgaW5jbHVkZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hJTkdfT1BUSU1JWkVEID0gQ2FjaGVQb2xpY3kuZnJvbU1hbmFnZWRDYWNoZVBvbGljeSgnNjU4MzI3ZWEtZjg5ZC00ZmFiLWE2M2QtN2U4ODYzOWU1OGY2Jyk7XG4gIC8qKlxuICAgKiBPcHRpbWl6ZSBjYWNoZSBlZmZpY2llbmN5IGJ5IG1pbmltaXppbmcgdGhlIHZhbHVlcyB0aGF0IENsb3VkRnJvbnQgaW5jbHVkZXMgaW4gdGhlIGNhY2hlIGtleS5cbiAgICogUXVlcnkgc3RyaW5ncyBhbmQgY29va2llcyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXksIGFuZCBvbmx5IHRoZSBub3JtYWxpemVkICdBY2NlcHQtRW5jb2RpbmcnIGhlYWRlciBpcyBpbmNsdWRlZC5cbiAgICogRGlzYWJsZXMgY2FjaGUgY29tcHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hJTkdfT1BUSU1JWkVEX0ZPUl9VTkNPTVBSRVNTRURfT0JKRUNUUyA9IENhY2hlUG9saWN5LmZyb21NYW5hZ2VkQ2FjaGVQb2xpY3koJ2IyODg0NDQ5LWU0ZGUtNDZhNy1hYzM2LTcwYmM3ZjFkZGQ2ZCcpO1xuICAvKiogRGlzYWJsZXMgY2FjaGluZy4gVGhpcyBwb2xpY3kgaXMgdXNlZnVsIGZvciBkeW5hbWljIGNvbnRlbnQgYW5kIGZvciByZXF1ZXN0cyB0aGF0IGFyZSBub3QgY2FjaGVhYmxlLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBQ0hJTkdfRElTQUJMRUQgPSBDYWNoZVBvbGljeS5mcm9tTWFuYWdlZENhY2hlUG9saWN5KCc0MTM1ZWEyZC02ZGY4LTQ0YTMtOWRmMy00YjVhODRiZTM5YWQnKTtcbiAgLyoqIERlc2lnbmVkIGZvciB1c2Ugd2l0aCBhbiBvcmlnaW4gdGhhdCBpcyBhbiBBV1MgRWxlbWVudGFsIE1lZGlhUGFja2FnZSBlbmRwb2ludC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTEVNRU5UQUxfTUVESUFfUEFDS0FHRSA9IENhY2hlUG9saWN5LmZyb21NYW5hZ2VkQ2FjaGVQb2xpY3koJzA4NjI3MjYyLTA1YTktNGY3Ni05ZGVkLWI1MGNhMmUzYTg0ZicpO1xuXG4gIC8qKiBJbXBvcnRzIGEgQ2FjaGUgUG9saWN5IGZyb20gaXRzIGlkLiAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DYWNoZVBvbGljeUlkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNhY2hlUG9saWN5SWQ6IHN0cmluZyk6IElDYWNoZVBvbGljeSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUNhY2hlUG9saWN5IHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjYWNoZVBvbGljeUlkID0gY2FjaGVQb2xpY3lJZDtcbiAgICB9KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKiogVXNlIGFuIGV4aXN0aW5nIG1hbmFnZWQgY2FjaGUgcG9saWN5LiAqL1xuICBwcml2YXRlIHN0YXRpYyBmcm9tTWFuYWdlZENhY2hlUG9saWN5KG1hbmFnZWRDYWNoZVBvbGljeUlkOiBzdHJpbmcpOiBJQ2FjaGVQb2xpY3kge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJQ2FjaGVQb2xpY3kge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNhY2hlUG9saWN5SWQgPSBtYW5hZ2VkQ2FjaGVQb2xpY3lJZDtcbiAgICB9KCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgY2FjaGVQb2xpY3lJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDYWNoZVBvbGljeVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuY2FjaGVQb2xpY3lOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2FjaGVQb2xpY3lOYW1lID0gcHJvcHMuY2FjaGVQb2xpY3lOYW1lID8/IGAke05hbWVzLnVuaXF1ZUlkKHRoaXMpfS0ke1N0YWNrLm9mKHRoaXMpLnJlZ2lvbn1gO1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNhY2hlUG9saWN5TmFtZSkgJiYgIWNhY2hlUG9saWN5TmFtZS5tYXRjaCgvXltcXHctXSskL2kpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdjYWNoZVBvbGljeU5hbWUnIGNhbiBvbmx5IGluY2x1ZGUgJy0nLCAnXycsIGFuZCBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZ290OiAnJHtwcm9wcy5jYWNoZVBvbGljeU5hbWV9J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IG1pblR0bCA9IChwcm9wcy5taW5UdGwgPz8gRHVyYXRpb24uc2Vjb25kcygwKSkudG9TZWNvbmRzKCk7XG4gICAgY29uc3QgZGVmYXVsdFR0bCA9IE1hdGgubWF4KChwcm9wcy5kZWZhdWx0VHRsID8/IER1cmF0aW9uLmRheXMoMSkpLnRvU2Vjb25kcygpLCBtaW5UdGwpO1xuICAgIGNvbnN0IG1heFR0bCA9IE1hdGgubWF4KChwcm9wcy5tYXhUdGwgPz8gRHVyYXRpb24uZGF5cygzNjUpKS50b1NlY29uZHMoKSwgZGVmYXVsdFR0bCk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5DYWNoZVBvbGljeSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjYWNoZVBvbGljeUNvbmZpZzoge1xuICAgICAgICBuYW1lOiBjYWNoZVBvbGljeU5hbWUsXG4gICAgICAgIGNvbW1lbnQ6IHByb3BzLmNvbW1lbnQsXG4gICAgICAgIG1pblR0bCxcbiAgICAgICAgbWF4VHRsLFxuICAgICAgICBkZWZhdWx0VHRsLFxuICAgICAgICBwYXJhbWV0ZXJzSW5DYWNoZUtleUFuZEZvcndhcmRlZFRvT3JpZ2luOiB0aGlzLnJlbmRlckNhY2hlS2V5KHByb3BzKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNhY2hlUG9saWN5SWQgPSByZXNvdXJjZS5yZWY7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckNhY2hlS2V5KHByb3BzOiBDYWNoZVBvbGljeVByb3BzKTogQ2ZuQ2FjaGVQb2xpY3kuUGFyYW1ldGVyc0luQ2FjaGVLZXlBbmRGb3J3YXJkZWRUb09yaWdpblByb3BlcnR5IHtcbiAgICBjb25zdCBjb29raWVzID0gcHJvcHMuY29va2llQmVoYXZpb3IgPz8gQ2FjaGVDb29raWVCZWhhdmlvci5ub25lKCk7XG4gICAgY29uc3QgaGVhZGVycyA9IHByb3BzLmhlYWRlckJlaGF2aW9yID8/IENhY2hlSGVhZGVyQmVoYXZpb3Iubm9uZSgpO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5ncyA9IHByb3BzLnF1ZXJ5U3RyaW5nQmVoYXZpb3IgPz8gQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLm5vbmUoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb29raWVzQ29uZmlnOiB7XG4gICAgICAgIGNvb2tpZUJlaGF2aW9yOiBjb29raWVzLmJlaGF2aW9yLFxuICAgICAgICBjb29raWVzOiBjb29raWVzLmNvb2tpZXMsXG4gICAgICB9LFxuICAgICAgaGVhZGVyc0NvbmZpZzoge1xuICAgICAgICBoZWFkZXJCZWhhdmlvcjogaGVhZGVycy5iZWhhdmlvcixcbiAgICAgICAgaGVhZGVyczogaGVhZGVycy5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZUFjY2VwdEVuY29kaW5nR3ppcDogcHJvcHMuZW5hYmxlQWNjZXB0RW5jb2RpbmdHemlwID8/IGZhbHNlLFxuICAgICAgZW5hYmxlQWNjZXB0RW5jb2RpbmdCcm90bGk6IHByb3BzLmVuYWJsZUFjY2VwdEVuY29kaW5nQnJvdGxpID8/IGZhbHNlLFxuICAgICAgcXVlcnlTdHJpbmdzQ29uZmlnOiB7XG4gICAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IHF1ZXJ5U3RyaW5ncy5iZWhhdmlvcixcbiAgICAgICAgcXVlcnlTdHJpbmdzOiBxdWVyeVN0cmluZ3MucXVlcnlTdHJpbmdzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFueSBjb29raWVzIGluIHZpZXdlciByZXF1ZXN0cyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNhY2hlIGtleSBhbmRcbiAqIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWNoZUNvb2tpZUJlaGF2aW9yIHtcbiAgLyoqXG4gICAqIENvb2tpZXMgaW4gdmlld2VyIHJlcXVlc3RzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIGNhY2hlIGtleSBhbmRcbiAgICogYXJlIG5vdCBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub25lKCkgeyByZXR1cm4gbmV3IENhY2hlQ29va2llQmVoYXZpb3IoJ25vbmUnKTsgfVxuXG4gIC8qKlxuICAgKiBBbGwgY29va2llcyBpbiB2aWV3ZXIgcmVxdWVzdHMgYXJlIGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbGwoKSB7IHJldHVybiBuZXcgQ2FjaGVDb29raWVCZWhhdmlvcignYWxsJyk7IH1cblxuICAvKipcbiAgICogT25seSB0aGUgcHJvdmlkZWQgYGNvb2tpZXNgIGFyZSBpbmNsdWRlZCBpbiB0aGUgY2FjaGUga2V5IGFuZCBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbGxvd0xpc3QoLi4uY29va2llczogc3RyaW5nW10pIHtcbiAgICBpZiAoY29va2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIGNvb2tpZSB0byBhbGxvdyBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ2FjaGVDb29raWVCZWhhdmlvcignd2hpdGVsaXN0JywgY29va2llcyk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIGNvb2tpZXMgZXhjZXB0IHRoZSBwcm92aWRlZCBgY29va2llc2AgYXJlIGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kXG4gICAqIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRlbnlMaXN0KC4uLmNvb2tpZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGNvb2tpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBjb29raWUgdG8gZGVueSBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ2FjaGVDb29raWVCZWhhdmlvcignYWxsRXhjZXB0JywgY29va2llcyk7XG4gIH1cblxuICAvKiogVGhlIGJlaGF2aW9yIG9mIGNvb2tpZXM6IGFsbG93IGFsbCwgbm9uZSwgYW4gYWxsb3cgbGlzdCwgb3IgYSBkZW55IGxpc3QuICovXG4gIHB1YmxpYyByZWFkb25seSBiZWhhdmlvcjogc3RyaW5nO1xuICAvKiogVGhlIGNvb2tpZXMgdG8gYWxsb3cgb3IgZGVueSwgaWYgdGhlIGJlaGF2aW9yIGlzIGFuIGFsbG93IG9yIGRlbnkgbGlzdC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvb2tpZXM/OiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGJlaGF2aW9yOiBzdHJpbmcsIGNvb2tpZXM/OiBzdHJpbmdbXSkge1xuICAgIHRoaXMuYmVoYXZpb3IgPSBiZWhhdmlvcjtcbiAgICB0aGlzLmNvb2tpZXMgPSBjb29raWVzO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFueSBIVFRQIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWNoZUhlYWRlckJlaGF2aW9yIHtcbiAgLyoqIEhUVFAgaGVhZGVycyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kIGFyZSBub3QgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi4gKi9cbiAgcHVibGljIHN0YXRpYyBub25lKCkgeyByZXR1cm4gbmV3IENhY2hlSGVhZGVyQmVoYXZpb3IoJ25vbmUnKTsgfVxuICAvKiogTGlzdGVkIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLiAqL1xuICBwdWJsaWMgc3RhdGljIGFsbG93TGlzdCguLi5oZWFkZXJzOiBzdHJpbmdbXSkge1xuICAgIGlmIChoZWFkZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgaGVhZGVyIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDYWNoZUhlYWRlckJlaGF2aW9yKCd3aGl0ZWxpc3QnLCBoZWFkZXJzKTtcbiAgfVxuXG4gIC8qKiBJZiBubyBoZWFkZXJzIHdpbGwgYmUgcGFzc2VkLCBvciBhbiBhbGxvdyBsaXN0IG9mIGhlYWRlcnMuICovXG4gIHB1YmxpYyByZWFkb25seSBiZWhhdmlvcjogc3RyaW5nO1xuICAvKiogVGhlIGhlYWRlcnMgZm9yIHRoZSBhbGxvdy9kZW55IGxpc3QsIGlmIGFwcGxpY2FibGUuICovXG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJzPzogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiZWhhdmlvcjogc3RyaW5nLCBoZWFkZXJzPzogc3RyaW5nW10pIHtcbiAgICB0aGlzLmJlaGF2aW9yID0gYmVoYXZpb3I7XG4gICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgfVxufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhbnkgVVJMIHF1ZXJ5IHN0cmluZ3MgaW4gdmlld2VyIHJlcXVlc3RzIGFyZSBpbmNsdWRlZCBpbiB0aGUgY2FjaGUga2V5XG4gKiBhbmQgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvciB7XG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmdzIGluIHZpZXdlciByZXF1ZXN0cyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kXG4gICAqIGFyZSBub3QgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm9uZSgpIHsgcmV0dXJuIG5ldyBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IoJ25vbmUnKTsgfVxuXG4gIC8qKlxuICAgKiBBbGwgcXVlcnkgc3RyaW5ncyBpbiB2aWV3ZXIgcmVxdWVzdHMgYXJlIGluY2x1ZGVkIGluIHRoZSBjYWNoZSBrZXkgYW5kIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbGwoKSB7IHJldHVybiBuZXcgQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yKCdhbGwnKTsgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHRoZSBwcm92aWRlZCBgcXVlcnlTdHJpbmdzYCBhcmUgaW5jbHVkZWQgaW4gdGhlIGNhY2hlIGtleSBhbmQgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWxsb3dMaXN0KC4uLnF1ZXJ5U3RyaW5nczogc3RyaW5nW10pIHtcbiAgICBpZiAocXVlcnlTdHJpbmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgcXVlcnkgc3RyaW5nIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDYWNoZVF1ZXJ5U3RyaW5nQmVoYXZpb3IoJ3doaXRlbGlzdCcsIHF1ZXJ5U3RyaW5ncyk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIHF1ZXJ5IHN0cmluZ3MgZXhjZXB0IHRoZSBwcm92aWRlZCBgcXVlcnlTdHJpbmdzYCBhcmUgaW5jbHVkZWQgaW4gdGhlIGNhY2hlIGtleSBhbmRcbiAgICogYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVueUxpc3QoLi4ucXVlcnlTdHJpbmdzOiBzdHJpbmdbXSkge1xuICAgIGlmIChxdWVyeVN0cmluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBxdWVyeSBzdHJpbmcgdG8gZGVueSBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yKCdhbGxFeGNlcHQnLCBxdWVyeVN0cmluZ3MpO1xuICB9XG5cbiAgLyoqIFRoZSBiZWhhdmlvciBvZiBxdWVyeSBzdHJpbmdzIC0tIGFsbG93IGFsbCwgbm9uZSwgb25seSBhbiBhbGxvdyBsaXN0LCBvciBhIGRlbnkgbGlzdC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGJlaGF2aW9yOiBzdHJpbmc7XG4gIC8qKiBUaGUgcXVlcnkgc3RyaW5ncyB0byBhbGxvdyBvciBkZW55LCBpZiB0aGUgYmVoYXZpb3IgaXMgYW4gYWxsb3cgb3IgZGVueSBsaXN0LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVlcnlTdHJpbmdzPzogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiZWhhdmlvcjogc3RyaW5nLCBxdWVyeVN0cmluZ3M/OiBzdHJpbmdbXSkge1xuICAgIHRoaXMuYmVoYXZpb3IgPSBiZWhhdmlvcjtcbiAgICB0aGlzLnF1ZXJ5U3RyaW5ncyA9IHF1ZXJ5U3RyaW5ncztcbiAgfVxufVxuIl19

@@ -14,12 +14,10 @@ import * as acm from '@aws-cdk/aws-certificatemanager';

/**
* Interface for CloudFront distributions.
*
* @stability stable
* Interface for CloudFront distributions
*/
export interface IDistribution extends IResource {
/**
* (deprecated) The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.
* The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.
*
* @attribute
* @deprecated - Use `distributionDomainName` instead.
* @attribute true
*/

@@ -30,4 +28,3 @@ readonly domainName: string;

*
* @stability stable
* @attribute true
* @attribute
*/

@@ -38,4 +35,3 @@ readonly distributionDomainName: string;

*
* @stability stable
* @attribute true
* @attribute
*/

@@ -46,4 +42,2 @@ readonly distributionId: string;

* Attributes used to import a Distribution.
*
* @stability stable
*/

@@ -54,4 +48,3 @@ export interface DistributionAttributes {

*
* @stability stable
* @attribute true
* @attribute
*/

@@ -62,4 +55,3 @@ readonly domainName: string;

*
* @stability stable
* @attribute true
* @attribute
*/

@@ -69,5 +61,3 @@ readonly distributionId: string;

/**
* Properties for a Distribution.
*
* @stability stable
* Properties for a Distribution
*/

@@ -77,4 +67,2 @@ export interface DistributionProps {

* The default behavior for the distribution.
*
* @stability stable
*/

@@ -86,12 +74,8 @@ readonly defaultBehavior: BehaviorOptions;

* @default - no additional behaviors are added.
* @stability stable
*/
readonly additionalBehaviors?: Record<string, BehaviorOptions>;
/**
* A certificate to associate with the distribution.
* A certificate to associate with the distribution. The certificate must be located in N. Virginia (us-east-1).
*
* The certificate must be located in N. Virginia (us-east-1).
*
* @default - the CloudFront wildcard certificate (*.cloudfront.net) will be used.
* @stability stable
*/

@@ -103,10 +87,10 @@ readonly certificate?: acm.ICertificate;

* @default - no comment
* @stability stable
*/
readonly comment?: string;
/**
* The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution. If no default object is set, the request goes to the origin's root (e.g., example.com/).
* The object that you want CloudFront to request from your origin (for example, index.html)
* when a viewer requests the root URL for your distribution. If no default object is set, the
* request goes to the origin's root (e.g., example.com/).
*
* @default - no default root object
* @stability stable
*/

@@ -122,3 +106,2 @@ readonly defaultRootObject?: string;

* @default - The distribution will only support the default generated name (e.g., d111111abcdef8.cloudfront.net)
* @stability stable
*/

@@ -130,3 +113,2 @@ readonly domainNames?: string[];

* @default true
* @stability stable
*/

@@ -141,3 +123,2 @@ readonly enabled?: boolean;

* @default true
* @stability stable
*/

@@ -149,3 +130,2 @@ readonly enableIpv6?: boolean;

* @default - false, unless `logBucket` is specified.
* @stability stable
*/

@@ -157,3 +137,2 @@ readonly enableLogging?: boolean;

* @default - No geographic restrictions
* @stability stable
*/

@@ -167,3 +146,2 @@ readonly geoRestriction?: GeoRestriction;

* @default HttpVersion.HTTP2
* @stability stable
*/

@@ -175,10 +153,8 @@ readonly httpVersion?: HttpVersion;

* @default - A bucket is created if `enableLogging` is true
* @stability stable
*/
readonly logBucket?: s3.IBucket;
/**
* Specifies whether you want CloudFront to include cookies in access logs.
* Specifies whether you want CloudFront to include cookies in access logs
*
* @default false
* @stability stable
*/

@@ -190,3 +166,2 @@ readonly logIncludesCookies?: boolean;

* @default - no prefix
* @stability stable
*/

@@ -196,3 +171,2 @@ readonly logFilePrefix?: string;

* The price class that corresponds with the maximum price that you want to pay for CloudFront service.
*
* If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations.

@@ -203,3 +177,2 @@ * If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location

* @default PriceClass.PRICE_CLASS_ALL
* @stability stable
*/

@@ -214,5 +187,6 @@ readonly priceClass?: PriceClass;

*
* @see https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html
* @see https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html#API_CreateDistribution_RequestParameters.
*
* @default - No AWS Web Application Firewall web access control list (web ACL).
* @see https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html#API_CreateDistribution_RequestParameters.
* @stability stable
*/

@@ -224,15 +198,12 @@ readonly webAclId?: string;

* @default - No custom error responses.
* @stability stable
*/
readonly errorResponses?: ErrorResponse[];
/**
* The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
*
* CloudFront serves your objects only to browsers or devices that support at
* least the SSL version that you specify.
*
* @default - SecurityPolicyProtocol.TLS_V1_2_2021 if the '
* @stability stable
* @aws-cdk /aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021' feature flag is set; otherwise, SecurityPolicyProtocol.TLS_V1_2_2019.
*/
* The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
*
* CloudFront serves your objects only to browsers or devices that support at
* least the SSL version that you specify.
*
* @default - SecurityPolicyProtocol.TLS_V1_2_2021 if the '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021' feature flag is set; otherwise, SecurityPolicyProtocol.TLS_V1_2_2019.
*/
readonly minimumProtocolVersion?: SecurityPolicyProtocol;

@@ -242,4 +213,2 @@ }

* A CloudFront distribution with associated origin(s) and caching behavior(s).
*
* @stability stable
*/

@@ -249,23 +218,6 @@ export declare class Distribution extends Resource implements IDistribution {

* Creates a Distribution construct that represents an external (imported) distribution.
*
* @stability stable
*/
static fromDistributionAttributes(scope: Construct, id: string, attrs: DistributionAttributes): IDistribution;
/**
* The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.
*
* @stability stable
*/
readonly domainName: string;
/**
* The domain name of the Distribution, such as d111111abcdef8.cloudfront.net.
*
* @stability stable
*/
readonly distributionDomainName: string;
/**
* The distribution ID for this distribution.
*
* @stability stable
*/
readonly distributionId: string;

@@ -278,5 +230,2 @@ private readonly defaultBehavior;

private readonly certificate?;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props: DistributionProps);

@@ -287,5 +236,4 @@ /**

* @param pathPattern the path pattern (e.g., 'images/*') that specifies which requests to apply the behavior to.
* @param origin the origin to use for this behavior.
* @param origin the origin to use for this behavior
* @param behaviorOptions the options for the behavior at this path.
* @stability stable
*/

@@ -303,19 +251,7 @@ addBehavior(pathPattern: string, origin: IOrigin, behaviorOptions?: AddBehaviorOptions): void;

}
/**
* Maximum HTTP version to support.
*
* @stability stable
*/
/** Maximum HTTP version to support */
export declare enum HttpVersion {
/**
* HTTP 1.1.
*
* @stability stable
*/
/** HTTP 1.1 */
HTTP1_1 = "http1.1",
/**
* HTTP 2.
*
* @stability stable
*/
/** HTTP 2 */
HTTP2 = "http2"

@@ -325,25 +261,10 @@ }

* The price class determines how many edge locations CloudFront will use for your distribution.
*
* See https://aws.amazon.com/cloudfront/pricing/ for full list of supported regions.
*
* @stability stable
*/
export declare enum PriceClass {
/**
* USA, Canada, Europe, & Israel.
*
* @stability stable
*/
/** USA, Canada, Europe, & Israel */
PRICE_CLASS_100 = "PriceClass_100",
/**
* PRICE_CLASS_100 + South Africa, Kenya, Middle East, Japan, Singapore, South Korea, Taiwan, Hong Kong, & Philippines.
*
* @stability stable
*/
/** PRICE_CLASS_100 + South Africa, Kenya, Middle East, Japan, Singapore, South Korea, Taiwan, Hong Kong, & Philippines */
PRICE_CLASS_200 = "PriceClass_200",
/**
* All locations.
*
* @stability stable
*/
/** All locations */
PRICE_CLASS_ALL = "PriceClass_All"

@@ -353,23 +274,9 @@ }

* How HTTPs should be handled with your distribution.
*
* @stability stable
*/
export declare enum ViewerProtocolPolicy {
/**
* HTTPS only.
*
* @stability stable
*/
/** HTTPS only */
HTTPS_ONLY = "https-only",
/**
* Will redirect HTTP requests to HTTPS.
*
* @stability stable
*/
/** Will redirect HTTP requests to HTTPS */
REDIRECT_TO_HTTPS = "redirect-to-https",
/**
* Both HTTP and HTTPS supported.
*
* @stability stable
*/
/** Both HTTP and HTTPS supported */
ALLOW_ALL = "allow-all"

@@ -379,23 +286,9 @@ }

* Defines what protocols CloudFront will use to connect to an origin.
*
* @stability stable
*/
export declare enum OriginProtocolPolicy {
/**
* Connect on HTTP only.
*
* @stability stable
*/
/** Connect on HTTP only */
HTTP_ONLY = "http-only",
/**
* Connect with the same protocol as the viewer.
*
* @stability stable
*/
/** Connect with the same protocol as the viewer */
MATCH_VIEWER = "match-viewer",
/**
* Connect on HTTPS only.
*
* @stability stable
*/
/** Connect on HTTPS only */
HTTPS_ONLY = "https-only"

@@ -407,4 +300,4 @@ }

* Server Name Indication (SNI) - is an extension to the TLS computer networking protocol by which a client indicates
* which hostname it is attempting to connect to at the start of the handshaking process. This allows a server to present
* multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites
* which hostname it is attempting to connect to at the start of the handshaking process. This allows a server to present
* multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites
* (or any other service over TLS) to be served by the same IP address without requiring all those sites to use the same certificate.

@@ -419,12 +312,5 @@ *

*
* @stability stable
*/
export declare enum SSLMethod {
/**
* @stability stable
*/
SNI = "sni-only",
/**
* @stability stable
*/
VIP = "vip"

@@ -434,35 +320,11 @@ }

* The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
*
* CloudFront serves your objects only to browsers or devices that support at least the SSL version that you specify.
*
* @stability stable
*/
export declare enum SecurityPolicyProtocol {
/**
* @stability stable
*/
SSL_V3 = "SSLv3",
/**
* @stability stable
*/
TLS_V1 = "TLSv1",
/**
* @stability stable
*/
TLS_V1_2016 = "TLSv1_2016",
/**
* @stability stable
*/
TLS_V1_1_2016 = "TLSv1.1_2016",
/**
* @stability stable
*/
TLS_V1_2_2018 = "TLSv1.2_2018",
/**
* @stability stable
*/
TLS_V1_2_2019 = "TLSv1.2_2019",
/**
* @stability stable
*/
TLS_V1_2_2021 = "TLSv1.2_2021"

@@ -472,29 +334,11 @@ }

* The HTTP methods that the Behavior will accept requests on.
*
* @stability stable
*/
export declare class AllowedMethods {
/**
* HEAD and GET.
*
* @stability stable
*/
/** HEAD and GET */
static readonly ALLOW_GET_HEAD: AllowedMethods;
/**
* HEAD, GET, and OPTIONS.
*
* @stability stable
*/
/** HEAD, GET, and OPTIONS */
static readonly ALLOW_GET_HEAD_OPTIONS: AllowedMethods;
/**
* All supported HTTP methods.
*
* @stability stable
*/
/** All supported HTTP methods */
static readonly ALLOW_ALL: AllowedMethods;
/**
* HTTP methods supported.
*
* @stability stable
*/
/** HTTP methods supported */
readonly methods: string[];

@@ -505,23 +349,9 @@ private constructor();

* The HTTP methods that the Behavior will cache requests on.
*
* @stability stable
*/
export declare class CachedMethods {
/**
* HEAD and GET.
*
* @stability stable
*/
/** HEAD and GET */
static readonly CACHE_GET_HEAD: CachedMethods;
/**
* HEAD, GET, and OPTIONS.
*
* @stability stable
*/
/** HEAD, GET, and OPTIONS */
static readonly CACHE_GET_HEAD_OPTIONS: CachedMethods;
/**
* HTTP methods supported.
*
* @stability stable
*/
/** HTTP methods supported */
readonly methods: string[];

@@ -532,4 +362,2 @@ private constructor();

* Options for configuring custom error responses.
*
* @stability stable
*/

@@ -541,3 +369,2 @@ export interface ErrorResponse {

* @default - the default caching TTL behavior applies
* @stability stable
*/

@@ -547,4 +374,2 @@ readonly ttl?: Duration;

* The HTTP status code for which you want to specify a custom error page and/or a caching duration.
*
* @stability stable
*/

@@ -558,10 +383,9 @@ readonly httpStatus: number;

* @default - the error code will be returned as the response code.
* @stability stable
*/
readonly responseHttpStatus?: number;
/**
* The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the `httpStatus`, for example, /4xx-errors/403-forbidden.html.
* The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the
* `httpStatus`, for example, /4xx-errors/403-forbidden.html
*
* @default - the default CloudFront response is shown.
* @stability stable
*/

@@ -572,28 +396,20 @@ readonly responsePagePath?: string;

* The type of events that a Lambda@Edge function can be invoked in response to.
*
* @stability stable
*/
export declare enum LambdaEdgeEventType {
/**
* The origin-request specifies the request to the origin location (e.g. S3).
*
* @stability stable
* The origin-request specifies the request to the
* origin location (e.g. S3)
*/
ORIGIN_REQUEST = "origin-request",
/**
* The origin-response specifies the response from the origin location (e.g. S3).
*
* @stability stable
* The origin-response specifies the response from the
* origin location (e.g. S3)
*/
ORIGIN_RESPONSE = "origin-response",
/**
* The viewer-request specifies the incoming request.
*
* @stability stable
* The viewer-request specifies the incoming request
*/
VIEWER_REQUEST = "viewer-request",
/**
* The viewer-response specifies the outgoing response.
*
* @stability stable
* The viewer-response specifies the outgoing response
*/

@@ -604,6 +420,3 @@ VIEWER_RESPONSE = "viewer-response"

* Represents a Lambda function version and event type when using Lambda@Edge.
*
* The type of the {@link AddBehaviorOptions.edgeLambdas} property.
*
* @stability stable
*/

@@ -615,15 +428,8 @@ export interface EdgeLambda {

* **Note**: it's not possible to use the '$LATEST' function version for Lambda@Edge!
*
* @stability stable
*/
readonly functionVersion: lambda.IVersion;
/**
* The type of event in response to which should the function be invoked.
*
* @stability stable
*/
/** The type of event in response to which should the function be invoked. */
readonly eventType: LambdaEdgeEventType;
/**
* Allows a Lambda function to have read access to the body content.
*
* Only valid for "request" event types (`ORIGIN_REQUEST` or `VIEWER_REQUEST`).

@@ -633,3 +439,2 @@ * See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html

* @default false
* @stability stable
*/

@@ -640,4 +445,2 @@ readonly includeBody?: boolean;

* Options for adding a new behavior to a Distribution.
*
* @stability stable
*/

@@ -649,3 +452,2 @@ export interface AddBehaviorOptions {

* @default AllowedMethods.ALLOW_GET_HEAD
* @stability stable
*/

@@ -657,14 +459,10 @@ readonly allowedMethods?: AllowedMethods;

* @default CachedMethods.CACHE_GET_HEAD
* @stability stable
*/
readonly cachedMethods?: CachedMethods;
/**
* The cache policy for this behavior.
*
* The cache policy determines what values are included in the cache key,
* The cache policy for this behavior. The cache policy determines what values are included in the cache key,
* and the time-to-live (TTL) values for the cache.
*
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html.
* @default CachePolicy.CACHING_OPTIMIZED
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html.
* @stability stable
*/

@@ -674,3 +472,2 @@ readonly cachePolicy?: ICachePolicy;

* Whether you want CloudFront to automatically compress certain files for this cache behavior.
*
* See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html#compressed-content-cloudfront-file-types

@@ -680,22 +477,15 @@ * for file types CloudFront will compress.

* @default true
* @stability stable
*/
readonly compress?: boolean;
/**
* The origin request policy for this behavior.
*
* The origin request policy determines which values (e.g., headers, cookies)
* The origin request policy for this behavior. The origin request policy determines which values (e.g., headers, cookies)
* are included in requests that CloudFront sends to the origin.
*
* @default - none
* @stability stable
*/
readonly originRequestPolicy?: IOriginRequestPolicy;
/**
* The response headers policy for this behavior.
* The response headers policy for this behavior. The response headers policy determines which headers are included in responses
*
* The response headers policy determines which headers are included in responses
*
* @default - none
* @stability stable
*/

@@ -707,3 +497,2 @@ readonly responseHeadersPolicy?: IResponseHeadersPolicy;

* @default false
* @stability stable
*/

@@ -715,3 +504,2 @@ readonly smoothStreaming?: boolean;

* @default ViewerProtocolPolicy.ALLOW_ALL
* @stability stable
*/

@@ -723,3 +511,2 @@ readonly viewerProtocolPolicy?: ViewerProtocolPolicy;

* @default - no functions will be invoked
* @stability stable
*/

@@ -732,3 +519,2 @@ readonly functionAssociations?: FunctionAssociation[];

* @see https://aws.amazon.com/lambda/edge
* @stability stable
*/

@@ -741,3 +527,2 @@ readonly edgeLambdas?: EdgeLambda[];

* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
* @stability stable
*/

@@ -748,4 +533,2 @@ readonly trustedKeyGroups?: IKeyGroup[];

* Options for creating a new behavior.
*
* @stability stable
*/

@@ -755,6 +538,4 @@ export interface BehaviorOptions extends AddBehaviorOptions {

* The origin that you want CloudFront to route requests to when they match this behavior.
*
* @stability stable
*/
readonly origin: IOrigin;
}

@@ -8,5 +8,3 @@ import * as cloudwatch from '@aws-cdk/aws-cloudwatch';

/**
* Properties for creating a Lambda@Edge function.
*
* @stability stable
* Properties for creating a Lambda@Edge function
*/

@@ -18,3 +16,2 @@ export interface EdgeFunctionProps extends lambda.FunctionProps {

* @default - `edge-lambda-stack-${region}`
* @stability stable
*/

@@ -32,3 +29,2 @@ readonly stackId?: string;

*
* @stability stable
* @resource AWS::Lambda::Function

@@ -38,186 +34,35 @@ */

private static readonly EDGE_REGION;
/**
* The ARN of the version for Lambda@Edge.
*
* @stability stable
*/
readonly edgeArn: string;
/**
* The name of the function.
*
* @stability stable
*/
readonly functionName: string;
/**
* The ARN of the function.
*
* @stability stable
*/
readonly functionArn: string;
/**
* The principal to grant permissions to.
*
* @stability stable
*/
readonly grantPrincipal: iam.IPrincipal;
/**
* Whether or not this Lambda function was bound to a VPC.
*
* If this is is `false`, trying to access the `connections` object will fail.
*
* @stability stable
*/
readonly isBoundToVpc = false;
/**
* The construct node where permissions are attached.
*
* @stability stable
*/
readonly permissionsNode: ConstructNode;
/**
* The IAM role associated with this function.
*
* @stability stable
*/
readonly role?: iam.IRole;
/**
* The most recently deployed version of this function.
*
* @stability stable
*/
readonly version: string;
/**
* The system architectures compatible with this lambda function.
*
* @stability stable
*/
readonly architecture: lambda.Architecture;
private readonly _edgeFunction;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props: EdgeFunctionProps);
/**
* The underlying AWS Lambda function.
*
* @stability stable
*/
get lambda(): lambda.IFunction;
/**
* Convenience method to make `EdgeFunction` conform to the same interface as `Function`.
*
* @stability stable
*/
get currentVersion(): lambda.IVersion;
/**
* Defines an alias for this version.
*
* @stability stable
*/
addAlias(aliasName: string, options?: lambda.AliasOptions): lambda.Alias;
/**
* Not supported.
*
* Connections are only applicable to VPC-enabled functions.
*
* @stability stable
* Not supported. Connections are only applicable to VPC-enabled functions.
*/
get connections(): ec2.Connections;
/**
* The `$LATEST` version of this function.
*
* Note that this is reference to a non-specific AWS Lambda version, which
* means the function this version refers to can return different results in
* different invocations.
*
* To obtain a reference to an explicit version which references the current
* function configuration, use `lambdaFunction.currentVersion` instead.
*
* @stability stable
*/
get latestVersion(): lambda.IVersion;
/**
* Adds an event source that maps to this AWS Lambda function.
*
* @stability stable
*/
addEventSourceMapping(id: string, options: lambda.EventSourceMappingOptions): lambda.EventSourceMapping;
/**
* Adds a permission to the Lambda resource policy.
*
* @stability stable
*/
addPermission(id: string, permission: lambda.Permission): void;
/**
* Adds a statement to the IAM role assumed by the instance.
*
* @stability stable
*/
addToRolePolicy(statement: iam.PolicyStatement): void;
/**
* Grant the given identity permissions to invoke this Lambda.
*
* @stability stable
*/
grantInvoke(identity: iam.IGrantable): iam.Grant;
/**
* Return the given named metric for this Lambda Return the given named metric for this Function.
*
* Return the given named metric for this Lambda Return the given named metric for this Function.
*
* @stability stable
*/
metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
/**
* Metric for the Duration of this Lambda How long execution of this Lambda takes.
*
* Average over 5 minutes
* Metric for the Duration of this Lambda How long execution of this Lambda takes.
*
* Average over 5 minutes
*
* @stability stable
*/
metricDuration(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
/**
* How many invocations of this Lambda fail.
*
* Sum over 5 minutes
*
* @stability stable
*/
metricErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
/**
* Metric for the number of invocations of this Lambda How often this Lambda is invoked.
*
* Sum over 5 minutes
* Metric for the number of invocations of this Lambda How often this Lambda is invoked.
*
* Sum over 5 minutes
*
* @stability stable
*/
metricInvocations(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
/**
* Metric for the number of throttled invocations of this Lambda How often this Lambda is throttled.
*
* Sum over 5 minutes
* Metric for the number of throttled invocations of this Lambda How often this Lambda is throttled.
*
* Sum over 5 minutes
*
* @stability stable
*/
metricThrottles(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
/**
* Adds an event source to this function.
*
* @stability stable
*/
/** Adds an event source to this function. */
addEventSource(source: lambda.IEventSource): void;
/**
* Configures options for asynchronous invocation.
*
* @stability stable
*/
configureAsyncInvoke(options: lambda.EventInvokeConfigOptions): void;

@@ -224,0 +69,0 @@ /** Create a function in-region */

@@ -21,18 +21,7 @@ "use strict";

*
* @stability stable
* @resource AWS::Lambda::Function
*/
class EdgeFunction extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props) {
super(scope, id);
/**
* Whether or not this Lambda function was bound to a VPC.
*
* If this is is `false`, trying to access the `connections` object will fail.
*
* @stability stable
*/
this.isBoundToVpc = false;

@@ -55,7 +44,2 @@ jsiiDeprecationWarnings._aws_cdk_aws_cloudfront_experimental_EdgeFunctionProps(props);

}
/**
* The underlying AWS Lambda function.
*
* @stability stable
*/
get lambda() {

@@ -66,4 +50,2 @@ return this._edgeFunction;

* Convenience method to make `EdgeFunction` conform to the same interface as `Function`.
*
* @stability stable
*/

@@ -73,7 +55,2 @@ get currentVersion() {

}
/**
* Defines an alias for this version.
*
* @stability stable
*/
addAlias(aliasName, options = {}) {

@@ -87,7 +64,3 @@ return new lambda.Alias(this._edgeFunction, `Alias${aliasName}`, {

/**
* Not supported.
*
* Connections are only applicable to VPC-enabled functions.
*
* @stability stable
* Not supported. Connections are only applicable to VPC-enabled functions.
*/

@@ -97,121 +70,36 @@ get connections() {

}
/**
* The `$LATEST` version of this function.
*
* Note that this is reference to a non-specific AWS Lambda version, which
* means the function this version refers to can return different results in
* different invocations.
*
* To obtain a reference to an explicit version which references the current
* function configuration, use `lambdaFunction.currentVersion` instead.
*
* @stability stable
*/
get latestVersion() {
throw new Error('$LATEST function version cannot be used for Lambda@Edge');
}
/**
* Adds an event source that maps to this AWS Lambda function.
*
* @stability stable
*/
addEventSourceMapping(id, options) {
return this.lambda.addEventSourceMapping(id, options);
}
/**
* Adds a permission to the Lambda resource policy.
*
* @stability stable
*/
addPermission(id, permission) {
return this.lambda.addPermission(id, permission);
}
/**
* Adds a statement to the IAM role assumed by the instance.
*
* @stability stable
*/
addToRolePolicy(statement) {
return this.lambda.addToRolePolicy(statement);
}
/**
* Grant the given identity permissions to invoke this Lambda.
*
* @stability stable
*/
grantInvoke(identity) {
return this.lambda.grantInvoke(identity);
}
/**
* Return the given named metric for this Lambda Return the given named metric for this Function.
*
* Return the given named metric for this Lambda Return the given named metric for this Function.
*
* @stability stable
*/
metric(metricName, props) {
return this.lambda.metric(metricName, { ...props, region: EdgeFunction.EDGE_REGION });
}
/**
* Metric for the Duration of this Lambda How long execution of this Lambda takes.
*
* Average over 5 minutes
* Metric for the Duration of this Lambda How long execution of this Lambda takes.
*
* Average over 5 minutes
*
* @stability stable
*/
metricDuration(props) {
return this.lambda.metricDuration({ ...props, region: EdgeFunction.EDGE_REGION });
}
/**
* How many invocations of this Lambda fail.
*
* Sum over 5 minutes
*
* @stability stable
*/
metricErrors(props) {
return this.lambda.metricErrors({ ...props, region: EdgeFunction.EDGE_REGION });
}
/**
* Metric for the number of invocations of this Lambda How often this Lambda is invoked.
*
* Sum over 5 minutes
* Metric for the number of invocations of this Lambda How often this Lambda is invoked.
*
* Sum over 5 minutes
*
* @stability stable
*/
metricInvocations(props) {
return this.lambda.metricInvocations({ ...props, region: EdgeFunction.EDGE_REGION });
}
/**
* Metric for the number of throttled invocations of this Lambda How often this Lambda is throttled.
*
* Sum over 5 minutes
* Metric for the number of throttled invocations of this Lambda How often this Lambda is throttled.
*
* Sum over 5 minutes
*
* @stability stable
*/
metricThrottles(props) {
return this.lambda.metricThrottles({ ...props, region: EdgeFunction.EDGE_REGION });
}
/**
* Adds an event source to this function.
*
* @stability stable
*/
/** Adds an event source to this function. */
addEventSource(source) {
return this.lambda.addEventSource(source);
}
/**
* Configures options for asynchronous invocation.
*
* @stability stable
*/
configureAsyncInvoke(options) {

@@ -308,3 +196,3 @@ return this.lambda.configureAsyncInvoke(options);

_a = JSII_RTTI_SYMBOL_1;
EdgeFunction[_a] = { fqn: "@aws-cdk/aws-cloudfront.experimental.EdgeFunction", version: "1.144.0" };
EdgeFunction[_a] = { fqn: "@aws-cdk/aws-cloudfront.experimental.EdgeFunction", version: "1.145.0" };
EdgeFunction.EDGE_REGION = 'us-east-1';

@@ -320,2 +208,2 @@ function addEdgeLambdaToRoleTrustStatement(role) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVkZ2UtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkJBQTZCO0FBRzdCLHdDQUF3QztBQUN4Qyw4Q0FBOEM7QUFDOUMsd0NBQXdDO0FBQ3hDLHdDQUl1Qjs7Ozs7Ozs7Ozs7OztBQVV2QixNQUFhLFlBQWEsU0FBUSxlQUFROzs7O0lBZ0J4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7Ozs7O1FBVEgsaUJBQVksR0FBRyxLQUFLLENBQUM7O1FBV25DLGlHQUFpRztRQUNqRyxNQUFNLGVBQWUsR0FBRyxDQUFDLFlBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUM7UUFDcEcsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxlQUFlO1lBQy9DLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFD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QUFNLEVBQUUsWUFBWSxDQUFDLFdBQVc7b0JBQ2hDLE9BQU8sRUFBRSxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU87aUJBQ2hDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjs7QUFqTUgsb0NBa01DOzs7QUFoTXlCLHdCQUFXLEdBQVcsV0FBVyxDQUFDO0FBd001RCxTQUFTLGlDQUFpQyxDQUFDLElBQWU7SUFDeEQsSUFBSSxJQUFJLFlBQVksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDNUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3hGLFNBQVMsQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNoRDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnQGF3cy1jZGsvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnQGF3cy1jZGsvYXdzLXNzbSc7XG5pbXBvcnQge1xuICBDZm5SZXNvdXJjZSwgQ29uc3RydWN0Tm9kZSxcbiAgQ3VzdG9tUmVzb3VyY2UsIEN1c3RvbVJlc291cmNlUHJvdmlkZXIsIEN1c3RvbVJlc291cmNlUHJvdmlkZXJSdW50aW1lLFxuICBMYXp5LCBSZXNvdXJjZSwgU3RhY2ssIFN0YWdlLCBUb2tlbixcbn0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEVkZ2VGdW5jdGlvblByb3BzIGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHN0YWNrSWQ/OiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBFZGdlRnVuY3Rpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIGxhbWJkYS5JVmVyc2lvbiB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRURHRV9SRUdJT046IHN0cmluZyA9ICd1cy1lYXN0LTEnO1xuXG4gIHB1YmxpYyByZWFkb25seSBlZGdlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIHB1YmxpYyByZWFkb25seSBpc0JvdW5kVG9WcGMgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHBlcm1pc3Npb25zTm9kZTogQ29uc3RydWN0Tm9kZTtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWRnZUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVkZ2VGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENyZWF0ZSBhIHNpbXBsZSBGdW5jdGlvbiBpZiB3ZSdyZSBhbHJlYWR5IGluIHVzLWVhc3QtMTsgb3RoZXJ3aXNlIGNyZWF0ZSBhIGNyb3NzLXJlZ2lvbiBzdGFjay5cbiAgICBjb25zdCByZWdpb25Jc1VzRWFzdDEgPSAhVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuc3RhY2sucmVnaW9uKSAmJiB0aGlzLnN0YWNrLnJlZ2lvbiA9PT0gJ3VzLWVhc3QtMSc7XG4gICAgY29uc3QgeyBlZGdlRnVuY3Rpb24sIGVkZ2VBcm4gfSA9IHJlZ2lvbklzVXNFYXN0MVxuICAgICAgPyB0aGlzLmNyZWF0ZUluUmVnaW9uRnVuY3Rpb24ocHJvcHMpXG4gICAgICA6IHRoaXMuY3JlYXRlQ3Jvc3NSZWdpb25GdW5jdGlvbihpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5lZGdlQXJuID0gZWRnZUFybjtcblxuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSBlZGdlQXJuO1xuICAgIHRoaXMuX2VkZ2VGdW5jdGlvbiA9IGVkZ2VGdW5jdGlvbjtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9IHRoaXMuX2VkZ2VGdW5jdGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuX2VkZ2VGdW5jdGlvbi5yb2xlITtcbiAgICB0aGlzLnBlcm1pc3Npb25zTm9kZSA9IHRoaXMuX2VkZ2VGdW5jdGlvbi5wZXJtaXNzaW9uc05vZGU7XG4gICAgdGhpcy52ZXJzaW9uID0gbGFtYmRhLmV4dHJhY3RRdWFsaWZpZXJGcm9tQXJuKHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuYXJjaGl0ZWN0dXJlID0gdGhpcy5fZWRnZUZ1bmN0aW9uLmFyY2hpdGVjdHVyZTtcblxuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLl9lZGdlRnVuY3Rpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhbWJkYSgpOiBsYW1iZGEuSUZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZWRnZUZ1bmN0aW9uO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCBjdXJyZW50VmVyc2lvbigpOiBsYW1iZGEuSVZlcnNpb24ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFkZEFsaWFzKGFsaWFzTmFtZTogc3RyaW5nLCBvcHRpb25zOiBsYW1iZGEuQWxpYXNPcHRpb25zID0ge30pOiBsYW1iZGEuQWxpYXMge1xuICAgIHJldHVybiBuZXcgbGFtYmRhLkFsaWFzKHRoaXMuX2VkZ2VGdW5jdGlvbiwgYEFsaWFzJHthbGlhc05hbWV9YCwge1xuICAgICAgYWxpYXNOYW1lLFxuICAgICAgdmVyc2lvbjogdGhpcy5fZWRnZUZ1bmN0aW9uLmN1cnJlbnRWZXJzaW9uLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25zKCk6IGVjMi5Db25uZWN0aW9ucyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMYW1iZGFARWRnZSBkb2VzIG5vdCBzdXBwb3J0IGNvbm5lY3Rpb25zJyk7XG4gIH1cbiAgcHVibGljIGdldCBsYXRlc3RWZXJzaW9uKCk6IGxhbWJkYS5JVmVyc2lvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCckTEFURVNUIGZ1bmN0aW9uIHZlcnNpb24gY2Fubm90IGJlIHVzZWQgZm9yIExhbWJkYUBFZGdlJyk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXZlbnRTb3VyY2VNYXBwaW5nKGlkOiBzdHJpbmcsIG9wdGlvbnM6IGxhbWJkYS5FdmVudFNvdXJjZU1hcHBpbmdPcHRpb25zKTogbGFtYmRhLkV2ZW50U291cmNlTWFwcGluZyB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLmFkZEV2ZW50U291cmNlTWFwcGluZyhpZCwgb3B0aW9ucyk7XG4gIH1cbiAgcHVibGljIGFkZFBlcm1pc3Npb24oaWQ6IHN0cmluZywgcGVybWlzc2lvbjogbGFtYmRhLlBlcm1pc3Npb24pOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5sYW1iZGEuYWRkUGVybWlzc2lvbihpZCwgcGVybWlzc2lvbik7XG4gIH1cbiAgcHVibGljIGFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5sYW1iZGEuYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cbiAgcHVibGljIGdyYW50SW52b2tlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLmdyYW50SW52b2tlKGlkZW50aXR5KTtcbiAgfVxuICBwdWJsaWMgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLm1ldHJpYyhtZXRyaWNOYW1lLCB7IC4uLnByb3BzLCByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTiB9KTtcbiAgfVxuICBwdWJsaWMgbWV0cmljRHVyYXRpb24ocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLm1ldHJpY0R1cmF0aW9uKHsgLi4ucHJvcHMsIHJlZ2lvbjogRWRnZUZ1bmN0aW9uLkVER0VfUkVHSU9OIH0pO1xuICB9XG4gIHB1YmxpYyBtZXRyaWNFcnJvcnMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLm1ldHJpY0Vycm9ycyh7IC4uLnByb3BzLCByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTiB9KTtcbiAgfVxuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLm1ldHJpY0ludm9jYXRpb25zKHsgLi4ucHJvcHMsIHJlZ2lvbjogRWRnZUZ1bmN0aW9uLkVER0VfUkVHSU9OIH0pO1xuICB9XG4gIHB1YmxpYyBtZXRyaWNUaHJvdHRsZXMocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLm1ldHJpY1Rocm90dGxlcyh7IC4uLnByb3BzLCByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTiB9KTtcbiAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZEV2ZW50U291cmNlKHNvdXJjZTogbGFtYmRhLklFdmVudFNvdXJjZSk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5hZGRFdmVudFNvdXJjZShzb3VyY2UpO1xuICB9XG4gIHB1YmxpYyBjb25maWd1cmVBc3luY0ludm9rZShvcHRpb25zOiBsYW1iZGEuRXZlbnRJbnZva2VDb25maWdPcHRpb25zKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLmNvbmZpZ3VyZUFzeW5jSW52b2tlKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIGZ1bmN0aW9uIGluLXJlZ2lvbiAqL1xuICBwcml2YXRlIGNyZWF0ZUluUmVnaW9uRnVuY3Rpb24ocHJvcHM6IGxhbWJkYS5GdW5jdGlvblByb3BzKTogRnVuY3Rpb25Db25maWcge1xuICAgIGNvbnN0IGVkZ2VGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgJ0ZuJywgcHJvcHMpO1xuICAgIGFkZEVkZ2VMYW1iZGFUb1JvbGVUcnVzdFN0YXRlbWVudChlZGdlRnVuY3Rpb24ucm9sZSEpO1xuXG4gICAgcmV0dXJuIHsgZWRnZUZ1bmN0aW9uLCBlZGdlQXJuOiBlZGdlRnVuY3Rpb24uY3VycmVudFZlcnNpb24uZWRnZUFybiB9O1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIHN1cHBvcnQgc3RhY2sgYW5kIGZ1bmN0aW9uIGluIHVzLWVhc3QtMSwgYW5kIGEgU1NNIHJlYWRlciBpbi1yZWdpb24gKi9cbiAgcHJpdmF0ZSBjcmVhdGVDcm9zc1JlZ2lvbkZ1bmN0aW9uKGlkOiBzdHJpbmcsIHByb3BzOiBFZGdlRnVuY3Rpb25Qcm9wcyk6IEZ1bmN0aW9uQ29uZmlnIHtcbiAgICBjb25zdCBwYXJhbWV0ZXJOYW1lUHJlZml4ID0gJ2Nkay9FZGdlRnVuY3Rpb25Bcm4nO1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5lbnYucmVnaW9uKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGFja3Mgd2hpY2ggdXNlIEVkZ2VGdW5jdGlvbnMgbXVzdCBoYXZlIGFuIGV4cGxpY2l0bHkgc2V0IHJlZ2lvbicpO1xuICAgIH1cbiAgICAvLyBTU00gcGFyYW1ldGVyIG5hbWVzIG11c3Qgb25seSBjb250YWluIGxldHRlcnMsIG51bWJlcnMsIC4sIF8sIC0sIG9yIC8uXG4gICAgY29uc3Qgc2FuaXRpemVkUGF0aCA9IHRoaXMubm9kZS5wYXRoLnJlcGxhY2UoL1teXFwvXFx3Li1dL2csICdfJyk7XG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZSA9IGAvJHtwYXJhbWV0ZXJOYW1lUHJlZml4fS8ke3RoaXMuZW52LnJlZ2lvbn0vJHtzYW5pdGl6ZWRQYXRofWA7XG4gICAgY29uc3QgZnVuY3Rpb25TdGFjayA9IHRoaXMuZWRnZVN0YWNrKHByb3BzLnN0YWNrSWQpO1xuXG4gICAgY29uc3QgZWRnZUZ1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbihmdW5jdGlvblN0YWNrLCBpZCwgcHJvcHMpO1xuICAgIGFkZEVkZ2VMYW1iZGFUb1JvbGVUcnVzdFN0YXRlbWVudChlZGdlRnVuY3Rpb24ucm9sZSEpO1xuXG4gICAgLy8gU3RvcmUgdGhlIGN1cnJlbnQgdmVyc2lvbidzIEFSTiB0byBiZSByZXRyaWV2ZWQgYnkgdGhlIGNyb3NzIHJlZ2lvbiByZWFkZXIgYmVsb3cuXG4gICAgY29uc3QgdmVyc2lvbiA9IGVkZ2VGdW5jdGlvbi5jdXJyZW50VmVyc2lvbjtcbiAgICBuZXcgc3NtLlN0cmluZ1BhcmFtZXRlcihlZGdlRnVuY3Rpb24sICdQYXJhbWV0ZXInLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lLFxuICAgICAgc3RyaW5nVmFsdWU6IHZlcnNpb24uZWRnZUFybixcbiAgICB9KTtcblxuICAgIGNvbnN0IGVkZ2VBcm4gPSB0aGlzLmNyZWF0ZUNyb3NzUmVnaW9uQXJuUmVhZGVyKHBhcmFtZXRlck5hbWVQcmVmaXgsIHBhcmFtZXRlck5hbWUsIHZlcnNpb24pO1xuXG4gICAgcmV0dXJuIHsgZWRnZUZ1bmN0aW9uLCBlZGdlQXJuIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNyb3NzUmVnaW9uQXJuUmVhZGVyKHBhcmFtZXRlck5hbWVQcmVmaXg6IHN0cmluZywgcGFyYW1ldGVyTmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBsYW1iZGEuVmVyc2lvbik6IHN0cmluZyB7XG4gICAgLy8gUHJlZml4IG9mIHRoZSBwYXJhbWV0ZXIgQVJOIHRoYXQgYXBwbGllcyB0byBhbGwgRWRnZUZ1bmN0aW9ucy5cbiAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBgQ3VzdG9tUmVzb3VyY2VQcm92aWRlcmAgaXMgYSBzaW5nbGV0b24sIGFuZCB0aGUgYHBvbGljeVN0YXRlbWVudGBcbiAgICAvLyBtdXN0IHdvcmsgZm9yIG11bHRpcGxlIEVkZ2VGdW5jdGlvbnMuXG4gICAgY29uc3QgcGFyYW1ldGVyQXJuUHJlZml4ID0gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ3NzbScsXG4gICAgICByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTixcbiAgICAgIHJlc291cmNlOiAncGFyYW1ldGVyJyxcbiAgICAgIHJlc291cmNlTmFtZTogcGFyYW1ldGVyTmFtZVByZWZpeCArICcvKicsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZVR5cGUgPSAnQ3VzdG9tOjpDcm9zc1JlZ2lvblN0cmluZ1BhcmFtZXRlclJlYWRlcic7XG4gICAgY29uc3Qgc2VydmljZVRva2VuID0gQ3VzdG9tUmVzb3VyY2VQcm92aWRlci5nZXRPckNyZWF0ZSh0aGlzLCByZXNvdXJjZVR5cGUsIHtcbiAgICAgIGNvZGVEaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICdlZGdlLWZ1bmN0aW9uJyksXG4gICAgICBydW50aW1lOiBDdXN0b21SZXNvdXJjZVByb3ZpZGVyUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIHBvbGljeVN0YXRlbWVudHM6IFt7XG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgUmVzb3VyY2U6IHBhcmFtZXRlckFyblByZWZpeCxcbiAgICAgICAgQWN0aW9uOiBbJ3NzbTpHZXRQYXJhbWV0ZXInXSxcbiAgICAgIH1dLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdBcm5SZWFkZXInLCB7XG4gICAgICByZXNvdXJjZVR5cGU6IHJlc291cmNlVHlwZSxcbiAgICAgIHNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgUmVnaW9uOiBFZGdlRnVuY3Rpb24uRURHRV9SRUdJT04sXG4gICAgICAgIFBhcmFtZXRlck5hbWU6IHBhcmFtZXRlck5hbWUsXG4gICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hlbiB0aGUgZnVuY3Rpb24gaGFzIGNoYW5nZWQsIHRvIHJlZnJlc2ggdGhlIEFSTiBmcm9tIHRoZSBjdXN0b20gcmVzb3VyY2UuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFVzZSB0aGUgbG9naWNhbCBpZCBvZiB0aGUgZnVuY3Rpb24gdmVyc2lvbi4gV2hlbmV2ZXIgYSBmdW5jdGlvbiB2ZXJzaW9uIGNoYW5nZXMsIHRoZSBsb2dpY2FsIGlkIG11c3QgYmVcbiAgICAgICAgLy8gY2hhbmdlZCBmb3IgaXQgdG8gdGFrZSBlZmZlY3QgLSBhIGdvb2QgY2FuZGlkYXRlIGZvciBSZWZyZXNoVG9rZW4uXG4gICAgICAgIFJlZnJlc2hUb2tlbjogTGF6eS51bmNhY2hlZFN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2ZuID0gdmVyc2lvbi5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5SZXNvdXJjZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YWNrLnJlc29sdmUoY2ZuLmxvZ2ljYWxJZCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc291cmNlLmdldEF0dFN0cmluZygnRnVuY3Rpb25Bcm4nKTtcbiAgfVxuXG4gIHByaXZhdGUgZWRnZVN0YWNrKHN0YWNrSWQ/OiBzdHJpbmcpOiBTdGFjayB7XG4gICAgY29uc3Qgc3RhZ2UgPSBTdGFnZS5vZih0aGlzKTtcbiAgICBpZiAoIXN0YWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YWNrcyB3aGljaCB1c2UgRWRnZUZ1bmN0aW9ucyBtdXN0IGJlIHBhcnQgb2YgYSBDREsgYXBwIG9yIHN0YWdlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWRnZVN0YWNrSWQgPSBzdGFja0lkID8/IGBlZGdlLWxhbWJkYS1zdGFjay0ke3RoaXMuc3RhY2subm9kZS5hZGRyfWA7XG4gICAgbGV0IGVkZ2VTdGFjayA9IHN0YWdlLm5vZGUudHJ5RmluZENoaWxkKGVkZ2VTdGFja0lkKSBhcyBTdGFjaztcbiAgICBpZiAoIWVkZ2VTdGFjaykge1xuICAgICAgZWRnZVN0YWNrID0gbmV3IFN0YWNrKHN0YWdlLCBlZGdlU3RhY2tJZCwge1xuICAgICAgICBlbnY6IHtcbiAgICAgICAgICByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTixcbiAgICAgICAgICBhY2NvdW50OiBTdGFjay5vZih0aGlzKS5hY2NvdW50LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc3RhY2suYWRkRGVwZW5kZW5jeShlZGdlU3RhY2spO1xuICAgIHJldHVybiBlZGdlU3RhY2s7XG4gIH1cbn1cblxuLyoqIFJlc3VsdCBvZiBjcmVhdGluZyBhbiBpbi1yZWdpb24gb3IgY3Jvc3MtcmVnaW9uIGZ1bmN0aW9uICovXG5pbnRlcmZhY2UgRnVuY3Rpb25Db25maWcge1xuICByZWFkb25seSBlZGdlRnVuY3Rpb246IGxhbWJkYS5GdW5jdGlvbjtcbiAgcmVhZG9ubHkgZWRnZUFybjogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBhZGRFZGdlTGFtYmRhVG9Sb2xlVHJ1c3RTdGF0ZW1lbnQocm9sZTogaWFtLklSb2xlKSB7XG4gIGlmIChyb2xlIGluc3RhbmNlb2YgaWFtLlJvbGUgJiYgcm9sZS5hc3N1bWVSb2xlUG9saWN5KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoKTtcbiAgICBjb25zdCBlZGdlTGFtYmRhU2VydmljZVByaW5jaXBhbCA9IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWRnZWxhbWJkYS5hbWF6b25hd3MuY29tJyk7XG4gICAgc3RhdGVtZW50LmFkZFByaW5jaXBhbHMoZWRnZUxhbWJkYVNlcnZpY2VQcmluY2lwYWwpO1xuICAgIHN0YXRlbWVudC5hZGRBY3Rpb25zKGVkZ2VMYW1iZGFTZXJ2aWNlUHJpbmNpcGFsLmFzc3VtZVJvbGVBY3Rpb24pO1xuICAgIHJvbGUuYXNzdW1lUm9sZVBvbGljeS5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVkZ2UtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkJBQTZCO0FBRzdCLHdDQUF3QztBQUN4Qyw4Q0FBOEM7QUFDOUMsd0NBQXdDO0FBQ3hDLHdDQUl1QjtBQWV2Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsZUFBUTtJQWdCeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBVEgsaUJBQVksR0FBRyxLQUFLLENBQUM7O1FBV25DLGlHQUFpRztRQUNqRyxNQUFNLGVBQWUsR0FBRyxDQUFDLFlBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUM7UUFDcEcsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxlQUFlO1lBQy9DLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1FB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T0FBTztpQkFDaEM7YUFDRixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sU0FBUyxDQUFDO0tBQ2xCOztBQXJNSCxvQ0FzTUM7OztBQXBNeUIsd0JBQVcsR0FBVyxXQUFXLENBQUM7QUE0TTVELFNBQVMsaUNBQWlDLENBQUMsSUFBZTtJQUN4RCxJQUFJLElBQUksWUFBWSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1QyxNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDeEYsU0FBUyxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELFNBQVMsQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdAYXdzLWNkay9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdAYXdzLWNkay9hd3Mtc3NtJztcbmltcG9ydCB7XG4gIENmblJlc291cmNlLCBDb25zdHJ1Y3ROb2RlLFxuICBDdXN0b21SZXNvdXJjZSwgQ3VzdG9tUmVzb3VyY2VQcm92aWRlciwgQ3VzdG9tUmVzb3VyY2VQcm92aWRlclJ1bnRpbWUsXG4gIExhenksIFJlc291cmNlLCBTdGFjaywgU3RhZ2UsIFRva2VuLFxufSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgTGFtYmRhQEVkZ2UgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlRnVuY3Rpb25Qcm9wcyBleHRlbmRzIGxhbWJkYS5GdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzdGFjayBJRCBvZiBMYW1iZGFARWRnZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgZWRnZS1sYW1iZGEtc3RhY2stJHtyZWdpb259YFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIExhbWJkYUBFZGdlIGZ1bmN0aW9uLlxuICpcbiAqIENvbnZlbmllbmNlIHJlc291cmNlIGZvciByZXF1ZXN0aW5nIGEgTGFtYmRhIGZ1bmN0aW9uIGluIHRoZSAndXMtZWFzdC0xJyByZWdpb24gZm9yIHVzZSB3aXRoIExhbWJkYUBFZGdlLlxuICogSW1wbGVtZW50cyBzZXZlcmFsIHJlc3RyaWN0aW9ucyBlbmZvcmNlZCBieSBMYW1iZGFARWRnZS5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3QgcmVxdWlyZXMgdGhhdCB0aGUgJ3VzLWVhc3QtMScgcmVnaW9uIGhhcyBiZWVuIGJvb3RzdHJhcHBlZC5cbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2xhdGVzdC9ndWlkZS9ib290c3RyYXBwaW5nLmh0bWwgb3IgJ2NkayBib290c3RyYXAgLS1oZWxwJyBmb3Igb3B0aW9ucy5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpMYW1iZGE6OkZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBFZGdlRnVuY3Rpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIGxhbWJkYS5JVmVyc2lvbiB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRURHRV9SRUdJT046IHN0cmluZyA9ICd1cy1lYXN0LTEnO1xuXG4gIHB1YmxpYyByZWFkb25seSBlZGdlQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIHB1YmxpYyByZWFkb25seSBpc0JvdW5kVG9WcGMgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHBlcm1pc3Npb25zTm9kZTogQ29uc3RydWN0Tm9kZTtcbiAgcHVibGljIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZWRnZUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVkZ2VGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENyZWF0ZSBhIHNpbXBsZSBGdW5jdGlvbiBpZiB3ZSdyZSBhbHJlYWR5IGluIHVzLWVhc3QtMTsgb3RoZXJ3aXNlIGNyZWF0ZSBhIGNyb3NzLXJlZ2lvbiBzdGFjay5cbiAgICBjb25zdCByZWdpb25Jc1VzRWFzdDEgPSAhVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuc3RhY2sucmVnaW9uKSAmJiB0aGlzLnN0YWNrLnJlZ2lvbiA9PT0gJ3VzLWVhc3QtMSc7XG4gICAgY29uc3QgeyBlZGdlRnVuY3Rpb24sIGVkZ2VBcm4gfSA9IHJlZ2lvbklzVXNFYXN0MVxuICAgICAgPyB0aGlzLmNyZWF0ZUluUmVnaW9uRnVuY3Rpb24ocHJvcHMpXG4gICAgICA6IHRoaXMuY3JlYXRlQ3Jvc3NSZWdpb25GdW5jdGlvbihpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5lZGdlQXJuID0gZWRnZUFybjtcblxuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSBlZGdlQXJuO1xuICAgIHRoaXMuX2VkZ2VGdW5jdGlvbiA9IGVkZ2VGdW5jdGlvbjtcbiAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9IHRoaXMuX2VkZ2VGdW5jdGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuX2VkZ2VGdW5jdGlvbi5yb2xlITtcbiAgICB0aGlzLnBlcm1pc3Npb25zTm9kZSA9IHRoaXMuX2VkZ2VGdW5jdGlvbi5wZXJtaXNzaW9uc05vZGU7XG4gICAgdGhpcy52ZXJzaW9uID0gbGFtYmRhLmV4dHJhY3RRdWFsaWZpZXJGcm9tQXJuKHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuYXJjaGl0ZWN0dXJlID0gdGhpcy5fZWRnZUZ1bmN0aW9uLmFyY2hpdGVjdHVyZTtcblxuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLl9lZGdlRnVuY3Rpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhbWJkYSgpOiBsYW1iZGEuSUZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZWRnZUZ1bmN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBtYWtlIGBFZGdlRnVuY3Rpb25gIGNvbmZvcm0gdG8gdGhlIHNhbWUgaW50ZXJmYWNlIGFzIGBGdW5jdGlvbmAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN1cnJlbnRWZXJzaW9uKCk6IGxhbWJkYS5JVmVyc2lvbiB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYWRkQWxpYXMoYWxpYXNOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGxhbWJkYS5BbGlhc09wdGlvbnMgPSB7fSk6IGxhbWJkYS5BbGlhcyB7XG4gICAgcmV0dXJuIG5ldyBsYW1iZGEuQWxpYXModGhpcy5fZWRnZUZ1bmN0aW9uLCBgQWxpYXMke2FsaWFzTmFtZX1gLCB7XG4gICAgICBhbGlhc05hbWUsXG4gICAgICB2ZXJzaW9uOiB0aGlzLl9lZGdlRnVuY3Rpb24uY3VycmVudFZlcnNpb24sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdCBzdXBwb3J0ZWQuIENvbm5lY3Rpb25zIGFyZSBvbmx5IGFwcGxpY2FibGUgdG8gVlBDLWVuYWJsZWQgZnVuY3Rpb25zLlxuICAgKi9cbiAgcHVibGljIGdldCBjb25uZWN0aW9ucygpOiBlYzIuQ29ubmVjdGlvbnMge1xuICAgIHRocm93IG5ldyBFcnJvcignTGFtYmRhQEVkZ2UgZG9lcyBub3Qgc3VwcG9ydCBjb25uZWN0aW9ucycpO1xuICB9XG4gIHB1YmxpYyBnZXQgbGF0ZXN0VmVyc2lvbigpOiBsYW1iZGEuSVZlcnNpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignJExBVEVTVCBmdW5jdGlvbiB2ZXJzaW9uIGNhbm5vdCBiZSB1c2VkIGZvciBMYW1iZGFARWRnZScpO1xuICB9XG5cbiAgcHVibGljIGFkZEV2ZW50U291cmNlTWFwcGluZyhpZDogc3RyaW5nLCBvcHRpb25zOiBsYW1iZGEuRXZlbnRTb3VyY2VNYXBwaW5nT3B0aW9ucyk6IGxhbWJkYS5FdmVudFNvdXJjZU1hcHBpbmcge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5hZGRFdmVudFNvdXJjZU1hcHBpbmcoaWQsIG9wdGlvbnMpO1xuICB9XG4gIHB1YmxpYyBhZGRQZXJtaXNzaW9uKGlkOiBzdHJpbmcsIHBlcm1pc3Npb246IGxhbWJkYS5QZXJtaXNzaW9uKTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLmFkZFBlcm1pc3Npb24oaWQsIHBlcm1pc3Npb24pO1xuICB9XG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMubGFtYmRhLmFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQpO1xuICB9XG4gIHB1YmxpYyBncmFudEludm9rZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5ncmFudEludm9rZShpZGVudGl0eSk7XG4gIH1cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5tZXRyaWMobWV0cmljTmFtZSwgeyAuLi5wcm9wcywgcmVnaW9uOiBFZGdlRnVuY3Rpb24uRURHRV9SRUdJT04gfSk7XG4gIH1cbiAgcHVibGljIG1ldHJpY0R1cmF0aW9uKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5tZXRyaWNEdXJhdGlvbih7IC4uLnByb3BzLCByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTiB9KTtcbiAgfVxuICBwdWJsaWMgbWV0cmljRXJyb3JzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5tZXRyaWNFcnJvcnMoeyAuLi5wcm9wcywgcmVnaW9uOiBFZGdlRnVuY3Rpb24uRURHRV9SRUdJT04gfSk7XG4gIH1cbiAgcHVibGljIG1ldHJpY0ludm9jYXRpb25zKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5tZXRyaWNJbnZvY2F0aW9ucyh7IC4uLnByb3BzLCByZWdpb246IEVkZ2VGdW5jdGlvbi5FREdFX1JFR0lPTiB9KTtcbiAgfVxuICBwdWJsaWMgbWV0cmljVGhyb3R0bGVzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5tZXRyaWNUaHJvdHRsZXMoeyAuLi5wcm9wcywgcmVnaW9uOiBFZGdlRnVuY3Rpb24uRURHRV9SRUdJT04gfSk7XG4gIH1cbiAgLyoqIEFkZHMgYW4gZXZlbnQgc291cmNlIHRvIHRoaXMgZnVuY3Rpb24uICovXG4gIHB1YmxpYyBhZGRFdmVudFNvdXJjZShzb3VyY2U6IGxhbWJkYS5JRXZlbnRTb3VyY2UpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5sYW1iZGEuYWRkRXZlbnRTb3VyY2Uoc291cmNlKTtcbiAgfVxuICBwdWJsaWMgY29uZmlndXJlQXN5bmNJbnZva2Uob3B0aW9uczogbGFtYmRhLkV2ZW50SW52b2tlQ29uZmlnT3B0aW9ucyk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5jb25maWd1cmVBc3luY0ludm9rZShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGUgYSBmdW5jdGlvbiBpbi1yZWdpb24gKi9cbiAgcHJpdmF0ZSBjcmVhdGVJblJlZ2lvbkZ1bmN0aW9uKHByb3BzOiBsYW1iZGEuRnVuY3Rpb25Qcm9wcyk6IEZ1bmN0aW9uQ29uZmlnIHtcbiAgICBjb25zdCBlZGdlRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdGbicsIHByb3BzKTtcbiAgICBhZGRFZGdlTGFtYmRhVG9Sb2xlVHJ1c3RTdGF0ZW1lbnQoZWRnZUZ1bmN0aW9uLnJvbGUhKTtcblxuICAgIHJldHVybiB7IGVkZ2VGdW5jdGlvbiwgZWRnZUFybjogZWRnZUZ1bmN0aW9uLmN1cnJlbnRWZXJzaW9uLmVkZ2VBcm4gfTtcbiAgfVxuXG4gIC8qKiBDcmVhdGUgYSBzdXBwb3J0IHN0YWNrIGFuZCBmdW5jdGlvbiBpbiB1cy1lYXN0LTEsIGFuZCBhIFNTTSByZWFkZXIgaW4tcmVnaW9uICovXG4gIHByaXZhdGUgY3JlYXRlQ3Jvc3NSZWdpb25GdW5jdGlvbihpZDogc3RyaW5nLCBwcm9wczogRWRnZUZ1bmN0aW9uUHJvcHMpOiBGdW5jdGlvbkNvbmZpZyB7XG4gICAgY29uc3QgcGFyYW1ldGVyTmFtZVByZWZpeCA9ICdjZGsvRWRnZUZ1bmN0aW9uQXJuJztcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuZW52LnJlZ2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3RhY2tzIHdoaWNoIHVzZSBFZGdlRnVuY3Rpb25zIG11c3QgaGF2ZSBhbiBleHBsaWNpdGx5IHNldCByZWdpb24nKTtcbiAgICB9XG4gICAgLy8gU1NNIHBhcmFtZXRlciBuYW1lcyBtdXN0IG9ubHkgY29udGFpbiBsZXR0ZXJzLCBudW1iZXJzLCAuLCBfLCAtLCBvciAvLlxuICAgIGNvbnN0IHNhbml0aXplZFBhdGggPSB0aGlzLm5vZGUucGF0aC5yZXBsYWNlKC9bXlxcL1xcdy4tXS9nLCAnXycpO1xuICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSBgLyR7cGFyYW1ldGVyTmFtZVByZWZpeH0vJHt0aGlzLmVudi5yZWdpb259LyR7c2FuaXRpemVkUGF0aH1gO1xuICAgIGNvbnN0IGZ1bmN0aW9uU3RhY2sgPSB0aGlzLmVkZ2VTdGFjayhwcm9wcy5zdGFja0lkKTtcblxuICAgIGNvbnN0IGVkZ2VGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oZnVuY3Rpb25TdGFjaywgaWQsIHByb3BzKTtcbiAgICBhZGRFZGdlTGFtYmRhVG9Sb2xlVHJ1c3RTdGF0ZW1lbnQoZWRnZUZ1bmN0aW9uLnJvbGUhKTtcblxuICAgIC8vIFN0b3JlIHRoZSBjdXJyZW50IHZlcnNpb24ncyBBUk4gdG8gYmUgcmV0cmlldmVkIGJ5IHRoZSBjcm9zcyByZWdpb24gcmVhZGVyIGJlbG93LlxuICAgIGNvbnN0IHZlcnNpb24gPSBlZGdlRnVuY3Rpb24uY3VycmVudFZlcnNpb247XG4gICAgbmV3IHNzbS5TdHJpbmdQYXJhbWV0ZXIoZWRnZUZ1bmN0aW9uLCAnUGFyYW1ldGVyJywge1xuICAgICAgcGFyYW1ldGVyTmFtZSxcbiAgICAgIHN0cmluZ1ZhbHVlOiB2ZXJzaW9uLmVkZ2VBcm4sXG4gICAgfSk7XG5cbiAgICBjb25zdCBlZGdlQXJuID0gdGhpcy5jcmVhdGVDcm9zc1JlZ2lvbkFyblJlYWRlcihwYXJhbWV0ZXJOYW1lUHJlZml4LCBwYXJhbWV0ZXJOYW1lLCB2ZXJzaW9uKTtcblxuICAgIHJldHVybiB7IGVkZ2VGdW5jdGlvbiwgZWRnZUFybiB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDcm9zc1JlZ2lvbkFyblJlYWRlcihwYXJhbWV0ZXJOYW1lUHJlZml4OiBzdHJpbmcsIHBhcmFtZXRlck5hbWU6IHN0cmluZywgdmVyc2lvbjogbGFtYmRhLlZlcnNpb24pOiBzdHJpbmcge1xuICAgIC8vIFByZWZpeCBvZiB0aGUgcGFyYW1ldGVyIEFSTiB0aGF0IGFwcGxpZXMgdG8gYWxsIEVkZ2VGdW5jdGlvbnMuXG4gICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgYEN1c3RvbVJlc291cmNlUHJvdmlkZXJgIGlzIGEgc2luZ2xldG9uLCBhbmQgdGhlIGBwb2xpY3lTdGF0ZW1lbnRgXG4gICAgLy8gbXVzdCB3b3JrIGZvciBtdWx0aXBsZSBFZGdlRnVuY3Rpb25zLlxuICAgIGNvbnN0IHBhcmFtZXRlckFyblByZWZpeCA9IHRoaXMuc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdzc20nLFxuICAgICAgcmVnaW9uOiBFZGdlRnVuY3Rpb24uRURHRV9SRUdJT04sXG4gICAgICByZXNvdXJjZTogJ3BhcmFtZXRlcicsXG4gICAgICByZXNvdXJjZU5hbWU6IHBhcmFtZXRlck5hbWVQcmVmaXggKyAnLyonLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gJ0N1c3RvbTo6Q3Jvc3NSZWdpb25TdHJpbmdQYXJhbWV0ZXJSZWFkZXInO1xuICAgIGNvbnN0IHNlcnZpY2VUb2tlbiA9IEN1c3RvbVJlc291cmNlUHJvdmlkZXIuZ2V0T3JDcmVhdGUodGhpcywgcmVzb3VyY2VUeXBlLCB7XG4gICAgICBjb2RlRGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZWRnZS1mdW5jdGlvbicpLFxuICAgICAgcnVudGltZTogQ3VzdG9tUmVzb3VyY2VQcm92aWRlclJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICBwb2xpY3lTdGF0ZW1lbnRzOiBbe1xuICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgIFJlc291cmNlOiBwYXJhbWV0ZXJBcm5QcmVmaXgsXG4gICAgICAgIEFjdGlvbjogWydzc206R2V0UGFyYW1ldGVyJ10sXG4gICAgICB9XSxcbiAgICB9KTtcbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnQXJuUmVhZGVyJywge1xuICAgICAgcmVzb3VyY2VUeXBlOiByZXNvdXJjZVR5cGUsXG4gICAgICBzZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFJlZ2lvbjogRWRnZUZ1bmN0aW9uLkVER0VfUkVHSU9OLFxuICAgICAgICBQYXJhbWV0ZXJOYW1lOiBwYXJhbWV0ZXJOYW1lLFxuICAgICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZW4gdGhlIGZ1bmN0aW9uIGhhcyBjaGFuZ2VkLCB0byByZWZyZXNoIHRoZSBBUk4gZnJvbSB0aGUgY3VzdG9tIHJlc291cmNlLlxuICAgICAgICAvL1xuICAgICAgICAvLyBVc2UgdGhlIGxvZ2ljYWwgaWQgb2YgdGhlIGZ1bmN0aW9uIHZlcnNpb24uIFdoZW5ldmVyIGEgZnVuY3Rpb24gdmVyc2lvbiBjaGFuZ2VzLCB0aGUgbG9naWNhbCBpZCBtdXN0IGJlXG4gICAgICAgIC8vIGNoYW5nZWQgZm9yIGl0IHRvIHRha2UgZWZmZWN0IC0gYSBnb29kIGNhbmRpZGF0ZSBmb3IgUmVmcmVzaFRva2VuLlxuICAgICAgICBSZWZyZXNoVG9rZW46IExhenkudW5jYWNoZWRTdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNmbiA9IHZlcnNpb24ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUmVzb3VyY2U7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFjay5yZXNvbHZlKGNmbi5sb2dpY2FsSWQpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXNvdXJjZS5nZXRBdHRTdHJpbmcoJ0Z1bmN0aW9uQXJuJyk7XG4gIH1cblxuICBwcml2YXRlIGVkZ2VTdGFjayhzdGFja0lkPzogc3RyaW5nKTogU3RhY2sge1xuICAgIGNvbnN0IHN0YWdlID0gU3RhZ2Uub2YodGhpcyk7XG4gICAgaWYgKCFzdGFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGFja3Mgd2hpY2ggdXNlIEVkZ2VGdW5jdGlvbnMgbXVzdCBiZSBwYXJ0IG9mIGEgQ0RLIGFwcCBvciBzdGFnZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGVkZ2VTdGFja0lkID0gc3RhY2tJZCA/PyBgZWRnZS1sYW1iZGEtc3RhY2stJHt0aGlzLnN0YWNrLm5vZGUuYWRkcn1gO1xuICAgIGxldCBlZGdlU3RhY2sgPSBzdGFnZS5ub2RlLnRyeUZpbmRDaGlsZChlZGdlU3RhY2tJZCkgYXMgU3RhY2s7XG4gICAgaWYgKCFlZGdlU3RhY2spIHtcbiAgICAgIGVkZ2VTdGFjayA9IG5ldyBTdGFjayhzdGFnZSwgZWRnZVN0YWNrSWQsIHtcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgcmVnaW9uOiBFZGdlRnVuY3Rpb24uRURHRV9SRUdJT04sXG4gICAgICAgICAgYWNjb3VudDogU3RhY2sub2YodGhpcykuYWNjb3VudCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnN0YWNrLmFkZERlcGVuZGVuY3koZWRnZVN0YWNrKTtcbiAgICByZXR1cm4gZWRnZVN0YWNrO1xuICB9XG59XG5cbi8qKiBSZXN1bHQgb2YgY3JlYXRpbmcgYW4gaW4tcmVnaW9uIG9yIGNyb3NzLXJlZ2lvbiBmdW5jdGlvbiAqL1xuaW50ZXJmYWNlIEZ1bmN0aW9uQ29uZmlnIHtcbiAgcmVhZG9ubHkgZWRnZUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG4gIHJlYWRvbmx5IGVkZ2VBcm46IHN0cmluZztcbn1cblxuZnVuY3Rpb24gYWRkRWRnZUxhbWJkYVRvUm9sZVRydXN0U3RhdGVtZW50KHJvbGU6IGlhbS5JUm9sZSkge1xuICBpZiAocm9sZSBpbnN0YW5jZW9mIGlhbS5Sb2xlICYmIHJvbGUuYXNzdW1lUm9sZVBvbGljeSkge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KCk7XG4gICAgY29uc3QgZWRnZUxhbWJkYVNlcnZpY2VQcmluY2lwYWwgPSBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2VkZ2VsYW1iZGEuYW1hem9uYXdzLmNvbScpO1xuICAgIHN0YXRlbWVudC5hZGRQcmluY2lwYWxzKGVkZ2VMYW1iZGFTZXJ2aWNlUHJpbmNpcGFsKTtcbiAgICBzdGF0ZW1lbnQuYWRkQWN0aW9ucyhlZGdlTGFtYmRhU2VydmljZVByaW5jaXBhbC5hc3N1bWVSb2xlQWN0aW9uKTtcbiAgICByb2xlLmFzc3VtZVJvbGVQb2xpY3kuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICB9XG59XG4iXX0=
import { IResource, Resource } from '@aws-cdk/core';
import { Construct } from 'constructs';
/**
* Represents the function's source code.
*
* @stability stable
* Represents the function's source code
*/
export declare abstract class FunctionCode {
/**
* Inline code for function.
*
* @param code The actual function code.
* Inline code for function
* @returns code object with inline code.
* @stability stable
* @param code The actual function code
*/
static fromInline(code: string): FunctionCode;
/**
* Code from external file for function.
*
* @param options the options for the external file.
* Code from external file for function
* @returns code object with contents from file.
* @stability stable
* @param options the options for the external file
*/
static fromFile(options: FileCodeOptions): FunctionCode;
/**
* renders the function code.
*
* @stability stable
* renders the function code
*/

@@ -33,11 +25,7 @@ abstract render(): string;

/**
* Options when reading the function's code from an external file.
*
* @stability stable
* Options when reading the function's code from an external file
*/
export interface FileCodeOptions {
/**
* The path of the file to read the code from.
*
* @stability stable
* The path of the file to read the code from
*/

@@ -47,5 +35,3 @@ readonly filePath: string;

/**
* Represents a CloudFront Function.
*
* @stability stable
* Represents a CloudFront Function
*/

@@ -55,5 +41,3 @@ export interface IFunction extends IResource {

* The name of the function.
*
* @stability stable
* @attribute true
* @attribute
*/

@@ -63,5 +47,3 @@ readonly functionName: string;

* The ARN of the function.
*
* @stability stable
* @attribute true
* @attribute
*/

@@ -71,5 +53,3 @@ readonly functionArn: string;

/**
* Attributes of an existing CloudFront Function to import it.
*
* @stability stable
* Attributes of an existing CloudFront Function to import it
*/

@@ -79,4 +59,2 @@ export interface FunctionAttributes {

* The name of the function.
*
* @stability stable
*/

@@ -86,4 +64,2 @@ readonly functionName: string;

* The ARN of the function.
*
* @stability stable
*/

@@ -93,5 +69,3 @@ readonly functionArn: string;

/**
* Properties for creating a CloudFront Function.
*
* @stability stable
* Properties for creating a CloudFront Function
*/

@@ -101,5 +75,3 @@ export interface FunctionProps {

* A name to identify the function.
*
* @default - generated from the `id`
* @stability stable
*/

@@ -109,5 +81,3 @@ readonly functionName?: string;

* A comment to describe the function.
*
* @default - same as `functionName`
* @stability stable
*/

@@ -117,4 +87,2 @@ readonly comment?: string;

* The source code of the function.
*
* @stability stable
*/

@@ -124,38 +92,24 @@ readonly code: FunctionCode;

/**
* A CloudFront Function.
* A CloudFront Function
*
* @stability stable
* @resource AWS::CloudFront::Function
*/
export declare class Function extends Resource implements IFunction {
/**
* Imports a function by its name and ARN.
*
* @stability stable
*/
/** Imports a function by its name and ARN */
static fromFunctionAttributes(scope: Construct, id: string, attrs: FunctionAttributes): IFunction;
/**
* the name of the CloudFront function.
*
* @stability stable
* @attribute true
* the name of the CloudFront function
* @attribute
*/
readonly functionName: string;
/**
* the ARN of the CloudFront function.
*
* @stability stable
* @attribute true
* the ARN of the CloudFront function
* @attribute
*/
readonly functionArn: string;
/**
* the deployment stage of the CloudFront function.
*
* @stability stable
* @attribute true
* the deployment stage of the CloudFront function
* @attribute
*/
readonly functionStage: string;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props: FunctionProps);

@@ -166,16 +120,10 @@ private generateName;

* The type of events that a CloudFront function can be invoked in response to.
*
* @stability stable
*/
export declare enum FunctionEventType {
/**
* The viewer-request specifies the incoming request.
*
* @stability stable
* The viewer-request specifies the incoming request
*/
VIEWER_REQUEST = "viewer-request",
/**
* The viewer-response specifies the outgoing response.
*
* @stability stable
* The viewer-response specifies the outgoing response
*/

@@ -186,6 +134,3 @@ VIEWER_RESPONSE = "viewer-response"

* Represents a CloudFront function and event type when using CF Functions.
*
* The type of the {@link AddBehaviorOptions.functionAssociations} property.
*
* @stability stable
*/

@@ -195,12 +140,6 @@ export interface FunctionAssociation {

* The CloudFront function that will be invoked.
*
* @stability stable
*/
readonly function: IFunction;
/**
* The type of event which should invoke the function.
*
* @stability stable
*/
/** The type of event which should invoke the function. */
readonly eventType: FunctionEventType;
}

@@ -11,13 +11,9 @@ "use strict";

/**
* Represents the function's source code.
*
* @stability stable
* Represents the function's source code
*/
class FunctionCode {
/**
* Inline code for function.
*
* @param code The actual function code.
* Inline code for function
* @returns code object with inline code.
* @stability stable
* @param code The actual function code
*/

@@ -28,7 +24,5 @@ static fromInline(code) {

/**
* Code from external file for function.
*
* @param options the options for the external file.
* Code from external file for function
* @returns code object with contents from file.
* @stability stable
* @param options the options for the external file
*/

@@ -42,3 +36,3 @@ static fromFile(options) {

_a = JSII_RTTI_SYMBOL_1;
FunctionCode[_a] = { fqn: "@aws-cdk/aws-cloudfront.FunctionCode", version: "1.144.0" };
FunctionCode[_a] = { fqn: "@aws-cdk/aws-cloudfront.FunctionCode", version: "1.145.0" };
/**

@@ -69,11 +63,7 @@ * Represents the function's source code as inline code

/**
* A CloudFront Function.
* A CloudFront Function
*
* @stability stable
* @resource AWS::CloudFront::Function
*/
class Function extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props) {

@@ -96,7 +86,3 @@ var _c, _d;

}
/**
* Imports a function by its name and ARN.
*
* @stability stable
*/
/** Imports a function by its name and ARN */
static fromFunctionAttributes(scope, id, attrs) {

@@ -122,13 +108,17 @@ jsiiDeprecationWarnings._aws_cdk_aws_cloudfront_FunctionAttributes(attrs);

_b = JSII_RTTI_SYMBOL_1;
Function[_b] = { fqn: "@aws-cdk/aws-cloudfront.Function", version: "1.144.0" };
Function[_b] = { fqn: "@aws-cdk/aws-cloudfront.Function", version: "1.145.0" };
/**
* The type of events that a CloudFront function can be invoked in response to.
*
* @stability stable
*/
var FunctionEventType;
(function (FunctionEventType) {
/**
* The viewer-request specifies the incoming request
*/
FunctionEventType["VIEWER_REQUEST"] = "viewer-request";
/**
* The viewer-response specifies the outgoing response
*/
FunctionEventType["VIEWER_RESPONSE"] = "viewer-response";
})(FunctionEventType = exports.FunctionEventType || (exports.FunctionEventType = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsd0NBQWtFO0FBRWxFLGlFQUFxRDs7Ozs7O0FBR3JELE1BQXNCLFlBQVk7Ozs7Ozs7O0lBR3pCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzdCOzs7Ozs7OztJQUdNLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBd0I7O1FBQzdDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDOUI7O0FBVkgsb0NBY0M7OztBQVFEOztHQUVHO0FBQ0gsTUFBTSxVQUFXLFNBQVEsWUFBWTtJQUVuQyxZQUFvQixJQUFZO1FBQzlCLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBUTtLQUUvQjtJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7S0FDbEI7Q0FDRjtBQUdEOztHQUVHO0FBQ0gsTUFBTSxRQUFTLFNBQVEsWUFBWTtJQUVqQyxZQUFvQixPQUF3QjtRQUMxQyxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQWlCO0tBRTNDO0lBRU0sTUFBTTtRQUNYLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQ3RFO0NBQ0Y7Ozs7Ozs7QUFpQ0QsTUFBYSxRQUFTLFNBQVEsZUFBUTs7OztJQWlCcEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjs7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7UUFFakIsSUFBSSxDQUFDLFlBQVksU0FBRyxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQ0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDakQsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLGNBQWMsRUFBRTtnQkFDZCxPQUFPLFFBQUUsS0FBSyxDQUFDLE9BQU8sbUNBQUksSUFBSSxDQUFDLFlBQVk7Z0JBQzNDLE9BQU8sRUFBRSxtQkFBbUI7YUFDN0I7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztLQUN6Qzs7Ozs7O0lBL0JNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5Qjs7UUFDMUYsT0FBTyxJQUFJLEtBQU0sU0FBUSxlQUFRO1lBQXRCOztnQkFDTyxpQkFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUNsRCxDQUFDO1NBQUEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDZDtJQTRCTyxZQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7O0FBMUNILDRCQTJDQzs7Ozs7Ozs7QUFHRCxJQUFZLGlCQU9YO0FBUEQsV0FBWSxpQkFBaUI7SUFHM0Isc0RBQWlDLENBQUE7SUFHakMsd0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQVBXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBTzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgSVJlc291cmNlLCBOYW1lcywgUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkZ1bmN0aW9uIH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZ1bmN0aW9uQ29kZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBmcm9tSW5saW5lKGNvZGU6IHN0cmluZyk6IEZ1bmN0aW9uQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVDb2RlKGNvZGUpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZpbGUob3B0aW9uczogRmlsZUNvZGVPcHRpb25zKTogRnVuY3Rpb25Db2RlIHtcbiAgICByZXR1cm4gbmV3IEZpbGVDb2RlKG9wdGlvbnMpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWJzdHJhY3QgcmVuZGVyKCk6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBGaWxlQ29kZU9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZmlsZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBmdW5jdGlvbidzIHNvdXJjZSBjb2RlIGFzIGlubGluZSBjb2RlXG4gKi9cbmNsYXNzIElubGluZUNvZGUgZXh0ZW5kcyBGdW5jdGlvbkNvZGUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29kZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2RlO1xuICB9XG59XG5cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBmdW5jdGlvbidzIHNvdXJjZSBjb2RlIGxvYWRlZCBmcm9tIGFuIGV4dGVybmFsIGZpbGVcbiAqL1xuY2xhc3MgRmlsZUNvZGUgZXh0ZW5kcyBGdW5jdGlvbkNvZGUge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogRmlsZUNvZGVPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHRoaXMub3B0aW9ucy5maWxlUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvbiBleHRlbmRzIElSZXNvdXJjZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQXR0cmlidXRlcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29kZTogRnVuY3Rpb25Db2RlO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRnVuY3Rpb24ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGZyb21GdW5jdGlvbkF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEZ1bmN0aW9uQXR0cmlidXRlcyk6IElGdW5jdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZ1bmN0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbk5hbWUgPSBhdHRycy5mdW5jdGlvbk5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25Bcm4gPSBhdHRycy5mdW5jdGlvbkFybjtcbiAgICB9KHNjb3BlLCBpZCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvblN0YWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5mdW5jdGlvbk5hbWUgPSBwcm9wcy5mdW5jdGlvbk5hbWUgPz8gdGhpcy5nZW5lcmF0ZU5hbWUoKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkZ1bmN0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGF1dG9QdWJsaXNoOiB0cnVlLFxuICAgICAgZnVuY3Rpb25Db2RlOiBwcm9wcy5jb2RlLnJlbmRlcigpLFxuICAgICAgZnVuY3Rpb25Db25maWc6IHtcbiAgICAgICAgY29tbWVudDogcHJvcHMuY29tbWVudCA/PyB0aGlzLmZ1bmN0aW9uTmFtZSxcbiAgICAgICAgcnVudGltZTogJ2Nsb3VkZnJvbnQtanMtMS4wJyxcbiAgICAgIH0sXG4gICAgICBuYW1lOiB0aGlzLmZ1bmN0aW9uTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSByZXNvdXJjZS5hdHRyRnVuY3Rpb25Bcm47XG4gICAgdGhpcy5mdW5jdGlvblN0YWdlID0gcmVzb3VyY2UuYXR0clN0YWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gU3RhY2sub2YodGhpcykucmVnaW9uICsgTmFtZXMudW5pcXVlSWQodGhpcyk7XG4gICAgaWYgKG5hbWUubGVuZ3RoID4gNjQpIHtcbiAgICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygwLCAzMikgKyBuYW1lLnN1YnN0cmluZyhuYW1lLmxlbmd0aCAtIDMyKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgZW51bSBGdW5jdGlvbkV2ZW50VHlwZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBWSUVXRVJfUkVRVUVTVCA9ICd2aWV3ZXItcmVxdWVzdCcsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFZJRVdFUl9SRVNQT05TRSA9ICd2aWV3ZXItcmVzcG9uc2UnLFxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQXNzb2NpYXRpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGU7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsd0NBQWtFO0FBRWxFLGlFQUFxRDtBQUVyRDs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFFaEM7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzdCO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBd0I7O1FBQzdDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDOUI7O0FBbEJILG9DQXdCQzs7O0FBWUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVcsU0FBUSxZQUFZO0lBRW5DLFlBQW9CLElBQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFRO0tBRS9CO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztLQUNsQjtDQUNGO0FBR0Q7O0dBRUc7QUFDSCxNQUFNLFFBQVMsU0FBUSxZQUFZO0lBRWpDLFlBQW9CLE9BQXdCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFUsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7S0FFM0M7SUFFTSxNQUFNO1FBQ1gsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDdEU7Q0FDRjtBQXdERDs7OztHQUlHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsZUFBUTtJQTBCcEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjs7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7UUFFakIsSUFBSSxDQUFDLFlBQVksU0FBRyxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFOUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQ0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDakQsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLGNBQWMsRUFBRTtnQkFDZCxPQUFPLFFBQUUsS0FBSyxDQUFDLE9BQU8sbUNBQUksSUFBSSxDQUFDLFlBQVk7Z0JBQzNDLE9BQU8sRUFBRSxtQkFBbUI7YUFDN0I7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztLQUN6QztJQXpDRCw2Q0FBNkM7SUFDdEMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCOztRQUMxRixPQUFPLElBQUksS0FBTSxTQUFRLGVBQVE7WUFBdEI7O2dCQUNPLGlCQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDbEMsZ0JBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ2xELENBQUM7U0FBQSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNkO0lBcUNPLFlBQVk7UUFDbEIsTUFBTSxJQUFJLEdBQUcsWUFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsWUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjs7QUFuREgsNEJBb0RDOzs7QUFFRDs7R0FFRztBQUNILElBQVksaUJBV1g7QUFYRCxXQUFZLGlCQUFpQjtJQUUzQjs7T0FFRztJQUNILHNEQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gsd0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQVhXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBVzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgSVJlc291cmNlLCBOYW1lcywgUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkZ1bmN0aW9uIH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZnVuY3Rpb24ncyBzb3VyY2UgY29kZVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnVuY3Rpb25Db2RlIHtcblxuICAvKipcbiAgICogSW5saW5lIGNvZGUgZm9yIGZ1bmN0aW9uXG4gICAqIEByZXR1cm5zIGNvZGUgb2JqZWN0IHdpdGggaW5saW5lIGNvZGUuXG4gICAqIEBwYXJhbSBjb2RlIFRoZSBhY3R1YWwgZnVuY3Rpb24gY29kZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSW5saW5lKGNvZGU6IHN0cmluZyk6IEZ1bmN0aW9uQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVDb2RlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvZGUgZnJvbSBleHRlcm5hbCBmaWxlIGZvciBmdW5jdGlvblxuICAgKiBAcmV0dXJucyBjb2RlIG9iamVjdCB3aXRoIGNvbnRlbnRzIGZyb20gZmlsZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgdGhlIG9wdGlvbnMgZm9yIHRoZSBleHRlcm5hbCBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GaWxlKG9wdGlvbnM6IEZpbGVDb2RlT3B0aW9ucyk6IEZ1bmN0aW9uQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBGaWxlQ29kZShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZW5kZXJzIHRoZSBmdW5jdGlvbiBjb2RlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVuZGVyKCk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIHdoZW4gcmVhZGluZyB0aGUgZnVuY3Rpb24ncyBjb2RlIGZyb20gYW4gZXh0ZXJuYWwgZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVDb2RlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgZmlsZSB0byByZWFkIHRoZSBjb2RlIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZnVuY3Rpb24ncyBzb3VyY2UgY29kZSBhcyBpbmxpbmUgY29kZVxuICovXG5jbGFzcyBJbmxpbmVDb2RlIGV4dGVuZHMgRnVuY3Rpb25Db2RlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29kZTtcbiAgfVxufVxuXG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZnVuY3Rpb24ncyBzb3VyY2UgY29kZSBsb2FkZWQgZnJvbSBhbiBleHRlcm5hbCBmaWxlXG4gKi9cbmNsYXNzIEZpbGVDb2RlIGV4dGVuZHMgRnVuY3Rpb25Db2RlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEZpbGVDb2RlT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyh0aGlzLm9wdGlvbnMuZmlsZVBhdGgsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ2xvdWRGcm9udCBGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvbiBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIG9mIGFuIGV4aXN0aW5nIENsb3VkRnJvbnQgRnVuY3Rpb24gdG8gaW1wb3J0IGl0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBDbG91ZEZyb250IEZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgdG8gaWRlbnRpZnkgdGhlIGZ1bmN0aW9uLlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZCBmcm9tIHRoZSBgaWRgXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29tbWVudCB0byBkZXNjcmliZSB0aGUgZnVuY3Rpb24uXG4gICAqIEBkZWZhdWx0IC0gc2FtZSBhcyBgZnVuY3Rpb25OYW1lYFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBjb2RlIG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGU6IEZ1bmN0aW9uQ29kZTtcbn1cblxuLyoqXG4gKiBBIENsb3VkRnJvbnQgRnVuY3Rpb25cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvblxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb24gZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElGdW5jdGlvbiB7XG5cbiAgLyoqIEltcG9ydHMgYSBmdW5jdGlvbiBieSBpdHMgbmFtZSBhbmQgQVJOICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUZ1bmN0aW9uQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogRnVuY3Rpb25BdHRyaWJ1dGVzKTogSUZ1bmN0aW9uIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRnVuY3Rpb24ge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZSA9IGF0dHJzLmZ1bmN0aW9uTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbkFybiA9IGF0dHJzLmZ1bmN0aW9uQXJuO1xuICAgIH0oc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0aGUgbmFtZSBvZiB0aGUgQ2xvdWRGcm9udCBmdW5jdGlvblxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiB0aGUgQVJOIG9mIHRoZSBDbG91ZEZyb250IGZ1bmN0aW9uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuICAvKipcbiAgICogdGhlIGRlcGxveW1lbnQgc3RhZ2Ugb2YgdGhlIENsb3VkRnJvbnQgZnVuY3Rpb25cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uU3RhZ2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9IHByb3BzLmZ1bmN0aW9uTmFtZSA/PyB0aGlzLmdlbmVyYXRlTmFtZSgpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuRnVuY3Rpb24odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgYXV0b1B1Ymxpc2g6IHRydWUsXG4gICAgICBmdW5jdGlvbkNvZGU6IHByb3BzLmNvZGUucmVuZGVyKCksXG4gICAgICBmdW5jdGlvbkNvbmZpZzoge1xuICAgICAgICBjb21tZW50OiBwcm9wcy5jb21tZW50ID8/IHRoaXMuZnVuY3Rpb25OYW1lLFxuICAgICAgICBydW50aW1lOiAnY2xvdWRmcm9udC1qcy0xLjAnLFxuICAgICAgfSxcbiAgICAgIG5hbWU6IHRoaXMuZnVuY3Rpb25OYW1lLFxuICAgIH0pO1xuXG4gICAgdGhpcy5mdW5jdGlvbkFybiA9IHJlc291cmNlLmF0dHJGdW5jdGlvbkFybjtcbiAgICB0aGlzLmZ1bmN0aW9uU3RhZ2UgPSByZXNvdXJjZS5hdHRyU3RhZ2U7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlTmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5hbWUgPSBTdGFjay5vZih0aGlzKS5yZWdpb24gKyBOYW1lcy51bmlxdWVJZCh0aGlzKTtcbiAgICBpZiAobmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgcmV0dXJuIG5hbWUuc3Vic3RyaW5nKDAsIDMyKSArIG5hbWUuc3Vic3RyaW5nKG5hbWUubGVuZ3RoIC0gMzIpO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGV2ZW50cyB0aGF0IGEgQ2xvdWRGcm9udCBmdW5jdGlvbiBjYW4gYmUgaW52b2tlZCBpbiByZXNwb25zZSB0by5cbiAqL1xuZXhwb3J0IGVudW0gRnVuY3Rpb25FdmVudFR5cGUge1xuXG4gIC8qKlxuICAgKiBUaGUgdmlld2VyLXJlcXVlc3Qgc3BlY2lmaWVzIHRoZSBpbmNvbWluZyByZXF1ZXN0XG4gICAqL1xuICBWSUVXRVJfUkVRVUVTVCA9ICd2aWV3ZXItcmVxdWVzdCcsXG5cbiAgLyoqXG4gICAqIFRoZSB2aWV3ZXItcmVzcG9uc2Ugc3BlY2lmaWVzIHRoZSBvdXRnb2luZyByZXNwb25zZVxuICAgKi9cbiAgVklFV0VSX1JFU1BPTlNFID0gJ3ZpZXdlci1yZXNwb25zZScsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIENsb3VkRnJvbnQgZnVuY3Rpb24gYW5kIGV2ZW50IHR5cGUgd2hlbiB1c2luZyBDRiBGdW5jdGlvbnMuXG4gKiBUaGUgdHlwZSBvZiB0aGUge0BsaW5rIEFkZEJlaGF2aW9yT3B0aW9ucy5mdW5jdGlvbkFzc29jaWF0aW9uc30gcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25Bc3NvY2lhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGcm9udCBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgaW52b2tlZC5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqIFRoZSB0eXBlIG9mIGV2ZW50IHdoaWNoIHNob3VsZCBpbnZva2UgdGhlIGZ1bmN0aW9uLiAqL1xuICByZWFkb25seSBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlO1xufVxuIl19
/**
* Controls the countries in which content is distributed.
*
* @stability stable
*/

@@ -12,4 +10,5 @@ export declare class GeoRestriction {

*
* @param locations Two-letter, uppercase country code for a country that you want to allow.
* @stability stable
* @param locations Two-letter, uppercase country code for a country
* that you want to allow. Include one element for each country.
* See ISO 3166-1-alpha-2 code on the *International Organization for Standardization* website
*/

@@ -20,9 +19,9 @@ static allowlist(...locations: string[]): GeoRestriction;

*
* @param locations Two-letter, uppercase country code for a country that you want to deny.
* @stability stable
* @param locations Two-letter, uppercase country code for a country
* that you want to deny. Include one element for each country.
* See ISO 3166-1-alpha-2 code on the *International Organization for Standardization* website
*/
static denylist(...locations: string[]): GeoRestriction;
/**
* (deprecated) DEPRECATED.
*
* DEPRECATED
* @deprecated use `allowlist`

@@ -32,4 +31,3 @@ */

/**
* (deprecated) DEPRECATED.
*
* DEPRECATED
* @deprecated use `denylist`

@@ -36,0 +34,0 @@ */

@@ -9,4 +9,2 @@ "use strict";

* Controls the countries in which content is distributed.
*
* @stability stable
*/

@@ -29,4 +27,5 @@ class GeoRestriction {

*
* @param locations Two-letter, uppercase country code for a country that you want to allow.
* @stability stable
* @param locations Two-letter, uppercase country code for a country
* that you want to allow. Include one element for each country.
* See ISO 3166-1-alpha-2 code on the *International Organization for Standardization* website
*/

@@ -39,4 +38,5 @@ static allowlist(...locations) {

*
* @param locations Two-letter, uppercase country code for a country that you want to deny.
* @stability stable
* @param locations Two-letter, uppercase country code for a country
* that you want to deny. Include one element for each country.
* See ISO 3166-1-alpha-2 code on the *International Organization for Standardization* website
*/

@@ -47,4 +47,3 @@ static denylist(...locations) {

/**
* (deprecated) DEPRECATED.
*
* DEPRECATED
* @deprecated use `allowlist`

@@ -57,4 +56,3 @@ */

/**
* (deprecated) DEPRECATED.
*
* DEPRECATED
* @deprecated use `denylist`

@@ -81,4 +79,4 @@ */

_a = JSII_RTTI_SYMBOL_1;
GeoRestriction[_a] = { fqn: "@aws-cdk/aws-cloudfront.GeoRestriction", version: "1.144.0" };
GeoRestriction[_a] = { fqn: "@aws-cdk/aws-cloudfront.GeoRestriction", version: "1.145.0" };
GeoRestriction.LOCATION_REGEX = /^[A-Z]{2}$/;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXJlc3RyaWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2VvLXJlc3RyaWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0EsTUFBYSxjQUFjO0lBcUN6Qjs7Ozs7OztPQU9HO0lBQ0gsWUFBNkIsZUFBMEMsRUFBVyxTQUFtQjtRQUF4RSxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFBVyxjQUFTLEdBQVQsU0FBUyxDQUFVO0tBQUk7Ozs7Ozs7SUExQ2xHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUM1QyxPQUFPLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNyRjs7Ozs7OztJQUdNLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFtQjtRQUMzQyxPQUFPLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNyRjs7Ozs7O0lBR00sTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQW1COztRQUM1QyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztLQUMvQzs7Ozs7O0lBR00sTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQW1COztRQUM1QyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztLQUM5QztJQUlPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFtQjtRQUNsRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUN2RDtRQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNqRCxtQ0FBbUM7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLFFBQVEsK0VBQStFLENBQUMsQ0FBQzthQUNuSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7S0FDbEI7O0FBbkNILHdDQThDQzs7O0FBeEJnQiw2QkFBYyxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEdlb1Jlc3RyaWN0aW9uIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBhbGxvd2xpc3QoLi4ubG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBuZXcgR2VvUmVzdHJpY3Rpb24oJ3doaXRlbGlzdCcsIEdlb1Jlc3RyaWN0aW9uLnZhbGlkYXRlTG9jYXRpb25zKGxvY2F0aW9ucykpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGRlbnlsaXN0KC4uLmxvY2F0aW9uczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbmV3IEdlb1Jlc3RyaWN0aW9uKCdibGFja2xpc3QnLCBHZW9SZXN0cmljdGlvbi52YWxpZGF0ZUxvY2F0aW9ucyhsb2NhdGlvbnMpKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyB3aGl0ZWxpc3QoLi4ubG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBHZW9SZXN0cmljdGlvbi5hbGxvd2xpc3QoLi4ubG9jYXRpb25zKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGJsYWNrbGlzdCguLi5sb2NhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIEdlb1Jlc3RyaWN0aW9uLmRlbnlsaXN0KC4uLmxvY2F0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBMT0NBVElPTl9SRUdFWCA9IC9eW0EtWl17Mn0kLztcblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUxvY2F0aW9ucyhsb2NhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGxvY2F0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHByb3ZpZGUgYXQgbGVhc3QgMSBsb2NhdGlvbicpO1xuICAgIH1cbiAgICBsb2NhdGlvbnMuZm9yRWFjaChsb2NhdGlvbiA9PiB7XG4gICAgICBpZiAoIUdlb1Jlc3RyaWN0aW9uLkxPQ0FUSU9OX1JFR0VYLnRlc3QobG9jYXRpb24pKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBsb2NhdGlvbiBmb3JtYXQgZm9yIGxvY2F0aW9uOiAke2xvY2F0aW9ufSwgbG9jYXRpb24gc2hvdWxkIGJlIHR3by1sZXR0ZXIgYW5kIHVwcGVyY2FzZSBjb3VudHJ5IElTTyAzMTY2LTEtYWxwaGEtMiBjb2RlYCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxvY2F0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEdlb1Jlc3RyaWN0aW9uIGZvciBpbnRlcm5hbCB1c2VcbiAgICpcbiAgICogQHBhcmFtIHJlc3RyaWN0aW9uVHlwZSBTcGVjaWZpZXMgdGhlIHJlc3RyaWN0aW9uIHR5cGUgdG8gaW1wb3NlXG4gICAqIEBwYXJhbSBsb2NhdGlvbnMgVHdvLWxldHRlciwgdXBwZXJjYXNlIGNvdW50cnkgY29kZSBmb3IgYSBjb3VudHJ5XG4gICAqIHRoYXQgeW91IHdhbnQgdG8gYWxsb3cvZGVueS4gSW5jbHVkZSBvbmUgZWxlbWVudCBmb3IgZWFjaCBjb3VudHJ5LlxuICAgKiBTZWUgSVNPIDMxNjYtMS1hbHBoYS0yIGNvZGUgb24gdGhlICpJbnRlcm5hdGlvbmFsIE9yZ2FuaXphdGlvbiBmb3IgU3RhbmRhcmRpemF0aW9uKiB3ZWJzaXRlXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHJlc3RyaWN0aW9uVHlwZTogJ3doaXRlbGlzdCcgfCAnYmxhY2tsaXN0JywgcmVhZG9ubHkgbG9jYXRpb25zOiBzdHJpbmdbXSkge31cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXJlc3RyaWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2VvLXJlc3RyaWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBdUR6Qjs7Ozs7OztPQU9HO0lBQ0gsWUFBNkIsZUFBMEMsRUFBVyxTQUFtQjtRQUF4RSxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFBVyxjQUFTLEdBQVQsU0FBUyxDQUFVO0tBQUk7SUE3RHpHOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUM1QyxPQUFPLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNyRjtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFtQjtRQUMzQyxPQUFPLElBQUksY0FBYyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNyRjtJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjs7UUFDNUMsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7S0FDL0M7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBbUI7O1FBQzVDLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0tBQzlDO0lBSU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQW1CO1FBQ2xELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2pELG1DQUFtQztnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsUUFBUSwrRUFBK0UsQ0FBQyxDQUFDO2FBQ25KO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztLQUNsQjs7QUFyREgsd0NBZ0VDOzs7QUF4QmdCLDZCQUFjLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250cm9scyB0aGUgY291bnRyaWVzIGluIHdoaWNoIGNvbnRlbnQgaXMgZGlzdHJpYnV0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBHZW9SZXN0cmljdGlvbiB7XG5cbiAgLyoqXG4gICAqIEFsbG93IHNwZWNpZmljIGNvdW50cmllcyB3aGljaCB5b3Ugd2FudCBDbG91ZEZyb250IHRvIGRpc3RyaWJ1dGUgeW91ciBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb25zIFR3by1sZXR0ZXIsIHVwcGVyY2FzZSBjb3VudHJ5IGNvZGUgZm9yIGEgY291bnRyeVxuICAgKiB0aGF0IHlvdSB3YW50IHRvIGFsbG93LiBJbmNsdWRlIG9uZSBlbGVtZW50IGZvciBlYWNoIGNvdW50cnkuXG4gICAqIFNlZSBJU08gMzE2Ni0xLWFscGhhLTIgY29kZSBvbiB0aGUgKkludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24qIHdlYnNpdGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWxsb3dsaXN0KC4uLmxvY2F0aW9uczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gbmV3IEdlb1Jlc3RyaWN0aW9uKCd3aGl0ZWxpc3QnLCBHZW9SZXN0cmljdGlvbi52YWxpZGF0ZUxvY2F0aW9ucyhsb2NhdGlvbnMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZW55IHNwZWNpZmljIGNvdW50cmllcyB3aGljaCB5b3UgZG9uJ3Qgd2FudCBDbG91ZEZyb250IHRvIGRpc3RyaWJ1dGUgeW91ciBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb25zIFR3by1sZXR0ZXIsIHVwcGVyY2FzZSBjb3VudHJ5IGNvZGUgZm9yIGEgY291bnRyeVxuICAgKiB0aGF0IHlvdSB3YW50IHRvIGRlbnkuIEluY2x1ZGUgb25lIGVsZW1lbnQgZm9yIGVhY2ggY291bnRyeS5cbiAgICogU2VlIElTTyAzMTY2LTEtYWxwaGEtMiBjb2RlIG9uIHRoZSAqSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiogd2Vic2l0ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZW55bGlzdCguLi5sb2NhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIG5ldyBHZW9SZXN0cmljdGlvbignYmxhY2tsaXN0JywgR2VvUmVzdHJpY3Rpb24udmFsaWRhdGVMb2NhdGlvbnMobG9jYXRpb25zKSk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGFsbG93bGlzdGBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2hpdGVsaXN0KC4uLmxvY2F0aW9uczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gR2VvUmVzdHJpY3Rpb24uYWxsb3dsaXN0KC4uLmxvY2F0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGRlbnlsaXN0YFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBibGFja2xpc3QoLi4ubG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBHZW9SZXN0cmljdGlvbi5kZW55bGlzdCguLi5sb2NhdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgTE9DQVRJT05fUkVHRVggPSAvXltBLVpdezJ9JC87XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVMb2NhdGlvbnMobG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIGlmIChsb2NhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBwcm92aWRlIGF0IGxlYXN0IDEgbG9jYXRpb24nKTtcbiAgICB9XG4gICAgbG9jYXRpb25zLmZvckVhY2gobG9jYXRpb24gPT4ge1xuICAgICAgaWYgKCFHZW9SZXN0cmljdGlvbi5MT0NBVElPTl9SRUdFWC50ZXN0KGxvY2F0aW9uKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbG9jYXRpb24gZm9ybWF0IGZvciBsb2NhdGlvbjogJHtsb2NhdGlvbn0sIGxvY2F0aW9uIHNob3VsZCBiZSB0d28tbGV0dGVyIGFuZCB1cHBlcmNhc2UgY291bnRyeSBJU08gMzE2Ni0xLWFscGhhLTIgY29kZWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBsb2NhdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9SZXN0cmljdGlvbiBmb3IgaW50ZXJuYWwgdXNlXG4gICAqXG4gICAqIEBwYXJhbSByZXN0cmljdGlvblR5cGUgU3BlY2lmaWVzIHRoZSByZXN0cmljdGlvbiB0eXBlIHRvIGltcG9zZVxuICAgKiBAcGFyYW0gbG9jYXRpb25zIFR3by1sZXR0ZXIsIHVwcGVyY2FzZSBjb3VudHJ5IGNvZGUgZm9yIGEgY291bnRyeVxuICAgKiB0aGF0IHlvdSB3YW50IHRvIGFsbG93L2RlbnkuIEluY2x1ZGUgb25lIGVsZW1lbnQgZm9yIGVhY2ggY291bnRyeS5cbiAgICogU2VlIElTTyAzMTY2LTEtYWxwaGEtMiBjb2RlIG9uIHRoZSAqSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiogd2Vic2l0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihyZWFkb25seSByZXN0cmljdGlvblR5cGU6ICd3aGl0ZWxpc3QnIHwgJ2JsYWNrbGlzdCcsIHJlYWRvbmx5IGxvY2F0aW9uczogc3RyaW5nW10pIHt9XG59XG4iXX0=

@@ -5,5 +5,3 @@ import { IResource, Resource } from '@aws-cdk/core';

/**
* Represents a Key Group.
*
* @stability stable
* Represents a Key Group
*/

@@ -13,5 +11,3 @@ export interface IKeyGroup extends IResource {

* The ID of the key group.
*
* @stability stable
* @attribute true
* @attribute
*/

@@ -21,5 +17,3 @@ readonly keyGroupId: string;

/**
* Properties for creating a Public Key.
*
* @stability stable
* Properties for creating a Public Key
*/

@@ -29,5 +23,3 @@ export interface KeyGroupProps {

* A name to identify the key group.
*
* @default - generated from the `id`
* @stability stable
*/

@@ -37,5 +29,3 @@ readonly keyGroupName?: string;

* A comment to describe the key group.
*
* @default - no comment
* @stability stable
*/

@@ -45,4 +35,2 @@ readonly comment?: string;

* A list of public keys to add to the key group.
*
* @stability stable
*/

@@ -52,25 +40,12 @@ readonly items: IPublicKey[];

/**
* A Key Group configuration.
* A Key Group configuration
*
* @stability stable
* @resource AWS::CloudFront::KeyGroup
*/
export declare class KeyGroup extends Resource implements IKeyGroup {
/**
* Imports a Key Group from its id.
*
* @stability stable
*/
/** Imports a Key Group from its id. */
static fromKeyGroupId(scope: Construct, id: string, keyGroupId: string): IKeyGroup;
/**
* The ID of the key group.
*
* @stability stable
*/
readonly keyGroupId: string;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props: KeyGroupProps);
private generateName;
}

@@ -10,11 +10,7 @@ "use strict";

/**
* A Key Group configuration.
* A Key Group configuration
*
* @stability stable
* @resource AWS::CloudFront::KeyGroup
*/
class KeyGroup extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props) {

@@ -33,7 +29,3 @@ var _b;

}
/**
* Imports a Key Group from its id.
*
* @stability stable
*/
/** Imports a Key Group from its id. */
static fromKeyGroupId(scope, id, keyGroupId) {

@@ -57,3 +49,3 @@ return new class extends core_1.Resource {

_a = JSII_RTTI_SYMBOL_1;
KeyGroup[_a] = { fqn: "@aws-cdk/aws-cloudfront.KeyGroup", version: "1.144.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUEyRDtBQUUzRCxpRUFBcUQ7Ozs7Ozs7QUFzQnJELE1BQWEsUUFBUyxTQUFRLGVBQVE7Ozs7SUFVcEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjs7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7UUFFakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQ0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDakQsY0FBYyxFQUFFO2dCQUNkLElBQUksUUFBRSxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUMvQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7YUFDL0M7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7S0FDaEM7Ozs7OztJQW5CTSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFVBQWtCO1FBQzNFLE9BQU8sSUFBSSxLQUFNLFNBQVEsZUFBUTtZQUF0Qjs7Z0JBQ08sZUFBVSxHQUFHLFVBQVUsQ0FBQztZQUMxQyxDQUFDO1NBQUEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDZDtJQWlCTyxZQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7O0FBOUJILDRCQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXNvdXJjZSwgTmFtZXMsIFJlc291cmNlIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbktleUdyb3VwIH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5pbXBvcnQgeyBJUHVibGljS2V5IH0gZnJvbSAnLi9wdWJsaWMta2V5JztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElLZXlHcm91cCBleHRlbmRzIElSZXNvdXJjZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkga2V5R3JvdXBJZDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBLZXlHcm91cFByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBrZXlHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpdGVtczogSVB1YmxpY0tleVtdO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBLZXlHcm91cCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUtleUdyb3VwIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBmcm9tS2V5R3JvdXBJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBrZXlHcm91cElkOiBzdHJpbmcpOiBJS2V5R3JvdXAge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElLZXlHcm91cCB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkga2V5R3JvdXBJZCA9IGtleUdyb3VwSWQ7XG4gICAgfShzY29wZSwgaWQpO1xuICB9XG4gIHB1YmxpYyByZWFkb25seSBrZXlHcm91cElkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEtleUdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuS2V5R3JvdXAodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAga2V5R3JvdXBDb25maWc6IHtcbiAgICAgICAgbmFtZTogcHJvcHMua2V5R3JvdXBOYW1lID8/IHRoaXMuZ2VuZXJhdGVOYW1lKCksXG4gICAgICAgIGNvbW1lbnQ6IHByb3BzLmNvbW1lbnQsXG4gICAgICAgIGl0ZW1zOiBwcm9wcy5pdGVtcy5tYXAoa2V5ID0+IGtleS5wdWJsaWNLZXlJZCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5rZXlHcm91cElkID0gcmVzb3VyY2UucmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gTmFtZXMudW5pcXVlSWQodGhpcyk7XG4gICAgaWYgKG5hbWUubGVuZ3RoID4gODApIHtcbiAgICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygwLCA0MCkgKyBuYW1lLnN1YnN0cmluZyhuYW1lLmxlbmd0aCAtIDQwKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn1cbiJdfQ==
KeyGroup[_a] = { fqn: "@aws-cdk/aws-cloudfront.KeyGroup", version: "1.145.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUEyRDtBQUUzRCxpRUFBcUQ7QUFvQ3JEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxlQUFRO0lBVXBDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7O1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7O1FBRWpCLE1BQU0sUUFBUSxHQUFHLElBQUksa0NBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2pELGNBQWMsRUFBRTtnQkFDZCxJQUFJLFFBQUUsS0FBSyxDQUFDLFlBQVksbUNBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDL0MsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO2FBQy9DO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO0tBQ2hDO0lBcEJELHVDQUF1QztJQUNoQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFVBQWtCO1FBQzNFLE9BQU8sSUFBSSxLQUFNLFNBQVEsZUFBUTtZQUF0Qjs7Z0JBQ08sZUFBVSxHQUFHLFVBQVUsQ0FBQztZQUMxQyxDQUFDO1NBQUEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDZDtJQWlCTyxZQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7O0FBOUJILDRCQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXNvdXJjZSwgTmFtZXMsIFJlc291cmNlIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbktleUdyb3VwIH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5pbXBvcnQgeyBJUHVibGljS2V5IH0gZnJvbSAnLi9wdWJsaWMta2V5JztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgS2V5IEdyb3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUtleUdyb3VwIGV4dGVuZHMgSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUga2V5IGdyb3VwLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBrZXlHcm91cElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBQdWJsaWMgS2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5R3JvdXBQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgdG8gaWRlbnRpZnkgdGhlIGtleSBncm91cC5cbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgZnJvbSB0aGUgYGlkYFxuICAgKi9cbiAgcmVhZG9ubHkga2V5R3JvdXBOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1lbnQgdG8gZGVzY3JpYmUgdGhlIGtleSBncm91cC5cbiAgICogQGRlZmF1bHQgLSBubyBjb21tZW50XG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcHVibGljIGtleXMgdG8gYWRkIHRvIHRoZSBrZXkgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSBpdGVtczogSVB1YmxpY0tleVtdO1xufVxuXG4vKipcbiAqIEEgS2V5IEdyb3VwIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpDbG91ZEZyb250OjpLZXlHcm91cFxuICovXG5leHBvcnQgY2xhc3MgS2V5R3JvdXAgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElLZXlHcm91cCB7XG5cbiAgLyoqIEltcG9ydHMgYSBLZXkgR3JvdXAgZnJvbSBpdHMgaWQuICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUtleUdyb3VwSWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywga2V5R3JvdXBJZDogc3RyaW5nKTogSUtleUdyb3VwIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJS2V5R3JvdXAge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGtleUdyb3VwSWQgPSBrZXlHcm91cElkO1xuICAgIH0oc2NvcGUsIGlkKTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkga2V5R3JvdXBJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLZXlHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbktleUdyb3VwKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGtleUdyb3VwQ29uZmlnOiB7XG4gICAgICAgIG5hbWU6IHByb3BzLmtleUdyb3VwTmFtZSA/PyB0aGlzLmdlbmVyYXRlTmFtZSgpLFxuICAgICAgICBjb21tZW50OiBwcm9wcy5jb21tZW50LFxuICAgICAgICBpdGVtczogcHJvcHMuaXRlbXMubWFwKGtleSA9PiBrZXkucHVibGljS2V5SWQpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMua2V5R3JvdXBJZCA9IHJlc291cmNlLnJlZjtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZSA9IE5hbWVzLnVuaXF1ZUlkKHRoaXMpO1xuICAgIGlmIChuYW1lLmxlbmd0aCA+IDgwKSB7XG4gICAgICByZXR1cm4gbmFtZS5zdWJzdHJpbmcoMCwgNDApICsgbmFtZS5zdWJzdHJpbmcobmFtZS5sZW5ndGggLSA0MCk7XG4gICAgfVxuICAgIHJldHVybiBuYW1lO1xuICB9XG59XG4iXX0=

@@ -5,5 +5,3 @@ import * as iam from '@aws-cdk/aws-iam';

/**
* Properties of CloudFront OriginAccessIdentity.
*
* @stability stable
* Properties of CloudFront OriginAccessIdentity
*/

@@ -15,3 +13,2 @@ export interface OriginAccessIdentityProps {

* @default "Allows CloudFront to reach the bucket"
* @stability stable
*/

@@ -21,11 +18,7 @@ readonly comment?: string;

/**
* Interface for CloudFront OriginAccessIdentity.
*
* @stability stable
* Interface for CloudFront OriginAccessIdentity
*/
export interface IOriginAccessIdentity extends cdk.IResource, iam.IGrantable {
/**
* The Origin Access Identity Name.
*
* @stability stable
* The Origin Access Identity Name
*/

@@ -44,5 +37,3 @@ readonly originAccessIdentityName: string;

/**
* The ARN to include in S3 bucket policy to allow CloudFront access.
*
* @stability stable
* The ARN to include in S3 bucket policy to allow CloudFront access
*/

@@ -52,5 +43,6 @@ protected arn(): string;

/**
* An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content.
* An origin access identity is a special CloudFront user that you can
* associate with Amazon S3 origins, so that you can secure all or just some of
* your Amazon S3 content.
*
* @stability stable
* @resource AWS::CloudFront::CloudFrontOriginAccessIdentity

@@ -60,25 +52,21 @@ */

/**
* Creates a OriginAccessIdentity by providing the OriginAccessIdentityName.
*
* @stability stable
* Creates a OriginAccessIdentity by providing the OriginAccessIdentityName
*/
static fromOriginAccessIdentityName(scope: Construct, id: string, originAccessIdentityName: string): IOriginAccessIdentity;
/**
* The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3.
* The Amazon S3 canonical user ID for the origin access identity, used when
* giving the origin access identity read permission to an object in Amazon
* S3.
*
* @stability stable
* @attribute true
* @attribute
*/
readonly cloudFrontOriginAccessIdentityS3CanonicalUserId: string;
/**
* Derived principal value for bucket access.
*
* @stability stable
* Derived principal value for bucket access
*/
readonly grantPrincipal: iam.IPrincipal;
/**
* The Origin Access Identity Name (physical id).
* The Origin Access Identity Name (physical id)
*
* @stability stable
* @attribute true
* @attribute
*/

@@ -90,7 +78,4 @@ readonly originAccessIdentityName: string;

private readonly resource;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props?: OriginAccessIdentityProps);
}
export {};

@@ -12,5 +12,3 @@ "use strict";

/**
* The ARN to include in S3 bucket policy to allow CloudFront access.
*
* @stability stable
* The ARN to include in S3 bucket policy to allow CloudFront access
*/

@@ -28,11 +26,9 @@ arn() {

/**
* An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content.
* An origin access identity is a special CloudFront user that you can
* associate with Amazon S3 origins, so that you can secure all or just some of
* your Amazon S3 content.
*
* @stability stable
* @resource AWS::CloudFront::CloudFrontOriginAccessIdentity
*/
class OriginAccessIdentity extends OriginAccessIdentityBase {
/**
* @stability stable
*/
constructor(scope, id, props) {

@@ -59,5 +55,3 @@ var _b;

/**
* Creates a OriginAccessIdentity by providing the OriginAccessIdentityName.
*
* @stability stable
* Creates a OriginAccessIdentity by providing the OriginAccessIdentityName
*/

@@ -77,3 +71,3 @@ static fromOriginAccessIdentityName(scope, id, originAccessIdentityName) {

_a = JSII_RTTI_SYMBOL_1;
OriginAccessIdentity[_a] = { fqn: "@aws-cdk/aws-cloudfront.OriginAccessIdentity", version: "1.144.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWFjY2Vzcy1pZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9yaWdpbi1hY2Nlc3MtaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0NBQXdDO0FBQ3hDLHFDQUFxQztBQUVyQyxpRUFBMkU7QUFjM0UsTUFBZSx3QkFBeUIsU0FBUSxHQUFHLENBQUMsUUFBUTs7Ozs7O0lBV2hELEdBQUc7UUFDWCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FDakM7WUFDRSxPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxFQUFFO1lBQ1YsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLE1BQU07WUFDaEIsWUFBWSxFQUFFLHFDQUFxQyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7U0FDbkYsQ0FDRixDQUFDO0tBQ0g7Q0FDRjs7Ozs7OztBQUdELE1BQWEsb0JBQXFCLFNBQVEsd0JBQXdCOzs7O0lBZ0NoRSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDOztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOztRQUVqQixtQ0FBbUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsT0FBQyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxtQ0FBSSx1Q0FBdUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHdEQUFpQyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdEUsb0NBQW9DLEVBQUUsRUFBRSxPQUFPLEVBQUU7U0FDbEQsQ0FBQyxDQUFDO1FBQ0gseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqRiw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLCtDQUErQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUM7UUFDM0YsdUVBQXVFO1FBQ3ZFLGlFQUFpRTtRQUNqRSwyRUFBMkU7UUFDM0Usb0VBQW9FO1FBQ3BFLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0tBQzVHOzs7Ozs7SUFqRE0sTUFBTSxDQUFDLDRCQUE0QixDQUN4QyxLQUFnQixFQUNoQixFQUFVLEVBQ1Ysd0JBQWdDO1FBRWhDLE1BQU0sTUFBTyxTQUFRLHdCQUF3QjtZQUczQyxZQUFZLENBQVksRUFBRSxDQUFTO2dCQUNqQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7Z0JBSDFDLDZCQUF3QixHQUFHLHdCQUF3QixDQUFDO2dCQUNwRCxtQkFBYyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUdsRSxDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5Qjs7QUFoQkgsb0RBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5DbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHkgfSBmcm9tICcuL2Nsb3VkZnJvbnQuZ2VuZXJhdGVkJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQWNjZXNzSWRlbnRpdHlQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElPcmlnaW5BY2Nlc3NJZGVudGl0eSBleHRlbmRzIGNkay5JUmVzb3VyY2UsIGlhbS5JR3JhbnRhYmxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWU6IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgT3JpZ2luQWNjZXNzSWRlbnRpdHlCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBPcmlnaW4gQWNjZXNzIElkZW50aXR5IE5hbWUgKHBoeXNpY2FsIGlkKVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRGVyaXZlZCBwcmluY2lwYWwgdmFsdWUgZm9yIGJ1Y2tldCBhY2Nlc3NcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHJvdGVjdGVkIGFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiBjZGsuU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKFxuICAgICAge1xuICAgICAgICBzZXJ2aWNlOiAnaWFtJyxcbiAgICAgICAgcmVnaW9uOiAnJywgLy8gZ2xvYmFsXG4gICAgICAgIGFjY291bnQ6ICdjbG91ZGZyb250JyxcbiAgICAgICAgcmVzb3VyY2U6ICd1c2VyJyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgQ2xvdWRGcm9udCBPcmlnaW4gQWNjZXNzIElkZW50aXR5ICR7dGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWV9YCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBPcmlnaW5BY2Nlc3NJZGVudGl0eSBleHRlbmRzIE9yaWdpbkFjY2Vzc0lkZW50aXR5QmFzZSBpbXBsZW1lbnRzIElPcmlnaW5BY2Nlc3NJZGVudGl0eSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGZyb21PcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZTogc3RyaW5nKTogSU9yaWdpbkFjY2Vzc0lkZW50aXR5IHtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIE9yaWdpbkFjY2Vzc0lkZW50aXR5QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lID0gb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsID0gbmV3IGlhbS5Bcm5QcmluY2lwYWwodGhpcy5hcm4oKSk7XG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpLCB7IHBoeXNpY2FsTmFtZTogb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlTM0Nhbm9uaWNhbFVzZXJJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ0RLIEwxIHJlc291cmNlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBDZm5DbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBPcmlnaW5BY2Nlc3NJZGVudGl0eVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENvbW1lbnQgaGFzIGEgbWF4IGxlbmd0aCBvZiAxMjguXG4gICAgY29uc3QgY29tbWVudCA9IChwcm9wcz8uY29tbWVudCA/PyAnQWxsb3dzIENsb3VkRnJvbnQgdG8gcmVhY2ggdGhlIGJ1Y2tldCcpLnN1YnN0cigwLCAxMjgpO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eUNvbmZpZzogeyBjb21tZW50IH0sXG4gICAgfSk7XG4gICAgLy8gcGh5c2ljYWwgaWQgLSBPQUkgbmFtZVxuICAgIHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5yZWYpO1xuXG4gICAgLy8gQ2Fub25pY2FsIHVzZXIgdG8gZ3JhbnQgYWNjZXNzIHRvIGluIHRoZSBTMyBCdWNrZXQgUG9saWN5XG4gICAgdGhpcy5jbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlTM0Nhbm9uaWNhbFVzZXJJZCA9IHRoaXMucmVzb3VyY2UuYXR0clMzQ2Fub25pY2FsVXNlcklkO1xuICAgIC8vIFRoZSBwcmluY2lwYWwgZm9yIG11c3QgYmUgZWl0aGVyIHRoZSBjYW5vbmljYWwgdXNlciBvciBhIHNwZWNpYWwgQVJOXG4gICAgLy8gd2l0aCB0aGUgQ2xvdWRGcm9udCBPcmlnaW4gQWNjZXNzIElkIChzZWUgYGFybigpYCBtZXRob2QpLiBGb3JcbiAgICAvLyBpbXBvcnQvZXhwb3J0IHRoZSBPQUkgaXMgYW55d2F5IHJlcXVpcmVkIHNvIHRoZSBwcmluY2lwYWwgaXMgY29uc3RydWN0ZWRcbiAgICAvLyB3aXRoIGl0LiBCdXQgZm9yIHRoZSBub3JtYWwgY2FzZSB0aGUgUzMgQ2Fub25pY2FsIFVzZXIgYXMgYSBuaWNlclxuICAgIC8vIGludGVyZmFjZSBhbmQgZG9lcyBub3QgcmVxdWlyZSBjb25zdHJ1Y3RpbmcgdGhlIEFSTi5cbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gbmV3IGlhbS5DYW5vbmljYWxVc2VyUHJpbmNpcGFsKHRoaXMuY2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5UzNDYW5vbmljYWxVc2VySWQpO1xuICB9XG59XG4iXX0=
OriginAccessIdentity[_a] = { fqn: "@aws-cdk/aws-cloudfront.OriginAccessIdentity", version: "1.145.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWFjY2Vzcy1pZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm9yaWdpbi1hY2Nlc3MtaWRlbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0NBQXdDO0FBQ3hDLHFDQUFxQztBQUVyQyxpRUFBMkU7QUF3QjNFLE1BQWUsd0JBQXlCLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFVMUQ7O09BRUc7SUFDTyxHQUFHO1FBQ1gsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQ2pDO1lBQ0UsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFlBQVksRUFBRSxxQ0FBcUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1NBQ25GLENBQ0YsQ0FBQztLQUNIO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHdCQUF3QjtJQThDaEUsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQzs7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7UUFFakIsbUNBQW1DO1FBQ25DLE1BQU0sT0FBTyxHQUFHLE9BQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sbUNBQUksdUNBQXVDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx3REFBaUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3RFLG9DQUFvQyxFQUFFLEVBQUUsT0FBTyxFQUFFO1NBQ2xELENBQUMsQ0FBQztRQUNILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakYsNERBQTREO1FBQzVELElBQUksQ0FBQywrQ0FBK0MsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDO1FBQzNGLHVFQUF1RTtRQUN2RSxpRUFBaUU7UUFDakUsMkVBQTJFO1FBQzNFLG9FQUFvRTtRQUNwRSx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQztLQUM1RztJQWhFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyw0QkFBNEIsQ0FDeEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLHdCQUFnQztRQUVoQyxNQUFNLE1BQU8sU0FBUSx3QkFBd0I7WUFHM0MsWUFBWSxDQUFZLEVBQUUsQ0FBUztnQkFDakMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2dCQUgxQyw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztnQkFDcEQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFHbEUsQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7O0FBbEJILG9EQWtFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5IH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBDbG91ZEZyb250IE9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQWNjZXNzSWRlbnRpdHlQcm9wcyB7XG4gIC8qKlxuICAgKiBBbnkgY29tbWVudHMgeW91IHdhbnQgdG8gaW5jbHVkZSBhYm91dCB0aGUgb3JpZ2luIGFjY2VzcyBpZGVudGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJBbGxvd3MgQ2xvdWRGcm9udCB0byByZWFjaCB0aGUgYnVja2V0XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBDbG91ZEZyb250IE9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU9yaWdpbkFjY2Vzc0lkZW50aXR5IGV4dGVuZHMgY2RrLklSZXNvdXJjZSwgaWFtLklHcmFudGFibGUge1xuICAvKipcbiAgICogVGhlIE9yaWdpbiBBY2Nlc3MgSWRlbnRpdHkgTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lOiBzdHJpbmc7XG59XG5cbmFic3RyYWN0IGNsYXNzIE9yaWdpbkFjY2Vzc0lkZW50aXR5QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgT3JpZ2luIEFjY2VzcyBJZGVudGl0eSBOYW1lIChwaHlzaWNhbCBpZClcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIERlcml2ZWQgcHJpbmNpcGFsIHZhbHVlIGZvciBidWNrZXQgYWNjZXNzXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIHRvIGluY2x1ZGUgaW4gUzMgYnVja2V0IHBvbGljeSB0byBhbGxvdyBDbG91ZEZyb250IGFjY2Vzc1xuICAgKi9cbiAgcHJvdGVjdGVkIGFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiBjZGsuU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKFxuICAgICAge1xuICAgICAgICBzZXJ2aWNlOiAnaWFtJyxcbiAgICAgICAgcmVnaW9uOiAnJywgLy8gZ2xvYmFsXG4gICAgICAgIGFjY291bnQ6ICdjbG91ZGZyb250JyxcbiAgICAgICAgcmVzb3VyY2U6ICd1c2VyJyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgQ2xvdWRGcm9udCBPcmlnaW4gQWNjZXNzIElkZW50aXR5ICR7dGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWV9YCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIG9yaWdpbiBhY2Nlc3MgaWRlbnRpdHkgaXMgYSBzcGVjaWFsIENsb3VkRnJvbnQgdXNlciB0aGF0IHlvdSBjYW5cbiAqIGFzc29jaWF0ZSB3aXRoIEFtYXpvbiBTMyBvcmlnaW5zLCBzbyB0aGF0IHlvdSBjYW4gc2VjdXJlIGFsbCBvciBqdXN0IHNvbWUgb2ZcbiAqIHlvdXIgQW1hem9uIFMzIGNvbnRlbnQuXG4gKlxuICogQHJlc291cmNlIEFXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gKi9cbmV4cG9ydCBjbGFzcyBPcmlnaW5BY2Nlc3NJZGVudGl0eSBleHRlbmRzIE9yaWdpbkFjY2Vzc0lkZW50aXR5QmFzZSBpbXBsZW1lbnRzIElPcmlnaW5BY2Nlc3NJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgT3JpZ2luQWNjZXNzSWRlbnRpdHkgYnkgcHJvdmlkaW5nIHRoZSBPcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3JpZ2luQWNjZXNzSWRlbnRpdHlOYW1lOiBzdHJpbmcpOiBJT3JpZ2luQWNjZXNzSWRlbnRpdHkge1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgT3JpZ2luQWNjZXNzSWRlbnRpdHlCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUgPSBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSBuZXcgaWFtLkFyblByaW5jaXBhbCh0aGlzLmFybigpKTtcbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGksIHsgcGh5c2ljYWxOYW1lOiBvcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFMzIGNhbm9uaWNhbCB1c2VyIElEIGZvciB0aGUgb3JpZ2luIGFjY2VzcyBpZGVudGl0eSwgdXNlZCB3aGVuXG4gICAqIGdpdmluZyB0aGUgb3JpZ2luIGFjY2VzcyBpZGVudGl0eSByZWFkIHBlcm1pc3Npb24gdG8gYW4gb2JqZWN0IGluIEFtYXpvblxuICAgKiBTMy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVMzQ2Fub25pY2FsVXNlcklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlcml2ZWQgcHJpbmNpcGFsIHZhbHVlIGZvciBidWNrZXQgYWNjZXNzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgT3JpZ2luIEFjY2VzcyBJZGVudGl0eSBOYW1lIChwaHlzaWNhbCBpZClcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDREsgTDEgcmVzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmbkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IE9yaWdpbkFjY2Vzc0lkZW50aXR5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gQ29tbWVudCBoYXMgYSBtYXggbGVuZ3RoIG9mIDEyOC5cbiAgICBjb25zdCBjb21tZW50ID0gKHByb3BzPy5jb21tZW50ID8/ICdBbGxvd3MgQ2xvdWRGcm9udCB0byByZWFjaCB0aGUgYnVja2V0Jykuc3Vic3RyKDAsIDEyOCk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBDZm5DbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Q29uZmlnOiB7IGNvbW1lbnQgfSxcbiAgICB9KTtcbiAgICAvLyBwaHlzaWNhbCBpZCAtIE9BSSBuYW1lXG4gICAgdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eU5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG5cbiAgICAvLyBDYW5vbmljYWwgdXNlciB0byBncmFudCBhY2Nlc3MgdG8gaW4gdGhlIFMzIEJ1Y2tldCBQb2xpY3lcbiAgICB0aGlzLmNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVMzQ2Fub25pY2FsVXNlcklkID0gdGhpcy5yZXNvdXJjZS5hdHRyUzNDYW5vbmljYWxVc2VySWQ7XG4gICAgLy8gVGhlIHByaW5jaXBhbCBmb3IgbXVzdCBiZSBlaXRoZXIgdGhlIGNhbm9uaWNhbCB1c2VyIG9yIGEgc3BlY2lhbCBBUk5cbiAgICAvLyB3aXRoIHRoZSBDbG91ZEZyb250IE9yaWdpbiBBY2Nlc3MgSWQgKHNlZSBgYXJuKClgIG1ldGhvZCkuIEZvclxuICAgIC8vIGltcG9ydC9leHBvcnQgdGhlIE9BSSBpcyBhbnl3YXkgcmVxdWlyZWQgc28gdGhlIHByaW5jaXBhbCBpcyBjb25zdHJ1Y3RlZFxuICAgIC8vIHdpdGggaXQuIEJ1dCBmb3IgdGhlIG5vcm1hbCBjYXNlIHRoZSBTMyBDYW5vbmljYWwgVXNlciBhcyBhIG5pY2VyXG4gICAgLy8gaW50ZXJmYWNlIGFuZCBkb2VzIG5vdCByZXF1aXJlIGNvbnN0cnVjdGluZyB0aGUgQVJOLlxuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSBuZXcgaWFtLkNhbm9uaWNhbFVzZXJQcmluY2lwYWwodGhpcy5jbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHlTM0Nhbm9uaWNhbFVzZXJJZCk7XG4gIH1cbn1cbiJdfQ==
import { Resource } from '@aws-cdk/core';
import { Construct } from 'constructs';
/**
* Represents a Origin Request Policy.
*
* @stability stable
* Represents a Origin Request Policy
*/
export interface IOriginRequestPolicy {
/**
* The ID of the origin request policy.
*
* @stability stable
* @attribute true
* The ID of the origin request policy
* @attribute
*/

@@ -18,5 +14,3 @@ readonly originRequestPolicyId: string;

/**
* Properties for creating a Origin Request Policy.
*
* @stability stable
* Properties for creating a Origin Request Policy
*/

@@ -26,7 +20,4 @@ export interface OriginRequestPolicyProps {

* A unique name to identify the origin request policy.
*
* The name must only include '-', '_', or alphanumeric characters.
*
* @default - generated from the `id`
* @stability stable
*/

@@ -36,5 +27,3 @@ readonly originRequestPolicyName?: string;

* A comment to describe the origin request policy.
*
* @default - no comment
* @stability stable
*/

@@ -44,14 +33,8 @@ readonly comment?: string;

* The cookies from viewer requests to include in origin requests.
*
* @default OriginRequestCookieBehavior.none()
* @stability stable
*/
readonly cookieBehavior?: OriginRequestCookieBehavior;
/**
* The HTTP headers to include in origin requests.
*
* These can include headers from viewer requests and additional headers added by CloudFront.
*
* The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront.
* @default OriginRequestHeaderBehavior.none()
* @stability stable
*/

@@ -61,5 +44,3 @@ readonly headerBehavior?: OriginRequestHeaderBehavior;

* The URL query strings from viewer requests to include in origin requests.
*
* @default OriginRequestQueryStringBehavior.none()
* @stability stable
*/

@@ -71,61 +52,25 @@ readonly queryStringBehavior?: OriginRequestQueryStringBehavior;

*
* @stability stable
* @resource AWS::CloudFront::OriginRequestPolicy
*/
export declare class OriginRequestPolicy extends Resource implements IOriginRequestPolicy {
/**
* This policy includes only the User-Agent and Referer headers.
*
* It doesn’t include any query strings or cookies.
*
* @stability stable
*/
/** This policy includes only the User-Agent and Referer headers. It doesn’t include any query strings or cookies. */
static readonly USER_AGENT_REFERER_HEADERS: IOriginRequestPolicy;
/**
* This policy includes the header that enables cross-origin resource sharing (CORS) requests when the origin is a custom origin.
*
* @stability stable
*/
/** This policy includes the header that enables cross-origin resource sharing (CORS) requests when the origin is a custom origin. */
static readonly CORS_CUSTOM_ORIGIN: IOriginRequestPolicy;
/**
* This policy includes the headers that enable cross-origin resource sharing (CORS) requests when the origin is an Amazon S3 bucket.
*
* @stability stable
*/
/** This policy includes the headers that enable cross-origin resource sharing (CORS) requests when the origin is an Amazon S3 bucket. */
static readonly CORS_S3_ORIGIN: IOriginRequestPolicy;
/**
* This policy includes all values (query strings, headers, and cookies) in the viewer request.
*
* @stability stable
*/
/** This policy includes all values (query strings, headers, and cookies) in the viewer request. */
static readonly ALL_VIEWER: IOriginRequestPolicy;
/**
* This policy is designed for use with an origin that is an AWS Elemental MediaTailor endpoint.
*
* @stability stable
*/
/** This policy is designed for use with an origin that is an AWS Elemental MediaTailor endpoint. */
static readonly ELEMENTAL_MEDIA_TAILOR: IOriginRequestPolicy;
/**
* Imports a Origin Request Policy from its id.
*
* @stability stable
*/
/** Imports a Origin Request Policy from its id. */
static fromOriginRequestPolicyId(scope: Construct, id: string, originRequestPolicyId: string): IOriginRequestPolicy;
/** Use an existing managed origin request policy. */
private static fromManagedOriginRequestPolicy;
/**
* The ID of the origin request policy.
*
* @stability stable
*/
readonly originRequestPolicyId: string;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props?: OriginRequestPolicyProps);
}
/**
* Determines whether any cookies in viewer requests (and if so, which cookies) are included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any cookies in viewer requests (and if so, which cookies)
* are included in requests that CloudFront sends to the origin.
*/

@@ -135,31 +80,12 @@ export declare class OriginRequestCookieBehavior {

* Cookies in viewer requests are not included in requests that CloudFront sends to the origin.
*
* Any cookies that are listed in a CachePolicy are still included in origin requests.
*
* @stability stable
*/
static none(): OriginRequestCookieBehavior;
/**
* All cookies in viewer requests are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** All cookies in viewer requests are included in requests that CloudFront sends to the origin. */
static all(): OriginRequestCookieBehavior;
/**
* Only the provided `cookies` are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Only the provided `cookies` are included in requests that CloudFront sends to the origin. */
static allowList(...cookies: string[]): OriginRequestCookieBehavior;
/**
* The behavior of cookies: allow all, none or an allow list.
*
* @stability stable
*/
/** The behavior of cookies: allow all, none or an allow list. */
readonly behavior: string;
/**
* The cookies to allow, if the behavior is an allow list.
*
* @stability stable
*/
/** The cookies to allow, if the behavior is an allow list. */
readonly cookies?: string[];

@@ -170,4 +96,2 @@ private constructor();

* Determines whether any HTTP headers (and if so, which headers) are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -177,6 +101,3 @@ export declare class OriginRequestHeaderBehavior {

* HTTP headers are not included in requests that CloudFront sends to the origin.
*
* Any headers that are listed in a CachePolicy are still included in origin requests.
*
* @stability stable
*/

@@ -186,26 +107,11 @@ static none(): OriginRequestHeaderBehavior;

* All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin.
*
* Additionally, any additional CloudFront headers provided are included; the additional headers are added by CloudFront.
*
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-cloudfront-headers.html
* @stability stable
*/
static all(...cloudfrontHeaders: string[]): OriginRequestHeaderBehavior;
/**
* Listed headers are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Listed headers are included in requests that CloudFront sends to the origin. */
static allowList(...headers: string[]): OriginRequestHeaderBehavior;
/**
* The behavior of headers: allow all, none or an allow list.
*
* @stability stable
*/
/** The behavior of headers: allow all, none or an allow list. */
readonly behavior: string;
/**
* The headers for the allow list or the included CloudFront headers, if applicable.
*
* @stability stable
*/
/** The headers for the allow list or the included CloudFront headers, if applicable. */
readonly headers?: string[];

@@ -215,5 +121,4 @@ private constructor();

/**
* Determines whether any URL query strings in viewer requests (and if so, which query strings) are included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any URL query strings in viewer requests (and if so, which query strings)
* are included in requests that CloudFront sends to the origin.
*/

@@ -223,33 +128,14 @@ export declare class OriginRequestQueryStringBehavior {

* Query strings in viewer requests are not included in requests that CloudFront sends to the origin.
*
* Any query strings that are listed in a CachePolicy are still included in origin requests.
*
* @stability stable
*/
static none(): OriginRequestQueryStringBehavior;
/**
* All query strings in viewer requests are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** All query strings in viewer requests are included in requests that CloudFront sends to the origin. */
static all(): OriginRequestQueryStringBehavior;
/**
* Only the provided `queryStrings` are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Only the provided `queryStrings` are included in requests that CloudFront sends to the origin. */
static allowList(...queryStrings: string[]): OriginRequestQueryStringBehavior;
/**
* The behavior of query strings -- allow all, none, or only an allow list.
*
* @stability stable
*/
/** The behavior of query strings -- allow all, none, or only an allow list. */
readonly behavior: string;
/**
* The query strings to allow, if the behavior is an allow list.
*
* @stability stable
*/
/** The query strings to allow, if the behavior is an allow list. */
readonly queryStrings?: string[];
private constructor();
}

@@ -12,9 +12,5 @@ "use strict";

*
* @stability stable
* @resource AWS::CloudFront::OriginRequestPolicy
*/
class OriginRequestPolicy extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props = {}) {

@@ -53,7 +49,3 @@ var _e, _f, _g, _h;

}
/**
* Imports a Origin Request Policy from its id.
*
* @stability stable
*/
/** Imports a Origin Request Policy from its id. */
static fromOriginRequestPolicyId(scope, id, originRequestPolicyId) {

@@ -78,39 +70,16 @@ return new class extends core_1.Resource {

_a = JSII_RTTI_SYMBOL_1;
OriginRequestPolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestPolicy", version: "1.144.0" };
/**
* This policy includes only the User-Agent and Referer headers.
*
* It doesn’t include any query strings or cookies.
*
* @stability stable
*/
OriginRequestPolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestPolicy", version: "1.145.0" };
/** This policy includes only the User-Agent and Referer headers. It doesn’t include any query strings or cookies. */
OriginRequestPolicy.USER_AGENT_REFERER_HEADERS = OriginRequestPolicy.fromManagedOriginRequestPolicy('acba4595-bd28-49b8-b9fe-13317c0390fa');
/**
* This policy includes the header that enables cross-origin resource sharing (CORS) requests when the origin is a custom origin.
*
* @stability stable
*/
/** This policy includes the header that enables cross-origin resource sharing (CORS) requests when the origin is a custom origin. */
OriginRequestPolicy.CORS_CUSTOM_ORIGIN = OriginRequestPolicy.fromManagedOriginRequestPolicy('59781a5b-3903-41f3-afcb-af62929ccde1');
/**
* This policy includes the headers that enable cross-origin resource sharing (CORS) requests when the origin is an Amazon S3 bucket.
*
* @stability stable
*/
/** This policy includes the headers that enable cross-origin resource sharing (CORS) requests when the origin is an Amazon S3 bucket. */
OriginRequestPolicy.CORS_S3_ORIGIN = OriginRequestPolicy.fromManagedOriginRequestPolicy('88a5eaf4-2fd4-4709-b370-b4c650ea3fcf');
/**
* This policy includes all values (query strings, headers, and cookies) in the viewer request.
*
* @stability stable
*/
/** This policy includes all values (query strings, headers, and cookies) in the viewer request. */
OriginRequestPolicy.ALL_VIEWER = OriginRequestPolicy.fromManagedOriginRequestPolicy('216adef6-5c7f-47e4-b989-5492eafa07d3');
/**
* This policy is designed for use with an origin that is an AWS Elemental MediaTailor endpoint.
*
* @stability stable
*/
/** This policy is designed for use with an origin that is an AWS Elemental MediaTailor endpoint. */
OriginRequestPolicy.ELEMENTAL_MEDIA_TAILOR = OriginRequestPolicy.fromManagedOriginRequestPolicy('775133bc-15f2-49f9-abea-afb2e0bf67d2');
/**
* Determines whether any cookies in viewer requests (and if so, which cookies) are included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any cookies in viewer requests (and if so, which cookies)
* are included in requests that CloudFront sends to the origin.
*/

@@ -124,19 +93,8 @@ class OriginRequestCookieBehavior {

* Cookies in viewer requests are not included in requests that CloudFront sends to the origin.
*
* Any cookies that are listed in a CachePolicy are still included in origin requests.
*
* @stability stable
*/
static none() { return new OriginRequestCookieBehavior('none'); }
/**
* All cookies in viewer requests are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** All cookies in viewer requests are included in requests that CloudFront sends to the origin. */
static all() { return new OriginRequestCookieBehavior('all'); }
/**
* Only the provided `cookies` are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Only the provided `cookies` are included in requests that CloudFront sends to the origin. */
static allowList(...cookies) {

@@ -151,7 +109,5 @@ if (cookies.length === 0) {

_b = JSII_RTTI_SYMBOL_1;
OriginRequestCookieBehavior[_b] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestCookieBehavior", version: "1.144.0" };
OriginRequestCookieBehavior[_b] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestCookieBehavior", version: "1.145.0" };
/**
* Determines whether any HTTP headers (and if so, which headers) are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/

@@ -165,6 +121,3 @@ class OriginRequestHeaderBehavior {

* HTTP headers are not included in requests that CloudFront sends to the origin.
*
* Any headers that are listed in a CachePolicy are still included in origin requests.
*
* @stability stable
*/

@@ -174,7 +127,4 @@ static none() { return new OriginRequestHeaderBehavior('none'); }

* All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin.
*
* Additionally, any additional CloudFront headers provided are included; the additional headers are added by CloudFront.
*
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-cloudfront-headers.html
* @stability stable
*/

@@ -192,7 +142,3 @@ static all(...cloudfrontHeaders) {

}
/**
* Listed headers are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Listed headers are included in requests that CloudFront sends to the origin. */
static allowList(...headers) {

@@ -210,7 +156,6 @@ if (headers.length === 0) {

_c = JSII_RTTI_SYMBOL_1;
OriginRequestHeaderBehavior[_c] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestHeaderBehavior", version: "1.144.0" };
OriginRequestHeaderBehavior[_c] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestHeaderBehavior", version: "1.145.0" };
/**
* Determines whether any URL query strings in viewer requests (and if so, which query strings) are included in requests that CloudFront sends to the origin.
*
* @stability stable
* Determines whether any URL query strings in viewer requests (and if so, which query strings)
* are included in requests that CloudFront sends to the origin.
*/

@@ -224,19 +169,8 @@ class OriginRequestQueryStringBehavior {

* Query strings in viewer requests are not included in requests that CloudFront sends to the origin.
*
* Any query strings that are listed in a CachePolicy are still included in origin requests.
*
* @stability stable
*/
static none() { return new OriginRequestQueryStringBehavior('none'); }
/**
* All query strings in viewer requests are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** All query strings in viewer requests are included in requests that CloudFront sends to the origin. */
static all() { return new OriginRequestQueryStringBehavior('all'); }
/**
* Only the provided `queryStrings` are included in requests that CloudFront sends to the origin.
*
* @stability stable
*/
/** Only the provided `queryStrings` are included in requests that CloudFront sends to the origin. */
static allowList(...queryStrings) {

@@ -251,3 +185,3 @@ if (queryStrings.length === 0) {

_d = JSII_RTTI_SYMBOL_1;
OriginRequestQueryStringBehavior[_d] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestQueryStringBehavior", version: "1.144.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLXJlcXVlc3QtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JpZ2luLXJlcXVlc3QtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUF1RDtBQUV2RCxpRUFBZ0U7Ozs7Ozs7QUEyQmhFLE1BQWEsbUJBQW9CLFNBQVEsZUFBUTs7OztJQTZCL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFrQyxFQUFFOztRQUM1RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsdUJBQXVCO1NBQzVDLENBQUMsQ0FBQzs7UUFFSCxNQUFNLHVCQUF1QixTQUFHLEtBQUssQ0FBQyx1QkFBdUIsbUNBQUksWUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsWUFBSyxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQy9GLE1BQU0sSUFBSSxLQUFLLENBQUMsMkZBQTJGLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUM7U0FDOUk7UUFFRCxNQUFNLE9BQU8sU0FBRyxLQUFLLENBQUMsY0FBYyxtQ0FBSSwyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRSxNQUFNLE9BQU8sU0FBRyxLQUFLLENBQUMsY0FBYyxtQ0FBSSwyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzRSxNQUFNLFlBQVksU0FBRyxLQUFLLENBQUMsbUJBQW1CLG1DQUFJLGdDQUFnQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTFGLE1BQU0sUUFBUSxHQUFHLElBQUksNkNBQXNCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM1RCx5QkFBeUIsRUFBRTtnQkFDekIsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsT0FBTyxFQUFFLEtBQUss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SyxPQUFPLElBQUksZ0NBQWdDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs7Ozs7O0lBR3BFLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxZQUFzQjtRQUMvQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDeEU7O0FBYkgsNEVBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmFtZXMsIFJlc291cmNlLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5PcmlnaW5SZXF1ZXN0UG9saWN5IH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBJT3JpZ2luUmVxdWVzdFBvbGljeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5SZXF1ZXN0UG9saWN5SWQ6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBPcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb3JpZ2luUmVxdWVzdFBvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb29raWVCZWhhdmlvcj86IE9yaWdpblJlcXVlc3RDb29raWVCZWhhdmlvcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhlYWRlckJlaGF2aW9yPzogT3JpZ2luUmVxdWVzdEhlYWRlckJlaGF2aW9yO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcXVlcnlTdHJpbmdCZWhhdmlvcj86IE9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBPcmlnaW5SZXF1ZXN0UG9saWN5IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJT3JpZ2luUmVxdWVzdFBvbGljeSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFUl9BR0VOVF9SRUZFUkVSX0hFQURFUlMgPSBPcmlnaW5SZXF1ZXN0UG9saWN5LmZyb21NYW5hZ2VkT3JpZ2luUmVxdWVzdFBvbGljeSgnYWNiYTQ1OTUtYmQyOC00OWI4LWI5ZmUtMTMzMTdjMDM5MGZhJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT1JTX0NVU1RPTV9PUklHSU4gPSBPcmlnaW5SZXF1ZXN0UG9saWN5LmZyb21NYW5hZ2VkT3JpZ2luUmVxdWVzdFBvbGljeSgnNTk3ODFhNWItMzkwMy00MWYzLWFmY2ItYWY2MjkyOWNjZGUxJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09SU19TM19PUklHSU4gPSBPcmlnaW5SZXF1ZXN0UG9saWN5LmZyb21NYW5hZ2VkT3JpZ2luUmVxdWVzdFBvbGljeSgnODhhNWVhZjQtMmZkNC00NzA5LWIzNzAtYjRjNjUwZWEzZmNmJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFMTF9WSUVXRVIgPSBPcmlnaW5SZXF1ZXN0UG9saWN5LmZyb21NYW5hZ2VkT3JpZ2luUmVxdWVzdFBvbGljeSgnMjE2YWRlZjYtNWM3Zi00N2U0LWI5ODktNTQ5MmVhZmEwN2QzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTEVNRU5UQUxfTUVESUFfVEFJTE9SID0gT3JpZ2luUmVxdWVzdFBvbGljeS5mcm9tTWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3koJzc3NTEzM2JjLTE1ZjItNDlmOS1hYmVhLWFmYjJlMGJmNjdkMicpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGZyb21PcmlnaW5SZXF1ZXN0UG9saWN5SWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3JpZ2luUmVxdWVzdFBvbGljeUlkOiBzdHJpbmcpOiBJT3JpZ2luUmVxdWVzdFBvbGljeSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAgICAgcHVibGljIHJlYWRvbmx5IG9yaWdpblJlcXVlc3RQb2xpY3lJZCA9IG9yaWdpblJlcXVlc3RQb2xpY3lJZDtcbiAgICB9KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKiogVXNlIGFuIGV4aXN0aW5nIG1hbmFnZWQgb3JpZ2luIHJlcXVlc3QgcG9saWN5LiAqL1xuICBwcml2YXRlIHN0YXRpYyBmcm9tTWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3kobWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3lJZDogc3RyaW5nKTogSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAgIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBJT3JpZ2luUmVxdWVzdFBvbGljeSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgb3JpZ2luUmVxdWVzdFBvbGljeUlkID0gbWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3lJZDtcbiAgICB9KCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgb3JpZ2luUmVxdWVzdFBvbGljeUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLm9yaWdpblJlcXVlc3RQb2xpY3lOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luUmVxdWVzdFBvbGljeU5hbWUgPSBwcm9wcy5vcmlnaW5SZXF1ZXN0UG9saWN5TmFtZSA/PyBOYW1lcy51bmlxdWVJZCh0aGlzKTtcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZSkgJiYgIW9yaWdpblJlcXVlc3RQb2xpY3lOYW1lLm1hdGNoKC9eW1xcdy1dKyQvaSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJ29yaWdpblJlcXVlc3RQb2xpY3lOYW1lJyBjYW4gb25seSBpbmNsdWRlICctJywgJ18nLCBhbmQgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGdvdDogJyR7cHJvcHMub3JpZ2luUmVxdWVzdFBvbGljeU5hbWV9J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGNvb2tpZXMgPSBwcm9wcy5jb29raWVCZWhhdmlvciA/PyBPcmlnaW5SZXF1ZXN0Q29va2llQmVoYXZpb3Iubm9uZSgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBwcm9wcy5oZWFkZXJCZWhhdmlvciA/PyBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3Iubm9uZSgpO1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5ncyA9IHByb3BzLnF1ZXJ5U3RyaW5nQmVoYXZpb3IgPz8gT3JpZ2luUmVxdWVzdFF1ZXJ5U3RyaW5nQmVoYXZpb3Iubm9uZSgpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuT3JpZ2luUmVxdWVzdFBvbGljeSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5Q29uZmlnOiB7XG4gICAgICAgIG5hbWU6IG9yaWdpblJlcXVlc3RQb2xpY3lOYW1lLFxuICAgICAgICBjb21tZW50OiBwcm9wcy5jb21tZW50LFxuICAgICAgICBjb29raWVzQ29uZmlnOiB7XG4gICAgICAgICAgY29va2llQmVoYXZpb3I6IGNvb2tpZXMuYmVoYXZpb3IsXG4gICAgICAgICAgY29va2llczogY29va2llcy5jb29raWVzLFxuICAgICAgICB9LFxuICAgICAgICBoZWFkZXJzQ29uZmlnOiB7XG4gICAgICAgICAgaGVhZGVyQmVoYXZpb3I6IGhlYWRlcnMuYmVoYXZpb3IsXG4gICAgICAgICAgaGVhZGVyczogaGVhZGVycy5oZWFkZXJzLFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVN0cmluZ3NDb25maWc6IHtcbiAgICAgICAgICBxdWVyeVN0cmluZ0JlaGF2aW9yOiBxdWVyeVN0cmluZ3MuYmVoYXZpb3IsXG4gICAgICAgICAgcXVlcnlTdHJpbmdzOiBxdWVyeVN0cmluZ3MucXVlcnlTdHJpbmdzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMub3JpZ2luUmVxdWVzdFBvbGljeUlkID0gcmVzb3VyY2UucmVmO1xuICB9XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIG5vbmUoKSB7IHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yKCdub25lJyk7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBhbGwoKSB7IHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yKCdhbGwnKTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIGFsbG93TGlzdCguLi5jb29raWVzOiBzdHJpbmdbXSkge1xuICAgIGlmIChjb29raWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgY29va2llIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0Q29va2llQmVoYXZpb3IoJ3doaXRlbGlzdCcsIGNvb2tpZXMpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGJlaGF2aW9yOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjb29raWVzPzogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiZWhhdmlvcjogc3RyaW5nLCBjb29raWVzPzogc3RyaW5nW10pIHtcbiAgICB0aGlzLmJlaGF2aW9yID0gYmVoYXZpb3I7XG4gICAgdGhpcy5jb29raWVzID0gY29va2llcztcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIG5vbmUoKSB7IHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdEhlYWRlckJlaGF2aW9yKCdub25lJyk7IH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgYWxsKC4uLmNsb3VkZnJvbnRIZWFkZXJzOiBzdHJpbmdbXSkge1xuICAgIGlmIChjbG91ZGZyb250SGVhZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoIWNsb3VkZnJvbnRIZWFkZXJzLmV2ZXJ5KGhlYWRlciA9PiBoZWFkZXIuc3RhcnRzV2l0aCgnQ2xvdWRGcm9udC0nKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdhZGRpdGlvbmFsIENsb3VkRnJvbnQgaGVhZGVycyBwYXNzZWQgdG8gYE9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvci5hbGwoKWAgbXVzdCBiZWdpbiB3aXRoIFxcJ0Nsb3VkRnJvbnQtXFwnJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IE9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvcignYWxsVmlld2VyQW5kV2hpdGVsaXN0Q2xvdWRGcm9udCcsIGNsb3VkZnJvbnRIZWFkZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IoJ2FsbFZpZXdlcicpO1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgYWxsb3dMaXN0KC4uLmhlYWRlcnM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGhlYWRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBoZWFkZXIgdG8gYWxsb3cgbXVzdCBiZSBwcm92aWRlZCcpO1xuICAgIH1cbiAgICBpZiAoaGVhZGVycy5tYXAoaGVhZGVyID0+IGhlYWRlci50b0xvd2VyQ2FzZSgpKS5zb21lKGhlYWRlciA9PiBbJ2F1dGhvcml6YXRpb24nLCAnYWNjZXB0LWVuY29kaW5nJ10uaW5jbHVkZXMoaGVhZGVyKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigneW91IGNhbm5vdCBwYXNzIGBBdXRob3JpemF0aW9uYCBvciBgQWNjZXB0LUVuY29kaW5nYCBhcyBoZWFkZXIgdmFsdWVzOyB1c2UgYSBDYWNoZVBvbGljeSB0byBmb3J3YXJkIHRoZXNlIGhlYWRlcnMgaW5zdGVhZCcpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IE9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvcignd2hpdGVsaXN0JywgaGVhZGVycyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgYmVoYXZpb3I6IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVycz86IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoYmVoYXZpb3I6IHN0cmluZywgaGVhZGVycz86IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgT3JpZ2luUmVxdWVzdFF1ZXJ5U3RyaW5nQmVoYXZpb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgbm9uZSgpIHsgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvcignbm9uZScpOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgYWxsKCkgeyByZXR1cm4gbmV3IE9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yKCdhbGwnKTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgYWxsb3dMaXN0KC4uLnF1ZXJ5U3RyaW5nczogc3RyaW5nW10pIHtcbiAgICBpZiAocXVlcnlTdHJpbmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgcXVlcnkgc3RyaW5nIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvcignd2hpdGVsaXN0JywgcXVlcnlTdHJpbmdzKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGJlaGF2aW9yOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeVN0cmluZ3M/OiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGJlaGF2aW9yOiBzdHJpbmcsIHF1ZXJ5U3RyaW5ncz86IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMucXVlcnlTdHJpbmdzID0gcXVlcnlTdHJpbmdzO1xuICB9XG59XG4iXX0=
OriginRequestQueryStringBehavior[_d] = { fqn: "@aws-cdk/aws-cloudfront.OriginRequestQueryStringBehavior", version: "1.145.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLXJlcXVlc3QtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JpZ2luLXJlcXVlc3QtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUF1RDtBQUV2RCxpRUFBZ0U7QUFpRGhFOzs7O0dBSUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGVBQVE7SUE2Qi9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBa0MsRUFBRTs7UUFDNUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLHVCQUF1QjtTQUM1QyxDQUFDLENBQUM7O1FBRUgsTUFBTSx1QkFBdUIsU0FBRyxLQUFLLENBQUMsdUJBQXVCLG1DQUFJLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFlBQUssQ0FBQyxZQUFZLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvRixNQUFNLElBQUksS0FBSyxDQUFDLDJGQUEyRixLQUFLLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDO1NBQzlJO1FBRUQsTUFBTSxPQUFPLFNBQUcsS0FBSyxDQUFDLGNBQWMsbUNBQUksMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0UsTUFBTSxPQUFPLFNBQUcsS0FBSyxDQUFDLGNBQWMsbUNBQUksMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0UsTUFBTSxZQUFZLFNBQUcsS0FBSyxDQUFDLG1CQUFtQixtQ0FBSSxnQ0FBZ0MsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxRixNQUFNLFFBQVEsR0FBRyxJQUFJLDZDQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDNUQseUJBQXlCLEVBQUU7Z0JBQ3pCLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLE9BQU8sRUFBRSxL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QUNsQztJQXpCRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO0lBRTdFLHlHQUF5RztJQUNsRyxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO0lBRTNFLHFHQUFxRztJQUM5RixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBc0I7UUFDL0MsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxPQUFPLElBQUksZ0NBQWdDLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ3hFOztBQWhCSCw0RUEyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYW1lcywgUmVzb3VyY2UsIFRva2VuIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbk9yaWdpblJlcXVlc3RQb2xpY3kgfSBmcm9tICcuL2Nsb3VkZnJvbnQuZ2VuZXJhdGVkJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgT3JpZ2luIFJlcXVlc3QgUG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBvcmlnaW4gcmVxdWVzdCBwb2xpY3lcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luUmVxdWVzdFBvbGljeUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBPcmlnaW4gUmVxdWVzdCBQb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMge1xuICAvKipcbiAgICogQSB1bmlxdWUgbmFtZSB0byBpZGVudGlmeSB0aGUgb3JpZ2luIHJlcXVlc3QgcG9saWN5LlxuICAgKiBUaGUgbmFtZSBtdXN0IG9ubHkgaW5jbHVkZSAnLScsICdfJywgb3IgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuXG4gICAqIEBkZWZhdWx0IC0gZ2VuZXJhdGVkIGZyb20gdGhlIGBpZGBcbiAgICovXG4gIHJlYWRvbmx5IG9yaWdpblJlcXVlc3RQb2xpY3lOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1lbnQgdG8gZGVzY3JpYmUgdGhlIG9yaWdpbiByZXF1ZXN0IHBvbGljeS5cbiAgICogQGRlZmF1bHQgLSBubyBjb21tZW50XG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29va2llcyBmcm9tIHZpZXdlciByZXF1ZXN0cyB0byBpbmNsdWRlIGluIG9yaWdpbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHQgT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yLm5vbmUoKVxuICAgKi9cbiAgcmVhZG9ubHkgY29va2llQmVoYXZpb3I/OiBPcmlnaW5SZXF1ZXN0Q29va2llQmVoYXZpb3I7XG5cbiAgLyoqXG4gICAqIFRoZSBIVFRQIGhlYWRlcnMgdG8gaW5jbHVkZSBpbiBvcmlnaW4gcmVxdWVzdHMuIFRoZXNlIGNhbiBpbmNsdWRlIGhlYWRlcnMgZnJvbSB2aWV3ZXIgcmVxdWVzdHMgYW5kIGFkZGl0aW9uYWwgaGVhZGVycyBhZGRlZCBieSBDbG91ZEZyb250LlxuICAgKiBAZGVmYXVsdCBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3Iubm9uZSgpXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJCZWhhdmlvcj86IE9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvcjtcblxuICAvKipcbiAgICogVGhlIFVSTCBxdWVyeSBzdHJpbmdzIGZyb20gdmlld2VyIHJlcXVlc3RzIHRvIGluY2x1ZGUgaW4gb3JpZ2luIHJlcXVlc3RzLlxuICAgKiBAZGVmYXVsdCBPcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvci5ub25lKClcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nQmVoYXZpb3I/OiBPcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvcjtcbn1cblxuLyoqXG4gKiBBIE9yaWdpbiBSZXF1ZXN0IFBvbGljeSBjb25maWd1cmF0aW9uLlxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3lcbiAqL1xuZXhwb3J0IGNsYXNzIE9yaWdpblJlcXVlc3RQb2xpY3kgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElPcmlnaW5SZXF1ZXN0UG9saWN5IHtcblxuICAvKiogVGhpcyBwb2xpY3kgaW5jbHVkZXMgb25seSB0aGUgVXNlci1BZ2VudCBhbmQgUmVmZXJlciBoZWFkZXJzLiBJdCBkb2VzbuKAmXQgaW5jbHVkZSBhbnkgcXVlcnkgc3RyaW5ncyBvciBjb29raWVzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVTRVJfQUdFTlRfUkVGRVJFUl9IRUFERVJTID0gT3JpZ2luUmVxdWVzdFBvbGljeS5mcm9tTWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3koJ2FjYmE0NTk1LWJkMjgtNDliOC1iOWZlLTEzMzE3YzAzOTBmYScpO1xuICAvKiogVGhpcyBwb2xpY3kgaW5jbHVkZXMgdGhlIGhlYWRlciB0aGF0IGVuYWJsZXMgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHNoYXJpbmcgKENPUlMpIHJlcXVlc3RzIHdoZW4gdGhlIG9yaWdpbiBpcyBhIGN1c3RvbSBvcmlnaW4uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09SU19DVVNUT01fT1JJR0lOID0gT3JpZ2luUmVxdWVzdFBvbGljeS5mcm9tTWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3koJzU5NzgxYTViLTM5MDMtNDFmMy1hZmNiLWFmNjI5MjljY2RlMScpO1xuICAvKiogVGhpcyBwb2xpY3kgaW5jbHVkZXMgdGhlIGhlYWRlcnMgdGhhdCBlbmFibGUgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHNoYXJpbmcgKENPUlMpIHJlcXVlc3RzIHdoZW4gdGhlIG9yaWdpbiBpcyBhbiBBbWF6b24gUzMgYnVja2V0LiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPUlNfUzNfT1JJR0lOID0gT3JpZ2luUmVxdWVzdFBvbGljeS5mcm9tTWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3koJzg4YTVlYWY0LTJmZDQtNDcwOS1iMzcwLWI0YzY1MGVhM2ZjZicpO1xuICAvKiogVGhpcyBwb2xpY3kgaW5jbHVkZXMgYWxsIHZhbHVlcyAocXVlcnkgc3RyaW5ncywgaGVhZGVycywgYW5kIGNvb2tpZXMpIGluIHRoZSB2aWV3ZXIgcmVxdWVzdC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBTExfVklFV0VSID0gT3JpZ2luUmVxdWVzdFBvbGljeS5mcm9tTWFuYWdlZE9yaWdpblJlcXVlc3RQb2xpY3koJzIxNmFkZWY2LTVjN2YtNDdlNC1iOTg5LTU0OTJlYWZhMDdkMycpO1xuICAvKiogVGhpcyBwb2xpY3kgaXMgZGVzaWduZWQgZm9yIHVzZSB3aXRoIGFuIG9yaWdpbiB0aGF0IGlzIGFuIEFXUyBFbGVtZW50YWwgTWVkaWFUYWlsb3IgZW5kcG9pbnQuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRUxFTUVOVEFMX01FRElBX1RBSUxPUiA9IE9yaWdpblJlcXVlc3RQb2xpY3kuZnJvbU1hbmFnZWRPcmlnaW5SZXF1ZXN0UG9saWN5KCc3NzUxMzNiYy0xNWYyLTQ5ZjktYWJlYS1hZmIyZTBiZjY3ZDInKTtcblxuICAvKiogSW1wb3J0cyBhIE9yaWdpbiBSZXF1ZXN0IFBvbGljeSBmcm9tIGl0cyBpZC4gKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tT3JpZ2luUmVxdWVzdFBvbGljeUlkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9yaWdpblJlcXVlc3RQb2xpY3lJZDogc3RyaW5nKTogSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAgIHJldHVybiBuZXcgY2xhc3MgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElPcmlnaW5SZXF1ZXN0UG9saWN5IHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBvcmlnaW5SZXF1ZXN0UG9saWN5SWQgPSBvcmlnaW5SZXF1ZXN0UG9saWN5SWQ7XG4gICAgfShzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqIFVzZSBhbiBleGlzdGluZyBtYW5hZ2VkIG9yaWdpbiByZXF1ZXN0IHBvbGljeS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZnJvbU1hbmFnZWRPcmlnaW5SZXF1ZXN0UG9saWN5KG1hbmFnZWRPcmlnaW5SZXF1ZXN0UG9saWN5SWQ6IHN0cmluZyk6IElPcmlnaW5SZXF1ZXN0UG9saWN5IHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGltcGxlbWVudHMgSU9yaWdpblJlcXVlc3RQb2xpY3kge1xuICAgICAgcHVibGljIHJlYWRvbmx5IG9yaWdpblJlcXVlc3RQb2xpY3lJZCA9IG1hbmFnZWRPcmlnaW5SZXF1ZXN0UG9saWN5SWQ7XG4gICAgfSgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG9yaWdpblJlcXVlc3RQb2xpY3lJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBPcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5vcmlnaW5SZXF1ZXN0UG9saWN5TmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG9yaWdpblJlcXVlc3RQb2xpY3lOYW1lID0gcHJvcHMub3JpZ2luUmVxdWVzdFBvbGljeU5hbWUgPz8gTmFtZXMudW5pcXVlSWQodGhpcyk7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQob3JpZ2luUmVxdWVzdFBvbGljeU5hbWUpICYmICFvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZS5tYXRjaCgvXltcXHctXSskL2kpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZScgY2FuIG9ubHkgaW5jbHVkZSAnLScsICdfJywgYW5kIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBnb3Q6ICcke3Byb3BzLm9yaWdpblJlcXVlc3RQb2xpY3lOYW1lfSdgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb29raWVzID0gcHJvcHMuY29va2llQmVoYXZpb3IgPz8gT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yLm5vbmUoKTtcbiAgICBjb25zdCBoZWFkZXJzID0gcHJvcHMuaGVhZGVyQmVoYXZpb3IgPz8gT3JpZ2luUmVxdWVzdEhlYWRlckJlaGF2aW9yLm5vbmUoKTtcbiAgICBjb25zdCBxdWVyeVN0cmluZ3MgPSBwcm9wcy5xdWVyeVN0cmluZ0JlaGF2aW9yID8/IE9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yLm5vbmUoKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbk9yaWdpblJlcXVlc3RQb2xpY3kodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeUNvbmZpZzoge1xuICAgICAgICBuYW1lOiBvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZSxcbiAgICAgICAgY29tbWVudDogcHJvcHMuY29tbWVudCxcbiAgICAgICAgY29va2llc0NvbmZpZzoge1xuICAgICAgICAgIGNvb2tpZUJlaGF2aW9yOiBjb29raWVzLmJlaGF2aW9yLFxuICAgICAgICAgIGNvb2tpZXM6IGNvb2tpZXMuY29va2llcyxcbiAgICAgICAgfSxcbiAgICAgICAgaGVhZGVyc0NvbmZpZzoge1xuICAgICAgICAgIGhlYWRlckJlaGF2aW9yOiBoZWFkZXJzLmJlaGF2aW9yLFxuICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMuaGVhZGVycyxcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlTdHJpbmdzQ29uZmlnOiB7XG4gICAgICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjogcXVlcnlTdHJpbmdzLmJlaGF2aW9yLFxuICAgICAgICAgIHF1ZXJ5U3RyaW5nczogcXVlcnlTdHJpbmdzLnF1ZXJ5U3RyaW5ncyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLm9yaWdpblJlcXVlc3RQb2xpY3lJZCA9IHJlc291cmNlLnJlZjtcbiAgfVxufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhbnkgY29va2llcyBpbiB2aWV3ZXIgcmVxdWVzdHMgKGFuZCBpZiBzbywgd2hpY2ggY29va2llcylcbiAqIGFyZSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9yaWdpblJlcXVlc3RDb29raWVCZWhhdmlvciB7XG4gIC8qKlxuICAgKiBDb29raWVzIGluIHZpZXdlciByZXF1ZXN0cyBhcmUgbm90IGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKiBBbnkgY29va2llcyB0aGF0IGFyZSBsaXN0ZWQgaW4gYSBDYWNoZVBvbGljeSBhcmUgc3RpbGwgaW5jbHVkZWQgaW4gb3JpZ2luIHJlcXVlc3RzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub25lKCkgeyByZXR1cm4gbmV3IE9yaWdpblJlcXVlc3RDb29raWVCZWhhdmlvcignbm9uZScpOyB9XG5cbiAgLyoqIEFsbCBjb29raWVzIGluIHZpZXdlciByZXF1ZXN0cyBhcmUgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uICovXG4gIHB1YmxpYyBzdGF0aWMgYWxsKCkgeyByZXR1cm4gbmV3IE9yaWdpblJlcXVlc3RDb29raWVCZWhhdmlvcignYWxsJyk7IH1cblxuICAvKiogT25seSB0aGUgcHJvdmlkZWQgYGNvb2tpZXNgIGFyZSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi4gKi9cbiAgcHVibGljIHN0YXRpYyBhbGxvd0xpc3QoLi4uY29va2llczogc3RyaW5nW10pIHtcbiAgICBpZiAoY29va2llcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIGNvb2tpZSB0byBhbGxvdyBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yKCd3aGl0ZWxpc3QnLCBjb29raWVzKTtcbiAgfVxuXG4gIC8qKiBUaGUgYmVoYXZpb3Igb2YgY29va2llczogYWxsb3cgYWxsLCBub25lIG9yIGFuIGFsbG93IGxpc3QuICovXG4gIHB1YmxpYyByZWFkb25seSBiZWhhdmlvcjogc3RyaW5nO1xuICAvKiogVGhlIGNvb2tpZXMgdG8gYWxsb3csIGlmIHRoZSBiZWhhdmlvciBpcyBhbiBhbGxvdyBsaXN0LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29va2llcz86IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoYmVoYXZpb3I6IHN0cmluZywgY29va2llcz86IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMuY29va2llcyA9IGNvb2tpZXM7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW55IEhUVFAgaGVhZGVycyAoYW5kIGlmIHNvLCB3aGljaCBoZWFkZXJzKSBhcmUgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3Ige1xuICAvKipcbiAgICogSFRUUCBoZWFkZXJzIGFyZSBub3QgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gICAqIEFueSBoZWFkZXJzIHRoYXQgYXJlIGxpc3RlZCBpbiBhIENhY2hlUG9saWN5IGFyZSBzdGlsbCBpbmNsdWRlZCBpbiBvcmlnaW4gcmVxdWVzdHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5vbmUoKSB7IHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdEhlYWRlckJlaGF2aW9yKCdub25lJyk7IH1cblxuICAvKipcbiAgICogQWxsIEhUVFAgaGVhZGVycyBpbiB2aWV3ZXIgcmVxdWVzdHMgYXJlIGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKiBBZGRpdGlvbmFsbHksIGFueSBhZGRpdGlvbmFsIENsb3VkRnJvbnQgaGVhZGVycyBwcm92aWRlZCBhcmUgaW5jbHVkZWQ7IHRoZSBhZGRpdGlvbmFsIGhlYWRlcnMgYXJlIGFkZGVkIGJ5IENsb3VkRnJvbnQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL3VzaW5nLWNsb3VkZnJvbnQtaGVhZGVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFsbCguLi5jbG91ZGZyb250SGVhZGVyczogc3RyaW5nW10pIHtcbiAgICBpZiAoY2xvdWRmcm9udEhlYWRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKCFjbG91ZGZyb250SGVhZGVycy5ldmVyeShoZWFkZXIgPT4gaGVhZGVyLnN0YXJ0c1dpdGgoJ0Nsb3VkRnJvbnQtJykpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYWRkaXRpb25hbCBDbG91ZEZyb250IGhlYWRlcnMgcGFzc2VkIHRvIGBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IuYWxsKClgIG11c3QgYmVnaW4gd2l0aCBcXCdDbG91ZEZyb250LVxcJycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IoJ2FsbFZpZXdlckFuZFdoaXRlbGlzdENsb3VkRnJvbnQnLCBjbG91ZGZyb250SGVhZGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdEhlYWRlckJlaGF2aW9yKCdhbGxWaWV3ZXInKTtcbiAgICB9XG4gIH1cblxuICAvKiogTGlzdGVkIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLiAqL1xuICBwdWJsaWMgc3RhdGljIGFsbG93TGlzdCguLi5oZWFkZXJzOiBzdHJpbmdbXSkge1xuICAgIGlmIChoZWFkZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgaGVhZGVyIHRvIGFsbG93IG11c3QgYmUgcHJvdmlkZWQnKTtcbiAgICB9XG4gICAgaWYgKGhlYWRlcnMubWFwKGhlYWRlciA9PiBoZWFkZXIudG9Mb3dlckNhc2UoKSkuc29tZShoZWFkZXIgPT4gWydhdXRob3JpemF0aW9uJywgJ2FjY2VwdC1lbmNvZGluZyddLmluY2x1ZGVzKGhlYWRlcikpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3lvdSBjYW5ub3QgcGFzcyBgQXV0aG9yaXphdGlvbmAgb3IgYEFjY2VwdC1FbmNvZGluZ2AgYXMgaGVhZGVyIHZhbHVlczsgdXNlIGEgQ2FjaGVQb2xpY3kgdG8gZm9yd2FyZCB0aGVzZSBoZWFkZXJzIGluc3RlYWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IoJ3doaXRlbGlzdCcsIGhlYWRlcnMpO1xuICB9XG5cbiAgLyoqIFRoZSBiZWhhdmlvciBvZiBoZWFkZXJzOiBhbGxvdyBhbGwsIG5vbmUgb3IgYW4gYWxsb3cgbGlzdC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGJlaGF2aW9yOiBzdHJpbmc7XG4gIC8qKiBUaGUgaGVhZGVycyBmb3IgdGhlIGFsbG93IGxpc3Qgb3IgdGhlIGluY2x1ZGVkIENsb3VkRnJvbnQgaGVhZGVycywgaWYgYXBwbGljYWJsZS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGJlaGF2aW9yOiBzdHJpbmcsIGhlYWRlcnM/OiBzdHJpbmdbXSkge1xuICAgIHRoaXMuYmVoYXZpb3IgPSBiZWhhdmlvcjtcbiAgICB0aGlzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICB9XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGFueSBVUkwgcXVlcnkgc3RyaW5ncyBpbiB2aWV3ZXIgcmVxdWVzdHMgKGFuZCBpZiBzbywgd2hpY2ggcXVlcnkgc3RyaW5ncylcbiAqIGFyZSBpbmNsdWRlZCBpbiByZXF1ZXN0cyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdGhlIG9yaWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yIHtcbiAgLyoqXG4gICAqIFF1ZXJ5IHN0cmluZ3MgaW4gdmlld2VyIHJlcXVlc3RzIGFyZSBub3QgaW5jbHVkZWQgaW4gcmVxdWVzdHMgdGhhdCBDbG91ZEZyb250IHNlbmRzIHRvIHRoZSBvcmlnaW4uXG4gICAqIEFueSBxdWVyeSBzdHJpbmdzIHRoYXQgYXJlIGxpc3RlZCBpbiBhIENhY2hlUG9saWN5IGFyZSBzdGlsbCBpbmNsdWRlZCBpbiBvcmlnaW4gcmVxdWVzdHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG5vbmUoKSB7IHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdFF1ZXJ5U3RyaW5nQmVoYXZpb3IoJ25vbmUnKTsgfVxuXG4gIC8qKiBBbGwgcXVlcnkgc3RyaW5ncyBpbiB2aWV3ZXIgcmVxdWVzdHMgYXJlIGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLiAqL1xuICBwdWJsaWMgc3RhdGljIGFsbCgpIHsgcmV0dXJuIG5ldyBPcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvcignYWxsJyk7IH1cblxuICAvKiogT25seSB0aGUgcHJvdmlkZWQgYHF1ZXJ5U3RyaW5nc2AgYXJlIGluY2x1ZGVkIGluIHJlcXVlc3RzIHRoYXQgQ2xvdWRGcm9udCBzZW5kcyB0byB0aGUgb3JpZ2luLiAqL1xuICBwdWJsaWMgc3RhdGljIGFsbG93TGlzdCguLi5xdWVyeVN0cmluZ3M6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHF1ZXJ5U3RyaW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXQgbGVhc3Qgb25lIHF1ZXJ5IHN0cmluZyB0byBhbGxvdyBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgT3JpZ2luUmVxdWVzdFF1ZXJ5U3RyaW5nQmVoYXZpb3IoJ3doaXRlbGlzdCcsIHF1ZXJ5U3RyaW5ncyk7XG4gIH1cblxuICAvKiogVGhlIGJlaGF2aW9yIG9mIHF1ZXJ5IHN0cmluZ3MgLS0gYWxsb3cgYWxsLCBub25lLCBvciBvbmx5IGFuIGFsbG93IGxpc3QuICovXG4gIHB1YmxpYyByZWFkb25seSBiZWhhdmlvcjogc3RyaW5nO1xuICAvKiogVGhlIHF1ZXJ5IHN0cmluZ3MgdG8gYWxsb3csIGlmIHRoZSBiZWhhdmlvciBpcyBhbiBhbGxvdyBsaXN0LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVlcnlTdHJpbmdzPzogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihiZWhhdmlvcjogc3RyaW5nLCBxdWVyeVN0cmluZ3M/OiBzdHJpbmdbXSkge1xuICAgIHRoaXMuYmVoYXZpb3IgPSBiZWhhdmlvcjtcbiAgICB0aGlzLnF1ZXJ5U3RyaW5ncyA9IHF1ZXJ5U3RyaW5ncztcbiAgfVxufVxuIl19

@@ -5,12 +5,7 @@ import { Duration } from '@aws-cdk/core';

/**
* The failover configuration used for Origin Groups, returned in {@link OriginBindConfig.failoverConfig}.
*
* @stability stable
* The failover configuration used for Origin Groups,
* returned in {@link OriginBindConfig.failoverConfig}.
*/
export interface OriginFailoverConfig {
/**
* The origin to use as the fallback origin.
*
* @stability stable
*/
/** The origin to use as the fallback origin. */
readonly failoverOrigin: IOrigin;

@@ -21,11 +16,6 @@ /**

* @default - 500, 502, 503 and 504
* @stability stable
*/
readonly statusCodes?: number[];
}
/**
* The struct returned from {@link IOrigin.bind}.
*
* @stability stable
*/
/** The struct returned from {@link IOrigin.bind}. */
export interface OriginBindConfig {

@@ -36,3 +26,2 @@ /**

* @default - nothing is returned
* @stability stable
*/

@@ -44,3 +33,2 @@ readonly originProperty?: CfnDistribution.OriginProperty;

* @default - nothing is returned
* @stability stable
*/

@@ -51,12 +39,8 @@ readonly failoverConfig?: OriginFailoverConfig;

* Represents the concept of a CloudFront Origin.
*
* You provide one or more origins when creating a Distribution.
*
* @stability stable
*/
export interface IOrigin {
/**
* The method called when a given Origin is added (for the first time) to a Distribution.
*
* @stability stable
* The method called when a given Origin is added
* (for the first time) to a Distribution.
*/

@@ -67,4 +51,2 @@ bind(scope: Construct, options: OriginBindOptions): OriginBindConfig;

* Properties to define an Origin.
*
* @stability stable
*/

@@ -74,7 +56,5 @@ export interface OriginProps {

* An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.
*
* Must begin, but not end, with '/' (e.g., '/production/images').
*
* @default '/'
* @stability stable
*/

@@ -84,16 +64,11 @@ readonly originPath?: string;

* The number of seconds that CloudFront waits when trying to establish a connection to the origin.
*
* Valid values are 1-10 seconds, inclusive.
*
* @default Duration.seconds(10)
* @stability stable
*/
readonly connectionTimeout?: Duration;
/**
* The number of times that CloudFront attempts to connect to the origin;
* The number of times that CloudFront attempts to connect to the origin; valid values are 1, 2, or 3 attempts.
*
* valid values are 1, 2, or 3 attempts.
*
* @default 3
* @stability stable
*/

@@ -105,11 +80,10 @@ readonly connectionAttempts?: number;

* @default {}
* @stability stable
*/
readonly customHeaders?: Record<string, string>;
/**
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance
*
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html
*
* @default - origin shield not enabled
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html
* @stability stable
*/

@@ -120,10 +94,7 @@ readonly originShieldRegion?: string;

* Options passed to Origin.bind().
*
* @stability stable
*/
export interface OriginBindOptions {
/**
* The identifier of this Origin, as assigned by the Distribution this Origin has been used added to.
*
* @stability stable
* The identifier of this Origin,
* as assigned by the Distribution this Origin has been used added to.
*/

@@ -133,5 +104,4 @@ readonly originId: string;

/**
* Represents a distribution origin, that describes the Amazon S3 bucket, HTTP server (for example, a web server), Amazon MediaStore, or other server from which CloudFront gets your files.
*
* @stability stable
* Represents a distribution origin, that describes the Amazon S3 bucket, HTTP server (for example, a web server),
* Amazon MediaStore, or other server from which CloudFront gets your files.
*/

@@ -145,21 +115,8 @@ export declare abstract class OriginBase implements IOrigin {

private readonly originShieldRegion?;
/**
* @stability stable
*/
protected constructor(domainName: string, props?: OriginProps);
/**
* Binds the origin to the associated Distribution.
*
* Can be used to grant permissions, create dependent resources, etc.
*
* @stability stable
* Binds the origin to the associated Distribution. Can be used to grant permissions, create dependent resources, etc.
*/
bind(_scope: Construct, options: OriginBindOptions): OriginBindConfig;
/**
* @stability stable
*/
protected renderS3OriginConfig(): CfnDistribution.S3OriginConfigProperty | undefined;
/**
* @stability stable
*/
protected renderCustomOriginConfig(): CfnDistribution.CustomOriginConfigProperty | undefined;

@@ -166,0 +123,0 @@ private renderCustomHeaders;

@@ -9,10 +9,6 @@ "use strict";

/**
* Represents a distribution origin, that describes the Amazon S3 bucket, HTTP server (for example, a web server), Amazon MediaStore, or other server from which CloudFront gets your files.
*
* @stability stable
* Represents a distribution origin, that describes the Amazon S3 bucket, HTTP server (for example, a web server),
* Amazon MediaStore, or other server from which CloudFront gets your files.
*/
class OriginBase {
/**
* @stability stable
*/
constructor(domainName, props = {}) {

@@ -32,7 +28,3 @@ var _b;

/**
* Binds the origin to the associated Distribution.
*
* Can be used to grant permissions, create dependent resources, etc.
*
* @stability stable
* Binds the origin to the associated Distribution. Can be used to grant permissions, create dependent resources, etc.
*/

@@ -62,5 +54,2 @@ bind(_scope, options) {

// Overridden by sub-classes to provide S3 origin config.
/**
* @stability stable
*/
renderS3OriginConfig() {

@@ -70,5 +59,2 @@ return undefined;

// Overridden by sub-classes to provide custom origin config.
/**
* @stability stable
*/
renderCustomOriginConfig() {

@@ -116,3 +102,3 @@ return undefined;

_a = JSII_RTTI_SYMBOL_1;
OriginBase[_a] = { fqn: "@aws-cdk/aws-cloudfront.OriginBase", version: "1.144.0" };
OriginBase[_a] = { fqn: "@aws-cdk/aws-cloudfront.OriginBase", version: "1.145.0" };
/**

@@ -160,2 +146,2 @@ * Throws an error if a value is defined and not an integer or not in a range.

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JpZ2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUFnRDs7Ozs7O0FBd0RoRCxNQUFzQixVQUFVOzs7O0lBUTlCLFlBQXNCLFVBQWtCLEVBQUUsUUFBcUIsRUFBRTs7O1FBQy9ELDZCQUE2QixDQUFDLG1CQUFtQixFQUFFLENBQUMsRUFBRSxFQUFFLFFBQUUsS0FBSyxDQUFDLGlCQUFpQiwwQ0FBRSxTQUFTLEdBQUcsQ0FBQztRQUNoRyw2QkFBNkIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDakQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztLQUNwRDs7Ozs7Ozs7SUFHTSxJQUFJLENBQUMsTUFBaUIsRUFBRSxPQUEwQjs7O1FBQ3ZELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ25ELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFM0QsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFDLE1BQU0sSUFB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QUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hJLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSw0QkFBNEIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsd0VBQXdFLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDcEk7SUFDRCxJQUFJLDZCQUE2QixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsNkJBQTZCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM1STtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgVG9rZW4gfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IENmbkRpc3RyaWJ1dGlvbiB9IGZyb20gJy4vY2xvdWRmcm9udC5nZW5lcmF0ZWQnO1xuXG4vLyBrZWVwIHRoaXMgaW1wb3J0IHNlcGFyYXRlIGZyb20gb3RoZXIgaW1wb3J0cyB0byByZWR1Y2UgY2hhbmNlIGZvciBtZXJnZSBjb25mbGljdHMgd2l0aCB2Mi1tYWluXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLWltcG9ydHMsIGltcG9ydC9vcmRlclxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBPcmlnaW5GYWlsb3ZlckNvbmZpZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmYWlsb3Zlck9yaWdpbjogSU9yaWdpbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3RhdHVzQ29kZXM/OiBudW1iZXJbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQmluZENvbmZpZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5Qcm9wZXJ0eT86IENmbkRpc3RyaWJ1dGlvbi5PcmlnaW5Qcm9wZXJ0eTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZmFpbG92ZXJDb25maWc/OiBPcmlnaW5GYWlsb3ZlckNvbmZpZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgSU9yaWdpbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBvcHRpb25zOiBPcmlnaW5CaW5kT3B0aW9ucyk6IE9yaWdpbkJpbmRDb25maWc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBPcmlnaW5Qcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb3JpZ2luUGF0aD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29ubmVjdGlvblRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29ubmVjdGlvbkF0dGVtcHRzPzogbnVtYmVyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjdXN0b21IZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5TaGllbGRSZWdpb24/OiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQmluZE9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG9yaWdpbklkOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcmlnaW5CYXNlIGltcGxlbWVudHMgSU9yaWdpbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG9yaWdpblBhdGg/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdGlvblRpbWVvdXQ/OiBEdXJhdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uQXR0ZW1wdHM/OiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tSGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHByaXZhdGUgcmVhZG9ubHkgb3JpZ2luU2hpZWxkUmVnaW9uPzogc3RyaW5nXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGRvbWFpbk5hbWU6IHN0cmluZywgcHJvcHM6IE9yaWdpblByb3BzID0ge30pIHtcbiAgICB2YWxpZGF0ZUludEluUmFuZ2VPclVuZGVmaW5lZCgnY29ubmVjdGlvblRpbWVvdXQnLCAxLCAxMCwgcHJvcHMuY29ubmVjdGlvblRpbWVvdXQ/LnRvU2Vjb25kcygpKTtcbiAgICB2YWxpZGF0ZUludEluUmFuZ2VPclVuZGVmaW5lZCgnY29ubmVjdGlvbkF0dGVtcHRzJywgMSwgMywgcHJvcHMuY29ubmVjdGlvbkF0dGVtcHRzLCBmYWxzZSk7XG4gICAgdmFsaWRhdGVDdXN0b21IZWFkZXJzKHByb3BzLmN1c3RvbUhlYWRlcnMpO1xuXG4gICAgdGhpcy5kb21haW5OYW1lID0gZG9tYWluTmFtZTtcbiAgICB0aGlzLm9yaWdpblBhdGggPSB0aGlzLnZhbGlkYXRlT3JpZ2luUGF0aChwcm9wcy5vcmlnaW5QYXRoKTtcbiAgICB0aGlzLmNvbm5lY3Rpb25UaW1lb3V0ID0gcHJvcHMuY29ubmVjdGlvblRpbWVvdXQ7XG4gICAgdGhpcy5jb25uZWN0aW9uQXR0ZW1wdHMgPSBwcm9wcy5jb25uZWN0aW9uQXR0ZW1wdHM7XG4gICAgdGhpcy5jdXN0b21IZWFkZXJzID0gcHJvcHMuY3VzdG9tSGVhZGVycztcbiAgICB0aGlzLm9yaWdpblNoaWVsZFJlZ2lvbiA9IHByb3BzLm9yaWdpblNoaWVsZFJlZ2lvbjtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IE9yaWdpbkJpbmRPcHRpb25zKTogT3JpZ2luQmluZENvbmZpZyB7XG4gICAgY29uc3QgczNPcmlnaW5Db25maWcgPSB0aGlzLnJlbmRlclMzT3JpZ2luQ29uZmlnKCk7XG4gICAgY29uc3QgY3VzdG9tT3JpZ2luQ29uZmlnID0gdGhpcy5yZW5kZXJDdXN0b21PcmlnaW5Db25maWcoKTtcblxuICAgIGlmICghczNPcmlnaW5Db25maWcgJiYgIWN1c3RvbU9yaWdpbkNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdWJjbGFzcyBtdXN0IG92ZXJyaWRlIGFuZCBwcm92aWRlIGVpdGhlciBzM09yaWdpbkNvbmZpZyBvciBjdXN0b21PcmlnaW5Db25maWcnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JpZ2luUHJvcGVydHk6IHtcbiAgICAgICAgZG9tYWluTmFtZTogdGhpcy5kb21haW5OYW1lLFxuICAgICAgICBpZDogb3B0aW9ucy5vcmlnaW5JZCxcbiAgICAgICAgb3JpZ2luUGF0aDogdGhpcy5vcmlnaW5QYXRoLFxuICAgICAgICBjb25uZWN0aW9uQXR0ZW1wdHM6IHRoaXMuY29ubmVjdGlvbkF0dGVtcHRzLFxuICAgICAgICBjb25uZWN0aW9uVGltZW91dDogdGhpcy5jb25uZWN0aW9uVGltZW91dD8udG9TZWNvbmRzKCksXG4gICAgICAgIG9yaWdpbkN1c3RvbUhlYWRlcnM6IHRoaXMucmVuZGVyQ3VzdG9tSGVhZGVycygpLFxuICAgICAgICBzM09yaWdpbkNvbmZpZyxcbiAgICAgICAgY3VzdG9tT3JpZ2luQ29uZmlnLFxuICAgICAgICBvcmlnaW5TaGllbGQ6IHRoaXMucmVuZGVyT3JpZ2luU2hpZWxkKHRoaXMub3JpZ2luU2hpZWxkUmVnaW9uKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vIE92ZXJyaWRkZW4gYnkgc3ViLWNsYXNzZXMgdG8gcHJvdmlkZSBTMyBvcmlnaW4gY29uZmlnLlxuICBwcm90ZWN0ZWQgcmVuZGVyUzNPcmlnaW5Db25maWcoKTogQ2ZuRGlzdHJpYnV0aW9uLlMzT3JpZ2luQ29uZmlnUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBPdmVycmlkZGVuIGJ5IHN1Yi1jbGFzc2VzIHRvIHByb3ZpZGUgY3VzdG9tIG9yaWdpbiBjb25maWcuXG4gIHByb3RlY3RlZCByZW5kZXJDdXN0b21PcmlnaW5Db25maWcoKTogQ2ZuRGlzdHJpYnV0aW9uLkN1c3RvbU9yaWdpbkNvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDdXN0b21IZWFkZXJzKCk6IENmbkRpc3RyaWJ1dGlvbi5PcmlnaW5DdXN0b21IZWFkZXJQcm9wZXJ0eVtdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuY3VzdG9tSGVhZGVycyB8fCBPYmplY3QuZW50cmllcyh0aGlzLmN1c3RvbUhlYWRlcnMpLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tSGVhZGVycykubWFwKChbaGVhZGVyTmFtZSwgaGVhZGVyVmFsdWVdKSA9PiB7XG4gICAgICByZXR1cm4geyBoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZSB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBwYXRoIGlzIGRlZmluZWQsIGl0IG11c3Qgc3RhcnQgd2l0aCBhICcvJyBhbmQgbm90IGVuZCB3aXRoIGEgJy8nLlxuICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBpbiB0aGUgb3JpZ2luUGF0aCwgYW5kIHJldHVybnMgaXQgYmFjayAoaWYgdW5kZWZpbmVkKSBvciBhZGRzL3JlbW92ZXMgdGhlICcvJyBhcyBhcHByb3ByaWF0ZS5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVPcmlnaW5QYXRoKG9yaWdpblBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQob3JpZ2luUGF0aCkpIHsgcmV0dXJuIG9yaWdpblBhdGg7IH1cbiAgICBpZiAob3JpZ2luUGF0aCA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICBsZXQgcGF0aCA9IG9yaWdpblBhdGg7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkgeyBwYXRoID0gJy8nICsgcGF0aDsgfVxuICAgIGlmIChwYXRoLmVuZHNXaXRoKCcvJykpIHsgcGF0aCA9IHBhdGguc3Vic3RyKDAsIHBhdGgubGVuZ3RoIC0gMSk7IH1cbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBvcmlnaW4gc2hpZWxkIHJlZ2lvbiBhbmQgY29udmVydHMgdG8gQ2ZuRGlzdHJpYnV0aW9uLk9yaWdpblNoaWVsZFByb3BlcnR5XG4gICAqL1xuICBwcml2YXRlIHJlbmRlck9yaWdpblNoaWVsZChvcmlnaW5TaGllbGRSZWdpb24/OiBzdHJpbmcpOiBDZm5EaXN0cmlidXRpb24uT3JpZ2luU2hpZWxkUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBvcmlnaW5TaGllbGRSZWdpb25cbiAgICAgID8geyBlbmFibGVkOiB0cnVlLCBvcmlnaW5TaGllbGRSZWdpb24gfVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgYSB2YWx1ZSBpcyBkZWZpbmVkIGFuZCBub3QgYW4gaW50ZWdlciBvciBub3QgaW4gYSByYW5nZS5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVJbnRJblJhbmdlT3JVbmRlZmluZWQobmFtZTogc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIsIHZhbHVlPzogbnVtYmVyLCBpc0R1cmF0aW9uOiBib29sZWFuID0gdHJ1ZSkge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyByZXR1cm47IH1cbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSB8fCB2YWx1ZSA8IG1pbiB8fCB2YWx1ZSA+IG1heCkge1xuICAgIGNvbnN0IHNlY29uZHMgPSBpc0R1cmF0aW9uID8gJyBzZWNvbmRzJyA6ICcnO1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfTogTXVzdCBiZSBhbiBpbnQgYmV0d2VlbiAke21pbn0gYW5kICR7bWF4fSR7c2Vjb25kc30gKGluY2x1c2l2ZSk7IHJlY2VpdmVkICR7dmFsdWV9LmApO1xuICB9XG59XG5cbi8qKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIGN1c3RvbSBoZWFkZXIgYXNzaWdubWVudCBpcyBwcm9oaWJpdGVkIGJ5IENsb3VkRnJvbnQuXG4gKiBAbGluazogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL2FkZC1vcmlnaW4tY3VzdG9tLWhlYWRlcnMuaHRtbCNhZGQtb3JpZ2luLWN1c3RvbS1oZWFkZXJzLWRlbnlsaXN0XG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlQ3VzdG9tSGVhZGVycyhjdXN0b21IZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICBpZiAoIWN1c3RvbUhlYWRlcnMgfHwgT2JqZWN0LmVudHJpZXMoY3VzdG9tSGVhZGVycykubGVuZ3RoID09PSAwKSB7IHJldHVybjsgfVxuICBjb25zdCBjdXN0b21IZWFkZXJLZXlzID0gT2JqZWN0LmtleXMoY3VzdG9tSGVhZGVycyk7XG4gIGNvbnN0IHByb2hpYml0ZWRIZWFkZXJLZXlzID0gW1xuICAgICdDYWNoZS1Db250cm9sJywgJ0Nvbm5lY3Rpb24nLCAnQ29udGVudC1MZW5ndGgnLCAnQ29va2llJywgJ0hvc3QnLCAnSWYtTWF0Y2gnLCAnSWYtTW9kaWZpZWQtU2luY2UnLCAnSWYtTm9uZS1NYXRjaCcsICdJZi1SYW5nZScsICdJZi1Vbm1vZGlmaWVkLVNpbmNlJyxcbiAgICAnTWF4LUZvcndhcmRzJywgJ1ByYWdtYScsICdQcm94eS1BdXRob3JpemF0aW9uJywgJ1Byb3h5LUNvbm5lY3Rpb24nLCAnUmFuZ2UnLCAnUmVxdWVzdC1SYW5nZScsICdURScsICdUcmFpbGVyJywgJ1RyYW5zZmVyLUVuY29kaW5nJywgJ1VwZ3JhZGUnLCAnVmlhJyxcbiAgICAnWC1SZWFsLUlwJyxcbiAgXTtcbiAgY29uc3QgcHJvaGliaXRlZEhlYWRlcktleVByZWZpeGVzID0gW1xuICAgICdYLUFtei0nLCAnWC1FZGdlLScsXG4gIF07XG5cbiAgY29uc3QgcHJvaGliaXRlZEhlYWRlcnNLZXlzTWF0Y2hlcyA9IGN1c3RvbUhlYWRlcktleXMuZmlsdGVyKGN1c3RvbUtleSA9PiB7XG4gICAgcmV0dXJuIHByb2hpYml0ZWRIZWFkZXJLZXlzLm1hcCgocHJvaGliaXRlZEtleSkgPT4gcHJvaGliaXRlZEtleS50b0xvd2VyQ2FzZSgpKS5pbmNsdWRlcyhjdXN0b21LZXkudG9Mb3dlckNhc2UoKSk7XG4gIH0pO1xuICBjb25zdCBwcm9oaWJpdGVkSGVhZGVyUHJlZml4TWF0Y2hlcyA9IGN1c3RvbUhlYWRlcktleXMuZmlsdGVyKGN1c3RvbUtleSA9PiB7XG4gICAgcmV0dXJuIHByb2hpYml0ZWRIZWFkZXJLZXlQcmVmaXhlcy5zb21lKHByb2hpYml0ZWRLZXlQcmVmaXggPT4gY3VzdG9tS2V5LnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwcm9oaWJpdGVkS2V5UHJlZml4LnRvTG93ZXJDYXNlKCkpKTtcbiAgfSk7XG5cbiAgaWYgKHByb2hpYml0ZWRIZWFkZXJzS2V5c01hdGNoZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZm9sbG93aW5nIGhlYWRlcnMgY2Fubm90IGJlIGNvbmZpZ3VyZWQgYXMgY3VzdG9tIG9yaWdpbiBoZWFkZXJzOiAke3Byb2hpYml0ZWRIZWFkZXJzS2V5c01hdGNoZXMuam9pbignLCAnKX1gKTtcbiAgfVxuICBpZiAocHJvaGliaXRlZEhlYWRlclByZWZpeE1hdGNoZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZm9sbG93aW5nIGhlYWRlcnMgY2Fubm90IGJlIHVzZWQgYXMgcHJlZml4ZXMgZm9yIGN1c3RvbSBvcmlnaW4gaGVhZGVyczogJHtwcm9oaWJpdGVkSGVhZGVyUHJlZml4TWF0Y2hlcy5qb2luKCcsICcpfWApO1xuICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JpZ2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdDQUFnRDtBQTJHaEQ7OztHQUdHO0FBQ0gsTUFBc0IsVUFBVTtJQVE5QixZQUFzQixVQUFrQixFQUFFLFFBQXFCLEVBQUU7OztRQUMvRCw2QkFBNkIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxRQUFFLEtBQUssQ0FBQyxpQkFBaUIsMENBQUUsU0FBUyxHQUFHLENBQUM7UUFDaEcsNkJBQTZCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0YscUJBQXFCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUM7S0FDcEQ7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxNQUFpQixFQUFFLE9BQTBCOzs7UUFDdkQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDbkQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO1NBQ25HO1FBRUQsT0FBTztZQUNMLGNBQWMsRUFBRTtnQkFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDcEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO2dCQUMzQyxpQkFBaUIsUUFBRSxJQUFJLENBQUMsaUJBQWlCLDBDQUFFLFNBQVMsRUFBRTtnQkFDdEQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMvQyxjQUFjO2dCQUNkLGtCQUFrQjtnQkFDbEIsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7YUFDL0Q7U0FDRixDQUFDO0tBQ0g7SUFFRCx5REFBeUQ7SUFDL0Msb0JBQW9CO1FBQzVCLE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsNkRBQTZEO0lBQ25ELHdCQUF3QjtRQUNoQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7U0FBRTtRQUNqRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCLENBQUMsVUFBbUI7UUFDNUMsSUFBSSxZQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQUUsT0FBTyxVQUFVLENBQUM7U0FBRTtRQUMxRCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFBRSxPQUFPLFNBQVMsQ0FBQztTQUFFO1FBQ25ELElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUFFLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQUU7UUFDakQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FBRTtRQUNuRSxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0IsQ0FBQyxrQkFBMkI7UUFDcEQsT0FBTyxrQkFBa0I7WUFDdkIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN2QyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ2Y7O0FBcEZILGdDQXFGQzs7O0FBRUQ7O0dBRUc7QUFDSCxTQUFTLDZCQUE2QixDQUFDLElBQVksRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLEtBQWMsRUFBRSxhQUFzQixJQUFJO0lBQ3ZILElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUFFLE9BQU87S0FBRTtJQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDMUQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSw0QkFBNEIsR0FBRyxRQUFRLEdBQUcsR0FBRyxPQUFPLDBCQUEwQixLQUFLLEdBQUcsQ0FBQyxDQUFDO0tBQ2hIO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMscUJBQXFCLENBQUMsYUFBc0M7SUFDbkUsSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFBRSxPQUFPO0tBQUU7SUFDN0UsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sb0JBQW9CLEdBQUc7UUFDM0IsZUFBZSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLHFCQUFxQjtRQUN0SixjQUFjLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsS0FBSztRQUNySixXQUFXO0tBQ1osQ0FBQztJQUNGLE1BQU0sMkJBQTJCLEdBQUc7UUFDbEMsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQztJQUVGLE1BQU0sNEJBQTRCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZFLE9BQU8sb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDcEgsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLDZCQUE2QixHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN4RSxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEksQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLDRCQUE0QixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNwSTtJQUNELElBQUksNkJBQTZCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzVJO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ2ZuRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi9jbG91ZGZyb250LmdlbmVyYXRlZCc7XG5cbi8vIGtlZXAgdGhpcyBpbXBvcnQgc2VwYXJhdGUgZnJvbSBvdGhlciBpbXBvcnRzIHRvIHJlZHVjZSBjaGFuY2UgZm9yIG1lcmdlIGNvbmZsaWN0cyB3aXRoIHYyLW1haW5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtaW1wb3J0cywgaW1wb3J0L29yZGVyXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcblxuLyoqXG4gKiBUaGUgZmFpbG92ZXIgY29uZmlndXJhdGlvbiB1c2VkIGZvciBPcmlnaW4gR3JvdXBzLFxuICogcmV0dXJuZWQgaW4ge0BsaW5rIE9yaWdpbkJpbmRDb25maWcuZmFpbG92ZXJDb25maWd9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yaWdpbkZhaWxvdmVyQ29uZmlnIHtcbiAgLyoqIFRoZSBvcmlnaW4gdG8gdXNlIGFzIHRoZSBmYWxsYmFjayBvcmlnaW4uICovXG4gIHJlYWRvbmx5IGZhaWxvdmVyT3JpZ2luOiBJT3JpZ2luO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUCBzdGF0dXMgY29kZXMgb2YgdGhlIHJlc3BvbnNlIHRoYXQgdHJpZ2dlciBxdWVyeWluZyB0aGUgZmFpbG92ZXIgT3JpZ2luLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDUwMCwgNTAyLCA1MDMgYW5kIDUwNFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzQ29kZXM/OiBudW1iZXJbXTtcbn1cblxuLyoqIFRoZSBzdHJ1Y3QgcmV0dXJuZWQgZnJvbSB7QGxpbmsgSU9yaWdpbi5iaW5kfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQmluZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gT3JpZ2luUHJvcGVydHkgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBPcmlnaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm90aGluZyBpcyByZXR1cm5lZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luUHJvcGVydHk/OiBDZm5EaXN0cmlidXRpb24uT3JpZ2luUHJvcGVydHk7XG5cbiAgLyoqXG4gICAqIFRoZSBmYWlsb3ZlciBjb25maWd1cmF0aW9uIGZvciB0aGlzIE9yaWdpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3RoaW5nIGlzIHJldHVybmVkXG4gICAqL1xuICByZWFkb25seSBmYWlsb3ZlckNvbmZpZz86IE9yaWdpbkZhaWxvdmVyQ29uZmlnO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmNlcHQgb2YgYSBDbG91ZEZyb250IE9yaWdpbi5cbiAqIFlvdSBwcm92aWRlIG9uZSBvciBtb3JlIG9yaWdpbnMgd2hlbiBjcmVhdGluZyBhIERpc3RyaWJ1dGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJT3JpZ2luIHtcbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgY2FsbGVkIHdoZW4gYSBnaXZlbiBPcmlnaW4gaXMgYWRkZWRcbiAgICogKGZvciB0aGUgZmlyc3QgdGltZSkgdG8gYSBEaXN0cmlidXRpb24uXG4gICAqL1xuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IE9yaWdpbkJpbmRPcHRpb25zKTogT3JpZ2luQmluZENvbmZpZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGRlZmluZSBhbiBPcmlnaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luUHJvcHMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgcGF0aCB0aGF0IENsb3VkRnJvbnQgYXBwZW5kcyB0byB0aGUgb3JpZ2luIGRvbWFpbiBuYW1lIHdoZW4gQ2xvdWRGcm9udCByZXF1ZXN0cyBjb250ZW50IGZyb20gdGhlIG9yaWdpbi5cbiAgICogTXVzdCBiZWdpbiwgYnV0IG5vdCBlbmQsIHdpdGggJy8nIChlLmcuLCAnL3Byb2R1Y3Rpb24vaW1hZ2VzJykuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcvJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRoYXQgQ2xvdWRGcm9udCB3YWl0cyB3aGVuIHRyeWluZyB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRvIHRoZSBvcmlnaW4uXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgMS0xMCBzZWNvbmRzLCBpbmNsdXNpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMTApXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uVGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgQ2xvdWRGcm9udCBhdHRlbXB0cyB0byBjb25uZWN0IHRvIHRoZSBvcmlnaW47IHZhbGlkIHZhbHVlcyBhcmUgMSwgMiwgb3IgMyBhdHRlbXB0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkF0dGVtcHRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgSFRUUCBoZWFkZXIgbmFtZXMgYW5kIHZhbHVlcyB0aGF0IENsb3VkRnJvbnQgYWRkcyB0byByZXF1ZXN0cyBpdCBzZW5kcyB0byB0aGUgb3JpZ2luLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tSGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFdoZW4geW91IGVuYWJsZSBPcmlnaW4gU2hpZWxkIGluIHRoZSBBV1MgUmVnaW9uIHRoYXQgaGFzIHRoZSBsb3dlc3QgbGF0ZW5jeSB0byB5b3VyIG9yaWdpbiwgeW91IGNhbiBnZXQgYmV0dGVyIG5ldHdvcmsgcGVyZm9ybWFuY2VcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvb3JpZ2luLXNoaWVsZC5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gb3JpZ2luIHNoaWVsZCBub3QgZW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luU2hpZWxkUmVnaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgcGFzc2VkIHRvIE9yaWdpbi5iaW5kKCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQmluZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhpcyBPcmlnaW4sXG4gICAqIGFzIGFzc2lnbmVkIGJ5IHRoZSBEaXN0cmlidXRpb24gdGhpcyBPcmlnaW4gaGFzIGJlZW4gdXNlZCBhZGRlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IG9yaWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRpc3RyaWJ1dGlvbiBvcmlnaW4sIHRoYXQgZGVzY3JpYmVzIHRoZSBBbWF6b24gUzMgYnVja2V0LCBIVFRQIHNlcnZlciAoZm9yIGV4YW1wbGUsIGEgd2ViIHNlcnZlciksXG4gKiBBbWF6b24gTWVkaWFTdG9yZSwgb3Igb3RoZXIgc2VydmVyIGZyb20gd2hpY2ggQ2xvdWRGcm9udCBnZXRzIHlvdXIgZmlsZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcmlnaW5CYXNlIGltcGxlbWVudHMgSU9yaWdpbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG9yaWdpblBhdGg/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdGlvblRpbWVvdXQ/OiBEdXJhdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uQXR0ZW1wdHM/OiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tSGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHByaXZhdGUgcmVhZG9ubHkgb3JpZ2luU2hpZWxkUmVnaW9uPzogc3RyaW5nXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGRvbWFpbk5hbWU6IHN0cmluZywgcHJvcHM6IE9yaWdpblByb3BzID0ge30pIHtcbiAgICB2YWxpZGF0ZUludEluUmFuZ2VPclVuZGVmaW5lZCgnY29ubmVjdGlvblRpbWVvdXQnLCAxLCAxMCwgcHJvcHMuY29ubmVjdGlvblRpbWVvdXQ/LnRvU2Vjb25kcygpKTtcbiAgICB2YWxpZGF0ZUludEluUmFuZ2VPclVuZGVmaW5lZCgnY29ubmVjdGlvbkF0dGVtcHRzJywgMSwgMywgcHJvcHMuY29ubmVjdGlvbkF0dGVtcHRzLCBmYWxzZSk7XG4gICAgdmFsaWRhdGVDdXN0b21IZWFkZXJzKHByb3BzLmN1c3RvbUhlYWRlcnMpO1xuXG4gICAgdGhpcy5kb21haW5OYW1lID0gZG9tYWluTmFtZTtcbiAgICB0aGlzLm9yaWdpblBhdGggPSB0aGlzLnZhbGlkYXRlT3JpZ2luUGF0aChwcm9wcy5vcmlnaW5QYXRoKTtcbiAgICB0aGlzLmNvbm5lY3Rpb25UaW1lb3V0ID0gcHJvcHMuY29ubmVjdGlvblRpbWVvdXQ7XG4gICAgdGhpcy5jb25uZWN0aW9uQXR0ZW1wdHMgPSBwcm9wcy5jb25uZWN0aW9uQXR0ZW1wdHM7XG4gICAgdGhpcy5jdXN0b21IZWFkZXJzID0gcHJvcHMuY3VzdG9tSGVhZGVycztcbiAgICB0aGlzLm9yaWdpblNoaWVsZFJlZ2lvbiA9IHByb3BzLm9yaWdpblNoaWVsZFJlZ2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kcyB0aGUgb3JpZ2luIHRvIHRoZSBhc3NvY2lhdGVkIERpc3RyaWJ1dGlvbi4gQ2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMsIGNyZWF0ZSBkZXBlbmRlbnQgcmVzb3VyY2VzLCBldGMuXG4gICAqL1xuICBwdWJsaWMgYmluZChfc2NvcGU6IENvbnN0cnVjdCwgb3B0aW9uczogT3JpZ2luQmluZE9wdGlvbnMpOiBPcmlnaW5CaW5kQ29uZmlnIHtcbiAgICBjb25zdCBzM09yaWdpbkNvbmZpZyA9IHRoaXMucmVuZGVyUzNPcmlnaW5Db25maWcoKTtcbiAgICBjb25zdCBjdXN0b21PcmlnaW5Db25maWcgPSB0aGlzLnJlbmRlckN1c3RvbU9yaWdpbkNvbmZpZygpO1xuXG4gICAgaWYgKCFzM09yaWdpbkNvbmZpZyAmJiAhY3VzdG9tT3JpZ2luQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N1YmNsYXNzIG11c3Qgb3ZlcnJpZGUgYW5kIHByb3ZpZGUgZWl0aGVyIHMzT3JpZ2luQ29uZmlnIG9yIGN1c3RvbU9yaWdpbkNvbmZpZycpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5Qcm9wZXJ0eToge1xuICAgICAgICBkb21haW5OYW1lOiB0aGlzLmRvbWFpbk5hbWUsXG4gICAgICAgIGlkOiBvcHRpb25zLm9yaWdpbklkLFxuICAgICAgICBvcmlnaW5QYXRoOiB0aGlzLm9yaWdpblBhdGgsXG4gICAgICAgIGNvbm5lY3Rpb25BdHRlbXB0czogdGhpcy5jb25uZWN0aW9uQXR0ZW1wdHMsXG4gICAgICAgIGNvbm5lY3Rpb25UaW1lb3V0OiB0aGlzLmNvbm5lY3Rpb25UaW1lb3V0Py50b1NlY29uZHMoKSxcbiAgICAgICAgb3JpZ2luQ3VzdG9tSGVhZGVyczogdGhpcy5yZW5kZXJDdXN0b21IZWFkZXJzKCksXG4gICAgICAgIHMzT3JpZ2luQ29uZmlnLFxuICAgICAgICBjdXN0b21PcmlnaW5Db25maWcsXG4gICAgICAgIG9yaWdpblNoaWVsZDogdGhpcy5yZW5kZXJPcmlnaW5TaGllbGQodGhpcy5vcmlnaW5TaGllbGRSZWdpb24pLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gT3ZlcnJpZGRlbiBieSBzdWItY2xhc3NlcyB0byBwcm92aWRlIFMzIG9yaWdpbiBjb25maWcuXG4gIHByb3RlY3RlZCByZW5kZXJTM09yaWdpbkNvbmZpZygpOiBDZm5EaXN0cmlidXRpb24uUzNPcmlnaW5Db25maWdQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIE92ZXJyaWRkZW4gYnkgc3ViLWNsYXNzZXMgdG8gcHJvdmlkZSBjdXN0b20gb3JpZ2luIGNvbmZpZy5cbiAgcHJvdGVjdGVkIHJlbmRlckN1c3RvbU9yaWdpbkNvbmZpZygpOiBDZm5EaXN0cmlidXRpb24uQ3VzdG9tT3JpZ2luQ29uZmlnUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckN1c3RvbUhlYWRlcnMoKTogQ2ZuRGlzdHJpYnV0aW9uLk9yaWdpbkN1c3RvbUhlYWRlclByb3BlcnR5W10gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5jdXN0b21IZWFkZXJzIHx8IE9iamVjdC5lbnRyaWVzKHRoaXMuY3VzdG9tSGVhZGVycykubGVuZ3RoID09PSAwKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5jdXN0b21IZWFkZXJzKS5tYXAoKFtoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZV0pID0+IHtcbiAgICAgIHJldHVybiB7IGhlYWRlck5hbWUsIGhlYWRlclZhbHVlIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIHBhdGggaXMgZGVmaW5lZCwgaXQgbXVzdCBzdGFydCB3aXRoIGEgJy8nIGFuZCBub3QgZW5kIHdpdGggYSAnLycuXG4gICAqIFRoaXMgbWV0aG9kIHRha2VzIGluIHRoZSBvcmlnaW5QYXRoLCBhbmQgcmV0dXJucyBpdCBiYWNrIChpZiB1bmRlZmluZWQpIG9yIGFkZHMvcmVtb3ZlcyB0aGUgJy8nIGFzIGFwcHJvcHJpYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZU9yaWdpblBhdGgob3JpZ2luUGF0aD86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChvcmlnaW5QYXRoKSkgeyByZXR1cm4gb3JpZ2luUGF0aDsgfVxuICAgIGlmIChvcmlnaW5QYXRoID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICAgIGxldCBwYXRoID0gb3JpZ2luUGF0aDtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSB7IHBhdGggPSAnLycgKyBwYXRoOyB9XG4gICAgaWYgKHBhdGguZW5kc1dpdGgoJy8nKSkgeyBwYXRoID0gcGF0aC5zdWJzdHIoMCwgcGF0aC5sZW5ndGggLSAxKTsgfVxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIG9yaWdpbiBzaGllbGQgcmVnaW9uIGFuZCBjb252ZXJ0cyB0byBDZm5EaXN0cmlidXRpb24uT3JpZ2luU2hpZWxkUHJvcGVydHlcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyT3JpZ2luU2hpZWxkKG9yaWdpblNoaWVsZFJlZ2lvbj86IHN0cmluZyk6IENmbkRpc3RyaWJ1dGlvbi5PcmlnaW5TaGllbGRQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIG9yaWdpblNoaWVsZFJlZ2lvblxuICAgICAgPyB7IGVuYWJsZWQ6IHRydWUsIG9yaWdpblNoaWVsZFJlZ2lvbiB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93cyBhbiBlcnJvciBpZiBhIHZhbHVlIGlzIGRlZmluZWQgYW5kIG5vdCBhbiBpbnRlZ2VyIG9yIG5vdCBpbiBhIHJhbmdlLlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUludEluUmFuZ2VPclVuZGVmaW5lZChuYW1lOiBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgdmFsdWU/OiBudW1iZXIsIGlzRHVyYXRpb246IGJvb2xlYW4gPSB0cnVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybjsgfVxuICBpZiAoIU51bWJlci5pc0ludGVnZXIodmFsdWUpIHx8IHZhbHVlIDwgbWluIHx8IHZhbHVlID4gbWF4KSB7XG4gICAgY29uc3Qgc2Vjb25kcyA9IGlzRHVyYXRpb24gPyAnIHNlY29uZHMnIDogJyc7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9OiBNdXN0IGJlIGFuIGludCBiZXR3ZWVuICR7bWlufSBhbmQgJHttYXh9JHtzZWNvbmRzfSAoaW5jbHVzaXZlKTsgcmVjZWl2ZWQgJHt2YWx1ZX0uYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgY3VzdG9tIGhlYWRlciBhc3NpZ25tZW50IGlzIHByb2hpYml0ZWQgYnkgQ2xvdWRGcm9udC5cbiAqIEBsaW5rOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvYWRkLW9yaWdpbi1jdXN0b20taGVhZGVycy5odG1sI2FkZC1vcmlnaW4tY3VzdG9tLWhlYWRlcnMtZGVueWxpc3RcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDdXN0b21IZWFkZXJzKGN1c3RvbUhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIGlmICghY3VzdG9tSGVhZGVycyB8fCBPYmplY3QuZW50cmllcyhjdXN0b21IZWFkZXJzKS5sZW5ndGggPT09IDApIHsgcmV0dXJuOyB9XG4gIGNvbnN0IGN1c3RvbUhlYWRlcktleXMgPSBPYmplY3Qua2V5cyhjdXN0b21IZWFkZXJzKTtcbiAgY29uc3QgcHJvaGliaXRlZEhlYWRlcktleXMgPSBbXG4gICAgJ0NhY2hlLUNvbnRyb2wnLCAnQ29ubmVjdGlvbicsICdDb250ZW50LUxlbmd0aCcsICdDb29raWUnLCAnSG9zdCcsICdJZi1NYXRjaCcsICdJZi1Nb2RpZmllZC1TaW5jZScsICdJZi1Ob25lLU1hdGNoJywgJ0lmLVJhbmdlJywgJ0lmLVVubW9kaWZpZWQtU2luY2UnLFxuICAgICdNYXgtRm9yd2FyZHMnLCAnUHJhZ21hJywgJ1Byb3h5LUF1dGhvcml6YXRpb24nLCAnUHJveHktQ29ubmVjdGlvbicsICdSYW5nZScsICdSZXF1ZXN0LVJhbmdlJywgJ1RFJywgJ1RyYWlsZXInLCAnVHJhbnNmZXItRW5jb2RpbmcnLCAnVXBncmFkZScsICdWaWEnLFxuICAgICdYLVJlYWwtSXAnLFxuICBdO1xuICBjb25zdCBwcm9oaWJpdGVkSGVhZGVyS2V5UHJlZml4ZXMgPSBbXG4gICAgJ1gtQW16LScsICdYLUVkZ2UtJyxcbiAgXTtcblxuICBjb25zdCBwcm9oaWJpdGVkSGVhZGVyc0tleXNNYXRjaGVzID0gY3VzdG9tSGVhZGVyS2V5cy5maWx0ZXIoY3VzdG9tS2V5ID0+IHtcbiAgICByZXR1cm4gcHJvaGliaXRlZEhlYWRlcktleXMubWFwKChwcm9oaWJpdGVkS2V5KSA9PiBwcm9oaWJpdGVkS2V5LnRvTG93ZXJDYXNlKCkpLmluY2x1ZGVzKGN1c3RvbUtleS50b0xvd2VyQ2FzZSgpKTtcbiAgfSk7XG4gIGNvbnN0IHByb2hpYml0ZWRIZWFkZXJQcmVmaXhNYXRjaGVzID0gY3VzdG9tSGVhZGVyS2V5cy5maWx0ZXIoY3VzdG9tS2V5ID0+IHtcbiAgICByZXR1cm4gcHJvaGliaXRlZEhlYWRlcktleVByZWZpeGVzLnNvbWUocHJvaGliaXRlZEtleVByZWZpeCA9PiBjdXN0b21LZXkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHByb2hpYml0ZWRLZXlQcmVmaXgudG9Mb3dlckNhc2UoKSkpO1xuICB9KTtcblxuICBpZiAocHJvaGliaXRlZEhlYWRlcnNLZXlzTWF0Y2hlcy5sZW5ndGggIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xsb3dpbmcgaGVhZGVycyBjYW5ub3QgYmUgY29uZmlndXJlZCBhcyBjdXN0b20gb3JpZ2luIGhlYWRlcnM6ICR7cHJvaGliaXRlZEhlYWRlcnNLZXlzTWF0Y2hlcy5qb2luKCcsICcpfWApO1xuICB9XG4gIGlmIChwcm9oaWJpdGVkSGVhZGVyUHJlZml4TWF0Y2hlcy5sZW5ndGggIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xsb3dpbmcgaGVhZGVycyBjYW5ub3QgYmUgdXNlZCBhcyBwcmVmaXhlcyBmb3IgY3VzdG9tIG9yaWdpbiBoZWFkZXJzOiAke3Byb2hpYml0ZWRIZWFkZXJQcmVmaXhNYXRjaGVzLmpvaW4oJywgJyl9YCk7XG4gIH1cbn0iXX0=
import { IResource, Resource } from '@aws-cdk/core';
import { Construct } from 'constructs';
/**
* Represents a Public Key.
*
* @stability stable
* Represents a Public Key
*/

@@ -11,5 +9,3 @@ export interface IPublicKey extends IResource {

* The ID of the key group.
*
* @stability stable
* @attribute true
* @attribute
*/

@@ -19,5 +15,3 @@ readonly publicKeyId: string;

/**
* Properties for creating a Public Key.
*
* @stability stable
* Properties for creating a Public Key
*/

@@ -27,5 +21,3 @@ export interface PublicKeyProps {

* A name to identify the public key.
*
* @default - generated from the `id`
* @stability stable
*/

@@ -35,5 +27,3 @@ readonly publicKeyName?: string;

* A comment to describe the public key.
*
* @default - no comment
* @stability stable
*/

@@ -43,7 +33,5 @@ readonly comment?: string;

* The public key that you can use with signed URLs and signed cookies, or with field-level encryption.
*
* The `encodedKey` parameter must include `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----` lines.
*
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/field-level-encryption.html
* @stability stable
*/

@@ -53,25 +41,12 @@ readonly encodedKey: string;

/**
* A Public Key Configuration.
* A Public Key Configuration
*
* @stability stable
* @resource AWS::CloudFront::PublicKey
*/
export declare class PublicKey extends Resource implements IPublicKey {
/**
* Imports a Public Key from its id.
*
* @stability stable
*/
/** Imports a Public Key from its id. */
static fromPublicKeyId(scope: Construct, id: string, publicKeyId: string): IPublicKey;
/**
* The ID of the key group.
*
* @stability stable
*/
readonly publicKeyId: string;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props: PublicKeyProps);
private generateName;
}

@@ -10,11 +10,7 @@ "use strict";

/**
* A Public Key Configuration.
* A Public Key Configuration
*
* @stability stable
* @resource AWS::CloudFront::PublicKey
*/
class PublicKey extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props) {

@@ -37,7 +33,3 @@ var _b;

}
/**
* Imports a Public Key from its id.
*
* @stability stable
*/
/** Imports a Public Key from its id. */
static fromPublicKeyId(scope, id, publicKeyId) {

@@ -61,3 +53,3 @@ return new class extends core_1.Resource {

_a = JSII_RTTI_SYMBOL_1;
PublicKey[_a] = { fqn: "@aws-cdk/aws-cloudfront.PublicKey", version: "1.144.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1YmxpYy1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0NBQWtFO0FBRWxFLGlFQUFzRDs7Ozs7OztBQXFCdEQsTUFBYSxTQUFVLFNBQVEsZUFBUTs7OztJQVdyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCOztRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOztRQUVqQixJQUFJLENBQUMsWUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xHLE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3BIO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQ0FBWSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEQsZUFBZSxFQUFFO2dCQUNmLElBQUksUUFBRSxLQUFLLENBQUMsYUFBYSxtQ0FBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNoRCxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUMvQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzVCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTzthQUN2QjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztLQUNqQzs7Ozs7O0lBekJNLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsV0FBbUI7UUFDN0UsT0FBTyxJQUFJLEtBQU0sU0FBUSxlQUFRO1lBQXRCOztnQkFDTyxnQkFBVyxHQUFHLFdBQVcsQ0FBQztZQUM1QyxDQUFDO1NBQUEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDZDtJQXVCTyxZQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7O0FBcENILDhCQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXNvdXJjZSwgTmFtZXMsIFJlc291cmNlLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5QdWJsaWNLZXkgfSBmcm9tICcuL2Nsb3VkZnJvbnQuZ2VuZXJhdGVkJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBJUHVibGljS2V5IGV4dGVuZHMgSVJlc291cmNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwdWJsaWNLZXlJZDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNLZXlQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHB1YmxpY0tleU5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbmNvZGVkS2V5OiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgUHVibGljS2V5IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUHVibGljS2V5IHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVB1YmxpY0tleUlkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHB1YmxpY0tleUlkOiBzdHJpbmcpOiBJUHVibGljS2V5IHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUHVibGljS2V5IHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBwdWJsaWNLZXlJZCA9IHB1YmxpY0tleUlkO1xuICAgIH0oc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwdWJsaWNLZXlJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdWJsaWNLZXlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5lbmNvZGVkS2V5KSAmJiAhL14tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLS8udGVzdChwcm9wcy5lbmNvZGVkS2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQdWJsaWMga2V5IG11c3QgYmUgaW4gUEVNIGZvcm1hdCAod2l0aCB0aGUgQkVHSU4vRU5EIFBVQkxJQyBLRVkgbGluZXMpOyBnb3QgJHtwcm9wcy5lbmNvZGVkS2V5fWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmblB1YmxpY0tleSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBwdWJsaWNLZXlDb25maWc6IHtcbiAgICAgICAgbmFtZTogcHJvcHMucHVibGljS2V5TmFtZSA/PyB0aGlzLmdlbmVyYXRlTmFtZSgpLFxuICAgICAgICBjYWxsZXJSZWZlcmVuY2U6IHRoaXMubm9kZS5hZGRyLFxuICAgICAgICBlbmNvZGVkS2V5OiBwcm9wcy5lbmNvZGVkS2V5LFxuICAgICAgICBjb21tZW50OiBwcm9wcy5jb21tZW50LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMucHVibGljS2V5SWQgPSByZXNvdXJjZS5yZWY7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlTmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5hbWUgPSBOYW1lcy51bmlxdWVJZCh0aGlzKTtcbiAgICBpZiAobmFtZS5sZW5ndGggPiA4MCkge1xuICAgICAgcmV0dXJuIG5hbWUuc3Vic3RyaW5nKDAsIDQwKSArIG5hbWUuc3Vic3RyaW5nKG5hbWUubGVuZ3RoIC0gNDApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxufSJdfQ==
PublicKey[_a] = { fqn: "@aws-cdk/aws-cloudfront.PublicKey", version: "1.145.0" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInB1YmxpYy1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0NBQWtFO0FBRWxFLGlFQUFzRDtBQXNDdEQ7Ozs7R0FJRztBQUNILE1BQWEsU0FBVSxTQUFRLGVBQVE7SUFXckMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjs7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7UUFFakIsSUFBSSxDQUFDLFlBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsRyxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUNwSDtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksbUNBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xELGVBQWUsRUFBRTtnQkFDZixJQUFJLFFBQUUsS0FBSyxDQUFDLGFBQWEsbUNBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDaEQsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtnQkFDL0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUM1QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87YUFDdkI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7S0FDakM7SUExQkQsd0NBQXdDO0lBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsV0FBbUI7UUFDN0UsT0FBTyxJQUFJLEtBQU0sU0FBUSxlQUFRO1lBQXRCOztnQkFDTyxnQkFBVyxHQUFHLFdBQVcsQ0FBQztZQUM1QyxDQUFDO1NBQUEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDZDtJQXVCTyxZQUFZO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7O0FBcENILDhCQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZXNvdXJjZSwgTmFtZXMsIFJlc291cmNlLCBUb2tlbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5QdWJsaWNLZXkgfSBmcm9tICcuL2Nsb3VkZnJvbnQuZ2VuZXJhdGVkJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgUHVibGljIEtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQdWJsaWNLZXkgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBrZXkgZ3JvdXAuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0tleUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBQdWJsaWMgS2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljS2V5UHJvcHMge1xuICAvKipcbiAgICogQSBuYW1lIHRvIGlkZW50aWZ5IHRoZSBwdWJsaWMga2V5LlxuICAgKiBAZGVmYXVsdCAtIGdlbmVyYXRlZCBmcm9tIHRoZSBgaWRgXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNLZXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbW1lbnQgdG8gZGVzY3JpYmUgdGhlIHB1YmxpYyBrZXkuXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWVudFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHB1YmxpYyBrZXkgdGhhdCB5b3UgY2FuIHVzZSB3aXRoIHNpZ25lZCBVUkxzIGFuZCBzaWduZWQgY29va2llcywgb3Igd2l0aCBmaWVsZC1sZXZlbCBlbmNyeXB0aW9uLlxuICAgKiBUaGUgYGVuY29kZWRLZXlgIHBhcmFtZXRlciBtdXN0IGluY2x1ZGUgYC0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tYCBhbmQgYC0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLWAgbGluZXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL1ByaXZhdGVDb250ZW50Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRGcm9udC9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvZmllbGQtbGV2ZWwtZW5jcnlwdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBlbmNvZGVkS2V5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBQdWJsaWMgS2V5IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpDbG91ZEZyb250OjpQdWJsaWNLZXlcbiAqL1xuZXhwb3J0IGNsYXNzIFB1YmxpY0tleSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVB1YmxpY0tleSB7XG5cbiAgLyoqIEltcG9ydHMgYSBQdWJsaWMgS2V5IGZyb20gaXRzIGlkLiAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21QdWJsaWNLZXlJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwdWJsaWNLZXlJZDogc3RyaW5nKTogSVB1YmxpY0tleSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVB1YmxpY0tleSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcHVibGljS2V5SWQgPSBwdWJsaWNLZXlJZDtcbiAgICB9KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcHVibGljS2V5SWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHVibGljS2V5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZW5jb2RlZEtleSkgJiYgIS9eLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0vLnRlc3QocHJvcHMuZW5jb2RlZEtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHVibGljIGtleSBtdXN0IGJlIGluIFBFTSBmb3JtYXQgKHdpdGggdGhlIEJFR0lOL0VORCBQVUJMSUMgS0VZIGxpbmVzKTsgZ290ICR7cHJvcHMuZW5jb2RlZEtleX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5QdWJsaWNLZXkodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcHVibGljS2V5Q29uZmlnOiB7XG4gICAgICAgIG5hbWU6IHByb3BzLnB1YmxpY0tleU5hbWUgPz8gdGhpcy5nZW5lcmF0ZU5hbWUoKSxcbiAgICAgICAgY2FsbGVyUmVmZXJlbmNlOiB0aGlzLm5vZGUuYWRkcixcbiAgICAgICAgZW5jb2RlZEtleTogcHJvcHMuZW5jb2RlZEtleSxcbiAgICAgICAgY29tbWVudDogcHJvcHMuY29tbWVudCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnB1YmxpY0tleUlkID0gcmVzb3VyY2UucmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gTmFtZXMudW5pcXVlSWQodGhpcyk7XG4gICAgaWYgKG5hbWUubGVuZ3RoID4gODApIHtcbiAgICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygwLCA0MCkgKyBuYW1lLnN1YnN0cmluZyhuYW1lLmxlbmd0aCAtIDQwKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn0iXX0=

@@ -5,18 +5,12 @@ import { Duration, Resource } from '@aws-cdk/core';

* Represents a response headers policy.
*
* @stability stable
*/
export interface IResponseHeadersPolicy {
/**
* The ID of the response headers policy.
*
* @stability stable
* @attribute true
*/
* The ID of the response headers policy
* @attribute
**/
readonly responseHeadersPolicyId: string;
}
/**
* Properties for creating a Response Headers Policy.
*
* @stability stable
* Properties for creating a Response Headers Policy
*/

@@ -28,3 +22,2 @@ export interface ResponseHeadersPolicyProps {

* @default - generated from the `id`
* @stability stable
*/

@@ -36,3 +29,2 @@ readonly responseHeadersPolicyName?: string;

* @default - no comment
* @stability stable
*/

@@ -44,3 +36,2 @@ readonly comment?: string;

* @default - no cors behavior
* @stability stable
*/

@@ -52,3 +43,2 @@ readonly corsBehavior?: ResponseHeadersCorsBehavior;

* @default - no custom headers behavior
* @stability stable
*/

@@ -60,3 +50,2 @@ readonly customHeadersBehavior?: ResponseCustomHeadersBehavior;

* @default - no security headers behavior
* @stability stable
*/

@@ -66,54 +55,23 @@ readonly securityHeadersBehavior?: ResponseSecurityHeadersBehavior;

/**
* A Response Headers Policy configuration.
* A Response Headers Policy configuration
*
* @stability stable
* @resource AWS::CloudFront::ResponseHeadersPolicy
*/
export declare class ResponseHeadersPolicy extends Resource implements IResponseHeadersPolicy {
/**
* Use this managed policy to allow simple CORS requests from any origin.
*
* @stability stable
*/
/** Use this managed policy to allow simple CORS requests from any origin. */
static readonly CORS_ALLOW_ALL_ORIGINS: IResponseHeadersPolicy;
/**
* Use this managed policy to allow CORS requests from any origin, including preflight requests.
*
* @stability stable
*/
/** Use this managed policy to allow CORS requests from any origin, including preflight requests. */
static readonly CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT: IResponseHeadersPolicy;
/**
* Use this managed policy to add a set of security headers to all responses that CloudFront sends to viewers.
*
* @stability stable
*/
/** Use this managed policy to add a set of security headers to all responses that CloudFront sends to viewers. */
static readonly SECURITY_HEADERS: IResponseHeadersPolicy;
/**
* Use this managed policy to allow simple CORS requests from any origin and add a set of security headers to all responses that CloudFront sends to viewers.
*
* @stability stable
*/
/** Use this managed policy to allow simple CORS requests from any origin and add a set of security headers to all responses that CloudFront sends to viewers. */
static readonly CORS_ALLOW_ALL_ORIGINS_AND_SECURITY_HEADERS: IResponseHeadersPolicy;
/**
* Use this managed policy to allow CORS requests from any origin, including preflight requests, and add a set of security headers to all responses that CloudFront sends to viewers.
*
* @stability stable
*/
/** Use this managed policy to allow CORS requests from any origin, including preflight requests, and add a set of security headers to all responses that CloudFront sends to viewers. */
static readonly CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT_AND_SECURITY_HEADERS: IResponseHeadersPolicy;
/**
* Import an existing Response Headers Policy from its ID.
*
* @stability stable
*/
static fromResponseHeadersPolicyId(scope: Construct, id: string, responseHeadersPolicyId: string): IResponseHeadersPolicy;
private static fromManagedResponseHeadersPolicy;
/**
* The ID of the response headers policy.
*
* @stability stable
*/
readonly responseHeadersPolicyId: string;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props?: ResponseHeadersPolicyProps);

@@ -126,7 +84,4 @@ private _renderCorsConfig;

* Configuration for a set of HTTP response headers that are used for cross-origin resource sharing (CORS).
*
* CloudFront adds these headers to HTTP responses that it sends for CORS requests that match a cache behavior
* associated with this response headers policy.
*
* @stability stable
*/

@@ -136,4 +91,2 @@ export interface ResponseHeadersCorsBehavior {

* A Boolean that CloudFront uses as the value for the Access-Control-Allow-Credentials HTTP response header.
*
* @stability stable
*/

@@ -143,6 +96,3 @@ readonly accessControlAllowCredentials: boolean;

* A list of HTTP header names that CloudFront includes as values for the Access-Control-Allow-Headers HTTP response header.
*
* You can specify `['*']` to allow all headers.
*
* @stability stable
*/

@@ -152,4 +102,2 @@ readonly accessControlAllowHeaders: string[];

* A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.
*
* @stability stable
*/

@@ -159,6 +107,3 @@ readonly accessControlAllowMethods: string[];

* A list of origins (domain names) that CloudFront can use as the value for the Access-Control-Allow-Origin HTTP response header.
*
* You can specify `['*']` to allow all origins.
*
* @stability stable
*/

@@ -168,7 +113,5 @@ readonly accessControlAllowOrigins: string[];

* A list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header.
*
* You can specify `['*']` to expose all headers.
*
* @default - no headers exposed
* @stability stable
*/

@@ -180,3 +123,2 @@ readonly accessControlExposeHeaders?: string[];

* @default - no max age
* @stability stable
*/

@@ -186,4 +128,2 @@ readonly accessControlMaxAge?: Duration;

* A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy.
*
* @stability stable
*/

@@ -193,5 +133,4 @@ readonly originOverride: boolean;

/**
* Configuration for a set of HTTP response headers that are sent for requests that match a cache behavior that’s associated with this response headers policy.
*
* @stability stable
* Configuration for a set of HTTP response headers that are sent for requests that match a cache behavior
* that’s associated with this response headers policy.
*/

@@ -201,4 +140,2 @@ export interface ResponseCustomHeadersBehavior {

* The list of HTTP response headers and their values.
*
* @stability stable
*/

@@ -209,6 +146,3 @@ readonly customHeaders: ResponseCustomHeader[];

* An HTTP response header name and its value.
*
* CloudFront includes this header in HTTP responses that it sends for requests that match a cache behavior that’s associated with this response headers policy.
*
* @stability stable
*/

@@ -218,10 +152,7 @@ export interface ResponseCustomHeader {

* The HTTP response header name.
*
* @stability stable
*/
readonly header: string;
/**
* A Boolean that determines whether CloudFront overrides a response header with the same name received from the origin with the header specified here.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides a response header with the same name
* received from the origin with the header specified here.
*/

@@ -231,4 +162,2 @@ readonly override: boolean;

* The value for the HTTP response header.
*
* @stability stable
*/

@@ -239,7 +168,4 @@ readonly value: string;

* Configuration for a set of security-related HTTP response headers.
*
* CloudFront adds these headers to HTTP responses that it sends for requests that match a cache behavior
* associated with this response headers policy.
*
* @stability stable
*/

@@ -251,3 +177,2 @@ export interface ResponseSecurityHeadersBehavior {

* @default - no content security policy
* @stability stable
*/

@@ -259,3 +184,2 @@ readonly contentSecurityPolicy?: ResponseHeadersContentSecurityPolicy;

* @default - no content type options
* @stability stable
*/

@@ -267,3 +191,2 @@ readonly contentTypeOptions?: ResponseHeadersContentTypeOptions;

* @default - no frame options
* @stability stable
*/

@@ -275,3 +198,2 @@ readonly frameOptions?: ResponseHeadersFrameOptions;

* @default - no referrer policy
* @stability stable
*/

@@ -283,3 +205,2 @@ readonly referrerPolicy?: ResponseHeadersReferrerPolicy;

* @default - no strict transport security
* @stability stable
*/

@@ -291,3 +212,2 @@ readonly strictTransportSecurity?: ResponseHeadersStrictTransportSecurity;

* @default - no xss protection
* @stability stable
*/

@@ -298,4 +218,2 @@ readonly xssProtection?: ResponseHeadersXSSProtection;

* The policy directives and their values that CloudFront includes as values for the Content-Security-Policy HTTP response header.
*
* @stability stable
*/

@@ -305,10 +223,7 @@ export interface ResponseHeadersContentSecurityPolicy {

* The policy directives and their values that CloudFront includes as values for the Content-Security-Policy HTTP response header.
*
* @stability stable
*/
readonly contentSecurityPolicy: string;
/**
* A Boolean that determines whether CloudFront overrides the Content-Security-Policy HTTP response header received from the origin with the one specified in this response headers policy.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides the Content-Security-Policy HTTP response header
* received from the origin with the one specified in this response headers policy.
*/

@@ -319,10 +234,7 @@ readonly override: boolean;

* Determines whether CloudFront includes the X-Content-Type-Options HTTP response header with its value set to nosniff.
*
* @stability stable
*/
export interface ResponseHeadersContentTypeOptions {
/**
* A Boolean that determines whether CloudFront overrides the X-Content-Type-Options HTTP response header received from the origin with the one specified in this response headers policy.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides the X-Content-Type-Options HTTP response header
* received from the origin with the one specified in this response headers policy.
*/

@@ -333,4 +245,2 @@ readonly override: boolean;

* Determines whether CloudFront includes the X-Frame-Options HTTP response header and the header’s value.
*
* @stability stable
*/

@@ -340,10 +250,7 @@ export interface ResponseHeadersFrameOptions {

* The value of the X-Frame-Options HTTP response header.
*
* @stability stable
*/
readonly frameOption: HeadersFrameOption;
/**
* A Boolean that determines whether CloudFront overrides the X-Frame-Options HTTP response header received from the origin with the one specified in this response headers policy.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides the X-Frame-Options HTTP response header
* received from the origin with the one specified in this response headers policy.
*/

@@ -354,4 +261,2 @@ readonly override: boolean;

* Determines whether CloudFront includes the Referrer-Policy HTTP response header and the header’s value.
*
* @stability stable
*/

@@ -361,10 +266,7 @@ export interface ResponseHeadersReferrerPolicy {

* The value of the Referrer-Policy HTTP response header.
*
* @stability stable
*/
readonly referrerPolicy: HeadersReferrerPolicy;
/**
* A Boolean that determines whether CloudFront overrides the Referrer-Policy HTTP response header received from the origin with the one specified in this response headers policy.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides the Referrer-Policy HTTP response header
* received from the origin with the one specified in this response headers policy.
*/

@@ -375,4 +277,2 @@ readonly override: boolean;

* Determines whether CloudFront includes the Strict-Transport-Security HTTP response header and the header’s value.
*
* @stability stable
*/

@@ -382,4 +282,2 @@ export interface ResponseHeadersStrictTransportSecurity {

* A number that CloudFront uses as the value for the max-age directive in the Strict-Transport-Security HTTP response header.
*
* @stability stable
*/

@@ -391,9 +289,7 @@ readonly accessControlMaxAge: Duration;

* @default false
* @stability stable
*/
readonly includeSubdomains?: boolean;
/**
* A Boolean that determines whether CloudFront overrides the Strict-Transport-Security HTTP response header received from the origin with the one specified in this response headers policy.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides the Strict-Transport-Security HTTP response header
* received from the origin with the one specified in this response headers policy.
*/

@@ -405,3 +301,2 @@ readonly override: boolean;

* @default false
* @stability stable
*/

@@ -412,4 +307,2 @@ readonly preload?: boolean;

* Determines whether CloudFront includes the X-XSS-Protection HTTP response header and the header’s value.
*
* @stability stable
*/

@@ -421,9 +314,7 @@ export interface ResponseHeadersXSSProtection {

* @default false
* @stability stable
*/
readonly modeBlock?: boolean;
/**
* A Boolean that determines whether CloudFront overrides the X-XSS-Protection HTTP response header received from the origin with the one specified in this response headers policy.
*
* @stability stable
* A Boolean that determines whether CloudFront overrides the X-XSS-Protection HTTP response header
* received from the origin with the one specified in this response headers policy.
*/

@@ -433,7 +324,4 @@ readonly override: boolean;

* A Boolean that determines the value of the X-XSS-Protection HTTP response header.
*
* When this setting is true, the value of the X-XSS-Protection header is 1.
* When this setting is false, the value of the X-XSS-Protection header is 0.
*
* @stability stable
*/

@@ -443,7 +331,5 @@ readonly protection: boolean;

* A reporting URI, which CloudFront uses as the value of the report directive in the X-XSS-Protection header.
*
* You cannot specify a ReportUri when ModeBlock is true.
*
* @default - no report uri
* @stability stable
*/

@@ -454,4 +340,2 @@ readonly reportUri?: string;

* Enum representing possible values of the X-Frame-Options HTTP response header.
*
* @stability stable
*/

@@ -461,4 +345,2 @@ export declare enum HeadersFrameOption {

* The page can only be displayed in a frame on the same origin as the page itself.
*
* @stability stable
*/

@@ -468,4 +350,2 @@ DENY = "DENY",

* The page can only be displayed in a frame on the specified origin.
*
* @stability stable
*/

@@ -476,4 +356,2 @@ SAMEORIGIN = "SAMEORIGIN"

* Enum representing possible values of the Referrer-Policy HTTP response header.
*
* @stability stable
*/

@@ -483,4 +361,2 @@ export declare enum HeadersReferrerPolicy {

* The referrer policy is not set.
*
* @stability stable
*/

@@ -490,4 +366,2 @@ NO_REFERRER = "no-referrer",

* The referrer policy is no-referrer-when-downgrade.
*
* @stability stable
*/

@@ -497,4 +371,2 @@ NO_REFERRER_WHEN_DOWNGRADE = "no-referrer-when-downgrade",

* The referrer policy is origin.
*
* @stability stable
*/

@@ -504,4 +376,2 @@ ORIGIN = "origin",

* The referrer policy is origin-when-cross-origin.
*
* @stability stable
*/

@@ -511,4 +381,2 @@ ORIGIN_WHEN_CROSS_ORIGIN = "origin-when-cross-origin",

* The referrer policy is same-origin.
*
* @stability stable
*/

@@ -518,4 +386,2 @@ SAME_ORIGIN = "same-origin",

* The referrer policy is strict-origin.
*
* @stability stable
*/

@@ -525,4 +391,2 @@ STRICT_ORIGIN = "strict-origin",

* The referrer policy is strict-origin-when-cross-origin.
*
* @stability stable
*/

@@ -532,6 +396,4 @@ STRICT_ORIGIN_WHEN_CROSS_ORIGIN = "strict-origin-when-cross-origin",

* The referrer policy is unsafe-url.
*
* @stability stable
*/
UNSAFE_URL = "unsafe-url"
}

@@ -10,11 +10,7 @@ "use strict";

/**
* A Response Headers Policy configuration.
* A Response Headers Policy configuration
*
* @stability stable
* @resource AWS::CloudFront::ResponseHeadersPolicy
*/
class ResponseHeadersPolicy extends core_1.Resource {
/**
* @stability stable
*/
constructor(scope, id, props = {}) {

@@ -40,4 +36,2 @@ var _b;

* Import an existing Response Headers Policy from its ID.
*
* @stability stable
*/

@@ -92,41 +86,25 @@ static fromResponseHeadersPolicyId(scope, id, responseHeadersPolicyId) {

_a = JSII_RTTI_SYMBOL_1;
ResponseHeadersPolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.ResponseHeadersPolicy", version: "1.144.0" };
/**
* Use this managed policy to allow simple CORS requests from any origin.
*
* @stability stable
*/
ResponseHeadersPolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.ResponseHeadersPolicy", version: "1.145.0" };
/** Use this managed policy to allow simple CORS requests from any origin. */
ResponseHeadersPolicy.CORS_ALLOW_ALL_ORIGINS = ResponseHeadersPolicy.fromManagedResponseHeadersPolicy('60669652-455b-4ae9-85a4-c4c02393f86c');
/**
* Use this managed policy to allow CORS requests from any origin, including preflight requests.
*
* @stability stable
*/
/** Use this managed policy to allow CORS requests from any origin, including preflight requests. */
ResponseHeadersPolicy.CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT = ResponseHeadersPolicy.fromManagedResponseHeadersPolicy('5cc3b908-e619-4b99-88e5-2cf7f45965bd');
/**
* Use this managed policy to add a set of security headers to all responses that CloudFront sends to viewers.
*
* @stability stable
*/
/** Use this managed policy to add a set of security headers to all responses that CloudFront sends to viewers. */
ResponseHeadersPolicy.SECURITY_HEADERS = ResponseHeadersPolicy.fromManagedResponseHeadersPolicy('67f7725c-6f97-4210-82d7-5512b31e9d03');
/**
* Use this managed policy to allow simple CORS requests from any origin and add a set of security headers to all responses that CloudFront sends to viewers.
*
* @stability stable
*/
/** Use this managed policy to allow simple CORS requests from any origin and add a set of security headers to all responses that CloudFront sends to viewers. */
ResponseHeadersPolicy.CORS_ALLOW_ALL_ORIGINS_AND_SECURITY_HEADERS = ResponseHeadersPolicy.fromManagedResponseHeadersPolicy('e61eb60c-9c35-4d20-a928-2b84e02af89c');
/**
* Use this managed policy to allow CORS requests from any origin, including preflight requests, and add a set of security headers to all responses that CloudFront sends to viewers.
*
* @stability stable
*/
/** Use this managed policy to allow CORS requests from any origin, including preflight requests, and add a set of security headers to all responses that CloudFront sends to viewers. */
ResponseHeadersPolicy.CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT_AND_SECURITY_HEADERS = ResponseHeadersPolicy.fromManagedResponseHeadersPolicy('eaab4381-ed33-4a86-88ca-d9558dc6cd63');
/**
* Enum representing possible values of the X-Frame-Options HTTP response header.
*
* @stability stable
*/
var HeadersFrameOption;
(function (HeadersFrameOption) {
/**
* The page can only be displayed in a frame on the same origin as the page itself.
*/
HeadersFrameOption["DENY"] = "DENY";
/**
* The page can only be displayed in a frame on the specified origin.
*/
HeadersFrameOption["SAMEORIGIN"] = "SAMEORIGIN";

@@ -136,16 +114,38 @@ })(HeadersFrameOption = exports.HeadersFrameOption || (exports.HeadersFrameOption = {}));

* Enum representing possible values of the Referrer-Policy HTTP response header.
*
* @stability stable
*/
var HeadersReferrerPolicy;
(function (HeadersReferrerPolicy) {
/**
* The referrer policy is not set.
*/
HeadersReferrerPolicy["NO_REFERRER"] = "no-referrer";
/**
* The referrer policy is no-referrer-when-downgrade.
*/
HeadersReferrerPolicy["NO_REFERRER_WHEN_DOWNGRADE"] = "no-referrer-when-downgrade";
/**
* The referrer policy is origin.
*/
HeadersReferrerPolicy["ORIGIN"] = "origin";
/**
* The referrer policy is origin-when-cross-origin.
*/
HeadersReferrerPolicy["ORIGIN_WHEN_CROSS_ORIGIN"] = "origin-when-cross-origin";
/**
* The referrer policy is same-origin.
*/
HeadersReferrerPolicy["SAME_ORIGIN"] = "same-origin";
/**
* The referrer policy is strict-origin.
*/
HeadersReferrerPolicy["STRICT_ORIGIN"] = "strict-origin";
/**
* The referrer policy is strict-origin-when-cross-origin.
*/
HeadersReferrerPolicy["STRICT_ORIGIN_WHEN_CROSS_ORIGIN"] = "strict-origin-when-cross-origin";
/**
* The referrer policy is unsafe-url.
*/
HeadersReferrerPolicy["UNSAFE_URL"] = "unsafe-url";
})(HeadersReferrerPolicy = exports.HeadersReferrerPolicy || (exports.HeadersReferrerPolicy = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtaGVhZGVycy1wb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNwb25zZS1oZWFkZXJzLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3Q0FBMEQ7QUFFMUQsaUVBQWtFOzs7Ozs7O0FBMkJsRSxNQUFhLHFCQUFzQixTQUFRLGVBQVE7Ozs7SUE2QmpELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBb0MsRUFBRTs7UUFDOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtTQUM5QyxDQUFDLENBQUM7O1FBRUgsTUFBTSx5QkFBeUIsU0FBRyxLQUFLLENBQUMseUJBQXlCLG1DQUFJLFlBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUYsTUFBTSxRQUFRLEdBQUcsSUFBSSwrQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlELDJCQUEyQixFQUFFO2dCQUMzQixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFVBQVUsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUN2RixtQkFBbUIsRUFBRSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDM0gscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDcEk7U0FDRixDQUFDLENBQUM7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eEJELFdBQVkscUJBQXFCO0lBRS9CLG9EQUEyQixDQUFBO0lBRzNCLGtGQUF5RCxDQUFBO0lBR3pELDBDQUFpQixDQUFBO0lBR2pCLDhFQUFxRCxDQUFBO0lBR3JELG9EQUEyQixDQUFBO0lBRzNCLHdEQUErQixDQUFBO0lBRy9CLDRGQUFtRSxDQUFBO0lBR25FLGtEQUF5QixDQUFBO0FBQzNCLENBQUMsRUF4QlcscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUF3QmhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIE5hbWVzLCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5SZXNwb25zZUhlYWRlcnNQb2xpY3kgfSBmcm9tICcuL2Nsb3VkZnJvbnQuZ2VuZXJhdGVkJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElSZXNwb25zZUhlYWRlcnNQb2xpY3kge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQ6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlSGVhZGVyc1BvbGljeVByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb3JzQmVoYXZpb3I/OiBSZXNwb25zZUhlYWRlcnNDb3JzQmVoYXZpb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjdXN0b21IZWFkZXJzQmVoYXZpb3I/OiBSZXNwb25zZUN1c3RvbUhlYWRlcnNCZWhhdmlvcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yPzogUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvcjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgUmVzcG9uc2VIZWFkZXJzUG9saWN5IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUmVzcG9uc2VIZWFkZXJzUG9saWN5IHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPUlNfQUxMT1dfQUxMX09SSUdJTlMgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3kuZnJvbU1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3koJzYwNjY5NjUyLTQ1NWItNGFlOS04NWE0LWM0YzAyMzkzZjg2YycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09SU19BTExPV19BTExfT1JJR0lOU19XSVRIX1BSRUZMSUdIVCA9IFJlc3BvbnNlSGVhZGVyc1BvbGljeS5mcm9tTWFuYWdlZFJlc3BvbnNlSGVhZGVyc1BvbGljeSgnNWNjM2I5MDgtZTYxOS00Yjk5LTg4ZTUtMmNmN2Y0NTk2NWJkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFQ1VSSVRZX0hFQURFUlMgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3kuZnJvbU1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3koJzY3Zjc3MjVjLTZmOTctNDIxMC04MmQ3LTU1MTJiMzFlOWQwMycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPUlNfQUxMT1dfQUxMX09SSUdJTlNfQU5EX1NFQ1VSSVRZX0hFQURFUlMgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3kuZnJvbU1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3koJ2U2MWViNjBjLTljMzUtNGQyMC1hOTI4LTJiODRlMDJhZjg5YycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPUlNfQUxMT1dfQUxMX09SSUdJTlNfV0lUSF9QUkVGTElHSFRfQU5EX1NFQ1VSSVRZX0hFQURFUlMgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3kuZnJvbU1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3koJ2VhYWI0MzgxLWVkMzMtNGE4Ni04OGNhLWQ5NTU4ZGM2Y2Q2MycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBmcm9tUmVzcG9uc2VIZWFkZXJzUG9saWN5SWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQ6IHN0cmluZyk6IElSZXNwb25zZUhlYWRlcnNQb2xpY3kge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQgPSByZXNwb25zZUhlYWRlcnNQb2xpY3lJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZyb21NYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5KG1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3lJZDogc3RyaW5nKTogSVJlc3BvbnNlSGVhZGVyc1BvbGljeSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBpbXBsZW1lbnRzIElSZXNwb25zZUhlYWRlcnNQb2xpY3kge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlSGVhZGVyc1BvbGljeUlkID0gbWFuYWdlZFJlc3BvbnNlSGVhZGVyc1BvbGljeUlkO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5TmFtZSA9IHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWUgPz8gTmFtZXMudW5pcXVlSWQodGhpcyk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5SZXNwb25zZUhlYWRlcnNQb2xpY3kodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5Q29uZmlnOiB7XG4gICAgICAgIG5hbWU6IHJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWUsXG4gICAgICAgIGNvbW1lbnQ6IHByb3BzLmNvbW1lbnQsXG4gICAgICAgIGNvcnNDb25maWc6IHByb3BzLmNvcnNCZWhhdmlvciA/IHRoaXMuX3JlbmRlckNvcnNDb25maWcocHJvcHMuY29yc0JlaGF2aW9yKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgY3VzdG9tSGVhZGVyc0NvbmZpZzogcHJvcHMuY3VzdG9tSGVhZGVyc0JlaGF2aW9yID8gdGhpcy5fcmVuZGVyQ3VzdG9tSGVhZGVyc0NvbmZpZyhwcm9wcy5jdXN0b21IZWFkZXJzQmVoYXZpb3IpIDogdW5kZWZpbmVkLFxuICAgICAgICBzZWN1cml0eUhlYWRlcnNDb25maWc6IHByb3BzLnNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yID8gdGhpcy5fcmVuZGVyU2VjdXJpdHlIZWFkZXJzQ29uZmlnKHByb3BzLnNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc3BvbnNlSGVhZGVyc1BvbGljeUlkID0gcmVzb3VyY2UucmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29yc0NvbmZpZyhiZWhhdmlvcjogUmVzcG9uc2VIZWFkZXJzQ29yc0JlaGF2aW9yKTogQ2ZuUmVzcG9uc2VIZWFkZXJzUG9saWN5LkNvcnNDb25maWdQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzOiBiZWhhdmlvci5hY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFscyxcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnM6IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnMgfSxcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHM6IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHMgfSxcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnM6IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnMgfSxcbiAgICAgIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzOiBiZWhhdmlvci5hY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVycyA/IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzIH0gOiB1bmRlZmluZWQsXG4gICAgICBhY2Nlc3NDb250cm9sTWF4QWdlU2VjOiBiZWhhdmlvci5hY2Nlc3NDb250cm9sTWF4QWdlID8gYmVoYXZpb3IuYWNjZXNzQ29udHJvbE1heEFnZS50b1NlY29uZHMoKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9yaWdpbk92ZXJyaWRlOiBiZWhhdmlvci5vcmlnaW5PdmVycmlkZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ3VzdG9tSGVhZGVyc0NvbmZpZyhiZWhhdmlvcjogUmVzcG9uc2VDdXN0b21IZWFkZXJzQmVoYXZpb3IpOiBDZm5SZXNwb25zZUhlYWRlcnNQb2xpY3kuQ3VzdG9tSGVhZGVyc0NvbmZpZ1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IGJlaGF2aW9yLmN1c3RvbUhlYWRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlclNlY3VyaXR5SGVhZGVyc0NvbmZpZyhiZWhhdmlvcjogUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvcik6IENmblJlc3BvbnNlSGVhZGVyc1BvbGljeS5TZWN1cml0eUhlYWRlcnNDb25maWdQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeTogYmVoYXZpb3IuY29udGVudFNlY3VyaXR5UG9saWN5LFxuICAgICAgY29udGVudFR5cGVPcHRpb25zOiBiZWhhdmlvci5jb250ZW50VHlwZU9wdGlvbnMsXG4gICAgICBmcmFtZU9wdGlvbnM6IGJlaGF2aW9yLmZyYW1lT3B0aW9ucyxcbiAgICAgIHJlZmVycmVyUG9saWN5OiBiZWhhdmlvci5yZWZlcnJlclBvbGljeSxcbiAgICAgIHN0cmljdFRyYW5zcG9ydFNlY3VyaXR5OiBiZWhhdmlvci5zdHJpY3RUcmFuc3BvcnRTZWN1cml0eSA/IHtcbiAgICAgICAgLi4uYmVoYXZpb3Iuc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHksXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xNYXhBZ2VTZWM6IGJlaGF2aW9yLnN0cmljdFRyYW5zcG9ydFNlY3VyaXR5LmFjY2Vzc0NvbnRyb2xNYXhBZ2UudG9TZWNvbmRzKCksXG4gICAgICB9OiB1bmRlZmluZWQsXG4gICAgICB4c3NQcm90ZWN0aW9uOiBiZWhhdmlvci54c3NQcm90ZWN0aW9uLFxuICAgIH07XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VIZWFkZXJzQ29yc0JlaGF2aW9yIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFsczogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnM6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHM6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYWNjZXNzQ29udHJvbEFsbG93T3JpZ2luczogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xNYXhBZ2U/OiBEdXJhdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5PdmVycmlkZTogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VDdXN0b21IZWFkZXJzQmVoYXZpb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY3VzdG9tSGVhZGVyczogUmVzcG9uc2VDdXN0b21IZWFkZXJbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VDdXN0b21IZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaGVhZGVyOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG92ZXJyaWRlOiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlU2VjdXJpdHlIZWFkZXJzQmVoYXZpb3Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRlbnRTZWN1cml0eVBvbGljeT86IFJlc3BvbnNlSGVhZGVyc0NvbnRlbnRTZWN1cml0eVBvbGljeTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29udGVudFR5cGVPcHRpb25zPzogUmVzcG9uc2VIZWFkZXJzQ29udGVudFR5cGVPcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmcmFtZU9wdGlvbnM/OiBSZXNwb25zZUhlYWRlcnNGcmFtZU9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVmZXJyZXJQb2xpY3k/OiBSZXNwb25zZUhlYWRlcnNSZWZlcnJlclBvbGljeTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHN0cmljdFRyYW5zcG9ydFNlY3VyaXR5PzogUmVzcG9uc2VIZWFkZXJzU3RyaWN0VHJhbnNwb3J0U2VjdXJpdHk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgeHNzUHJvdGVjdGlvbj86IFJlc3BvbnNlSGVhZGVyc1hTU1Byb3RlY3Rpb247XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNDb250ZW50U2VjdXJpdHlQb2xpY3kge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRlbnRTZWN1cml0eVBvbGljeTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvdmVycmlkZTogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VIZWFkZXJzQ29udGVudFR5cGVPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb3ZlcnJpZGU6IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNGcmFtZU9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnJhbWVPcHRpb246IEhlYWRlcnNGcmFtZU9wdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG92ZXJyaWRlOiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VIZWFkZXJzUmVmZXJyZXJQb2xpY3kge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVmZXJyZXJQb2xpY3k6IEhlYWRlcnNSZWZlcnJlclBvbGljeTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG92ZXJyaWRlOiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlSGVhZGVyc1N0cmljdFRyYW5zcG9ydFNlY3VyaXR5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xNYXhBZ2U6IER1cmF0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpbmNsdWRlU3ViZG9tYWlucz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb3ZlcnJpZGU6IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHJlbG9hZD86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VIZWFkZXJzWFNTUHJvdGVjdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBtb2RlQmxvY2s/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG92ZXJyaWRlOiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwcm90ZWN0aW9uOiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVwb3J0VXJpPzogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gSGVhZGVyc0ZyYW1lT3B0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgREVOWSA9ICdERU5ZJyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgU0FNRU9SSUdJTiA9ICdTQU1FT1JJR0lOJyxcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIEhlYWRlcnNSZWZlcnJlclBvbGljeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgTk9fUkVGRVJSRVIgPSAnbm8tcmVmZXJyZXInLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIE5PX1JFRkVSUkVSX1dIRU5fRE9XTkdSQURFID0gJ25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgT1JJR0lOID0gJ29yaWdpbicsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIE9SSUdJTl9XSEVOX0NST1NTX09SSUdJTiA9ICdvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFNBTUVfT1JJR0lOID0gJ3NhbWUtb3JpZ2luJyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIFNUUklDVF9PUklHSU4gPSAnc3RyaWN0LW9yaWdpbicsXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBTVFJJQ1RfT1JJR0lOX1dIRU5fQ1JPU1NfT1JJR0lOID0gJ3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgVU5TQUZFX1VSTCA9ICd1bnNhZmUtdXJsJyxcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtaGVhZGVycy1wb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXNwb25zZS1oZWFkZXJzLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3Q0FBMEQ7QUFFMUQsaUVBQWtFO0FBcURsRTs7OztHQUlHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxlQUFRO0lBK0JqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQW9DLEVBQUU7O1FBQzlFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyx5QkFBeUI7U0FDOUMsQ0FBQyxDQUFDOztRQUVILE1BQU0seUJBQXlCLFNBQUcsS0FBSyxDQUFDLHlCQUF5QixtQ0FBSSxZQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFGLE1BQU0sUUFBUSxHQUFHLElBQUksK0NBQXdCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM5RCwyQkFBMkIsRUFBRTtnQkFDM0IsSUFBSSxFQUFFLHlCQUF5QjtnQkFDL0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDdkYsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQzNILHFCQUFxQixFQUFFLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ3BJO1NBQ0YsQ0FBQyxD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QzNCLENBQUMsRUFWVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQVU3QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxxQkF3Q1g7QUF4Q0QsV0FBWSxxQkFBcUI7SUFDL0I7O09BRUc7SUFDSCxvREFBMkIsQ0FBQTtJQUUzQjs7T0FFRztJQUNILGtGQUF5RCxDQUFBO0lBRXpEOztPQUVHO0lBQ0gsMENBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCw4RUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILG9EQUEyQixDQUFBO0lBRTNCOztPQUVHO0lBQ0gsd0RBQStCLENBQUE7SUFFL0I7O09BRUc7SUFDSCw0RkFBbUUsQ0FBQTtJQUVuRTs7T0FFRztJQUNILGtEQUF5QixDQUFBO0FBQzNCLENBQUMsRUF4Q1cscUJBQXFCLEdBQXJCLDZCQUFxQixLQUFyQiw2QkFBcUIsUUF3Q2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIE5hbWVzLCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5SZXNwb25zZUhlYWRlcnNQb2xpY3kgfSBmcm9tICcuL2Nsb3VkZnJvbnQuZ2VuZXJhdGVkJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcmVzcG9uc2UgaGVhZGVycyBwb2xpY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5XG4gICAqIEBhdHRyaWJ1dGVcbiAgICoqL1xuICByZWFkb25seSByZXNwb25zZUhlYWRlcnNQb2xpY3lJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgUmVzcG9uc2UgSGVhZGVycyBQb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNQb2xpY3lQcm9wcyB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBuYW1lIHRvIGlkZW50aWZ5IHRoZSByZXNwb25zZSBoZWFkZXJzIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgZnJvbSB0aGUgYGlkYFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSByZXNwb25zZSBoZWFkZXJzIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb21tZW50XG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2V0IG9mIEhUVFAgcmVzcG9uc2UgaGVhZGVycyB0aGF0IGFyZSB1c2VkIGZvciBjcm9zcy1vcmlnaW4gcmVzb3VyY2Ugc2hhcmluZyAoQ09SUykuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29ycyBiZWhhdmlvclxuICAgKi9cbiAgcmVhZG9ubHkgY29yc0JlaGF2aW9yPzogUmVzcG9uc2VIZWFkZXJzQ29yc0JlaGF2aW9yO1xuXG4gIC8qKlxuICAgKiBBIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2V0IG9mIGN1c3RvbSBIVFRQIHJlc3BvbnNlIGhlYWRlcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY3VzdG9tIGhlYWRlcnMgYmVoYXZpb3JcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUhlYWRlcnNCZWhhdmlvcj86IFJlc3BvbnNlQ3VzdG9tSGVhZGVyc0JlaGF2aW9yO1xuXG4gIC8qKlxuICAgKiBBIGNvbmZpZ3VyYXRpb24gZm9yIGEgc2V0IG9mIHNlY3VyaXR5LXJlbGF0ZWQgSFRUUCByZXNwb25zZSBoZWFkZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNlY3VyaXR5IGhlYWRlcnMgYmVoYXZpb3JcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yPzogUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvcjtcbn1cblxuLyoqXG4gKiBBIFJlc3BvbnNlIEhlYWRlcnMgUG9saWN5IGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpDbG91ZEZyb250OjpSZXNwb25zZUhlYWRlcnNQb2xpY3lcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlSGVhZGVyc1BvbGljeSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSB7XG5cbiAgLyoqIFVzZSB0aGlzIG1hbmFnZWQgcG9saWN5IHRvIGFsbG93IHNpbXBsZSBDT1JTIHJlcXVlc3RzIGZyb20gYW55IG9yaWdpbi4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT1JTX0FMTE9XX0FMTF9PUklHSU5TID0gUmVzcG9uc2VIZWFkZXJzUG9saWN5LmZyb21NYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5KCc2MDY2OTY1Mi00NTViLTRhZTktODVhNC1jNGMwMjM5M2Y4NmMnKTtcbiAgLyoqIFVzZSB0aGlzIG1hbmFnZWQgcG9saWN5IHRvIGFsbG93IENPUlMgcmVxdWVzdHMgZnJvbSBhbnkgb3JpZ2luLCBpbmNsdWRpbmcgcHJlZmxpZ2h0IHJlcXVlc3RzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPUlNfQUxMT1dfQUxMX09SSUdJTlNfV0lUSF9QUkVGTElHSFQgPSBSZXNwb25zZUhlYWRlcnNQb2xpY3kuZnJvbU1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3koJzVjYzNiOTA4LWU2MTktNGI5OS04OGU1LTJjZjdmNDU5NjViZCcpO1xuICAvKiogVXNlIHRoaXMgbWFuYWdlZCBwb2xpY3kgdG8gYWRkIGEgc2V0IG9mIHNlY3VyaXR5IGhlYWRlcnMgdG8gYWxsIHJlc3BvbnNlcyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdmlld2Vycy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRUNVUklUWV9IRUFERVJTID0gUmVzcG9uc2VIZWFkZXJzUG9saWN5LmZyb21NYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5KCc2N2Y3NzI1Yy02Zjk3LTQyMTAtODJkNy01NTEyYjMxZTlkMDMnKTtcbiAgLyoqIFVzZSB0aGlzIG1hbmFnZWQgcG9saWN5IHRvIGFsbG93IHNpbXBsZSBDT1JTIHJlcXVlc3RzIGZyb20gYW55IG9yaWdpbiBhbmQgYWRkIGEgc2V0IG9mIHNlY3VyaXR5IGhlYWRlcnMgdG8gYWxsIHJlc3BvbnNlcyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdmlld2Vycy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT1JTX0FMTE9XX0FMTF9PUklHSU5TX0FORF9TRUNVUklUWV9IRUFERVJTID0gUmVzcG9uc2VIZWFkZXJzUG9saWN5LmZyb21NYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5KCdlNjFlYjYwYy05YzM1LTRkMjAtYTkyOC0yYjg0ZTAyYWY4OWMnKTtcbiAgLyoqIFVzZSB0aGlzIG1hbmFnZWQgcG9saWN5IHRvIGFsbG93IENPUlMgcmVxdWVzdHMgZnJvbSBhbnkgb3JpZ2luLCBpbmNsdWRpbmcgcHJlZmxpZ2h0IHJlcXVlc3RzLCBhbmQgYWRkIGEgc2V0IG9mIHNlY3VyaXR5IGhlYWRlcnMgdG8gYWxsIHJlc3BvbnNlcyB0aGF0IENsb3VkRnJvbnQgc2VuZHMgdG8gdmlld2Vycy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT1JTX0FMTE9XX0FMTF9PUklHSU5TX1dJVEhfUFJFRkxJR0hUX0FORF9TRUNVUklUWV9IRUFERVJTID0gUmVzcG9uc2VIZWFkZXJzUG9saWN5LmZyb21NYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5KCdlYWFiNDM4MS1lZDMzLTRhODYtODhjYS1kOTU1OGRjNmNkNjMnKTtcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIFJlc3BvbnNlIEhlYWRlcnMgUG9saWN5IGZyb20gaXRzIElELlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUmVzcG9uc2VIZWFkZXJzUG9saWN5SWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQ6IHN0cmluZyk6IElSZXNwb25zZUhlYWRlcnNQb2xpY3kge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQgPSByZXNwb25zZUhlYWRlcnNQb2xpY3lJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZyb21NYW5hZ2VkUmVzcG9uc2VIZWFkZXJzUG9saWN5KG1hbmFnZWRSZXNwb25zZUhlYWRlcnNQb2xpY3lJZDogc3RyaW5nKTogSVJlc3BvbnNlSGVhZGVyc1BvbGljeSB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBpbXBsZW1lbnRzIElSZXNwb25zZUhlYWRlcnNQb2xpY3kge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlSGVhZGVyc1BvbGljeUlkID0gbWFuYWdlZFJlc3BvbnNlSGVhZGVyc1BvbGljeUlkO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzcG9uc2VIZWFkZXJzUG9saWN5SWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzcG9uc2VIZWFkZXJzUG9saWN5UHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5yZXNwb25zZUhlYWRlcnNQb2xpY3lOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5TmFtZSA9IHByb3BzLnJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWUgPz8gTmFtZXMudW5pcXVlSWQodGhpcyk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5SZXNwb25zZUhlYWRlcnNQb2xpY3kodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5Q29uZmlnOiB7XG4gICAgICAgIG5hbWU6IHJlc3BvbnNlSGVhZGVyc1BvbGljeU5hbWUsXG4gICAgICAgIGNvbW1lbnQ6IHByb3BzLmNvbW1lbnQsXG4gICAgICAgIGNvcnNDb25maWc6IHByb3BzLmNvcnNCZWhhdmlvciA/IHRoaXMuX3JlbmRlckNvcnNDb25maWcocHJvcHMuY29yc0JlaGF2aW9yKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgY3VzdG9tSGVhZGVyc0NvbmZpZzogcHJvcHMuY3VzdG9tSGVhZGVyc0JlaGF2aW9yID8gdGhpcy5fcmVuZGVyQ3VzdG9tSGVhZGVyc0NvbmZpZyhwcm9wcy5jdXN0b21IZWFkZXJzQmVoYXZpb3IpIDogdW5kZWZpbmVkLFxuICAgICAgICBzZWN1cml0eUhlYWRlcnNDb25maWc6IHByb3BzLnNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yID8gdGhpcy5fcmVuZGVyU2VjdXJpdHlIZWFkZXJzQ29uZmlnKHByb3BzLnNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlc3BvbnNlSGVhZGVyc1BvbGljeUlkID0gcmVzb3VyY2UucmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29yc0NvbmZpZyhiZWhhdmlvcjogUmVzcG9uc2VIZWFkZXJzQ29yc0JlaGF2aW9yKTogQ2ZuUmVzcG9uc2VIZWFkZXJzUG9saWN5LkNvcnNDb25maWdQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzOiBiZWhhdmlvci5hY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFscyxcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnM6IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnMgfSxcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHM6IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHMgfSxcbiAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnM6IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnMgfSxcbiAgICAgIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzOiBiZWhhdmlvci5hY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVycyA/IHsgaXRlbXM6IGJlaGF2aW9yLmFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzIH0gOiB1bmRlZmluZWQsXG4gICAgICBhY2Nlc3NDb250cm9sTWF4QWdlU2VjOiBiZWhhdmlvci5hY2Nlc3NDb250cm9sTWF4QWdlID8gYmVoYXZpb3IuYWNjZXNzQ29udHJvbE1heEFnZS50b1NlY29uZHMoKSA6IHVuZGVmaW5lZCxcbiAgICAgIG9yaWdpbk92ZXJyaWRlOiBiZWhhdmlvci5vcmlnaW5PdmVycmlkZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ3VzdG9tSGVhZGVyc0NvbmZpZyhiZWhhdmlvcjogUmVzcG9uc2VDdXN0b21IZWFkZXJzQmVoYXZpb3IpOiBDZm5SZXNwb25zZUhlYWRlcnNQb2xpY3kuQ3VzdG9tSGVhZGVyc0NvbmZpZ1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IGJlaGF2aW9yLmN1c3RvbUhlYWRlcnMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlclNlY3VyaXR5SGVhZGVyc0NvbmZpZyhiZWhhdmlvcjogUmVzcG9uc2VTZWN1cml0eUhlYWRlcnNCZWhhdmlvcik6IENmblJlc3BvbnNlSGVhZGVyc1BvbGljeS5TZWN1cml0eUhlYWRlcnNDb25maWdQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeTogYmVoYXZpb3IuY29udGVudFNlY3VyaXR5UG9saWN5LFxuICAgICAgY29udGVudFR5cGVPcHRpb25zOiBiZWhhdmlvci5jb250ZW50VHlwZU9wdGlvbnMsXG4gICAgICBmcmFtZU9wdGlvbnM6IGJlaGF2aW9yLmZyYW1lT3B0aW9ucyxcbiAgICAgIHJlZmVycmVyUG9saWN5OiBiZWhhdmlvci5yZWZlcnJlclBvbGljeSxcbiAgICAgIHN0cmljdFRyYW5zcG9ydFNlY3VyaXR5OiBiZWhhdmlvci5zdHJpY3RUcmFuc3BvcnRTZWN1cml0eSA/IHtcbiAgICAgICAgLi4uYmVoYXZpb3Iuc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHksXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xNYXhBZ2VTZWM6IGJlaGF2aW9yLnN0cmljdFRyYW5zcG9ydFNlY3VyaXR5LmFjY2Vzc0NvbnRyb2xNYXhBZ2UudG9TZWNvbmRzKCksXG4gICAgICB9OiB1bmRlZmluZWQsXG4gICAgICB4c3NQcm90ZWN0aW9uOiBiZWhhdmlvci54c3NQcm90ZWN0aW9uLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNldCBvZiBIVFRQIHJlc3BvbnNlIGhlYWRlcnMgdGhhdCBhcmUgdXNlZCBmb3IgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHNoYXJpbmcgKENPUlMpLlxuICogQ2xvdWRGcm9udCBhZGRzIHRoZXNlIGhlYWRlcnMgdG8gSFRUUCByZXNwb25zZXMgdGhhdCBpdCBzZW5kcyBmb3IgQ09SUyByZXF1ZXN0cyB0aGF0IG1hdGNoIGEgY2FjaGUgYmVoYXZpb3JcbiAqIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlSGVhZGVyc0NvcnNCZWhhdmlvciB7XG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBDbG91ZEZyb250IHVzZXMgYXMgdGhlIHZhbHVlIGZvciB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFsczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIEhUVFAgaGVhZGVyIG5hbWVzIHRoYXQgQ2xvdWRGcm9udCBpbmNsdWRlcyBhcyB2YWx1ZXMgZm9yIHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIEhUVFAgcmVzcG9uc2UgaGVhZGVyLlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYFsnKiddYCB0byBhbGxvdyBhbGwgaGVhZGVycy5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgSFRUUCBtZXRob2RzIHRoYXQgQ2xvdWRGcm9udCBpbmNsdWRlcyBhcyB2YWx1ZXMgZm9yIHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIEhUVFAgcmVzcG9uc2UgaGVhZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzQ29udHJvbEFsbG93TWV0aG9kczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcmlnaW5zIChkb21haW4gbmFtZXMpIHRoYXQgQ2xvdWRGcm9udCBjYW4gdXNlIGFzIHRoZSB2YWx1ZSBmb3IgdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBIVFRQIHJlc3BvbnNlIGhlYWRlci5cbiAgICogWW91IGNhbiBzcGVjaWZ5IGBbJyonXWAgdG8gYWxsb3cgYWxsIG9yaWdpbnMuXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NDb250cm9sQWxsb3dPcmlnaW5zOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIEhUVFAgaGVhZGVycyB0aGF0IENsb3VkRnJvbnQgaW5jbHVkZXMgYXMgdmFsdWVzIGZvciB0aGUgQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBgWycqJ11gIHRvIGV4cG9zZSBhbGwgaGVhZGVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBoZWFkZXJzIGV4cG9zZWRcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgbnVtYmVyIHRoYXQgQ2xvdWRGcm9udCB1c2VzIGFzIHRoZSB2YWx1ZSBmb3IgdGhlIEFjY2Vzcy1Db250cm9sLU1heC1BZ2UgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWF4IGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzQ29udHJvbE1heEFnZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBvdmVycmlkZXMgSFRUUCByZXNwb25zZSBoZWFkZXJzIHJlY2VpdmVkIGZyb20gdGhlIG9yaWdpbiB3aXRoIHRoZSBvbmVzIHNwZWNpZmllZCBpbiB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luT3ZlcnJpZGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzZXQgb2YgSFRUUCByZXNwb25zZSBoZWFkZXJzIHRoYXQgYXJlIHNlbnQgZm9yIHJlcXVlc3RzIHRoYXQgbWF0Y2ggYSBjYWNoZSBiZWhhdmlvclxuICogdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVzcG9uc2UgaGVhZGVycyBwb2xpY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VDdXN0b21IZWFkZXJzQmVoYXZpb3Ige1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgSFRUUCByZXNwb25zZSBoZWFkZXJzIGFuZCB0aGVpciB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21IZWFkZXJzOiBSZXNwb25zZUN1c3RvbUhlYWRlcltdO1xufVxuXG4vKipcbiAqIEFuIEhUVFAgcmVzcG9uc2UgaGVhZGVyIG5hbWUgYW5kIGl0cyB2YWx1ZS5cbiAqIENsb3VkRnJvbnQgaW5jbHVkZXMgdGhpcyBoZWFkZXIgaW4gSFRUUCByZXNwb25zZXMgdGhhdCBpdCBzZW5kcyBmb3IgcmVxdWVzdHMgdGhhdCBtYXRjaCBhIGNhY2hlIGJlaGF2aW9yIHRoYXTigJlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlQ3VzdG9tSGVhZGVyIHtcbiAgLyoqXG4gICAqIFRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlciBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IG92ZXJyaWRlcyBhIHJlc3BvbnNlIGhlYWRlciB3aXRoIHRoZSBzYW1lIG5hbWVcbiAgICogcmVjZWl2ZWQgZnJvbSB0aGUgb3JpZ2luIHdpdGggdGhlIGhlYWRlciBzcGVjaWZpZWQgaGVyZS5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlci5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzZXQgb2Ygc2VjdXJpdHktcmVsYXRlZCBIVFRQIHJlc3BvbnNlIGhlYWRlcnMuXG4gKiBDbG91ZEZyb250IGFkZHMgdGhlc2UgaGVhZGVycyB0byBIVFRQIHJlc3BvbnNlcyB0aGF0IGl0IHNlbmRzIGZvciByZXF1ZXN0cyB0aGF0IG1hdGNoIGEgY2FjaGUgYmVoYXZpb3JcbiAqIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlU2VjdXJpdHlIZWFkZXJzQmVoYXZpb3Ige1xuICAvKipcbiAgICogVGhlIHBvbGljeSBkaXJlY3RpdmVzIGFuZCB0aGVpciB2YWx1ZXMgdGhhdCBDbG91ZEZyb250IGluY2x1ZGVzIGFzIHZhbHVlcyBmb3IgdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IEhUVFAgcmVzcG9uc2UgaGVhZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5XG4gICAqL1xuICByZWFkb25seSBjb250ZW50U2VjdXJpdHlQb2xpY3k/OiBSZXNwb25zZUhlYWRlcnNDb250ZW50U2VjdXJpdHlQb2xpY3k7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IGluY2x1ZGVzIHRoZSBYLUNvbnRlbnQtVHlwZS1PcHRpb25zIEhUVFAgcmVzcG9uc2UgaGVhZGVyIHdpdGggaXRzIHZhbHVlIHNldCB0byBub3NuaWZmLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRlbnQgdHlwZSBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBjb250ZW50VHlwZU9wdGlvbnM/OiBSZXNwb25zZUhlYWRlcnNDb250ZW50VHlwZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IGluY2x1ZGVzIHRoZSBYLUZyYW1lLU9wdGlvbnMgSFRUUCByZXNwb25zZSBoZWFkZXIgYW5kIHRoZSBoZWFkZXLigJlzIHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGZyYW1lIG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGZyYW1lT3B0aW9ucz86IFJlc3BvbnNlSGVhZGVyc0ZyYW1lT3B0aW9ucztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIENsb3VkRnJvbnQgaW5jbHVkZXMgdGhlIFJlZmVycmVyLVBvbGljeSBIVFRQIHJlc3BvbnNlIGhlYWRlciBhbmQgdGhlIGhlYWRlcuKAmXMgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcmVmZXJyZXIgcG9saWN5XG4gICAqL1xuICByZWFkb25seSByZWZlcnJlclBvbGljeT86IFJlc3BvbnNlSGVhZGVyc1JlZmVycmVyUG9saWN5O1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBpbmNsdWRlcyB0aGUgU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eSBIVFRQIHJlc3BvbnNlIGhlYWRlciBhbmQgdGhlIGhlYWRlcuKAmXMgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RyaWN0IHRyYW5zcG9ydCBzZWN1cml0eVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHk/OiBSZXNwb25zZUhlYWRlcnNTdHJpY3RUcmFuc3BvcnRTZWN1cml0eTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIENsb3VkRnJvbnQgaW5jbHVkZXMgdGhlIFgtWFNTLVByb3RlY3Rpb24gSFRUUCByZXNwb25zZSBoZWFkZXIgYW5kIHRoZSBoZWFkZXLigJlzIHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHhzcyBwcm90ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSB4c3NQcm90ZWN0aW9uPzogUmVzcG9uc2VIZWFkZXJzWFNTUHJvdGVjdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgcG9saWN5IGRpcmVjdGl2ZXMgYW5kIHRoZWlyIHZhbHVlcyB0aGF0IENsb3VkRnJvbnQgaW5jbHVkZXMgYXMgdmFsdWVzIGZvciB0aGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VIZWFkZXJzQ29udGVudFNlY3VyaXR5UG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kgZGlyZWN0aXZlcyBhbmQgdGhlaXIgdmFsdWVzIHRoYXQgQ2xvdWRGcm9udCBpbmNsdWRlcyBhcyB2YWx1ZXMgZm9yIHRoZSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBIVFRQIHJlc3BvbnNlIGhlYWRlci5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRTZWN1cml0eVBvbGljeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBvdmVycmlkZXMgdGhlIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IEhUVFAgcmVzcG9uc2UgaGVhZGVyXG4gICAqIHJlY2VpdmVkIGZyb20gdGhlIG9yaWdpbiB3aXRoIHRoZSBvbmUgc3BlY2lmaWVkIGluIHRoaXMgcmVzcG9uc2UgaGVhZGVycyBwb2xpY3kuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBpbmNsdWRlcyB0aGUgWC1Db250ZW50LVR5cGUtT3B0aW9ucyBIVFRQIHJlc3BvbnNlIGhlYWRlciB3aXRoIGl0cyB2YWx1ZSBzZXQgdG8gbm9zbmlmZi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNDb250ZW50VHlwZU9wdGlvbnMge1xuICAvKipcbiAgICogQSBCb29sZWFuIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIENsb3VkRnJvbnQgb3ZlcnJpZGVzIHRoZSBYLUNvbnRlbnQtVHlwZS1PcHRpb25zIEhUVFAgcmVzcG9uc2UgaGVhZGVyXG4gICAqIHJlY2VpdmVkIGZyb20gdGhlIG9yaWdpbiB3aXRoIHRoZSBvbmUgc3BlY2lmaWVkIGluIHRoaXMgcmVzcG9uc2UgaGVhZGVycyBwb2xpY3kuXG4gICAqL1xuICByZWFkb25seSBvdmVycmlkZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBpbmNsdWRlcyB0aGUgWC1GcmFtZS1PcHRpb25zIEhUVFAgcmVzcG9uc2UgaGVhZGVyIGFuZCB0aGUgaGVhZGVy4oCZcyB2YWx1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNGcmFtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBYLUZyYW1lLU9wdGlvbnMgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gICAqL1xuICByZWFkb25seSBmcmFtZU9wdGlvbjogSGVhZGVyc0ZyYW1lT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBvdmVycmlkZXMgdGhlIFgtRnJhbWUtT3B0aW9ucyBIVFRQIHJlc3BvbnNlIGhlYWRlclxuICAgKiByZWNlaXZlZCBmcm9tIHRoZSBvcmlnaW4gd2l0aCB0aGUgb25lIHNwZWNpZmllZCBpbiB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIENsb3VkRnJvbnQgaW5jbHVkZXMgdGhlIFJlZmVycmVyLVBvbGljeSBIVFRQIHJlc3BvbnNlIGhlYWRlciBhbmQgdGhlIGhlYWRlcuKAmXMgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzcG9uc2VIZWFkZXJzUmVmZXJyZXJQb2xpY3kge1xuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBSZWZlcnJlci1Qb2xpY3kgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gICAqL1xuICByZWFkb25seSByZWZlcnJlclBvbGljeTogSGVhZGVyc1JlZmVycmVyUG9saWN5O1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBvdmVycmlkZXMgdGhlIFJlZmVycmVyLVBvbGljeSBIVFRQIHJlc3BvbnNlIGhlYWRlclxuICAgKiByZWNlaXZlZCBmcm9tIHRoZSBvcmlnaW4gd2l0aCB0aGUgb25lIHNwZWNpZmllZCBpbiB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIENsb3VkRnJvbnQgaW5jbHVkZXMgdGhlIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHkgSFRUUCByZXNwb25zZSBoZWFkZXIgYW5kIHRoZSBoZWFkZXLigJlzIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlSGVhZGVyc1N0cmljdFRyYW5zcG9ydFNlY3VyaXR5IHtcbiAgLyoqXG4gICAqIEEgbnVtYmVyIHRoYXQgQ2xvdWRGcm9udCB1c2VzIGFzIHRoZSB2YWx1ZSBmb3IgdGhlIG1heC1hZ2UgZGlyZWN0aXZlIGluIHRoZSBTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5IEhUVFAgcmVzcG9uc2UgaGVhZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IGluY2x1ZGVzIHRoZSBpbmNsdWRlU3ViRG9tYWlucyBkaXJlY3RpdmUgaW4gdGhlIFN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHkgSFRUUCByZXNwb25zZSBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlU3ViZG9tYWlucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IG92ZXJyaWRlcyB0aGUgU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eSBIVFRQIHJlc3BvbnNlIGhlYWRlclxuICAgKiByZWNlaXZlZCBmcm9tIHRoZSBvcmlnaW4gd2l0aCB0aGUgb25lIHNwZWNpZmllZCBpbiB0aGlzIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IGluY2x1ZGVzIHRoZSBwcmVsb2FkIGRpcmVjdGl2ZSBpbiB0aGUgU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eSBIVFRQIHJlc3BvbnNlIGhlYWRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHByZWxvYWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IGluY2x1ZGVzIHRoZSBYLVhTUy1Qcm90ZWN0aW9uIEhUVFAgcmVzcG9uc2UgaGVhZGVyIGFuZCB0aGUgaGVhZGVy4oCZcyB2YWx1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUhlYWRlcnNYU1NQcm90ZWN0aW9uIHtcbiAgLyoqXG4gICAqIEEgQm9vbGVhbiB0aGF0IGRldGVybWluZXMgd2hldGhlciBDbG91ZEZyb250IGluY2x1ZGVzIHRoZSBtb2RlPWJsb2NrIGRpcmVjdGl2ZSBpbiB0aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtb2RlQmxvY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgQ2xvdWRGcm9udCBvdmVycmlkZXMgdGhlIFgtWFNTLVByb3RlY3Rpb24gSFRUUCByZXNwb25zZSBoZWFkZXJcbiAgICogcmVjZWl2ZWQgZnJvbSB0aGUgb3JpZ2luIHdpdGggdGhlIG9uZSBzcGVjaWZpZWQgaW4gdGhpcyByZXNwb25zZSBoZWFkZXJzIHBvbGljeS5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIEJvb2xlYW4gdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSBvZiB0aGUgWC1YU1MtUHJvdGVjdGlvbiBIVFRQIHJlc3BvbnNlIGhlYWRlci5cbiAgICogV2hlbiB0aGlzIHNldHRpbmcgaXMgdHJ1ZSwgdGhlIHZhbHVlIG9mIHRoZSBYLVhTUy1Qcm90ZWN0aW9uIGhlYWRlciBpcyAxLlxuICAgKiBXaGVuIHRoaXMgc2V0dGluZyBpcyBmYWxzZSwgdGhlIHZhbHVlIG9mIHRoZSBYLVhTUy1Qcm90ZWN0aW9uIGhlYWRlciBpcyAwLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdGVjdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSByZXBvcnRpbmcgVVJJLCB3aGljaCBDbG91ZEZyb250IHVzZXMgYXMgdGhlIHZhbHVlIG9mIHRoZSByZXBvcnQgZGlyZWN0aXZlIGluIHRoZSBYLVhTUy1Qcm90ZWN0aW9uIGhlYWRlci5cbiAgICogWW91IGNhbm5vdCBzcGVjaWZ5IGEgUmVwb3J0VXJpIHdoZW4gTW9kZUJsb2NrIGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcmVwb3J0IHVyaVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0VXJpPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIHBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgWC1GcmFtZS1PcHRpb25zIEhUVFAgcmVzcG9uc2UgaGVhZGVyLlxuICovXG5leHBvcnQgZW51bSBIZWFkZXJzRnJhbWVPcHRpb24ge1xuICAvKipcbiAgICogVGhlIHBhZ2UgY2FuIG9ubHkgYmUgZGlzcGxheWVkIGluIGEgZnJhbWUgb24gdGhlIHNhbWUgb3JpZ2luIGFzIHRoZSBwYWdlIGl0c2VsZi5cbiAgICovXG4gIERFTlkgPSAnREVOWScsXG5cbiAgLyoqXG4gICAqIFRoZSBwYWdlIGNhbiBvbmx5IGJlIGRpc3BsYXllZCBpbiBhIGZyYW1lIG9uIHRoZSBzcGVjaWZpZWQgb3JpZ2luLlxuICAgKi9cbiAgU0FNRU9SSUdJTiA9ICdTQU1FT1JJR0lOJyxcbn1cblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyBwb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIFJlZmVycmVyLVBvbGljeSBIVFRQIHJlc3BvbnNlIGhlYWRlci5cbiAqL1xuZXhwb3J0IGVudW0gSGVhZGVyc1JlZmVycmVyUG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSByZWZlcnJlciBwb2xpY3kgaXMgbm90IHNldC5cbiAgICovXG4gIE5PX1JFRkVSUkVSID0gJ25vLXJlZmVycmVyJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS5cbiAgICovXG4gIE5PX1JFRkVSUkVSX1dIRU5fRE9XTkdSQURFID0gJ25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyBvcmlnaW4uXG4gICAqL1xuICBPUklHSU4gPSAnb3JpZ2luJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4uXG4gICAqL1xuICBPUklHSU5fV0hFTl9DUk9TU19PUklHSU4gPSAnb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyBzYW1lLW9yaWdpbi5cbiAgICovXG4gIFNBTUVfT1JJR0lOID0gJ3NhbWUtb3JpZ2luJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyBzdHJpY3Qtb3JpZ2luLlxuICAgKi9cbiAgU1RSSUNUX09SSUdJTiA9ICdzdHJpY3Qtb3JpZ2luJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luLlxuICAgKi9cbiAgU1RSSUNUX09SSUdJTl9XSEVOX0NST1NTX09SSUdJTiA9ICdzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJyxcblxuICAvKipcbiAgICogVGhlIHJlZmVycmVyIHBvbGljeSBpcyB1bnNhZmUtdXJsLlxuICAgKi9cbiAgVU5TQUZFX1VSTCA9ICd1bnNhZmUtdXJsJyxcbn1cbiJdfQ==

@@ -13,41 +13,27 @@ import * as certificatemanager from '@aws-cdk/aws-certificatemanager';

/**
* HTTP status code to failover to second origin.
*
* @stability stable
* HTTP status code to failover to second origin
*/
export declare enum FailoverStatusCode {
/**
* Forbidden (403).
*
* @stability stable
* Forbidden (403)
*/
FORBIDDEN = 403,
/**
* Not found (404).
*
* @stability stable
* Not found (404)
*/
NOT_FOUND = 404,
/**
* Internal Server Error (500).
*
* @stability stable
* Internal Server Error (500)
*/
INTERNAL_SERVER_ERROR = 500,
/**
* Bad Gateway (502).
*
* @stability stable
* Bad Gateway (502)
*/
BAD_GATEWAY = 502,
/**
* Service Unavailable (503).
*
* @stability stable
* Service Unavailable (503)
*/
SERVICE_UNAVAILABLE = 503,
/**
* Gateway Timeout (504).
*
* @stability stable
* Gateway Timeout (504)
*/

@@ -57,3 +43,3 @@ GATEWAY_TIMEOUT = 504

/**
* (deprecated) Configuration for custom domain names.
* Configuration for custom domain names
*

@@ -64,3 +50,2 @@ * CloudFront can use a custom domain that you provide instead of a

* these additional domains.
*
* @deprecated see {@link CloudFrontWebDistributionProps#viewerCertificate} with {@link ViewerCertificate#acmCertificate}

@@ -70,17 +55,13 @@ */

/**
* (deprecated) ARN of an AWS Certificate Manager (ACM) certificate.
*
* @deprecated
* ARN of an AWS Certificate Manager (ACM) certificate.
*/
readonly acmCertRef: string;
/**
* (deprecated) Domain names on the certificate.
* Domain names on the certificate
*
* Both main domain name and Subject Alternative Names.
*
* @deprecated
*/
readonly names: string[];
/**
* (deprecated) How CloudFront should serve HTTPS requests.
* How CloudFront should serve HTTPS requests.
*

@@ -91,7 +72,6 @@ * See the notes on SSLMethod if you wish to use other SSL termination types.

* @see https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ViewerCertificate.html
* @deprecated
*/
readonly sslMethod?: SSLMethod;
/**
* (deprecated) The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
* The minimum version of the SSL protocol that you want CloudFront to use for HTTPS connections.
*

@@ -102,3 +82,2 @@ * CloudFront serves your objects only to browsers or devices that support at

* @default - SSLv3 if sslMethod VIP, TLSv1 if sslMethod SNI
* @deprecated
*/

@@ -108,26 +87,21 @@ readonly securityPolicy?: SecurityPolicyProtocol;

/**
* Logging configuration for incoming requests.
*
* @stability stable
* Logging configuration for incoming requests
*/
export interface LoggingConfiguration {
/**
* Bucket to log requests to.
* Bucket to log requests to
*
* @default - A logging bucket is automatically created.
* @stability stable
*/
readonly bucket?: s3.IBucket;
/**
* Whether to include the cookies in the logs.
* Whether to include the cookies in the logs
*
* @default false
* @stability stable
*/
readonly includeCookies?: boolean;
/**
* Where in the bucket to store logs.
* Where in the bucket to store logs
*
* @default - No prefix.
* @stability stable
*/

@@ -138,3 +112,2 @@ readonly prefix?: string;

* A source configuration is a wrapper for CloudFront origins and behaviors.
*
* An origin is what CloudFront will "be in front of" - that is, CloudFront will pull it's assets from an origin.

@@ -145,4 +118,2 @@ *

* One or the other must be passed, and it is invalid to pass both in the same SourceConfiguration.
*
* @stability stable
*/

@@ -152,7 +123,5 @@ export interface SourceConfiguration {

* The number of times that CloudFront attempts to connect to the origin.
*
* You can specify 1, 2, or 3 as the number of attempts.
*
* @default 3
* @stability stable
*/

@@ -162,13 +131,9 @@ readonly connectionAttempts?: number;

* The number of seconds that CloudFront waits when trying to establish a connection to the origin.
*
* You can specify a number of seconds between 1 and 10 (inclusive).
*
* @default cdk.Duration.seconds(10)
* @stability stable
*/
readonly connectionTimeout?: cdk.Duration;
/**
* An s3 origin source - if you're using s3 for your assets.
*
* @stability stable
* An s3 origin source - if you're using s3 for your assets
*/

@@ -178,25 +143,20 @@ readonly s3OriginSource?: S3OriginConfig;

* A custom origin source - for all non-s3 sources.
*
* @stability stable
*/
readonly customOriginSource?: CustomOriginConfig;
/**
* An s3 origin source for failover in case the s3OriginSource returns invalid status code.
* An s3 origin source for failover in case the s3OriginSource returns invalid status code
*
* @default - no failover configuration
* @stability stable
*/
readonly failoverS3OriginSource?: S3OriginConfig;
/**
* A custom origin source for failover in case the s3OriginSource returns invalid status code.
* A custom origin source for failover in case the s3OriginSource returns invalid status code
*
* @default - no failover configuration
* @stability stable
*/
readonly failoverCustomOriginSource?: CustomOriginConfig;
/**
* HTTP status code to failover to second origin.
* HTTP status code to failover to second origin
*
* @default [500, 502, 503, 504]
* @stability stable
*/

@@ -206,10 +166,7 @@ readonly failoverCriteriaStatusCodes?: FailoverStatusCode[];

* The behaviors associated with this source.
*
* At least one (default) behavior must be included.
*
* @stability stable
*/
readonly behaviors: Behavior[];
/**
* (deprecated) The relative path to the origin root to use for sources.
* The relative path to the origin root to use for sources.
*

@@ -221,3 +178,3 @@ * @default /

/**
* (deprecated) Any additional headers to pass to the origin.
* Any additional headers to pass to the origin
*

@@ -231,7 +188,7 @@ * @default - No additional headers are passed.

/**
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance
*
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html
*
* @default - origin shield not enabled
* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html
* @stability stable
*/

@@ -241,27 +198,19 @@ readonly originShieldRegion?: string;

/**
* A custom origin configuration.
*
* @stability stable
* A custom origin configuration
*/
export interface CustomOriginConfig {
/**
* The domain name of the custom origin.
*
* Should not include the path - that should be in the parent SourceConfiguration
*
* @stability stable
* The domain name of the custom origin. Should not include the path - that should be in the parent SourceConfiguration
*/
readonly domainName: string;
/**
* The origin HTTP port.
* The origin HTTP port
*
* @default 80
* @stability stable
*/
readonly httpPort?: number;
/**
* The origin HTTPS port.
* The origin HTTPS port
*
* @default 443
* @stability stable
*/

@@ -273,3 +222,2 @@ readonly httpsPort?: number;

* @default Duration.seconds(5)
* @stability stable
*/

@@ -281,10 +229,8 @@ readonly originKeepaliveTimeout?: cdk.Duration;

* @default OriginProtocolPolicy.HttpsOnly
* @stability stable
*/
readonly originProtocolPolicy?: OriginProtocolPolicy;
/**
* The read timeout when calling the origin in seconds.
* The read timeout when calling the origin in seconds
*
* @default Duration.seconds(30)
* @stability stable
*/

@@ -296,3 +242,2 @@ readonly originReadTimeout?: cdk.Duration;

* @default OriginSslPolicy.TLS_V1_2
* @stability stable
*/

@@ -304,10 +249,8 @@ readonly allowedOriginSSLVersions?: OriginSslPolicy[];

* @default /
* @stability stable
*/
readonly originPath?: string;
/**
* Any additional headers to pass to the origin.
* Any additional headers to pass to the origin
*
* @default - No additional headers are passed.
* @stability stable
*/

@@ -318,40 +261,20 @@ readonly originHeaders?: {

/**
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance
*
* @default - origin shield not enabled
* @stability stable
*/
readonly originShieldRegion?: string;
}
/**
* @stability stable
*/
export declare enum OriginSslPolicy {
/**
* @stability stable
*/
SSL_V3 = "SSLv3",
/**
* @stability stable
*/
TLS_V1 = "TLSv1",
/**
* @stability stable
*/
TLS_V1_1 = "TLSv1.1",
/**
* @stability stable
*/
TLS_V1_2 = "TLSv1.2"
}
/**
* S3 origin configuration for CloudFront.
*
* @stability stable
* S3 origin configuration for CloudFront
*/
export interface S3OriginConfig {
/**
* The source bucket to serve content from.
*
* @stability stable
* The source bucket to serve content from
*/

@@ -363,3 +286,2 @@ readonly s3BucketSource: s3.IBucket;

* @default No Origin Access Identity which requires the S3 bucket to be public accessible
* @stability stable
*/

@@ -371,10 +293,8 @@ readonly originAccessIdentity?: IOriginAccessIdentity;

* @default /
* @stability stable
*/
readonly originPath?: string;
/**
* Any additional headers to pass to the origin.
* Any additional headers to pass to the origin
*
* @default - No additional headers are passed.
* @stability stable
*/

@@ -385,6 +305,5 @@ readonly originHeaders?: {

/**
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance.
* When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance
*
* @default - origin shield not enabled
* @stability stable
*/

@@ -395,17 +314,6 @@ readonly originShieldRegion?: string;

* An enum for the supported methods to a CloudFront distribution.
*
* @stability stable
*/
export declare enum CloudFrontAllowedMethods {
/**
* @stability stable
*/
GET_HEAD = "GH",
/**
* @stability stable
*/
GET_HEAD_OPTIONS = "GHO",
/**
* @stability stable
*/
ALL = "ALL"

@@ -415,13 +323,5 @@ }

* Enums for the methods CloudFront can cache.
*
* @stability stable
*/
export declare enum CloudFrontAllowedCachedMethods {
/**
* @stability stable
*/
GET_HEAD = "GH",
/**
* @stability stable
*/
GET_HEAD_OPTIONS = "GHO"

@@ -431,4 +331,2 @@ }

* A CloudFront behavior wrapper.
*
* @stability stable
*/

@@ -440,3 +338,2 @@ export interface Behavior {

* @default true
* @stability stable
*/

@@ -449,13 +346,9 @@ readonly compress?: boolean;

* The default behavior is allowed to omit the "path" property.
*
* @stability stable
*/
readonly isDefaultBehavior?: boolean;
/**
* (deprecated) Trusted signers is how CloudFront allows you to serve private content.
*
* Trusted signers is how CloudFront allows you to serve private content.
* The signers are the account IDs that are allowed to sign cookies/presigned URLs for this distribution.
*
* If you pass a non empty value, all requests for this behavior must be signed (no public access will be allowed)
*
* @deprecated - We recommend using trustedKeyGroups instead of trustedSigners.

@@ -469,6 +362,6 @@ */

* @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
* @stability stable
*/
readonly trustedKeyGroups?: IKeyGroup[];
/**
*
* The default amount of time CloudFront will cache an object.

@@ -478,5 +371,4 @@ *

* such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects.
* @default 86400 (1 day)
*
* @default 86400 (1 day)
* @stability stable
*/

@@ -488,3 +380,2 @@ readonly defaultTtl?: cdk.Duration;

* @default GET_HEAD
* @stability stable
*/

@@ -494,6 +385,4 @@ readonly allowedMethods?: CloudFrontAllowedMethods;

* The path this behavior responds to.
*
* Required for all non-default behaviors. (The default behavior implicitly has "*" as the path pattern. )
*
* @stability stable
*/

@@ -505,3 +394,2 @@ readonly pathPattern?: string;

* @default GET_HEAD
* @stability stable
*/

@@ -513,16 +401,15 @@ readonly cachedMethods?: CloudFrontAllowedCachedMethods;

* @default none (no cookies - no headers)
* @stability stable
*
*/
readonly forwardedValues?: CfnDistribution.ForwardedValuesProperty;
/**
* The minimum amount of time that you want objects to stay in the cache before CloudFront queries your origin.
*
* @stability stable
* The minimum amount of time that you want objects to stay in the cache
* before CloudFront queries your origin.
*/
readonly minTtl?: cdk.Duration;
/**
* The max amount of time you want objects to stay in the cache before CloudFront queries your origin.
* The max amount of time you want objects to stay in the cache
* before CloudFront queries your origin.
*
* @default Duration.seconds(31536000) (one year)
* @stability stable
*/

@@ -534,3 +421,2 @@ readonly maxTtl?: cdk.Duration;

* @default No lambda function associated
* @stability stable
*/

@@ -542,3 +428,2 @@ readonly lambdaFunctionAssociations?: LambdaFunctionAssociation[];

* @default - no functions will be invoked
* @stability stable
*/

@@ -550,20 +435,13 @@ readonly functionAssociations?: FunctionAssociation[];

* @default - the distribution wide viewer protocol policy will be used
* @stability stable
*/
readonly viewerProtocolPolicy?: ViewerProtocolPolicy;
}
/**
* @stability stable
*/
export interface LambdaFunctionAssociation {
/**
* The lambda event type defines at which event the lambda is called during the request lifecycle.
*
* @stability stable
* The lambda event type defines at which event the lambda
* is called during the request lifecycle
*/
readonly eventType: LambdaEdgeEventType;
/**
* A version of the lambda to associate.
*
* @stability stable
* A version of the lambda to associate
*/

@@ -573,3 +451,2 @@ readonly lambdaFunction: lambda.IVersion;

* Allows a Lambda function to have read access to the body content.
*
* Only valid for "request" event types (`ORIGIN_REQUEST` or `VIEWER_REQUEST`).

@@ -579,9 +456,5 @@ * See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html

* @default false
* @stability stable
*/
readonly includeBody?: boolean;
}
/**
* @stability stable
*/
export interface ViewerCertificateOptions {

@@ -595,3 +468,2 @@ /**

* @see https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ViewerCertificate.html
* @stability stable
*/

@@ -606,9 +478,6 @@ readonly sslMethod?: SSLMethod;

* @default - SSLv3 if sslMethod VIP, TLSv1 if sslMethod SNI
* @stability stable
*/
readonly securityPolicy?: SecurityPolicyProtocol;
/**
* Domain names on the certificate (both main domain name and Subject Alternative names).
*
* @stability stable
* Domain names on the certificate (both main domain name and Subject Alternative names)
*/

@@ -618,5 +487,3 @@ readonly aliases?: string[];

/**
* Viewer certificate configuration class.
*
* @stability stable
* Viewer certificate configuration class
*/

@@ -627,22 +494,23 @@ export declare class ViewerCertificate {

/**
* Generate an AWS Certificate Manager (ACM) viewer certificate configuration.
* Generate an AWS Certificate Manager (ACM) viewer certificate configuration
*
* @param certificate AWS Certificate Manager (ACM) certificate.
* @param options certificate configuration options.
* @stability stable
* Your certificate must be located in the us-east-1 (US East (N. Virginia)) region to be accessed by CloudFront
* @param options certificate configuration options
*/
static fromAcmCertificate(certificate: certificatemanager.ICertificate, options?: ViewerCertificateOptions): ViewerCertificate;
/**
* Generate an IAM viewer certificate configuration.
* Generate an IAM viewer certificate configuration
*
* @param iamCertificateId Identifier of the IAM certificate.
* @param options certificate configuration options.
* @stability stable
* @param iamCertificateId Identifier of the IAM certificate
* @param options certificate configuration options
*/
static fromIamCertificate(iamCertificateId: string, options?: ViewerCertificateOptions): ViewerCertificate;
/**
* Generate a viewer certifcate configuration using the CloudFront default certificate (e.g. d111111abcdef8.cloudfront.net) and a {@link SecurityPolicyProtocol.TLS_V1} security policy.
* Generate a viewer certifcate configuration using
* the CloudFront default certificate (e.g. d111111abcdef8.cloudfront.net)
* and a {@link SecurityPolicyProtocol.TLS_V1} security policy.
*
* @param aliases Alternative CNAME aliases You also must create a CNAME record with your DNS service to route queries.
* @stability stable
* @param aliases Alternative CNAME aliases
* You also must create a CNAME record with your DNS service to route queries
*/

@@ -652,8 +520,5 @@ static fromCloudFrontDefaultCertificate(...aliases: string[]): ViewerCertificate;

}
/**
* @stability stable
*/
export interface CloudFrontWebDistributionProps {
/**
* (deprecated) AliasConfiguration is used to configured CloudFront to respond to requests on custom domain names.
* AliasConfiguration is used to configured CloudFront to respond to requests on custom domain names.
*

@@ -668,3 +533,2 @@ * @default - None.

* @default - No comment is added to distribution.
* @stability stable
*/

@@ -676,3 +540,2 @@ readonly comment?: string;

* @default true
* @stability stable
*/

@@ -684,3 +547,2 @@ readonly enabled?: boolean;

* @default - "index.html" is served.
* @stability stable
*/

@@ -692,3 +554,2 @@ readonly defaultRootObject?: string;

* @default true
* @stability stable
*/

@@ -700,10 +561,8 @@ readonly enableIpV6?: boolean;

* @default HttpVersion.HTTP2
* @stability stable
*/
readonly httpVersion?: HttpVersion;
/**
* The price class for the distribution (this impacts how many locations CloudFront uses for your distribution, and billing).
* The price class for the distribution (this impacts how many locations CloudFront uses for your distribution, and billing)
*
* @default PriceClass.PRICE_CLASS_100 the cheapest option for CloudFront is picked by default.
* @stability stable
*/

@@ -715,11 +574,6 @@ readonly priceClass?: PriceClass;

* @default RedirectToHTTPs
* @stability stable
*/
readonly viewerProtocolPolicy?: ViewerProtocolPolicy;
/**
* The origin configurations for this distribution.
*
* Behaviors are a part of the origin.
*
* @stability stable
* The origin configurations for this distribution. Behaviors are a part of the origin.
*/

@@ -729,3 +583,2 @@ readonly originConfigs: SourceConfiguration[];

* Optional - if we should enable logging.
*
* You can pass an empty object ({}) to have us auto create a bucket for logging.

@@ -735,7 +588,6 @@ * Omission of this property indicates no logging is to be enabled.

* @default - no logging is enabled by default.
* @stability stable
*/
readonly loggingConfig?: LoggingConfiguration;
/**
* How CloudFront should handle requests that are not successful (eg PageNotFound).
* How CloudFront should handle requests that are not successful (eg PageNotFound)
*

@@ -746,3 +598,2 @@ * By default, CloudFront does not replace HTTP status codes in the 4xx and 5xx range

* @default - No custom error configuration.
* @stability stable
*/

@@ -758,13 +609,16 @@ readonly errorConfigurations?: CfnDistribution.CustomErrorResponseProperty[];

*
* @see https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html
* @see https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html#API_CreateDistribution_RequestParameters.
*
* @default - No AWS Web Application Firewall web access control list (web ACL).
* @see https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html#API_CreateDistribution_RequestParameters.
* @stability stable
*/
readonly webACLId?: string;
/**
* Specifies whether you want viewers to use HTTP or HTTPS to request your objects, whether you're using an alternate domain name with HTTPS, and if so, if you're using AWS Certificate Manager (ACM) or a third-party certificate authority.
* Specifies whether you want viewers to use HTTP or HTTPS to request your objects,
* whether you're using an alternate domain name with HTTPS, and if so,
* if you're using AWS Certificate Manager (ACM) or a third-party certificate authority.
*
* @default ViewerCertificate.fromCloudFrontDefaultCertificate()
*
* @see https://aws.amazon.com/premiumsupport/knowledge-center/custom-ssl-certificate-cloudfront/
* @stability stable
*/

@@ -776,3 +630,2 @@ readonly viewerCertificate?: ViewerCertificate;

* @default No geo restriction
* @stability stable
*/

@@ -783,4 +636,2 @@ readonly geoRestriction?: GeoRestriction;

* Attributes used to import a Distribution.
*
* @stability stable
*/

@@ -791,4 +642,3 @@ export interface CloudFrontWebDistributionAttributes {

*
* @stability stable
* @attribute true
* @attribute
*/

@@ -799,4 +649,3 @@ readonly domainName: string;

*
* @stability stable
* @attribute true
* @attribute
*/

@@ -806,4 +655,4 @@ readonly distributionId: string;

/**
* Amazon CloudFront is a global content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to your viewers with low latency and high transfer speeds.
*
* Amazon CloudFront is a global content delivery network (CDN) service that securely delivers data, videos,
* applications, and APIs to your viewers with low latency and high transfer speeds.
* CloudFront fronts user provided content and caches it at edge locations across the world.

@@ -817,10 +666,10 @@ *

* const distribution = new cloudfront.CloudFrontWebDistribution(this, 'MyDistribution', {
* originConfigs: [
* {
* s3OriginSource: {
* s3BucketSource: sourceBucket,
* },
* behaviors : [ {isDefaultBehavior: true}],
* },
* ],
* originConfigs: [
* {
* s3OriginSource: {
* s3BucketSource: sourceBucket,
* },
* behaviors : [ {isDefaultBehavior: true}],
* },
* ],
* });

@@ -833,3 +682,2 @@ * ```

*
* @stability stable
* @resource AWS::CloudFront::Distribution

@@ -840,4 +688,2 @@ */

* Creates a construct that represents an external (imported) distribution.
*
* @stability stable
*/

@@ -847,11 +693,7 @@ static fromDistributionAttributes(scope: Construct, id: string, attrs: CloudFrontWebDistributionAttributes): IDistribution;

* The logging bucket for this CloudFront distribution.
*
* If logging is not enabled for this distribution - this property will be undefined.
*
* @stability stable
*/
readonly loggingBucket?: s3.IBucket;
/**
* (deprecated) The domain name created by CloudFront for this distribution.
*
* The domain name created by CloudFront for this distribution.
* If you are using aliases for your distribution, this is the domainName your DNS records should point to.

@@ -865,7 +707,4 @@ * (In Route53, you could create an ALIAS record to this value, for example.)

* The domain name created by CloudFront for this distribution.
*
* If you are using aliases for your distribution, this is the domainName your DNS records should point to.
* (In Route53, you could create an ALIAS record to this value, for example.)
*
* @stability stable
*/

@@ -875,4 +714,2 @@ readonly distributionDomainName: string;

* The distribution ID for this distribution.
*
* @stability stable
*/

@@ -888,5 +725,2 @@ readonly distributionId: string;

private readonly VALID_SSL_PROTOCOLS;
/**
* @stability stable
*/
constructor(scope: Construct, id: string, props: CloudFrontWebDistributionProps);

@@ -893,0 +727,0 @@ private toBehavior;

{
"name": "@aws-cdk/aws-cloudfront",
"version": "1.144.0",
"version": "1.145.0",
"description": "The CDK Construct Library for AWS::CloudFront",

@@ -82,7 +82,7 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assertions": "1.144.0",
"@aws-cdk/cdk-build-tools": "1.144.0",
"@aws-cdk/cdk-integ-tools": "1.144.0",
"@aws-cdk/cfn2ts": "1.144.0",
"@aws-cdk/pkglint": "1.144.0",
"@aws-cdk/assertions": "1.145.0",
"@aws-cdk/cdk-build-tools": "1.145.0",
"@aws-cdk/cdk-integ-tools": "1.145.0",
"@aws-cdk/cfn2ts": "1.145.0",
"@aws-cdk/pkglint": "1.145.0",
"@types/jest": "^27.4.0",

@@ -93,12 +93,12 @@ "aws-sdk": "^2.848.0",

"dependencies": {
"@aws-cdk/aws-certificatemanager": "1.144.0",
"@aws-cdk/aws-cloudwatch": "1.144.0",
"@aws-cdk/aws-ec2": "1.144.0",
"@aws-cdk/aws-iam": "1.144.0",
"@aws-cdk/aws-kms": "1.144.0",
"@aws-cdk/aws-lambda": "1.144.0",
"@aws-cdk/aws-s3": "1.144.0",
"@aws-cdk/aws-ssm": "1.144.0",
"@aws-cdk/core": "1.144.0",
"@aws-cdk/cx-api": "1.144.0",
"@aws-cdk/aws-certificatemanager": "1.145.0",
"@aws-cdk/aws-cloudwatch": "1.145.0",
"@aws-cdk/aws-ec2": "1.145.0",
"@aws-cdk/aws-iam": "1.145.0",
"@aws-cdk/aws-kms": "1.145.0",
"@aws-cdk/aws-lambda": "1.145.0",
"@aws-cdk/aws-s3": "1.145.0",
"@aws-cdk/aws-ssm": "1.145.0",
"@aws-cdk/core": "1.145.0",
"@aws-cdk/cx-api": "1.145.0",
"constructs": "^3.3.69"

@@ -108,12 +108,12 @@ },

"peerDependencies": {
"@aws-cdk/aws-certificatemanager": "1.144.0",
"@aws-cdk/aws-cloudwatch": "1.144.0",
"@aws-cdk/aws-ec2": "1.144.0",
"@aws-cdk/aws-iam": "1.144.0",
"@aws-cdk/aws-kms": "1.144.0",
"@aws-cdk/aws-lambda": "1.144.0",
"@aws-cdk/aws-s3": "1.144.0",
"@aws-cdk/aws-ssm": "1.144.0",
"@aws-cdk/core": "1.144.0",
"@aws-cdk/cx-api": "1.144.0",
"@aws-cdk/aws-certificatemanager": "1.145.0",
"@aws-cdk/aws-cloudwatch": "1.145.0",
"@aws-cdk/aws-ec2": "1.145.0",
"@aws-cdk/aws-iam": "1.145.0",
"@aws-cdk/aws-kms": "1.145.0",
"@aws-cdk/aws-lambda": "1.145.0",
"@aws-cdk/aws-s3": "1.145.0",
"@aws-cdk/aws-ssm": "1.145.0",
"@aws-cdk/core": "1.145.0",
"@aws-cdk/cx-api": "1.145.0",
"constructs": "^3.3.69"

@@ -120,0 +120,0 @@ },

@@ -94,3 +94,3 @@ # Amazon CloudFront Construct Library

may either be created by ACM, or created elsewhere and imported into ACM. When a certificate is used, the distribution will support HTTPS connections
from SNI only and a minimum protocol version of TLSv1.2_2021 if the '@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021' feature flag is set, and TLSv1.2_2019 otherwise.
from SNI only and a minimum protocol version of TLSv1.2_2021 if the `@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021` feature flag is set, and TLSv1.2_2019 otherwise.

@@ -543,2 +543,199 @@ ```ts

## Migrating from the original CloudFrontWebDistribution to the newer Distribution construct
It's possible to migrate a distribution from the original to the modern API.
The changes necessary are the following:
### The Distribution
Replace `new CloudFrontWebDistribution` with `new Distribution`. Some
configuration properties have been changed:
| Old API | New API |
|--------------------------------|------------------------------------------------------------------------------------------------|
| `originConfigs` | `defaultBehavior`; use `additionalBehaviors` if necessary |
| `viewerCertificate` | `certificate`; use `domainNames` for aliases |
| `errorConfigurations` | `errorResponses` |
| `loggingConfig` | `enableLogging`; configure with `logBucket` `logFilePrefix` and `logIncludesCookies` |
| `viewerProtocolPolicy` | removed; set on each behavior instead. default changed from `REDIRECT_TO_HTTPS` to `ALLOW_ALL` |
After switching constructs, you need to maintain the same logical ID for the underlying [CfnDistribution](https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-cloudfront.CfnDistribution.html) if you wish to avoid the deletion and recreation of your distribution.
To do this, use [escape hatches](https://docs.aws.amazon.com/cdk/v2/guide/cfn_layer.html) to override the logical ID created by the new Distribution construct with the logical ID created by the old construct.
Example:
```ts
declare const sourceBucket: s3.Bucket;
const myDistribution = new cloudfront.Distribution(this, 'MyCfWebDistribution', {
defaultBehavior: {
origin: new origins.S3Origin(sourceBucket),
},
});
const cfnDistribution = myDistribution.node.defaultChild as cloudfront.CfnDistribution;
cfnDistribution.overrideLogicalId('MyDistributionCFDistribution3H55TI9Q');
```
### Behaviors
The modern API makes use of the [CloudFront Origins](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudfront_origins-readme.html) module to easily configure your origin. Replace your origin configuration with the relevant CloudFront Origins class. For example, here's a behavior with an S3 origin:
```ts
declare const sourceBucket: s3.Bucket;
declare const oai: cloudfront.OriginAccessIdentity;
new cloudfront.CloudFrontWebDistribution(this, 'MyCfWebDistribution', {
originConfigs: [
{
s3OriginSource: {
s3BucketSource: sourceBucket,
originAccessIdentity: oai,
},
behaviors : [ {isDefaultBehavior: true}],
},
],
});
```
Becomes:
```ts
declare const sourceBucket: s3.Bucket;
const distribution = new cloudfront.Distribution(this, 'MyCfWebDistribution', {
defaultBehavior: {
origin: new origins.S3Origin(sourceBucket) // This class automatically creates an Origin Access Identity
},
});
```
In the original API all behaviors are defined in the `originConfigs` property. The new API is optimized for a single origin and behavior, so the default behavior and additional behaviors will be defined separately.
```ts
declare const sourceBucket: s3.Bucket;
declare const oai: cloudfront.OriginAccessIdentity;
new cloudfront.CloudFrontWebDistribution(this, 'MyCfWebDistribution', {
originConfigs: [
{
s3OriginSource: {
s3BucketSource: sourceBucket,
originAccessIdentity: oai,
},
behaviors: [ {isDefaultBehavior: true}],
},
{
customOriginSource: {
domainName: 'MYALIAS',
},
behaviors: [{ pathPattern: '/somewhere' }]
}
],
});
```
Becomes:
```ts
declare const sourceBucket: s3.Bucket;
const distribution = new cloudfront.Distribution(this, 'MyCfWebDistribution', {
defaultBehavior: {
origin: new origins.S3Origin(sourceBucket) // This class automatically creates an Origin Access Identity
},
additionalBehaviors: {
'/somewhere': {
origin: new origins.HttpOrigin('MYALIAS'),
}
}
});
```
### Certificates
If you are using an ACM certificate, you can pass the certificate directly to the `certificate` prop.
Any aliases used before in the `ViewerCertificate` class should be passed in to the `domainNames` prop in the modern API.
```ts
import * as acm from '@aws-cdk/aws-certificatemanager';
declare const certificate: acm.Certificate;
declare const sourceBucket: s3.Bucket;
const viewerCertificate = cloudfront.ViewerCertificate.fromAcmCertificate(certificate, {
aliases: ['MYALIAS'],
});
new cloudfront.CloudFrontWebDistribution(this, 'MyCfWebDistribution', {
originConfigs: [
{
s3OriginSource: {
s3BucketSource: sourceBucket,
},
behaviors : [ {isDefaultBehavior: true} ],
},
],
viewerCertificate: viewerCertificate,
});
```
Becomes:
```ts
import * as acm from '@aws-cdk/aws-certificatemanager';
declare const certificate: acm.Certificate;
declare const sourceBucket: s3.Bucket;
const distribution = new cloudfront.Distribution(this, 'MyCfWebDistribution', {
defaultBehavior: {
origin: new origins.S3Origin(sourceBucket),
},
domainNames: ['MYALIAS'],
certificate: certificate,
});
```
IAM certificates aren't directly supported by the new API, but can be easily configured through [escape hatches](https://docs.aws.amazon.com/cdk/v2/guide/cfn_layer.html)
```ts
declare const sourceBucket: s3.Bucket;
const viewerCertificate = cloudfront.ViewerCertificate.fromIamCertificate('MYIAMROLEIDENTIFIER', {
aliases: ['MYALIAS'],
});
new cloudfront.CloudFrontWebDistribution(this, 'MyCfWebDistribution', {
originConfigs: [
{
s3OriginSource: {
s3BucketSource: sourceBucket,
},
behaviors : [ {isDefaultBehavior: true} ],
},
],
viewerCertificate: viewerCertificate,
});
```
Becomes:
```ts
declare const sourceBucket: s3.Bucket;
const distribution = new cloudfront.Distribution(this, 'MyCfWebDistribution', {
defaultBehavior: {
origin: new origins.S3Origin(sourceBucket),
},
domainNames: ['MYALIAS'],
});
const cfnDistribution = distribution.node.defaultChild as cloudfront.CfnDistribution;
cfnDistribution.addPropertyOverride('ViewerCertificate.IamCertificateId', 'MYIAMROLEIDENTIFIER');
cfnDistribution.addPropertyOverride('ViewerCertificate.SslSupportMethod', 'sni-only');
```
### Other changes
A number of default settings have changed on the new API when creating a new distribution, behavior, and origin.
After making the major changes needed for the migration, run `cdk diff` to see what settings have changed.
If no changes are desired during migration, you will at the least be able to use [escape hatches](https://docs.aws.amazon.com/cdk/v2/guide/cfn_layer.html) to override what the CDK synthesizes, if you can't change the properties directly.
## CloudFrontWebDistribution API

@@ -545,0 +742,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc