terraconstructs 0.0.8 → 0.0.9

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.
Files changed (136) hide show
  1. package/.jsii +3 -3
  2. package/.mise.toml +4 -1
  3. package/.nvmrc +1 -1
  4. package/README.md +15 -3
  5. package/go.mod +63 -77
  6. package/go.sum +130 -962
  7. package/lib/aws/arn.js +1 -1
  8. package/lib/aws/aws-construct.js +1 -1
  9. package/lib/aws/aws-stack.js +1 -1
  10. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  11. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  13. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  14. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  15. package/lib/aws/cloudwatch/alarm.js +1 -1
  16. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  17. package/lib/aws/cloudwatch/dashboard.js +1 -1
  18. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  19. package/lib/aws/cloudwatch/graph.js +8 -8
  20. package/lib/aws/cloudwatch/layout.js +3 -3
  21. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  22. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  23. package/lib/aws/cloudwatch/log-group.js +1 -1
  24. package/lib/aws/cloudwatch/log-query.js +1 -1
  25. package/lib/aws/cloudwatch/log-stream.js +1 -1
  26. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  27. package/lib/aws/cloudwatch/metric.js +2 -2
  28. package/lib/aws/cloudwatch/pattern.js +3 -3
  29. package/lib/aws/cloudwatch/policy.js +1 -1
  30. package/lib/aws/cloudwatch/query-definition.js +2 -2
  31. package/lib/aws/cloudwatch/stats.js +1 -1
  32. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  33. package/lib/aws/cloudwatch/text.js +1 -1
  34. package/lib/aws/cloudwatch/variable.js +3 -3
  35. package/lib/aws/cloudwatch/widget.js +1 -1
  36. package/lib/aws/compute/activity.js +1 -1
  37. package/lib/aws/compute/architecture.js +1 -1
  38. package/lib/aws/compute/chain.js +1 -1
  39. package/lib/aws/compute/condition.js +1 -1
  40. package/lib/aws/compute/event-invoke-config.js +1 -1
  41. package/lib/aws/compute/event-source-filter.js +2 -2
  42. package/lib/aws/compute/event-source-mapping.js +1 -1
  43. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  44. package/lib/aws/compute/event-sources/s3.js +1 -1
  45. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  46. package/lib/aws/compute/event-sources/sqs.js +1 -1
  47. package/lib/aws/compute/fields.js +4 -4
  48. package/lib/aws/compute/function-alias.js +1 -1
  49. package/lib/aws/compute/function-base.js +2 -2
  50. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  51. package/lib/aws/compute/function-destinations/function.js +1 -1
  52. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  53. package/lib/aws/compute/function-nodejs.js +1 -1
  54. package/lib/aws/compute/function-url.js +1 -1
  55. package/lib/aws/compute/function.js +1 -1
  56. package/lib/aws/compute/state-graph.js +1 -1
  57. package/lib/aws/compute/state-machine-fragment.js +1 -1
  58. package/lib/aws/compute/state-machine.js +4 -4
  59. package/lib/aws/compute/states/choice.js +1 -1
  60. package/lib/aws/compute/states/custom-state.js +1 -1
  61. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  62. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  63. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  64. package/lib/aws/compute/states/distributed-map.js +1 -1
  65. package/lib/aws/compute/states/fail.js +1 -1
  66. package/lib/aws/compute/states/map-base.js +1 -1
  67. package/lib/aws/compute/states/map.js +1 -1
  68. package/lib/aws/compute/states/parallel.js +1 -1
  69. package/lib/aws/compute/states/pass.js +2 -2
  70. package/lib/aws/compute/states/state.js +1 -1
  71. package/lib/aws/compute/states/succeed.js +1 -1
  72. package/lib/aws/compute/states/task-base.js +2 -2
  73. package/lib/aws/compute/states/task.js +1 -1
  74. package/lib/aws/compute/states/wait.js +2 -2
  75. package/lib/aws/compute/task-credentials.js +1 -1
  76. package/lib/aws/compute/task-input.js +1 -1
  77. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  78. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  79. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  80. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  81. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  82. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  83. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  84. package/lib/aws/compute/types.js +1 -1
  85. package/lib/aws/edge/certificate.js +1 -1
  86. package/lib/aws/edge/distribution.js +3 -3
  87. package/lib/aws/edge/dns-alias-record-targets.js +2 -2
  88. package/lib/aws/edge/dns-record.js +13 -13
  89. package/lib/aws/edge/dns-zone.js +1 -1
  90. package/lib/aws/edge/function.js +2 -2
  91. package/lib/aws/edge/key-value-store.js +4 -4
  92. package/lib/aws/edge/origin.js +3 -3
  93. package/lib/aws/encryption/alias.js +1 -1
  94. package/lib/aws/encryption/key.js +1 -1
  95. package/lib/aws/encryption/via-service-principal.js +1 -1
  96. package/lib/aws/iam/grant.js +2 -2
  97. package/lib/aws/iam/managed-policy.js +1 -1
  98. package/lib/aws/iam/oidc-provider.js +1 -1
  99. package/lib/aws/iam/policy-document.js +1 -1
  100. package/lib/aws/iam/policy-statement.js +1 -1
  101. package/lib/aws/iam/policy.js +1 -1
  102. package/lib/aws/iam/principals.js +20 -20
  103. package/lib/aws/iam/role.js +1 -1
  104. package/lib/aws/iam/saml-provider.js +2 -2
  105. package/lib/aws/iam/unknown-principal.js +1 -1
  106. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  107. package/lib/aws/network/subnet-group.js +3 -3
  108. package/lib/aws/network/subnet.js +4 -4
  109. package/lib/aws/notify/archive.js +1 -1
  110. package/lib/aws/notify/connection.js +3 -3
  111. package/lib/aws/notify/event-bus.js +3 -3
  112. package/lib/aws/notify/event-pattern.js +1 -1
  113. package/lib/aws/notify/input.js +2 -2
  114. package/lib/aws/notify/kinesis-stream.js +1 -1
  115. package/lib/aws/notify/queue-policy.js +1 -1
  116. package/lib/aws/notify/queue.js +1 -1
  117. package/lib/aws/notify/resource-policy.js +1 -1
  118. package/lib/aws/notify/rule.js +1 -1
  119. package/lib/aws/notify/schedule.js +1 -1
  120. package/lib/aws/notify/targets/event-bus.js +1 -1
  121. package/lib/aws/notify/targets/function.js +1 -1
  122. package/lib/aws/notify/targets/log-group.js +2 -2
  123. package/lib/aws/notify/targets/sqs.js +1 -1
  124. package/lib/aws/notify/targets/state-machine.js +1 -1
  125. package/lib/aws/storage/bucket-notifications.js +1 -1
  126. package/lib/aws/storage/bucket-policy.js +1 -1
  127. package/lib/aws/storage/bucket-source.js +1 -1
  128. package/lib/aws/storage/bucket.js +1 -1
  129. package/lib/aws/storage/notification-targets/function.js +1 -1
  130. package/lib/aws/storage/notification-targets/queue.js +1 -1
  131. package/lib/aws/storage/origin-access-identity.js +1 -1
  132. package/lib/construct-base.js +2 -2
  133. package/lib/duration.js +1 -1
  134. package/lib/size.js +1 -1
  135. package/lib/stack-base.js +1 -1
  136. package/package.json +2 -2
@@ -70,7 +70,7 @@ class PrincipalPolicyFragment {
70
70
  }
71
71
  exports.PrincipalPolicyFragment = PrincipalPolicyFragment;
72
72
  _a = JSII_RTTI_SYMBOL_1;
73
- PrincipalPolicyFragment[_a] = { fqn: "terraconstructs.aws.iam.PrincipalPolicyFragment", version: "0.0.8" };
73
+ PrincipalPolicyFragment[_a] = { fqn: "terraconstructs.aws.iam.PrincipalPolicyFragment", version: "0.0.9" };
74
74
  /**
75
75
  * Read from AWS Principal JSON to Terraform principals block(s)
76
76
  *
@@ -191,7 +191,7 @@ class PrincipalBase {
191
191
  }
192
192
  exports.PrincipalBase = PrincipalBase;
193
193
  _b = JSII_RTTI_SYMBOL_1;
194
- PrincipalBase[_b] = { fqn: "terraconstructs.aws.iam.PrincipalBase", version: "0.0.8" };
194
+ PrincipalBase[_b] = { fqn: "terraconstructs.aws.iam.PrincipalBase", version: "0.0.9" };
195
195
  /**
196
196
  * Specify a principal by the Amazon Resource Name (ARN).
197
197
  * You can specify AWS accounts, IAM users, Federated SAML users, IAM roles, and specific assumed-role sessions.
@@ -236,7 +236,7 @@ class ArnPrincipal extends PrincipalBase {
236
236
  }
237
237
  exports.ArnPrincipal = ArnPrincipal;
238
238
  _c = JSII_RTTI_SYMBOL_1;
239
- ArnPrincipal[_c] = { fqn: "terraconstructs.aws.iam.ArnPrincipal", version: "0.0.8" };
239
+ ArnPrincipal[_c] = { fqn: "terraconstructs.aws.iam.ArnPrincipal", version: "0.0.9" };
240
240
  /**
241
241
  * Specify AWS account ID as the principal entity in a policy to delegate authority to the account.
242
242
  */
@@ -259,7 +259,7 @@ class AccountPrincipal extends ArnPrincipal {
259
259
  }
260
260
  exports.AccountPrincipal = AccountPrincipal;
261
261
  _d = JSII_RTTI_SYMBOL_1;
262
- AccountPrincipal[_d] = { fqn: "terraconstructs.aws.iam.AccountPrincipal", version: "0.0.8" };
262
+ AccountPrincipal[_d] = { fqn: "terraconstructs.aws.iam.AccountPrincipal", version: "0.0.9" };
263
263
  /**
264
264
  * An IAM principal that represents an AWS service (i.e. `sqs.amazonaws.com`).
265
265
  */
@@ -316,7 +316,7 @@ class ServicePrincipal extends PrincipalBase {
316
316
  }
317
317
  exports.ServicePrincipal = ServicePrincipal;
318
318
  _e = JSII_RTTI_SYMBOL_1;
319
- ServicePrincipal[_e] = { fqn: "terraconstructs.aws.iam.ServicePrincipal", version: "0.0.8" };
319
+ ServicePrincipal[_e] = { fqn: "terraconstructs.aws.iam.ServicePrincipal", version: "0.0.9" };
320
320
  /**
321
321
  * A principal that represents an AWS Organization
322
322
  */
@@ -347,7 +347,7 @@ class OrganizationPrincipal extends PrincipalBase {
347
347
  }
348
348
  exports.OrganizationPrincipal = OrganizationPrincipal;
349
349
  _f = JSII_RTTI_SYMBOL_1;
350
- OrganizationPrincipal[_f] = { fqn: "terraconstructs.aws.iam.OrganizationPrincipal", version: "0.0.8" };
350
+ OrganizationPrincipal[_f] = { fqn: "terraconstructs.aws.iam.OrganizationPrincipal", version: "0.0.9" };
351
351
  /**
352
352
  * A policy principal for canonicalUserIds - useful for S3 bucket policies that use
353
353
  * Origin Access identities.
@@ -389,7 +389,7 @@ class CanonicalUserPrincipal extends PrincipalBase {
389
389
  }
390
390
  exports.CanonicalUserPrincipal = CanonicalUserPrincipal;
391
391
  _g = JSII_RTTI_SYMBOL_1;
392
- CanonicalUserPrincipal[_g] = { fqn: "terraconstructs.aws.iam.CanonicalUserPrincipal", version: "0.0.8" };
392
+ CanonicalUserPrincipal[_g] = { fqn: "terraconstructs.aws.iam.CanonicalUserPrincipal", version: "0.0.9" };
393
393
  /**
394
394
  * Principal entity that represents a federated identity provider such as Amazon Cognito,
395
395
  * that can be used to provide temporary security credentials to users who have been authenticated.
@@ -422,7 +422,7 @@ class FederatedPrincipal extends PrincipalBase {
422
422
  }
423
423
  exports.FederatedPrincipal = FederatedPrincipal;
424
424
  _h = JSII_RTTI_SYMBOL_1;
425
- FederatedPrincipal[_h] = { fqn: "terraconstructs.aws.iam.FederatedPrincipal", version: "0.0.8" };
425
+ FederatedPrincipal[_h] = { fqn: "terraconstructs.aws.iam.FederatedPrincipal", version: "0.0.9" };
426
426
  /**
427
427
  * A principal that represents a federated identity provider as Web Identity such as Cognito, Amazon,
428
428
  * Facebook, Google, etc.
@@ -447,7 +447,7 @@ class WebIdentityPrincipal extends FederatedPrincipal {
447
447
  }
448
448
  exports.WebIdentityPrincipal = WebIdentityPrincipal;
449
449
  _j = JSII_RTTI_SYMBOL_1;
450
- WebIdentityPrincipal[_j] = { fqn: "terraconstructs.aws.iam.WebIdentityPrincipal", version: "0.0.8" };
450
+ WebIdentityPrincipal[_j] = { fqn: "terraconstructs.aws.iam.WebIdentityPrincipal", version: "0.0.9" };
451
451
  /**
452
452
  * A principal that represents a federated identity provider as from a OpenID Connect provider.
453
453
  */
@@ -470,7 +470,7 @@ class OpenIdConnectPrincipal extends WebIdentityPrincipal {
470
470
  }
471
471
  exports.OpenIdConnectPrincipal = OpenIdConnectPrincipal;
472
472
  _k = JSII_RTTI_SYMBOL_1;
473
- OpenIdConnectPrincipal[_k] = { fqn: "terraconstructs.aws.iam.OpenIdConnectPrincipal", version: "0.0.8" };
473
+ OpenIdConnectPrincipal[_k] = { fqn: "terraconstructs.aws.iam.OpenIdConnectPrincipal", version: "0.0.9" };
474
474
  /**
475
475
  * Principal entity that represents a SAML federated identity provider
476
476
  */
@@ -484,7 +484,7 @@ class SamlPrincipal extends FederatedPrincipal {
484
484
  }
485
485
  exports.SamlPrincipal = SamlPrincipal;
486
486
  _l = JSII_RTTI_SYMBOL_1;
487
- SamlPrincipal[_l] = { fqn: "terraconstructs.aws.iam.SamlPrincipal", version: "0.0.8" };
487
+ SamlPrincipal[_l] = { fqn: "terraconstructs.aws.iam.SamlPrincipal", version: "0.0.9" };
488
488
  /**
489
489
  * Principal entity that represents a SAML federated identity provider for
490
490
  * programmatic and AWS Management Console access.
@@ -527,7 +527,7 @@ class SamlConsolePrincipal extends SamlPrincipal {
527
527
  }
528
528
  exports.SamlConsolePrincipal = SamlConsolePrincipal;
529
529
  _m = JSII_RTTI_SYMBOL_1;
530
- SamlConsolePrincipal[_m] = { fqn: "terraconstructs.aws.iam.SamlConsolePrincipal", version: "0.0.8" };
530
+ SamlConsolePrincipal[_m] = { fqn: "terraconstructs.aws.iam.SamlConsolePrincipal", version: "0.0.9" };
531
531
  /**
532
532
  * Use the AWS account into which a stack is deployed as the principal entity in a policy
533
533
  */
@@ -541,7 +541,7 @@ class AccountRootPrincipal extends AccountPrincipal {
541
541
  }
542
542
  exports.AccountRootPrincipal = AccountRootPrincipal;
543
543
  _o = JSII_RTTI_SYMBOL_1;
544
- AccountRootPrincipal[_o] = { fqn: "terraconstructs.aws.iam.AccountRootPrincipal", version: "0.0.8" };
544
+ AccountRootPrincipal[_o] = { fqn: "terraconstructs.aws.iam.AccountRootPrincipal", version: "0.0.9" };
545
545
  /**
546
546
  * A principal representing all AWS identities in all accounts
547
547
  *
@@ -562,7 +562,7 @@ class AnyPrincipal extends ArnPrincipal {
562
562
  }
563
563
  exports.AnyPrincipal = AnyPrincipal;
564
564
  _p = JSII_RTTI_SYMBOL_1;
565
- AnyPrincipal[_p] = { fqn: "terraconstructs.aws.iam.AnyPrincipal", version: "0.0.8" };
565
+ AnyPrincipal[_p] = { fqn: "terraconstructs.aws.iam.AnyPrincipal", version: "0.0.9" };
566
566
  /**
567
567
  * A principal representing all identities in all accounts
568
568
  * @deprecated use `AnyPrincipal`
@@ -571,7 +571,7 @@ class Anyone extends AnyPrincipal {
571
571
  }
572
572
  exports.Anyone = Anyone;
573
573
  _q = JSII_RTTI_SYMBOL_1;
574
- Anyone[_q] = { fqn: "terraconstructs.aws.iam.Anyone", version: "0.0.8" };
574
+ Anyone[_q] = { fqn: "terraconstructs.aws.iam.Anyone", version: "0.0.9" };
575
575
  /**
576
576
  * A principal that uses a literal '*' in the IAM JSON language
577
577
  *
@@ -600,7 +600,7 @@ class StarPrincipal extends PrincipalBase {
600
600
  }
601
601
  exports.StarPrincipal = StarPrincipal;
602
602
  _r = JSII_RTTI_SYMBOL_1;
603
- StarPrincipal[_r] = { fqn: "terraconstructs.aws.iam.StarPrincipal", version: "0.0.8" };
603
+ StarPrincipal[_r] = { fqn: "terraconstructs.aws.iam.StarPrincipal", version: "0.0.9" };
604
604
  /**
605
605
  * Represents a principal that has multiple types of principals. A composite principal cannot
606
606
  * have conditions. i.e. multiple ServicePrincipals that form a composite principal
@@ -665,7 +665,7 @@ class CompositePrincipal extends PrincipalBase {
665
665
  }
666
666
  exports.CompositePrincipal = CompositePrincipal;
667
667
  _s = JSII_RTTI_SYMBOL_1;
668
- CompositePrincipal[_s] = { fqn: "terraconstructs.aws.iam.CompositePrincipal", version: "0.0.8" };
668
+ CompositePrincipal[_s] = { fqn: "terraconstructs.aws.iam.CompositePrincipal", version: "0.0.9" };
669
669
  /**
670
670
  * Base class for Principals that wrap other principals
671
671
  */
@@ -713,7 +713,7 @@ class ComparablePrincipal {
713
713
  }
714
714
  exports.ComparablePrincipal = ComparablePrincipal;
715
715
  _t = JSII_RTTI_SYMBOL_1;
716
- ComparablePrincipal[_t] = { fqn: "terraconstructs.aws.iam.ComparablePrincipal", version: "0.0.8" };
716
+ ComparablePrincipal[_t] = { fqn: "terraconstructs.aws.iam.ComparablePrincipal", version: "0.0.9" };
717
717
  /**
718
718
  * An IAM principal with additional conditions specifying when the policy is in effect.
719
719
  *
@@ -868,7 +868,7 @@ class PrincipalWithConditions extends PrincipalAdapter {
868
868
  }
869
869
  exports.PrincipalWithConditions = PrincipalWithConditions;
870
870
  _u = JSII_RTTI_SYMBOL_1;
871
- PrincipalWithConditions[_u] = { fqn: "terraconstructs.aws.iam.PrincipalWithConditions", version: "0.0.8" };
871
+ PrincipalWithConditions[_u] = { fqn: "terraconstructs.aws.iam.PrincipalWithConditions", version: "0.0.9" };
872
872
  /**
873
873
  * Enables session tags on role assumptions from a principal
874
874
  *
@@ -895,7 +895,7 @@ class SessionTagsPrincipal extends PrincipalAdapter {
895
895
  }
896
896
  exports.SessionTagsPrincipal = SessionTagsPrincipal;
897
897
  _v = JSII_RTTI_SYMBOL_1;
898
- SessionTagsPrincipal[_v] = { fqn: "terraconstructs.aws.iam.SessionTagsPrincipal", version: "0.0.8" };
898
+ SessionTagsPrincipal[_v] = { fqn: "terraconstructs.aws.iam.SessionTagsPrincipal", version: "0.0.9" };
899
899
  /**
900
900
  * Add a principal to an AssumeRolePolicyDocument in the right way
901
901
  *
@@ -361,7 +361,7 @@ class Role extends aws_construct_1.AwsConstructBase {
361
361
  }
362
362
  exports.Role = Role;
363
363
  _a = JSII_RTTI_SYMBOL_1;
364
- Role[_a] = { fqn: "terraconstructs.aws.iam.Role", version: "0.0.8" };
364
+ Role[_a] = { fqn: "terraconstructs.aws.iam.Role", version: "0.0.9" };
365
365
  function createAssumeRolePolicy(scope, id, principal, externalIds) {
366
366
  const actualDoc = new policy_document_1.PolicyDocument(scope, id);
367
367
  // If requested, add externalIds to every statement added to this doc
@@ -26,7 +26,7 @@ class SamlMetadataDocument {
26
26
  }
27
27
  exports.SamlMetadataDocument = SamlMetadataDocument;
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- SamlMetadataDocument[_a] = { fqn: "terraconstructs.aws.iam.SamlMetadataDocument", version: "0.0.8" };
29
+ SamlMetadataDocument[_a] = { fqn: "terraconstructs.aws.iam.SamlMetadataDocument", version: "0.0.9" };
30
30
  /**
31
31
  * A SAML provider
32
32
  */
@@ -75,5 +75,5 @@ class SamlProvider extends __1.AwsConstructBase {
75
75
  }
76
76
  exports.SamlProvider = SamlProvider;
77
77
  _b = JSII_RTTI_SYMBOL_1;
78
- SamlProvider[_b] = { fqn: "terraconstructs.aws.iam.SamlProvider", version: "0.0.8" };
78
+ SamlProvider[_b] = { fqn: "terraconstructs.aws.iam.SamlProvider", version: "0.0.9" };
79
79
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtbC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvaWFtL3NhbWwtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsc0RBQXNEO0FBQ3RELGlDQUE4QjtBQUU5QiwyQkFBeUU7QUFxRHpFOztHQUVHO0FBQ0gsTUFBc0Isb0JBQW9CO0lBQ3hDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFXO1FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDakMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7O0FBYkgsb0RBbUJDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLG9CQUFnQjtJQUNoRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDL0IsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLGVBQXVCO1FBRXZCLE1BQU0sTUFBTyxTQUFRLG9CQUFnQjtZQUFyQzs7Z0JBQ2tCLG9CQUFlLEdBQUcsZUFBZSxDQUFDO2dCQUNsQyx3QkFBbUIsR0FBRztvQkFDcEMsR0FBRyxFQUFFLGVBQWU7aUJBQ3JCLENBQUM7WUFJSixDQUFDO1lBSEMsSUFBVyxPQUFPO2dCQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUNsQyxDQUFDO1NBQ0Y7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBS0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUNFLEtBQUssQ0FBQyxJQUFJO1lBQ1YsQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDL0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUN2QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwyUEFBMlAsQ0FDNVAsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksOEJBQWUsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNwRSxJQUFJLEVBQ0YsS0FBSyxDQUFDLElBQUk7Z0JBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7b0JBQ2xDLHdCQUF3QixFQUFFLFNBQVM7b0JBQ25DLFNBQVMsRUFBRSxHQUFHO2lCQUNmLENBQUM7WUFDSixvQkFBb0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRztTQUNqRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRztZQUN6QixHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDMUIsQ0FBQztJQUNKLENBQUM7O0FBdkRILG9DQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgaWFtU2FtbFByb3ZpZGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSUF3c0NvbnN0cnVjdCwgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FtbFByb3ZpZGVyT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIFNBTUwgcHJvdmlkZXIuXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIFNBTUwgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2FtbFByb3ZpZGVyIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8vIHN0cm9uZ2x5IHR5cGVkIG91dHB1dHNcbiAgcmVhZG9ubHkgc2FtbFByb3ZpZGVyT3V0cHV0czogU2FtbFByb3ZpZGVyT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBwcm92aWRlclxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBzYW1sUHJvdmlkZXJBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFNBTUwgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW1sUHJvdmlkZXJQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm92aWRlciB0byBjcmVhdGUuXG4gICAqXG4gICAqIFRoaXMgcGFyYW1ldGVyIGFsbG93cyBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGNvbnNpc3Rpbmcgb2YgdXBwZXIgYW5kXG4gICAqIGxvd2VyY2FzZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyB3aXRoIG5vIHNwYWNlcy4gWW91IGNhbiBhbHNvIGluY2x1ZGVcbiAgICogYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogXys9LC5ALVxuICAgKlxuICAgKiBMZW5ndGggbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEyOCBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgdW5pcXVlIG5hbWUgYmFzZWQgb24gcGF0aCB3aXRoaW4gc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIFhNTCBkb2N1bWVudCBnZW5lcmF0ZWQgYnkgYW4gaWRlbnRpdHkgcHJvdmlkZXIgKElkUCkgdGhhdCBzdXBwb3J0c1xuICAgKiBTQU1MIDIuMC4gVGhlIGRvY3VtZW50IGluY2x1ZGVzIHRoZSBpc3N1ZXIncyBuYW1lLCBleHBpcmF0aW9uIGluZm9ybWF0aW9uLFxuICAgKiBhbmQga2V5cyB0aGF0IGNhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIHRoZSBTQU1MIGF1dGhlbnRpY2F0aW9uIHJlc3BvbnNlXG4gICAqIChhc3NlcnRpb25zKSB0aGF0IGFyZSByZWNlaXZlZCBmcm9tIHRoZSBJZFAuIFlvdSBtdXN0IGdlbmVyYXRlIHRoZSBtZXRhZGF0YVxuICAgKiBkb2N1bWVudCB1c2luZyB0aGUgaWRlbnRpdHkgbWFuYWdlbWVudCBzb2Z0d2FyZSB0aGF0IGlzIHVzZWQgYXMgeW91clxuICAgKiBvcmdhbml6YXRpb24ncyBJZFAuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YURvY3VtZW50OiBTYW1sTWV0YWRhdGFEb2N1bWVudDtcbn1cblxuLyoqXG4gKiBBIFNBTUwgbWV0YWRhdGEgZG9jdW1lbnRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhbWxNZXRhZGF0YURvY3VtZW50IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIFNBTUwgbWV0YWRhdGEgZG9jdW1lbnQgZnJvbSBhIFhNTCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVhtbCh4bWw6IHN0cmluZyk6IFNhbWxNZXRhZGF0YURvY3VtZW50IHtcbiAgICByZXR1cm4geyB4bWwgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBTQU1MIG1ldGFkYXRhIGRvY3VtZW50IGZyb20gYSBYTUwgZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmlsZShwYXRoOiBzdHJpbmcpOiBTYW1sTWV0YWRhdGFEb2N1bWVudCB7XG4gICAgcmV0dXJuIHsgeG1sOiBmcy5yZWFkRmlsZVN5bmMocGF0aCwgXCJ1dGYtOFwiKSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBYTUwgY29udGVudCBvZiB0aGUgbWV0YWRhdGEgZG9jdW1lbnRcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB4bWw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIFNBTUwgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFNhbWxQcm92aWRlciBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJU2FtbFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBwcm92aWRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2FtbFByb3ZpZGVyQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBzYW1sUHJvdmlkZXJBcm46IHN0cmluZyxcbiAgKTogSVNhbWxQcm92aWRlciB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElTYW1sUHJvdmlkZXIge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHNhbWxQcm92aWRlckFybiA9IHNhbWxQcm92aWRlckFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzYW1sUHJvdmlkZXJPdXRwdXRzID0ge1xuICAgICAgICBhcm46IHNhbWxQcm92aWRlckFybixcbiAgICAgIH07XG4gICAgICBwdWJsaWMgZ2V0IG91dHB1dHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbWxQcm92aWRlck91dHB1dHM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCwge30pO1xuICB9XG4gIHB1YmxpYyByZWFkb25seSBzYW1sUHJvdmlkZXJPdXRwdXRzOiBTYW1sUHJvdmlkZXJPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc2FtbFByb3ZpZGVyT3V0cHV0cztcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogaWFtU2FtbFByb3ZpZGVyLklhbVNhbWxQcm92aWRlcjtcbiAgcHVibGljIHJlYWRvbmx5IHNhbWxQcm92aWRlckFybjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTYW1sUHJvdmlkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMubmFtZSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5uYW1lKSAmJlxuICAgICAgIS9eW1xcdys9LC5ALV17MSwxMjh9JC8udGVzdChwcm9wcy5uYW1lKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkludmFsaWQgU0FNTCBwcm92aWRlciBuYW1lLiBUaGUgbmFtZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgY29uc2lzdGluZyBvZiB1cHBlciBhbmQgbG93ZXJjYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdpdGggbm8gc3BhY2VzLiBZb3UgY2FuIGFsc28gaW5jbHVkZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiBfKz0sLkAtLiBMZW5ndGggbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEyOCBjaGFyYWN0ZXJzLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGlhbVNhbWxQcm92aWRlci5JYW1TYW1sUHJvdmlkZXIodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOlxuICAgICAgICBwcm9wcy5uYW1lID8/XG4gICAgICAgIHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHtcbiAgICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiXys9LC5ALVwiLFxuICAgICAgICAgIG1heExlbmd0aDogMTI4LFxuICAgICAgICB9KSxcbiAgICAgIHNhbWxNZXRhZGF0YURvY3VtZW50OiBwcm9wcy5tZXRhZGF0YURvY3VtZW50LnhtbCxcbiAgICB9KTtcblxuICAgIHRoaXMuc2FtbFByb3ZpZGVyQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gICAgdGhpcy5zYW1sUHJvdmlkZXJPdXRwdXRzID0ge1xuICAgICAgYXJuOiB0aGlzLnNhbWxQcm92aWRlckFybixcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -41,5 +41,5 @@ class UnknownPrincipal {
41
41
  }
42
42
  exports.UnknownPrincipal = UnknownPrincipal;
43
43
  _a = JSII_RTTI_SYMBOL_1;
44
- UnknownPrincipal[_a] = { fqn: "terraconstructs.aws.iam.UnknownPrincipal", version: "0.0.8" };
44
+ UnknownPrincipal[_a] = { fqn: "terraconstructs.aws.iam.UnknownPrincipal", version: "0.0.9" };
45
45
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5rbm93bi1wcmluY2lwYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2lhbS91bmtub3duLXByaW5jaXBhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFHQUFxRztBQUNyRyxpQ0FBb0M7QUFDcEMsMkNBQStEO0FBQy9ELDRDQUF3QztBQWtCeEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsZ0JBQWdCO0lBSzNCLFlBQVksS0FBNEI7UUFKeEIscUJBQWdCLEdBQVcsZ0JBQWdCLENBQUM7UUFLMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYixpQ0FBaUMsaUJBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksb0NBQW9DLENBQ2pHLENBQUM7SUFDSixDQUFDO0lBRU0sb0JBQW9CLENBQ3pCLFNBQTBCO1FBRTFCLE1BQU0sS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCx5REFBeUQ7UUFDekQsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FDdEMsMENBQTBDLElBQUksRUFBRSxDQUNqRCxDQUFDO1FBQ0Ysb0VBQW9FO1FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksNEJBQWUsRUFBRSxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUEwQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDN0QsQ0FBQzs7QUEvQkgsNENBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWlhbS9saWIvdW5rbm93bi1wcmluY2lwYWwudHNcbmltcG9ydCB7IEFubm90YXRpb25zIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5R3JvdXAsIElDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiLi9wb2xpY3ktc3RhdGVtZW50XCI7XG5pbXBvcnQge1xuICBBZGRUb1ByaW5jaXBhbFBvbGljeVJlc3VsdCxcbiAgSVByaW5jaXBhbCxcbiAgUHJpbmNpcGFsUG9saWN5RnJhZ21lbnQsXG59IGZyb20gXCIuL3ByaW5jaXBhbHNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhbiBVbmtub3duUHJpbmNpcGFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5rbm93blByaW5jaXBhbFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSB0aGUgcm9sZSBwcm94eSBpcyBmb3JcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlOiBJQ29uc3RydWN0O1xufVxuXG4vKipcbiAqIEEgcHJpbmNpcGFsIGZvciB1c2UgaW4gcmVzb3VyY2VzIHRoYXQgbmVlZCB0byBoYXZlIGEgcm9sZSBidXQgaXQncyB1bmtub3duXG4gKlxuICogU29tZSByZXNvdXJjZXMgaGF2ZSByb2xlcyBhc3NvY2lhdGVkIHdpdGggdGhlbSB3aGljaCB0aGV5IGFzc3VtZSwgc3VjaCBhc1xuICogTGFtYmRhIEZ1bmN0aW9ucywgQ29kZUJ1aWxkIHByb2plY3RzLCBTdGVwRnVuY3Rpb25zIG1hY2hpbmVzLCBldGMuXG4gKlxuICogV2hlbiB0aG9zZSByZXNvdXJjZXMgYXJlIGltcG9ydGVkLCB0aGVpciBhY3R1YWwgcm9sZXMgYXJlIG5vdCBhbHdheXNcbiAqIGltcG9ydGVkIHdpdGggdGhlbS4gV2hlbiB0aGF0IGhhcHBlbnMsIHdlIHVzZSBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzXG4gKiBpbnN0ZWFkLCB3aGljaCB3aWxsIGFkZCB1c2VyIHdhcm5pbmdzIHdoZW4gc3RhdGVtZW50cyBhcmUgYXR0ZW1wdGVkIHRvIGJlXG4gKiBhZGRlZCB0byBpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFVua25vd25QcmluY2lwYWwgaW1wbGVtZW50cyBJUHJpbmNpcGFsIHtcbiAgcHVibGljIHJlYWRvbmx5IGFzc3VtZVJvbGVBY3Rpb246IHN0cmluZyA9IFwic3RzOkFzc3VtZVJvbGVcIjtcbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBJUHJpbmNpcGFsO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBJQ29uc3RydWN0O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBVbmtub3duUHJpbmNpcGFsUHJvcHMpIHtcbiAgICB0aGlzLnJlc291cmNlID0gcHJvcHMucmVzb3VyY2U7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBvbGljeUZyYWdtZW50KCk6IFByaW5jaXBhbFBvbGljeUZyYWdtZW50IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGdldCBwb2xpY3kgZnJhZ21lbnQgb2YgJHtOb2RlLm9mKHRoaXMucmVzb3VyY2UpLnBhdGh9LCByZXNvdXJjZSBpbXBvcnRlZCB3aXRob3V0IGEgcm9sZWAsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCxcbiAgKTogQWRkVG9QcmluY2lwYWxQb2xpY3lSZXN1bHQge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcy5yZXNvdXJjZSk7XG4gICAgY29uc3QgcmVwciA9IEpTT04uc3RyaW5naWZ5KHN0YWNrLnJlc29sdmUoc3RhdGVtZW50KSk7XG4gICAgLy8gXCJAYXdzLWNkay9hd3MtaWFtOnVua25vd25QcmluY2lwYWxBZGRTdGF0ZW1lbnRUb1JvbGVcIixcbiAgICBBbm5vdGF0aW9ucy5vZih0aGlzLnJlc291cmNlKS5hZGRXYXJuaW5nKFxuICAgICAgYEFkZCBzdGF0ZW1lbnQgdG8gdGhpcyByZXNvdXJjZSdzIHJvbGU6ICR7cmVwcn1gLFxuICAgICk7XG4gICAgLy8gUHJldGVuZCB3ZSBkaWQgdGhlIHdvcmsuIFRoZSBodW1hbiB3aWxsIGRvIGl0IGZvciB1cywgZXZlbnR1YWxseS5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogbmV3IERlcGVuZGVuY3lHcm91cCgpIH07XG4gIH1cblxuICBwdWJsaWMgYWRkVG9Qb2xpY3koc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpLnN0YXRlbWVudEFkZGVkO1xuICB9XG59XG4iXX0=
@@ -232,5 +232,5 @@ class SimpleIPv4Vpc extends aws_construct_1.AwsConstructBase {
232
232
  }
233
233
  exports.SimpleIPv4Vpc = SimpleIPv4Vpc;
234
234
  _a = JSII_RTTI_SYMBOL_1;
235
- SimpleIPv4Vpc[_a] = { fqn: "terraconstructs.aws.network.SimpleIPv4Vpc", version: "0.0.8" };
235
+ SimpleIPv4Vpc[_a] = { fqn: "terraconstructs.aws.network.SimpleIPv4Vpc", version: "0.0.9" };
236
236
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlwdjQtdnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3NpbXBsZS1pcHY0LXZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQU82QjtBQUM3QixpQ0FBaUM7QUFFakMsb0RBQXVFO0FBRXZFLHFDQUE0RTtBQUM1RSxpREFJd0I7QUFFeEIsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUF5QyxDQUFBO0lBQ3pDLDJFQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFIVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQUczQjtBQXlCRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFhLGFBQWMsU0FBUSxnQ0FBZ0I7SUFHakQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBUUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBR0QsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUdELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdB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R0FBRyxJQUFJLG1CQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixnQkFBZ0I7Z0JBQ2hCLGFBQWEsRUFBRSxVQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0JBQWdCLGdCQUFnQixFQUFFO29CQUM1RCxxQkFBcUIsRUFBRSxNQUFNO29CQUM3QixxQkFBcUIsRUFBRSxVQUFVO2lCQUNsQzthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDOztBQXhPSCxzQ0F5T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIG5hdEdhdGV3YXksXG4gIHJvdXRlVGFibGUsXG4gIGludGVybmV0R2F0ZXdheSxcbiAgZGVmYXVsdFJvdXRlVGFibGUsXG4gIHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgRm4sIExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTmV0d29yaywgTmV0d29ya091dHB1dHMgfSBmcm9tIFwiLi9uZXR3b3JrXCI7XG5pbXBvcnQgeyBQdWJsaWNTdWJuZXQsIFByaXZhdGVTdWJuZXQsIERhdGFTdWJuZXQsIElTdWJuZXQgfSBmcm9tIFwiLi9zdWJuZXRcIjtcbmltcG9ydCB7XG4gIElTdWJuZXRHcm91cCxcbiAgRGJTdWJuZXRHcm91cCxcbiAgRWxhc3RpQ2FjaGVTdWJuZXRHcm91cCxcbn0gZnJvbSBcIi4vc3VibmV0LWdyb3VwXCI7XG5cbmV4cG9ydCBlbnVtIE5hdEdhdGV3YXlPcHRpb24ge1xuICBTSU5HTEVfTkFUX0dBVEVXQVkgPSBcInNpbmdsZS1uYXQtZ2F0ZXdheVwiLFxuICBOQVRfUEVSX0FWQUlMQUJJTElUWV9aT05FID0gXCJuYXQtcGVyLWF2YWlsYWJpbGl0eS16b25lXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSVB2NFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBhdmFpbGFiaWxpdHkgem9uZXMgdG8gdXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBhekNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBOQVQgR2F0ZXdheSBzZXQgdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5hdEdhdGV3YXlPcHRpb24uTkFUX1BFUl9BVkFJTEFCSUxJVFlfWk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgbmF0R2F0ZXdheU9wdGlvbj86IE5hdEdhdGV3YXlPcHRpb247XG4gIC8qKlxuICAgKiBQcm92aXNpb25zIGEgU2VydmljZSBEaXNjb3ZlcnkgUHJpdmF0ZSBETlMgTmFtZXNwYWNlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJuYWxEb21haW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gQVdTIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCBzaW1wbGUgSVB2NCBuZXR3b3JrLlxuICpcbiAqIFNlZSB0aGUgcGFja2FnZS1sZXZlbCBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcGFja2FnZSBmb3IgYW4gb3ZlcnZpZXdcbiAqIG9mIHRoZSB2YXJpb3VzIGRpbWVuc2lvbnMgaW4gd2hpY2ggeW91IGNhbiBjb25maWd1cmUgeW91ciBWUEMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IG5ldHdvcmsgPSBuZXcgbmV0d29yay5TaW1wbGVJUHY0KGF3c1N0YWNrLCBcIm5ldHdvcmtcIiwge1xuICogIGlwdjRDaWRyQmxvY2s6IFwiMTAuMC4wLjAvMTZcIixcbiAqICBpbnRlcm5hbERvbWFpbjogXCJleGFtcGxlLmxvY2FsXCIsXG4gKiB9KTtcbiAqXG4gKiAvLyBBZGQgYSBzdWJuZXQgZ3JvdXAgZm9yIFJEU1xuICogbmV0d29yay5lbmFibGVEYlN1Ym5ldEdyb3VwKCk7XG4gKiBgYGBcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX3ZwY1xuICogQGJlYWNvbi1jbGFzcyBuZXR3b3JrLlNpbXBsZUlQdjRWcGNcbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZUlQdjRWcGMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSU5ldHdvcmsge1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wczogU2ltcGxlSVB2NFByb3BzO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vdXRwdXRzOiBOZXR3b3JrT3V0cHV0cztcbiAgcHVibGljIGdldCBuZXR3b3JrT3V0cHV0cygpOiBOZXR3b3JrT3V0cHV0cyB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dHM7XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgaXB2NENpZHJCbG9jazogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdEdhdGV3YXlPcHRpb246IE5hdEdhdGV3YXlPcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgbmF0R2F0ZXdheXM6IG5hdEdhdGV3YXkuTmF0R2F0ZXdheVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpdmF0ZVJvdXRlVGFibGVzOiByb3V0ZVRhYmxlLlJvdXRlVGFibGVbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGF6Q291bnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBhdmFpbGFiaWxpdHlab25lczogc3RyaW5nW107IC8vIFRva2VuIGFzIFN0cmluZ0xpc3RcbiAgcHJpdmF0ZSByZWFkb25seSB2cGM6IHZwYy5WcGM7XG4gIHB1YmxpYyBnZXQgdnBjSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52cGMuaWQ7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfcHVibGljU3VibmV0czogUHVibGljU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBwdWJsaWNTdWJuZXRzKCk6IElTdWJuZXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3B1YmxpY1N1Ym5ldHM7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpdmF0ZVN1Ym5ldHM6IFByaXZhdGVTdWJuZXRbXSA9IFtdO1xuICBwdWJsaWMgZ2V0IHByaXZhdGVTdWJuZXRzKCk6IElTdWJuZXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVTdWJuZXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTdWJuZXRzOiBEYXRhU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBkYXRhU3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU3VibmV0cztcbiAgfVxuXG4gIHByaXZhdGUgX2RiU3VibmV0R3JvdXA/OiBJU3VibmV0R3JvdXA7XG4gIHB1YmxpYyBnZXQgZGJTdWJuZXRHcm91cCgpOiBJU3VibmV0R3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYlN1Ym5ldEdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWxhc3RpQ2FjaGVTdWJuZXRHcm91cD86IElTdWJuZXRHcm91cDtcbiAgcHVibGljIGdldCBlbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKCk6IElTdWJuZXRHcm91cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXA7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VEaXNjb3ZlcnlOYW1lc3BhY2U6IHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLlNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlO1xuICBwdWJsaWMgZ2V0IHNlcnZpY2VEaXNjb3ZlcnlOYW1lc3BhY2VBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlLmFybjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTaW1wbGVJUHY0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLl9wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuYXpDb3VudCA9IHRoaXMuX3Byb3BzLmF6Q291bnQgPz8gMjtcbiAgICBpZiAodGhpcy5hekNvdW50ID4gNCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXpDb3VudCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0XCIpO1xuICAgIH1cblxuICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXMgPSB0aGlzLnN0YWNrLmF2YWlsYWJpbGl0eVpvbmVzKHRoaXMuYXpDb3VudCk7XG4gICAgdGhpcy5pcHY0Q2lkckJsb2NrID0gdGhpcy5fcHJvcHMuaXB2NENpZHJCbG9jaztcbiAgICB0aGlzLnZwYyA9IG5ldyB2cGMuVnBjKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgY2lkckJsb2NrOiB0aGlzLmlwdjRDaWRyQmxvY2ssXG4gICAgICBlbmFibGVEbnNTdXBwb3J0OiB0cnVlLFxuICAgICAgZW5hYmxlRG5zSG9zdG5hbWVzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaWd3ID0gbmV3IGludGVybmV0R2F0ZXdheS5JbnRlcm5ldEdhdGV3YXkodGhpcywgXCJpZ3dcIiwge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjLmlkLFxuICAgICAgdGFnczoge1xuICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0taWd3YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBhZG9wdCBkZWZhdWx0IHJvdXRlIHRhYmxlIGFuZCBhZGQgdGFnc1xuICAgIG5ldyBkZWZhdWx0Um91dGVUYWJsZS5EZWZhdWx0Um91dGVUYWJsZSh0aGlzLCBcIkRlZmF1bHRSb3V0ZVRhYmxlXCIsIHtcbiAgICAgIGRlZmF1bHRSb3V0ZVRhYmxlSWQ6IHRoaXMudnBjLmRlZmF1bHRSb3V0ZVRhYmxlSWQsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1kZWZhdWx0LXJvdXRlLXRhYmxlYCxcbiAgICAgIH0sXG4gICAgICByb3V0ZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY2lkckJsb2NrOiBcIjAuMC4wLjAvMFwiLFxuICAgICAgICAgIGdhdGV3YXlJZDogaWd3LmlkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMubmF0R2F0ZXdheU9wdGlvbiA9XG4gICAgICB0aGlzLl9wcm9wcy5uYXRHYXRld2F5T3B0aW9uID8/XG4gICAgICBOYXRHYXRld2F5T3B0aW9uLk5BVF9QRVJfQVZBSUxBQklMSVRZX1pPTkU7XG5cbiAgICB0aGlzLmNyZWF0ZVB1YmxpY1N1Ym5ldHMoRm4uY2lkcnN1Ym5ldCh0aGlzLmlwdjRDaWRyQmxvY2ssIDIsIDApKTtcbiAgICB0aGlzLmNyZWF0ZVByaXZhdGVTdWJuZXRzKEZuLmNpZHJzdWJuZXQodGhpcy5pcHY0Q2lkckJsb2NrLCAyLCAxKSk7XG4gICAgdGhpcy5jcmVhdGVEYXRhU3VibmV0cyhGbi5jaWRyc3VibmV0KHRoaXMuaXB2NENpZHJCbG9jaywgMiwgMikpO1xuXG4gICAgdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlID1cbiAgICAgIG5ldyBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZS5TZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJTZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiB0aGlzLl9wcm9wcy5pbnRlcm5hbERvbWFpbixcbiAgICAgICAgICB2cGM6IHRoaXMudnBjLmlkLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUHJpdmF0ZSBETlMgbmFtZXNwYWNlIGZvciAke3RoaXMuZnJpZW5kbHlOYW1lfWAsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXNlcnZpY2UtZGlzY292ZXJ5LW5hbWVzcGFjZWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRzID0ge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjLmlkLFxuICAgICAgcHVibGljU3VibmV0SWRzOiB0aGlzLnB1YmxpY1N1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICBwcml2YXRlU3VibmV0SWRzOiB0aGlzLnByaXZhdGVTdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQuc3VibmV0SWQpLFxuICAgICAgZGF0YVN1Ym5ldElkczogdGhpcy5kYXRhU3VibmV0cy5tYXAoKHN1Ym5ldCkgPT4gc3VibmV0LnN1Ym5ldElkKSxcbiAgICAgIC8vIG9ubHkga25vd24gYXQgc3ludGggdGltZVxuICAgICAgLy8gZXhwbGljaXQgYG51bGxgIHJlcXVpcmVkIHRvIGF2b2lkIHN5bnRheCBlcnJvcnMgd2hlbiB1c2luZyBzdHJpbmdWYWx1ZSAmJiBcInVuZGVmaW5lZFwiXG4gICAgICBkYlN1Ym5ldEdyb3VwOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5kYlN1Ym5ldEdyb3VwPy5ncmlkVVVJRCA/PyBudWxsLFxuICAgICAgfSksXG4gICAgICBlbGFzdGlDYWNoZVN1Ym5ldEdyb3VwOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5lbGFzdGlDYWNoZVN1Ym5ldEdyb3VwPy5ncmlkVVVJRCA/PyBudWxsLFxuICAgICAgfSksXG4gICAgICBzZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlTmFtZTogdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlLm5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVEYlN1Ym5ldEdyb3VwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYlN1Ym5ldEdyb3VwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2RiU3VibmV0R3JvdXAgPSBuZXcgRGJTdWJuZXRHcm91cCh0aGlzLCBcIkRiU3VibmV0R3JvdXBcIiwge1xuICAgICAgc3VibmV0czogdGhpcy5fZGF0YVN1Ym5ldHMsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1kYi1kZWZhdWx0LXN1Ym5ldC1ncm91cGAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZUVsYXN0aUNhY2hlU3VibmV0R3JvdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxhc3RpQ2FjaGVTdWJuZXRHcm91cCA9IG5ldyBFbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiRWxhc3RpQ2FjaGVTdWJuZXRHcm91cFwiLFxuICAgICAge1xuICAgICAgICBzdWJuZXRzOiB0aGlzLl9kYXRhU3VibmV0cyxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1lbGFzdGljYWNoZS1kZWZhdWx0LXN1Ym5ldC1ncm91cGAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1YmxpY1N1Ym5ldHMocHVibGljSXB2NENpZHJCbG9jazogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmF6Q291bnQ7IGkrKykge1xuICAgICAgLy8gaWYgU2luZ2xlTmF0R2F0ZXdheSwgb25seSBjcmVhdGUgTkFUIEdhdGV3YXkgZm9yIGZpcnN0IHB1YmxpYyBzdWJuZXRcbiAgICAgIGNvbnN0IGNyZWF0ZU5hdEdhdGV3YXkgPVxuICAgICAgICB0aGlzLm5hdEdhdGV3YXlPcHRpb24gIT09IE5hdEdhdGV3YXlPcHRpb24uU0lOR0xFX05BVF9HQVRFV0FZIHx8XG4gICAgICAgIGkgPT09IDA7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gRm4uZWxlbWVudCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVzLCBpKTtcbiAgICAgIGNvbnN0IHB1YmxpY1N1Ym5ldCA9IG5ldyBQdWJsaWNTdWJuZXQodGhpcywgYFB1YmxpY1N1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQocHVibGljSXB2NENpZHJCbG9jaywgMiwgaSksXG4gICAgICAgIGRlZmF1bHRSb3V0ZVRhYmxlSWQ6IHRoaXMudnBjLmRlZmF1bHRSb3V0ZVRhYmxlSWQsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tcHVibGljLXN1Ym5ldC0ke2F2YWlsYWJpbGl0eVpvbmV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlTmF0R2F0ZXdheSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoY3JlYXRlTmF0R2F0ZXdheSkge1xuICAgICAgICBjb25zdCBndyA9IHB1YmxpY1N1Ym5ldC5uYXRnYXRld2F5ITtcbiAgICAgICAgLy8gY3JlYXRlIHJvdXRlIHRhYmxlIHBlciBOQVQgZ2F0ZXdheVxuICAgICAgICB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlcy5wdXNoKFxuICAgICAgICAgIG5ldyByb3V0ZVRhYmxlLlJvdXRlVGFibGUodGhpcywgYFByaXZhdGVSb3V0ZVRhYmxlJHtpfWAsIHtcbiAgICAgICAgICAgIHZwY0lkOiB0aGlzLnZwYy5pZCxcbiAgICAgICAgICAgIHJvdXRlOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjaWRyQmxvY2s6IFwiMC4wLjAuMC8wXCIsXG4gICAgICAgICAgICAgICAgbmF0R2F0ZXdheUlkOiBndy5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1wcml2YXRlLXJvdXRlLXRhYmxlLSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LW5hbWVcIjogXCJQdWJsaWNcIixcbiAgICAgICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC10eXBlXCI6IFwiUHVibGljXCIsXG4gICAgICAgICAgICAgIFwia3ViZXJuZXRlcy5pby9yb2xlL2VsYlwiOiBcIjFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubmF0R2F0ZXdheXMucHVzaChndyk7XG4gICAgICB9XG4gICAgICB0aGlzLl9wdWJsaWNTdWJuZXRzLnB1c2gocHVibGljU3VibmV0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVByaXZhdGVTdWJuZXRzKHByaXZhdGVJcHY0Q2lkckJsb2NrOiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXpDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gRm4uZWxlbWVudCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVzLCBpKTtcbiAgICAgIGNvbnN0IHJ0YklkeCA9IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzLmxlbmd0aCA+PSB0aGlzLmF6Q291bnQgPyBpIDogMDtcbiAgICAgIGNvbnN0IHByaXZhdGVTdWJuZXQgPSBuZXcgUHJpdmF0ZVN1Ym5ldCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQocHJpdmF0ZUlwdjRDaWRyQmxvY2ssIDIsIGkpLFxuICAgICAgICByb3V0ZVRhYmxlOiB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlc1tydGJJZHhdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXByaXZhdGUtc3VibmV0LSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtbmFtZVwiOiBcIlByaXZhdGVcIixcbiAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LXR5cGVcIjogXCJQcml2YXRlXCIsXG4gICAgICAgICAgXCJrdWJlcm5ldGVzLmlvL3JvbGUvaW50ZXJuYWwtZWxiXCI6IFwiMVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9wcml2YXRlU3VibmV0cy5wdXNoKHByaXZhdGVTdWJuZXQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGF0YVN1Ym5ldHMoZGF0YUlwdjRDaWRyQmxvY2s6IHN0cmluZykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hekNvdW50OyBpKyspIHtcbiAgICAgIGNvbnN0IGF2YWlsYWJpbGl0eVpvbmUgPSBGbi5lbGVtZW50KHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXMsIGkpO1xuICAgICAgY29uc3QgcnRiSWR4ID0gdGhpcy5wcml2YXRlUm91dGVUYWJsZXMubGVuZ3RoID49IHRoaXMuYXpDb3VudCA/IGkgOiAwO1xuICAgICAgY29uc3QgZGF0YVN1Ym5ldCA9IG5ldyBEYXRhU3VibmV0KHRoaXMsIGBEYXRhU3VibmV0JHtpfWAsIHtcbiAgICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgICAgaXB2NENpZHJCbG9jazogRm4uY2lkcnN1Ym5ldChkYXRhSXB2NENpZHJCbG9jaywgMiwgaSksXG4gICAgICAgIHJvdXRlVGFibGU6IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzW3J0YklkeF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tZGF0YS1zdWJuZXQtJHthdmFpbGFiaWxpdHlab25lfWAsXG4gICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC1uYW1lXCI6IFwiRGF0YVwiLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtdHlwZVwiOiBcIklzb2xhdGVkXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2RhdGFTdWJuZXRzLnB1c2goZGF0YVN1Ym5ldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -36,7 +36,7 @@ class BaseSubnetGroup extends aws_construct_1.AwsConstructBase {
36
36
  }
37
37
  exports.BaseSubnetGroup = BaseSubnetGroup;
38
38
  _a = JSII_RTTI_SYMBOL_1;
39
- BaseSubnetGroup[_a] = { fqn: "terraconstructs.aws.network.BaseSubnetGroup", version: "0.0.8" };
39
+ BaseSubnetGroup[_a] = { fqn: "terraconstructs.aws.network.BaseSubnetGroup", version: "0.0.9" };
40
40
  class DbSubnetGroup extends BaseSubnetGroup {
41
41
  get arn() {
42
42
  return this.resource.arn;
@@ -52,7 +52,7 @@ class DbSubnetGroup extends BaseSubnetGroup {
52
52
  }
53
53
  exports.DbSubnetGroup = DbSubnetGroup;
54
54
  _b = JSII_RTTI_SYMBOL_1;
55
- DbSubnetGroup[_b] = { fqn: "terraconstructs.aws.network.DbSubnetGroup", version: "0.0.8" };
55
+ DbSubnetGroup[_b] = { fqn: "terraconstructs.aws.network.DbSubnetGroup", version: "0.0.9" };
56
56
  class ElastiCacheSubnetGroup extends BaseSubnetGroup {
57
57
  get arn() {
58
58
  return this.resource.arn;
@@ -68,5 +68,5 @@ class ElastiCacheSubnetGroup extends BaseSubnetGroup {
68
68
  }
69
69
  exports.ElastiCacheSubnetGroup = ElastiCacheSubnetGroup;
70
70
  _c = JSII_RTTI_SYMBOL_1;
71
- ElastiCacheSubnetGroup[_c] = { fqn: "terraconstructs.aws.network.ElastiCacheSubnetGroup", version: "0.0.8" };
71
+ ElastiCacheSubnetGroup[_c] = { fqn: "terraconstructs.aws.network.ElastiCacheSubnetGroup", version: "0.0.9" };
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3N1Ym5ldC1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUk2QjtBQUU3QixvREFJMEI7QUFHMUIsSUFBWSxlQVNYO0FBVEQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsNEJBQVMsQ0FBQTtJQUNUOztPQUVHO0lBQ0gsOENBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVRXLGVBQWUsK0JBQWYsZUFBZSxRQVMxQjtBQWFELE1BQXNCLGVBQ3BCLFNBQVEsZ0NBQWdCO0lBT3hCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsSUFBcUIsRUFDckIsS0FBdUI7UUFFdkIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDOztBQTlCSCwwQ0ErQkM7OztBQUVELE1BQWEsYUFBYyxTQUFRLGVBQWU7SUFFaEQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDeEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBWkgsc0NBYUM7OztBQUVELE1BQWEsc0JBQXVCLFNBQVEsZUFBZTtJQUV6RCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFDRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFzQixDQUFDLHNCQUFzQixDQUMvRCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7QUFoQkgsd0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZGJTdWJuZXRHcm91cCxcbiAgZWxhc3RpY2FjaGVTdWJuZXRHcm91cCxcbiAgLy8gZG9jZGJTdWJuZXRHcm91cCwgLy8gbm90IG5lZWRlZCwgcmRzIGFuZCBkb2NkYiBzaGFyZSBzdWJuZXQgZ3JvdXBzXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG4gIElBd3NDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJU3VibmV0IH0gZnJvbSBcIi4vc3VibmV0XCI7XG5cbmV4cG9ydCBlbnVtIFN1Ym5ldEdyb3VwVHlwZSB7XG4gIC8qKlxuICAgKiBSRFMgYW5kIERvY0RiIFN1Ym5ldEdyb3VwXG4gICAqL1xuICBEQiA9IFwiREJcIixcbiAgLyoqXG4gICAqIEVsYXN0aUNhY2hlIFN1Ym5ldEdyb3VwXG4gICAqL1xuICBFTEFTVElDQUNIRSA9IFwiRUxBU1RJQ0FDSEVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRHcm91cFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICByZWFkb25seSBzdWJuZXRzOiBJU3VibmV0W107XG4gIHJlYWRvbmx5IHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdWJuZXRHcm91cCBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICByZWFkb25seSB0eXBlOiBTdWJuZXRHcm91cFR5cGU7XG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICByZWFkb25seSBzdWJuZXRzOiBJU3VibmV0W107XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU3VibmV0R3JvdXBcbiAgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSVN1Ym5ldEdyb3VwXG57XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBTdWJuZXRHcm91cFR5cGU7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJuZXRzOiBJU3VibmV0W107XG4gIHB1YmxpYyBnZXQgc3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9zdWJuZXRzO1xuICB9XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgYXJuKCk6IHN0cmluZztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBhcm46IHRoaXMuYXJuLFxuICAgICAgc3VibmV0czogdGhpcy5zdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQub3V0cHV0cyksXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0eXBlOiBTdWJuZXRHcm91cFR5cGUsXG4gICAgcHJvcHM6IFN1Ym5ldEdyb3VwUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50YWdzID0gcHJvcHMudGFncztcbiAgICB0aGlzLl9zdWJuZXRzID0gcHJvcHMuc3VibmV0cztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGJTdWJuZXRHcm91cCBleHRlbmRzIEJhc2VTdWJuZXRHcm91cCB7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogZGJTdWJuZXRHcm91cC5EYlN1Ym5ldEdyb3VwO1xuICBwdWJsaWMgZ2V0IGFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmFybjtcbiAgfVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3VibmV0R3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgU3VibmV0R3JvdXBUeXBlLkRCLCBwcm9wcyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBkYlN1Ym5ldEdyb3VwLkRiU3VibmV0R3JvdXAodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB0aGlzLmdyaWRVVUlELFxuICAgICAgc3VibmV0SWRzOiB0aGlzLnN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVsYXN0aUNhY2hlU3VibmV0R3JvdXAgZXh0ZW5kcyBCYXNlU3VibmV0R3JvdXAge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGVsYXN0aWNhY2hlU3VibmV0R3JvdXAuRWxhc3RpY2FjaGVTdWJuZXRHcm91cDtcbiAgcHVibGljIGdldCBhcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN1Ym5ldEdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFN1Ym5ldEdyb3VwVHlwZS5FTEFTVElDQUNIRSwgcHJvcHMpO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgZWxhc3RpY2FjaGVTdWJuZXRHcm91cC5FbGFzdGljYWNoZVN1Ym5ldEdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgc3VibmV0SWRzOiB0aGlzLnN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICAgIHRhZ3M6IHRoaXMudGFncyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -49,7 +49,7 @@ class BaseSubnet extends __1.AwsConstructBase {
49
49
  }
50
50
  exports.BaseSubnet = BaseSubnet;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- BaseSubnet[_a] = { fqn: "terraconstructs.aws.network.BaseSubnet", version: "0.0.8" };
52
+ BaseSubnet[_a] = { fqn: "terraconstructs.aws.network.BaseSubnet", version: "0.0.9" };
53
53
  class PublicSubnet extends BaseSubnet {
54
54
  constructor(scope, id, props) {
55
55
  super(scope, id, SubnetType.PUBLIC, props);
@@ -83,7 +83,7 @@ class PublicSubnet extends BaseSubnet {
83
83
  }
84
84
  exports.PublicSubnet = PublicSubnet;
85
85
  _b = JSII_RTTI_SYMBOL_1;
86
- PublicSubnet[_b] = { fqn: "terraconstructs.aws.network.PublicSubnet", version: "0.0.8" };
86
+ PublicSubnet[_b] = { fqn: "terraconstructs.aws.network.PublicSubnet", version: "0.0.9" };
87
87
  class PrivateSubnet extends BaseSubnet {
88
88
  constructor(scope, id, props) {
89
89
  super(scope, id, SubnetType.PRIVATE, {
@@ -101,7 +101,7 @@ class PrivateSubnet extends BaseSubnet {
101
101
  }
102
102
  exports.PrivateSubnet = PrivateSubnet;
103
103
  _c = JSII_RTTI_SYMBOL_1;
104
- PrivateSubnet[_c] = { fqn: "terraconstructs.aws.network.PrivateSubnet", version: "0.0.8" };
104
+ PrivateSubnet[_c] = { fqn: "terraconstructs.aws.network.PrivateSubnet", version: "0.0.9" };
105
105
  class DataSubnet extends BaseSubnet {
106
106
  constructor(scope, id, props) {
107
107
  super(scope, id, SubnetType.DATA, {
@@ -119,5 +119,5 @@ class DataSubnet extends BaseSubnet {
119
119
  }
120
120
  exports.DataSubnet = DataSubnet;
121
121
  _d = JSII_RTTI_SYMBOL_1;
122
- DataSubnet[_d] = { fqn: "terraconstructs.aws.network.DataSubnet", version: "0.0.8" };
122
+ DataSubnet[_d] = { fqn: "terraconstructs.aws.network.DataSubnet", version: "0.0.9" };
123
123
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3N1Ym5ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQVE2QjtBQUU3QiwyQkFBeUU7QUFFekUsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLCtCQUFpQixDQUFBO0lBQ2pCLGlDQUFtQixDQUFBO0lBQ25CLDJCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsVUFBVSwwQkFBVixVQUFVLFFBSXJCO0FBMENELE1BQXNCLFVBQVcsU0FBUSxvQkFBZ0I7SUFHdkQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBR0QsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsSUFBZ0IsRUFDaEIsS0FBc0I7UUFFdEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlC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QVUsQ0FBQyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7QUFuQkgsc0NBb0JDOzs7QUFFRCxNQUFhLFVBQVcsU0FBUSxVQUFVO0lBR3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRTtZQUNoQyxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxvQ0FBcUIsQ0FBQyxxQkFBcUIsQ0FDN0MsSUFBSSxFQUNKLHVCQUF1QixFQUN2QjtZQUNFLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUM1QixDQUFDOztBQW5CSCxnQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIHN1Ym5ldCxcbiAgbmF0R2F0ZXdheSxcbiAgZWlwLFxuICBkYXRhQXdzRWlwLFxuICByb3V0ZVRhYmxlLFxuICByb3V0ZVRhYmxlQXNzb2NpYXRpb24sXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMsIElBd3NDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vXCI7XG5cbmV4cG9ydCBlbnVtIFN1Ym5ldFR5cGUge1xuICBQVUJMSUMgPSBcIlBVQkxJQ1wiLFxuICBQUklWQVRFID0gXCJQUklWQVRFXCIsXG4gIERBVEEgPSBcIkRBVEFcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3VibmV0UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIGNyZWF0ZSB0aGUgc3VibmV0IGludG9cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogdnBjLlZwYztcbiAgLyoqXG4gICAqIFRoZSBJUHY0IENJRFIgYmxvY2sgZm9yIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBpcHY0Q2lkckJsb2NrOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmlsaXR5IHpvbmUgZm9yIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHRhZ3MgZm9yIHRoZSBzdWJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3VibmV0IGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIG9mIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZSBmb3IgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgSUQgb2YgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU3VibmV0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElTdWJuZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFN1Ym5ldFR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgcHVibGljIGdldCBhdmFpbGFiaWxpdHlab25lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJpbGl0eVpvbmU7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc3VibmV0SWQ6IHN0cmluZztcbiAgcHVibGljIGdldCBzdWJuZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdWJuZXRJZDtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdnBjOiB2cGMuVnBjO1xuICBwdWJsaWMgZ2V0IHZwY0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudnBjLmlkO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBjaWRyOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgaXB2NENpZHJCbG9jaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNpZHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogdGhpcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgaXB2NENpZHJCbG9jazogdGhpcy5pcHY0Q2lkckJsb2NrLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IHN1Ym5ldC5TdWJuZXQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0eXBlOiBTdWJuZXRUeXBlLFxuICAgIHByb3BzOiBCYXNlU3VibmV0UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudnBjID0gcHJvcHMudnBjO1xuICAgIHRoaXMuY2lkciA9IHByb3BzLmlwdjRDaWRyQmxvY2s7XG4gICAgdGhpcy5fYXZhaWxhYmlsaXR5Wm9uZSA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IHN1Ym5ldC5TdWJuZXQodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICB2cGNJZDogdGhpcy52cGMuaWQsXG4gICAgICBjaWRyQmxvY2s6IHRoaXMuY2lkcixcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHRoaXMuX2F2YWlsYWJpbGl0eVpvbmUsXG4gICAgICBtYXBQdWJsaWNJcE9uTGF1bmNoOiB0aGlzLnR5cGUgPT09IFN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICB9KTtcbiAgICB0aGlzLl9zdWJuZXRJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNTdWJuZXRQcm9wcyBleHRlbmRzIEJhc2VTdWJuZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIE5BVCBnYXRld2F5IGluIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVOYXRHYXRld2F5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBFSVAgYWxsb2NhdGlvbiBJRCB0byB1c2UgZm9yIHRoZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyBFSVAgaXMgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZWlwQWxsb2NhdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIFJvdXRlIFRhYmxlIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Um91dGVUYWJsZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaWNTdWJuZXQgZXh0ZW5kcyBCYXNlU3VibmV0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBuYXRHYXRld2F5PzogbmF0R2F0ZXdheS5OYXRHYXRld2F5O1xuICBwcml2YXRlIHJlYWRvbmx5IGVpcD86IGVpcC5FaXAgfCBkYXRhQXdzRWlwLkRhdGFBd3NFaXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1YmxpY1N1Ym5ldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBTdWJuZXRUeXBlLlBVQkxJQywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmNyZWF0ZU5hdEdhdGV3YXkpIHtcbiAgICAgIGlmIChwcm9wcy5laXBBbGxvY2F0aW9uSWQgJiYgcHJvcHMuZWlwQWxsb2NhdGlvbklkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5laXAgPSBuZXcgZGF0YUF3c0VpcC5EYXRhQXdzRWlwKHRoaXMsIFwiRWlwXCIsIHtcbiAgICAgICAgICBpZDogcHJvcHMuZWlwQWxsb2NhdGlvbklkLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBwcm9wcy50YWdzPy5OYW1lID8/IHRoaXMuZnJpZW5kbHlOYW1lO1xuICAgICAgICB0aGlzLmVpcCA9IG5ldyBlaXAuRWlwKHRoaXMsIFwiRWlwXCIsIHtcbiAgICAgICAgICBkb21haW46IFwidnBjXCIsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgTmFtZTogYCR7bmFtZX0tbmF0LWdhdGV3YXlgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm5hdEdhdGV3YXkgPSBuZXcgbmF0R2F0ZXdheS5OYXRHYXRld2F5KHRoaXMsIFwiTmF0R2F0ZXdheVwiLCB7XG4gICAgICAgIGFsbG9jYXRpb25JZDogdGhpcy5laXAuaWQsXG4gICAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7cHJvcHMudGFncz8uTmFtZSA/PyB0aGlzLmZyaWVuZGx5TmFtZX0tbmF0LWdhdGV3YXlgLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbmF0Z2F0ZXdheSgpOiBuYXRHYXRld2F5Lk5hdEdhdGV3YXkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm5hdEdhdGV3YXk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlU3VibmV0UHJvcHMgZXh0ZW5kcyBCYXNlU3VibmV0UHJvcHMge1xuICByZWFkb25seSByb3V0ZVRhYmxlOiByb3V0ZVRhYmxlLlJvdXRlVGFibGU7XG59XG5cbmV4cG9ydCBjbGFzcyBQcml2YXRlU3VibmV0IGV4dGVuZHMgQmFzZVN1Ym5ldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVUYWJsZTogcm91dGVUYWJsZS5Sb3V0ZVRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcml2YXRlU3VibmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFN1Ym5ldFR5cGUuUFJJVkFURSwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZVRhYmxlID0gcHJvcHMucm91dGVUYWJsZTtcbiAgICBuZXcgcm91dGVUYWJsZUFzc29jaWF0aW9uLlJvdXRlVGFibGVBc3NvY2lhdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJvdXRlVGFibGVBc3NvY2lhdGlvblwiLFxuICAgICAge1xuICAgICAgICByb3V0ZVRhYmxlSWQ6IHByb3BzLnJvdXRlVGFibGUuaWQsXG4gICAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcm91dGVUYWJsZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVUYWJsZS5pZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YVN1Ym5ldCBleHRlbmRzIEJhc2VTdWJuZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlVGFibGU6IHJvdXRlVGFibGUuUm91dGVUYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJpdmF0ZVN1Ym5ldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBTdWJuZXRUeXBlLkRBVEEsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMucm91dGVUYWJsZSA9IHByb3BzLnJvdXRlVGFibGU7XG4gICAgbmV3IHJvdXRlVGFibGVBc3NvY2lhdGlvbi5Sb3V0ZVRhYmxlQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJSb3V0ZVRhYmxlQXNzb2NpYXRpb25cIixcbiAgICAgIHtcbiAgICAgICAgcm91dGVUYWJsZUlkOiBwcm9wcy5yb3V0ZVRhYmxlLmlkLFxuICAgICAgICBzdWJuZXRJZDogdGhpcy5zdWJuZXRJZCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJvdXRlVGFibGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJvdXRlVGFibGUuaWQ7XG4gIH1cbn1cbiJdfQ==
@@ -58,5 +58,5 @@ class Archive extends aws_construct_1.AwsConstructBase {
58
58
  }
59
59
  exports.Archive = Archive;
60
60
  _a = JSII_RTTI_SYMBOL_1;
61
- Archive[_a] = { fqn: "terraconstructs.aws.notify.Archive", version: "0.0.8" };
61
+ Archive[_a] = { fqn: "terraconstructs.aws.notify.Archive", version: "0.0.9" };
62
62
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2FyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBNkQ7QUFFN0Qsb0RBQXVFO0FBR3ZFLGlDQUE0QztBQXdENUM7Ozs7R0FJRztBQUNILE1BQWEsT0FBUSxTQUFRLGdDQUFnQjtJQUUzQzs7O09BR0c7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQ1IsS0FBSyxDQUFDLFdBQVc7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUc7Z0JBQzNCLHdCQUF3QixFQUFFLEtBQUs7Z0JBQy9CLFNBQVMsRUFBRSxFQUFFO2FBQ2QsQ0FBQyxDQUFDO1FBRUwsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkVBQTJFLENBQzVFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFzQixDQUFDLHNCQUFzQixDQUMvRCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsSUFBSTtZQUNKLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVc7WUFDaEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxJQUFBLHlCQUFrQixFQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDcEQsYUFBYSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztTQUNoRSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDdkIsQ0FBQztJQUNKLENBQUM7O0FBN0RILDBCQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb3Vkd2F0Y2hFdmVudEFyY2hpdmUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElFdmVudEJ1cyB9IGZyb20gXCIuL2V2ZW50LWJ1c1wiO1xuaW1wb3J0IHsgRXZlbnRQYXR0ZXJuIH0gZnJvbSBcIi4vZXZlbnQtcGF0dGVyblwiO1xuaW1wb3J0IHsgcmVuZGVyRXZlbnRQYXR0ZXJuIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi5cIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIGNhbiBiZSBleHBvc2VkIHRocm91Z2ggdGhlIGdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmNoaXZlT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcmNoaXZlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXZlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGFyY2hpdmUgYmFzZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFyY2hpdmVQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhcmNoaXZlLlxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZXZlbnRicmlkZ2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQXJjaGl2ZS5odG1sI2V2ZW50YnJpZGdlLUNyZWF0ZUFyY2hpdmUtcmVxdWVzdC1BcmNoaXZlTmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBhcmNoaXZlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBhcmNoaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogQW4gZXZlbnQgcGF0dGVybiB0byB1c2UgdG8gZmlsdGVyIGV2ZW50cyBzZW50IHRvIHRoZSBhcmNoaXZlLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRQYXR0ZXJuOiBFdmVudFBhdHRlcm47XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgdG8gcmV0YWluIGV2ZW50cyBmb3IuIERlZmF1bHQgdmFsdWUgaXMgMC4gSWYgc2V0IHRvIDAsIGV2ZW50cyBhcmUgcmV0YWluZWQgaW5kZWZpbml0ZWx5LlxuICAgKiBAZGVmYXVsdCAtIEluZmluaXRlXG4gICAqL1xuICByZWFkb25seSByZXRlbnRpb24/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgYXJjaGl2ZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJjaGl2ZVByb3BzIGV4dGVuZHMgQmFzZUFyY2hpdmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXJjaGl2ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUV2ZW50QnVzOiBJRXZlbnRCdXM7XG59XG5cbi8qKlxuICogRGVmaW5lIGFuIEV2ZW50QnJpZGdlIEFyY2hpdmVcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYXJjaGl2ZVxuICovXG5leHBvcnQgY2xhc3MgQXJjaGl2ZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hFdmVudEFyY2hpdmUuQ2xvdWR3YXRjaEV2ZW50QXJjaGl2ZTtcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXZlIG5hbWUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBnZXQgYXJjaGl2ZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcmNoaXZlIGNyZWF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBnZXQgYXJjaGl2ZUFybigpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXJjaGl2ZU91dHB1dHM6IEFyY2hpdmVPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXJjaGl2ZU91dHB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXJjaGl2ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIHByb3BzLmFyY2hpdmVOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCArIFwiLVwiLFxuICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLi1fXCIsXG4gICAgICAgIG1heExlbmd0aDogNDgsXG4gICAgICB9KTtcblxuICAgIGlmIChuYW1lLmxlbmd0aCA8IDEgfHwgbmFtZS5sZW5ndGggPiA0OCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImFyY2hpdmVOYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0OCBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghbmFtZS5tYXRjaCgvXltcXC5cXC1fQS1aYS16MC05XSskLykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJhcmNoaXZlTmFtZSBtdXN0IG9ubHkgY29udGFpbiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IC4gLSBfIEEtWiBhLXogMC05XCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgY2xvdWR3YXRjaEV2ZW50QXJjaGl2ZS5DbG91ZHdhdGNoRXZlbnRBcmNoaXZlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZXZlbnRTb3VyY2VBcm46IHByb3BzLnNvdXJjZUV2ZW50QnVzLmV2ZW50QnVzQXJuLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIGV2ZW50UGF0dGVybjogcmVuZGVyRXZlbnRQYXR0ZXJuKHByb3BzLmV2ZW50UGF0dGVybiksXG4gICAgICAgIHJldGVudGlvbkRheXM6IHByb3BzLnJldGVudGlvbj8udG9EYXlzKHsgaW50ZWdyYWw6IHRydWUgfSkgfHwgMCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuYXJjaGl2ZU91dHB1dHMgPSB7XG4gICAgICBhcm46IHRoaXMuYXJjaGl2ZUFybixcbiAgICAgIG5hbWU6IHRoaXMuYXJjaGl2ZU5hbWUsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -85,7 +85,7 @@ class Authorization {
85
85
  }
86
86
  exports.Authorization = Authorization;
87
87
  _a = JSII_RTTI_SYMBOL_1;
88
- Authorization[_a] = { fqn: "terraconstructs.aws.notify.Authorization", version: "0.0.8" };
88
+ Authorization[_a] = { fqn: "terraconstructs.aws.notify.Authorization", version: "0.0.9" };
89
89
  /**
90
90
  * An additional HTTP parameter to send along with the OAuth request
91
91
  */
@@ -123,7 +123,7 @@ class HttpParameter {
123
123
  }
124
124
  exports.HttpParameter = HttpParameter;
125
125
  _b = JSII_RTTI_SYMBOL_1;
126
- HttpParameter[_b] = { fqn: "terraconstructs.aws.notify.HttpParameter", version: "0.0.8" };
126
+ HttpParameter[_b] = { fqn: "terraconstructs.aws.notify.HttpParameter", version: "0.0.9" };
127
127
  /**
128
128
  * Define an EventBridge Connection
129
129
  *
@@ -197,7 +197,7 @@ class Connection extends aws_construct_1.AwsConstructBase {
197
197
  }
198
198
  exports.Connection = Connection;
199
199
  _c = JSII_RTTI_SYMBOL_1;
200
- Connection[_c] = { fqn: "terraconstructs.aws.notify.Connection", version: "0.0.8" };
200
+ Connection[_c] = { fqn: "terraconstructs.aws.notify.Connection", version: "0.0.9" };
201
201
  class ImportedConnection extends aws_construct_1.AwsConstructBase {
202
202
  get connectionOutputs() {
203
203
  return {
@@ -229,7 +229,7 @@ class EventBus extends EventBusBase {
229
229
  }
230
230
  exports.EventBus = EventBus;
231
231
  _a = JSII_RTTI_SYMBOL_1;
232
- EventBus[_a] = { fqn: "terraconstructs.aws.notify.EventBus", version: "0.0.8" };
232
+ EventBus[_a] = { fqn: "terraconstructs.aws.notify.EventBus", version: "0.0.9" };
233
233
  class ImportedEventBus extends EventBusBase {
234
234
  get outputs() {
235
235
  return this.eventBusOutputs;
@@ -292,7 +292,7 @@ class EventBusPolicy extends aws_construct_1.AwsConstructBase {
292
292
  }
293
293
  exports.EventBusPolicy = EventBusPolicy;
294
294
  _b = JSII_RTTI_SYMBOL_1;
295
- EventBusPolicy[_b] = { fqn: "terraconstructs.aws.notify.EventBusPolicy", version: "0.0.8" };
295
+ EventBusPolicy[_b] = { fqn: "terraconstructs.aws.notify.EventBusPolicy", version: "0.0.9" };
296
296
  /**
297
297
  * A single permission for an Event Bus
298
298
  *
@@ -322,5 +322,5 @@ class EventBridgePermission extends aws_construct_1.AwsConstructBase {
322
322
  }
323
323
  exports.EventBridgePermission = EventBridgePermission;
324
324
  _c = JSII_RTTI_SYMBOL_1;
325
- EventBridgePermission[_c] = { fqn: "terraconstructs.aws.notify.EventBridgePermission", version: "0.0.8" };
325
+ EventBridgePermission[_c] = { fqn: "terraconstructs.aws.notify.EventBridgePermission", version: "0.0.9" };
326
326
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvZXZlbnQtYnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBSTZCO0FBQzdCLGlDQUFvQztBQUVwQyxnQ0FBbUM7QUFDbkMsb0RBQXVFO0FBQ3ZFLDRDQUF3QztBQUN4Qyx1Q0FBc0Q7QUFDdEQsK0NBQStDO0FBQy9DLDhCQUE4QjtBQTJJOUIsTUFBZSxZQUFhLFNBQVEsZ0NBQWdCO0lBaUIzQyxPQUFPLENBQUMsRUFBVSxFQUFFLEtBQXVCO1FBQ2hELE9BQU8sSUFBSSxpQkFBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDM0IsY0FBYyxFQUFFLElBQUk7WUFDcEIsV0FBVyxFQUNULEtBQUssQ0FBQyxXQUFXLElBQUkscUJBQXFCLElBQUksQ0FBQyxZQUFZLFlBQVk7WUFDekUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQXVCO1FBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQzdCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUtGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLFlBQVk7SUFDeEM7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUMzQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsV0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsb0JBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUNuRCxX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LFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSx3Q0FBeUIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3hFLHVGQUF1RjtZQUN2RixHQUFHLEtBQUs7WUFDUixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBWkgsc0RBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjbG91ZHdhdGNoRXZlbnRCdXMsXG4gIGNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeSxcbiAgY2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbixcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenksIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uL2FyblwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBBcmNoaXZlLCBCYXNlQXJjaGl2ZVByb3BzIH0gZnJvbSBcIi4vYXJjaGl2ZVwiO1xuLy8gaW1wb3J0ICogYXMgZW5jcnlwdGlvbiBmcm9tIFwiLi4vZW5jcnlwdGlvblwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBPdXRwdXRzIHRvIHJlZ2lzdGVyIHdpdGggdGhlIEdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEJ1c091dHB1dHMge1xuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIElEIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2Ugd2hpY2ggYWxsIEV2ZW50QnVzIGJhc2VkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRXZlbnRCdXMgZXh0ZW5kcyBpYW0uSUF3c0NvbnN0cnVjdFdpdGhQb2xpY3kge1xuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIElEIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjQXJuLWZuOjpnZXRhdHRcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1ldmVudHNvdXJjZW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIEV2ZW50QnJpZGdlIGFyY2hpdmUgdG8gc2VuZCBldmVudHMgdG8uXG4gICAqIFdoZW4geW91IGNyZWF0ZSBhbiBhcmNoaXZlLCBpbmNvbWluZyBldmVudHMgbWlnaHQgbm90IGltbWVkaWF0ZWx5IHN0YXJ0IGJlaW5nIHNlbnQgdG8gdGhlIGFyY2hpdmUuXG4gICAqIEFsbG93IGEgc2hvcnQgcGVyaW9kIG9mIHRpbWUgZm9yIGNoYW5nZXMgdG8gdGFrZSBlZmZlY3QuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBQcm9wZXJ0aWVzIG9mIHRoZSBhcmNoaXZlXG4gICAqL1xuICBhcmNoaXZlKGlkOiBzdHJpbmcsIHByb3BzOiBCYXNlQXJjaGl2ZVByb3BzKTogQXJjaGl2ZTtcblxuICAvKipcbiAgICogR3JhbnRzIGFuIElBTSBQcmluY2lwYWwgdG8gc2VuZCBjdXN0b20gZXZlbnRzIHRvIHRoZSBldmVudEJ1c1xuICAgKiBzbyB0aGF0IHRoZXkgY2FuIGJlIG1hdGNoZWQgdG8gcnVsZXMuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgKG5vLW9wIGlmIHVuZGVmaW5lZClcbiAgICovXG4gIGdyYW50UHV0RXZlbnRzVG8oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBkZWZpbmUgYW4gZXZlbnQgYnVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBldmVudCBidXMgeW91IGFyZSBjcmVhdGluZ1xuICAgKiBOb3RlOiBJZiAnZXZlbnRTb3VyY2VOYW1lJyBpcyBwYXNzZWQgaW4sIHlvdSBjYW5ub3Qgc2V0IHRoaXNcbiAgICpcbiAgICogTk9URTogdGhlIG5hbWVzIG9mIGN1c3RvbSBldmVudCBidXNlcyBjYW4ndCBjb250YWluIHRoZSAnLycgY2hhcmFjdGVyXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLW5hbWVcbiAgICogQGRlZmF1bHQgLSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBOb3RlOiBJZiAnZXZlbnRCdXNOYW1lJyBpcyBwYXNzZWQgaW4sIHlvdSBjYW5ub3Qgc2V0IHRoaXNcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZXZlbnRzb3VyY2VuYW1lXG4gICAqIEBkZWZhdWx0IC0gbm8gcGFydG5lciBldmVudCBzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcblxuICAvLyBUT0RPOiBSZS1hZGQgS01TIHN1cHBvcnRcbiAgLy8gLyoqXG4gIC8vICAqIFRoZSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0IGVuY3J5cHQgZXZlbnRzIG9uIHRoaXMgZXZlbnQgYnVzLlxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIFVzZSBhbiBBV1MgbWFuYWdlZCBrZXlcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGttc0tleT86IGVuY3J5cHRpb24uSUtleTtcblxuICAvLyAvLyBEZXNjcmlwdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRlcnJhZm9ybS1wcm92aWRlci1hd3NcbiAgLy8gLyoqXG4gIC8vICAqIFRoZSBldmVudCBidXMgZGVzY3JpcHRpb24uXG4gIC8vICAqXG4gIC8vICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgdXAgdG8gNTEyIGNoYXJhY3RlcnMgbG9uZy5cbiAgLy8gICpcbiAgLy8gICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLWRlc2NyaXB0aW9uXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb25cbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSB3aXRoIHByb3BlcnRpZXMgbmVjZXNzYXJ5IHRvIGltcG9ydCBhIHJldXNhYmxlIEV2ZW50QnVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1uYW1lXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjQXJuLWZuOjpnZXRhdHRcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1ldmVudHNvdXJjZW5hbWVcbiAgICogQGRlZmF1bHQgLSBubyBwYXJ0bmVyIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRTb3VyY2VOYW1lPzogc3RyaW5nO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBFdmVudEJ1c0Jhc2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUV2ZW50QnVzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50QnVzTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBldmVudCBidXMsIHN1Y2ggYXM6XG4gICAqIGFybjphd3M6ZXZlbnRzOnVzLWVhc3QtMjoxMjM0NTY3ODkwMTI6ZXZlbnQtYnVzL2F3cy5wYXJ0bmVyL1BhcnRuZXJOYW1lL2FjY3QxL3JlcG8xLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcblxuICBwdWJsaWMgYXJjaGl2ZShpZDogc3RyaW5nLCBwcm9wczogQmFzZUFyY2hpdmVQcm9wcyk6IEFyY2hpdmUge1xuICAgIHJldHVybiBuZXcgQXJjaGl2ZSh0aGlzLCBpZCwge1xuICAgICAgc291cmNlRXZlbnRCdXM6IHRoaXMsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgcHJvcHMuZGVzY3JpcHRpb24gfHwgYEV2ZW50IEFyY2hpdmUgZm9yICR7dGhpcy5ldmVudEJ1c05hbWV9IEV2ZW50IEJ1c2AsXG4gICAgICBldmVudFBhdHRlcm46IHByb3BzLmV2ZW50UGF0dGVybixcbiAgICAgIHJldGVudGlvbjogcHJvcHMucmV0ZW50aW9uLFxuICAgICAgYXJjaGl2ZU5hbWU6IHByb3BzLmFyY2hpdmVOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdyYW50UHV0RXZlbnRzVG8oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IFtcImV2ZW50czpQdXRFdmVudHNcIl0sXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmV2ZW50QnVzQXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG59XG5cbi8qKlxuICogRGVmaW5lIGFuIEV2ZW50QnJpZGdlIEV2ZW50QnVzXG4gKlxuICogQHJlc291cmNlIGF3c19jbG91ZHdhdGNoX2V2ZW50X2J1c1xuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCdXMgZXh0ZW5kcyBFdmVudEJ1c0Jhc2Uge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBldmVudEJ1c0FybiBBUk4gb2YgaW1wb3J0ZWQgZXZlbnQgYnVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudEJ1c0FybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZXZlbnRCdXNBcm46IHN0cmluZyxcbiAgKTogSUV2ZW50QnVzIHtcbiAgICBjb25zdCBwYXJ0cyA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKS5zcGxpdEFybihcbiAgICAgIGV2ZW50QnVzQXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRFdmVudEJ1cyhzY29wZSwgaWQsIHtcbiAgICAgIGV2ZW50QnVzQXJuOiBldmVudEJ1c0FybixcbiAgICAgIGV2ZW50QnVzTmFtZTogcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCIsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBldmVudEJ1c05hbWUgTmFtZSBvZiBpbXBvcnRlZCBldmVudCBidXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV2ZW50QnVzTmFtZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZXZlbnRCdXNOYW1lOiBzdHJpbmcsXG4gICk6IElFdmVudEJ1cyB7XG4gICAgY29uc3QgZXZlbnRCdXNBcm4gPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHJlc291cmNlOiBcImV2ZW50LWJ1c1wiLFxuICAgICAgc2VydmljZTogXCJldmVudHNcIixcbiAgICAgIHJlc291cmNlTmFtZTogZXZlbnRCdXNOYW1lLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIEV2ZW50QnVzLmZyb21FdmVudEJ1c0F0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICBldmVudEJ1c05hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAgIGV2ZW50QnVzQXJuOiBldmVudEJ1c0FybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydGVkIGV2ZW50IGJ1cyBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudEJ1c0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBFdmVudEJ1c0F0dHJpYnV0ZXMsXG4gICk6IElFdmVudEJ1cyB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZEV2ZW50QnVzKHNjb3BlLCBpZCwgYXR0cnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIFByaW5jaXBhbCB0byBzZW5kIGN1c3RvbSBldmVudHMgdG8gRXZlbnRCcmlkZ2VcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqIEBkZXByZWNhdGVkIHVzZSBncmFudEFsbFB1dEV2ZW50cyBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyYW50UHV0RXZlbnRzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICAvLyBJdCdzIGN1cnJlbnRseSBub3QgcG9zc2libGUgdG8gcmVzdHJpY3QgUHV0RXZlbnRzIHRvIHNwZWNpZmljIHJlc291cmNlcy5cbiAgICAvLyBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvcGVybWlzc2lvbnMtcmVmZXJlbmNlLWV2ZW50YnJpZGdlLmh0bWxcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJldmVudHM6UHV0RXZlbnRzXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIFByaW5jaXBhbCB0byBzZW5kIGN1c3RvbSBldmVudHMgdG8gRXZlbnRCcmlkZ2VcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyYW50QWxsUHV0RXZlbnRzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJldmVudHM6UHV0RXZlbnRzXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZXZlbnRCdXNQcm9wcyhcbiAgICBkZWZhdWx0RXZlbnRCdXNOYW1lOiBzdHJpbmcsXG4gICAgcHJvcHM6IEV2ZW50QnVzUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgY29uc3QgeyBldmVudEJ1c05hbWUsIGV2ZW50U291cmNlTmFtZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgZXZlbnRCdXNOYW1lUmVnZXggPSAvXltcXC9cXC5cXC1fQS1aYS16MC05XXsxLDI1Nn0kLztcblxuICAgIGlmIChldmVudEJ1c05hbWUgIT09IHVuZGVmaW5lZCAmJiBldmVudFNvdXJjZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIidldmVudEJ1c05hbWUnIGFuZCAnZXZlbnRTb3VyY2VOYW1lJyBjYW5ub3QgYm90aCBiZSBwcm92aWRlZFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnRCdXNOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGV2ZW50QnVzTmFtZSkpIHtcbiAgICAgICAgaWYgKGV2ZW50QnVzTmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBiZSAnZGVmYXVsdCdcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRCdXNOYW1lLmluZGV4T2YoXCIvXCIpID4gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBjb250YWluICcvJ1wiKTtcbiAgICAgICAgfSBlbHNlIGlmICghZXZlbnRCdXNOYW1lUmVnZXgudGVzdChldmVudEJ1c05hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnZXZlbnRCdXNOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRCdXNOYW1lUmVnZXh9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGV2ZW50QnVzTmFtZSB9O1xuICAgIH1cblxuICAgIGlmIChldmVudFNvdXJjZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoZXZlbnRTb3VyY2VOYW1lKSkge1xuICAgICAgICAvLyBFeDogYXdzLnBhcnRuZXIvUGFydG5lck5hbWUvYWNjdDEvcmVwbzFcbiAgICAgICAgY29uc3QgZXZlbnRTb3VyY2VOYW1lUmVnZXggPSAvXmF3c1xcLnBhcnRuZXIoXFwvW1xcLlxcLV9BLVphLXowLTldKyl7Mix9JC87XG4gICAgICAgIGlmICghZXZlbnRTb3VyY2VOYW1lUmVnZXgudGVzdChldmVudFNvdXJjZU5hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYCdldmVudFNvdXJjZU5hbWUnIG11c3Qgc2F0aXNmeTogJHtldmVudFNvdXJjZU5hbWVSZWdleH1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50QnVzTmFtZVJlZ2V4LnRlc3QoZXZlbnRTb3VyY2VOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGAnZXZlbnRTb3VyY2VOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRCdXNOYW1lUmVnZXh9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBldmVudEJ1c05hbWU6IGV2ZW50U291cmNlTmFtZSwgZXZlbnRTb3VyY2VOYW1lIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZXZlbnRCdXNOYW1lOiBkZWZhdWx0RXZlbnRCdXNOYW1lIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hFdmVudEJ1cy5DbG91ZHdhdGNoRXZlbnRCdXM7XG5cbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzT3V0cHV0czogRXZlbnRCdXNPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRCdXNPdXRwdXRzO1xuICB9XG5cbiAgcHJpdmF0ZSBwb2xpY3k/OiBFdmVudEJ1c1BvbGljeTtcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIElEIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV2ZW50QnVzTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZXZlbnQgYnVzLCBzdWNoIGFzOlxuICAgKiBhcm46YXdzOmV2ZW50czp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOmV2ZW50LWJ1cy9hd3MucGFydG5lci9QYXJ0bmVyTmFtZS9hY2N0MS9yZXBvMS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZXZlbnRCdXNBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRuZXIgZXZlbnQgc291cmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRTb3VyY2VOYW1lPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogRXZlbnRCdXNQcm9wcykge1xuICAgIGNvbnN0IHsgZXZlbnRCdXNOYW1lLCBldmVudFNvdXJjZU5hbWUgfSA9IEV2ZW50QnVzLmV2ZW50QnVzUHJvcHMoXG4gICAgICAvLyBUT0RPKHZpbmNlbnQpOiBGaWd1cmUgb3V0IGhvdyB0aGlzIHdvcmtzLi4uXG4gICAgICBMYXp5LnN0cmluZ1ZhbHVlKHsgcHJvZHVjZTogKCkgPT4gQXdzU3RhY2sudW5pcXVlSWQodGhpcykgfSksXG4gICAgICBwcm9wcyxcbiAgICApO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBpZiAoXG4gICAgLy8gICBwcm9wcz8uZGVzY3JpcHRpb24gJiZcbiAgICAvLyAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZGVzY3JpcHRpb24pICYmXG4gICAgLy8gICBwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGggPiA1MTJcbiAgICAvLyApIHtcbiAgICAvLyAgIHRocm93IG5ldyBFcnJvcihcbiAgICAvLyAgICAgYGRlc2NyaXB0aW9uIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUxMiBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGh9YCxcbiAgICAvLyAgICk7XG4gICAgLy8gfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoRXZlbnRCdXMuQ2xvdWR3YXRjaEV2ZW50QnVzKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogZXZlbnRCdXNOYW1lLFxuICAgICAgICBldmVudFNvdXJjZU5hbWUsXG4gICAgICAgIC8vIGttc0tleUlkZW50aWZpZXI6IHByb3BzPy5rbXNLZXk/LmtleUFybiwgLy8gVE9ETzogUmUtYWRkIEtNUyBzdXBwb3J0XG4gICAgICAgIC8vIGRlc2NyaXB0aW9uOiBwcm9wcz8uZGVzY3JpcHRpb24sIC8vIERlc2NyaXB0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGVycmFmb3JtLXByb3ZpZGVyLWF3c1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gVE9ETzogUmUtYWRkIEtNUyBzdXBwb3J0XG4gICAgLy8gLyoqXG4gICAgLy8gICogQWxsb3cgRXZlbnRCcmlkZ2UgdG8gdXNlIGN1c3RvbWVyIG1hbmFnZWQga2V5XG4gICAgLy8gICpcbiAgICAvLyAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLWVuY3J5cHRpb24ta2V5LXBvbGljeS5odG1sI2ViLWVuY3J5cHRpb24ta2V5LXBvbGljeS1idXNcbiAgICAvLyAgKi9cbiAgICAvLyBpZiAocHJvcHM/Lmttc0tleSkge1xuICAgIC8vICAgcHJvcHM/Lmttc0tleS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIC8vICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgLy8gICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgIC8vICAgICAgIGFjdGlvbnM6IFtcImttczpEZWNyeXB0XCIsIFwia21zOkdlbmVyYXRlRGF0YUtleVwiLCBcImttczpEZXNjcmliZUtleVwiXSxcbiAgICAvLyAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIildLFxuICAgIC8vICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAvLyAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgIC8vICAgICAgICAgICBcImF3czpTb3VyY2VBY2NvdW50XCI6IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICAvLyAgICAgICAgICAgXCJhd3M6U291cmNlQXJuXCI6IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmZvcm1hdEFybih7XG4gICAgLy8gICAgICAgICAgICAgc2VydmljZTogXCJldmVudHNcIixcbiAgICAvLyAgICAgICAgICAgICByZXNvdXJjZTogXCJldmVudC1idXNcIixcbiAgICAvLyAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAvLyAgICAgICAgICAgfSksXG4gICAgLy8gICAgICAgICAgIFwia21zOkVuY3J5cHRpb25Db250ZXh0OmF3czpldmVudHM6ZXZlbnQtYnVzOmFyblwiOiBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChcbiAgICAvLyAgICAgICAgICAgICB0aGlzLFxuICAgIC8vICAgICAgICAgICApLmZvcm1hdEFybih7XG4gICAgLy8gICAgICAgICAgICAgc2VydmljZTogXCJldmVudHNcIixcbiAgICAvLyAgICAgICAgICAgICByZXNvdXJjZTogXCJldmVudC1idXNcIixcbiAgICAvLyAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAvLyAgICAgICAgICAgfSksXG4gICAgLy8gICAgICAgICB9LFxuICAgIC8vICAgICAgIH0sXG4gICAgLy8gICAgIH0pLFxuICAgIC8vICAgKTtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmV2ZW50U291cmNlTmFtZSA9IHRoaXMucmVzb3VyY2UuZXZlbnRTb3VyY2VOYW1lO1xuICAgIHRoaXMuZXZlbnRCdXNPdXRwdXRzID0ge1xuICAgICAgbmFtZTogdGhpcy5ldmVudEJ1c05hbWUsXG4gICAgICBhcm46IHRoaXMuZXZlbnRCdXNBcm4sXG4gICAgICBldmVudFNvdXJjZU5hbWU6IHRoaXMuZXZlbnRTb3VyY2VOYW1lLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyBldmVudCBidXMuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICBpZiAoIXRoaXMucG9saWN5KSB7XG4gICAgICB0aGlzLnBvbGljeSA9IG5ldyBFdmVudEJ1c1BvbGljeSh0aGlzLCBcIlBvbGljeVwiLCB7IGV2ZW50QnVzOiB0aGlzIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBvbGljeSkge1xuICAgICAgdGhpcy5wb2xpY3kuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMucG9saWN5IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IGZhbHNlIH07XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRFdmVudEJ1cyBleHRlbmRzIEV2ZW50QnVzQmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRCdXNOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1c091dHB1dHM6IEV2ZW50QnVzT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCkge1xuICAgIHJldHVybiB0aGlzLmV2ZW50QnVzT3V0cHV0cztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBFdmVudEJ1c0F0dHJpYnV0ZXMpIHtcbiAgICBjb25zdCBhcm5QYXJ0cyA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKS5zcGxpdEFybihcbiAgICAgIGF0dHJzLmV2ZW50QnVzQXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGFjY291bnQ6IGFyblBhcnRzLmFjY291bnQsXG4gICAgICByZWdpb246IGFyblBhcnRzLnJlZ2lvbixcbiAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRCdXNBcm4gPSBhdHRycy5ldmVudEJ1c0FybjtcbiAgICB0aGlzLmV2ZW50QnVzTmFtZSA9IGF0dHJzLmV2ZW50QnVzTmFtZTtcbiAgICB0aGlzLmV2ZW50U291cmNlTmFtZSA9IGF0dHJzLmV2ZW50U291cmNlTmFtZTtcbiAgICB0aGlzLmV2ZW50QnVzT3V0cHV0cyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuZXZlbnRCdXNOYW1lLFxuICAgICAgYXJuOiB0aGlzLmV2ZW50QnVzQXJuLFxuICAgICAgZXZlbnRTb3VyY2VOYW1lOiB0aGlzLmV2ZW50U291cmNlTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgX3N0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFtcbiAgICAgICAgXCJDYW5ub3QgYWRkIGEgc3RhdGVtZW50IHRvIGFuIGltcG9ydGVkIEV2ZW50QnVzLiBZb3UgbWF5IHVzZSBgRXZlbnRCcmlkZ2VQZXJtaXNzaW9uYCBpbnN0ZWFkLlwiLFxuICAgICAgICBcIklmIHRoZSBFdmVudEJ1cyBhbHJlYWR5IGhhcyBhIHBvbGljeSBhdHRhY2hlZCwgdGhlIHBlcm1pc3Npb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uXCIsXG4gICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gYXNzb2NpYXRlIEV2ZW50IEJ1c2VzIHdpdGggYSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEJ1c1BvbGljeVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIGV2ZW50IGJ1cyB0byB3aGljaCB0aGUgcG9saWN5IGFwcGxpZXNcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzOiBJRXZlbnRCdXM7XG59XG5cbi8qKlxuICogVGhlIHBvbGljeSBmb3IgYW4gRXZlbnQgQnVzXG4gKlxuICogUG9saWNpZXMgZGVmaW5lIHRoZSBvcGVyYXRpb25zIHRoYXQgYXJlIGFsbG93ZWQgb24gdGhpcyByZXNvdXJjZS5cbiAqXG4gKiBZb3UgYWxtb3N0IG5ldmVyIG5lZWQgdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0IGRpcmVjdGx5LlxuICpcbiAqIFRoZSBFdmVudEJ1c1BvbGljeSByZXNvdXJjZSAoYGF3c19jbG91ZHdhdGNoX2V2ZW50X2J1c19wb2xpY3lgKVxuICogaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIEV2ZW50QnJpZGdlUGVybWlzc2lvbiByZXNvdXJjZSAoYGF3c19jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb25gKVxuICogYW5kIHdpbGwgb3ZlcndyaXRlIHBlcm1pc3Npb25zLlxuICpcbiAqIEFsbCBBV1MgcmVzb3VyY2VzIHRoYXQgc3VwcG9ydCByZXNvdXJjZSBwb2xpY2llcyBoYXZlIGEgbWV0aG9kIGNhbGxlZFxuICogYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYSBuZXcgcmVzb3VyY2VcbiAqIHBvbGljeSBpZiBvbmUgZG9lc24ndCBleGlzdCB5ZXQsIG90aGVyd2lzZSBpdCB3aWxsIGFkZCB0byB0aGUgZXhpc3RpbmdcbiAqIHBvbGljeS5cbiAqXG4gKiBQcmVmZXIgdG8gdXNlIGBhZGRUb1Jlc291cmNlUG9saWN5KClgIGluc3RlYWQuXG4gKlxuICogQHJlc291cmNlIGF3c19jbG91ZHdhdGNoX2V2ZW50X2J1c19wb2xpY3lcbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50QnVzUG9saWN5IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIC8qKlxuICAgKiBUaGUgSUFNIHBvbGljeSBkb2N1bWVudCBmb3IgdGhpcyBwb2xpY3kuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnQ6IGlhbS5Qb2xpY3lEb2N1bWVudDtcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50Lm91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV2ZW50QnVzUG9saWN5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLmRvY3VtZW50ID0gbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh0aGlzLCBcIkRvY3VtZW50XCIpO1xuXG4gICAgbmV3IGNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeS5DbG91ZHdhdGNoRXZlbnRCdXNQb2xpY3kodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvcHVsbC8xNjg3NCNkaXNjdXNzaW9uX3I2NTYwMjQ4MzBcbiAgICAgIHBvbGljeTogdGhpcy5kb2N1bWVudC5qc29uLFxuICAgICAgZXZlbnRCdXNOYW1lOiBwcm9wcy5ldmVudEJ1cy5ldmVudEJ1c05hbWUsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGFkZCBwZXJtaXNzaW9ucyB0byBhbiBFdmVudCBCdXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEJyaWRnZVBlcm1pc3Npb25Qcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLy8gVE9ETzogQXV0byBnZW5lcmF0ZSB0aGlzIHVzaW5nIHN0cnVjdCBidWlsZGVyIHRvIGtlZXAgZG9jcyB1cGRhdGVkP1xuICAvKipcbiAgICogVGhlIGV2ZW50IGJ1cyB0byB3aGljaCB0aGUgcG9saWN5IGFwcGxpZXNcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzOiBJRXZlbnRCdXM7XG4gIC8qKlxuICAgKiBBbiBpZGVudGlmaWVyIHN0cmluZyBmb3IgdGhlIGV4dGVybmFsIGFjY291bnQgdGhhdFxuICAgKiB5b3UgYXJlIGdyYW50aW5nIHBlcm1pc3Npb25zIHRvLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jc3RhdGVtZW50X2lkIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jc3RhdGVtZW50X2lkfVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVtZW50SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdGhhdCB5b3UgYXJlIGVuYWJsaW5nIHRoZSBvdGhlciBhY2NvdW50IHRvIHBlcmZvcm0uIERlZmF1bHRzIHRvIGV2ZW50czpQdXRFdmVudHNcbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI2FjdGlvbiBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI2FjdGlvbn1cbiAgICogQGRlZmF1bHQgXCJldmVudHM6UHV0RXZlbnRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNldmVudF9idXNfbmFtZSBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI2V2ZW50X2J1c19uYW1lfVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI2lkIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jaWR9XG4gICAqXG4gICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRoZSBpZCBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIGFsbCByZXNvdXJjZXMgaW4gVGVycmFmb3JtIHByb3ZpZGVycyB1c2luZyBhIFRlcnJhZm9ybSBwcm92aWRlciBTREsgdmVyc2lvbiBiZWxvdyAyLlxuICAgKiBJZiB5b3UgZXhwZXJpZW5jZSBwcm9ibGVtcyBzZXR0aW5nIHRoaXMgdmFsdWUgaXQgbWlnaHQgbm90IGJlIHNldHRhYmxlLiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gdG8gZW5zdXJlIGl0IHNob3VsZCBiZSBzZXR0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIDEyLWRpZ2l0IEFXUyBhY2NvdW50IElEIHRoYXQgeW91IGFyZSBwZXJtaXR0aW5nIHRvIHB1dCBldmVudHMgdG8geW91ciBkZWZhdWx0IGV2ZW50IGJ1cy5cbiAgICogU3BlY2lmeSAqIHRvIHBlcm1pdCBhbnkgYWNjb3VudCB0byBwdXQgZXZlbnRzIHRvIHlvdXIgZGVmYXVsdCBldmVudCBidXMsIG9wdGlvbmFsbHkgbGltaXRlZFxuICAgKiBieSBjb25kaXRpb24uXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNwcmluY2lwYWwgQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNwcmluY2lwYWx9XG4gICAqL1xuICByZWFkb25seSBwcmluY2lwYWw6IHN0cmluZztcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gYmxvY2sgdG8gbGltaXQgdGhlIGV2ZW50IGJ1cyBwZXJtaXNzaW9ucyB5b3UgYXJlIGdyYW50aW5nIHRvIG9ubHkgYWNjb3VudHMgdGhhdFxuICAgKiBmdWxmaWxsIHRoZSBjb25kaXRpb24uY29uZGl0aW9uIGJsb2NrXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNjb25kaXRpb24gQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNjb25kaXRpb259XG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb24/OiBjbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uLkNsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb25Db25kaXRpb247XG59XG5cbi8qKlxuICogQSBzaW5nbGUgcGVybWlzc2lvbiBmb3IgYW4gRXZlbnQgQnVzXG4gKlxuICogQWxsIEFXUyByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IHJlc291cmNlIHBvbGljaWVzIGhhdmUgYSBtZXRob2QgY2FsbGVkXG4gKiBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIG5ldyByZXNvdXJjZVxuICogcG9saWN5IGlmIG9uZSBkb2Vzbid0IGV4aXN0IHlldCwgb3RoZXJ3aXNlIGl0IHdpbGwgYWRkIHRvIHRoZSBleGlzdGluZ1xuICogcG9saWN5LlxuICpcbiAqIElmIGBhZGRUb1Jlc291cmNlUG9saWN5KClgIHdhcyB1c2VkIG9uIHRoZSBldmVudCBidXMsIFRoZSBFdmVudEJ1c1BvbGljeSByZXNvdXJjZVxuICogKGBhd3NfY2xvdWR3YXRjaF9ldmVudF9idXNfcG9saWN5YCkgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhpcyByZXNvdXJjZSBhbmRcbiAqIHdpbGwgb3ZlcndyaXRlIHBlcm1pc3Npb25zLlxuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEJyaWRnZVBlcm1pc3Npb24gZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRCcmlkZ2VQZXJtaXNzaW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIG5ldyBjbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uLkNsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24odGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvcHVsbC8xNjg3NCNkaXNjdXNzaW9uX3I2NTYwMjQ4MzBcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZXZlbnRCdXNOYW1lOiBwcm9wcy5ldmVudEJ1cy5ldmVudEJ1c05hbWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -193,5 +193,5 @@ class Match {
193
193
  }
194
194
  exports.Match = Match;
195
195
  _a = JSII_RTTI_SYMBOL_1;
196
- Match[_a] = { fqn: "terraconstructs.aws.notify.Match", version: "0.0.8" };
196
+ Match[_a] = { fqn: "terraconstructs.aws.notify.Match", version: "0.0.9" };
197
197
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2V2ZW50LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5R0FBeUc7QUFDekcsaUNBQTREO0FBYzVEOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBQ2hCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztP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LE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxhQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBeE9ILHNCQXlPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWV2ZW50cy9saWIvZXZlbnQtcGF0dGVybi50c1xuaW1wb3J0IHsgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcblxudHlwZSBDb21wYXJpc29uT3BlcmF0b3IgPSBcIj5cIiB8IFwiPj1cIiB8IFwiPFwiIHwgXCI8PVwiIHwgXCI9XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaG93IHRvIGNvbnN0cnVjdCBtYXRjaGVyc1xuICovXG5pbnRlcmZhY2UgTWF0Y2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxpc3Qgb2YgbWF0Y2hlcnMgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXJcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlTWF0Y2hlcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gZXZlbnQgcGF0dGVybiBtYXRjaGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRjaCBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgLyoqXG4gICAqIE1hdGNoZXMgYSBudWxsIHZhbHVlIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudWxsVmFsdWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFtudWxsXSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGlzdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGV4aXN0czogdHJ1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBhYnNlbnQgZnJvbSB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZG9lc05vdEV4aXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBleGlzdHM6IGZhbHNlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCBleGFjdGx5LCBpbiB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RTdHJpbmcodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCByZWdhcmRsZXNzIG9mIGNhc2UsIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHByZWZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHByZWZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1ZmZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHN1ZmZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgSVB2NCBhbmQgSVB2NiBuZXR3b3JrIGFkZHJlc3NlcyB1c2luZyB0aGUgQ2xhc3NsZXNzIEludGVyLURvbWFpbiBSb3V0aW5nIChDSURSKSBmb3JtYXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2lkcihyYW5nZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGlwdjRSZWdleCA9XG4gICAgICAvXihbMC05XXsxLDN9XFwuKXszfVswLTldezEsM30oXFwvKFswLTldfFsxLTJdWzAtOV18M1swLTJdKSk/JC9naW07XG4gICAgY29uc3QgaXB2NlJlZ2V4ID1cbiAgICAgIC9ecyooKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKSkoJS4rKT9zKihcXC8oWzAtOV18WzEtOV1bMC05XXwxWzAtMV1bMC05XXwxMlswLThdKSk/JC9naW07XG5cbiAgICBpZiAoIWlwdjRSZWdleC50ZXN0KHJhbmdlKSAmJiAhaXB2NlJlZ2V4LnRlc3QocmFuZ2UpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSVAgYWRkcmVzcyByYW5nZTogJHtyYW5nZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBjaWRyOiByYW5nZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBJUHY0IGFuZCBJUHY2IG5ldHdvcmsgYWRkcmVzc2VzIHVzaW5nIHRoZSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGZvcm1hdC5cbiAgICogQWxpYXMgb2YgYGNpZHIoKWAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlwQWRkcmVzc1JhbmdlKHJhbmdlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE1hdGNoLmNpZHIocmFuZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgYW55dGhpbmcgZXhjZXB0IHdoYXQncyBwcm92aWRlZCBpbiB0aGUgcnVsZS4gVGhlIGxpc3Qgb2YgcHJvdmlkZWQgdmFsdWVzIG11c3QgY29udGFpblxuICAgKiBvbmx5IHN0cmluZ3Mgb3Igb25seSBudW1iZXJzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnl0aGluZ0J1dCguLi52YWx1ZXM6IGFueVtdKTogc3RyaW5nW10ge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhbnl0aGluZ0J1dCBtYXRjaGVycyBtdXN0IGJlIG5vbi1lbXB0eSBsaXN0c1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCBhbGxOdW1iZXJzID0gdmFsdWVzLmV2ZXJ5KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIik7XG4gICAgY29uc3QgYWxsU3RyaW5ncyA9IHZhbHVlcy5ldmVyeSgodikgPT4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIpO1xuXG4gICAgaWYgKCEoYWxsTnVtYmVycyB8fCBhbGxTdHJpbmdzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImFueXRoaW5nQnV0IG1hdGNoZXJzIG11c3QgYmUgbGlzdHMgdGhhdCBjb250YWluIG9ubHkgc3RyaW5ncyBvciBvbmx5IG51bWJlcnMuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IFwiYW55dGhpbmctYnV0XCI6IHZhbHVlcyB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnkgc3RyaW5nIHRoYXQgZG9lc24ndCBzdGFydCB3aXRoIHRoZSBnaXZlbiBwcmVmaXguXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0UHJlZml4KHByZWZpeDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IFwiYW55dGhpbmctYnV0XCI6IHsgcHJlZml4OiBwcmVmaXggfSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBudW1iZXJzIGdyZWF0ZXIgdGhhbiB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ3JlYXRlclRoYW4odmFsdWU6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5udW1lcmljKFwiPlwiLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBudW1iZXJzIGdyZWF0ZXIgdGhhbiwgb3IgZXF1YWwgdG8sIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmVhdGVyVGhhbk9yRXF1YWwodmFsdWU6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5udW1lcmljKFwiPj1cIiwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBsZXNzIHRoYW4gdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIjxcIiwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBsZXNzIHRoYW4sIG9yIGVxdWFsIHRvLCB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbGVzc1RoYW5PckVxdWFsKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIjw9XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVxdWFsKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj1cIiwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBpbnNpZGUgYSBjbG9zZWQgbnVtZXJpYyBpbnRlcnZhbC4gRXF1aXZhbGVudCB0bzpcbiAgICpcbiAgICogICAgTWF0Y2guYWxsT2YoTWF0Y2guZ3JlYXRlclRoYW5PckVxdWFsKGxvd2VyKSwgTWF0Y2gubGVzc1RoYW5PckVxdWFsKHVwcGVyKSlcbiAgICpcbiAgICogQHBhcmFtIGxvd2VyIExvd2VyIGJvdW5kIChpbmNsdXNpdmUpXG4gICAqIEBwYXJhbSB1cHBlciBVcHBlciBib3VuZCAoaW5jbHVzaXZlKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbnRlcnZhbChsb3dlcjogbnVtYmVyLCB1cHBlcjogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIGlmIChsb3dlciA+IHVwcGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW50ZXJ2YWw6IFske2xvd2VyfSwgJHt1cHBlcn1dYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGNoLmFsbE9mKFxuICAgICAgTWF0Y2guZ3JlYXRlclRoYW5PckVxdWFsKGxvd2VyKSxcbiAgICAgIE1hdGNoLmxlc3NUaGFuT3JFcXVhbCh1cHBlciksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFuIGV2ZW50IGlmIGFueSBvZiB0aGUgcHJvdmlkZWQgbWF0Y2hlcnMgZG8uIE9ubHkgbnVtZXJpYyBtYXRjaGVycyBhcmUgYWNjZXB0ZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFsbE9mKC4uLm1hdGNoZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAobWF0Y2hlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIGxpc3Qgb2YgbWF0Y2hlcnMgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBlbGVtZW50LlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tTWVyZ2VkT2JqZWN0cyhtYXRjaGVycyk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbiBldmVudCBpZiBhbnkgb2YgdGhlIHByb3ZpZGVkIG1hdGNoZXJzIGRvZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueU9mKC4uLm1hdGNoZXJzOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAobWF0Y2hlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIGxpc3Qgb2YgbWF0Y2hlcnMgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBlbGVtZW50LlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMobWF0Y2hlcnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbnVtZXJpYyhcbiAgICBvcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLFxuICAgIHZhbHVlOiBudW1iZXIsXG4gICk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBudW1lcmljOiBbb3BlcmF0b3IsIHZhbHVlXSB9XSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmcm9tT2JqZWN0cyh2YWx1ZXM6IGFueVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBuZXcgTWF0Y2godmFsdWVzLCB7IG1lcmdlTWF0Y2hlcnM6IGZhbHNlIH0pLmFzTGlzdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZnJvbU1lcmdlZE9iamVjdHModmFsdWVzOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gbmV3IE1hdGNoKHZhbHVlcywgeyBtZXJnZU1hdGNoZXJzOiB0cnVlIH0pLmFzTGlzdCgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0aW9uU3RhY2s6IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRjaGVyczogYW55W10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBNYXRjaE9wdGlvbnMsXG4gICkge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBzdGFjayB0cmFjZXNcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9wcml2YXRlL3N0YWNrLXRyYWNlLnRzI0w5XG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNDMuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9zdGFjay10cmFjZS50cyNMMjJcbiAgICB0aGlzLmNyZWF0aW9uU3RhY2sgPSBbXCJzdGFjayB0cmFjZXMgZGlzYWJsZWRcIl07XG4gIH1cblxuICByZXNvbHZlKGNvbnRleHQ6IElSZXNvbHZlQ29udGV4dCk6IGFueSB7XG4gICAgY29uc3QgbWF0Y2hlcnMgPSB0aGlzLm1hdGNoZXJzLmZsYXRNYXAoKG1hdGNoZXIpID0+XG4gICAgICBjb250ZXh0LnJlc29sdmUobWF0Y2hlciksXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1lcmdlTWF0Y2hlcnMgPyB0aGlzLm1lcmdlKG1hdGNoZXJzKSA6IG1hdGNoZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZShtYXRjaGVyczogYW55W10pOiBhbnkge1xuICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgc3VwcG9ydGVkIGNhc2UgZm9yIG1lcmdpbmcgYXQgdGhlIG1vbWVudC5cbiAgICAvLyBXZSBjYW4gZ2VuZXJhbGl6ZSB0aGlzIGxvZ2ljIGlmIEV2ZW50QnJpZGdlIHN0YXJ0cyBzdXBwb3J0aW5nIG1vcmUgY2FzZXMgaW4gdGhlIGZ1dHVyZS5cbiAgICBpZiAoIW1hdGNoZXJzLmV2ZXJ5KChtYXRjaGVyKSA9PiBtYXRjaGVyPy5udW1lcmljKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIk9ubHkgbnVtZXJpYyBtYXRjaGVycyBjYW4gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgbWF0Y2hlci5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt7IG51bWVyaWM6IG1hdGNoZXJzLmZsYXRNYXAoKG1hdGNoZXIpID0+IG1hdGNoZXIubnVtZXJpYykgfV07XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgbWF0Y2hlciBhcyBhIGxpc3Qgb2Ygc3RyaW5nc1xuICAgKi9cbiAgYXNMaXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gVG9rZW4uYXNMaXN0KHRoaXMpO1xuICB9XG59XG5cbi8qKlxuICogRXZlbnRzIGluIEFtYXpvbiBDbG91ZFdhdGNoIEV2ZW50cyBhcmUgcmVwcmVzZW50ZWQgYXMgSlNPTiBvYmplY3RzLiBGb3IgbW9yZVxuICogaW5mb3JtYXRpb24gYWJvdXQgSlNPTiBvYmplY3RzLCBzZWUgUkZDIDcxNTkuXG4gKlxuICogKipJbXBvcnRhbnQqKjogdGhpcyBjbGFzcyBjYW4gb25seSBiZSB1c2VkIHdpdGggYSBgUnVsZWAgY2xhc3MuIEluIHBhcnRpY3VsYXIsXG4gKiBkbyBub3QgdXNlIGl0IHdpdGggYENmblJ1bGVgIGNsYXNzOiB5b3VyIHBhdHRlcm4gd2lsbCBub3QgYmUgcmVuZGVyZWRcbiAqIGNvcnJlY3RseS4gSW4gYSBgQ2ZuUnVsZWAgY2xhc3MsIHdyaXRlIHRoZSBwYXR0ZXJuIGFzIHlvdSBub3JtYWxseSB3b3VsZCB3aGVuXG4gKiBkaXJlY3RseSB3cml0aW5nIENsb3VkRm9ybWF0aW9uLlxuICpcbiAqIFJ1bGVzIHVzZSBldmVudCBwYXR0ZXJucyB0byBzZWxlY3QgZXZlbnRzIGFuZCByb3V0ZSB0aGVtIHRvIHRhcmdldHMuIEFcbiAqIHBhdHRlcm4gZWl0aGVyIG1hdGNoZXMgYW4gZXZlbnQgb3IgaXQgZG9lc24ndC4gRXZlbnQgcGF0dGVybnMgYXJlIHJlcHJlc2VudGVkXG4gKiBhcyBKU09OIG9iamVjdHMgd2l0aCBhIHN0cnVjdHVyZSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhhdCBvZiBldmVudHMuXG4gKlxuICogSXQgaXMgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRoZSBmb2xsb3dpbmcgYWJvdXQgZXZlbnQgcGF0dGVybiBtYXRjaGluZzpcbiAqXG4gKiAtIEZvciBhIHBhdHRlcm4gdG8gbWF0Y2ggYW4gZXZlbnQsIHRoZSBldmVudCBtdXN0IGNvbnRhaW4gYWxsIHRoZSBmaWVsZCBuYW1lc1xuICogICBsaXN0ZWQgaW4gdGhlIHBhdHRlcm4uIFRoZSBmaWVsZCBuYW1lcyBtdXN0IGFwcGVhciBpbiB0aGUgZXZlbnQgd2l0aCB0aGVcbiAqICAgc2FtZSBuZXN0aW5nIHN0cnVjdHVyZS5cbiAqXG4gKiAtIE90aGVyIGZpZWxkcyBvZiB0aGUgZXZlbnQgbm90IG1lbnRpb25lZCBpbiB0aGUgcGF0dGVybiBhcmUgaWdub3JlZDtcbiAqICAgZWZmZWN0aXZlbHksIHRoZXJlIGlzIGEgYGBcIipcIjogXCIqXCJgYCB3aWxkY2FyZCBmb3IgZmllbGRzIG5vdCBtZW50aW9uZWQuXG4gKlxuICogLSBUaGUgbWF0Y2hpbmcgaXMgZXhhY3QgKGNoYXJhY3Rlci1ieS1jaGFyYWN0ZXIpLCB3aXRob3V0IGNhc2UtZm9sZGluZyBvciBhbnlcbiAqICAgb3RoZXIgc3RyaW5nIG5vcm1hbGl6YXRpb24uXG4gKlxuICogLSBUaGUgdmFsdWVzIGJlaW5nIG1hdGNoZWQgZm9sbG93IEpTT04gcnVsZXM6IFN0cmluZ3MgZW5jbG9zZWQgaW4gcXVvdGVzLFxuICogICBudW1iZXJzLCBhbmQgdGhlIHVucXVvdGVkIGtleXdvcmRzIHRydWUsIGZhbHNlLCBhbmQgbnVsbC5cbiAqXG4gKiAtIE51bWJlciBtYXRjaGluZyBpcyBhdCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGxldmVsLiBGb3IgZXhhbXBsZSwgMzAwLFxuICogICAzMDAuMCwgYW5kIDMuMGUyIGFyZSBub3QgY29uc2lkZXJlZCBlcXVhbC5cbiAqXG4gKiBGb3IgY3VzdG9tIGV2ZW50cywgc29tZSBvcHRpb25hbCBwcm9wZXJ0aWVzIGFyZSByZXF1aXJlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICogW01pbmltdW0gaW5mb3JtYXRpb24gbmVlZGVkIGZvciBhIHZhbGlkIGN1c3RvbSBldmVudF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvZWItZXZlbnRzLXN0cnVjdHVyZS5odG1sI2ViLWN1c3RvbS1ldmVudCkuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0Nsb3VkV2F0Y2hFdmVudHNhbmRFdmVudFBhdHRlcm5zLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFBhdHRlcm4ge1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyBzZXQgdG8gMCAoemVybykgaW4gYWxsIGV2ZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHVuaXF1ZSB2YWx1ZSBpcyBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IGV2ZW50LiBUaGlzIGNhbiBiZSBoZWxwZnVsIGluXG4gICAqIHRyYWNpbmcgZXZlbnRzIGFzIHRoZXkgbW92ZSB0aHJvdWdoIHJ1bGVzIHRvIHRhcmdldHMsIGFuZCBhcmUgcHJvY2Vzc2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiBpZFxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllcywgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgc291cmNlIGZpZWxkLCB0aGUgZmllbGRzIGFuZCB2YWx1ZXNcbiAgICogdGhhdCBhcHBlYXIgaW4gdGhlIGRldGFpbCBmaWVsZC5cbiAgICpcbiAgICogUmVwcmVzZW50cyB0aGUgXCJkZXRhaWwtdHlwZVwiIGV2ZW50IGZpZWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiBkZXRhaWwgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsVHlwZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBzZXJ2aWNlIHRoYXQgc291cmNlZCB0aGUgZXZlbnQuIEFsbCBldmVudHMgc291cmNlZCBmcm9tXG4gICAqIHdpdGhpbiBBV1MgYmVnaW4gd2l0aCBcImF3cy5cIiBDdXN0b21lci1nZW5lcmF0ZWQgZXZlbnRzIGNhbiBoYXZlIGFueSB2YWx1ZVxuICAgKiBoZXJlLCBhcyBsb25nIGFzIGl0IGRvZXNuJ3QgYmVnaW4gd2l0aCBcImF3cy5cIiBXZSByZWNvbW1lbmQgdGhlIHVzZSBvZlxuICAgKiBKYXZhIHBhY2thZ2UtbmFtZSBzdHlsZSByZXZlcnNlIGRvbWFpbi1uYW1lIHN0cmluZ3MuXG4gICAqXG4gICAqIFRvIGZpbmQgdGhlIGNvcnJlY3QgdmFsdWUgZm9yIHNvdXJjZSBmb3IgYW4gQVdTIHNlcnZpY2UsIHNlZSB0aGUgdGFibGUgaW5cbiAgICogQVdTIFNlcnZpY2UgTmFtZXNwYWNlcy4gRm9yIGV4YW1wbGUsIHRoZSBzb3VyY2UgdmFsdWUgZm9yIEFtYXpvblxuICAgKiBDbG91ZEZyb250IGlzIGF3cy5jbG91ZGZyb250LlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL2F3cy1hcm5zLWFuZC1uYW1lc3BhY2VzLmh0bWwjZ2VucmVmLWF3cy1zZXJ2aWNlLW5hbWVzcGFjZXNcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gc291cmNlXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIDEyLWRpZ2l0IG51bWJlciBpZGVudGlmeWluZyBhbiBBV1MgYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGltZXN0YW1wLCB3aGljaCBjYW4gYmUgc3BlY2lmaWVkIGJ5IHRoZSBzZXJ2aWNlIG9yaWdpbmF0aW5nXG4gICAqIHRoZSBldmVudC4gSWYgdGhlIGV2ZW50IHNwYW5zIGEgdGltZSBpbnRlcnZhbCwgdGhlIHNlcnZpY2UgbWlnaHQgY2hvb3NlXG4gICAqIHRvIHJlcG9ydCB0aGUgc3RhcnQgdGltZSwgc28gdGhpcyB2YWx1ZSBjYW4gYmUgbm90aWNlYWJseSBiZWZvcmUgdGhlIHRpbWVcbiAgICogdGhlIGV2ZW50IGlzIGFjdHVhbGx5IHJlY2VpdmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiB0aW1lXG4gICAqL1xuICByZWFkb25seSB0aW1lPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIEFXUyByZWdpb24gd2hlcmUgdGhlIGV2ZW50IG9yaWdpbmF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHJlZ2lvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoaXMgSlNPTiBhcnJheSBjb250YWlucyBBUk5zIHRoYXQgaWRlbnRpZnkgcmVzb3VyY2VzIHRoYXQgYXJlIGludm9sdmVkXG4gICAqIGluIHRoZSBldmVudC4gSW5jbHVzaW9uIG9mIHRoZXNlIEFSTnMgaXMgYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlXG4gICAqIHNlcnZpY2UuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBBbWF6b24gRUMyIGluc3RhbmNlIHN0YXRlLWNoYW5nZXMgaW5jbHVkZSBBbWF6b24gRUMyXG4gICAqIGluc3RhbmNlIEFSTnMsIEF1dG8gU2NhbGluZyBldmVudHMgaW5jbHVkZSBBUk5zIGZvciBib3RoIGluc3RhbmNlcyBhbmRcbiAgICogQXV0byBTY2FsaW5nIGdyb3VwcywgYnV0IEFQSSBjYWxscyB3aXRoIEFXUyBDbG91ZFRyYWlsIGRvIG5vdCBpbmNsdWRlXG4gICAqIHJlc291cmNlIEFSTnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBKU09OIG9iamVjdCwgd2hvc2UgY29udGVudCBpcyBhdCB0aGUgZGlzY3JldGlvbiBvZiB0aGUgc2VydmljZVxuICAgKiBvcmlnaW5hdGluZyB0aGUgZXZlbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIGRldGFpbFxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cbiJdfQ==