terraconstructs 0.0.22 → 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 +104400 -90067
- 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-vpc-config.generated.d.ts +3 -3
- package/lib/aws/compute/function-vpc-config.generated.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/lb-listener-config.generated.d.ts +31 -31
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +4 -4
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.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-config.generated.d.ts +8 -8
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.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-config.generated.d.ts +12 -12
- package/lib/aws/notify/queue-config.generated.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/provider-config.generated.d.ts +33 -33
- package/lib/aws/provider-config.generated.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/cors-config.generated.d.ts +3 -3
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- 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/lifecycle-config.generated.d.ts +7 -7
- package/lib/aws/storage/lifecycle-config.generated.js +1 -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/aws/storage/website-config.generated.d.ts +5 -5
- package/lib/aws/storage/website-config.generated.js +1 -1
- 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 +14 -13
|
@@ -228,7 +228,7 @@ class Metric {
|
|
|
228
228
|
if (!dims) {
|
|
229
229
|
return dims;
|
|
230
230
|
}
|
|
231
|
-
|
|
231
|
+
const dimsArray = Object.keys(dims);
|
|
232
232
|
if (dimsArray?.length > 30) {
|
|
233
233
|
throw new Error(`The maximum number of dimensions is 30, received ${dimsArray.length}`);
|
|
234
234
|
}
|
|
@@ -248,7 +248,7 @@ class Metric {
|
|
|
248
248
|
}
|
|
249
249
|
exports.Metric = Metric;
|
|
250
250
|
_a = JSII_RTTI_SYMBOL_1;
|
|
251
|
-
Metric[_a] = { fqn: "terraconstructs.aws.cloudwatch.Metric", version: "0.0.
|
|
251
|
+
Metric[_a] = { fqn: "terraconstructs.aws.cloudwatch.Metric", version: "0.0.24" };
|
|
252
252
|
function asString(x) {
|
|
253
253
|
if (x === undefined) {
|
|
254
254
|
return undefined;
|
|
@@ -422,7 +422,7 @@ class MathExpression {
|
|
|
422
422
|
}
|
|
423
423
|
exports.MathExpression = MathExpression;
|
|
424
424
|
_b = JSII_RTTI_SYMBOL_1;
|
|
425
|
-
MathExpression[_b] = { fqn: "terraconstructs.aws.cloudwatch.MathExpression", version: "0.0.
|
|
425
|
+
MathExpression[_b] = { fqn: "terraconstructs.aws.cloudwatch.MathExpression", version: "0.0.24" };
|
|
426
426
|
/**
|
|
427
427
|
* Pattern for a variable name. Alphanum starting with lowercase.
|
|
428
428
|
*/
|
|
@@ -490,4 +490,4 @@ function matchAll(x, re) {
|
|
|
490
490
|
}
|
|
491
491
|
return ret;
|
|
492
492
|
}
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL21ldHJpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlHQUFpRztBQUVqRyxpQ0FBOEI7QUFFOUIsbUNBQXNFO0FBU3RFLDRDQUF3QztBQUN4Qyx1REFBa0U7QUFDbEUsbURBSzZCO0FBQzdCLG1DQUFnQztBQUNoQyw2Q0FBMEM7QUFDMUMsOEJBQThCO0FBbVA5Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxNQUFNO0lBQ2pCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsT0FBdUI7UUFDdEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDckMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFtQ0QsWUFBWSxLQUFrQjtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksbUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxJQUNFLFNBQVMsS0FBSyxDQUFDO1lBQ2YsU0FBUyxLQUFLLENBQUM7WUFDZixTQUFTLEtBQUssRUFBRTtZQUNoQixTQUFTLEtBQUssRUFBRTtZQUNoQixTQUFTLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFDcEIsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isd0VBQXdFLFNBQVMsRUFBRSxDQUNwRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFD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SSxLQUFLLENBQUMsK0NBQStDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQXdCRCxTQUFTLGtCQUFrQixDQUFDLENBQU07SUFDaEMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN6RCxDQUFDO0FBTUQsU0FBUyxrQkFBa0IsQ0FBQyxDQUFNO0lBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDM0QsQ0FBQztBQUVELHVDQUF1QztBQUN2QyxTQUFTLFFBQVEsQ0FBQyxDQUFTLEVBQUUsRUFBVTtJQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBb0IsQ0FBQztJQUMxQyxJQUFJLENBQXlCLENBQUM7SUFDOUIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi9tZXRyaWMudHNcblxuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBUcmVhdE1pc3NpbmdEYXRhIH0gZnJvbSBcIi4vYWxhcm1cIjtcbmltcG9ydCB7XG4gIElNZXRyaWMsXG4gIE1ldHJpY0FsYXJtQ29uZmlnLFxuICBNZXRyaWNDb25maWcsXG4gIE1ldHJpY0dyYXBoQ29uZmlnLFxuICBTdGF0aXN0aWMsXG4gIFVuaXQsXG59IGZyb20gXCIuL21ldHJpYy10eXBlc1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBkaXNwYXRjaE1ldHJpYywgbWV0cmljS2V5IH0gZnJvbSBcIi4vcHJpdmF0ZS9tZXRyaWMtdXRpbFwiO1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplU3RhdGlzdGljLFxuICBwYWlyU3RhdGlzdGljVG9TdHJpbmcsXG4gIHBhcnNlU3RhdGlzdGljLFxuICBzaW5nbGVTdGF0aXN0aWNUb1N0cmluZyxcbn0gZnJvbSBcIi4vcHJpdmF0ZS9zdGF0aXN0aWNcIjtcbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcIi4vc3RhdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG5leHBvcnQgdHlwZSBEaW1lbnNpb25zTWFwID0geyBbZGltOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBPcHRpb25zIHNoYXJlZCBieSBtb3N0IG1ldGhvZHMgYWNjZXB0aW5nIG1ldHJpYyBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uTWV0cmljT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIG92ZXIgd2hpY2ggdGhlIHNwZWNpZmllZCBzdGF0aXN0aWMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg1KVxuICAgKi9cbiAgcmVhZG9ubHkgcGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFdoYXQgZnVuY3Rpb24gdG8gdXNlIGZvciBhZ2dyZWdhdGluZy5cbiAgICpcbiAgICogVXNlIHRoZSBgYXdzX2Nsb3Vkd2F0Y2guU3RhdHNgIGhlbHBlciBjbGFzcyB0byBjb25zdHJ1Y3QgdmFsaWQgaW5wdXQgc3RyaW5ncy5cbiAgICpcbiAgICogQ2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAtIFwiTWluaW11bVwiIHwgXCJtaW5cIlxuICAgKiAtIFwiTWF4aW11bVwiIHwgXCJtYXhcIlxuICAgKiAtIFwiQXZlcmFnZVwiIHwgXCJhdmdcIlxuICAgKiAtIFwiU3VtXCIgfCBcInN1bVwiXG4gICAqIC0gXCJTYW1wbGVDb3VudCB8IFwiblwiXG4gICAqIC0gXCJwTk4uTk5cIlxuICAgKiAtIFwidG1OTi5OTlwiIHwgXCJ0bShOTi5OTiU6Tk4uTk4lKVwiXG4gICAqIC0gXCJpcW1cIlxuICAgKiAtIFwid21OTi5OTlwiIHwgXCJ3bShOTi5OTiU6Tk4uTk4lKVwiXG4gICAqIC0gXCJ0Y05OLk5OXCIgfCBcInRjKE5OLk5OJTpOTi5OTiUpXCJcbiAgICogLSBcInRzTk4uTk5cIiB8IFwidHMoTk4uTk4lOk5OLk5OJSlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCBBdmVyYWdlXG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpbWVuc2lvbnMgb2YgdGhlIG1ldHJpY1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRpbWVuc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBkaW1lbnNpb25zTWFwPzogRGltZW5zaW9uc01hcDtcblxuICAvKipcbiAgICogVW5pdCB1c2VkIHRvIGZpbHRlciB0aGUgbWV0cmljIHN0cmVhbVxuICAgKlxuICAgKiBPbmx5IHJlZmVyIHRvIGRhdHVtcyBlbWl0dGVkIHRvIHRoZSBtZXRyaWMgc3RyZWFtIHdpdGggdGhlIGdpdmVuIHVuaXQgYW5kXG4gICAqIGlnbm9yZSBhbGwgb3RoZXJzLiBPbmx5IHVzZWZ1bCB3aGVuIGRhdHVtcyBhcmUgYmVpbmcgZW1pdHRlZCB0byB0aGUgc2FtZVxuICAgKiBtZXRyaWMgc3RyZWFtIHVuZGVyIGRpZmZlcmVudCB1bml0cy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGFsbCBtYXRyaWMgZGF0dW1zIGluIHRoZSBzdHJlYW0sIHJlZ2FyZGxlc3Mgb2YgdW5pdCxcbiAgICogd2hpY2ggaXMgcmVjb21tZW5kZWQgaW4gbmVhcmx5IGFsbCBjYXNlcy5cbiAgICpcbiAgICogQ2xvdWRXYXRjaCBkb2VzIG5vdCBob25vciB0aGlzIHByb3BlcnR5IGZvciBncmFwaHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQWxsIG1ldHJpYyBkYXR1bXMgaW4gdGhlIGdpdmVuIG1ldHJpYyBzdHJlYW1cbiAgICovXG4gIHJlYWRvbmx5IHVuaXQ/OiBVbml0O1xuXG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgdGhpcyBtZXRyaWMgd2hlbiBhZGRlZCB0byBhIEdyYXBoIGluIGEgRGFzaGJvYXJkXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIFtkeW5hbWljIGxhYmVsc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvZ3JhcGgtZHluYW1pYy1sYWJlbHMuaHRtbClcbiAgICogdG8gc2hvdyBzdW1tYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnRpcmUgZGlzcGxheWVkIHRpbWUgc2VyaWVzXG4gICAqIGluIHRoZSBsZWdlbmQuIEZvciBleGFtcGxlLCBpZiB5b3UgdXNlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW21heDogJHtNQVh9XSBNeU1ldHJpY1xuICAgKiBgYGBcbiAgICpcbiAgICogQXMgdGhlIG1ldHJpYyBsYWJlbCwgdGhlIG1heGltdW0gdmFsdWUgaW4gdGhlIHZpc2libGUgcmFuZ2Ugd2lsbFxuICAgKiBiZSBzaG93biBuZXh0IHRvIHRoZSB0aW1lIHNlcmllcyBuYW1lIGluIHRoZSBncmFwaCdzIGxlZ2VuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBsYWJlbFxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZXggY29sb3IgY29kZSwgcHJlZml4ZWQgd2l0aCAnIycgKGUuZy4gJyMwMGZmMDAnKSwgdG8gdXNlIHdoZW4gdGhpcyBtZXRyaWMgaXMgcmVuZGVyZWQgb24gYSBncmFwaC5cbiAgICogVGhlIGBDb2xvcmAgY2xhc3MgaGFzIGEgc2V0IG9mIHN0YW5kYXJkIGNvbG9ycyB0aGF0IGNhbiBiZSB1c2VkIGhlcmUuXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljIGNvbG9yXG4gICAqL1xuICByZWFkb25seSBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjb3VudCB3aGljaCB0aGlzIG1ldHJpYyBjb21lcyBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlcGxveW1lbnQgYWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiB3aGljaCB0aGlzIG1ldHJpYyBjb21lcyBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlcGxveW1lbnQgcmVnaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbWV0cmljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljUHJvcHMgZXh0ZW5kcyBDb21tb25NZXRyaWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWVzcGFjZSBvZiB0aGUgbWV0cmljLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIG1ldHJpYy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgbWV0cmljIHRoYXQgY2FuIGJlIGNoYW5nZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNPcHRpb25zIGV4dGVuZHMgQ29tbW9uTWV0cmljT3B0aW9ucyB7fVxuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSBvcHRpb25zIGZvciBNYXRoRXhwcmVzc2lvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRoRXhwcmVzc2lvbk9wdGlvbnMge1xuICAvKipcbiAgICogTGFiZWwgZm9yIHRoaXMgZXhwcmVzc2lvbiB3aGVuIGFkZGVkIHRvIGEgR3JhcGggaW4gYSBEYXNoYm9hcmRcbiAgICpcbiAgICogSWYgdGhpcyBleHByZXNzaW9uIGV2YWx1YXRlcyB0byBtb3JlIHRoYW4gb25lIHRpbWUgc2VyaWVzIChmb3JcbiAgICogZXhhbXBsZSwgdGhyb3VnaCB0aGUgdXNlIG9mIGBNRVRSSUNTKClgIG9yIGBTRUFSQ0goKWAgZXhwcmVzc2lvbnMpLFxuICAgKiBlYWNoIHRpbWUgc2VyaWVzIHdpbGwgYXBwZWFyIGluIHRoZSBncmFwaCB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIHRoZVxuICAgKiBleHByZXNzaW9uIGxhYmVsIGFuZCB0aGUgaW5kaXZpZHVhbCBtZXRyaWMgbGFiZWwuIFNwZWNpZnkgdGhlIGVtcHR5XG4gICAqIHN0cmluZyAoYCcnYCkgdG8gc3VwcHJlc3MgdGhlIGV4cHJlc3Npb24gbGFiZWwgYW5kIG9ubHkga2VlcCB0aGVcbiAgICogbWV0cmljIGxhYmVsLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSBbZHluYW1pYyBsYWJlbHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL2dyYXBoLWR5bmFtaWMtbGFiZWxzLmh0bWwpXG4gICAqIHRvIHNob3cgc3VtbWFyeSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlzcGxheWVkIHRpbWUgc2VyaWVzXG4gICAqIGluIHRoZSBsZWdlbmQuIEZvciBleGFtcGxlLCBpZiB5b3UgdXNlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW21heDogJHtNQVh9XSBNeU1ldHJpY1xuICAgKiBgYGBcbiAgICpcbiAgICogQXMgdGhlIG1ldHJpYyBsYWJlbCwgdGhlIG1heGltdW0gdmFsdWUgaW4gdGhlIHZpc2libGUgcmFuZ2Ugd2lsbFxuICAgKiBiZSBzaG93biBuZXh0IHRvIHRoZSB0aW1lIHNlcmllcyBuYW1lIGluIHRoZSBncmFwaCdzIGxlZ2VuZC4gSWYgdGhlXG4gICAqIG1hdGggZXhwcmVzc2lvbiBwcm9kdWNlcyBtb3JlIHRoYW4gb25lIHRpbWUgc2VyaWVzLCB0aGUgbWF4aW11bVxuICAgKiB3aWxsIGJlIHNob3duIGZvciBlYWNoIGluZGl2aWR1YWwgdGltZSBzZXJpZXMgcHJvZHVjZSBieSB0aGlzXG4gICAqIG1hdGggZXhwcmVzc2lvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFeHByZXNzaW9uIHZhbHVlIGlzIHVzZWQgYXMgbGFiZWxcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb2xvciBmb3IgdGhpcyBtZXRyaWMgd2hlbiBhZGRlZCB0byBhIEdyYXBoIGluIGEgRGFzaGJvYXJkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljIGNvbG9yXG4gICAqL1xuICByZWFkb25seSBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCBvdmVyIHdoaWNoIHRoZSBleHByZXNzaW9uJ3Mgc3RhdGlzdGljcyBhcmUgYXBwbGllZC5cbiAgICpcbiAgICogVGhpcyBwZXJpb2Qgb3ZlcnJpZGVzIGFsbCBwZXJpb2RzIGluIHRoZSBtZXRyaWNzIHVzZWQgaW4gdGhpc1xuICAgKiBtYXRoIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNSlcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBY2NvdW50IHRvIGV2YWx1YXRlIHNlYXJjaCBleHByZXNzaW9ucyB3aXRoaW4uXG4gICAqXG4gICAqIFNwZWNpZnlpbmcgYSBzZWFyY2hBY2NvdW50IGhhcyBubyBlZmZlY3QgdG8gdGhlIGFjY291bnQgdXNlZFxuICAgKiBmb3IgbWV0cmljcyB3aXRoaW4gdGhlIGV4cHJlc3Npb24gKHBhc3NlZCB2aWEgdXNpbmdNZXRyaWNzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBsb3ltZW50IGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBzZWFyY2hBY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWdpb24gdG8gZXZhbHVhdGUgc2VhcmNoIGV4cHJlc3Npb25zIHdpdGhpbi5cbiAgICpcbiAgICogU3BlY2lmeWluZyBhIHNlYXJjaFJlZ2lvbiBoYXMgbm8gZWZmZWN0IHRvIHRoZSByZWdpb24gdXNlZFxuICAgKiBmb3IgbWV0cmljcyB3aXRoaW4gdGhlIGV4cHJlc3Npb24gKHBhc3NlZCB2aWEgdXNpbmdNZXRyaWNzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBsb3ltZW50IHJlZ2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlYXJjaFJlZ2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIE1hdGhFeHByZXNzaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0aEV4cHJlc3Npb25Qcm9wcyBleHRlbmRzIE1hdGhFeHByZXNzaW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiBkZWZpbmluZyB0aGUgbWV0cmljLlxuICAgKlxuICAgKiBXaGVuIGFuIGV4cHJlc3Npb24gY29udGFpbnMgYSBTRUFSQ0ggZnVuY3Rpb24sIGl0IGNhbm5vdCBiZSB1c2VkXG4gICAqIHdpdGhpbiBhbiBBbGFybS5cbiAgICovXG4gIHJlYWRvbmx5IGV4cHJlc3Npb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldHJpY3MgdXNlZCBpbiB0aGUgZXhwcmVzc2lvbiwgaW4gYSBtYXAuXG4gICAqXG4gICAqIFRoZSBrZXkgaXMgdGhlIGlkZW50aWZpZXIgdGhhdCByZXByZXNlbnRzIHRoZSBnaXZlbiBtZXRyaWMgaW4gdGhlXG4gICAqIGV4cHJlc3Npb24sIGFuZCB0aGUgdmFsdWUgaXMgdGhlIGFjdHVhbCBNZXRyaWMgb2JqZWN0LlxuICAgKlxuICAgKiBUaGUgYHBlcmlvZGAgb2YgZWFjaCBtZXRyaWMgaW4gYHVzaW5nTWV0cmljc2AgaXMgaWdub3JlZCBhbmQgaW5zdGVhZCBvdmVycmlkZGVuXG4gICAqIGJ5IHRoZSBgcGVyaW9kYCBzcGVjaWZpZWQgZm9yIHRoZSBgTWF0aEV4cHJlc3Npb25gIGNvbnN0cnVjdC4gRXZlbiBpZiBubyBgcGVyaW9kYFxuICAgKiBpcyBzcGVjaWZpZWQgZm9yIHRoZSBgTWF0aEV4cHJlc3Npb25gLCBpdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGRlZmF1bHRcbiAgICogdmFsdWUgKGBEdXJhdGlvbi5taW51dGVzKDUpYCkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGRlY2xhcmUgY29uc3QgbWV0cmljczogZWxidjIuSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcztcbiAgICogbmV3IGNsb3Vkd2F0Y2guTWF0aEV4cHJlc3Npb24oe1xuICAgKiAgIGV4cHJlc3Npb246ICAnbTErbTInLFxuICAgKiAgIGxhYmVsOiAnQWxiRXJyb3JzJyxcbiAgICogICB1c2luZ01ldHJpY3M6IHtcbiAgICogICAgIG0xOiBtZXRyaWNzLmN1c3RvbSgnSFRUUENvZGVfRUxCXzUwMF9Db3VudCcsIHtcbiAgICogICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLCAvLyA8LSBUaGlzIHBlcmlvZCB3aWxsIGJlIGlnbm9yZWRcbiAgICogICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICogICAgICAgbGFiZWw6ICdIVFRQQ29kZV9FTEJfNTAwX0NvdW50JyxcbiAgICogICAgIH0pLFxuICAgKiAgICAgbTI6IG1ldHJpY3MuY3VzdG9tKCdIVFRQQ29kZV9FTEJfNTAyX0NvdW50Jywge1xuICAgKiAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksIC8vIDwtIFRoaXMgcGVyaW9kIHdpbGwgYmUgaWdub3JlZFxuICAgKiAgICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgKiAgICAgICBsYWJlbDogJ0hUVFBDb2RlX0VMQl81MDJfQ291bnQnLFxuICAgKiAgICAgfSksXG4gICAqICAgfSxcbiAgICogICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksIC8vIDwtIFRoaXMgb3ZlcnJpZGVzIHRoZSBwZXJpb2Qgb2YgZWFjaCBtZXRyaWMgaW4gYHVzaW5nTWV0cmljc2BcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIChFdmVuIGlmIG5vdCBzcGVjaWZpZWQsIGl0IGlzIG92ZXJyaWRkZW4gYnkgdGhlIGRlZmF1bHQgdmFsdWUpXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBFbXB0eSBtYXAuXG4gICAqL1xuICByZWFkb25seSB1c2luZ01ldHJpY3M/OiBSZWNvcmQ8c3RyaW5nLCBJTWV0cmljPjtcbn1cblxuLyoqXG4gKiBBIG1ldHJpYyBlbWl0dGVkIGJ5IGEgc2VydmljZVxuICpcbiAqIFRoZSBtZXRyaWMgaXMgYSBjb21iaW5hdGlvbiBvZiBhIG1ldHJpYyBpZGVudGlmaWVyIChuYW1lc3BhY2UsIG5hbWUgYW5kIGRpbWVuc2lvbnMpXG4gKiBhbmQgYW4gYWdncmVnYXRpb24gZnVuY3Rpb24gKHN0YXRpc3RpYywgcGVyaW9kIGFuZCB1bml0KS5cbiAqXG4gKiBJdCBhbHNvIGNvbnRhaW5zIG1ldGFkYXRhIHdoaWNoIGlzIHVzZWQgb25seSBpbiBncmFwaHMsIHN1Y2ggYXMgY29sb3IgYW5kIGxhYmVsLlxuICogSXQgbWFrZXMgc2Vuc2UgdG8gZW1iZWQgdGhpcyBpbiBoZXJlLCBzbyB0aGF0IGNvbXBvdW5kIGNvbnN0cnVjdHMgY2FuIGF0dGFjaFxuICogdGhhdCBtZXRhZGF0YSB0byBtZXRyaWNzIHRoZXkgZXhwb3NlLlxuICpcbiAqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgcmVzb3VyY2UsIHNvIGhlbmNlIGlzIG5vdCBhIGNvbnN0cnVjdC4gSW5zdGVhZCxcbiAqIE1ldHJpYyBpcyBhbiBhYnN0cmFjdGlvbiB0aGF0IG1ha2VzIGl0IGVhc3kgdG8gc3BlY2lmeSBtZXRyaWNzIGZvciB1c2UgaW4gYm90aFxuICogYWxhcm1zIGFuZCBncmFwaHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRyaWMgaW1wbGVtZW50cyBJTWV0cmljIHtcbiAgLyoqXG4gICAqIEdyYW50IHBlcm1pc3Npb25zIHRvIHRoZSBnaXZlbiBpZGVudGl0eSB0byB3cml0ZSBtZXRyaWNzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgSUFNIGlkZW50aXR5IHRvIGdpdmUgcGVybWlzc2lvbnMgdG8uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyYW50UHV0TWV0cmljRGF0YShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIERpbWVuc2lvbnMgb2YgdGhpcyBtZXRyaWMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpbWVuc2lvbnM/OiBEaW1lbnNpb25zTWFwO1xuICAvKiogTmFtZXNwYWNlIG9mIHRoaXMgbWV0cmljICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqIE5hbWUgb2YgdGhpcyBtZXRyaWMgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1ldHJpY05hbWU6IHN0cmluZztcbiAgLyoqIFBlcmlvZCBvZiB0aGlzIG1ldHJpYyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGVyaW9kOiBEdXJhdGlvbjtcbiAgLyoqIFN0YXRpc3RpYyBvZiB0aGlzIG1ldHJpYyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGlzdGljOiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBmb3IgdGhpcyBtZXRyaWMgd2hlbiBhZGRlZCB0byBhIEdyYXBoIGluIGEgRGFzaGJvYXJkICovXG4gIHB1YmxpYyByZWFkb25seSBsYWJlbD86IHN0cmluZztcbiAgLyoqIFRoZSBoZXggY29sb3IgY29kZSB1c2VkIHdoZW4gdGhpcyBtZXRyaWMgaXMgcmVuZGVyZWQgb24gYSBncmFwaC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBVbml0IG9mIHRoZSBtZXRyaWMuICovXG4gIHB1YmxpYyByZWFkb25seSB1bml0PzogVW5pdDtcblxuICAvKiogQWNjb3VudCB3aGljaCB0aGlzIG1ldHJpYyBjb21lcyBmcm9tICovXG4gIHB1YmxpYyByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKiBSZWdpb24gd2hpY2ggdGhpcyBtZXRyaWMgY29tZXMgZnJvbS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2FybmluZ3MgYXR0YWNoZWQgdG8gdGhpcyBtZXRyaWMuXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIHdhcm5pbmdzVjJcbiAgICoqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2FybmluZ3M/OiBzdHJpbmdbXTtcblxuICAvKiogV2FybmluZ3MgYXR0YWNoZWQgdG8gdGhpcyBtZXRyaWMuICovXG4gIHB1YmxpYyByZWFkb25seSB3YXJuaW5nc1YyPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kIHx8IER1cmF0aW9uLm1pbnV0ZXMoNSk7XG4gICAgY29uc3QgcGVyaW9kU2VjID0gdGhpcy5wZXJpb2QudG9TZWNvbmRzKCk7XG4gICAgaWYgKFxuICAgICAgcGVyaW9kU2VjICE9PSAxICYmXG4gICAgICBwZXJpb2RTZWMgIT09IDUgJiZcbiAgICAgIHBlcmlvZFNlYyAhPT0gMTAgJiZcbiAgICAgIHBlcmlvZFNlYyAhPT0gMzAgJiZcbiAgICAgIHBlcmlvZFNlYyAlIDYwICE9PSAwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAncGVyaW9kJyBtdXN0IGJlIDEsIDUsIDEwLCAzMCwgb3IgYSBtdWx0aXBsZSBvZiA2MCBzZWNvbmRzLCByZWNlaXZlZCAke3BlcmlvZFNlY31gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLndhcm5pbmdzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZGltZW5zaW9ucyA9IHRoaXMudmFsaWRhdGVEaW1lbnNpb25zKHByb3BzLmRpbWVuc2lvbnNNYXApO1xuICAgIHRoaXMubmFtZXNwYWNlID0gcHJvcHMubmFtZXNwYWNlO1xuICAgIHRoaXMubWV0cmljTmFtZSA9IHByb3BzLm1ldHJpY05hbWU7XG5cbiAgICBjb25zdCBwYXJzZWRTdGF0ID0gcGFyc2VTdGF0aXN0aWMocHJvcHMuc3RhdGlzdGljIHx8IFN0YXRzLkFWRVJBR0UpO1xuICAgIGlmIChwYXJzZWRTdGF0LnR5cGUgPT09IFwiZ2VuZXJpY1wiKSB7XG4gICAgICAvLyBVbnJlY29nbml6ZWQgc3RhdGlzdGljLCBkbyBub3QgdGhyb3csIGp1c3Qgd2FyblxuICAgICAgLy8gVGhlcmUgbWF5IGJlIGEgbmV3IHN0YXRpc3RpYyB0aGF0IHRoaXMgbGliIGRvZXMgbm90IHN1cHBvcnQgeWV0XG4gICAgICBjb25zdCBsYWJlbCA9IHByb3BzLmxhYmVsID8gYCwgbGFiZWwgXCIke3Byb3BzLmxhYmVsfVwiYCA6IFwiXCI7XG5cbiAgICAgIGNvbnN0IHdhcm5pbmcgPVxuICAgICAgICBgVW5yZWNvZ25pemVkIHN0YXRpc3RpYyBcIiR7cHJvcHMuc3RhdGlzdGljfVwiIGZvciBtZXRyaWMgd2l0aCBuYW1lc3BhY2UgXCIke3Byb3BzLm5hbWVzcGFjZX1cIiR7bGFiZWx9IGFuZCBtZXRyaWMgbmFtZSBcIiR7cHJvcHMubWV0cmljTmFtZX1cIi5gICtcbiAgICAgICAgXCIgUHJlZmVyYWJseSB1c2UgdGhlIGBhd3NfY2xvdWR3YXRjaC5TdGF0c2AgaGVscGVyIGNsYXNzIHRvIHNwZWNpZnkgYSBzdGF0aXN0aWMuXCIgK1xuICAgICAgICBcIiBZb3UgY2FuIGlnbm9yZSB0aGlzIHdhcm5pbmcgaWYgeW91ciBzdGF0aXN0aWMgaXMgdmFsaWQgYnV0IG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHRoZSBgYXdzX2Nsb3Vkd2F0Y2guU3RhdHNgIGhlbHBlciBjbGFzcy5cIjtcbiAgICAgIHRoaXMud2FybmluZ3NWMiA9IHtcbiAgICAgICAgXCJDbG91ZFdhdGNoOkFsYXJtOlVucmVjb2duaXplZFN0YXRpc3RpY1wiOiB3YXJuaW5nLFxuICAgICAgfTtcbiAgICAgIHRoaXMud2FybmluZ3MgPSBbd2FybmluZ107XG4gICAgfVxuICAgIHRoaXMuc3RhdGlzdGljID0gbm9ybWFsaXplU3RhdGlzdGljKHBhcnNlZFN0YXQpO1xuXG4gICAgdGhpcy5sYWJlbCA9IHByb3BzLmxhYmVsO1xuICAgIHRoaXMuY29sb3IgPSBwcm9wcy5jb2xvcjtcbiAgICB0aGlzLnVuaXQgPSBwcm9wcy51bml0O1xuICAgIHRoaXMuYWNjb3VudCA9IHByb3BzLmFjY291bnQ7XG4gICAgdGhpcy5yZWdpb24gPSBwcm9wcy5yZWdpb247XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgY29weSBvZiBNZXRyaWMgYHdpdGhgIHByb3BlcnRpZXMgY2hhbmdlZC5cbiAgICpcbiAgICogQWxsIHByb3BlcnRpZXMgZXhjZXB0IG5hbWVzcGFjZSBhbmQgbWV0cmljTmFtZSBjYW4gYmUgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFRoZSBzZXQgb2YgcHJvcGVydGllcyB0byBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgd2l0aChwcm9wczogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgLy8gU2hvcnQtY2lyY3VpdCBjcmVhdGluZyBhIG5ldyBvYmplY3QgaWYgdGhlcmUgd291bGQgYmUgbm8gZWZmZWN0aXZlIGNoYW5nZVxuICAgIGlmIChcbiAgICAgIChwcm9wcy5sYWJlbCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmxhYmVsID09PSB0aGlzLmxhYmVsKSAmJlxuICAgICAgKHByb3BzLmNvbG9yID09PSB1bmRlZmluZWQgfHwgcHJvcHMuY29sb3IgPT09IHRoaXMuY29sb3IpICYmXG4gICAgICAocHJvcHMuc3RhdGlzdGljID09PSB1bmRlZmluZWQgfHwgcHJvcHMuc3RhdGlzdGljID09PSB0aGlzLnN0YXRpc3RpYykgJiZcbiAgICAgIChwcm9wcy51bml0ID09PSB1bmRlZmluZWQgfHwgcHJvcHMudW5pdCA9PT0gdGhpcy51bml0KSAmJlxuICAgICAgKHByb3BzLmFjY291bnQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5hY2NvdW50ID09PSB0aGlzLmFjY291bnQpICYmXG4gICAgICAocHJvcHMucmVnaW9uID09PSB1bmRlZmluZWQgfHwgcHJvcHMucmVnaW9uID09PSB0aGlzLnJlZ2lvbikgJiZcbiAgICAgIC8vIEZvciB0aGVzZSB3ZSdyZSBub3QgZ29pbmcgdG8gZG8gZGVlcCBlcXVhbGl0eSwgbWlzc2VzIHNvbWUgb3Bwb3J0dW5pdHkgZm9yIG9wdGltaXphdGlvblxuICAgICAgLy8gYnV0IHRoYXQncyBva2F5LlxuICAgICAgcHJvcHMuZGltZW5zaW9uc01hcCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAocHJvcHMucGVyaW9kID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgcHJvcHMucGVyaW9kLnRvU2Vjb25kcygpID09PSB0aGlzLnBlcmlvZC50b1NlY29uZHMoKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHByb3BzLmRpbWVuc2lvbnNNYXAgPz8gdGhpcy5kaW1lbnNpb25zLFxuICAgICAgbmFtZXNwYWNlOiB0aGlzLm5hbWVzcGFjZSxcbiAgICAgIG1ldHJpY05hbWU6IHRoaXMubWV0cmljTmFtZSxcbiAgICAgIHBlcmlvZDogaWZVbmRlZmluZWQocHJvcHMucGVyaW9kLCB0aGlzLnBlcmlvZCksXG4gICAgICBzdGF0aXN0aWM6IGlmVW5kZWZpbmVkKHByb3BzLnN0YXRpc3RpYywgdGhpcy5zdGF0aXN0aWMpLFxuICAgICAgdW5pdDogaWZVbmRlZmluZWQocHJvcHMudW5pdCwgdGhpcy51bml0KSxcbiAgICAgIGxhYmVsOiBpZlVuZGVmaW5lZChwcm9wcy5sYWJlbCwgdGhpcy5sYWJlbCksXG4gICAgICBjb2xvcjogaWZVbmRlZmluZWQocHJvcHMuY29sb3IsIHRoaXMuY29sb3IpLFxuICAgICAgYWNjb3VudDogaWZVbmRlZmluZWQocHJvcHMuYWNjb3VudCwgdGhpcy5hY2NvdW50KSxcbiAgICAgIHJlZ2lvbjogaWZVbmRlZmluZWQocHJvcHMucmVnaW9uLCB0aGlzLnJlZ2lvbiksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHRoZSBtZXRyaWMgb2JqZWN0IHRvIHRoZSBnaXZlbiBjb25zdHJ1Y3Qgc2NvcGVcbiAgICpcbiAgICogUmV0dXJucyBhIE1ldHJpYyBvYmplY3QgdGhhdCB1c2VzIHRoZSBhY2NvdW50IGFuZCByZWdpb24gZnJvbSB0aGUgU3RhY2tcbiAgICogdGhlIGdpdmVuIGNvbnN0cnVjdCBpcyBkZWZpbmVkIGluLiBJZiB0aGUgbWV0cmljIGlzIHN1YnNlcXVlbnRseSB1c2VkXG4gICAqIGluIGEgRGFzaGJvYXJkIG9yIEFsYXJtIGluIGEgZGlmZmVyZW50IFN0YWNrIGRlZmluZWQgaW4gYSBkaWZmZXJlbnRcbiAgICogYWNjb3VudCBvciByZWdpb24sIHRoZSBhcHByb3ByaWF0ZSAncmVnaW9uJyBhbmQgJ2FjY291bnQnIGZpZWxkc1xuICAgKiB3aWxsIGJlIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBJZiB0aGUgc2NvcGUgd2UgYXR0YWNoIHRvIGlzIGluIGFuIGVudmlyb25tZW50LWFnbm9zdGljIHN0YWNrLFxuICAgKiBub3RoaW5nIGlzIGRvbmUgYW5kIHRoZSBzYW1lIE1ldHJpYyBvYmplY3QgaXMgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG8oc2NvcGU6IElDb25zdHJ1Y3QpOiBNZXRyaWMge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuXG4gICAgcmV0dXJuIHRoaXMud2l0aCh7XG4gICAgICByZWdpb246IFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5yZWdpb24pID8gdW5kZWZpbmVkIDogc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogVG9rZW4uaXNVbnJlc29sdmVkKHN0YWNrLmFjY291bnQpID8gdW5kZWZpbmVkIDogc3RhY2suYWNjb3VudCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldHJpY0NvbmZpZygpOiBNZXRyaWNDb25maWcge1xuICAgIC8vIGNvbnN0IGRpbXMgPSB0aGlzLmRpbWVuc2lvbnNBc0xpc3QoKTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljU3RhdDoge1xuICAgICAgICBkaW1lbnNpb25zOlxuICAgICAgICAgIHRoaXMuZGltZW5zaW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLmRpbWVuc2lvbnMpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gdGhpcy5kaW1lbnNpb25zXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZXNwYWNlOiB0aGlzLm5hbWVzcGFjZSxcbiAgICAgICAgbWV0cmljTmFtZTogdGhpcy5tZXRyaWNOYW1lLFxuICAgICAgICBwZXJpb2Q6IHRoaXMucGVyaW9kLFxuICAgICAgICBzdGF0aXN0aWM6IHRoaXMuc3RhdGlzdGljLFxuICAgICAgICB1bml0RmlsdGVyOiB0aGlzLnVuaXQsXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgIH0sXG4gICAgICByZW5kZXJpbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yLFxuICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgdG9NZXRyaWNDb25maWcoKSAqL1xuICBwdWJsaWMgdG9BbGFybUNvbmZpZygpOiBNZXRyaWNBbGFybUNvbmZpZyB7XG4gICAgY29uc3QgbWV0cmljQ29uZmlnID0gdGhpcy50b01ldHJpY0NvbmZpZygpO1xuICAgIGlmIChtZXRyaWNDb25maWcubWV0cmljU3RhdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVXNpbmcgYSBtYXRoIGV4cHJlc3Npb24gaXMgbm90IHN1cHBvcnRlZCBoZXJlLiBQYXNzIGEgJ01ldHJpYycgb2JqZWN0IGluc3RlYWRcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VTdGF0aXN0aWMobWV0cmljQ29uZmlnLm1ldHJpY1N0YXQuc3RhdGlzdGljKTtcblxuICAgIGxldCBleHRlbmRlZFN0YXRpc3RpYzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJzaW5nbGVcIikge1xuICAgICAgZXh0ZW5kZWRTdGF0aXN0aWMgPSBzaW5nbGVTdGF0aXN0aWNUb1N0cmluZyhwYXJzZWQpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09IFwicGFpclwiKSB7XG4gICAgICBleHRlbmRlZFN0YXRpc3RpYyA9IHBhaXJTdGF0aXN0aWNUb1N0cmluZyhwYXJzZWQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkaW1lbnNpb25zOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5kaW1lbnNpb25zLFxuICAgICAgbmFtZXNwYWNlOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5uYW1lc3BhY2UsXG4gICAgICBtZXRyaWNOYW1lOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5tZXRyaWNOYW1lLFxuICAgICAgcGVyaW9kOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5wZXJpb2QudG9TZWNvbmRzKCksXG4gICAgICBzdGF0aXN0aWM6XG4gICAgICAgIHBhcnNlZC50eXBlID09PSBcInNpbXBsZVwiID8gKHBhcnNlZC5zdGF0aXN0aWMgYXMgU3RhdGlzdGljKSA6IHVuZGVmaW5lZCxcbiAgICAgIGV4dGVuZGVkU3RhdGlzdGljLFxuICAgICAgdW5pdDogdGhpcy51bml0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRvTWV0cmljQ29uZmlnKClcbiAgICovXG4gIHB1YmxpYyB0b0dyYXBoQ29uZmlnKCk6IE1ldHJpY0dyYXBoQ29uZmlnIHtcbiAgICBjb25zdCBtZXRyaWNDb25maWcgPSB0aGlzLnRvTWV0cmljQ29uZmlnKCk7XG4gICAgaWYgKG1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVc2luZyBhIG1hdGggZXhwcmVzc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIFBhc3MgYSAnTWV0cmljJyBvYmplY3QgaW5zdGVhZFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGltZW5zaW9uczogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQuZGltZW5zaW9ucyxcbiAgICAgIG5hbWVzcGFjZTogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQubmFtZXNwYWNlLFxuICAgICAgbWV0cmljTmFtZTogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQubWV0cmljTmFtZSxcbiAgICAgIHJlbmRlcmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgcGVyaW9kOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5wZXJpb2QudG9TZWNvbmRzKCksXG4gICAgICAgIHN0YXQ6IG1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0LnN0YXRpc3RpYyxcbiAgICAgICAgY29sb3I6IGFzU3RyaW5nKG1ldHJpY0NvbmZpZy5yZW5kZXJpbmdQcm9wZXJ0aWVzPy5jb2xvciksXG4gICAgICAgIGxhYmVsOiBhc1N0cmluZyhtZXRyaWNDb25maWcucmVuZGVyaW5nUHJvcGVydGllcz8ubGFiZWwpLFxuICAgICAgfSxcbiAgICAgIC8vIGRlcHJlY2F0ZWQgcHJvcGVydGllcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgIHBlcmlvZDogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQucGVyaW9kLnRvU2Vjb25kcygpLFxuICAgICAgc3RhdGlzdGljOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5zdGF0aXN0aWMsXG4gICAgICBjb2xvcjogYXNTdHJpbmcobWV0cmljQ29uZmlnLnJlbmRlcmluZ1Byb3BlcnRpZXM/LmNvbG9yKSxcbiAgICAgIGxhYmVsOiBhc1N0cmluZyhtZXRyaWNDb25maWcucmVuZGVyaW5nUHJvcGVydGllcz8ubGFiZWwpLFxuICAgICAgdW5pdDogdGhpcy51bml0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhIG5ldyBBbGFybSBmb3IgdGhpcyBtZXRyaWNcbiAgICpcbiAgICogQ29tYmluZXMgYm90aCBwcm9wZXJ0aWVzIHRoYXQgbWF5IGFkanVzdCB0aGUgbWV0cmljIChhZ2dyZWdhdGlvbikgYXMgd2VsbFxuICAgKiBhcyBhbGFybSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUFsYXJtKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQ3JlYXRlQWxhcm1PcHRpb25zLFxuICApOiBBbGFybSB7XG4gICAgcmV0dXJuIG5ldyBBbGFybShzY29wZSwgaWQsIHtcbiAgICAgIG1ldHJpYzogdGhpcy53aXRoKHtcbiAgICAgICAgc3RhdGlzdGljOiBwcm9wcy5zdGF0aXN0aWMsXG4gICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kLFxuICAgICAgfSksXG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IHByb3BzLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IHByb3BzLmNvbXBhcmlzb25PcGVyYXRvcixcbiAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgIHRocmVzaG9sZDogcHJvcHMudGhyZXNob2xkLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgZXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGU6IHByb3BzLmV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogcHJvcHMudHJlYXRNaXNzaW5nRGF0YSxcbiAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcy5hY3Rpb25zRW5hYmxlZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCB8fCB0aGlzLm1ldHJpY05hbWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGltZW5zaW9ucyhkaW1zPzogRGltZW5zaW9uc01hcCk6IERpbWVuc2lvbnNNYXAgfCB1bmRlZmluZWQge1xuICAgIGlmICghZGltcykge1xuICAgICAgcmV0dXJuIGRpbXM7XG4gICAgfVxuXG4gICAgdmFyIGRpbXNBcnJheSA9IE9iamVjdC5rZXlzKGRpbXMpO1xuICAgIGlmIChkaW1zQXJyYXk/Lmxlbmd0aCA+IDMwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGltZW5zaW9ucyBpcyAzMCwgcmVjZWl2ZWQgJHtkaW1zQXJyYXkubGVuZ3RofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGRpbXNBcnJheS5tYXAoKGtleSkgPT4ge1xuICAgICAgaWYgKGRpbXNba2V5XSA9PT0gdW5kZWZpbmVkIHx8IGRpbXNba2V5XSA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpbWVuc2lvbiB2YWx1ZSBvZiAnJHtkaW1zW2tleV19JyBpcyBpbnZhbGlkYCk7XG4gICAgICB9XG4gICAgICBpZiAoa2V5Lmxlbmd0aCA8IDEgfHwga2V5Lmxlbmd0aCA+IDI1NSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYERpbWVuc2lvbiBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMSBhbmQgbm8gbW9yZSB0aGFuIDI1NSBjaGFyYWN0ZXJzOyByZWNlaXZlZCAke2tleX1gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGltc1trZXldLmxlbmd0aCA8IDEgfHwgZGltc1trZXldLmxlbmd0aCA+IDI1NSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYERpbWVuc2lvbiB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDEgYW5kIG5vIG1vcmUgdGhhbiAyNTUgY2hhcmFjdGVyczsgcmVjZWl2ZWQgJHtkaW1zW2tleV19YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkaW1zO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzU3RyaW5nKHg/OiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHggPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiB4ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBzdHJpbmcsIGdvdCAke3h9YCk7XG4gIH1cbiAgcmV0dXJuIHg7XG59XG5cbi8qKlxuICogQSBtYXRoIGV4cHJlc3Npb24gYnVpbHQgd2l0aCBtZXRyaWMocykgZW1pdHRlZCBieSBhIHNlcnZpY2VcbiAqXG4gKiBUaGUgbWF0aCBleHByZXNzaW9uIGlzIGEgY29tYmluYXRpb24gb2YgYW4gZXhwcmVzc2lvbiAoeCt5KSBhbmQgbWV0cmljcyB0byBhcHBseSBleHByZXNzaW9uIG9uLlxuICogSXQgYWxzbyBjb250YWlucyBtZXRhZGF0YSB3aGljaCBpcyB1c2VkIG9ubHkgaW4gZ3JhcGhzLCBzdWNoIGFzIGNvbG9yIGFuZCBsYWJlbC5cbiAqIEl0IG1ha2VzIHNlbnNlIHRvIGVtYmVkIHRoaXMgaW4gaGVyZSwgc28gdGhhdCBjb21wb3VuZCBjb25zdHJ1Y3RzIGNhbiBhdHRhY2hcbiAqIHRoYXQgbWV0YWRhdGEgdG8gbWV0cmljcyB0aGV5IGV4cG9zZS5cbiAqXG4gKiBNYXRoRXhwcmVzc2lvbiBjYW4gYWxzbyBiZSB1c2VkIGZvciBzZWFyY2ggZXhwcmVzc2lvbnMuIEluIHRoaXMgY2FzZSxcbiAqIGl0IGFsc28gb3B0aW9uYWxseSBhY2NlcHRzIGEgc2VhcmNoUmVnaW9uIGFuZCBzZWFyY2hBY2NvdW50IHByb3BlcnR5IGZvciBjcm9zcy1lbnZpcm9ubWVudFxuICogc2VhcmNoIGV4cHJlc3Npb25zLlxuICpcbiAqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgcmVzb3VyY2UsIHNvIGhlbmNlIGlzIG5vdCBhIGNvbnN0cnVjdC4gSW5zdGVhZCxcbiAqIE1hdGhFeHByZXNzaW9uIGlzIGFuIGFic3RyYWN0aW9uIHRoYXQgbWFrZXMgaXQgZWFzeSB0byBzcGVjaWZ5IG1ldHJpY3MgZm9yIHVzZSBpbiBib3RoXG4gKiBhbGFybXMgYW5kIGdyYXBocy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdGhFeHByZXNzaW9uIGltcGxlbWVudHMgSU1ldHJpYyB7XG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiBkZWZpbmluZyB0aGUgbWV0cmljLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4cHJlc3Npb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldHJpY3MgdXNlZCBpbiB0aGUgZXhwcmVzc2lvbiBhcyBLZXlWYWx1ZVBhaXIgPGlkLCBtZXRyaWM+LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzaW5nTWV0cmljczogUmVjb3JkPHN0cmluZywgSU1ldHJpYz47XG5cbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGlzIG1ldHJpYyB3aGVuIGFkZGVkIHRvIGEgR3JhcGguXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZXggY29sb3IgY29kZSwgcHJlZml4ZWQgd2l0aCAnIycgKGUuZy4gJyMwMGZmMDAnKSwgdG8gdXNlIHdoZW4gdGhpcyBtZXRyaWMgaXMgcmVuZGVyZWQgb24gYSBncmFwaC5cbiAgICogVGhlIGBDb2xvcmAgY2xhc3MgaGFzIGEgc2V0IG9mIHN0YW5kYXJkIGNvbG9ycyB0aGF0IGNhbiBiZSB1c2VkIGhlcmUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29sb3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFnZ3JlZ2F0aW9uIHBlcmlvZCBvZiB0aGlzIG1ldHJpY1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBlcmlvZDogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIEFjY291bnQgdG8gZXZhbHVhdGUgc2VhcmNoIGV4cHJlc3Npb25zIHdpdGhpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hBY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWdpb24gdG8gZXZhbHVhdGUgc2VhcmNoIGV4cHJlc3Npb25zIHdpdGhpbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hSZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdhcm5pbmdzIGdlbmVyYXRlZCBieSB0aGlzIG1hdGggZXhwcmVzc2lvblxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSB3YXJuaW5nc1YyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2FybmluZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2FybmluZ3MgZ2VuZXJhdGVkIGJ5IHRoaXMgbWF0aCBleHByZXNzaW9uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2FybmluZ3NWMj86IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogTWF0aEV4cHJlc3Npb25Qcm9wcykge1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kIHx8IER1cmF0aW9uLm1pbnV0ZXMoNSk7XG4gICAgdGhpcy5leHByZXNzaW9uID0gcHJvcHMuZXhwcmVzc2lvbjtcbiAgICB0aGlzLmxhYmVsID0gcHJvcHMubGFiZWw7XG4gICAgdGhpcy5jb2xvciA9IHByb3BzLmNvbG9yO1xuICAgIHRoaXMuc2VhcmNoQWNjb3VudCA9IHByb3BzLnNlYXJjaEFjY291bnQ7XG4gICAgdGhpcy5zZWFyY2hSZWdpb24gPSBwcm9wcy5zZWFyY2hSZWdpb247XG5cbiAgICBjb25zdCB7IHJlY29yZCwgb3ZlcnJpZGRlbiB9ID0gY2hhbmdlQWxsUGVyaW9kcyhcbiAgICAgIHByb3BzLnVzaW5nTWV0cmljcyA/PyB7fSxcbiAgICAgIHRoaXMucGVyaW9kLFxuICAgICk7XG4gICAgdGhpcy51c2luZ01ldHJpY3MgPSByZWNvcmQ7XG5cbiAgICBjb25zdCB3YXJuaW5nczogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgaWYgKG92ZXJyaWRkZW4pIHtcbiAgICAgIHdhcm5pbmdzW1wiQ2xvdWRXYXRjaDpNYXRoOk1ldHJpY3NQZXJpb2RzT3ZlcnJpZGRlblwiXSA9XG4gICAgICAgIGBQZXJpb2RzIG9mIG1ldHJpY3MgaW4gJ3VzaW5nTWV0cmljcycgZm9yIE1hdGggZXhwcmVzc2lvbiAnJHt0aGlzLmV4cHJlc3Npb259JyBoYXZlIGJlZW4gb3ZlcnJpZGRlbiB0byAke3RoaXMucGVyaW9kLnRvU2Vjb25kcygpfSBzZWNvbmRzLmA7XG4gICAgfVxuXG4gICAgY29uc3QgaW52YWxpZFZhcmlhYmxlTmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLnVzaW5nTWV0cmljcykuZmlsdGVyKFxuICAgICAgKHgpID0+ICF2YWxpZFZhcmlhYmxlTmFtZSh4KSxcbiAgICApO1xuICAgIGlmIChpbnZhbGlkVmFyaWFibGVOYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIHZhcmlhYmxlIG5hbWVzIGluIGV4cHJlc3Npb246ICR7aW52YWxpZFZhcmlhYmxlTmFtZXN9LiBNdXN0IHN0YXJ0IHdpdGggbG93ZXJjYXNlIGxldHRlciBhbmQgb25seSBjb250YWluIGFscGhhbnVtZXJpY3MuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0ZU5vSWRDb25mbGljdHMoKTtcblxuICAgIC8vIENoZWNrIHRoYXQgYWxsIElEcyB1c2VkIGluIHRoZSBleHByZXNzaW9uIGFyZSBhbHNvIGluIHRoZSBgdXNpbmdNZXRyaWNzYCBtYXAuIFdlXG4gICAgLy8gY2FuJ3QgdGhyb3cgb24gdGhpcyBhbnltb3JlIHNpbmNlIHdlIGRpZG4ndCB1c2UgdG8gZG8gdGhpcyB2YWxpZGF0aW9uIGZyb20gdGhlIHN0YXJ0XG4gICAgLy8gYW5kIG5vdyB0aGVyZSB3aWxsIGJlIGxvYWRzIG9mIHBlb3BsZSB3aG8gYXJlIHZpb2xhdGluZyB0aGUgZXhwZWN0ZWQgY29udHJhY3QsIGJ1dFxuICAgIC8vIHdlIGNhbiBhZGQgd2FybmluZ3MuXG4gICAgY29uc3QgbWlzc2luZ0lkZW50aWZpZXJzID0gYWxsSWRlbnRpZmllcnNJbkV4cHJlc3Npb24oXG4gICAgICB0aGlzLmV4cHJlc3Npb24sXG4gICAgKS5maWx0ZXIoKGkpID0+ICF0aGlzLnVzaW5nTWV0cmljc1tpXSk7XG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5leHByZXNzaW9uXG4gICAgICAgIC50b1VwcGVyQ2FzZSgpXG4gICAgICAgIC5tYXRjaChcIlxcXFxzKklOU0lHSFRfUlVMRV9NRVRSSUN8U0VMRUNUfFNFQVJDSHxNRVRSSUNTXFxcXHMuKlwiKSAmJlxuICAgICAgbWlzc2luZ0lkZW50aWZpZXJzLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHdhcm5pbmdzW1wiQ2xvdWRXYXRjaDpNYXRoOlVua25vd25JZGVudGlmaWVyXCJdID1cbiAgICAgICAgYE1hdGggZXhwcmVzc2lvbiAnJHt0aGlzLmV4cHJlc3Npb259JyByZWZlcmVuY2VzIHVua25vd24gaWRlbnRpZmllcnM6ICR7bWlzc2luZ0lkZW50aWZpZXJzLmpvaW4oXCIsIFwiKX0uIFBsZWFzZSBhZGQgdGhlbSB0byB0aGUgJ3VzaW5nTWV0cmljcycgbWFwLmA7XG4gICAgfVxuXG4gICAgLy8gQWxzbyBjb3B5IHdhcm5pbmdzIGZyb20gZGVlcGVyIGxldmVscyBzbyBncmFwaHMsIGFsYXJtcyBvbmx5IGhhdmUgdG8gaW5zcGVjdCB0aGUgdG9wLWxldmVsIG9iamVjdHNcbiAgICBmb3IgKGNvbnN0IG0gb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnVzaW5nTWV0cmljcykpIHtcbiAgICAgIGZvciAoY29uc3QgW2lkLCBtZXNzYWdlXSBvZiBPYmplY3QuZW50cmllcyhtLndhcm5pbmdzVjIgPz8ge30pKSB7XG4gICAgICAgIHdhcm5pbmdzW2lkXSA9IG1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHdhcm5pbmdzKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLndhcm5pbmdzID0gQXJyYXkuZnJvbShPYmplY3QudmFsdWVzKHdhcm5pbmdzKSk7XG4gICAgICB0aGlzLndhcm5pbmdzVjIgPSB3YXJuaW5ncztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgY29weSBvZiBNZXRyaWMgd2l0aCBwcm9wZXJ0aWVzIGNoYW5nZWQuXG4gICAqXG4gICAqIEFsbCBwcm9wZXJ0aWVzIGV4Y2VwdCBuYW1lc3BhY2UgYW5kIG1ldHJpY05hbWUgY2FuIGJlIGNoYW5nZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgc2V0IG9mIHByb3BlcnRpZXMgdG8gY2hhbmdlLlxuICAgKi9cbiAgcHVibGljIHdpdGgocHJvcHM6IE1hdGhFeHByZXNzaW9uT3B0aW9ucyk6IE1hdGhFeHByZXNzaW9uIHtcbiAgICAvLyBTaG9ydC1jaXJjdWl0IGNyZWF0aW5nIGEgbmV3IG9iamVjdCBpZiB0aGVyZSB3b3VsZCBiZSBubyBlZmZlY3RpdmUgY2hhbmdlXG4gICAgaWYgKFxuICAgICAgKHByb3BzLmxhYmVsID09PSB1bmRlZmluZWQgfHwgcHJvcHMubGFiZWwgPT09IHRoaXMubGFiZWwpICYmXG4gICAgICAocHJvcHMuY29sb3IgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5jb2xvciA9PT0gdGhpcy5jb2xvcikgJiZcbiAgICAgIChwcm9wcy5wZXJpb2QgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBwcm9wcy5wZXJpb2QudG9TZWNvbmRzKCkgPT09IHRoaXMucGVyaW9kLnRvU2Vjb25kcygpKSAmJlxuICAgICAgKHByb3BzLnNlYXJjaEFjY291bnQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBwcm9wcy5zZWFyY2hBY2NvdW50ID09PSB0aGlzLnNlYXJjaEFjY291bnQpICYmXG4gICAgICAocHJvcHMuc2VhcmNoUmVnaW9uID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgcHJvcHMuc2VhcmNoUmVnaW9uID09PSB0aGlzLnNlYXJjaFJlZ2lvbilcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogdGhpcy5leHByZXNzaW9uLFxuICAgICAgdXNpbmdNZXRyaWNzOiB0aGlzLnVzaW5nTWV0cmljcyxcbiAgICAgIGxhYmVsOiBpZlVuZGVmaW5lZChwcm9wcy5sYWJlbCwgdGhpcy5sYWJlbCksXG4gICAgICBjb2xvcjogaWZVbmRlZmluZWQocHJvcHMuY29sb3IsIHRoaXMuY29sb3IpLFxuICAgICAgcGVyaW9kOiBpZlVuZGVmaW5lZChwcm9wcy5wZXJpb2QsIHRoaXMucGVyaW9kKSxcbiAgICAgIHNlYXJjaEFjY291bnQ6IGlmVW5kZWZpbmVkKHByb3BzLnNlYXJjaEFjY291bnQsIHRoaXMuc2VhcmNoQWNjb3VudCksXG4gICAgICBzZWFyY2hSZWdpb246IGlmVW5kZWZpbmVkKHByb3BzLnNlYXJjaFJlZ2lvbiwgdGhpcy5zZWFyY2hSZWdpb24pLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB0b01ldHJpY0NvbmZpZygpXG4gICAqL1xuICBwdWJsaWMgdG9BbGFybUNvbmZpZygpOiBNZXRyaWNBbGFybUNvbmZpZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJVc2luZyBhIG1hdGggZXhwcmVzc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIFBhc3MgYSAnTWV0cmljJyBvYmplY3QgaW5zdGVhZFwiLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRvTWV0cmljQ29uZmlnKClcbiAgICovXG4gIHB1YmxpYyB0b0dyYXBoQ29uZmlnKCk6IE1ldHJpY0dyYXBoQ29uZmlnIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIlVzaW5nIGEgbWF0aCBleHByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZS4gUGFzcyBhICdNZXRyaWMnIG9iamVjdCBpbnN0ZWFkXCIsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldHJpY0NvbmZpZygpOiBNZXRyaWNDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBtYXRoRXhwcmVzc2lvbjoge1xuICAgICAgICBwZXJpb2Q6IHRoaXMucGVyaW9kLnRvU2Vjb25kcygpLFxuICAgICAgICBleHByZXNzaW9uOiB0aGlzLmV4cHJlc3Npb24sXG4gICAgICAgIHVzaW5nTWV0cmljczogdGhpcy51c2luZ01ldHJpY3MsXG4gICAgICAgIHNlYXJjaEFjY291bnQ6IHRoaXMuc2VhcmNoQWNjb3VudCxcbiAgICAgICAgc2VhcmNoUmVnaW9uOiB0aGlzLnNlYXJjaFJlZ2lvbixcbiAgICAgIH0sXG4gICAgICByZW5kZXJpbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsLFxuICAgICAgICBjb2xvcjogdGhpcy5jb2xvcixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGEgbmV3IEFsYXJtIGZvciB0aGlzIG1ldHJpY1xuICAgKlxuICAgKiBDb21iaW5lcyBib3RoIHByb3BlcnRpZXMgdGhhdCBtYXkgYWRqdXN0IHRoZSBtZXRyaWMgKGFnZ3JlZ2F0aW9uKSBhcyB3ZWxsXG4gICAqIGFzIGFsYXJtIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlQWxhcm0oXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDcmVhdGVBbGFybU9wdGlvbnMsXG4gICk6IEFsYXJtIHtcbiAgICByZXR1cm4gbmV3IEFsYXJtKHNjb3BlLCBpZCwge1xuICAgICAgbWV0cmljOiB0aGlzLndpdGgoe1xuICAgICAgICBwZXJpb2Q6IHByb3BzLnBlcmlvZCxcbiAgICAgIH0pLFxuICAgICAgYWxhcm1OYW1lOiBwcm9wcy5hbGFybU5hbWUsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBwcm9wcy5hbGFybURlc2NyaXB0aW9uLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBwcm9wcy5jb21wYXJpc29uT3BlcmF0b3IsXG4gICAgICBkYXRhcG9pbnRzVG9BbGFybTogcHJvcHMuZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzLnRocmVzaG9sZCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgIGV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlOiBwcm9wcy5ldmFsdWF0ZUxvd1NhbXBsZUNvdW50UGVyY2VudGlsZSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IHByb3BzLnRyZWF0TWlzc2luZ0RhdGEsXG4gICAgICBhY3Rpb25zRW5hYmxlZDogcHJvcHMuYWN0aW9uc0VuYWJsZWQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWwgfHwgdGhpcy5leHByZXNzaW9uO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU5vSWRDb25mbGljdHMoKSB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBNYXA8c3RyaW5nLCBJTWV0cmljPigpO1xuICAgIHZpc2l0KHRoaXMpO1xuXG4gICAgZnVuY3Rpb24gdmlzaXQobWV0cmljOiBJTWV0cmljKSB7XG4gICAgICBkaXNwYXRjaE1ldHJpYyhtZXRyaWMsIHtcbiAgICAgICAgd2l0aFN0YXQoKSB7XG4gICAgICAgICAgLy8gTm90aGluZ1xuICAgICAgICB9LFxuICAgICAgICB3aXRoRXhwcmVzc2lvbihleHByKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBbaWQsIHN1Yk1ldHJpY10gb2YgT2JqZWN0LmVudHJpZXMoZXhwci51c2luZ01ldHJpY3MpKSB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHNlZW4uZ2V0KGlkKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZyAmJiBtZXRyaWNLZXkoZXhpc3RpbmcpICE9PSBtZXRyaWNLZXkoc3ViTWV0cmljKSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFRoZSBJRCAnJHtpZH0nIHVzZWQgZm9yIHR3byBtZXRyaWNzIGluIHRoZSBleHByZXNzaW9uOiAnJHtzdWJNZXRyaWN9JyBhbmQgJyR7ZXhpc3Rpbmd9Jy4gUmVuYW1lIG9uZS5gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5zZXQoaWQsIHN1Yk1ldHJpYyk7XG4gICAgICAgICAgICB2aXNpdChzdWJNZXRyaWMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFBhdHRlcm4gZm9yIGEgdmFyaWFibGUgbmFtZS4gQWxwaGFudW0gc3RhcnRpbmcgd2l0aCBsb3dlcmNhc2UuXG4gKi9cbmNvbnN0IFZBUklBQkxFX1BBVCA9IFwiW2Etel1bYS16QS1aMC05X10qXCI7XG5cbmNvbnN0IFZBTElEX1ZBUklBQkxFID0gbmV3IFJlZ0V4cChgXiR7VkFSSUFCTEVfUEFUfSRgKTtcbmNvbnN0IEZJTkRfVkFSSUFCTEUgPSBuZXcgUmVnRXhwKFZBUklBQkxFX1BBVCwgXCJnXCIpO1xuXG5mdW5jdGlvbiB2YWxpZFZhcmlhYmxlTmFtZSh4OiBzdHJpbmcpIHtcbiAgcmV0dXJuIFZBTElEX1ZBUklBQkxFLnRlc3QoeCk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCB2YXJpYWJsZSBuYW1lcyB1c2VkIGluIGFuIGV4cHJlc3Npb25cbiAqL1xuZnVuY3Rpb24gYWxsSWRlbnRpZmllcnNJbkV4cHJlc3Npb24oeDogc3RyaW5nKSB7XG4gIHJldHVybiBBcnJheS5mcm9tKG1hdGNoQWxsKHgsIEZJTkRfVkFSSUFCTEUpKS5tYXAoKG0pID0+IG1bMF0pO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgbmVlZGVkIHRvIG1ha2UgYW4gYWxhcm0gZnJvbSBhIG1ldHJpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUFsYXJtT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIG92ZXIgd2hpY2ggdGhlIHNwZWNpZmllZCBzdGF0aXN0aWMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogQ2Fubm90IGJlIHVzZWQgd2l0aCBgTWF0aEV4cHJlc3Npb25gIG9iamVjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHBlcmlvZCBmcm9tIHRoZSBtZXRyaWNcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBtZXRyaWMud2l0aCh7IHBlcmlvZDogLi4uIH0pYCB0byBlbmNvZGUgdGhlIHBlcmlvZCBpbnRvIHRoZSBNZXRyaWMgb2JqZWN0XG4gICAqL1xuICByZWFkb25seSBwZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogV2hhdCBmdW5jdGlvbiB0byB1c2UgZm9yIGFnZ3JlZ2F0aW5nLlxuICAgKlxuICAgKiBDYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gICAqXG4gICAqIC0gXCJNaW5pbXVtXCIgfCBcIm1pblwiXG4gICAqIC0gXCJNYXhpbXVtXCIgfCBcIm1heFwiXG4gICAqIC0gXCJBdmVyYWdlXCIgfCBcImF2Z1wiXG4gICAqIC0gXCJTdW1cIiB8IFwic3VtXCJcbiAgICogLSBcIlNhbXBsZUNvdW50IHwgXCJuXCJcbiAgICogLSBcInBOTi5OTlwiXG4gICAqXG4gICAqIENhbm5vdCBiZSB1c2VkIHdpdGggYE1hdGhFeHByZXNzaW9uYCBvYmplY3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBzdGF0aXN0aWMgZnJvbSB0aGUgbWV0cmljXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgbWV0cmljLndpdGgoeyBzdGF0aXN0aWM6IC4uLiB9KWAgdG8gZW5jb2RlIHRoZSBwZXJpb2QgaW50byB0aGUgTWV0cmljIG9iamVjdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGlzdGljPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBhbGFybVxuICAgKlxuICAgKiBAZGVmYXVsdCBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBhbGFybU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGZvciB0aGUgYWxhcm1cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbXBhcmlzb24gdG8gdXNlIHRvIGNoZWNrIGlmIG1ldHJpYyBpcyBicmVhY2hpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgR3JlYXRlclRoYW5PckVxdWFsVG9UaHJlc2hvbGRcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhcmlzb25PcGVyYXRvcj86IENvbXBhcmlzb25PcGVyYXRvcjtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIGFnYWluc3Qgd2hpY2ggdGhlIHNwZWNpZmllZCBzdGF0aXN0aWMgaXMgY29tcGFyZWQuXG4gICAqL1xuICByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwZXJpb2RzIG92ZXIgd2hpY2ggZGF0YSBpcyBjb21wYXJlZCB0byB0aGUgc3BlY2lmaWVkIHRocmVzaG9sZC5cbiAgICovXG4gIHJlYWRvbmx5IGV2YWx1YXRpb25QZXJpb2RzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGV2YWx1YXRlIHRoZSBkYXRhIGFuZCBwb3RlbnRpYWxseSBjaGFuZ2UgdGhlIGFsYXJtIHN0YXRlIGlmIHRoZXJlIGFyZSB0b28gZmV3IGRhdGEgcG9pbnRzIHRvIGJlIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQuXG4gICAqXG4gICAqIFVzZWQgb25seSBmb3IgYWxhcm1zIHRoYXQgYXJlIGJhc2VkIG9uIHBlcmNlbnRpbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHMgaG93IHRoaXMgYWxhcm0gaXMgdG8gaGFuZGxlIG1pc3NpbmcgZGF0YSBwb2ludHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFRyZWF0TWlzc2luZ0RhdGEuTWlzc2luZ1xuICAgKi9cbiAgcmVhZG9ubHkgdHJlYXRNaXNzaW5nRGF0YT86IFRyZWF0TWlzc2luZ0RhdGE7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0gYXJlIGVuYWJsZWRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRhdGFwb2ludHMgdGhhdCBtdXN0IGJlIGJyZWFjaGluZyB0byB0cmlnZ2VyIHRoZSBhbGFybS4gVGhpcyBpcyB1c2VkIG9ubHkgaWYgeW91IGFyZSBzZXR0aW5nIGFuIFwiTVxuICAgKiBvdXQgb2YgTlwiIGFsYXJtLiBJbiB0aGF0IGNhc2UsIHRoaXMgdmFsdWUgaXMgdGhlIE0uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgRXZhbHVhdGluZyBhbiBBbGFybSBpbiB0aGUgQW1hem9uXG4gICAqIENsb3VkV2F0Y2ggVXNlciBHdWlkZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGBldmFsdWF0aW9uUGVyaW9kc2BgXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvQWxhcm1UaGF0U2VuZHNFbWFpbC5odG1sI2FsYXJtLWV2YWx1YXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFwb2ludHNUb0FsYXJtPzogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiBpZlVuZGVmaW5lZDxUPih4OiBUIHwgdW5kZWZpbmVkLCBkZWY6IFQgfCB1bmRlZmluZWQpOiBUIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB4O1xuICB9XG4gIHJldHVybiBkZWY7XG59XG5cbi8qKlxuICogQ2hhbmdlIHBlcmlvZHMgb2YgYWxsIG1ldHJpY3MgaW4gdGhlIG1hcFxuICovXG5mdW5jdGlvbiBjaGFuZ2VBbGxQZXJpb2RzKFxuICBtZXRyaWNzOiBSZWNvcmQ8c3RyaW5nLCBJTWV0cmljPixcbiAgcGVyaW9kOiBEdXJhdGlvbixcbik6IHsgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBJTWV0cmljPjsgb3ZlcnJpZGRlbjogYm9vbGVhbiB9IHtcbiAgY29uc3QgcmV0UmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBJTWV0cmljPiA9IHt9O1xuICBsZXQgcmV0T3ZlcnJpZGRlbiA9IGZhbHNlO1xuICBmb3IgKGNvbnN0IFtpZCwgbV0gb2YgT2JqZWN0LmVudHJpZXMobWV0cmljcykpIHtcbiAgICBjb25zdCB7IG1ldHJpYywgb3ZlcnJpZGRlbiB9ID0gY2hhbmdlUGVyaW9kKG0sIHBlcmlvZCk7XG4gICAgcmV0UmVjb3JkW2lkXSA9IG1ldHJpYztcbiAgICBpZiAob3ZlcnJpZGRlbikge1xuICAgICAgcmV0T3ZlcnJpZGRlbiA9IHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHJlY29yZDogcmV0UmVjb3JkLCBvdmVycmlkZGVuOiByZXRPdmVycmlkZGVuIH07XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbmV3IG1ldHJpYyBvYmplY3Qgd2hpY2ggaXMgdGhlIHNhbWUgdHlwZSBhcyB0aGUgaW5wdXQgb2JqZWN0IGJ1dCB3aXRoIHRoZSBwZXJpb2QgY2hhbmdlZCxcbiAqIGFuZCBhIGZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgcGVyaW9kIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuICpcbiAqIFJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBgSU1ldHJpY2AgYXJlIGFsc28gc3VwcG9zZWQgdG8gaGF2ZVxuICogYW4gaW1wbGVtZW50YXRpb24gb2YgYHdpdGhgIHRoYXQgYWNjZXB0cyBhbiBhcmd1bWVudCBjYWxsZWQgYHBlcmlvZGAuIFNlZSBgSU1vZGlmaWFibGVNZXRyaWNgLlxuICovXG5mdW5jdGlvbiBjaGFuZ2VQZXJpb2QoXG4gIG1ldHJpYzogSU1ldHJpYyxcbiAgcGVyaW9kOiBEdXJhdGlvbixcbik6IHsgbWV0cmljOiBJTWV0cmljOyBvdmVycmlkZGVuOiBib29sZWFuIH0ge1xuICBpZiAoaXNNb2RpZmlhYmxlTWV0cmljKG1ldHJpYykpIHtcbiAgICBjb25zdCBvdmVycmlkZGVuID1cbiAgICAgIGlzTWV0cmljV2l0aFBlcmlvZChtZXRyaWMpICYmIC8vIGFsd2F5cyB0cnVlLCBhcyB0aGUgcGVyaW9kIHByb3BlcnR5IGlzIHNldCB3aXRoIGEgZGVmYXVsdCB2YWx1ZSBldmVuIGlmIGl0IGlzIG5vdCBzcGVjaWZpZWRcbiAgICAgIG1ldHJpYy5wZXJpb2QudG9TZWNvbmRzKCkgIT09IER1cmF0aW9uLm1pbnV0ZXMoNSkudG9TZWNvbmRzKCkgJiYgLy8gZXhjbHVkZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBhIG1ldHJpYywgYXNzdW1pbmcgdGhlIHVzZXIgaGFzIG5vdCBzcGVjaWZpZWQgaXRcbiAgICAgIG1ldHJpYy5wZXJpb2QudG9TZWNvbmRzKCkgIT09IHBlcmlvZC50b1NlY29uZHMoKTtcbiAgICByZXR1cm4geyBtZXRyaWM6IG1ldHJpYy53aXRoKHsgcGVyaW9kIH0pLCBvdmVycmlkZGVuIH07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYE1ldHJpYyBvYmplY3Qgc2hvdWxkIGFsc28gaW1wbGVtZW50ICd3aXRoJzogJHttZXRyaWN9YCk7XG59XG5cbi8qKlxuICogUHJpdmF0ZSBwcm90b2NvbCBmb3IgbWV0cmljc1xuICpcbiAqIE1ldHJpYyB0eXBlcyB1c2VkIGluIGEgTWF0aEV4cHJlc3Npb24gbmVlZCB0byBpbXBsZW1lbnQgYXQgbGVhc3QgdGhpczpcbiAqIGEgYHdpdGhgIG1ldGhvZCB0aGF0IHRha2VzIGF0IGxlYXN0IGEgYHBlcmlvZGAgYW5kIHJldHVybnMgYSBtb2RpZmllZCBjb3B5XG4gKiBvZiB0aGUgbWV0cmljIG9iamVjdC5cbiAqXG4gKiBXZSBwdXQgaXQgaGVyZSBpbnN0ZWFkIG9mIG9uIGBJTWV0cmljYCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byB0eXBlXG4gKiBpdCBpbiBqc2lpIGluIGEgd2F5IHRoYXQgY29uY3JldGUgaW1wbGVtZW50YXRpb25zIGBNZXRyaWNgIGFuZCBgTWF0aEV4cHJlc3Npb25gXG4gKiBjYW4gYmUgc3RhdGljYWxseSB0eXBhYmxlIGFib3V0IHRoZSBmaWVsZHMgdGhhdCBhcmUgY2hhbmdlYWJsZTogYWxsXG4gKiBgd2l0aGAgbWV0aG9kcyB3b3VsZCBuZWVkIHRvIHRha2UgdGhlIHNhbWUgYXJndW1lbnQgdHlwZSwgYnV0IG5vdCBhbGxcbiAqIGNsYXNzZXMgaGF2ZSB0aGUgc2FtZSBgd2l0aGAtYWJsZSBwcm9wZXJ0aWVzLlxuICpcbiAqIFRoaXMgY2xhc3MgZXhpc3RzIHRvIHByZXZlbnQgaGF2aW5nIHRvIHVzZSBgaW5zdGFuY2VvZmAgaW4gdGhlIGBjaGFuZ2VQZXJpb2RgXG4gKiBmdW5jdGlvbiwgc28gdGhhdCB3ZSBoYXZlIGEgc3lzdGVtIHdoZXJlIGluIHByaW5jaXBsZSBuZXcgaW1wbGVtZW50YXRpb25zXG4gKiBvZiBgSU1ldHJpY2AgY2FuIGJlIGFkZGVkLiBCZWNhdXNlIGl0IHdpbGwgYmUgcmFyZSwgdGhlIG1lY2hhbmlzbSBkb2Vzbid0IGhhdmVcbiAqIHRvIGJlIGV4cG9zZWQgdmVyeSB3ZWxsLCBqdXN0IGhhcyB0byBiZSBwb3NzaWJsZS5cbiAqL1xuaW50ZXJmYWNlIElNb2RpZmlhYmxlTWV0cmljIHtcbiAgd2l0aChvcHRpb25zOiB7IHBlcmlvZD86IER1cmF0aW9uIH0pOiBJTWV0cmljO1xufVxuXG5mdW5jdGlvbiBpc01vZGlmaWFibGVNZXRyaWMobTogYW55KTogbSBpcyBJTW9kaWZpYWJsZU1ldHJpYyB7XG4gIHJldHVybiB0eXBlb2YgbSA9PT0gXCJvYmplY3RcIiAmJiBtICE9PSBudWxsICYmICEhbS53aXRoO1xufVxuXG5pbnRlcmZhY2UgSU1ldHJpY1dpdGhQZXJpb2Qge1xuICBwZXJpb2Q6IER1cmF0aW9uO1xufVxuXG5mdW5jdGlvbiBpc01ldHJpY1dpdGhQZXJpb2QobTogYW55KTogbSBpcyBJTWV0cmljV2l0aFBlcmlvZCB7XG4gIHJldHVybiB0eXBlb2YgbSA9PT0gXCJvYmplY3RcIiAmJiBtICE9PSBudWxsICYmICEhbS5wZXJpb2Q7XG59XG5cbi8vIFBvbHlmaWxsIGZvciBzdHJpbmcubWF0Y2hBbGwocmVnZXhwKVxuZnVuY3Rpb24gbWF0Y2hBbGwoeDogc3RyaW5nLCByZTogUmVnRXhwKTogUmVnRXhwTWF0Y2hBcnJheVtdIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PFJlZ0V4cE1hdGNoQXJyYXk+KCk7XG4gIGxldCBtOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICB3aGlsZSAoKG0gPSByZS5leGVjKHgpKSkge1xuICAgIHJldC5wdXNoKG0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iXX0=
|
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL21ldHJpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlHQUFpRztBQUVqRyxpQ0FBOEI7QUFFOUIsbUNBQXNFO0FBU3RFLDRDQUF3QztBQUN4Qyx1REFBa0U7QUFDbEUsbURBSzZCO0FBQzdCLG1DQUFnQztBQUNoQyw2Q0FBMEM7QUFDMUMsOEJBQThCO0FBbVA5Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxNQUFNO0lBQ2pCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsT0FBdUI7UUFDdEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDckMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFtQ0QsWUFBWSxLQUFrQjtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksbUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxJQUNFLFNBQVMsS0FBSyxDQUFDO1lBQ2YsU0FBUyxLQUFLLENBQUM7WUFDZixTQUFTLEtBQUssRUFBRTtZQUNoQixTQUFTLEtBQUssRUFBRTtZQUNoQixTQUFTLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFDcEIsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isd0VBQXdFLFNBQVMsRUFBRSxDQUNwRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFD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SSxLQUFLLENBQUMsK0NBQStDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQXdCRCxTQUFTLGtCQUFrQixDQUFDLENBQU07SUFDaEMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN6RCxDQUFDO0FBTUQsU0FBUyxrQkFBa0IsQ0FBQyxDQUFNO0lBQ2hDLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDM0QsQ0FBQztBQUVELHVDQUF1QztBQUN2QyxTQUFTLFFBQVEsQ0FBQyxDQUFTLEVBQUUsRUFBVTtJQUNyQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBb0IsQ0FBQztJQUMxQyxJQUFJLENBQXlCLENBQUM7SUFDOUIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi9tZXRyaWMudHNcblxuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBUcmVhdE1pc3NpbmdEYXRhIH0gZnJvbSBcIi4vYWxhcm1cIjtcbmltcG9ydCB7XG4gIElNZXRyaWMsXG4gIE1ldHJpY0FsYXJtQ29uZmlnLFxuICBNZXRyaWNDb25maWcsXG4gIE1ldHJpY0dyYXBoQ29uZmlnLFxuICBTdGF0aXN0aWMsXG4gIFVuaXQsXG59IGZyb20gXCIuL21ldHJpYy10eXBlc1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBkaXNwYXRjaE1ldHJpYywgbWV0cmljS2V5IH0gZnJvbSBcIi4vcHJpdmF0ZS9tZXRyaWMtdXRpbFwiO1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplU3RhdGlzdGljLFxuICBwYWlyU3RhdGlzdGljVG9TdHJpbmcsXG4gIHBhcnNlU3RhdGlzdGljLFxuICBzaW5nbGVTdGF0aXN0aWNUb1N0cmluZyxcbn0gZnJvbSBcIi4vcHJpdmF0ZS9zdGF0aXN0aWNcIjtcbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcIi4vc3RhdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG5leHBvcnQgdHlwZSBEaW1lbnNpb25zTWFwID0geyBbZGltOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBPcHRpb25zIHNoYXJlZCBieSBtb3N0IG1ldGhvZHMgYWNjZXB0aW5nIG1ldHJpYyBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uTWV0cmljT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGVyaW9kIG92ZXIgd2hpY2ggdGhlIHNwZWNpZmllZCBzdGF0aXN0aWMgaXMgYXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg1KVxuICAgKi9cbiAgcmVhZG9ubHkgcGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFdoYXQgZnVuY3Rpb24gdG8gdXNlIGZvciBhZ2dyZWdhdGluZy5cbiAgICpcbiAgICogVXNlIHRoZSBgYXdzX2Nsb3Vkd2F0Y2guU3RhdHNgIGhlbHBlciBjbGFzcyB0byBjb25zdHJ1Y3QgdmFsaWQgaW5wdXQgc3RyaW5ncy5cbiAgICpcbiAgICogQ2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAtIFwiTWluaW11bVwiIHwgXCJtaW5cIlxuICAgKiAtIFwiTWF4aW11bVwiIHwgXCJtYXhcIlxuICAgKiAtIFwiQXZlcmFnZVwiIHwgXCJhdmdcIlxuICAgKiAtIFwiU3VtXCIgfCBcInN1bVwiXG4gICAqIC0gXCJTYW1wbGVDb3VudCB8IFwiblwiXG4gICAqIC0gXCJwTk4uTk5cIlxuICAgKiAtIFwidG1OTi5OTlwiIHwgXCJ0bShOTi5OTiU6Tk4uTk4lKVwiXG4gICAqIC0gXCJpcW1cIlxuICAgKiAtIFwid21OTi5OTlwiIHwgXCJ3bShOTi5OTiU6Tk4uTk4lKVwiXG4gICAqIC0gXCJ0Y05OLk5OXCIgfCBcInRjKE5OLk5OJTpOTi5OTiUpXCJcbiAgICogLSBcInRzTk4uTk5cIiB8IFwidHMoTk4uTk4lOk5OLk5OJSlcIlxuICAgKlxuICAgKiBAZGVmYXVsdCBBdmVyYWdlXG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpbWVuc2lvbnMgb2YgdGhlIG1ldHJpY1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRpbWVuc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBkaW1lbnNpb25zTWFwPzogRGltZW5zaW9uc01hcDtcblxuICAvKipcbiAgICogVW5pdCB1c2VkIHRvIGZpbHRlciB0aGUgbWV0cmljIHN0cmVhbVxuICAgKlxuICAgKiBPbmx5IHJlZmVyIHRvIGRhdHVtcyBlbWl0dGVkIHRvIHRoZSBtZXRyaWMgc3RyZWFtIHdpdGggdGhlIGdpdmVuIHVuaXQgYW5kXG4gICAqIGlnbm9yZSBhbGwgb3RoZXJzLiBPbmx5IHVzZWZ1bCB3aGVuIGRhdHVtcyBhcmUgYmVpbmcgZW1pdHRlZCB0byB0aGUgc2FtZVxuICAgKiBtZXRyaWMgc3RyZWFtIHVuZGVyIGRpZmZlcmVudCB1bml0cy5cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdG8gdXNlIGFsbCBtYXRyaWMgZGF0dW1zIGluIHRoZSBzdHJlYW0sIHJlZ2FyZGxlc3Mgb2YgdW5pdCxcbiAgICogd2hpY2ggaXMgcmVjb21tZW5kZWQgaW4gbmVhcmx5IGFsbCBjYXNlcy5cbiAgICpcbiAgICogQ2xvdWRXYXRjaCBkb2VzIG5vdCBob25vciB0aGlzIHByb3BlcnR5IGZvciBncmFwaHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQWxsIG1ldHJpYyBkYXR1bXMgaW4gdGhlIGdpdmVuIG1ldHJpYyBzdHJlYW1cbiAgICovXG4gIHJlYWRvbmx5IHVuaXQ/OiBVbml0O1xuXG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgdGhpcyBtZXRyaWMgd2hlbiBhZGRlZCB0byBhIEdyYXBoIGluIGEgRGFzaGJvYXJkXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIFtkeW5hbWljIGxhYmVsc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvZ3JhcGgtZHluYW1pYy1sYWJlbHMuaHRtbClcbiAgICogdG8gc2hvdyBzdW1tYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnRpcmUgZGlzcGxheWVkIHRpbWUgc2VyaWVzXG4gICAqIGluIHRoZSBsZWdlbmQuIEZvciBleGFtcGxlLCBpZiB5b3UgdXNlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW21heDogJHtNQVh9XSBNeU1ldHJpY1xuICAgKiBgYGBcbiAgICpcbiAgICogQXMgdGhlIG1ldHJpYyBsYWJlbCwgdGhlIG1heGltdW0gdmFsdWUgaW4gdGhlIHZpc2libGUgcmFuZ2Ugd2lsbFxuICAgKiBiZSBzaG93biBuZXh0IHRvIHRoZSB0aW1lIHNlcmllcyBuYW1lIGluIHRoZSBncmFwaCdzIGxlZ2VuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBsYWJlbFxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBoZXggY29sb3IgY29kZSwgcHJlZml4ZWQgd2l0aCAnIycgKGUuZy4gJyMwMGZmMDAnKSwgdG8gdXNlIHdoZW4gdGhpcyBtZXRyaWMgaXMgcmVuZGVyZWQgb24gYSBncmFwaC5cbiAgICogVGhlIGBDb2xvcmAgY2xhc3MgaGFzIGEgc2V0IG9mIHN0YW5kYXJkIGNvbG9ycyB0aGF0IGNhbiBiZSB1c2VkIGhlcmUuXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljIGNvbG9yXG4gICAqL1xuICByZWFkb25seSBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjb3VudCB3aGljaCB0aGlzIG1ldHJpYyBjb21lcyBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlcGxveW1lbnQgYWNjb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiB3aGljaCB0aGlzIG1ldHJpYyBjb21lcyBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlcGxveW1lbnQgcmVnaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbWV0cmljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljUHJvcHMgZXh0ZW5kcyBDb21tb25NZXRyaWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWVzcGFjZSBvZiB0aGUgbWV0cmljLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIG1ldHJpYy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgbWV0cmljIHRoYXQgY2FuIGJlIGNoYW5nZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNPcHRpb25zIGV4dGVuZHMgQ29tbW9uTWV0cmljT3B0aW9ucyB7fVxuXG4vKipcbiAqIENvbmZpZ3VyYWJsZSBvcHRpb25zIGZvciBNYXRoRXhwcmVzc2lvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXRoRXhwcmVzc2lvbk9wdGlvbnMge1xuICAvKipcbiAgICogTGFiZWwgZm9yIHRoaXMgZXhwcmVzc2lvbiB3aGVuIGFkZGVkIHRvIGEgR3JhcGggaW4gYSBEYXNoYm9hcmRcbiAgICpcbiAgICogSWYgdGhpcyBleHByZXNzaW9uIGV2YWx1YXRlcyB0byBtb3JlIHRoYW4gb25lIHRpbWUgc2VyaWVzIChmb3JcbiAgICogZXhhbXBsZSwgdGhyb3VnaCB0aGUgdXNlIG9mIGBNRVRSSUNTKClgIG9yIGBTRUFSQ0goKWAgZXhwcmVzc2lvbnMpLFxuICAgKiBlYWNoIHRpbWUgc2VyaWVzIHdpbGwgYXBwZWFyIGluIHRoZSBncmFwaCB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIHRoZVxuICAgKiBleHByZXNzaW9uIGxhYmVsIGFuZCB0aGUgaW5kaXZpZHVhbCBtZXRyaWMgbGFiZWwuIFNwZWNpZnkgdGhlIGVtcHR5XG4gICAqIHN0cmluZyAoYCcnYCkgdG8gc3VwcHJlc3MgdGhlIGV4cHJlc3Npb24gbGFiZWwgYW5kIG9ubHkga2VlcCB0aGVcbiAgICogbWV0cmljIGxhYmVsLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSBbZHluYW1pYyBsYWJlbHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL2dyYXBoLWR5bmFtaWMtbGFiZWxzLmh0bWwpXG4gICAqIHRvIHNob3cgc3VtbWFyeSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlzcGxheWVkIHRpbWUgc2VyaWVzXG4gICAqIGluIHRoZSBsZWdlbmQuIEZvciBleGFtcGxlLCBpZiB5b3UgdXNlOlxuICAgKlxuICAgKiBgYGBcbiAgICogW21heDogJHtNQVh9XSBNeU1ldHJpY1xuICAgKiBgYGBcbiAgICpcbiAgICogQXMgdGhlIG1ldHJpYyBsYWJlbCwgdGhlIG1heGltdW0gdmFsdWUgaW4gdGhlIHZpc2libGUgcmFuZ2Ugd2lsbFxuICAgKiBiZSBzaG93biBuZXh0IHRvIHRoZSB0aW1lIHNlcmllcyBuYW1lIGluIHRoZSBncmFwaCdzIGxlZ2VuZC4gSWYgdGhlXG4gICAqIG1hdGggZXhwcmVzc2lvbiBwcm9kdWNlcyBtb3JlIHRoYW4gb25lIHRpbWUgc2VyaWVzLCB0aGUgbWF4aW11bVxuICAgKiB3aWxsIGJlIHNob3duIGZvciBlYWNoIGluZGl2aWR1YWwgdGltZSBzZXJpZXMgcHJvZHVjZSBieSB0aGlzXG4gICAqIG1hdGggZXhwcmVzc2lvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFeHByZXNzaW9uIHZhbHVlIGlzIHVzZWQgYXMgbGFiZWxcbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb2xvciBmb3IgdGhpcyBtZXRyaWMgd2hlbiBhZGRlZCB0byBhIEdyYXBoIGluIGEgRGFzaGJvYXJkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljIGNvbG9yXG4gICAqL1xuICByZWFkb25seSBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcmlvZCBvdmVyIHdoaWNoIHRoZSBleHByZXNzaW9uJ3Mgc3RhdGlzdGljcyBhcmUgYXBwbGllZC5cbiAgICpcbiAgICogVGhpcyBwZXJpb2Qgb3ZlcnJpZGVzIGFsbCBwZXJpb2RzIGluIHRoZSBtZXRyaWNzIHVzZWQgaW4gdGhpc1xuICAgKiBtYXRoIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNSlcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBY2NvdW50IHRvIGV2YWx1YXRlIHNlYXJjaCBleHByZXNzaW9ucyB3aXRoaW4uXG4gICAqXG4gICAqIFNwZWNpZnlpbmcgYSBzZWFyY2hBY2NvdW50IGhhcyBubyBlZmZlY3QgdG8gdGhlIGFjY291bnQgdXNlZFxuICAgKiBmb3IgbWV0cmljcyB3aXRoaW4gdGhlIGV4cHJlc3Npb24gKHBhc3NlZCB2aWEgdXNpbmdNZXRyaWNzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBsb3ltZW50IGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBzZWFyY2hBY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWdpb24gdG8gZXZhbHVhdGUgc2VhcmNoIGV4cHJlc3Npb25zIHdpdGhpbi5cbiAgICpcbiAgICogU3BlY2lmeWluZyBhIHNlYXJjaFJlZ2lvbiBoYXMgbm8gZWZmZWN0IHRvIHRoZSByZWdpb24gdXNlZFxuICAgKiBmb3IgbWV0cmljcyB3aXRoaW4gdGhlIGV4cHJlc3Npb24gKHBhc3NlZCB2aWEgdXNpbmdNZXRyaWNzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZXBsb3ltZW50IHJlZ2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlYXJjaFJlZ2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIE1hdGhFeHByZXNzaW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0aEV4cHJlc3Npb25Qcm9wcyBleHRlbmRzIE1hdGhFeHByZXNzaW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiBkZWZpbmluZyB0aGUgbWV0cmljLlxuICAgKlxuICAgKiBXaGVuIGFuIGV4cHJlc3Npb24gY29udGFpbnMgYSBTRUFSQ0ggZnVuY3Rpb24sIGl0IGNhbm5vdCBiZSB1c2VkXG4gICAqIHdpdGhpbiBhbiBBbGFybS5cbiAgICovXG4gIHJlYWRvbmx5IGV4cHJlc3Npb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldHJpY3MgdXNlZCBpbiB0aGUgZXhwcmVzc2lvbiwgaW4gYSBtYXAuXG4gICAqXG4gICAqIFRoZSBrZXkgaXMgdGhlIGlkZW50aWZpZXIgdGhhdCByZXByZXNlbnRzIHRoZSBnaXZlbiBtZXRyaWMgaW4gdGhlXG4gICAqIGV4cHJlc3Npb24sIGFuZCB0aGUgdmFsdWUgaXMgdGhlIGFjdHVhbCBNZXRyaWMgb2JqZWN0LlxuICAgKlxuICAgKiBUaGUgYHBlcmlvZGAgb2YgZWFjaCBtZXRyaWMgaW4gYHVzaW5nTWV0cmljc2AgaXMgaWdub3JlZCBhbmQgaW5zdGVhZCBvdmVycmlkZGVuXG4gICAqIGJ5IHRoZSBgcGVyaW9kYCBzcGVjaWZpZWQgZm9yIHRoZSBgTWF0aEV4cHJlc3Npb25gIGNvbnN0cnVjdC4gRXZlbiBpZiBubyBgcGVyaW9kYFxuICAgKiBpcyBzcGVjaWZpZWQgZm9yIHRoZSBgTWF0aEV4cHJlc3Npb25gLCBpdCB3aWxsIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGRlZmF1bHRcbiAgICogdmFsdWUgKGBEdXJhdGlvbi5taW51dGVzKDUpYCkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIGRlY2xhcmUgY29uc3QgbWV0cmljczogZWxidjIuSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcztcbiAgICogbmV3IGNsb3Vkd2F0Y2guTWF0aEV4cHJlc3Npb24oe1xuICAgKiAgIGV4cHJlc3Npb246ICAnbTErbTInLFxuICAgKiAgIGxhYmVsOiAnQWxiRXJyb3JzJyxcbiAgICogICB1c2luZ01ldHJpY3M6IHtcbiAgICogICAgIG0xOiBtZXRyaWNzLmN1c3RvbSgnSFRUUENvZGVfRUxCXzUwMF9Db3VudCcsIHtcbiAgICogICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLCAvLyA8LSBUaGlzIHBlcmlvZCB3aWxsIGJlIGlnbm9yZWRcbiAgICogICAgICAgc3RhdGlzdGljOiAnU3VtJyxcbiAgICogICAgICAgbGFiZWw6ICdIVFRQQ29kZV9FTEJfNTAwX0NvdW50JyxcbiAgICogICAgIH0pLFxuICAgKiAgICAgbTI6IG1ldHJpY3MuY3VzdG9tKCdIVFRQQ29kZV9FTEJfNTAyX0NvdW50Jywge1xuICAgKiAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksIC8vIDwtIFRoaXMgcGVyaW9kIHdpbGwgYmUgaWdub3JlZFxuICAgKiAgICAgICBzdGF0aXN0aWM6ICdTdW0nLFxuICAgKiAgICAgICBsYWJlbDogJ0hUVFBDb2RlX0VMQl81MDJfQ291bnQnLFxuICAgKiAgICAgfSksXG4gICAqICAgfSxcbiAgICogICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksIC8vIDwtIFRoaXMgb3ZlcnJpZGVzIHRoZSBwZXJpb2Qgb2YgZWFjaCBtZXRyaWMgaW4gYHVzaW5nTWV0cmljc2BcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIChFdmVuIGlmIG5vdCBzcGVjaWZpZWQsIGl0IGlzIG92ZXJyaWRkZW4gYnkgdGhlIGRlZmF1bHQgdmFsdWUpXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBFbXB0eSBtYXAuXG4gICAqL1xuICByZWFkb25seSB1c2luZ01ldHJpY3M/OiBSZWNvcmQ8c3RyaW5nLCBJTWV0cmljPjtcbn1cblxuLyoqXG4gKiBBIG1ldHJpYyBlbWl0dGVkIGJ5IGEgc2VydmljZVxuICpcbiAqIFRoZSBtZXRyaWMgaXMgYSBjb21iaW5hdGlvbiBvZiBhIG1ldHJpYyBpZGVudGlmaWVyIChuYW1lc3BhY2UsIG5hbWUgYW5kIGRpbWVuc2lvbnMpXG4gKiBhbmQgYW4gYWdncmVnYXRpb24gZnVuY3Rpb24gKHN0YXRpc3RpYywgcGVyaW9kIGFuZCB1bml0KS5cbiAqXG4gKiBJdCBhbHNvIGNvbnRhaW5zIG1ldGFkYXRhIHdoaWNoIGlzIHVzZWQgb25seSBpbiBncmFwaHMsIHN1Y2ggYXMgY29sb3IgYW5kIGxhYmVsLlxuICogSXQgbWFrZXMgc2Vuc2UgdG8gZW1iZWQgdGhpcyBpbiBoZXJlLCBzbyB0aGF0IGNvbXBvdW5kIGNvbnN0cnVjdHMgY2FuIGF0dGFjaFxuICogdGhhdCBtZXRhZGF0YSB0byBtZXRyaWNzIHRoZXkgZXhwb3NlLlxuICpcbiAqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgcmVzb3VyY2UsIHNvIGhlbmNlIGlzIG5vdCBhIGNvbnN0cnVjdC4gSW5zdGVhZCxcbiAqIE1ldHJpYyBpcyBhbiBhYnN0cmFjdGlvbiB0aGF0IG1ha2VzIGl0IGVhc3kgdG8gc3BlY2lmeSBtZXRyaWNzIGZvciB1c2UgaW4gYm90aFxuICogYWxhcm1zIGFuZCBncmFwaHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRyaWMgaW1wbGVtZW50cyBJTWV0cmljIHtcbiAgLyoqXG4gICAqIEdyYW50IHBlcm1pc3Npb25zIHRvIHRoZSBnaXZlbiBpZGVudGl0eSB0byB3cml0ZSBtZXRyaWNzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgSUFNIGlkZW50aXR5IHRvIGdpdmUgcGVybWlzc2lvbnMgdG8uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyYW50UHV0TWV0cmljRGF0YShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIERpbWVuc2lvbnMgb2YgdGhpcyBtZXRyaWMgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRpbWVuc2lvbnM/OiBEaW1lbnNpb25zTWFwO1xuICAvKiogTmFtZXNwYWNlIG9mIHRoaXMgbWV0cmljICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqIE5hbWUgb2YgdGhpcyBtZXRyaWMgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1ldHJpY05hbWU6IHN0cmluZztcbiAgLyoqIFBlcmlvZCBvZiB0aGlzIG1ldHJpYyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGVyaW9kOiBEdXJhdGlvbjtcbiAgLyoqIFN0YXRpc3RpYyBvZiB0aGlzIG1ldHJpYyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGlzdGljOiBzdHJpbmc7XG4gIC8qKiBMYWJlbCBmb3IgdGhpcyBtZXRyaWMgd2hlbiBhZGRlZCB0byBhIEdyYXBoIGluIGEgRGFzaGJvYXJkICovXG4gIHB1YmxpYyByZWFkb25seSBsYWJlbD86IHN0cmluZztcbiAgLyoqIFRoZSBoZXggY29sb3IgY29kZSB1c2VkIHdoZW4gdGhpcyBtZXRyaWMgaXMgcmVuZGVyZWQgb24gYSBncmFwaC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBVbml0IG9mIHRoZSBtZXRyaWMuICovXG4gIHB1YmxpYyByZWFkb25seSB1bml0PzogVW5pdDtcblxuICAvKiogQWNjb3VudCB3aGljaCB0aGlzIG1ldHJpYyBjb21lcyBmcm9tICovXG4gIHB1YmxpYyByZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXG4gIC8qKiBSZWdpb24gd2hpY2ggdGhpcyBtZXRyaWMgY29tZXMgZnJvbS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2FybmluZ3MgYXR0YWNoZWQgdG8gdGhpcyBtZXRyaWMuXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIHdhcm5pbmdzVjJcbiAgICoqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2FybmluZ3M/OiBzdHJpbmdbXTtcblxuICAvKiogV2FybmluZ3MgYXR0YWNoZWQgdG8gdGhpcyBtZXRyaWMuICovXG4gIHB1YmxpYyByZWFkb25seSB3YXJuaW5nc1YyPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHRoaXMucGVyaW9kID0gcHJvcHMucGVyaW9kIHx8IER1cmF0aW9uLm1pbnV0ZXMoNSk7XG4gICAgY29uc3QgcGVyaW9kU2VjID0gdGhpcy5wZXJpb2QudG9TZWNvbmRzKCk7XG4gICAgaWYgKFxuICAgICAgcGVyaW9kU2VjICE9PSAxICYmXG4gICAgICBwZXJpb2RTZWMgIT09IDUgJiZcbiAgICAgIHBlcmlvZFNlYyAhPT0gMTAgJiZcbiAgICAgIHBlcmlvZFNlYyAhPT0gMzAgJiZcbiAgICAgIHBlcmlvZFNlYyAlIDYwICE9PSAwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAncGVyaW9kJyBtdXN0IGJlIDEsIDUsIDEwLCAzMCwgb3IgYSBtdWx0aXBsZSBvZiA2MCBzZWNvbmRzLCByZWNlaXZlZCAke3BlcmlvZFNlY31gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLndhcm5pbmdzID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZGltZW5zaW9ucyA9IHRoaXMudmFsaWRhdGVEaW1lbnNpb25zKHByb3BzLmRpbWVuc2lvbnNNYXApO1xuICAgIHRoaXMubmFtZXNwYWNlID0gcHJvcHMubmFtZXNwYWNlO1xuICAgIHRoaXMubWV0cmljTmFtZSA9IHByb3BzLm1ldHJpY05hbWU7XG5cbiAgICBjb25zdCBwYXJzZWRTdGF0ID0gcGFyc2VTdGF0aXN0aWMocHJvcHMuc3RhdGlzdGljIHx8IFN0YXRzLkFWRVJBR0UpO1xuICAgIGlmIChwYXJzZWRTdGF0LnR5cGUgPT09IFwiZ2VuZXJpY1wiKSB7XG4gICAgICAvLyBVbnJlY29nbml6ZWQgc3RhdGlzdGljLCBkbyBub3QgdGhyb3csIGp1c3Qgd2FyblxuICAgICAgLy8gVGhlcmUgbWF5IGJlIGEgbmV3IHN0YXRpc3RpYyB0aGF0IHRoaXMgbGliIGRvZXMgbm90IHN1cHBvcnQgeWV0XG4gICAgICBjb25zdCBsYWJlbCA9IHByb3BzLmxhYmVsID8gYCwgbGFiZWwgXCIke3Byb3BzLmxhYmVsfVwiYCA6IFwiXCI7XG5cbiAgICAgIGNvbnN0IHdhcm5pbmcgPVxuICAgICAgICBgVW5yZWNvZ25pemVkIHN0YXRpc3RpYyBcIiR7cHJvcHMuc3RhdGlzdGljfVwiIGZvciBtZXRyaWMgd2l0aCBuYW1lc3BhY2UgXCIke3Byb3BzLm5hbWVzcGFjZX1cIiR7bGFiZWx9IGFuZCBtZXRyaWMgbmFtZSBcIiR7cHJvcHMubWV0cmljTmFtZX1cIi5gICtcbiAgICAgICAgXCIgUHJlZmVyYWJseSB1c2UgdGhlIGBhd3NfY2xvdWR3YXRjaC5TdGF0c2AgaGVscGVyIGNsYXNzIHRvIHNwZWNpZnkgYSBzdGF0aXN0aWMuXCIgK1xuICAgICAgICBcIiBZb3UgY2FuIGlnbm9yZSB0aGlzIHdhcm5pbmcgaWYgeW91ciBzdGF0aXN0aWMgaXMgdmFsaWQgYnV0IG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHRoZSBgYXdzX2Nsb3Vkd2F0Y2guU3RhdHNgIGhlbHBlciBjbGFzcy5cIjtcbiAgICAgIHRoaXMud2FybmluZ3NWMiA9IHtcbiAgICAgICAgXCJDbG91ZFdhdGNoOkFsYXJtOlVucmVjb2duaXplZFN0YXRpc3RpY1wiOiB3YXJuaW5nLFxuICAgICAgfTtcbiAgICAgIHRoaXMud2FybmluZ3MgPSBbd2FybmluZ107XG4gICAgfVxuICAgIHRoaXMuc3RhdGlzdGljID0gbm9ybWFsaXplU3RhdGlzdGljKHBhcnNlZFN0YXQpO1xuXG4gICAgdGhpcy5sYWJlbCA9IHByb3BzLmxhYmVsO1xuICAgIHRoaXMuY29sb3IgPSBwcm9wcy5jb2xvcjtcbiAgICB0aGlzLnVuaXQgPSBwcm9wcy51bml0O1xuICAgIHRoaXMuYWNjb3VudCA9IHByb3BzLmFjY291bnQ7XG4gICAgdGhpcy5yZWdpb24gPSBwcm9wcy5yZWdpb247XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgY29weSBvZiBNZXRyaWMgYHdpdGhgIHByb3BlcnRpZXMgY2hhbmdlZC5cbiAgICpcbiAgICogQWxsIHByb3BlcnRpZXMgZXhjZXB0IG5hbWVzcGFjZSBhbmQgbWV0cmljTmFtZSBjYW4gYmUgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFRoZSBzZXQgb2YgcHJvcGVydGllcyB0byBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgd2l0aChwcm9wczogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgLy8gU2hvcnQtY2lyY3VpdCBjcmVhdGluZyBhIG5ldyBvYmplY3QgaWYgdGhlcmUgd291bGQgYmUgbm8gZWZmZWN0aXZlIGNoYW5nZVxuICAgIGlmIChcbiAgICAgIChwcm9wcy5sYWJlbCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmxhYmVsID09PSB0aGlzLmxhYmVsKSAmJlxuICAgICAgKHByb3BzLmNvbG9yID09PSB1bmRlZmluZWQgfHwgcHJvcHMuY29sb3IgPT09IHRoaXMuY29sb3IpICYmXG4gICAgICAocHJvcHMuc3RhdGlzdGljID09PSB1bmRlZmluZWQgfHwgcHJvcHMuc3RhdGlzdGljID09PSB0aGlzLnN0YXRpc3RpYykgJiZcbiAgICAgIChwcm9wcy51bml0ID09PSB1bmRlZmluZWQgfHwgcHJvcHMudW5pdCA9PT0gdGhpcy51bml0KSAmJlxuICAgICAgKHByb3BzLmFjY291bnQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5hY2NvdW50ID09PSB0aGlzLmFjY291bnQpICYmXG4gICAgICAocHJvcHMucmVnaW9uID09PSB1bmRlZmluZWQgfHwgcHJvcHMucmVnaW9uID09PSB0aGlzLnJlZ2lvbikgJiZcbiAgICAgIC8vIEZvciB0aGVzZSB3ZSdyZSBub3QgZ29pbmcgdG8gZG8gZGVlcCBlcXVhbGl0eSwgbWlzc2VzIHNvbWUgb3Bwb3J0dW5pdHkgZm9yIG9wdGltaXphdGlvblxuICAgICAgLy8gYnV0IHRoYXQncyBva2F5LlxuICAgICAgcHJvcHMuZGltZW5zaW9uc01hcCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAocHJvcHMucGVyaW9kID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgcHJvcHMucGVyaW9kLnRvU2Vjb25kcygpID09PSB0aGlzLnBlcmlvZC50b1NlY29uZHMoKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHByb3BzLmRpbWVuc2lvbnNNYXAgPz8gdGhpcy5kaW1lbnNpb25zLFxuICAgICAgbmFtZXNwYWNlOiB0aGlzLm5hbWVzcGFjZSxcbiAgICAgIG1ldHJpY05hbWU6IHRoaXMubWV0cmljTmFtZSxcbiAgICAgIHBlcmlvZDogaWZVbmRlZmluZWQocHJvcHMucGVyaW9kLCB0aGlzLnBlcmlvZCksXG4gICAgICBzdGF0aXN0aWM6IGlmVW5kZWZpbmVkKHByb3BzLnN0YXRpc3RpYywgdGhpcy5zdGF0aXN0aWMpLFxuICAgICAgdW5pdDogaWZVbmRlZmluZWQocHJvcHMudW5pdCwgdGhpcy51bml0KSxcbiAgICAgIGxhYmVsOiBpZlVuZGVmaW5lZChwcm9wcy5sYWJlbCwgdGhpcy5sYWJlbCksXG4gICAgICBjb2xvcjogaWZVbmRlZmluZWQocHJvcHMuY29sb3IsIHRoaXMuY29sb3IpLFxuICAgICAgYWNjb3VudDogaWZVbmRlZmluZWQocHJvcHMuYWNjb3VudCwgdGhpcy5hY2NvdW50KSxcbiAgICAgIHJlZ2lvbjogaWZVbmRlZmluZWQocHJvcHMucmVnaW9uLCB0aGlzLnJlZ2lvbiksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHRoZSBtZXRyaWMgb2JqZWN0IHRvIHRoZSBnaXZlbiBjb25zdHJ1Y3Qgc2NvcGVcbiAgICpcbiAgICogUmV0dXJucyBhIE1ldHJpYyBvYmplY3QgdGhhdCB1c2VzIHRoZSBhY2NvdW50IGFuZCByZWdpb24gZnJvbSB0aGUgU3RhY2tcbiAgICogdGhlIGdpdmVuIGNvbnN0cnVjdCBpcyBkZWZpbmVkIGluLiBJZiB0aGUgbWV0cmljIGlzIHN1YnNlcXVlbnRseSB1c2VkXG4gICAqIGluIGEgRGFzaGJvYXJkIG9yIEFsYXJtIGluIGEgZGlmZmVyZW50IFN0YWNrIGRlZmluZWQgaW4gYSBkaWZmZXJlbnRcbiAgICogYWNjb3VudCBvciByZWdpb24sIHRoZSBhcHByb3ByaWF0ZSAncmVnaW9uJyBhbmQgJ2FjY291bnQnIGZpZWxkc1xuICAgKiB3aWxsIGJlIGFkZGVkIHRvIGl0LlxuICAgKlxuICAgKiBJZiB0aGUgc2NvcGUgd2UgYXR0YWNoIHRvIGlzIGluIGFuIGVudmlyb25tZW50LWFnbm9zdGljIHN0YWNrLFxuICAgKiBub3RoaW5nIGlzIGRvbmUgYW5kIHRoZSBzYW1lIE1ldHJpYyBvYmplY3QgaXMgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG8oc2NvcGU6IElDb25zdHJ1Y3QpOiBNZXRyaWMge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuXG4gICAgcmV0dXJuIHRoaXMud2l0aCh7XG4gICAgICByZWdpb246IFRva2VuLmlzVW5yZXNvbHZlZChzdGFjay5yZWdpb24pID8gdW5kZWZpbmVkIDogc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogVG9rZW4uaXNVbnJlc29sdmVkKHN0YWNrLmFjY291bnQpID8gdW5kZWZpbmVkIDogc3RhY2suYWNjb3VudCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b01ldHJpY0NvbmZpZygpOiBNZXRyaWNDb25maWcge1xuICAgIC8vIGNvbnN0IGRpbXMgPSB0aGlzLmRpbWVuc2lvbnNBc0xpc3QoKTtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0cmljU3RhdDoge1xuICAgICAgICBkaW1lbnNpb25zOlxuICAgICAgICAgIHRoaXMuZGltZW5zaW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLmRpbWVuc2lvbnMpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gdGhpcy5kaW1lbnNpb25zXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZXNwYWNlOiB0aGlzLm5hbWVzcGFjZSxcbiAgICAgICAgbWV0cmljTmFtZTogdGhpcy5tZXRyaWNOYW1lLFxuICAgICAgICBwZXJpb2Q6IHRoaXMucGVyaW9kLFxuICAgICAgICBzdGF0aXN0aWM6IHRoaXMuc3RhdGlzdGljLFxuICAgICAgICB1bml0RmlsdGVyOiB0aGlzLnVuaXQsXG4gICAgICAgIGFjY291bnQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbixcbiAgICAgIH0sXG4gICAgICByZW5kZXJpbmdQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yLFxuICAgICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgdG9NZXRyaWNDb25maWcoKSAqL1xuICBwdWJsaWMgdG9BbGFybUNvbmZpZygpOiBNZXRyaWNBbGFybUNvbmZpZyB7XG4gICAgY29uc3QgbWV0cmljQ29uZmlnID0gdGhpcy50b01ldHJpY0NvbmZpZygpO1xuICAgIGlmIChtZXRyaWNDb25maWcubWV0cmljU3RhdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVXNpbmcgYSBtYXRoIGV4cHJlc3Npb24gaXMgbm90IHN1cHBvcnRlZCBoZXJlLiBQYXNzIGEgJ01ldHJpYycgb2JqZWN0IGluc3RlYWRcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VTdGF0aXN0aWMobWV0cmljQ29uZmlnLm1ldHJpY1N0YXQuc3RhdGlzdGljKTtcblxuICAgIGxldCBleHRlbmRlZFN0YXRpc3RpYzogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwYXJzZWQudHlwZSA9PT0gXCJzaW5nbGVcIikge1xuICAgICAgZXh0ZW5kZWRTdGF0aXN0aWMgPSBzaW5nbGVTdGF0aXN0aWNUb1N0cmluZyhwYXJzZWQpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VkLnR5cGUgPT09IFwicGFpclwiKSB7XG4gICAgICBleHRlbmRlZFN0YXRpc3RpYyA9IHBhaXJTdGF0aXN0aWNUb1N0cmluZyhwYXJzZWQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkaW1lbnNpb25zOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5kaW1lbnNpb25zLFxuICAgICAgbmFtZXNwYWNlOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5uYW1lc3BhY2UsXG4gICAgICBtZXRyaWNOYW1lOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5tZXRyaWNOYW1lLFxuICAgICAgcGVyaW9kOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5wZXJpb2QudG9TZWNvbmRzKCksXG4gICAgICBzdGF0aXN0aWM6XG4gICAgICAgIHBhcnNlZC50eXBlID09PSBcInNpbXBsZVwiID8gKHBhcnNlZC5zdGF0aXN0aWMgYXMgU3RhdGlzdGljKSA6IHVuZGVmaW5lZCxcbiAgICAgIGV4dGVuZGVkU3RhdGlzdGljLFxuICAgICAgdW5pdDogdGhpcy51bml0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRvTWV0cmljQ29uZmlnKClcbiAgICovXG4gIHB1YmxpYyB0b0dyYXBoQ29uZmlnKCk6IE1ldHJpY0dyYXBoQ29uZmlnIHtcbiAgICBjb25zdCBtZXRyaWNDb25maWcgPSB0aGlzLnRvTWV0cmljQ29uZmlnKCk7XG4gICAgaWYgKG1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVc2luZyBhIG1hdGggZXhwcmVzc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIFBhc3MgYSAnTWV0cmljJyBvYmplY3QgaW5zdGVhZFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGltZW5zaW9uczogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQuZGltZW5zaW9ucyxcbiAgICAgIG5hbWVzcGFjZTogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQubmFtZXNwYWNlLFxuICAgICAgbWV0cmljTmFtZTogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQubWV0cmljTmFtZSxcbiAgICAgIHJlbmRlcmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgcGVyaW9kOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5wZXJpb2QudG9TZWNvbmRzKCksXG4gICAgICAgIHN0YXQ6IG1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0LnN0YXRpc3RpYyxcbiAgICAgICAgY29sb3I6IGFzU3RyaW5nKG1ldHJpY0NvbmZpZy5yZW5kZXJpbmdQcm9wZXJ0aWVzPy5jb2xvciksXG4gICAgICAgIGxhYmVsOiBhc1N0cmluZyhtZXRyaWNDb25maWcucmVuZGVyaW5nUHJvcGVydGllcz8ubGFiZWwpLFxuICAgICAgfSxcbiAgICAgIC8vIGRlcHJlY2F0ZWQgcHJvcGVydGllcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgIHBlcmlvZDogbWV0cmljQ29uZmlnLm1ldHJpY1N0YXQucGVyaW9kLnRvU2Vjb25kcygpLFxuICAgICAgc3RhdGlzdGljOiBtZXRyaWNDb25maWcubWV0cmljU3RhdC5zdGF0aXN0aWMsXG4gICAgICBjb2xvcjogYXNTdHJpbmcobWV0cmljQ29uZmlnLnJlbmRlcmluZ1Byb3BlcnRpZXM/LmNvbG9yKSxcbiAgICAgIGxhYmVsOiBhc1N0cmluZyhtZXRyaWNDb25maWcucmVuZGVyaW5nUHJvcGVydGllcz8ubGFiZWwpLFxuICAgICAgdW5pdDogdGhpcy51bml0LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhIG5ldyBBbGFybSBmb3IgdGhpcyBtZXRyaWNcbiAgICpcbiAgICogQ29tYmluZXMgYm90aCBwcm9wZXJ0aWVzIHRoYXQgbWF5IGFkanVzdCB0aGUgbWV0cmljIChhZ2dyZWdhdGlvbikgYXMgd2VsbFxuICAgKiBhcyBhbGFybSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUFsYXJtKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQ3JlYXRlQWxhcm1PcHRpb25zLFxuICApOiBBbGFybSB7XG4gICAgcmV0dXJuIG5ldyBBbGFybShzY29wZSwgaWQsIHtcbiAgICAgIG1ldHJpYzogdGhpcy53aXRoKHtcbiAgICAgICAgc3RhdGlzdGljOiBwcm9wcy5zdGF0aXN0aWMsXG4gICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kLFxuICAgICAgfSksXG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IHByb3BzLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IHByb3BzLmNvbXBhcmlzb25PcGVyYXRvcixcbiAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgIHRocmVzaG9sZDogcHJvcHMudGhyZXNob2xkLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgZXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGU6IHByb3BzLmV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogcHJvcHMudHJlYXRNaXNzaW5nRGF0YSxcbiAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcy5hY3Rpb25zRW5hYmxlZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCB8fCB0aGlzLm1ldHJpY05hbWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRGltZW5zaW9ucyhkaW1zPzogRGltZW5zaW9uc01hcCk6IERpbWVuc2lvbnNNYXAgfCB1bmRlZmluZWQge1xuICAgIGlmICghZGltcykge1xuICAgICAgcmV0dXJuIGRpbXM7XG4gICAgfVxuXG4gICAgY29uc3QgZGltc0FycmF5ID0gT2JqZWN0LmtleXMoZGltcyk7XG4gICAgaWYgKGRpbXNBcnJheT8ubGVuZ3RoID4gMzApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaW1lbnNpb25zIGlzIDMwLCByZWNlaXZlZCAke2RpbXNBcnJheS5sZW5ndGh9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZGltc0FycmF5Lm1hcCgoa2V5KSA9PiB7XG4gICAgICBpZiAoZGltc1trZXldID09PSB1bmRlZmluZWQgfHwgZGltc1trZXldID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRGltZW5zaW9uIHZhbHVlIG9mICcke2RpbXNba2V5XX0nIGlzIGludmFsaWRgKTtcbiAgICAgIH1cbiAgICAgIGlmIChrZXkubGVuZ3RoIDwgMSB8fCBrZXkubGVuZ3RoID4gMjU1KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRGltZW5zaW9uIG5hbWUgbXVzdCBiZSBhdCBsZWFzdCAxIGFuZCBubyBtb3JlIHRoYW4gMjU1IGNoYXJhY3RlcnM7IHJlY2VpdmVkICR7a2V5fWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaW1zW2tleV0ubGVuZ3RoIDwgMSB8fCBkaW1zW2tleV0ubGVuZ3RoID4gMjU1KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRGltZW5zaW9uIHZhbHVlIG11c3QgYmUgYXQgbGVhc3QgMSBhbmQgbm8gbW9yZSB0aGFuIDI1NSBjaGFyYWN0ZXJzOyByZWNlaXZlZCAke2RpbXNba2V5XX1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRpbXM7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNTdHJpbmcoeD86IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHggIT09IFwic3RyaW5nXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIHN0cmluZywgZ290ICR7eH1gKTtcbiAgfVxuICByZXR1cm4geDtcbn1cblxuLyoqXG4gKiBBIG1hdGggZXhwcmVzc2lvbiBidWlsdCB3aXRoIG1ldHJpYyhzKSBlbWl0dGVkIGJ5IGEgc2VydmljZVxuICpcbiAqIFRoZSBtYXRoIGV4cHJlc3Npb24gaXMgYSBjb21iaW5hdGlvbiBvZiBhbiBleHByZXNzaW9uICh4K3kpIGFuZCBtZXRyaWNzIHRvIGFwcGx5IGV4cHJlc3Npb24gb24uXG4gKiBJdCBhbHNvIGNvbnRhaW5zIG1ldGFkYXRhIHdoaWNoIGlzIHVzZWQgb25seSBpbiBncmFwaHMsIHN1Y2ggYXMgY29sb3IgYW5kIGxhYmVsLlxuICogSXQgbWFrZXMgc2Vuc2UgdG8gZW1iZWQgdGhpcyBpbiBoZXJlLCBzbyB0aGF0IGNvbXBvdW5kIGNvbnN0cnVjdHMgY2FuIGF0dGFjaFxuICogdGhhdCBtZXRhZGF0YSB0byBtZXRyaWNzIHRoZXkgZXhwb3NlLlxuICpcbiAqIE1hdGhFeHByZXNzaW9uIGNhbiBhbHNvIGJlIHVzZWQgZm9yIHNlYXJjaCBleHByZXNzaW9ucy4gSW4gdGhpcyBjYXNlLFxuICogaXQgYWxzbyBvcHRpb25hbGx5IGFjY2VwdHMgYSBzZWFyY2hSZWdpb24gYW5kIHNlYXJjaEFjY291bnQgcHJvcGVydHkgZm9yIGNyb3NzLWVudmlyb25tZW50XG4gKiBzZWFyY2ggZXhwcmVzc2lvbnMuXG4gKlxuICogVGhpcyBjbGFzcyBkb2VzIG5vdCByZXByZXNlbnQgYSByZXNvdXJjZSwgc28gaGVuY2UgaXMgbm90IGEgY29uc3RydWN0LiBJbnN0ZWFkLFxuICogTWF0aEV4cHJlc3Npb24gaXMgYW4gYWJzdHJhY3Rpb24gdGhhdCBtYWtlcyBpdCBlYXN5IHRvIHNwZWNpZnkgbWV0cmljcyBmb3IgdXNlIGluIGJvdGhcbiAqIGFsYXJtcyBhbmQgZ3JhcGhzLlxuICovXG5leHBvcnQgY2xhc3MgTWF0aEV4cHJlc3Npb24gaW1wbGVtZW50cyBJTWV0cmljIHtcbiAgLyoqXG4gICAqIFRoZSBleHByZXNzaW9uIGRlZmluaW5nIHRoZSBtZXRyaWMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXhwcmVzc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0cmljcyB1c2VkIGluIHRoZSBleHByZXNzaW9uIGFzIEtleVZhbHVlUGFpciA8aWQsIG1ldHJpYz4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNpbmdNZXRyaWNzOiBSZWNvcmQ8c3RyaW5nLCBJTWV0cmljPjtcblxuICAvKipcbiAgICogTGFiZWwgZm9yIHRoaXMgbWV0cmljIHdoZW4gYWRkZWQgdG8gYSBHcmFwaC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGhleCBjb2xvciBjb2RlLCBwcmVmaXhlZCB3aXRoICcjJyAoZS5nLiAnIzAwZmYwMCcpLCB0byB1c2Ugd2hlbiB0aGlzIG1ldHJpYyBpcyByZW5kZXJlZCBvbiBhIGdyYXBoLlxuICAgKiBUaGUgYENvbG9yYCBjbGFzcyBoYXMgYSBzZXQgb2Ygc3RhbmRhcmQgY29sb3JzIHRoYXQgY2FuIGJlIHVzZWQgaGVyZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogQWdncmVnYXRpb24gcGVyaW9kIG9mIHRoaXMgbWV0cmljXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGVyaW9kOiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQWNjb3VudCB0byBldmFsdWF0ZSBzZWFyY2ggZXhwcmVzc2lvbnMgd2l0aGluLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlZ2lvbiB0byBldmFsdWF0ZSBzZWFyY2ggZXhwcmVzc2lvbnMgd2l0aGluLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaFJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2FybmluZ3MgZ2VuZXJhdGVkIGJ5IHRoaXMgbWF0aCBleHByZXNzaW9uXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIHdhcm5pbmdzVjJcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3YXJuaW5ncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXYXJuaW5ncyBnZW5lcmF0ZWQgYnkgdGhpcyBtYXRoIGV4cHJlc3Npb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3YXJuaW5nc1YyPzogeyBbaWQ6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBNYXRoRXhwcmVzc2lvblByb3BzKSB7XG4gICAgdGhpcy5wZXJpb2QgPSBwcm9wcy5wZXJpb2QgfHwgRHVyYXRpb24ubWludXRlcyg1KTtcbiAgICB0aGlzLmV4cHJlc3Npb24gPSBwcm9wcy5leHByZXNzaW9uO1xuICAgIHRoaXMubGFiZWwgPSBwcm9wcy5sYWJlbDtcbiAgICB0aGlzLmNvbG9yID0gcHJvcHMuY29sb3I7XG4gICAgdGhpcy5zZWFyY2hBY2NvdW50ID0gcHJvcHMuc2VhcmNoQWNjb3VudDtcbiAgICB0aGlzLnNlYXJjaFJlZ2lvbiA9IHByb3BzLnNlYXJjaFJlZ2lvbjtcblxuICAgIGNvbnN0IHsgcmVjb3JkLCBvdmVycmlkZGVuIH0gPSBjaGFuZ2VBbGxQZXJpb2RzKFxuICAgICAgcHJvcHMudXNpbmdNZXRyaWNzID8/IHt9LFxuICAgICAgdGhpcy5wZXJpb2QsXG4gICAgKTtcbiAgICB0aGlzLnVzaW5nTWV0cmljcyA9IHJlY29yZDtcblxuICAgIGNvbnN0IHdhcm5pbmdzOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBpZiAob3ZlcnJpZGRlbikge1xuICAgICAgd2FybmluZ3NbXCJDbG91ZFdhdGNoOk1hdGg6TWV0cmljc1BlcmlvZHNPdmVycmlkZGVuXCJdID1cbiAgICAgICAgYFBlcmlvZHMgb2YgbWV0cmljcyBpbiAndXNpbmdNZXRyaWNzJyBmb3IgTWF0aCBleHByZXNzaW9uICcke3RoaXMuZXhwcmVzc2lvbn0nIGhhdmUgYmVlbiBvdmVycmlkZGVuIHRvICR7dGhpcy5wZXJpb2QudG9TZWNvbmRzKCl9IHNlY29uZHMuYDtcbiAgICB9XG5cbiAgICBjb25zdCBpbnZhbGlkVmFyaWFibGVOYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMudXNpbmdNZXRyaWNzKS5maWx0ZXIoXG4gICAgICAoeCkgPT4gIXZhbGlkVmFyaWFibGVOYW1lKHgpLFxuICAgICk7XG4gICAgaWYgKGludmFsaWRWYXJpYWJsZU5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgdmFyaWFibGUgbmFtZXMgaW4gZXhwcmVzc2lvbjogJHtpbnZhbGlkVmFyaWFibGVOYW1lc30uIE11c3Qgc3RhcnQgd2l0aCBsb3dlcmNhc2UgbGV0dGVyIGFuZCBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljcy5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlTm9JZENvbmZsaWN0cygpO1xuXG4gICAgLy8gQ2hlY2sgdGhhdCBhbGwgSURzIHVzZWQgaW4gdGhlIGV4cHJlc3Npb24gYXJlIGFsc28gaW4gdGhlIGB1c2luZ01ldHJpY3NgIG1hcC4gV2VcbiAgICAvLyBjYW4ndCB0aHJvdyBvbiB0aGlzIGFueW1vcmUgc2luY2Ugd2UgZGlkbid0IHVzZSB0byBkbyB0aGlzIHZhbGlkYXRpb24gZnJvbSB0aGUgc3RhcnRcbiAgICAvLyBhbmQgbm93IHRoZXJlIHdpbGwgYmUgbG9hZHMgb2YgcGVvcGxlIHdobyBhcmUgdmlvbGF0aW5nIHRoZSBleHBlY3RlZCBjb250cmFjdCwgYnV0XG4gICAgLy8gd2UgY2FuIGFkZCB3YXJuaW5ncy5cbiAgICBjb25zdCBtaXNzaW5nSWRlbnRpZmllcnMgPSBhbGxJZGVudGlmaWVyc0luRXhwcmVzc2lvbihcbiAgICAgIHRoaXMuZXhwcmVzc2lvbixcbiAgICApLmZpbHRlcigoaSkgPT4gIXRoaXMudXNpbmdNZXRyaWNzW2ldKTtcblxuICAgIGlmIChcbiAgICAgICF0aGlzLmV4cHJlc3Npb25cbiAgICAgICAgLnRvVXBwZXJDYXNlKClcbiAgICAgICAgLm1hdGNoKFwiXFxcXHMqSU5TSUdIVF9SVUxFX01FVFJJQ3xTRUxFQ1R8U0VBUkNIfE1FVFJJQ1NcXFxccy4qXCIpICYmXG4gICAgICBtaXNzaW5nSWRlbnRpZmllcnMubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgd2FybmluZ3NbXCJDbG91ZFdhdGNoOk1hdGg6VW5rbm93bklkZW50aWZpZXJcIl0gPVxuICAgICAgICBgTWF0aCBleHByZXNzaW9uICcke3RoaXMuZXhwcmVzc2lvbn0nIHJlZmVyZW5jZXMgdW5rbm93biBpZGVudGlmaWVyczogJHttaXNzaW5nSWRlbnRpZmllcnMuam9pbihcIiwgXCIpfS4gUGxlYXNlIGFkZCB0aGVtIHRvIHRoZSAndXNpbmdNZXRyaWNzJyBtYXAuYDtcbiAgICB9XG5cbiAgICAvLyBBbHNvIGNvcHkgd2FybmluZ3MgZnJvbSBkZWVwZXIgbGV2ZWxzIHNvIGdyYXBocywgYWxhcm1zIG9ubHkgaGF2ZSB0byBpbnNwZWN0IHRoZSB0b3AtbGV2ZWwgb2JqZWN0c1xuICAgIGZvciAoY29uc3QgbSBvZiBPYmplY3QudmFsdWVzKHRoaXMudXNpbmdNZXRyaWNzKSkge1xuICAgICAgZm9yIChjb25zdCBbaWQsIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKG0ud2FybmluZ3NWMiA/PyB7fSkpIHtcbiAgICAgICAgd2FybmluZ3NbaWRdID0gbWVzc2FnZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMod2FybmluZ3MpLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMud2FybmluZ3MgPSBBcnJheS5mcm9tKE9iamVjdC52YWx1ZXMod2FybmluZ3MpKTtcbiAgICAgIHRoaXMud2FybmluZ3NWMiA9IHdhcm5pbmdzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBjb3B5IG9mIE1ldHJpYyB3aXRoIHByb3BlcnRpZXMgY2hhbmdlZC5cbiAgICpcbiAgICogQWxsIHByb3BlcnRpZXMgZXhjZXB0IG5hbWVzcGFjZSBhbmQgbWV0cmljTmFtZSBjYW4gYmUgY2hhbmdlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFRoZSBzZXQgb2YgcHJvcGVydGllcyB0byBjaGFuZ2UuXG4gICAqL1xuICBwdWJsaWMgd2l0aChwcm9wczogTWF0aEV4cHJlc3Npb25PcHRpb25zKTogTWF0aEV4cHJlc3Npb24ge1xuICAgIC8vIFNob3J0LWNpcmN1aXQgY3JlYXRpbmcgYSBuZXcgb2JqZWN0IGlmIHRoZXJlIHdvdWxkIGJlIG5vIGVmZmVjdGl2ZSBjaGFuZ2VcbiAgICBpZiAoXG4gICAgICAocHJvcHMubGFiZWwgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5sYWJlbCA9PT0gdGhpcy5sYWJlbCkgJiZcbiAgICAgIChwcm9wcy5jb2xvciA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmNvbG9yID09PSB0aGlzLmNvbG9yKSAmJlxuICAgICAgKHByb3BzLnBlcmlvZCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHByb3BzLnBlcmlvZC50b1NlY29uZHMoKSA9PT0gdGhpcy5wZXJpb2QudG9TZWNvbmRzKCkpICYmXG4gICAgICAocHJvcHMuc2VhcmNoQWNjb3VudCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHByb3BzLnNlYXJjaEFjY291bnQgPT09IHRoaXMuc2VhcmNoQWNjb3VudCkgJiZcbiAgICAgIChwcm9wcy5zZWFyY2hSZWdpb24gPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBwcm9wcy5zZWFyY2hSZWdpb24gPT09IHRoaXMuc2VhcmNoUmVnaW9uKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICBleHByZXNzaW9uOiB0aGlzLmV4cHJlc3Npb24sXG4gICAgICB1c2luZ01ldHJpY3M6IHRoaXMudXNpbmdNZXRyaWNzLFxuICAgICAgbGFiZWw6IGlmVW5kZWZpbmVkKHByb3BzLmxhYmVsLCB0aGlzLmxhYmVsKSxcbiAgICAgIGNvbG9yOiBpZlVuZGVmaW5lZChwcm9wcy5jb2xvciwgdGhpcy5jb2xvciksXG4gICAgICBwZXJpb2Q6IGlmVW5kZWZpbmVkKHByb3BzLnBlcmlvZCwgdGhpcy5wZXJpb2QpLFxuICAgICAgc2VhcmNoQWNjb3VudDogaWZVbmRlZmluZWQocHJvcHMuc2VhcmNoQWNjb3VudCwgdGhpcy5zZWFyY2hBY2NvdW50KSxcbiAgICAgIHNlYXJjaFJlZ2lvbjogaWZVbmRlZmluZWQocHJvcHMuc2VhcmNoUmVnaW9uLCB0aGlzLnNlYXJjaFJlZ2lvbiksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRvTWV0cmljQ29uZmlnKClcbiAgICovXG4gIHB1YmxpYyB0b0FsYXJtQ29uZmlnKCk6IE1ldHJpY0FsYXJtQ29uZmlnIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIlVzaW5nIGEgbWF0aCBleHByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZS4gUGFzcyBhICdNZXRyaWMnIG9iamVjdCBpbnN0ZWFkXCIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgdG9NZXRyaWNDb25maWcoKVxuICAgKi9cbiAgcHVibGljIHRvR3JhcGhDb25maWcoKTogTWV0cmljR3JhcGhDb25maWcge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiVXNpbmcgYSBtYXRoIGV4cHJlc3Npb24gaXMgbm90IHN1cHBvcnRlZCBoZXJlLiBQYXNzIGEgJ01ldHJpYycgb2JqZWN0IGluc3RlYWRcIixcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvTWV0cmljQ29uZmlnKCk6IE1ldHJpY0NvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1hdGhFeHByZXNzaW9uOiB7XG4gICAgICAgIHBlcmlvZDogdGhpcy5wZXJpb2QudG9TZWNvbmRzKCksXG4gICAgICAgIGV4cHJlc3Npb246IHRoaXMuZXhwcmVzc2lvbixcbiAgICAgICAgdXNpbmdNZXRyaWNzOiB0aGlzLnVzaW5nTWV0cmljcyxcbiAgICAgICAgc2VhcmNoQWNjb3VudDogdGhpcy5zZWFyY2hBY2NvdW50LFxuICAgICAgICBzZWFyY2hSZWdpb246IHRoaXMuc2VhcmNoUmVnaW9uLFxuICAgICAgfSxcbiAgICAgIHJlbmRlcmluZ1Byb3BlcnRpZXM6IHtcbiAgICAgICAgbGFiZWw6IHRoaXMubGFiZWwsXG4gICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBuZXcgQWxhcm0gZm9yIHRoaXMgbWV0cmljXG4gICAqXG4gICAqIENvbWJpbmVzIGJvdGggcHJvcGVydGllcyB0aGF0IG1heSBhZGp1c3QgdGhlIG1ldHJpYyAoYWdncmVnYXRpb24pIGFzIHdlbGxcbiAgICogYXMgYWxhcm0gcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBbGFybShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENyZWF0ZUFsYXJtT3B0aW9ucyxcbiAgKTogQWxhcm0ge1xuICAgIHJldHVybiBuZXcgQWxhcm0oc2NvcGUsIGlkLCB7XG4gICAgICBtZXRyaWM6IHRoaXMud2l0aCh7XG4gICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kLFxuICAgICAgfSksXG4gICAgICBhbGFybU5hbWU6IHByb3BzLmFsYXJtTmFtZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IHByb3BzLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IHByb3BzLmNvbXBhcmlzb25PcGVyYXRvcixcbiAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgIHRocmVzaG9sZDogcHJvcHMudGhyZXNob2xkLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgZXZhbHVhdGVMb3dTYW1wbGVDb3VudFBlcmNlbnRpbGU6IHByb3BzLmV2YWx1YXRlTG93U2FtcGxlQ291bnRQZXJjZW50aWxlLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogcHJvcHMudHJlYXRNaXNzaW5nRGF0YSxcbiAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcy5hY3Rpb25zRW5hYmxlZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCB8fCB0aGlzLmV4cHJlc3Npb247XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTm9JZENvbmZsaWN0cygpIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IE1hcDxzdHJpbmcsIElNZXRyaWM+KCk7XG4gICAgdmlzaXQodGhpcyk7XG5cbiAgICBmdW5jdGlvbiB2aXNpdChtZXRyaWM6IElNZXRyaWMpIHtcbiAgICAgIGRpc3BhdGNoTWV0cmljKG1ldHJpYywge1xuICAgICAgICB3aXRoU3RhdCgpIHtcbiAgICAgICAgICAvLyBOb3RoaW5nXG4gICAgICAgIH0sXG4gICAgICAgIHdpdGhFeHByZXNzaW9uKGV4cHIpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtpZCwgc3ViTWV0cmljXSBvZiBPYmplY3QuZW50cmllcyhleHByLnVzaW5nTWV0cmljcykpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gc2Vlbi5nZXQoaWQpO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nICYmIG1ldHJpY0tleShleGlzdGluZykgIT09IG1ldHJpY0tleShzdWJNZXRyaWMpKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgVGhlIElEICcke2lkfScgdXNlZCBmb3IgdHdvIG1ldHJpY3MgaW4gdGhlIGV4cHJlc3Npb246ICcke3N1Yk1ldHJpY30nIGFuZCAnJHtleGlzdGluZ30nLiBSZW5hbWUgb25lLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWVuLnNldChpZCwgc3ViTWV0cmljKTtcbiAgICAgICAgICAgIHZpc2l0KHN1Yk1ldHJpYyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUGF0dGVybiBmb3IgYSB2YXJpYWJsZSBuYW1lLiBBbHBoYW51bSBzdGFydGluZyB3aXRoIGxvd2VyY2FzZS5cbiAqL1xuY29uc3QgVkFSSUFCTEVfUEFUID0gXCJbYS16XVthLXpBLVowLTlfXSpcIjtcblxuY29uc3QgVkFMSURfVkFSSUFCTEUgPSBuZXcgUmVnRXhwKGBeJHtWQVJJQUJMRV9QQVR9JGApO1xuY29uc3QgRklORF9WQVJJQUJMRSA9IG5ldyBSZWdFeHAoVkFSSUFCTEVfUEFULCBcImdcIik7XG5cbmZ1bmN0aW9uIHZhbGlkVmFyaWFibGVOYW1lKHg6IHN0cmluZykge1xuICByZXR1cm4gVkFMSURfVkFSSUFCTEUudGVzdCh4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYWxsIHZhcmlhYmxlIG5hbWVzIHVzZWQgaW4gYW4gZXhwcmVzc2lvblxuICovXG5mdW5jdGlvbiBhbGxJZGVudGlmaWVyc0luRXhwcmVzc2lvbih4OiBzdHJpbmcpIHtcbiAgcmV0dXJuIEFycmF5LmZyb20obWF0Y2hBbGwoeCwgRklORF9WQVJJQUJMRSkpLm1hcCgobSkgPT4gbVswXSk7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBuZWVkZWQgdG8gbWFrZSBhbiBhbGFybSBmcm9tIGEgbWV0cmljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQWxhcm1PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwZXJpb2Qgb3ZlciB3aGljaCB0aGUgc3BlY2lmaWVkIHN0YXRpc3RpYyBpcyBhcHBsaWVkLlxuICAgKlxuICAgKiBDYW5ub3QgYmUgdXNlZCB3aXRoIGBNYXRoRXhwcmVzc2lvbmAgb2JqZWN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgcGVyaW9kIGZyb20gdGhlIG1ldHJpY1xuICAgKiBAZGVwcmVjYXRlZCBVc2UgYG1ldHJpYy53aXRoKHsgcGVyaW9kOiAuLi4gfSlgIHRvIGVuY29kZSB0aGUgcGVyaW9kIGludG8gdGhlIE1ldHJpYyBvYmplY3RcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGF0IGZ1bmN0aW9uIHRvIHVzZSBmb3IgYWdncmVnYXRpbmcuXG4gICAqXG4gICAqIENhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiAgICpcbiAgICogLSBcIk1pbmltdW1cIiB8IFwibWluXCJcbiAgICogLSBcIk1heGltdW1cIiB8IFwibWF4XCJcbiAgICogLSBcIkF2ZXJhZ2VcIiB8IFwiYXZnXCJcbiAgICogLSBcIlN1bVwiIHwgXCJzdW1cIlxuICAgKiAtIFwiU2FtcGxlQ291bnQgfCBcIm5cIlxuICAgKiAtIFwicE5OLk5OXCJcbiAgICpcbiAgICogQ2Fubm90IGJlIHVzZWQgd2l0aCBgTWF0aEV4cHJlc3Npb25gIG9iamVjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHN0YXRpc3RpYyBmcm9tIHRoZSBtZXRyaWNcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBtZXRyaWMud2l0aCh7IHN0YXRpc3RpYzogLi4uIH0pYCB0byBlbmNvZGUgdGhlIHBlcmlvZCBpbnRvIHRoZSBNZXRyaWMgb2JqZWN0XG4gICAqL1xuICByZWFkb25seSBzdGF0aXN0aWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGFsYXJtXG4gICAqXG4gICAqIEBkZWZhdWx0IEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gZm9yIHRoZSBhbGFybVxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1EZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29tcGFyaXNvbiB0byB1c2UgdG8gY2hlY2sgaWYgbWV0cmljIGlzIGJyZWFjaGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBHcmVhdGVyVGhhbk9yRXF1YWxUb1RocmVzaG9sZFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyaXNvbk9wZXJhdG9yPzogQ29tcGFyaXNvbk9wZXJhdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgYWdhaW5zdCB3aGljaCB0aGUgc3BlY2lmaWVkIHN0YXRpc3RpYyBpcyBjb21wYXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHBlcmlvZHMgb3ZlciB3aGljaCBkYXRhIGlzIGNvbXBhcmVkIHRvIHRoZSBzcGVjaWZpZWQgdGhyZXNob2xkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZhbHVhdGlvblBlcmlvZHM6IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZXZhbHVhdGUgdGhlIGRhdGEgYW5kIHBvdGVudGlhbGx5IGNoYW5nZSB0aGUgYWxhcm0gc3RhdGUgaWYgdGhlcmUgYXJlIHRvbyBmZXcgZGF0YSBwb2ludHMgdG8gYmUgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudC5cbiAgICpcbiAgICogVXNlZCBvbmx5IGZvciBhbGFybXMgdGhhdCBhcmUgYmFzZWQgb24gcGVyY2VudGlsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm90IGNvbmZpZ3VyZWQuXG4gICAqL1xuICByZWFkb25seSBldmFsdWF0ZUxvd1NhbXBsZUNvdW50UGVyY2VudGlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0cyBob3cgdGhpcyBhbGFybSBpcyB0byBoYW5kbGUgbWlzc2luZyBkYXRhIHBvaW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgVHJlYXRNaXNzaW5nRGF0YS5NaXNzaW5nXG4gICAqL1xuICByZWFkb25seSB0cmVhdE1pc3NpbmdEYXRhPzogVHJlYXRNaXNzaW5nRGF0YTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWN0aW9ucyBmb3IgdGhpcyBhbGFybSBhcmUgZW5hYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25zRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF0YXBvaW50cyB0aGF0IG11c3QgYmUgYnJlYWNoaW5nIHRvIHRyaWdnZXIgdGhlIGFsYXJtLiBUaGlzIGlzIHVzZWQgb25seSBpZiB5b3UgYXJlIHNldHRpbmcgYW4gXCJNXG4gICAqIG91dCBvZiBOXCIgYWxhcm0uIEluIHRoYXQgY2FzZSwgdGhpcyB2YWx1ZSBpcyB0aGUgTS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBFdmFsdWF0aW5nIGFuIEFsYXJtIGluIHRoZSBBbWF6b25cbiAgICogQ2xvdWRXYXRjaCBVc2VyIEd1aWRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgYGV2YWx1YXRpb25QZXJpb2RzYGBcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9BbGFybVRoYXRTZW5kc0VtYWlsLmh0bWwjYWxhcm0tZXZhbHVhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YXBvaW50c1RvQWxhcm0/OiBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlmVW5kZWZpbmVkPFQ+KHg6IFQgfCB1bmRlZmluZWQsIGRlZjogVCB8IHVuZGVmaW5lZCk6IFQgfCB1bmRlZmluZWQge1xuICBpZiAoeCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHg7XG4gIH1cbiAgcmV0dXJuIGRlZjtcbn1cblxuLyoqXG4gKiBDaGFuZ2UgcGVyaW9kcyBvZiBhbGwgbWV0cmljcyBpbiB0aGUgbWFwXG4gKi9cbmZ1bmN0aW9uIGNoYW5nZUFsbFBlcmlvZHMoXG4gIG1ldHJpY3M6IFJlY29yZDxzdHJpbmcsIElNZXRyaWM+LFxuICBwZXJpb2Q6IER1cmF0aW9uLFxuKTogeyByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIElNZXRyaWM+OyBvdmVycmlkZGVuOiBib29sZWFuIH0ge1xuICBjb25zdCByZXRSZWNvcmQ6IFJlY29yZDxzdHJpbmcsIElNZXRyaWM+ID0ge307XG4gIGxldCByZXRPdmVycmlkZGVuID0gZmFsc2U7XG4gIGZvciAoY29uc3QgW2lkLCBtXSBvZiBPYmplY3QuZW50cmllcyhtZXRyaWNzKSkge1xuICAgIGNvbnN0IHsgbWV0cmljLCBvdmVycmlkZGVuIH0gPSBjaGFuZ2VQZXJpb2QobSwgcGVyaW9kKTtcbiAgICByZXRSZWNvcmRbaWRdID0gbWV0cmljO1xuICAgIGlmIChvdmVycmlkZGVuKSB7XG4gICAgICByZXRPdmVycmlkZGVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcmVjb3JkOiByZXRSZWNvcmQsIG92ZXJyaWRkZW46IHJldE92ZXJyaWRkZW4gfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBuZXcgbWV0cmljIG9iamVjdCB3aGljaCBpcyB0aGUgc2FtZSB0eXBlIGFzIHRoZSBpbnB1dCBvYmplY3QgYnV0IHdpdGggdGhlIHBlcmlvZCBjaGFuZ2VkLFxuICogYW5kIGEgZmxhZyB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBwZXJpb2QgaGFzIGJlZW4gb3ZlcndyaXR0ZW4uXG4gKlxuICogUmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBJTWV0cmljYCBhcmUgYWxzbyBzdXBwb3NlZCB0byBoYXZlXG4gKiBhbiBpbXBsZW1lbnRhdGlvbiBvZiBgd2l0aGAgdGhhdCBhY2NlcHRzIGFuIGFyZ3VtZW50IGNhbGxlZCBgcGVyaW9kYC4gU2VlIGBJTW9kaWZpYWJsZU1ldHJpY2AuXG4gKi9cbmZ1bmN0aW9uIGNoYW5nZVBlcmlvZChcbiAgbWV0cmljOiBJTWV0cmljLFxuICBwZXJpb2Q6IER1cmF0aW9uLFxuKTogeyBtZXRyaWM6IElNZXRyaWM7IG92ZXJyaWRkZW46IGJvb2xlYW4gfSB7XG4gIGlmIChpc01vZGlmaWFibGVNZXRyaWMobWV0cmljKSkge1xuICAgIGNvbnN0IG92ZXJyaWRkZW4gPVxuICAgICAgaXNNZXRyaWNXaXRoUGVyaW9kKG1ldHJpYykgJiYgLy8gYWx3YXlzIHRydWUsIGFzIHRoZSBwZXJpb2QgcHJvcGVydHkgaXMgc2V0IHdpdGggYSBkZWZhdWx0IHZhbHVlIGV2ZW4gaWYgaXQgaXMgbm90IHNwZWNpZmllZFxuICAgICAgbWV0cmljLnBlcmlvZC50b1NlY29uZHMoKSAhPT0gRHVyYXRpb24ubWludXRlcyg1KS50b1NlY29uZHMoKSAmJiAvLyBleGNsdWRlIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGEgbWV0cmljLCBhc3N1bWluZyB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBpdFxuICAgICAgbWV0cmljLnBlcmlvZC50b1NlY29uZHMoKSAhPT0gcGVyaW9kLnRvU2Vjb25kcygpO1xuICAgIHJldHVybiB7IG1ldHJpYzogbWV0cmljLndpdGgoeyBwZXJpb2QgfSksIG92ZXJyaWRkZW4gfTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgTWV0cmljIG9iamVjdCBzaG91bGQgYWxzbyBpbXBsZW1lbnQgJ3dpdGgnOiAke21ldHJpY31gKTtcbn1cblxuLyoqXG4gKiBQcml2YXRlIHByb3RvY29sIGZvciBtZXRyaWNzXG4gKlxuICogTWV0cmljIHR5cGVzIHVzZWQgaW4gYSBNYXRoRXhwcmVzc2lvbiBuZWVkIHRvIGltcGxlbWVudCBhdCBsZWFzdCB0aGlzOlxuICogYSBgd2l0aGAgbWV0aG9kIHRoYXQgdGFrZXMgYXQgbGVhc3QgYSBgcGVyaW9kYCBhbmQgcmV0dXJucyBhIG1vZGlmaWVkIGNvcHlcbiAqIG9mIHRoZSBtZXRyaWMgb2JqZWN0LlxuICpcbiAqIFdlIHB1dCBpdCBoZXJlIGluc3RlYWQgb2Ygb24gYElNZXRyaWNgIGJlY2F1c2UgdGhlcmUgaXMgbm8gd2F5IHRvIHR5cGVcbiAqIGl0IGluIGpzaWkgaW4gYSB3YXkgdGhhdCBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgYE1ldHJpY2AgYW5kIGBNYXRoRXhwcmVzc2lvbmBcbiAqIGNhbiBiZSBzdGF0aWNhbGx5IHR5cGFibGUgYWJvdXQgdGhlIGZpZWxkcyB0aGF0IGFyZSBjaGFuZ2VhYmxlOiBhbGxcbiAqIGB3aXRoYCBtZXRob2RzIHdvdWxkIG5lZWQgdG8gdGFrZSB0aGUgc2FtZSBhcmd1bWVudCB0eXBlLCBidXQgbm90IGFsbFxuICogY2xhc3NlcyBoYXZlIHRoZSBzYW1lIGB3aXRoYC1hYmxlIHByb3BlcnRpZXMuXG4gKlxuICogVGhpcyBjbGFzcyBleGlzdHMgdG8gcHJldmVudCBoYXZpbmcgdG8gdXNlIGBpbnN0YW5jZW9mYCBpbiB0aGUgYGNoYW5nZVBlcmlvZGBcbiAqIGZ1bmN0aW9uLCBzbyB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2hlcmUgaW4gcHJpbmNpcGxlIG5ldyBpbXBsZW1lbnRhdGlvbnNcbiAqIG9mIGBJTWV0cmljYCBjYW4gYmUgYWRkZWQuIEJlY2F1c2UgaXQgd2lsbCBiZSByYXJlLCB0aGUgbWVjaGFuaXNtIGRvZXNuJ3QgaGF2ZVxuICogdG8gYmUgZXhwb3NlZCB2ZXJ5IHdlbGwsIGp1c3QgaGFzIHRvIGJlIHBvc3NpYmxlLlxuICovXG5pbnRlcmZhY2UgSU1vZGlmaWFibGVNZXRyaWMge1xuICB3aXRoKG9wdGlvbnM6IHsgcGVyaW9kPzogRHVyYXRpb24gfSk6IElNZXRyaWM7XG59XG5cbmZ1bmN0aW9uIGlzTW9kaWZpYWJsZU1ldHJpYyhtOiBhbnkpOiBtIGlzIElNb2RpZmlhYmxlTWV0cmljIHtcbiAgcmV0dXJuIHR5cGVvZiBtID09PSBcIm9iamVjdFwiICYmIG0gIT09IG51bGwgJiYgISFtLndpdGg7XG59XG5cbmludGVyZmFjZSBJTWV0cmljV2l0aFBlcmlvZCB7XG4gIHBlcmlvZDogRHVyYXRpb247XG59XG5cbmZ1bmN0aW9uIGlzTWV0cmljV2l0aFBlcmlvZChtOiBhbnkpOiBtIGlzIElNZXRyaWNXaXRoUGVyaW9kIHtcbiAgcmV0dXJuIHR5cGVvZiBtID09PSBcIm9iamVjdFwiICYmIG0gIT09IG51bGwgJiYgISFtLnBlcmlvZDtcbn1cblxuLy8gUG9seWZpbGwgZm9yIHN0cmluZy5tYXRjaEFsbChyZWdleHApXG5mdW5jdGlvbiBtYXRjaEFsbCh4OiBzdHJpbmcsIHJlOiBSZWdFeHApOiBSZWdFeHBNYXRjaEFycmF5W10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8UmVnRXhwTWF0Y2hBcnJheT4oKTtcbiAgbGV0IG06IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XG4gIHdoaWxlICgobSA9IHJlLmV4ZWMoeCkpKSB7XG4gICAgcmV0LnB1c2gobSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==
|
|
@@ -18,7 +18,7 @@ class JsonPattern {
|
|
|
18
18
|
}
|
|
19
19
|
exports.JsonPattern = JsonPattern;
|
|
20
20
|
_a = JSII_RTTI_SYMBOL_1;
|
|
21
|
-
JsonPattern[_a] = { fqn: "terraconstructs.aws.cloudwatch.JsonPattern", version: "0.0.
|
|
21
|
+
JsonPattern[_a] = { fqn: "terraconstructs.aws.cloudwatch.JsonPattern", version: "0.0.24" };
|
|
22
22
|
/**
|
|
23
23
|
* A collection of static methods to generate appropriate ILogPatterns
|
|
24
24
|
*/
|
|
@@ -186,7 +186,7 @@ class FilterPattern {
|
|
|
186
186
|
}
|
|
187
187
|
exports.FilterPattern = FilterPattern;
|
|
188
188
|
_b = JSII_RTTI_SYMBOL_1;
|
|
189
|
-
FilterPattern[_b] = { fqn: "terraconstructs.aws.cloudwatch.FilterPattern", version: "0.0.
|
|
189
|
+
FilterPattern[_b] = { fqn: "terraconstructs.aws.cloudwatch.FilterPattern", version: "0.0.24" };
|
|
190
190
|
/**
|
|
191
191
|
* Use a string literal as a log pattern
|
|
192
192
|
*/
|
|
@@ -344,7 +344,7 @@ class SpaceDelimitedTextPattern {
|
|
|
344
344
|
}
|
|
345
345
|
exports.SpaceDelimitedTextPattern = SpaceDelimitedTextPattern;
|
|
346
346
|
_c = JSII_RTTI_SYMBOL_1;
|
|
347
|
-
SpaceDelimitedTextPattern[_c] = { fqn: "terraconstructs.aws.cloudwatch.SpaceDelimitedTextPattern", version: "0.0.
|
|
347
|
+
SpaceDelimitedTextPattern[_c] = { fqn: "terraconstructs.aws.cloudwatch.SpaceDelimitedTextPattern", version: "0.0.24" };
|
|
348
348
|
/**
|
|
349
349
|
* Quote a term for use in a pattern expression
|
|
350
350
|
*
|
|
@@ -46,5 +46,5 @@ class ResourcePolicy extends aws_construct_1.AwsConstructBase {
|
|
|
46
46
|
}
|
|
47
47
|
exports.ResourcePolicy = ResourcePolicy;
|
|
48
48
|
_a = JSII_RTTI_SYMBOL_1;
|
|
49
|
-
ResourcePolicy[_a] = { fqn: "terraconstructs.aws.cloudwatch.ResourcePolicy", version: "0.0.
|
|
49
|
+
ResourcePolicy[_a] = { fqn: "terraconstructs.aws.cloudwatch.ResourcePolicy", version: "0.0.24" };
|
|
50
50
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL3BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBGQUEwRjtBQUUxRixzREFBa0U7QUFFbEUsb0RBQXVFO0FBQ3ZFLGdDQUF5RDtBQW9CekQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsY0FBZSxTQUFRLGdDQUFnQjtJQUVsRCxJQUFXLE9BQU87UUFDaEIsT0FBTztZQUNMLGlEQUFpRDtZQUNqRCxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBT0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUE2QixFQUFFO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN0QixDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDBDQUEyQixDQUFDLDJCQUEyQixDQUN6RSxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNsQyxVQUFVO1NBQ1gsQ0FDRixDQUFDO1FBQ0YsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDOztBQWxDSCx3Q0FtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvL2h0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1sb2dzL2xpYi9wb2xpY3kudHNcblxuaW1wb3J0IHsgY2xvdWR3YXRjaExvZ1Jlc291cmNlUG9saWN5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBQb2xpY3lEb2N1bWVudCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIENsb3Vkd2F0Y2ggbG9nIGdyb3VwIHJlc291cmNlIHBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUG9saWN5UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBsb2cgZ3JvdXAgcmVzb3VyY2UgcG9saWN5XG4gICAqIEBkZWZhdWx0IC0gVXNlcyBhIHVuaXF1ZSBpZCBiYXNlZCBvbiB0aGUgY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlUG9saWN5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5pdGlhbCBzdGF0ZW1lbnRzIHRvIGFkZCB0byB0aGUgcmVzb3VyY2UgcG9saWN5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc3RhdGVtZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5U3RhdGVtZW50cz86IFBvbGljeVN0YXRlbWVudFtdO1xufVxuXG4vKipcbiAqIFJlc291cmNlIFBvbGljeSBmb3IgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gKlxuICogUG9saWNpZXMgZGVmaW5lIHRoZSBvcGVyYXRpb25zIHRoYXQgYXJlIGFsbG93ZWQgb24gdGhpcyByZXNvdXJjZS5cbiAqXG4gKiBZb3UgYWxtb3N0IG5ldmVyIG5lZWQgdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0IGRpcmVjdGx5LlxuICpcbiAqIEFsbCBBV1MgcmVzb3VyY2VzIHRoYXQgc3VwcG9ydCByZXNvdXJjZSBwb2xpY2llcyBoYXZlIGEgbWV0aG9kIGNhbGxlZFxuICogYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYSBuZXcgcmVzb3VyY2VcbiAqIHBvbGljeSBpZiBvbmUgZG9lc24ndCBleGlzdCB5ZXQsIG90aGVyd2lzZSBpdCB3aWxsIGFkZCB0byB0aGUgZXhpc3RpbmdcbiAqIHBvbGljeS5cbiAqXG4gKiBQcmVmZXIgdG8gdXNlIGBhZGRUb1Jlc291cmNlUG9saWN5KClgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBvbGljeSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hMb2dSZXNvdXJjZVBvbGljeS5DbG91ZHdhdGNoTG9nUmVzb3VyY2VQb2xpY3k7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gVGhlIG5hbWUgb2YgdGhlIENsb3VkV2F0Y2ggbG9nIHJlc291cmNlIHBvbGljeVxuICAgICAgaWQ6IHRoaXMucmVzb3VyY2UuaWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHBvbGljeSBkb2N1bWVudCBmb3IgdGhpcyByZXNvdXJjZSBwb2xpY3kuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnQ6IFBvbGljeURvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVBvbGljeVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID1cbiAgICAgIHByb3BzLnJlc291cmNlUG9saWN5TmFtZSB8fFxuICAgICAgdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICBwcmVmaXg6IHRoaXMuZ3JpZFVVSUQsXG4gICAgICB9KTtcblxuICAgIHRoaXMuZG9jdW1lbnQgPSBuZXcgUG9saWN5RG9jdW1lbnQodGhpcywgXCJQb2xpY3lcIik7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoTG9nUmVzb3VyY2VQb2xpY3kuQ2xvdWR3YXRjaExvZ1Jlc291cmNlUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgcG9saWN5RG9jdW1lbnQ6IHRoaXMuZG9jdW1lbnQuanNvbixcbiAgICAgICAgcG9saWN5TmFtZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBpZiAocHJvcHM/LnBvbGljeVN0YXRlbWVudHMpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyguLi5wcm9wcy5wb2xpY3lTdGF0ZW1lbnRzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -112,7 +112,6 @@ function metricPeriod(metric) {
|
|
|
112
112
|
* repeated in all places where code needs to make a distinction on the type
|
|
113
113
|
* of metric object that is being passed.
|
|
114
114
|
*/
|
|
115
|
-
// eslint-disable-next-line max-len
|
|
116
115
|
function dispatchMetric(metric, fns) {
|
|
117
116
|
const conf = metric.toMetricConfig();
|
|
118
117
|
if (conf.metricStat && conf.mathExpression) {
|
|
@@ -128,4 +127,4 @@ function dispatchMetric(metric, fns) {
|
|
|
128
127
|
throw new Error("Metric object must have either 'metricStat' or 'mathExpression'");
|
|
129
128
|
}
|
|
130
129
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2Nsb3Vkd2F0Y2gvcHJpdmF0ZS9tZXRyaWMtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOEdBQThHOztBQW1COUcsOEJBZ0RDO0FBVUQsb0NBU0M7QUF5Q0Qsd0NBcUJDO0FBbEpELGdEQUE2QztBQVM3QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0FBRWhGOzs7OztHQUtHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQWU7SUFDdkMsaUZBQWlGO0lBQ2pGLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBUSxNQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUVsQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FB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VUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLENBQ2xFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi9wcml2YXRlL21ldHJpYy11dGlsLnRzXG5cbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBNYXRoRXhwcmVzc2lvbiB9IGZyb20gXCIuLi9tZXRyaWNcIjtcbmltcG9ydCB7XG4gIElNZXRyaWMsXG4gIE1ldHJpY0NvbmZpZyxcbiAgTWV0cmljRXhwcmVzc2lvbkNvbmZpZyxcbiAgTWV0cmljU3RhdENvbmZpZyxcbn0gZnJvbSBcIi4uL21ldHJpYy10eXBlc1wiO1xuXG5jb25zdCBNRVRSSUNLRVlfU1lNQk9MID0gU3ltYm9sKFwidGVycmFjb25zdHJ1Y3RzL2xpYi9hd3MvY2xvdWR3YXRjaC5NZXRyaWNLZXlcIik7XG5cbi8qKlxuICogUmV0dXJuIGEgdW5pcXVlIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhpcyBtZXRyaWMuXG4gKlxuICogQ2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIGFzIGEgaGFzaCBrZXkgdG8gZGV0ZXJtaW5lIGlmIDIgTWV0cmljIG9iamVjdHNcbiAqIHJlcHJlc2VudCB0aGUgc2FtZSBtZXRyaWMuIEV4Y2x1ZGVzIHJlbmRlcmluZyBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWV0cmljS2V5KG1ldHJpYzogSU1ldHJpYyk6IHN0cmluZyB7XG4gIC8vIENhY2hlIG9uIHRoZSBvYmplY3QgaXRzZWxmLiBUaGlzIGlzIHNhZmUgYmVjYXVzZSBNZXRyaWMgb2JqZWN0cyBhcmUgaW1tdXRhYmxlLlxuICBpZiAobWV0cmljLmhhc093blByb3BlcnR5KE1FVFJJQ0tFWV9TWU1CT0wpKSB7XG4gICAgcmV0dXJuIChtZXRyaWMgYXMgYW55KVtNRVRSSUNLRVlfU1lNQk9MXTtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICBjb25zdCBjb25mID0gbWV0cmljLnRvTWV0cmljQ29uZmlnKCk7XG4gIGlmIChjb25mLm1hdGhFeHByZXNzaW9uKSB7XG4gICAgcGFydHMucHVzaChjb25mLm1hdGhFeHByZXNzaW9uLmV4cHJlc3Npb24pO1xuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMoY29uZi5tYXRoRXhwcmVzc2lvbi51c2luZ01ldHJpY3MpLnNvcnQoKSkge1xuICAgICAgcGFydHMucHVzaChpZCk7XG4gICAgICBwYXJ0cy5wdXNoKG1ldHJpY0tleShjb25mLm1hdGhFeHByZXNzaW9uLnVzaW5nTWV0cmljc1tpZF0pKTtcbiAgICB9XG4gICAgaWYgKGNvbmYubWF0aEV4cHJlc3Npb24uc2VhcmNoUmVnaW9uKSB7XG4gICAgICBwYXJ0cy5wdXNoKGNvbmYubWF0aEV4cHJlc3Npb24uc2VhcmNoUmVnaW9uKTtcbiAgICB9XG4gICAgaWYgKGNvbmYubWF0aEV4cHJlc3Npb24uc2VhcmNoQWNjb3VudCkge1xuICAgICAgcGFydHMucHVzaChjb25mLm1hdGhFeHByZXNzaW9uLnNlYXJjaEFjY291bnQpO1xuICAgIH1cbiAgfVxuICBpZiAoY29uZi5tZXRyaWNTdGF0KSB7XG4gICAgcGFydHMucHVzaChjb25mLm1ldHJpY1N0YXQubmFtZXNwYWNlKTtcbiAgICBwYXJ0cy5wdXNoKGNvbmYubWV0cmljU3RhdC5tZXRyaWNOYW1lKTtcbiAgICBmb3IgKGNvbnN0IFtkaW1OYW1lLCBkaW1WYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoXG4gICAgICBjb25mLm1ldHJpY1N0YXQuZGltZW5zaW9ucyB8fCB7fSxcbiAgICApKSB7XG4gICAgICBwYXJ0cy5wdXNoKGRpbU5hbWUpO1xuICAgICAgcGFydHMucHVzaChkaW1WYWx1ZSk7XG4gICAgfVxuICAgIGlmIChjb25mLm1ldHJpY1N0YXQuc3RhdGlzdGljKSB7XG4gICAgICBwYXJ0cy5wdXNoKGNvbmYubWV0cmljU3RhdC5zdGF0aXN0aWMpO1xuICAgIH1cbiAgICBpZiAoY29uZi5tZXRyaWNTdGF0LnBlcmlvZCkge1xuICAgICAgcGFydHMucHVzaChgJHtjb25mLm1ldHJpY1N0YXQucGVyaW9kLnRvU2Vjb25kcygpfWApO1xuICAgIH1cbiAgICBpZiAoY29uZi5tZXRyaWNTdGF0LnJlZ2lvbikge1xuICAgICAgcGFydHMucHVzaChjb25mLm1ldHJpY1N0YXQucmVnaW9uKTtcbiAgICB9XG4gICAgaWYgKGNvbmYubWV0cmljU3RhdC5hY2NvdW50KSB7XG4gICAgICBwYXJ0cy5wdXNoKGNvbmYubWV0cmljU3RhdC5hY2NvdW50KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCByZXQgPSBwYXJ0cy5qb2luKFwifFwiKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG1ldHJpYywgTUVUUklDS0VZX1NZTUJPTCwgeyB2YWx1ZTogcmV0IH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcGVyaW9kIG9mIGEgbWV0cmljXG4gKlxuICogRm9yIGEgc3RhdCBtZXRyaWMsIHJldHVybiB0aGUgaW1tZWRpYXRlIHBlcmlvZC5cbiAqXG4gKiBGb3IgYW4gZXhwcmVzc2lvbiBtZXRyaWMsIGFsbCBtZXRyaWNzIHVzZWQgaW4gaXQgaGF2ZSBiZWVuIG1hZGUgdG8gaGF2ZSB0aGVcbiAqIHNhbWUgcGVyaW9kLCBzbyB3ZSByZXR1cm4gdGhlIHBlcmlvZCBvZiB0aGUgZmlyc3QgaW5uZXIgbWV0cmljLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWV0cmljUGVyaW9kKG1ldHJpYzogSU1ldHJpYyk6IER1cmF0aW9uIHtcbiAgcmV0dXJuIGRpc3BhdGNoTWV0cmljKG1ldHJpYywge1xuICAgIHdpdGhTdGF0KHN0YXQpIHtcbiAgICAgIHJldHVybiBzdGF0LnBlcmlvZDtcbiAgICB9LFxuICAgIHdpdGhFeHByZXNzaW9uKCkge1xuICAgICAgcmV0dXJuIChtZXRyaWMgYXMgTWF0aEV4cHJlc3Npb24pLnBlcmlvZCB8fCBEdXJhdGlvbi5taW51dGVzKDUpO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgbWV0cmljIG9iamVjdCwgaW5zcGVjdCBpdCBhbmQgY2FsbCB0aGUgY29ycmVjdCBmdW5jdGlvbiBmb3IgdGhlIHR5cGUgb2Ygb3V0cHV0XG4gKlxuICogSW4gYWRkaXRpb24gdG8gdGhlIG1ldHJpYyBvYmplY3QgaXRzZWxmLCB0YWtlcyBhIGNhbGxiYWNrIG9iamVjdCB3aXRoIHR3b1xuICogbWV0aG9kcywgdG8gYmUgaW52b2tlZCBmb3IgdGhlIHBhcnRpY3VsYXIgdHlwZSBvZiBtZXRyaWMuXG4gKlxuICogSWYgdGhlIG1ldHJpYyByZXByZXNlbnQgYSBtZXRyaWMgcXVlcnkgKG5vbWluYWxseSBnZW5lcmF0ZWQgdGhyb3VnaCBhblxuICogaW5zdGFudGlhdGlvbiBvZiBgTWV0cmljYCBidXQgY2FuIGJlIGdlbmVyYXRlZCBieSBhbnkgY2xhc3MgdGhhdCBpbXBsZW1lbnRzXG4gKiBgSU1ldHJpY2ApIGEgcGFydGljdWxhciBmaWVsZCBpbiBpdHMgYHRvTWV0cmljQ29uZmlnKClgIG91dHB1dCB3aWxsIGJlIHNldFxuICogKHRvIHdpdCwgYG1ldHJpY1N0YXRgKSBhbmQgdGhlIGB3aXRoU3RhdCgpYCBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aXRoXG4gKiB0aGF0IG9iamVjdC5cbiAqXG4gKiBJZiB0aGUgbWV0cmljIHJlcHJlc2VudHMgYW4gZXhwcmVzc2lvbiAodXN1YWxseSBieSBpbnN0YW50aWF0aW5nIGBNYXRoRXhwcmVzc2lvbmBcbiAqIGJ1dCB1c2VycyBjYW4gaW1wbGVtZW50IGBJTWV0cmljYCBhcmJpdHJhcmlseSkgdGhlIGBtYXRoRXhwcmVzc2lvbmAgZmllbGRcbiAqIHdpbGwgYmUgc2V0IGluIHRoZSBvYmplY3QgcmV0dXJuZWQgZnJvbSBgdG9NZXRyaWNDb25maWdgIGFuZCB0aGUgY2FsbGJhY2tcbiAqIGNhbGxlZCBgd2l0aEV4cHJlc3Npb25gIHdpbGwgYmUgYXBwbGllZCB0byB0aGF0IG9iamVjdC5cbiAqXG4gKiBXaWxsIHJldHVybiB0aGUgdmFsdWVzIHJldHVybmVkIGJ5IHRoZSBjYWxsYmFja3MuXG4gKlxuICogVG8gYmUgdXNlZCBhcyBzdWNoOlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCByZXQgPSBkaXNwYXRjaE1ldHJpYyhzb21lTWV0cmljLCB7XG4gKiAgIHdpdGhTdGF0KHN0YXQpIHtcbiAqICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCBzdGF0XG4gKiAgICAgcmV0dXJuIDE7XG4gKiAgIH0sXG4gKiAgIHdpdGhFeHByZXNzaW9uKGV4cHIpIHtcbiAqICAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCBleHByXG4gKiAgICAgcmV0dXJuIDI7XG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgZnVuY3Rpb24gZW5jYXBzdWxhdGVzIHNvbWUgdHlwZSBhbmFseXNpcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBoYXZlIHRvIGJlXG4gKiByZXBlYXRlZCBpbiBhbGwgcGxhY2VzIHdoZXJlIGNvZGUgbmVlZHMgdG8gbWFrZSBhIGRpc3RpbmN0aW9uIG9uIHRoZSB0eXBlXG4gKiBvZiBtZXRyaWMgb2JqZWN0IHRoYXQgaXMgYmVpbmcgcGFzc2VkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoTWV0cmljPEEsIEI+KFxuICBtZXRyaWM6IElNZXRyaWMsXG4gIGZuczoge1xuICAgIHdpdGhTdGF0OiAoeDogTWV0cmljU3RhdENvbmZpZywgYzogTWV0cmljQ29uZmlnKSA9PiBBO1xuICAgIHdpdGhFeHByZXNzaW9uOiAoeDogTWV0cmljRXhwcmVzc2lvbkNvbmZpZywgYzogTWV0cmljQ29uZmlnKSA9PiBCO1xuICB9LFxuKTogQSB8IEIge1xuICBjb25zdCBjb25mID0gbWV0cmljLnRvTWV0cmljQ29uZmlnKCk7XG4gIGlmIChjb25mLm1ldHJpY1N0YXQgJiYgY29uZi5tYXRoRXhwcmVzc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiTWV0cmljIG9iamVjdCBtdXN0IG5vdCBwcm9kdWNlIGJvdGggJ21ldHJpY1N0YXQnIGFuZCAnbWF0aEV4cHJlc3Npb24nXCIsXG4gICAgKTtcbiAgfSBlbHNlIGlmIChjb25mLm1ldHJpY1N0YXQpIHtcbiAgICByZXR1cm4gZm5zLndpdGhTdGF0KGNvbmYubWV0cmljU3RhdCwgY29uZik7XG4gIH0gZWxzZSBpZiAoY29uZi5tYXRoRXhwcmVzc2lvbikge1xuICAgIHJldHVybiBmbnMud2l0aEV4cHJlc3Npb24oY29uZi5tYXRoRXhwcmVzc2lvbiwgY29uZik7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJNZXRyaWMgb2JqZWN0IG11c3QgaGF2ZSBlaXRoZXIgJ21ldHJpY1N0YXQnIG9yICdtYXRoRXhwcmVzc2lvbidcIixcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2Nsb3Vkd2F0Y2gvcHJpdmF0ZS9tZXRyaWMtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOEdBQThHOztBQW1COUcsOEJBZ0RDO0FBVUQsb0NBU0M7QUF5Q0Qsd0NBcUJDO0FBbEpELGdEQUE2QztBQVM3QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0FBRWhGOzs7OztHQUtHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLE1BQWU7SUFDdkMsaUZBQWlGO0lBQ2pGLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBUSxNQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUVsQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLEtBQUssTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FB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SSxDQUFDLENBQUM7SUFDN0MsQ0FBQztTQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTcwLjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gvbGliL3ByaXZhdGUvbWV0cmljLXV0aWwudHNcblxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vZHVyYXRpb25cIjtcbmltcG9ydCB7IE1hdGhFeHByZXNzaW9uIH0gZnJvbSBcIi4uL21ldHJpY1wiO1xuaW1wb3J0IHtcbiAgSU1ldHJpYyxcbiAgTWV0cmljQ29uZmlnLFxuICBNZXRyaWNFeHByZXNzaW9uQ29uZmlnLFxuICBNZXRyaWNTdGF0Q29uZmlnLFxufSBmcm9tIFwiLi4vbWV0cmljLXR5cGVzXCI7XG5cbmNvbnN0IE1FVFJJQ0tFWV9TWU1CT0wgPSBTeW1ib2woXCJ0ZXJyYWNvbnN0cnVjdHMvbGliL2F3cy9jbG91ZHdhdGNoLk1ldHJpY0tleVwiKTtcblxuLyoqXG4gKiBSZXR1cm4gYSB1bmlxdWUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciB0aGlzIG1ldHJpYy5cbiAqXG4gKiBDYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgYXMgYSBoYXNoIGtleSB0byBkZXRlcm1pbmUgaWYgMiBNZXRyaWMgb2JqZWN0c1xuICogcmVwcmVzZW50IHRoZSBzYW1lIG1ldHJpYy4gRXhjbHVkZXMgcmVuZGVyaW5nIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXRyaWNLZXkobWV0cmljOiBJTWV0cmljKTogc3RyaW5nIHtcbiAgLy8gQ2FjaGUgb24gdGhlIG9iamVjdCBpdHNlbGYuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIE1ldHJpYyBvYmplY3RzIGFyZSBpbW11dGFibGUuXG4gIGlmIChtZXRyaWMuaGFzT3duUHJvcGVydHkoTUVUUklDS0VZX1NZTUJPTCkpIHtcbiAgICByZXR1cm4gKG1ldHJpYyBhcyBhbnkpW01FVFJJQ0tFWV9TWU1CT0xdO1xuICB9XG5cbiAgY29uc3QgcGFydHMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gIGNvbnN0IGNvbmYgPSBtZXRyaWMudG9NZXRyaWNDb25maWcoKTtcbiAgaWYgKGNvbmYubWF0aEV4cHJlc3Npb24pIHtcbiAgICBwYXJ0cy5wdXNoKGNvbmYubWF0aEV4cHJlc3Npb24uZXhwcmVzc2lvbik7XG4gICAgZm9yIChjb25zdCBpZCBvZiBPYmplY3Qua2V5cyhjb25mLm1hdGhFeHByZXNzaW9uLnVzaW5nTWV0cmljcykuc29ydCgpKSB7XG4gICAgICBwYXJ0cy5wdXNoKGlkKTtcbiAgICAgIHBhcnRzLnB1c2gobWV0cmljS2V5KGNvbmYubWF0aEV4cHJlc3Npb24udXNpbmdNZXRyaWNzW2lkXSkpO1xuICAgIH1cbiAgICBpZiAoY29uZi5tYXRoRXhwcmVzc2lvbi5zZWFyY2hSZWdpb24pIHtcbiAgICAgIHBhcnRzLnB1c2goY29uZi5tYXRoRXhwcmVzc2lvbi5zZWFyY2hSZWdpb24pO1xuICAgIH1cbiAgICBpZiAoY29uZi5tYXRoRXhwcmVzc2lvbi5zZWFyY2hBY2NvdW50KSB7XG4gICAgICBwYXJ0cy5wdXNoKGNvbmYubWF0aEV4cHJlc3Npb24uc2VhcmNoQWNjb3VudCk7XG4gICAgfVxuICB9XG4gIGlmIChjb25mLm1ldHJpY1N0YXQpIHtcbiAgICBwYXJ0cy5wdXNoKGNvbmYubWV0cmljU3RhdC5uYW1lc3BhY2UpO1xuICAgIHBhcnRzLnB1c2goY29uZi5tZXRyaWNTdGF0Lm1ldHJpY05hbWUpO1xuICAgIGZvciAoY29uc3QgW2RpbU5hbWUsIGRpbVZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhcbiAgICAgIGNvbmYubWV0cmljU3RhdC5kaW1lbnNpb25zIHx8IHt9LFxuICAgICkpIHtcbiAgICAgIHBhcnRzLnB1c2goZGltTmFtZSk7XG4gICAgICBwYXJ0cy5wdXNoKGRpbVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGNvbmYubWV0cmljU3RhdC5zdGF0aXN0aWMpIHtcbiAgICAgIHBhcnRzLnB1c2goY29uZi5tZXRyaWNTdGF0LnN0YXRpc3RpYyk7XG4gICAgfVxuICAgIGlmIChjb25mLm1ldHJpY1N0YXQucGVyaW9kKSB7XG4gICAgICBwYXJ0cy5wdXNoKGAke2NvbmYubWV0cmljU3RhdC5wZXJpb2QudG9TZWNvbmRzKCl9YCk7XG4gICAgfVxuICAgIGlmIChjb25mLm1ldHJpY1N0YXQucmVnaW9uKSB7XG4gICAgICBwYXJ0cy5wdXNoKGNvbmYubWV0cmljU3RhdC5yZWdpb24pO1xuICAgIH1cbiAgICBpZiAoY29uZi5tZXRyaWNTdGF0LmFjY291bnQpIHtcbiAgICAgIHBhcnRzLnB1c2goY29uZi5tZXRyaWNTdGF0LmFjY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJldCA9IHBhcnRzLmpvaW4oXCJ8XCIpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWV0cmljLCBNRVRSSUNLRVlfU1lNQk9MLCB7IHZhbHVlOiByZXQgfSk7XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwZXJpb2Qgb2YgYSBtZXRyaWNcbiAqXG4gKiBGb3IgYSBzdGF0IG1ldHJpYywgcmV0dXJuIHRoZSBpbW1lZGlhdGUgcGVyaW9kLlxuICpcbiAqIEZvciBhbiBleHByZXNzaW9uIG1ldHJpYywgYWxsIG1ldHJpY3MgdXNlZCBpbiBpdCBoYXZlIGJlZW4gbWFkZSB0byBoYXZlIHRoZVxuICogc2FtZSBwZXJpb2QsIHNvIHdlIHJldHVybiB0aGUgcGVyaW9kIG9mIHRoZSBmaXJzdCBpbm5lciBtZXRyaWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXRyaWNQZXJpb2QobWV0cmljOiBJTWV0cmljKTogRHVyYXRpb24ge1xuICByZXR1cm4gZGlzcGF0Y2hNZXRyaWMobWV0cmljLCB7XG4gICAgd2l0aFN0YXQoc3RhdCkge1xuICAgICAgcmV0dXJuIHN0YXQucGVyaW9kO1xuICAgIH0sXG4gICAgd2l0aEV4cHJlc3Npb24oKSB7XG4gICAgICByZXR1cm4gKG1ldHJpYyBhcyBNYXRoRXhwcmVzc2lvbikucGVyaW9kIHx8IER1cmF0aW9uLm1pbnV0ZXMoNSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBtZXRyaWMgb2JqZWN0LCBpbnNwZWN0IGl0IGFuZCBjYWxsIHRoZSBjb3JyZWN0IGZ1bmN0aW9uIGZvciB0aGUgdHlwZSBvZiBvdXRwdXRcbiAqXG4gKiBJbiBhZGRpdGlvbiB0byB0aGUgbWV0cmljIG9iamVjdCBpdHNlbGYsIHRha2VzIGEgY2FsbGJhY2sgb2JqZWN0IHdpdGggdHdvXG4gKiBtZXRob2RzLCB0byBiZSBpbnZva2VkIGZvciB0aGUgcGFydGljdWxhciB0eXBlIG9mIG1ldHJpYy5cbiAqXG4gKiBJZiB0aGUgbWV0cmljIHJlcHJlc2VudCBhIG1ldHJpYyBxdWVyeSAobm9taW5hbGx5IGdlbmVyYXRlZCB0aHJvdWdoIGFuXG4gKiBpbnN0YW50aWF0aW9uIG9mIGBNZXRyaWNgIGJ1dCBjYW4gYmUgZ2VuZXJhdGVkIGJ5IGFueSBjbGFzcyB0aGF0IGltcGxlbWVudHNcbiAqIGBJTWV0cmljYCkgYSBwYXJ0aWN1bGFyIGZpZWxkIGluIGl0cyBgdG9NZXRyaWNDb25maWcoKWAgb3V0cHV0IHdpbGwgYmUgc2V0XG4gKiAodG8gd2l0LCBgbWV0cmljU3RhdGApIGFuZCB0aGUgYHdpdGhTdGF0KClgIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHdpdGhcbiAqIHRoYXQgb2JqZWN0LlxuICpcbiAqIElmIHRoZSBtZXRyaWMgcmVwcmVzZW50cyBhbiBleHByZXNzaW9uICh1c3VhbGx5IGJ5IGluc3RhbnRpYXRpbmcgYE1hdGhFeHByZXNzaW9uYFxuICogYnV0IHVzZXJzIGNhbiBpbXBsZW1lbnQgYElNZXRyaWNgIGFyYml0cmFyaWx5KSB0aGUgYG1hdGhFeHByZXNzaW9uYCBmaWVsZFxuICogd2lsbCBiZSBzZXQgaW4gdGhlIG9iamVjdCByZXR1cm5lZCBmcm9tIGB0b01ldHJpY0NvbmZpZ2AgYW5kIHRoZSBjYWxsYmFja1xuICogY2FsbGVkIGB3aXRoRXhwcmVzc2lvbmAgd2lsbCBiZSBhcHBsaWVkIHRvIHRoYXQgb2JqZWN0LlxuICpcbiAqIFdpbGwgcmV0dXJuIHRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgdGhlIGNhbGxiYWNrcy5cbiAqXG4gKiBUbyBiZSB1c2VkIGFzIHN1Y2g6XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IHJldCA9IGRpc3BhdGNoTWV0cmljKHNvbWVNZXRyaWMsIHtcbiAqICAgd2l0aFN0YXQoc3RhdCkge1xuICogICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHN0YXRcbiAqICAgICByZXR1cm4gMTtcbiAqICAgfSxcbiAqICAgd2l0aEV4cHJlc3Npb24oZXhwcikge1xuICogICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIGV4cHJcbiAqICAgICByZXR1cm4gMjtcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKlxuICogVGhpcyBmdW5jdGlvbiBlbmNhcHN1bGF0ZXMgc29tZSB0eXBlIGFuYWx5c2lzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gYmVcbiAqIHJlcGVhdGVkIGluIGFsbCBwbGFjZXMgd2hlcmUgY29kZSBuZWVkcyB0byBtYWtlIGEgZGlzdGluY3Rpb24gb24gdGhlIHR5cGVcbiAqIG9mIG1ldHJpYyBvYmplY3QgdGhhdCBpcyBiZWluZyBwYXNzZWQuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoTWV0cmljPEEsIEI+KFxuICBtZXRyaWM6IElNZXRyaWMsXG4gIGZuczoge1xuICAgIHdpdGhTdGF0OiAoeDogTWV0cmljU3RhdENvbmZpZywgYzogTWV0cmljQ29uZmlnKSA9PiBBO1xuICAgIHdpdGhFeHByZXNzaW9uOiAoeDogTWV0cmljRXhwcmVzc2lvbkNvbmZpZywgYzogTWV0cmljQ29uZmlnKSA9PiBCO1xuICB9LFxuKTogQSB8IEIge1xuICBjb25zdCBjb25mID0gbWV0cmljLnRvTWV0cmljQ29uZmlnKCk7XG4gIGlmIChjb25mLm1ldHJpY1N0YXQgJiYgY29uZi5tYXRoRXhwcmVzc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiTWV0cmljIG9iamVjdCBtdXN0IG5vdCBwcm9kdWNlIGJvdGggJ21ldHJpY1N0YXQnIGFuZCAnbWF0aEV4cHJlc3Npb24nXCIsXG4gICAgKTtcbiAgfSBlbHNlIGlmIChjb25mLm1ldHJpY1N0YXQpIHtcbiAgICByZXR1cm4gZm5zLndpdGhTdGF0KGNvbmYubWV0cmljU3RhdCwgY29uZik7XG4gIH0gZWxzZSBpZiAoY29uZi5tYXRoRXhwcmVzc2lvbikge1xuICAgIHJldHVybiBmbnMud2l0aEV4cHJlc3Npb24oY29uZi5tYXRoRXhwcmVzc2lvbiwgY29uZik7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJNZXRyaWMgb2JqZWN0IG11c3QgaGF2ZSBlaXRoZXIgJ21ldHJpY1N0YXQnIG9yICdtYXRoRXhwcmVzc2lvbidcIixcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -79,7 +79,7 @@ class QueryString {
|
|
|
79
79
|
}
|
|
80
80
|
exports.QueryString = QueryString;
|
|
81
81
|
_a = JSII_RTTI_SYMBOL_1;
|
|
82
|
-
QueryString[_a] = { fqn: "terraconstructs.aws.cloudwatch.QueryString", version: "0.0.
|
|
82
|
+
QueryString[_a] = { fqn: "terraconstructs.aws.cloudwatch.QueryString", version: "0.0.24" };
|
|
83
83
|
/**
|
|
84
84
|
* Define a query definition for CloudWatch Logs Insights
|
|
85
85
|
*/
|
|
@@ -110,5 +110,5 @@ class QueryDefinition extends aws_construct_1.AwsConstructBase {
|
|
|
110
110
|
}
|
|
111
111
|
exports.QueryDefinition = QueryDefinition;
|
|
112
112
|
_b = JSII_RTTI_SYMBOL_1;
|
|
113
|
-
QueryDefinition[_b] = { fqn: "terraconstructs.aws.cloudwatch.QueryDefinition", version: "0.0.
|
|
113
|
+
QueryDefinition[_b] = { fqn: "terraconstructs.aws.cloudwatch.QueryDefinition", version: "0.0.24" };
|
|
114
114
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9xdWVyeS1kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUdBQXFHO0FBRXJHLHNEQUFnRTtBQUVoRSxvREFBdUU7QUFnRnZFOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBU3RCLFlBQVksUUFBMEIsRUFBRTtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLGlHQUFpRztRQUNqRyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQscUdBQXFHO1FBQ3JHLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcs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RSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDOztBQXhDSCwwQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbG9ncy9saWIvcXVlcnktZGVmaW5pdGlvbi50c1xuXG5pbXBvcnQgeyBjbG91ZHdhdGNoUXVlcnlEZWZpbml0aW9uIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTG9nR3JvdXAgfSBmcm9tIFwiLi9sb2ctZ3JvdXBcIjtcbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBRdWVyeVN0cmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5U3RyaW5nUHJvcHMge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBzcGVjaWZpZWQgZmllbGRzIGZyb20gbG9nIGV2ZW50cyBmb3IgZGlzcGxheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBmaWVsZHMgaW4gUXVlcnlTdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHNpbmdsZSBzdGF0ZW1lbnQgZm9yIHBhcnNpbmcgZGF0YSBmcm9tIGEgbG9nIGZpZWxkIGFuZCBjcmVhdGluZyBlcGhlbWVyYWwgZmllbGRzIHRoYXQgY2FuXG4gICAqIGJlIHByb2Nlc3NlZCBmdXJ0aGVyIGluIHRoZSBxdWVyeS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBwYXJzZVN0YXRlbWVudHNgIGluc3RlYWRcbiAgICogQGRlZmF1bHQgLSBubyBwYXJzZSBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIG9uZSBvciBtb3JlIHN0YXRlbWVudHMgZm9yIHBhcnNpbmcgZGF0YSBmcm9tIGEgbG9nIGZpZWxkIGFuZCBjcmVhdGluZyBlcGhlbWVyYWxcbiAgICogZmllbGRzIHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBmdXJ0aGVyIGluIHRoZSBxdWVyeS4gRWFjaCBwcm92aWRlZCBzdGF0ZW1lbnQgZ2VuZXJhdGVzIGEgc2VwYXJhdGVcbiAgICogcGFyc2UgbGluZSBpbiB0aGUgcXVlcnkgc3RyaW5nLlxuICAgKlxuICAgKiBOb3RlOiBJZiBwcm92aWRlZCwgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgYW55IHZhbHVlIHByb3ZpZGVkIGZvciB0aGUgYHBhcnNlYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJzZSBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VTdGF0ZW1lbnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgc2luZ2xlIHN0YXRlbWVudCBmb3IgZmlsdGVyaW5nIHRoZSByZXN1bHRzIG9mIGEgcXVlcnkgYmFzZWQgb24gYSBib29sZWFuIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZmlsdGVyU3RhdGVtZW50c2AgaW5zdGVhZFxuICAgKiBAZGVmYXVsdCAtIG5vIGZpbHRlciBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBvbmUgb3IgbW9yZSBzdGF0ZW1lbnRzIGZvciBmaWx0ZXJpbmcgdGhlIHJlc3VsdHMgb2YgYSBxdWVyeSBiYXNlZCBvbiBhIGJvb2xlYW5cbiAgICogZXhwcmVzc2lvbi4gRWFjaCBwcm92aWRlZCBzdGF0ZW1lbnQgZ2VuZXJhdGVzIGEgc2VwYXJhdGUgZmlsdGVyIGxpbmUgaW4gdGhlIHF1ZXJ5IHN0cmluZy5cbiAgICpcbiAgICogTm90ZTogSWYgcHJvdmlkZWQsIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIGFueSB2YWx1ZSBwcm92aWRlZCBmb3IgdGhlIGBmaWx0ZXJgIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGZpbHRlciBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyU3RhdGVtZW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBVc2VzIGxvZyBmaWVsZCB2YWx1ZXMgdG8gY2FsY3VsYXRlIGFnZ3JlZ2F0ZSBzdGF0aXN0aWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN0YXRzIGluIFF1ZXJ5U3RyaW5nXG4gICAqL1xuICByZWFkb25seSBzdGF0cz86IHN0cmluZztcblxuICAvKipcbiAgICogU29ydHMgdGhlIHJldHJpZXZlZCBsb2cgZXZlbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNvcnQgaW4gUXVlcnlTdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNvcnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGxvZyBldmVudHMgcmV0dXJuZWQgYnkgdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpbWl0IGluIFF1ZXJ5U3RyaW5nXG4gICAqL1xuICByZWFkb25seSBsaW1pdD86IE51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoaWNoIGZpZWxkcyB0byBkaXNwbGF5IGluIHRoZSBxdWVyeSByZXN1bHRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRpc3BsYXkgaW4gUXVlcnlTdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lIGEgUXVlcnlTdHJpbmdcbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U3RyaW5nIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZHM/OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJzZTogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0cz86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzb3J0Pzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGxpbWl0PzogTnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFF1ZXJ5U3RyaW5nUHJvcHMgPSB7fSkge1xuICAgIHRoaXMuZmllbGRzID0gcHJvcHMuZmllbGRzO1xuICAgIHRoaXMuc3RhdHMgPSBwcm9wcy5zdGF0cztcbiAgICB0aGlzLnNvcnQgPSBwcm9wcy5zb3J0O1xuICAgIHRoaXMubGltaXQgPSBwcm9wcy5saW1pdDtcbiAgICB0aGlzLmRpc3BsYXkgPSBwcm9wcy5kaXNwbGF5O1xuXG4gICAgLy8gRGV0ZXJtaW5lIHBhcnNpbmcgYnkgZWl0aGVyIHRoZSBwYXJzZVN0YXRlbWVudHMgb3IgcGFyc2UgcHJvcGVydGllcywgb3IgZGVmYXVsdCB0byBlbXB0eSBhcnJheVxuICAgIGlmIChwcm9wcy5wYXJzZVN0YXRlbWVudHMpIHtcbiAgICAgIHRoaXMucGFyc2UgPSBwcm9wcy5wYXJzZVN0YXRlbWVudHM7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5wYXJzZSkge1xuICAgICAgdGhpcy5wYXJzZSA9IFtwcm9wcy5wYXJzZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyc2UgPSBbXTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgZmlsdGVyaW5nIGJ5IGVpdGhlciB0aGUgZmlsdGVyU3RhdGVtZW50cyBvciBmaWx0ZXIgcHJvcGVydGllcywgb3IgZGVmYXVsdCB0byBlbXB0eSBhcnJheVxuICAgIGlmIChwcm9wcy5maWx0ZXJTdGF0ZW1lbnRzKSB7XG4gICAgICB0aGlzLmZpbHRlciA9IHByb3BzLmZpbHRlclN0YXRlbWVudHM7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5maWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyID0gW3Byb3BzLmZpbHRlcl07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyID0gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIFF1ZXJ5U3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuYnVpbGRRdWVyeUxpbmUoXCJmaWVsZHNcIiwgdGhpcy5maWVsZHM/LmpvaW4oXCIsIFwiKSksXG4gICAgICAuLi50aGlzLmJ1aWxkUXVlcnlMaW5lcyhcInBhcnNlXCIsIHRoaXMucGFyc2UpLFxuICAgICAgLi4udGhpcy5idWlsZFF1ZXJ5TGluZXMoXCJmaWx0ZXJcIiwgdGhpcy5maWx0ZXIpLFxuICAgICAgdGhpcy5idWlsZFF1ZXJ5TGluZShcInN0YXRzXCIsIHRoaXMuc3RhdHMpLFxuICAgICAgdGhpcy5idWlsZFF1ZXJ5TGluZShcInNvcnRcIiwgdGhpcy5zb3J0KSxcbiAgICAgIHRoaXMuYnVpbGRRdWVyeUxpbmUoXCJsaW1pdFwiLCB0aGlzLmxpbWl0Py50b1N0cmluZygpKSxcbiAgICAgIHRoaXMuYnVpbGRRdWVyeUxpbmUoXCJkaXNwbGF5XCIsIHRoaXMuZGlzcGxheSksXG4gICAgXVxuICAgICAgLmZpbHRlcigocXVlcnlMaW5lKSA9PiBxdWVyeUxpbmUgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUxpbmUubGVuZ3RoID4gMClcbiAgICAgIC5qb2luKFwiXFxufCBcIik7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gYXJyYXkgb2YgcXVlcnkgbGluZXMgZ2l2ZW4gYSBjb21tYW5kIGFuZCBzdGF0ZW1lbnQocykuXG4gICAqXG4gICAqIEBwYXJhbSBjb21tYW5kIGEgcXVlcnkgY29tbWFuZFxuICAgKiBAcGFyYW0gc3RhdGVtZW50cyBvbmUgb3IgbW9yZSBxdWVyeSBzdGF0ZW1lbnRzIGZvciB0aGUgc3BlY2lmaWVkIGNvbW1hbmQsIG9yIHVuZGVmaW5lZFxuICAgKiBAcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcXVlcnkgc3RyaW5nIGxpbmVzIGdlbmVyYXRlZCBmcm9tIHRoZSBwcm92aWRlZCBjb21tYW5kIGFuZCBzdGF0ZW1lbnRzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUXVlcnlMaW5lcyhjb21tYW5kOiBzdHJpbmcsIHN0YXRlbWVudHM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoc3RhdGVtZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudHMubWFwKChzdGF0ZW1lbnQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICAgICAgdGhpcy5idWlsZFF1ZXJ5TGluZShjb21tYW5kLCBzdGF0ZW1lbnQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBzaW5nbGUgcXVlcnkgbGluZSBnaXZlbiBhIGNvbW1hbmQgYW5kIHN0YXRlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbW1hbmQgYSBxdWVyeSBjb21tYW5kXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgYSBzaW5nbGUgcXVlcnkgc3RhdGVtZW50XG4gICAqIEByZXR1cm5zIGEgc2luZ2xlIHF1ZXJ5IHN0cmluZyBsaW5lIGdlbmVyYXRlZCBmcm9tIHRoZSBwcm92aWRlZCBjb21tYW5kIGFuZCBzdGF0ZW1lbnRcbiAgICovXG4gIHByaXZhdGUgYnVpbGRRdWVyeUxpbmUoY29tbWFuZDogc3RyaW5nLCBzdGF0ZW1lbnQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZW1lbnQgPyBgJHtjb21tYW5kfSAke3N0YXRlbWVudH1gIDogXCJcIjtcbiAgfVxufVxuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlEZWZpbml0aW9uT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgZGVmaW5pdGlvbiBJRC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlEZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFF1ZXJ5RGVmaW5pdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RGVmaW5pdGlvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcXVlcnkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHN0cmluZyB0byB1c2UgZm9yIHRoaXMgcXVlcnkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nOiBRdWVyeVN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmeSBjZXJ0YWluIGxvZyBncm91cHMgZm9yIHRoZSBxdWVyeSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNwZWNpZmllZCBsb2cgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHM/OiBJTG9nR3JvdXBbXTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgYSBxdWVyeSBkZWZpbml0aW9uIGZvciBDbG91ZFdhdGNoIExvZ3MgSW5zaWdodHNcbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5RGVmaW5pdGlvbiBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBxdWVyeSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVlcnlEZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGdldCBxdWVyeURlZmluaXRpb25PdXRwdXRzKCk6IFF1ZXJ5RGVmaW5pdGlvbk91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeURlZmluaXRpb25JZDogdGhpcy5xdWVyeURlZmluaXRpb25JZCxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeURlZmluaXRpb25PdXRwdXRzO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoUXVlcnlEZWZpbml0aW9uLkNsb3Vkd2F0Y2hRdWVyeURlZmluaXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFF1ZXJ5RGVmaW5pdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBwcm9wcy5xdWVyeURlZmluaXRpb25OYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoUXVlcnlEZWZpbml0aW9uLkNsb3Vkd2F0Y2hRdWVyeURlZmluaXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lLFxuICAgICAgICBxdWVyeVN0cmluZzogcHJvcHMucXVlcnlTdHJpbmcudG9TdHJpbmcoKSxcbiAgICAgICAgbG9nR3JvdXBOYW1lczpcbiAgICAgICAgICB0eXBlb2YgcHJvcHMubG9nR3JvdXBzID09PSBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgICA/IFtdXG4gICAgICAgICAgICA6IHByb3BzLmxvZ0dyb3Vwcy5mbGF0TWFwKChsb2dHcm91cCkgPT4gbG9nR3JvdXAubG9nR3JvdXBOYW1lKSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucXVlcnlEZWZpbml0aW9uSWQgPSB0aGlzLnJlc291cmNlLnF1ZXJ5RGVmaW5pdGlvbklkO1xuICB9XG59XG4iXX0=
|
|
@@ -156,7 +156,7 @@ class Stats {
|
|
|
156
156
|
}
|
|
157
157
|
exports.Stats = Stats;
|
|
158
158
|
_a = JSII_RTTI_SYMBOL_1;
|
|
159
|
-
Stats[_a] = { fqn: "terraconstructs.aws.cloudwatch.Stats", version: "0.0.
|
|
159
|
+
Stats[_a] = { fqn: "terraconstructs.aws.cloudwatch.Stats", version: "0.0.24" };
|
|
160
160
|
/**
|
|
161
161
|
* The count (number) of data points used for the statistical calculation.
|
|
162
162
|
*/
|
|
@@ -47,5 +47,5 @@ class SubscriptionFilter extends aws_construct_1.AwsConstructBase {
|
|
|
47
47
|
}
|
|
48
48
|
exports.SubscriptionFilter = SubscriptionFilter;
|
|
49
49
|
_a = JSII_RTTI_SYMBOL_1;
|
|
50
|
-
SubscriptionFilter[_a] = { fqn: "terraconstructs.aws.cloudwatch.SubscriptionFilter", version: "0.0.
|
|
50
|
+
SubscriptionFilter[_a] = { fqn: "terraconstructs.aws.cloudwatch.SubscriptionFilter", version: "0.0.24" };
|
|
51
51
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9zdWJzY3JpcHRpb24tZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0dBQXdHO0FBRXhHLHNEQUFzRTtBQUN0RSxpQ0FBOEI7QUFFOUIsb0RBQXVFO0FBR3ZFLHlEQUF3RDtBQXdFeEQ7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLGdDQUFnQjtJQUV0RDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUNSLEtBQUssQ0FBQyxVQUFVO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBRUwsSUFDRSxLQUFLLENBQUMsWUFBWTtZQUNsQixDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUN2QyxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUN0QyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsWUFBWSxxQ0FBa0IsQ0FBQyxFQUNsRCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxRQUFRO1lBQ1gsSUFBSSw4Q0FBK0IsQ0FBQywrQkFBK0IsQ0FDakUsSUFBSSxFQUNKLFVBQVUsRUFDVjtnQkFDRSxJQUFJO2dCQUNKLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQ3pDLGNBQWMsRUFBRSxTQUFTLENBQUMsR0FBRztnQkFDN0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUNqRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0I7Z0JBQ25ELFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTthQUNqQyxDQUNGLENBQUM7UUFDSixJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7O0FBOUNILGdEQStDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1sb2dzL2xpYi9zdWJzY3JpcHRpb24tZmlsdGVyLnRzXG5cbmltcG9ydCB7IGNsb3Vkd2F0Y2hMb2dTdWJzY3JpcHRpb25GaWx0ZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTG9nR3JvdXAsIFN1YnNjcmlwdGlvbkZpbHRlck9wdGlvbnMgfSBmcm9tIFwiLi9sb2ctZ3JvdXBcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgeyBLaW5lc2lzRGVzdGluYXRpb24gfSBmcm9tIFwiLi9sb2ctZGVzdGluYXRpb25zXCI7XG5cbi8qKlxuICogT3V0cHV0cyB3aGljaCBtYXkgYmUgcmVnaXN0ZXJlZCBmb3Igb3V0cHV0IHZpYSB0aGUgR3JpZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dTdWJzY3JpcHRpb25EZXN0aW5hdGlvbk91dHB1dHMge1xuICAvKipcbiAgICogVGhlIGFybiBvZiB0aGlzIGxvZyBncm91cFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBsb2cgZ3JvdXBcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBjbGFzc2VzIHRoYXQgY2FuIGJlIHRoZSBkZXN0aW5hdGlvbiBvZiBhIGxvZyBTdWJzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTG9nU3Vic2NyaXB0aW9uRGVzdGluYXRpb24ge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSBwcm9wZXJ0aWVzIHJlcXVpcmVkIHRvIHNlbmQgc3Vic2NyaXB0aW9uIGV2ZW50cyB0byB0aGlzIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBJZiBuZWNlc3NhcnksIHRoZSBkZXN0aW5hdGlvbiBjYW4gdXNlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBTdWJzY3JpcHRpb25GaWx0ZXJcbiAgICogb2JqZWN0IGl0c2VsZiB0byBjb25maWd1cmUgaXRzIHBlcm1pc3Npb25zIHRvIGFsbG93IHRoZSBzdWJzY3JpcHRpb24gdG8gd3JpdGVcbiAgICogdG8gaXQuXG4gICAqXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBtYXkgcmVjb25maWd1cmUgaXRzIG93biBwZXJtaXNzaW9ucyBpbiByZXNwb25zZSB0byB0aGlzXG4gICAqIGZ1bmN0aW9uIGNhbGwuXG4gICAqL1xuICBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgc291cmNlTG9nR3JvdXA6IElMb2dHcm91cCxcbiAgKTogTG9nU3Vic2NyaXB0aW9uRGVzdGluYXRpb25Db25maWc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyByZXR1cm5lZCBieSBhIFN1YnNjcmlwdGlvbiBkZXN0aW5hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ1N1YnNjcmlwdGlvbkRlc3RpbmF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHN1YnNjcmlwdGlvbidzIGRlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJvbGUgdG8gYXNzdW1lIHRvIHdyaXRlIGxvZyBldmVudHMgdG8gdGhlIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIHJvbGUgYXNzdW1lZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogRGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBzdWJzY3JpcHRpb24gZmlsdGVyIGNyZWF0aW9uIHRvIHN1Y2NlZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IENvbnN0cnVjdFtdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgU3Vic2NyaXB0aW9uRmlsdGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uRmlsdGVyUHJvcHNcbiAgZXh0ZW5kcyBTdWJzY3JpcHRpb25GaWx0ZXJPcHRpb25zLFxuICAgIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgdG8gY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24gb24uXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cDogSUxvZ0dyb3VwO1xufVxuXG4vKipcbiAqIEEgbmV3IFN1YnNjcmlwdGlvbiBvbiBhIENsb3VkV2F0Y2ggbG9nIGdyb3VwLlxuICovXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uRmlsdGVyIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyByZXNvdXJjZTogY2xvdWR3YXRjaExvZ1N1YnNjcmlwdGlvbkZpbHRlci5DbG91ZHdhdGNoTG9nU3Vic2NyaXB0aW9uRmlsdGVyO1xuICAvKipcbiAgICogVGhpcyByZXNvdXJjZSBleHBvcnRzIG5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3Vic2NyaXB0aW9uRmlsdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICBjb25zdCBuYW1lID1cbiAgICAgIHByb3BzLmZpbHRlck5hbWUgfHxcbiAgICAgIHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHtcbiAgICAgICAgcHJlZml4OiB0aGlzLmdyaWRVVUlELFxuICAgICAgfSk7XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5kaXN0cmlidXRpb24gJiZcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZGlzdHJpYnV0aW9uKSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5kZXN0aW5hdGlvbikgJiZcbiAgICAgICEocHJvcHMuZGVzdGluYXRpb24gaW5zdGFuY2VvZiBLaW5lc2lzRGVzdGluYXRpb24pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiZGlzdHJpYnV0aW9uIHByb3BlcnR5IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBLaW5lc2lzRGVzdGluYXRpb24uXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlc3RQcm9wcyA9IHByb3BzLmRlc3RpbmF0aW9uLmJpbmQodGhpcywgcHJvcHMubG9nR3JvdXApO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9XG4gICAgICBuZXcgY2xvdWR3YXRjaExvZ1N1YnNjcmlwdGlvbkZpbHRlci5DbG91ZHdhdGNoTG9nU3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGxvZ0dyb3VwTmFtZTogcHJvcHMubG9nR3JvdXAubG9nR3JvdXBOYW1lLFxuICAgICAgICAgIGRlc3RpbmF0aW9uQXJuOiBkZXN0UHJvcHMuYXJuLFxuICAgICAgICAgIHJvbGVBcm46IGRlc3RQcm9wcy5yb2xlICYmIGRlc3RQcm9wcy5yb2xlLnJvbGVBcm4sXG4gICAgICAgICAgZmlsdGVyUGF0dGVybjogcHJvcHMuZmlsdGVyUGF0dGVybi5sb2dQYXR0ZXJuU3RyaW5nLFxuICAgICAgICAgIGRpc3RyaWJ1dGlvbjogcHJvcHMuZGlzdHJpYnV0aW9uLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICBpZiAoZGVzdFByb3BzLmRlcGVuZGVuY2llcykge1xuICAgICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3koLi4uZGVzdFByb3BzLmRlcGVuZGVuY2llcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -49,5 +49,5 @@ class TextWidget extends widget_1.ConcreteWidget {
|
|
|
49
49
|
}
|
|
50
50
|
exports.TextWidget = TextWidget;
|
|
51
51
|
_a = JSII_RTTI_SYMBOL_1;
|
|
52
|
-
TextWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.TextWidget", version: "0.0.
|
|
52
|
+
TextWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.TextWidget", version: "0.0.24" };
|
|
53
53
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC90ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0EscUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsSUFBWSxvQkFTWDtBQVRELFdBQVksb0JBQW9CO0lBQzlCOztPQUVHO0lBQ0gsdUNBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsbURBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVRXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBUy9CO0FBaUNEOztHQUVHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsdUJBQWM7SUFJNUMsWUFBWSxLQUFnQixFQUFFLEtBQXNCO1FBQ2xELEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDbEMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNULFVBQVUsRUFBRTtvQkFDVixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtpQkFDNUI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOztBQTdCSCxnQ0E4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC9saWIvdGV4dC50c1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29uY3JldGVXaWRnZXQgfSBmcm9tIFwiLi93aWRnZXRcIjtcblxuLyoqXG4gKiBCYWNrZ3JvdW5kIHR5cGVzIGF2YWlsYWJsZVxuICovXG5leHBvcnQgZW51bSBUZXh0V2lkZ2V0QmFja2dyb3VuZCB7XG4gIC8qKlxuICAgKiBTb2xpZCBiYWNrZ3JvdW5kXG4gICAqL1xuICBTT0xJRCA9IFwic29saWRcIixcbiAgLyoqXG4gICAqIFRyYW5zcGFyZW50IGJhY2tncm91bmRcbiAgICovXG4gIFRSQU5TUEFSRU5UID0gXCJ0cmFuc3BhcmVudFwiLFxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgVGV4dCB3aWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0V2lkZ2V0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSwgaW4gTWFya0Rvd24gZm9ybWF0XG4gICAqL1xuICByZWFkb25seSBtYXJrZG93bjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgd2lkZ2V0LCBpbiBhIGdyaWQgb2YgMjQgdW5pdHMgd2lkZVxuICAgKlxuICAgKiBAZGVmYXVsdCA2XG4gICAqL1xuICByZWFkb25seSB3aWR0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSB3aWRnZXRcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgaGVpZ2h0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBCYWNrZ3JvdW5kIGZvciB0aGUgd2lkZ2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IHNvbGlkXG4gICAqL1xuICByZWFkb25seSBiYWNrZ3JvdW5kPzogVGV4dFdpZGdldEJhY2tncm91bmQ7XG59XG5cbi8qKlxuICogQSBkYXNoYm9hcmQgd2lkZ2V0IHRoYXQgZGlzcGxheXMgTWFya0Rvd25cbiAqL1xuZXhwb3J0IGNsYXNzIFRleHRXaWRnZXQgZXh0ZW5kcyBDb25jcmV0ZVdpZGdldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWFya2Rvd246IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZ3JvdW5kPzogVGV4dFdpZGdldEJhY2tncm91bmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IFRleHRXaWRnZXRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBwcm9wcy53aWR0aCB8fCA2LCBwcm9wcy5oZWlnaHQgfHwgMik7XG4gICAgdGhpcy5tYXJrZG93biA9IHByb3BzLm1hcmtkb3duO1xuICAgIHRoaXMuYmFja2dyb3VuZCA9IHByb3BzLmJhY2tncm91bmQ7XG4gIH1cblxuICBwdWJsaWMgcG9zaXRpb24oeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG4gIH1cblxuICBwdWJsaWMgdG9Kc29uKCk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXG4gICAgICAgIHg6IHRoaXMueCxcbiAgICAgICAgeTogdGhpcy55LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbWFya2Rvd246IHRoaXMubWFya2Rvd24sXG4gICAgICAgICAgYmFja2dyb3VuZDogdGhpcy5iYWNrZ3JvdW5kLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59XG4iXX0=
|
|
@@ -68,7 +68,7 @@ class Values {
|
|
|
68
68
|
}
|
|
69
69
|
exports.Values = Values;
|
|
70
70
|
_a = JSII_RTTI_SYMBOL_1;
|
|
71
|
-
Values[_a] = { fqn: "terraconstructs.aws.cloudwatch.Values", version: "0.0.
|
|
71
|
+
Values[_a] = { fqn: "terraconstructs.aws.cloudwatch.Values", version: "0.0.24" };
|
|
72
72
|
class StaticValues extends Values {
|
|
73
73
|
constructor(values) {
|
|
74
74
|
super();
|
|
@@ -119,7 +119,7 @@ class DefaultValue {
|
|
|
119
119
|
}
|
|
120
120
|
exports.DefaultValue = DefaultValue;
|
|
121
121
|
_b = JSII_RTTI_SYMBOL_1;
|
|
122
|
-
DefaultValue[_b] = { fqn: "terraconstructs.aws.cloudwatch.DefaultValue", version: "0.0.
|
|
122
|
+
DefaultValue[_b] = { fqn: "terraconstructs.aws.cloudwatch.DefaultValue", version: "0.0.24" };
|
|
123
123
|
/**
|
|
124
124
|
* A special value for use with search expressions to have the default value be the first value returned from search
|
|
125
125
|
*/
|
|
@@ -152,5 +152,5 @@ class DashboardVariable {
|
|
|
152
152
|
}
|
|
153
153
|
exports.DashboardVariable = DashboardVariable;
|
|
154
154
|
_c = JSII_RTTI_SYMBOL_1;
|
|
155
|
-
DashboardVariable[_c] = { fqn: "terraconstructs.aws.cloudwatch.DashboardVariable", version: "0.0.
|
|
155
|
+
DashboardVariable[_c] = { fqn: "terraconstructs.aws.cloudwatch.DashboardVariable", version: "0.0.24" };
|
|
156
156
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2Nsb3Vkd2F0Y2gvdmFyaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtR0FBbUc7QUFFbkcsSUFBWSxpQkFlWDtBQWZELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsb0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsb0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWZXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBZTVCO0FBRUQsSUFBWSxZQVVYO0FBVkQsV0FBWSxZQUFZO0lBQ3RCOztPQUVHO0lBQ0gscUNBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCxtQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVlcsWUFBWSw0QkFBWixZQUFZLFFBVXZCO0FBbUREOztHQUVHO0FBQ0gsTUFBc0IsTUFBTTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxVQUE0QjtRQUM3RCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUJBQWlCLFVBQVUsQ0FBQyxZQUFZLGdDQUFnQyxDQUN6RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQ3RCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFH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RTtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRztZQUM1QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDekIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7U0FDakMsQ0FBQztJQUNKLENBQUM7O0FBekJILDhDQTBCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi92YXJpYWJsZS50c1xuXG5leHBvcnQgZW51bSBWYXJpYWJsZUlucHV0VHlwZSB7XG4gIC8qKlxuICAgKiBGcmVlZm9ybSB0ZXh0IGlucHV0IGJveFxuICAgKi9cbiAgSU5QVVQgPSBcImlucHV0XCIsXG5cbiAgLyoqXG4gICAqIEEgZHJvcGRvd24gb2YgcHJlLWRlZmluZWQgdmFsdWVzLCBvciB2YWx1ZXMgZmlsbGVkIGluIGZyb20gYSBtZXRyaWMgc2VhcmNoIHF1ZXJ5XG4gICAqL1xuICBSQURJTyA9IFwicmFkaW9cIixcblxuICAvKipcbiAgICogQSBzZXQgb2YgcHJlLWRlZmluZWQgcmFkaW8gYnV0dG9ucywgd2hpY2ggY2FuIGFsc28gYmUgZGVmaW5lZCBmcm9tIGEgbWV0cmljIHNlYXJjaCBxdWVyeVxuICAgKi9cbiAgU0VMRUNUID0gXCJzZWxlY3RcIixcbn1cblxuZXhwb3J0IGVudW0gVmFyaWFibGVUeXBlIHtcbiAgLyoqXG4gICAqIEEgcHJvcGVydHkgdmFyaWFibGUgY2hhbmdlcyB0aGUgdmFsdWVzIG9mIGFsbCBpbnN0YW5jZXMgb2YgYSBwcm9wZXJ0eSBpbiB0aGUgbGlzdCBvZiB3aWRnZXRzIGluIHRoZSBkYXNoYm9hcmQuXG4gICAqL1xuICBQUk9QRVJUWSA9IFwicHJvcGVydHlcIixcblxuICAvKipcbiAgICogQSBwYXR0ZXJuIHZhcmlhYmxlIGlzIG9uZSB0aGF0IGNoYW5nZXMgYSByZWdleCBwYXR0ZXJuIGFjcm9zcyB0aGUgZGFzaGJvYXJkIEpTT05cbiAgICovXG4gIFBBVFRFUk4gPSBcInBhdHRlcm5cIixcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBkYXNoYm9hcmQgdmFyaWFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVmFyaWFibGUge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSB2YXJpYWJsZSBKU09OIGZvciB1c2UgaW4gdGhlIGRhc2hib2FyZFxuICAgKi9cbiAgdG9Kc29uKCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYXJpYWJsZVZhbHVlIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGxhYmVsIGZvciB0aGUgc2VsZWN0ZWQgaXRlbVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSB2YXJpYWJsZSdzIHZhbHVlXG4gICAqL1xuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogVmFsdWUgb2YgdGhlIHNlbGVjdGVkIGl0ZW1cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2VhcmNoIGNvbXBvbmVudHMgZm9yIHVzZSB3aXRoIHtAbGluayBWYWx1ZXMuZnJvbVNlYXJjaENvbXBvbmVudHN9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoQ29tcG9uZW50cyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIHRvIGJlIHVzZWQgaW4gdGhlIHNlYXJjaCBleHByZXNzaW9uXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgZGltZW5zaW9ucyB0byBiZSB1c2VkIGluIHRoZSBzZWFyY2ggZXhwcmVzc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgZGltZW5zaW9uczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgbmFtZSB0byBiZSB1c2VkIGluIHRoZSBzZWFyY2ggZXhwcmVzc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbWV0cmljTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGltZW5zaW9uIG5hbWUsIHRoYXQgdGhlIHNlYXJjaCBleHByZXNzaW9uIHJldHJpZXZlcywgd2hvc2UgdmFsdWVzIHdpbGwgYmUgdXNlZCB0byBwb3B1bGF0ZSB0aGUgdmFsdWVzIHRvIGNob29zZSBmcm9tXG4gICAqL1xuICByZWFkb25seSBwb3B1bGF0ZUZyb206IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGNsYXNzIGZvciBwcm92aWRpbmcgdmFsdWVzIGZvciB1c2Ugd2l0aCB7QGxpbmsgVmFyaWFibGVJbnB1dFR5cGUuU0VMRUNUfSBhbmQge0BsaW5rIFZhcmlhYmxlSW5wdXRUeXBlLlJBRElPfSBkYXNoYm9hcmQgdmFyaWFibGVzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWx1ZXMge1xuICAvKipcbiAgICogQ3JlYXRlIHZhbHVlcyBmcm9tIHRoZSBjb21wb25lbnRzIG9mIHNlYXJjaCBleHByZXNzaW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWFyY2hDb21wb25lbnRzKGNvbXBvbmVudHM6IFNlYXJjaENvbXBvbmVudHMpOiBWYWx1ZXMge1xuICAgIGlmIChjb21wb25lbnRzLmRpbWVuc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiRW1wdHkgZGltZW5zaW9ucyBwcm92aWRlZC4gUGxlYXNlIHNwZWNpZnkgb25lIGRpbWVuc2lvbiBhdCBsZWFzdFwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFjb21wb25lbnRzLmRpbWVuc2lvbnMuaW5jbHVkZXMoY29tcG9uZW50cy5wb3B1bGF0ZUZyb20pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBwb3B1bGF0ZUZyb20gKCR7Y29tcG9uZW50cy5wb3B1bGF0ZUZyb219KSBpcyBub3QgcHJlc2VudCBpbiBkaW1lbnNpb25zYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IG1ldHJpY1NjaGVtYSA9IFtjb21wb25lbnRzLm5hbWVzcGFjZSwgLi4uY29tcG9uZW50cy5kaW1lbnNpb25zXTtcbiAgICByZXR1cm4gVmFsdWVzLmZyb21TZWFyY2goXG4gICAgICBgeyR7bWV0cmljU2NoZW1hLmpvaW4oXCIsXCIpfX0gTWV0cmljTmFtZT1cXFwiJHtjb21wb25lbnRzLm1ldHJpY05hbWV9XFxcImAsXG4gICAgICBjb21wb25lbnRzLnBvcHVsYXRlRnJvbSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB2YWx1ZXMgZnJvbSBhIHNlYXJjaCBleHByZXNzaW9uXG4gICAqXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIHNlYXJjaCBleHByZXNzaW9uIHRoYXQgc3BlY2lmaWVzIGEgbmFtZXNwYWNlLCBkaW1lbnNpb24gbmFtZShzKSBhbmQgYSBtZXRyaWMgbmFtZS4gRm9yIGV4YW1wbGUgYHtBV1MvRUMyLEluc3RhbmNlSWR9IE1ldHJpY05hbWU9XFxcIkNQVVV0aWxpemF0aW9uXFxcImBcbiAgICogQHBhcmFtIHBvcHVsYXRlRnJvbSBkaW1lbnNpb24gdGhlIGRpbWVuc2lvbiBuYW1lLCB0aGF0IHRoZSBzZWFyY2ggZXhwcmVzc2lvbiByZXRyaWV2ZXMsIHdob3NlIHZhbHVlcyB3aWxsIGJlIHVzZWQgdG8gcG9wdWxhdGUgdGhlIHZhbHVlcyB0byBjaG9vc2UgZnJvbS4gRm9yIGV4YW1wbGUgYEluc3RhbmNlSWRgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWFyY2goZXhwcmVzc2lvbjogc3RyaW5nLCBwb3B1bGF0ZUZyb206IHN0cmluZyk6IFZhbHVlcyB7XG4gICAgcmV0dXJuIG5ldyBTZWFyY2hWYWx1ZXMoZXhwcmVzc2lvbiwgcG9wdWxhdGVGcm9tKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdmFsdWVzIGZyb20gYW4gYXJyYXkgb2YgcG9zc2libGUgdmFyaWFibGUgdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21WYWx1ZXMoLi4udmFsdWVzOiBWYXJpYWJsZVZhbHVlW10pOiBWYWx1ZXMge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkVtcHR5IHZhbHVlcyBpcyBub3QgYWxsb3dlZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBTdGF0aWNWYWx1ZXModmFsdWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCB0b0pzb24oKTogYW55O1xufVxuXG5jbGFzcyBTdGF0aWNWYWx1ZXMgZXh0ZW5kcyBWYWx1ZXMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHZhbHVlczogVmFyaWFibGVWYWx1ZVtdKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZXM6IHRoaXMudmFsdWVzLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICAgIGxhYmVsOiB2YWx1ZS5sYWJlbCxcbiAgICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgU2VhcmNoVmFsdWVzIGV4dGVuZHMgVmFsdWVzIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNlYXJjaCBleHByZXNzaW9uIGZvciB1c2VcbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gc2VhcmNoIGV4cHJlc3Npb24gdGhhdCBzcGVjaWZpZXMgYSBuYW1lc3BhY2UsIGRpbWVuc2lvbiBuYW1lKHMpIGFuZCBhIG1ldHJpYyBuYW1lLiBGb3IgZXhhbXBsZSBge0FXUy9FQzIsSW5zdGFuY2VJZH0gTWV0cmljTmFtZT1cXFwiQ1BVVXRpbGl6YXRpb25cXFwiYFxuICAgKiBAcGFyYW0gcG9wdWxhdGVGcm9tIGRpbWVuc2lvbiB0aGUgZGltZW5zaW9uIG5hbWUsIHRoYXQgdGhlIHNlYXJjaCBleHByZXNzaW9uIHJldHJpZXZlcywgd2hvc2UgdmFsdWVzIHdpbGwgYmUgdXNlZCB0byBwb3B1bGF0ZSB0aGUgdmFsdWVzIHRvIGNob29zZSBmcm9tLiBGb3IgZXhhbXBsZSBgSW5zdGFuY2VJZGBcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXhwcmVzc2lvbjogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBwb3B1bGF0ZUZyb206IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBzZWFyY2g6IHRoaXMuZXhwcmVzc2lvbixcbiAgICAgIHBvcHVsYXRlRnJvbTogdGhpcy5wb3B1bGF0ZUZyb20sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIERlZmF1bHQgdmFsdWUgZm9yIHVzZSBpbiB7QGxpbmsgRGFzaGJvYXJkVmFyaWFibGVPcHRpb25zfVxuICovXG5leHBvcnQgY2xhc3MgRGVmYXVsdFZhbHVlIHtcbiAgLyoqXG4gICAqIEEgc3BlY2lhbCB2YWx1ZSBmb3IgdXNlIHdpdGggc2VhcmNoIGV4cHJlc3Npb25zIHRvIGhhdmUgdGhlIGRlZmF1bHQgdmFsdWUgYmUgdGhlIGZpcnN0IHZhbHVlIHJldHVybmVkIGZyb20gc2VhcmNoXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJUlNUID0gbmV3IERlZmF1bHRWYWx1ZShcIl9fRklSU1RcIik7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRlZmF1bHQgdmFsdWVcbiAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSB1c2VkIGFzIGRlZmF1bHRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHJldHVybiBuZXcgRGVmYXVsdFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHZhbDogYW55KSB7fVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBEYXNoYm9hcmRWYXJpYWJsZX1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRWYXJpYWJsZU9wdGlvbnMge1xuICAvKipcbiAgICogVHlwZSBvZiB0aGUgdmFyaWFibGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IFZhcmlhYmxlVHlwZTtcblxuICAvKipcbiAgICogVGhlIHdheSB0aGUgdmFyaWFibGUgdmFsdWUgaXMgc2VsZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0VHlwZTogVmFyaWFibGVJbnB1dFR5cGU7XG5cbiAgLyoqXG4gICAqIFBhdHRlcm4gb3IgcHJvcGVydHkgdmFsdWUgdG8gcmVwbGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIGlkXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBsYWJlbCBpbiB0aGUgdG9vbGJhclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSB2YXJpYWJsZSdzIHZhbHVlXG4gICAqL1xuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgdmFsdWVzIChyZXF1aXJlZCBmb3Ige0BsaW5rIFZhcmlhYmxlSW5wdXRUeXBlLlJBRElPfSBhbmQge0BsaW5rIFZhcmlhYmxlSW5wdXRUeXBlLlNFTEVDVH0gZGFzaGJvYXJkIHZhcmlhYmxlcykuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVzXG4gICAqL1xuICByZWFkb25seSB2YWx1ZXM/OiBWYWx1ZXM7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlZmF1bHQgdmFsdWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZWZhdWx0IHZhbHVlIGlzIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogRGVmYXVsdFZhbHVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB2YXJpYWJsZSBpcyB2aXNpYmxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmlzaWJsZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGFzaGJvYXJkIFZhcmlhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRWYXJpYWJsZSBpbXBsZW1lbnRzIElWYXJpYWJsZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IERhc2hib2FyZFZhcmlhYmxlT3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLmlucHV0VHlwZSAhPT0gVmFyaWFibGVJbnB1dFR5cGUuSU5QVVQgJiYgIW9wdGlvbnMudmFsdWVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBWYXJpYWJsZSB3aXRoIGlucHV0VHlwZSAoJHtvcHRpb25zLmlucHV0VHlwZX0pIHJlcXVpcmVzIHZhbHVlcyB0byBiZSBzZXRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaW5wdXRUeXBlID09IFZhcmlhYmxlSW5wdXRUeXBlLklOUFVUICYmIG9wdGlvbnMudmFsdWVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiaW5wdXRUeXBlIElOUFVUIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIHZhbHVlcy4gUGxlYXNlIGNob29zZSBlaXRoZXIgU0VMRUNUIG9yIFJBRElPIG9yIHJlbW92ZSAndmFsdWVzJyBmcm9tIG9wdGlvbnMuXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHRvSnNvbigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5vcHRpb25zLnR5cGVdOiB0aGlzLm9wdGlvbnMudmFsdWUsXG4gICAgICB0eXBlOiB0aGlzLm9wdGlvbnMudHlwZSxcbiAgICAgIGlucHV0VHlwZTogdGhpcy5vcHRpb25zLmlucHV0VHlwZSxcbiAgICAgIGlkOiB0aGlzLm9wdGlvbnMuaWQsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMub3B0aW9ucy5kZWZhdWx0VmFsdWU/LnZhbCxcbiAgICAgIHZpc2libGU6IHRoaXMub3B0aW9ucy52aXNpYmxlLFxuICAgICAgbGFiZWw6IHRoaXMub3B0aW9ucy5sYWJlbCxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy52YWx1ZXM/LnRvSnNvbigpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -41,5 +41,5 @@ class ConcreteWidget {
|
|
|
41
41
|
}
|
|
42
42
|
exports.ConcreteWidget = ConcreteWidget;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
ConcreteWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.ConcreteWidget", version: "0.0.
|
|
44
|
+
ConcreteWidget[_a] = { fqn: "terraconstructs.aws.cloudwatch.ConcreteWidget", version: "0.0.24" };
|
|
45
45
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL3dpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDRDQUF3QztBQUd4Qzs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFHLEVBQUUsQ0FBQztBQXNDN0I7Ozs7R0FJRztBQUNILE1BQXNCLGNBQWM7SUFVbEMsWUFBWSxLQUFnQixFQUFFLEtBQWEsRUFBRSxNQUFjO1FBSDNDLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBeUMsRUFBRSxDQUFDO1FBR3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsb0JBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLGtCQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixrQkFBVSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ2xDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0lBSUQ7O09BRUc7SUFDTyxrQkFBa0IsQ0FBQyxHQUFHLEVBQWE7UUFDM0MsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsS0FBSyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMsVUFBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXBDSCx3Q0FxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC9saWIvd2lkZ2V0LnRzXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBJTWV0cmljIH0gZnJvbSBcIi4vbWV0cmljLXR5cGVzXCI7XG5cbi8qKlxuICogVGhlIHdpZHRoIG9mIHRoZSBncmlkIHdlJ3JlIGZpbGxpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IEdSSURfV0lEVEggPSAyNDtcblxuLyoqXG4gKiBBIHNpbmdsZSBkYXNoYm9hcmQgd2lkZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdpZGdldCB7XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGhvcml6b250YWwgZ3JpZCB1bml0cyB0aGUgd2lkZ2V0IHdpbGwgdGFrZSB1cFxuICAgKi9cbiAgcmVhZG9ubHkgd2lkdGg6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB2ZXJ0aWNhbCBncmlkIHVuaXRzIHRoZSB3aWRnZXQgd2lsbCB0YWtlIHVwXG4gICAqL1xuICByZWFkb25seSBoZWlnaHQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQW55IHdhcm5pbmdzIHRoYXQgYXJlIHByb2R1Y2VkIGFzIGEgcmVzdWx0IG9mIHB1dHRpbmcgdG9nZXRoZXIgdGhpcyB3aWRnZXRcbiAgICogQGRlcHJlY2F0ZWQgLSB1c2Ugd2FybmluZ3NWMlxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW55IHdhcm5pbmdzIHRoYXQgYXJlIHByb2R1Y2VkIGFzIGEgcmVzdWx0IG9mIHB1dHRpbmcgdG9nZXRoZXIgdGhpcyB3aWRnZXRcbiAgICovXG4gIHJlYWRvbmx5IHdhcm5pbmdzVjI/OiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFBsYWNlIHRoZSB3aWRnZXQgYXQgYSBnaXZlbiBwb3NpdGlvblxuICAgKi9cbiAgcG9zaXRpb24oeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHdpZGdldCBKU09OIGZvciB1c2UgaW4gdGhlIGRhc2hib2FyZFxuICAgKi9cbiAgdG9Kc29uKCk6IGFueVtdO1xufVxuXG4vKipcbiAqIEEgcmVhbCBDbG91ZFdhdGNoIHdpZGdldCB0aGF0IGhhcyBpdHMgb3duIGZpeGVkIHNpemUgYW5kIHJlbWVtYmVycyBpdHMgcG9zaXRpb25cbiAqXG4gKiBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIG90aGVyIHdpZGdldHMgd2hpY2ggZXhpc3QgZm9yIGxheW91dCBwdXJwb3Nlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbmNyZXRlV2lkZ2V0IGltcGxlbWVudHMgSVdpZGdldCB7XG4gIHB1YmxpYyByZWFkb25seSB3aWR0aDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgaGVpZ2h0OiBudW1iZXI7XG4gIHByb3RlY3RlZCB4PzogbnVtYmVyO1xuICBwcm90ZWN0ZWQgeT86IG51bWJlcjtcbiAgcHJvdGVjdGVkIHN0YWNrOiBBd3NTdGFjaztcblxuICBwdWJsaWMgcmVhZG9ubHkgd2FybmluZ3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gW107XG4gIHB1YmxpYyByZWFkb25seSB3YXJuaW5nc1YyOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xuICAgIHRoaXMud2lkdGggPSB3aWR0aDtcbiAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICB0aGlzLnN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuXG4gICAgaWYgKHRoaXMud2lkdGggPiBHUklEX1dJRFRIKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdpZGdldCBpcyB0b28gd2lkZSwgbWF4ICR7R1JJRF9XSURUSH0gdW5pdHMgYWxsb3dlZGApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3NpdGlvbih4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCB0b0pzb24oKTogYW55W107XG5cbiAgLyoqXG4gICAqIENvcHkgdGhlIHdhcm5pbmdzIGZyb20gdGhlIGdpdmVuIG1ldHJpY1xuICAgKi9cbiAgcHJvdGVjdGVkIGNvcHlNZXRyaWNXYXJuaW5ncyguLi5tczogSU1ldHJpY1tdKSB7XG4gICAgbXMuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBbaWQsIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKG0ud2FybmluZ3NWMiA/PyB7fSkpIHtcbiAgICAgICAgdGhpcy53YXJuaW5nc1YyIVtpZF0gPSBtZXNzYWdlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|