@rio-cloud/cdk-v2-constructs 9.0.0-alpha.6 → 9.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +19 -19
- package/lib/backup/backup-policy.d.ts +1 -1
- package/lib/backup/backup-policy.js +1 -1
- package/lib/certificate/cloud-front-certificate.d.ts +1 -1
- package/lib/certificate/cloud-front-certificate.js +4 -3
- package/lib/certificate/lambda/handler.cjs +21 -7
- package/lib/contributions/cop-frontend/cloudfront/contentSecurityPolicy.js +2 -2
- package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.d.ts +1 -1
- package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +3 -3
- package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.d.ts +4 -4
- package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.js +1 -1
- package/lib/contributions/smart-route/gitlab-runner/runner-roles.d.ts +1 -1
- package/lib/contributions/smart-route/gitlab-runner/runner-roles.js +1 -1
- package/lib/contributions/team-claid/aws-backup-monitoring/aws-backup-monitoring.js +2 -2
- package/lib/contributions/team-claid/aws-glue/view-table.d.ts +1 -1
- package/lib/contributions/team-claid/aws-glue/view-table.js +1 -1
- package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.d.ts +2 -2
- package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +2 -2
- package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.d.ts +1 -1
- package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +3 -3
- package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.d.ts +2 -2
- package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.js +1 -1
- package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.d.ts +1 -1
- package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.js +3 -3
- package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.d.ts +1 -1
- package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.js +2 -2
- package/lib/contributions/team-transport/datadog-synthetics/datadog-synthetics-test.js +4 -4
- package/lib/contributions/team-transport/pipeline/application-stage.d.ts +3 -3
- package/lib/contributions/team-transport/pipeline/application-stage.js +1 -1
- package/lib/contributions/team-transport/pipeline/build-project.d.ts +2 -2
- package/lib/contributions/team-transport/pipeline/build-project.js +1 -1
- package/lib/contributions/team-transport/pipeline/buildspecs.d.ts +1 -1
- package/lib/contributions/team-transport/pipeline/buildspecs.js +1 -1
- package/lib/contributions/team-transport/pipeline/datadog-monitors.d.ts +3 -3
- package/lib/contributions/team-transport/pipeline/datadog-monitors.js +1 -1
- package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.d.ts +1 -1
- package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.js +2 -5
- package/lib/contributions/team-transport/pipeline/pipeline-stack.d.ts +5 -5
- package/lib/contributions/team-transport/pipeline/pipeline-stack.js +3 -3
- package/lib/datadog/datadog-log-index-monitoring.d.ts +1 -1
- package/lib/datadog/datadog-log-index-monitoring.js +1 -1
- package/lib/datadog/datadog-monitor.d.ts +1 -1
- package/lib/datadog/datadog-monitor.js +1 -1
- package/lib/datadogv2/datadog-dashboard.js +2 -2
- package/lib/datadogv2/datadog-lambda-instrumentation.d.ts +2 -2
- package/lib/datadogv2/datadog-lambda-instrumentation.js +1 -1
- package/lib/datadogv2/datadog-log-index-monitoring.d.ts +1 -1
- package/lib/datadogv2/datadog-log-index-monitoring.js +1 -1
- package/lib/datadogv2/datadog-monitor.d.ts +1 -1
- package/lib/datadogv2/datadog-monitor.js +1 -1
- package/lib/datadogv2/datadog-notification.d.ts +1 -1
- package/lib/datadogv2/datadog-notification.js +1 -1
- package/lib/datadogv2/datadog-service-catalog-entry.js +2 -2
- package/lib/datadogv2/datadog-shared-secrets.js +2 -2
- package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +3 -1
- package/lib/datadogv2/service-catalog-custom-resource/on-create.cjs +3 -1
- package/lib/datadogv2/validate-lambda-environment.d.ts +1 -1
- package/lib/datadogv2/validate-lambda-environment.js +1 -1
- package/lib/ecr/docker-hub-pull-through-cache.d.ts +1 -1
- package/lib/ecr/docker-hub-pull-through-cache.js +1 -1
- package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +1 -1
- package/lib/fargate/datadog.d.ts +3 -3
- package/lib/fargate/datadog.js +1 -1
- package/lib/fargate/rio-fargate-service-blue-green-alpha.d.ts +1 -1
- package/lib/fargate/rio-fargate-service-blue-green-alpha.js +5 -5
- package/lib/fargate/rio-fargate-service.d.ts +1 -1
- package/lib/fargate/rio-fargate-service.js +1 -1
- package/lib/fargate/spring.d.ts +1 -1
- package/lib/fargate/spring.js +1 -1
- package/lib/iam/sonatype-oss-index-credentials.d.ts +2 -2
- package/lib/iam/sonatype-oss-index-credentials.js +1 -1
- package/lib/kafka/kafka-topic.d.ts +1 -1
- package/lib/kafka/kafka-topic.js +1 -1
- package/lib/kafka/rio-kafka-event-source.d.ts +2 -2
- package/lib/kafka/rio-kafka-event-source.js +1 -1
- package/lib/pipeline/delivery-performance-monitoring-override.d.ts +2 -2
- package/lib/pipeline/delivery-performance-monitoring-override.js +1 -1
- package/lib/pipeline/rio-backup-secrets-restore-stage.d.ts +1 -1
- package/lib/pipeline/rio-backup-secrets-restore-stage.js +4 -4
- package/lib/pipeline/rio-bitbucket-source-action.d.ts +2 -2
- package/lib/pipeline/rio-bitbucket-source-action.js +1 -1
- package/lib/pipeline/rio-pipeline-type.d.ts +1 -1
- package/lib/pipeline/rio-pipeline-type.js +1 -1
- package/lib/rio-landing-zone.d.ts +1 -1
- package/lib/rio-landing-zone.js +1 -1
- package/lib/rio-load-balancer.d.ts +1 -1
- package/lib/rio-load-balancer.js +1 -1
- package/lib/sbom-catalog/catalog-project.d.ts +1 -1
- package/lib/sbom-catalog/catalog-project.js +12 -9
- package/lib/sbom-catalog/lambda/handler.cjs +2 -1
- package/lib/ses/helper.js +2 -2
- package/lib/ses/ses-observability.js +2 -2
- package/lib/test/normalized-test-template.d.ts +1 -1
- package/lib/test/normalized-test-template.js +1 -1
- package/lib/toggle.d.ts +1 -1
- package/lib/toggle.js +2 -3
- package/lib/watchful/alb.d.ts +1 -1
- package/lib/watchful/alb.js +1 -1
- package/lib/watchful/aspect.d.ts +3 -3
- package/lib/watchful/aspect.js +1 -1
- package/lib/watchful/cloudfront.d.ts +2 -2
- package/lib/watchful/cloudfront.js +1 -1
- package/lib/watchful/datadog-log-alarm.d.ts +1 -1
- package/lib/watchful/datadog-log-alarm.js +2 -2
- package/lib/watchful/datadog-metric-alarm.d.ts +1 -1
- package/lib/watchful/datadog-metric-alarm.js +1 -3
- package/lib/watchful/docdb.d.ts +2 -2
- package/lib/watchful/docdb.js +1 -1
- package/lib/watchful/dynamodb.d.ts +2 -2
- package/lib/watchful/dynamodb.js +1 -1
- package/lib/watchful/ecs.d.ts +2 -2
- package/lib/watchful/ecs.js +1 -1
- package/lib/watchful/lambda.d.ts +2 -2
- package/lib/watchful/lambda.js +1 -1
- package/lib/watchful/metric-alarm.d.ts +1 -1
- package/lib/watchful/metric-alarm.js +1 -1
- package/lib/watchful/rds.d.ts +2 -2
- package/lib/watchful/rds.js +1 -1
- package/lib/watchful/targetgroup.d.ts +1 -1
- package/lib/watchful/targetgroup.js +1 -1
- package/lib/watchful/watchful.d.ts +11 -11
- package/lib/watchful/watchful.js +1 -1
- package/lib/watchfulv2/datadog-log-alarm.d.ts +2 -2
- package/lib/watchfulv2/datadog-log-alarm.js +2 -2
- package/lib/watchfulv2/datadog-metric-alarm.d.ts +2 -2
- package/lib/watchfulv2/datadog-metric-alarm.js +1 -3
- package/lib/watchfulv2/watchful.d.ts +4 -4
- package/lib/watchfulv2/watchful.js +1 -1
- package/package.json +1 -1
- package/version.json +1 -1
|
@@ -32,4 +32,4 @@ class RioBitBucketSourceAction extends codepipeline_actions.S3SourceAction {
|
|
|
32
32
|
exports.RioBitBucketSourceAction = RioBitBucketSourceAction;
|
|
33
33
|
_a = JSII_RTTI_SYMBOL_1;
|
|
34
34
|
RioBitBucketSourceAction[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.RioBitBucketSourceAction", version: "0.0.0" };
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWJpdGJ1Y2tldC1zb3VyY2UtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3Jpby1iaXRidWNrZXQtc291cmNlLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFpQztBQUVqQyw2RUFBNkU7QUFDN0UseUNBQXlDO0FBR3pDLElBQVksVUFTWDtBQVRELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILDZDQUErQixDQUFBO0lBQy9COztPQUVHO0lBQ0gsNkNBQStCLENBQUE7QUFDakMsQ0FBQyxFQVRXLFVBQVUsMEJBQVYsVUFBVSxRQVNyQjtBQVdELE1BQWEsd0JBQXlCLFNBQVEsb0JBQW9CLENBQUMsY0FBYztJQUMvRSxZQUFZLEtBQWdCLEVBQUUsS0FBb0M7UUFDaEUsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ25ELEtBQUssQ0FBQztZQUNKLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUM5QyxVQUFVLEVBQUUsV0FBVztZQUN2QixNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBQzNHLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxjQUFjLFlBQVksS0FBSyxDQUFDLFVBQVUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2RixNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWM7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFWSCw0REFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgKiBhcyBjb2RlcGlwZWxpbmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZSc7XG5pbXBvcnQgKiBhcyBjb2RlcGlwZWxpbmVfYWN0aW9ucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBlbnVtIFRyaWdnZXJLZXkge1xuICAvKipcbiAgICogcG9pbnRzIHRvIG1hc3Rlcl9yZXBvLnppcFxuICAgKi9cbiAgTUFTVEVSX1JFUE8gPSAnbWFzdGVyX3JlcG8uemlwJyxcbiAgLyoqXG4gICAqIHBvaW50cyB0byBicmFuY2hfcmVwby56aXBcbiAgICovXG4gIEJSQU5DSF9SRVBPID0gJ2JyYW5jaF9yZXBvLnppcCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmlvQml0QnVja2V0U291cmNlQWN0aW9uUHJvcHMge1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2VBcnRpZmFjdDogY29kZXBpcGVsaW5lLkFydGlmYWN0O1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gZWl0aGVyIG1hc3Rlcl9yZXBvLnppcCBvciBicmFuY2hfcmVwby56aXBcbiAgICogQGRlZmF1bHRWYWx1ZSAtIFBvaW50cyB0byBtYXN0ZXJfcmVwby56aXAuXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyS2V5PzogVHJpZ2dlcktleTtcbn1cbmV4cG9ydCBjbGFzcyBSaW9CaXRCdWNrZXRTb3VyY2VBY3Rpb24gZXh0ZW5kcyBjb2RlcGlwZWxpbmVfYWN0aW9ucy5TM1NvdXJjZUFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBSaW9CaXRCdWNrZXRTb3VyY2VBY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IERFRkFVTFRfVFJJR0dFUl9LRVkgPSBUcmlnZ2VyS2V5Lk1BU1RFUl9SRVBPO1xuICAgIHN1cGVyKHtcbiAgICAgIHRyaWdnZXI6IGNvZGVwaXBlbGluZV9hY3Rpb25zLlMzVHJpZ2dlci5FVkVOVFMsXG4gICAgICBhY3Rpb25OYW1lOiAnUzNUcmlnZ2VyJyxcbiAgICAgIGJ1Y2tldDogczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHNjb3BlLCAnVHJpZ2dlckJ1Y2tldCcsIEZuLmltcG9ydFZhbHVlKCdiaXRidWNrZXQtaW50ZWdyYXRpb24tczMtYnVja2V0JykpLFxuICAgICAgYnVja2V0S2V5OiBgJHtwcm9wcy5yZXBvc2l0b3J5TmFtZX0vdHJpZ2dlci8ke3Byb3BzLnRyaWdnZXJLZXkgPz8gREVGQVVMVF9UUklHR0VSX0tFWX1gLFxuICAgICAgb3V0cHV0OiBwcm9wcy5zb3VyY2VBcnRpZmFjdCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -40,4 +40,4 @@ class ClassifyPipelineType {
|
|
|
40
40
|
exports.ClassifyPipelineType = ClassifyPipelineType;
|
|
41
41
|
_a = JSII_RTTI_SYMBOL_1;
|
|
42
42
|
ClassifyPipelineType[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.ClassifyPipelineType", version: "0.0.0" };
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLXBpcGVsaW5lLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvcmlvLXBpcGVsaW5lLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBbUM7QUFHbkM7O0dBRUc7QUFDSCxJQUFZLGVBZVg7QUFmRCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCxvQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGtEQUErQixDQUFBO0lBRS9COztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWZXLGVBQWUsK0JBQWYsZUFBZSxRQWUxQjtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsb0JBQW9CO0lBQy9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBa0IsRUFBRSxZQUE2QjtRQUM1RCxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBSEgsb0RBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWdzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogVGhlIGFsbG93ZWQgdmFsdWVzIGZvciBwaXBlbGluZSB0eXBlXG4gKi9cbmV4cG9ydCBlbnVtIFJpb1BpcGVsaW5lVHlwZSB7XG4gIC8qKlxuICAgKiBVc2VkIGZvciBicmFuY2ggcGlwZWxpbmVzIHVzZWQgZm9yIHRlc3RpbmcgY29udHJpYnV0aW9ucyAvIHJlbm92YXRlIFBSJ3NcbiAgICovXG4gIEJSQU5DSCA9ICdicmFuY2gnLFxuXG4gIC8qKlxuICAgKiBVc2VkIGZvciB2dWxuZXJhYmlsaXR5IHBpcGVsaW5lc1xuICAgKi9cbiAgVlVMTkVSQUJJTElUWSA9ICd2dWxuZXJhYmlsaXR5JyxcblxuICAvKipcbiAgICogVXN1ZWQgZm9yIHRoZSBtYWluIHBpcGVsaW5lIGRlcGxveWluZyB0aGUgYXBwbGljYXRpb25cbiAgICovXG4gIERFUExPWSA9ICdkZXBsb3knLFxufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byB0YWcgdGhlIHBpcGVsaW5lIHdpdGggY29ycmVjdCBwaXBlbGluZSB0eXBlLlxuICogVGhlc2UgdGFncyBhcmUgZXZlbnR1YWxseSB1c2VkIGluIGRhdGFkb2cgcGlwZWxpbmUgbWV0cmljcyB0byBmaWx0ZXIgc3BlY2lmaWMgcGlwZWxpbmUgdHlwZXNcbiAqIEVnIC0geW91IGNhbiBkZWNpZGUgdG8gbm90IG1vbml0b3IgYnJhbmNoIHBpcGVsaW5lc1xuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c1xuICogQ2xhc3NpZnlQaXBlbGluZVR5cGUuYXBwbHkocGlwZWxpbmUsIFJpb1BpcGVsaW5lVHlwZS5ERVBMT1kpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGFzc2lmeVBpcGVsaW5lVHlwZSB7XG4gIHN0YXRpYyBhcHBseSh0YXJnZXQ6IElDb25zdHJ1Y3QsIHBpcGVsaW5lVHlwZTogUmlvUGlwZWxpbmVUeXBlKSB7XG4gICAgVGFncy5vZih0YXJnZXQpLmFkZCgncGlwZWxpbmVfdHlwZScsIHBpcGVsaW5lVHlwZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
2
|
import * as route53 from 'aws-cdk-lib/aws-route53';
|
|
3
3
|
import * as ssm from 'aws-cdk-lib/aws-ssm';
|
|
4
|
-
import { Construct } from 'constructs';
|
|
4
|
+
import type { Construct } from 'constructs';
|
|
5
5
|
/**
|
|
6
6
|
* A wrapper to access infrastructure provided by the RIO Landing Zone setup, such as VPC, HostedZone, and standard
|
|
7
7
|
* team/account SSM parameters.
|
package/lib/rio-landing-zone.js
CHANGED
|
@@ -91,4 +91,4 @@ RioLandingZone.getOrCreateParameter = (scope, id, name) => {
|
|
|
91
91
|
return (stack.node.tryFindChild(parameterId) ||
|
|
92
92
|
ssm.StringParameter.fromStringParameterName(stack, parameterId, name));
|
|
93
93
|
};
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWxhbmRpbmctem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yaW8tbGFuZGluZy16b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQXFEO0FBQ3JELDJDQUEyQztBQUMzQyxtREFBbUQ7QUFDbkQsMkNBQTJDO0FBRzNDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFhLGNBQWM7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCO1FBQzFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1lBQzdELEtBQUssRUFBRSxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7WUFDckMsaUJBQWlCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztZQUM3RCxpQkFBaUIsRUFBRTtnQkFDakIsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUM7Z0JBQ25DLGdCQUFFLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO2dCQUNuQyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQzthQUNwQztZQUNELDJCQUEyQixFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDekMsZ0JBQWdCLEVBQUU7Z0JBQ2hCLGdCQUFFLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDO2dCQUNuQyxnQkFBRSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkMsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUM7YUFDcEM7WUFDRCwwQkFBMEIsRUFBRTtnQkFDMUIsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUM7Z0JBQzNDLGdCQUFFLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDO2dCQUMzQyxnQkFBRSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQzthQUM1QztZQUNELGVBQWUsRUFBRTtnQkFDZixnQkFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDakMsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pDLGdCQUFFLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO2FBQ2xDO1lBQ0QseUJBQXlCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUN4QyxDQUFDLENBQUM7UUFFSCx1R0FBdUc7UUFDdkcseURBQXlEO1FBQ3pELHlCQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFFaEYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBZ0I7UUFDakQsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7WUFDdEUsWUFBWSxFQUFFLGdCQUFFLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDO1lBQ3pELFFBQVEsRUFBRSxnQkFBRSxDQUFDLFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQztTQUN4RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQWdCO1FBQ2pELE9BQU8sY0FBYyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQWdCO1FBQ3ZELE9BQU8sY0FBYyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBZ0I7UUFDbEQsT0FBTyxjQUFjLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFTSxNQUFNLENBQUMsaUNBQWlDLENBQUMsS0FBZ0I7UUFDOUQsT0FBTyxjQUFjLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFnQjtRQUNwRCxPQUFPLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDM0YsQ0FBQzs7QUFuRUgsd0NBNkVDOzs7QUFSZ0IsbUNBQW9CLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUNuRixNQUFNLFdBQVcsR0FBRyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFDaEQsTUFBTSxLQUFLLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsT0FBTyxDQUNKLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBeUI7UUFDN0QsR0FBRyxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIEZuLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBBIHdyYXBwZXIgdG8gYWNjZXNzIGluZnJhc3RydWN0dXJlIHByb3ZpZGVkIGJ5IHRoZSBSSU8gTGFuZGluZyBab25lIHNldHVwLCBzdWNoIGFzIFZQQywgSG9zdGVkWm9uZSwgYW5kIHN0YW5kYXJkXG4gKiB0ZWFtL2FjY291bnQgU1NNIHBhcmFtZXRlcnMuXG4gKlxuICogVXNlIHRoZXNlIGhlbHBlcnMgaW5zdGVhZCBvZiBoYXJkLWNvZGVkIFZQQyBJRHMsIGhvc3RlZC16b25lIElEcywgc3VibmV0IElEcywgb3Igc3RhbmRhcmQgdGVhbS9hY2NvdW50IFNTTSBwYXJhbWV0ZXJcbiAqIG5hbWVzLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c1xuICogY29uc3QgdnBjID0gUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdFZwYyh0aGlzKTtcbiAqIGNvbnN0IGhvc3RlZFpvbmUgPSBSaW9MYW5kaW5nWm9uZS5nZXREZWZhdWx0SG9zdGVkWm9uZSh0aGlzKTtcbiAqIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUlkZW50aWZpZXJQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFJpb0xhbmRpbmdab25lIHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRlZmF1bHQgVlBDIGZyb20gUklPIExhbmRpbmdab25lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldERlZmF1bHRWcGMoc2NvcGU6IENvbnN0cnVjdCk6IGVjMi5JVnBjIHtcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21WcGNBdHRyaWJ1dGVzKHNjb3BlLCAnTGFuZGluZ1pvbmVWcGMnLCB7XG4gICAgICB2cGNJZDogRm4uaW1wb3J0VmFsdWUoJ0RlZmF1bHRWUENJZCcpLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZXM6IFsnZXUtd2VzdC0xYScsICdldS13ZXN0LTFiJywgJ2V1LXdlc3QtMWMnXSxcbiAgICAgIGlzb2xhdGVkU3VibmV0SWRzOiBbXG4gICAgICAgIEZuLmltcG9ydFZhbHVlKCdQcml2YXRlU3VibmV0MUJJRCcpLFxuICAgICAgICBGbi5pbXBvcnRWYWx1ZSgnUHJpdmF0ZVN1Ym5ldDJCSUQnKSxcbiAgICAgICAgRm4uaW1wb3J0VmFsdWUoJ1ByaXZhdGVTdWJuZXQzQklEJyksXG4gICAgICBdLFxuICAgICAgaXNvbGF0ZWRTdWJuZXRSb3V0ZVRhYmxlSWRzOiBbJycsICcnLCAnJ10sXG4gICAgICBwcml2YXRlU3VibmV0SWRzOiBbXG4gICAgICAgIEZuLmltcG9ydFZhbHVlKCdQcml2YXRlU3VibmV0MUFJRCcpLFxuICAgICAgICBGbi5pbXBvcnRWYWx1ZSgnUHJpdmF0ZVN1Ym5ldDJBSUQnKSxcbiAgICAgICAgRm4uaW1wb3J0VmFsdWUoJ1ByaXZhdGVTdWJuZXQzQUlEJyksXG4gICAgICBdLFxuICAgICAgcHJpdmF0ZVN1Ym5ldFJvdXRlVGFibGVJZHM6IFtcbiAgICAgICAgRm4uaW1wb3J0VmFsdWUoJ1ByaXZhdGVTdWJuZXQxQVJvdXRlVGFibGUnKSxcbiAgICAgICAgRm4uaW1wb3J0VmFsdWUoJ1ByaXZhdGVTdWJuZXQyQVJvdXRlVGFibGUnKSxcbiAgICAgICAgRm4uaW1wb3J0VmFsdWUoJ1ByaXZhdGVTdWJuZXQzQVJvdXRlVGFibGUnKSxcbiAgICAgIF0sXG4gICAgICBwdWJsaWNTdWJuZXRJZHM6IFtcbiAgICAgICAgRm4uaW1wb3J0VmFsdWUoJ1B1YmxpY1N1Ym5ldDFJRCcpLFxuICAgICAgICBGbi5pbXBvcnRWYWx1ZSgnUHVibGljU3VibmV0MklEJyksXG4gICAgICAgIEZuLmltcG9ydFZhbHVlKCdQdWJsaWNTdWJuZXQzSUQnKSxcbiAgICAgIF0sXG4gICAgICBwdWJsaWNTdWJuZXRSb3V0ZVRhYmxlSWRzOiBbJycsICcnLCAnJ10sXG4gICAgfSk7XG5cbiAgICAvLyBTdXBwcmVzcyB3YXJuaW5ncyByZWdhcmRpbmcgc3VibmV0IHJvdXRlIHRhYmxlIElEcyBhcyB3ZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJvdXRlIHRhYmxlcyBoZXJlXG4gICAgLy8gKGFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTk3ODYpXG4gICAgQW5ub3RhdGlvbnMub2YodnBjKS5hY2tub3dsZWRnZVdhcm5pbmcoJ0Bhd3MtY2RrL2F3cy1lYzI6bm9TdWJuZXRSb3V0ZVRhYmxlSWQnKTtcblxuICAgIHJldHVybiB2cGM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGVmYXVsdCBSb3V0ZTUzIEhvc3RlZFpvbmUgZnJvbSBSSU8gTGFuZGluZ1pvbmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGVmYXVsdEhvc3RlZFpvbmUoc2NvcGU6IENvbnN0cnVjdCk6IHJvdXRlNTMuSUhvc3RlZFpvbmUge1xuICAgIHJldHVybiByb3V0ZTUzLkhvc3RlZFpvbmUuZnJvbUhvc3RlZFpvbmVBdHRyaWJ1dGVzKHNjb3BlLCAnSG9zdGVkWm9uZScsIHtcbiAgICAgIGhvc3RlZFpvbmVJZDogRm4uaW1wb3J0VmFsdWUoJ0xhbmRpbmctWm9uZS1Ib3N0ZWRab25lSWQnKSxcbiAgICAgIHpvbmVOYW1lOiBGbi5pbXBvcnRWYWx1ZSgnTGFuZGluZy1ab25lLUhvc3RlZFpvbmVOYW1lJyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFRlYW1OYW1lUGFyYW1ldGVyKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gUmlvTGFuZGluZ1pvbmUuZ2V0T3JDcmVhdGVQYXJhbWV0ZXIoc2NvcGUsICdUZWFtTmFtZScsICcvY29uZmlnL3RlYW0vbmFtZScpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRUZWFtSWRlbnRpZmllclBhcmFtZXRlcihzY29wZTogQ29uc3RydWN0KSB7XG4gICAgcmV0dXJuIFJpb0xhbmRpbmdab25lLmdldE9yQ3JlYXRlUGFyYW1ldGVyKHNjb3BlLCAnVGVhbUlkZW50aWZpZXInLCAnL2NvbmZpZy90ZWFtL2lkZW50aWZpZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VGVhbUVtYWlsUGFyYW1ldGVyKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gUmlvTGFuZGluZ1pvbmUuZ2V0T3JDcmVhdGVQYXJhbWV0ZXIoc2NvcGUsICdUZWFtRW1haWwnLCAnL2NvbmZpZy90ZWFtL21haWwnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VGVhbUFsZXJ0U2xhY2tDaGFubmVsUGFyYW1ldGVyKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gUmlvTGFuZGluZ1pvbmUuZ2V0T3JDcmVhdGVQYXJhbWV0ZXIoc2NvcGUsICdTbGFja0FsZXJ0Q2hhbm5lbCcsICcvY29uZmlnL3RlYW0vc2xhY2stYWxlcnQtY2hhbm5lbCcpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRBY2NvdW50TmFtZVBhcmFtZXRlcihzY29wZTogQ29uc3RydWN0KSB7XG4gICAgcmV0dXJuIFJpb0xhbmRpbmdab25lLmdldE9yQ3JlYXRlUGFyYW1ldGVyKHNjb3BlLCAnQWNjb3VudE5hbWUnLCAnL2NvbmZpZy9hY2NvdW50L25hbWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldE9yQ3JlYXRlUGFyYW1ldGVyID0gKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlcklkID0gYFJpb0xhbmRpbmdab25lQ29uZmlnJHtpZH1gO1xuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuICAgIHJldHVybiAoXG4gICAgICAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQocGFyYW1ldGVySWQpIGFzIHNzbS5TdHJpbmdQYXJhbWV0ZXIpIHx8XG4gICAgICBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHN0YWNrLCBwYXJhbWV0ZXJJZCwgbmFtZSlcbiAgICApO1xuICB9O1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as acm from 'aws-cdk-lib/aws-certificatemanager';
|
|
2
|
-
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
2
|
+
import type * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
3
3
|
import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2';
|
|
4
4
|
import * as route53 from 'aws-cdk-lib/aws-route53';
|
|
5
5
|
import { Construct } from 'constructs';
|
package/lib/rio-load-balancer.js
CHANGED
|
@@ -39,4 +39,4 @@ class RioLoadBalancer extends constructs_1.Construct {
|
|
|
39
39
|
exports.RioLoadBalancer = RioLoadBalancer;
|
|
40
40
|
_a = JSII_RTTI_SYMBOL_1;
|
|
41
41
|
RioLoadBalancer[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.RioLoadBalancer", version: "0.0.0" };
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWxvYWQtYmFsYW5jZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmlvLWxvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBMEQ7QUFFMUQsZ0VBQWdFO0FBQ2hFLG1EQUFtRDtBQUNuRCxtRUFBbUU7QUFDbkUsMkNBQXVDO0FBaUJ2Qzs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQUs1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMxRCxVQUFVO1lBQ1YsVUFBVSxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztTQUNoRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDaEUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsY0FBYyxFQUFFLElBQUk7WUFDcEIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDeEQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNoQyxRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUs7WUFDekMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsNkJBQTZCO1NBQ3pELENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ25DLElBQUksRUFBRSxLQUFLLENBQUMsVUFBVTtZQUN0QixVQUFVLEVBQUUsVUFBVTtZQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ2xHLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaENILDBDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCB0eXBlICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgKiBhcyByb3V0ZTUzX3RhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBSaW9Mb2FkQmFsYW5jZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIG5ldHdvcmsgdG8gcGxhY2UgdGhlIGxvYWQgYmFsYW5jZXIgaW4uXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGhvc3RlZCB6b25lIGluIHdoaWNoIHRvIHRoZSBSb3V0ZTUzIHJlY29yZCBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU6IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBuYW1lIHdoaWNoIGlzIHVzZWQgdG8gYnVpbGQgdGhlIGRvbWFpbiBuYW1lIChzZXJ2aWNlTmFtZS5ob3N0ZWRab25lKVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc2VjdXJlIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIgd2l0aCBjZXJ0aWZpY2F0ZSBhbmQgUm91dGU1MyBBUmVjb3JkLlxuICovXG5leHBvcnQgY2xhc3MgUmlvTG9hZEJhbGFuY2VyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgbG9hZGJhbGFuY2VyOiBlbGJ2Mi5BcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbGlzdGVuZXI6IGVsYnYyLkFwcGxpY2F0aW9uTGlzdGVuZXI7XG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlOiBhY20uSUNlcnRpZmljYXRlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9Mb2FkQmFsYW5jZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gYCR7cHJvcHMuc2VydmljZU5hbWV9LiR7cHJvcHMuaG9zdGVkWm9uZS56b25lTmFtZX1gO1xuXG4gICAgdGhpcy5jZXJ0aWZpY2F0ZSA9IG5ldyBhY20uQ2VydGlmaWNhdGUodGhpcywgJ0NlcnRpZmljYXRlJywge1xuICAgICAgZG9tYWluTmFtZSxcbiAgICAgIHZhbGlkYXRpb246IGFjbS5DZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURucyhwcm9wcy5ob3N0ZWRab25lKSxcbiAgICB9KTtcblxuICAgIHRoaXMubG9hZGJhbGFuY2VyID0gbmV3IGVsYnYyLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyKHRoaXMsICdMQicsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgaW50ZXJuZXRGYWNpbmc6IHRydWUsXG4gICAgICBodHRwMkVuYWJsZWQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxpc3RlbmVyID0gdGhpcy5sb2FkYmFsYW5jZXIuYWRkTGlzdGVuZXIoJ0xpc3RlbmVyJywge1xuICAgICAgY2VydGlmaWNhdGVzOiBbdGhpcy5jZXJ0aWZpY2F0ZV0sXG4gICAgICBwcm90b2NvbDogZWxidjIuQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUyxcbiAgICAgIHNzbFBvbGljeTogZWxidjIuU3NsUG9saWN5LkZPUldBUkRfU0VDUkVDWV9UTFMxMl9SRVNfR0NNLFxuICAgIH0pO1xuXG4gICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCAnQVJlY29yZCcsIHtcbiAgICAgIHpvbmU6IHByb3BzLmhvc3RlZFpvbmUsXG4gICAgICByZWNvcmROYW1lOiBkb21haW5OYW1lLFxuICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHJvdXRlNTNfdGFyZ2V0cy5Mb2FkQmFsYW5jZXJUYXJnZXQodGhpcy5sb2FkYmFsYW5jZXIpKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -3,6 +3,7 @@ var _a, _b;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.SbomCatalogProject = exports.StandaloneSbomCatalogProject = exports.LicensePolicy = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path = require("node:path");
|
|
6
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
8
|
const events = require("aws-cdk-lib/aws-events");
|
|
8
9
|
const eventsTargets = require("aws-cdk-lib/aws-events-targets");
|
|
@@ -10,7 +11,6 @@ const iam = require("aws-cdk-lib/aws-iam");
|
|
|
10
11
|
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
11
12
|
const logs = require("aws-cdk-lib/aws-logs");
|
|
12
13
|
const constructs_1 = require("constructs");
|
|
13
|
-
const path = require("path");
|
|
14
14
|
const constants_1 = require("../constants");
|
|
15
15
|
const datadogv2 = require("../datadogv2");
|
|
16
16
|
const rio_landing_zone_1 = require("../rio-landing-zone");
|
|
@@ -170,12 +170,14 @@ class SbomCatalogProject extends constructs_1.Construct {
|
|
|
170
170
|
};
|
|
171
171
|
createUploadResources(this, configuration, props.children.flatMap(child => [child.sbom, ...(child.vex === undefined ? [] : [child.vex])]));
|
|
172
172
|
const notification = props.vulnerabilityMonitorProps?.notification ?? new datadogv2.DefaultSlackNotification();
|
|
173
|
-
props.children.forEach(child =>
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
173
|
+
props.children.forEach(child => {
|
|
174
|
+
createVulnerabilityMonitor({
|
|
175
|
+
scope: this,
|
|
176
|
+
projectName: child.name,
|
|
177
|
+
accountName: configuration.originAccountName,
|
|
178
|
+
notification,
|
|
179
|
+
});
|
|
180
|
+
});
|
|
179
181
|
}
|
|
180
182
|
}
|
|
181
183
|
exports.SbomCatalogProject = SbomCatalogProject;
|
|
@@ -325,8 +327,9 @@ function mergeTags(sharedTags, additionalTags) {
|
|
|
325
327
|
const shared = parseTagsWithValidUniqueKeys(sharedTags ?? [], 'sharedTags', true);
|
|
326
328
|
const additional = parseTagsWithValidUniqueKeys(additionalTags ?? [], 'additionalTags');
|
|
327
329
|
const merged = new Map(shared);
|
|
328
|
-
for (const [key, tag] of additional)
|
|
330
|
+
for (const [key, tag] of additional) {
|
|
329
331
|
merged.set(key, tag);
|
|
332
|
+
}
|
|
330
333
|
return [...merged.values()];
|
|
331
334
|
}
|
|
332
335
|
function addLicensePolicyTagIfRequired(tags, policy) {
|
|
@@ -356,4 +359,4 @@ function parseTagsWithValidUniqueKeys(tags, propertyName, allowManagedTags = fal
|
|
|
356
359
|
function optionalTags(tags) {
|
|
357
360
|
return tags === undefined ? {} : { tags };
|
|
358
361
|
}
|
|
359
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nib20tY2F0YWxvZy9jYXRhbG9nLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBa0U7QUFDbEUsaURBQWlEO0FBQ2pELGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MsaURBQWlEO0FBQ2pELDZDQUE2QztBQUU3QywyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBQzdCLDRDQUFvRDtBQUNwRCwwQ0FBMEM7QUFDMUMsMERBQXFEO0FBQ3JELDJDQUFzRDtBQVF0RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFDL0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLE1BQU0sb0JBQW9CLEdBQUcsc0NBQXNDLENBQUM7QUFDcEUsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCxNQUFNLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDO0FBRXhEOzs7O0dBSUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDdkIsOEJBQWEsQ0FBQTtJQUNiLDRDQUEyQixDQUFBO0lBQzNCLDRDQUEyQixDQUFBO0lBQzNCLDhDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEI7QUE0SEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsc0JBQVM7SUFDekQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QztRQUNoRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksZUFBZSxD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Q0FBQztRQUN2QixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksY0FBYyxJQUFJLENBQUMsSUFBSSxjQUFjLEtBQUssR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsWUFBWSxTQUFTLEdBQUcsZ0VBQWdFLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDekMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxZQUFZLGtDQUFrQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsWUFBWSxnQ0FBZ0MsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFlO0lBQ25DLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5SZXNvdXJjZSwgRHVyYXRpb24sIFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIGV2ZW50c1RhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgczNBc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBERUZBVUxUX05PREVfUlVOVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBkYXRhZG9ndjIgZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5pbXBvcnQgeyBTQk9NX0NBVEFMT0dfQlVDS0VUX0FSTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtcbiAgQXNzZXRMb2NhdGlvbixcbiAgQ2F0YWxvZ1VwbG9hZENvbmZpZ3VyYXRpb24sXG4gIFN0YW5kYWxvbmVVcGxvYWRDb25maWd1cmF0aW9uLFxuICBVcGxvYWRDb25maWd1cmF0aW9uLFxufSBmcm9tICcuL2xhbWJkYS90eXBlcyc7XG5cbmNvbnN0IERFRkFVTFRfVkVSU0lPTiA9ICdtYWluJztcbmNvbnN0IE1BWF9DSElMRFJFTiA9IDM7XG5jb25zdCBNQU5BR0VEX1RBR19LRVlTID0gbmV3IFNldChbJ2FjY291bnRfaWQnLCAndGVhbV9pZGVudGlmaWVyJywgJ2xpY2Vuc2VfcG9saWN5J10pO1xuY29uc3QgVVBMT0FEX0ZVTkNUSU9OX1VVSUQgPSAnZDIwYjlmNDYtMDcwMi00N2RkLTg5YzItOWVhNGJkZGFhY2ZjJztcbmNvbnN0IFVQTE9BRF9GVU5DVElPTl9QVVJQT1NFID0gJ1Nib21DYXRhbG9nVXBsb2FkJztcbmNvbnN0IFVQTE9BRF9MT0dfR1JPVVBfSUQgPSAnU2JvbUNhdGFsb2dVcGxvYWRMb2dHcm91cCc7XG5cbi8qKlxuICogRW51bSB0byBzcGVjaWZ5IHdoaWNoIGxpY2Vuc2UgcG9saWN5IHNob3VsZCBhcHBsaWVkLlxuICpcbiAqIEBiZXRhXG4gKi9cbmV4cG9ydCBlbnVtIExpY2Vuc2VQb2xpY3kge1xuICBOT05FID0gJ25vbmUnLFxuICBKVk1fQkFDS0VORCA9ICdqdm0tYmFja2VuZCcsXG4gIE5QTV9CQUNLRU5EID0gJ25wbS1iYWNrZW5kJyxcbiAgTlBNX0ZST05URU5EID0gJ25wbS1mcm9udGVuZCcsXG59XG5cbi8qKlxuICogTm90aWZpY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGFuIFNCT00gY2F0YWxvZyB2dWxuZXJhYmlsaXR5IG1vbml0b3IuXG4gKlxuICogQGJldGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYm9tQ2F0YWxvZ1Z1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHMge1xuICAvKiogTm90aWZpY2F0aW9uIHNlbnQgd2hlbiB0aGUgdnVsbmVyYWJpbGl0eSBtb25pdG9yIGNoYW5nZXMgc3RhdGUuICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbjogZGF0YWRvZ3YyLklOb3RpZmljYXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3Ige0BsaW5rIFN0YW5kYWxvbmVTYm9tQ2F0YWxvZ1Byb2plY3R9LlxuICpcbiAqIEBiZXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhbG9uZVNib21DYXRhbG9nUHJvamVjdFByb3BzIHtcbiAgLyoqIE11c3QgYmUgbm9uLWVtcHR5IGFuZCBtdXN0IG5vdCBjb250YWluIGAvYC4gKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBQcm9qZWN0IHZlcnNpb24uIERlZmF1bHRzIHRvIGBtYWluYC4gKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwcm9qZWN0IHRhZ3MgdXNpbmcgdGhlIGBrZXk6dmFsdWVgIGZvcm1hdC5cbiAgICpcbiAgICogYHRlYW1faWRlbnRpZmllcmAgaXMgYWx3YXlzIGFkZGVkIGZyb20gdGhlIFJJTyBMYW5kaW5nIFpvbmUgY29uZmlndXJhdGlvbi4gRG8gbm90IHByb3ZpZGUgYHRlYW1faWRlbnRpZmllcmAgb3JcbiAgICogYGFjY291bnRfaWRgOyBib3RoIGFyZSBtYW5hZ2VkIHRhZyBrZXlzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbFRhZ3M/OiBzdHJpbmdbXTtcblxuICAvKiogSlNPTiBTQk9NIGZpbGUgYXNzZXQgdG8gdXBsb2FkLiAqL1xuICByZWFkb25seSBzYm9tOiBzM0Fzc2V0cy5Bc3NldDtcblxuICAvKiogT3B0aW9uYWwgSlNPTiBWRVggZmlsZSBhc3NldCB0byB1cGxvYWQuICovXG4gIHJlYWRvbmx5IHZleD86IHMzQXNzZXRzLkFzc2V0O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB2dWxuZXJhYmlsaXR5IG1vbml0b3IgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogV2hlbiBvbWl0dGVkLCB0aGUgbW9uaXRvciB1c2VzIHtAbGluayBkYXRhZG9ndjIuRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9ufS5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBBIHZ1bG5lcmFiaWxpdHkgbW9uaXRvciB1c2luZyB7QGxpbmsgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICovXG4gIHJlYWRvbmx5IHZ1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHM/OiBTYm9tQ2F0YWxvZ1Z1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWFuZGF0b3J5IGxpY2Vuc2UgcG9saWN5IHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBVc2UgYExpY2Vuc2VQb2xpY3kuTk9ORWAgaW4gZXhjZXB0aW9uYWwgY2FzZXMgb25seSFcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VQb2xpY3k6IExpY2Vuc2VQb2xpY3k7XG59XG5cbi8qKlxuICogQSBjaGlsZCBwcm9qZWN0IGluIGFuIFNCT00gY2F0YWxvZyBjb2xsZWN0aW9uLlxuICpcbiAqIEBiZXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2JvbUNhdGFsb2dQcm9qZWN0Q2hpbGQge1xuICAvKipcbiAgICogTXVzdCBiZSBub24tZW1wdHksIHVuaXF1ZSB3aXRoaW4gdGhlIGNvbGxlY3Rpb24sIGFuZCBtdXN0IG5vdCBjb250YWluIGAvYC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKiogQ2hpbGQgcHJvamVjdCB2ZXJzaW9uLiBEZWZhdWx0cyB0byBgbWFpbmAuICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhZ3MgYWRkZWQgdG8gdGhpcyBjaGlsZCwgdXNpbmcgdGhlIGBrZXk6dmFsdWVgIGZvcm1hdC5cbiAgICpcbiAgICogQ2hpbGQgdGFncyBvdmVycmlkZSBzaGFyZWQgdGFncyB3aXRoIHRoZSBzYW1lIGtleS4gYHRlYW1faWRlbnRpZmllcmAgaXMgYWx3YXlzIGluaGVyaXRlZCBmcm9tIHRoZSBSSU8gTGFuZGluZyBab25lXG4gICAqIGNvbmZpZ3VyYXRpb24uIERvIG5vdCBwcm92aWRlIGB0ZWFtX2lkZW50aWZpZXJgIG9yIGBhY2NvdW50X2lkYDsgYm90aCBhcmUgbWFuYWdlZCB0YWcga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogc3RyaW5nW107XG5cbiAgLyoqIEpTT04gU0JPTSBmaWxlIGFzc2V0IHRvIHVwbG9hZC4gKi9cbiAgcmVhZG9ubHkgc2JvbTogczNBc3NldHMuQXNzZXQ7XG5cbiAgLyoqIE9wdGlvbmFsIEpTT04gVkVYIGZpbGUgYXNzZXQgdG8gdXBsb2FkLiAqL1xuICByZWFkb25seSB2ZXg/OiBzM0Fzc2V0cy5Bc3NldDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBtYW5kYXRvcnkgbGljZW5zZSBwb2xpY3kgdG8gYmUgYXBwbGllZCB0byB0aGlzIHByb2plY3QuXG4gICAqXG4gICAqIFVzZSBgTGljZW5zZVBvbGljeS5OT05FYCBpbiBleGNlcHRpb25hbCBjYXNlcyBvbmx5IVxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZVBvbGljeTogTGljZW5zZVBvbGljeTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB7QGxpbmsgU2JvbUNhdGFsb2dQcm9qZWN0fS5cbiAqXG4gKiBAYmV0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNib21DYXRhbG9nUHJvamVjdFByb3BzIHtcbiAgLyoqIENvbGxlY3Rpb24gbmFtZSBzdG9yZWQgaW4gdGhlIG1hbmlmZXN0IGFuZCB1c2VkIGluIHRoZSBkZXN0aW5hdGlvbiBrZXkuICovXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqIENvbGxlY3Rpb24gdmVyc2lvbi4gRGVmYXVsdHMgdG8gYG1haW5gLiAqL1xuICByZWFkb25seSBjb2xsZWN0aW9uVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGFncyBpbmhlcml0ZWQgYnkgZXZlcnkgY2hpbGQsIHVzaW5nIHRoZSBga2V5OnZhbHVlYCBmb3JtYXQuXG4gICAqXG4gICAqIEEgY2hpbGQncyBhZGRpdGlvbmFsIHRhZ3Mgb3ZlcnJpZGUgc2hhcmVkIHRhZ3Mgd2l0aCB0aGUgc2FtZSBrZXkuIGB0ZWFtX2lkZW50aWZpZXJgIGlzIGFsd2F5cyBhZGRlZCBmcm9tIHRoZSBSSU9cbiAgICogTGFuZGluZyBab25lIGNvbmZpZ3VyYXRpb24uIERvIG5vdCBwcm92aWRlIGB0ZWFtX2lkZW50aWZpZXJgIG9yIGBhY2NvdW50X2lkYDsgYm90aCBhcmUgbWFuYWdlZCB0YWcga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZFRhZ3M/OiBzdHJpbmdbXTtcblxuICAvKiogQ2hpbGQgY2F0YWxvZyBwcm9qZWN0cy4gTXVzdCBjb250YWluIGJldHdlZW4gb25lIGFuZCB0aHJlZSBwcm9qZWN0cy4gKi9cbiAgcmVhZG9ubHkgY2hpbGRyZW46IFNib21DYXRhbG9nUHJvamVjdENoaWxkW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHZ1bG5lcmFiaWxpdHkgbW9uaXRvciBjb25maWd1cmF0aW9uIHNoYXJlZCBieSBhbGwgY2hpbGQgbW9uaXRvcnMuXG4gICAqXG4gICAqIFdoZW4gb21pdHRlZCwgdGhlIG1vbml0b3JzIHVzZSB7QGxpbmsgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbn0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgVnVsbmVyYWJpbGl0eSBtb25pdG9ycyB1c2luZyB7QGxpbmsgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbn1cbiAgICovXG4gIHJlYWRvbmx5IHZ1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHM/OiBTYm9tQ2F0YWxvZ1Z1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHM7XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIG9uZSBwcm9qZWN0J3MgU0JPTSBhbmQgb3B0aW9uYWwgVkVYIGluIHRoZSBjZW50cmFsIFNCT00gY2F0YWxvZy5cbiAqXG4gKiBVc2UgdGhpcyBjb25zdHJ1Y3Qgd2hlbiBhIHN0YWNrIG93bnMgb25lIGluZGVwZW5kZW50bHkgdmVyc2lvbmVkIHByb2plY3QuIFRoZSBmaWxlcyBhcmUgdXBsb2FkZWQgYWZ0ZXIgdGhlIHN0YWNrXG4gKiByZWFjaGVzIGBDUkVBVEVfQ09NUExFVEVgIG9yIGBVUERBVEVfQ09NUExFVEVgLiBUaGUgRXZlbnRCcmlkZ2UgZXZlbnQgdGltZSBhbmQgSUQgaWRlbnRpZnkgdGhlIHVwbG9hZC5cbiAqXG4gKiBUaGUgY29uc3RydWN0IGF1dG9tYXRpY2FsbHkgYWRkcyB0aGUgUklPIExhbmRpbmcgWm9uZSBgdGVhbV9pZGVudGlmaWVyYCB0YWcgYW5kIGdyYW50cyB0aGUgZ2VuZXJhdGVkIHVwbG9hZCBMYW1iZGFcbiAqIHBlcm1pc3Npb24gdG8gcmVhZCB0aGUgc291cmNlIGFzc2V0cyBhbmQgd3JpdGUgdGhlbSB0byB0aGUgY2VudHJhbCBjYXRhbG9nIGJ1Y2tldC4gQWxsIFNCT00gY2F0YWxvZyBjb25zdHJ1Y3RzIGluXG4gKiB0aGUgc2FtZSBzdGFjayByZXVzZSBvbmUgdXBsb2FkIExhbWJkYS5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgdHNcbiAqIGNvbnN0IHNib20gPSBuZXcgczNBc3NldHMuQXNzZXQodGhpcywgJ1Nib21Bc3NldCcsIHtcbiAqICAgcGF0aDogJ2J1aWxkL3Nib20uanNvbicsXG4gKiB9KTtcbiAqIGNvbnN0IHZleCA9IG5ldyBzM0Fzc2V0cy5Bc3NldCh0aGlzLCAnVmV4QXNzZXQnLCB7XG4gKiAgIHBhdGg6ICdidWlsZC92ZXguanNvbicsXG4gKiB9KTtcbiAqXG4gKiBuZXcgU3RhbmRhbG9uZVNib21DYXRhbG9nUHJvamVjdCh0aGlzLCAnQ2F0YWxvZ1VwbG9hZCcsIHtcbiAqICAgbmFtZTogJ2JpbGxpbmctYXBpJyxcbiAqICAgdmVyc2lvbjogJzEuNC4wJyxcbiAqICAgYWRkaXRpb25hbFRhZ3M6IFsnY29tcG9uZW50OmJhY2tlbmQnXSxcbiAqICAgc2JvbSxcbiAqICAgdmV4LFxuICogICB2dWxuZXJhYmlsaXR5TW9uaXRvclByb3BzOiB7XG4gKiAgICAgbm90aWZpY2F0aW9uOiBuZXcgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpLFxuICogICB9LFxuICogICBsaWNlbnNlUG9saWN5OiBsaWNlbnNlUG9saWN5LkpWTV9CQUNLRU5ELFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAYmV0YVxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhbG9uZVNib21DYXRhbG9nUHJvamVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFuZGFsb25lU2JvbUNhdGFsb2dQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IHByb3BzLnZlcnNpb24gPz8gREVGQVVMVF9WRVJTSU9OO1xuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUlkZW50aWZpZXJQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgdGFncyA9XG4gICAgICBtZXJnZVRhZ3MoXG4gICAgICAgIGFkZExpY2Vuc2VQb2xpY3lUYWdJZlJlcXVpcmVkKFtgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXJ9YF0sIHByb3BzLmxpY2Vuc2VQb2xpY3kpLFxuICAgICAgICBwcm9wcy5hZGRpdGlvbmFsVGFnc1xuICAgICAgKSA/PyBbXTtcbiAgICBhc3NlcnROb25FbXB0eVZhbHVlV2l0aG91dFNsYXNoZXMoJ25hbWUnLCBwcm9wcy5uYW1lKTtcbiAgICBhc3NlcnROb25FbXB0eVZlcnNpb24oJ3ZlcnNpb24nLCB2ZXJzaW9uKTtcbiAgICBwYXJzZVRhZ3NXaXRoVmFsaWRVbmlxdWVLZXlzKHByb3BzLmFkZGl0aW9uYWxUYWdzID8/IFtdLCAnYWRkaXRpb25hbFRhZ3MnKTtcblxuICAgIGNvbnN0IHN0YWNrID0gU3RhY2sub2YodGhpcyk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogU3RhbmRhbG9uZVVwbG9hZENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICBvcmlnaW5BY2NvdW50SWQ6IHN0YWNrLmFjY291bnQsXG4gICAgICBvcmlnaW5BY2NvdW50TmFtZTogUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWUsXG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgdmVyc2lvbixcbiAgICAgIHRhZ3MsXG4gICAgICBzYm9tOiBhc3NldExvY2F0aW9uKHByb3BzLnNib20pLFxuICAgICAgLi4uKHByb3BzLnZleCA9PT0gdW5kZWZpbmVkID8ge30gOiB7IHZleDogYXNzZXRMb2NhdGlvbihwcm9wcy52ZXgpIH0pLFxuICAgIH07XG5cbiAgICBjcmVhdGVVcGxvYWRSZXNvdXJjZXModGhpcywgY29uZmlndXJhdGlvbiwgW3Byb3BzLnNib20sIC4uLihwcm9wcy52ZXggPT09IHVuZGVmaW5lZCA/IFtdIDogW3Byb3BzLnZleF0pXSk7XG4gICAgY3JlYXRlVnVsbmVyYWJpbGl0eU1vbml0b3Ioe1xuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICBwcm9qZWN0TmFtZTogcHJvcHMubmFtZSxcbiAgICAgIGFjY291bnROYW1lOiBjb25maWd1cmF0aW9uLm9yaWdpbkFjY291bnROYW1lLFxuICAgICAgbm90aWZpY2F0aW9uOiBwcm9wcy52dWxuZXJhYmlsaXR5TW9uaXRvclByb3BzPy5ub3RpZmljYXRpb24gPz8gbmV3IGRhdGFkb2d2Mi5EZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhIGNvbGxlY3Rpb24gb2YgcmVsYXRlZCBwcm9qZWN0IFNCT01zIGFuZCBvcHRpb25hbCBWRVggZmlsZXMgaW4gdGhlIGNlbnRyYWwgU0JPTSBjYXRhbG9nLlxuICpcbiAqIFVzZSB0aGlzIGNvbnN0cnVjdCB3aGVuIG9uZSBzdGFjayBwcm9kdWNlcyBiZXR3ZWVuIG9uZSBhbmQgdGhyZWUgcmVsYXRlZCBwcm9qZWN0cyB0aGF0IHNob3VsZCBzaGFyZSBhIGNhdGFsb2dcbiAqIGNvbGxlY3Rpb24uIFNoYXJlZCB0YWdzIGFyZSBpbmhlcml0ZWQgYnkgZXZlcnkgY2hpbGQsIHdoaWxlIGNoaWxkIHRhZ3Mgd2l0aCB0aGUgc2FtZSBrZXkgb3ZlcnJpZGUgdGhlbS4gVGhlIFJJT1xuICogTGFuZGluZyBab25lIGB0ZWFtX2lkZW50aWZpZXJgIHRhZyBpcyBhbHdheXMgaW5jbHVkZWQuXG4gKlxuICogVGhlIGZpbGVzIGFyZSB1cGxvYWRlZCBhZnRlciB0aGUgc3RhY2sgcmVhY2hlcyBgQ1JFQVRFX0NPTVBMRVRFYCBvciBgVVBEQVRFX0NPTVBMRVRFYC4gVGhlIEV2ZW50QnJpZGdlIGV2ZW50IHRpbWVcbiAqIGFuZCBJRCBpZGVudGlmeSB0aGUgdXBsb2FkLiBBbGwgU0JPTSBjYXRhbG9nIGNvbnN0cnVjdHMgaW4gdGhlIHNhbWUgc3RhY2sgcmV1c2Ugb25lIHVwbG9hZCBMYW1iZGEuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBjb25zdCBhcGlTYm9tID0gbmV3IHMzQXNzZXRzLkFzc2V0KHRoaXMsICdBcGlTYm9tQXNzZXQnLCB7XG4gKiAgIHBhdGg6ICdidWlsZC9hcGktc2JvbS5qc29uJyxcbiAqIH0pO1xuICogY29uc3QgaW5mcmFzdHJ1Y3R1cmVTYm9tID0gbmV3IHMzQXNzZXRzLkFzc2V0KHRoaXMsICdJbmZyYXN0cnVjdHVyZVNib21Bc3NldCcsIHtcbiAqICAgcGF0aDogJ2J1aWxkL2luZnJhc3RydWN0dXJlLXNib20uanNvbicsXG4gKiB9KTtcbiAqXG4gKiBuZXcgU2JvbUNhdGFsb2dQcm9qZWN0KHRoaXMsICdDYXRhbG9nVXBsb2FkJywge1xuICogICBjb2xsZWN0aW9uTmFtZTogJ2JpbGxpbmcnLFxuICogICBjb2xsZWN0aW9uVmVyc2lvbjogJzEuNC4wJyxcbiAqICAgc2hhcmVkVGFnczogWydkb21haW46YmlsbGluZyddLFxuICogICBjaGlsZHJlbjogW1xuICogICAgIHtcbiAqICAgICAgIG5hbWU6ICdhcGknLFxuICogICAgICAgc2JvbTogYXBpU2JvbSxcbiAqICAgICAgIGFkZGl0aW9uYWxUYWdzOiBbJ2NvbXBvbmVudDpiYWNrZW5kJ10sXG4gKiAgICAgICBsaWNlbnNlUG9saWN5OiBMaWNlbnNlUG9saWN5LkpWTV9CQUNLRU5ELFxuICogICAgIH0sXG4gKiAgICAge1xuICogICAgICAgbmFtZTogJ2luZnJhc3RydWN0dXJlJyxcbiAqICAgICAgIHNib206IGluZnJhc3RydWN0dXJlU2JvbSxcbiAqICAgICAgIGFkZGl0aW9uYWxUYWdzOiBbJ2NvbXBvbmVudDppbmZyYXN0cnVjdHVyZSddLFxuICogKiAgICAgICBsaWNlbnNlUG9saWN5OiBMaWNlbnNlUG9saWN5Lk5QTV9CQUNLRU5ELFxuICogICAgIH0sXG4gKiAgIF0sXG4gKiAgIHZ1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHM6IHtcbiAqICAgICBub3RpZmljYXRpb246IG5ldyBkYXRhZG9ndjIuRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCksXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBiZXRhXG4gKi9cbmV4cG9ydCBjbGFzcyBTYm9tQ2F0YWxvZ1Byb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2JvbUNhdGFsb2dQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY29sbGVjdGlvblZlcnNpb24gPSBwcm9wcy5jb2xsZWN0aW9uVmVyc2lvbiA/PyBERUZBVUxUX1ZFUlNJT047XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtSWRlbnRpZmllclBhcmFtZXRlcih0aGlzKS5zdHJpbmdWYWx1ZTtcbiAgICBhc3NlcnROb25FbXB0eVZhbHVlV2l0aG91dFNsYXNoZXMoJ2NvbGxlY3Rpb25OYW1lJywgcHJvcHMuY29sbGVjdGlvbk5hbWUpO1xuICAgIGFzc2VydE5vbkVtcHR5VmVyc2lvbignY29sbGVjdGlvblZlcnNpb24nLCBjb2xsZWN0aW9uVmVyc2lvbik7XG4gICAgdmFsaWRhdGVDaGlsZHJlbihwcm9wcy5jaGlsZHJlbik7XG4gICAgcGFyc2VUYWdzV2l0aFZhbGlkVW5pcXVlS2V5cyhwcm9wcy5zaGFyZWRUYWdzID8/IFtdLCAnc2hhcmVkVGFncycpO1xuICAgIGNvbnN0IHNoYXJlZFRhZ3MgPSBtZXJnZVRhZ3MoW2B0ZWFtX2lkZW50aWZpZXI6JHt0ZWFtSWRlbnRpZmllcn1gXSwgcHJvcHMuc2hhcmVkVGFncykgPz8gW107XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENhdGFsb2dVcGxvYWRDb25maWd1cmF0aW9uID0ge1xuICAgICAgb3JpZ2luQWNjb3VudElkOiBzdGFjay5hY2NvdW50LFxuICAgICAgb3JpZ2luQWNjb3VudE5hbWU6IFJpb0xhbmRpbmdab25lLmdldEFjY291bnROYW1lUGFyYW1ldGVyKHRoaXMpLnN0cmluZ1ZhbHVlLFxuICAgICAgY29sbGVjdGlvbk5hbWU6IHByb3BzLmNvbGxlY3Rpb25OYW1lLFxuICAgICAgY29sbGVjdGlvblZlcnNpb24sXG4gICAgICB0YWdzOiBbYHRlYW1faWRlbnRpZmllcjoke3RlYW1JZGVudGlmaWVyfWBdLFxuICAgICAgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuLm1hcChjaGlsZCA9PiAoe1xuICAgICAgICBuYW1lOiBjaGlsZC5uYW1lLFxuICAgICAgICB2ZXJzaW9uOiBjaGlsZC52ZXJzaW9uID8/IERFRkFVTFRfVkVSU0lPTixcbiAgICAgICAgLi4ub3B0aW9uYWxUYWdzKFxuICAgICAgICAgIG1lcmdlVGFncyhhZGRMaWNlbnNlUG9saWN5VGFnSWZSZXF1aXJlZChzaGFyZWRUYWdzLCBjaGlsZC5saWNlbnNlUG9saWN5KSwgY2hpbGQuYWRkaXRpb25hbFRhZ3MpXG4gICAgICAgICksXG4gICAgICAgIHNib206IGFzc2V0TG9jYXRpb24oY2hpbGQuc2JvbSksXG4gICAgICAgIC4uLihjaGlsZC52ZXggPT09IHVuZGVmaW5lZCA/IHt9IDogeyB2ZXg6IGFzc2V0TG9jYXRpb24oY2hpbGQudmV4KSB9KSxcbiAgICAgIH0pKSxcbiAgICB9O1xuXG4gICAgY3JlYXRlVXBsb2FkUmVzb3VyY2VzKFxuICAgICAgdGhpcyxcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICBwcm9wcy5jaGlsZHJlbi5mbGF0TWFwKGNoaWxkID0+IFtjaGlsZC5zYm9tLCAuLi4oY2hpbGQudmV4ID09PSB1bmRlZmluZWQgPyBbXSA6IFtjaGlsZC52ZXhdKV0pXG4gICAgKTtcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHByb3BzLnZ1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHM/Lm5vdGlmaWNhdGlvbiA/PyBuZXcgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuICAgIHByb3BzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT5cbiAgICAgIGNyZWF0ZVZ1bG5lcmFiaWxpdHlNb25pdG9yKHtcbiAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgIHByb2plY3ROYW1lOiBjaGlsZC5uYW1lLFxuICAgICAgICBhY2NvdW50TmFtZTogY29uZmlndXJhdGlvbi5vcmlnaW5BY2NvdW50TmFtZSxcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVWdWxuZXJhYmlsaXR5TW9uaXRvclByb3BzIHtcbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcbiAgcmVhZG9ubHkgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uOiBkYXRhZG9ndjIuSU5vdGlmaWNhdGlvbjtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVnVsbmVyYWJpbGl0eU1vbml0b3IocHJvcHM6IENyZWF0ZVZ1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHMpOiB2b2lkIHtcbiAgY29uc3QgbW9uaXRvciA9IG5ldyBkYXRhZG9ndjIuRGF0YWRvZ01vbml0b3IocHJvcHMuc2NvcGUsIGAke3Byb3BzLnByb2plY3ROYW1lfVZ1bG5lcmFiaWxpdHlNb25pdG9yYCwge1xuICAgIG5hbWU6IGAke3Byb3BzLmFjY291bnROYW1lfSBWdWxuZXJhYmlsaXR5TW9uaXRvcmAsXG4gICAgc2VydmljZU5hbWU6IHByb3BzLnByb2plY3ROYW1lLFxuICAgIG1vbml0b3JUeXBlOiBkYXRhZG9ndjIuRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5NRVRSSUNfQUxFUlQsXG4gICAgLy8gRGVwZW5kZW5jeS1UcmFjayBlbWl0cyBzZXBhcmF0ZSBnYXVnZSB2YWx1ZXMgYWZ0ZXIgQk9NIGFuZCBWRVggcHJvY2Vzc2luZzsgZXZhbHVhdGUgYm90aCBhZnRlciB0aGV5IHNldHRsZS5cbiAgICBxdWVyeTogYG1pbihsYXN0XzNtKTptYXg6c2VydmljZS52dWxuZXJhYmlsaXRpZXN7cHJvamVjdF9uYW1lOiR7cHJvcHMucHJvamVjdE5hbWV9fSA+IDBgLFxuICAgIGxvd2VyY2FzZVF1ZXJ5OiB0cnVlLFxuICAgIG1lc3NhZ2U6IFtcbiAgICAgICd7eyNpc19hbGVydH19JyxcbiAgICAgIGBQcm9qZWN0ICR7cHJvcHMucHJvamVjdE5hbWV9IGhhcyB7e3ZhbHVlfX0ga25vd24gdnVsbmVyYWJpbGl0aWVzLmAsXG4gICAgICAne3svaXNfYWxlcnR9fScsXG4gICAgICAnJyxcbiAgICAgICd7eyNpc19yZWNvdmVyeX19JyxcbiAgICAgIGBQcm9qZWN0ICR7cHJvcHMucHJvamVjdE5hbWV9IG5vIGxvbmdlciByZXBvcnRzIHZ1bG5lcmFiaWxpdGllcy5gLFxuICAgICAgJ3t7L2lzX3JlY292ZXJ5fX0nLFxuICAgIF0uam9pbignXFxuJyksXG4gICAgbm90aWZpY2F0aW9uOiBwcm9wcy5ub3RpZmljYXRpb24sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgZXh0cmFUYWdzOiBbJ21vbml0b3JfdHlwZTp2dWxuZXJhYmlsaXR5J10sXG4gICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICBldmFsdWF0aW9uRGVsYXk6IDE4MCxcbiAgICAgIHRocmVzaG9sZHM6IHtcbiAgICAgICAgY3JpdGljYWw6IDAsXG4gICAgICB9LFxuICAgICAgb25NaXNzaW5nRGF0YTogZGF0YWRvZ3YyLk1vbml0b3JPbk1pc3NpbmdEYXRhLkRFRkFVTFQsXG4gICAgICByZXF1aXJlRnVsbFdpbmRvdzogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gYG9uX21pc3NpbmdfZGF0YWAgcmVwbGFjZXMgdGhlIGxlZ2FjeSBuby1kYXRhIG9wdGlvbnMgYW5kIGtlZXBzIHRoZSBsYXN0IGtub3duIHN0YXR1cyBmb3IgZ2F1Z2UgbWV0cmljcy5cbiAgY29uc3QgbW9uaXRvclJlc291cmNlID0gbW9uaXRvci5ub2RlLmZpbmRDaGlsZCgnTW9uaXRvcicpIGFzIENmblJlc291cmNlO1xuICBtb25pdG9yUmVzb3VyY2UuYWRkRGVsZXRpb25PdmVycmlkZSgnUHJvcGVydGllcy5PcHRpb25zLk5vdGlmeU5vRGF0YScpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVVcGxvYWRSZXNvdXJjZXMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGNvbmZpZ3VyYXRpb246IFVwbG9hZENvbmZpZ3VyYXRpb24sXG4gIHNvdXJjZUFzc2V0czogczNBc3NldHMuQXNzZXRbXVxuKTogdm9pZCB7XG4gIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpO1xuXG4gIGNvbnN0IHVwbG9hZEZ1bmN0aW9uID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbihzY29wZSwgJ1VwbG9hZEZ1bmN0aW9uJywge1xuICAgIHV1aWQ6IFVQTE9BRF9GVU5DVElPTl9VVUlELFxuICAgIGxhbWJkYVB1cnBvc2U6IFVQTE9BRF9GVU5DVElPTl9QVVJQT1NFLFxuICAgIHJ1bnRpbWU6IERFRkFVTFRfTk9ERV9SVU5USU1FLFxuICAgIGFyY2hpdGVjdHVyZTogbGFtYmRhLkFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgaGFuZGxlcjogJ2hhbmRsZXIuaGFuZGxlcicsXG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdsYW1iZGEnKSwge1xuICAgICAgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddLFxuICAgIH0pLFxuICAgIGxvZ2dpbmdGb3JtYXQ6IGxhbWJkYS5Mb2dnaW5nRm9ybWF0LkpTT04sXG4gICAgbG9nR3JvdXA6IGdldE9yQ3JlYXRlVXBsb2FkTG9nR3JvdXAoc3RhY2spLFxuICAgIGluaXRpYWxQb2xpY3k6IFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydzMzpQdXRPYmplY3QnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7U0JPTV9DQVRBTE9HX0JVQ0tFVF9BUk59LypgXSxcbiAgICAgIH0pLFxuICAgIF0sXG4gICAgbWVtb3J5U2l6ZTogMjU2LFxuICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gIH0pO1xuICAodXBsb2FkRnVuY3Rpb24ucGVybWlzc2lvbnNOb2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb24pLnRhZ3Muc2V0VGFnKCdXYXRjaGZ1bCcsICdGYWxzZScpO1xuXG4gIGZvciAoY29uc3QgYXNzZXQgb2Ygc291cmNlQXNzZXRzKSB7XG4gICAgYXNzZXQuZ3JhbnRSZWFkKHVwbG9hZEZ1bmN0aW9uKTtcbiAgfVxuXG4gIG5ldyBldmVudHMuUnVsZShzY29wZSwgJ1N0YWNrQ29tcGxldGlvblJ1bGUnLCB7XG4gICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICBzb3VyY2U6IFsnYXdzLmNsb3VkZm9ybWF0aW9uJ10sXG4gICAgICBkZXRhaWxUeXBlOiBbJ0Nsb3VkRm9ybWF0aW9uIFN0YWNrIFN0YXR1cyBDaGFuZ2UnXSxcbiAgICAgIGRldGFpbDoge1xuICAgICAgICAnc3RhY2staWQnOiBbc3RhY2suc3RhY2tJZF0sXG4gICAgICAgICdzdGF0dXMtZGV0YWlscyc6IHtcbiAgICAgICAgICBzdGF0dXM6IFsnQ1JFQVRFX0NPTVBMRVRFJywgJ1VQREFURV9DT01QTEVURSddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHRhcmdldHM6IFtcbiAgICAgIG5ldyBldmVudHNUYXJnZXRzLkxhbWJkYUZ1bmN0aW9uKHVwbG9hZEZ1bmN0aW9uLCB7XG4gICAgICAgIGV2ZW50OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV2ZW50cy5FdmVudEZpZWxkLmV2ZW50SWQsXG4gICAgICAgICAgZXZlbnRUaW1lOiBldmVudHMuRXZlbnRGaWVsZC5mcm9tUGF0aCgnJC50aW1lJyksXG4gICAgICAgICAgc3RhY2tJZDogZXZlbnRzLkV2ZW50RmllbGQuZnJvbVBhdGgoJyQuZGV0YWlsLnN0YWNrLWlkJyksXG4gICAgICAgICAgc3RhY2tTdGF0dXM6IGV2ZW50cy5FdmVudEZpZWxkLmZyb21QYXRoKCckLmRldGFpbC5zdGF0dXMtZGV0YWlscy5zdGF0dXMnKSxcbiAgICAgICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIF0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRPckNyZWF0ZVVwbG9hZExvZ0dyb3VwKHN0YWNrOiBTdGFjayk6IGxvZ3MuTG9nR3JvdXAge1xuICBjb25zdCBleGlzdGluZ0xvZ0dyb3VwID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoVVBMT0FEX0xPR19HUk9VUF9JRCk7XG4gIGlmIChleGlzdGluZ0xvZ0dyb3VwIGluc3RhbmNlb2YgbG9ncy5Mb2dHcm91cCkge1xuICAgIHJldHVybiBleGlzdGluZ0xvZ0dyb3VwO1xuICB9XG4gIGlmIChleGlzdGluZ0xvZ0dyb3VwICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFN0YWNrIGFscmVhZHkgY29udGFpbnMgYSBjb25zdHJ1Y3QgbmFtZWQgJyR7VVBMT0FEX0xPR19HUk9VUF9JRH0nYCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBsb2dzLkxvZ0dyb3VwKHN0YWNrLCBVUExPQURfTE9HX0dST1VQX0lELCB7XG4gICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX1dFRUssXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhc3NldExvY2F0aW9uKGFzc2V0OiBzM0Fzc2V0cy5Bc3NldCk6IEFzc2V0TG9jYXRpb24ge1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldE5hbWU6IGFzc2V0LnMzQnVja2V0TmFtZSxcbiAgICBvYmplY3RLZXk6IGFzc2V0LnMzT2JqZWN0S2V5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eVZhbHVlV2l0aG91dFNsYXNoZXMobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgdmFsdWUuaW5jbHVkZXMoJy8nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfSBtdXN0IGJlIGEgbm9uLWVtcHR5IHZhbHVlIHdpdGhvdXQgJy8nYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0Tm9uRW1wdHlWZXJzaW9uKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHZhbHVlKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAodmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9IG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVDaGlsZHJlbihjaGlsZHJlbjogU2JvbUNhdGFsb2dQcm9qZWN0Q2hpbGRbXSk6IHZvaWQge1xuICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjaGlsZHJlbiBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIHByb2plY3QnKTtcbiAgfVxuICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gTUFYX0NISUxEUkVOKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjaGlsZHJlbiBtdXN0IGNvbnRhaW4gYXQgbW9zdCAke01BWF9DSElMRFJFTn0gcHJvamVjdHNgKTtcbiAgfVxuXG4gIGNvbnN0IG5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICBhc3NlcnROb25FbXB0eVZhbHVlV2l0aG91dFNsYXNoZXMoJ2NoaWxkIG5hbWUnLCBjaGlsZC5uYW1lKTtcbiAgICBpZiAoY2hpbGQudmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhc3NlcnROb25FbXB0eVZlcnNpb24oYHZlcnNpb24gZm9yIGNoaWxkICcke2NoaWxkLm5hbWV9J2AsIGNoaWxkLnZlcnNpb24pO1xuICAgIH1cbiAgICBwYXJzZVRhZ3NXaXRoVmFsaWRVbmlxdWVLZXlzKGNoaWxkLmFkZGl0aW9uYWxUYWdzID8/IFtdLCBgYWRkaXRpb25hbFRhZ3MgZm9yIGNoaWxkICcke2NoaWxkLm5hbWV9J2ApO1xuICAgIGlmIChuYW1lcy5oYXMoY2hpbGQubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY2hpbGQgbmFtZSAnJHtjaGlsZC5uYW1lfScgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBjb2xsZWN0aW9uYCk7XG4gICAgfVxuICAgIG5hbWVzLmFkZChjaGlsZC5uYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZVRhZ3Moc2hhcmVkVGFncz86IHN0cmluZ1tdLCBhZGRpdGlvbmFsVGFncz86IHN0cmluZ1tdKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICBpZiAoc2hhcmVkVGFncyA9PT0gdW5kZWZpbmVkICYmIGFkZGl0aW9uYWxUYWdzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgc2hhcmVkID0gcGFyc2VUYWdzV2l0aFZhbGlkVW5pcXVlS2V5cyhzaGFyZWRUYWdzID8/IFtdLCAnc2hhcmVkVGFncycsIHRydWUpO1xuICBjb25zdCBhZGRpdGlvbmFsID0gcGFyc2VUYWdzV2l0aFZhbGlkVW5pcXVlS2V5cyhhZGRpdGlvbmFsVGFncyA/PyBbXSwgJ2FkZGl0aW9uYWxUYWdzJyk7XG4gIGNvbnN0IG1lcmdlZCA9IG5ldyBNYXAoc2hhcmVkKTtcbiAgZm9yIChjb25zdCBba2V5LCB0YWddIG9mIGFkZGl0aW9uYWwpIG1lcmdlZC5zZXQoa2V5LCB0YWcpO1xuICByZXR1cm4gWy4uLm1lcmdlZC52YWx1ZXMoKV07XG59XG5cbmZ1bmN0aW9uIGFkZExpY2Vuc2VQb2xpY3lUYWdJZlJlcXVpcmVkKHRhZ3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLCBwb2xpY3k6IExpY2Vuc2VQb2xpY3kpIHtcbiAgaWYgKHBvbGljeSAhPT0gTGljZW5zZVBvbGljeS5OT05FKSB7XG4gICAgcmV0dXJuIFsuLi4odGFncyA/PyBbXSksIGBsaWNlbnNlX3BvbGljeToke3BvbGljeX1gXTtcbiAgfVxuICByZXR1cm4gdGFncztcbn1cblxuZnVuY3Rpb24gcGFyc2VUYWdzV2l0aFZhbGlkVW5pcXVlS2V5cyhcbiAgdGFnczogc3RyaW5nW10sXG4gIHByb3BlcnR5TmFtZTogc3RyaW5nLFxuICBhbGxvd01hbmFnZWRUYWdzID0gZmFsc2Vcbik6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKSB7XG4gICAgY29uc3Qgc2VwYXJhdG9ySW5kZXggPSB0YWcuaW5kZXhPZignOicpO1xuICAgIGlmIChzZXBhcmF0b3JJbmRleCA8PSAwIHx8IHNlcGFyYXRvckluZGV4ID09PSB0YWcubGVuZ3RoIC0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Byb3BlcnR5TmFtZX0gdGFnICcke3RhZ30nIG11c3QgdXNlIHRoZSBmb3JtYXQga2V5OnZhbHVlIHdpdGggYSBub24tZW1wdHkga2V5IGFuZCB2YWx1ZWApO1xuICAgIH1cblxuICAgIGNvbnN0IGtleSA9IHRhZy5zbGljZSgwLCBzZXBhcmF0b3JJbmRleCk7XG4gICAgaWYgKE1BTkFHRURfVEFHX0tFWVMuaGFzKGtleSkgJiYgIWFsbG93TWFuYWdlZFRhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtwcm9wZXJ0eU5hbWV9IG11c3Qgbm90IHNldCBtYW5hZ2VkIHRhZyBrZXkgJyR7a2V5fSdgKTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5oYXMoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Byb3BlcnR5TmFtZX0gY29udGFpbnMgZHVwbGljYXRlIHRhZyBrZXkgJyR7a2V5fSdgKTtcbiAgICB9XG4gICAgcmVzdWx0LnNldChrZXksIHRhZyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gb3B0aW9uYWxUYWdzKHRhZ3M/OiBzdHJpbmdbXSk6IHsgcmVhZG9ubHkgdGFncz86IHN0cmluZ1tdIH0ge1xuICByZXR1cm4gdGFncyA9PT0gdW5kZWZpbmVkID8ge30gOiB7IHRhZ3MgfTtcbn1cbiJdfQ==
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nib20tY2F0YWxvZy9jYXRhbG9nLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsNkNBQXVFO0FBQ3ZFLGlEQUFpRDtBQUNqRCxnRUFBZ0U7QUFDaEUsMkNBQTJDO0FBQzNDLGlEQUFpRDtBQUNqRCw2Q0FBNkM7QUFFN0MsMkNBQXVDO0FBQ3ZDLDRDQUFvRDtBQUNwRCwwQ0FBMEM7QUFDMUMsMERBQXFEO0FBQ3JELDJDQUFzRDtBQVF0RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFDL0IsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLE1BQU0sb0JBQW9CLEdBQUcsc0NBQXNDLENBQUM7QUFDcEUsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCxNQUFNLG1CQUFtQixHQUFHLDJCQUEyQixDQUFDO0FBRXhEOzs7O0dBSUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDdkIsOEJBQWEsQ0FBQTtJQUNiLDRDQUEyQixDQUFBO0lBQzNCLDRDQUEyQixDQUFBO0lBQzNCLDhDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEI7QUE0SEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsc0JBQVM7SUFDekQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QztRQUNoRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksZUFBZSxD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QUFDO0lBQ3pDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLGNBQWMsSUFBSSxDQUFDLElBQUksY0FBYyxLQUFLLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFlBQVksU0FBUyxHQUFHLGdFQUFnRSxDQUFDLENBQUM7UUFDL0csQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsWUFBWSxrQ0FBa0MsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFlBQVksZ0NBQWdDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBZTtJQUNuQyxPQUFPLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgdHlwZSBDZm5SZXNvdXJjZSwgRHVyYXRpb24sIFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIGV2ZW50c1RhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHR5cGUgKiBhcyBzM0Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgZGF0YWRvZ3YyIGZyb20gJy4uL2RhdGFkb2d2Mic7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuaW1wb3J0IHsgU0JPTV9DQVRBTE9HX0JVQ0tFVF9BUk4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2V0TG9jYXRpb24sXG4gIENhdGFsb2dVcGxvYWRDb25maWd1cmF0aW9uLFxuICBTdGFuZGFsb25lVXBsb2FkQ29uZmlndXJhdGlvbixcbiAgVXBsb2FkQ29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi9sYW1iZGEvdHlwZXMnO1xuXG5jb25zdCBERUZBVUxUX1ZFUlNJT04gPSAnbWFpbic7XG5jb25zdCBNQVhfQ0hJTERSRU4gPSAzO1xuY29uc3QgTUFOQUdFRF9UQUdfS0VZUyA9IG5ldyBTZXQoWydhY2NvdW50X2lkJywgJ3RlYW1faWRlbnRpZmllcicsICdsaWNlbnNlX3BvbGljeSddKTtcbmNvbnN0IFVQTE9BRF9GVU5DVElPTl9VVUlEID0gJ2QyMGI5ZjQ2LTA3MDItNDdkZC04OWMyLTllYTRiZGRhYWNmYyc7XG5jb25zdCBVUExPQURfRlVOQ1RJT05fUFVSUE9TRSA9ICdTYm9tQ2F0YWxvZ1VwbG9hZCc7XG5jb25zdCBVUExPQURfTE9HX0dST1VQX0lEID0gJ1Nib21DYXRhbG9nVXBsb2FkTG9nR3JvdXAnO1xuXG4vKipcbiAqIEVudW0gdG8gc3BlY2lmeSB3aGljaCBsaWNlbnNlIHBvbGljeSBzaG91bGQgYXBwbGllZC5cbiAqXG4gKiBAYmV0YVxuICovXG5leHBvcnQgZW51bSBMaWNlbnNlUG9saWN5IHtcbiAgTk9ORSA9ICdub25lJyxcbiAgSlZNX0JBQ0tFTkQgPSAnanZtLWJhY2tlbmQnLFxuICBOUE1fQkFDS0VORCA9ICducG0tYmFja2VuZCcsXG4gIE5QTV9GUk9OVEVORCA9ICducG0tZnJvbnRlbmQnLFxufVxuXG4vKipcbiAqIE5vdGlmaWNhdGlvbiBjb25maWd1cmF0aW9uIGZvciBhbiBTQk9NIGNhdGFsb2cgdnVsbmVyYWJpbGl0eSBtb25pdG9yLlxuICpcbiAqIEBiZXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2JvbUNhdGFsb2dWdWxuZXJhYmlsaXR5TW9uaXRvclByb3BzIHtcbiAgLyoqIE5vdGlmaWNhdGlvbiBzZW50IHdoZW4gdGhlIHZ1bG5lcmFiaWxpdHkgbW9uaXRvciBjaGFuZ2VzIHN0YXRlLiAqL1xuICByZWFkb25seSBub3RpZmljYXRpb246IGRhdGFkb2d2Mi5JTm90aWZpY2F0aW9uO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHtAbGluayBTdGFuZGFsb25lU2JvbUNhdGFsb2dQcm9qZWN0fS5cbiAqXG4gKiBAYmV0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYWxvbmVTYm9tQ2F0YWxvZ1Byb2plY3RQcm9wcyB7XG4gIC8qKiBNdXN0IGJlIG5vbi1lbXB0eSBhbmQgbXVzdCBub3QgY29udGFpbiBgL2AuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKiogUHJvamVjdCB2ZXJzaW9uLiBEZWZhdWx0cyB0byBgbWFpbmAuICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcHJvamVjdCB0YWdzIHVzaW5nIHRoZSBga2V5OnZhbHVlYCBmb3JtYXQuXG4gICAqXG4gICAqIGB0ZWFtX2lkZW50aWZpZXJgIGlzIGFsd2F5cyBhZGRlZCBmcm9tIHRoZSBSSU8gTGFuZGluZyBab25lIGNvbmZpZ3VyYXRpb24uIERvIG5vdCBwcm92aWRlIGB0ZWFtX2lkZW50aWZpZXJgIG9yXG4gICAqIGBhY2NvdW50X2lkYDsgYm90aCBhcmUgbWFuYWdlZCB0YWcga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogc3RyaW5nW107XG5cbiAgLyoqIEpTT04gU0JPTSBmaWxlIGFzc2V0IHRvIHVwbG9hZC4gKi9cbiAgcmVhZG9ubHkgc2JvbTogczNBc3NldHMuQXNzZXQ7XG5cbiAgLyoqIE9wdGlvbmFsIEpTT04gVkVYIGZpbGUgYXNzZXQgdG8gdXBsb2FkLiAqL1xuICByZWFkb25seSB2ZXg/OiBzM0Fzc2V0cy5Bc3NldDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdnVsbmVyYWJpbGl0eSBtb25pdG9yIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIFdoZW4gb21pdHRlZCwgdGhlIG1vbml0b3IgdXNlcyB7QGxpbmsgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbn0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgQSB2dWxuZXJhYmlsaXR5IG1vbml0b3IgdXNpbmcge0BsaW5rIGRhdGFkb2d2Mi5EZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqL1xuICByZWFkb25seSB2dWxuZXJhYmlsaXR5TW9uaXRvclByb3BzPzogU2JvbUNhdGFsb2dWdWxuZXJhYmlsaXR5TW9uaXRvclByb3BzO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1hbmRhdG9yeSBsaWNlbnNlIHBvbGljeSB0byBiZSBhcHBsaWVkIHRvIHRoaXMgcHJvamVjdC5cbiAgICpcbiAgICogVXNlIGBMaWNlbnNlUG9saWN5Lk5PTkVgIGluIGV4Y2VwdGlvbmFsIGNhc2VzIG9ubHkhXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlUG9saWN5OiBMaWNlbnNlUG9saWN5O1xufVxuXG4vKipcbiAqIEEgY2hpbGQgcHJvamVjdCBpbiBhbiBTQk9NIGNhdGFsb2cgY29sbGVjdGlvbi5cbiAqXG4gKiBAYmV0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNib21DYXRhbG9nUHJvamVjdENoaWxkIHtcbiAgLyoqXG4gICAqIE11c3QgYmUgbm9uLWVtcHR5LCB1bmlxdWUgd2l0aGluIHRoZSBjb2xsZWN0aW9uLCBhbmQgbXVzdCBub3QgY29udGFpbiBgL2AuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIENoaWxkIHByb2plY3QgdmVyc2lvbi4gRGVmYXVsdHMgdG8gYG1haW5gLiAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIGFkZGVkIHRvIHRoaXMgY2hpbGQsIHVzaW5nIHRoZSBga2V5OnZhbHVlYCBmb3JtYXQuXG4gICAqXG4gICAqIENoaWxkIHRhZ3Mgb3ZlcnJpZGUgc2hhcmVkIHRhZ3Mgd2l0aCB0aGUgc2FtZSBrZXkuIGB0ZWFtX2lkZW50aWZpZXJgIGlzIGFsd2F5cyBpbmhlcml0ZWQgZnJvbSB0aGUgUklPIExhbmRpbmcgWm9uZVxuICAgKiBjb25maWd1cmF0aW9uLiBEbyBub3QgcHJvdmlkZSBgdGVhbV9pZGVudGlmaWVyYCBvciBgYWNjb3VudF9pZGA7IGJvdGggYXJlIG1hbmFnZWQgdGFnIGtleXMuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKiBKU09OIFNCT00gZmlsZSBhc3NldCB0byB1cGxvYWQuICovXG4gIHJlYWRvbmx5IHNib206IHMzQXNzZXRzLkFzc2V0O1xuXG4gIC8qKiBPcHRpb25hbCBKU09OIFZFWCBmaWxlIGFzc2V0IHRvIHVwbG9hZC4gKi9cbiAgcmVhZG9ubHkgdmV4PzogczNBc3NldHMuQXNzZXQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWFuZGF0b3J5IGxpY2Vuc2UgcG9saWN5IHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBVc2UgYExpY2Vuc2VQb2xpY3kuTk9ORWAgaW4gZXhjZXB0aW9uYWwgY2FzZXMgb25seSFcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VQb2xpY3k6IExpY2Vuc2VQb2xpY3k7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3Ige0BsaW5rIFNib21DYXRhbG9nUHJvamVjdH0uXG4gKlxuICogQGJldGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYm9tQ2F0YWxvZ1Byb2plY3RQcm9wcyB7XG4gIC8qKiBDb2xsZWN0aW9uIG5hbWUgc3RvcmVkIGluIHRoZSBtYW5pZmVzdCBhbmQgdXNlZCBpbiB0aGUgZGVzdGluYXRpb24ga2V5LiAqL1xuICByZWFkb25seSBjb2xsZWN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKiBDb2xsZWN0aW9uIHZlcnNpb24uIERlZmF1bHRzIHRvIGBtYWluYC4gKi9cbiAgcmVhZG9ubHkgY29sbGVjdGlvblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhZ3MgaW5oZXJpdGVkIGJ5IGV2ZXJ5IGNoaWxkLCB1c2luZyB0aGUgYGtleTp2YWx1ZWAgZm9ybWF0LlxuICAgKlxuICAgKiBBIGNoaWxkJ3MgYWRkaXRpb25hbCB0YWdzIG92ZXJyaWRlIHNoYXJlZCB0YWdzIHdpdGggdGhlIHNhbWUga2V5LiBgdGVhbV9pZGVudGlmaWVyYCBpcyBhbHdheXMgYWRkZWQgZnJvbSB0aGUgUklPXG4gICAqIExhbmRpbmcgWm9uZSBjb25maWd1cmF0aW9uLiBEbyBub3QgcHJvdmlkZSBgdGVhbV9pZGVudGlmaWVyYCBvciBgYWNjb3VudF9pZGA7IGJvdGggYXJlIG1hbmFnZWQgdGFnIGtleXMuXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRUYWdzPzogc3RyaW5nW107XG5cbiAgLyoqIENoaWxkIGNhdGFsb2cgcHJvamVjdHMuIE11c3QgY29udGFpbiBiZXR3ZWVuIG9uZSBhbmQgdGhyZWUgcHJvamVjdHMuICovXG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBTYm9tQ2F0YWxvZ1Byb2plY3RDaGlsZFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB2dWxuZXJhYmlsaXR5IG1vbml0b3IgY29uZmlndXJhdGlvbiBzaGFyZWQgYnkgYWxsIGNoaWxkIG1vbml0b3JzLlxuICAgKlxuICAgKiBXaGVuIG9taXR0ZWQsIHRoZSBtb25pdG9ycyB1c2Uge0BsaW5rIGRhdGFkb2d2Mi5EZWZhdWx0U2xhY2tOb3RpZmljYXRpb259LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFZ1bG5lcmFiaWxpdHkgbW9uaXRvcnMgdXNpbmcge0BsaW5rIGRhdGFkb2d2Mi5EZWZhdWx0U2xhY2tOb3RpZmljYXRpb259XG4gICAqL1xuICByZWFkb25seSB2dWxuZXJhYmlsaXR5TW9uaXRvclByb3BzPzogU2JvbUNhdGFsb2dWdWxuZXJhYmlsaXR5TW9uaXRvclByb3BzO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBvbmUgcHJvamVjdCdzIFNCT00gYW5kIG9wdGlvbmFsIFZFWCBpbiB0aGUgY2VudHJhbCBTQk9NIGNhdGFsb2cuXG4gKlxuICogVXNlIHRoaXMgY29uc3RydWN0IHdoZW4gYSBzdGFjayBvd25zIG9uZSBpbmRlcGVuZGVudGx5IHZlcnNpb25lZCBwcm9qZWN0LiBUaGUgZmlsZXMgYXJlIHVwbG9hZGVkIGFmdGVyIHRoZSBzdGFja1xuICogcmVhY2hlcyBgQ1JFQVRFX0NPTVBMRVRFYCBvciBgVVBEQVRFX0NPTVBMRVRFYC4gVGhlIEV2ZW50QnJpZGdlIGV2ZW50IHRpbWUgYW5kIElEIGlkZW50aWZ5IHRoZSB1cGxvYWQuXG4gKlxuICogVGhlIGNvbnN0cnVjdCBhdXRvbWF0aWNhbGx5IGFkZHMgdGhlIFJJTyBMYW5kaW5nIFpvbmUgYHRlYW1faWRlbnRpZmllcmAgdGFnIGFuZCBncmFudHMgdGhlIGdlbmVyYXRlZCB1cGxvYWQgTGFtYmRhXG4gKiBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHNvdXJjZSBhc3NldHMgYW5kIHdyaXRlIHRoZW0gdG8gdGhlIGNlbnRyYWwgY2F0YWxvZyBidWNrZXQuIEFsbCBTQk9NIGNhdGFsb2cgY29uc3RydWN0cyBpblxuICogdGhlIHNhbWUgc3RhY2sgcmV1c2Ugb25lIHVwbG9hZCBMYW1iZGEuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBjb25zdCBzYm9tID0gbmV3IHMzQXNzZXRzLkFzc2V0KHRoaXMsICdTYm9tQXNzZXQnLCB7XG4gKiAgIHBhdGg6ICdidWlsZC9zYm9tLmpzb24nLFxuICogfSk7XG4gKiBjb25zdCB2ZXggPSBuZXcgczNBc3NldHMuQXNzZXQodGhpcywgJ1ZleEFzc2V0Jywge1xuICogICBwYXRoOiAnYnVpbGQvdmV4Lmpzb24nLFxuICogfSk7XG4gKlxuICogbmV3IFN0YW5kYWxvbmVTYm9tQ2F0YWxvZ1Byb2plY3QodGhpcywgJ0NhdGFsb2dVcGxvYWQnLCB7XG4gKiAgIG5hbWU6ICdiaWxsaW5nLWFwaScsXG4gKiAgIHZlcnNpb246ICcxLjQuMCcsXG4gKiAgIGFkZGl0aW9uYWxUYWdzOiBbJ2NvbXBvbmVudDpiYWNrZW5kJ10sXG4gKiAgIHNib20sXG4gKiAgIHZleCxcbiAqICAgdnVsbmVyYWJpbGl0eU1vbml0b3JQcm9wczoge1xuICogICAgIG5vdGlmaWNhdGlvbjogbmV3IGRhdGFkb2d2Mi5EZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKSxcbiAqICAgfSxcbiAqICAgbGljZW5zZVBvbGljeTogbGljZW5zZVBvbGljeS5KVk1fQkFDS0VORCxcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQGJldGFcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YW5kYWxvbmVTYm9tQ2F0YWxvZ1Byb2plY3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhbmRhbG9uZVNib21DYXRhbG9nUHJvamVjdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBwcm9wcy52ZXJzaW9uID8/IERFRkFVTFRfVkVSU0lPTjtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1JZGVudGlmaWVyUGFyYW1ldGVyKHRoaXMpLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IHRhZ3MgPVxuICAgICAgbWVyZ2VUYWdzKFxuICAgICAgICBhZGRMaWNlbnNlUG9saWN5VGFnSWZSZXF1aXJlZChbYHRlYW1faWRlbnRpZmllcjoke3RlYW1JZGVudGlmaWVyfWBdLCBwcm9wcy5saWNlbnNlUG9saWN5KSxcbiAgICAgICAgcHJvcHMuYWRkaXRpb25hbFRhZ3NcbiAgICAgICkgPz8gW107XG4gICAgYXNzZXJ0Tm9uRW1wdHlWYWx1ZVdpdGhvdXRTbGFzaGVzKCduYW1lJywgcHJvcHMubmFtZSk7XG4gICAgYXNzZXJ0Tm9uRW1wdHlWZXJzaW9uKCd2ZXJzaW9uJywgdmVyc2lvbik7XG4gICAgcGFyc2VUYWdzV2l0aFZhbGlkVW5pcXVlS2V5cyhwcm9wcy5hZGRpdGlvbmFsVGFncyA/PyBbXSwgJ2FkZGl0aW9uYWxUYWdzJyk7XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IFN0YW5kYWxvbmVVcGxvYWRDb25maWd1cmF0aW9uID0ge1xuICAgICAgb3JpZ2luQWNjb3VudElkOiBzdGFjay5hY2NvdW50LFxuICAgICAgb3JpZ2luQWNjb3VudE5hbWU6IFJpb0xhbmRpbmdab25lLmdldEFjY291bnROYW1lUGFyYW1ldGVyKHRoaXMpLnN0cmluZ1ZhbHVlLFxuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICB0YWdzLFxuICAgICAgc2JvbTogYXNzZXRMb2NhdGlvbihwcm9wcy5zYm9tKSxcbiAgICAgIC4uLihwcm9wcy52ZXggPT09IHVuZGVmaW5lZCA/IHt9IDogeyB2ZXg6IGFzc2V0TG9jYXRpb24ocHJvcHMudmV4KSB9KSxcbiAgICB9O1xuXG4gICAgY3JlYXRlVXBsb2FkUmVzb3VyY2VzKHRoaXMsIGNvbmZpZ3VyYXRpb24sIFtwcm9wcy5zYm9tLCAuLi4ocHJvcHMudmV4ID09PSB1bmRlZmluZWQgPyBbXSA6IFtwcm9wcy52ZXhdKV0pO1xuICAgIGNyZWF0ZVZ1bG5lcmFiaWxpdHlNb25pdG9yKHtcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgcHJvamVjdE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICBhY2NvdW50TmFtZTogY29uZmlndXJhdGlvbi5vcmlnaW5BY2NvdW50TmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvbjogcHJvcHMudnVsbmVyYWJpbGl0eU1vbml0b3JQcm9wcz8ubm90aWZpY2F0aW9uID8/IG5ldyBkYXRhZG9ndjIuRGVmYXVsdFNsYWNrTm90aWZpY2F0aW9uKCksXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYSBjb2xsZWN0aW9uIG9mIHJlbGF0ZWQgcHJvamVjdCBTQk9NcyBhbmQgb3B0aW9uYWwgVkVYIGZpbGVzIGluIHRoZSBjZW50cmFsIFNCT00gY2F0YWxvZy5cbiAqXG4gKiBVc2UgdGhpcyBjb25zdHJ1Y3Qgd2hlbiBvbmUgc3RhY2sgcHJvZHVjZXMgYmV0d2VlbiBvbmUgYW5kIHRocmVlIHJlbGF0ZWQgcHJvamVjdHMgdGhhdCBzaG91bGQgc2hhcmUgYSBjYXRhbG9nXG4gKiBjb2xsZWN0aW9uLiBTaGFyZWQgdGFncyBhcmUgaW5oZXJpdGVkIGJ5IGV2ZXJ5IGNoaWxkLCB3aGlsZSBjaGlsZCB0YWdzIHdpdGggdGhlIHNhbWUga2V5IG92ZXJyaWRlIHRoZW0uIFRoZSBSSU9cbiAqIExhbmRpbmcgWm9uZSBgdGVhbV9pZGVudGlmaWVyYCB0YWcgaXMgYWx3YXlzIGluY2x1ZGVkLlxuICpcbiAqIFRoZSBmaWxlcyBhcmUgdXBsb2FkZWQgYWZ0ZXIgdGhlIHN0YWNrIHJlYWNoZXMgYENSRUFURV9DT01QTEVURWAgb3IgYFVQREFURV9DT01QTEVURWAuIFRoZSBFdmVudEJyaWRnZSBldmVudCB0aW1lXG4gKiBhbmQgSUQgaWRlbnRpZnkgdGhlIHVwbG9hZC4gQWxsIFNCT00gY2F0YWxvZyBjb25zdHJ1Y3RzIGluIHRoZSBzYW1lIHN0YWNrIHJldXNlIG9uZSB1cGxvYWQgTGFtYmRhLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c1xuICogY29uc3QgYXBpU2JvbSA9IG5ldyBzM0Fzc2V0cy5Bc3NldCh0aGlzLCAnQXBpU2JvbUFzc2V0Jywge1xuICogICBwYXRoOiAnYnVpbGQvYXBpLXNib20uanNvbicsXG4gKiB9KTtcbiAqIGNvbnN0IGluZnJhc3RydWN0dXJlU2JvbSA9IG5ldyBzM0Fzc2V0cy5Bc3NldCh0aGlzLCAnSW5mcmFzdHJ1Y3R1cmVTYm9tQXNzZXQnLCB7XG4gKiAgIHBhdGg6ICdidWlsZC9pbmZyYXN0cnVjdHVyZS1zYm9tLmpzb24nLFxuICogfSk7XG4gKlxuICogbmV3IFNib21DYXRhbG9nUHJvamVjdCh0aGlzLCAnQ2F0YWxvZ1VwbG9hZCcsIHtcbiAqICAgY29sbGVjdGlvbk5hbWU6ICdiaWxsaW5nJyxcbiAqICAgY29sbGVjdGlvblZlcnNpb246ICcxLjQuMCcsXG4gKiAgIHNoYXJlZFRhZ3M6IFsnZG9tYWluOmJpbGxpbmcnXSxcbiAqICAgY2hpbGRyZW46IFtcbiAqICAgICB7XG4gKiAgICAgICBuYW1lOiAnYXBpJyxcbiAqICAgICAgIHNib206IGFwaVNib20sXG4gKiAgICAgICBhZGRpdGlvbmFsVGFnczogWydjb21wb25lbnQ6YmFja2VuZCddLFxuICogICAgICAgbGljZW5zZVBvbGljeTogTGljZW5zZVBvbGljeS5KVk1fQkFDS0VORCxcbiAqICAgICB9LFxuICogICAgIHtcbiAqICAgICAgIG5hbWU6ICdpbmZyYXN0cnVjdHVyZScsXG4gKiAgICAgICBzYm9tOiBpbmZyYXN0cnVjdHVyZVNib20sXG4gKiAgICAgICBhZGRpdGlvbmFsVGFnczogWydjb21wb25lbnQ6aW5mcmFzdHJ1Y3R1cmUnXSxcbiAqICogICAgICAgbGljZW5zZVBvbGljeTogTGljZW5zZVBvbGljeS5OUE1fQkFDS0VORCxcbiAqICAgICB9LFxuICogICBdLFxuICogICB2dWxuZXJhYmlsaXR5TW9uaXRvclByb3BzOiB7XG4gKiAgICAgbm90aWZpY2F0aW9uOiBuZXcgZGF0YWRvZ3YyLkRlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpLFxuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAYmV0YVxuICovXG5leHBvcnQgY2xhc3MgU2JvbUNhdGFsb2dQcm9qZWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNib21DYXRhbG9nUHJvamVjdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNvbGxlY3Rpb25WZXJzaW9uID0gcHJvcHMuY29sbGVjdGlvblZlcnNpb24gPz8gREVGQVVMVF9WRVJTSU9OO1xuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUlkZW50aWZpZXJQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG4gICAgYXNzZXJ0Tm9uRW1wdHlWYWx1ZVdpdGhvdXRTbGFzaGVzKCdjb2xsZWN0aW9uTmFtZScsIHByb3BzLmNvbGxlY3Rpb25OYW1lKTtcbiAgICBhc3NlcnROb25FbXB0eVZlcnNpb24oJ2NvbGxlY3Rpb25WZXJzaW9uJywgY29sbGVjdGlvblZlcnNpb24pO1xuICAgIHZhbGlkYXRlQ2hpbGRyZW4ocHJvcHMuY2hpbGRyZW4pO1xuICAgIHBhcnNlVGFnc1dpdGhWYWxpZFVuaXF1ZUtleXMocHJvcHMuc2hhcmVkVGFncyA/PyBbXSwgJ3NoYXJlZFRhZ3MnKTtcbiAgICBjb25zdCBzaGFyZWRUYWdzID0gbWVyZ2VUYWdzKFtgdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXJ9YF0sIHByb3BzLnNoYXJlZFRhZ3MpID8/IFtdO1xuXG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDYXRhbG9nVXBsb2FkQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIG9yaWdpbkFjY291bnRJZDogc3RhY2suYWNjb3VudCxcbiAgICAgIG9yaWdpbkFjY291bnROYW1lOiBSaW9MYW5kaW5nWm9uZS5nZXRBY2NvdW50TmFtZVBhcmFtZXRlcih0aGlzKS5zdHJpbmdWYWx1ZSxcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiBwcm9wcy5jb2xsZWN0aW9uTmFtZSxcbiAgICAgIGNvbGxlY3Rpb25WZXJzaW9uLFxuICAgICAgdGFnczogW2B0ZWFtX2lkZW50aWZpZXI6JHt0ZWFtSWRlbnRpZmllcn1gXSxcbiAgICAgIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gKHtcbiAgICAgICAgbmFtZTogY2hpbGQubmFtZSxcbiAgICAgICAgdmVyc2lvbjogY2hpbGQudmVyc2lvbiA/PyBERUZBVUxUX1ZFUlNJT04sXG4gICAgICAgIC4uLm9wdGlvbmFsVGFncyhcbiAgICAgICAgICBtZXJnZVRhZ3MoYWRkTGljZW5zZVBvbGljeVRhZ0lmUmVxdWlyZWQoc2hhcmVkVGFncywgY2hpbGQubGljZW5zZVBvbGljeSksIGNoaWxkLmFkZGl0aW9uYWxUYWdzKVxuICAgICAgICApLFxuICAgICAgICBzYm9tOiBhc3NldExvY2F0aW9uKGNoaWxkLnNib20pLFxuICAgICAgICAuLi4oY2hpbGQudmV4ID09PSB1bmRlZmluZWQgPyB7fSA6IHsgdmV4OiBhc3NldExvY2F0aW9uKGNoaWxkLnZleCkgfSksXG4gICAgICB9KSksXG4gICAgfTtcblxuICAgIGNyZWF0ZVVwbG9hZFJlc291cmNlcyhcbiAgICAgIHRoaXMsXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgcHJvcHMuY2hpbGRyZW4uZmxhdE1hcChjaGlsZCA9PiBbY2hpbGQuc2JvbSwgLi4uKGNoaWxkLnZleCA9PT0gdW5kZWZpbmVkID8gW10gOiBbY2hpbGQudmV4XSldKVxuICAgICk7XG5cbiAgICBjb25zdCBub3RpZmljYXRpb24gPSBwcm9wcy52dWxuZXJhYmlsaXR5TW9uaXRvclByb3BzPy5ub3RpZmljYXRpb24gPz8gbmV3IGRhdGFkb2d2Mi5EZWZhdWx0U2xhY2tOb3RpZmljYXRpb24oKTtcbiAgICBwcm9wcy5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIGNyZWF0ZVZ1bG5lcmFiaWxpdHlNb25pdG9yKHtcbiAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgIHByb2plY3ROYW1lOiBjaGlsZC5uYW1lLFxuICAgICAgICBhY2NvdW50TmFtZTogY29uZmlndXJhdGlvbi5vcmlnaW5BY2NvdW50TmFtZSxcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIENyZWF0ZVZ1bG5lcmFiaWxpdHlNb25pdG9yUHJvcHMge1xuICByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuICByZWFkb25seSBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhY2NvdW50TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBub3RpZmljYXRpb246IGRhdGFkb2d2Mi5JTm90aWZpY2F0aW9uO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVWdWxuZXJhYmlsaXR5TW9uaXRvcihwcm9wczogQ3JlYXRlVnVsbmVyYWJpbGl0eU1vbml0b3JQcm9wcyk6IHZvaWQge1xuICBjb25zdCBtb25pdG9yID0gbmV3IGRhdGFkb2d2Mi5EYXRhZG9nTW9uaXRvcihwcm9wcy5zY29wZSwgYCR7cHJvcHMucHJvamVjdE5hbWV9VnVsbmVyYWJpbGl0eU1vbml0b3JgLCB7XG4gICAgbmFtZTogYCR7cHJvcHMuYWNjb3VudE5hbWV9IFZ1bG5lcmFiaWxpdHlNb25pdG9yYCxcbiAgICBzZXJ2aWNlTmFtZTogcHJvcHMucHJvamVjdE5hbWUsXG4gICAgbW9uaXRvclR5cGU6IGRhdGFkb2d2Mi5EYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLk1FVFJJQ19BTEVSVCxcbiAgICAvLyBEZXBlbmRlbmN5LVRyYWNrIGVtaXRzIHNlcGFyYXRlIGdhdWdlIHZhbHVlcyBhZnRlciBCT00gYW5kIFZFWCBwcm9jZXNzaW5nOyBldmFsdWF0ZSBib3RoIGFmdGVyIHRoZXkgc2V0dGxlLlxuICAgIHF1ZXJ5OiBgbWluKGxhc3RfM20pOm1heDpzZXJ2aWNlLnZ1bG5lcmFiaWxpdGllc3twcm9qZWN0X25hbWU6JHtwcm9wcy5wcm9qZWN0TmFtZX19ID4gMGAsXG4gICAgbG93ZXJjYXNlUXVlcnk6IHRydWUsXG4gICAgbWVzc2FnZTogW1xuICAgICAgJ3t7I2lzX2FsZXJ0fX0nLFxuICAgICAgYFByb2plY3QgJHtwcm9wcy5wcm9qZWN0TmFtZX0gaGFzIHt7dmFsdWV9fSBrbm93biB2dWxuZXJhYmlsaXRpZXMuYCxcbiAgICAgICd7ey9pc19hbGVydH19JyxcbiAgICAgICcnLFxuICAgICAgJ3t7I2lzX3JlY292ZXJ5fX0nLFxuICAgICAgYFByb2plY3QgJHtwcm9wcy5wcm9qZWN0TmFtZX0gbm8gbG9uZ2VyIHJlcG9ydHMgdnVsbmVyYWJpbGl0aWVzLmAsXG4gICAgICAne3svaXNfcmVjb3Zlcnl9fScsXG4gICAgXS5qb2luKCdcXG4nKSxcbiAgICBub3RpZmljYXRpb246IHByb3BzLm5vdGlmaWNhdGlvbixcbiAgICBwcmlvcml0eTogMyxcbiAgICBleHRyYVRhZ3M6IFsnbW9uaXRvcl90eXBlOnZ1bG5lcmFiaWxpdHknXSxcbiAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgIGV2YWx1YXRpb25EZWxheTogMTgwLFxuICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICBjcml0aWNhbDogMCxcbiAgICAgIH0sXG4gICAgICBvbk1pc3NpbmdEYXRhOiBkYXRhZG9ndjIuTW9uaXRvck9uTWlzc2luZ0RhdGEuREVGQVVMVCxcbiAgICAgIHJlcXVpcmVGdWxsV2luZG93OiBmYWxzZSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBgb25fbWlzc2luZ19kYXRhYCByZXBsYWNlcyB0aGUgbGVnYWN5IG5vLWRhdGEgb3B0aW9ucyBhbmQga2VlcHMgdGhlIGxhc3Qga25vd24gc3RhdHVzIGZvciBnYXVnZSBtZXRyaWNzLlxuICBjb25zdCBtb25pdG9yUmVzb3VyY2UgPSBtb25pdG9yLm5vZGUuZmluZENoaWxkKCdNb25pdG9yJykgYXMgQ2ZuUmVzb3VyY2U7XG4gIG1vbml0b3JSZXNvdXJjZS5hZGREZWxldGlvbk92ZXJyaWRlKCdQcm9wZXJ0aWVzLk9wdGlvbnMuTm90aWZ5Tm9EYXRhJyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVVwbG9hZFJlc291cmNlcyhcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgY29uZmlndXJhdGlvbjogVXBsb2FkQ29uZmlndXJhdGlvbixcbiAgc291cmNlQXNzZXRzOiBzM0Fzc2V0cy5Bc3NldFtdXG4pOiB2b2lkIHtcbiAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG5cbiAgY29uc3QgdXBsb2FkRnVuY3Rpb24gPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHNjb3BlLCAnVXBsb2FkRnVuY3Rpb24nLCB7XG4gICAgdXVpZDogVVBMT0FEX0ZVTkNUSU9OX1VVSUQsXG4gICAgbGFtYmRhUHVycG9zZTogVVBMT0FEX0ZVTkNUSU9OX1BVUlBPU0UsXG4gICAgcnVudGltZTogREVGQVVMVF9OT0RFX1JVTlRJTUUsXG4gICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICBoYW5kbGVyOiAnaGFuZGxlci5oYW5kbGVyJyxcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ2xhbWJkYScpLCB7XG4gICAgICBleGNsdWRlOiBbJyouanMnLCAnKi5kLnRzJ10sXG4gICAgfSksXG4gICAgbG9nZ2luZ0Zvcm1hdDogbGFtYmRhLkxvZ2dpbmdGb3JtYXQuSlNPTixcbiAgICBsb2dHcm91cDogZ2V0T3JDcmVhdGVVcGxvYWRMb2dHcm91cChzdGFjayksXG4gICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ3MzOlB1dE9iamVjdCddLFxuICAgICAgICByZXNvdXJjZXM6IFtgJHtTQk9NX0NBVEFMT0dfQlVDS0VUX0FSTn0vKmBdLFxuICAgICAgfSksXG4gICAgXSxcbiAgICBtZW1vcnlTaXplOiAyNTYsXG4gICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgfSk7XG4gICh1cGxvYWRGdW5jdGlvbi5wZXJtaXNzaW9uc05vZGUuZGVmYXVsdENoaWxkIGFzIGxhbWJkYS5DZm5GdW5jdGlvbikudGFncy5zZXRUYWcoJ1dhdGNoZnVsJywgJ0ZhbHNlJyk7XG5cbiAgZm9yIChjb25zdCBhc3NldCBvZiBzb3VyY2VBc3NldHMpIHtcbiAgICBhc3NldC5ncmFudFJlYWQodXBsb2FkRnVuY3Rpb24pO1xuICB9XG5cbiAgbmV3IGV2ZW50cy5SdWxlKHNjb3BlLCAnU3RhY2tDb21wbGV0aW9uUnVsZScsIHtcbiAgICBldmVudFBhdHRlcm46IHtcbiAgICAgIHNvdXJjZTogWydhd3MuY2xvdWRmb3JtYXRpb24nXSxcbiAgICAgIGRldGFpbFR5cGU6IFsnQ2xvdWRGb3JtYXRpb24gU3RhY2sgU3RhdHVzIENoYW5nZSddLFxuICAgICAgZGV0YWlsOiB7XG4gICAgICAgICdzdGFjay1pZCc6IFtzdGFjay5zdGFja0lkXSxcbiAgICAgICAgJ3N0YXR1cy1kZXRhaWxzJzoge1xuICAgICAgICAgIHN0YXR1czogWydDUkVBVEVfQ09NUExFVEUnLCAnVVBEQVRFX0NPTVBMRVRFJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdGFyZ2V0czogW1xuICAgICAgbmV3IGV2ZW50c1RhcmdldHMuTGFtYmRhRnVuY3Rpb24odXBsb2FkRnVuY3Rpb24sIHtcbiAgICAgICAgZXZlbnQ6IGV2ZW50cy5SdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgZXZlbnRJZDogZXZlbnRzLkV2ZW50RmllbGQuZXZlbnRJZCxcbiAgICAgICAgICBldmVudFRpbWU6IGV2ZW50cy5FdmVudEZpZWxkLmZyb21QYXRoKCckLnRpbWUnKSxcbiAgICAgICAgICBzdGFja0lkOiBldmVudHMuRXZlbnRGaWVsZC5mcm9tUGF0aCgnJC5kZXRhaWwuc3RhY2staWQnKSxcbiAgICAgICAgICBzdGFja1N0YXR1czogZXZlbnRzLkV2ZW50RmllbGQuZnJvbVBhdGgoJyQuZGV0YWlsLnN0YXR1cy1kZXRhaWxzLnN0YXR1cycpLFxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE9yQ3JlYXRlVXBsb2FkTG9nR3JvdXAoc3RhY2s6IFN0YWNrKTogbG9ncy5Mb2dHcm91cCB7XG4gIGNvbnN0IGV4aXN0aW5nTG9nR3JvdXAgPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChVUExPQURfTE9HX0dST1VQX0lEKTtcbiAgaWYgKGV4aXN0aW5nTG9nR3JvdXAgaW5zdGFuY2VvZiBsb2dzLkxvZ0dyb3VwKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nTG9nR3JvdXA7XG4gIH1cbiAgaWYgKGV4aXN0aW5nTG9nR3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RhY2sgYWxyZWFkeSBjb250YWlucyBhIGNvbnN0cnVjdCBuYW1lZCAnJHtVUExPQURfTE9HX0dST1VQX0lEfSdgKTtcbiAgfVxuICByZXR1cm4gbmV3IGxvZ3MuTG9nR3JvdXAoc3RhY2ssIFVQTE9BRF9MT0dfR1JPVVBfSUQsIHtcbiAgICByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFzc2V0TG9jYXRpb24oYXNzZXQ6IHMzQXNzZXRzLkFzc2V0KTogQXNzZXRMb2NhdGlvbiB7XG4gIHJldHVybiB7XG4gICAgYnVja2V0TmFtZTogYXNzZXQuczNCdWNrZXROYW1lLFxuICAgIG9iamVjdEtleTogYXNzZXQuczNPYmplY3RLZXksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFzc2VydE5vbkVtcHR5VmFsdWVXaXRob3V0U2xhc2hlcyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCB8fCB2YWx1ZS5pbmNsdWRlcygnLycpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke25hbWV9IG11c3QgYmUgYSBub24tZW1wdHkgdmFsdWUgd2l0aG91dCAnLydgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnROb25FbXB0eVZlcnNpb24obmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bmFtZX0gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmdgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkcmVuKGNoaWxkcmVuOiBTYm9tQ2F0YWxvZ1Byb2plY3RDaGlsZFtdKTogdm9pZCB7XG4gIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoaWxkcmVuIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgcHJvamVjdCcpO1xuICB9XG4gIGlmIChjaGlsZHJlbi5sZW5ndGggPiBNQVhfQ0hJTERSRU4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNoaWxkcmVuIG11c3QgY29udGFpbiBhdCBtb3N0ICR7TUFYX0NISUxEUkVOfSBwcm9qZWN0c2ApO1xuICB9XG5cbiAgY29uc3QgbmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgIGFzc2VydE5vbkVtcHR5VmFsdWVXaXRob3V0U2xhc2hlcygnY2hpbGQgbmFtZScsIGNoaWxkLm5hbWUpO1xuICAgIGlmIChjaGlsZC52ZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFzc2VydE5vbkVtcHR5VmVyc2lvbihgdmVyc2lvbiBmb3IgY2hpbGQgJyR7Y2hpbGQubmFtZX0nYCwgY2hpbGQudmVyc2lvbik7XG4gICAgfVxuICAgIHBhcnNlVGFnc1dpdGhWYWxpZFVuaXF1ZUtleXMoY2hpbGQuYWRkaXRpb25hbFRhZ3MgPz8gW10sIGBhZGRpdGlvbmFsVGFncyBmb3IgY2hpbGQgJyR7Y2hpbGQubmFtZX0nYCk7XG4gICAgaWYgKG5hbWVzLmhhcyhjaGlsZC5uYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjaGlsZCBuYW1lICcke2NoaWxkLm5hbWV9JyBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGNvbGxlY3Rpb25gKTtcbiAgICB9XG4gICAgbmFtZXMuYWRkKGNoaWxkLm5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlVGFncyhzaGFyZWRUYWdzPzogc3RyaW5nW10sIGFkZGl0aW9uYWxUYWdzPzogc3RyaW5nW10pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIGlmIChzaGFyZWRUYWdzID09PSB1bmRlZmluZWQgJiYgYWRkaXRpb25hbFRhZ3MgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzaGFyZWQgPSBwYXJzZVRhZ3NXaXRoVmFsaWRVbmlxdWVLZXlzKHNoYXJlZFRhZ3MgPz8gW10sICdzaGFyZWRUYWdzJywgdHJ1ZSk7XG4gIGNvbnN0IGFkZGl0aW9uYWwgPSBwYXJzZVRhZ3NXaXRoVmFsaWRVbmlxdWVLZXlzKGFkZGl0aW9uYWxUYWdzID8/IFtdLCAnYWRkaXRpb25hbFRhZ3MnKTtcbiAgY29uc3QgbWVyZ2VkID0gbmV3IE1hcChzaGFyZWQpO1xuICBmb3IgKGNvbnN0IFtrZXksIHRhZ10gb2YgYWRkaXRpb25hbCkge1xuICAgIG1lcmdlZC5zZXQoa2V5LCB0YWcpO1xuICB9XG4gIHJldHVybiBbLi4ubWVyZ2VkLnZhbHVlcygpXTtcbn1cblxuZnVuY3Rpb24gYWRkTGljZW5zZVBvbGljeVRhZ0lmUmVxdWlyZWQodGFnczogc3RyaW5nW10gfCB1bmRlZmluZWQsIHBvbGljeTogTGljZW5zZVBvbGljeSkge1xuICBpZiAocG9saWN5ICE9PSBMaWNlbnNlUG9saWN5Lk5PTkUpIHtcbiAgICByZXR1cm4gWy4uLih0YWdzID8/IFtdKSwgYGxpY2Vuc2VfcG9saWN5OiR7cG9saWN5fWBdO1xuICB9XG4gIHJldHVybiB0YWdzO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRhZ3NXaXRoVmFsaWRVbmlxdWVLZXlzKFxuICB0YWdzOiBzdHJpbmdbXSxcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmcsXG4gIGFsbG93TWFuYWdlZFRhZ3MgPSBmYWxzZVxuKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MpIHtcbiAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IHRhZy5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKHNlcGFyYXRvckluZGV4IDw9IDAgfHwgc2VwYXJhdG9ySW5kZXggPT09IHRhZy5sZW5ndGggLSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cHJvcGVydHlOYW1lfSB0YWcgJyR7dGFnfScgbXVzdCB1c2UgdGhlIGZvcm1hdCBrZXk6dmFsdWUgd2l0aCBhIG5vbi1lbXB0eSBrZXkgYW5kIHZhbHVlYCk7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gdGFnLnNsaWNlKDAsIHNlcGFyYXRvckluZGV4KTtcbiAgICBpZiAoTUFOQUdFRF9UQUdfS0VZUy5oYXMoa2V5KSAmJiAhYWxsb3dNYW5hZ2VkVGFncykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3Byb3BlcnR5TmFtZX0gbXVzdCBub3Qgc2V0IG1hbmFnZWQgdGFnIGtleSAnJHtrZXl9J2ApO1xuICAgIH1cbiAgICBpZiAocmVzdWx0LmhhcyhrZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cHJvcGVydHlOYW1lfSBjb250YWlucyBkdXBsaWNhdGUgdGFnIGtleSAnJHtrZXl9J2ApO1xuICAgIH1cbiAgICByZXN1bHQuc2V0KGtleSwgdGFnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBvcHRpb25hbFRhZ3ModGFncz86IHN0cmluZ1tdKTogeyByZWFkb25seSB0YWdzPzogc3RyaW5nW10gfSB7XG4gIHJldHVybiB0YWdzID09PSB1bmRlZmluZWQgPyB7fSA6IHsgdGFncyB9O1xufVxuIl19
|
|
@@ -38692,8 +38692,9 @@ async function uploadCollectionChildren(children, prefix) {
|
|
|
38692
38692
|
}
|
|
38693
38693
|
async function copyAssetToDestination(location, key) {
|
|
38694
38694
|
const response = await s3Client.send(new import_client_s3.GetObjectCommand({ Bucket: location.bucketName, Key: location.objectKey }));
|
|
38695
|
-
if (response.Body === void 0)
|
|
38695
|
+
if (response.Body === void 0) {
|
|
38696
38696
|
throw new Error(`S3 object s3://${location.bucketName}/${location.objectKey} is empty`);
|
|
38697
|
+
}
|
|
38697
38698
|
await writeToDestinationBucket(key, await response.Body.transformToByteArray());
|
|
38698
38699
|
}
|
|
38699
38700
|
async function writeToDestinationBucket(key, body) {
|
package/lib/ses/helper.js
CHANGED
|
@@ -25,7 +25,7 @@ exports.trimIndent = trimIndent;
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
function trimIndent(strings, ...values) {
|
|
28
|
-
|
|
28
|
+
const rawString = strings.raw.reduce((acc, str, i) => acc + str + (values[i] || ''), '');
|
|
29
29
|
const lines = rawString.split('\n');
|
|
30
30
|
const nonEmptyLines = lines.filter(line => line.trim().length > 0);
|
|
31
31
|
const indentLengths = nonEmptyLines.map(line => {
|
|
@@ -41,4 +41,4 @@ function trimIndent(strings, ...values) {
|
|
|
41
41
|
.join('\n')
|
|
42
42
|
.trim();
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nlcy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsZ0NBaUJDO0FBeENEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE9BQTZCLEVBQUUsR0FBRyxNQUFhO0lBQ3hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekYsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuRSxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sS0FBSztTQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BGLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRyaW0gdGhlIGluZGVudCBvZiBhIG11bHRpbGluZSBzdHJpbmcuXG4gKlxuICogVGhpcyB1c2VzIHRoZSBbVGFnZ2VkIFRlbXBsYXRlc10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvVGVtcGxhdGVfbGl0ZXJhbHMjdGFnZ2VkX3RlbXBsYXRlcykgZmVhdHVyZSBvZiBKYXZhU2NyaXB0LlxuICpcbiAqIFVzZWZ1bCBpbiBwYXJ0aWN1bGFyIHdoZW4gZGVmaW5pbmcgbXVsdGlsaW5lIG1lc3NhZ2VzIGZvciBkYXRhZG9nIG1vbml0b3JzLlxuICogVXNhZ2UgZXhhbXBsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtZXNzYWdlID0gdHJpbUluZGVudGBcbiAqICAgICB7eyNpc193YXJuaW5nfX1cbiAqICAgICAgIFRoZSBhdXRoLXNlcnZlciBoYW5kbGVzICR7cHJvcHMub3RoZXJzLm5hbWV9IHNsb3dlciB0aGFuIHVzdWFsLlxuICogICAgIHt7L2lzX3dhcm5pbmd9fVxuICogICBgO1xuICogY29uc29sZS5sb2cobWVzc2FnZSk7XG4gKiBgYGBcbiAqIHJldHVybnMgdGhlIGZvbGxvd2luZzpcbiAqIGBgYFxuICoge3sjaXNfd2FybmluZ319XG4gKiAgIFRoZSBhdXRoLXNlcnZlciBoYW5kbGVzICR7cHJvcHMub3RoZXJzLm5hbWV9IHNsb3dlciB0aGFuIHVzdWFsLlxuICoge3svaXNfd2FybmluZ319XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1JbmRlbnQoc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLnZhbHVlczogYW55W10pOiBzdHJpbmcge1xuICBjb25zdCByYXdTdHJpbmcgPSBzdHJpbmdzLnJhdy5yZWR1Y2UoKGFjYywgc3RyLCBpKSA9PiBhY2MgKyBzdHIgKyAodmFsdWVzW2ldIHx8ICcnKSwgJycpO1xuICBjb25zdCBsaW5lcyA9IHJhd1N0cmluZy5zcGxpdCgnXFxuJyk7XG4gIGNvbnN0IG5vbkVtcHR5TGluZXMgPSBsaW5lcy5maWx0ZXIobGluZSA9PiBsaW5lLnRyaW0oKS5sZW5ndGggPiAwKTtcbiAgY29uc3QgaW5kZW50TGVuZ3RocyA9IG5vbkVtcHR5TGluZXMubWFwKGxpbmUgPT4ge1xuICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaCgvXlxccyovKTtcbiAgICBpZiAobWF0Y2ggPT09IG51bGwgfHwgbWF0Y2gubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIG1hdGNoWzBdLmxlbmd0aDtcbiAgfSk7XG4gIGNvbnN0IG1pbkluZGVudCA9IE1hdGgubWluKC4uLmluZGVudExlbmd0aHMpO1xuXG4gIHJldHVybiBsaW5lc1xuICAgIC5tYXAobGluZSA9PiAobGluZS5zdGFydHNXaXRoKCcgJy5yZXBlYXQobWluSW5kZW50KSkgPyBsaW5lLnNsaWNlKG1pbkluZGVudCkgOiBsaW5lKSlcbiAgICAuam9pbignXFxuJylcbiAgICAudHJpbSgpO1xufVxuIl19
|
|
@@ -3,6 +3,7 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.SesObservability = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path = require("node:path");
|
|
6
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
8
|
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
8
9
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
@@ -12,7 +13,6 @@ const snsSubscriptions = require("aws-cdk-lib/aws-sns-subscriptions");
|
|
|
12
13
|
const ssm = require("aws-cdk-lib/aws-ssm");
|
|
13
14
|
const cdk = require("aws-cdk-lib/core");
|
|
14
15
|
const constructs_1 = require("constructs");
|
|
15
|
-
const path = require("path");
|
|
16
16
|
const constants_1 = require("../constants");
|
|
17
17
|
const datadogv2_1 = require("../datadogv2");
|
|
18
18
|
const rio_landing_zone_1 = require("../rio-landing-zone");
|
|
@@ -262,4 +262,4 @@ SesObservability[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.SesObservability", v
|
|
|
262
262
|
// ! changing these values is a breaking change for users
|
|
263
263
|
SesObservability.CONFIGURATION_SET_NAME_SSM_PARAMETER = '/rio/config/ses-observability/configuration-set-name';
|
|
264
264
|
SesObservability.SNS_TOPIC_ARN_EXPORT_NAME = 'RioSesObservabilityTopicArn';
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLW9ic2VydmFiaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VzL3Nlcy1vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQW9DO0FBQ3BDLGlEQUFpRDtBQUVqRCxtREFBNEU7QUFDNUUsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxzRUFBc0U7QUFDdEUsMkNBQTJDO0FBQzNDLHdDQUF3QztBQUN4QywyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBQzdCLDRDQUFvRDtBQUNwRCw0Q0FNc0I7QUFDdEIsMERBQXFEO0FBQ3JELHFDQUFzQztBQUV0QyxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSw0QkFBNEIsR0FBRztJQUNuQyxRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQjtJQUkxQixZQUE2QixpQkFBMEI7UUFBMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFTO1FBSHRDLHNCQUFpQixHQUFHLElBQUksb0NBQXdCLEVBQUUsQ0FBQztRQUNuRCxxQkFBZ0IsR0FBRyxJQUFJLG1DQUF1QixFQUFFLENBQUM7SUFFUixDQUFDO0lBRTNELHlCQUF5QixDQUFDLE9BQXVCO1FBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRixPQUFPO1lBQ0wsZUFBZTtZQUNmLEdBQUcsWUFBWTtZQUNmLGVBQWU7WUFDZix5QkFBeUIsV0FBVyx3QkFBd0I7U0FDN0QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFnREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1REc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBTzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFNBQVMsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsaUNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUN0RSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsb0NBQW9DO1lBQ3BFLFdBQVcsRUFBRSx5Q0FBeUM7U0FDdkQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM5QyxTQUFTLEVBQUUsNkJBQTZCO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDekUsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLFdBQVc7U0FDNUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFO1lBQzVELG9DQUFvQyxFQUFFLHlDQUF5QztZQUMvRSxXQUFXLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3pELE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJO2dCQUMvQixHQUFHLENBQUMsaUJBQWlCLENBQUMsUUFBUTtnQkFDOUIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQzVCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO2dCQUMvQixHQUFHLENBQUMsaUJBQWlCLENBQUMsTUFBTTthQUM3QjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQzNELFlBQVksRUFBRSxvQ0FBb0M7WUFDbEQsT0FBTyxFQUFFLGdDQUFvQjtZQUM3QixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsWUFBWSxFQUFFLHdCQUFhLENBQUMsWUFBWTtZQUN4QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUk7WUFDNUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzFELE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7YUFDNUIsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFcEYsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUM3QixVQUFVLEVBQUUsZ0JBQWdCLENBQUMseUJBQXlCO1NBQ3ZELENBQUMsQ0FBQztRQUVILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksS0FBSyxDQUFDLENBQUM7UUFFL0YsSUFBSSwwQkFBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDdkMsSUFBSSxFQUFFLEdBQUcsV0FBVywyQkFBMkI7WUFDL0MsV0FBVyxFQUFFLFNBQVM7WUFDdEIsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLDBEQUEwRCxTQUFTLCtDQUErQyxTQUFTLFNBQVM7WUFDM0ksT0FBTyxFQUFFLElBQUEsbUJBQVUsRUFBQTs7O3NEQUc2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDOUU7WUFDSCxRQUFRLEVBQUUsQ0FBQztZQUNYLGVBQWUsRUFBRTtnQkFDZixVQUFVLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLEdBQUc7b0JBQ2IsT0FBTyxFQUFFLEdBQUc7aUJBQ2I7Z0JBQ0QsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztRQUVILElBQUksMEJBQWMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDL0MsSUFBSSxFQUFFLEdBQUcsV0FBVyxxQkFBcUI7WUFDekMsV0FBVyxFQUFFLFNBQVM7WUFDdEIsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLCtDQUErQyxTQUFTLE9BQU87WUFDdEUsT0FBTyxFQUFFLElBQUEsbUJBQVUsRUFBQTs7O3NEQUc2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDOUU7WUFDSCxRQUFRLEVBQUUsQ0FBQztZQUNYLGVBQWUsRUFBRTtnQkFDZixVQUFVLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLENBQUM7aUJBQ1o7Z0JBQ0QsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztRQUVILE1BQU0sbUJBQW1CLEdBQUc7WUFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLElBQUksNEJBQTRCLENBQUMsT0FBTztZQUNuRixRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsSUFBSSw0QkFBNEIsQ0FBQyxRQUFRO1NBQ3ZGLENBQUM7UUFDRixJQUFJLDBCQUFjLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQy9DLElBQUksRUFBRSxHQUFHLFdBQVcsaURBQWlEO1lBQ3JFLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELEtBQUssRUFBRSxpRUFBaUUsU0FBUyxxQkFBcUIsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1lBQ3BJLE9BQU8sRUFBRSxJQUFBLG1CQUFVLEVBQUE7Ozs7O3NEQUs2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7O1NBRTlFO1lBQ0gsUUFBUSxFQUFFLENBQUM7WUFDWCxlQUFlLEVBQUU7Z0JBQ2YsVUFBVSxFQUFFLG1CQUFtQjtnQkFDL0IsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLElBQUkseUJBQXlCLENBQUMsT0FBTztZQUM3RSxRQUFRLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSx5QkFBeUIsQ0FBQyxRQUFRO1NBQ2pGLENBQUM7UUFDRixJQUFJLDBCQUFjLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzVDLElBQUksRUFBRSxHQUFHLFdBQVcsOENBQThDO1lBQ2xFLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELEtBQUssRUFBRSw4REFBOEQsU0FBUyxxQkFBcUIsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1lBQzlILE9BQU8sRUFBRSxJQUFBLG1CQUFVLEVBQUE7Ozs7O3NEQUs2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7O1NBRTlFO1lBQ0gsUUFBUSxFQUFFLENBQUM7WUFDWCxlQUFlLEVBQUU7Z0JBQ2YsVUFBVSxFQUFFLGdCQUFnQjtnQkFDNUIsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLDRDQUE0QyxDQUFDLFdBQTJCO1FBQzlFLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3ZCLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbEMsSUFBSSxJQUFJLFlBQVksZ0NBQXFCLEVBQUUsQ0FBQzt3QkFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQzt3QkFDdkMsSUFBSSxZQUFZLEtBQUssV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO3dCQUMxRixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBMUtILDRDQTJLQzs7O0FBMUtDLHlEQUF5RDtBQUN6QyxxREFBb0MsR0FBRyxzREFBc0QsQ0FBQztBQUM5RiwwQ0FBeUIsR0FBRyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgeyBDZm5TdWJzY3JpcHRpb25GaWx0ZXIsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlcyc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBzbnNTdWJzY3JpcHRpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBERUZBVUxUX05PREVfUlVOVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBEYXRhZG9nQ2FzZU5vdGlmaWNhdGlvbixcbiAgRGF0YWRvZ01vbml0b3IsXG4gIERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUsXG4gIERlZmF1bHRTbGFja05vdGlmaWNhdGlvbixcbiAgSU5vdGlmaWNhdGlvbixcbn0gZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5pbXBvcnQgeyB0cmltSW5kZW50IH0gZnJvbSAnLi9oZWxwZXInO1xuXG5jb25zdCBCT1VOQ0VfVEhSRVNIT0xEU19ERUZBVUxUID0ge1xuICBjcml0aWNhbDogMC4wNSxcbiAgd2FybmluZzogMC4wNCxcbn07XG5cbmNvbnN0IENPTVBMQUlOVF9USFJFU0hPTERTX0RFRkFVTFQgPSB7XG4gIGNyaXRpY2FsOiAwLjAwMSxcbiAgd2FybmluZzogMC4wMDA4LFxufTtcblxuLyoqXG4gKiBTZW5kcyBhIFNsYWNrIG5vdGlmaWNhdGlvbiBmb3IgbW9uaXRvciBhbGVydHMgYW5kIHJlY292ZXJ5IChubyBub3RpZmljYXRpb24gZm9yIG1vbml0b3Igd2FybmluZ3MpLlxuICogQWxzbyBjcmVhdGVzIGEgRGF0YWRvZyBjYXNlIHdoZW4gY3JlYXRlQ2FzZSBpcyBzZXQgdG8gdHJ1ZS5cbiAqL1xuY2xhc3MgU2VzTW9uaXRvck5vdGlmaWNhdGlvbiBpbXBsZW1lbnRzIElOb3RpZmljYXRpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IHNsYWNrTm90aWZpY2F0aW9uID0gbmV3IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmljYXRpb24gPSBuZXcgRGF0YWRvZ0Nhc2VOb3RpZmljYXRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZURhdGFkb2dDYXNlOiBib29sZWFuKSB7fVxuXG4gIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNsYWNrSGFuZGxlID0gdGhpcy5zbGFja05vdGlmaWNhdGlvbi5nZW5lcmF0ZU1lc3NhZ2VBbm5vdGF0aW9uKG1vbml0b3IpO1xuICAgIGNvbnN0IGNhc2VIYW5kbGUgPSB0aGlzLmNhc2VOb3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yKTtcbiAgICBjb25zdCBhbGVydEhhbmRsZXMgPSBbc2xhY2tIYW5kbGUsIC4uLih0aGlzLmNyZWF0ZURhdGFkb2dDYXNlID8gW2Nhc2VIYW5kbGVdIDogW10pXTtcblxuICAgIHJldHVybiBbXG4gICAgICAne3sjaXNfYWxlcnR9fScsXG4gICAgICAuLi5hbGVydEhhbmRsZXMsXG4gICAgICAne3svaXNfYWxlcnR9fScsXG4gICAgICBge3sjaXNfYWxlcnRfcmVjb3Zlcnl9fSR7c2xhY2tIYW5kbGV9e3svaXNfYWxlcnRfcmVjb3Zlcnl9fWAsXG4gICAgXS5qb2luKCdcXG4nKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdW5jZVRocmVzaG9sZHNQcm9wcyB7XG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsYWludFRocmVzaG9sZHNQcm9wcyB7XG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlc09ic2VydmFiaWxpdHlQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU0VTIGV2ZW50cyB0byBsb2cuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgW0VtYWlsU2VuZGluZ0V2ZW50LkRFTElWRVJZLCBFbWFpbFNlbmRpbmdFdmVudC5CT1VOQ0UsIEVtYWlsU2VuZGluZ0V2ZW50LkNPTVBMQUlOVCwgRW1haWxTZW5kaW5nRXZlbnQuUkVKRUNUXVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2VkU2VzRXZlbnRzPzogc2VzLkVtYWlsU2VuZGluZ0V2ZW50W107XG5cbiAgLyoqXG4gICAqIFRoZSBUaHJlc2hvbGRzIGZvciBib3VuY2UgcmF0ZSBNb25pdG9ycy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgc2hvdWxkIG9ubHkgYmUgb3ZlcndyaXR0ZW4sIGlmIHRoZXJlIGlzIHJlYWxseSBubyBwb3NzaWJpbGl0eSB0byByZWR1Y2UgdGhlIGJvdW5jZSByYXRlIG1lYW5pbmdmdWxseS5cbiAgICogSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBgMTAlYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICpcbiAgICogQGRlZmF1bHQgeyBjcml0aWNhbDogMC4wNSwgd2FybmluZzogMC4wNCB9XG4gICAqL1xuICByZWFkb25seSBib3VuY2VUaHJlc2hvbGRzPzogQm91bmNlVGhyZXNob2xkc1Byb3BzO1xuXG4gIC8qKlxuICAgKiBUaGUgVGhyZXNob2xkcyBmb3IgYm91bmNlIHJhdGUgTW9uaXRvcnMuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IHNob3VsZCBvbmx5IGJlIG92ZXJ3cml0dGVuLCBpZiB0aGVyZSBpcyByZWFsbHkgbm8gcG9zc2liaWxpdHkgdG8gcmVkdWNlIHRoZSBib3VuY2UgY29tcGxhaW50IG1lYW5pbmdmdWxseS5cbiAgICogSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBgMC41JWAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgY3JpdGljYWw6IDAuMDAxLCB3YXJuaW5nOiAwLjAwMDggfVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGxhaW50VGhyZXNob2xkcz86IENvbXBsYWludFRocmVzaG9sZHNQcm9wcztcblxuICAvKipcbiAgICogRW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgdGhlIERhdGFkb2cgbW9uaXRvcnMgdG8gY3JlYXRlIGNhc2VzIGluIERhdGFkb2cgd2hlbiBhbiBhbGVydCBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbU1vbml0b3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSaW9TZXNPYnNlcnZhYmlsaXR5XG4gKlxuICogVGhpcyBjb25zdHJ1Y3Qgc2V0cyB1cCBvYnNlcnZhYmlsaXR5IGZvciBTRVMgYXMgZGVmaW5lZCBieSBbQURSIC0gU0VTIGRvbWFpbiByZXB1dGF0aW9uIG9ic2VydmFiaWxpdHldKGh0dHBzOi8vY29uZmx1ZW5jZS5jb2xsYWJvcmF0aW9uLW1hbi5jb20vZGlzcGxheS9NQU4vQURSKy0rU0VTK2RvbWFpbityZXB1dGF0aW9uK29ic2VydmFiaWxpdHkpLlxuICpcbiAqICMgV2FybmluZ1xuICogVGhpcyBjb25zdHJ1Y3QgcmVzdWx0cyBpbiBsb2dnaW5nIGFsbCBzZW50IGVtYWlscyBpbmNsdWRpbmcgdGhlIHJlY2lwaWVudCBhZGRyZXNzIGludG8gQ2xvdWRXYXRjaCBsb2dzLlxuICogQXMgdGhpcyBpcyBjb25zaWRlcmVkICoqUElJKiosIHRoaXMgaW5mb3JtYXRpb24gTVVTVCBiZSBoYW5kbGVkIGFjY29yZGluZ2x5LlxuICogSW4gcGFydGljdWxhciwgbG9ncyAqKk1VU1QgTk9UKiogYmUgc2VudCB0byBmdXJ0aGVyIHRoaXJkIHBhcnR5IHNlcnZpY2VzIChlLmcuIERhdGFkb2cpIGFuZCB0aGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgbG9ncyAqKk1VU1QgTk9UKiogYmUgZXh0ZW5kZWQuXG4gKlxuICogIyBVc2FnZVxuICogIyMgRGVmYXVsdCBDb25maWd1cmF0aW9uIFNldCBmb3IgSWRlbnRpdHlcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByaW9TZXNPYnNlcnZhYmlsaXR5ID0gbmV3IFJpb1Nlc09ic2VydmFiaWxpdHkodGhpcywgJ0NvbmZpZ3VyYXRpb25TZXQnLCB7fSlcbiAqIGNvbnN0IGlkZW50aXR5ID0gbmV3IEVtYWlsSWRlbnRpdHkodGhpcywgJ0VtYWlsSWRlbnRpdHknLCB7XG4gKiAgICAgaWRlbnRpdHk6IElkZW50aXR5LmRvbWFpbignZXhhbXBsZS5jb20nKSxcbiAqICAgICBjb25maWd1cmF0aW9uU2V0OiByaW9TZXNPYnNlcnZhYmlsaXR5LmNvbmZpZ3VyYXRpb25TZXQsXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIFNwZWNpZmljYWxseSB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQgcGVyIHJlcXVlc3RcbiAqXG4gKiBUaGlzIGlzIGlkZWFsIGlmIHlvdSB3YW50IHRvIHRyeSBvdXQgdGhlIGNvbnN0cnVjdCBmaXJzdCBvbmUgc29tZSBzcGVjaWZpYyBlbWFpbHMgKGUuZy4gZHVyaW5nIGluaXRpYWwgbWlncmF0aW9uKS5cbiAqIFRoZSBjb25maWd1cmF0aW9uIHNldCBuYW1lIGlzIGV4cG9ydGVkIGFzIGFuIFNTTSBwYXJhbWV0ZXIgYC9yaW8vY29uZmlnL3Nlcy1vYnNlcnZhYmlsaXR5L2NvbmZpZ3VyYXRpb24tc2V0LW5hbWVgLlxuICogVGh1cywgeW91IGNhbiBlYXNpbHkgbWFrZSBpdCBhdmFpbGFibGUgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgaW4geW91ciBjb2RlLlxuICpcbiAqIGBgYGtvdGxpblxuICogaW1wb3J0IGNvbS5hbWF6b25hd3Muc2VydmljZXMuc2ltcGxlZW1haWwubW9kZWwuU2VuZEVtYWlsUmVxdWVzdFxuICpcbiAqIHZhbCByZXF1ZXN0ID0gU2VuZEVtYWlsUmVxdWVzdCgpXG4gKiAgICAgICAgICAgICAgICAgLndpdGhDb25maWd1cmF0aW9uU2V0TmFtZShTU01fQ09ORklHVVJBVElPTl9TU01fUEFSQU1FVEVSX1ZBTFVFKVxuICogICAgICAgICAgICAgICAgIC4uLlxuICogYGBgXG4gKlxuICogIyMgQXV0b21hdGVkIGV2ZW50IHByb2Nlc3NpbmdcbiAqXG4gKiBJZiB5b3UgaGF2ZSBzcGVjaWZpYyBuZWVkcyBmb3Igd2hpY2ggeW91J2QgbGlrZSB0byBwcm9jZXNzIHRoZSBTTlMgZXZlbnRzIGRpcmVjdGx5XG4gKiAoZS5nLiBhdXRvbWF0aWNhbGx5IGNyZWF0aW5nIGEgc3VwcHJlc3Npb24gbGlzdCBmcm9tIGJvdW5jZXMpLCB5b3UgY2FuIHN1YnNjcmliZSB0byB0aGUgU05TIHRvcGljLlxuICogVG8gZW5hYmxlIHRoaXMgdGhlIFNOUyB0b3BpYyBBUk4gaXMgZXhwb3J0ZWQgdmlhIENsb3VkZm9ybWF0aW9uIGFzIGBSaW9TZXNPYnNlcnZhYmlsaXR5VG9waWNBcm5gLlxuICpcbiAqICMgTm90ZXNcbiAqICMjIEFkZCBuZWNlc3NhcnkgcGVybWlzc2lvbnMgZm9yIGZhcmdhdGUgdGFzayB0byBlbmFibGUgdXNpbmcgc2VzIGNvbmZpZ3VyYXRpb24gc2V0XG4gKiBNYWtlIHN1cmUgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9ucyBpbiB0aGUgdGFzayByb2xlIG9mIHRoZSBmYXJnYXRlIHRhc2ssIGUuZy46XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgICAgc2VydmljZS50YXNrRGVmaW5pdGlvbi50YXNrUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAqICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAqICAgICAgICAgYWN0aW9uczogWydzZXM6c2VuZEVtYWlsJywgJ3NlczpzZW5kUmF3RW1haWwnXSxcbiAqICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VzOjx5b3VyX3JlZ2lvbj46PHlvdXJfYWNjb3VudD46Y29uZmlndXJhdGlvbi1zZXQvPHlvdXJfY29uZmlndXJhdGlvbl9zZXRfbmFtZT5gXSxcbiAqICAgICAgIH0pKTtcbiAqIGBgYFxuICpcbiAqICMjIFdhdGNoZnVsXG4gKiBJdCBtaWdodCBiZSBoZWxwZnVsIHRvIGFkZCB3YXRjaGZ1bCB0byB5b3VyIHN0YWNrIHRvXG4gKiBnZXQgbm90aWZpZWQgaWYgdGhlIHNlcy1sb2dnZXIgbGFtYmRhIGZhaWxzLlxuICovXG5leHBvcnQgY2xhc3MgU2VzT2JzZXJ2YWJpbGl0eSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8vICEgY2hhbmdpbmcgdGhlc2UgdmFsdWVzIGlzIGEgYnJlYWtpbmcgY2hhbmdlIGZvciB1c2Vyc1xuICBzdGF0aWMgcmVhZG9ubHkgQ09ORklHVVJBVElPTl9TRVRfTkFNRV9TU01fUEFSQU1FVEVSID0gJy9yaW8vY29uZmlnL3Nlcy1vYnNlcnZhYmlsaXR5L2NvbmZpZ3VyYXRpb24tc2V0LW5hbWUnO1xuICBzdGF0aWMgcmVhZG9ubHkgU05TX1RPUElDX0FSTl9FWFBPUlRfTkFNRSA9ICdSaW9TZXNPYnNlcnZhYmlsaXR5VG9waWNBcm4nO1xuICByZWFkb25seSBzbnNUb3BpYzogc25zLlRvcGljO1xuICByZWFkb25seSBjb25maWd1cmF0aW9uU2V0OiBzZXMuQ29uZmlndXJhdGlvblNldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VzT2JzZXJ2YWJpbGl0eVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXIgPSBuZXcgc3NtLlN0cmluZ1BhcmFtZXRlcih0aGlzLCAnQ29uZmlndXJhdGlvblNldE5hbWUnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiBTZXNPYnNlcnZhYmlsaXR5LkNPTkZJR1VSQVRJT05fU0VUX05BTUVfU1NNX1BBUkFNRVRFUixcbiAgICAgIHN0cmluZ1ZhbHVlOiAncmlvLXNlcy1vYnNlcnZhYmlsaXR5LWNvbmZpZ3VyYXRpb24tc2V0JyxcbiAgICB9KTtcblxuICAgIHRoaXMuc25zVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsICdTbnNUb3BpYycsIHtcbiAgICAgIHRvcGljTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS10b3BpYycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXQgPSBuZXcgc2VzLkNvbmZpZ3VyYXRpb25TZXQodGhpcywgJ0NvbmZpZ3VyYXRpb25TZXQnLCB7XG4gICAgICBjb25maWd1cmF0aW9uU2V0TmFtZTogcGFyYW1ldGVyLnN0cmluZ1ZhbHVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uU2V0LmFkZEV2ZW50RGVzdGluYXRpb24oJ0V2ZW50RGVzdGluYXRpb24nLCB7XG4gICAgICBjb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvbk5hbWU6ICdyaW8tc2VzLW9ic2VydmFiaWxpdHktZXZlbnQtZGVzdGluYXRpb24nLFxuICAgICAgZGVzdGluYXRpb246IHNlcy5FdmVudERlc3RpbmF0aW9uLnNuc1RvcGljKHRoaXMuc25zVG9waWMpLFxuICAgICAgZXZlbnRzOiBwcm9wcy5sb2dnZWRTZXNFdmVudHMgPz8gW1xuICAgICAgICBzZXMuRW1haWxTZW5kaW5nRXZlbnQuREVMSVZFUlksXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5CT1VOQ0UsXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5DT01QTEFJTlQsXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5SRUpFQ1QsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdMb2dGdW5jdGlvbicsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS1sb2ctZnVuY3Rpb24nLFxuICAgICAgcnVudGltZTogREVGQVVMVF9OT0RFX1JVTlRJTUUsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgaGFuZGxlcjogJ3Nlcy1sb2dnZXIuaGFuZGxlcicsXG4gICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVEhSRUVfTU9OVEhTLFxuICAgICAgc3lzdGVtTG9nTGV2ZWxWMjogbGFtYmRhLlN5c3RlbUxvZ0xldmVsLldBUk4sXG4gICAgICBsb2dnaW5nRm9ybWF0OiBsYW1iZGEuTG9nZ2luZ0Zvcm1hdC5KU09OLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdsYW1iZGEnKSwge1xuICAgICAgICBleGNsdWRlOiBbJyouanMnLCAnKi5kLnRzJ10sXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLmVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uKTtcblxuICAgIHRoaXMuc25zVG9waWMuYWRkU3Vic2NyaXB0aW9uKG5ldyBzbnNTdWJzY3JpcHRpb25zLkxhbWJkYVN1YnNjcmlwdGlvbihsb2dGdW5jdGlvbikpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1Nuc1RvcGljQXJuJywge1xuICAgICAgdmFsdWU6IHRoaXMuc25zVG9waWMudG9waWNBcm4sXG4gICAgICBleHBvcnROYW1lOiBTZXNPYnNlcnZhYmlsaXR5LlNOU19UT1BJQ19BUk5fRVhQT1JUX05BTUUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtb25pdG9yTm90aWZpY2F0aW9uID0gbmV3IFNlc01vbml0b3JOb3RpZmljYXRpb24ocHJvcHMuY3JlYXRlQ2FzZXNGcm9tTW9uaXRvcnMgPz8gZmFsc2UpO1xuXG4gICAgbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsICdRdW90YU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHF1b3RhIGFsbW9zdCByZWFjaGVkYCxcbiAgICAgIHNlcnZpY2VOYW1lOiAnYXdzLXNlcycsXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgbWF4KGxhc3RfMWgpOm1heDphd3Muc2VzLnNlbnRfbGFzdF8yNF9ob3Vyc3thY2NvdW50X2lkOiR7YWNjb3VudElkfX0gLyBtYXg6YXdzLnNlcy5tYXhfMjRfaG91cl9zZW5ke2FjY291bnRfaWQ6JHthY2NvdW50SWR9fSA+IDAuOGAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBZb3UgYXJlIGFsbW9zdCB1c2luZyB1cCB5b3UncmUgbWF4aW11bSBlbWFpbCBzZW5kaW5nIHF1b3RhIHBlciAyNGguIFxuICAgICAgICBFaXRoZXIgW3JlcXVlc3QgYW4gaW5jcmVhc2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXMvbGF0ZXN0L2RnL21hbmFnZS1zZW5kaW5nLXF1b3Rhcy1yZXF1ZXN0LWluY3JlYXNlLmh0bWwpIGZvciB5b3VyIHF1b3RhIGJ5IEFXUyBvciByZWR1Y2UgdGhlIGFtb3VudCBvZiBlbWFpbHMgc2VudC5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICAgIGNyaXRpY2FsOiAwLjgsXG4gICAgICAgICAgd2FybmluZzogMC43LFxuICAgICAgICB9LFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgJ0VtYWlsUmVqZWN0ZWRNb25pdG9yJywge1xuICAgICAgbmFtZTogYCR7YWNjb3VudE5hbWV9IFNFUyBFbWFpbCBSZWplY3RlZGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYHN1bShsYXN0XzFoKTptYXg6YXdzLnNlcy5yZWplY3Rze2FjY291bnRfaWQ6JHthY2NvdW50SWR9fSA+IDBgLFxuICAgICAgbWVzc2FnZTogdHJpbUluZGVudGBcbiAgICAgICAgU0VTIFtyZWplY3RlZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nlcy9sYXRlc3QvZGcvbW9uaXRvci1zZW5kaW5nLWFjdGl2aXR5Lmh0bWwpIHNlbmRpbmcgYXQgbGVhc3Qgb25lIGVtYWlsLlxuICAgICAgICBQbGVhc2UgaW52ZXN0aWdhdGUgdGhlIHJvb3QgY2FzZSwgYXMgdGhpcyBpcyBub3QgZXhwZWN0ZWQgdG8gaGFwcGVuIGluIHByb2R1Y3Rpb24gZXZlci5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICAgIGNyaXRpY2FsOiAwLFxuICAgICAgICB9LFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wbGFpbnRUaHJlc2hvbGRzID0ge1xuICAgICAgd2FybmluZzogcHJvcHMuY29tcGxhaW50VGhyZXNob2xkcz8ud2FybmluZyA/PyBDT01QTEFJTlRfVEhSRVNIT0xEU19ERUZBVUxULndhcm5pbmcsXG4gICAgICBjcml0aWNhbDogcHJvcHMuY29tcGxhaW50VGhyZXNob2xkcz8uY3JpdGljYWwgPz8gQ09NUExBSU5UX1RIUkVTSE9MRFNfREVGQVVMVC5jcml0aWNhbCxcbiAgICB9O1xuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnQ29tcGxhaW50UmF0ZU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHJlcHV0YXRpb24gZW5kYW5nZXJlZDogQ29tcGxhaW50IHJhdGUgSGlnaGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5yZXB1dGF0aW9uX2NvbXBsYWludF9yYXRle2FjY291bnRfaWQ6JHthY2NvdW50SWR9IGFuZCBub3Qgc2VzOip9ID4gJHtjb21wbGFpbnRUaHJlc2hvbGRzLmNyaXRpY2FsfWAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBXYXJuaW5nIFRocmVzaG9sZCBmb3IgQ29tcGxhaW50IHJhdGUge3sjaXNfd2FybmluZ319YWxtb3N0IHt7L2lzX3dhcm5pbmd9fXJlYWNoZWQgKGFzIGRlZmluZWQgaW4gQVdTKS5cbiAgICAgICAgXG4gICAgICAgIFBsZWFzZSByZWR1Y2UgdGhlIG51bWJlciBvZiBjb21wbGFpbnRzIHJlY2VpdmVkIGZvciBFLW1haWxzIHNlbnQgYnkgeW91ciBBY2NvdW50LlxuICAgICAgICBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIFxcYDAuNSVcXGAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAgICAgIFlvdSBjYW4gZmluZCBsb2dzIGFib3V0IGFsbCBtYWlscyBzZW50IGF0IFxcYCR7bG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lfVxcYC5cbiAgICAgICAgU2VlIFtBRFIgLSBTRVMgZG9tYWluIHJlcHV0YXRpb24gb2JzZXJ2YWJpbGl0eV0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS9kaXNwbGF5L01BTi9BRFIrLStTRVMrZG9tYWluK3JlcHV0YXRpb24rb2JzZXJ2YWJpbGl0eSkuXG4gICAgICAgIGAsXG4gICAgICBwcmlvcml0eTogMixcbiAgICAgIG9wdGlvbk92ZXJyaWRlczoge1xuICAgICAgICB0aHJlc2hvbGRzOiBjb21wbGFpbnRUaHJlc2hvbGRzLFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBib3VuY2VUaHJlc2hvbGRzID0ge1xuICAgICAgd2FybmluZzogcHJvcHMuYm91bmNlVGhyZXNob2xkcz8ud2FybmluZyA/PyBCT1VOQ0VfVEhSRVNIT0xEU19ERUZBVUxULndhcm5pbmcsXG4gICAgICBjcml0aWNhbDogcHJvcHMuYm91bmNlVGhyZXNob2xkcz8uY3JpdGljYWwgPz8gQk9VTkNFX1RIUkVTSE9MRFNfREVGQVVMVC5jcml0aWNhbCxcbiAgICB9O1xuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnQm91bmNlUmF0ZU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHJlcHV0YXRpb24gZW5kYW5nZXJlZDogQm91bmNlIFJhdGUgSGlnaGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5yZXB1dGF0aW9uX2JvdW5jZV9yYXRle2FjY291bnRfaWQ6JHthY2NvdW50SWR9IGFuZCBub3Qgc2VzOip9ID4gJHtib3VuY2VUaHJlc2hvbGRzLmNyaXRpY2FsfWAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBXYXJuaW5nIFRocmVzaG9sZCBmb3IgQm91bmNlIHJhdGUge3sjaXNfd2FybmluZ319YWxtb3N0IHt7L2lzX3dhcm5pbmd9fXJlYWNoZWQgKGFzIGRlZmluZWQgaW4gQVdTKS5cbiAgICAgICAgXG4gICAgICAgIFBsZWFzZSByZWR1Y2UgdGhlIG51bWJlciBvZiBib3VuY2VzIGZvciBFLW1haWxzIHNlbnQgYnkgeW91ciBBY2NvdW50LlxuICAgICAgICBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIFxcYDEwJVxcYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBTZWUgW0FEUiAtIFNFUyBkb21haW4gcmVwdXRhdGlvbiBvYnNlcnZhYmlsaXR5XShodHRwczovL2NvbmZsdWVuY2UuY29sbGFib3JhdGlvbi1tYW4uY29tL2Rpc3BsYXkvTUFOL0FEUistK1NFUytkb21haW4rcmVwdXRhdGlvbitvYnNlcnZhYmlsaXR5KS5cbiAgICAgICAgYCxcbiAgICAgIHByaW9yaXR5OiAyLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHRocmVzaG9sZHM6IGJvdW5jZVRocmVzaG9sZHMsXG4gICAgICAgIGV2YWx1YXRpb25EZWxheTogOTAwLFxuICAgICAgfSxcbiAgICAgIG5vdGlmaWNhdGlvbjogbW9uaXRvck5vdGlmaWNhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBubyBQSUkgaXMgbGVha2VkIHRvIERhdGFkb2cgYnkgYWRkaW5nIGEgc3Vic2NyaXB0aW9uIGZpbHRlciB0byB0aGUgbG9nIGdyb3VwIG9mIHRoZSBsYW1iZGEuXG4gICAqL1xuICBwcml2YXRlIGVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uOiBOb2RlanNGdW5jdGlvbikge1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHN0YWNrLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHN0YWNrLm5vZGUuZmluZEFsbCgpLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBDZm5TdWJzY3JpcHRpb25GaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IG5vZGUubG9nR3JvdXBOYW1lO1xuICAgICAgICAgICAgaWYgKGxvZ0dyb3VwTmFtZSA9PT0gbG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKCdTdWJzY3JpcHRpb24gZmlsdGVycyBhcmUgbm90IGFsbG93ZWQgc2VzLW9ic2VydmFiaWxpdHkgbGFtYmRhcyBsb2cgZ3JvdXAnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLW9ic2VydmFiaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VzL3Nlcy1vYnNlcnZhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLDZDQUFvQztBQUNwQyxpREFBaUQ7QUFFakQsbURBQTRFO0FBQzVFLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0Msc0VBQXNFO0FBQ3RFLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsMkNBQXVDO0FBQ3ZDLDRDQUFvRDtBQUNwRCw0Q0FNc0I7QUFDdEIsMERBQXFEO0FBQ3JELHFDQUFzQztBQUV0QyxNQUFNLHlCQUF5QixHQUFHO0lBQ2hDLFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSw0QkFBNEIsR0FBRztJQUNuQyxRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQjtJQUkxQixZQUE2QixpQkFBMEI7UUFBMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFTO1FBSHRDLHNCQUFpQixHQUFHLElBQUksb0NBQXdCLEVBQUUsQ0FBQztRQUNuRCxxQkFBZ0IsR0FBRyxJQUFJLG1DQUF1QixFQUFFLENBQUM7SUFFUixDQUFDO0lBRTNELHlCQUF5QixDQUFDLE9BQXVCO1FBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwRixPQUFPO1lBQ0wsZUFBZTtZQUNmLEdBQUcsWUFBWTtZQUNmLGVBQWU7WUFDZix5QkFBeUIsV0FBVyx3QkFBd0I7U0FDN0QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFnREQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1REc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBTzdDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFNBQVMsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsaUNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUN0RSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsb0NBQW9DO1lBQ3BFLFdBQVcsRUFBRSx5Q0FBeUM7U0FDdkQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUM5QyxTQUFTLEVBQUUsNkJBQTZCO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDekUsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLFdBQVc7U0FDNUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFO1lBQzVELG9DQUFvQyxFQUFFLHlDQUF5QztZQUMvRSxXQUFXLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3pELE1BQU0sRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJO2dCQUMvQixHQUFHLENBQUMsaUJBQWlCLENBQUMsUUFBUTtnQkFDOUIsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE1BQU07Z0JBQzVCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTO2dCQUMvQixHQUFHLENBQUMsaUJBQWlCLENBQUMsTUFBTTthQUM3QjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQzNELFlBQVksRUFBRSxvQ0FBb0M7WUFDbEQsT0FBTyxFQUFFLGdDQUFvQjtZQUM3QixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsWUFBWSxFQUFFLHdCQUFhLENBQUMsWUFBWTtZQUN4QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUk7WUFDNUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzFELE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7YUFDNUIsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFcEYsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUM3QixVQUFVLEVBQUUsZ0JBQWdCLENBQUMseUJBQXlCO1NBQ3ZELENBQUMsQ0FBQztRQUVILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksS0FBSyxDQUFDLENBQUM7UUFFL0YsSUFBSSwwQkFBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDdkMsSUFBSSxFQUFFLEdBQUcsV0FBVywyQkFBMkI7WUFDL0MsV0FBVyxFQUFFLFNBQVM7WUFDdEIsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLDBEQUEwRCxTQUFTLCtDQUErQyxTQUFTLFNBQVM7WUFDM0ksT0FBTyxFQUFFLElBQUEsbUJBQVUsRUFBQTs7O3NEQUc2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDOUU7WUFDSCxRQUFRLEVBQUUsQ0FBQztZQUNYLGVBQWUsRUFBRTtnQkFDZixVQUFVLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLEdBQUc7b0JBQ2IsT0FBTyxFQUFFLEdBQUc7aUJBQ2I7Z0JBQ0QsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztRQUVILElBQUksMEJBQWMsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDL0MsSUFBSSxFQUFFLEdBQUcsV0FBVyxxQkFBcUI7WUFDekMsV0FBVyxFQUFFLFNBQVM7WUFDdEIsV0FBVyxFQUFFLHdDQUE0QixDQUFDLFdBQVc7WUFDckQsS0FBSyxFQUFFLCtDQUErQyxTQUFTLE9BQU87WUFDdEUsT0FBTyxFQUFFLElBQUEsbUJBQVUsRUFBQTs7O3NEQUc2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDOUU7WUFDSCxRQUFRLEVBQUUsQ0FBQztZQUNYLGVBQWUsRUFBRTtnQkFDZixVQUFVLEVBQUU7b0JBQ1YsUUFBUSxFQUFFLENBQUM7aUJBQ1o7Z0JBQ0QsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztRQUVILE1BQU0sbUJBQW1CLEdBQUc7WUFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLElBQUksNEJBQTRCLENBQUMsT0FBTztZQUNuRixRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsSUFBSSw0QkFBNEIsQ0FBQyxRQUFRO1NBQ3ZGLENBQUM7UUFDRixJQUFJLDBCQUFjLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQy9DLElBQUksRUFBRSxHQUFHLFdBQVcsaURBQWlEO1lBQ3JFLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELEtBQUssRUFBRSxpRUFBaUUsU0FBUyxxQkFBcUIsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1lBQ3BJLE9BQU8sRUFBRSxJQUFBLG1CQUFVLEVBQUE7Ozs7O3NEQUs2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7O1NBRTlFO1lBQ0gsUUFBUSxFQUFFLENBQUM7WUFDWCxlQUFlLEVBQUU7Z0JBQ2YsVUFBVSxFQUFFLG1CQUFtQjtnQkFDL0IsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLElBQUkseUJBQXlCLENBQUMsT0FBTztZQUM3RSxRQUFRLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsSUFBSSx5QkFBeUIsQ0FBQyxRQUFRO1NBQ2pGLENBQUM7UUFDRixJQUFJLDBCQUFjLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzVDLElBQUksRUFBRSxHQUFHLFdBQVcsOENBQThDO1lBQ2xFLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFdBQVcsRUFBRSx3Q0FBNEIsQ0FBQyxXQUFXO1lBQ3JELEtBQUssRUFBRSw4REFBOEQsU0FBUyxxQkFBcUIsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1lBQzlILE9BQU8sRUFBRSxJQUFBLG1CQUFVLEVBQUE7Ozs7O3NEQUs2QixXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVk7O1NBRTlFO1lBQ0gsUUFBUSxFQUFFLENBQUM7WUFDWCxlQUFlLEVBQUU7Z0JBQ2YsVUFBVSxFQUFFLGdCQUFnQjtnQkFDNUIsZUFBZSxFQUFFLEdBQUc7YUFDckI7WUFDRCxZQUFZLEVBQUUsbUJBQW1CO1NBQ2xDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLDRDQUE0QyxDQUFDLFdBQTJCO1FBQzlFLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3ZCLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbEMsSUFBSSxJQUFJLFlBQVksZ0NBQXFCLEVBQUUsQ0FBQzt3QkFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQzt3QkFDdkMsSUFBSSxZQUFZLEtBQUssV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO3dCQUMxRixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBMUtILDRDQTJLQzs7O0FBMUtDLHlEQUF5RDtBQUN6QyxxREFBb0MsR0FBRyxzREFBc0QsQ0FBQztBQUM5RiwwQ0FBeUIsR0FBRyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHR5cGUgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCB7IENmblN1YnNjcmlwdGlvbkZpbHRlciwgUmV0ZW50aW9uRGF5cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHNlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VzJztcbmltcG9ydCAqIGFzIHNucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCAqIGFzIHNuc1N1YnNjcmlwdGlvbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucy1zdWJzY3JpcHRpb25zJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3NtJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgRGF0YWRvZ0Nhc2VOb3RpZmljYXRpb24sXG4gIERhdGFkb2dNb25pdG9yLFxuICBEYXRhZG9nTW9uaXRvclF1ZXJ5QWxlcnRUeXBlLFxuICBEZWZhdWx0U2xhY2tOb3RpZmljYXRpb24sXG4gIHR5cGUgSU5vdGlmaWNhdGlvbixcbn0gZnJvbSAnLi4vZGF0YWRvZ3YyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5pbXBvcnQgeyB0cmltSW5kZW50IH0gZnJvbSAnLi9oZWxwZXInO1xuXG5jb25zdCBCT1VOQ0VfVEhSRVNIT0xEU19ERUZBVUxUID0ge1xuICBjcml0aWNhbDogMC4wNSxcbiAgd2FybmluZzogMC4wNCxcbn07XG5cbmNvbnN0IENPTVBMQUlOVF9USFJFU0hPTERTX0RFRkFVTFQgPSB7XG4gIGNyaXRpY2FsOiAwLjAwMSxcbiAgd2FybmluZzogMC4wMDA4LFxufTtcblxuLyoqXG4gKiBTZW5kcyBhIFNsYWNrIG5vdGlmaWNhdGlvbiBmb3IgbW9uaXRvciBhbGVydHMgYW5kIHJlY292ZXJ5IChubyBub3RpZmljYXRpb24gZm9yIG1vbml0b3Igd2FybmluZ3MpLlxuICogQWxzbyBjcmVhdGVzIGEgRGF0YWRvZyBjYXNlIHdoZW4gY3JlYXRlQ2FzZSBpcyBzZXQgdG8gdHJ1ZS5cbiAqL1xuY2xhc3MgU2VzTW9uaXRvck5vdGlmaWNhdGlvbiBpbXBsZW1lbnRzIElOb3RpZmljYXRpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IHNsYWNrTm90aWZpY2F0aW9uID0gbmV3IERlZmF1bHRTbGFja05vdGlmaWNhdGlvbigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmljYXRpb24gPSBuZXcgRGF0YWRvZ0Nhc2VOb3RpZmljYXRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZURhdGFkb2dDYXNlOiBib29sZWFuKSB7fVxuXG4gIGdlbmVyYXRlTWVzc2FnZUFubm90YXRpb24obW9uaXRvcjogRGF0YWRvZ01vbml0b3IpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNsYWNrSGFuZGxlID0gdGhpcy5zbGFja05vdGlmaWNhdGlvbi5nZW5lcmF0ZU1lc3NhZ2VBbm5vdGF0aW9uKG1vbml0b3IpO1xuICAgIGNvbnN0IGNhc2VIYW5kbGUgPSB0aGlzLmNhc2VOb3RpZmljYXRpb24uZ2VuZXJhdGVNZXNzYWdlQW5ub3RhdGlvbihtb25pdG9yKTtcbiAgICBjb25zdCBhbGVydEhhbmRsZXMgPSBbc2xhY2tIYW5kbGUsIC4uLih0aGlzLmNyZWF0ZURhdGFkb2dDYXNlID8gW2Nhc2VIYW5kbGVdIDogW10pXTtcblxuICAgIHJldHVybiBbXG4gICAgICAne3sjaXNfYWxlcnR9fScsXG4gICAgICAuLi5hbGVydEhhbmRsZXMsXG4gICAgICAne3svaXNfYWxlcnR9fScsXG4gICAgICBge3sjaXNfYWxlcnRfcmVjb3Zlcnl9fSR7c2xhY2tIYW5kbGV9e3svaXNfYWxlcnRfcmVjb3Zlcnl9fWAsXG4gICAgXS5qb2luKCdcXG4nKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvdW5jZVRocmVzaG9sZHNQcm9wcyB7XG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsYWludFRocmVzaG9sZHNQcm9wcyB7XG4gIHJlYWRvbmx5IHdhcm5pbmc/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyaXRpY2FsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlc09ic2VydmFiaWxpdHlQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU0VTIGV2ZW50cyB0byBsb2cuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgW0VtYWlsU2VuZGluZ0V2ZW50LkRFTElWRVJZLCBFbWFpbFNlbmRpbmdFdmVudC5CT1VOQ0UsIEVtYWlsU2VuZGluZ0V2ZW50LkNPTVBMQUlOVCwgRW1haWxTZW5kaW5nRXZlbnQuUkVKRUNUXVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2VkU2VzRXZlbnRzPzogc2VzLkVtYWlsU2VuZGluZ0V2ZW50W107XG5cbiAgLyoqXG4gICAqIFRoZSBUaHJlc2hvbGRzIGZvciBib3VuY2UgcmF0ZSBNb25pdG9ycy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgc2hvdWxkIG9ubHkgYmUgb3ZlcndyaXR0ZW4sIGlmIHRoZXJlIGlzIHJlYWxseSBubyBwb3NzaWJpbGl0eSB0byByZWR1Y2UgdGhlIGJvdW5jZSByYXRlIG1lYW5pbmdmdWxseS5cbiAgICogSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBgMTAlYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICpcbiAgICogQGRlZmF1bHQgeyBjcml0aWNhbDogMC4wNSwgd2FybmluZzogMC4wNCB9XG4gICAqL1xuICByZWFkb25seSBib3VuY2VUaHJlc2hvbGRzPzogQm91bmNlVGhyZXNob2xkc1Byb3BzO1xuXG4gIC8qKlxuICAgKiBUaGUgVGhyZXNob2xkcyBmb3IgYm91bmNlIHJhdGUgTW9uaXRvcnMuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IHNob3VsZCBvbmx5IGJlIG92ZXJ3cml0dGVuLCBpZiB0aGVyZSBpcyByZWFsbHkgbm8gcG9zc2liaWxpdHkgdG8gcmVkdWNlIHRoZSBib3VuY2UgY29tcGxhaW50IG1lYW5pbmdmdWxseS5cbiAgICogSWYgdGhpcyBtZXRyaWMgcmVhY2hlcyBgMC41JWAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHsgY3JpdGljYWw6IDAuMDAxLCB3YXJuaW5nOiAwLjAwMDggfVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGxhaW50VGhyZXNob2xkcz86IENvbXBsYWludFRocmVzaG9sZHNQcm9wcztcblxuICAvKipcbiAgICogRW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgdGhlIERhdGFkb2cgbW9uaXRvcnMgdG8gY3JlYXRlIGNhc2VzIGluIERhdGFkb2cgd2hlbiBhbiBhbGVydCBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUNhc2VzRnJvbU1vbml0b3JzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSaW9TZXNPYnNlcnZhYmlsaXR5XG4gKlxuICogVGhpcyBjb25zdHJ1Y3Qgc2V0cyB1cCBvYnNlcnZhYmlsaXR5IGZvciBTRVMgYXMgZGVmaW5lZCBieSBbQURSIC0gU0VTIGRvbWFpbiByZXB1dGF0aW9uIG9ic2VydmFiaWxpdHldKGh0dHBzOi8vY29uZmx1ZW5jZS5jb2xsYWJvcmF0aW9uLW1hbi5jb20vZGlzcGxheS9NQU4vQURSKy0rU0VTK2RvbWFpbityZXB1dGF0aW9uK29ic2VydmFiaWxpdHkpLlxuICpcbiAqICMgV2FybmluZ1xuICogVGhpcyBjb25zdHJ1Y3QgcmVzdWx0cyBpbiBsb2dnaW5nIGFsbCBzZW50IGVtYWlscyBpbmNsdWRpbmcgdGhlIHJlY2lwaWVudCBhZGRyZXNzIGludG8gQ2xvdWRXYXRjaCBsb2dzLlxuICogQXMgdGhpcyBpcyBjb25zaWRlcmVkICoqUElJKiosIHRoaXMgaW5mb3JtYXRpb24gTVVTVCBiZSBoYW5kbGVkIGFjY29yZGluZ2x5LlxuICogSW4gcGFydGljdWxhciwgbG9ncyAqKk1VU1QgTk9UKiogYmUgc2VudCB0byBmdXJ0aGVyIHRoaXJkIHBhcnR5IHNlcnZpY2VzIChlLmcuIERhdGFkb2cpIGFuZCB0aGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgbG9ncyAqKk1VU1QgTk9UKiogYmUgZXh0ZW5kZWQuXG4gKlxuICogIyBVc2FnZVxuICogIyMgRGVmYXVsdCBDb25maWd1cmF0aW9uIFNldCBmb3IgSWRlbnRpdHlcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByaW9TZXNPYnNlcnZhYmlsaXR5ID0gbmV3IFJpb1Nlc09ic2VydmFiaWxpdHkodGhpcywgJ0NvbmZpZ3VyYXRpb25TZXQnLCB7fSlcbiAqIGNvbnN0IGlkZW50aXR5ID0gbmV3IEVtYWlsSWRlbnRpdHkodGhpcywgJ0VtYWlsSWRlbnRpdHknLCB7XG4gKiAgICAgaWRlbnRpdHk6IElkZW50aXR5LmRvbWFpbignZXhhbXBsZS5jb20nKSxcbiAqICAgICBjb25maWd1cmF0aW9uU2V0OiByaW9TZXNPYnNlcnZhYmlsaXR5LmNvbmZpZ3VyYXRpb25TZXQsXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIFNwZWNpZmljYWxseSB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQgcGVyIHJlcXVlc3RcbiAqXG4gKiBUaGlzIGlzIGlkZWFsIGlmIHlvdSB3YW50IHRvIHRyeSBvdXQgdGhlIGNvbnN0cnVjdCBmaXJzdCBvbmUgc29tZSBzcGVjaWZpYyBlbWFpbHMgKGUuZy4gZHVyaW5nIGluaXRpYWwgbWlncmF0aW9uKS5cbiAqIFRoZSBjb25maWd1cmF0aW9uIHNldCBuYW1lIGlzIGV4cG9ydGVkIGFzIGFuIFNTTSBwYXJhbWV0ZXIgYC9yaW8vY29uZmlnL3Nlcy1vYnNlcnZhYmlsaXR5L2NvbmZpZ3VyYXRpb24tc2V0LW5hbWVgLlxuICogVGh1cywgeW91IGNhbiBlYXNpbHkgbWFrZSBpdCBhdmFpbGFibGUgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUgaW4geW91ciBjb2RlLlxuICpcbiAqIGBgYGtvdGxpblxuICogaW1wb3J0IGNvbS5hbWF6b25hd3Muc2VydmljZXMuc2ltcGxlZW1haWwubW9kZWwuU2VuZEVtYWlsUmVxdWVzdFxuICpcbiAqIHZhbCByZXF1ZXN0ID0gU2VuZEVtYWlsUmVxdWVzdCgpXG4gKiAgICAgICAgICAgICAgICAgLndpdGhDb25maWd1cmF0aW9uU2V0TmFtZShTU01fQ09ORklHVVJBVElPTl9TU01fUEFSQU1FVEVSX1ZBTFVFKVxuICogICAgICAgICAgICAgICAgIC4uLlxuICogYGBgXG4gKlxuICogIyMgQXV0b21hdGVkIGV2ZW50IHByb2Nlc3NpbmdcbiAqXG4gKiBJZiB5b3UgaGF2ZSBzcGVjaWZpYyBuZWVkcyBmb3Igd2hpY2ggeW91J2QgbGlrZSB0byBwcm9jZXNzIHRoZSBTTlMgZXZlbnRzIGRpcmVjdGx5XG4gKiAoZS5nLiBhdXRvbWF0aWNhbGx5IGNyZWF0aW5nIGEgc3VwcHJlc3Npb24gbGlzdCBmcm9tIGJvdW5jZXMpLCB5b3UgY2FuIHN1YnNjcmliZSB0byB0aGUgU05TIHRvcGljLlxuICogVG8gZW5hYmxlIHRoaXMgdGhlIFNOUyB0b3BpYyBBUk4gaXMgZXhwb3J0ZWQgdmlhIENsb3VkZm9ybWF0aW9uIGFzIGBSaW9TZXNPYnNlcnZhYmlsaXR5VG9waWNBcm5gLlxuICpcbiAqICMgTm90ZXNcbiAqICMjIEFkZCBuZWNlc3NhcnkgcGVybWlzc2lvbnMgZm9yIGZhcmdhdGUgdGFzayB0byBlbmFibGUgdXNpbmcgc2VzIGNvbmZpZ3VyYXRpb24gc2V0XG4gKiBNYWtlIHN1cmUgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9ucyBpbiB0aGUgdGFzayByb2xlIG9mIHRoZSBmYXJnYXRlIHRhc2ssIGUuZy46XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgICAgc2VydmljZS50YXNrRGVmaW5pdGlvbi50YXNrUm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAqICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAqICAgICAgICAgYWN0aW9uczogWydzZXM6c2VuZEVtYWlsJywgJ3NlczpzZW5kUmF3RW1haWwnXSxcbiAqICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjphd3M6c2VzOjx5b3VyX3JlZ2lvbj46PHlvdXJfYWNjb3VudD46Y29uZmlndXJhdGlvbi1zZXQvPHlvdXJfY29uZmlndXJhdGlvbl9zZXRfbmFtZT5gXSxcbiAqICAgICAgIH0pKTtcbiAqIGBgYFxuICpcbiAqICMjIFdhdGNoZnVsXG4gKiBJdCBtaWdodCBiZSBoZWxwZnVsIHRvIGFkZCB3YXRjaGZ1bCB0byB5b3VyIHN0YWNrIHRvXG4gKiBnZXQgbm90aWZpZWQgaWYgdGhlIHNlcy1sb2dnZXIgbGFtYmRhIGZhaWxzLlxuICovXG5leHBvcnQgY2xhc3MgU2VzT2JzZXJ2YWJpbGl0eSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8vICEgY2hhbmdpbmcgdGhlc2UgdmFsdWVzIGlzIGEgYnJlYWtpbmcgY2hhbmdlIGZvciB1c2Vyc1xuICBzdGF0aWMgcmVhZG9ubHkgQ09ORklHVVJBVElPTl9TRVRfTkFNRV9TU01fUEFSQU1FVEVSID0gJy9yaW8vY29uZmlnL3Nlcy1vYnNlcnZhYmlsaXR5L2NvbmZpZ3VyYXRpb24tc2V0LW5hbWUnO1xuICBzdGF0aWMgcmVhZG9ubHkgU05TX1RPUElDX0FSTl9FWFBPUlRfTkFNRSA9ICdSaW9TZXNPYnNlcnZhYmlsaXR5VG9waWNBcm4nO1xuICByZWFkb25seSBzbnNUb3BpYzogc25zLlRvcGljO1xuICByZWFkb25seSBjb25maWd1cmF0aW9uU2V0OiBzZXMuQ29uZmlndXJhdGlvblNldDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VzT2JzZXJ2YWJpbGl0eVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBhY2NvdW50SWQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gUmlvTGFuZGluZ1pvbmUuZ2V0QWNjb3VudE5hbWVQYXJhbWV0ZXIodGhpcykuc3RyaW5nVmFsdWU7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXIgPSBuZXcgc3NtLlN0cmluZ1BhcmFtZXRlcih0aGlzLCAnQ29uZmlndXJhdGlvblNldE5hbWUnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiBTZXNPYnNlcnZhYmlsaXR5LkNPTkZJR1VSQVRJT05fU0VUX05BTUVfU1NNX1BBUkFNRVRFUixcbiAgICAgIHN0cmluZ1ZhbHVlOiAncmlvLXNlcy1vYnNlcnZhYmlsaXR5LWNvbmZpZ3VyYXRpb24tc2V0JyxcbiAgICB9KTtcblxuICAgIHRoaXMuc25zVG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsICdTbnNUb3BpYycsIHtcbiAgICAgIHRvcGljTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS10b3BpYycsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXQgPSBuZXcgc2VzLkNvbmZpZ3VyYXRpb25TZXQodGhpcywgJ0NvbmZpZ3VyYXRpb25TZXQnLCB7XG4gICAgICBjb25maWd1cmF0aW9uU2V0TmFtZTogcGFyYW1ldGVyLnN0cmluZ1ZhbHVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uU2V0LmFkZEV2ZW50RGVzdGluYXRpb24oJ0V2ZW50RGVzdGluYXRpb24nLCB7XG4gICAgICBjb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvbk5hbWU6ICdyaW8tc2VzLW9ic2VydmFiaWxpdHktZXZlbnQtZGVzdGluYXRpb24nLFxuICAgICAgZGVzdGluYXRpb246IHNlcy5FdmVudERlc3RpbmF0aW9uLnNuc1RvcGljKHRoaXMuc25zVG9waWMpLFxuICAgICAgZXZlbnRzOiBwcm9wcy5sb2dnZWRTZXNFdmVudHMgPz8gW1xuICAgICAgICBzZXMuRW1haWxTZW5kaW5nRXZlbnQuREVMSVZFUlksXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5CT1VOQ0UsXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5DT01QTEFJTlQsXG4gICAgICAgIHNlcy5FbWFpbFNlbmRpbmdFdmVudC5SRUpFQ1QsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsICdMb2dGdW5jdGlvbicsIHtcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ3Jpby1zZXMtb2JzZXJ2YWJpbGl0eS1sb2ctZnVuY3Rpb24nLFxuICAgICAgcnVudGltZTogREVGQVVMVF9OT0RFX1JVTlRJTUUsXG4gICAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgaGFuZGxlcjogJ3Nlcy1sb2dnZXIuaGFuZGxlcicsXG4gICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVEhSRUVfTU9OVEhTLFxuICAgICAgc3lzdGVtTG9nTGV2ZWxWMjogbGFtYmRhLlN5c3RlbUxvZ0xldmVsLldBUk4sXG4gICAgICBsb2dnaW5nRm9ybWF0OiBsYW1iZGEuTG9nZ2luZ0Zvcm1hdC5KU09OLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICdsYW1iZGEnKSwge1xuICAgICAgICBleGNsdWRlOiBbJyouanMnLCAnKi5kLnRzJ10sXG4gICAgICB9KSxcbiAgICB9KTtcbiAgICB0aGlzLmVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uKTtcblxuICAgIHRoaXMuc25zVG9waWMuYWRkU3Vic2NyaXB0aW9uKG5ldyBzbnNTdWJzY3JpcHRpb25zLkxhbWJkYVN1YnNjcmlwdGlvbihsb2dGdW5jdGlvbikpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1Nuc1RvcGljQXJuJywge1xuICAgICAgdmFsdWU6IHRoaXMuc25zVG9waWMudG9waWNBcm4sXG4gICAgICBleHBvcnROYW1lOiBTZXNPYnNlcnZhYmlsaXR5LlNOU19UT1BJQ19BUk5fRVhQT1JUX05BTUUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtb25pdG9yTm90aWZpY2F0aW9uID0gbmV3IFNlc01vbml0b3JOb3RpZmljYXRpb24ocHJvcHMuY3JlYXRlQ2FzZXNGcm9tTW9uaXRvcnMgPz8gZmFsc2UpO1xuXG4gICAgbmV3IERhdGFkb2dNb25pdG9yKHRoaXMsICdRdW90YU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHF1b3RhIGFsbW9zdCByZWFjaGVkYCxcbiAgICAgIHNlcnZpY2VOYW1lOiAnYXdzLXNlcycsXG4gICAgICBtb25pdG9yVHlwZTogRGF0YWRvZ01vbml0b3JRdWVyeUFsZXJ0VHlwZS5RVUVSWV9BTEVSVCxcbiAgICAgIHF1ZXJ5OiBgbWF4KGxhc3RfMWgpOm1heDphd3Muc2VzLnNlbnRfbGFzdF8yNF9ob3Vyc3thY2NvdW50X2lkOiR7YWNjb3VudElkfX0gLyBtYXg6YXdzLnNlcy5tYXhfMjRfaG91cl9zZW5ke2FjY291bnRfaWQ6JHthY2NvdW50SWR9fSA+IDAuOGAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBZb3UgYXJlIGFsbW9zdCB1c2luZyB1cCB5b3UncmUgbWF4aW11bSBlbWFpbCBzZW5kaW5nIHF1b3RhIHBlciAyNGguIFxuICAgICAgICBFaXRoZXIgW3JlcXVlc3QgYW4gaW5jcmVhc2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXMvbGF0ZXN0L2RnL21hbmFnZS1zZW5kaW5nLXF1b3Rhcy1yZXF1ZXN0LWluY3JlYXNlLmh0bWwpIGZvciB5b3VyIHF1b3RhIGJ5IEFXUyBvciByZWR1Y2UgdGhlIGFtb3VudCBvZiBlbWFpbHMgc2VudC5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDQsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICAgIGNyaXRpY2FsOiAwLjgsXG4gICAgICAgICAgd2FybmluZzogMC43LFxuICAgICAgICB9LFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YWRvZ01vbml0b3IodGhpcywgJ0VtYWlsUmVqZWN0ZWRNb25pdG9yJywge1xuICAgICAgbmFtZTogYCR7YWNjb3VudE5hbWV9IFNFUyBFbWFpbCBSZWplY3RlZGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYHN1bShsYXN0XzFoKTptYXg6YXdzLnNlcy5yZWplY3Rze2FjY291bnRfaWQ6JHthY2NvdW50SWR9fSA+IDBgLFxuICAgICAgbWVzc2FnZTogdHJpbUluZGVudGBcbiAgICAgICAgU0VTIFtyZWplY3RlZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nlcy9sYXRlc3QvZGcvbW9uaXRvci1zZW5kaW5nLWFjdGl2aXR5Lmh0bWwpIHNlbmRpbmcgYXQgbGVhc3Qgb25lIGVtYWlsLlxuICAgICAgICBQbGVhc2UgaW52ZXN0aWdhdGUgdGhlIHJvb3QgY2FzZSwgYXMgdGhpcyBpcyBub3QgZXhwZWN0ZWQgdG8gaGFwcGVuIGluIHByb2R1Y3Rpb24gZXZlci5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBgLFxuICAgICAgcHJpb3JpdHk6IDMsXG4gICAgICBvcHRpb25PdmVycmlkZXM6IHtcbiAgICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICAgIGNyaXRpY2FsOiAwLFxuICAgICAgICB9LFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wbGFpbnRUaHJlc2hvbGRzID0ge1xuICAgICAgd2FybmluZzogcHJvcHMuY29tcGxhaW50VGhyZXNob2xkcz8ud2FybmluZyA/PyBDT01QTEFJTlRfVEhSRVNIT0xEU19ERUZBVUxULndhcm5pbmcsXG4gICAgICBjcml0aWNhbDogcHJvcHMuY29tcGxhaW50VGhyZXNob2xkcz8uY3JpdGljYWwgPz8gQ09NUExBSU5UX1RIUkVTSE9MRFNfREVGQVVMVC5jcml0aWNhbCxcbiAgICB9O1xuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnQ29tcGxhaW50UmF0ZU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHJlcHV0YXRpb24gZW5kYW5nZXJlZDogQ29tcGxhaW50IHJhdGUgSGlnaGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5yZXB1dGF0aW9uX2NvbXBsYWludF9yYXRle2FjY291bnRfaWQ6JHthY2NvdW50SWR9IGFuZCBub3Qgc2VzOip9ID4gJHtjb21wbGFpbnRUaHJlc2hvbGRzLmNyaXRpY2FsfWAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBXYXJuaW5nIFRocmVzaG9sZCBmb3IgQ29tcGxhaW50IHJhdGUge3sjaXNfd2FybmluZ319YWxtb3N0IHt7L2lzX3dhcm5pbmd9fXJlYWNoZWQgKGFzIGRlZmluZWQgaW4gQVdTKS5cbiAgICAgICAgXG4gICAgICAgIFBsZWFzZSByZWR1Y2UgdGhlIG51bWJlciBvZiBjb21wbGFpbnRzIHJlY2VpdmVkIGZvciBFLW1haWxzIHNlbnQgYnkgeW91ciBBY2NvdW50LlxuICAgICAgICBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIFxcYDAuNSVcXGAgdGhlIGVtYWlsIHNlbmRpbmcgY2FwYWJpbGl0eSBvZiB5b3VyIGFjY291bnQgd2lsbCBiZSBkaXNhYmxlZCBieSBBV1MuXG4gICAgICAgIFlvdSBjYW4gZmluZCBsb2dzIGFib3V0IGFsbCBtYWlscyBzZW50IGF0IFxcYCR7bG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lfVxcYC5cbiAgICAgICAgU2VlIFtBRFIgLSBTRVMgZG9tYWluIHJlcHV0YXRpb24gb2JzZXJ2YWJpbGl0eV0oaHR0cHM6Ly9jb25mbHVlbmNlLmNvbGxhYm9yYXRpb24tbWFuLmNvbS9kaXNwbGF5L01BTi9BRFIrLStTRVMrZG9tYWluK3JlcHV0YXRpb24rb2JzZXJ2YWJpbGl0eSkuXG4gICAgICAgIGAsXG4gICAgICBwcmlvcml0eTogMixcbiAgICAgIG9wdGlvbk92ZXJyaWRlczoge1xuICAgICAgICB0aHJlc2hvbGRzOiBjb21wbGFpbnRUaHJlc2hvbGRzLFxuICAgICAgICBldmFsdWF0aW9uRGVsYXk6IDkwMCxcbiAgICAgIH0sXG4gICAgICBub3RpZmljYXRpb246IG1vbml0b3JOb3RpZmljYXRpb24sXG4gICAgfSk7XG5cbiAgICBjb25zdCBib3VuY2VUaHJlc2hvbGRzID0ge1xuICAgICAgd2FybmluZzogcHJvcHMuYm91bmNlVGhyZXNob2xkcz8ud2FybmluZyA/PyBCT1VOQ0VfVEhSRVNIT0xEU19ERUZBVUxULndhcm5pbmcsXG4gICAgICBjcml0aWNhbDogcHJvcHMuYm91bmNlVGhyZXNob2xkcz8uY3JpdGljYWwgPz8gQk9VTkNFX1RIUkVTSE9MRFNfREVGQVVMVC5jcml0aWNhbCxcbiAgICB9O1xuICAgIG5ldyBEYXRhZG9nTW9uaXRvcih0aGlzLCAnQm91bmNlUmF0ZU1vbml0b3InLCB7XG4gICAgICBuYW1lOiBgJHthY2NvdW50TmFtZX0gU0VTIHJlcHV0YXRpb24gZW5kYW5nZXJlZDogQm91bmNlIFJhdGUgSGlnaGAsXG4gICAgICBzZXJ2aWNlTmFtZTogJ2F3cy1zZXMnLFxuICAgICAgbW9uaXRvclR5cGU6IERhdGFkb2dNb25pdG9yUXVlcnlBbGVydFR5cGUuUVVFUllfQUxFUlQsXG4gICAgICBxdWVyeTogYG1heChsYXN0XzFoKTptYXg6YXdzLnNlcy5yZXB1dGF0aW9uX2JvdW5jZV9yYXRle2FjY291bnRfaWQ6JHthY2NvdW50SWR9IGFuZCBub3Qgc2VzOip9ID4gJHtib3VuY2VUaHJlc2hvbGRzLmNyaXRpY2FsfWAsXG4gICAgICBtZXNzYWdlOiB0cmltSW5kZW50YFxuICAgICAgICBXYXJuaW5nIFRocmVzaG9sZCBmb3IgQm91bmNlIHJhdGUge3sjaXNfd2FybmluZ319YWxtb3N0IHt7L2lzX3dhcm5pbmd9fXJlYWNoZWQgKGFzIGRlZmluZWQgaW4gQVdTKS5cbiAgICAgICAgXG4gICAgICAgIFBsZWFzZSByZWR1Y2UgdGhlIG51bWJlciBvZiBib3VuY2VzIGZvciBFLW1haWxzIHNlbnQgYnkgeW91ciBBY2NvdW50LlxuICAgICAgICBJZiB0aGlzIG1ldHJpYyByZWFjaGVzIFxcYDEwJVxcYCB0aGUgZW1haWwgc2VuZGluZyBjYXBhYmlsaXR5IG9mIHlvdXIgYWNjb3VudCB3aWxsIGJlIGRpc2FibGVkIGJ5IEFXUy5cbiAgICAgICAgWW91IGNhbiBmaW5kIGxvZ3MgYWJvdXQgYWxsIG1haWxzIHNlbnQgYXQgXFxgJHtsb2dGdW5jdGlvbi5sb2dHcm91cC5sb2dHcm91cE5hbWV9XFxgLlxuICAgICAgICBTZWUgW0FEUiAtIFNFUyBkb21haW4gcmVwdXRhdGlvbiBvYnNlcnZhYmlsaXR5XShodHRwczovL2NvbmZsdWVuY2UuY29sbGFib3JhdGlvbi1tYW4uY29tL2Rpc3BsYXkvTUFOL0FEUistK1NFUytkb21haW4rcmVwdXRhdGlvbitvYnNlcnZhYmlsaXR5KS5cbiAgICAgICAgYCxcbiAgICAgIHByaW9yaXR5OiAyLFxuICAgICAgb3B0aW9uT3ZlcnJpZGVzOiB7XG4gICAgICAgIHRocmVzaG9sZHM6IGJvdW5jZVRocmVzaG9sZHMsXG4gICAgICAgIGV2YWx1YXRpb25EZWxheTogOTAwLFxuICAgICAgfSxcbiAgICAgIG5vdGlmaWNhdGlvbjogbW9uaXRvck5vdGlmaWNhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCBubyBQSUkgaXMgbGVha2VkIHRvIERhdGFkb2cgYnkgYWRkaW5nIGEgc3Vic2NyaXB0aW9uIGZpbHRlciB0byB0aGUgbG9nIGdyb3VwIG9mIHRoZSBsYW1iZGEuXG4gICAqL1xuICBwcml2YXRlIGVuc3VyZU5vU3Vic2NyaXB0aW9uRmlsdGVyc09uTGFtYmRhc0xvZ0dyb3VwKGxvZ0Z1bmN0aW9uOiBOb2RlanNGdW5jdGlvbikge1xuICAgIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHN0YWNrLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIHN0YWNrLm5vZGUuZmluZEFsbCgpLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBDZm5TdWJzY3JpcHRpb25GaWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IG5vZGUubG9nR3JvdXBOYW1lO1xuICAgICAgICAgICAgaWYgKGxvZ0dyb3VwTmFtZSA9PT0gbG9nRnVuY3Rpb24ubG9nR3JvdXAubG9nR3JvdXBOYW1lKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKCdTdWJzY3JpcHRpb24gZmlsdGVycyBhcmUgbm90IGFsbG93ZWQgc2VzLW9ic2VydmFiaWxpdHkgbGFtYmRhcyBsb2cgZ3JvdXAnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXJyb3JzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -42,4 +42,4 @@ class NormalizedTestTemplate {
|
|
|
42
42
|
exports.NormalizedTestTemplate = NormalizedTestTemplate;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
44
|
NormalizedTestTemplate[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.NormalizedTestTemplate", version: "0.0.0" };
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC10ZXN0LXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qvbm9ybWFsaXplZC10ZXN0LXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDMUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFrQjtRQUMzQyxNQUFNLFlBQVksR0FBdUI7WUFDdkMsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLGdDQUFnQztZQUMzRSxDQUFDLGtEQUFrRCxFQUFFLGtCQUFrQixDQUFDLEVBQUUsdURBQXVEO1lBQ2pJLENBQUMsd0RBQXdELEVBQUUsMkJBQTJCLENBQUMsRUFBRSx1REFBdUQ7U0FDakosQ0FBQztRQUVGLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDaEQsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1lBQ2xELGNBQWMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDNUUsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7O0FBbEJILHdEQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcblxuLyoqXG4gKiBBIHV0aWxpdHkgY2xhc3MgdGhhdCBub3JtYWxpemVzIGEgVGVtcGxhdGUgb2JqZWN0IHRvIHNpbXBsaWZ5IHRlbXBsYXRlIGNvbXBhcmlzb25zIGluIHRlc3RzLlxuICpcbiAqIFRoZSBmcm9tVGVtcGxhdGUoKSBtZXRob2Qgd29ya3MgYnkgYXBwbHlpbmcgcmVwbGFjZW1lbnRzIGZvciBzcGVjaWZpYyB2YWx1ZXMgd2l0aCBhXG4gKiBwbGFjZWhvbGRlciB2YWx1ZS4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGJlY2F1c2UgZWxlbWVudHMgbGlrZSB0aGUgUzNcbiAqIGtleXMgZm9yIExhbWJkYSBjb2RlIGFzc2V0cyBpbmNsdWRlIGhhc2ggc3RyaW5ncyB0aGF0IGNoYW5nZSB3aXRoIGV2ZXJ5IGRlcGVuZGVuY3kgdXBkYXRlLiBOb3JtYWxpemluZ1xuICogdGhlc2UgdmFsdWVzIHByZXZlbnRzIGZhbHNlIG5lZ2F0aXZlcyBkdXJpbmcgdGVtcGxhdGUgb2JqZWN0IGNvbXBhcmlzb25zLlxuICpcbiAqIEN1cnJlbnQgcmVwbGFjZW1lbnRzOlxuICogLSBTSEEtMjU2IGhhc2ggc3RyaW5ncyAoNjQgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpIGFyZSByZXBsYWNlZCB3aXRoICdkdW1teS1jZGstYXNzZXQnLlxuICogLSBUYWdzIHdpdGggS2V5ICdkZF9jZGtfY29uc3RydWN0JyBhcmUgcmVwbGFjZWQgd2l0aCAnZHVtbXktZGF0YWRvZy12ZXJzaW9uJy5cbiAqIC0gTGF0ZXN0Tm9kZVJ1bnRpbWVNYXAgd2l0aCAnZHVtbXlLZXknOiAnZHVtbXlWYWx1ZSdcbiAqIC0gY3VycmVudF9hY2NvdW50LWN1cnJlbnRfcmVnaW9uLUhBU0ggd2l0aCAnZHVtbXktY2RrLXJlZ2lvbicuXG4gKiBAZXhhbXBsZVxuICogICBjb25zdCBhcHBTdGFjayA9IG5ldyBBcHBTdGFjaygpXG4gKiAgIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKGFwcFN0YWNrKTtcbiAqICAgZXhwZWN0KE5vcm1hbGl6ZWRUZW1wbGF0ZS5mcm9tKHRlbXBsYXRlKS50b01hdGNoU25hcHNob3QoKTtcbiAqL1xuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZWRUZXN0VGVtcGxhdGUge1xuICBwdWJsaWMgc3RhdGljIGZyb21UZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGUpOiBUZW1wbGF0ZSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnRzOiBbUmVnRXhwLCBzdHJpbmddW10gPSBbXG4gICAgICBbL1xcYlthLWYwLTldezY0fVxcYi9naSwgJ2R1bW15LWNkay1hc3NldCddLCAvLyBNYXRjaCBhbnkgU0hBLTI1NiBoYXNoIHN0cmluZ1xuICAgICAgWy8oY3VycmVudF9hY2NvdW50LWN1cnJlbnRfcmVnaW9uLSlbYS1mMC05XXs4fVxcYi9naSwgJ2R1bW15LWNkay1yZWdpb24nXSwgLy8gTWF0Y2ggdGhlIGN1cnJlbnRfYWNjb3VudC1jdXJyZW50X3JlZ2lvbiBoYXNoIHN0cmluZ1xuICAgICAgWy8oXCJLZXlcIjpcXHMqXCJkZF9jZGtfY29uc3RydWN0XCIsXFxzKlwiVmFsdWVcIjpcXHMqXCIpW15cIl0qKFwiKS9nLCAnJDFkdW1teS1kYXRhZG9nLXZlcnNpb24kMiddLCAvLyBNYXRjaCBkZF9jZGtfY29uc3RydWN0IHRhZyBhZGRlZCB0byBsYW1iZGEgZnVuY3Rpb25zXG4gICAgXTtcblxuICAgIGxldCBub3JtYWxpemVkU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkodGVtcGxhdGUpO1xuICAgIGZvciAoY29uc3QgW3JlZ2V4LCByZXBsYWNlbWVudF0gb2YgcmVwbGFjZW1lbnRzKSB7XG4gICAgICBub3JtYWxpemVkU3RyaW5nID0gbm9ybWFsaXplZFN0cmluZy5yZXBsYWNlKHJlZ2V4LCByZXBsYWNlbWVudCk7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZEpzb24gPSBKU09OLnBhcnNlKG5vcm1hbGl6ZWRTdHJpbmcpO1xuICAgIGlmIChub3JtYWxpemVkSnNvbi5NYXBwaW5ncz8uTGF0ZXN0Tm9kZVJ1bnRpbWVNYXApIHtcbiAgICAgIG5vcm1hbGl6ZWRKc29uLk1hcHBpbmdzLkxhdGVzdE5vZGVSdW50aW1lTWFwID0geyBkdW1teUtleTogJ2R1bW15VmFsdWUnIH07XG4gICAgfVxuICAgIHJldHVybiBub3JtYWxpemVkSnNvbjtcbiAgfVxufVxuIl19
|
package/lib/toggle.d.ts
CHANGED