terraconstructs 0.1.1 → 0.1.2

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 (265) hide show
  1. package/.jsii +185 -119
  2. package/lib/asset-staging.js +1 -1
  3. package/lib/aws/arn.js +1 -1
  4. package/lib/aws/aws-asset-manager.js +1 -1
  5. package/lib/aws/aws-construct.js +1 -1
  6. package/lib/aws/aws-stack.js +1 -1
  7. package/lib/aws/aws-tags.js +2 -2
  8. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  12. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  13. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  14. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  15. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  16. package/lib/aws/cloudwatch/alarm.js +1 -1
  17. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  18. package/lib/aws/cloudwatch/dashboard.js +1 -1
  19. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  20. package/lib/aws/cloudwatch/graph.js +8 -8
  21. package/lib/aws/cloudwatch/layout.js +3 -3
  22. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  23. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  24. package/lib/aws/cloudwatch/log-group.js +1 -1
  25. package/lib/aws/cloudwatch/log-query.js +1 -1
  26. package/lib/aws/cloudwatch/log-stream.js +1 -1
  27. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  28. package/lib/aws/cloudwatch/metric.js +2 -2
  29. package/lib/aws/cloudwatch/pattern.js +3 -3
  30. package/lib/aws/cloudwatch/policy.js +1 -1
  31. package/lib/aws/cloudwatch/query-definition.js +2 -2
  32. package/lib/aws/cloudwatch/stats.js +1 -1
  33. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  34. package/lib/aws/cloudwatch/text.js +1 -1
  35. package/lib/aws/cloudwatch/variable.js +3 -3
  36. package/lib/aws/cloudwatch/widget.js +1 -1
  37. package/lib/aws/compute/access-log.js +4 -4
  38. package/lib/aws/compute/activity.js +1 -1
  39. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  40. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  41. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  42. package/lib/aws/compute/alb/application-listener.js +1 -1
  43. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  44. package/lib/aws/compute/alb/application-target-group.js +1 -1
  45. package/lib/aws/compute/alb/conditions.js +1 -1
  46. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  47. package/lib/aws/compute/alb/trust-store.js +1 -1
  48. package/lib/aws/compute/api-definition.js +3 -3
  49. package/lib/aws/compute/api-key.js +2 -2
  50. package/lib/aws/compute/architecture.js +1 -1
  51. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  52. package/lib/aws/compute/authorizer.js +1 -1
  53. package/lib/aws/compute/authorizers/identity-source.js +1 -1
  54. package/lib/aws/compute/authorizers/lambda.js +2 -2
  55. package/lib/aws/compute/base-path-mapping.js +1 -1
  56. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  57. package/lib/aws/compute/bastion-host.js +1 -1
  58. package/lib/aws/compute/chain.js +1 -1
  59. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  60. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  61. package/lib/aws/compute/client-vpn-route.js +2 -2
  62. package/lib/aws/compute/code.d.ts +11 -2
  63. package/lib/aws/compute/code.js +51 -12
  64. package/lib/aws/compute/condition.js +1 -1
  65. package/lib/aws/compute/connections.js +1 -1
  66. package/lib/aws/compute/cors.js +1 -1
  67. package/lib/aws/compute/deployment.js +1 -1
  68. package/lib/aws/compute/domain-name.js +1 -1
  69. package/lib/aws/compute/event-invoke-config.js +1 -1
  70. package/lib/aws/compute/event-source-filter.js +2 -2
  71. package/lib/aws/compute/event-source-mapping.js +1 -1
  72. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  73. package/lib/aws/compute/event-sources/s3.js +1 -1
  74. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  75. package/lib/aws/compute/event-sources/sqs.js +1 -1
  76. package/lib/aws/compute/fields.js +4 -4
  77. package/lib/aws/compute/function-alias.js +1 -1
  78. package/lib/aws/compute/function-base.js +2 -2
  79. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  80. package/lib/aws/compute/function-destinations/function.js +1 -1
  81. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  82. package/lib/aws/compute/function-nodejs/function.js +1 -1
  83. package/lib/aws/compute/function-url.js +1 -1
  84. package/lib/aws/compute/function.js +1 -1
  85. package/lib/aws/compute/gateway-response.js +2 -2
  86. package/lib/aws/compute/handler.js +1 -1
  87. package/lib/aws/compute/instance-types.js +1 -1
  88. package/lib/aws/compute/instance.js +1 -1
  89. package/lib/aws/compute/integration.js +1 -1
  90. package/lib/aws/compute/integrations/aws.js +1 -1
  91. package/lib/aws/compute/integrations/http.js +1 -1
  92. package/lib/aws/compute/integrations/lambda.js +1 -1
  93. package/lib/aws/compute/integrations/mock.js +1 -1
  94. package/lib/aws/compute/integrations/stepfunctions.js +1 -1
  95. package/lib/aws/compute/ip-addresses.js +2 -2
  96. package/lib/aws/compute/ipam.js +1 -1
  97. package/lib/aws/compute/key-pair.js +1 -1
  98. package/lib/aws/compute/lambda-api.js +1 -1
  99. package/lib/aws/compute/launch-template.js +2 -2
  100. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  101. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  102. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  103. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  104. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  105. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  106. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  107. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  108. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  109. package/lib/aws/compute/load-balancer.js +3 -3
  110. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  111. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  112. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  113. package/lib/aws/compute/machine-image/common.js +1 -1
  114. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  115. package/lib/aws/compute/method.js +7 -4
  116. package/lib/aws/compute/model.js +3 -3
  117. package/lib/aws/compute/nat.js +5 -5
  118. package/lib/aws/compute/network-acl-types.js +2 -2
  119. package/lib/aws/compute/network-acl.js +3 -3
  120. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  121. package/lib/aws/compute/nlb/network-listener.js +1 -1
  122. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  123. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  124. package/lib/aws/compute/peer.js +1 -1
  125. package/lib/aws/compute/placement-group.js +1 -1
  126. package/lib/aws/compute/port.js +1 -1
  127. package/lib/aws/compute/prefix-list.js +1 -1
  128. package/lib/aws/compute/requestvalidator.js +1 -1
  129. package/lib/aws/compute/resource.js +3 -3
  130. package/lib/aws/compute/restapi.js +3 -3
  131. package/lib/aws/compute/route.js +8 -8
  132. package/lib/aws/compute/runtime.js +1 -1
  133. package/lib/aws/compute/scalable-target.js +1 -1
  134. package/lib/aws/compute/schedule.js +1 -1
  135. package/lib/aws/compute/security-group.js +1 -1
  136. package/lib/aws/compute/stage.js +2 -2
  137. package/lib/aws/compute/state-graph.js +1 -1
  138. package/lib/aws/compute/state-machine-fragment.js +1 -1
  139. package/lib/aws/compute/state-machine.js +4 -4
  140. package/lib/aws/compute/states/choice.js +1 -1
  141. package/lib/aws/compute/states/custom-state.js +1 -1
  142. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  143. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  144. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  145. package/lib/aws/compute/states/distributed-map.js +1 -1
  146. package/lib/aws/compute/states/fail.js +1 -1
  147. package/lib/aws/compute/states/map-base.js +1 -1
  148. package/lib/aws/compute/states/map.js +1 -1
  149. package/lib/aws/compute/states/parallel.js +1 -1
  150. package/lib/aws/compute/states/pass.js +2 -2
  151. package/lib/aws/compute/states/state.js +1 -1
  152. package/lib/aws/compute/states/succeed.js +1 -1
  153. package/lib/aws/compute/states/task-base.js +2 -2
  154. package/lib/aws/compute/states/task.js +1 -1
  155. package/lib/aws/compute/states/wait.js +2 -2
  156. package/lib/aws/compute/step-scaling-action.js +1 -1
  157. package/lib/aws/compute/step-scaling-policy.js +1 -1
  158. package/lib/aws/compute/stepfunctions-api.js +1 -1
  159. package/lib/aws/compute/subnet-v2.js +2 -2
  160. package/lib/aws/compute/subnet.js +1 -1
  161. package/lib/aws/compute/target-tracking-scaling-policy.js +1 -1
  162. package/lib/aws/compute/task-credentials.js +1 -1
  163. package/lib/aws/compute/task-input.js +1 -1
  164. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  165. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  166. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  167. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  168. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  169. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  170. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  171. package/lib/aws/compute/types.js +1 -1
  172. package/lib/aws/compute/usage-plan.js +1 -1
  173. package/lib/aws/compute/user-data.js +3 -3
  174. package/lib/aws/compute/volume.js +2 -2
  175. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  176. package/lib/aws/compute/vpc-endpoint.js +6 -6
  177. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  178. package/lib/aws/compute/vpc-link.js +1 -1
  179. package/lib/aws/compute/vpc-v2-base.js +1 -1
  180. package/lib/aws/compute/vpc-v2.js +2 -2
  181. package/lib/aws/compute/vpc.js +4 -4
  182. package/lib/aws/compute/vpn.js +3 -3
  183. package/lib/aws/edge/certificate.js +1 -1
  184. package/lib/aws/edge/distribution.js +3 -3
  185. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  186. package/lib/aws/edge/dns-record.js +13 -13
  187. package/lib/aws/edge/dns-zone.js +1 -1
  188. package/lib/aws/edge/function.js +2 -2
  189. package/lib/aws/edge/key-value-store.js +4 -4
  190. package/lib/aws/edge/origin.js +3 -3
  191. package/lib/aws/edge/response-headers-policy.js +1 -1
  192. package/lib/aws/encryption/alias.js +1 -1
  193. package/lib/aws/encryption/key.js +1 -1
  194. package/lib/aws/encryption/via-service-principal.js +1 -1
  195. package/lib/aws/iam/grant.js +2 -2
  196. package/lib/aws/iam/group.js +1 -1
  197. package/lib/aws/iam/instance-profile.js +1 -1
  198. package/lib/aws/iam/managed-policy.js +1 -1
  199. package/lib/aws/iam/oidc-provider.js +1 -1
  200. package/lib/aws/iam/policy-document.js +1 -1
  201. package/lib/aws/iam/policy-statement.js +1 -1
  202. package/lib/aws/iam/policy.js +1 -1
  203. package/lib/aws/iam/principals.js +20 -20
  204. package/lib/aws/iam/role.js +1 -1
  205. package/lib/aws/iam/saml-provider.js +2 -2
  206. package/lib/aws/iam/unknown-principal.js +1 -1
  207. package/lib/aws/iam/user.js +1 -1
  208. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  209. package/lib/aws/network/subnet-group.js +3 -3
  210. package/lib/aws/network/subnet.js +4 -4
  211. package/lib/aws/notify/archive.js +1 -1
  212. package/lib/aws/notify/connection.js +3 -3
  213. package/lib/aws/notify/event-bus.js +3 -3
  214. package/lib/aws/notify/event-pattern.js +1 -1
  215. package/lib/aws/notify/input.js +2 -2
  216. package/lib/aws/notify/kinesis-stream.js +1 -1
  217. package/lib/aws/notify/notification-rule.js +1 -1
  218. package/lib/aws/notify/policy.js +1 -1
  219. package/lib/aws/notify/queue-policy.js +1 -1
  220. package/lib/aws/notify/queue.js +1 -1
  221. package/lib/aws/notify/resource-policy.js +1 -1
  222. package/lib/aws/notify/rule.js +1 -1
  223. package/lib/aws/notify/schedule.js +1 -1
  224. package/lib/aws/notify/subscription-filter.js +1 -1
  225. package/lib/aws/notify/subscription.js +4 -4
  226. package/lib/aws/notify/subscriptions/email.js +1 -1
  227. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  228. package/lib/aws/notify/subscriptions/sms.js +1 -1
  229. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  230. package/lib/aws/notify/subscriptions/url.js +1 -1
  231. package/lib/aws/notify/targets/event-bus.js +1 -1
  232. package/lib/aws/notify/targets/function.js +1 -1
  233. package/lib/aws/notify/targets/log-group.js +2 -2
  234. package/lib/aws/notify/targets/sqs.js +1 -1
  235. package/lib/aws/notify/targets/state-machine.js +1 -1
  236. package/lib/aws/notify/topic-base.js +1 -1
  237. package/lib/aws/notify/topic.js +1 -1
  238. package/lib/aws/storage/assets/image-asset.js +3 -3
  239. package/lib/aws/storage/assets/s3.js +1 -1
  240. package/lib/aws/storage/auth-token.js +2 -2
  241. package/lib/aws/storage/billing.js +1 -1
  242. package/lib/aws/storage/bucket-notifications.js +1 -1
  243. package/lib/aws/storage/bucket-policy.js +1 -1
  244. package/lib/aws/storage/bucket-source.js +1 -1
  245. package/lib/aws/storage/bucket.js +2 -2
  246. package/lib/aws/storage/capacity.js +1 -1
  247. package/lib/aws/storage/ecr-repository.js +3 -3
  248. package/lib/aws/storage/encryption.js +1 -1
  249. package/lib/aws/storage/notification-targets/function.js +1 -1
  250. package/lib/aws/storage/notification-targets/queue.js +1 -1
  251. package/lib/aws/storage/origin-access-identity.js +1 -1
  252. package/lib/aws/storage/parameter.js +2 -2
  253. package/lib/aws/storage/table.js +3 -3
  254. package/lib/bundling.js +3 -3
  255. package/lib/construct-base.js +2 -2
  256. package/lib/duration.js +1 -1
  257. package/lib/expiration.js +1 -1
  258. package/lib/fs/ignore.js +4 -4
  259. package/lib/fs/index.js +1 -1
  260. package/lib/size.js +1 -1
  261. package/lib/stack-base.d.ts +10 -0
  262. package/lib/stack-base.js +9 -2
  263. package/lib/terra-func.js +1 -1
  264. package/lib/time-zone.js +1 -1
  265. package/package.json +3 -1
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.AssetImageCode = exports.EcrImageCode = exports.TerraformVariablesCode = exports.AssetCode = exports.InlineCode = exports.S3CodeV2 = exports.S3Code = exports.Code = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const child_process_1 = require("child_process");
7
+ const path_1 = require("path");
8
+ const provider_archive_1 = require("@cdktf/provider-archive");
7
9
  const cdktf = require("cdktf");
8
10
  const bundling_1 = require("../../bundling");
11
+ const helpers_internal_1 = require("../../helpers-internal");
9
12
  const aws_stack_1 = require("../aws-stack");
10
13
  const iam = require("../iam");
11
14
  // import { IAwsConstruct } from "../aws-construct";
@@ -140,7 +143,7 @@ class Code {
140
143
  }
141
144
  /**
142
145
  * DEPRECATED
143
- * @deprecated use `fromCfnParameters`
146
+ * @deprecated use `fromTerraformVariables`
144
147
  */
145
148
  static terraformVariables(props) {
146
149
  return this.fromTerraformVariables(props);
@@ -164,7 +167,7 @@ class Code {
164
167
  }
165
168
  exports.Code = Code;
166
169
  _a = JSII_RTTI_SYMBOL_1;
167
- Code[_a] = { fqn: "terraconstructs.aws.compute.Code", version: "0.1.1" };
170
+ Code[_a] = { fqn: "terraconstructs.aws.compute.Code", version: "0.1.2" };
168
171
  /**
169
172
  * Lambda code from an S3 archive.
170
173
  */
@@ -192,7 +195,7 @@ class S3Code extends Code {
192
195
  }
193
196
  exports.S3Code = S3Code;
194
197
  _b = JSII_RTTI_SYMBOL_1;
195
- S3Code[_b] = { fqn: "terraconstructs.aws.compute.S3Code", version: "0.1.1" };
198
+ S3Code[_b] = { fqn: "terraconstructs.aws.compute.S3Code", version: "0.1.2" };
196
199
  /**
197
200
  * Lambda code from an S3 archive. With option to set KMSKey for encryption.
198
201
  */
@@ -221,7 +224,7 @@ class S3CodeV2 extends Code {
221
224
  }
222
225
  exports.S3CodeV2 = S3CodeV2;
223
226
  _c = JSII_RTTI_SYMBOL_1;
224
- S3CodeV2[_c] = { fqn: "terraconstructs.aws.compute.S3CodeV2", version: "0.1.1" };
227
+ S3CodeV2[_c] = { fqn: "terraconstructs.aws.compute.S3CodeV2", version: "0.1.2" };
225
228
  /**
226
229
  * Lambda code from an inline string.
227
230
  */
@@ -235,15 +238,51 @@ class InlineCode extends Code {
235
238
  throw new Error("Lambda inline code cannot be empty");
236
239
  }
237
240
  }
238
- bind(_scope) {
241
+ bind(scope) {
242
+ this.ensureDataArchive(scope);
239
243
  return {
240
- inlineCode: this.code,
244
+ inlineCode: this.dataArchive.outputPath,
245
+ sourceCodeHash: this.dataArchive.outputBase64Sha256,
241
246
  };
242
247
  }
248
+ /**
249
+ * Ugly hack to support inline code with Terraform.
250
+ *
251
+ * https://github.com/hashicorp/terraform-provider-aws/issues/9774#issuecomment-669356786
252
+ * @param scope
253
+ * @returns
254
+ */
255
+ ensureDataArchive(scope) {
256
+ if (this.dataArchive) {
257
+ return;
258
+ }
259
+ // get the provider singleton
260
+ const provider = aws_stack_1.AwsStack.ofAwsConstruct(scope).archiveProvider;
261
+ // ensure the code is hashed for consistency
262
+ const id = aws_stack_1.AwsStack.ofAwsConstruct(scope).uniqueResourceName(new cdktf.TerraformElement(scope, (0, helpers_internal_1.md5hash)(this.code)), {
263
+ maxLength: 64,
264
+ allowedSpecialCharacters: "-_",
265
+ });
266
+ // const id = md5hash(this.code);
267
+ const existing = scope.node.tryFindChild(id);
268
+ if (existing) {
269
+ this.dataArchive = existing;
270
+ }
271
+ else {
272
+ this.dataArchive = new provider_archive_1.dataArchiveFile.DataArchiveFile(scope, id, {
273
+ outputPath: (0, path_1.join)(cdktf.Token.asString(cdktf.ref("path.root")), ".archive_files", `${id}.zip`),
274
+ type: "zip",
275
+ sourceContent: this.code,
276
+ // TODO: what is filename?
277
+ sourceContentFilename: "index",
278
+ provider,
279
+ });
280
+ }
281
+ }
243
282
  }
244
283
  exports.InlineCode = InlineCode;
245
284
  _d = JSII_RTTI_SYMBOL_1;
246
- InlineCode[_d] = { fqn: "terraconstructs.aws.compute.InlineCode", version: "0.1.1" };
285
+ InlineCode[_d] = { fqn: "terraconstructs.aws.compute.InlineCode", version: "0.1.2" };
247
286
  /**
248
287
  * Lambda code from a local directory.
249
288
  */
@@ -286,7 +325,7 @@ class AssetCode extends Code {
286
325
  }
287
326
  exports.AssetCode = AssetCode;
288
327
  _e = JSII_RTTI_SYMBOL_1;
289
- AssetCode[_e] = { fqn: "terraconstructs.aws.compute.AssetCode", version: "0.1.1" };
328
+ AssetCode[_e] = { fqn: "terraconstructs.aws.compute.AssetCode", version: "0.1.2" };
290
329
  /**
291
330
  * Lambda code defined using 2 Terraform variables.
292
331
  * Useful when you don't have access to the code of your Lambda from your CDK code, so you can't use Assets,
@@ -358,7 +397,7 @@ class TerraformVariablesCode extends Code {
358
397
  }
359
398
  exports.TerraformVariablesCode = TerraformVariablesCode;
360
399
  _f = JSII_RTTI_SYMBOL_1;
361
- TerraformVariablesCode[_f] = { fqn: "terraconstructs.aws.compute.TerraformVariablesCode", version: "0.1.1" };
400
+ TerraformVariablesCode[_f] = { fqn: "terraconstructs.aws.compute.TerraformVariablesCode", version: "0.1.2" };
362
401
  /**
363
402
  * Represents a Docker image in ECR that can be bound as Lambda Code.
364
403
  */
@@ -383,7 +422,7 @@ class EcrImageCode extends Code {
383
422
  }
384
423
  exports.EcrImageCode = EcrImageCode;
385
424
  _g = JSII_RTTI_SYMBOL_1;
386
- EcrImageCode[_g] = { fqn: "terraconstructs.aws.compute.EcrImageCode", version: "0.1.1" };
425
+ EcrImageCode[_g] = { fqn: "terraconstructs.aws.compute.EcrImageCode", version: "0.1.2" };
387
426
  /**
388
427
  * Represents an ECR image that will be constructed from the specified asset and can be bound as Lambda code.
389
428
  */
@@ -420,5 +459,5 @@ class AssetImageCode extends Code {
420
459
  }
421
460
  exports.AssetImageCode = AssetImageCode;
422
461
  _h = JSII_RTTI_SYMBOL_1;
423
- AssetImageCode[_h] = { fqn: "terraconstructs.aws.compute.AssetImageCode", version: "0.1.1" };
424
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQTBDO0FBQzFDLCtCQUErQjtBQUUvQiw2Q0FBaUU7QUFDakUsNENBQXdDO0FBRXhDLDhCQUE4QjtBQUU5QixvREFBb0Q7QUFDcEQsNERBQTREO0FBQzVELGtEQUFrRDtBQUNsRCxzQ0FBc0M7QUFDdEMsK0NBQStDO0FBQy9DLDhDQUE4QztBQUM5QyxXQUFXO0FBQ1gsNkJBQTZCO0FBQzdCLHFCQUFxQjtBQUNyQixrQ0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxNQUFzQixJQUFJO0lBQ3hCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FDdEIsTUFBdUIsRUFDdkIsR0FBVyxFQUNYLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLE1BQXVCLEVBQ3ZCLEdBQVcsRUFDWCxPQUF1QjtRQUV2QixPQUFPLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLE1BQXVCLEVBQ3ZCLEdBQVcsRUFDWCxhQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLElB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Q0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQ3RFLENBQUM7WUFDRCw2QkFBNkI7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYixtREFBbUQsb0JBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsS0FBSztnQkFDbEcsNkNBQTZDLENBRWhELENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTztZQUNMLEtBQUssRUFBRTtnQkFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO2dCQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2dCQUNqQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO2dCQUNuQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjthQUM5QztTQUNGLENBQUM7SUFDSixDQUFDOztBQXhDSCx3Q0F5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzcGF3blN5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRG9ja2VySW1hZ2UsIERvY2tlckJ1aWxkT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9idW5kbGluZ1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBJS2V5IH0gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi9zdG9yYWdlXCI7XG4vLyBpbXBvcnQgeyBJQXdzQ29uc3RydWN0IH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCAqIGFzIGVjcl9hc3NldHMgZnJvbSBcIi4uL3N0b3JhZ2UvYXNzZXRzL2ltYWdlLWFzc2V0XCI7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSBcIi4uL3N0b3JhZ2UvYXNzZXRzL3MzXCI7XG4vLyBUT0RPOiBBZG9wdCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzM4Mi9cbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMwNDVcbi8vIGltcG9ydCB7XG4vLyAgIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuLy8gICBWYWxpZGF0aW9uRXJyb3IsXG4vLyB9IGZyb20gXCIuLi8uLi9jb3JlL2xpYi9lcnJvcnNcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBMYW1iZGEgSGFuZGxlciBDb2RlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29kZSB7XG4gIC8qKlxuICAgKiBMYW1iZGEgaGFuZGxlciBjb2RlIGFzIGFuIFMzIG9iamVjdC5cbiAgICogQHBhcmFtIGJ1Y2tldCBUaGUgUzMgYnVja2V0XG4gICAqIEBwYXJhbSBrZXkgVGhlIG9iamVjdCBrZXlcbiAgICogQHBhcmFtIG9iamVjdFZlcnNpb24gT3B0aW9uYWwgUzMgb2JqZWN0IHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldChcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvYmplY3RWZXJzaW9uPzogc3RyaW5nLFxuICApOiBTM0NvZGUge1xuICAgIHJldHVybiBuZXcgUzNDb2RlKGJ1Y2tldCwga2V5LCBvYmplY3RWZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMYW1iZGEgaGFuZGxlciBjb2RlIGFzIGFuIFMzIG9iamVjdC5cbiAgICogQHBhcmFtIGJ1Y2tldCBUaGUgUzMgYnVja2V0XG4gICAqIEBwYXJhbSBrZXkgVGhlIG9iamVjdCBrZXlcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3Igc2V0dGluZyB0aGUgY29kZSwgY3VycmVudCBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHNldCBoZXJlIGFyZVxuICAgKiAxLiBgb2JqZWN0VmVyc2lvbmAgdG8gc2V0IFMzIG9iamVjdCB2ZXJzaW9uXG4gICAqIDIuIGBzb3VyY2VLTVNLZXlgIHRvIHNldCBLTVMgS2V5IGZvciBlbmNyeXB0aW9uIG9mIGNvZGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldFYyKFxuICAgIGJ1Y2tldDogc3RvcmFnZS5JQnVja2V0LFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBCdWNrZXRPcHRpb25zLFxuICApOiBTM0NvZGVWMiB7XG4gICAgcmV0dXJuIG5ldyBTM0NvZGVWMihidWNrZXQsIGtleSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGZyb21CdWNrZXRgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJ1Y2tldChcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvYmplY3RWZXJzaW9uPzogc3RyaW5nLFxuICApOiBTM0NvZGUge1xuICAgIHJldHVybiB0aGlzLmZyb21CdWNrZXQoYnVja2V0LCBrZXksIG9iamVjdFZlcnNpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIElubGluZSBjb2RlIGZvciBMYW1iZGEgaGFuZGxlclxuICAgKiBAcmV0dXJucyBgTGFtYmRhSW5saW5lQ29kZWAgd2l0aCBpbmxpbmUgY29kZS5cbiAgICogQHBhcmFtIGNvZGUgVGhlIGFjdHVhbCBoYW5kbGVyIGNvZGUgKHRoZSByZXN1bHRpbmcgemlwIGZpbGUgY2Fubm90IGV4Y2VlZCA0TUIpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoY29kZTogc3RyaW5nKTogSW5saW5lQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVDb2RlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBmcm9tSW5saW5lYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbmxpbmUoY29kZTogc3RyaW5nKTogSW5saW5lQ29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUlubGluZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgZnVuY3Rpb24gY29kZSBmcm9tIGEgbG9jYWwgZGlzayBwYXRoLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBFaXRoZXIgYSBkaXJlY3Rvcnkgd2l0aCB0aGUgTGFtYmRhIGNvZGUgYnVuZGxlIG9yIGEgLnppcCBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMsXG4gICk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBhIGNvbW1hbmQgdG8gYnVpbGQgdGhlIGNvZGUgYXNzZXQgdGhhdCB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBwYXJhbSBvdXRwdXQgV2hlcmUgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCB3aWxsIGJlIGRpcmVjdGVkLCBlaXRoZXIgYSBkaXJlY3Rvcnkgb3IgYSAuemlwIGZpbGUgd2l0aCB0aGUgb3V0cHV0IExhbWJkYSBjb2RlIGJ1bmRsZVxuICAgKiAqIEZvciBleGFtcGxlLCBpZiB5b3UgdXNlIHRoZSBjb21tYW5kIHRvIHJ1biBhIGJ1aWxkIHNjcmlwdCAoZS5nLiwgWyAnbm9kZScsICdidW5kbGVfY29kZS5qcycgXSksIGFuZCB0aGUgYnVpbGQgc2NyaXB0IGdlbmVyYXRlcyBhIGRpcmVjdG9yeSBgL215L2xhbWJkYS9jb2RlYFxuICAgKiBjb250YWluaW5nIGNvZGUgdGhhdCBzaG91bGQgYmUgcmFuIGluIGEgTGFtYmRhIGZ1bmN0aW9uLCB0aGVuIG91dHB1dCBzaG91bGQgYmUgc2V0IHRvIGAvbXkvbGFtYmRhL2NvZGVgXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHdoaWNoIHdpbGwgYmUgZXhlY3V0ZWQgdG8gZ2VuZXJhdGUgdGhlIG91dHB1dCwgZm9yIGV4YW1wbGUsIFsgJ25vZGUnLCAnYnVuZGxlX2NvZGUuanMnIF1cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgdGhlIGN1c3RvbSBjb21tYW5kLCBhbmQgb3RoZXIgYXNzZXQgb3B0aW9ucyAtLSBidXQgYnVuZGxpbmcgb3B0aW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DdXN0b21Db21tYW5kKFxuICAgIG91dHB1dDogc3RyaW5nLFxuICAgIGNvbW1hbmQ6IHN0cmluZ1tdLFxuICAgIG9wdGlvbnM/OiBDdXN0b21Db21tYW5kT3B0aW9ucyxcbiAgKTogQXNzZXRDb2RlIHtcbiAgICBpZiAoY29tbWFuZC5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ2NvbW1hbmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4gRm9yIGV4YW1wbGUsIFtcIm5vZGVcIiwgXCJidWlsZEZpbGUuanNcIl0uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgY21kID0gY29tbWFuZFswXTtcbiAgICBjb25zdCBjb21tYW5kQXJndW1lbnRzID0gY29tbWFuZC5zcGxpY2UoMSk7XG5cbiAgICBjb25zdCBwcm9jID1cbiAgICAgIG9wdGlvbnM/LmNvbW1hbmRPcHRpb25zID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBzcGF3blN5bmMoY21kLCBjb21tYW5kQXJndW1lbnRzKSAvLyB1c2UgdGhlIGRlZmF1bHQgc3Bhd25TeW5jT3B0aW9uc1xuICAgICAgICA6IHNwYXduU3luYyhjbWQsIGNvbW1hbmRBcmd1bWVudHMsIG9wdGlvbnMuY29tbWFuZE9wdGlvbnMpO1xuXG4gICAgaWYgKHByb2MuZXJyb3IpIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGV4ZWN1dGUgY3VzdG9tIGNvbW1hbmQ6ICR7cHJvYy5lcnJvcn1gKTtcbiAgICB9XG4gICAgaWYgKHByb2Muc3RhdHVzICE9PSAwKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke2NvbW1hbmQuam9pbihcIiBcIil9IGV4aXRlZCB3aXRoIHN0YXR1czogJHtwcm9jLnN0YXR1c31cXG5cXG5zdGRvdXQ6ICR7cHJvYy5zdGRvdXQ/LnRvU3RyaW5nKCkudHJpbSgpfVxcblxcbnN0ZGVycjogJHtwcm9jLnN0ZGVycj8udG9TdHJpbmcoKS50cmltKCl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUob3V0cHV0LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgZnVuY3Rpb24gY29kZSBmcm9tIGFuIGFzc2V0IGNyZWF0ZWQgYnkgYSBEb2NrZXIgYnVpbGQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhc3NldCBpcyBleHBlY3RlZCB0byBiZSBsb2NhdGVkIGF0IGAvYXNzZXRgIGluIHRoZVxuICAgKiBpbWFnZS5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBEb2NrZXIgZmlsZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBEb2NrZXIgYnVpbGQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9ja2VyQnVpbGQoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IERvY2tlckJ1aWxkQXNzZXRPcHRpb25zID0ge30sXG4gICk6IEFzc2V0Q29kZSB7XG4gICAgbGV0IGltYWdlUGF0aCA9IG9wdGlvbnMuaW1hZ2VQYXRoID8/IFwiL2Fzc2V0Ly5cIjtcblxuICAgIC8vIGVuc3VyZSBpbWFnZVBhdGggZW5kcyB3aXRoIC8uIHRvIGNvcHkgdGhlICoqY29udGVudCoqIGF0IHRoaXMgcGF0aFxuICAgIGlmIChpbWFnZVBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICBpbWFnZVBhdGggPSBgJHtpbWFnZVBhdGh9LmA7XG4gICAgfSBlbHNlIGlmICghaW1hZ2VQYXRoLmVuZHNXaXRoKFwiLy5cIikpIHtcbiAgICAgIGltYWdlUGF0aCA9IGAke2ltYWdlUGF0aH0vLmA7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRQYXRoID0gRG9ja2VySW1hZ2UuZnJvbUJ1aWxkKHBhdGgsIG9wdGlvbnMpLmNwKFxuICAgICAgaW1hZ2VQYXRoLFxuICAgICAgb3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFzc2V0Q29kZShhc3NldFBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBmcm9tQXNzZXRgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzc2V0KHBhdGg6IHN0cmluZyk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUFzc2V0KHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGFtYmRhIHNvdXJjZSBkZWZpbmVkIHVzaW5nIFRlcnJhZm9ybSB2YXJpYWJsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIGBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlYFxuICAgKiBAcGFyYW0gcHJvcHMgb3B0aW9uYWwgY29uc3RydWN0aW9uIHByb3BlcnRpZXMgb2YgYFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UZXJyYWZvcm1WYXJpYWJsZXMoXG4gICAgcHJvcHM/OiBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlUHJvcHMsXG4gICk6IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUge1xuICAgIHJldHVybiBuZXcgVGVycmFmb3JtVmFyaWFibGVzQ29kZShwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGZyb21DZm5QYXJhbWV0ZXJzYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0ZXJyYWZvcm1WYXJpYWJsZXMoXG4gICAgcHJvcHM/OiBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlUHJvcHMsXG4gICk6IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUge1xuICAgIHJldHVybiB0aGlzLmZyb21UZXJyYWZvcm1WYXJpYWJsZXMocHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBhbiBleGlzdGluZyBFQ1IgaW1hZ2UgYXMgdGhlIExhbWJkYSBjb2RlLlxuICAgKiBAcGFyYW0gcmVwb3NpdG9yeSB0aGUgRUNSIHJlcG9zaXRvcnkgdGhhdCB0aGUgaW1hZ2UgaXMgaW5cbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgdG8gZnVydGhlciBjb25maWd1cmUgdGhlIHNlbGVjdGVkIGltYWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FY3JJbWFnZShcbiAgICByZXBvc2l0b3J5OiBzdG9yYWdlLklSZXBvc2l0b3J5LFxuICAgIHByb3BzPzogRWNySW1hZ2VDb2RlUHJvcHMsXG4gICkge1xuICAgIHJldHVybiBuZXcgRWNySW1hZ2VDb2RlKHJlcG9zaXRvcnksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gRUNSIGltYWdlIGZyb20gdGhlIHNwZWNpZmllZCBhc3NldCBhbmQgYmluZCBpdCBhcyB0aGUgTGFtYmRhIGNvZGUuXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIHRoZSBhc3NldCBtdXN0IGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIHByb3BzIHByb3BlcnRpZXMgdG8gZnVydGhlciBjb25maWd1cmUgdGhlIHNlbGVjdGVkIGltYWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldEltYWdlKFxuICAgIGRpcmVjdG9yeTogc3RyaW5nLFxuICAgIHByb3BzOiBBc3NldEltYWdlQ29kZVByb3BzID0ge30sXG4gICkge1xuICAgIHJldHVybiBuZXcgQXNzZXRJbWFnZUNvZGUoZGlyZWN0b3J5LCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgQ29kZSBpcyBpbmxpbmUgY29kZSBvciBub3QuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHRoaXMgdmFsdWUgaXMgaWdub3JlZCBzaW5jZSBpbmxpbmUgaXMgbm93IGRldGVybWluZWQgYmFzZWQgb24gdGhlXG4gICAqIHRoZSBgaW5saW5lQ29kZWAgZmllbGQgb2YgYENvZGVDb25maWdgIHJldHVybmVkIGZyb20gYGJpbmQoKWAuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgaXNJbmxpbmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBsYW1iZGEgb3IgbGF5ZXIgaXMgaW5pdGlhbGl6ZWQgdG8gYWxsb3cgdGhpcyBvYmplY3QgdG8gYmluZFxuICAgKiB0byB0aGUgc3RhY2ssIGFkZCByZXNvdXJjZXMgYW5kIGhhdmUgZnVuLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGJpbmRpbmcgc2NvcGUuIERvbid0IGJlIHNtYXJ0IGFib3V0IHRyeWluZyB0byBkb3duLWNhc3Qgb3JcbiAgICogYXNzdW1lIGl0J3MgaW5pdGlhbGl6ZWQuIFlvdSBtYXkganVzdCB1c2UgaXQgYXMgYSBjb25zdHJ1Y3Qgc2NvcGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZztcblxuICAvLyBUT0RPOiBwZW5kaW5nIGN1c3RvbSBDTEkgdG8gbW9jayBMYW1iZGEgZnVuY3Rpb24gaW52b2NhdGlvbnMgbG9jYWxseVxuICAvLyAvKipcbiAgLy8gICogQ2FsbGVkIGFmdGVyIHRoZSB0ZXJyYWZvcm0gcHJvdmlkZXIgZnVuY3Rpb24gcmVzb3VyY2UgaGFzIGJlZW4gY3JlYXRlZCB0byBhbGxvdyB0aGUgY29kZVxuICAvLyAgKiBjbGFzcyB0byBiaW5kIHRvIGl0LiBTcGVjaWZpY2FsbHkgaXQncyByZXF1aXJlZCB0byBhbGxvdyBhc3NldHMgdG8gYWRkXG4gIC8vICAqIG1ldGFkYXRhIGZvciB0b29saW5nIGxpa2UgU0FNIENMSSB0byBiZSBhYmxlIHRvIGZpbmQgdGhlaXIgb3JpZ2lucy5cbiAgLy8gICovXG4gIC8vIHB1YmxpYyBiaW5kVG9SZXNvdXJjZShcbiAgLy8gICBfcmVzb3VyY2U6IElBd3NDb25zdHJ1Y3QsXG4gIC8vICAgX29wdGlvbnM/OiBSZXNvdXJjZUJpbmRPcHRpb25zLFxuICAvLyApIHtcbiAgLy8gICByZXR1cm47XG4gIC8vIH1cbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYmluZGluZyBgQ29kZWAgaW50byBhIGBGdW5jdGlvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGNvZGUgaW4gUzMgKG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBpbmxpbmVDb2RlYCBhbmQgYGltYWdlYCkuXG4gICAqIEBkZWZhdWx0IC0gY29kZSBpcyBub3QgYW4gczMgbG9jYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHMzTG9jYXRpb24/OiBzdG9yYWdlLlMzTG9jYXRpb247XG5cbiAgLyoqXG4gICAqIElubGluZSBjb2RlIChtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgczNMb2NhdGlvbmAgYW5kIGBpbWFnZWApLlxuICAgKiBAZGVmYXVsdCAtIGNvZGUgaXMgbm90IGlubGluZSBjb2RlXG4gICAqL1xuICByZWFkb25seSBpbmxpbmVDb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgaW1hZ2UgY29uZmlndXJhdGlvbiAobXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYHMzTG9jYXRpb25gIGFuZCBgaW5saW5lQ29kZWApLlxuICAgKiBAZGVmYXVsdCAtIGNvZGUgaXMgbm90IGFuIEVDUiBjb250YWluZXIgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlPzogQ29kZUltYWdlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgaGFuZGxlciBjb2RlLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMgbWFuYWdlZCBrZXlzKFNTRS1TMykga2V5IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUtNU0tleUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBoYXNoIG9mIHRoZSBzb3VyY2UgY29kZSwgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGNvZGUgaGFzIGNoYW5nZWQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VDb2RlSGFzaD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgdGhlIGJpbmQgd2hlbiBhbiBFQ1IgaW1hZ2UgaXMgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlSW1hZ2VDb25maWcge1xuICAvKipcbiAgICogVVJJIHRvIHRoZSBEb2NrZXIgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBDTUQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogVGhpcyBuZWVkcyB0byBiZSBpbiB0aGUgJ2V4ZWMgZm9ybScsIHZpei4sIGBbICdleGVjdXRhYmxlJywgJ3BhcmFtMScsICdwYXJhbTInIF1gLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jY21kXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBDTUQgc3BlY2lmaWVkIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNtZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBFTlRSWVBPSU5UIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEFuIEVOVFJZUE9JTlQgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgYSBjb250YWluZXIgdGhhdCB3aWxsIHJ1biBhcyBhbiBleGVjdXRhYmxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNlbnRyeXBvaW50XG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBFTlRSWVBPSU5UIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgV09SS0RJUiBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBBIFdPUktESVIgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IHRoZSBjb250YWluZXIgd2lsbCB1c2UuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyN3b3JrZGlyXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBXT1JLRElSIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmdEaXJlY3Rvcnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGFtYmRhIGNvZGUgZnJvbSBhbiBTMyBhcmNoaXZlLlxuICovXG5leHBvcnQgY2xhc3MgUzNDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IGZhbHNlO1xuICBwcml2YXRlIGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBwcml2YXRlIGtleTogc3RyaW5nLFxuICAgIHByaXZhdGUgb2JqZWN0VmVyc2lvbj86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmICghYnVja2V0LmJ1Y2tldE5hbWUpIHtcbiAgICAgIC8vIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYnVja2V0TmFtZSBpcyB1bmRlZmluZWQgZm9yIHRoZSBwcm92aWRlZCBidWNrZXRcIixcbiAgICAgICAgLy8gYnVja2V0LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1Y2tldE5hbWUgPSBidWNrZXQuYnVja2V0TmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMua2V5LFxuICAgICAgICBvYmplY3RWZXJzaW9uOiB0aGlzLm9iamVjdFZlcnNpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBMYW1iZGEgY29kZSBmcm9tIGFuIFMzIGFyY2hpdmUuIFdpdGggb3B0aW9uIHRvIHNldCBLTVNLZXkgZm9yIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0NvZGVWMiBleHRlbmRzIENvZGUge1xuICBwdWJsaWMgcmVhZG9ubHkgaXNJbmxpbmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBidWNrZXROYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYnVja2V0OiBzdG9yYWdlLklCdWNrZXQsXG4gICAgcHJpdmF0ZSBrZXk6IHN0cmluZyxcbiAgICBwcml2YXRlIG9wdGlvbnM/OiBCdWNrZXRPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghYnVja2V0LmJ1Y2tldE5hbWUpIHtcbiAgICAgIC8vIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYnVja2V0TmFtZSBpcyB1bmRlZmluZWQgZm9yIHRoZSBwcm92aWRlZCBidWNrZXRcIixcbiAgICAgICAgLy8gYnVja2V0LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1Y2tldE5hbWUgPSBidWNrZXQuYnVja2V0TmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMua2V5LFxuICAgICAgICBvYmplY3RWZXJzaW9uOiB0aGlzLm9wdGlvbnM/Lm9iamVjdFZlcnNpb24sXG4gICAgICB9LFxuICAgICAgc291cmNlS01TS2V5QXJuOiB0aGlzLm9wdGlvbnM/LnNvdXJjZUtNU0tleT8ua2V5QXJuLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBMYW1iZGEgY29kZSBmcm9tIGFuIGlubGluZSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKGNvZGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMYW1iZGEgaW5saW5lIGNvZGUgY2Fubm90IGJlIGVtcHR5XCIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlubGluZUNvZGU6IHRoaXMuY29kZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogTGFtYmRhIGNvZGUgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0Q29kZSBleHRlbmRzIENvZGUge1xuICBwdWJsaWMgcmVhZG9ubHkgaXNJbmxpbmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBhc3NldD86IHMzX2Fzc2V0cy5Bc3NldDtcblxuICAvKipcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIGFzc2V0IGZpbGUgb3IgZGlyZWN0b3J5LlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldENvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IHMzX2Fzc2V0cy5Bc3NldChzY29wZSwgXCJDb2RlXCIsIHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICBkZXBsb3lUaW1lOiB0cnVlLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcy5hc3NldCkgIT09IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKVxuICAgICkge1xuICAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFzc2V0IGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGFub3RoZXIgc3RhY2sgJyR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcy5hc3NldCkuZ3JpZFVVSUR9Jy4gYCArXG4gICAgICAgICAgXCJDcmVhdGUgYSBuZXcgQ29kZSBpbnN0YW5jZSBmb3IgZXZlcnkgc3RhY2suXCIsXG4gICAgICAgIC8vIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXNzZXQuaXNaaXBBcmNoaXZlKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXNzZXQgbXVzdCBiZSBhIC56aXAgZmlsZSBvciBhIGRpcmVjdG9yeSAoJHt0aGlzLnBhdGh9KWAsXG4gICAgICAgIC8vIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmFzc2V0LnMzQnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLmFzc2V0LnMzT2JqZWN0S2V5LFxuICAgICAgfSxcbiAgICAgIHNvdXJjZUtNU0tleUFybjogdGhpcy5vcHRpb25zLnNvdXJjZUtNU0tleT8ua2V5QXJuLFxuICAgIH07XG4gIH1cblxuICAvLyBwdWJsaWMgYmluZFRvUmVzb3VyY2UoXG4gIC8vICAgcmVzb3VyY2U6IElBd3NDb25zdHJ1Y3QsXG4gIC8vICAgb3B0aW9uczogUmVzb3VyY2VCaW5kT3B0aW9ucyA9IHt9LFxuICAvLyApIHtcbiAgLy8gICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgLy8gICAgIC8vIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gIC8vICAgICAgIFwiYmluZFRvUmVzb3VyY2UoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBiaW5kKClcIixcbiAgLy8gICAgICAgLy8gcmVzb3VyY2UsXG4gIC8vICAgICApO1xuICAvLyAgIH1cblxuICAvLyAgIGNvbnN0IHJlc291cmNlUHJvcGVydHkgPSBvcHRpb25zLnJlc291cmNlUHJvcGVydHkgfHwgXCJDb2RlXCI7XG4gIC8vICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNDMyXG4gIC8vICAgdGhpcy5hc3NldC5hZGRSZXNvdXJjZU1ldGFkYXRhKHJlc291cmNlLCByZXNvdXJjZVByb3BlcnR5KTtcbiAgLy8gfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQmluZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGFubm90YXRlIHdpdGggYXNzZXQgbWV0YWRhdGEuXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNDMyXG4gICAqIEBkZWZhdWx0IENvZGVcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlUHJvcGVydHk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlUHJvcHMge1xuICAvKipcbiAgICogVGhlIFRlcnJhZm9ybSB2YXJpYWJsZSB0aGF0IHJlcHJlc2VudHMgdGhlIG5hbWUgb2YgdGhlIFMzIEJ1Y2tldFxuICAgKiB3aGVyZSB0aGUgTGFtYmRhIGNvZGUgd2lsbCBiZSBsb2NhdGVkIGluLlxuICAgKiBNdXN0IGJlIG9mIHR5cGUgJ1N0cmluZycuXG4gICAqXG4gICAqIEBkZWZhdWx0IGEgbmV3IHZhcmlhYmxlIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZVZhcj86IGNka3RmLlRlcnJhZm9ybVZhcmlhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgVGVycmFmb3JtIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyB0aGUgcGF0aCBpbnNpZGUgdGhlIFMzIEJ1Y2tldFxuICAgKiB3aGVyZSB0aGUgTGFtYmRhIGNvZGUgd2lsbCBiZSBsb2NhdGVkIGF0LlxuICAgKiBNdXN0IGJlIG9mIHR5cGUgJ1N0cmluZycuXG4gICAqXG4gICAqIEBkZWZhdWx0IGEgbmV3IHZhcmlhYmxlIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5VmFyPzogY2RrdGYuVGVycmFmb3JtVmFyaWFibGU7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgaGFuZGxlciBjb2RlLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMgbWFuYWdlZCBrZXlzKFNTRS1TMykga2V5IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUtNU0tleT86IElLZXk7XG59XG5cbi8qKlxuICogTGFtYmRhIGNvZGUgZGVmaW5lZCB1c2luZyAyIFRlcnJhZm9ybSB2YXJpYWJsZXMuXG4gKiBVc2VmdWwgd2hlbiB5b3UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIGNvZGUgb2YgeW91ciBMYW1iZGEgZnJvbSB5b3VyIENESyBjb2RlLCBzbyB5b3UgY2FuJ3QgdXNlIEFzc2V0cyxcbiAqIGFuZCB5b3Ugd2FudCB0byBkZXBsb3kgdGhlIExhbWJkYSBpbiBhIHBpcGVsaW5lLCBkdXJpbmcgVGVycmFmb3JtIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gZmFsc2U7XG4gIHByaXZhdGUgX2J1Y2tldE5hbWVWYXI/OiBjZGt0Zi5UZXJyYWZvcm1WYXJpYWJsZTtcbiAgcHJpdmF0ZSBfb2JqZWN0S2V5VmFyPzogY2RrdGYuVGVycmFmb3JtVmFyaWFibGU7XG4gIHByaXZhdGUgX3NvdXJjZUtNU0tleT86IElLZXk7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX2J1Y2tldE5hbWVWYXIgPSBwcm9wcy5idWNrZXROYW1lVmFyO1xuICAgIHRoaXMuX29iamVjdEtleVZhciA9IHByb3BzLm9iamVjdEtleVZhcjtcbiAgICB0aGlzLl9zb3VyY2VLTVNLZXkgPSBwcm9wcy5zb3VyY2VLTVNLZXk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgaWYgKCF0aGlzLl9idWNrZXROYW1lVmFyKSB7XG4gICAgICB0aGlzLl9idWNrZXROYW1lVmFyID0gbmV3IGNka3RmLlRlcnJhZm9ybVZhcmlhYmxlKFxuICAgICAgICBzY29wZSxcbiAgICAgICAgXCJMYW1iZGFTb3VyY2VCdWNrZXROYW1lUGFyYW1ldGVyXCIsXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcIlN0cmluZ1wiLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX29iamVjdEtleVZhcikge1xuICAgICAgdGhpcy5fb2JqZWN0S2V5VmFyID0gbmV3IGNka3RmLlRlcnJhZm9ybVZhcmlhYmxlKFxuICAgICAgICBzY29wZSxcbiAgICAgICAgXCJMYW1iZGFTb3VyY2VPYmplY3RLZXlQYXJhbWV0ZXJcIixcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiU3RyaW5nXCIsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuX2J1Y2tldE5hbWVWYXIuc3RyaW5nVmFsdWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5fb2JqZWN0S2V5VmFyLnN0cmluZ1ZhbHVlLFxuICAgICAgfSxcbiAgICAgIHNvdXJjZUtNU0tleUFybjogdGhpcy5fc291cmNlS01TS2V5Py5rZXlBcm4sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBwYXJhbWV0ZXJzIG1hcCBmcm9tIHRoaXMgaW5zdGFuY2UncyBUZXJyYWZvcm0gdmFyaWFibGVzLlxuICAgKlxuICAgKiBJdCByZXR1cm5zIGEgbWFwIHdpdGggMiBrZXlzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtZXRlcnMgZGVmaW5lZCBpbiB0aGlzIExhbWJkYSBjb2RlLFxuICAgKiBhbmQgYXMgdmFsdWVzIGl0IGNvbnRhaW5zIHRoZSBhcHByb3ByaWF0ZSBleHByZXNzaW9ucyBwb2ludGluZyBhdCB0aGUgcHJvdmlkZWQgUzMgbG9jYXRpb25cbiAgICogKG1vc3QgbGlrZWx5LCBvYnRhaW5lZCBmcm9tIGEgQ29kZVBpcGVsaW5lIEFydGlmYWN0IGJ5IGNhbGxpbmcgdGhlIGBhcnRpZmFjdC5zM0xvY2F0aW9uYCBtZXRob2QpLlxuICAgKiBUaGUgcmVzdWx0IHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgQ2xvdWRGb3JtYXRpb24gQWN0aW9uXG4gICAqIHRoYXQgaXMgZGVwbG95aW5nIHRoZSBTdGFjayB0aGF0IHRoZSBMYW1iZGEgd2l0aCB0aGlzIGNvZGUgaXMgcGFydCBvZixcbiAgICogaW4gdGhlIGBwYXJhbWV0ZXJPdmVycmlkZXNgIHByb3BlcnR5LlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYXRpb24gdGhlIGxvY2F0aW9uIG9mIHRoZSBvYmplY3QgaW4gUzMgdGhhdCByZXByZXNlbnRzIHRoZSBMYW1iZGEgY29kZVxuICAgKi9cbiAgcHVibGljIGFzc2lnbihsb2NhdGlvbjogc3RvcmFnZS5TM0xvY2F0aW9uKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IHJldDogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICByZXRbdGhpcy5idWNrZXROYW1lVmFyXSA9IGxvY2F0aW9uLmJ1Y2tldE5hbWU7XG4gICAgcmV0W3RoaXMub2JqZWN0S2V5VmFyXSA9IGxvY2F0aW9uLm9iamVjdEtleTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGdldCBidWNrZXROYW1lVmFyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX2J1Y2tldE5hbWVWYXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9idWNrZXROYW1lVmFyLmZxbjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlBhc3MgVGVycmFmb3JtVmFyaWFibGVzQ29kZSB0byBhIExhbWJkYSBGdW5jdGlvbiBiZWZvcmUgYWNjZXNzaW5nIHRoZSBidWNrZXROYW1lVmFyIHByb3BlcnR5XCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgb2JqZWN0S2V5VmFyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX29iamVjdEtleVZhcikge1xuICAgICAgcmV0dXJuIHRoaXMuX29iamVjdEtleVZhci5mcW47XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJQYXNzIFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUgdG8gYSBMYW1iZGEgRnVuY3Rpb24gYmVmb3JlIGFjY2Vzc2luZyB0aGUgb2JqZWN0S2V5VmFyIHByb3BlcnR5XCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5pdGlhbGl6ZSBhIG5ldyBFY3JJbWFnZUNvZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3JJbWFnZUNvZGVQcm9wcyB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBDTUQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogVGhpcyBuZWVkcyB0byBiZSBpbiB0aGUgJ2V4ZWMgZm9ybScsIHZpei4sIGBbICdleGVjdXRhYmxlJywgJ3BhcmFtMScsICdwYXJhbTInIF1gLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jY21kXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBDTUQgc3BlY2lmaWVkIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNtZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBFTlRSWVBPSU5UIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEFuIEVOVFJZUE9JTlQgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgYSBjb250YWluZXIgdGhhdCB3aWxsIHJ1biBhcyBhbiBleGVjdXRhYmxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNlbnRyeXBvaW50XG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBFTlRSWVBPSU5UIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgV09SS0RJUiBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBBIFdPUktESVIgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IHRoZSBjb250YWluZXIgd2lsbCB1c2UuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyN3b3JrZGlyXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBXT1JLRElSIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmdEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB0YWcgdG8gdXNlIHdoZW4gcHVsbGluZyB0aGUgaW1hZ2UgZnJvbSBFQ1IuXG4gICAqIEBkZWZhdWx0ICdsYXRlc3QnXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgdGFnT3JEaWdlc3RgXG4gICAqL1xuICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB0YWcgb3IgZGlnZXN0IHRvIHVzZSB3aGVuIHB1bGxpbmcgdGhlIGltYWdlIGZyb20gRUNSIChkaWdlc3RzIG11c3Qgc3RhcnQgd2l0aCBgc2hhMjU2OmApLlxuICAgKiBAZGVmYXVsdCAnbGF0ZXN0J1xuICAgKi9cbiAgcmVhZG9ubHkgdGFnT3JEaWdlc3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIERvY2tlciBpbWFnZSBpbiBFQ1IgdGhhdCBjYW4gYmUgYm91bmQgYXMgTGFtYmRhIENvZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3JJbWFnZUNvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXBvc2l0b3J5OiBzdG9yYWdlLklSZXBvc2l0b3J5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEVjckltYWdlQ29kZVByb3BzID0ge30sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChfc2NvcGU6IENvbnN0cnVjdCk6IENvZGVDb25maWcge1xuICAgIHRoaXMucmVwb3NpdG9yeS5ncmFudFB1bGwobmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwibGFtYmRhLmFtYXpvbmF3cy5jb21cIikpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIGltYWdlVXJpOiB0aGlzLnJlcG9zaXRvcnkucmVwb3NpdG9yeVVyaUZvclRhZ09yRGlnZXN0KFxuICAgICAgICAgIHRoaXMucHJvcHM/LnRhZ09yRGlnZXN0ID8/IHRoaXMucHJvcHM/LnRhZyA/PyBcImxhdGVzdFwiLFxuICAgICAgICApLFxuICAgICAgICBjbWQ6IHRoaXMucHJvcHMuY21kLFxuICAgICAgICBlbnRyeXBvaW50OiB0aGlzLnByb3BzLmVudHJ5cG9pbnQsXG4gICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHRoaXMucHJvcHMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5pdGlhbGl6ZSBhIG5ldyBBc3NldEltYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRJbWFnZUNvZGVQcm9wc1xuICBleHRlbmRzIGVjcl9hc3NldHMuRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMge1xuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgQ01EIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgaW4gdGhlICdleGVjIGZvcm0nLCB2aXouLCBgWyAnZXhlY3V0YWJsZScsICdwYXJhbTEnLCAncGFyYW0yJyBdYC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2NtZFxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgQ01EIHNwZWNpZmllZCBpbiB0aGUgZG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqL1xuICByZWFkb25seSBjbWQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgRU5UUllQT0lOVCBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBBbiBFTlRSWVBPSU5UIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIGEgY29udGFpbmVyIHRoYXQgd2lsbCBydW4gYXMgYW4gZXhlY3V0YWJsZS5cbiAgICogVGhpcyBuZWVkcyB0byBiZSBpbiB0aGUgJ2V4ZWMgZm9ybScsIHZpei4sIGBbICdleGVjdXRhYmxlJywgJ3BhcmFtMScsICdwYXJhbTInIF1gLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jZW50cnlwb2ludFxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgRU5UUllQT0lOVCBpbiB0aGUgZG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIFdPUktESVIgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogQSBXT1JLRElSIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSB0aGUgY29udGFpbmVyIHdpbGwgdXNlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jd29ya2RpclxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgV09SS0RJUiBpbiB0aGUgZG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gRUNSIGltYWdlIHRoYXQgd2lsbCBiZSBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYXNzZXQgYW5kIGNhbiBiZSBib3VuZCBhcyBMYW1iZGEgY29kZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0SW1hZ2VDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGFzc2V0PzogZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXNzZXRJbWFnZUNvZGVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldEltYWdlQ29kZSBpcyB1c2VkIG11bHRpcGxlIHRpbWVzLCByZXRhaW4gb25seSB0aGUgZmlyc3QgaW5zdGFudGlhdGlvbi5cbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0KHNjb3BlLCBcIkFzc2V0SW1hZ2VcIiwge1xuICAgICAgICBkaXJlY3Rvcnk6IHRoaXMuZGlyZWN0b3J5LFxuICAgICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmFzc2V0LnJlcG9zaXRvcnkuZ3JhbnRQdWxsKFxuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJsYW1iZGEuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMuYXNzZXQpICE9PSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSlcbiAgICApIHtcbiAgICAgIC8vIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMuYXNzZXQpLmdyaWRVVUlEfScuIGAgK1xuICAgICAgICAgIFwiQ3JlYXRlIGEgbmV3IENvZGUgaW5zdGFuY2UgZm9yIGV2ZXJ5IHN0YWNrLlwiLFxuICAgICAgICAvLyBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIGltYWdlVXJpOiB0aGlzLmFzc2V0LmltYWdlVXJpLFxuICAgICAgICBlbnRyeXBvaW50OiB0aGlzLnByb3BzLmVudHJ5cG9pbnQsXG4gICAgICAgIGNtZDogdGhpcy5wcm9wcy5jbWQsXG4gICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHRoaXMucHJvcHMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vIC8vIFRPRE86IHBlbmRpbmcgY3VzdG9tIENMSSB0byBtb2NrIExhbWJkYSBmdW5jdGlvbiBpbnZvY2F0aW9ucyBsb2NhbGx5XG4gIC8vIHB1YmxpYyBiaW5kVG9SZXNvdXJjZShcbiAgLy8gICByZXNvdXJjZTogSUF3c0NvbnN0cnVjdCxcbiAgLy8gICBvcHRpb25zOiBSZXNvdXJjZUJpbmRPcHRpb25zID0ge30sXG4gIC8vICkge1xuICAvLyAgIGlmICghdGhpcy5hc3NldCkge1xuICAvLyAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgLy8gICAgIHRocm93IG5ldyBFcnJvcihcImJpbmRUb1Jlc291cmNlKCkgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgYmluZCgpXCIpOyAvLywgcmVzb3VyY2UpO1xuICAvLyAgIH1cblxuICAvLyAgIC8vIGNvbnN0IHJlc291cmNlUHJvcGVydHkgPSBfb3B0aW9ucy5yZXNvdXJjZVByb3BlcnR5IHx8IFwiQ29kZS5JbWFnZVVyaVwiO1xuXG4gIC8vICAgLy8gLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNDU5M1xuICAvLyAgIC8vIHRoaXMuYXNzZXQuYWRkUmVzb3VyY2VNZXRhZGF0YShfcmVzb3VyY2UsIHJlc291cmNlUHJvcGVydHkpO1xuICAvLyB9XG59XG5cbi8qKlxuICogT3B0aW9ucyB3aGVuIGNyZWF0aW5nIGFuIGFzc2V0IGZyb20gYSBEb2NrZXIgYnVpbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQnVpbGRBc3NldE9wdGlvbnMgZXh0ZW5kcyBEb2NrZXJCdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggaW4gdGhlIERvY2tlciBpbWFnZSB3aGVyZSB0aGUgYXNzZXQgaXMgbG9jYXRlZCBhZnRlciB0aGUgYnVpbGRcbiAgICogb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAvYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggb24gdGhlIGxvY2FsIGZpbGVzeXN0ZW0gd2hlcmUgdGhlIGFzc2V0IHdpbGwgYmUgY29waWVkXG4gICAqIHVzaW5nIGBkb2NrZXIgY3BgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gdGhlIHN5c3RlbSB0ZW1wIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBgQXNzZXRDb2RlYCB3aXRoIGEgY3VzdG9tIGNvbW1hbmQsIHN1Y2ggYXMgcnVubmluZyBhIGJ1aWxkZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Db21tYW5kT3B0aW9ucyBleHRlbmRzIHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMge1xuICAvKipcbiAgICogb3B0aW9ucyB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlIHNwYXduZWQgcHJvY2Vzcywgd2hpY2ggZGV0ZXJtaW5lIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIHNwYXduZWQgcHJvY2Vzcy5cbiAgICpcbiAgICogQGRlZmF1bHQ6IHNlZSBgY2hpbGRfcHJvY2Vzcy5TcGF3blN5bmNPcHRpb25zYCAoaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9jaGlsZF9wcm9jZXNzLmh0bWwjY2hpbGRfcHJvY2Vzc3NwYXduc3luY2NvbW1hbmQtYXJncy1vcHRpb25zKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmRPcHRpb25zPzogeyBbb3B0aW9uczogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgY29kZSB1c2luZyBidWNrZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIFMzIG9iamVjdCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBvYmplY3RWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIGhhbmRsZXIgY29kZS5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHdpdGggQW1hem9uIFMzIG1hbmFnZWQga2V5cyhTU0UtUzMpIGtleSB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VLTVNLZXk/OiBJS2V5O1xufVxuIl19
462
+ AssetImageCode[_h] = { fqn: "terraconstructs.aws.compute.AssetImageCode", version: "0.1.2" };
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQTBDO0FBQzFDLCtCQUF5QztBQUN6Qyw4REFBMEQ7QUFDMUQsK0JBQStCO0FBRS9CLDZDQUFpRTtBQUNqRSw2REFBaUQ7QUFDakQsNENBQXdDO0FBRXhDLDhCQUE4QjtBQUU5QixvREFBb0Q7QUFDcEQsNERBQTREO0FBQzVELGtEQUFrRDtBQUNsRCxzQ0FBc0M7QUFDdEMsK0NBQStDO0FBQy9DLDhDQUE4QztBQUM5QyxXQUFXO0FBQ1gsNkJBQTZCO0FBQzdCLHFCQUFxQjtBQUNyQixrQ0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxNQUFzQixJQUFJO0lBQ3hCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FDdEIsTUFBdUIsRUFDdkIsR0FBVyxFQUNYLGFBQXNCO1FBRXRCLE9BQU8sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLE1BQXVCLEVBQ3ZCLEdBQVcsRUFDWCxPQUF1QjtRQUV2QixPQUFPLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLE1BQXVCLEVBQ3ZCLEdBQVcsRUFDWCxhQUFzQjtRQUV0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7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VSxDQUFDLFNBQVMsQ0FDN0IsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FDakQsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUNMLG9CQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFDdEUsQ0FBQztZQUNELDZCQUE2QjtZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLG1EQUFtRCxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxLQUFLO2dCQUNsRyw2Q0FBNkMsQ0FFaEQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQ2pDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO2FBQzlDO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBeENILHdDQXlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwYXduU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBqb2luIGFzIHBhdGh0Sm9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBkYXRhQXJjaGl2ZUZpbGUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWFyY2hpdmVcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IERvY2tlckltYWdlLCBEb2NrZXJCdWlsZE9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vYnVuZGxpbmdcIjtcbmltcG9ydCB7IG1kNWhhc2ggfSBmcm9tIFwiLi4vLi4vaGVscGVycy1pbnRlcm5hbFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBJS2V5IH0gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi9zdG9yYWdlXCI7XG4vLyBpbXBvcnQgeyBJQXdzQ29uc3RydWN0IH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCAqIGFzIGVjcl9hc3NldHMgZnJvbSBcIi4uL3N0b3JhZ2UvYXNzZXRzL2ltYWdlLWFzc2V0XCI7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSBcIi4uL3N0b3JhZ2UvYXNzZXRzL3MzXCI7XG4vLyBUT0RPOiBBZG9wdCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzM4Mi9cbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMwNDVcbi8vIGltcG9ydCB7XG4vLyAgIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuLy8gICBWYWxpZGF0aW9uRXJyb3IsXG4vLyB9IGZyb20gXCIuLi8uLi9jb3JlL2xpYi9lcnJvcnNcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBMYW1iZGEgSGFuZGxlciBDb2RlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29kZSB7XG4gIC8qKlxuICAgKiBMYW1iZGEgaGFuZGxlciBjb2RlIGFzIGFuIFMzIG9iamVjdC5cbiAgICogQHBhcmFtIGJ1Y2tldCBUaGUgUzMgYnVja2V0XG4gICAqIEBwYXJhbSBrZXkgVGhlIG9iamVjdCBrZXlcbiAgICogQHBhcmFtIG9iamVjdFZlcnNpb24gT3B0aW9uYWwgUzMgb2JqZWN0IHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldChcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvYmplY3RWZXJzaW9uPzogc3RyaW5nLFxuICApOiBTM0NvZGUge1xuICAgIHJldHVybiBuZXcgUzNDb2RlKGJ1Y2tldCwga2V5LCBvYmplY3RWZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMYW1iZGEgaGFuZGxlciBjb2RlIGFzIGFuIFMzIG9iamVjdC5cbiAgICogQHBhcmFtIGJ1Y2tldCBUaGUgUzMgYnVja2V0XG4gICAqIEBwYXJhbSBrZXkgVGhlIG9iamVjdCBrZXlcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwgcGFyYW1ldGVycyBmb3Igc2V0dGluZyB0aGUgY29kZSwgY3VycmVudCBvcHRpb25hbCBwYXJhbWV0ZXJzIHRvIHNldCBoZXJlIGFyZVxuICAgKiAxLiBgb2JqZWN0VmVyc2lvbmAgdG8gc2V0IFMzIG9iamVjdCB2ZXJzaW9uXG4gICAqIDIuIGBzb3VyY2VLTVNLZXlgIHRvIHNldCBLTVMgS2V5IGZvciBlbmNyeXB0aW9uIG9mIGNvZGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldFYyKFxuICAgIGJ1Y2tldDogc3RvcmFnZS5JQnVja2V0LFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBCdWNrZXRPcHRpb25zLFxuICApOiBTM0NvZGVWMiB7XG4gICAgcmV0dXJuIG5ldyBTM0NvZGVWMihidWNrZXQsIGtleSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGZyb21CdWNrZXRgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJ1Y2tldChcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvYmplY3RWZXJzaW9uPzogc3RyaW5nLFxuICApOiBTM0NvZGUge1xuICAgIHJldHVybiB0aGlzLmZyb21CdWNrZXQoYnVja2V0LCBrZXksIG9iamVjdFZlcnNpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIElubGluZSBjb2RlIGZvciBMYW1iZGEgaGFuZGxlclxuICAgKiBAcmV0dXJucyBgTGFtYmRhSW5saW5lQ29kZWAgd2l0aCBpbmxpbmUgY29kZS5cbiAgICogQHBhcmFtIGNvZGUgVGhlIGFjdHVhbCBoYW5kbGVyIGNvZGUgKHRoZSByZXN1bHRpbmcgemlwIGZpbGUgY2Fubm90IGV4Y2VlZCA0TUIpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoY29kZTogc3RyaW5nKTogSW5saW5lQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVDb2RlKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBmcm9tSW5saW5lYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbmxpbmUoY29kZTogc3RyaW5nKTogSW5saW5lQ29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUlubGluZShjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgZnVuY3Rpb24gY29kZSBmcm9tIGEgbG9jYWwgZGlzayBwYXRoLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBFaXRoZXIgYSBkaXJlY3Rvcnkgd2l0aCB0aGUgTGFtYmRhIGNvZGUgYnVuZGxlIG9yIGEgLnppcCBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMsXG4gICk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBhIGNvbW1hbmQgdG8gYnVpbGQgdGhlIGNvZGUgYXNzZXQgdGhhdCB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBwYXJhbSBvdXRwdXQgV2hlcmUgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCB3aWxsIGJlIGRpcmVjdGVkLCBlaXRoZXIgYSBkaXJlY3Rvcnkgb3IgYSAuemlwIGZpbGUgd2l0aCB0aGUgb3V0cHV0IExhbWJkYSBjb2RlIGJ1bmRsZVxuICAgKiAqIEZvciBleGFtcGxlLCBpZiB5b3UgdXNlIHRoZSBjb21tYW5kIHRvIHJ1biBhIGJ1aWxkIHNjcmlwdCAoZS5nLiwgWyAnbm9kZScsICdidW5kbGVfY29kZS5qcycgXSksIGFuZCB0aGUgYnVpbGQgc2NyaXB0IGdlbmVyYXRlcyBhIGRpcmVjdG9yeSBgL215L2xhbWJkYS9jb2RlYFxuICAgKiBjb250YWluaW5nIGNvZGUgdGhhdCBzaG91bGQgYmUgcmFuIGluIGEgTGFtYmRhIGZ1bmN0aW9uLCB0aGVuIG91dHB1dCBzaG91bGQgYmUgc2V0IHRvIGAvbXkvbGFtYmRhL2NvZGVgXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHdoaWNoIHdpbGwgYmUgZXhlY3V0ZWQgdG8gZ2VuZXJhdGUgdGhlIG91dHB1dCwgZm9yIGV4YW1wbGUsIFsgJ25vZGUnLCAnYnVuZGxlX2NvZGUuanMnIF1cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBmb3IgdGhlIGN1c3RvbSBjb21tYW5kLCBhbmQgb3RoZXIgYXNzZXQgb3B0aW9ucyAtLSBidXQgYnVuZGxpbmcgb3B0aW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DdXN0b21Db21tYW5kKFxuICAgIG91dHB1dDogc3RyaW5nLFxuICAgIGNvbW1hbmQ6IHN0cmluZ1tdLFxuICAgIG9wdGlvbnM/OiBDdXN0b21Db21tYW5kT3B0aW9ucyxcbiAgKTogQXNzZXRDb2RlIHtcbiAgICBpZiAoY29tbWFuZC5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ2NvbW1hbmQgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4gRm9yIGV4YW1wbGUsIFtcIm5vZGVcIiwgXCJidWlsZEZpbGUuanNcIl0uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgY21kID0gY29tbWFuZFswXTtcbiAgICBjb25zdCBjb21tYW5kQXJndW1lbnRzID0gY29tbWFuZC5zcGxpY2UoMSk7XG5cbiAgICBjb25zdCBwcm9jID1cbiAgICAgIG9wdGlvbnM/LmNvbW1hbmRPcHRpb25zID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBzcGF3blN5bmMoY21kLCBjb21tYW5kQXJndW1lbnRzKSAvLyB1c2UgdGhlIGRlZmF1bHQgc3Bhd25TeW5jT3B0aW9uc1xuICAgICAgICA6IHNwYXduU3luYyhjbWQsIGNvbW1hbmRBcmd1bWVudHMsIG9wdGlvbnMuY29tbWFuZE9wdGlvbnMpO1xuXG4gICAgaWYgKHByb2MuZXJyb3IpIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGV4ZWN1dGUgY3VzdG9tIGNvbW1hbmQ6ICR7cHJvYy5lcnJvcn1gKTtcbiAgICB9XG4gICAgaWYgKHByb2Muc3RhdHVzICE9PSAwKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke2NvbW1hbmQuam9pbihcIiBcIil9IGV4aXRlZCB3aXRoIHN0YXR1czogJHtwcm9jLnN0YXR1c31cXG5cXG5zdGRvdXQ6ICR7cHJvYy5zdGRvdXQ/LnRvU3RyaW5nKCkudHJpbSgpfVxcblxcbnN0ZGVycjogJHtwcm9jLnN0ZGVycj8udG9TdHJpbmcoKS50cmltKCl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUob3V0cHV0LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgZnVuY3Rpb24gY29kZSBmcm9tIGFuIGFzc2V0IGNyZWF0ZWQgYnkgYSBEb2NrZXIgYnVpbGQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhc3NldCBpcyBleHBlY3RlZCB0byBiZSBsb2NhdGVkIGF0IGAvYXNzZXRgIGluIHRoZVxuICAgKiBpbWFnZS5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBEb2NrZXIgZmlsZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBEb2NrZXIgYnVpbGQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9ja2VyQnVpbGQoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IERvY2tlckJ1aWxkQXNzZXRPcHRpb25zID0ge30sXG4gICk6IEFzc2V0Q29kZSB7XG4gICAgbGV0IGltYWdlUGF0aCA9IG9wdGlvbnMuaW1hZ2VQYXRoID8/IFwiL2Fzc2V0Ly5cIjtcblxuICAgIC8vIGVuc3VyZSBpbWFnZVBhdGggZW5kcyB3aXRoIC8uIHRvIGNvcHkgdGhlICoqY29udGVudCoqIGF0IHRoaXMgcGF0aFxuICAgIGlmIChpbWFnZVBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICBpbWFnZVBhdGggPSBgJHtpbWFnZVBhdGh9LmA7XG4gICAgfSBlbHNlIGlmICghaW1hZ2VQYXRoLmVuZHNXaXRoKFwiLy5cIikpIHtcbiAgICAgIGltYWdlUGF0aCA9IGAke2ltYWdlUGF0aH0vLmA7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRQYXRoID0gRG9ja2VySW1hZ2UuZnJvbUJ1aWxkKHBhdGgsIG9wdGlvbnMpLmNwKFxuICAgICAgaW1hZ2VQYXRoLFxuICAgICAgb3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFzc2V0Q29kZShhc3NldFBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBmcm9tQXNzZXRgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzc2V0KHBhdGg6IHN0cmluZyk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUFzc2V0KHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGFtYmRhIHNvdXJjZSBkZWZpbmVkIHVzaW5nIFRlcnJhZm9ybSB2YXJpYWJsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIGBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlYFxuICAgKiBAcGFyYW0gcHJvcHMgb3B0aW9uYWwgY29uc3RydWN0aW9uIHByb3BlcnRpZXMgb2YgYFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UZXJyYWZvcm1WYXJpYWJsZXMoXG4gICAgcHJvcHM/OiBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlUHJvcHMsXG4gICk6IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUge1xuICAgIHJldHVybiBuZXcgVGVycmFmb3JtVmFyaWFibGVzQ29kZShwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGZyb21UZXJyYWZvcm1WYXJpYWJsZXNgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRlcnJhZm9ybVZhcmlhYmxlcyhcbiAgICBwcm9wcz86IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVQcm9wcyxcbiAgKTogVGVycmFmb3JtVmFyaWFibGVzQ29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVRlcnJhZm9ybVZhcmlhYmxlcyhwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGFuIGV4aXN0aW5nIEVDUiBpbWFnZSBhcyB0aGUgTGFtYmRhIGNvZGUuXG4gICAqIEBwYXJhbSByZXBvc2l0b3J5IHRoZSBFQ1IgcmVwb3NpdG9yeSB0aGF0IHRoZSBpbWFnZSBpcyBpblxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyB0byBmdXJ0aGVyIGNvbmZpZ3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUVjckltYWdlKFxuICAgIHJlcG9zaXRvcnk6IHN0b3JhZ2UuSVJlcG9zaXRvcnksXG4gICAgcHJvcHM/OiBFY3JJbWFnZUNvZGVQcm9wcyxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBFY3JJbWFnZUNvZGUocmVwb3NpdG9yeSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFQ1IgaW1hZ2UgZnJvbSB0aGUgc3BlY2lmaWVkIGFzc2V0IGFuZCBiaW5kIGl0IGFzIHRoZSBMYW1iZGEgY29kZS5cbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggdGhlIGFzc2V0IG11c3QgYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyB0byBmdXJ0aGVyIGNvbmZpZ3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0SW1hZ2UoXG4gICAgZGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgcHJvcHM6IEFzc2V0SW1hZ2VDb2RlUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldEltYWdlQ29kZShkaXJlY3RvcnksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBDb2RlIGlzIGlubGluZSBjb2RlIG9yIG5vdC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkIHNpbmNlIGlubGluZSBpcyBub3cgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGVcbiAgICogdGhlIGBpbmxpbmVDb2RlYCBmaWVsZCBvZiBgQ29kZUNvbmZpZ2AgcmV0dXJuZWQgZnJvbSBgYmluZCgpYC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpc0lubGluZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGxhbWJkYSBvciBsYXllciBpcyBpbml0aWFsaXplZCB0byBhbGxvdyB0aGlzIG9iamVjdCB0byBiaW5kXG4gICAqIHRvIHRoZSBzdGFjaywgYWRkIHJlc291cmNlcyBhbmQgaGF2ZSBmdW4uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgYmluZGluZyBzY29wZS4gRG9uJ3QgYmUgc21hcnQgYWJvdXQgdHJ5aW5nIHRvIGRvd24tY2FzdCBvclxuICAgKiBhc3N1bWUgaXQncyBpbml0aWFsaXplZC4gWW91IG1heSBqdXN0IHVzZSBpdCBhcyBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnO1xuXG4gIC8vIFRPRE86IHBlbmRpbmcgY3VzdG9tIENMSSB0byBtb2NrIExhbWJkYSBmdW5jdGlvbiBpbnZvY2F0aW9ucyBsb2NhbGx5XG4gIC8vIC8qKlxuICAvLyAgKiBDYWxsZWQgYWZ0ZXIgdGhlIHRlcnJhZm9ybSBwcm92aWRlciBmdW5jdGlvbiByZXNvdXJjZSBoYXMgYmVlbiBjcmVhdGVkIHRvIGFsbG93IHRoZSBjb2RlXG4gIC8vICAqIGNsYXNzIHRvIGJpbmQgdG8gaXQuIFNwZWNpZmljYWxseSBpdCdzIHJlcXVpcmVkIHRvIGFsbG93IGFzc2V0cyB0byBhZGRcbiAgLy8gICogbWV0YWRhdGEgZm9yIHRvb2xpbmcgbGlrZSBTQU0gQ0xJIHRvIGJlIGFibGUgdG8gZmluZCB0aGVpciBvcmlnaW5zLlxuICAvLyAgKi9cbiAgLy8gcHVibGljIGJpbmRUb1Jlc291cmNlKFxuICAvLyAgIF9yZXNvdXJjZTogSUF3c0NvbnN0cnVjdCxcbiAgLy8gICBfb3B0aW9ucz86IFJlc291cmNlQmluZE9wdGlvbnMsXG4gIC8vICkge1xuICAvLyAgIHJldHVybjtcbiAgLy8gfVxufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBiaW5kaW5nIGBDb2RlYCBpbnRvIGEgYEZ1bmN0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGUgY29kZSBpbiBTMyAobXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYGlubGluZUNvZGVgIGFuZCBgaW1hZ2VgKS5cbiAgICogQGRlZmF1bHQgLSBjb2RlIGlzIG5vdCBhbiBzMyBsb2NhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbj86IHN0b3JhZ2UuUzNMb2NhdGlvbjtcblxuICAvKipcbiAgICogSW5saW5lIGNvZGUgKG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBzM0xvY2F0aW9uYCBhbmQgYGltYWdlYCkuXG4gICAqIEBkZWZhdWx0IC0gY29kZSBpcyBub3QgaW5saW5lIGNvZGVcbiAgICovXG4gIHJlYWRvbmx5IGlubGluZUNvZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvY2tlciBpbWFnZSBjb25maWd1cmF0aW9uIChtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgczNMb2NhdGlvbmAgYW5kIGBpbmxpbmVDb2RlYCkuXG4gICAqIEBkZWZhdWx0IC0gY29kZSBpcyBub3QgYW4gRUNSIGNvbnRhaW5lciBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBDb2RlSW1hZ2VDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBoYW5kbGVyIGNvZGUuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB3aXRoIEFtYXpvbiBTMyBtYW5hZ2VkIGtleXMoU1NFLVMzKSBrZXkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlS01TS2V5QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhlIHNvdXJjZSBjb2RlLCB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY29kZSBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUNvZGVIYXNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiB0aGUgYmluZCB3aGVuIGFuIEVDUiBpbWFnZSBpcyB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVJbWFnZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBVUkkgdG8gdGhlIERvY2tlciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIENNRCBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNjbWRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIENNRCBzcGVjaWZpZWQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY21kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIEVOVFJZUE9JTlQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogQW4gRU5UUllQT0lOVCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSBhIGNvbnRhaW5lciB0aGF0IHdpbGwgcnVuIGFzIGFuIGV4ZWN1dGFibGUuXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgaW4gdGhlICdleGVjIGZvcm0nLCB2aXouLCBgWyAnZXhlY3V0YWJsZScsICdwYXJhbTEnLCAncGFyYW0yJyBdYC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2VudHJ5cG9pbnRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIEVOVFJZUE9JTlQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBXT1JLRElSIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEEgV09SS0RJUiBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSB0aGUgd29ya2luZyBkaXJlY3RvcnkgdGhlIGNvbnRhaW5lciB3aWxsIHVzZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI3dvcmtkaXJcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIFdPUktESVIgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBMYW1iZGEgY29kZSBmcm9tIGFuIFMzIGFyY2hpdmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0NvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gZmFsc2U7XG4gIHByaXZhdGUgYnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGJ1Y2tldDogc3RvcmFnZS5JQnVja2V0LFxuICAgIHByaXZhdGUga2V5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBvYmplY3RWZXJzaW9uPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKCFidWNrZXQuYnVja2V0TmFtZSkge1xuICAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJidWNrZXROYW1lIGlzIHVuZGVmaW5lZCBmb3IgdGhlIHByb3ZpZGVkIGJ1Y2tldFwiLFxuICAgICAgICAvLyBidWNrZXQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYnVja2V0TmFtZSA9IGJ1Y2tldC5idWNrZXROYW1lO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmJ1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5rZXksXG4gICAgICAgIG9iamVjdFZlcnNpb246IHRoaXMub2JqZWN0VmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIExhbWJkYSBjb2RlIGZyb20gYW4gUzMgYXJjaGl2ZS4gV2l0aCBvcHRpb24gdG8gc2V0IEtNU0tleSBmb3IgZW5jcnlwdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFMzQ29kZVYyIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IGZhbHNlO1xuICBwcml2YXRlIGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBwcml2YXRlIGtleTogc3RyaW5nLFxuICAgIHByaXZhdGUgb3B0aW9ucz86IEJ1Y2tldE9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFidWNrZXQuYnVja2V0TmFtZSkge1xuICAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJidWNrZXROYW1lIGlzIHVuZGVmaW5lZCBmb3IgdGhlIHByb3ZpZGVkIGJ1Y2tldFwiLFxuICAgICAgICAvLyBidWNrZXQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYnVja2V0TmFtZSA9IGJ1Y2tldC5idWNrZXROYW1lO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmJ1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5rZXksXG4gICAgICAgIG9iamVjdFZlcnNpb246IHRoaXMub3B0aW9ucz8ub2JqZWN0VmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBzb3VyY2VLTVNLZXlBcm46IHRoaXMub3B0aW9ucz8uc291cmNlS01TS2V5Py5rZXlBcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIExhbWJkYSBjb2RlIGZyb20gYW4gaW5saW5lIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZUNvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gdHJ1ZTtcbiAgcHJpdmF0ZSBkYXRhQXJjaGl2ZT86IGRhdGFBcmNoaXZlRmlsZS5EYXRhQXJjaGl2ZUZpbGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKGNvZGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMYW1iZGEgaW5saW5lIGNvZGUgY2Fubm90IGJlIGVtcHR5XCIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICB0aGlzLmVuc3VyZURhdGFBcmNoaXZlKHNjb3BlKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5saW5lQ29kZTogdGhpcy5kYXRhQXJjaGl2ZSEub3V0cHV0UGF0aCxcbiAgICAgIHNvdXJjZUNvZGVIYXNoOiB0aGlzLmRhdGFBcmNoaXZlIS5vdXRwdXRCYXNlNjRTaGEyNTYsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVZ2x5IGhhY2sgdG8gc3VwcG9ydCBpbmxpbmUgY29kZSB3aXRoIFRlcnJhZm9ybS5cbiAgICpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy85Nzc0I2lzc3VlY29tbWVudC02NjkzNTY3ODZcbiAgICogQHBhcmFtIHNjb3BlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIGVuc3VyZURhdGFBcmNoaXZlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBpZiAodGhpcy5kYXRhQXJjaGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBnZXQgdGhlIHByb3ZpZGVyIHNpbmdsZXRvblxuICAgIGNvbnN0IHByb3ZpZGVyID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLmFyY2hpdmVQcm92aWRlcjtcbiAgICAvLyBlbnN1cmUgdGhlIGNvZGUgaXMgaGFzaGVkIGZvciBjb25zaXN0ZW5jeVxuICAgIGNvbnN0IGlkID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLnVuaXF1ZVJlc291cmNlTmFtZShcbiAgICAgIG5ldyBjZGt0Zi5UZXJyYWZvcm1FbGVtZW50KHNjb3BlLCBtZDVoYXNoKHRoaXMuY29kZSkpLFxuICAgICAge1xuICAgICAgICBtYXhMZW5ndGg6IDY0LFxuICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLV9cIixcbiAgICAgIH0sXG4gICAgKTtcbiAgICAvLyBjb25zdCBpZCA9IG1kNWhhc2godGhpcy5jb2RlKTtcbiAgICBjb25zdCBleGlzdGluZyA9IHNjb3BlLm5vZGUudHJ5RmluZENoaWxkKGlkKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHRoaXMuZGF0YUFyY2hpdmUgPSBleGlzdGluZyBhcyBkYXRhQXJjaGl2ZUZpbGUuRGF0YUFyY2hpdmVGaWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFBcmNoaXZlID0gbmV3IGRhdGFBcmNoaXZlRmlsZS5EYXRhQXJjaGl2ZUZpbGUoc2NvcGUsIGlkLCB7XG4gICAgICAgIG91dHB1dFBhdGg6IHBhdGh0Sm9pbihcbiAgICAgICAgICBjZGt0Zi5Ub2tlbi5hc1N0cmluZyhjZGt0Zi5yZWYoXCJwYXRoLnJvb3RcIikpLFxuICAgICAgICAgIFwiLmFyY2hpdmVfZmlsZXNcIixcbiAgICAgICAgICBgJHtpZH0uemlwYCxcbiAgICAgICAgKSxcbiAgICAgICAgdHlwZTogXCJ6aXBcIixcbiAgICAgICAgc291cmNlQ29udGVudDogdGhpcy5jb2RlLFxuICAgICAgICAvLyBUT0RPOiB3aGF0IGlzIGZpbGVuYW1lP1xuICAgICAgICBzb3VyY2VDb250ZW50RmlsZW5hbWU6IFwiaW5kZXhcIixcbiAgICAgICAgcHJvdmlkZXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBMYW1iZGEgY29kZSBmcm9tIGEgbG9jYWwgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IGZhbHNlO1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUgYXNzZXQgZmlsZSBvciBkaXJlY3RvcnkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogczNfYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IENvZGVDb25maWcge1xuICAgIC8vIElmIHRoZSBzYW1lIEFzc2V0Q29kZSBpcyB1c2VkIG11bHRpcGxlIHRpbWVzLCByZXRhaW4gb25seSB0aGUgZmlyc3QgaW5zdGFudGlhdGlvbi5cbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCBcIkNvZGVcIiwge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIGRlcGxveVRpbWU6IHRydWUsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzLmFzc2V0KSAhPT0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpXG4gICAgKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXNzZXQgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYW5vdGhlciBzdGFjayAnJHtBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzLmFzc2V0KS5ncmlkVVVJRH0nLiBgICtcbiAgICAgICAgICBcIkNyZWF0ZSBhIG5ldyBDb2RlIGluc3RhbmNlIGZvciBldmVyeSBzdGFjay5cIixcbiAgICAgICAgLy8gc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hc3NldC5pc1ppcEFyY2hpdmUpIHtcbiAgICAgIC8vIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBc3NldCBtdXN0IGJlIGEgLnppcCBmaWxlIG9yIGEgZGlyZWN0b3J5ICgke3RoaXMucGF0aH0pYCxcbiAgICAgICAgLy8gc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgICB9LFxuICAgICAgc291cmNlS01TS2V5QXJuOiB0aGlzLm9wdGlvbnMuc291cmNlS01TS2V5Py5rZXlBcm4sXG4gICAgfTtcbiAgfVxuXG4gIC8vIHB1YmxpYyBiaW5kVG9SZXNvdXJjZShcbiAgLy8gICByZXNvdXJjZTogSUF3c0NvbnN0cnVjdCxcbiAgLy8gICBvcHRpb25zOiBSZXNvdXJjZUJpbmRPcHRpb25zID0ge30sXG4gIC8vICkge1xuICAvLyAgIGlmICghdGhpcy5hc3NldCkge1xuICAvLyAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgLy8gICAgIHRocm93IG5ldyBFcnJvcihcbiAgLy8gICAgICAgXCJiaW5kVG9SZXNvdXJjZSgpIG11c3QgYmUgY2FsbGVkIGFmdGVyIGJpbmQoKVwiLFxuICAvLyAgICAgICAvLyByZXNvdXJjZSxcbiAgLy8gICAgICk7XG4gIC8vICAgfVxuXG4gIC8vICAgY29uc3QgcmVzb3VyY2VQcm9wZXJ0eSA9IG9wdGlvbnMucmVzb3VyY2VQcm9wZXJ0eSB8fCBcIkNvZGVcIjtcbiAgLy8gICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0MzJcbiAgLy8gICB0aGlzLmFzc2V0LmFkZFJlc291cmNlTWV0YWRhdGEocmVzb3VyY2UsIHJlc291cmNlUHJvcGVydHkpO1xuICAvLyB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VCaW5kT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYW5ub3RhdGUgd2l0aCBhc3NldCBtZXRhZGF0YS5cbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0MzJcbiAgICogQGRlZmF1bHQgQ29kZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VQcm9wZXJ0eT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVGVycmFmb3JtIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyB0aGUgbmFtZSBvZiB0aGUgUzMgQnVja2V0XG4gICAqIHdoZXJlIHRoZSBMYW1iZGEgY29kZSB3aWxsIGJlIGxvY2F0ZWQgaW4uXG4gICAqIE11c3QgYmUgb2YgdHlwZSAnU3RyaW5nJy5cbiAgICpcbiAgICogQGRlZmF1bHQgYSBuZXcgdmFyaWFibGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lVmFyPzogY2RrdGYuVGVycmFmb3JtVmFyaWFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBUZXJyYWZvcm0gdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZSBwYXRoIGluc2lkZSB0aGUgUzMgQnVja2V0XG4gICAqIHdoZXJlIHRoZSBMYW1iZGEgY29kZSB3aWxsIGJlIGxvY2F0ZWQgYXQuXG4gICAqIE11c3QgYmUgb2YgdHlwZSAnU3RyaW5nJy5cbiAgICpcbiAgICogQGRlZmF1bHQgYSBuZXcgdmFyaWFibGUgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBvYmplY3RLZXlWYXI/OiBjZGt0Zi5UZXJyYWZvcm1WYXJpYWJsZTtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBoYW5kbGVyIGNvZGUuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB3aXRoIEFtYXpvbiBTMyBtYW5hZ2VkIGtleXMoU1NFLVMzKSBrZXkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlS01TS2V5PzogSUtleTtcbn1cblxuLyoqXG4gKiBMYW1iZGEgY29kZSBkZWZpbmVkIHVzaW5nIDIgVGVycmFmb3JtIHZhcmlhYmxlcy5cbiAqIFVzZWZ1bCB3aGVuIHlvdSBkb24ndCBoYXZlIGFjY2VzcyB0byB0aGUgY29kZSBvZiB5b3VyIExhbWJkYSBmcm9tIHlvdXIgQ0RLIGNvZGUsIHNvIHlvdSBjYW4ndCB1c2UgQXNzZXRzLFxuICogYW5kIHlvdSB3YW50IHRvIGRlcGxveSB0aGUgTGFtYmRhIGluIGEgcGlwZWxpbmUsIGR1cmluZyBUZXJyYWZvcm0gZXhlY3V0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtVmFyaWFibGVzQ29kZSBleHRlbmRzIENvZGUge1xuICBwdWJsaWMgcmVhZG9ubHkgaXNJbmxpbmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYnVja2V0TmFtZVZhcj86IGNka3RmLlRlcnJhZm9ybVZhcmlhYmxlO1xuICBwcml2YXRlIF9vYmplY3RLZXlWYXI/OiBjZGt0Zi5UZXJyYWZvcm1WYXJpYWJsZTtcbiAgcHJpdmF0ZSBfc291cmNlS01TS2V5PzogSUtleTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogVGVycmFmb3JtVmFyaWFibGVzQ29kZVByb3BzID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5fYnVja2V0TmFtZVZhciA9IHByb3BzLmJ1Y2tldE5hbWVWYXI7XG4gICAgdGhpcy5fb2JqZWN0S2V5VmFyID0gcHJvcHMub2JqZWN0S2V5VmFyO1xuICAgIHRoaXMuX3NvdXJjZUtNU0tleSA9IHByb3BzLnNvdXJjZUtNU0tleTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICBpZiAoIXRoaXMuX2J1Y2tldE5hbWVWYXIpIHtcbiAgICAgIHRoaXMuX2J1Y2tldE5hbWVWYXIgPSBuZXcgY2RrdGYuVGVycmFmb3JtVmFyaWFibGUoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBcIkxhbWJkYVNvdXJjZUJ1Y2tldE5hbWVQYXJhbWV0ZXJcIixcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiU3RyaW5nXCIsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fb2JqZWN0S2V5VmFyKSB7XG4gICAgICB0aGlzLl9vYmplY3RLZXlWYXIgPSBuZXcgY2RrdGYuVGVycmFmb3JtVmFyaWFibGUoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBcIkxhbWJkYVNvdXJjZU9iamVjdEtleVBhcmFtZXRlclwiLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJTdHJpbmdcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5fYnVja2V0TmFtZVZhci5zdHJpbmdWYWx1ZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLl9vYmplY3RLZXlWYXIuc3RyaW5nVmFsdWUsXG4gICAgICB9LFxuICAgICAgc291cmNlS01TS2V5QXJuOiB0aGlzLl9zb3VyY2VLTVNLZXk/LmtleUFybixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHBhcmFtZXRlcnMgbWFwIGZyb20gdGhpcyBpbnN0YW5jZSdzIFRlcnJhZm9ybSB2YXJpYWJsZXMuXG4gICAqXG4gICAqIEl0IHJldHVybnMgYSBtYXAgd2l0aCAyIGtleXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1ldGVycyBkZWZpbmVkIGluIHRoaXMgTGFtYmRhIGNvZGUsXG4gICAqIGFuZCBhcyB2YWx1ZXMgaXQgY29udGFpbnMgdGhlIGFwcHJvcHJpYXRlIGV4cHJlc3Npb25zIHBvaW50aW5nIGF0IHRoZSBwcm92aWRlZCBTMyBsb2NhdGlvblxuICAgKiAobW9zdCBsaWtlbHksIG9idGFpbmVkIGZyb20gYSBDb2RlUGlwZWxpbmUgQXJ0aWZhY3QgYnkgY2FsbGluZyB0aGUgYGFydGlmYWN0LnMzTG9jYXRpb25gIG1ldGhvZCkuXG4gICAqIFRoZSByZXN1bHQgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBDbG91ZEZvcm1hdGlvbiBBY3Rpb25cbiAgICogdGhhdCBpcyBkZXBsb3lpbmcgdGhlIFN0YWNrIHRoYXQgdGhlIExhbWJkYSB3aXRoIHRoaXMgY29kZSBpcyBwYXJ0IG9mLFxuICAgKiBpbiB0aGUgYHBhcmFtZXRlck92ZXJyaWRlc2AgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBsb2NhdGlvbiB0aGUgbG9jYXRpb24gb2YgdGhlIG9iamVjdCBpbiBTMyB0aGF0IHJlcHJlc2VudHMgdGhlIExhbWJkYSBjb2RlXG4gICAqL1xuICBwdWJsaWMgYXNzaWduKGxvY2F0aW9uOiBzdG9yYWdlLlMzTG9jYXRpb24pOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3QgcmV0OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIHJldFt0aGlzLmJ1Y2tldE5hbWVWYXJdID0gbG9jYXRpb24uYnVja2V0TmFtZTtcbiAgICByZXRbdGhpcy5vYmplY3RLZXlWYXJdID0gbG9jYXRpb24ub2JqZWN0S2V5O1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJ1Y2tldE5hbWVWYXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fYnVja2V0TmFtZVZhcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2J1Y2tldE5hbWVWYXIuZnFuO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUGFzcyBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlIHRvIGEgTGFtYmRhIEZ1bmN0aW9uIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIGJ1Y2tldE5hbWVWYXIgcHJvcGVydHlcIixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBvYmplY3RLZXlWYXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fb2JqZWN0S2V5VmFyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fb2JqZWN0S2V5VmFyLmZxbjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlBhc3MgVGVycmFmb3JtVmFyaWFibGVzQ29kZSB0byBhIExhbWJkYSBGdW5jdGlvbiBiZWZvcmUgYWNjZXNzaW5nIHRoZSBvYmplY3RLZXlWYXIgcHJvcGVydHlcIixcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBpbml0aWFsaXplIGEgbmV3IEVjckltYWdlQ29kZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjckltYWdlQ29kZVByb3BzIHtcbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIENNRCBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNjbWRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIENNRCBzcGVjaWZpZWQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY21kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIEVOVFJZUE9JTlQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogQW4gRU5UUllQT0lOVCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSBhIGNvbnRhaW5lciB0aGF0IHdpbGwgcnVuIGFzIGFuIGV4ZWN1dGFibGUuXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgaW4gdGhlICdleGVjIGZvcm0nLCB2aXouLCBgWyAnZXhlY3V0YWJsZScsICdwYXJhbTEnLCAncGFyYW0yJyBdYC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2VudHJ5cG9pbnRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIEVOVFJZUE9JTlQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBXT1JLRElSIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEEgV09SS0RJUiBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSB0aGUgd29ya2luZyBkaXJlY3RvcnkgdGhlIGNvbnRhaW5lciB3aWxsIHVzZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI3dvcmtkaXJcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIFdPUktESVIgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltYWdlIHRhZyB0byB1c2Ugd2hlbiBwdWxsaW5nIHRoZSBpbWFnZSBmcm9tIEVDUi5cbiAgICogQGRlZmF1bHQgJ2xhdGVzdCdcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGB0YWdPckRpZ2VzdGBcbiAgICovXG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGltYWdlIHRhZyBvciBkaWdlc3QgdG8gdXNlIHdoZW4gcHVsbGluZyB0aGUgaW1hZ2UgZnJvbSBFQ1IgKGRpZ2VzdHMgbXVzdCBzdGFydCB3aXRoIGBzaGEyNTY6YCkuXG4gICAqIEBkZWZhdWx0ICdsYXRlc3QnXG4gICAqL1xuICByZWFkb25seSB0YWdPckRpZ2VzdD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgRG9ja2VyIGltYWdlIGluIEVDUiB0aGF0IGNhbiBiZSBib3VuZCBhcyBMYW1iZGEgQ29kZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVjckltYWdlQ29kZSBleHRlbmRzIENvZGUge1xuICBwdWJsaWMgcmVhZG9ubHkgaXNJbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnk6IHN0b3JhZ2UuSVJlcG9zaXRvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogRWNySW1hZ2VDb2RlUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgdGhpcy5yZXBvc2l0b3J5LmdyYW50UHVsbChuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJsYW1iZGEuYW1hem9uYXdzLmNvbVwiKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1hZ2VVcmk6IHRoaXMucmVwb3NpdG9yeS5yZXBvc2l0b3J5VXJpRm9yVGFnT3JEaWdlc3QoXG4gICAgICAgICAgdGhpcy5wcm9wcz8udGFnT3JEaWdlc3QgPz8gdGhpcy5wcm9wcz8udGFnID8/IFwibGF0ZXN0XCIsXG4gICAgICAgICksXG4gICAgICAgIGNtZDogdGhpcy5wcm9wcy5jbWQsXG4gICAgICAgIGVudHJ5cG9pbnQ6IHRoaXMucHJvcHMuZW50cnlwb2ludCxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogdGhpcy5wcm9wcy53b3JraW5nRGlyZWN0b3J5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBpbml0aWFsaXplIGEgbmV3IEFzc2V0SW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldEltYWdlQ29kZVByb3BzXG4gIGV4dGVuZHMgZWNyX2Fzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBDTUQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogVGhpcyBuZWVkcyB0byBiZSBpbiB0aGUgJ2V4ZWMgZm9ybScsIHZpei4sIGBbICdleGVjdXRhYmxlJywgJ3BhcmFtMScsICdwYXJhbTInIF1gLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jY21kXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBDTUQgc3BlY2lmaWVkIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGNtZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBFTlRSWVBPSU5UIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEFuIEVOVFJZUE9JTlQgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgYSBjb250YWluZXIgdGhhdCB3aWxsIHJ1biBhcyBhbiBleGVjdXRhYmxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNlbnRyeXBvaW50XG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBFTlRSWVBPSU5UIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgV09SS0RJUiBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBBIFdPUktESVIgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IHRoZSBjb250YWluZXIgd2lsbCB1c2UuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyN3b3JrZGlyXG4gICAqIEBkZWZhdWx0IC0gdXNlIHRoZSBXT1JLRElSIGluIHRoZSBkb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmdEaXJlY3Rvcnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFQ1IgaW1hZ2UgdGhhdCB3aWxsIGJlIGNvbnN0cnVjdGVkIGZyb20gdGhlIHNwZWNpZmllZCBhc3NldCBhbmQgY2FuIGJlIGJvdW5kIGFzIExhbWJkYSBjb2RlLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRJbWFnZUNvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgYXNzZXQ/OiBlY3JfYXNzZXRzLkRvY2tlckltYWdlQXNzZXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBBc3NldEltYWdlQ29kZVByb3BzLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IENvZGVDb25maWcge1xuICAgIC8vIElmIHRoZSBzYW1lIEFzc2V0SW1hZ2VDb2RlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBlY3JfYXNzZXRzLkRvY2tlckltYWdlQXNzZXQoc2NvcGUsIFwiQXNzZXRJbWFnZVwiLCB7XG4gICAgICAgIGRpcmVjdG9yeTogdGhpcy5kaXJlY3RvcnksXG4gICAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXNzZXQucmVwb3NpdG9yeS5ncmFudFB1bGwoXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImxhbWJkYS5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcy5hc3NldCkgIT09IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKVxuICAgICkge1xuICAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEFzc2V0IGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGFub3RoZXIgc3RhY2sgJyR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcy5hc3NldCkuZ3JpZFVVSUR9Jy4gYCArXG4gICAgICAgICAgXCJDcmVhdGUgYSBuZXcgQ29kZSBpbnN0YW5jZSBmb3IgZXZlcnkgc3RhY2suXCIsXG4gICAgICAgIC8vIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1hZ2VVcmk6IHRoaXMuYXNzZXQuaW1hZ2VVcmksXG4gICAgICAgIGVudHJ5cG9pbnQ6IHRoaXMucHJvcHMuZW50cnlwb2ludCxcbiAgICAgICAgY21kOiB0aGlzLnByb3BzLmNtZCxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogdGhpcy5wcm9wcy53b3JraW5nRGlyZWN0b3J5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gLy8gVE9ETzogcGVuZGluZyBjdXN0b20gQ0xJIHRvIG1vY2sgTGFtYmRhIGZ1bmN0aW9uIGludm9jYXRpb25zIGxvY2FsbHlcbiAgLy8gcHVibGljIGJpbmRUb1Jlc291cmNlKFxuICAvLyAgIHJlc291cmNlOiBJQXdzQ29uc3RydWN0LFxuICAvLyAgIG9wdGlvbnM6IFJlc291cmNlQmluZE9wdGlvbnMgPSB7fSxcbiAgLy8gKSB7XG4gIC8vICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gIC8vICAgICAvLyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAvLyAgICAgdGhyb3cgbmV3IEVycm9yKFwiYmluZFRvUmVzb3VyY2UoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBiaW5kKClcIik7IC8vLCByZXNvdXJjZSk7XG4gIC8vICAgfVxuXG4gIC8vICAgLy8gY29uc3QgcmVzb3VyY2VQcm9wZXJ0eSA9IF9vcHRpb25zLnJlc291cmNlUHJvcGVydHkgfHwgXCJDb2RlLkltYWdlVXJpXCI7XG5cbiAgLy8gICAvLyAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0NTkzXG4gIC8vICAgLy8gdGhpcy5hc3NldC5hZGRSZXNvdXJjZU1ldGFkYXRhKF9yZXNvdXJjZSwgcmVzb3VyY2VQcm9wZXJ0eSk7XG4gIC8vIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIHdoZW4gY3JlYXRpbmcgYW4gYXNzZXQgZnJvbSBhIERvY2tlciBidWlsZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJCdWlsZEFzc2V0T3B0aW9ucyBleHRlbmRzIERvY2tlckJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB0aGUgRG9ja2VyIGltYWdlIHdoZXJlIHRoZSBhc3NldCBpcyBsb2NhdGVkIGFmdGVyIHRoZSBidWlsZFxuICAgKiBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC9hc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvbiB0aGUgbG9jYWwgZmlsZXN5c3RlbSB3aGVyZSB0aGUgYXNzZXQgd2lsbCBiZSBjb3BpZWRcbiAgICogdXNpbmcgYGRvY2tlciBjcGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiB0aGUgc3lzdGVtIHRlbXAgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBvdXRwdXRQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGBBc3NldENvZGVgIHdpdGggYSBjdXN0b20gY29tbWFuZCwgc3VjaCBhcyBydW5uaW5nIGEgYnVpbGRmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUNvbW1hbmRPcHRpb25zIGV4dGVuZHMgczNfYXNzZXRzLkFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBvcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0byB0aGUgc3Bhd25lZCBwcm9jZXNzLCB3aGljaCBkZXRlcm1pbmUgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgc3Bhd25lZCBwcm9jZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdDogc2VlIGBjaGlsZF9wcm9jZXNzLlNwYXduU3luY09wdGlvbnNgIChodHRwczovL25vZGVqcy5vcmcvYXBpL2NoaWxkX3Byb2Nlc3MuaHRtbCNjaGlsZF9wcm9jZXNzc3Bhd25zeW5jY29tbWFuZC1hcmdzLW9wdGlvbnMpLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZE9wdGlvbnM/OiB7IFtvcHRpb25zOiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBjb2RlIHVzaW5nIGJ1Y2tldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE9wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWwgUzMgb2JqZWN0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgaGFuZGxlciBjb2RlLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMgbWFuYWdlZCBrZXlzKFNTRS1TMykga2V5IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUtNU0tleT86IElLZXk7XG59XG4iXX0=
@@ -300,7 +300,7 @@ class Condition {
300
300
  }
301
301
  exports.Condition = Condition;
302
302
  _a = JSII_RTTI_SYMBOL_1;
303
- Condition[_a] = { fqn: "terraconstructs.aws.compute.Condition", version: "0.1.1" };
303
+ Condition[_a] = { fqn: "terraconstructs.aws.compute.Condition", version: "0.1.2" };
304
304
  /**
305
305
  * Comparison Operator types
306
306
  */
@@ -178,7 +178,7 @@ class Connections {
178
178
  }
179
179
  exports.Connections = Connections;
180
180
  _a = JSII_RTTI_SYMBOL_1;
181
- Connections[_a] = { fqn: "terraconstructs.aws.compute.Connections", version: "0.1.1" };
181
+ Connections[_a] = { fqn: "terraconstructs.aws.compute.Connections", version: "0.1.2" };
182
182
  class ReactiveList {
183
183
  constructor() {
184
184
  this.elements = new Array();
@@ -10,7 +10,7 @@ class Cors {
10
10
  }
11
11
  exports.Cors = Cors;
12
12
  _a = JSII_RTTI_SYMBOL_1;
13
- Cors[_a] = { fqn: "terraconstructs.aws.compute.Cors", version: "0.1.1" };
13
+ Cors[_a] = { fqn: "terraconstructs.aws.compute.Cors", version: "0.1.2" };
14
14
  /**
15
15
  * All HTTP methods.
16
16
  */
@@ -154,5 +154,5 @@ class Deployment extends aws_construct_1.AwsConstructBase {
154
154
  }
155
155
  exports.Deployment = Deployment;
156
156
  _a = JSII_RTTI_SYMBOL_1;
157
- Deployment[_a] = { fqn: "terraconstructs.aws.compute.Deployment", version: "0.1.1" };
157
+ Deployment[_a] = { fqn: "terraconstructs.aws.compute.Deployment", version: "0.1.2" };
158
158
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9kZXBsb3ltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBSzZCO0FBQzdCLGlDQUE2QjtBQUc3Qix1Q0FBd0U7QUFDeEUseUNBQXlDO0FBQ3pDLDZEQUFpRDtBQUNqRCxvREFBdUU7QUFxQ3ZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFhLFVBQVcsU0FBUSxnQ0FBZ0I7SUFhOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUhULHNCQUFpQixHQUFHLElBQUksS0FBSyxFQUFPLENBQUM7UUFLcEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXJCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLG1DQUFvQixDQUFDLG9CQUFvQixDQUNyRSxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUztZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsbUZBQW1GO1lBQ25GLFNBQVMsRUFBRTtnQkFDVCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLG1CQUFtQixJQUFJLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3JGLEdBQUcsS0FBSyxDQUFDLFNBQVM7YUFDbkI7U0FDRixDQUNGLENBQUM7UUFFRixvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FDakMsVUFBVSxFQUNWLFlBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQ3hDLENBQUMsQ0FDSCxDQUFDO1FBRUYsMkVB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RUFBMEU7UUFDMUUsMkVBQTJFO1FBQzNFLHFFQUFxRTtRQUNyRSxxRUFBcUU7UUFDckUseURBQXlEO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQWlELENBQzlELENBQUM7UUFFRiwwREFBMEQ7SUFDNUQsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTO1NBQzlDLENBQUM7SUFDSixDQUFDOztBQTNKSCxnQ0E0SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhcGlHYXRld2F5RGVwbG95bWVudCxcbiAgYXBpR2F0ZXdheU1ldGhvZCxcbiAgYXBpR2F0ZXdheVJlc3RBcGksXG4gIGFwaUdhdGV3YXlTdGFnZSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNZXRob2QgfSBmcm9tIFwiLi9tZXRob2RcIjtcbmltcG9ydCB7IElSZXN0QXBpLCBSZXN0QXBpLCBSZXN0QXBpQmFzZSwgU3BlY1Jlc3RBcGkgfSBmcm9tIFwiLi9yZXN0YXBpXCI7XG4vLyBpbXBvcnQgeyBGbiB9IGZyb20gXCIuLi8uLi90ZXJyYS1mdW5jXCI7XG5pbXBvcnQgeyBtZDVoYXNoIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMtaW50ZXJuYWxcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgUmVzdCBBUEkgdG8gZGVwbG95LlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpOiBJUmVzdEFwaTtcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgcHVycG9zZSBvZiB0aGUgQVBJIEdhdGV3YXkgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8vIC8vIFRPRE86IEltcGxlbWVudCBSZW1vdmFsUG9saWN5LlJFVEFJTiB0aHJvdWdoIHJlbW92ZWQgYmxvY2sgaW4gVGVycmFmb3JtLlxuICAvLyAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtL2lzc3Vlcy8yNzAzNSNpc3N1ZWNvbW1lbnQtMjM0MDM0ODgwMVxuICAvLyAvLyByZWY6IGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3Jlc291cmNlcy9zeW50YXgjcmVtb3ZpbmctcmVzb3VyY2VzXG4gIC8vIC8qKlxuICAvLyAgKiBXaGVuIGFuIEFQSSBHYXRld2F5IG1vZGVsIGlzIHVwZGF0ZWQsIGEgbmV3IGRlcGxveW1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQuXG4gIC8vICAqIElmIHRoaXMgaXMgdHJ1ZSwgdGhlIG9sZCBBUEkgR2F0ZXdheSBEZXBsb3ltZW50IHJlc291cmNlIHdpbGwgbm90IGJlIGRlbGV0ZWQuXG4gIC8vICAqIFRoaXMgd2lsbCBhbGxvdyBtYW51YWxseSByZXZlcnRpbmcgYmFjayB0byBhIHByZXZpb3VzIGRlcGxveW1lbnQgaW4gY2FzZSBmb3IgZXhhbXBsZVxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCBmYWxzZVxuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgcmV0YWluRGVwbG95bWVudHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhZ2UgdGhlIEFQSSBHYXRld2F5IGRlcGxveW1lbnQgZGVwbG95cyB0by5cbiAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgYW5kIGEgc3RhZ2Ugd2l0aCB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGRvZXMgbm90IGV4aXN0LFxuICAgKiBhIG5ldyBzdGFnZSByZXNvdXJjZSB3aWxsIGJlIGNyZWF0ZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc3RhZ2UgaXMgY3JlYXRlZCBvciBhc3NvY2lhdGVkIHdpdGggdGhpcyBkZXBsb3ltZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2VOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgRGVwbG95bWVudCBvZiBhIFJFU1QgQVBJLlxuICpcbiAqIEFuIGltbXV0YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIFJlc3RBcGkgcmVzb3VyY2UgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IHVzZXJzXG4gKiB1c2luZyBTdGFnZXMuIEEgZGVwbG95bWVudCBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCBhIFN0YWdlIGZvciBpdCB0byBiZVxuICogY2FsbGFibGUgb3ZlciB0aGUgSW50ZXJuZXQuXG4gKlxuICogTm9ybWFsbHksIHlvdSBkb24ndCBuZWVkIHRvIGRlZmluZSBkZXBsb3ltZW50cyBtYW51YWxseS4gVGhlIFJlc3RBcGlcbiAqIGNvbnN0cnVjdCBtYW5hZ2VzIGEgRGVwbG95bWVudCByZXNvdXJjZSB0aGF0IHJlcHJlc2VudHMgdGhlIGxhdGVzdCBtb2RlbC4gSXRcbiAqIGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdoIGByZXN0QXBpLmxhdGVzdERlcGxveW1lbnRgICh1bmxlc3MgYGRlcGxveTogZmFsc2VgIGlzXG4gKiBzZXQgd2hlbiBkZWZpbmluZyB0aGUgYFJlc3RBcGlgKS5cbiAqXG4gKiBJZiB5b3UgbWFudWFsbHkgZGVmaW5lIHRoaXMgcmVzb3VyY2UsIHlvdSB3aWxsIG5lZWQgdG8ga25vdyB0aGF0IHNpbmNlXG4gKiBkZXBsb3ltZW50cyBhcmUgaW1tdXRhYmxlLCB0aGVpciBwcm9wZXJ0aWVzIHdpbGwgbm90IGNoYW5nZSBhZnRlciBjcmVhdGlvbi5cbiAqIFRvIHJlZmxlY3QgQVBJIG1vZGVsIGNoYW5nZXMsIGEgbmV3IGRlcGxveW1lbnQgbXVzdCBiZSBjcmVhdGVkLiBUaGlzIGlzIHR5cGljYWxseVxuICogYWNoaWV2ZWQgYnkgY2hhbmdpbmcgdGhlIGB0cmlnZ2Vyc2AgcHJvcGVydHkgb2YgdGhlIGBBcGlHYXRld2F5RGVwbG95bWVudGAgcmVzb3VyY2UuXG4gKlxuICogVGhlIGBhZGRUb1RyaWdnZXJzYCBtZXRob2QgY2FuIGJlIHVzZWQgdG8gYXVnbWVudCB0aGUgc2V0IG9mIHRyaWdnZXJzIGZvciB0aGlzXG4gKiBkZXBsb3ltZW50LiBUaGlzIGVuc3VyZXMgdGhhdCBpZiBzcGVjaWZpYyBwYXJ0cyBvZiB0aGUgQVBJIG1vZGVsIGNoYW5nZSAoZS5nLiwgYSBNZXRob2QncyBjb25maWd1cmF0aW9uKSxcbiAqIGEgbmV3IGRlcGxveW1lbnQgaXMgdHJpZ2dlcmVkLiBUaGlzIGlzIGRvbmUgYXV0b21hdGljYWxseSBmb3IgdGhlIGByZXN0QXBpLmxhdGVzdERlcGxveW1lbnRgIGRlcGxveW1lbnQuXG4gKlxuICogRnVydGhlcm1vcmUsIGEgZGVwbG95bWVudCBzaG91bGQgZGVwZW5kIG9uIGFsbCBBUEkgR2F0ZXdheSByZXNvdXJjZXMgKE1ldGhvZHMsIFJlc291cmNlcywgZXRjLilcbiAqIHRoYXQgZGVmaW5lIHRoZSBBUEkuIFVzZSB0aGUgYF9hZGRNZXRob2REZXBlbmRlbmN5YCBvciBkaXJlY3RseSBhZGQgZGVwZW5kZW5jaWVzIHRvIGVuc3VyZSBjb3JyZWN0XG4gKiBwcm92aXNpb25pbmcgb3JkZXIuIFRoaXMgaXMgYWxzbyBoYW5kbGVkIGZvciBgcmVzdEFwaS5sYXRlc3REZXBsb3ltZW50YC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveW1lbnQgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveW1lbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpOiBJUmVzdEFwaTtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnZSBjcmVhdGVkIGFuZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBkZXBsb3ltZW50LCBpZiBgc3RhZ2VOYW1lYCB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhZ2VOYW1lPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95bWVudFJlc291cmNlOiBhcGlHYXRld2F5RGVwbG95bWVudC5BcGlHYXRld2F5RGVwbG95bWVudDtcbiAgcHJpdmF0ZSBzdGFnZVJlc291cmNlPzogYXBpR2F0ZXdheVN0YWdlLkFwaUdhdGV3YXlTdGFnZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyaWdnZXJDb21wb25lbnRzID0gbmV3IEFycmF5PGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGVwbG95bWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmFwaSA9IHByb3BzLmFwaTtcblxuICAgIHRoaXMuZGVwbG95bWVudFJlc291cmNlID0gbmV3IGFwaUdhdGV3YXlEZXBsb3ltZW50LkFwaUdhdGV3YXlEZXBsb3ltZW50KFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgcmVzdEFwaUlkOiBwcm9wcy5hcGkucmVzdEFwaUlkLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIC8vIGVuc3VyZSBsaWZlY3ljbGUgY3JlYXRlIGJlZm9yZSBkZXN0cm95IGlzIGVuYWJsZWQgdW5sZXNzIGV4cGxpY2l0bHkgc2V0IHRvIGZhbHNlXG4gICAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICAgIGNyZWF0ZUJlZm9yZURlc3Ryb3k6IHByb3BzLmxpZmVjeWNsZT8uY3JlYXRlQmVmb3JlRGVzdHJveSA/PyB0cnVlLCAvLyBkZWZhdWx0IHRvIHRydWVcbiAgICAgICAgICAuLi5wcm9wcy5saWZlY3ljbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBBZGQgdHJpZ2dlcnMgZm9yIHJlZHBsb3ltZW50IG9uIGNoZWNrc3VtIGNoYW5nZXMuXG4gICAgdGhpcy5kZXBsb3ltZW50UmVzb3VyY2UuYWRkT3ZlcnJpZGUoXG4gICAgICBcInRyaWdnZXJzXCIsXG4gICAgICBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5jYWxjdWxhdGVUcmlnZ2VycygpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIFRPRE86IEltcGxlbWVudCBSZW1vdmFsUG9saWN5LlJFVEFJTiB0aHJvdWdoIHJlbW92ZWQgYmxvY2sgaW4gVGVycmFmb3JtLlxuICAgIC8vIGlmIChwcm9wcy5yZXRhaW5EZXBsb3ltZW50cykge1xuICAgIC8vICAgdGhpcy5kZXBsb3ltZW50UmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgIC8vICAgICBwcmV2ZW50X2Rlc3Ryb3k6IHRydWUsXG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmRlcGxveW1lbnRJZCA9IHRoaXMuZGVwbG95bWVudFJlc291cmNlLmlkO1xuXG4gICAgaWYgKHByb3BzLnN0YWdlTmFtZSkge1xuICAgICAgdGhpcy5zdGFnZU5hbWUgPSBwcm9wcy5zdGFnZU5hbWU7XG4gICAgICB0aGlzLnN0YWdlUmVzb3VyY2UgPSBuZXcgYXBpR2F0ZXdheVN0YWdlLkFwaUdhdGV3YXlTdGFnZSh0aGlzLCBcIlN0YWdlXCIsIHtcbiAgICAgICAgcmVzdEFwaUlkOiBwcm9wcy5hcGkucmVzdEFwaUlkLFxuICAgICAgICBkZXBsb3ltZW50SWQ6IHRoaXMuZGVwbG95bWVudFJlc291cmNlLmlkLFxuICAgICAgICBzdGFnZU5hbWU6IHByb3BzLnN0YWdlTmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uXG4gICAgICAgICAgPyBgJHtwcm9wcy5kZXNjcmlwdGlvbn0gU3RhZ2VgXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICAgIC8vIERlcGVuZGVuY2llcyBvbiBtZXRob2RzIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgZGVwbG95bWVudFJlc291cmNlIGl0c2VsZi5cbiAgICAgIC8vIFRoZSBzdGFnZVJlc291cmNlIGltcGxpY2l0bHkgZGVwZW5kcyBvbiBkZXBsb3ltZW50UmVzb3VyY2UgdmlhIGRlcGxveW1lbnRJZC5cbiAgICB9XG5cbiAgICBpZiAocHJvcHMuYXBpIGluc3RhbmNlb2YgUmVzdEFwaUJhc2UpIHtcbiAgICAgIC8vIFRoZSBtZXRob2QgX2F0dGFjaERlcGxveW1lbnQgbWlnaHQgbmVlZCB0byBiZSBhZGFwdGVkIG9yIG1pZ2h0IG5vdCBleGlzdCBpbiBUZXJyYUNvbnN0cnVjdHMgUmVzdEFwaUJhc2VcbiAgICAgIC8vIFRoaXMgaXMgc3BlY2lmaWMgdG8gaG93IGBsYXRlc3REZXBsb3ltZW50YCBpcyBtYW5hZ2VkIGJ5IHRoZSBSZXN0QXBpIGNvbnN0cnVjdC5cbiAgICAgIChwcm9wcy5hcGkgYXMgYW55KS5fYXR0YWNoRGVwbG95bWVudD8uKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVHJpZ2dlcnMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdHJpZ2dlcnMgPSBbLi4udGhpcy50cmlnZ2VyQ29tcG9uZW50c107XG5cbiAgICAvLyBJZ25vcmUgSVJlc3RBcGkgdGhhdCBhcmUgaW1wb3J0ZWRcbiAgICBpZiAodGhpcy5hcGkgaW5zdGFuY2VvZiBSZXN0QXBpIHx8IHRoaXMuYXBpIGluc3RhbmNlb2YgU3BlY1Jlc3RBcGkpIHtcbiAgICAgIGNvbnN0IGFwaUludGVybmFsID0gdGhpcy5hcGkubm9kZVxuICAgICAgICAuZGVmYXVsdENoaWxkIGFzIGFwaUdhdGV3YXlSZXN0QXBpLkFwaUdhdGV3YXlSZXN0QXBpO1xuICAgICAgLy8gVE9ETzogQVdTQ0RLIFRyaWdnZXJzIHJlZGVwbG95bWVudCBvbiBhbnkgY2hhbmdlcyAobm90IGp1c3QgdGhlIGJvZHkgcHJvcGVydHkpLlxuICAgICAgY29uc3QgdGZSZXN0QVBJID0gYXBpSW50ZXJuYWwudG9UZXJyYWZvcm0oKTtcbiAgICAgIHRyaWdnZXJzLnB1c2godGZSZXN0QVBJLnJlc291cmNlLmF3c19hcGlfZ2F0ZXdheV9yZXN0X2FwaSk7XG4gICAgfVxuXG4gICAgLy8gTk9URTogQVdTQ0RLIGNhbGN1bGF0ZXMgY2hlY2tzdW0gYWdhaW5zdCBmdW5jdGlvbiBwcm9wZXJ0aWVzLlxuICAgIC8vIFRlcnJhZm9ybSBhbGxvd3MgdXNlIHRvIGluY2x1ZGUgdGhlIGVudGlyZSBvYmplY3QsIHNvIHdlIHVzZSB0aGF0IGZvciBjbGFyaXR5LlxuICAgIGNvbnN0IGNoZWNrc3VtID0gbWQ1aGFzaChcbiAgICAgIHRyaWdnZXJzXG4gICAgICAgIC5tYXAoKHgpID0+IHRoaXMuc3RhY2sucmVzb2x2ZSh4KSlcbiAgICAgICAgLm1hcCgoYykgPT4gSlNPTi5zdHJpbmdpZnkoYykpXG4gICAgICAgIC5qb2luKFwiXCIpLFxuICAgICk7XG4gICAgLy8gdHJpZ2dlcnMgaGFzIHRvIGJlIFJlY29yZDxzdHJpbmcsIHN0cmluZz4gZm9yIFRlcnJhZm9ybSB0byBhY2NlcHQgaXQuXG4gICAgcmV0dXJuIHsgcmVkZXBsb3ltZW50OiBjaGVja3N1bSB9O1xuXG4gICAgLy8gLy8gTk9URTogY29uc2lkZXIgY2hlY2tzdW0gdG9vIGNvbmZ1c2luZyBhbmQgdXNlIGZ1bGwgdHJpZ2dlciBvYmplY3RzIGluc3RlYWQ/XG4gICAgLy8gLy8gVE9ETzogVGhpcyBjYXVzZXMgXCJtaXNzaW5nIGF0dHJpYnV0ZXIgc2VwYXJhdG9yXCIgZXJyb3JzXG4gICAgLy8gcmV0dXJuIHRyaWdnZXJzLmxlbmd0aCAhPT0gMFxuICAgIC8vICAgPyB7IHJlZGVwbG95bWVudDogRm4uc2hhMShGbi5qc29uZW5jb2RlKHRoaXMuc3RhY2sucmVzb2x2ZSh0cmlnZ2VycykpKSB9XG4gICAgLy8gICA6IC8vIFRPRE86IFdyYXAgZWFjaCB0cmlnZ2VyIGluIHNoYSBpbnN0ZWFkPyB7IHJlZGVwbG95bWVudDogRm4uc2hhMShGbi5qc29uZW5jb2RlKCkpIH1cbiAgICAvLyAgICAgLy8gdHJpZ2dlcnMucmVkdWNlKFxuICAgIC8vICAgICAvLyAgIChhY2MsIGN1cnIpID0+IHtcbiAgICAvLyAgICAgLy8gICAgIGNvbnN0IGtleSA9IGB0cmlnZ2VyLSR7T2JqZWN0LmtleXMoYWNjKS5sZW5ndGggKyAxfWA7XG4gICAgLy8gICAgIC8vICAgICBhY2Nba2V5XSA9IHRoaXMuc3RhY2sucmVzb2x2ZShjdXJyKTtcbiAgICAvLyAgICAgLy8gICAgIHJldHVybiBhY2M7XG4gICAgLy8gICAgIC8vICAgfSxcbiAgICAvLyAgICAgLy8gICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIC8vICAgICAvLyApXG4gICAgLy8gICAgIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29tcG9uZW50IHRvIHRoZSBzZXQgb2YgdHJpZ2dlcnMgdGhhdCBkZXRlcm1pbmUgaWYgYSBuZXcgZGVwbG95bWVudCBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICpcbiAgICogVHJpZ2dlcnMgc2hvdWxkIGJlIHByZWZlcnJlZCBvdmVyIERlcGVuZGVuY2llcywgc2luY2UgRGVwZW5kZW5jaWVzIGNhbiBvbmx5IGNhcHR1cmUgZGVwZW5kZW5jeVxuICAgKiBvcmRlcmluZyBhbmQgd2lsbCBub3QgY2F1c2UgdGhlIHJlc291cmNlIHRvIHJlY3JlYXRlIChyZWRlcGxveSB0aGUgUkVTVCBBUEkpIHdpdGggdXBzdHJlYW1cbiAgICogY29uZmlndXJhdGlvbiBjaGFuZ2VzLlxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYnkgY29uc3RydWN0cyBvZiB0aGUgQVBJIEdhdGV3YXkgbW9kZWwgdGhhdCB3YW50IHRvXG4gICAqIGludmFsaWRhdGUgdGhlIGRlcGxveW1lbnQgd2hlbiB0aGVpciBzZXR0aW5ncyBjaGFuZ2UuIFRoZSBjb21wb25lbnQgd2lsbFxuICAgKiBiZSByZXNvbHZlZCBkdXJpbmcgc3ludGhlc2lzIHNvIHRva2VucyBhcmUgd2VsY29tZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1RyaWdnZXJzKGRhdGE6IGFueSkge1xuICAgIGlmICh0aGlzLm5vZGUubG9ja2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IG1vZGlmeSBkZXBsb3ltZW50IHRyaWdnZXJzIHdoZW4gdGhlIGNvbnN0cnVjdCBpcyBsb2NrZWQuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnRyaWdnZXJDb21wb25lbnRzLnB1c2goZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGRlcGVuZGVuY3kgZnJvbSB0aGlzIERlcGxveW1lbnQgdG8gYW4gQVBJIEdhdGV3YXkgTWV0aG9kLlxuICAgKiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgbWV0aG9kIGlzIGNyZWF0ZWQgYmVmb3JlIHRoZSBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAcGFyYW0gbWV0aG9kIFRoZSBNZXRob2QgY29uc3RydWN0IHRvIGFkZCBhcyBhIGRlcGVuZGVuY3kuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9hZGRNZXRob2REZXBlbmRlbmN5KG1ldGhvZDogTWV0aG9kKSB7XG4gICAgLy8gYWRkaW5nIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBjb25zdHJ1Y3RzIHVzaW5nIGBub2RlLmFkZERlcGVuZGVuY3koKWBcbiAgICAvLyB3aWxsIGNyZWF0ZSBhZGRpdGlvbmFsIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGBhd3NfYXBpX2dhdGV3YXlfZGVwbG95bWVudGBcbiAgICAvLyBhbmQgdGhlIGBhd3NfbGFtYmRhX3Blcm1pc3Npb25gIHJlc291cmNlcyAoY2hpbGRyZW4gdW5kZXIgTWV0aG9kKSxcbiAgICAvLyBjYXVzaW5nIGN5Y2xpYyBkZXBlbmRlbmN5IGVycm9ycy4gSGVuY2UsIGZhbGxpbmcgYmFjayB0byBkZWNsYXJpbmdcbiAgICAvLyBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGUgdW5kZXJseWluZyBUZXJyYWZvcm1FbGVtZW50cy5cbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeShcbiAgICAgIG1ldGhvZC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBhcGlHYXRld2F5TWV0aG9kLkFwaUdhdGV3YXlNZXRob2QsXG4gICAgKTtcblxuICAgIC8vIFRPRE86IFRyaWdnZXJzIGFyZSByZWNvbW1lbmRlZCBpbnN0ZWFkIG9mIGRlcGVuZGVuY2llcz9cbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVwbG95bWVudElkOiB0aGlzLmRlcGxveW1lbnRJZCxcbiAgICAgIHN0YWdlTmFtZTogdGhpcy5zdGFnZU5hbWUsXG4gICAgICBzdGFnZUludm9rZVVybDogdGhpcy5zdGFnZVJlc291cmNlPy5pbnZva2VVcmwsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -154,5 +154,5 @@ class DomainName extends aws_construct_1.AwsConstructBase {
154
154
  }
155
155
  exports.DomainName = DomainName;
156
156
  _a = JSII_RTTI_SYMBOL_1;
157
- DomainName[_a] = { fqn: "terraconstructs.aws.compute.DomainName", version: "0.1.1" };
157
+ DomainName[_a] = { fqn: "terraconstructs.aws.compute.DomainName", version: "0.1.2" };
158
158
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZG9tYWluLW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzR0FBc0c7QUFFdEcsc0RBRzZCO0FBQzdCLGlDQUE4QjtBQUU5QiwyREFBOEUsQ0FBQyxrQ0FBa0M7QUFDakgsdUNBQW1ELENBQUMsNkNBQTZDO0FBRWpHLG9EQUkwQjtBQUMxQiw0Q0FBd0M7QUF1QnhDOztHQUVHO0FBQ0gsSUFBWSxjQU1YO0FBTkQsV0FBWSxjQUFjO0lBQ3hCLDJCQUEyQjtJQUMzQixxQ0FBbUIsQ0FBQTtJQUVuQiwyQkFBMkI7SUFDM0IscUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQU5XLGNBQWMsOEJBQWQsY0FBYyxRQU16QjtBQStFRCxNQUFhLFVBQVcsU0FBUSxnQ0FBZ0I7SUFDOUM7O09BRUc7SUFDSSxNQUFNLENBQUMsd0JBQXdCLENBQ3BDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUEyQjtRQUUzQixNQUFNLE1BQU8sU0FBUSxnQ0FBZ0I7WUFLbkMsSUFBVyxPQUFPO2dCQUNoQixPQUFPO29CQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDM0IseUJBQXlCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QjtvQkFDekQsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtpQkFDOUQsQ0FBQztZQUNKLENBQUM7WUFDRCxZQUFZLENBQVksRUFBRSxDQUFTO2dCQUNqQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDVixrQkFBa0IsRUFBRSxzQkFBc0Isb0JBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxhQUFhO2lCQUN6RixDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7Z0JBZDdCLGVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUM5Qiw4QkFBeUIsR0FBRyxLQUFLLENBQUMscUJB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QkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRO1lBQ3JDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDWCxNQUFNLEVBQUUsR0FBRyxVQUFVLGNBQWMsSUFBSSxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUU1RyxJQUFJLHFDQUFzQixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDMUQsS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUztZQUNwQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVM7WUFDNUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUNuQixVQUF1QjtRQUl2QixJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2xDLE9BQU87WUFDTCxhQUFhLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUMvRCxpQkFBaUIsRUFBRSxVQUFVLENBQUMsT0FBTztTQUN0QyxDQUFDO0lBQ0osQ0FBQzs7QUE1TEgsZ0NBNkxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTg2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXkvbGliL2RvbWFpbi1uYW1lLnRzXG5cbmltcG9ydCB7XG4gIGFwaUdhdGV3YXlEb21haW5OYW1lLFxuICBhcGlnYXRld2F5djJBcGlNYXBwaW5nLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBCYXNlUGF0aE1hcHBpbmcsIEJhc2VQYXRoTWFwcGluZ09wdGlvbnMgfSBmcm9tIFwiLi9iYXNlLXBhdGgtbWFwcGluZ1wiOyAvLyBBc3N1bWluZyB0aGlzIHdpbGwgYmUgY29udmVydGVkXG5pbXBvcnQgeyBFbmRwb2ludFR5cGUsIElSZXN0QXBpIH0gZnJvbSBcIi4vcmVzdGFwaVwiOyAvLyBBc3N1bWluZyB0aGVzZSB3aWxsIGJlIGNvbnZlcnRlZC9hdmFpbGFibGVcbmltcG9ydCB7IElTdGFnZSB9IGZyb20gXCIuL3N0YWdlXCI7IC8vIEFzc3VtaW5nIHRoaXMgd2lsbCBiZSBjb252ZXJ0ZWQvYXZhaWxhYmxlXG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0ICogYXMgYWNtIGZyb20gXCIuLi9lZGdlXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcIi4uL3N0b3JhZ2VcIjtcbi8vIGltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9jb3JlL2xpYi9lcnJvcnNcIjsgLy8gVE9ETzogSW1wbGVtZW50IGFkdmFuY2VkIGVycm9yIGhhbmRsaW5nXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYW4gYXBpIG1hcHBpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlNYXBwaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYXBpIHBhdGggbmFtZSB0aGF0IGNhbGxlcnMgb2YgdGhlIEFQSSBtdXN0IHByb3ZpZGUgaW4gdGhlIFVSTCBhZnRlclxuICAgKiB0aGUgZG9tYWluIG5hbWUgKGUuZy4gYGV4YW1wbGUuY29tL2Jhc2UtcGF0aGApLiBJZiB5b3Ugc3BlY2lmeSB0aGlzXG4gICAqIHByb3BlcnR5LCBpdCBjYW4ndCBiZSBhbiBlbXB0eSBzdHJpbmcuXG4gICAqXG4gICAqIElmIHRoaXMgaXMgdW5kZWZpbmVkLCBhIG1hcHBpbmcgd2lsbCBiZSBhZGRlZCBmb3IgdGhlIGVtcHR5IHBhdGguIEFueSByZXF1ZXN0XG4gICAqIHRoYXQgZG9lcyBub3QgbWF0Y2ggYSBtYXBwaW5nIHdpbGwgZ2V0IHNlbnQgdG8gdGhlIEFQSSB0aGF0IGhhcyBiZWVuIG1hcHBlZFxuICAgKiB0byB0aGUgZW1wdHkgcGF0aC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBtYXAgcmVxdWVzdHMgZnJvbSB0aGUgZG9tYWluIHJvb3QgKGUuZy4gYGV4YW1wbGUuY29tYCkuXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIHRoZSBTU0wgcHJvdG9jb2wgdGhhdCB5b3Ugd2FudCBBUEkgR2F0ZXdheSB0byB1c2UgZm9yIEhUVFBTIGNvbm5lY3Rpb25zLlxuICovXG5leHBvcnQgZW51bSBTZWN1cml0eVBvbGljeSB7XG4gIC8qKiBDaXBoZXIgc3VpdGUgVExTIDEuMCAqL1xuICBUTFNfMV8wID0gXCJUTFNfMV8wXCIsXG5cbiAgLyoqIENpcGhlciBzdWl0ZSBUTFMgMS4yICovXG4gIFRMU18xXzIgPSBcIlRMU18xXzJcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb21haW5OYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIGRvbWFpbiBuYW1lIGZvciB5b3VyIEFQSS4gVXBwZXJjYXNlIGxldHRlcnMgYXJlIG5vdCBzdXBwb3J0ZWQuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2UgdG8gYW4gQVdTLW1hbmFnZWQgY2VydGlmaWNhdGUgZm9yIHVzZSBieSB0aGUgZWRnZS1vcHRpbWl6ZWRcbiAgICogZW5kcG9pbnQgZm9yIHRoZSBkb21haW4gbmFtZS4gRm9yIFwiRURHRVwiIGRvbWFpbiBuYW1lcywgdGhlIGNlcnRpZmljYXRlXG4gICAqIG5lZWRzIHRvIGJlIGluIHRoZSBVUyBFYXN0IChOLiBWaXJnaW5pYSkgcmVnaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU6IGFjbS5JQ2VydGlmaWNhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGVuZHBvaW50IGZvciB0aGlzIERvbWFpbk5hbWUuXG4gICAqIEBkZWZhdWx0IFJFR0lPTkFMXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludFR5cGU/OiBFbmRwb2ludFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKFRMUykgdmVyc2lvbiArIGNpcGhlciBzdWl0ZSBmb3IgdGhpcyBkb21haW4gbmFtZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBpZ2F0ZXdheS1kb21haW5uYW1lLmh0bWxcbiAgICogQGRlZmF1bHQgU2VjdXJpdHlQb2xpY3kuVExTXzFfMlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlQb2xpY3k/OiBTZWN1cml0eVBvbGljeTtcblxuICAvKipcbiAgICogVGhlIG11dHVhbCBUTFMgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBjdXN0b20gZG9tYWluIG5hbWUuXG4gICAqIEBkZWZhdWx0IC0gbVRMUyBpcyBub3QgY29uZmlndXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IG10bHM/OiBNVExTQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIG5hbWUgdGhhdCBjYWxsZXJzIG9mIHRoZSBBUEkgbXVzdCBwcm92aWRlIGluIHRoZSBVUkwgYWZ0ZXJcbiAgICogdGhlIGRvbWFpbiBuYW1lIChlLmcuIGBleGFtcGxlLmNvbS9iYXNlLXBhdGhgKS4gSWYgeW91IHNwZWNpZnkgdGhpc1xuICAgKiBwcm9wZXJ0eSwgaXQgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG1hcCByZXF1ZXN0cyBmcm9tIHRoZSBkb21haW4gcm9vdCAoZS5nLiBgZXhhbXBsZS5jb21gKS5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk5hbWVQcm9wcyBleHRlbmRzIERvbWFpbk5hbWVPcHRpb25zLCBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBJZiBzcGVjaWZpZWQsIGFsbCByZXF1ZXN0cyB0byB0aGlzIGRvbWFpbiB3aWxsIGJlIG1hcHBlZCB0byB0aGUgcHJvZHVjdGlvblxuICAgKiBkZXBsb3ltZW50IG9mIHRoaXMgQVBJLiBJZiB5b3Ugd2lzaCB0byBtYXAgdGhpcyBkb21haW4gdG8gbXVsdGlwbGUgQVBJc1xuICAgKiB3aXRoIGRpZmZlcmVudCBiYXNlIHBhdGhzLCB1c2UgYGFkZEJhc2VQYXRoTWFwcGluZ2Agb3IgYGFkZEFwaU1hcHBpbmdgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHlvdSB3aWxsIGhhdmUgdG8gY2FsbCBgYWRkQmFzZVBhdGhNYXBwaW5nYCB0byBtYXAgdGhpcyBkb21haW4gdG9cbiAgICogQVBJIGVuZHBvaW50cy5cbiAgICovXG4gIHJlYWRvbmx5IG1hcHBpbmc/OiBJUmVzdEFwaTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRG9tYWluTmFtZSBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lIChlLmcuIGBleGFtcGxlLmNvbWApXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRG9tYWluTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUm91dGU1MyBhbGlhcyB0YXJnZXQgdG8gdXNlIGluIG9yZGVyIHRvIGNvbm5lY3QgYSByZWNvcmQgc2V0IHRvIHRoaXMgZG9tYWluIHRocm91Z2ggYW4gYWxpYXMuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRGlzdHJpYnV0aW9uRG9tYWluTmFtZSxSZWdpb25hbERvbWFpbk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFJvdXRlNTMgaG9zdGVkIHpvbmUgSUQgdG8gdXNlIGluIG9yZGVyIHRvIGNvbm5lY3QgYSByZWNvcmQgc2V0IHRvIHRoaXMgZG9tYWluIHRocm91Z2ggYW4gYWxpYXMuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRGlzdHJpYnV0aW9uSG9zdGVkWm9uZUlkLFJlZ2lvbmFsSG9zdGVkWm9uZUlkXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERvbWFpbk5hbWUgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSURvbWFpbk5hbWUge1xuICAvKipcbiAgICogSW1wb3J0cyBhbiBleGlzdGluZyBkb21haW4gbmFtZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURvbWFpbk5hbWVBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogRG9tYWluTmFtZUF0dHJpYnV0ZXMsXG4gICk6IElEb21haW5OYW1lIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSURvbWFpbk5hbWUge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGRvbWFpbk5hbWUgPSBhdHRycy5kb21haW5OYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWUgPSBhdHRycy5kb21haW5OYW1lQWxpYXNUYXJnZXQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZG9tYWluTmFtZUFsaWFzSG9zdGVkWm9uZUlkID1cbiAgICAgICAgYXR0cnMuZG9tYWluTmFtZUFsaWFzSG9zdGVkWm9uZUlkO1xuICAgICAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZSxcbiAgICAgICAgICBkb21haW5OYW1lQWxpYXNEb21haW5OYW1lOiB0aGlzLmRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWUsXG4gICAgICAgICAgZG9tYWluTmFtZUFsaWFzSG9zdGVkWm9uZUlkOiB0aGlzLmRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGksIHtcbiAgICAgICAgICBlbnZpcm9ubWVudEZyb21Bcm46IGBhcm46YXdzOmFwaWdhdGV3YXk6JHtBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzKS5yZWdpb259OjovcmVzdGFwaXNgLFxuICAgICAgICB9KTsgLy8gRHVtbXkgQVJOIGZvciByZWdpb24vYWNjb3VudCBjb250ZXh0XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkb21haW5OYW1lQWxpYXNEb21haW5OYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBkb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlUGF0aHMgPSBuZXcgU2V0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWN1cml0eVBvbGljeT86IFNlY3VyaXR5UG9saWN5O1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5RG9tYWluTmFtZS5BcGlHYXRld2F5RG9tYWluTmFtZTtcblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZSxcbiAgICAgIGRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZUFsaWFzRG9tYWluTmFtZSxcbiAgICAgIGRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZDogdGhpcy5kb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb21haW5OYW1lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMuZW5kcG9pbnRUeXBlID0gcHJvcHMuZW5kcG9pbnRUeXBlIHx8IEVuZHBvaW50VHlwZS5SRUdJT05BTDtcbiAgICBjb25zdCBlZGdlID0gdGhpcy5lbmRwb2ludFR5cGUgPT09IEVuZHBvaW50VHlwZS5FREdFO1xuICAgIHRoaXMuc2VjdXJpdHlQb2xpY3kgPSBwcm9wcy5zZWN1cml0eVBvbGljeTtcblxuICAgIGlmIChcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZG9tYWluTmFtZSkgJiZcbiAgICAgIC9bQS1aXS8udGVzdChwcm9wcy5kb21haW5OYW1lKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRG9tYWluIG5hbWUgZG9lcyBub3Qgc3VwcG9ydCB1cHBlcmNhc2UgbGV0dGVycy4gR290OiAke3Byb3BzLmRvbWFpbk5hbWV9YCxcbiAgICAgICk7IC8vIFRPRE86IEltcGxlbWVudCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgIH1cblxuICAgIGNvbnN0IG10bHNDb25maWcgPSB0aGlzLmNvbmZpZ3VyZU1UTFMocHJvcHMubXRscyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5RG9tYWluTmFtZS5BcGlHYXRld2F5RG9tYWluTmFtZShcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICAgIGNlcnRpZmljYXRlQXJuOiBlZGdlID8gcHJvcHMuY2VydGlmaWNhdGUuY2VydGlmaWNhdGVBcm4gOiB1bmRlZmluZWQsXG4gICAgICAgIHJlZ2lvbmFsQ2VydGlmaWNhdGVBcm46ICFlZGdlXG4gICAgICAgICAgPyBwcm9wcy5jZXJ0aWZpY2F0ZS5jZXJ0aWZpY2F0ZUFyblxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHsgdHlwZXM6IFt0aGlzLmVuZHBvaW50VHlwZV0gfSxcbiAgICAgICAgbXV0dWFsVGxzQXV0aGVudGljYXRpb246IG10bHNDb25maWcsXG4gICAgICAgIHNlY3VyaXR5UG9saWN5OiBwcm9wcy5zZWN1cml0eVBvbGljeSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuZG9tYWluTmFtZSA9IHRoaXMucmVzb3VyY2UuZG9tYWluTmFtZTtcblxuICAgIHRoaXMuZG9tYWluTmFtZUFsaWFzRG9tYWluTmFtZSA9IGVkZ2VcbiAgICAgID8gdGhpcy5yZXNvdXJjZS5jbG91ZGZyb250RG9tYWluTmFtZVxuICAgICAgOiB0aGlzLnJlc291cmNlLnJlZ2lvbmFsRG9tYWluTmFtZTtcblxuICAgIHRoaXMuZG9tYWluTmFtZUFsaWFzSG9zdGVkWm9uZUlkID0gZWRnZVxuICAgICAgPyB0aGlzLnJlc291cmNlLmNsb3VkZnJvbnRab25lSWRcbiAgICAgIDogdGhpcy5yZXNvdXJjZS5yZWdpb25hbFpvbmVJZDtcblxuICAgIGNvbnN0IG11bHRpTGV2ZWwgPSB0aGlzLnZhbGlkYXRlQmFzZVBhdGgocHJvcHMuYmFzZVBhdGgpO1xuICAgIGlmIChwcm9wcy5tYXBwaW5nICYmICFtdWx0aUxldmVsKSB7XG4gICAgICB0aGlzLmFkZEJhc2VQYXRoTWFwcGluZyhwcm9wcy5tYXBwaW5nLCB7XG4gICAgICAgIGJhc2VQYXRoOiBwcm9wcy5iYXNlUGF0aCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAocHJvcHMubWFwcGluZyAmJiBtdWx0aUxldmVsKSB7XG4gICAgICB0aGlzLmFkZEFwaU1hcHBpbmcocHJvcHMubWFwcGluZy5kZXBsb3ltZW50U3RhZ2UsIHtcbiAgICAgICAgYmFzZVBhdGg6IHByb3BzLmJhc2VQYXRoLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUJhc2VQYXRoKHBhdGg/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc011bHRpTGV2ZWwocGF0aCkpIHtcbiAgICAgIGlmICh0aGlzLmVuZHBvaW50VHlwZSA9PT0gRW5kcG9pbnRUeXBlLkVER0UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwibXVsdGktbGV2ZWwgYmFzZVBhdGggaXMgb25seSBzdXBwb3J0ZWQgd2hlbiBlbmRwb2ludFR5cGUgaXMgRW5kcG9pbnRUeXBlLlJFR0lPTkFMXCIsXG4gICAgICAgICk7IC8vIFRPRE86IEltcGxlbWVudCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnNlY3VyaXR5UG9saWN5ICYmXG4gICAgICAgIHRoaXMuc2VjdXJpdHlQb2xpY3kgIT09IFNlY3VyaXR5UG9saWN5LlRMU18xXzJcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJzZWN1cml0eVBvbGljeSBtdXN0IGJlIHNldCB0byBUTFNfMV8yIGlmIG11bHRpLWxldmVsIGJhc2VQYXRoIGlzIHByb3ZpZGVkXCIsXG4gICAgICAgICk7IC8vIFRPRE86IEltcGxlbWVudCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNdWx0aUxldmVsKHBhdGg/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHBhdGg/LnNwbGl0KFwiL1wiKS5maWx0ZXIoKHgpID0+ICEheCkgPz8gW10pLmxlbmd0aCA+PSAyO1xuICB9XG5cbiAgcHVibGljIGFkZEJhc2VQYXRoTWFwcGluZyhcbiAgICB0YXJnZXRBcGk6IElSZXN0QXBpLFxuICAgIG9wdGlvbnM6IEJhc2VQYXRoTWFwcGluZ09wdGlvbnMgPSB7fSxcbiAgKTogQmFzZVBhdGhNYXBwaW5nIHtcbiAgICBpZiAodGhpcy5iYXNlUGF0aHMuaGFzKG9wdGlvbnMuYmFzZVBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBEb21haW5OYW1lICR7dGhpcy5mcmllbmRseU5hbWV9IGFscmVhZHkgaGFzIGEgbWFwcGluZyBmb3IgcGF0aCAke29wdGlvbnMuYmFzZVBhdGh9YCxcbiAgICAgICk7IC8vIFRPRE86IEltcGxlbWVudCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgIH1cbiAgICBpZiAodGhpcy5pc011bHRpTGV2ZWwob3B0aW9ucy5iYXNlUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Jhc2VQYXRoTWFwcGluZyBkb2VzIG5vdCBzdXBwb3J0IG11bHRpLWxldmVsIHBhdGhzLiBVc2UgXCJhZGRBcGlNYXBwaW5nIGluc3RlYWQuJyxcbiAgICAgICk7IC8vIFRPRE86IEltcGxlbWVudCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgIH1cblxuICAgIHRoaXMuYmFzZVBhdGhzLmFkZChvcHRpb25zLmJhc2VQYXRoKTtcbiAgICBjb25zdCBiYXNlUGF0aElkUGFydCA9IG9wdGlvbnMuYmFzZVBhdGhcbiAgICAgID8gb3B0aW9ucy5iYXNlUGF0aC5yZXBsYWNlKC9cXC8vZywgXCJfXCIpXG4gICAgICA6IFwicm9vdFwiO1xuICAgIGNvbnN0IGlkID0gYE1hcC0ke2Jhc2VQYXRoSWRQYXJ0fS0ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLnVuaXF1ZVJlc291cmNlTmFtZSh0YXJnZXRBcGkubm9kZSl9YDtcblxuICAgIC8vIEFzc3VtaW5nIEJhc2VQYXRoTWFwcGluZyBpcyBhIFRlcnJhQ29uc3RydWN0IHRoYXQgd3JhcHMgYXBpR2F0ZXdheUJhc2VQYXRoTWFwcGluZy5BcGlHYXRld2F5QmFzZVBhdGhNYXBwaW5nXG4gICAgcmV0dXJuIG5ldyBCYXNlUGF0aE1hcHBpbmcodGhpcywgaWQsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHRoaXMsIC8vIFBhc3MgdGhlIERvbWFpbk5hbWUgY29uc3RydWN0IGl0c2VsZlxuICAgICAgcmVzdEFwaTogdGFyZ2V0QXBpLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRBcGlNYXBwaW5nKFxuICAgIHRhcmdldFN0YWdlOiBJU3RhZ2UsXG4gICAgb3B0aW9uczogQXBpTWFwcGluZ09wdGlvbnMgPSB7fSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYmFzZVBhdGhzLmhhcyhvcHRpb25zLmJhc2VQYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRG9tYWluTmFtZSAke3RoaXMubm9kZS5pZH0gYWxyZWFkeSBoYXMgYSBtYXBwaW5nIGZvciBwYXRoICR7b3B0aW9ucy5iYXNlUGF0aH0uICgke3RoaXMubm9kZS5wYXRofSlgLFxuICAgICAgKTsgLy8gVE9ETzogSW1wbGVtZW50IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yXG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVCYXNlUGF0aChvcHRpb25zLmJhc2VQYXRoKTtcbiAgICB0aGlzLmJhc2VQYXRocy5hZGQob3B0aW9ucy5iYXNlUGF0aCk7XG4gICAgY29uc3QgYmFzZVBhdGhJZFBhcnQgPSBvcHRpb25zLmJhc2VQYXRoXG4gICAgICA/IG9wdGlvbnMuYmFzZVBhdGgucmVwbGFjZSgvXFwvL2csIFwiX1wiKVxuICAgICAgOiBcInJvb3RcIjtcbiAgICBjb25zdCBpZCA9IGBBcGlNYXAtJHtiYXNlUGF0aElkUGFydH0tJHtBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzKS51bmlxdWVSZXNvdXJjZU5hbWUodGFyZ2V0U3RhZ2Uubm9kZSl9YDtcblxuICAgIG5ldyBhcGlnYXRld2F5djJBcGlNYXBwaW5nLkFwaWdhdGV3YXl2MkFwaU1hcHBpbmcodGhpcywgaWQsIHtcbiAgICAgIGFwaUlkOiB0YXJnZXRTdGFnZS5yZXN0QXBpLnJlc3RBcGlJZCxcbiAgICAgIHN0YWdlOiB0YXJnZXRTdGFnZS5zdGFnZU5hbWUsXG4gICAgICBkb21haW5OYW1lOiB0aGlzLmRvbWFpbk5hbWUsXG4gICAgICBhcGlNYXBwaW5nS2V5OiBvcHRpb25zLmJhc2VQYXRoLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVNVExTKFxuICAgIG10bHNDb25maWc/OiBNVExTQ29uZmlnLFxuICApOlxuICAgIHwgYXBpR2F0ZXdheURvbWFpbk5hbWUuQXBpR2F0ZXdheURvbWFpbk5hbWVNdXR1YWxUbHNBdXRoZW50aWNhdGlvblxuICAgIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIW10bHNDb25maWcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRydXN0c3RvcmVVcmk6IG10bHNDb25maWcuYnVja2V0LnMzVXJsRm9yT2JqZWN0KG10bHNDb25maWcua2V5KSxcbiAgICAgIHRydXN0c3RvcmVWZXJzaW9uOiBtdGxzQ29uZmlnLnZlcnNpb24sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk5hbWVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBkb21haW4gbmFtZSAoZS5nLiBgZXhhbXBsZS5jb21gKVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUm91dGU1MyBhbGlhcyB0YXJnZXQgdG8gdXNlIGluIG9yZGVyIHRvIGNvbm5lY3QgYSByZWNvcmQgc2V0IHRvIHRoaXMgZG9tYWluIHRocm91Z2ggYW4gYWxpYXMuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lQWxpYXNUYXJnZXQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFJvdXRlNTMgaG9zdGVkIHpvbmUgSUQgdG8gdXNlIGluIG9yZGVyIHRvIGNvbm5lY3QgYSByZWNvcmQgc2V0IHRvIHRoaXMgZG9tYWluIHRocm91Z2ggYW4gYWxpYXMuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgbVRMUyBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIGN1c3RvbSBkb21haW4gbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNVExTQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdGhhdCB0aGUgdHJ1c3Qgc3RvcmUgaXMgaG9zdGVkIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUga2V5IGluIFMzIHRvIGxvb2sgYXQgZm9yIHRoZSB0cnVzdCBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAgVGhlIHZlcnNpb24gb2YgdGhlIFMzIG9iamVjdCB0aGF0IGNvbnRhaW5zIHlvdXIgdHJ1c3RzdG9yZS5cbiAgICogIFRvIHNwZWNpZnkgYSB2ZXJzaW9uLCB5b3UgbXVzdCBoYXZlIHZlcnNpb25pbmcgZW5hYmxlZCBmb3IgdGhlIFMzIGJ1Y2tldC5cbiAgICogIEBkZWZhdWx0IC0gbGF0ZXN0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG59XG4iXX0=
@@ -59,5 +59,5 @@ class EventInvokeConfig extends aws_construct_1.AwsConstructBase {
59
59
  }
60
60
  exports.EventInvokeConfig = EventInvokeConfig;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- EventInvokeConfig[_a] = { fqn: "terraconstructs.aws.compute.EventInvokeConfig", version: "0.1.1" };
62
+ EventInvokeConfig[_a] = { fqn: "terraconstructs.aws.compute.EventInvokeConfig", version: "0.1.2" };
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaW52b2tlLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ldmVudC1pbnZva2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXNFO0FBRXRFLG9EQUF1RTtBQUV2RSxpRUFBdUU7QUFnRXZFOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLGdDQUFnQjtJQUVyRCxvQ0FBb0M7SUFDcEMsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUNFLEtBQUssQ0FBQyxXQUFXO1lBQ2pCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNqQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixxRkFBcUYsQ0FDdEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFDcEQsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLDhDQUErQixDQUFDLCtCQUErQixDQUNqRSxJQUFJLEVBQ0osVUFBVSxFQUNWO2dCQUNFLGlCQUFpQixFQUNmLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFNBQVM7b0JBQ2hDLENBQUMsQ0FBQzt3QkFDRSxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVM7NEJBQ2pCLENBQUMsQ0FBQztnQ0FDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0NBQ3BELElBQUksRUFBRSxzQ0FBZSxDQUFDLE9BQU87aUNBQzlCLENBQUM7NkJBQ0g7NEJBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDUCxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVM7NEJBQ2pCLENBQUMsQ0FBQztnQ0FDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0NBQ3BELElBQUksRUFBRSxzQ0FBZSxDQUFDLE9BQU87aUNBQzlCLENBQUM7NkJBQ0g7NEJBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxQkFDUjtvQkFDSCxDQUFDLENBQUMsU0FBUztnQkFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUN6Qyx3QkFBd0IsRUFDdEIsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtnQkFDcEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxTQUFTO2dCQUN0RCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxTQUFTO2FBQ3hDLENBQ0YsQ0FBQztJQUNOLENBQUM7O0FBekRILDhDQTBEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxhbWJkYUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCIuL2Z1bmN0aW9uLWJhc2VcIjtcbmltcG9ydCB7IERlc3RpbmF0aW9uVHlwZSwgSURlc3RpbmF0aW9uIH0gZnJvbSBcIi4vZnVuY3Rpb24tZGVzdGluYXRpb25cIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyB0byBhZGQgYW4gRXZlbnRJbnZva2VDb25maWcgdG8gYSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVzdGluYXRpb24gZm9yIGZhaWxlZCBpbnZvY2F0aW9ucy5cbiAgICpcbiAgICogRW5zdXJlIHRoZSBMYW1iZGEgRnVuY3Rpb24gSUFNIFJvbGUgaGFzIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyBmb3IgdGhlIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzdGluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG9uRmFpbHVyZT86IElEZXN0aW5hdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlc3RpbmF0aW9uIGZvciBzdWNjZXNzZnVsIGludm9jYXRpb25zLlxuICAgKlxuICAgKiBFbnN1cmUgdGhlIExhbWJkYSBGdW5jdGlvbiBJQU0gUm9sZSBoYXMgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIGZvciB0aGUgZGVzdGluYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgb25TdWNjZXNzPzogSURlc3RpbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhZ2Ugb2YgYSByZXF1ZXN0IHRoYXQgTGFtYmRhIHNlbmRzIHRvIGEgZnVuY3Rpb24gZm9yXG4gICAqIHByb2Nlc3NpbmcuXG4gICAqXG4gICAqIE1pbmltdW06IDYwIHNlY29uZHNcbiAgICogTWF4aW11bTogNiBob3Vyc1xuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5ob3Vycyg2KVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RXZlbnRBZ2U/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5IHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IuXG4gICAqXG4gICAqIE1pbmltdW06IDBcbiAgICogTWF4aW11bTogMlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSByZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEV2ZW50SW52b2tlQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRJbnZva2VDb25maWdQcm9wcyBleHRlbmRzIEV2ZW50SW52b2tlQ29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVhbGlmaWVyXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGF0ZXN0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgb3B0aW9ucyBmb3IgYXN5bmNocm9ub3VzIGludm9jYXRpb24gb24gYSB2ZXJzaW9uIG9yIGFuIGFsaWFzXG4gKlxuICogQnkgZGVmYXVsdCwgTGFtYmRhIHJldHJpZXMgYW4gYXN5bmNocm9ub3VzIGludm9jYXRpb24gdHdpY2UgaWYgdGhlIGZ1bmN0aW9uXG4gKiByZXR1cm5zIGFuIGVycm9yLiBJdCByZXRhaW5zIGV2ZW50cyBpbiBhIHF1ZXVlIGZvciB1cCB0byBzaXggaG91cnMuIFdoZW4gYW5cbiAqIGV2ZW50IGZhaWxzIGFsbCBwcm9jZXNzaW5nIGF0dGVtcHRzIG9yIHN0YXlzIGluIHRoZSBhc3luY2hyb25vdXMgaW52b2NhdGlvblxuICogcXVldWUgZm9yIHRvbyBsb25nLCBMYW1iZGEgZGlzY2FyZHMgaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEludm9rZUNvbmZpZyBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGxhbWJkYUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcuTGFtYmRhRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZztcbiAgLy8gVE9ETzogb3V0cHV0IHVuZGVmaW5lZCBzdXBwb3J0Li4uXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV2ZW50SW52b2tlQ29uZmlnUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMubWF4RXZlbnRBZ2UgJiZcbiAgICAgIChwcm9wcy5tYXhFdmVudEFnZS50b1NlY29uZHMoKSA8IDYwIHx8XG4gICAgICAgIHByb3BzLm1heEV2ZW50QWdlLnRvU2Vjb25kcygpID4gMjE2MDApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYG1heGltdW1FdmVudEFnZWAgbXVzdCByZXByZXNlbnQgYSBgRHVyYXRpb25gIHRoYXQgaXMgYmV0d2VlbiA2MCBhbmQgMjE2MDAgc2Vjb25kcy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMucmV0cnlBdHRlbXB0cyAmJlxuICAgICAgKHByb3BzLnJldHJ5QXR0ZW1wdHMgPCAwIHx8IHByb3BzLnJldHJ5QXR0ZW1wdHMgPiAyKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYHJldHJ5QXR0ZW1wdHNgIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID1cbiAgICAgIG5ldyBsYW1iZGFGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnLkxhbWJkYUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAge1xuICAgICAgICAgIGRlc3RpbmF0aW9uQ29uZmlnOlxuICAgICAgICAgICAgcHJvcHMub25GYWlsdXJlIHx8IHByb3BzLm9uU3VjY2Vzc1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIC4uLihwcm9wcy5vbkZhaWx1cmVcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZhaWx1cmU6IHByb3BzLm9uRmFpbHVyZS5iaW5kKHRoaXMsIHByb3BzLmZ1bmN0aW9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IERlc3RpbmF0aW9uVHlwZS5GQUlMVVJFLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgIC4uLihwcm9wcy5vblN1Y2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M6IHByb3BzLm9uU3VjY2Vzcy5iaW5kKHRoaXMsIHByb3BzLmZ1bmN0aW9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IERlc3RpbmF0aW9uVHlwZS5TVUNDRVNTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIG1heGltdW1FdmVudEFnZUluU2Vjb25kczpcbiAgICAgICAgICAgIHByb3BzLm1heEV2ZW50QWdlICYmIHByb3BzLm1heEV2ZW50QWdlLnRvU2Vjb25kcygpLFxuICAgICAgICAgIG1heGltdW1SZXRyeUF0dGVtcHRzOiBwcm9wcy5yZXRyeUF0dGVtcHRzID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdWFsaWZpZXI6IHByb3BzLnF1YWxpZmllciB8fCBcIiRMQVRFU1RcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -68,7 +68,7 @@ class FilterRule {
68
68
  }
69
69
  exports.FilterRule = FilterRule;
70
70
  _a = JSII_RTTI_SYMBOL_1;
71
- FilterRule[_a] = { fqn: "terraconstructs.aws.compute.FilterRule", version: "0.1.1" };
71
+ FilterRule[_a] = { fqn: "terraconstructs.aws.compute.FilterRule", version: "0.1.2" };
72
72
  /**
73
73
  * Filter criteria for Lambda event filtering
74
74
  */
@@ -82,5 +82,5 @@ class FilterCriteria {
82
82
  }
83
83
  exports.FilterCriteria = FilterCriteria;
84
84
  _b = JSII_RTTI_SYMBOL_1;
85
- FilterCriteria[_b] = { fqn: "terraconstructs.aws.compute.FilterCriteria", version: "0.1.1" };
85
+ FilterCriteria[_b] = { fqn: "terraconstructs.aws.compute.FilterCriteria", version: "0.1.2" };
86
86
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc291cmNlLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ldmVudC1zb3VyY2UtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0dBQStHO0FBQy9HOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBQ3JCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLElBQUk7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0I7UUFDbkQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQWM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDbEMsT0FBTyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQ25CLEtBQWEsRUFDYixNQUFjO1FBRWQsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxTQUFTO1FBQ3JCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDOztBQXBFSCxnQ0FxRUM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBQ3pCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUE4QjtRQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDOztBQU5ILHdDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9ldmVudC1zb3VyY2UtZmlsdGVyLnRzXG4vKipcbiAqIEZpbHRlciBydWxlcyBmb3IgTGFtYmRhIGV2ZW50IGZpbHRlcmluZ1xuICovXG5leHBvcnQgY2xhc3MgRmlsdGVyUnVsZSB7XG4gIC8qKlxuICAgKiBOdWxsIGNvbXBhcmlzb24gb3BlcmF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbnVsbCgpOiBhbnkge1xuICAgIHJldHVybiBbbnVsbF07XG4gIH1cblxuICAvKipcbiAgICogRW1wdHkgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcIlwiXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFcXVhbHMgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0VxdWFsKGl0ZW06IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgcmV0dXJuIFt7IG51bWVyaWM6IFtcIj1cIiwgaXRlbV0gfV07XG4gICAgfVxuICAgIHJldHVybiBbaXRlbV07XG4gIH1cblxuICAvKipcbiAgICogT3IgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvciguLi5lbGVtOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZWxlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3QgZXF1YWxzIGNvbXBhcmlzb24gb3BlcmF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm90RXF1YWxzKGVsZW06IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfVtdIHtcbiAgICByZXR1cm4gW3sgXCJhbnl0aGluZy1idXRcIjogW2VsZW1dIH1dO1xuICB9XG5cbiAgLyoqXG4gICAqIE51bWVyaWMgcmFuZ2UgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiZXR3ZWVuKFxuICAgIGZpcnN0OiBudW1iZXIsXG4gICAgc2Vjb25kOiBudW1iZXIsXG4gICk6IHsgW2tleTogc3RyaW5nXTogYW55W10gfVtdIHtcbiAgICByZXR1cm4gW3sgbnVtZXJpYzogW1wiPlwiLCBmaXJzdCwgXCI8PVwiLCBzZWNvbmRdIH1dO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXN0cyBjb21wYXJpc29uIG9wZXJhdG9yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4aXN0cygpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfVtdIHtcbiAgICByZXR1cm4gW3sgZXhpc3RzOiB0cnVlIH1dO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdCBleGlzdHMgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub3RFeGlzdHMoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH1bXSB7XG4gICAgcmV0dXJuIFt7IGV4aXN0czogZmFsc2UgfV07XG4gIH1cblxuICAvKipcbiAgICogQmVnaW5zIHdpdGggY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiZWdpbnNXaXRoKGVsZW06IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIFt7IHByZWZpeDogZWxlbSB9XTtcbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlciBjcml0ZXJpYSBmb3IgTGFtYmRhIGV2ZW50IGZpbHRlcmluZ1xuICovXG5leHBvcnQgY2xhc3MgRmlsdGVyQ3JpdGVyaWEge1xuICAvKipcbiAgICogRmlsdGVyIGZvciBldmVudCBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyKGZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7IHBhdHRlcm46IEpTT04uc3RyaW5naWZ5KGZpbHRlcikgfTtcbiAgfVxufVxuIl19
@@ -206,7 +206,7 @@ class EventSourceMapping extends aws_construct_1.AwsConstructBase {
206
206
  }
207
207
  exports.EventSourceMapping = EventSourceMapping;
208
208
  _a = JSII_RTTI_SYMBOL_1;
209
- EventSourceMapping[_a] = { fqn: "terraconstructs.aws.compute.EventSourceMapping", version: "0.1.1" };
209
+ EventSourceMapping[_a] = { fqn: "terraconstructs.aws.compute.EventSourceMapping", version: "0.1.2" };
210
210
  /**
211
211
  * The type of authentication protocol or the VPC components for your event source's SourceAccessConfiguration
212
212
  * @see https://docs.aws.amazon.com/lambda/latest/dg/API_SourceAccessConfiguration.html#SSS-Type-SourceAccessConfiguration-Type
@@ -22,5 +22,5 @@ class S3OnFailureDestination {
22
22
  }
23
23
  exports.S3OnFailureDestination = S3OnFailureDestination;
24
24
  _a = JSII_RTTI_SYMBOL_1;
25
- S3OnFailureDestination[_a] = { fqn: "terraconstructs.aws.compute.sources.S3OnFailureDestination", version: "0.1.1" };
25
+ S3OnFailureDestination[_a] = { fqn: "terraconstructs.aws.compute.sources.S3OnFailureDestination", version: "0.1.2" };
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtb25mYWlsdXJlLWRlc3RpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2V2ZW50LXNvdXJjZXMvczMtb25mYWlsdXJlLWRlc3RpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUNqQyxZQUE2QixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUFHLENBQUM7SUFFeEQ7O09BRUc7SUFDSSxJQUFJLENBQ1QsT0FBNEIsRUFDNUIsYUFBd0I7UUFFeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFMUMsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDbkMsQ0FBQztJQUNKLENBQUM7O0FBZkgsd0RBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGxxRGVzdGluYXRpb25Db25maWcsXG4gIElFdmVudFNvdXJjZURscSxcbiAgSUV2ZW50U291cmNlTWFwcGluZyxcbiAgSUZ1bmN0aW9uLFxufSBmcm9tIFwiLi4vXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi8uLi9zdG9yYWdlXCI7XG5cbi8qKlxuICogQW4gUzMgZGVhZCBsZXR0ZXIgYnVja2V0IGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgTGFtYmRhIGV2ZW50IHNvdXJjZVxuICovXG5leHBvcnQgY2xhc3MgUzNPbkZhaWx1cmVEZXN0aW5hdGlvbiBpbXBsZW1lbnRzIElFdmVudFNvdXJjZURscSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVja2V0OiBzdG9yYWdlLklCdWNrZXQpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgRExRXG4gICAqL1xuICBwdWJsaWMgYmluZChcbiAgICBfdGFyZ2V0OiBJRXZlbnRTb3VyY2VNYXBwaW5nLFxuICAgIHRhcmdldEhhbmRsZXI6IElGdW5jdGlvbixcbiAgKTogRGxxRGVzdGluYXRpb25Db25maWcge1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHRhcmdldEhhbmRsZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLmJ1Y2tldC5idWNrZXRBcm4sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -21,5 +21,5 @@ class S3EventSource {
21
21
  }
22
22
  exports.S3EventSource = S3EventSource;
23
23
  _a = JSII_RTTI_SYMBOL_1;
24
- S3EventSource[_a] = { fqn: "terraconstructs.aws.compute.sources.S3EventSource", version: "0.1.1" };
24
+ S3EventSource[_a] = { fqn: "terraconstructs.aws.compute.sources.S3EventSource", version: "0.1.2" };
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZXZlbnQtc291cmNlcy9zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDZEQUE2RDtBQWlCN0Q7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEIsWUFDbUIsTUFBdUIsRUFDdkIsS0FBeUI7UUFEekIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7SUFDekMsQ0FBQztJQUVHLElBQUksQ0FBQyxNQUF5QjtRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQzlCLEtBQUssRUFDTCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFDdEMsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOztBQWZILHNDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi8uLi9zdG9yYWdlXCI7XG5pbXBvcnQgKiBhcyBub3RpZnMgZnJvbSBcIi4uLy4uL3N0b3JhZ2Uvbm90aWZpY2F0aW9uLXRhcmdldHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTM0V2ZW50U291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHMzIGV2ZW50IHR5cGVzIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBldmVudHM6IHN0b3JhZ2UuRXZlbnRUeXBlW107XG5cbiAgLyoqXG4gICAqIFMzIG9iamVjdCBrZXkgZmlsdGVyIHJ1bGVzIHRvIGRldGVybWluZSB3aGljaCBvYmplY3RzIHRyaWdnZXIgdGhpcyBldmVudC5cbiAgICogRWFjaCBmaWx0ZXIgbXVzdCBpbmNsdWRlIGEgYHByZWZpeGAgYW5kL29yIGBzdWZmaXhgIHRoYXQgd2lsbCBiZSBtYXRjaGVkXG4gICAqIGFnYWluc3QgdGhlIHMzIG9iamVjdCBrZXkuIFJlZmVyIHRvIHRoZSBTMyBEZXZlbG9wZXIgR3VpZGUgZm9yIGRldGFpbHNcbiAgICogYWJvdXQgYWxsb3dlZCBmaWx0ZXIgcnVsZXMuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzPzogc3RvcmFnZS5Ob3RpZmljYXRpb25LZXlGaWx0ZXJbXTtcbn1cblxuLyoqXG4gKiBVc2UgUzMgYnVja2V0IG5vdGlmaWNhdGlvbnMgYXMgYW4gZXZlbnQgc291cmNlIGZvciBBV1MgTGFtYmRhLlxuICovXG5leHBvcnQgY2xhc3MgUzNFdmVudFNvdXJjZSBpbXBsZW1lbnRzIGNvbXB1dGUuSUV2ZW50U291cmNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTM0V2ZW50U291cmNlUHJvcHMsXG4gICkge31cblxuICBwdWJsaWMgYmluZCh0YXJnZXQ6IGNvbXB1dGUuSUZ1bmN0aW9uKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMucHJvcHMuZmlsdGVycyB8fCBbXTtcbiAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIHRoaXMucHJvcHMuZXZlbnRzKSB7XG4gICAgICB0aGlzLmJ1Y2tldC5hZGRFdmVudE5vdGlmaWNhdGlvbihcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG5ldyBub3RpZnMuRnVuY3Rpb25EZXN0aW5hdGlvbih0YXJnZXQpLFxuICAgICAgICAuLi5maWx0ZXJzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -22,5 +22,5 @@ class SqsDlq {
22
22
  }
23
23
  exports.SqsDlq = SqsDlq;
24
24
  _a = JSII_RTTI_SYMBOL_1;
25
- SqsDlq[_a] = { fqn: "terraconstructs.aws.compute.sources.SqsDlq", version: "0.1.1" };
25
+ SqsDlq[_a] = { fqn: "terraconstructs.aws.compute.sources.SqsDlq", version: "0.1.2" };
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWRscS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ldmVudC1zb3VyY2VzL3Nxcy1kbHEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFRQTs7R0FFRztBQUNILE1BQWEsTUFBTTtJQUNqQixZQUE2QixLQUFvQjtRQUFwQixVQUFLLEdBQUwsS0FBSyxDQUFlO0lBQUcsQ0FBQztJQUVyRDs7T0FFRztJQUNJLElBQUksQ0FDVCxPQUE0QixFQUM1QixhQUF3QjtRQUV4QixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVDLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1NBQ2pDLENBQUM7SUFDSixDQUFDOztBQWZILHdCQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERscURlc3RpbmF0aW9uQ29uZmlnLFxuICBJRXZlbnRTb3VyY2VEbHEsXG4gIElFdmVudFNvdXJjZU1hcHBpbmcsXG4gIElGdW5jdGlvbixcbn0gZnJvbSBcIi4uL1wiO1xuaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLi8uLi9ub3RpZnlcIjtcblxuLyoqXG4gKiBBbiBTUVMgZGVhZCBsZXR0ZXIgcXVldWUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBMYW1iZGEgZXZlbnQgc291cmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBTcXNEbHEgaW1wbGVtZW50cyBJRXZlbnRTb3VyY2VEbHEge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHF1ZXVlOiBub3RpZnkuSVF1ZXVlKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIERMUVxuICAgKi9cbiAgcHVibGljIGJpbmQoXG4gICAgX3RhcmdldDogSUV2ZW50U291cmNlTWFwcGluZyxcbiAgICB0YXJnZXRIYW5kbGVyOiBJRnVuY3Rpb24sXG4gICk6IERscURlc3RpbmF0aW9uQ29uZmlnIHtcbiAgICB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKHRhcmdldEhhbmRsZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLnF1ZXVlLnF1ZXVlQXJuLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==