terraconstructs 0.0.23 → 0.0.24
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 +61226 -46941
- package/go.mod +2 -1
- package/go.sum +2 -0
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.js +1 -1
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +4 -5
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +3 -3
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +4 -4
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/private/metric-util.js +1 -2
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +2 -4
- package/lib/aws/compute/alb/application-load-balancer.js +2 -4
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/autoscaling-common/index.d.ts +3 -0
- package/lib/aws/compute/autoscaling-common/index.js +21 -0
- package/lib/aws/compute/autoscaling-common/interval-utils.d.ts +21 -0
- package/lib/aws/compute/autoscaling-common/interval-utils.js +213 -0
- package/lib/aws/compute/autoscaling-common/test-utils.d.ts +21 -0
- package/lib/aws/compute/autoscaling-common/test-utils.js +94 -0
- package/lib/aws/compute/autoscaling-common/types.d.ts +34 -0
- package/lib/aws/compute/autoscaling-common/types.js +3 -0
- package/lib/aws/compute/base-scalable-attribute.d.ts +74 -0
- package/lib/aws/compute/base-scalable-attribute.js +58 -0
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/ec2-util.js +1 -4
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +3 -3
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +7 -8
- package/lib/aws/compute/function-destinations/event-bridge.js +3 -3
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function.js +1 -1
- package/lib/aws/compute/index.d.ts +7 -0
- package/lib/aws/compute/index.js +11 -2
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
- package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-shared/util.js +1 -2
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.js +3 -3
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +8 -8
- package/lib/aws/compute/machine-image/utils.js +6 -6
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +2 -3
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/private/context-stub.js +2 -2
- package/lib/aws/compute/route.js +11 -11
- package/lib/aws/compute/scalable-target.d.ts +197 -0
- package/lib/aws/compute/scalable-target.js +168 -0
- package/lib/aws/compute/schedule.d.ts +81 -0
- package/lib/aws/compute/schedule.js +145 -0
- package/lib/aws/compute/security-group.js +4 -4
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +7 -7
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +4 -4
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +1 -1
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/step-scaling-action.d.ts +148 -0
- package/lib/aws/compute/step-scaling-action.js +109 -0
- package/lib/aws/compute/step-scaling-policy.d.ts +132 -0
- package/lib/aws/compute/step-scaling-policy.js +153 -0
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/target-tracking-scaling-policy.d.ts +262 -0
- package/lib/aws/compute/target-tracking-scaling-policy.js +234 -0
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.d.ts +1 -1
- package/lib/aws/compute/vpc.js +10 -16
- package/lib/aws/compute/vpn.js +4 -7
- package/lib/aws/compute/windows-versions.js +1 -2
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +4 -5
- package/lib/aws/edge/dns-alias-record-targets.js +3 -3
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +3 -4
- package/lib/aws/iam/group.js +1 -1
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +3 -3
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/user.js +1 -1
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +7 -7
- package/lib/aws/notify/event-bus.js +3 -3
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/notification-rule.js +1 -1
- package/lib/aws/notify/policy.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +4 -4
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +1 -1
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +1 -1
- package/lib/aws/notify/subscriptions/url.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +3 -3
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/targets/util.js +2 -2
- package/lib/aws/notify/topic-base.js +1 -1
- package/lib/aws/notify/topic.js +1 -1
- package/lib/aws/storage/billing.d.ts +62 -0
- package/lib/aws/storage/billing.js +49 -0
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +3 -3
- package/lib/aws/storage/bucket.js +2 -2
- package/lib/aws/storage/capacity.d.ts +96 -0
- package/lib/aws/storage/capacity.js +103 -0
- package/lib/aws/storage/dynamodb-canned-metrics.generated.d.ts +493 -0
- package/lib/aws/storage/dynamodb-canned-metrics.generated.js +263 -0
- package/lib/aws/storage/dynamodb-perms.d.ts +8 -0
- package/lib/aws/storage/dynamodb-perms.js +45 -0
- package/lib/aws/storage/encryption.d.ts +54 -0
- package/lib/aws/storage/encryption.js +116 -0
- package/lib/aws/storage/index.d.ts +6 -0
- package/lib/aws/storage/index.js +10 -1
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/aws/storage/scalable-attribute-api.d.ts +36 -0
- package/lib/aws/storage/scalable-attribute-api.js +3 -0
- package/lib/aws/storage/scalable-table-attribute.d.ts +32 -0
- package/lib/aws/storage/scalable-table-attribute.js +48 -0
- package/lib/aws/storage/shared.d.ts +419 -0
- package/lib/aws/storage/shared.js +161 -0
- package/lib/aws/storage/table.d.ts +536 -0
- package/lib/aws/storage/table.js +1054 -0
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +1 -1
- package/lib/time-zone.d.ts +724 -0
- package/lib/time-zone.js +737 -0
- package/package.json +2 -1
|
@@ -48,8 +48,8 @@ class LambdaFunctionBase extends aws_construct_1.AwsConstructBase {
|
|
|
48
48
|
}
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const principal = this.parsePermissionPrincipal(permission.principal);
|
|
52
|
+
const { sourceArn, sourceAccount, principalOrgID } = this.validateConditionCombinations(permission.principal) ?? {};
|
|
53
53
|
const action = permission.action ?? "lambda:InvokeFunction";
|
|
54
54
|
const scope = permission.scope ?? this;
|
|
55
55
|
/**
|
|
@@ -143,7 +143,7 @@ class LambdaFunctionBase extends aws_construct_1.AwsConstructBase {
|
|
|
143
143
|
// Memoize the result so subsequent grantInvoke() calls are idempotent
|
|
144
144
|
grant = this._invocationGrants[identifier];
|
|
145
145
|
if (!grant) {
|
|
146
|
-
|
|
146
|
+
const resouceArns = [`${this.functionArn}:${version}`];
|
|
147
147
|
if (version == this.version) {
|
|
148
148
|
resouceArns.push(this.functionArn);
|
|
149
149
|
}
|
|
@@ -276,8 +276,7 @@ class LambdaFunctionBase extends aws_construct_1.AwsConstructBase {
|
|
|
276
276
|
// Try some specific common classes first.
|
|
277
277
|
// use duck-typing, not instance of
|
|
278
278
|
if ("wrapped" in principal) {
|
|
279
|
-
|
|
280
|
-
principal = principal["wrapped"];
|
|
279
|
+
principal = principal.wrapped;
|
|
281
280
|
}
|
|
282
281
|
if ("accountId" in principal) {
|
|
283
282
|
return principal.accountId;
|
|
@@ -395,7 +394,7 @@ class LambdaFunctionBase extends aws_construct_1.AwsConstructBase {
|
|
|
395
394
|
}
|
|
396
395
|
exports.LambdaFunctionBase = LambdaFunctionBase;
|
|
397
396
|
_a = JSII_RTTI_SYMBOL_1;
|
|
398
|
-
LambdaFunctionBase[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunctionBase", version: "0.0.
|
|
397
|
+
LambdaFunctionBase[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunctionBase", version: "0.0.24" };
|
|
399
398
|
class QualifiedFunctionBase extends LambdaFunctionBase {
|
|
400
399
|
constructor() {
|
|
401
400
|
super(...arguments);
|
|
@@ -417,5 +416,5 @@ class QualifiedFunctionBase extends LambdaFunctionBase {
|
|
|
417
416
|
}
|
|
418
417
|
exports.QualifiedFunctionBase = QualifiedFunctionBase;
|
|
419
418
|
_b = JSII_RTTI_SYMBOL_1;
|
|
420
|
-
QualifiedFunctionBase[_b] = { fqn: "terraconstructs.aws.compute.QualifiedFunctionBase", version: "0.0.
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9mdW5jdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOEpBQThKO0FBQzlKLHlIQUF5SDtBQUN6SCxpQ0FBaUM7QUFDakMsc0RBQXVEO0FBQ3ZELGlDQUF3RDtBQUV4RCxnQ0FBbUM7QUFDbkMsb0RBQW1FO0FBQ25FLDRDQUF3QztBQUV4QywrREFHK0I7QUFDL0IsaUVBR2dDO0FBRWhDLGlEQUl3QjtBQUN4Qiw4QkFBOEI7QUF5SzlCLE1BQXNCLGtCQUNwQixTQUFRLGdDQUFnQjtJQUQxQjs7UUEyRUU7OztXQUdHO1FBQ08sc0JBQWlCLEdBQThCLEVBQUUsQ0FBQztRQUU1RDs7O1dBR0c7UUFDTyxpQ0FBNEIsR0FBOEIsRUFBRSxDQUFDO0tBdWZ4RTtJQXJmQzs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEVBQVUsRUFBRSxVQUFzQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzQiwrQkFBK0I7Z0JBQy9CLDZCQUE2QjtnQkFDN0IsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM3QjtvQkFDRSxrRUFBa0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUc7b0JBQ2pILDBCQUEwQixvQkFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLGFBQWEsb0JBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHO29CQUNuSCwyR0FBMkc7b0JBQzNHLDJDQUEyQztpQkFDNUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ1osQ0FBQztZQUNKLENBQUM7WUFDRCxP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QUMsV0FBVyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWlDO1FBQzNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5RCxNQUFNLElBQUksS0FBSyxDQUNiLGtGQUFrRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUNuRyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksdUNBQWlCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQy9DLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDdkIsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0Qkgsc0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vY2RrdGYtcGx1cy9jZGt0Zi1wbHVzL2Jsb2IvNTg2YWFiYWQzYWIyZmIyYTJlOTNlMDVlZDMzZjk0NDc0ZWJlOTM5Ny9wYWNrYWdlcy8lNDBjZGt0Zi1wbHVzL2F3cy9saWIvYXdzLWxhbWJkYS1mdW5jdGlvbi9pbmRleC50c1xcXG4vLyB1cGRhdGUgdG8gYWxpZ24gd2l0aCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9mdW5jdGlvbi1iYXNlLnRzXG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgbGFtYmRhUGVybWlzc2lvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSwgQW5ub3RhdGlvbnMsIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIElBd3NDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBBcmNoaXRlY3R1cmUgfSBmcm9tIFwiLi9hcmNoaXRlY3R1cmVcIjtcbmltcG9ydCB7XG4gIEV2ZW50SW52b2tlQ29uZmlnLFxuICBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMsXG59IGZyb20gXCIuL2V2ZW50LWludm9rZS1jb25maWdcIjtcbmltcG9ydCB7XG4gIEV2ZW50U291cmNlTWFwcGluZyxcbiAgRXZlbnRTb3VyY2VNYXBwaW5nT3B0aW9ucyxcbn0gZnJvbSBcIi4vZXZlbnQtc291cmNlLW1hcHBpbmdcIjtcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tIFwiLi9mdW5jdGlvbi1wZXJtaXNzaW9uXCI7XG5pbXBvcnQge1xuICBGdW5jdGlvblVybE9wdGlvbnMsXG4gIEZ1bmN0aW9uVXJsLFxuICBGdW5jdGlvblVybEF1dGhUeXBlLFxufSBmcm9tIFwiLi9mdW5jdGlvbi11cmxcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8vIFRPRE86IHJlLWFkZCBlYzIuSUNvbm5lY3RhYmxlP1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBMYW1iZGEgZnVuY3Rpb24gZGVmaW5lZCBvdXRzaWRlIG9mIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OiBhcm46PHBhcnRpdGlvbj46bGFtYmRhOjxyZWdpb24+OjxhY2NvdW50LWlkPjpmdW5jdGlvbjo8ZnVuY3Rpb24tbmFtZT5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gZXhlY3V0aW9uIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIElmIHRoZSByb2xlIGlzIG5vdCBzcGVjaWZpZWQsIGFueSByb2xlLXJlbGF0ZWQgb3BlcmF0aW9ucyB3aWxsIG5vLW9wLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIG9mIHRoaXMgTGFtYmRhLCBpZiBpbiBhIFZQQy5cbiAgICpcbiAgICogVGhpcyBuZWVkcyB0byBiZSBnaXZlbiBpbiBvcmRlciB0byBzdXBwb3J0IGFsbG93aW5nIGNvbm5lY3Rpb25zXG4gICAqIHRvIHRoaXMgTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cD86IHN0cmluZyB8IElSZXNvbHZhYmxlOyAvLyBUT0RPOiBSZS1hZGQgc3VwcG9ydCBmb3IgRUMyIHNlY3VyaXR5IGdyb3Vwc1xuXG4gIC8qKlxuICAgKiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgaW5mb3JtcyB0aGUgQ0RLIHRoYXQgdGhlIGltcG9ydGVkIGZ1bmN0aW9uIGlzIGluIHRoZSBzYW1lIGVudmlyb25tZW50IGFzIHRoZSBzdGFjay5cbiAgICogVGhpcyBhZmZlY3RzIGNlcnRhaW4gYmVoYXZpb3VycyBzdWNoIGFzLCB3aGV0aGVyIHRoaXMgZnVuY3Rpb24ncyBwZXJtaXNzaW9uIGNhbiBiZSBtb2RpZmllZC5cbiAgICogV2hlbiBub3QgY29uZmlndXJlZCwgdGhlIENESyBhdHRlbXB0cyB0byBhdXRvLWRldGVybWluZSB0aGlzLiBGb3IgZW52aXJvbm1lbnQgYWdub3N0aWMgc3RhY2tzLCBpLmUuLCBzdGFja3NcbiAgICogd2hlcmUgdGhlIGFjY291bnQgaXMgbm90IHNwZWNpZmllZCB3aXRoIHRoZSBgZW52YCBwcm9wZXJ0eSwgdGhpcyBpcyBkZXRlcm1pbmVkIHRvIGJlIGZhbHNlLlxuICAgKlxuICAgKiBTZXQgdGhpcyB0byBwcm9wZXJ0eSAqT05MWSBJRiogdGhlIGltcG9ydGVkIGZ1bmN0aW9uIGlzIGluIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHN0YWNrXG4gICAqIGl0J3MgaW1wb3J0ZWQgaW4uXG4gICAqIEBkZWZhdWx0IC0gZGVwZW5kczogdHJ1ZSwgaWYgdGhlIFN0YWNrIGlzIGNvbmZpZ3VyZWQgd2l0aCBhbiBleHBsaWNpdCBgZW52YCAoYWNjb3VudCBhbmQgcmVnaW9uKSBhbmQgdGhlIGFjY291bnQgaXMgdGhlIHNhbWUgYXMgdGhpcyBmdW5jdGlvbi5cbiAgICogRm9yIGVudmlyb25tZW50LWFnbm9zdGljIHN0YWNrcyB0aGlzIHdpbGwgZGVmYXVsdCB0byBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2FtZUVudmlyb25tZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGluZm9ybXMgdGhlIFRlcnJhQ29uc3RydWN0IHRoYXQgdGhlIGltcG9ydGVkIGZ1bmN0aW9uIEFMUkVBRFkgSEFTIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnNcbiAgICogZm9yIHdoYXQgeW91IGFyZSB0cnlpbmcgdG8gZG8uIFdoZW4gbm90IGNvbmZpZ3VyZWQsIEUuVCwgYXR0ZW1wdHMgdG8gYXV0by1kZXRlcm1pbmUgd2hldGhlciBvciBub3RcbiAgICogYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcmUgbmVjZXNzYXJ5IG9uIHRoZSBmdW5jdGlvbiB3aGVuIGdyYW50IEFQSXMgYXJlIHVzZWQuIElmIFRlcnJhQ29uc3RydWN0IHRyaWVkIHRvIGFkZFxuICAgKiBwZXJtaXNzaW9ucyBvbiBhbiBpbXBvcnRlZCBsYW1iZGEsIGl0IHdpbGwgZmFpbC5cbiAgICpcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgKk9OTFkgSUYqIHlvdSBhcmUgY29tbWl0dGluZyB0byBtYW5hZ2UgdGhlIGltcG9ydGVkIGZ1bmN0aW9uJ3MgcGVybWlzc2lvbnMgb3V0c2lkZSBvZlxuICAgKiB0aGlzIFRlcnJhQ29uc3RydWN0IHN0YWNrLiBZb3UgYXJlIGFja25vd2xlZGdpbmcgdGhhdCB5b3VyIFRlcnJhQ29uc3RydWN0IGNvZGUgYWxvbmUgd2lsbCBoYXZlIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdGhlXG4gICAqIGltcG9ydGVkIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFBlcm1pc3Npb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIExhbWJkYSBGdW5jdGlvbiAodGhpcyBpcyBhbiBvcHRpb25hbCBhdHRyaWJ1dGUgYW5kIGRlZmF1bHRzIHRvIFg4Nl82NCkuXG4gICAqIEBkZWZhdWx0IC0gQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogQXJjaGl0ZWN0dXJlO1xufVxuXG4vKipcbiAqIEEgTGFtYmRhIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvbiBleHRlbmRzIElBd3NDb25zdHJ1Y3QsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0IG5vZGUgd2hlcmUgcGVybWlzc2lvbnMgYXJlIGF0dGFjaGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnNOb2RlOiBOb2RlO1xuXG4gIC8qKlxuICAgKiBUaGUgc3lzdGVtIGFyY2hpdGVjdHVyZXMgY29tcGF0aWJsZSB3aXRoIHRoaXMgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmU7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZXZlbnQgc291cmNlIHRoYXQgbWFwcyB0byB0aGlzIEFXUyBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIG9wdGlvbnMgbWFwcGluZyBvcHRpb25zXG4gICAqL1xuICBhZGRFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBFdmVudFNvdXJjZU1hcHBpbmdPcHRpb25zLFxuICApOiBFdmVudFNvdXJjZU1hcHBpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZXZlbnQgc291cmNlIHRvIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhZGRzIGFuIFNRUyBRdWV1ZSBhcyBhbiBldmVudCBzb3VyY2U6XG4gICAqIGBgYFxuICAgKiBpbXBvcnQgeyBjb21wdXRlIH0gZnJvbSAndGVycmFjb25zdHJ1Y3RzJztcbiAgICogbXlGdW5jdGlvbi5hZGRFdmVudFNvdXJjZShuZXcgY29tcHV0ZS5TcXNFdmVudFNvdXJjZShteVF1ZXVlKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYWRkRXZlbnRTb3VyY2Uoc291cmNlOiBJRXZlbnRTb3VyY2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcGVybWlzc2lvbiB0byB0aGUgTGFtYmRhIHJlc291cmNlIHBvbGljeS5cbiAgICogQHBhcmFtIGlkIFRoZSBpZCBmb3IgdGhlIHBlcm1pc3Npb24gY29uc3RydWN0XG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uIFRoZSBwZXJtaXNzaW9uIHRvIGdyYW50IHRvIHRoaXMgTGFtYmRhIGZ1bmN0aW9uLiBAc2VlIFBlcm1pc3Npb24gZm9yIGRldGFpbHMuXG4gICAqL1xuICBhZGRQZXJtaXNzaW9uKGlkOiBzdHJpbmcsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIGFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhXG4gICAqL1xuICBncmFudEludm9rZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhlICRMQVRFU1QgdmVyc2lvbiBvclxuICAgKiB1bnF1YWxpZmllZCB2ZXJzaW9uIG9mIHRoaXMgTGFtYmRhXG4gICAqL1xuICBncmFudEludm9rZUxhdGVzdFZlcnNpb24oaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBnaXZlbiAob3IgbGF0ZXN0KSB2ZXJzaW9uIG9mIHRoaXMgTGFtYmRhXG4gICAqL1xuICBncmFudEludm9rZVZlcnNpb24oaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB2ZXJzaW9uOiBzdHJpbmcpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhpcyBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBncmFudEludm9rZVVybChpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IG11bHRpcGxlIHByaW5jaXBhbHMgdGhlIGFiaWxpdHkgdG8gaW52b2tlIHRoaXMgTGFtYmRhIHZpYSBDb21wb3NpdGVQcmluY2lwYWxcbiAgICovXG4gIGdyYW50SW52b2tlQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgIGNvbXBvc2l0ZVByaW5jaXBhbDogaWFtLkNvbXBvc2l0ZVByaW5jaXBhbCxcbiAgKTogaWFtLkdyYW50W107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgb3B0aW9ucyBmb3IgYXN5bmNocm9ub3VzIGludm9jYXRpb24uXG4gICAqL1xuICBjb25maWd1cmVBc3luY0ludm9rZShvcHRpb25zOiBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgdXJsIHRvIHRoaXMgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgYWRkRnVuY3Rpb25Vcmwob3B0aW9ucz86IEZ1bmN0aW9uVXJsT3B0aW9ucyk6IEZ1bmN0aW9uVXJsO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGFtYmRhRnVuY3Rpb25CYXNlXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElGdW5jdGlvblxue1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRoaXMgTGFtYmRhIEZ1bmN0aW9uIGlzIHJ1bm5pbmcgYXNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gZm8gdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBTaG91bGQgaW5jbHVkZSB2ZXJzaW9uIChpZiB2ZXJzaW9uaW5nIGlzIGVuYWJsZWQgdmlhIHB1Ymxpc2ggPSB0cnVlKVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhdGVzdCBwdWJsaXNoZWQgdmVyc2lvbiBvZiB5b3VyIExhbWJkYSBGdW5jdGlvbi5cbiAgICpcbiAgICogVXNlZCBhcyBxdWFsaWZpZXIgb2YgdGhlIHZlcnNpb24gb3IgYWxpYXMgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICogQSBxdWFsaWZpZXIgaXMgdGhlIGlkZW50aWZpZXIgdGhhdCdzIGFwcGVuZGVkIHRvIGEgdmVyc2lvbiBvciBhbGlhcyBBUk4uXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvQVBJX0dldEZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sI0FQSV9HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25fUmVxdWVzdFBhcmFtZXRlcnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgb2YgdGhlIHZlcnNpb24gb3IgYWxpYXMgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICogQSBxdWFsaWZpZXIgaXMgdGhlIGlkZW50aWZpZXIgdGhhdCdzIGFwcGVuZGVkIHRvIGEgdmVyc2lvbiBvciBhbGlhcyBBUk4uXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvQVBJX0dldEZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sI0FQSV9HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25fUmVxdWVzdFBhcmFtZXRlcnNcbiAgICovXG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBmdW5jdGlvbi5cbiAgICpcbiAgICogVW5kZWZpbmVkIGlmIHRoZSBmdW5jdGlvbiB3YXMgaW1wb3J0ZWQgd2l0aG91dCBhIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBub2RlIHdoZXJlIHBlcm1pc3Npb25zIGFyZSBhdHRhY2hlZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwZXJtaXNzaW9uc05vZGU6IE5vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBMYW1iZGEgRnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFkZFBlcm1pc3Npb24oKSBjYWxsIGFkZHMgYW55IHBlcm1pc3Npb25zXG4gICAqXG4gICAqIFRydWUgZm9yIG5ldyBMYW1iZGFzLCBmYWxzZSBmb3IgdmVyc2lvbiAkTEFURVNUIGFuZCBpbXBvcnRlZCBMYW1iZGFzXG4gICAqIGZyb20gZGlmZmVyZW50IGFjY291bnRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGNhbkNyZWF0ZVBlcm1pc3Npb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOKHMpIHRvIHB1dCBpbnRvIHRoZSByZXNvdXJjZSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIElBTSBwb2xpY3kgZm9yIGdyYW50SW52b2tlKClcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSByZXNvdXJjZUFybnNGb3JHcmFudEludm9rZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgZGVjaWRlcyB0byBza2lwIGFkZGluZyBwZXJtaXNzaW9ucy5cbiAgICogVGhlIG9ubHkgdXNlIGNhc2UgaXMgZm9yIGNyb3NzLWFjY291bnQsIGltcG9ydGVkIGxhbWJkYXNcbiAgICogd2hlcmUgdGhlIHVzZXIgY29tbWl0cyB0byBtb2RpZnlpbmcgdGhlIHBlcm1pc3NzaW9uc1xuICAgKiBvbiB0aGUgaW1wb3J0ZWQgbGFtYmRhIG91dHNpZGUgdGhpcyBUZXJyYUNvbnN0cnVjdCBTcGVjLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBfc2tpcFBlcm1pc3Npb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWFwcGluZyBvZiBpbnZvY2F0aW9uIHByaW5jaXBhbHMgdG8gZ3JhbnRzLiBVc2VkIHRvIGRlLWR1cGUgYGdyYW50SW52b2tlKClgIGNhbGxzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfaW52b2NhdGlvbkdyYW50czogUmVjb3JkPHN0cmluZywgaWFtLkdyYW50PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBNYXBwaW5nIG9mIGZ1Y250aW9uIFVSTCBpbnZvY2F0aW9uIHByaW5jaXBhbHMgdG8gZ3JhbnRzLiBVc2VkIHRvIGRlLWR1cGUgYGdyYW50SW52b2tlVXJsKClgIGNhbGxzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfZnVuY3Rpb25VcmxJbnZvY2F0aW9uR3JhbnRzOiBSZWNvcmQ8c3RyaW5nLCBpYW0uR3JhbnQ+ID0ge307XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwZXJtaXNzaW9uIHRvIHRoZSBMYW1iZGEgcmVzb3VyY2UgcG9saWN5LlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIGZvciB0aGUgcGVybWlzc2lvbiBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIHBlcm1pc3Npb24gVGhlIHBlcm1pc3Npb24gdG8gZ3JhbnQgdG8gdGhpcyBMYW1iZGEgZnVuY3Rpb24uIEBzZWUgUGVybWlzc2lvbiBmb3IgZGV0YWlscy5cbiAgICovXG4gIHB1YmxpYyBhZGRQZXJtaXNzaW9uKGlkOiBzdHJpbmcsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pIHtcbiAgICBpZiAoIXRoaXMuY2FuQ3JlYXRlUGVybWlzc2lvbnMpIHtcbiAgICAgIGlmICghdGhpcy5fc2tpcFBlcm1pc3Npb25zKSB7XG4gICAgICAgIC8vIFRPRE86IHJldmlzZSB0aGlzIGFubm90YXRpb25cbiAgICAgICAgLy8gVW5jbGVhciBMYW1iZGEgRW52aXJvbm1lbnRcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZyhcbiAgICAgICAgICBbXG4gICAgICAgICAgICBgYWRkUGVybWlzc2lvbigpIGhhcyBubyBlZmZlY3Qgb24gYSBMYW1iZGEgRnVuY3Rpb24gd2l0aCByZWdpb249JHt0aGlzLmVudi5yZWdpb259LCBhY2NvdW50PSR7dGhpcy5lbnYuYWNjb3VudH0sYCxcbiAgICAgICAgICAgIGBpbiBhIFN0YWNrIHdpdGggcmVnaW9uPSR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcykucmVnaW9ufSwgYWNjb3VudD0ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmFjY291bnR9LmAsXG4gICAgICAgICAgICBgU3VwcHJlc3MgdGhpcyB3YXJuaW5nIGlmIHRoaXMgaXMgaXMgaW50ZW50aW9uYWwsIG9yIHBhc3Mgc2FtZUVudmlyb25tZW50PXRydWUgdG8gZnJvbUZ1bmN0aW9uQXR0cmlidXRlcygpYCxcbiAgICAgICAgICAgIGBpZiB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhlIHBlcm1pc3Npb25zLmAsXG4gICAgICAgICAgXS5qb2luKFwiIFwiKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcHJpbmNpcGFsID0gdGhpcy5wYXJzZVBlcm1pc3Npb25QcmluY2lwYWwocGVybWlzc2lvbi5wcmluY2lwYWwpO1xuXG4gICAgbGV0IHsgc291cmNlQXJuLCBzb3VyY2VBY2NvdW50LCBwcmluY2lwYWxPcmdJRCB9ID1cbiAgICAgIHRoaXMudmFsaWRhdGVDb25kaXRpb25Db21iaW5hdGlvbnMocGVybWlzc2lvbi5wcmluY2lwYWwpID8/IHt9O1xuXG4gICAgY29uc3QgYWN0aW9uID0gcGVybWlzc2lvbi5hY3Rpb24gPz8gXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIjtcbiAgICBjb25zdCBzY29wZSA9IHBlcm1pc3Npb24uc2NvcGUgPz8gdGhpcztcblxuICAgIC8qKlxuICAgICAqIERvIGludm9rZUZ1bmN0aW9uIGxhbWJkYXMgd2l0aCB1bnF1YWxpZmllZCBmdW5jdGlvbiByZWZlcmVuY2VzIGFwcGx5IHRvIFRGP1xuICAgICAqIEEgd2FybmluZyBzaG91bGQgYmUgYWRkZWQgdG8gZnVuY3Rpb25zIHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAgICAgKiAtIHBlcm1pc3Npb25zIHRoYXQgaW5jbHVkZSBgbGFtYmRhOkludm9rZUZ1bmN0aW9uYCBhcmUgYWRkZWQgdG8gdGhlIHVucXVhbGlmaWVkIGZ1bmN0aW9uLlxuICAgICAqIC0gZnVuY3Rpb24uY3VycmVudFZlcnNpb24gaXMgaW52b2tlZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHBlcm1pc3Npb24gaXMgY3JlYXRlZC5cbiAgICAgKlxuICAgICAqIFRoaXMgYXBwbGllcyBvbmx5IHRvIHBlcm1pc3Npb25zIG9uIExhbWJkYSBmdW5jdGlvbnMsIG5vdCB2ZXJzaW9ucyBvciBhbGlhc2VzLlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgb3ZlcnJpZGRlbiBhcyBhIG5vT3AgZm9yIFF1YWxpZmllZEZ1bmN0aW9uQmFzZS5cbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNjAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9mdW5jdGlvbi1iYXNlLnRzI0wzMzJcbiAgICAgKi9cbiAgICAvLyBbXG4gICAgLy8gICBcIkFXUyBMYW1iZGEgaGFzIGNoYW5nZWQgdGhlaXIgYXV0aG9yaXphdGlvbiBzdHJhdGVneSwgd2hpY2ggbWF5IGNhdXNlIGNsaWVudCBpbnZvY2F0aW9ucyB1c2luZyB0aGUgJ1F1YWxpZmllcicgcGFyYW1ldGVyIG9mIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gZmFpbCB3aXRoIEFjY2VzcyBEZW5pZWQgZXJyb3JzLlwiLFxuICAgIC8vICAgXCJJZiB5b3UgYXJlIHVzaW5nIGEgbGFtYmRhIFZlcnNpb24gb3IgQWxpYXMsIG1ha2Ugc3VyZSB0byBjYWxsICdncmFudEludm9rZScgb3IgJ2FkZFBlcm1pc3Npb24nIG9uIHRoZSBWZXJzaW9uIG9yIEFsaWFzLCBub3QgdGhlIHVuZGVybHlpbmcgRnVuY3Rpb25cIixcbiAgICAvLyAgICdTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTkyNzMnLFxuICAgIC8vIF0uam9pbignXFxuJykpO1xuXG4gICAgbmV3IGxhbWJkYVBlcm1pc3Npb24uTGFtYmRhUGVybWlzc2lvbihzY29wZSwgaWQsIHtcbiAgICAgIGFjdGlvbixcbiAgICAgIHByaW5jaXBhbCxcbiAgICAgIC8vIHF1YWxpZmllcjogcGVybWlzc2lvbi5xdWFsaWZpZXIsXG4gICAgICBmdW5jdGlvbk5hbWU6IHRoaXMuZnVuY3Rpb25Bcm4sXG4gICAgICBldmVudFNvdXJjZVRva2VuOiBwZXJtaXNzaW9uLmV2ZW50U291cmNlVG9rZW4sXG4gICAgICBzb3VyY2VBY2NvdW50OiBwZXJtaXNzaW9uLnNvdXJjZUFjY291bnQgPz8gc291cmNlQWNjb3VudCxcbiAgICAgIHNvdXJjZUFybjogcGVybWlzc2lvbi5zb3VyY2VBcm4gPz8gc291cmNlQXJuLFxuICAgICAgcHJpbmNpcGFsT3JnSWQ6IHBlcm1pc3Npb24ub3JnYW5pemF0aW9uSWQgPz8gcHJpbmNpcGFsT3JnSUQsXG4gICAgICBmdW5jdGlvblVybEF1dGhUeXBlOiBwZXJtaXNzaW9uLmZ1bmN0aW9uVXJsQXV0aFR5cGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJvbGUgYXNzdW1lZCBieSB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCkge1xuICAgIGlmICghdGhpcy5yb2xlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogRXZlbnRTb3VyY2VNYXBwaW5nT3B0aW9ucyxcbiAgKTogRXZlbnRTb3VyY2VNYXBwaW5nIHtcbiAgICByZXR1cm4gbmV3IEV2ZW50U291cmNlTWFwcGluZyh0aGlzLCBpZCwge1xuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2UoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG9cbiAgICAgIC5jcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcHJpbmNpcGFsOiBncmFudGVlLmdyYW50UHJpbmNpcGFsLnRvU3RyaW5nKCksXG4gICAgICAgICAgY29uZGl0aW9uczogZ3JhbnRlZS5ncmFudFByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLFxuICAgICAgICB9KSxcbiAgICAgICAgXCJ1dGY4XCIsXG4gICAgICApXG4gICAgICAuZGlnZXN0KFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBgSW52b2tlJHtoYXNofWA7XG5cbiAgICAvLyBNZW1vaXplIHRoZSByZXN1bHQgc28gc3Vic2VxdWVudCBncmFudEludm9rZSgpIGNhbGxzIGFyZSBpZGVtcG90ZW50XG4gICAgbGV0IGdyYW50ID0gdGhpcy5faW52b2NhdGlvbkdyYW50c1tpZGVudGlmaWVyXTtcbiAgICBpZiAoIWdyYW50KSB7XG4gICAgICBncmFudCA9IHRoaXMuZ3JhbnQoXG4gICAgICAgIGdyYW50ZWUsXG4gICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgIFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgIHRoaXMucmVzb3VyY2VBcm5zRm9yR3JhbnRJbnZva2UsXG4gICAgICApO1xuICAgICAgdGhpcy5faW52b2NhdGlvbkdyYW50c1tpZGVudGlmaWVyXSA9IGdyYW50O1xuICAgIH1cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGUgJExBVEVTVCB2ZXJzaW9uIG9yXG4gICAqIHVucXVhbGlmaWVkIHZlcnNpb24gb2YgdGhpcyBMYW1iZGFcbiAgICovXG4gIHB1YmxpYyBncmFudEludm9rZUxhdGVzdFZlcnNpb24oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50SW52b2tlVmVyc2lvbihncmFudGVlLCB0aGlzLnZlcnNpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhlIGdpdmVuIHZlcnNpb24gb2YgdGhpcyBMYW1iZGFcbiAgICovXG4gIHB1YmxpYyBncmFudEludm9rZVZlcnNpb24oXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICApOiBpYW0uR3JhbnQge1xuICAgIGxldCBncmFudDogaWFtLkdyYW50O1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmVyc2lvbikpIHtcbiAgICAgIC8vIElkZW50aWZpZXIgaXMgc2V0IHRvIFwiSW52b2tlTGF0ZXN0XCI/P1xuICAgICAgcmV0dXJuIHRoaXMuZ3JhbnRJbnZva2UoZ3JhbnRlZSk7XG4gICAgfVxuICAgIC8vIGVsc2UsIHVzZSB2ZXJzaW9uIHN0cmluZyBpbiBoYXNoP1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG9cbiAgICAgIC5jcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcHJpbmNpcGFsOiBncmFudGVlLmdyYW50UHJpbmNpcGFsLnRvU3RyaW5nKCksXG4gICAgICAgICAgY29uZGl0aW9uczogZ3JhbnRlZS5ncmFudFByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLFxuICAgICAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgICAgIH0pLFxuICAgICAgICBcInV0ZjhcIixcbiAgICAgIClcbiAgICAgIC5kaWdlc3QoXCJiYXNlNjRcIik7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGBJbnZva2Uke2hhc2h9YDtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJlc3VsdCBzbyBzdWJzZXF1ZW50IGdyYW50SW52b2tlKCkgY2FsbHMgYXJlIGlkZW1wb3RlbnRcbiAgICBncmFudCA9IHRoaXMuX2ludm9jYXRpb25HcmFudHNbaWRlbnRpZmllcl07XG4gICAgaWYgKCFncmFudCkge1xuICAgICAgbGV0IHJlc291Y2VBcm5zID0gW2Ake3RoaXMuZnVuY3Rpb25Bcm59OiR7dmVyc2lvbn1gXTtcbiAgICAgIGlmICh2ZXJzaW9uID09IHRoaXMudmVyc2lvbikge1xuICAgICAgICByZXNvdWNlQXJucy5wdXNoKHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgICAgfVxuICAgICAgZ3JhbnQgPSB0aGlzLmdyYW50KFxuICAgICAgICBncmFudGVlLFxuICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgICBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgICByZXNvdWNlQXJucyxcbiAgICAgICk7XG4gICAgICB0aGlzLl9pbnZvY2F0aW9uR3JhbnRzW2lkZW50aWZpZXJdID0gZ3JhbnQ7XG4gICAgfVxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhIEZ1bmN0aW9uIFVSTFxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlVXJsKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gYEludm9rZUZ1bmN0aW9uVXJsJHtncmFudGVlLmdyYW50UHJpbmNpcGFsfWA7IC8vIGNhbGxzIHRoZSAudG9TdHJpbmcoKSBvZiB0aGUgcHJpbmNpcGFsXG5cbiAgICAvLyBNZW1vaXplIHRoZSByZXN1bHQgc28gc3Vic2VxdWVudCBncmFudEludm9rZSgpIGNhbGxzIGFyZSBpZGVtcG90ZW50XG4gICAgbGV0IGdyYW50ID0gdGhpcy5fZnVuY3Rpb25VcmxJbnZvY2F0aW9uR3JhbnRzW2lkZW50aWZpZXJdO1xuICAgIGlmICghZ3JhbnQpIHtcbiAgICAgIGdyYW50ID0gdGhpcy5ncmFudChcbiAgICAgICAgZ3JhbnRlZSxcbiAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25VcmxcIixcbiAgICAgICAgW3RoaXMuZnVuY3Rpb25Bcm5dLFxuICAgICAgICB7XG4gICAgICAgICAgZnVuY3Rpb25VcmxBdXRoVHlwZTogRnVuY3Rpb25VcmxBdXRoVHlwZS5BV1NfSUFNLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuX2Z1bmN0aW9uVXJsSW52b2NhdGlvbkdyYW50c1tpZGVudGlmaWVyXSA9IGdyYW50O1xuICAgIH1cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgbXVsdGlwbGUgcHJpbmNpcGFscyB0aGUgYWJpbGl0eSB0byBpbnZva2UgdGhpcyBMYW1iZGEgdmlhIENvbXBvc2l0ZVByaW5jaXBhbFxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgIGNvbXBvc2l0ZVByaW5jaXBhbDogaWFtLkNvbXBvc2l0ZVByaW5jaXBhbCxcbiAgKTogaWFtLkdyYW50W10ge1xuICAgIHJldHVybiBjb21wb3NpdGVQcmluY2lwYWwucHJpbmNpcGFscy5tYXAoKHByaW5jaXBhbCkgPT5cbiAgICAgIHRoaXMuZ3JhbnRJbnZva2UocHJpbmNpcGFsKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZEV2ZW50U291cmNlKHNvdXJjZTogSUV2ZW50U291cmNlKSB7XG4gICAgc291cmNlLmJpbmQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlQXN5bmNJbnZva2Uob3B0aW9uczogRXZlbnRJbnZva2VDb25maWdPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm9kZS50cnlGaW5kQ2hpbGQoXCJFdmVudEludm9rZUNvbmZpZ1wiKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBFdmVudEludm9rZUNvbmZpZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIG5ldyBFdmVudEludm9rZUNvbmZpZyh0aGlzLCBcIkV2ZW50SW52b2tlQ29uZmlnXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIFVSTCBpcyBhIGRlZGljYXRlZCBIVFRQKFMpIGVuZHBvaW50IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRGdW5jdGlvblVybChvcHRpb25zPzogRnVuY3Rpb25VcmxPcHRpb25zKTogRnVuY3Rpb25Vcmwge1xuICAgIGlmICh0aGlzLm5vZGUudHJ5RmluZENoaWxkKFwiRnVuY3Rpb25VcmxcIikgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBGdW5jdGlvblVybCBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZ1bmN0aW9uVXJsKHRoaXMsIFwiRnVuY3Rpb25VcmxcIiwge1xuICAgICAgZnVuY3Rpb246IHRoaXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnN0cnVjdCB0cmVlIG5vZGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBGb3IgdXNlIGludGVybmFsbHkgZm9yIGNvbnN0cnVjdHMsIHdoZW4gdGhlIHRyZWUgaXMgc2V0IHVwIGluIG5vbi1zdGFuZGFyZCB3YXlzLiBFeDogU2luZ2xldG9uRnVuY3Rpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9mdW5jdGlvbk5vZGUoKTogTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiB0aGUgZnVuY3Rpb24gYXJuLCBjaGVjayBpZiB0aGUgYWNjb3VudCBpZCBtYXRjaGVzIHRoaXMgYWNjb3VudFxuICAgKlxuICAgKiBGdW5jdGlvbiBBUk5zIGxvb2sgbGlrZSB0aGlzOlxuICAgKlxuICAgKiAgIGFybjphd3M6bGFtYmRhOnJlZ2lvbjphY2NvdW50LWlkOmZ1bmN0aW9uOmZ1bmN0aW9uLW5hbWVcbiAgICpcbiAgICogLi53aGljaCBtZWFucyB0aGF0IGluIG9yZGVyIHRvIGV4dHJhY3QgdGhlIGBhY2NvdW50LWlkYCBjb21wb25lbnQgZnJvbSB0aGUgQVJOLCB3ZSBjYW5cbiAgICogc3BsaXQgdGhlIEFSTiB1c2luZyBcIjpcIiBhbmQgc2VsZWN0IHRoZSBjb21wb25lbnQgaW4gaW5kZXggNC5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhY2NvdW50IGlkIG9mIGZ1bmN0aW9uIG1hdGNoZXMgdGhlIGFjY291bnQgc3BlY2lmaWVkIG9uIHRoZSBzdGFjaywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfaXNTdGFja0FjY291bnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuc3RhY2suYWNjb3VudCkgfHxcbiAgICAgIFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmZ1bmN0aW9uQXJuKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdGFjay5zcGxpdEFybih0aGlzLmZ1bmN0aW9uQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSlcbiAgICAgICAgLmFjY291bnQgPT09IHRoaXMuc3RhY2suYWNjb3VudFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIGlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBhY3Rpb246IHN0cmluZyxcbiAgICByZXNvdXJjZUFybnM6IHN0cmluZ1tdLFxuICAgIHBlcm1pc3Npb25PdmVycmlkZXM/OiBQYXJ0aWFsPFBlcm1pc3Npb24+LFxuICApOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW2FjdGlvbl0sXG4gICAgICByZXNvdXJjZUFybnMsXG5cbiAgICAgIC8vIEZha2UgcmVzb3VyY2UtbGlrZSBvYmplY3Qgb24gd2hpY2ggdG8gY2FsbCBhZGRUb1Jlc291cmNlUG9saWN5KCksIHdoaWNoIGFjdHVhbGx5XG4gICAgICAvLyBjYWxscyBhZGRQZXJtaXNzaW9uKClcbiAgICAgIHJlc291cmNlOiB7XG4gICAgICAgIGFkZFRvUmVzb3VyY2VQb2xpY3k6IChfc3RhdGVtZW50KSA9PiB7XG4gICAgICAgICAgLy8gQ291bGRuJ3QgYWRkIHBlcm1pc3Npb25zIHRvIHRoZSBwcmluY2lwYWwsIHNvIGFkZCB0aGVtIGxvY2FsbHkuXG4gICAgICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uKGlkZW50aWZpZXIsIHtcbiAgICAgICAgICAgIHByaW5jaXBhbDogZ3JhbnRlZS5ncmFudFByaW5jaXBhbCEsXG4gICAgICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgICAgIC4uLnBlcm1pc3Npb25PdmVycmlkZXMsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uTm9kZSA9IHRoaXMuX2Z1bmN0aW9uTm9kZSgpLnRyeUZpbmRDaGlsZChpZGVudGlmaWVyKTtcbiAgICAgICAgICBpZiAoIXBlcm1pc3Npb25Ob2RlICYmICF0aGlzLl9za2lwUGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgXCJDYW5ub3QgbW9kaWZ5IHBlcm1pc3Npb24gdG8gbGFtYmRhIGZ1bmN0aW9uLiBGdW5jdGlvbiBpcyBlaXRoZXIgaW1wb3J0ZWQgb3IgJExBVEVTVCB2ZXJzaW9uLlxcblwiICtcbiAgICAgICAgICAgICAgICBcIklmIHRoZSBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIHRoZSBzYW1lIGFjY291bnQgdXNlIGBmcm9tRnVuY3Rpb25BdHRyaWJ1dGVzKClgIEFQSSB3aXRoIHRoZSBgc2FtZUVudmlyb25tZW50YCBmbGFnLlxcblwiICtcbiAgICAgICAgICAgICAgICBcIklmIHRoZSBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIGEgZGlmZmVyZW50IGFjY291bnQgYW5kIGFscmVhZHkgaGFzIHRoZSBjb3JyZWN0IHBlcm1pc3Npb25zIHVzZSBgZnJvbUZ1bmN0aW9uQXR0cmlidXRlcygpYCBBUEkgd2l0aCB0aGUgYHNraXBQZXJtaXNzaW9uc2AgZmxhZy5cIixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiBwZXJtaXNzaW9uTm9kZSB9O1xuICAgICAgICB9LFxuICAgICAgICBub2RlOiB0aGlzLm5vZGUsXG4gICAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgICBlbnY6IHRoaXMuZW52LFxuICAgICAgICBlbnZpcm9ubWVudE5hbWU6IHRoaXMuZW52aXJvbm1lbnROYW1lLFxuICAgICAgICBncmlkVVVJRDogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgb3V0cHV0czoge30sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyYW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSBJUHJpbmNpcGFsIHRvIHNvbWV0aGluZyB3ZSBjYW4gcGFzcyB0byBhd3NfbGFtYmRhX3Blcm1pc3Npb25cbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvYXBpL0FQSV9BZGRQZXJtaXNzaW9uLmh0bWwjbGFtYmRhLUFkZFBlcm1pc3Npb24tcmVxdWVzdC1QcmluY2lwYWxcbiAgICogaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2xhbWJkYV9wZXJtaXNzaW9uI3ByaW5jaXBhbFxuICAgKlxuICAgKiBEbyBzb21lIG5hc3R5IHRoaW5ncyBiZWNhdXNlIGBQZXJtaXNzaW9uYCBzdXBwb3J0cyBhIHN1YnNldCBvZiB3aGF0IHRoZVxuICAgKiBmdWxsIElBTSBwcmluY2lwYWwgbGFuZ3VhZ2Ugc3VwcG9ydHMsIGFuZCB3ZSBtYXkgbm90IGJlIGFibGUgdG8gcGFyc2Ugc3RyaW5nc1xuICAgKiBvdXRyaWdodCBiZWNhdXNlIHRoZXkgbWF5IGJlIHRva2Vucy5cbiAgICpcbiAgICogVHJ5IHRvIHJlY29nbml6ZSBzb21lIHNwZWNpZmljIFByaW5jaXBhbCBjbGFzc2VzIGZpcnN0LCB0aGVuIHRyeSBhIGdlbmVyaWNcbiAgICogZmFsbGJhY2suXG4gICAqL1xuICBwcml2YXRlIHBhcnNlUGVybWlzc2lvblByaW5jaXBhbChcbiAgICBwcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsIHwgeyByZWFkb25seSB3cmFwcGVkOiBpYW0uSVByaW5jaXBhbCB9LFxuICApIHtcbiAgICAvLyBUcnkgc29tZSBzcGVjaWZpYyBjb21tb24gY2xhc3NlcyBmaXJzdC5cbiAgICAvLyB1c2UgZHVjay10eXBpbmcsIG5vdCBpbnN0YW5jZSBvZlxuICAgIGlmIChcIndyYXBwZWRcIiBpbiBwcmluY2lwYWwpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgIHByaW5jaXBhbCA9IHByaW5jaXBhbFtcIndyYXBwZWRcIl07XG4gICAgfVxuXG4gICAgaWYgKFwiYWNjb3VudElkXCIgaW4gcHJpbmNpcGFsKSB7XG4gICAgICByZXR1cm4gKHByaW5jaXBhbCBhcyBpYW0uQWNjb3VudFByaW5jaXBhbCkuYWNjb3VudElkO1xuICAgIH1cblxuICAgIGlmIChcInNlcnZpY2VcIiBpbiBwcmluY2lwYWwpIHtcbiAgICAgIHJldHVybiAocHJpbmNpcGFsIGFzIGlhbS5TZXJ2aWNlUHJpbmNpcGFsKS5zZXJ2aWNlO1xuICAgIH1cblxuICAgIGlmIChcImFyblwiIGluIHByaW5jaXBhbCkge1xuICAgICAgcmV0dXJuIChwcmluY2lwYWwgYXMgaWFtLkFyblByaW5jaXBhbCkuYXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cmluZ0VxdWFscyA9IG1hdGNoU2luZ2xlQ29uZGl0aW9uKFxuICAgICAgXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgIHByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLFxuICAgICk7XG4gICAgaWYgKFxuICAgICAgc3RyaW5nRXF1YWxzICYmXG4gICAgICBzdHJpbmdFcXVhbHMubGVuZ3RoID09PSAxICYmXG4gICAgICBzdHJpbmdFcXVhbHNbMF0udmFyaWFibGUgPT09IFwiYXdzOlByaW5jaXBhbE9yZ0lEXCJcbiAgICApIHtcbiAgICAgIC8vIHdlIHdpbGwgbW92ZSB0aGUgb3JnYW5pemF0aW9uIGlkIHRvIHRoZSBgcHJpbmNpcGFsT3JnSWRgIHByb3BlcnR5IG9mIGBQZXJtaXNzaW9uc2AuXG4gICAgICByZXR1cm4gXCIqXCI7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGEgYmVzdC1lZmZvcnQgYXBwcm9hY2ggdG8gc3VwcG9ydCBzaW1wbGUgcHJpbmNpcGFscyB0aGF0IGFyZSBub3QgYW55IG9mIHRoZSBwcmVkZWZpbmVkXG4gICAgLy8gY2xhc3NlcywgYnV0IGFyZSBzaW1wbGUgZW5vdWdoIHRoYXQgdGhleSB3aWxsIGZpdCBpbnRvIHRoZSBMYW1iZGEgUGVybWlzc2lvbiBtb2RlbC5cbiAgICAvLyBNYWluIHRhcmdldCBoZXJlOiBpbXBvcnRlZCBSb2xlcywgVXNlcnMsIEdyb3Vwcy5cbiAgICAvL1xuICAgIC8vIFRoZSBwcmluY2lwYWwgY2Fubm90IGhhdmUgY29uZGl0aW9ucyBhbmQgbXVzdCBoYXZlIGEgc2luZ2xlIHsgQVdTOiBbYXJuXSB9IGVudHJ5LlxuICAgIGNvbnN0IHByaW5jaXBhbHMgPSBwcmluY2lwYWwucG9saWN5RnJhZ21lbnQucHJpbmNpcGFscy5maWx0ZXIoXG4gICAgICAocCkgPT4gcC50eXBlID09PSBcIkFXU1wiLFxuICAgICk7XG4gICAgaWYgKFxuICAgICAgcHJpbmNpcGFsLnBvbGljeUZyYWdtZW50LmNvbmRpdGlvbnMubGVuZ3RoID09PSAwICYmXG4gICAgICBwcmluY2lwYWxzLmxlbmd0aCA9PT0gMVxuICAgICkge1xuICAgICAgaWYgKHByaW5jaXBhbHNbMF0uaWRlbnRpZmllcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBwcmluY2lwYWxzWzBdLmlkZW50aWZpZXJzWzBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIHByaW5jaXBhbCB0eXBlIGZvciBMYW1iZGEgcGVybWlzc2lvbiBzdGF0ZW1lbnQ6ICR7cHJpbmNpcGFsLmNvbnN0cnVjdG9yLm5hbWV9LiBgICtcbiAgICAgICAgXCJTdXBwb3J0ZWQ6IEFjY291bnRQcmluY2lwYWwsIEFyblByaW5jaXBhbCwgU2VydmljZVByaW5jaXBhbCwgT3JnYW5pemF0aW9uUHJpbmNpcGFsXCIsXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNvbmRpdGlvbnMgZm9yIGEgY2VydGFpbiB0ZXN0IGlmIGl0IGV4aXN0cyBhbmQgaWYgdGhlcmUgYXJlIG5vIG90aGVyIGNvbmRpdGlvbnMuIE90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIHVuZGVmaW5lZC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBtYXRjaFNpbmdsZUNvbmRpdGlvbihcbiAgICAgIHRlc3Q6IHN0cmluZyxcbiAgICAgIG9iajogaWFtLkNvbmRpdGlvbnMsXG4gICAgKTogaWFtLkNvbmRpdGlvbnMgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKG9iai5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iai5maWx0ZXIoKGMpID0+IGMudGVzdCA9PT0gdGVzdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbmRpdGlvbkNvbWJpbmF0aW9ucyhwcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsKTpcbiAgICB8IHtcbiAgICAgICAgc291cmNlQXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHNvdXJjZUFjY291bnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgcHJpbmNpcGFsT3JnSUQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29uZGl0aW9ucyA9IHRoaXMudmFsaWRhdGVDb25kaXRpb25zKHByaW5jaXBhbCk7XG5cbiAgICBpZiAoIWNvbmRpdGlvbnMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogd2hhdCBpZiBtb3JlIHRoYW4gMSBpZGVudGlmaWVyPyBTaG91bGQgYW55IG9mIHRoZXNlIHRocm93P1xuICAgIGNvbnN0IHNvdXJjQXJuQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMudGVzdCA9PT0gXCJBcm5MaWtlXCIgJiYgYy52YXJpYWJsZSA9PT0gXCJhd3M6U291cmNlQXJuXCIsXG4gICAgKTtcbiAgICBjb25zdCBzb3VyY2VBcm4gPVxuICAgICAgc291cmNBcm5Db25kaXRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgPyBzb3VyY0FybkNvbmRpdGlvbnNbMF0udmFsdWVzWzBdXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIC8vIHJlcXVpcmVTdHJpbmcoXG4gICAgLy8gICByZXF1aXJlT2JqZWN0KGNvbmRpdGlvbnMuQXJuTGlrZSk/LltcImF3czpTb3VyY2VBcm5cIl0sXG4gICAgLy8gKTtcbiAgICBjb25zdCBzb3VyY2VBY2NvdW50Q29uZGl0aW9ucyA9IGNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMudGVzdCA9PT0gXCJTdHJpbmdFcXVhbHNcIiAmJiBjLnZhcmlhYmxlID09PSBcImF3czpTb3VyY2VBY2NvdW50XCIsXG4gICAgKTtcbiAgICBjb25zdCBzb3VyY2VBY2NvdW50ID1cbiAgICAgIHNvdXJjZUFjY291bnRDb25kaXRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgPyBzb3VyY2VBY2NvdW50Q29uZGl0aW9uc1swXS52YWx1ZXNbMF1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgLy8gcmVxdWlyZVN0cmluZyhcbiAgICAvLyAgIHJlcXVpcmVPYmplY3QoY29uZGl0aW9ucy5TdHJpbmdFcXVhbHMpPy5bXCJhd3M6U291cmNlQWNjb3VudFwiXSxcbiAgICAvLyApO1xuICAgIGNvbnN0IHByaW5jaXBhbE9yZ0lEQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMudGVzdCA9PT0gXCJTdHJpbmdFcXVhbHNcIiAmJiBjLnZhcmlhYmxlID09PSBcImF3czpQcmluY2lwYWxPcmdJRFwiLFxuICAgICk7XG4gICAgY29uc3QgcHJpbmNpcGFsT3JnSUQgPVxuICAgICAgcHJpbmNpcGFsT3JnSURDb25kaXRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgPyBwcmluY2lwYWxPcmdJRENvbmRpdGlvbnNbMF0udmFsdWVzWzBdXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIC8vIHJlcXVpcmVTdHJpbmcoXG4gICAgLy8gICByZXF1aXJlT2JqZWN0KGNvbmRpdGlvbnMuU3RyaW5nRXF1YWxzKT8uW1wiYXdzOlByaW5jaXBhbE9yZ0lEXCJdLFxuICAgIC8vICk7XG5cbiAgICAvLyBQcmluY2lwYWxPcmdJRCBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgY29uZGl0aW9uc1xuICAgIGlmIChwcmluY2lwYWxPcmdJRCAmJiAoc291cmNlQXJuIHx8IHNvdXJjZUFjY291bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUHJpbmNpcGFsV2l0aENvbmRpdGlvbnMgaGFkIHVuc3VwcG9ydGVkIGNvbmRpdGlvbiBjb21iaW5hdGlvbnMgZm9yIExhbWJkYSBwZXJtaXNzaW9uIHN0YXRlbWVudDogcHJpbmNpcGFsT3JnSUQgY2Fubm90IGJlIHNldCB3aXRoIG90aGVyIGNvbmRpdGlvbnMuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2VBcm4sXG4gICAgICBzb3VyY2VBY2NvdW50LFxuICAgICAgcHJpbmNpcGFsT3JnSUQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb25kaXRpb25zKFxuICAgIHByaW5jaXBhbDogaWFtLklQcmluY2lwYWwsXG4gICk6IGlhbS5Db25kaXRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5pc1ByaW5jaXBhbFdpdGhDb25kaXRpb25zKHByaW5jaXBhbCkpIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBwcmluY2lwYWwucG9saWN5RnJhZ21lbnQuY29uZGl0aW9ucztcbiAgICAgIC8vIFRoZXNlIGFyZSBhbGwgdGhlIHN1cHBvcnRlZCBjb25kaXRpb25zLiBTb21lIGNvbWJpbmF0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCxcbiAgICAgIC8vIGxpa2Ugb25seSAnYXdzOlNvdXJjZUFybicgb3IgJ2F3czpQcmluY2lwYWxPcmdJRCcgYW5kICdhd3M6U291cmNlQWNjb3VudCcuXG4gICAgICAvLyBUaGVzZSB3aWxsIGJlIHZhbGlkYXRlZCB0aHJvdWdoIGB0aGlzLnZhbGlkYXRlQ29uZGl0aW9uQ29tYmluYXRpb25zYC5cbiAgICAgIGNvbnN0IHN1cHBvcnRlZFByaW5jaXBhbENvbmRpdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiBcIkFybkxpa2VcIixcbiAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQXJuXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBY2NvdW50XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpQcmluY2lwYWxPcmdJRFwiLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgdW5zdXBwb3J0ZWRDb25kaXRpb25zID0gY29uZGl0aW9ucy5maWx0ZXIoXG4gICAgICAgIChjb25kaXRpb24pID0+XG4gICAgICAgICAgIXN1cHBvcnRlZFByaW5jaXBhbENvbmRpdGlvbnMuc29tZShcbiAgICAgICAgICAgIChzdXBwb3J0ZWRDb25kaXRpb24pID0+XG4gICAgICAgICAgICAgIHN1cHBvcnRlZENvbmRpdGlvbi50ZXN0ID09PSBjb25kaXRpb24udGVzdCAmJlxuICAgICAgICAgICAgICBzdXBwb3J0ZWRDb25kaXRpb24udmFyaWFibGUgPT09IGNvbmRpdGlvbi52YXJpYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgKTtcblxuICAgICAgaWYgKHVuc3VwcG9ydGVkQ29uZGl0aW9ucy5sZW5ndGggPT0gMCkge1xuICAgICAgICByZXR1cm4gY29uZGl0aW9ucztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUHJpbmNpcGFsV2l0aENvbmRpdGlvbnMgaGFkIHVuc3VwcG9ydGVkIGNvbmRpdGlvbnMgZm9yIExhbWJkYSBwZXJtaXNzaW9uIHN0YXRlbWVudDogJHtKU09OLnN0cmluZ2lmeSh1bnN1cHBvcnRlZENvbmRpdGlvbnMpfS4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIG9wZXJhdG9yL2NvbmRpdGlvbiBwYWlyczogJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRQcmluY2lwYWxDb25kaXRpb25zKX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzUHJpbmNpcGFsV2l0aENvbmRpdGlvbnMocHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwcmluY2lwYWwucG9saWN5RnJhZ21lbnQuY29uZGl0aW9ucy5sZW5ndGggPiAwO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBRdWFsaWZpZWRGdW5jdGlvbkJhc2UgZXh0ZW5kcyBMYW1iZGFGdW5jdGlvbkJhc2Uge1xuICAvKiogVGhlIHVuZGVybHlpbmcgYElGdW5jdGlvbmAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGxhbWJkYTogSUZ1bmN0aW9uOyAvLyBUT0RPOiBWZXJpZnkgcHVibGlzaCBpcyBzZXQgdG8gdHJ1ZT9cblxuICBwdWJsaWMgcmVhZG9ubHkgcGVybWlzc2lvbnNOb2RlID0gdGhpcy5ub2RlO1xuXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VBcm5zRm9yR3JhbnRJbnZva2UoKSB7XG4gICAgcmV0dXJuIFt0aGlzLmZ1bmN0aW9uQXJuXTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVBc3luY0ludm9rZShvcHRpb25zOiBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub2RlLnRyeUZpbmRDaGlsZChcIkV2ZW50SW52b2tlQ29uZmlnXCIpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFuIEV2ZW50SW52b2tlQ29uZmlnIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCBmb3IgdGhlIHF1YWxpZmllZCBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIG5ldyBFdmVudEludm9rZUNvbmZpZyh0aGlzLCBcIkV2ZW50SW52b2tlQ29uZmlnXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiB0aGlzLmxhbWJkYSxcbiAgICAgIHF1YWxpZmllcjogdGhpcy52ZXJzaW9uLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGFic3RyYWN0IGNsYXNzIHdoaWNoIHJlcHJlc2VudHMgYW4gQVdTIExhbWJkYSBldmVudCBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIENhbGxlZCBieSBgbGFtYmRhLmFkZEV2ZW50U291cmNlYCB0byBhbGxvdyB0aGUgZXZlbnQgc291cmNlIHRvIGJpbmQgdG8gdGhpc1xuICAgKiBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHRhcmdldCBUaGF0IGxhbWJkYSBmdW5jdGlvbiB0byBiaW5kIHRvLlxuICAgKi9cbiAgYmluZCh0YXJnZXQ6IElGdW5jdGlvbik6IHZvaWQ7XG59XG4iXX0=
|
|
419
|
+
QualifiedFunctionBase[_b] = { fqn: "terraconstructs.aws.compute.QualifiedFunctionBase", version: "0.0.24" };
|
|
420
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9mdW5jdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOEpBQThKO0FBQzlKLHlIQUF5SDtBQUN6SCxpQ0FBaUM7QUFDakMsc0RBQXVEO0FBQ3ZELGlDQUF3RDtBQUV4RCxnQ0FBbUM7QUFDbkMsb0RBQW1FO0FBQ25FLDRDQUF3QztBQUV4QywrREFHK0I7QUFDL0IsaUVBR2dDO0FBRWhDLGlEQUl3QjtBQUN4Qiw4QkFBOEI7QUF5SzlCLE1BQXNCLGtCQUNwQixTQUFRLGdDQUFnQjtJQUQxQjs7UUEyRUU7OztXQUdHO1FBQ08sc0JBQWlCLEdBQThCLEVBQUUsQ0FBQztRQUU1RDs7O1dBR0c7UUFDTyxpQ0FBNEIsR0FBOEIsRUFBRSxDQUFDO0tBc2Z4RTtJQXBmQzs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEVBQVUsRUFBRSxVQUFzQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzQiwrQkFBK0I7Z0JBQy9CLDZCQUE2QjtnQkFDN0IsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM3QjtvQkFDRSxrRUFBa0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUc7b0JBQ2pILDBCQUEwQixvQkFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLGFBQWEsb0JBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHO29CQUNuSCwyR0FBMkc7b0JBQzNHLDJDQUEyQztpQkFDNUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ1osQ0FBQztZQUNKLENBQUM7WUFDRCxP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SUFDNUIsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWlDO1FBQzNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5RCxNQUFNLElBQUksS0FBSyxDQUNiLGtGQUFrRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUNuRyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksdUNBQWlCLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQy9DLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDdkIsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0Qkgsc0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vY2RrdGYtcGx1cy9jZGt0Zi1wbHVzL2Jsb2IvNTg2YWFiYWQzYWIyZmIyYTJlOTNlMDVlZDMzZjk0NDc0ZWJlOTM5Ny9wYWNrYWdlcy8lNDBjZGt0Zi1wbHVzL2F3cy9saWIvYXdzLWxhbWJkYS1mdW5jdGlvbi9pbmRleC50c1xcXG4vLyB1cGRhdGUgdG8gYWxpZ24gd2l0aCBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9mdW5jdGlvbi1iYXNlLnRzXG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgbGFtYmRhUGVybWlzc2lvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBJUmVzb2x2YWJsZSwgQW5ub3RhdGlvbnMsIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIElBd3NDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBBcmNoaXRlY3R1cmUgfSBmcm9tIFwiLi9hcmNoaXRlY3R1cmVcIjtcbmltcG9ydCB7XG4gIEV2ZW50SW52b2tlQ29uZmlnLFxuICBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMsXG59IGZyb20gXCIuL2V2ZW50LWludm9rZS1jb25maWdcIjtcbmltcG9ydCB7XG4gIEV2ZW50U291cmNlTWFwcGluZyxcbiAgRXZlbnRTb3VyY2VNYXBwaW5nT3B0aW9ucyxcbn0gZnJvbSBcIi4vZXZlbnQtc291cmNlLW1hcHBpbmdcIjtcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tIFwiLi9mdW5jdGlvbi1wZXJtaXNzaW9uXCI7XG5pbXBvcnQge1xuICBGdW5jdGlvblVybE9wdGlvbnMsXG4gIEZ1bmN0aW9uVXJsLFxuICBGdW5jdGlvblVybEF1dGhUeXBlLFxufSBmcm9tIFwiLi9mdW5jdGlvbi11cmxcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8vIFRPRE86IHJlLWFkZCBlYzIuSUNvbm5lY3RhYmxlP1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBMYW1iZGEgZnVuY3Rpb24gZGVmaW5lZCBvdXRzaWRlIG9mIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogRm9ybWF0OiBhcm46PHBhcnRpdGlvbj46bGFtYmRhOjxyZWdpb24+OjxhY2NvdW50LWlkPjpmdW5jdGlvbjo8ZnVuY3Rpb24tbmFtZT5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gZXhlY3V0aW9uIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIElmIHRoZSByb2xlIGlzIG5vdCBzcGVjaWZpZWQsIGFueSByb2xlLXJlbGF0ZWQgb3BlcmF0aW9ucyB3aWxsIG5vLW9wLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIG9mIHRoaXMgTGFtYmRhLCBpZiBpbiBhIFZQQy5cbiAgICpcbiAgICogVGhpcyBuZWVkcyB0byBiZSBnaXZlbiBpbiBvcmRlciB0byBzdXBwb3J0IGFsbG93aW5nIGNvbm5lY3Rpb25zXG4gICAqIHRvIHRoaXMgTGFtYmRhLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cD86IHN0cmluZyB8IElSZXNvbHZhYmxlOyAvLyBUT0RPOiBSZS1hZGQgc3VwcG9ydCBmb3IgRUMyIHNlY3VyaXR5IGdyb3Vwc1xuXG4gIC8qKlxuICAgKiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgaW5mb3JtcyB0aGUgQ0RLIHRoYXQgdGhlIGltcG9ydGVkIGZ1bmN0aW9uIGlzIGluIHRoZSBzYW1lIGVudmlyb25tZW50IGFzIHRoZSBzdGFjay5cbiAgICogVGhpcyBhZmZlY3RzIGNlcnRhaW4gYmVoYXZpb3VycyBzdWNoIGFzLCB3aGV0aGVyIHRoaXMgZnVuY3Rpb24ncyBwZXJtaXNzaW9uIGNhbiBiZSBtb2RpZmllZC5cbiAgICogV2hlbiBub3QgY29uZmlndXJlZCwgdGhlIENESyBhdHRlbXB0cyB0byBhdXRvLWRldGVybWluZSB0aGlzLiBGb3IgZW52aXJvbm1lbnQgYWdub3N0aWMgc3RhY2tzLCBpLmUuLCBzdGFja3NcbiAgICogd2hlcmUgdGhlIGFjY291bnQgaXMgbm90IHNwZWNpZmllZCB3aXRoIHRoZSBgZW52YCBwcm9wZXJ0eSwgdGhpcyBpcyBkZXRlcm1pbmVkIHRvIGJlIGZhbHNlLlxuICAgKlxuICAgKiBTZXQgdGhpcyB0byBwcm9wZXJ0eSAqT05MWSBJRiogdGhlIGltcG9ydGVkIGZ1bmN0aW9uIGlzIGluIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHN0YWNrXG4gICAqIGl0J3MgaW1wb3J0ZWQgaW4uXG4gICAqIEBkZWZhdWx0IC0gZGVwZW5kczogdHJ1ZSwgaWYgdGhlIFN0YWNrIGlzIGNvbmZpZ3VyZWQgd2l0aCBhbiBleHBsaWNpdCBgZW52YCAoYWNjb3VudCBhbmQgcmVnaW9uKSBhbmQgdGhlIGFjY291bnQgaXMgdGhlIHNhbWUgYXMgdGhpcyBmdW5jdGlvbi5cbiAgICogRm9yIGVudmlyb25tZW50LWFnbm9zdGljIHN0YWNrcyB0aGlzIHdpbGwgZGVmYXVsdCB0byBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2FtZUVudmlyb25tZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGluZm9ybXMgdGhlIFRlcnJhQ29uc3RydWN0IHRoYXQgdGhlIGltcG9ydGVkIGZ1bmN0aW9uIEFMUkVBRFkgSEFTIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnNcbiAgICogZm9yIHdoYXQgeW91IGFyZSB0cnlpbmcgdG8gZG8uIFdoZW4gbm90IGNvbmZpZ3VyZWQsIEUuVCwgYXR0ZW1wdHMgdG8gYXV0by1kZXRlcm1pbmUgd2hldGhlciBvciBub3RcbiAgICogYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcmUgbmVjZXNzYXJ5IG9uIHRoZSBmdW5jdGlvbiB3aGVuIGdyYW50IEFQSXMgYXJlIHVzZWQuIElmIFRlcnJhQ29uc3RydWN0IHRyaWVkIHRvIGFkZFxuICAgKiBwZXJtaXNzaW9ucyBvbiBhbiBpbXBvcnRlZCBsYW1iZGEsIGl0IHdpbGwgZmFpbC5cbiAgICpcbiAgICogU2V0IHRoaXMgcHJvcGVydHkgKk9OTFkgSUYqIHlvdSBhcmUgY29tbWl0dGluZyB0byBtYW5hZ2UgdGhlIGltcG9ydGVkIGZ1bmN0aW9uJ3MgcGVybWlzc2lvbnMgb3V0c2lkZSBvZlxuICAgKiB0aGlzIFRlcnJhQ29uc3RydWN0IHN0YWNrLiBZb3UgYXJlIGFja25vd2xlZGdpbmcgdGhhdCB5b3VyIFRlcnJhQ29uc3RydWN0IGNvZGUgYWxvbmUgd2lsbCBoYXZlIGluc3VmZmljaWVudCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdGhlXG4gICAqIGltcG9ydGVkIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFBlcm1pc3Npb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGFyY2hpdGVjdHVyZSBvZiB0aGlzIExhbWJkYSBGdW5jdGlvbiAodGhpcyBpcyBhbiBvcHRpb25hbCBhdHRyaWJ1dGUgYW5kIGRlZmF1bHRzIHRvIFg4Nl82NCkuXG4gICAqIEBkZWZhdWx0IC0gQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogQXJjaGl0ZWN0dXJlO1xufVxuXG4vKipcbiAqIEEgTGFtYmRhIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvbiBleHRlbmRzIElBd3NDb25zdHJ1Y3QsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0IG5vZGUgd2hlcmUgcGVybWlzc2lvbnMgYXJlIGF0dGFjaGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnNOb2RlOiBOb2RlO1xuXG4gIC8qKlxuICAgKiBUaGUgc3lzdGVtIGFyY2hpdGVjdHVyZXMgY29tcGF0aWJsZSB3aXRoIHRoaXMgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmU7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZXZlbnQgc291cmNlIHRoYXQgbWFwcyB0byB0aGlzIEFXUyBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIG9wdGlvbnMgbWFwcGluZyBvcHRpb25zXG4gICAqL1xuICBhZGRFdmVudFNvdXJjZU1hcHBpbmcoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBFdmVudFNvdXJjZU1hcHBpbmdPcHRpb25zLFxuICApOiBFdmVudFNvdXJjZU1hcHBpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZXZlbnQgc291cmNlIHRvIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhZGRzIGFuIFNRUyBRdWV1ZSBhcyBhbiBldmVudCBzb3VyY2U6XG4gICAqIGBgYFxuICAgKiBpbXBvcnQgeyBjb21wdXRlIH0gZnJvbSAndGVycmFjb25zdHJ1Y3RzJztcbiAgICogbXlGdW5jdGlvbi5hZGRFdmVudFNvdXJjZShuZXcgY29tcHV0ZS5TcXNFdmVudFNvdXJjZShteVF1ZXVlKSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYWRkRXZlbnRTb3VyY2Uoc291cmNlOiBJRXZlbnRTb3VyY2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcGVybWlzc2lvbiB0byB0aGUgTGFtYmRhIHJlc291cmNlIHBvbGljeS5cbiAgICogQHBhcmFtIGlkIFRoZSBpZCBmb3IgdGhlIHBlcm1pc3Npb24gY29uc3RydWN0XG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uIFRoZSBwZXJtaXNzaW9uIHRvIGdyYW50IHRvIHRoaXMgTGFtYmRhIGZ1bmN0aW9uLiBAc2VlIFBlcm1pc3Npb24gZm9yIGRldGFpbHMuXG4gICAqL1xuICBhZGRQZXJtaXNzaW9uKGlkOiBzdHJpbmcsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIGFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhXG4gICAqL1xuICBncmFudEludm9rZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhlICRMQVRFU1QgdmVyc2lvbiBvclxuICAgKiB1bnF1YWxpZmllZCB2ZXJzaW9uIG9mIHRoaXMgTGFtYmRhXG4gICAqL1xuICBncmFudEludm9rZUxhdGVzdFZlcnNpb24oaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBnaXZlbiAob3IgbGF0ZXN0KSB2ZXJzaW9uIG9mIHRoaXMgTGFtYmRhXG4gICAqL1xuICBncmFudEludm9rZVZlcnNpb24oaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB2ZXJzaW9uOiBzdHJpbmcpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhpcyBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBncmFudEludm9rZVVybChpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IG11bHRpcGxlIHByaW5jaXBhbHMgdGhlIGFiaWxpdHkgdG8gaW52b2tlIHRoaXMgTGFtYmRhIHZpYSBDb21wb3NpdGVQcmluY2lwYWxcbiAgICovXG4gIGdyYW50SW52b2tlQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgIGNvbXBvc2l0ZVByaW5jaXBhbDogaWFtLkNvbXBvc2l0ZVByaW5jaXBhbCxcbiAgKTogaWFtLkdyYW50W107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgb3B0aW9ucyBmb3IgYXN5bmNocm9ub3VzIGludm9jYXRpb24uXG4gICAqL1xuICBjb25maWd1cmVBc3luY0ludm9rZShvcHRpb25zOiBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgdXJsIHRvIHRoaXMgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgYWRkRnVuY3Rpb25Vcmwob3B0aW9ucz86IEZ1bmN0aW9uVXJsT3B0aW9ucyk6IEZ1bmN0aW9uVXJsO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGFtYmRhRnVuY3Rpb25CYXNlXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElGdW5jdGlvblxue1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRoaXMgTGFtYmRhIEZ1bmN0aW9uIGlzIHJ1bm5pbmcgYXNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gZm8gdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBTaG91bGQgaW5jbHVkZSB2ZXJzaW9uIChpZiB2ZXJzaW9uaW5nIGlzIGVuYWJsZWQgdmlhIHB1Ymxpc2ggPSB0cnVlKVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhdGVzdCBwdWJsaXNoZWQgdmVyc2lvbiBvZiB5b3VyIExhbWJkYSBGdW5jdGlvbi5cbiAgICpcbiAgICogVXNlZCBhcyBxdWFsaWZpZXIgb2YgdGhlIHZlcnNpb24gb3IgYWxpYXMgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICogQSBxdWFsaWZpZXIgaXMgdGhlIGlkZW50aWZpZXIgdGhhdCdzIGFwcGVuZGVkIHRvIGEgdmVyc2lvbiBvciBhbGlhcyBBUk4uXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvQVBJX0dldEZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sI0FQSV9HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25fUmVxdWVzdFBhcmFtZXRlcnNcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWFsaWZpZXIgb2YgdGhlIHZlcnNpb24gb3IgYWxpYXMgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICogQSBxdWFsaWZpZXIgaXMgdGhlIGlkZW50aWZpZXIgdGhhdCdzIGFwcGVuZGVkIHRvIGEgdmVyc2lvbiBvciBhbGlhcyBBUk4uXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvQVBJX0dldEZ1bmN0aW9uQ29uZmlndXJhdGlvbi5odG1sI0FQSV9HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb25fUmVxdWVzdFBhcmFtZXRlcnNcbiAgICovXG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBmdW5jdGlvbi5cbiAgICpcbiAgICogVW5kZWZpbmVkIGlmIHRoZSBmdW5jdGlvbiB3YXMgaW1wb3J0ZWQgd2l0aG91dCBhIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBub2RlIHdoZXJlIHBlcm1pc3Npb25zIGFyZSBhdHRhY2hlZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwZXJtaXNzaW9uc05vZGU6IE5vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBMYW1iZGEgRnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFkZFBlcm1pc3Npb24oKSBjYWxsIGFkZHMgYW55IHBlcm1pc3Npb25zXG4gICAqXG4gICAqIFRydWUgZm9yIG5ldyBMYW1iZGFzLCBmYWxzZSBmb3IgdmVyc2lvbiAkTEFURVNUIGFuZCBpbXBvcnRlZCBMYW1iZGFzXG4gICAqIGZyb20gZGlmZmVyZW50IGFjY291bnRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGNhbkNyZWF0ZVBlcm1pc3Npb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOKHMpIHRvIHB1dCBpbnRvIHRoZSByZXNvdXJjZSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIElBTSBwb2xpY3kgZm9yIGdyYW50SW52b2tlKClcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSByZXNvdXJjZUFybnNGb3JHcmFudEludm9rZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVzZXIgZGVjaWRlcyB0byBza2lwIGFkZGluZyBwZXJtaXNzaW9ucy5cbiAgICogVGhlIG9ubHkgdXNlIGNhc2UgaXMgZm9yIGNyb3NzLWFjY291bnQsIGltcG9ydGVkIGxhbWJkYXNcbiAgICogd2hlcmUgdGhlIHVzZXIgY29tbWl0cyB0byBtb2RpZnlpbmcgdGhlIHBlcm1pc3NzaW9uc1xuICAgKiBvbiB0aGUgaW1wb3J0ZWQgbGFtYmRhIG91dHNpZGUgdGhpcyBUZXJyYUNvbnN0cnVjdCBTcGVjLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBfc2tpcFBlcm1pc3Npb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWFwcGluZyBvZiBpbnZvY2F0aW9uIHByaW5jaXBhbHMgdG8gZ3JhbnRzLiBVc2VkIHRvIGRlLWR1cGUgYGdyYW50SW52b2tlKClgIGNhbGxzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfaW52b2NhdGlvbkdyYW50czogUmVjb3JkPHN0cmluZywgaWFtLkdyYW50PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBNYXBwaW5nIG9mIGZ1Y250aW9uIFVSTCBpbnZvY2F0aW9uIHByaW5jaXBhbHMgdG8gZ3JhbnRzLiBVc2VkIHRvIGRlLWR1cGUgYGdyYW50SW52b2tlVXJsKClgIGNhbGxzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfZnVuY3Rpb25VcmxJbnZvY2F0aW9uR3JhbnRzOiBSZWNvcmQ8c3RyaW5nLCBpYW0uR3JhbnQ+ID0ge307XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwZXJtaXNzaW9uIHRvIHRoZSBMYW1iZGEgcmVzb3VyY2UgcG9saWN5LlxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIGZvciB0aGUgcGVybWlzc2lvbiBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIHBlcm1pc3Npb24gVGhlIHBlcm1pc3Npb24gdG8gZ3JhbnQgdG8gdGhpcyBMYW1iZGEgZnVuY3Rpb24uIEBzZWUgUGVybWlzc2lvbiBmb3IgZGV0YWlscy5cbiAgICovXG4gIHB1YmxpYyBhZGRQZXJtaXNzaW9uKGlkOiBzdHJpbmcsIHBlcm1pc3Npb246IFBlcm1pc3Npb24pIHtcbiAgICBpZiAoIXRoaXMuY2FuQ3JlYXRlUGVybWlzc2lvbnMpIHtcbiAgICAgIGlmICghdGhpcy5fc2tpcFBlcm1pc3Npb25zKSB7XG4gICAgICAgIC8vIFRPRE86IHJldmlzZSB0aGlzIGFubm90YXRpb25cbiAgICAgICAgLy8gVW5jbGVhciBMYW1iZGEgRW52aXJvbm1lbnRcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZyhcbiAgICAgICAgICBbXG4gICAgICAgICAgICBgYWRkUGVybWlzc2lvbigpIGhhcyBubyBlZmZlY3Qgb24gYSBMYW1iZGEgRnVuY3Rpb24gd2l0aCByZWdpb249JHt0aGlzLmVudi5yZWdpb259LCBhY2NvdW50PSR7dGhpcy5lbnYuYWNjb3VudH0sYCxcbiAgICAgICAgICAgIGBpbiBhIFN0YWNrIHdpdGggcmVnaW9uPSR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcykucmVnaW9ufSwgYWNjb3VudD0ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmFjY291bnR9LmAsXG4gICAgICAgICAgICBgU3VwcHJlc3MgdGhpcyB3YXJuaW5nIGlmIHRoaXMgaXMgaXMgaW50ZW50aW9uYWwsIG9yIHBhc3Mgc2FtZUVudmlyb25tZW50PXRydWUgdG8gZnJvbUZ1bmN0aW9uQXR0cmlidXRlcygpYCxcbiAgICAgICAgICAgIGBpZiB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhlIHBlcm1pc3Npb25zLmAsXG4gICAgICAgICAgXS5qb2luKFwiIFwiKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmluY2lwYWwgPSB0aGlzLnBhcnNlUGVybWlzc2lvblByaW5jaXBhbChwZXJtaXNzaW9uLnByaW5jaXBhbCk7XG5cbiAgICBjb25zdCB7IHNvdXJjZUFybiwgc291cmNlQWNjb3VudCwgcHJpbmNpcGFsT3JnSUQgfSA9XG4gICAgICB0aGlzLnZhbGlkYXRlQ29uZGl0aW9uQ29tYmluYXRpb25zKHBlcm1pc3Npb24ucHJpbmNpcGFsKSA/PyB7fTtcblxuICAgIGNvbnN0IGFjdGlvbiA9IHBlcm1pc3Npb24uYWN0aW9uID8/IFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCI7XG4gICAgY29uc3Qgc2NvcGUgPSBwZXJtaXNzaW9uLnNjb3BlID8/IHRoaXM7XG5cbiAgICAvKipcbiAgICAgKiBEbyBpbnZva2VGdW5jdGlvbiBsYW1iZGFzIHdpdGggdW5xdWFsaWZpZWQgZnVuY3Rpb24gcmVmZXJlbmNlcyBhcHBseSB0byBURj9cbiAgICAgKiBBIHdhcm5pbmcgc2hvdWxkIGJlIGFkZGVkIHRvIGZ1bmN0aW9ucyB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gICAgICogLSBwZXJtaXNzaW9ucyB0aGF0IGluY2x1ZGUgYGxhbWJkYTpJbnZva2VGdW5jdGlvbmAgYXJlIGFkZGVkIHRvIHRoZSB1bnF1YWxpZmllZCBmdW5jdGlvbi5cbiAgICAgKiAtIGZ1bmN0aW9uLmN1cnJlbnRWZXJzaW9uIGlzIGludm9rZWQgYmVmb3JlIG9yIGFmdGVyIHRoZSBwZXJtaXNzaW9uIGlzIGNyZWF0ZWQuXG4gICAgICpcbiAgICAgKiBUaGlzIGFwcGxpZXMgb25seSB0byBwZXJtaXNzaW9ucyBvbiBMYW1iZGEgZnVuY3Rpb25zLCBub3QgdmVyc2lvbnMgb3IgYWxpYXNlcy5cbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIG92ZXJyaWRkZW4gYXMgYSBub09wIGZvciBRdWFsaWZpZWRGdW5jdGlvbkJhc2UuXG4gICAgICogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTYwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWxhbWJkYS9saWIvZnVuY3Rpb24tYmFzZS50cyNMMzMyXG4gICAgICovXG4gICAgLy8gW1xuICAgIC8vICAgXCJBV1MgTGFtYmRhIGhhcyBjaGFuZ2VkIHRoZWlyIGF1dGhvcml6YXRpb24gc3RyYXRlZ3ksIHdoaWNoIG1heSBjYXVzZSBjbGllbnQgaW52b2NhdGlvbnMgdXNpbmcgdGhlICdRdWFsaWZpZXInIHBhcmFtZXRlciBvZiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGZhaWwgd2l0aCBBY2Nlc3MgRGVuaWVkIGVycm9ycy5cIixcbiAgICAvLyAgIFwiSWYgeW91IGFyZSB1c2luZyBhIGxhbWJkYSBWZXJzaW9uIG9yIEFsaWFzLCBtYWtlIHN1cmUgdG8gY2FsbCAnZ3JhbnRJbnZva2UnIG9yICdhZGRQZXJtaXNzaW9uJyBvbiB0aGUgVmVyc2lvbiBvciBBbGlhcywgbm90IHRoZSB1bmRlcmx5aW5nIEZ1bmN0aW9uXCIsXG4gICAgLy8gICAnU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE5MjczJyxcbiAgICAvLyBdLmpvaW4oJ1xcbicpKTtcblxuICAgIG5ldyBsYW1iZGFQZXJtaXNzaW9uLkxhbWJkYVBlcm1pc3Npb24oc2NvcGUsIGlkLCB7XG4gICAgICBhY3Rpb24sXG4gICAgICBwcmluY2lwYWwsXG4gICAgICAvLyBxdWFsaWZpZXI6IHBlcm1pc3Npb24ucXVhbGlmaWVyLFxuICAgICAgZnVuY3Rpb25OYW1lOiB0aGlzLmZ1bmN0aW9uQXJuLFxuICAgICAgZXZlbnRTb3VyY2VUb2tlbjogcGVybWlzc2lvbi5ldmVudFNvdXJjZVRva2VuLFxuICAgICAgc291cmNlQWNjb3VudDogcGVybWlzc2lvbi5zb3VyY2VBY2NvdW50ID8/IHNvdXJjZUFjY291bnQsXG4gICAgICBzb3VyY2VBcm46IHBlcm1pc3Npb24uc291cmNlQXJuID8/IHNvdXJjZUFybixcbiAgICAgIHByaW5jaXBhbE9yZ0lkOiBwZXJtaXNzaW9uLm9yZ2FuaXphdGlvbklkID8/IHByaW5jaXBhbE9yZ0lELFxuICAgICAgZnVuY3Rpb25VcmxBdXRoVHlwZTogcGVybWlzc2lvbi5mdW5jdGlvblVybEF1dGhUeXBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIElBTSByb2xlIGFzc3VtZWQgYnkgdGhlIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpIHtcbiAgICBpZiAoIXRoaXMucm9sZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIGFkZEV2ZW50U291cmNlTWFwcGluZyhcbiAgICBpZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEV2ZW50U291cmNlTWFwcGluZ09wdGlvbnMsXG4gICk6IEV2ZW50U291cmNlTWFwcGluZyB7XG4gICAgcmV0dXJuIG5ldyBFdmVudFNvdXJjZU1hcHBpbmcodGhpcywgaWQsIHtcbiAgICAgIHRhcmdldDogdGhpcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGlzIExhbWJkYVxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCBoYXNoID0gY3J5cHRvXG4gICAgICAuY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgICAgLnVwZGF0ZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIHByaW5jaXBhbDogZ3JhbnRlZS5ncmFudFByaW5jaXBhbC50b1N0cmluZygpLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IGdyYW50ZWUuZ3JhbnRQcmluY2lwYWwucG9saWN5RnJhZ21lbnQuY29uZGl0aW9ucyxcbiAgICAgICAgfSksXG4gICAgICAgIFwidXRmOFwiLFxuICAgICAgKVxuICAgICAgLmRpZ2VzdChcImJhc2U2NFwiKTtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gYEludm9rZSR7aGFzaH1gO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgcmVzdWx0IHNvIHN1YnNlcXVlbnQgZ3JhbnRJbnZva2UoKSBjYWxscyBhcmUgaWRlbXBvdGVudFxuICAgIGxldCBncmFudCA9IHRoaXMuX2ludm9jYXRpb25HcmFudHNbaWRlbnRpZmllcl07XG4gICAgaWYgKCFncmFudCkge1xuICAgICAgZ3JhbnQgPSB0aGlzLmdyYW50KFxuICAgICAgICBncmFudGVlLFxuICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgICBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgICB0aGlzLnJlc291cmNlQXJuc0ZvckdyYW50SW52b2tlLFxuICAgICAgKTtcbiAgICAgIHRoaXMuX2ludm9jYXRpb25HcmFudHNbaWRlbnRpZmllcl0gPSBncmFudDtcbiAgICB9XG4gICAgcmV0dXJuIGdyYW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhlICRMQVRFU1QgdmVyc2lvbiBvclxuICAgKiB1bnF1YWxpZmllZCB2ZXJzaW9uIG9mIHRoaXMgTGFtYmRhXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2VMYXRlc3RWZXJzaW9uKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudEludm9rZVZlcnNpb24oZ3JhbnRlZSwgdGhpcy52ZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSBnaXZlbiB2ZXJzaW9uIG9mIHRoaXMgTGFtYmRhXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2VWZXJzaW9uKFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIHZlcnNpb246IHN0cmluZyxcbiAgKTogaWFtLkdyYW50IHtcbiAgICBsZXQgZ3JhbnQ6IGlhbS5HcmFudDtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHZlcnNpb24pKSB7XG4gICAgICAvLyBJZGVudGlmaWVyIGlzIHNldCB0byBcIkludm9rZUxhdGVzdFwiPz9cbiAgICAgIHJldHVybiB0aGlzLmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICAgIH1cbiAgICAvLyBlbHNlLCB1c2UgdmVyc2lvbiBzdHJpbmcgaW4gaGFzaD9cbiAgICBjb25zdCBoYXNoID0gY3J5cHRvXG4gICAgICAuY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgICAgLnVwZGF0ZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIHByaW5jaXBhbDogZ3JhbnRlZS5ncmFudFByaW5jaXBhbC50b1N0cmluZygpLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IGdyYW50ZWUuZ3JhbnRQcmluY2lwYWwucG9saWN5RnJhZ21lbnQuY29uZGl0aW9ucyxcbiAgICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICB9KSxcbiAgICAgICAgXCJ1dGY4XCIsXG4gICAgICApXG4gICAgICAuZGlnZXN0KFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBgSW52b2tlJHtoYXNofWA7XG5cbiAgICAvLyBNZW1vaXplIHRoZSByZXN1bHQgc28gc3Vic2VxdWVudCBncmFudEludm9rZSgpIGNhbGxzIGFyZSBpZGVtcG90ZW50XG4gICAgZ3JhbnQgPSB0aGlzLl9pbnZvY2F0aW9uR3JhbnRzW2lkZW50aWZpZXJdO1xuICAgIGlmICghZ3JhbnQpIHtcbiAgICAgIGNvbnN0IHJlc291Y2VBcm5zID0gW2Ake3RoaXMuZnVuY3Rpb25Bcm59OiR7dmVyc2lvbn1gXTtcbiAgICAgIGlmICh2ZXJzaW9uID09IHRoaXMudmVyc2lvbikge1xuICAgICAgICByZXNvdWNlQXJucy5wdXNoKHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgICAgfVxuICAgICAgZ3JhbnQgPSB0aGlzLmdyYW50KFxuICAgICAgICBncmFudGVlLFxuICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgICBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgICByZXNvdWNlQXJucyxcbiAgICAgICk7XG4gICAgICB0aGlzLl9pbnZvY2F0aW9uR3JhbnRzW2lkZW50aWZpZXJdID0gZ3JhbnQ7XG4gICAgfVxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhIEZ1bmN0aW9uIFVSTFxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlVXJsKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gYEludm9rZUZ1bmN0aW9uVXJsJHtncmFudGVlLmdyYW50UHJpbmNpcGFsfWA7IC8vIGNhbGxzIHRoZSAudG9TdHJpbmcoKSBvZiB0aGUgcHJpbmNpcGFsXG5cbiAgICAvLyBNZW1vaXplIHRoZSByZXN1bHQgc28gc3Vic2VxdWVudCBncmFudEludm9rZSgpIGNhbGxzIGFyZSBpZGVtcG90ZW50XG4gICAgbGV0IGdyYW50ID0gdGhpcy5fZnVuY3Rpb25VcmxJbnZvY2F0aW9uR3JhbnRzW2lkZW50aWZpZXJdO1xuICAgIGlmICghZ3JhbnQpIHtcbiAgICAgIGdyYW50ID0gdGhpcy5ncmFudChcbiAgICAgICAgZ3JhbnRlZSxcbiAgICAgICAgaWRlbnRpZmllcixcbiAgICAgICAgXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25VcmxcIixcbiAgICAgICAgW3RoaXMuZnVuY3Rpb25Bcm5dLFxuICAgICAgICB7XG4gICAgICAgICAgZnVuY3Rpb25VcmxBdXRoVHlwZTogRnVuY3Rpb25VcmxBdXRoVHlwZS5BV1NfSUFNLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuX2Z1bmN0aW9uVXJsSW52b2NhdGlvbkdyYW50c1tpZGVudGlmaWVyXSA9IGdyYW50O1xuICAgIH1cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgbXVsdGlwbGUgcHJpbmNpcGFscyB0aGUgYWJpbGl0eSB0byBpbnZva2UgdGhpcyBMYW1iZGEgdmlhIENvbXBvc2l0ZVByaW5jaXBhbFxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgIGNvbXBvc2l0ZVByaW5jaXBhbDogaWFtLkNvbXBvc2l0ZVByaW5jaXBhbCxcbiAgKTogaWFtLkdyYW50W10ge1xuICAgIHJldHVybiBjb21wb3NpdGVQcmluY2lwYWwucHJpbmNpcGFscy5tYXAoKHByaW5jaXBhbCkgPT5cbiAgICAgIHRoaXMuZ3JhbnRJbnZva2UocHJpbmNpcGFsKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZEV2ZW50U291cmNlKHNvdXJjZTogSUV2ZW50U291cmNlKSB7XG4gICAgc291cmNlLmJpbmQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlQXN5bmNJbnZva2Uob3B0aW9uczogRXZlbnRJbnZva2VDb25maWdPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm9kZS50cnlGaW5kQ2hpbGQoXCJFdmVudEludm9rZUNvbmZpZ1wiKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBFdmVudEludm9rZUNvbmZpZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIG5ldyBFdmVudEludm9rZUNvbmZpZyh0aGlzLCBcIkV2ZW50SW52b2tlQ29uZmlnXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIFVSTCBpcyBhIGRlZGljYXRlZCBIVFRQKFMpIGVuZHBvaW50IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRGdW5jdGlvblVybChvcHRpb25zPzogRnVuY3Rpb25VcmxPcHRpb25zKTogRnVuY3Rpb25Vcmwge1xuICAgIGlmICh0aGlzLm5vZGUudHJ5RmluZENoaWxkKFwiRnVuY3Rpb25VcmxcIikgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBGdW5jdGlvblVybCBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZ1bmN0aW9uVXJsKHRoaXMsIFwiRnVuY3Rpb25VcmxcIiwge1xuICAgICAgZnVuY3Rpb246IHRoaXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnN0cnVjdCB0cmVlIG5vZGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBGb3IgdXNlIGludGVybmFsbHkgZm9yIGNvbnN0cnVjdHMsIHdoZW4gdGhlIHRyZWUgaXMgc2V0IHVwIGluIG5vbi1zdGFuZGFyZCB3YXlzLiBFeDogU2luZ2xldG9uRnVuY3Rpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9mdW5jdGlvbk5vZGUoKTogTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiB0aGUgZnVuY3Rpb24gYXJuLCBjaGVjayBpZiB0aGUgYWNjb3VudCBpZCBtYXRjaGVzIHRoaXMgYWNjb3VudFxuICAgKlxuICAgKiBGdW5jdGlvbiBBUk5zIGxvb2sgbGlrZSB0aGlzOlxuICAgKlxuICAgKiAgIGFybjphd3M6bGFtYmRhOnJlZ2lvbjphY2NvdW50LWlkOmZ1bmN0aW9uOmZ1bmN0aW9uLW5hbWVcbiAgICpcbiAgICogLi53aGljaCBtZWFucyB0aGF0IGluIG9yZGVyIHRvIGV4dHJhY3QgdGhlIGBhY2NvdW50LWlkYCBjb21wb25lbnQgZnJvbSB0aGUgQVJOLCB3ZSBjYW5cbiAgICogc3BsaXQgdGhlIEFSTiB1c2luZyBcIjpcIiBhbmQgc2VsZWN0IHRoZSBjb21wb25lbnQgaW4gaW5kZXggNC5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhY2NvdW50IGlkIG9mIGZ1bmN0aW9uIG1hdGNoZXMgdGhlIGFjY291bnQgc3BlY2lmaWVkIG9uIHRoZSBzdGFjaywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfaXNTdGFja0FjY291bnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuc3RhY2suYWNjb3VudCkgfHxcbiAgICAgIFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmZ1bmN0aW9uQXJuKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdGFjay5zcGxpdEFybih0aGlzLmZ1bmN0aW9uQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSlcbiAgICAgICAgLmFjY291bnQgPT09IHRoaXMuc3RhY2suYWNjb3VudFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIGlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBhY3Rpb246IHN0cmluZyxcbiAgICByZXNvdXJjZUFybnM6IHN0cmluZ1tdLFxuICAgIHBlcm1pc3Npb25PdmVycmlkZXM/OiBQYXJ0aWFsPFBlcm1pc3Npb24+LFxuICApOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW2FjdGlvbl0sXG4gICAgICByZXNvdXJjZUFybnMsXG5cbiAgICAgIC8vIEZha2UgcmVzb3VyY2UtbGlrZSBvYmplY3Qgb24gd2hpY2ggdG8gY2FsbCBhZGRUb1Jlc291cmNlUG9saWN5KCksIHdoaWNoIGFjdHVhbGx5XG4gICAgICAvLyBjYWxscyBhZGRQZXJtaXNzaW9uKClcbiAgICAgIHJlc291cmNlOiB7XG4gICAgICAgIGFkZFRvUmVzb3VyY2VQb2xpY3k6IChfc3RhdGVtZW50KSA9PiB7XG4gICAgICAgICAgLy8gQ291bGRuJ3QgYWRkIHBlcm1pc3Npb25zIHRvIHRoZSBwcmluY2lwYWwsIHNvIGFkZCB0aGVtIGxvY2FsbHkuXG4gICAgICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uKGlkZW50aWZpZXIsIHtcbiAgICAgICAgICAgIHByaW5jaXBhbDogZ3JhbnRlZS5ncmFudFByaW5jaXBhbCEsXG4gICAgICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgICAgIC4uLnBlcm1pc3Npb25PdmVycmlkZXMsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uTm9kZSA9IHRoaXMuX2Z1bmN0aW9uTm9kZSgpLnRyeUZpbmRDaGlsZChpZGVudGlmaWVyKTtcbiAgICAgICAgICBpZiAoIXBlcm1pc3Npb25Ob2RlICYmICF0aGlzLl9za2lwUGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgXCJDYW5ub3QgbW9kaWZ5IHBlcm1pc3Npb24gdG8gbGFtYmRhIGZ1bmN0aW9uLiBGdW5jdGlvbiBpcyBlaXRoZXIgaW1wb3J0ZWQgb3IgJExBVEVTVCB2ZXJzaW9uLlxcblwiICtcbiAgICAgICAgICAgICAgICBcIklmIHRoZSBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIHRoZSBzYW1lIGFjY291bnQgdXNlIGBmcm9tRnVuY3Rpb25BdHRyaWJ1dGVzKClgIEFQSSB3aXRoIHRoZSBgc2FtZUVudmlyb25tZW50YCBmbGFnLlxcblwiICtcbiAgICAgICAgICAgICAgICBcIklmIHRoZSBmdW5jdGlvbiBpcyBpbXBvcnRlZCBmcm9tIGEgZGlmZmVyZW50IGFjY291bnQgYW5kIGFscmVhZHkgaGFzIHRoZSBjb3JyZWN0IHBlcm1pc3Npb25zIHVzZSBgZnJvbUZ1bmN0aW9uQXR0cmlidXRlcygpYCBBUEkgd2l0aCB0aGUgYHNraXBQZXJtaXNzaW9uc2AgZmxhZy5cIixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiBwZXJtaXNzaW9uTm9kZSB9O1xuICAgICAgICB9LFxuICAgICAgICBub2RlOiB0aGlzLm5vZGUsXG4gICAgICAgIHN0YWNrOiB0aGlzLnN0YWNrLFxuICAgICAgICBlbnY6IHRoaXMuZW52LFxuICAgICAgICBlbnZpcm9ubWVudE5hbWU6IHRoaXMuZW52aXJvbm1lbnROYW1lLFxuICAgICAgICBncmlkVVVJRDogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgb3V0cHV0czoge30sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyYW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSBJUHJpbmNpcGFsIHRvIHNvbWV0aGluZyB3ZSBjYW4gcGFzcyB0byBhd3NfbGFtYmRhX3Blcm1pc3Npb25cbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvYXBpL0FQSV9BZGRQZXJtaXNzaW9uLmh0bWwjbGFtYmRhLUFkZFBlcm1pc3Npb24tcmVxdWVzdC1QcmluY2lwYWxcbiAgICogaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2xhbWJkYV9wZXJtaXNzaW9uI3ByaW5jaXBhbFxuICAgKlxuICAgKiBEbyBzb21lIG5hc3R5IHRoaW5ncyBiZWNhdXNlIGBQZXJtaXNzaW9uYCBzdXBwb3J0cyBhIHN1YnNldCBvZiB3aGF0IHRoZVxuICAgKiBmdWxsIElBTSBwcmluY2lwYWwgbGFuZ3VhZ2Ugc3VwcG9ydHMsIGFuZCB3ZSBtYXkgbm90IGJlIGFibGUgdG8gcGFyc2Ugc3RyaW5nc1xuICAgKiBvdXRyaWdodCBiZWNhdXNlIHRoZXkgbWF5IGJlIHRva2Vucy5cbiAgICpcbiAgICogVHJ5IHRvIHJlY29nbml6ZSBzb21lIHNwZWNpZmljIFByaW5jaXBhbCBjbGFzc2VzIGZpcnN0LCB0aGVuIHRyeSBhIGdlbmVyaWNcbiAgICogZmFsbGJhY2suXG4gICAqL1xuICBwcml2YXRlIHBhcnNlUGVybWlzc2lvblByaW5jaXBhbChcbiAgICBwcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsIHwgeyByZWFkb25seSB3cmFwcGVkOiBpYW0uSVByaW5jaXBhbCB9LFxuICApIHtcbiAgICAvLyBUcnkgc29tZSBzcGVjaWZpYyBjb21tb24gY2xhc3NlcyBmaXJzdC5cbiAgICAvLyB1c2UgZHVjay10eXBpbmcsIG5vdCBpbnN0YW5jZSBvZlxuICAgIGlmIChcIndyYXBwZWRcIiBpbiBwcmluY2lwYWwpIHtcbiAgICAgIHByaW5jaXBhbCA9IHByaW5jaXBhbC53cmFwcGVkO1xuICAgIH1cblxuICAgIGlmIChcImFjY291bnRJZFwiIGluIHByaW5jaXBhbCkge1xuICAgICAgcmV0dXJuIChwcmluY2lwYWwgYXMgaWFtLkFjY291bnRQcmluY2lwYWwpLmFjY291bnRJZDtcbiAgICB9XG5cbiAgICBpZiAoXCJzZXJ2aWNlXCIgaW4gcHJpbmNpcGFsKSB7XG4gICAgICByZXR1cm4gKHByaW5jaXBhbCBhcyBpYW0uU2VydmljZVByaW5jaXBhbCkuc2VydmljZTtcbiAgICB9XG5cbiAgICBpZiAoXCJhcm5cIiBpbiBwcmluY2lwYWwpIHtcbiAgICAgIHJldHVybiAocHJpbmNpcGFsIGFzIGlhbS5Bcm5QcmluY2lwYWwpLmFybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmdFcXVhbHMgPSBtYXRjaFNpbmdsZUNvbmRpdGlvbihcbiAgICAgIFwiU3RyaW5nRXF1YWxzXCIsXG4gICAgICBwcmluY2lwYWwucG9saWN5RnJhZ21lbnQuY29uZGl0aW9ucyxcbiAgICApO1xuICAgIGlmIChcbiAgICAgIHN0cmluZ0VxdWFscyAmJlxuICAgICAgc3RyaW5nRXF1YWxzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgc3RyaW5nRXF1YWxzWzBdLnZhcmlhYmxlID09PSBcImF3czpQcmluY2lwYWxPcmdJRFwiXG4gICAgKSB7XG4gICAgICAvLyB3ZSB3aWxsIG1vdmUgdGhlIG9yZ2FuaXphdGlvbiBpZCB0byB0aGUgYHByaW5jaXBhbE9yZ0lkYCBwcm9wZXJ0eSBvZiBgUGVybWlzc2lvbnNgLlxuICAgICAgcmV0dXJuIFwiKlwiO1xuICAgIH1cblxuICAgIC8vIFRyeSBhIGJlc3QtZWZmb3J0IGFwcHJvYWNoIHRvIHN1cHBvcnQgc2ltcGxlIHByaW5jaXBhbHMgdGhhdCBhcmUgbm90IGFueSBvZiB0aGUgcHJlZGVmaW5lZFxuICAgIC8vIGNsYXNzZXMsIGJ1dCBhcmUgc2ltcGxlIGVub3VnaCB0aGF0IHRoZXkgd2lsbCBmaXQgaW50byB0aGUgTGFtYmRhIFBlcm1pc3Npb24gbW9kZWwuXG4gICAgLy8gTWFpbiB0YXJnZXQgaGVyZTogaW1wb3J0ZWQgUm9sZXMsIFVzZXJzLCBHcm91cHMuXG4gICAgLy9cbiAgICAvLyBUaGUgcHJpbmNpcGFsIGNhbm5vdCBoYXZlIGNvbmRpdGlvbnMgYW5kIG11c3QgaGF2ZSBhIHNpbmdsZSB7IEFXUzogW2Fybl0gfSBlbnRyeS5cbiAgICBjb25zdCBwcmluY2lwYWxzID0gcHJpbmNpcGFsLnBvbGljeUZyYWdtZW50LnByaW5jaXBhbHMuZmlsdGVyKFxuICAgICAgKHApID0+IHAudHlwZSA9PT0gXCJBV1NcIixcbiAgICApO1xuICAgIGlmIChcbiAgICAgIHByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgcHJpbmNpcGFscy5sZW5ndGggPT09IDFcbiAgICApIHtcbiAgICAgIGlmIChwcmluY2lwYWxzWzBdLmlkZW50aWZpZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gcHJpbmNpcGFsc1swXS5pZGVudGlmaWVyc1swXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBwcmluY2lwYWwgdHlwZSBmb3IgTGFtYmRhIHBlcm1pc3Npb24gc3RhdGVtZW50OiAke3ByaW5jaXBhbC5jb25zdHJ1Y3Rvci5uYW1lfS4gYCArXG4gICAgICAgIFwiU3VwcG9ydGVkOiBBY2NvdW50UHJpbmNpcGFsLCBBcm5QcmluY2lwYWwsIFNlcnZpY2VQcmluY2lwYWwsIE9yZ2FuaXphdGlvblByaW5jaXBhbFwiLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjb25kaXRpb25zIGZvciBhIGNlcnRhaW4gdGVzdCBpZiBpdCBleGlzdHMgYW5kIGlmIHRoZXJlIGFyZSBubyBvdGhlciBjb25kaXRpb25zLiBPdGhlcndpc2UsXG4gICAgICogcmV0dXJucyB1bmRlZmluZWQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hTaW5nbGVDb25kaXRpb24oXG4gICAgICB0ZXN0OiBzdHJpbmcsXG4gICAgICBvYmo6IGlhbS5Db25kaXRpb25zLFxuICAgICk6IGlhbS5Db25kaXRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmIChvYmoubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmouZmlsdGVyKChjKSA9PiBjLnRlc3QgPT09IHRlc3QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb25kaXRpb25Db21iaW5hdGlvbnMocHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbCk6XG4gICAgfCB7XG4gICAgICAgIHNvdXJjZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBzb3VyY2VBY2NvdW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHByaW5jaXBhbE9yZ0lEOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB0aGlzLnZhbGlkYXRlQ29uZGl0aW9ucyhwcmluY2lwYWwpO1xuXG4gICAgaWYgKCFjb25kaXRpb25zKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHdoYXQgaWYgbW9yZSB0aGFuIDEgaWRlbnRpZmllcj8gU2hvdWxkIGFueSBvZiB0aGVzZSB0aHJvdz9cbiAgICBjb25zdCBzb3VyY0FybkNvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnRlc3QgPT09IFwiQXJuTGlrZVwiICYmIGMudmFyaWFibGUgPT09IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICk7XG4gICAgY29uc3Qgc291cmNlQXJuID1cbiAgICAgIHNvdXJjQXJuQ29uZGl0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gc291cmNBcm5Db25kaXRpb25zWzBdLnZhbHVlc1swXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAvLyByZXF1aXJlU3RyaW5nKFxuICAgIC8vICAgcmVxdWlyZU9iamVjdChjb25kaXRpb25zLkFybkxpa2UpPy5bXCJhd3M6U291cmNlQXJuXCJdLFxuICAgIC8vICk7XG4gICAgY29uc3Qgc291cmNlQWNjb3VudENvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnRlc3QgPT09IFwiU3RyaW5nRXF1YWxzXCIgJiYgYy52YXJpYWJsZSA9PT0gXCJhd3M6U291cmNlQWNjb3VudFwiLFxuICAgICk7XG4gICAgY29uc3Qgc291cmNlQWNjb3VudCA9XG4gICAgICBzb3VyY2VBY2NvdW50Q29uZGl0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gc291cmNlQWNjb3VudENvbmRpdGlvbnNbMF0udmFsdWVzWzBdXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIC8vIHJlcXVpcmVTdHJpbmcoXG4gICAgLy8gICByZXF1aXJlT2JqZWN0KGNvbmRpdGlvbnMuU3RyaW5nRXF1YWxzKT8uW1wiYXdzOlNvdXJjZUFjY291bnRcIl0sXG4gICAgLy8gKTtcbiAgICBjb25zdCBwcmluY2lwYWxPcmdJRENvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnRlc3QgPT09IFwiU3RyaW5nRXF1YWxzXCIgJiYgYy52YXJpYWJsZSA9PT0gXCJhd3M6UHJpbmNpcGFsT3JnSURcIixcbiAgICApO1xuICAgIGNvbnN0IHByaW5jaXBhbE9yZ0lEID1cbiAgICAgIHByaW5jaXBhbE9yZ0lEQ29uZGl0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gcHJpbmNpcGFsT3JnSURDb25kaXRpb25zWzBdLnZhbHVlc1swXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAvLyByZXF1aXJlU3RyaW5nKFxuICAgIC8vICAgcmVxdWlyZU9iamVjdChjb25kaXRpb25zLlN0cmluZ0VxdWFscyk/LltcImF3czpQcmluY2lwYWxPcmdJRFwiXSxcbiAgICAvLyApO1xuXG4gICAgLy8gUHJpbmNpcGFsT3JnSUQgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIGNvbmRpdGlvbnNcbiAgICBpZiAocHJpbmNpcGFsT3JnSUQgJiYgKHNvdXJjZUFybiB8fCBzb3VyY2VBY2NvdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlByaW5jaXBhbFdpdGhDb25kaXRpb25zIGhhZCB1bnN1cHBvcnRlZCBjb25kaXRpb24gY29tYmluYXRpb25zIGZvciBMYW1iZGEgcGVybWlzc2lvbiBzdGF0ZW1lbnQ6IHByaW5jaXBhbE9yZ0lEIGNhbm5vdCBiZSBzZXQgd2l0aCBvdGhlciBjb25kaXRpb25zLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlQXJuLFxuICAgICAgc291cmNlQWNjb3VudCxcbiAgICAgIHByaW5jaXBhbE9yZ0lELFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ29uZGl0aW9ucyhcbiAgICBwcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsLFxuICApOiBpYW0uQ29uZGl0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuaXNQcmluY2lwYWxXaXRoQ29uZGl0aW9ucyhwcmluY2lwYWwpKSB7XG4gICAgICBjb25zdCBjb25kaXRpb25zID0gcHJpbmNpcGFsLnBvbGljeUZyYWdtZW50LmNvbmRpdGlvbnM7XG4gICAgICAvLyBUaGVzZSBhcmUgYWxsIHRoZSBzdXBwb3J0ZWQgY29uZGl0aW9ucy4gU29tZSBjb21iaW5hdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQsXG4gICAgICAvLyBsaWtlIG9ubHkgJ2F3czpTb3VyY2VBcm4nIG9yICdhd3M6UHJpbmNpcGFsT3JnSUQnIGFuZCAnYXdzOlNvdXJjZUFjY291bnQnLlxuICAgICAgLy8gVGhlc2Ugd2lsbCBiZSB2YWxpZGF0ZWQgdGhyb3VnaCBgdGhpcy52YWxpZGF0ZUNvbmRpdGlvbkNvbWJpbmF0aW9uc2AuXG4gICAgICBjb25zdCBzdXBwb3J0ZWRQcmluY2lwYWxDb25kaXRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdDogXCJBcm5MaWtlXCIsXG4gICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQWNjb3VudFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6UHJpbmNpcGFsT3JnSURcIixcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMuZmlsdGVyKFxuICAgICAgICAoY29uZGl0aW9uKSA9PlxuICAgICAgICAgICFzdXBwb3J0ZWRQcmluY2lwYWxDb25kaXRpb25zLnNvbWUoXG4gICAgICAgICAgICAoc3VwcG9ydGVkQ29uZGl0aW9uKSA9PlxuICAgICAgICAgICAgICBzdXBwb3J0ZWRDb25kaXRpb24udGVzdCA9PT0gY29uZGl0aW9uLnRlc3QgJiZcbiAgICAgICAgICAgICAgc3VwcG9ydGVkQ29uZGl0aW9uLnZhcmlhYmxlID09PSBjb25kaXRpb24udmFyaWFibGUsXG4gICAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIGlmICh1bnN1cHBvcnRlZENvbmRpdGlvbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFByaW5jaXBhbFdpdGhDb25kaXRpb25zIGhhZCB1bnN1cHBvcnRlZCBjb25kaXRpb25zIGZvciBMYW1iZGEgcGVybWlzc2lvbiBzdGF0ZW1lbnQ6ICR7SlNPTi5zdHJpbmdpZnkodW5zdXBwb3J0ZWRDb25kaXRpb25zKX0uIGAgK1xuICAgICAgICAgICAgYFN1cHBvcnRlZCBvcGVyYXRvci9jb25kaXRpb24gcGFpcnM6ICR7SlNPTi5zdHJpbmdpZnkoc3VwcG9ydGVkUHJpbmNpcGFsQ29uZGl0aW9ucyl9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1ByaW5jaXBhbFdpdGhDb25kaXRpb25zKHByaW5jaXBhbDogaWFtLklQcmluY2lwYWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcHJpbmNpcGFsLnBvbGljeUZyYWdtZW50LmNvbmRpdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUXVhbGlmaWVkRnVuY3Rpb25CYXNlIGV4dGVuZHMgTGFtYmRhRnVuY3Rpb25CYXNlIHtcbiAgLyoqIFRoZSB1bmRlcmx5aW5nIGBJRnVuY3Rpb25gICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBsYW1iZGE6IElGdW5jdGlvbjsgLy8gVE9ETzogVmVyaWZ5IHB1Ymxpc2ggaXMgc2V0IHRvIHRydWU/XG5cbiAgcHVibGljIHJlYWRvbmx5IHBlcm1pc3Npb25zTm9kZSA9IHRoaXMubm9kZTtcblxuICBwdWJsaWMgZ2V0IHJlc291cmNlQXJuc0ZvckdyYW50SW52b2tlKCkge1xuICAgIHJldHVybiBbdGhpcy5mdW5jdGlvbkFybl07XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlQXN5bmNJbnZva2Uob3B0aW9uczogRXZlbnRJbnZva2VDb25maWdPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm9kZS50cnlGaW5kQ2hpbGQoXCJFdmVudEludm9rZUNvbmZpZ1wiKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBFdmVudEludm9rZUNvbmZpZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBxdWFsaWZpZWQgZnVuY3Rpb24gYXQgJHt0aGlzLm5vZGUucGF0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXcgRXZlbnRJbnZva2VDb25maWcodGhpcywgXCJFdmVudEludm9rZUNvbmZpZ1wiLCB7XG4gICAgICBmdW5jdGlvbjogdGhpcy5sYW1iZGEsXG4gICAgICBxdWFsaWZpZXI6IHRoaXMudmVyc2lvbixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBjbGFzcyB3aGljaCByZXByZXNlbnRzIGFuIEFXUyBMYW1iZGEgZXZlbnQgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElFdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgYGxhbWJkYS5hZGRFdmVudFNvdXJjZWAgdG8gYWxsb3cgdGhlIGV2ZW50IHNvdXJjZSB0byBiaW5kIHRvIHRoaXNcbiAgICogZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXQgVGhhdCBsYW1iZGEgZnVuY3Rpb24gdG8gYmluZCB0by5cbiAgICovXG4gIGJpbmQodGFyZ2V0OiBJRnVuY3Rpb24pOiB2b2lkO1xufVxuIl19
|
|
@@ -28,7 +28,7 @@ class EventBridgeDestination {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
const existingDefaultEventBus = _scope.node.tryFindChild("DefaultEventBus");
|
|
31
|
-
|
|
31
|
+
const eventBus = existingDefaultEventBus ||
|
|
32
32
|
notify.EventBus.fromEventBusArn(_scope, "DefaultEventBus", __1.AwsStack.ofAwsConstruct(fn).formatArn({
|
|
33
33
|
service: "events",
|
|
34
34
|
resource: "event-bus",
|
|
@@ -42,5 +42,5 @@ class EventBridgeDestination {
|
|
|
42
42
|
}
|
|
43
43
|
exports.EventBridgeDestination = EventBridgeDestination;
|
|
44
44
|
_a = JSII_RTTI_SYMBOL_1;
|
|
45
|
-
EventBridgeDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.EventBridgeDestination", version: "0.0.
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
EventBridgeDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.EventBridgeDestination", version: "0.0.24" };
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLWRlc3RpbmF0aW9ucy9ldmVudC1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw2QkFBaUM7QUFDakMsdUNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLHNCQUFzQjtJQUNqQzs7T0FFRztJQUNILFlBQTZCLFFBQTJCO1FBQTNCLGFBQVEsR0FBUixRQUFRLENBQW1CO0lBQUcsQ0FBQztJQUU1RDs7T0FFRztJQUNJLElBQUksQ0FDVCxNQUFpQixFQUNqQixFQUFxQixFQUNyQixRQUFxQztRQUVyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRW5DLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVzthQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FDWCx1QkFBMkM7WUFDNUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQzdCLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsWUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsV0FBVztnQkFDckIsWUFBWSxFQUFFLFNBQVM7YUFDeEIsQ0FBQyxDQUNILENBQUM7UUFFSixRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFOUIsT0FBTztZQUNMLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztTQUNsQyxDQUFDO0lBQ0osQ0FBQzs7QUF4Q0gsd0RBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uL1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCAqIGFzIG5vdGlmeSBmcm9tIFwiLi4vLi4vbm90aWZ5XCI7XG5cbi8qKlxuICogVXNlIGFuIEV2ZW50IEJyaWRnZSBldmVudCBidXMgYXMgYSBMYW1iZGEgZGVzdGluYXRpb24uXG4gKlxuICogSWYgbm8gZXZlbnQgYnVzIGlzIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgZXZlbnQgYnVzIGlzIHVzZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEJyaWRnZURlc3RpbmF0aW9uIGltcGxlbWVudHMgY29tcHV0ZS5JRGVzdGluYXRpb24ge1xuICAvKipcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIGRlZmF1bHQgZXZlbnQgYnVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGV2ZW50QnVzPzogbm90aWZ5LklFdmVudEJ1cykge31cblxuICAvKipcbiAgICogUmV0dXJucyBhIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBiaW5kKFxuICAgIF9zY29wZTogQ29uc3RydWN0LFxuICAgIGZuOiBjb21wdXRlLklGdW5jdGlvbixcbiAgICBfb3B0aW9ucz86IGNvbXB1dGUuRGVzdGluYXRpb25PcHRpb25zLFxuICApOiBjb21wdXRlLkRlc3RpbmF0aW9uQ29uZmlnIHtcbiAgICBpZiAodGhpcy5ldmVudEJ1cykge1xuICAgICAgdGhpcy5ldmVudEJ1cy5ncmFudFB1dEV2ZW50c1RvKGZuKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZXZlbnRCdXMuZXZlbnRCdXNBcm4sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nRGVmYXVsdEV2ZW50QnVzID0gX3Njb3BlLm5vZGUudHJ5RmluZENoaWxkKFwiRGVmYXVsdEV2ZW50QnVzXCIpO1xuICAgIGNvbnN0IGV2ZW50QnVzID1cbiAgICAgIChleGlzdGluZ0RlZmF1bHRFdmVudEJ1cyBhcyBub3RpZnkuRXZlbnRCdXMpIHx8XG4gICAgICBub3RpZnkuRXZlbnRCdXMuZnJvbUV2ZW50QnVzQXJuKFxuICAgICAgICBfc2NvcGUsXG4gICAgICAgIFwiRGVmYXVsdEV2ZW50QnVzXCIsXG4gICAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KGZuKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6IFwiZXZlbnRzXCIsXG4gICAgICAgICAgcmVzb3VyY2U6IFwiZXZlbnQtYnVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgZXZlbnRCdXMuZ3JhbnRQdXRFdmVudHNUbyhmbik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVzdGluYXRpb246IGV2ZW50QnVzLmV2ZW50QnVzQXJuLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -51,5 +51,5 @@ class FunctionDestination {
|
|
|
51
51
|
}
|
|
52
52
|
exports.FunctionDestination = FunctionDestination;
|
|
53
53
|
_a = JSII_RTTI_SYMBOL_1;
|
|
54
|
-
FunctionDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.FunctionDestination", version: "0.0.
|
|
54
|
+
FunctionDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.FunctionDestination", version: "0.0.24" };
|
|
55
55
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZnVuY3Rpb24tZGVzdGluYXRpb25zL2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsaURBQXdEO0FBQ3hELHVDQUF1QztBQXlCdkM7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUM5QixZQUNtQixFQUFxQixFQUNyQixVQUFzQyxFQUFFO1FBRHhDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlDO0lBQ3hELENBQUM7SUFFSjs7T0FFRztJQUNJLElBQUksQ0FDVCxLQUFnQixFQUNoQixFQUFxQixFQUNyQixPQUFvQztRQUVwQyxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0IsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXhCLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVzthQUNqQyxDQUFDO1FBQ0osQ0FBQztRQUVELHlFQUF5RTtRQUN6RSxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2Isa0VBQWtFO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLG1EQUFtRDtRQUNuRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDbkMsWUFBWSxFQUFFO2dCQUNaLFVBQVUsRUFBRSxDQUFDLHVDQUF1QyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25FLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsVUFBVSxDQUFDO2dCQUN4QyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbkI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUN6QyxLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQ3pDLDBCQUEwQixDQUMzQixFQUFFLDJCQUEyQjtpQkFDL0IsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQ0FBc0IsRUFBRSxDQUFDLENBQUMsNkJBQTZCO1FBQy9FLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7QUFsREgsa0RBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBFdmVudEJyaWRnZURlc3RpbmF0aW9uIH0gZnJvbSBcIi4vZXZlbnQtYnJpZGdlXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uL25vdGlmeVwiO1xuXG4vLyBUT0RPOiBOYW1lIHRoaXMgYmFjayB0byBMYW1iZGFEZXN0aW5hdGlvbiBpbnN0ZWFkP1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgTGFtYmRhIGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25EZXN0aW5hdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZGVzdGluYXRpb24gZnVuY3Rpb24gcmVjZWl2ZXMgb25seSB0aGUgYHJlc3BvbnNlUGF5bG9hZGAgb2ZcbiAgICogdGhlIHNvdXJjZSBmdW5jdGlvbi5cbiAgICpcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgIGFuZCB1c2VkIGFzIGBvblN1Y2Nlc3NgIGRlc3RpbmF0aW9uLCB0aGUgZGVzdGluYXRpb25cbiAgICogZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdGhlIHBheWxvYWQgcmV0dXJuZWQgYnkgdGhlIHNvdXJjZSBmdW5jdGlvbi5cbiAgICpcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgIGFuZCB1c2VkIGFzIGBvbkZhaWx1cmVgIGRlc3RpbmF0aW9uLCB0aGUgZGVzdGluYXRpb25cbiAgICogZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2UgZnVuY3Rpb24uXG4gICAqXG4gICAqIFNlZSB0aGUgUkVBRE1FIG9mIHRoaXMgbW9kdWxlIHRvIHNlZSBhIGZ1bGwgZXhwbGFuYXRpb24gb2YgdGhpcyBvcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIFRoZSBkZXN0aW5hdGlvbiBmdW5jdGlvbiByZWNlaXZlcyB0aGUgZnVsbCBpbnZvY2F0aW9uIHJlY29yZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlT25seT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNlIGEgTGFtYmRhIGZ1bmN0aW9uIGFzIGEgTGFtYmRhIGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBGdW5jdGlvbkRlc3RpbmF0aW9uIGltcGxlbWVudHMgY29tcHV0ZS5JRGVzdGluYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZuOiBjb21wdXRlLklGdW5jdGlvbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEZ1bmN0aW9uRGVzdGluYXRpb25PcHRpb25zID0ge30sXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyBhIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgZm46IGNvbXB1dGUuSUZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiBjb21wdXRlLkRlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogY29tcHV0ZS5EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgLy8gTm9ybWFsIExhbWJkYSBkZXN0aW5hdGlvbiAoZnVsbCBpbnZvY2F0aW9uIHJlY29yZClcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5yZXNwb25zZU9ubHkpIHtcbiAgICAgIC8vIGRlZHVwbGljYXRlZCBhdXRvbWF0aWNhbGx5XG4gICAgICB0aGlzLmZuLmdyYW50SW52b2tlKGZuKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZm4uZnVuY3Rpb25Bcm4sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSBhZGQgcnVsZSB0byBleHRyYWN0IHRoZSByZXNwb25zZSBwYXlsb2FkIGFuZCB1c2UgRXZlbnRCcmlkZ2VcbiAgICAvLyBhcyBkZXN0aW5hdGlvblxuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgLy8gYG9wdGlvbnNgIGFkZGVkIHRvIGJpbmQoKSBhcyBvcHRpb25uYWwgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPcHRpb25zIG11c3QgYmUgZGVmaW5lZCB3aGVuIHVzaW5nIGByZXNwb25zZU9ubHlgLlwiKTtcbiAgICB9XG5cbiAgICAvLyBNYXRjaCBpbnZvY2F0aW9uIHJlc3VsdCBvZiB0aGUgc291cmNlIGZ1bmN0aW9uIChgZm5gKSBhbmQgdXNlIGl0XG4gICAgLy8gdG8gdHJpZ2dlciB0aGUgZGVzdGluYXRpb24gZnVuY3Rpb24gKGB0aGlzLmZuYCkuXG4gICAgbmV3IG5vdGlmeS5SdWxlKHNjb3BlLCBvcHRpb25zLnR5cGUsIHtcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBkZXRhaWxUeXBlOiBbYExhbWJkYSBGdW5jdGlvbiBJbnZvY2F0aW9uIFJlc3VsdCAtICR7b3B0aW9ucy50eXBlfWBdLFxuICAgICAgICByZXNvdXJjZXM6IFtgJHtmbi5mdW5jdGlvbkFybn06JExBVEVTVGBdLFxuICAgICAgICBzb3VyY2U6IFtcImxhbWJkYVwiXSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbXG4gICAgICAgIG5ldyBub3RpZnkudGFyZ2V0cy5MYW1iZGFGdW5jdGlvbih0aGlzLmZuLCB7XG4gICAgICAgICAgZXZlbnQ6IG5vdGlmeS5SdWxlVGFyZ2V0SW5wdXQuZnJvbUV2ZW50UGF0aChcbiAgICAgICAgICAgIFwiJC5kZXRhaWwucmVzcG9uc2VQYXlsb2FkXCIsXG4gICAgICAgICAgKSwgLy8gRXh0cmFjdCByZXNwb25zZSBwYXlsb2FkXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gbmV3IEV2ZW50QnJpZGdlRGVzdGluYXRpb24oKTsgLy8gVXNlIGRlZmF1bHQgZXZlbnQgYnVzIGhlcmVcbiAgICByZXR1cm4gZGVzdGluYXRpb24uYmluZChzY29wZSwgZm4pO1xuICB9XG59XG4iXX0=
|
|
@@ -23,5 +23,5 @@ class SqsDestination {
|
|
|
23
23
|
}
|
|
24
24
|
exports.SqsDestination = SqsDestination;
|
|
25
25
|
_a = JSII_RTTI_SYMBOL_1;
|
|
26
|
-
SqsDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.SqsDestination", version: "0.0.
|
|
26
|
+
SqsDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.SqsDestination", version: "0.0.24" };
|
|
27
27
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLWRlc3RpbmF0aW9ucy9zcXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQWEsY0FBYztJQUN6QixZQUE2QixLQUFvQjtRQUFwQixVQUFLLEdBQUwsS0FBSyxDQUFlO0lBQUcsQ0FBQztJQUVyRDs7T0FFRztJQUNJLElBQUksQ0FDVCxNQUFpQixFQUNqQixFQUFxQixFQUNyQixRQUFxQztRQUVyQyw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUFqQkgsd0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uL25vdGlmeVwiO1xuXG4vKipcbiAqIFVzZSBhIFNRUyBxdWV1ZSBhcyBhIExhbWJkYSBkZXN0aW5hdGlvblxuICovXG5leHBvcnQgY2xhc3MgU3FzRGVzdGluYXRpb24gaW1wbGVtZW50cyBjb21wdXRlLklEZXN0aW5hdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcXVldWU6IG5vdGlmeS5JUXVldWUpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgYmluZChcbiAgICBfc2NvcGU6IENvbnN0cnVjdCxcbiAgICBmbjogY29tcHV0ZS5JRnVuY3Rpb24sXG4gICAgX29wdGlvbnM/OiBjb21wdXRlLkRlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogY29tcHV0ZS5EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgLy8gZGVkdXBsaWNhdGVkIGF1dG9tYXRpY2FsbHlcbiAgICB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGZuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkZXN0aW5hdGlvbjogdGhpcy5xdWV1ZS5xdWV1ZUFybixcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -66,5 +66,5 @@ class NodejsFunction extends function_1.LambdaFunction {
|
|
|
66
66
|
}
|
|
67
67
|
exports.NodejsFunction = NodejsFunction;
|
|
68
68
|
_a = JSII_RTTI_SYMBOL_1;
|
|
69
|
-
NodejsFunction[_a] = { fqn: "terraconstructs.aws.compute.NodejsFunction", version: "0.0.
|
|
69
|
+
NodejsFunction[_a] = { fqn: "terraconstructs.aws.compute.NodejsFunction", version: "0.0.24" };
|
|
70
70
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tbm9kZWpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLW5vZGVqcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlKQUF5SjtBQUN6Siw2QkFBNkI7QUFDN0IsaUNBQWtEO0FBRWxELHFHQUFxRztBQUNyRywrQ0FBeUM7QUFDekMseUNBQTJEO0FBZ0MzRCxNQUFNLE1BQU0sR0FBRyxDQUNiLGdCQUF3QixFQUN4QixVQUFrQixFQUNsQixRQUFtQixFQUNuQixFQUFFO0lBQ0YsSUFBQSx3QkFBUyxFQUFDO1FBQ1IsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQ3pCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osTUFBTSxFQUFFLEtBQUs7UUFDYixTQUFTLEVBQUUsVUFBVTtRQUNyQixRQUFRO1FBQ1IsTUFBTSxFQUFFLE1BQU07UUFDZCxhQUFhLEVBQUUsZ0JBQWdCO0tBQ2hDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLGNBQWUsU0FBUSx5QkFBYztJQUloRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE1BQTJCO1FBQ25FLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXZCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FDckIsZ0JBQWdCLEVBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUMxQixNQUFNLENBQUMsUUFBUSxDQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUMxQixRQUFRLEVBQ1IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FDMUMsQ0FBQztRQUVGLGtDQUFrQztRQUNsQywyRkFBMkY7UUFDM0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHNCQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNuRCxJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxpQkFBUyxDQUFDLE9BQU87U0FDeEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEdBQUcsUUFBUSxVQUFVLENBQUM7UUFDOUMseUdBQXlHO1FBQ3pHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3BELHVGQUF1RjtRQUN2Riw4R0FBOEc7UUFDOUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxZQUFZLENBQUM7SUFDekQsQ0FBQzs7QUFuQ0gsd0NBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vY2RrdGYtcGx1cy9jZGt0Zi1wbHVzL2Jsb2IvNTg2YWFiYWQzYWIyZmIyYTJlOTNlMDVlZDMzZjk0NDc0ZWJlOTM5Ny9wYWNrYWdlcy8lNDBjZGt0Zi1wbHVzL2F3cy9saWIvbm9kZWpzLWZ1bmN0aW9uL2luZGV4LnRzXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Bc3NldCwgQXNzZXRUeXBlIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuLy8gVGhpcyBtaWdodCBiZSAxMHggc2xvd2VyIHRoYW4gYSBuYXRpdmUgYnVpbGQgLSBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9nZXR0aW5nLXN0YXJ0ZWQvI3dhc21cbmltcG9ydCB7IGJ1aWxkU3luYyB9IGZyb20gXCJlc2J1aWxkLXdhc21cIjtcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uLCBGdW5jdGlvblByb3BzIH0gZnJvbSBcIi4vZnVuY3Rpb25cIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCIuL2Z1bmN0aW9uLWJhc2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlanNGdW5jdGlvblByb3BzIGV4dGVuZHMgRnVuY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgSGFuZGxlciBlbnRyeSBwb2ludCBzY3JpcHQsIHJlbGF0aXZlIHRvIHRoZSBTcGVjIGZpbGUuXG4gICAqXG4gICAqIFRoaXMgc2NyaXB0IHdpbGwgYmUgYnVuZGxlZCB1c2luZ1xuICAgKiBbZXNidWlsZC13YXNtXShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2dldHRpbmctc3RhcnRlZC8jd2FzbSkuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBZb3UgY2FuIG1hcmsgYSBmaWxlIG9yIGEgcGFja2FnZSBhcyBleHRlcm5hbCB0byBleGNsdWRlIGl0IGZyb20geW91clxuICAgKiBidWlsZC4gSW5zdGVhZCBvZiBiZWluZyBidW5kbGVkLCB0aGUgaW1wb3J0IHdpbGwgYmUgcHJlc2VydmVkICh1c2luZ1xuICAgKiByZXF1aXJlIGZvciB0aGUgaWlmZSBhbmQgY2pzIGZvcm1hdHMgYW5kIHVzaW5nIGltcG9ydCBmb3IgdGhlIGVzbVxuICAgKiBmb3JtYXQpIGFuZCB3aWxsIGJlIGV2YWx1YXRlZCBhdCBydW4gdGltZSBpbnN0ZWFkLlxuICAgKlxuICAgKiBAbGluayBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jZXh0ZXJuYWxcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGV4dGVybmFsPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgTm9kZUpTIHJ1bnRpbWUgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1ydW50aW1lcy5odG1sI3J1bnRpbWVzLXN1cHBvcnRlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm5vZGVqczIwLnhcIlxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZT86IFwibm9kZWpzMTgueFwiIHwgXCJub2RlanMyMC54XCI7XG59XG5cbmNvbnN0IGJ1bmRsZSA9IChcbiAgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nLFxuICBlbnRyeVBvaW50OiBzdHJpbmcsXG4gIGV4dGVybmFsPzogc3RyaW5nW10sXG4pID0+IHtcbiAgYnVpbGRTeW5jKHtcbiAgICBlbnRyeVBvaW50czogW2VudHJ5UG9pbnRdLFxuICAgIHBsYXRmb3JtOiBcIm5vZGVcIixcbiAgICB0YXJnZXQ6IFwiZXMyMDE4XCIsXG4gICAgYnVuZGxlOiB0cnVlLFxuICAgIGZvcm1hdDogXCJjanNcIixcbiAgICBzb3VyY2VtYXA6IFwiZXh0ZXJuYWxcIixcbiAgICBleHRlcm5hbCxcbiAgICBvdXRkaXI6IFwiZGlzdFwiLFxuICAgIGFic1dvcmtpbmdEaXI6IHdvcmtpbmdEaXJlY3RvcnksXG4gIH0pO1xuXG4gIHJldHVybiBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgXCJkaXN0XCIpO1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBhIE5vZGVKUyBMYW1iZGEgRnVuY3Rpb24uIExhbWJkYSBhbGxvd3MgeW91IHRvIHRyaWdnZXIgZXhlY3V0aW9uXG4gKiBvZiBjb2RlIGluIHJlc3BvbnNlIHRvIGV2ZW50cyBpbiBBV1MsIGVuYWJsaW5nIHNlcnZlcmxlc3MgYmFja2VuZCBzb2x1dGlvbnMuXG4gKlxuICogVGhlIExhbWJkYSBGdW5jdGlvbiBpdHNlbGYgd2lsbCBiZSBidW5kbGVkIHVzaW5nXG4gKiBbZXNidWlsZC13YXNtXShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2dldHRpbmctc3RhcnRlZC8jd2FzbSkuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IGZuID0gbmV3IGNvbXB1dGUuTm9kZWpzRnVuY3Rpb24oc3BlYywgXCJIZWxsb1dvcmxkXCIsIHtcbiAqICAgcGF0aDogcGF0aC5qb2luKF9fZGlybmFtZSwgXCJoYW5kbGVyc1wiLCBcImhlbGxvLXdvcmxkLnRzXCIpLFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2xhbWJkYV9mdW5jdGlvblxuICogQGJlYWNvbi1jbGFzcyBjb21wdXRlLklGdW5jdGlvblxuICovXG5leHBvcnQgY2xhc3MgTm9kZWpzRnVuY3Rpb24gZXh0ZW5kcyBMYW1iZGFGdW5jdGlvbiBpbXBsZW1lbnRzIElGdW5jdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSBhc3NldDogVGVycmFmb3JtQXNzZXQ7XG4gIHB1YmxpYyByZWFkb25seSBidW5kbGVkUGF0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogTm9kZWpzRnVuY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IHsgcGF0aDogZmlsZVBhdGgsIC4uLnJlc3QgfSA9IGNvbmZpZztcbiAgICBzdXBlcihzY29wZSwgaWQsIHJlc3QpO1xuXG4gICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUoY29uZmlnLnBhdGgpKTtcbiAgICBjb25zdCBkaXN0UGF0aCA9IGJ1bmRsZShcbiAgICAgIHdvcmtpbmdEaXJlY3RvcnksXG4gICAgICBwYXRoLmJhc2VuYW1lKGNvbmZpZy5wYXRoKSxcbiAgICAgIGNvbmZpZy5leHRlcm5hbCxcbiAgICApO1xuICAgIHRoaXMuYnVuZGxlZFBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkaXN0UGF0aCxcbiAgICAgIGAke3BhdGguYmFzZW5hbWUoY29uZmlnLnBhdGgsIFwiLnRzXCIpfS5qc2AsXG4gICAgKTtcblxuICAgIC8vIFRPRE86IEltcGxlbWVudCBDb2RlICYmIFJ1bnRpbWVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9jb2RlLnRzXG4gICAgdGhpcy5hc3NldCA9IG5ldyBUZXJyYWZvcm1Bc3NldCh0aGlzLCBcIk5vZGVqc0Fzc2V0XCIsIHtcbiAgICAgIHBhdGg6IGRpc3RQYXRoLFxuICAgICAgdHlwZTogQXNzZXRUeXBlLkFSQ0hJVkUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWxlTmFtZSA9IHBhdGguYmFzZW5hbWUoY29uZmlnLnBhdGgsIFwiLnRzXCIpO1xuXG4gICAgdGhpcy5yZXNvdXJjZS5oYW5kbGVyID0gYCR7ZmlsZU5hbWV9LmhhbmRsZXJgO1xuICAgIC8vIE5PVEU6IGZvciB0aGUgdW5kZXJsYXlpbmcgcmVzb3VyY2UsIEV4YWN0bHkgb25lIG9mIGZpbGVuYW1lLCBpbWFnZV91cmksIG9yIHMzX2J1Y2tldCBtdXN0IGJlIHNwZWNpZmllZFxuICAgIHRoaXMucmVzb3VyY2UuZmlsZW5hbWUgPSB0aGlzLmFzc2V0LnBhdGg7XG4gICAgdGhpcy5yZXNvdXJjZS5zb3VyY2VDb2RlSGFzaCA9IHRoaXMuYXNzZXQuYXNzZXRIYXNoO1xuICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2xhbWJkYS1ydW50aW1lcy5odG1sI3J1bnRpbWVzLXN1cHBvcnRlZFxuICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2FwaS9BUElfQ3JlYXRlRnVuY3Rpb24uaHRtbCNsYW1iZGEtQ3JlYXRlRnVuY3Rpb24tcmVxdWVzdC1SdW50aW1lXG4gICAgdGhpcy5yZXNvdXJjZS5ydW50aW1lID0gY29uZmlnLnJ1bnRpbWUgPz8gXCJub2RlanMyMC54XCI7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -144,5 +144,5 @@ class FunctionUrl extends __1.AwsConstructBase {
|
|
|
144
144
|
}
|
|
145
145
|
exports.FunctionUrl = FunctionUrl;
|
|
146
146
|
_a = JSII_RTTI_SYMBOL_1;
|
|
147
|
-
FunctionUrl[_a] = { fqn: "terraconstructs.aws.compute.FunctionUrl", version: "0.0.
|
|
147
|
+
FunctionUrl[_a] = { fqn: "terraconstructs.aws.compute.FunctionUrl", version: "0.0.24" };
|
|
148
148
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUF3RDtBQUV4RCwwQkFBcUQ7QUFJckQsOEJBQThCO0FBRTlCOztHQUVHO0FBQ0gsSUFBWSxtQkFVWDtBQVZELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsMENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVZXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBVTlCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBY1g7QUFkRCxXQUFZLFVBQVU7SUFDcEI7Ozs7T0FJRztJQUNILG1DQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCxpREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBZFcsVUFBVSwwQkFBVixVQUFVLFFBY3JCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBaUNYO0FBakNELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILCtCQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsNkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsaUNBQW1CLENBQUE7SUFDbkI7O09BRUc7SUFDSCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQWpDVyxVQUFVLDBCQUFWLFVBQVUsUUFpQ3JCO0FBZ0lEOzs7O0dBSUc7QUFDSCxNQUFhLFdBQVksU0FBUSxvQkFBZ0I7SUFFL0MsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFtQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1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LElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUE3Rkgsa0NBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFtYmRhRnVuY3Rpb25VcmwgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElBd3NDb25zdHJ1Y3QsIEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IElBbGlhcyB9IGZyb20gXCIuL2Z1bmN0aW9uLWFsaWFzXCI7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tIFwiLi9mdW5jdGlvbi1iYXNlXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCIuLi8uLlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBUaGUgYXV0aCB0eXBlcyBmb3IgYSBmdW5jdGlvbiB1cmxcbiAqL1xuZXhwb3J0IGVudW0gRnVuY3Rpb25VcmxBdXRoVHlwZSB7XG4gIC8qKlxuICAgKiBSZXN0cmljdCBhY2Nlc3MgdG8gYXV0aGVudGljYXRlZCBJQU0gdXNlcnMgb25seVxuICAgKi9cbiAgQVdTX0lBTSA9IFwiQVdTX0lBTVwiLFxuXG4gIC8qKlxuICAgKiBCeXBhc3MgSUFNIGF1dGhlbnRpY2F0aW9uIHRvIGNyZWF0ZSBhIHB1YmxpYyBlbmRwb2ludFxuICAgKi9cbiAgTk9ORSA9IFwiTk9ORVwiLFxufVxuXG4vKipcbiAqIFRoZSBpbnZva2UgbW9kZXMgZm9yIGEgTGFtYmRhIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEludm9rZU1vZGUge1xuICAvKipcbiAgICogRGVmYXVsdCBvcHRpb24uIExhbWJkYSBpbnZva2VzIHlvdXIgZnVuY3Rpb24gdXNpbmcgdGhlIEludm9rZSBBUEkgb3BlcmF0aW9uLlxuICAgKiBJbnZvY2F0aW9uIHJlc3VsdHMgYXJlIGF2YWlsYWJsZSB3aGVuIHRoZSBwYXlsb2FkIGlzIGNvbXBsZXRlLlxuICAgKiBUaGUgbWF4aW11bSBwYXlsb2FkIHNpemUgaXMgNiBNQi5cbiAgICovXG4gIEJVRkZFUkVEID0gXCJCVUZGRVJFRFwiLFxuXG4gIC8qKlxuICAgKiBZb3VyIGZ1bmN0aW9uIHN0cmVhbXMgcGF5bG9hZCByZXN1bHRzIGFzIHRoZXkgYmVjb21lIGF2YWlsYWJsZS5cbiAgICogTGFtYmRhIGludm9rZXMgeW91ciBmdW5jdGlvbiB1c2luZyB0aGUgSW52b2tlV2l0aFJlc3BvbnNlU3RyZWFtIEFQSSBvcGVyYXRpb24uXG4gICAqIFRoZSBtYXhpbXVtIHJlc3BvbnNlIHBheWxvYWQgc2l6ZSBpcyAyMCBNQiwgaG93ZXZlciwgeW91IGNhbiByZXF1ZXN0IGEgcXVvdGEgaW5jcmVhc2UuXG4gICAqL1xuICBSRVNQT05TRV9TVFJFQU0gPSBcIlJFU1BPTlNFX1NUUkVBTVwiLFxufVxuXG4vKipcbiAqIEFsbCBodHRwIHJlcXVlc3QgbWV0aG9kc1xuICovXG5leHBvcnQgZW51bSBIdHRwTWV0aG9kIHtcbiAgLyoqXG4gICAqIFRoZSBHRVQgbWV0aG9kIHJlcXVlc3RzIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICovXG4gIEdFVCA9IFwiR0VUXCIsXG4gIC8qKlxuICAgKiBUaGUgUFVUIG1ldGhvZCByZXBsYWNlcyBhbGwgY3VycmVudCByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHRhcmdldCByZXNvdXJjZSB3aXRoIHRoZSByZXF1ZXN0IHBheWxvYWQuXG4gICAqL1xuICBQVVQgPSBcIlBVVFwiLFxuICAvKipcbiAgICogVGhlIEhFQUQgbWV0aG9kIGFza3MgZm9yIGEgcmVzcG9uc2UgaWRlbnRpY2FsIHRvIHRoYXQgb2YgYSBHRVQgcmVxdWVzdCwgYnV0IHdpdGhvdXQgdGhlIHJlc3BvbnNlIGJvZHkuXG4gICAqL1xuICBIRUFEID0gXCJIRUFEXCIsXG4gIC8qKlxuICAgKiBUaGUgUE9TVCBtZXRob2QgaXMgdXNlZCB0byBzdWJtaXQgYW4gZW50aXR5IHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UsIG9mdGVuIGNhdXNpbmcgYSBjaGFuZ2UgaW4gc3RhdGUgb3Igc2lkZSBlZmZlY3RzIG9uIHRoZSBzZXJ2ZXIuXG4gICAqL1xuICBQT1NUID0gXCJQT1NUXCIsXG4gIC8qKlxuICAgKiBUaGUgREVMRVRFIG1ldGhvZCBkZWxldGVzIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UuXG4gICAqL1xuICBERUxFVEUgPSBcIkRFTEVURVwiLFxuICAvKipcbiAgICogVGhlIFBBVENIIG1ldGhvZCBhcHBsaWVzIHBhcnRpYWwgbW9kaWZpY2F0aW9ucyB0byBhIHJlc291cmNlLlxuICAgKi9cbiAgUEFUQ0ggPSBcIlBBVENIXCIsXG4gIC8qKlxuICAgKiBUaGUgT1BUSU9OUyBtZXRob2QgZGVzY3JpYmVzIHRoZSBjb21tdW5pY2F0aW9uIG9wdGlvbnMgZm9yIHRoZSB0YXJnZXQgcmVzb3VyY2UuXG4gICAqL1xuICBPUFRJT05TID0gXCJPUFRJT05TXCIsXG4gIC8qKlxuICAgKiBUaGUgd2lsZGNhcmQgZW50cnkgdG8gYWxsb3cgYWxsIG1ldGhvZHMuXG4gICAqL1xuICBBTEwgPSBcIipcIixcbn1cblxuLyoqXG4gKiBTcGVjaWZpZXMgYSBjcm9zcy1vcmlnaW4gYWNjZXNzIHByb3BlcnR5IGZvciBhIGZ1bmN0aW9uIFVSTFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsQ29yc09wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyBjb29raWVzIG9yIG90aGVyIGNyZWRlbnRpYWxzIGluIHJlcXVlc3RzIHRvIHlvdXIgZnVuY3Rpb24gVVJMLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDcmVkZW50aWFscz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEhlYWRlcnMgdGhhdCBhcmUgc3BlY2lmaWVkIGluIHRoZSBBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnMgaGVhZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGhlYWRlcnMgYWxsb3dlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRIZWFkZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFuIEhUVFAgbWV0aG9kIHRoYXQgeW91IGFsbG93IHRoZSBvcmlnaW4gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBbSHR0cE1ldGhvZC5BTExdXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkTWV0aG9kcz86IEh0dHBNZXRob2RbXTtcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgb3JpZ2lucyB5b3Ugd2FudCBjdXN0b21lcnMgdG8gYmUgYWJsZSB0byBhY2Nlc3MgdGhlIGJ1Y2tldCBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG9yaWdpbnMgYWxsb3dlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRPcmlnaW5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGhlYWRlcnMgaW4gdGhlIHJlc3BvbnNlIHRoYXQgeW91IHdhbnQgY3VzdG9tZXJzIHRvIGJlIGFibGUgdG8gYWNjZXNzIGZyb20gdGhlaXIgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGhlYWRlcnMgZXhwb3NlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cG9zZWRIZWFkZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGluIHNlY29uZHMgdGhhdCB5b3VyIGJyb3dzZXIgaXMgdG8gY2FjaGUgdGhlIHByZWZsaWdodCByZXNwb25zZSBmb3IgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBCcm93c2VyIGRlZmF1bHQgb2YgNSBzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogT3V0cHV0cyB0aGF0IGNhbiBiZSBleHBvc2VkIHRocm91Z2ggdGhlIGdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblVybE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIHVybCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZ1bmN0aW9uIHRoaXMgVVJMIHJlZmVycyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIExhbWJkYSBmdW5jdGlvbiBVcmxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRnVuY3Rpb25VcmwgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIHN0cm9uZ2x5IHR5cGVkIEZ1bmN0aW9uVXJsT3V0cHV0cyAqL1xuICByZWFkb25seSBmdW5jdGlvblVybE91dHB1dHM6IEZ1bmN0aW9uVXJsT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIHVybCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlIEZ1bmN0aW9uVXJsXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZnVuY3Rpb24gdGhpcyBVUkwgcmVmZXJzIHRvXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRnVuY3Rpb25Bcm5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhpcyBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBncmFudEludm9rZVVybChpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBhZGQgYSB1cmwgdG8gYSBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblVybE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgYXV0aGVudGljYXRpb24gdGhhdCB5b3VyIGZ1bmN0aW9uIFVSTCB1c2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBGdW5jdGlvblVybEF1dGhUeXBlLkFXU19JQU1cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhUeXBlPzogRnVuY3Rpb25VcmxBdXRoVHlwZTtcblxuICAvKipcbiAgICogVGhlIGNyb3NzLW9yaWdpbiByZXNvdXJjZSBzaGFyaW5nIChDT1JTKSBzZXR0aW5ncyBmb3IgeW91ciBmdW5jdGlvbiBVUkwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gQ09SUyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ycz86IEZ1bmN0aW9uVXJsQ29yc09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGludm9jYXRpb24gbW9kZSB0aGF0IHlvdXIgTGFtYmRhIGZ1bmN0aW9uIHVzZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEludm9rZU1vZGUuQlVGRkVSRURcbiAgICovXG4gIHJlYWRvbmx5IGludm9rZU1vZGU/OiBJbnZva2VNb2RlO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgRnVuY3Rpb25VcmxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblVybFByb3BzIGV4dGVuZHMgRnVuY3Rpb25VcmxPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byB3aGljaCB0aGlzIHVybCByZWZlcnMuXG4gICAqIEl0IGNhbiBhbHNvIGJlIGFuIGBBbGlhc2AgYnV0IG5vdCBhIGBWZXJzaW9uYC5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uOiBJRnVuY3Rpb247XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIExhbWJkYSBmdW5jdGlvbiB1cmxcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2xhbWJkYV9mdW5jdGlvbl91cmxcbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uVXJsIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElGdW5jdGlvblVybCB7XG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvblVybE91dHB1dHM6IEZ1bmN0aW9uVXJsT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uVXJsT3V0cHV0cztcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGxhbWJkYUZ1bmN0aW9uVXJsLkxhbWJkYUZ1bmN0aW9uVXJsO1xuICAvKipcbiAgICogVGhlIHVybCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbiB0aGlzIFVSTCByZWZlcnMgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXV0aGVudGljYXRpb24gdHlwZSB1c2VkIGZvciB0aGlzIEZ1bmN0aW9uIFVSTFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF1dGhUeXBlOiBGdW5jdGlvblVybEF1dGhUeXBlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRnVuY3Rpb25VcmxQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBJZiB0aGUgdGFyZ2V0IGZ1bmN0aW9uIGlzIGFuIGFsaWFzLCB0aGVuIGl0IG11c3QgYmUgY29uZmlndXJlZCB1c2luZyB0aGUgdW5kZXJseWluZyBmdW5jdGlvblxuICAgIC8vIEFSTiwgYW5kIHRoZSBhbGlhcyBuYW1lIGFzIGEgcXVhbGlmaWVyLlxuICAgIGNvbnN0IHsgdGFyZ2V0RnVuY3Rpb24sIGFsaWFzIH0gPSB0aGlzLmluc3RhbmNlT2ZBbGlhcyhwcm9wcy5mdW5jdGlvbilcbiAgICAgID8geyB0YXJnZXRGdW5jdGlvbjogcHJvcHMuZnVuY3Rpb24ubGFtYmRhLCBhbGlhczogcHJvcHMuZnVuY3Rpb24gfVxuICAgICAgOiB7IHRhcmdldEZ1bmN0aW9uOiBwcm9wcy5mdW5jdGlvbiwgYWxpYXM6IHVuZGVmaW5lZCB9O1xuXG4gICAgdGhpcy5hdXRoVHlwZSA9IHByb3BzLmF1dGhUeXBlID8/IEZ1bmN0aW9uVXJsQXV0aFR5cGUuQVdTX0lBTTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgbGFtYmRhRnVuY3Rpb25VcmwuTGFtYmRhRnVuY3Rpb25VcmwodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBhdXRob3JpemF0aW9uVHlwZTogdGhpcy5hdXRoVHlwZSxcbiAgICAgIGNvcnM6IHByb3BzLmNvcnMgPyB0aGlzLnJlbmRlckNvcnMocHJvcHMuY29ycykgOiB1bmRlZmluZWQsXG4gICAgICBpbnZva2VNb2RlOiBwcm9wcy5pbnZva2VNb2RlLFxuICAgICAgZnVuY3Rpb25OYW1lOiB0YXJnZXRGdW5jdGlvbi5mdW5jdGlvbkFybiwgLy8gVGhlIG5hbWUgKG9yIEFSTikgb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICAgIHF1YWxpZmllcjogYWxpYXM/LmFsaWFzTmFtZSxcbiAgICB9KTtcbiAgICAvLyBUaGUgYWxpYXNOYW1lIGlzIGEgcmVxdWlyZWQgcGh5c2ljYWwgbmFtZSwgc28gdXNpbmcgaXQgZG9lcyBub3QgaW1wbHkgYSBkZXBlbmRlbmN5LCBzbyB3ZVxuICAgIC8vIG11c3QgXCJtYW51YWxseVwiIHJlZ2lzdGVyIHRoZSBkZXBlbmRlbmN5LCBvciBlbHNlIFRGIG1heSBhdHRlbXB0IHRvIHVzZSBiZWZvcmUgaXQgZXhpc3RzLlxuICAgIGlmIChhbGlhcz8ubm9kZS5kZWZhdWx0Q2hpbGQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3koYWxpYXMubm9kZS5kZWZhdWx0Q2hpbGQpO1xuICAgIH1cblxuICAgIHRoaXMudXJsID0gdGhpcy5yZXNvdXJjZS5mdW5jdGlvblVybDtcbiAgICB0aGlzLmZ1bmN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5mdW5jdGlvbkFybjtcbiAgICB0aGlzLmZ1bmN0aW9uID0gcHJvcHMuZnVuY3Rpb247XG5cbiAgICBpZiAocHJvcHMuYXV0aFR5cGUgPT09IEZ1bmN0aW9uVXJsQXV0aFR5cGUuTk9ORSkge1xuICAgICAgcHJvcHMuZnVuY3Rpb24uYWRkUGVybWlzc2lvbihcImludm9rZS1mdW5jdGlvbi11cmxcIiwge1xuICAgICAgICBwcmluY2lwYWw6IG5ldyBpYW0uQW55UHJpbmNpcGFsKCksXG4gICAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25VcmxcIixcbiAgICAgICAgZnVuY3Rpb25VcmxBdXRoVHlwZTogcHJvcHMuYXV0aFR5cGUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5mdW5jdGlvblVybE91dHB1dHMgPSB7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZnVuY3Rpb25Bcm46IHRoaXMuZnVuY3Rpb25Bcm4sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudEludm9rZVVybChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb24uZ3JhbnRJbnZva2VVcmwoZ3JhbnRlZSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbmNlT2ZBbGlhcyhmbjogSUZ1bmN0aW9uKTogZm4gaXMgSUFsaWFzIHtcbiAgICByZXR1cm4gXCJhbGlhc05hbWVcIiBpbiBmbjtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29ycyhcbiAgICBjb3JzOiBGdW5jdGlvblVybENvcnNPcHRpb25zLFxuICApOiBsYW1iZGFGdW5jdGlvblVybC5MYW1iZGFGdW5jdGlvblVybENvcnMge1xuICAgIGlmIChcbiAgICAgIGNvcnMubWF4QWdlICYmXG4gICAgICAhY29ycy5tYXhBZ2UuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgIGNvcnMubWF4QWdlLnRvU2Vjb25kcygpID4gODY0MDBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZ1bmN0aW9uVXJsIENPUlMgbWF4QWdlIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gODY0MDAgc2VjcyAoZ290ICR7Y29ycy5tYXhBZ2UudG9TZWNvbmRzKCl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhbGxvd0NyZWRlbnRpYWxzOiBjb3JzLmFsbG93Q3JlZGVudGlhbHMsXG4gICAgICBhbGxvd0hlYWRlcnM6IGNvcnMuYWxsb3dlZEhlYWRlcnMsXG4gICAgICBhbGxvd01ldGhvZHM6IGNvcnMuYWxsb3dlZE1ldGhvZHMgPz8gW0h0dHBNZXRob2QuQUxMXSxcbiAgICAgIGFsbG93T3JpZ2luczogY29ycy5hbGxvd2VkT3JpZ2lucyxcbiAgICAgIGV4cG9zZUhlYWRlcnM6IGNvcnMuZXhwb3NlZEhlYWRlcnMsXG4gICAgICBtYXhBZ2U6IGNvcnMubWF4QWdlPy50b1NlY29uZHMoKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -582,7 +582,7 @@ class LambdaFunction extends function_base_1.LambdaFunctionBase {
|
|
|
582
582
|
}
|
|
583
583
|
exports.LambdaFunction = LambdaFunction;
|
|
584
584
|
_a = JSII_RTTI_SYMBOL_1;
|
|
585
|
-
LambdaFunction[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunction", version: "0.0.
|
|
585
|
+
LambdaFunction[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunction", version: "0.0.24" };
|
|
586
586
|
/**
|
|
587
587
|
* Given an opaque (token) ARN, returns a TF expression that extracts the function
|
|
588
588
|
* name from the ARN.
|
|
@@ -84,6 +84,13 @@ export * from "./nlb/network-load-balancer";
|
|
|
84
84
|
export * from "./nlb/network-target-group";
|
|
85
85
|
export * from "./nlb/network-listener-action";
|
|
86
86
|
export * as lbtargets from "./lb-targets";
|
|
87
|
+
export * as autoscalingcommon from "./autoscaling-common";
|
|
88
|
+
export * from "./base-scalable-attribute";
|
|
89
|
+
export * from "./schedule";
|
|
90
|
+
export * from "./scalable-target";
|
|
91
|
+
export * from "./step-scaling-policy";
|
|
92
|
+
export * from "./step-scaling-action";
|
|
93
|
+
export * from "./target-tracking-scaling-policy";
|
|
87
94
|
export * from "./lb-shared/grid-lookup-types";
|
|
88
95
|
export * from "./lb-shared/base-listener";
|
|
89
96
|
export * from "./lb-shared/base-load-balancer";
|
package/lib/aws/compute/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.tasks = exports.destinations = exports.sources = exports.lbtargets = exports.alpha = void 0;
|
|
17
|
+
exports.tasks = exports.destinations = exports.sources = exports.autoscalingcommon = exports.lbtargets = exports.alpha = void 0;
|
|
18
18
|
__exportStar(require("./event-source-filter"), exports);
|
|
19
19
|
__exportStar(require("./event-source-mapping"), exports);
|
|
20
20
|
__exportStar(require("./event-invoke-config"), exports);
|
|
@@ -111,6 +111,15 @@ __exportStar(require("./nlb/network-target-group"), exports);
|
|
|
111
111
|
__exportStar(require("./nlb/network-listener-action"), exports);
|
|
112
112
|
// elasticloadbalancingv2-targets
|
|
113
113
|
exports.lbtargets = require("./lb-targets");
|
|
114
|
+
// autoscaling-common
|
|
115
|
+
exports.autoscalingcommon = require("./autoscaling-common");
|
|
116
|
+
// appautoscaling
|
|
117
|
+
__exportStar(require("./base-scalable-attribute"), exports);
|
|
118
|
+
__exportStar(require("./schedule"), exports);
|
|
119
|
+
__exportStar(require("./scalable-target"), exports);
|
|
120
|
+
__exportStar(require("./step-scaling-policy"), exports);
|
|
121
|
+
__exportStar(require("./step-scaling-action"), exports);
|
|
122
|
+
__exportStar(require("./target-tracking-scaling-policy"), exports);
|
|
114
123
|
// temp export, required by base types
|
|
115
124
|
__exportStar(require("./lb-shared/grid-lookup-types"), exports);
|
|
116
125
|
__exportStar(require("./lb-shared/base-listener"), exports);
|
|
@@ -129,4 +138,4 @@ exports.tasks = require("./tasks"); // State Machine Tasks
|
|
|
129
138
|
__exportStar(require("./function-vpc-config.generated"), exports);
|
|
130
139
|
require("./ec2-augmentations.generated");
|
|
131
140
|
require("./lambda-augmentations.generated");
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBc0M7QUFDdEMseURBQXVDO0FBQ3ZDLHdEQUFzQztBQUN0QyxrREFBZ0M7QUFDaEMsNkNBQTJCO0FBQzNCLG1EQUFpQztBQUNqQyx5REFBdUM7QUFDdkMsb0RBQWtDO0FBQ2xDLHdEQUFzQztBQUN0QyxpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLGdCQUFnQjtBQUNoQiwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLCtDQUE2QjtBQUM3QiwwQ0FBd0I7QUFDeEIsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQywyREFBeUM7QUFDekMsb0ZBQW9GO0FBQ3BGLDhDQUE4QztBQUM5QywwQ0FBd0I7QUFDeEIsZ0RBQThCO0FBQzlCLHdEQUFzQztBQUV0QyxrREFBZ0M7QUFDaEMsZ0RBQThCO0FBQzlCLG9EQUFrQztBQUNsQyxnREFBOEI7QUFDOUIsaURBQStCO0FBQy9CLG1EQUFpQztBQUNqQyxnREFBOEI7QUFDOUIsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3QiwyREFBeUM7QUFDekMsd0VBQXNEO0FBQ3RELHVFQUFxRDtBQUNyRCx5RUFBdUQ7QUFDdkQsd0RBQXNDO0FBRXRDLG9EQUFrQztBQUNsQyxxREFBbUM7QUFDbkMscURBQW1DO0FBRW5DLE1BQU07QUFDTixrRUFBZ0Q7QUFDaEQsaURBQStCO0FBQy9CLGdEQUE4QjtBQUM5Qiw4QkFBOEI7QUFDOUIsdUNBQXVDO0FBQ3ZDLG1EQUFpQztBQUNqQyw2Q0FBMkI7QUFDM0Isb0RBQWtDO0FBQ2xDLGtEQUFnQztBQUNoQyx3Q0FBc0I7QUFDdEIsZ0RBQThCO0FBQzlCLHNEQUFvQztBQUNwQyx5Q0FBdUI7QUFDdkIsZ0RBQThCO0FBQzlCLG1EQUFpQztBQUNqQywyQ0FBeUI7QUFDekIseUNBQXVCO0FBQ3ZCLDJDQUF5QjtBQUN6Qix3Q0FBc0I7QUFDdEIsK0NBQTZCO0FBQzdCLHdDQUFzQjtBQUN0QixpREFBK0I7QUFDL0IseURBQXVDO0FBQ3ZDLDhDQUE0QjtBQUM1QixxREFBbUM7QUFDbkMsa0RBQWdDO0FBQ2hDLDhEQUE0QztBQUM1Qyx3REFBc0M7QUFDdEMsa0VBQWdEO0FBQ2hELHFEQUFtQztBQUNuQyxpREFBK0I7QUFDL0Isa0RBQWdDO0FBQ2hDLG9EQUFrQztBQUNsQyw2Q0FBMkI7QUFDM0IsWUFBWTtBQUNaLHlDQUF1QztBQUV2Qyx1QkFBdUI7QUFDdkIsa0RBQWdDO0FBQ2hDLHlCQUF5QjtBQUN6Qiw2REFBMkM7QUFDM0MseUVBQXVEO0FBQ3ZELGtFQUFnRDtBQUNoRCxrRUFBZ0Q7QUFDaEQsaUVBQStDO0FBQy9DLG9FQUFrRDtBQUNsRCxtREFBaUM7QUFDakMsb0RBQWtDO0FBQ2xDLCtEQUE2QztBQUU3Qyx5REFBdUM7QUFDdkMsOERBQTRDO0FBQzVDLDZEQUEyQztBQUMzQyxnRUFBOEM7QUFFOUMsaUNBQWlDO0FBQ2pDLDRDQUEwQztBQUUxQyxxQkFBcUI7QUFDckIsNERBQTBEO0FBRTFELGlCQUFpQjtBQUNqQiw0REFBMEM7QUFDMUMsNkNBQTJCO0FBQzNCLG9EQUFrQztBQUNsQyx3REFBc0M7QUFDdEMsd0RBQXNDO0FBQ3RDLG1FQUFpRDtBQUVqRCxzQ0FBc0M7QUFDdEMsZ0VBQThDO0FBQzlDLDREQUEwQztBQUMxQyxpRUFBK0M7QUFDL0MsZ0VBQThDO0FBQzlDLG9EQUFrQztBQUNsQyxvRUFBa0Q7QUFDbEQsbUVBQWlEO0FBQ2pELDhEQUE0QztBQUM1QywyRUFBeUQ7QUFDekQsMEZBQXdFO0FBRXhFLDZDQUEyQztBQUMzQywwREFBd0Q7QUFDeEQsbUNBQWlDLENBQUMsc0JBQXNCO0FBRXhELHlEQUF5RDtBQUN6RCxrRUFBZ0Q7QUFFaEQseUNBQXVDO0FBQ3ZDLDRDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2V2ZW50LXNvdXJjZS1maWx0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50LXNvdXJjZS1tYXBwaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudC1pbnZva2UtY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mdW5jdGlvbi1iYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mdW5jdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZnVuY3Rpb24tYWxpYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Z1bmN0aW9uLWRlc3RpbmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mdW5jdGlvbi1ub2RlanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Z1bmN0aW9uLXBlcm1pc3Npb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Z1bmN0aW9uLXVybFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXJjaGl0ZWN0dXJlXCI7XG4vLyBzdGVwZnVuY3Rpb25zXG5leHBvcnQgKiBmcm9tIFwiLi9maWVsZHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FjdGl2aXR5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YXNrLWlucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZGl0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZS1tYWNoaW5lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZS1tYWNoaW5lLWZyYWdtZW50XCI7XG4vLyBUT0RPOiBXaGVuIHJlLWFkZGluZywgbWFrZSBzdXJlIHRvIGFsc28gYWRkIHRlc3Qvc3RhdGUtdHJhbnNpdGlvbi1tZXRyaWNzLnRlc3QudHNcbi8vIGV4cG9ydCAqIGZyb20gXCIuL3N0YXRlLXRyYW5zaXRpb24tbWV0cmljc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2hhaW5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlLWdyYXBoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGVwLWZ1bmN0aW9ucy10YXNrXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9jaG9pY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9mYWlsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZXMvcGFyYWxsZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9wYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZXMvc3RhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9zdWNjZWVkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZXMvdGFza1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhdGVzL3dhaXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9tYXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9kaXN0cmlidXRlZC1tYXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9kaXN0cmlidXRlZC1tYXAvaXRlbS1iYXRjaGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZXMvZGlzdHJpYnV0ZWQtbWFwL2l0ZW0tcmVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZXMvZGlzdHJpYnV0ZWQtbWFwL3Jlc3VsdC13cml0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0YXRlcy9jdXN0b20tc3RhdGVcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vc3RhdGVzL21hcC1iYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdGF0ZXMvdGFzay1iYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YXNrLWNyZWRlbnRpYWxzXCI7XG5cbi8vIGVjMlxuZXhwb3J0ICogZnJvbSBcIi4vYXNwZWN0cy9yZXF1aXJlLWltZHN2Mi1hc3BlY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Jhc3Rpb24taG9zdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29ubmVjdGlvbnNcIjtcbi8vIGV4cG9ydCAqIGZyb20gXCIuL2Nmbi1pbml0XCI7XG4vLyBleHBvcnQgKiBmcm9tIFwiLi9jZm4taW5pdC1lbGVtZW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW5zdGFuY2UtdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2luc3RhbmNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYXVuY2gtdGVtcGxhdGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21hY2hpbmUtaW1hZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25hdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmV0d29yay1hY2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25ldHdvcmstYWNsLXR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wb3J0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcmVmaXgtbGlzdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VjdXJpdHktZ3JvdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym5ldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGVlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdm9sdW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92cGNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZwYy1sb29rdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZwblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdnBjLWVuZHBvaW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi92cGMtZW5kcG9pbnQtc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXNlci1kYXRhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi93aW5kb3dzLXZlcnNpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92cGMtZmxvdy1sb2dzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jbGllbnQtdnBuLWVuZHBvaW50LXR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jbGllbnQtdnBuLWVuZHBvaW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jbGllbnQtdnBuLWF1dGhvcml6YXRpb24tcnVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2xpZW50LXZwbi1yb3V0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaXAtYWRkcmVzc2VzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tYWNoaW5lLWltYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZW1lbnQtZ3JvdXBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2tleS1wYWlyXCI7XG4vLyBlYzItYWxwaGFcbmV4cG9ydCAqIGFzIGFscGhhIGZyb20gXCIuL2luZGV4LWFscGhhXCI7XG5cbi8vIGVsYXN0aWNsb2FkYmFsYW5jaW5nXG5leHBvcnQgKiBmcm9tIFwiLi9sb2FkLWJhbGFuY2VyXCI7XG4vLyBlbGFzdGljbG9hZGJhbGFuY2luZ3YyXG5leHBvcnQgKiBmcm9tIFwiLi9hbGIvYXBwbGljYXRpb24tbGlzdGVuZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FsYi9hcHBsaWNhdGlvbi1saXN0ZW5lci1jZXJ0aWZpY2F0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWxiL2FwcGxpY2F0aW9uLWxpc3RlbmVyLXJ1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FsYi9hcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hbGIvYXBwbGljYXRpb24tdGFyZ2V0LWdyb3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hbGIvYXBwbGljYXRpb24tbGlzdGVuZXItYWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hbGIvY29uZGl0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWxiL3RydXN0LXN0b3JlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9hbGIvdHJ1c3Qtc3RvcmUtcmV2b2NhdGlvblwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9ubGIvbmV0d29yay1saXN0ZW5lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmxiL25ldHdvcmstbG9hZC1iYWxhbmNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbmxiL25ldHdvcmstdGFyZ2V0LWdyb3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ubGIvbmV0d29yay1saXN0ZW5lci1hY3Rpb25cIjtcblxuLy8gZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi10YXJnZXRzXG5leHBvcnQgKiBhcyBsYnRhcmdldHMgZnJvbSBcIi4vbGItdGFyZ2V0c1wiO1xuXG4vLyBhdXRvc2NhbGluZy1jb21tb25cbmV4cG9ydCAqIGFzIGF1dG9zY2FsaW5nY29tbW9uIGZyb20gXCIuL2F1dG9zY2FsaW5nLWNvbW1vblwiO1xuXG4vLyBhcHBhdXRvc2NhbGluZ1xuZXhwb3J0ICogZnJvbSBcIi4vYmFzZS1zY2FsYWJsZS1hdHRyaWJ1dGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVkdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2FsYWJsZS10YXJnZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0ZXAtc2NhbGluZy1wb2xpY3lcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0ZXAtc2NhbGluZy1hY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeVwiO1xuXG4vLyB0ZW1wIGV4cG9ydCwgcmVxdWlyZWQgYnkgYmFzZSB0eXBlc1xuZXhwb3J0ICogZnJvbSBcIi4vbGItc2hhcmVkL2dyaWQtbG9va3VwLXR5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYi1zaGFyZWQvYmFzZS1saXN0ZW5lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGItc2hhcmVkL2Jhc2UtbG9hZC1iYWxhbmNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGItc2hhcmVkL2Jhc2UtdGFyZ2V0LWdyb3VwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYi1zaGFyZWQvZW51bXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xiLXNoYXJlZC9sb2FkLWJhbGFuY2VyLXRhcmdldHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xiLXNoYXJlZC9saXN0ZW5lci1jZXJ0aWZpY2F0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGItc2hhcmVkL2xpc3RlbmVyLWFjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGItc2hhcmVkL2xiLWxpc3RlbmVyLWNvbmZpZy5nZW5lcmF0ZWRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xiLXNoYXJlZC9sYi10YXJnZXQtZ3JvdXAtYXR0YWNobWVudC1jb25maWcuZ2VuZXJhdGVkXCI7XG5cbmV4cG9ydCAqIGFzIHNvdXJjZXMgZnJvbSBcIi4vZXZlbnQtc291cmNlc1wiO1xuZXhwb3J0ICogYXMgZGVzdGluYXRpb25zIGZyb20gXCIuL2Z1bmN0aW9uLWRlc3RpbmF0aW9uc1wiO1xuZXhwb3J0ICogYXMgdGFza3MgZnJvbSBcIi4vdGFza3NcIjsgLy8gU3RhdGUgTWFjaGluZSBUYXNrc1xuXG4vLyBnZW5lcmF0ZWQgYnkgSlNJSSBTdHJ1Y3QgYnVpbGRlciB0byBwbGVhc2UgSlNJSSBwYWNtYW5cbmV4cG9ydCAqIGZyb20gXCIuL2Z1bmN0aW9uLXZwYy1jb25maWcuZ2VuZXJhdGVkXCI7XG5cbmltcG9ydCBcIi4vZWMyLWF1Z21lbnRhdGlvbnMuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgXCIuL2xhbWJkYS1hdWdtZW50YXRpb25zLmdlbmVyYXRlZFwiO1xuIl19
|