terraconstructs 0.0.19 → 0.0.20

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 (221) hide show
  1. package/.jsii +662 -19
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.js +1 -1
  4. package/lib/aws/aws-stack.js +2 -2
  5. package/lib/aws/aws-tags.js +2 -2
  6. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  7. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  8. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  9. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  10. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  11. package/lib/aws/cloudwatch/alarm.js +1 -1
  12. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  13. package/lib/aws/cloudwatch/dashboard.js +1 -1
  14. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  15. package/lib/aws/cloudwatch/graph.js +8 -8
  16. package/lib/aws/cloudwatch/layout.js +3 -3
  17. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  18. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  19. package/lib/aws/cloudwatch/log-group.js +1 -1
  20. package/lib/aws/cloudwatch/log-query.js +1 -1
  21. package/lib/aws/cloudwatch/log-stream.js +1 -1
  22. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  23. package/lib/aws/cloudwatch/metric.js +2 -2
  24. package/lib/aws/cloudwatch/pattern.js +3 -3
  25. package/lib/aws/cloudwatch/policy.js +1 -1
  26. package/lib/aws/cloudwatch/query-definition.js +2 -2
  27. package/lib/aws/cloudwatch/stats.js +1 -1
  28. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  29. package/lib/aws/cloudwatch/text.js +1 -1
  30. package/lib/aws/cloudwatch/variable.js +3 -3
  31. package/lib/aws/cloudwatch/widget.js +1 -1
  32. package/lib/aws/compute/activity.js +1 -1
  33. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  34. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  35. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  36. package/lib/aws/compute/alb/application-listener.js +1 -1
  37. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  38. package/lib/aws/compute/alb/application-target-group.js +1 -1
  39. package/lib/aws/compute/alb/conditions.js +1 -1
  40. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  41. package/lib/aws/compute/alb/trust-store.js +1 -1
  42. package/lib/aws/compute/architecture.js +1 -1
  43. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  44. package/lib/aws/compute/bastion-host.js +1 -1
  45. package/lib/aws/compute/chain.js +1 -1
  46. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  47. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  48. package/lib/aws/compute/client-vpn-route.js +2 -2
  49. package/lib/aws/compute/condition.js +1 -1
  50. package/lib/aws/compute/connections.js +1 -1
  51. package/lib/aws/compute/event-invoke-config.js +1 -1
  52. package/lib/aws/compute/event-source-filter.js +2 -2
  53. package/lib/aws/compute/event-source-mapping.js +1 -1
  54. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  55. package/lib/aws/compute/event-sources/s3.js +1 -1
  56. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  57. package/lib/aws/compute/event-sources/sqs.js +1 -1
  58. package/lib/aws/compute/fields.js +4 -4
  59. package/lib/aws/compute/function-alias.js +1 -1
  60. package/lib/aws/compute/function-base.js +2 -2
  61. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  62. package/lib/aws/compute/function-destinations/function.js +1 -1
  63. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  64. package/lib/aws/compute/function-nodejs.js +1 -1
  65. package/lib/aws/compute/function-url.js +1 -1
  66. package/lib/aws/compute/function.js +1 -1
  67. package/lib/aws/compute/instance-types.js +1 -1
  68. package/lib/aws/compute/instance.js +1 -1
  69. package/lib/aws/compute/ip-addresses.js +2 -2
  70. package/lib/aws/compute/ipam.js +1 -1
  71. package/lib/aws/compute/key-pair.js +1 -1
  72. package/lib/aws/compute/launch-template.js +2 -2
  73. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  74. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  75. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  76. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  77. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  78. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  79. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  80. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  81. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  82. package/lib/aws/compute/load-balancer.js +3 -3
  83. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  84. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  85. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  86. package/lib/aws/compute/machine-image/common.js +1 -1
  87. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  88. package/lib/aws/compute/nat.js +5 -5
  89. package/lib/aws/compute/network-acl-types.js +2 -2
  90. package/lib/aws/compute/network-acl.js +3 -3
  91. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  92. package/lib/aws/compute/nlb/network-listener.js +1 -1
  93. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  94. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  95. package/lib/aws/compute/peer.js +1 -1
  96. package/lib/aws/compute/placement-group.js +1 -1
  97. package/lib/aws/compute/port.js +1 -1
  98. package/lib/aws/compute/prefix-list.js +1 -1
  99. package/lib/aws/compute/route.js +8 -8
  100. package/lib/aws/compute/security-group.js +1 -1
  101. package/lib/aws/compute/state-graph.js +1 -1
  102. package/lib/aws/compute/state-machine-fragment.js +1 -1
  103. package/lib/aws/compute/state-machine.js +4 -4
  104. package/lib/aws/compute/states/choice.js +1 -1
  105. package/lib/aws/compute/states/custom-state.js +1 -1
  106. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  107. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  108. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  109. package/lib/aws/compute/states/distributed-map.js +1 -1
  110. package/lib/aws/compute/states/fail.js +1 -1
  111. package/lib/aws/compute/states/map-base.js +1 -1
  112. package/lib/aws/compute/states/map.js +1 -1
  113. package/lib/aws/compute/states/parallel.js +1 -1
  114. package/lib/aws/compute/states/pass.js +2 -2
  115. package/lib/aws/compute/states/state.js +1 -1
  116. package/lib/aws/compute/states/succeed.js +1 -1
  117. package/lib/aws/compute/states/task-base.js +2 -2
  118. package/lib/aws/compute/states/task.js +1 -1
  119. package/lib/aws/compute/states/wait.js +2 -2
  120. package/lib/aws/compute/subnet-v2.js +2 -2
  121. package/lib/aws/compute/subnet.js +1 -1
  122. package/lib/aws/compute/task-credentials.js +1 -1
  123. package/lib/aws/compute/task-input.js +1 -1
  124. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  125. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  126. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  127. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  128. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  129. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  130. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  131. package/lib/aws/compute/types.js +1 -1
  132. package/lib/aws/compute/user-data.js +3 -3
  133. package/lib/aws/compute/volume.js +2 -2
  134. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  135. package/lib/aws/compute/vpc-endpoint.js +6 -6
  136. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  137. package/lib/aws/compute/vpc-v2-base.js +1 -1
  138. package/lib/aws/compute/vpc-v2.js +2 -2
  139. package/lib/aws/compute/vpc.js +4 -4
  140. package/lib/aws/compute/vpn.js +3 -3
  141. package/lib/aws/edge/certificate.js +1 -1
  142. package/lib/aws/edge/distribution.js +3 -3
  143. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  144. package/lib/aws/edge/dns-record.js +13 -13
  145. package/lib/aws/edge/dns-zone.js +1 -1
  146. package/lib/aws/edge/function.js +2 -2
  147. package/lib/aws/edge/key-value-store.js +4 -4
  148. package/lib/aws/edge/origin.js +3 -3
  149. package/lib/aws/edge/response-headers-policy.js +1 -1
  150. package/lib/aws/encryption/alias.js +1 -1
  151. package/lib/aws/encryption/key.js +1 -1
  152. package/lib/aws/encryption/via-service-principal.js +1 -1
  153. package/lib/aws/iam/grant.js +2 -2
  154. package/lib/aws/iam/group.js +1 -1
  155. package/lib/aws/iam/instance-profile.js +1 -1
  156. package/lib/aws/iam/managed-policy.js +1 -1
  157. package/lib/aws/iam/oidc-provider.js +1 -1
  158. package/lib/aws/iam/policy-document.js +1 -1
  159. package/lib/aws/iam/policy-statement.js +1 -1
  160. package/lib/aws/iam/policy.js +1 -1
  161. package/lib/aws/iam/principals.js +20 -20
  162. package/lib/aws/iam/role.js +1 -1
  163. package/lib/aws/iam/saml-provider.js +2 -2
  164. package/lib/aws/iam/unknown-principal.js +1 -1
  165. package/lib/aws/iam/user.js +1 -1
  166. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  167. package/lib/aws/network/subnet-group.js +3 -3
  168. package/lib/aws/network/subnet.js +4 -4
  169. package/lib/aws/notify/archive.js +1 -1
  170. package/lib/aws/notify/connection.js +3 -3
  171. package/lib/aws/notify/event-bus.js +3 -3
  172. package/lib/aws/notify/event-pattern.js +1 -1
  173. package/lib/aws/notify/index.d.ts +1 -0
  174. package/lib/aws/notify/index.js +5 -2
  175. package/lib/aws/notify/input.js +2 -2
  176. package/lib/aws/notify/kinesis-stream.js +1 -1
  177. package/lib/aws/notify/notification-rule.js +1 -1
  178. package/lib/aws/notify/policy.js +1 -1
  179. package/lib/aws/notify/queue-policy.js +1 -1
  180. package/lib/aws/notify/queue.js +1 -1
  181. package/lib/aws/notify/resource-policy.js +1 -1
  182. package/lib/aws/notify/rule.js +1 -1
  183. package/lib/aws/notify/schedule.js +1 -1
  184. package/lib/aws/notify/subscription-filter.js +1 -1
  185. package/lib/aws/notify/subscription.js +7 -5
  186. package/lib/aws/notify/subscriptions/email.d.ts +28 -0
  187. package/lib/aws/notify/subscriptions/email.js +37 -0
  188. package/lib/aws/notify/subscriptions/index.d.ts +6 -0
  189. package/lib/aws/notify/subscriptions/index.js +23 -0
  190. package/lib/aws/notify/subscriptions/lambda.d.ts +21 -0
  191. package/lib/aws/notify/subscriptions/lambda.js +69 -0
  192. package/lib/aws/notify/subscriptions/sms.d.ts +16 -0
  193. package/lib/aws/notify/subscriptions/sms.js +29 -0
  194. package/lib/aws/notify/subscriptions/sqs.d.ts +28 -0
  195. package/lib/aws/notify/subscriptions/sqs.js +107 -0
  196. package/lib/aws/notify/subscriptions/subscription.d.ts +31 -0
  197. package/lib/aws/notify/subscriptions/subscription.js +4 -0
  198. package/lib/aws/notify/subscriptions/url.d.ts +45 -0
  199. package/lib/aws/notify/subscriptions/url.js +57 -0
  200. package/lib/aws/notify/targets/event-bus.js +1 -1
  201. package/lib/aws/notify/targets/function.js +1 -1
  202. package/lib/aws/notify/targets/log-group.js +2 -2
  203. package/lib/aws/notify/targets/sqs.js +1 -1
  204. package/lib/aws/notify/targets/state-machine.js +1 -1
  205. package/lib/aws/notify/topic-base.js +1 -1
  206. package/lib/aws/notify/topic.js +1 -1
  207. package/lib/aws/storage/bucket-notifications.js +1 -1
  208. package/lib/aws/storage/bucket-policy.js +1 -1
  209. package/lib/aws/storage/bucket-source.js +1 -1
  210. package/lib/aws/storage/bucket.js +2 -2
  211. package/lib/aws/storage/notification-targets/function.js +1 -1
  212. package/lib/aws/storage/notification-targets/queue.js +1 -1
  213. package/lib/aws/storage/origin-access-identity.js +1 -1
  214. package/lib/aws/storage/parameter.js +2 -2
  215. package/lib/construct-base.js +2 -2
  216. package/lib/duration.js +1 -1
  217. package/lib/expiration.js +1 -1
  218. package/lib/size.js +1 -1
  219. package/lib/stack-base.js +1 -1
  220. package/lib/terra-func.js +1 -1
  221. package/package.json +1 -1
@@ -104,7 +104,7 @@ class TaskStateBase extends state_1.State {
104
104
  }
105
105
  exports.TaskStateBase = TaskStateBase;
106
106
  _a = JSII_RTTI_SYMBOL_1;
107
- TaskStateBase[_a] = { fqn: "terraconstructs.aws.compute.TaskStateBase", version: "0.0.19" };
107
+ TaskStateBase[_a] = { fqn: "terraconstructs.aws.compute.TaskStateBase", version: "0.0.20" };
108
108
  /**
109
109
  *
110
110
  * AWS Step Functions integrates with services directly in the Amazon States Language.
@@ -156,5 +156,5 @@ class Timeout {
156
156
  }
157
157
  exports.Timeout = Timeout;
158
158
  _b = JSII_RTTI_SYMBOL_1;
159
- Timeout[_b] = { fqn: "terraconstructs.aws.compute.Timeout", version: "0.0.19" };
159
+ Timeout[_b] = { fqn: "terraconstructs.aws.compute.Timeout", version: "0.0.20" };
160
160
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3N0YXRlcy90YXNrLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxtQ0FBZ0Q7QUFFaEQsaUNBQWlDO0FBQ2pDLG9DQUFpQztBQUNqQyxzQ0FBdUM7QUFtSXZDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQXNCLGFBQWMsU0FBUSxhQUFLO0lBWS9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxRQUFvQixFQUFFO1FBQ3BDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQUMsT0FBbUIsRUFBRSxRQUFvQixFQUFFO1FBQ3pELEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxJQUFnQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxPQUFPLGFBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsa0NBQWtDO0lBRXhCLGdCQUFnQixDQUFDLEtBQWlCO1FBQzFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixLQUFLLENBQUMsdUJBQXVCLENBQzNCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDeEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzNCLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUM1QyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBT08saUJBQWlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVc7WUFDckIsQ0FBQyxDQUFDLG1CQUFVLENBQUMsWUFBWSxDQUFDO2dCQUN0QixXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2FBQ3hELENBQUM7WUFDSixDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU87WUFDdEUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJO1lBQzFDLGdCQUFnQixFQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU87WUFDL0Qsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUk7WUFDakQsU0FBUyxFQUFFLElBQUEsc0JBQWMsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3pDLFVBQVUsRUFBRSxJQUFBLHNCQUFjLEVBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUMzQyxVQUFVLEVBQUUsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDM0MsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7U0FDNUIsQ0FBQztJQUNKLENBQUM7O0FBL0dILHNDQWdIQzs7O0FBRUQ7Ozs7Ozs7R0FPRztBQUNILElBQVksa0JBc0JYO0FBdEJELFdBQVksa0JBQWtCO0lBQzVCOzs7O09BSUc7SUFDSCwyREFBcUMsQ0FBQTtJQUVyQzs7OztPQUlHO0lBQ0gseUNBQW1CLENBQUE7SUFFbkI7Ozs7O09BS0c7SUFDSCxpRUFBMkMsQ0FBQTtBQUM3QyxDQUFDLEVBdEJXLGtCQUFrQixrQ0FBbEIsa0JBQWtCLFFBc0I3QjtBQUVEOztHQUVHO0FBQ0gsTUFBc0IsT0FBTztJQUMzQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBa0I7UUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBWTtRQUMzQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs7QUFmSCwwQkEwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgcmVuZGVySnNvblBhdGgsIFN0YXRlIH0gZnJvbSBcIi4vc3RhdGVcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uLy4uL2lhbVwiO1xuaW1wb3J0IHsgQ2hhaW4gfSBmcm9tIFwiLi4vY2hhaW5cIjtcbmltcG9ydCB7IEZpZWxkVXRpbHMgfSBmcm9tIFwiLi4vZmllbGRzXCI7XG5pbXBvcnQgeyBTdGF0ZUdyYXBoIH0gZnJvbSBcIi4uL3N0YXRlLWdyYXBoXCI7XG5pbXBvcnQgeyBDcmVkZW50aWFscyB9IGZyb20gXCIuLi90YXNrLWNyZWRlbnRpYWxzXCI7XG5pbXBvcnQgeyBDYXRjaFByb3BzLCBJQ2hhaW5hYmxlLCBJTmV4dGFibGUsIFJldHJ5UHJvcHMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBQcm9wcyB0aGF0IGFyZSBjb21tb24gdG8gYWxsIHRhc2tzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1N0YXRlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgZm9yIHRoaXMgc3RhdGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgY29uc3RydWN0IElEIHdpbGwgYmUgdXNlZCBhcyBzdGF0ZSBuYW1lXG4gICAqL1xuICByZWFkb25seSBzdGF0ZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGlzIHN0YXRlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY29tbWVudFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcblxuICAvKipcbiAgICogSlNPTlBhdGggZXhwcmVzc2lvbiB0byBzZWxlY3QgcGFydCBvZiB0aGUgc3RhdGUgdG8gYmUgdGhlIGlucHV0IHRvIHRoaXMgc3RhdGUuXG4gICAqXG4gICAqIE1heSBhbHNvIGJlIHRoZSBzcGVjaWFsIHZhbHVlIEpzb25QYXRoLkRJU0NBUkQsIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGVmZmVjdGl2ZVxuICAgKiBpbnB1dCB0byBiZSB0aGUgZW1wdHkgb2JqZWN0IHt9LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBlbnRpcmUgdGFzayBpbnB1dCAoSlNPTiBwYXRoICckJylcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogSlNPTlBhdGggZXhwcmVzc2lvbiB0byBzZWxlY3Qgc2VsZWN0IGEgcG9ydGlvbiBvZiB0aGUgc3RhdGUgb3V0cHV0IHRvIHBhc3NcbiAgICogdG8gdGhlIG5leHQgc3RhdGUuXG4gICAqXG4gICAqIE1heSBhbHNvIGJlIHRoZSBzcGVjaWFsIHZhbHVlIEpzb25QYXRoLkRJU0NBUkQsIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGVmZmVjdGl2ZVxuICAgKiBvdXRwdXQgdG8gYmUgdGhlIGVtcHR5IG9iamVjdCB7fS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgZW50aXJlIEpTT04gbm9kZSBkZXRlcm1pbmVkIGJ5IHRoZSBzdGF0ZSBpbnB1dCwgdGhlIHRhc2sgcmVzdWx0LFxuICAgKiAgIGFuZCByZXN1bHRQYXRoIGlzIHBhc3NlZCB0byB0aGUgbmV4dCBzdGF0ZSAoSlNPTiBwYXRoICckJylcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEpTT05QYXRoIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgd2hlcmUgdG8gaW5qZWN0IHRoZSBzdGF0ZSdzIG91dHB1dFxuICAgKlxuICAgKiBNYXkgYWxzbyBiZSB0aGUgc3BlY2lhbCB2YWx1ZSBKc29uUGF0aC5ESVNDQVJELCB3aGljaCB3aWxsIGNhdXNlIHRoZSBzdGF0ZSdzXG4gICAqIGlucHV0IHRvIGJlY29tZSBpdHMgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlcGxhY2VzIHRoZSBlbnRpcmUgaW5wdXQgd2l0aCB0aGUgcmVzdWx0IChKU09OIHBhdGggJyQnKVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdWx0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEpTT04gdGhhdCB3aWxsIHJlcGxhY2UgdGhlIHN0YXRlJ3MgcmF3IHJlc3VsdCBhbmQgYmVjb21lIHRoZSBlZmZlY3RpdmVcbiAgICogcmVzdWx0IGJlZm9yZSBSZXN1bHRQYXRoIGlzIGFwcGxpZWQuXG4gICAqXG4gICAqIFlvdSBjYW4gdXNlIFJlc3VsdFNlbGVjdG9yIHRvIGNyZWF0ZSBhIHBheWxvYWQgd2l0aCB2YWx1ZXMgdGhhdCBhcmUgc3RhdGljXG4gICAqIG9yIHNlbGVjdGVkIGZyb20gdGhlIHN0YXRlJ3MgcmF3IHJlc3VsdC5cbiAgICpcbiAgICogQHNlZVxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2lucHV0LW91dHB1dC1pbnB1dHBhdGgtcGFyYW1zLmh0bWwjaW5wdXQtb3V0cHV0LXJlc3VsdHNlbGVjdG9yXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdWx0U2VsZWN0b3I/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciB0aGUgdGFza1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGB0YXNrVGltZW91dGBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGltZW91dCBmb3IgdGhlIHRhc2tcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpkdXJhdGlvbi1wcm9wLXR5cGVdIGlzIG5lZWRlZCBiZWNhdXNlIGFsbCBwcm9wcyBpbnRlcmZhY2UgaW5cbiAgICogYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MgZXh0ZW5kIHRoaXMgaW50ZXJmYWNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFza1RpbWVvdXQ/OiBUaW1lb3V0O1xuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciB0aGUgaGVhcnRiZWF0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGhlYXJ0YmVhdFRpbWVvdXRgXG4gICAqL1xuICByZWFkb25seSBoZWFydGJlYXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGltZW91dCBmb3IgdGhlIGhlYXJ0YmVhdFxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50OmR1cmF0aW9uLXByb3AtdHlwZV0gaXMgbmVlZGVkIGJlY2F1c2UgYWxsIHByb3BzIGludGVyZmFjZSBpblxuICAgKiBhd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcyBleHRlbmQgdGhpcyBpbnRlcmZhY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBoZWFydGJlYXRUaW1lb3V0PzogVGltZW91dDtcblxuICAvKipcbiAgICogQVdTIFN0ZXAgRnVuY3Rpb25zIGludGVncmF0ZXMgd2l0aCBzZXJ2aWNlcyBkaXJlY3RseSBpbiB0aGUgQW1hem9uIFN0YXRlcyBMYW5ndWFnZS5cbiAgICogWW91IGNhbiBjb250cm9sIHRoZXNlIEFXUyBzZXJ2aWNlcyB1c2luZyBzZXJ2aWNlIGludGVncmF0aW9uIHBhdHRlcm5zLlxuICAgKlxuICAgKiBEZXBlbmRpbmcgb24gdGhlIEFXUyBTZXJ2aWNlLCB0aGUgU2VydmljZSBJbnRlZ3JhdGlvbiBQYXR0ZXJuIGF2YWlsYWJpbGl0eSB3aWxsIHZhcnkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jb25uZWN0LXN1cHBvcnRlZC1zZXJ2aWNlcy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYEludGVncmF0aW9uUGF0dGVybi5SRVFVRVNUX1JFU1BPTlNFYCBmb3IgbW9zdCB0YXNrcy5cbiAgICogYEludGVncmF0aW9uUGF0dGVybi5SVU5fSk9CYCBmb3IgdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOlxuICAgKiAgYEJhdGNoU3VibWl0Sm9iYCwgYEVtckFkZFN0ZXBgLCBgRW1yQ3JlYXRlQ2x1c3RlcmAsIGBFbXJUZXJtaW5hdGlvbkNsdXN0ZXJgLCBhbmQgYEVtckNvbnRhaW5lcnNTdGFydEpvYlJ1bmAuXG4gICAqXG4gICAqL1xuICByZWFkb25seSBpbnRlZ3JhdGlvblBhdHRlcm4/OiBJbnRlZ3JhdGlvblBhdHRlcm47XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWxzIGZvciBhbiBJQU0gUm9sZSB0aGF0IHRoZSBTdGF0ZSBNYWNoaW5lIGFzc3VtZXMgZm9yIGV4ZWN1dGluZyB0aGUgdGFzay5cbiAgICogVGhpcyBlbmFibGVzIGNyb3NzLWFjY291bnQgcmVzb3VyY2UgaW52b2NhdGlvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jb25jZXB0cy1hY2Nlc3MtY3Jvc3MtYWNjdC1yZXNvdXJjZXMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmUgKFRhc2sgaXMgZXhlY3V0ZWQgdXNpbmcgdGhlIFN0YXRlIE1hY2hpbmUncyBleGVjdXRpb24gcm9sZSlcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHM7XG59XG5cbi8qKlxuICogRGVmaW5lIGEgVGFzayBzdGF0ZSBpbiB0aGUgc3RhdGUgbWFjaGluZVxuICpcbiAqIFJlYWNoaW5nIGEgVGFzayBzdGF0ZSBjYXVzZXMgc29tZSB3b3JrIHRvIGJlIGV4ZWN1dGVkLCByZXByZXNlbnRlZCBieSB0aGVcbiAqIFRhc2sncyByZXNvdXJjZSBwcm9wZXJ0eS4gVGFzayBjb25zdHJ1Y3RzIHJlcHJlc2VudCBhIGdlbmVyaWMgQW1hem9uXG4gKiBTdGF0ZXMgTGFuZ3VhZ2UgVGFzay5cbiAqXG4gKiBGb3Igc29tZSByZXNvdXJjZSB0eXBlcywgbW9yZSBzcGVjaWZpYyBzdWJjbGFzc2VzIG9mIFRhc2sgbWF5IGJlIGF2YWlsYWJsZVxuICogd2hpY2ggYXJlIG1vcmUgY29udmVuaWVudCB0byB1c2UuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYXNrU3RhdGVCYXNlIGV4dGVuZHMgU3RhdGUgaW1wbGVtZW50cyBJTmV4dGFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgZW5kU3RhdGVzOiBJTmV4dGFibGVbXTtcblxuICAvLyBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgdGFza01ldHJpY3M/OiBUYXNrTWV0cmljc0NvbmZpZztcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IHRhc2tQb2xpY2llcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSB0YXNrVGltZW91dD86IFRpbWVvdXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhcnRiZWF0PzogRHVyYXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhcnRiZWF0VGltZW91dD86IFRpbWVvdXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGFza1N0YXRlQmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmVuZFN0YXRlcyA9IFt0aGlzXTtcbiAgICB0aGlzLnRpbWVvdXQgPSBwcm9wcy50aW1lb3V0O1xuICAgIHRoaXMudGFza1RpbWVvdXQgPSBwcm9wcy50YXNrVGltZW91dDtcbiAgICB0aGlzLmhlYXJ0YmVhdCA9IHByb3BzLmhlYXJ0YmVhdDtcbiAgICB0aGlzLmhlYXJ0YmVhdFRpbWVvdXQgPSBwcm9wcy5oZWFydGJlYXRUaW1lb3V0O1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBwcm9wcy5jcmVkZW50aWFscztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBUaGlzIGNvbnRyb2xzIGlmIGFuZCBob3cgdGhlIGV4ZWN1dGlvbiB3aWxsIGJlIHJldHJpZWQgaWYgYSBwYXJ0aWN1bGFyXG4gICAqIGVycm9yIG9jY3Vycy5cbiAgICovXG4gIHB1YmxpYyBhZGRSZXRyeShwcm9wczogUmV0cnlQcm9wcyA9IHt9KTogVGFza1N0YXRlQmFzZSB7XG4gICAgc3VwZXIuX2FkZFJldHJ5KHByb3BzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSByZWNvdmVyeSBoYW5kbGVyIGZvciB0aGlzIHN0YXRlXG4gICAqXG4gICAqIFdoZW4gYSBwYXJ0aWN1bGFyIGVycm9yIG9jY3VycywgZXhlY3V0aW9uIHdpbGwgY29udGludWUgYXQgdGhlIGVycm9yXG4gICAqIGhhbmRsZXIgaW5zdGVhZCBvZiBmYWlsaW5nIHRoZSBzdGF0ZSBtYWNoaW5lIGV4ZWN1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRDYXRjaChoYW5kbGVyOiBJQ2hhaW5hYmxlLCBwcm9wczogQ2F0Y2hQcm9wcyA9IHt9KTogVGFza1N0YXRlQmFzZSB7XG4gICAgc3VwZXIuX2FkZENhdGNoKGhhbmRsZXIuc3RhcnRTdGF0ZSwgcHJvcHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRpbnVlIG5vcm1hbCBleGVjdXRpb24gd2l0aCB0aGUgZ2l2ZW4gc3RhdGVcbiAgICovXG4gIHB1YmxpYyBuZXh0KG5leHQ6IElDaGFpbmFibGUpOiBDaGFpbiB7XG4gICAgc3VwZXIubWFrZU5leHQobmV4dC5zdGFydFN0YXRlKTtcbiAgICByZXR1cm4gQ2hhaW4uc2VxdWVuY2UodGhpcywgbmV4dCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBBbWF6b24gU3RhdGVzIExhbmd1YWdlIG9iamVjdCBmb3IgdGhpcyBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHRvU3RhdGVKc29uKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMucmVuZGVyTmV4dEVuZCgpLFxuICAgICAgLi4udGhpcy5yZW5kZXJSZXRyeUNhdGNoKCksXG4gICAgICAuLi50aGlzLnJlbmRlclRhc2tCYXNlKCksXG4gICAgICAuLi50aGlzLl9yZW5kZXJUYXNrKCksXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRPRE86IFJlLWFkZCBDbG91ZFdhdGNoIG1ldHJpY3NcblxuICBwcm90ZWN0ZWQgd2hlbkJvdW5kVG9HcmFwaChncmFwaDogU3RhdGVHcmFwaCkge1xuICAgIHN1cGVyLndoZW5Cb3VuZFRvR3JhcGgoZ3JhcGgpO1xuICAgIGZvciAoY29uc3QgcG9saWN5U3RhdGVtZW50IG9mIHRoaXMudGFza1BvbGljaWVzIHx8IFtdKSB7XG4gICAgICBncmFwaC5yZWdpc3RlclBvbGljeVN0YXRlbWVudChwb2xpY3lTdGF0ZW1lbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jcmVkZW50aWFscykge1xuICAgICAgZ3JhcGgucmVnaXN0ZXJQb2xpY3lTdGF0ZW1lbnQoXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogW1wic3RzOkFzc3VtZVJvbGVcIl0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5jcmVkZW50aWFscy5yb2xlLnJlc291cmNlXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfcmVuZGVyVGFzaygpOiBhbnk7XG5cbiAgcHJpdmF0ZSByZW5kZXJDcmVkZW50aWFscygpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVkZW50aWFsc1xuICAgICAgPyBGaWVsZFV0aWxzLnJlbmRlck9iamVjdCh7XG4gICAgICAgICAgQ3JlZGVudGlhbHM6IHsgUm9sZUFybjogdGhpcy5jcmVkZW50aWFscy5yb2xlLnJvbGVBcm4gfSxcbiAgICAgICAgfSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJUYXNrQmFzZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgVHlwZTogXCJUYXNrXCIsXG4gICAgICBDb21tZW50OiB0aGlzLmNvbW1lbnQsXG4gICAgICBUaW1lb3V0U2Vjb25kczogdGhpcy50aW1lb3V0Py50b1NlY29uZHMoKSA/PyB0aGlzLnRhc2tUaW1lb3V0Py5zZWNvbmRzLFxuICAgICAgVGltZW91dFNlY29uZHNQYXRoOiB0aGlzLnRhc2tUaW1lb3V0Py5wYXRoLFxuICAgICAgSGVhcnRiZWF0U2Vjb25kczpcbiAgICAgICAgdGhpcy5oZWFydGJlYXQ/LnRvU2Vjb25kcygpID8/IHRoaXMuaGVhcnRiZWF0VGltZW91dD8uc2Vjb25kcyxcbiAgICAgIEhlYXJ0YmVhdFNlY29uZHNQYXRoOiB0aGlzLmhlYXJ0YmVhdFRpbWVvdXQ/LnBhdGgsXG4gICAgICBJbnB1dFBhdGg6IHJlbmRlckpzb25QYXRoKHRoaXMuaW5wdXRQYXRoKSxcbiAgICAgIE91dHB1dFBhdGg6IHJlbmRlckpzb25QYXRoKHRoaXMub3V0cHV0UGF0aCksXG4gICAgICBSZXN1bHRQYXRoOiByZW5kZXJKc29uUGF0aCh0aGlzLnJlc3VsdFBhdGgpLFxuICAgICAgLi4udGhpcy5yZW5kZXJSZXN1bHRTZWxlY3RvcigpLFxuICAgICAgLi4udGhpcy5yZW5kZXJDcmVkZW50aWFscygpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQVdTIFN0ZXAgRnVuY3Rpb25zIGludGVncmF0ZXMgd2l0aCBzZXJ2aWNlcyBkaXJlY3RseSBpbiB0aGUgQW1hem9uIFN0YXRlcyBMYW5ndWFnZS5cbiAqIFlvdSBjYW4gY29udHJvbCB0aGVzZSBBV1Mgc2VydmljZXMgdXNpbmcgc2VydmljZSBpbnRlZ3JhdGlvbiBwYXR0ZXJuczpcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvY29ubmVjdC10by1yZXNvdXJjZS5odG1sXG4gKlxuICovXG5leHBvcnQgZW51bSBJbnRlZ3JhdGlvblBhdHRlcm4ge1xuICAvKipcbiAgICogU3RlcCBGdW5jdGlvbnMgd2lsbCB3YWl0IGZvciBhbiBIVFRQIHJlc3BvbnNlIGFuZCB0aGVuIHByb2dyZXNzIHRvIHRoZSBuZXh0IHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvY29ubmVjdC10by1yZXNvdXJjZS5odG1sI2Nvbm5lY3QtZGVmYXVsdFxuICAgKi9cbiAgUkVRVUVTVF9SRVNQT05TRSA9IFwiUkVRVUVTVF9SRVNQT05TRVwiLFxuXG4gIC8qKlxuICAgKiBTdGVwIEZ1bmN0aW9ucyBjYW4gd2FpdCBmb3IgYSByZXF1ZXN0IHRvIGNvbXBsZXRlIGJlZm9yZSBwcm9ncmVzc2luZyB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2Nvbm5lY3QtdG8tcmVzb3VyY2UuaHRtbCNjb25uZWN0LXN5bmNcbiAgICovXG4gIFJVTl9KT0IgPSBcIlJVTl9KT0JcIixcblxuICAvKipcbiAgICogQ2FsbGJhY2sgdGFza3MgcHJvdmlkZSBhIHdheSB0byBwYXVzZSBhIHdvcmtmbG93IHVudGlsIGEgdGFzayB0b2tlbiBpcyByZXR1cm5lZC5cbiAgICogWW91IG11c3Qgc2V0IGEgdGFzayB0b2tlbiB3aGVuIHVzaW5nIHRoZSBjYWxsYmFjayBwYXR0ZXJuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jb25uZWN0LXRvLXJlc291cmNlLmh0bWwjY29ubmVjdC13YWl0LXRva2VuXG4gICAqL1xuICBXQUlUX0ZPUl9UQVNLX1RPS0VOID0gXCJXQUlUX0ZPUl9UQVNLX1RPS0VOXCIsXG59XG5cbi8qKlxuICogVGltZW91dCBmb3IgYSB0YXNrIG9yIGhlYXJ0YmVhdFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGltZW91dCB7XG4gIC8qKlxuICAgKiBVc2UgYSBkdXJhdGlvbiBhcyB0aW1lb3V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGR1cmF0aW9uKGR1cmF0aW9uOiBEdXJhdGlvbik6IFRpbWVvdXQge1xuICAgIHJldHVybiB7IHNlY29uZHM6IGR1cmF0aW9uLnRvU2Vjb25kcygpIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgZHluYW1pYyB0aW1lb3V0IHNwZWNpZmllZCBieSBhIHBhdGggaW4gdGhlIHN0YXRlIGlucHV0LlxuICAgKlxuICAgKiBUaGUgcGF0aCBtdXN0IHNlbGVjdCBhIGZpZWxkIHdob3NlIHZhbHVlIGlzIGEgcG9zaXRpdmUgaW50ZWdlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXQocGF0aDogc3RyaW5nKTogVGltZW91dCB7XG4gICAgcmV0dXJuIHsgcGF0aCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlY29uZHMgZm9yIHRoaXMgdGltZW91dFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBhdGggZm9yIHRoaXMgdGltZW91dFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBhdGg/OiBzdHJpbmc7XG59XG4iXX0=
@@ -88,5 +88,5 @@ class Task extends state_1.State {
88
88
  }
89
89
  exports.Task = Task;
90
90
  _a = JSII_RTTI_SYMBOL_1;
91
- Task[_a] = { fqn: "terraconstructs.aws.compute.Task", version: "0.0.19" };
91
+ Task[_a] = { fqn: "terraconstructs.aws.compute.Task", version: "0.0.20" };
92
92
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9zdGF0ZXMvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLHFEQUFpRDtBQUNqRCxtQ0FBZ0Q7QUFFaEQsb0NBQWlDO0FBQ2pDLG1FQUFtRTtBQUNuRSxzQ0FBdUM7QUFDdkMsMENBQWdEO0FBa0doRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLElBQUssU0FBUSxhQUFLO0lBTzdCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0I7UUFDeEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixHQUFHLFNBQVM7WUFDWixVQUFVLEVBQUUsSUFBQSxvQkFBYSxFQUFDO2dCQUN4QixHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7Z0JBQy9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQzthQUM1QixDQUFDO1NBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQUMsUUFBb0IsRUFBRTtRQUNwQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLE9BQW1CLEVBQUUsUUFBb0IsRUFBRTtRQUN6RCxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsSUFBZ0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsT0FBTyxhQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxFQUFFLHNCQUFTLENBQUMsSUFBSTtZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVztZQUNwQyxVQUFVLEVBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO2dCQUN6QixtQkFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUNwRCxVQUFVLEVBQUUsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDM0MsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDeEQsZ0JBQWdCLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsa0NBQWtDO0lBRXhCLGdCQUFnQixDQUFDLEtBQWlCO1FBQzFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLENBQUM7WUFDcEUsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDOztBQWpGSCxvQkFrRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgU3RhdGVUeXBlIH0gZnJvbSBcIi4vcHJpdmF0ZS9zdGF0ZS10eXBlXCI7XG5pbXBvcnQgeyByZW5kZXJKc29uUGF0aCwgU3RhdGUgfSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi5cIjtcbmltcG9ydCB7IENoYWluIH0gZnJvbSBcIi4uL2NoYWluXCI7XG4vLyBpbXBvcnQgeyBUYXNrU3RhdGVCYXNlLCBUYXNrU3RhdGVCYXNlUHJvcHMgfSBmcm9tIFwiLi90YXNrLWJhc2VcIjtcbmltcG9ydCB7IEZpZWxkVXRpbHMgfSBmcm9tIFwiLi4vZmllbGRzXCI7XG5pbXBvcnQgeyBub0VtcHR5T2JqZWN0IH0gZnJvbSBcIi4uL3ByaXZhdGUvdXRpbFwiO1xuaW1wb3J0IHsgU3RhdGVHcmFwaCB9IGZyb20gXCIuLi9zdGF0ZS1ncmFwaFwiO1xuaW1wb3J0IHtcbiAgSVN0ZXBGdW5jdGlvbnNUYXNrLFxuICBTdGVwRnVuY3Rpb25zVGFza0NvbmZpZyxcbn0gZnJvbSBcIi4uL3N0ZXAtZnVuY3Rpb25zLXRhc2tcIjtcbmltcG9ydCB7IENhdGNoUHJvcHMsIElDaGFpbmFibGUsIElOZXh0YWJsZSwgUmV0cnlQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vLyBUT0RPOiByZXBsYWNlIGJ5IHNlcnZpY2UgaW50ZWdyYXRpb24gc3BlY2lmaWMgY2xhc3NlcyAoaS5lLiBMYW1iZGFJbnZva2UsIFNuc1B1Ymxpc2gpXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNjAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcy9SRUFETUUubWRcblxuLyoqXG4gKiBQcm9wcyB0aGF0IGFyZSBjb21tb24gdG8gYWxsIHRhc2tzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1Byb3BzIHtcbiAgLyoqXG4gICAqIEFjdHVhbCB0YXNrIHRvIGJlIGludm9rZWQgaW4gdGhpcyB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgdGFzazogSVN0ZXBGdW5jdGlvbnNUYXNrO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIGZvciB0aGlzIHN0YXRlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGNvbnN0cnVjdCBJRCB3aWxsIGJlIHVzZWQgYXMgc3RhdGUgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBjb21tZW50XG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBKU09OUGF0aCBleHByZXNzaW9uIHRvIHNlbGVjdCBwYXJ0IG9mIHRoZSBzdGF0ZSB0byBiZSB0aGUgaW5wdXQgdG8gdGhpcyBzdGF0ZS5cbiAgICpcbiAgICogTWF5IGFsc28gYmUgdGhlIHNwZWNpYWwgdmFsdWUgSnNvblBhdGguRElTQ0FSRCwgd2hpY2ggd2lsbCBjYXVzZSB0aGUgZWZmZWN0aXZlXG4gICAqIGlucHV0IHRvIGJlIHRoZSBlbXB0eSBvYmplY3Qge30uXG4gICAqXG4gICAqIEBkZWZhdWx0ICRcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogSlNPTlBhdGggZXhwcmVzc2lvbiB0byBzZWxlY3QgcGFydCBvZiB0aGUgc3RhdGUgdG8gYmUgdGhlIG91dHB1dCB0byB0aGlzIHN0YXRlLlxuICAgKlxuICAgKiBNYXkgYWxzbyBiZSB0aGUgc3BlY2lhbCB2YWx1ZSBKc29uUGF0aC5ESVNDQVJELCB3aGljaCB3aWxsIGNhdXNlIHRoZSBlZmZlY3RpdmVcbiAgICogb3V0cHV0IHRvIGJlIHRoZSBlbXB0eSBvYmplY3Qge30uXG4gICAqXG4gICAqIEBkZWZhdWx0ICRcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEpTT05QYXRoIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgd2hlcmUgdG8gaW5qZWN0IHRoZSBzdGF0ZSdzIG91dHB1dFxuICAgKlxuICAgKiBNYXkgYWxzbyBiZSB0aGUgc3BlY2lhbCB2YWx1ZSBKc29uUGF0aC5ESVNDQVJELCB3aGljaCB3aWxsIGNhdXNlIHRoZSBzdGF0ZSdzXG4gICAqIGlucHV0IHRvIGJlY29tZSBpdHMgb3V0cHV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAkXG4gICAqL1xuICByZWFkb25seSByZXN1bHRQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXJzIHRvIGludm9rZSB0aGUgdGFzayB3aXRoXG4gICAqXG4gICAqIEl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBmaWVsZC4gVGhlIG9iamVjdCB0aGF0IGlzIHBhc3NlZCBpblxuICAgKiB0aGUgYHRhc2tgIHByb3BlcnR5IHdpbGwgdGFrZSBjYXJlIG9mIHJldHVybmluZyB0aGUgcmlnaHQgdmFsdWVzIGZvciB0aGVcbiAgICogYFBhcmFtZXRlcnNgIGZpZWxkIGluIHRoZSBTdGVwIEZ1bmN0aW9ucyBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBUaGUgdmFyaW91cyBjbGFzc2VzIHRoYXQgaW1wbGVtZW50IGBJU3RlcEZ1bmN0aW9uc1Rhc2tgIHdpbGwgdGFrZSBhXG4gICAqIHByb3BlcnRpZXMgd2hpY2ggbWFrZSBzZW5zZSBmb3IgdGhlIHRhc2sgdHlwZS4gRm9yIGV4YW1wbGUsIGZvclxuICAgKiBgSW52b2tlRnVuY3Rpb25gIHRoZSBmaWVsZCB0aGF0IHBvcHVsYXRlcyB0aGUgYHBhcmFtZXRlcnNgIGZpZWxkIHdpbGwgYmVcbiAgICogY2FsbGVkIGBwYXlsb2FkYCwgYW5kIGZvciB0aGUgYFB1Ymxpc2hUb1RvcGljYCB0aGUgYHBhcmFtZXRlcnNgIGZpZWxkXG4gICAqIHdpbGwgYmUgcG9wdWxhdGVkIHZpYSBhIGNvbWJpbmF0aW9uIG9mIHRoZSByZWZlcmVuY2VkIHRvcGljLCBzdWJqZWN0IGFuZFxuICAgKiBtZXNzYWdlLlxuICAgKlxuICAgKiBJZiBwYXNzZWQgYW55d2F5LCB0aGUga2V5cyBpbiB0aGlzIG1hcCB3aWxsIG92ZXJyaWRlIHRoZSBwYXJhbWV0ZXJzXG4gICAqIHJldHVybmVkIGJ5IHRoZSB0YXNrIG9iamVjdC5cbiAgICpcbiAgICogQHNlZVxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2lucHV0LW91dHB1dC1pbnB1dHBhdGgtcGFyYW1zLmh0bWwjaW5wdXQtb3V0cHV0LXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2UgdGhlIHBhcmFtZXRlcnMgaW1wbGllZCBieSB0aGUgYHRhc2tgIHByb3BlcnR5XG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIE1heGltdW0gcnVuIHRpbWUgb2YgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBJZiB0aGUgc3RhdGUgdGFrZXMgbG9uZ2VyIHRoYW4gdGhpcyBhbW91bnQgb2YgdGltZSB0byBjb21wbGV0ZSwgYSAnVGltZW91dCcgZXJyb3IgaXMgcmFpc2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCA2MFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIERlZmluZSBhIFRhc2sgc3RhdGUgaW4gdGhlIHN0YXRlIG1hY2hpbmVcbiAqXG4gKiBSZWFjaGluZyBhIFRhc2sgc3RhdGUgY2F1c2VzIHNvbWUgd29yayB0byBiZSBleGVjdXRlZCwgcmVwcmVzZW50ZWQgYnkgdGhlXG4gKiBUYXNrJ3MgcmVzb3VyY2UgcHJvcGVydHkuIFRhc2sgY29uc3RydWN0cyByZXByZXNlbnQgYSBnZW5lcmljIEFtYXpvblxuICogU3RhdGVzIExhbmd1YWdlIFRhc2suXG4gKlxuICogRm9yIHNvbWUgcmVzb3VyY2UgdHlwZXMsIG1vcmUgc3BlY2lmaWMgc3ViY2xhc3NlcyBvZiBUYXNrIG1heSBiZSBhdmFpbGFibGVcbiAqIHdoaWNoIGFyZSBtb3JlIGNvbnZlbmllbnQgdG8gdXNlLlxuICovXG5leHBvcnQgY2xhc3MgVGFzayBleHRlbmRzIFN0YXRlIGltcGxlbWVudHMgSU5leHRhYmxlIHtcbiAgLy8gVE9ETzogcmVwbGFjZSBieSBzZXJ2aWNlIGludGVncmF0aW9uIHNwZWNpZmljIGNsYXNzZXMgKGkuZS4gTGFtYmRhSW52b2tlLCBTbnNQdWJsaXNoKVxuICAvLyByZWY6IGF3cy1zdGVwZnVuY3Rpb25zLXRhc2tzL1JFQURNRS5tZFxuICBwdWJsaWMgcmVhZG9ubHkgZW5kU3RhdGVzOiBJTmV4dGFibGVbXTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lb3V0PzogRHVyYXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFza1Byb3BzOiBTdGVwRnVuY3Rpb25zVGFza0NvbmZpZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGFza1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnRpbWVvdXQgPSBwcm9wcy50aW1lb3V0O1xuICAgIGNvbnN0IHRhc2tQcm9wcyA9IHByb3BzLnRhc2suYmluZCh0aGlzKTtcblxuICAgIHRoaXMudGFza1Byb3BzID0ge1xuICAgICAgLi4udGFza1Byb3BzLFxuICAgICAgcGFyYW1ldGVyczogbm9FbXB0eU9iamVjdCh7XG4gICAgICAgIC4uLih0YXNrUHJvcHMucGFyYW1ldGVycyB8fCB7fSksXG4gICAgICAgIC4uLihwcm9wcy5wYXJhbWV0ZXJzIHx8IHt9KSxcbiAgICAgIH0pLFxuICAgIH07XG4gICAgdGhpcy5lbmRTdGF0ZXMgPSBbdGhpc107XG4gIH1cblxuICAvKipcbiAgICogQWRkIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgc3RhdGVcbiAgICpcbiAgICogVGhpcyBjb250cm9scyBpZiBhbmQgaG93IHRoZSBleGVjdXRpb24gd2lsbCBiZSByZXRyaWVkIGlmIGEgcGFydGljdWxhclxuICAgKiBlcnJvciBvY2N1cnMuXG4gICAqL1xuICBwdWJsaWMgYWRkUmV0cnkocHJvcHM6IFJldHJ5UHJvcHMgPSB7fSk6IFRhc2sge1xuICAgIHN1cGVyLl9hZGRSZXRyeShwcm9wcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcmVjb3ZlcnkgaGFuZGxlciBmb3IgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBXaGVuIGEgcGFydGljdWxhciBlcnJvciBvY2N1cnMsIGV4ZWN1dGlvbiB3aWxsIGNvbnRpbnVlIGF0IHRoZSBlcnJvclxuICAgKiBoYW5kbGVyIGluc3RlYWQgb2YgZmFpbGluZyB0aGUgc3RhdGUgbWFjaGluZSBleGVjdXRpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkQ2F0Y2goaGFuZGxlcjogSUNoYWluYWJsZSwgcHJvcHM6IENhdGNoUHJvcHMgPSB7fSk6IFRhc2sge1xuICAgIHN1cGVyLl9hZGRDYXRjaChoYW5kbGVyLnN0YXJ0U3RhdGUsIHByb3BzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250aW51ZSBub3JtYWwgZXhlY3V0aW9uIHdpdGggdGhlIGdpdmVuIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgbmV4dChuZXh0OiBJQ2hhaW5hYmxlKTogQ2hhaW4ge1xuICAgIHN1cGVyLm1ha2VOZXh0KG5leHQuc3RhcnRTdGF0ZSk7XG4gICAgcmV0dXJuIENoYWluLnNlcXVlbmNlKHRoaXMsIG5leHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgQW1hem9uIFN0YXRlcyBMYW5ndWFnZSBvYmplY3QgZm9yIHRoaXMgc3RhdGVcbiAgICovXG4gIHB1YmxpYyB0b1N0YXRlSnNvbigpOiBvYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnJlbmRlck5leHRFbmQoKSxcbiAgICAgIC4uLnRoaXMucmVuZGVyUmV0cnlDYXRjaCgpLFxuICAgICAgLi4udGhpcy5yZW5kZXJJbnB1dE91dHB1dCgpLFxuICAgICAgVHlwZTogU3RhdGVUeXBlLlRBU0ssXG4gICAgICBDb21tZW50OiB0aGlzLmNvbW1lbnQsXG4gICAgICBSZXNvdXJjZTogdGhpcy50YXNrUHJvcHMucmVzb3VyY2VBcm4sXG4gICAgICBQYXJhbWV0ZXJzOlxuICAgICAgICB0aGlzLnRhc2tQcm9wcy5wYXJhbWV0ZXJzICYmXG4gICAgICAgIEZpZWxkVXRpbHMucmVuZGVyT2JqZWN0KHRoaXMudGFza1Byb3BzLnBhcmFtZXRlcnMpLFxuICAgICAgUmVzdWx0UGF0aDogcmVuZGVySnNvblBhdGgodGhpcy5yZXN1bHRQYXRoKSxcbiAgICAgIFRpbWVvdXRTZWNvbmRzOiB0aGlzLnRpbWVvdXQgJiYgdGhpcy50aW1lb3V0LnRvU2Vjb25kcygpLFxuICAgICAgSGVhcnRiZWF0U2Vjb25kczpcbiAgICAgICAgdGhpcy50YXNrUHJvcHMuaGVhcnRiZWF0ICYmIHRoaXMudGFza1Byb3BzLmhlYXJ0YmVhdC50b1NlY29uZHMoKSxcbiAgICB9O1xuICB9XG5cbiAgLy8gVE9ETzogUmUtYWRkIENsb3VkV2F0Y2ggbWV0cmljc1xuXG4gIHByb3RlY3RlZCB3aGVuQm91bmRUb0dyYXBoKGdyYXBoOiBTdGF0ZUdyYXBoKSB7XG4gICAgc3VwZXIud2hlbkJvdW5kVG9HcmFwaChncmFwaCk7XG4gICAgZm9yIChjb25zdCBwb2xpY3lTdGF0ZW1lbnQgb2YgdGhpcy50YXNrUHJvcHMucG9saWN5U3RhdGVtZW50cyB8fCBbXSkge1xuICAgICAgZ3JhcGgucmVnaXN0ZXJQb2xpY3lTdGF0ZW1lbnQocG9saWN5U3RhdGVtZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -53,7 +53,7 @@ class WaitTime {
53
53
  }
54
54
  exports.WaitTime = WaitTime;
55
55
  _a = JSII_RTTI_SYMBOL_1;
56
- WaitTime[_a] = { fqn: "terraconstructs.aws.compute.WaitTime", version: "0.0.19" };
56
+ WaitTime[_a] = { fqn: "terraconstructs.aws.compute.WaitTime", version: "0.0.20" };
57
57
  /**
58
58
  * Define a Wait state in the state machine
59
59
  *
@@ -86,5 +86,5 @@ class Wait extends state_1.State {
86
86
  }
87
87
  exports.Wait = Wait;
88
88
  _b = JSII_RTTI_SYMBOL_1;
89
- Wait[_b] = { fqn: "terraconstructs.aws.compute.Wait", version: "0.0.19" };
89
+ Wait[_b] = { fqn: "terraconstructs.aws.compute.Wait", version: "0.0.20" };
90
90
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9zdGF0ZXMvd2FpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLHFEQUFpRDtBQUNqRCxtQ0FBZ0M7QUFDaEMsb0NBQWlDO0FBR2pDOzs7R0FHRztBQUNILE1BQWEsUUFBUTtJQUNuQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBa0I7UUFDdkMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFpQjtRQUN2QyxPQUFPLElBQUksUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQVk7UUFDcEMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZO1FBQ3RDLE9BQU8sSUFBSSxRQUFRLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBcUMsSUFBUztRQUFULFNBQUksR0FBSixJQUFJLENBQUs7SUFBRyxDQUFDO0lBRWxEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7O0FBMUNILDRCQTJDQzs7O0FBMEJEOzs7O0dBSUc7QUFDSCxNQUFhLElBQUssU0FBUSxhQUFLO0lBSzdCLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZ0I7UUFDeEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxJQUFJLENBQUMsSUFBZ0I7UUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsT0FBTyxhQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU87WUFDTCxJQUFJLEVBQUUsc0JBQVMsQ0FBQyxJQUFJO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNsQixHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7U0FDeEIsQ0FBQztJQUNKLENBQUM7O0FBOUJILG9CQStCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE2MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zL2xpYi9zdGF0ZXMvd2FpdC50c1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi5cIjtcbmltcG9ydCB7IFN0YXRlVHlwZSB9IGZyb20gXCIuL3ByaXZhdGUvc3RhdGUtdHlwZVwiO1xuaW1wb3J0IHsgU3RhdGUgfSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHsgQ2hhaW4gfSBmcm9tIFwiLi4vY2hhaW5cIjtcbmltcG9ydCB7IElDaGFpbmFibGUsIElOZXh0YWJsZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIFdhaXQgc3RhdGUgd2hpY2ggZGVsYXlzIGEgc3RhdGUgbWFjaGluZSBmcm9tIGNvbnRpbnVpbmcgZm9yIGEgc3BlY2lmaWVkIHRpbWVcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9hbWF6b24tc3RhdGVzLWxhbmd1YWdlLXdhaXQtc3RhdGUuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgV2FpdFRpbWUge1xuICAvKipcbiAgICogV2FpdCBhIGZpeGVkIGFtb3VudCBvZiB0aW1lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkdXJhdGlvbihkdXJhdGlvbjogRHVyYXRpb24pIHtcbiAgICByZXR1cm4gbmV3IFdhaXRUaW1lKHsgU2Vjb25kczogZHVyYXRpb24udG9TZWNvbmRzKCkgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2FpdCB1bnRpbCB0aGUgZ2l2ZW4gSVNPODYwMSB0aW1lc3RhbXBcbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYDIwMTYtMDMtMTRUMDE6NTk6MDBaYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0aW1lc3RhbXAodGltZXN0YW1wOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFdhaXRUaW1lKHsgVGltZXN0YW1wOiB0aW1lc3RhbXAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2FpdCBmb3IgYSBudW1iZXIgb2Ygc2Vjb25kcyBzdG9yZWQgaW4gdGhlIHN0YXRlIG9iamVjdC5cbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYCQud2FpdFNlY29uZHNgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNlY29uZHNQYXRoKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgV2FpdFRpbWUoeyBTZWNvbmRzUGF0aDogcGF0aCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWl0IHVudGlsIGEgdGltZXN0YW1wIGZvdW5kIGluIHRoZSBzdGF0ZSBvYmplY3QuXG4gICAqXG4gICAqIEV4YW1wbGUgdmFsdWU6IGAkLndhaXRUaW1lc3RhbXBgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRpbWVzdGFtcFBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBXYWl0VGltZSh7IFRpbWVzdGFtcFBhdGg6IHBhdGggfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkganNvbjogYW55KSB7fVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBnZXQgX2pzb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuanNvbjtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgV2FpdCBzdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhaXRQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIGZvciB0aGlzIHN0YXRlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGNvbnN0cnVjdCBJRCB3aWxsIGJlIHVzZWQgYXMgc3RhdGUgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBjb21tZW50XG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXYWl0IGR1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZTogV2FpdFRpbWU7XG59XG5cbi8qKlxuICogRGVmaW5lIGEgV2FpdCBzdGF0ZSBpbiB0aGUgc3RhdGUgbWFjaGluZVxuICpcbiAqIEEgV2FpdCBzdGF0ZSBjYW4gYmUgdXNlZCB0byBkZWxheSBleGVjdXRpb24gb2YgdGhlIHN0YXRlIG1hY2hpbmUgZm9yIGEgd2hpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWl0IGV4dGVuZHMgU3RhdGUgaW1wbGVtZW50cyBJTmV4dGFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgZW5kU3RhdGVzOiBJTmV4dGFibGVbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRpbWU6IFdhaXRUaW1lO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXYWl0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMudGltZSA9IHByb3BzLnRpbWU7XG4gICAgdGhpcy5lbmRTdGF0ZXMgPSBbdGhpc107XG4gIH1cblxuICAvKipcbiAgICogQ29udGludWUgbm9ybWFsIGV4ZWN1dGlvbiB3aXRoIHRoZSBnaXZlbiBzdGF0ZVxuICAgKi9cbiAgcHVibGljIG5leHQobmV4dDogSUNoYWluYWJsZSk6IENoYWluIHtcbiAgICBzdXBlci5tYWtlTmV4dChuZXh0LnN0YXJ0U3RhdGUpO1xuICAgIHJldHVybiBDaGFpbi5zZXF1ZW5jZSh0aGlzLCBuZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIEFtYXpvbiBTdGF0ZXMgTGFuZ3VhZ2Ugb2JqZWN0IGZvciB0aGlzIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgdG9TdGF0ZUpzb24oKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgVHlwZTogU3RhdGVUeXBlLldBSVQsXG4gICAgICBDb21tZW50OiB0aGlzLmNvbW1lbnQsXG4gICAgICAuLi50aGlzLnRpbWUuX2pzb24sXG4gICAgICAuLi50aGlzLnJlbmRlck5leHRFbmQoKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -26,7 +26,7 @@ class IpCidr {
26
26
  }
27
27
  exports.IpCidr = IpCidr;
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- IpCidr[_a] = { fqn: "terraconstructs.aws.compute.alpha.IpCidr", version: "0.0.19" };
29
+ IpCidr[_a] = { fqn: "terraconstructs.aws.compute.alpha.IpCidr", version: "0.0.20" };
30
30
  /**
31
31
  * Name tag constant
32
32
  */
@@ -247,7 +247,7 @@ class SubnetV2 extends aws_construct_1.AwsConstructBase {
247
247
  }
248
248
  exports.SubnetV2 = SubnetV2;
249
249
  _b = JSII_RTTI_SYMBOL_1;
250
- SubnetV2[_b] = { fqn: "terraconstructs.aws.compute.alpha.SubnetV2", version: "0.0.19" };
250
+ SubnetV2[_b] = { fqn: "terraconstructs.aws.compute.alpha.SubnetV2", version: "0.0.20" };
251
251
  const subnetTypeMap = {
252
252
  [vpc_1.SubnetType.PRIVATE_ISOLATED]: (vpc, subnet) => vpc.isolatedSubnets.push(subnet),
253
253
  [vpc_1.SubnetType.PUBLIC]: (vpc, subnet) => vpc.publicSubnets.push(subnet),
@@ -58,7 +58,7 @@ class SubnetFilter {
58
58
  }
59
59
  exports.SubnetFilter = SubnetFilter;
60
60
  _a = JSII_RTTI_SYMBOL_1;
61
- SubnetFilter[_a] = { fqn: "terraconstructs.aws.compute.SubnetFilter", version: "0.0.19" };
61
+ SubnetFilter[_a] = { fqn: "terraconstructs.aws.compute.SubnetFilter", version: "0.0.20" };
62
62
  /**
63
63
  * Chooses subnets which are in one of the given availability zones.
64
64
  */
@@ -34,7 +34,7 @@ class TaskRole {
34
34
  }
35
35
  exports.TaskRole = TaskRole;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- TaskRole[_a] = { fqn: "terraconstructs.aws.compute.TaskRole", version: "0.0.19" };
37
+ TaskRole[_a] = { fqn: "terraconstructs.aws.compute.TaskRole", version: "0.0.20" };
38
38
  class JsonExpressionTaskRole extends TaskRole {
39
39
  constructor(expression) {
40
40
  super();
@@ -74,7 +74,7 @@ class TaskInput {
74
74
  }
75
75
  exports.TaskInput = TaskInput;
76
76
  _a = JSII_RTTI_SYMBOL_1;
77
- TaskInput[_a] = { fqn: "terraconstructs.aws.compute.TaskInput", version: "0.0.19" };
77
+ TaskInput[_a] = { fqn: "terraconstructs.aws.compute.TaskInput", version: "0.0.20" };
78
78
  /**
79
79
  * The type of task input
80
80
  */
@@ -65,5 +65,5 @@ class CallAwsService extends compute.TaskStateBase {
65
65
  }
66
66
  exports.CallAwsService = CallAwsService;
67
67
  _a = JSII_RTTI_SYMBOL_1;
68
- CallAwsService[_a] = { fqn: "terraconstructs.aws.compute.tasks.CallAwsService", version: "0.0.19" };
68
+ CallAwsService[_a] = { fqn: "terraconstructs.aws.compute.tasks.CallAwsService", version: "0.0.20" };
69
69
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC1hd3Mtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS90YXNrcy9hd3Mtc2RrL2NhbGwtYXdzLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEI7QUFFOUIsa0NBQWtDO0FBQ2xDLG9DQUFvQztBQUNwQyxzREFBK0Q7QUFnRS9EOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsT0FBTyxDQUFDLGFBQWE7SUFJdkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ08sS0FBMEI7UUFFM0MsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFGUCxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUkzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEtBQUssT0FBTyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFDRSxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFDbEUsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQzNELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQ2hELENBQUM7WUFDRixJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNyRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCw0Q0FBNEM7UUFDNUMsTUFBTSxhQUFhLEdBQTJCO1lBQzVDLEdBQUcsRUFBRSxRQUFRO1lBQ2IsY0FBYyxFQUFFLE1BQU07WUFDdEIsZUFBZSxFQUFFLGtCQUFrQjtZQUNuQyxJQUFJLEVBQUUsU0FBUztZQUNmLEdBQUcsRUFBRSxtQkFBbUI7U0FDekIsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUVqRSxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUM3QixzREFBc0Q7Z0JBQ3RELDJGQUEyRjtnQkFDM0YsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxHQUFHLFVBQVUsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDOUQsQ0FBQztZQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDO1NBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsb0dBQW9HO1FBQ3BHLGdHQUFnRztRQUNoRyx3REFBd0Q7UUFDeEQsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFBLG1DQUFzQixFQUM5QixJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQzlCO1lBQ0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLHFDQUFxQztTQUNoSCxDQUFDO0lBQ0osQ0FBQzs7QUE1RUgsd0NBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG5pbXBvcnQgeyBpbnRlZ3JhdGlvblJlc291cmNlQXJuIH0gZnJvbSBcIi4uL3ByaXZhdGUvdGFzay11dGlsc1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNhbGxpbmcgYW4gQVdTIHNlcnZpY2UncyBBUEkgYWN0aW9uIGZyb20geW91clxuICogc3RhdGUgbWFjaGluZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvc3VwcG9ydGVkLXNlcnZpY2VzLWF3c3Nkay5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbEF3c1NlcnZpY2VQcm9wcyBleHRlbmRzIGNvbXB1dGUuVGFza1N0YXRlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1Mgc2VydmljZSB0byBjYWxsLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvc3VwcG9ydGVkLXNlcnZpY2VzLWF3c3Nkay5odG1sXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUEkgYWN0aW9uIHRvIGNhbGwuXG4gICAqXG4gICAqIFVzZSBjYW1lbENhc2UuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVycyBmb3IgdGhlIEFQSSBhY3Rpb24gY2FsbC5cbiAgICpcbiAgICogVXNlIFBhc2NhbENhc2UgZm9yIHRoZSBwYXJhbWV0ZXIgbmFtZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgZm9yIHRoZSBJQU0gc3RhdGVtZW50IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgc3RhdGVcbiAgICogbWFjaGluZSByb2xlJ3MgcG9saWN5IHRvIGFsbG93IHRoZSBzdGF0ZSBtYWNoaW5lIHRvIG1ha2UgdGhlIEFQSSBjYWxsLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBhY3Rpb24gZm9yIHRoaXMgSUFNIHN0YXRlbWVudCB3aWxsIGJlIGBzZXJ2aWNlOmFjdGlvbmAuXG4gICAqL1xuICByZWFkb25seSBpYW1SZXNvdXJjZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIGZvciB0aGUgSUFNIHN0YXRlbWVudCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHN0YXRlXG4gICAqIG1hY2hpbmUgcm9sZSdzIHBvbGljeSB0byBhbGxvdyB0aGUgc3RhdGUgbWFjaGluZSB0byBtYWtlIHRoZSBBUEkgY2FsbC5cbiAgICpcbiAgICogVXNlIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBJQU0gYWN0aW9uIG5hbWUgZG9lcyBub3QgbWF0Y2ggd2l0aCB0aGVcbiAgICogQVBJIHNlcnZpY2UvYWN0aW9uIG5hbWUsIGUuZy4gYHMzOkxpc3RCdWNrZXRzYCByZXF1aXJlcyBgczM6TGlzdEFsbE15QnVja2V0c2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZTphY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGlhbUFjdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBJQU0gc3RhdGVtZW50cyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHN0YXRlIG1hY2hpbmVcbiAgICogcm9sZSdzIHBvbGljeS5cbiAgICpcbiAgICogVXNlIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBjYWxsIHJlcXVpcmVzIG1vcmUgdGhhbiBhIHNpbmdsZSBzdGF0ZW1lbnQgdG9cbiAgICogYmUgZXhlY3V0ZWQsIGUuZy4gYHJla29nbml0aW9uOmRldGVjdExhYmVsc2AgcmVxdWlyZXMgYWxzbyBTMyBwZXJtaXNzaW9uc1xuICAgKiB0byByZWFkIHRoZSBvYmplY3Qgb24gd2hpY2ggaXQgbXVzdCBhY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBzdGF0ZW1lbnRzIGFyZSBhZGRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElhbVN0YXRlbWVudHM/OiBpYW0uUG9saWN5U3RhdGVtZW50W107XG59XG5cbi8qKlxuICogQSBTdGVwRnVuY3Rpb25zIHRhc2sgdG8gY2FsbCBhbiBBV1Mgc2VydmljZSBBUElcbiAqL1xuZXhwb3J0IGNsYXNzIENhbGxBd3NTZXJ2aWNlIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlIHtcbiAgLy8gcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tNZXRyaWNzPzogc2ZuLlRhc2tNZXRyaWNzQ29uZmlnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza1BvbGljaWVzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDYWxsQXdzU2VydmljZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmludGVncmF0aW9uUGF0dGVybiA9PT0gY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm4uUlVOX0pPQikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSBSVU5fSk9CIGludGVncmF0aW9uIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBmb3IgQ2FsbEF3c1NlcnZpY2VcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5wcm9wcy5hY3Rpb24pICYmXG4gICAgICAhdGhpcy5wcm9wcy5hY3Rpb24uc3RhcnRzV2l0aCh0aGlzLnByb3BzLmFjdGlvblswXT8udG9Mb3dlckNhc2UoKSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYWN0aW9uIG11c3QgYmUgY2FtZWxDYXNlLCBnb3Q6ICR7dGhpcy5wcm9wcy5hY3Rpb259YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnBhcmFtZXRlcnMpIHtcbiAgICAgIGNvbnN0IGludmFsaWRLZXlzID0gT2JqZWN0LmtleXModGhpcy5wcm9wcy5wYXJhbWV0ZXJzKS5maWx0ZXIoXG4gICAgICAgIChrZXkpID0+ICFrZXkuc3RhcnRzV2l0aChrZXlbMF0/LnRvVXBwZXJDYXNlKCkpLFxuICAgICAgKTtcbiAgICAgIGlmIChpbnZhbGlkS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBwYXJhbWV0ZXIgbmFtZXMgbXVzdCBiZSBQYXNjYWxDYXNlLCBnb3Q6ICR7aW52YWxpZEtleXMuam9pbihcIiwgXCIpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMjc2MjNcbiAgICBjb25zdCBpYW1TZXJ2aWNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgc2ZuOiBcInN0YXRlc1wiLFxuICAgICAgY2xvdWR3YXRjaGxvZ3M6IFwibG9nc1wiLFxuICAgICAgbWVkaWFwYWNrYWdldm9kOiBcIm1lZGlhcGFja2FnZS12b2RcIixcbiAgICAgIG13YWE6IFwiYWlyZmxvd1wiLFxuICAgICAgZWZzOiBcImVsYXN0aWNmaWxlc3lzdGVtXCIsXG4gICAgfTtcbiAgICBjb25zdCBpYW1TZXJ2aWNlID0gaWFtU2VydmljZU1hcFtwcm9wcy5zZXJ2aWNlXSA/PyBwcm9wcy5zZXJ2aWNlO1xuXG4gICAgdGhpcy50YXNrUG9saWNpZXMgPSBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogcHJvcHMuaWFtUmVzb3VyY2VzLFxuICAgICAgICAvLyBUaGUgcHJlZml4IGFuZCB0aGUgYWN0aW9uIG5hbWUgYXJlIGNhc2UgaW5zZW5zaXRpdmVcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19hY3Rpb24uaHRtbFxuICAgICAgICBhY3Rpb25zOiBbcHJvcHMuaWFtQWN0aW9uID8/IGAke2lhbVNlcnZpY2V9OiR7cHJvcHMuYWN0aW9ufWBdLFxuICAgICAgfSksXG4gICAgICAuLi4ocHJvcHMuYWRkaXRpb25hbElhbVN0YXRlbWVudHMgPz8gW10pLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgX3JlbmRlclRhc2soKTogYW55IHtcbiAgICBsZXQgc2VydmljZSA9IHRoaXMucHJvcHMuc2VydmljZTtcblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHNlcnZpY2UpKSB7XG4gICAgICBzZXJ2aWNlID0gc2VydmljZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIC8vIFRoZSBwYXR0ZXJuIGhlcmUgaXM6IFwiYXJuOmF3czpzdGF0ZXM6Ojphd3Mtc2RrOnNlcnZpY2VOYW1lOmFwaUFjdGlvbi5bc2VydmljZUludGVncmF0aW9uUGF0dGVybl1cIlxuICAgIC8vIFNlZSBoZXJlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL3N1cHBvcnRlZC1zZXJ2aWNlcy1hd3NzZGsuaHRtbFxuICAgIC8vIFRoaXMgZG9lcyBub3QgY2hhbmdlIHdpdGggc2RrIHVwZ3JhZGVzLCBUVDpQMTI1Mzg4Mzg4XG4gICAgcmV0dXJuIHtcbiAgICAgIFJlc291cmNlOiBpbnRlZ3JhdGlvblJlc291cmNlQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcImF3cy1zZGtcIixcbiAgICAgICAgYCR7c2VydmljZX06JHt0aGlzLnByb3BzLmFjdGlvbn1gLFxuICAgICAgICB0aGlzLnByb3BzLmludGVncmF0aW9uUGF0dGVybixcbiAgICAgICksXG4gICAgICBQYXJhbWV0ZXJzOiBjb21wdXRlLkZpZWxkVXRpbHMucmVuZGVyT2JqZWN0KHRoaXMucHJvcHMucGFyYW1ldGVycykgPz8ge30sIC8vIFBhcmFtZXRlcnMgaXMgcmVxdWlyZWQgZm9yIGF3cy1zZGtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -86,7 +86,7 @@ class EventBridgePutEvents extends compute.TaskStateBase {
86
86
  }
87
87
  exports.EventBridgePutEvents = EventBridgePutEvents;
88
88
  _a = JSII_RTTI_SYMBOL_1;
89
- EventBridgePutEvents[_a] = { fqn: "terraconstructs.aws.compute.tasks.EventBridgePutEvents", version: "0.0.19" };
89
+ EventBridgePutEvents[_a] = { fqn: "terraconstructs.aws.compute.tasks.EventBridgePutEvents", version: "0.0.20" };
90
90
  EventBridgePutEvents.SUPPORTED_INTEGRATION_PATTERNS = [
91
91
  compute.IntegrationPattern.REQUEST_RESPONSE,
92
92
  compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
@@ -113,5 +113,5 @@ class HttpInvoke extends compute.TaskStateBase {
113
113
  }
114
114
  exports.HttpInvoke = HttpInvoke;
115
115
  _a = JSII_RTTI_SYMBOL_1;
116
- HttpInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.HttpInvoke", version: "0.0.19" };
116
+ HttpInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.HttpInvoke", version: "0.0.20" };
117
117
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL2h0dHAvaW52b2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esa0NBQWtDO0FBQ2xDLG9DQUFvQztBQUVwQyxzREFBK0Q7QUFFL0Q7O0dBRUc7QUFDSCxJQUFZLGlCQXlCWDtBQXpCRCxXQUFZLGlCQUFpQjtJQUMzQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBQ3JCOztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCx3Q0FBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsa0NBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQXpCVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQXlCNUI7QUFxRkQ7O0dBRUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxPQUFPLENBQUMsYUFBYTtJQUluRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDTyxLQUFzQjtRQUV2QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZQLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBSXZDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBQSxtQ0FBc0IsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUN4RCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFUyx5QkFBeUI7UUFDakMsT0FBTztZQUNMLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUMsc0NBQXNDLENBQUM7Z0JBQ2pELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQzthQUNqRCxDQUFDO1lBQ0YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixPQUFPLEVBQUU7b0JBQ1AsK0JBQStCO29CQUMvQiwrQkFBK0I7aUJBQ2hDO2dCQUNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDO2FBQ3ZELENBQUM7WUFDRixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUN0QyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxJQUFJLEVBQUUsWUFBWTt3QkFDbEIsUUFBUSxFQUFFLHFCQUFxQjt3QkFDL0IsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDO3FCQUNuQztpQkFDRjthQUNGLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLFVBQVUsR0FBbUI7WUFDakMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BFLGNBQWMsRUFBRTtnQkFDZCxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYTthQUNuRDtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLO1lBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUs7U0FDekQsQ0FBQztRQUVGLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsSUFBSSxFQUN2RCxDQUFDO1lBQ0QsVUFBVSxDQUFDLE9BQU8sR0FBRztnQkFDbkIsR0FBRyxVQUFVLENBQUMsT0FBTztnQkFDckIsY0FBYyxFQUFFLG1DQUFtQzthQUNwRCxDQUFDO1lBQ0YsVUFBVSxDQUFDLFNBQVMsR0FBRztnQkFDckIsbUJBQW1CLEVBQUUsYUFBYTthQUNuQyxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvRCxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixHQUFHO29CQUM1QyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7aUJBQzFDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O0FBckZILGdDQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uLy4uL25vdGlmeVwiO1xuaW1wb3J0IHsgaW50ZWdyYXRpb25SZXNvdXJjZUFybiB9IGZyb20gXCIuLi9wcml2YXRlL3Rhc2stdXRpbHNcIjtcblxuLyoqXG4gKiBUaGUgc3R5bGUgdXNlZCB3aGVuIGFwcGx5aW5nIFVSTCBlbmNvZGluZyB0byBhcnJheSB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBlbnVtIFVSTEVuY29kaW5nRm9ybWF0IHtcbiAgLyoqXG4gICAqIEVuY29kZSBhcnJheXMgdXNpbmcgYnJhY2tldHMuIEZvciBleGFtcGxlLCB7J2FycmF5JzogWydhJywnYicsJ2MnXX0gZW5jb2RlcyB0byAnYXJyYXlbXT1hJmFycmF5W109YiZhcnJheVtdPWMnXG4gICAqL1xuICBCUkFDS0VUUyA9IFwiQlJBQ0tFVFNcIixcbiAgLyoqXG4gICAqIEVuY29kZSBhcnJheXMgdXNpbmcgY29tbWFzLiBGb3IgZXhhbXBsZSwgeydhcnJheSc6IFsnYScsJ2InLCdjJ119IGVuY29kZXMgdG8gJ2FycmF5PWEsYixjLGQnXG4gICAqL1xuICBDT01NQVMgPSBcIkNPTU1BU1wiLFxuICAvKipcbiAgICogQXBwbHkgdGhlIGRlZmF1bHQgVVJMIGVuY29kaW5nIHN0eWxlIChJTkRJQ0VTKS5cbiAgICovXG4gIERFRkFVTFQgPSBcIkRFRkFVTFRcIixcbiAgLyoqXG4gICAqIEVuY29kZSBhcnJheXMgdXNpbmcgdGhlIGluZGV4IHZhbHVlLiBGb3IgZXhhbXBsZSwgeydhcnJheSc6IFsnYScsJ2InLCdjJ119IGVuY29kZXMgdG8gJ2FycmF5WzBdPWEmYXJyYXlbMV09YiZhcnJheVsyXT1jJ1xuICAgKi9cbiAgSU5ESUNFUyA9IFwiSU5ESUNFU1wiLFxuICAvKipcbiAgICogRG8gbm90IGFwcGx5IFVSTCBlbmNvZGluZy5cbiAgICovXG4gIE5PTkUgPSBcIk5PTkVcIixcbiAgLyoqXG4gICAqIFJlcGVhdCBrZXkgZm9yIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuIEZvciBleGFtcGxlLCB7J2FycmF5JzogWydhJywnYicsJ2MnXX0gZW5jb2RlcyB0byAnYXJyYXlbXT1hJmFycmF5W109YiZhcnJheVtdPWMnXG4gICAqL1xuICBSRVBFQVQgPSBcIlJFUEVBVFwiLFxufVxuXG4vKipcbiAqIFRoZSBTdGVwRnVuY3Rpb25zIHBhcmFtZXRlcnMgZm9yIHRoZSBodHRwOmludm9rZSB0YXNrLlxuICovXG5pbnRlcmZhY2UgVGFza1BhcmFtZXRlcnMge1xuICBBcGlFbmRwb2ludDogc3RyaW5nO1xuICBBdXRoZW50aWNhdGlvbjoge1xuICAgIENvbm5lY3Rpb25Bcm46IHN0cmluZztcbiAgfTtcbiAgTWV0aG9kOiBzdHJpbmc7XG4gIEhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBSZXF1ZXN0Qm9keT86IHN0cmluZztcbiAgUXVlcnlQYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgVHJhbnNmb3JtPzoge1xuICAgIFJlcXVlc3RCb2R5RW5jb2Rpbmc6IHN0cmluZztcbiAgICBSZXF1ZXN0RW5jb2RpbmdPcHRpb25zPzoge1xuICAgICAgQXJyYXlGb3JtYXQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNhbGxpbmcgYW4gZXh0ZXJuYWwgSFRUUCBlbmRwb2ludCB3aXRoIEh0dHBJbnZva2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEludm9rZVByb3BzIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlUHJvcHMge1xuICAvKipcbiAgICogUGVybWlzc2lvbnMgYXJlIGdyYW50ZWQgdG8gY2FsbCBhbGwgcmVzb3VyY2VzIHVuZGVyIHRoaXMgcGF0aC5cbiAgICpcbiAgICogQGV4YW1wbGUgJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJ1xuICAgKi9cbiAgcmVhZG9ubHkgYXBpUm9vdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVBJIGVuZHBvaW50IHRvIGNhbGwsIHJlbGF0aXZlIHRvIGBhcGlSb290YC5cbiAgICogQGV4YW1wbGUgY29tcHV0ZS5UYXNrSW5wdXQuZnJvbVRleHQoJ3BhdGgvdG8vcmVzb3VyY2UnKVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW5kcG9pbnQ6IGNvbXB1dGUuVGFza0lucHV0O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUCBtZXRob2QgdG8gdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSBjb21wdXRlLlRhc2tJbnB1dC5mcm9tVGV4dCgnR0VUJylcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZDogY29tcHV0ZS5UYXNrSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBFdmVudEJyaWRnZSBDb25uZWN0aW9uIHRvIHVzZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uOiBub3RpZnkuSUNvbm5lY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBib2R5IHRvIHNlbmQgdG8gdGhlIEhUVFAgZW5kcG9pbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYm9keSBpcyBzZW50IHdpdGggdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBib2R5PzogY29tcHV0ZS5UYXNrSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkZXJzIHRvIHNlbmQgdG8gdGhlIEhUVFAgZW5kcG9pbnQuXG4gICAqXG4gICAqIEBleGFtcGxlIGNvbXB1dGUuVGFza0lucHV0LmZyb21PYmplY3QoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBoZWFkZXJzIGFyZSBhZGRlZCB0byB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlcnM/OiBjb21wdXRlLlRhc2tJbnB1dDtcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIHRvIHNlbmQgdG8gdGhlIEhUVFAgZW5kcG9pbnQuXG4gICAqIEBkZWZhdWx0IC0gTm8gcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMgYXJlIHNlbnQgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBjb21wdXRlLlRhc2tJbnB1dDtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGFwcGx5IFVSTCBlbmNvZGluZyB0byB0aGUgcmVxdWVzdCBib2R5LCBhbmQgd2hpY2ggYXJyYXkgZW5jb2RpbmcgZm9ybWF0IHRvIHVzZS5cbiAgICpcbiAgICogYFVSTEVuY29kaW5nRm9ybWF0Lk5PTkVgIHBhc3NlcyB0aGUgSlNPTi1zZXJpYWxpemVkIGBSZXF1ZXN0Qm9keWAgZmllbGQgYXMgdGhlIEhUVFAgcmVxdWVzdCBib2R5LlxuICAgKiBPdGhlcndpc2UsIHRoZSBIVFRQIHJlcXVlc3QgYm9keSBpcyB0aGUgVVJMLWVuY29kZWQgZm9ybSBkYXRhIG9mIHRoZSBgUmVxdWVzdEJvZHlgIGZpZWxkIHVzaW5nIHRoZVxuICAgKiBzcGVjaWZpZWQgYXJyYXkgZW5jb2RpbmcgZm9ybWF0LCBhbmQgdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlciBpcyBzZXQgdG8gYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVVJMRW5jb2RpbmdGb3JtYXQuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdXJsRW5jb2RpbmdGb3JtYXQ/OiBVUkxFbmNvZGluZ0Zvcm1hdDtcbn1cblxuLyoqXG4gKiBBIFN0ZXAgRnVuY3Rpb25zIFRhc2sgdG8gY2FsbCBhIHB1YmxpYyB0aGlyZC1wYXJ0eSBBUEkuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdHRwSW52b2tlIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlIHtcbiAgLy8gcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tNZXRyaWNzPzogY29tcHV0ZS5UYXNrTWV0cmljc0NvbmZpZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tQb2xpY2llcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogSHR0cEludm9rZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMudGFza1BvbGljaWVzID0gdGhpcy5idWlsZFRhc2tQb2xpY3lTdGF0ZW1lbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIEhUVFAgSW52b2tlIHNlcnZpY2UgaW50ZWdyYXRpb24gdGFzayBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfcmVuZGVyVGFzaygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBSZXNvdXJjZTogaW50ZWdyYXRpb25SZXNvdXJjZUFybih0aGlzLCBcImh0dHBcIiwgXCJpbnZva2VcIiksXG4gICAgICBQYXJhbWV0ZXJzOiBjb21wdXRlLkZpZWxkVXRpbHMucmVuZGVyT2JqZWN0KHRoaXMuYnVpbGRUYXNrUGFyYW1ldGVycygpKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkVGFza1BvbGljeVN0YXRlbWVudHMoKTogaWFtLlBvbGljeVN0YXRlbWVudFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJldmVudHM6UmV0cmlldmVDb25uZWN0aW9uQ3JlZGVudGlhbHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW3RoaXMucHJvcHMuY29ubmVjdGlvbi5jb25uZWN0aW9uQXJuXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZVwiLFxuICAgICAgICAgIFwic2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXRcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9wcy5jb25uZWN0aW9uLmNvbm5lY3Rpb25TZWNyZXRBcm5dLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInN0YXRlczpJbnZva2VIVFRQRW5kcG9pbnRcIl0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgY29uZGl0aW9uOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJTdHJpbmdMaWtlXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogXCJzdGF0ZXM6SFRUUEVuZHBvaW50XCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtgJHt0aGlzLnByb3BzLmFwaVJvb3R9KmBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhc2tQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtZXRlcnM6IFRhc2tQYXJhbWV0ZXJzID0ge1xuICAgICAgQXBpRW5kcG9pbnQ6IGAke3RoaXMucHJvcHMuYXBpUm9vdH0vJHt0aGlzLnByb3BzLmFwaUVuZHBvaW50LnZhbHVlfWAsXG4gICAgICBBdXRoZW50aWNhdGlvbjoge1xuICAgICAgICBDb25uZWN0aW9uQXJuOiB0aGlzLnByb3BzLmNvbm5lY3Rpb24uY29ubmVjdGlvbkFybixcbiAgICAgIH0sXG4gICAgICBNZXRob2Q6IHRoaXMucHJvcHMubWV0aG9kLnZhbHVlLFxuICAgICAgSGVhZGVyczogdGhpcy5wcm9wcy5oZWFkZXJzPy52YWx1ZSxcbiAgICAgIFJlcXVlc3RCb2R5OiB0aGlzLnByb3BzLmJvZHk/LnZhbHVlLFxuICAgICAgUXVlcnlQYXJhbWV0ZXJzOiB0aGlzLnByb3BzLnF1ZXJ5U3RyaW5nUGFyYW1ldGVycz8udmFsdWUsXG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMucHJvcHMudXJsRW5jb2RpbmdGb3JtYXQgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5wcm9wcy51cmxFbmNvZGluZ0Zvcm1hdCAhPT0gVVJMRW5jb2RpbmdGb3JtYXQuTk9ORVxuICAgICkge1xuICAgICAgcGFyYW1ldGVycy5IZWFkZXJzID0ge1xuICAgICAgICAuLi5wYXJhbWV0ZXJzLkhlYWRlcnMsXG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICB9O1xuICAgICAgcGFyYW1ldGVycy5UcmFuc2Zvcm0gPSB7XG4gICAgICAgIFJlcXVlc3RCb2R5RW5jb2Rpbmc6IFwiVVJMX0VOQ09ERURcIixcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnVybEVuY29kaW5nRm9ybWF0ICE9PSBVUkxFbmNvZGluZ0Zvcm1hdC5ERUZBVUxUKSB7XG4gICAgICAgIHBhcmFtZXRlcnMuVHJhbnNmb3JtLlJlcXVlc3RFbmNvZGluZ09wdGlvbnMgPSB7XG4gICAgICAgICAgQXJyYXlGb3JtYXQ6IHRoaXMucHJvcHMudXJsRW5jb2RpbmdGb3JtYXQsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gIH1cbn1cbiJdfQ==
@@ -93,7 +93,7 @@ class LambdaInvoke extends compute.TaskStateBase {
93
93
  }
94
94
  exports.LambdaInvoke = LambdaInvoke;
95
95
  _a = JSII_RTTI_SYMBOL_1;
96
- LambdaInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.LambdaInvoke", version: "0.0.19" };
96
+ LambdaInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.LambdaInvoke", version: "0.0.20" };
97
97
  LambdaInvoke.SUPPORTED_INTEGRATION_PATTERNS = [
98
98
  compute.IntegrationPattern.REQUEST_RESPONSE,
99
99
  compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
@@ -62,7 +62,7 @@ class SqsSendMessage extends compute.TaskStateBase {
62
62
  }
63
63
  exports.SqsSendMessage = SqsSendMessage;
64
64
  _a = JSII_RTTI_SYMBOL_1;
65
- SqsSendMessage[_a] = { fqn: "terraconstructs.aws.compute.tasks.SqsSendMessage", version: "0.0.19" };
65
+ SqsSendMessage[_a] = { fqn: "terraconstructs.aws.compute.tasks.SqsSendMessage", version: "0.0.20" };
66
66
  SqsSendMessage.SUPPORTED_INTEGRATION_PATTERNS = [
67
67
  compute.IntegrationPattern.REQUEST_RESPONSE,
68
68
  compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
@@ -41,5 +41,5 @@ class StepFunctionsInvokeActivity extends compute.TaskStateBase {
41
41
  }
42
42
  exports.StepFunctionsInvokeActivity = StepFunctionsInvokeActivity;
43
43
  _a = JSII_RTTI_SYMBOL_1;
44
- StepFunctionsInvokeActivity[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsInvokeActivity", version: "0.0.19" };
44
+ StepFunctionsInvokeActivity[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsInvokeActivity", version: "0.0.20" };
45
45
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLWFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL3N0ZXBmdW5jdGlvbnMvaW52b2tlLWFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esa0NBQWtDO0FBeUJsQzs7OztHQUlHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxPQUFPLENBQUMsYUFBYTtJQUtwRSxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDTyxLQUF1QztRQUV4RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZQLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBSXhELE9BQU87UUFDUCwyREFBMkQ7UUFDM0QsMkNBQTJDO1FBQzNDLE1BQU07UUFDTixxREFBcUQ7UUFDckQsMERBQTBEO1FBQzFELE9BQU87UUFDUCxJQUFJO1FBQ0osdUJBQXVCO1FBQ3ZCLHdFQUF3RTtRQUN4RSxzQ0FBc0M7UUFDdEMsc0NBQXNDO1FBQ3RDLEtBQUs7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2dCQUMvQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7O0FBckNILGtFQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG4vLyBpbXBvcnQgeyBJS2V5IH0gZnJvbSBcIi4uLy4uLy4uL2VuY3J5cHRpb25cIjtcbi8vIGltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEVuY3J5cHRpb25Db25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2N1c3RvbWVyLW1hbmFnZWQta2V5LWVuY3J5cHRpb24tY29uZmlndXJhdGlvblwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGludm9raW5nIGFuIEFjdGl2aXR5IHdvcmtlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBGdW5jdGlvbnNJbnZva2VBY3Rpdml0eVByb3BzXG4gIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlUHJvcHMge1xuICAvKipcbiAgICogU3RlcCBGdW5jdGlvbnMgQWN0aXZpdHkgdG8gaW52b2tlXG4gICAqL1xuICByZWFkb25seSBhY3Rpdml0eTogY29tcHV0ZS5JQWN0aXZpdHk7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgcGFzcyBhIGNvbGxlY3Rpb24gb2Yga2V5LXZhbHVlIHBhaXJzLCBlaXRoZXIgc3RhdGljIHZhbHVlcyBvciBKU09OUGF0aCBleHByZXNzaW9ucyB0aGF0IHNlbGVjdCBmcm9tIHRoZSBpbnB1dC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2lucHV0LW91dHB1dC1pbnB1dHBhdGgtcGFyYW1zLmh0bWwjaW5wdXQtb3V0cHV0LXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIEEgU3RlcCBGdW5jdGlvbnMgVGFzayB0byBpbnZva2UgYW4gQWN0aXZpdHkgd29ya2VyLlxuICpcbiAqIEFuIEFjdGl2aXR5IGNhbiBiZSB1c2VkIGRpcmVjdGx5IGFzIGEgUmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGVwRnVuY3Rpb25zSW52b2tlQWN0aXZpdHkgZXh0ZW5kcyBjb21wdXRlLlRhc2tTdGF0ZUJhc2Uge1xuICAvLyBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza01ldHJpY3M/OiBjb21wdXRlLlRhc2tNZXRyaWNzQ29uZmlnO1xuICAvLyBObyBJQU0gcGVybWlzc2lvbnMgbmVjZXNzYXJ5IHVubGVzcyB0aGUgQWN0aXZpdHkgdXNlcyBhIGN1c3RvbWVyIG1hbmFnZWQgS01TIGtleVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza1BvbGljaWVzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTdGVwRnVuY3Rpb25zSW52b2tlQWN0aXZpdHlQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBpZiAoXG4gICAgLy8gICB0aGlzLnByb3BzLmFjdGl2aXR5LmVuY3J5cHRpb25Db25maWd1cmF0aW9uIGluc3RhbmNlb2ZcbiAgICAvLyAgIEN1c3RvbWVyTWFuYWdlZEVuY3J5cHRpb25Db25maWd1cmF0aW9uXG4gICAgLy8gKSB7XG4gICAgLy8gICB0aGlzLnRhc2tQb2xpY2llcyA9IHRoaXMuY3JlYXRlUG9saWN5U3RhdGVtZW50cyhcbiAgICAvLyAgICAgdGhpcy5wcm9wcy5hY3Rpdml0eS5lbmNyeXB0aW9uQ29uZmlndXJhdGlvbi5rbXNLZXksXG4gICAgLy8gICApO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLnRhc2tNZXRyaWNzID0ge1xuICAgIC8vICAgbWV0cmljRGltZW5zaW9uczogeyBBY3Rpdml0eUFybjogdGhpcy5wcm9wcy5hY3Rpdml0eS5hY3Rpdml0eUFybiB9LFxuICAgIC8vICAgbWV0cmljUHJlZml4U2luZ3VsYXI6IFwiQWN0aXZpdHlcIixcbiAgICAvLyAgIG1ldHJpY1ByZWZpeFBsdXJhbDogXCJBY3Rpdml0aWVzXCIsXG4gICAgLy8gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfcmVuZGVyVGFzaygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBSZXNvdXJjZTogdGhpcy5wcm9wcy5hY3Rpdml0eS5hY3Rpdml0eUFybixcbiAgICAgIFBhcmFtZXRlcnM6IHRoaXMucHJvcHMucGFyYW1ldGVyc1xuICAgICAgICA/IGNvbXB1dGUuRmllbGRVdGlscy5yZW5kZXJPYmplY3QodGhpcy5wcm9wcy5wYXJhbWV0ZXJzKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gLy8gSUFNIHBvbGljeSBmb3IgdGhlIFN0YXRlIE1hY2hpbmUgZXhlY3V0aW9uIHJvbGUgdG8gdXNlIHRoZSBBY3Rpdml0eSBLTVMga2V5IHdoZW4gZW5jcnlwdGluZyBpbnB1dHNcbiAgLy8gcHJpdmF0ZSBjcmVhdGVQb2xpY3lTdGF0ZW1lbnRzKGttc2tleTogSUtleSk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSB7XG4gIC8vICAgcmV0dXJuIFtcbiAgLy8gICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgLy8gICAgICAgYWN0aW9uczogW1wia21zOkRlY3J5cHRcIiwgXCJrbXM6R2VuZXJhdGVEYXRhS2V5XCJdLFxuICAvLyAgICAgICByZXNvdXJjZXM6IFtgJHtrbXNrZXkua2V5QXJufWBdLFxuICAvLyAgICAgICBjb25kaXRpb246IFtcbiAgLy8gICAgICAgICB7XG4gIC8vICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAvLyAgICAgICAgICAgdmFyaWFibGU6IFwia21zOkVuY3J5cHRpb25Db250ZXh0OmF3czpzdGF0ZXM6YWN0aXZpdHlBcm5cIixcbiAgLy8gICAgICAgICAgIHZhbHVlczogW3RoaXMucHJvcHMuYWN0aXZpdHkuYWN0aXZpdHlBcm5dLFxuICAvLyAgICAgICAgIH0sXG4gIC8vICAgICAgIF0sXG4gIC8vICAgICB9KSxcbiAgLy8gICBdO1xuICAvLyB9XG59XG4iXX0=
@@ -114,7 +114,7 @@ class StepFunctionsStartExecution extends compute.TaskStateBase {
114
114
  }
115
115
  exports.StepFunctionsStartExecution = StepFunctionsStartExecution;
116
116
  _a = JSII_RTTI_SYMBOL_1;
117
- StepFunctionsStartExecution[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsStartExecution", version: "0.0.19" };
117
+ StepFunctionsStartExecution[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsStartExecution", version: "0.0.20" };
118
118
  StepFunctionsStartExecution.SUPPORTED_INTEGRATION_PATTERNS = [
119
119
  compute.IntegrationPattern.REQUEST_RESPONSE,
120
120
  compute.IntegrationPattern.RUN_JOB,
@@ -26,7 +26,7 @@ class Errors {
26
26
  }
27
27
  exports.Errors = Errors;
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- Errors[_a] = { fqn: "terraconstructs.aws.compute.Errors", version: "0.0.19" };
29
+ Errors[_a] = { fqn: "terraconstructs.aws.compute.Errors", version: "0.0.20" };
30
30
  /**
31
31
  * Matches any Error.
32
32
  */
@@ -59,7 +59,7 @@ class UserData {
59
59
  }
60
60
  exports.UserData = UserData;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- UserData[_a] = { fqn: "terraconstructs.aws.compute.UserData", version: "0.0.19" };
62
+ UserData[_a] = { fqn: "terraconstructs.aws.compute.UserData", version: "0.0.20" };
63
63
  /**
64
64
  * Linux Instance User Data
65
65
  */
@@ -308,7 +308,7 @@ class MultipartBody {
308
308
  }
309
309
  exports.MultipartBody = MultipartBody;
310
310
  _b = JSII_RTTI_SYMBOL_1;
311
- MultipartBody[_b] = { fqn: "terraconstructs.aws.compute.MultipartBody", version: "0.0.19" };
311
+ MultipartBody[_b] = { fqn: "terraconstructs.aws.compute.MultipartBody", version: "0.0.20" };
312
312
  /**
313
313
  * Content type for shell scripts
314
314
  */
@@ -481,7 +481,7 @@ class MultipartUserData extends UserData {
481
481
  }
482
482
  exports.MultipartUserData = MultipartUserData;
483
483
  _c = JSII_RTTI_SYMBOL_1;
484
- MultipartUserData[_c] = { fqn: "terraconstructs.aws.compute.MultipartUserData", version: "0.0.19" };
484
+ MultipartUserData[_c] = { fqn: "terraconstructs.aws.compute.MultipartUserData", version: "0.0.20" };
485
485
  MultipartUserData.USE_PART_ERROR = "MultipartUserData only supports this operation if it has a default UserData. Call addUserDataPart with makeDefault=true.";
486
486
  MultipartUserData.BOUNDRY_PATTERN = "[^a-zA-Z0-9()+,-./:=?]";
487
487
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3VzZXItZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZGQUE2RjtBQUU3RixrRUFBZ0U7QUFDaEUsaUNBSWU7QUFNZixtREFBNkQ7QUF3SDdELDBDQUEwQztBQUMxQyx1RkFBdUY7QUFFdkY7Ozs7Ozs7R0FPRztBQUNILE1BQXNCLFFBQVE7SUFDNUI7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQWdDLEVBQUU7UUFDdkQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQWtDLEVBQUU7UUFDM0QsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWU7UUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN0QyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBdUI7UUFDdEQsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNYLEtBQUssNEJBQW1CLENBQUMsS0FBSztnQkFDNUIsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsS0FBSyw0QkFBbUIsQ0FBQyxPQUFPO2dCQUM5QixPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixLQUFLLDRCQUFtQixDQUFDLE9BQU87Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQVVELFlBQVksa0JBQWtDLEVBQUU7UUFD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SSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQzs7QUFoSkgsOENBaUpDOzs7QUFoSnlCLGdDQUFjLEdBQ3BDLDBIQUEwSCxBQUR0RixDQUN1RjtBQUNyRyxpQ0FBZSxHQUFHLHdCQUF3QixBQUEzQixDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL3VzZXItZGF0YS50c1xuXG5pbXBvcnQgeyBkYXRhQ2xvdWRpbml0Q29uZmlnIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1jbG91ZGluaXRcIjtcbmltcG9ydCB7XG4gIC8vIFRlcnJhZm9ybVJlc291cmNlXG4gIElSZXNvbHZhYmxlLFxuICBMYXp5LFxufSBmcm9tIFwiY2RrdGZcIjtcbi8vIGltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuLy8gaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbi8vIGltcG9ydCB7IEZuIH0gZnJvbSBcIi4uLy4uL3RlcnJhLWZ1bmNcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiLi4vc3RvcmFnZVwiO1xuaW1wb3J0IHsgT3BlcmF0aW5nU3lzdGVtVHlwZSB9IGZyb20gXCIuL21hY2hpbmUtaW1hZ2UvY29tbW9uXCI7XG5cbi8qKlxuICogQ29tbW9uIFVzZXJEYXRhIE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyRGF0YUNvbW1vbiB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHRvIGJhc2U2NCBlbmNvZGUgdGhlIGByZW5kZXJlZGAgb3V0cHV0LiBDYW5ub3QgYmUgZGlzYWJsZWQgaWYgZ3ppcCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIE5PVEU6IEluc3RhbmNlIGFuZCBMYXVuY2hUZW1wbGF0ZSBleHBlY3QgYmFzZTY0IGVuY29kZWQgdXNlciBkYXRhXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9jbG91ZGluaXQvMi4zLjYvZG9jcy9kYXRhLXNvdXJjZXMvY29uZmlnI2Jhc2U2NF9lbmNvZGUgRGF0YUNsb3VkaW5pdENvbmZpZyNiYXNlNjRfZW5jb2RlfVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBiYXNlNjRFbmNvZGU/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHRvIGd6aXAgdGhlIGByZW5kZXJlZGAgb3V0cHV0LlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvY2xvdWRpbml0LzIuMy42L2RvY3MvZGF0YS1zb3VyY2VzL2NvbmZpZyNnemlwIERhdGFDbG91ZGluaXRDb25maWcjZ3ppcH1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ3ppcD86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIGBDb250ZW50LVR5cGVgIGhlYWRlciBvZiB0aGlzIHBhcnQuXG4gICAqXG4gICAqIFNvbWUgZXhhbXBsZXMgb2YgY29udGVudCB0eXBlczpcbiAgICogKiBgdGV4dC94LXNoZWxsc2NyaXB0OyBjaGFyc2V0PVwidXRmLThcImAgKHNoZWxsIHNjcmlwdClcbiAgICogKiBgdGV4dC9jbG91ZC1ib290aG9vazsgY2hhcnNldD1cInV0Zi04XCJgIChzaGVsbCBzY3JpcHQgZXhlY3V0ZWQgZHVyaW5nIGJvb3QgcGhhc2UpXG4gICAqXG4gICAqIEZvciBMaW51eCBzaGVsbCBzY3JpcHRzIHVzZSBgdGV4dC94LXNoZWxsc2NyaXB0YC5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2Nsb3VkaW5pdC8yLjMuNi9kb2NzL2RhdGEtc291cmNlcy9jb25maWcjY29udGVudF90eXBlIERhdGFDbG91ZGluaXRDb25maWcjY29udGVudF90eXBlfVxuICAgKlxuICAgKiBAZGVmYXVsdHMgdG8gYHRleHQvcGxhaW5gXG4gICAqL1xuICByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZmlsZW5hbWUgdG8gcmVwb3J0IGluIHRoZSBoZWFkZXIgZm9yIHRoZSBwYXJ0LlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvY2xvdWRpbml0LzIuMy42L2RvY3MvZGF0YS1zb3VyY2VzL2NvbmZpZyNmaWxlbmFtZSBEYXRhQ2xvdWRpbml0Q29uZmlnI2ZpbGVuYW1lfVxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZW5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyB3aGVuIGNvbnN0cnVjdGluZyBVc2VyRGF0YSBmb3IgTGludXhcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW51eFVzZXJEYXRhT3B0aW9ucyBleHRlbmRzIFVzZXJEYXRhQ29tbW9uIHtcbiAgLyoqXG4gICAqIFNoZWJhbmcgZm9yIHRoZSBVc2VyRGF0YSBzY3JpcHRcbiAgICpcbiAgICogQGRlZmF1bHQgXCIjIS9iaW4vYmFzaFwiXG4gICAqL1xuICByZWFkb25seSBzaGViYW5nPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgd2hlbiBjb25zdHJ1Y3RpbmcgVXNlckRhdGEgZm9yIFdpbmRvd3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXaW5kb3dzVXNlckRhdGFPcHRpb25zIGV4dGVuZHMgVXNlckRhdGFDb21tb24ge1xuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gc2V0IHRoaXMgdXNlcmRhdGEgdG8gcGVyc2lzdCB0aHJvdWdoIGFuIGluc3RhbmNlIHJlYm9vdDsgYWxsb3dpbmdcbiAgICogaXQgdG8gcnVuIG9uIGV2ZXJ5IGluc3RhbmNlIHN0YXJ0LlxuICAgKiBCeSBkZWZhdWx0LCBVc2VyRGF0YSBpcyBydW4gb25seSBvbmNlIGR1cmluZyB0aGUgZmlyc3QgaW5zdGFuY2UgbGF1bmNoLlxuICAgKlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOlxuICAgKiBodHRwczovL2F3cy5hbWF6b24uY29tL3ByZW1pdW1zdXBwb3J0L2tub3dsZWRnZS1jZW50ZXIvZXhlY3V0ZS11c2VyLWRhdGEtZWMyL1xuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9XaW5kb3dzR3VpZGUvZWMyLXdpbmRvd3MtdXNlci1kYXRhLmh0bWwjdXNlci1kYXRhLXNjcmlwdHNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHBlcnNpc3Q/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgd2hlbiBkb3dubG9hZGluZyBmaWxlcyBmcm9tIFMzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNEb3dubG9hZE9wdGlvbnMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgUzMgYnVja2V0IHRvIGRvd25sb2FkIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIGtleSBvZiB0aGUgZmlsZSB0byBkb3dubG9hZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0S2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBMaW51eCAgIC0gL3RtcC9idWNrZXRLZXlcbiAgICogICAgICAgICAgV2luZG93cyAtICVURU1QJS9idWNrZXRLZXlcbiAgICovXG4gIHJlYWRvbmx5IGxvY2FsRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBvZiB0aGUgUzMgQnVja2V0IChuZWVkZWQgZm9yIGFjY2VzcyB2aWEgVlBDIEdhdGV3YXkpXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIHdoZW4gZXhlY3V0aW5nIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBhcmd1bWVudHM/OiBzdHJpbmc7XG59XG5cbi8vIFRPRE86IFN1cHBvcnQgQ29udGVudCBUcmFuc2ZlciBFbmNvZGluZ1xuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjU3MTA1OTkvY29udGVudC10cmFuc2Zlci1lbmNvZGluZy03Yml0LW9yLTgtYml0XG5cbi8qKlxuICogSW5zdGFuY2UgVXNlciBEYXRhXG4gKlxuICogcmVzb3VyY2U6IGRhdGFfY2xvdWRpbml0X2NvbmZpZ1xuICpcbiAqIFRoaXMgaXMgbGltaXRlZCB0byA3Yml0IGVuY29kaW5nXG4gKiByZWYgb3BlbiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItY2xvdWRpbml0L3B1bGwvMTcwXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyRGF0YSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSB1c2VyZGF0YSBvYmplY3QgZm9yIExpbnV4IGhvc3RzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvckxpbnV4KG9wdGlvbnM6IExpbnV4VXNlckRhdGFPcHRpb25zID0ge30pOiBVc2VyRGF0YSB7XG4gICAgcmV0dXJuIG5ldyBMaW51eFVzZXJEYXRhKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHVzZXJkYXRhIG9iamVjdCBmb3IgV2luZG93cyBob3N0c1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JXaW5kb3dzKG9wdGlvbnM6IFdpbmRvd3NVc2VyRGF0YU9wdGlvbnMgPSB7fSk6IFVzZXJEYXRhIHtcbiAgICByZXR1cm4gbmV3IFdpbmRvd3NVc2VyRGF0YShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB1c2VyZGF0YSBvYmplY3Qgd2l0aCBjdXN0b20gY29udGVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b20oY29udGVudDogc3RyaW5nKTogVXNlckRhdGEge1xuICAgIGNvbnN0IHVzZXJEYXRhID0gbmV3IEN1c3RvbVVzZXJEYXRhKCk7XG4gICAgdXNlckRhdGEuYWRkQ29tbWFuZHMoY29udGVudCk7XG4gICAgcmV0dXJuIHVzZXJEYXRhO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JPcGVyYXRpbmdTeXN0ZW0ob3M6IE9wZXJhdGluZ1N5c3RlbVR5cGUpOiBVc2VyRGF0YSB7XG4gICAgc3dpdGNoIChvcykge1xuICAgICAgY2FzZSBPcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYOlxuICAgICAgICByZXR1cm4gVXNlckRhdGEuZm9yTGludXgoKTtcbiAgICAgIGNhc2UgT3BlcmF0aW5nU3lzdGVtVHlwZS5XSU5ET1dTOlxuICAgICAgICByZXR1cm4gVXNlckRhdGEuZm9yV2luZG93cygpO1xuICAgICAgY2FzZSBPcGVyYXRpbmdTeXN0ZW1UeXBlLlVOS05PV046XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIkNhbm5vdCBkZXRlcm1pbmUgVXNlckRhdGEgZm9yIHVua25vd24gb3BlcmF0aW5nIHN5c3RlbSB0eXBlXCIsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRoZSBVc2VyRGF0YSBDb250ZW50ICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb250ZW50OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBiYXNlNjRFbmNvZGU6IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGd6aXA6IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcblxuICBjb25zdHJ1Y3Rvcih1c2VyZGF0YU9wdGlvbnM6IFVzZXJEYXRhQ29tbW9uID0ge30pIHtcbiAgICBpZiAoXG4gICAgICB1c2VyZGF0YU9wdGlvbnMuYmFzZTY0RW5jb2RlID09PSBmYWxzZSAmJlxuICAgICAgdXNlcmRhdGFPcHRpb25zLmd6aXAgPT09IHRydWVcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkaXNhYmxlIGJhc2U2NCBlbmNvZGluZyBpZiBnemlwIGlzIGVuYWJsZWRcIik7XG4gICAgfVxuICAgIHRoaXMuYmFzZTY0RW5jb2RlID0gdXNlcmRhdGFPcHRpb25zLmJhc2U2NEVuY29kZSA/PyB0cnVlO1xuICAgIHRoaXMuZ3ppcCA9IHVzZXJkYXRhT3B0aW9ucy5nemlwID8/IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG9uZSBvciBtb3JlIGNvbW1hbmRzIHRvIHRoZSB1c2VyIGRhdGFcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGQgb25lIG9yIG1vcmUgY29tbWFuZHMgdG8gdGhlIHVzZXIgZGF0YSB0aGF0IHdpbGwgcnVuIHdoZW4gdGhlIHNjcmlwdCBleGl0cy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRPbkV4aXRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIFVzZXJEYXRhIGZvciB1c2UgaW4gYSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZW5kZXIoc2NvcGU6IElDb25zdHJ1Y3QpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgY29tbWFuZHMgdG8gZG93bmxvYWQgYSBmaWxlIGZyb20gUzNcbiAgICpcbiAgICogQHJldHVybnM6IFRoZSBsb2NhbCBwYXRoIHRoYXQgdGhlIGZpbGUgd2lsbCBiZSBkb3dubG9hZGVkIHRvXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkUzNEb3dubG9hZENvbW1hbmQocGFyYW1zOiBTM0Rvd25sb2FkT3B0aW9ucyk6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBjb21tYW5kcyB0byBleGVjdXRlIGEgZmlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZEV4ZWN1dGVGaWxlQ29tbWFuZChwYXJhbXM6IEV4ZWN1dGVGaWxlT3B0aW9ucyk6IHZvaWQ7XG5cbiAgLy8gLyoqXG4gIC8vICAqIEFkZHMgYSBjb21tYW5kIHdoaWNoIHdpbGwgc2VuZCBhIGNmbi1zaWduYWwgd2hlbiB0aGUgdXNlciBkYXRhIHNjcmlwdCBlbmRzXG4gIC8vICAqL1xuICAvLyBwdWJsaWMgYWJzdHJhY3QgYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZTogQXdzQ29uc3RydWN0QmFzZSk6IHZvaWQ7XG59XG5cbi8qKlxuICogTGludXggSW5zdGFuY2UgVXNlciBEYXRhXG4gKi9cbmNsYXNzIExpbnV4VXNlckRhdGEgZXh0ZW5kcyBVc2VyRGF0YSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGluZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgb25FeGl0TGluZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hlYmFuZzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogTGludXhVc2VyRGF0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zaGViYW5nID0gcHJvcHMuc2hlYmFuZyA/PyBcIiMhL2Jpbi9iYXNoXCI7XG4gICAgdGhpcy5jb250ZW50VHlwZSA9IHByb3BzLmNvbnRlbnRUeXBlO1xuICAgIHRoaXMuZmlsZW5hbWUgPSBwcm9wcy5maWxlbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmxpbmVzLnB1c2goLi4uY29tbWFuZHMpO1xuICB9XG5cbiAgcHVibGljIGFkZE9uRXhpdENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMub25FeGl0TGluZXMucHVzaCguLi5jb21tYW5kcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMuc2hlYmFuZywgLi4udGhpcy5yZW5kZXJPbkV4aXRMaW5lcygpLCAuLi50aGlzLmxpbmVzXS5qb2luKFxuICAgICAgXCJcXG5cIixcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcihzY29wZTogSUNvbnN0cnVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBkYXRhQ2xvdWRpbml0Q29uZmlnLkRhdGFDbG91ZGluaXRDb25maWcoc2NvcGUsIFwiVXNlckRhdGFcIiwge1xuICAgICAgYmFzZTY0RW5jb2RlOiB0aGlzLmJhc2U2NEVuY29kZSxcbiAgICAgIGd6aXA6IHRoaXMuZ3ppcCxcbiAgICAgIC8vIFBhc3Mgb3VyIHNjcmlwdCBhcyBhIHNpbmdsZSBwYXJ0IHdpdGggcHJvcGVyIGNvbnRlbnQgdHlwZS5cbiAgICAgIHBhcnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbnRlbnQ6IExhenkuc3RyaW5nVmFsdWUoe1xuICAgICAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5jb250ZW50LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiB0aGlzLmNvbnRlbnRUeXBlLFxuICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KS5yZW5kZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTM0Rvd25sb2FkQ29tbWFuZChwYXJhbXM6IFMzRG93bmxvYWRPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzM1BhdGggPSBgczM6Ly8ke3BhcmFtcy5idWNrZXQuYnVja2V0TmFtZX0vJHtwYXJhbXMuYnVja2V0S2V5fWA7XG4gICAgY29uc3QgbG9jYWxQYXRoID1cbiAgICAgIHBhcmFtcy5sb2NhbEZpbGUgJiYgcGFyYW1zLmxvY2FsRmlsZS5sZW5ndGggIT09IDBcbiAgICAgICAgPyBwYXJhbXMubG9jYWxGaWxlXG4gICAgICAgIDogYC90bXAvJHtwYXJhbXMuYnVja2V0S2V5fWA7XG4gICAgdGhpcy5hZGRDb21tYW5kcyhcbiAgICAgIGBta2RpciAtcCAkKGRpcm5hbWUgJyR7bG9jYWxQYXRofScpYCxcbiAgICAgIGBhd3MgczMgY3AgJyR7czNQYXRofScgJyR7bG9jYWxQYXRofSdgICtcbiAgICAgICAgKHBhcmFtcy5yZWdpb24gIT09IHVuZGVmaW5lZCA/IGAgLS1yZWdpb24gJHtwYXJhbXMucmVnaW9ufWAgOiBcIlwiKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGxvY2FsUGF0aDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeGVjdXRlRmlsZUNvbW1hbmQocGFyYW1zOiBFeGVjdXRlRmlsZU9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENvbW1hbmRzKFxuICAgICAgXCJzZXQgLWVcIixcbiAgICAgIGBjaG1vZCAreCAnJHtwYXJhbXMuZmlsZVBhdGh9J2AsXG4gICAgICBgJyR7cGFyYW1zLmZpbGVQYXRofScgJHtwYXJhbXMuYXJndW1lbnRzID8/IFwiXCJ9YC50cmltKCksXG4gICAgKTtcbiAgfVxuXG4gIC8vIC8vIFRPRE86IEFkZCBHcmlkIFNpZ25hbHMgLSBjb3B5IGdyaWQtc2lnbmFsIGJpbmFyeSBpbiBwcm92aXNpb25lclxuICAvLyBwdWJsaWMgYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZTogQXdzQ29uc3RydWN0QmFzZSk6IHZvaWQge1xuICAvLyAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QocmVzb3VyY2UpO1xuICAvLyAgIGNvbnN0IHJlc291cmNlSUQgPSAocmVzb3VyY2Uubm9kZS5kZWZhdWx0Q2hpbGQgYXMgVGVycmFmb3JtUmVzb3VyY2UpLmZxbjtcbiAgLy8gICB0aGlzLmFkZE9uRXhpdENvbW1hbmRzKFxuICAvLyAgICAgYC9vcHQvYXdzL2Jpbi9ncmlkLXNpZ25hbCAtLXN0YWNrICR7c3RhY2suZ3JpZFVVSUR9IC0tcmVzb3VyY2UgJHtyZXNvdXJjZUlEfSAtLXJlZ2lvbiAke3N0YWNrLnJlZ2lvbn0gLWUgJGV4aXRDb2RlIHx8IGVjaG8gJ0ZhaWxlZCB0byBzZW5kIENsb3VkZm9ybWF0aW9uIFNpZ25hbCdgLFxuICAvLyAgICk7XG4gIC8vIH1cblxuICBwcml2YXRlIHJlbmRlck9uRXhpdExpbmVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5vbkV4aXRMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcImZ1bmN0aW9uIGV4aXRUcmFwKCl7XCIsXG4gICAgICAgIFwiZXhpdENvZGU9JD9cIixcbiAgICAgICAgLi4udGhpcy5vbkV4aXRMaW5lcyxcbiAgICAgICAgXCJ9XCIsXG4gICAgICAgIFwidHJhcCBleGl0VHJhcCBFWElUXCIsXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBXaW5kb3dzIEluc3RhbmNlIFVzZXIgRGF0YVxuICovXG5jbGFzcyBXaW5kb3dzVXNlckRhdGEgZXh0ZW5kcyBVc2VyRGF0YSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGluZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgb25FeGl0TGluZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcnNpc3Q6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFdpbmRvd3NVc2VyRGF0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wZXJzaXN0ID0gcHJvcHMucGVyc2lzdCA/PyBmYWxzZTtcbiAgICB0aGlzLmNvbnRlbnRUeXBlID0gcHJvcHMuY29udGVudFR5cGU7XG4gICAgdGhpcy5maWxlbmFtZSA9IHByb3BzLmZpbGVuYW1lO1xuICB9XG5cbiAgcHVibGljIGFkZENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubGluZXMucHVzaCguLi5jb21tYW5kcyk7XG4gIH1cblxuICBwdWJsaWMgYWRkT25FeGl0Q29tbWFuZHMoLi4uY29tbWFuZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5vbkV4aXRMaW5lcy5wdXNoKC4uLmNvbW1hbmRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPHBvd2Vyc2hlbGw+JHtbXG4gICAgICAuLi50aGlzLnJlbmRlck9uRXhpdExpbmVzKCksXG4gICAgICAuLi50aGlzLmxpbmVzLFxuICAgICAgLi4uKHRoaXMub25FeGl0TGluZXMubGVuZ3RoID4gMCA/IFsndGhyb3cgXCJTdWNjZXNzXCInXSA6IFtdKSxcbiAgICBdLmpvaW4oXG4gICAgICBcIlxcblwiLFxuICAgICl9PC9wb3dlcnNoZWxsPiR7KHRoaXMucGVyc2lzdCA/PyBmYWxzZSkgPyBcIjxwZXJzaXN0PnRydWU8L3BlcnNpc3Q+XCIgOiBcIlwifWA7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKHNjb3BlOiBJQ29uc3RydWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZyhzY29wZSwgXCJVc2VyRGF0YVwiLCB7XG4gICAgICBiYXNlNjRFbmNvZGU6IHRoaXMuYmFzZTY0RW5jb2RlLFxuICAgICAgZ3ppcDogdGhpcy5nemlwLFxuICAgICAgLy8gUGFzcyBvdXIgc2NyaXB0IGFzIGEgc2luZ2xlIHBhcnQgd2l0aCBwcm9wZXIgY29udGVudCB0eXBlLlxuICAgICAgcGFydDogW1xuICAgICAgICB7XG4gICAgICAgICAgY29udGVudDogTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29udGVudFR5cGU6IHRoaXMuY29udGVudFR5cGUsXG4gICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZW5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLnJlbmRlcmVkO1xuICB9XG5cbiAgcHVibGljIGFkZFMzRG93bmxvYWRDb21tYW5kKHBhcmFtczogUzNEb3dubG9hZE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2FsUGF0aCA9XG4gICAgICBwYXJhbXMubG9jYWxGaWxlICYmIHBhcmFtcy5sb2NhbEZpbGUubGVuZ3RoICE9PSAwXG4gICAgICAgID8gcGFyYW1zLmxvY2FsRmlsZVxuICAgICAgICA6IGBDOi90ZW1wLyR7cGFyYW1zLmJ1Y2tldEtleX1gO1xuICAgIHRoaXMuYWRkQ29tbWFuZHMoXG4gICAgICBgbWtkaXIgKFNwbGl0LVBhdGggLVBhdGggJyR7bG9jYWxQYXRofScgKSAtZWEgMGAsXG4gICAgICBgUmVhZC1TM09iamVjdCAtQnVja2V0TmFtZSAnJHtwYXJhbXMuYnVja2V0LmJ1Y2tldE5hbWV9JyAta2V5ICcke3BhcmFtcy5idWNrZXRLZXl9JyAtZmlsZSAnJHtsb2NhbFBhdGh9JyAtRXJyb3JBY3Rpb24gU3RvcGAgK1xuICAgICAgICAocGFyYW1zLnJlZ2lvbiAhPT0gdW5kZWZpbmVkID8gYCAtUmVnaW9uICR7cGFyYW1zLnJlZ2lvbn1gIDogXCJcIiksXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYWxQYXRoO1xuICB9XG5cbiAgcHVibGljIGFkZEV4ZWN1dGVGaWxlQ29tbWFuZChwYXJhbXM6IEV4ZWN1dGVGaWxlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ29tbWFuZHMoXG4gICAgICBgJicke3BhcmFtcy5maWxlUGF0aH0nICR7cGFyYW1zLmFyZ3VtZW50cyA/PyBcIlwifWAudHJpbSgpLFxuICAgICAgYGlmICghJD8pIHsgV3JpdGUtRXJyb3IgJ0ZhaWxlZCB0byBleGVjdXRlIHRoZSBmaWxlIFwiJHtwYXJhbXMuZmlsZVBhdGh9XCInIC1FcnJvckFjdGlvbiBTdG9wIH1gLFxuICAgICk7XG4gIH1cblxuICAvLyAvLyBUT0RPOiBBZGQgR3JpZCBTaWduYWxzXG4gIC8vIHB1YmxpYyBhZGRTaWduYWxPbkV4aXRDb21tYW5kKHJlc291cmNlOiBBd3NDb25zdHJ1Y3RCYXNlKTogdm9pZCB7XG4gIC8vICAgY29uc3Qgc3RhY2sgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChyZXNvdXJjZSk7XG4gIC8vICAgY29uc3QgcmVzb3VyY2VJRCA9IChyZXNvdXJjZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBUZXJyYWZvcm1SZXNvdXJjZSkuZnFuO1xuXG4gIC8vICAgdGhpcy5hZGRPbkV4aXRDb21tYW5kcyhcbiAgLy8gICAgIGBncmlkLXNpZ25hbCAtLXN0YWNrICR7c3RhY2suZ3JpZFVVSUR9IC0tcmVzb3VyY2UgJHtyZXNvdXJjZUlEfSAtLXJlZ2lvbiAke3N0YWNrLnJlZ2lvbn0gLS1zdWNjZXNzICgkc3VjY2Vzcy5Ub1N0cmluZygpLlRvTG93ZXIoKSlgLFxuICAvLyAgICk7XG4gIC8vIH1cblxuICBwcml2YXRlIHJlbmRlck9uRXhpdExpbmVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5vbkV4aXRMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcInRyYXAge1wiLFxuICAgICAgICAnJHN1Y2Nlc3M9KCRQU0l0ZW0uRXhjZXB0aW9uLk1lc3NhZ2UgLWVxIFwiU3VjY2Vzc1wiKScsXG4gICAgICAgIC4uLnRoaXMub25FeGl0TGluZXMsXG4gICAgICAgIFwiYnJlYWtcIixcbiAgICAgICAgXCJ9XCIsXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBDdXN0b20gSW5zdGFuY2UgVXNlciBEYXRhXG4gKi9cbmNsYXNzIEN1c3RvbVVzZXJEYXRhIGV4dGVuZHMgVXNlckRhdGEge1xuICBwcml2YXRlIHJlYWRvbmx5IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGFkZENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubGluZXMucHVzaCguLi5jb21tYW5kcyk7XG4gIH1cblxuICBwdWJsaWMgYWRkT25FeGl0Q29tbWFuZHMoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJDdXN0b21Vc2VyRGF0YSBkb2VzIG5vdCBzdXBwb3J0IGFkZE9uRXhpdENvbW1hbmRzLCB1c2UgVXNlckRhdGEuZm9yTGludXgoKSBvciBVc2VyRGF0YS5mb3JXaW5kb3dzKCkgaW5zdGVhZC5cIixcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubGluZXMuam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoc2NvcGU6IElDb25zdHJ1Y3QpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgZGF0YUNsb3VkaW5pdENvbmZpZy5EYXRhQ2xvdWRpbml0Q29uZmlnKHNjb3BlLCBcIlVzZXJEYXRhXCIsIHtcbiAgICAgIGJhc2U2NEVuY29kZTogdGhpcy5iYXNlNjRFbmNvZGUsXG4gICAgICBnemlwOiB0aGlzLmd6aXAsXG4gICAgICAvLyBQYXNzIG91ciBzY3JpcHQgYXMgYSBzaW5nbGUgcGFydCB3aXRoIHByb3BlciBjb250ZW50IHR5cGUuXG4gICAgICBwYXJ0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb250ZW50OiBMYXp5LnN0cmluZ1ZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuY29udGVudCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb250ZW50VHlwZTogdGhpcy5jb250ZW50VHlwZSxcbiAgICAgICAgICBmaWxlbmFtZTogdGhpcy5maWxlbmFtZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSkucmVuZGVyZWQ7XG4gIH1cblxuICBwdWJsaWMgYWRkUzNEb3dubG9hZENvbW1hbmQoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkN1c3RvbVVzZXJEYXRhIGRvZXMgbm90IHN1cHBvcnQgYWRkUzNEb3dubG9hZENvbW1hbmQsIHVzZSBVc2VyRGF0YS5mb3JMaW51eCgpIG9yIFVzZXJEYXRhLmZvcldpbmRvd3MoKSBpbnN0ZWFkLlwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXhlY3V0ZUZpbGVDb21tYW5kKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQ3VzdG9tVXNlckRhdGEgZG9lcyBub3Qgc3VwcG9ydCBhZGRFeGVjdXRlRmlsZUNvbW1hbmQsIHVzZSBVc2VyRGF0YS5mb3JMaW51eCgpIG9yIFVzZXJEYXRhLmZvcldpbmRvd3MoKSBpbnN0ZWFkLlwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkU2lnbmFsT25FeGl0Q29tbWFuZCgpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkN1c3RvbVVzZXJEYXRhIGRvZXMgbm90IHN1cHBvcnQgYWRkU2lnbmFsT25FeGl0Q29tbWFuZCwgdXNlIFVzZXJEYXRhLmZvckxpbnV4KCkgb3IgVXNlckRhdGEuZm9yV2luZG93cygpIGluc3RlYWQuXCIsXG4gICAgKTtcbiAgfVxufVxuXG4vLyAvKipcbi8vICAqIE9wdGlvbnMgd2hlbiBjcmVhdGluZyBgTXVsdGlwYXJ0Qm9keWAuXG4vLyAgKi9cbi8vIGV4cG9ydCBpbnRlcmZhY2UgTXVsdGlwYXJ0Qm9keU9wdGlvbnMge1xuLy8gICAvKipcbi8vICAgICogYENvbnRlbnQtVHlwZWAgaGVhZGVyIG9mIHRoaXMgcGFydC5cbi8vICAgICpcbi8vICAgICogU29tZSBleGFtcGxlcyBvZiBjb250ZW50IHR5cGVzOlxuLy8gICAgKiAqIGB0ZXh0L3gtc2hlbGxzY3JpcHQ7IGNoYXJzZXQ9XCJ1dGYtOFwiYCAoc2hlbGwgc2NyaXB0KVxuLy8gICAgKiAqIGB0ZXh0L2Nsb3VkLWJvb3Rob29rOyBjaGFyc2V0PVwidXRmLThcImAgKHNoZWxsIHNjcmlwdCBleGVjdXRlZCBkdXJpbmcgYm9vdCBwaGFzZSlcbi8vICAgICpcbi8vICAgICogRm9yIExpbnV4IHNoZWxsIHNjcmlwdHMgdXNlIGB0ZXh0L3gtc2hlbGxzY3JpcHRgLlxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgY29udGVudFR5cGU6IHN0cmluZztcblxuLy8gICAvLyB0ZXJyYWZvcm0gcHJvdmlkZXIgaGFzIHRoaXMgaGFyZGNvZGVkXG4vLyAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWNsb3VkaW5pdC9ibG9iL3YyLjMuNi9pbnRlcm5hbC9wcm92aWRlci9jbG91ZGluaXRfY29uZmlnLmdvI0wxODBcblxuLy8gICAvLyAvKipcbi8vICAgLy8gICogYENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciBzcGVjaWZ5aW5nIHBhcnQgZW5jb2RpbmcuXG4vLyAgIC8vICAqXG4vLyAgIC8vICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIGJvZHkgaXMgbm90IGVuY29kZWRcbi8vICAgLy8gICovXG4vLyAgIC8vIHJlYWRvbmx5IHRyYW5zZmVyRW5jb2Rpbmc/OiBzdHJpbmc7XG5cbi8vICAgLyoqXG4vLyAgICAqIFRoZSBib2R5IG9mIG1lc3NhZ2UuXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIGJvZHkgd2lsbCBub3QgYmUgYWRkZWQgdG8gcGFydFxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgYm9keT86IHN0cmluZztcbi8vIH1cblxuLyoqXG4gKiBUaGUgYmFzZSBjbGFzcyBmb3IgYWxsIGNsYXNzZXMgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYE11bHRpcGFydFVzZXJEYXRhYC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE11bHRpcGFydEJvZHkge1xuICAvKipcbiAgICogQ29udGVudCB0eXBlIGZvciBzaGVsbCBzY3JpcHRzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIRUxMX1NDUklQVCA9ICd0ZXh0L3gtc2hlbGxzY3JpcHQ7IGNoYXJzZXQ9XCJ1dGYtOFwiJztcblxuICAvKipcbiAgICogQ29udGVudCB0eXBlIGZvciBib290IGhvb2tzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEX0JPT1RIT09LID1cbiAgICAndGV4dC9jbG91ZC1ib290aG9vazsgY2hhcnNldD1cInV0Zi04XCInO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIHRoZSBuZXcgYE11bHRpcGFydEJvZHlgIHdyYXBwaW5nIGV4aXN0aW5nIGBVc2VyRGF0YWAuIE1vZGlmaWNhdGlvbiB0byBgVXNlckRhdGFgIGFyZSByZWZsZWN0ZWRcbiAgICogaW4gc3Vic2VxdWVudCByZW5kZXJzIG9mIHRoZSBwYXJ0LlxuICAgKlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjb250ZW50IHR5cGVzIHNlZSBgTXVsdGlwYXJ0Qm9keU9wdGlvbnMuY29udGVudFR5cGVgLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlckRhdGEgdXNlciBkYXRhIHRvIHdyYXAgaW50byBib2R5IHBhcnRcbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIG9wdGlvbmFsIGNvbnRlbnQgdHlwZSwgaWYgZGVmYXVsdCBvbmUgc2hvdWxkIG5vdCBiZSB1c2VkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Vc2VyRGF0YShcbiAgICB1c2VyRGF0YTogVXNlckRhdGEsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4gICk6IE11bHRpcGFydEJvZHkge1xuICAgIHJldHVybiBuZXcgTXVsdGlwYXJ0Qm9keVVzZXJEYXRhV3JhcHBlcih1c2VyRGF0YSwgY29udGVudFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICogV2hlbiB0cmFuc2ZlciBlbmNvZGluZyBpcyBzcGVjaWZpZWQgKHR5cGljYWxseSBhcyBCYXNlNjQpLCBpdCdzIGNhbGxlciByZXNwb25zaWJpbGl0eSB0byBjb252ZXJ0IGJvZHkgdG9cbiAgKiBCYXNlNjQgZWl0aGVyIGJ5IHdyYXBwaW5nIHdpdGggYEZuLmJhc2U2NGAgb3IgYnkgY29udmVydGluZyBpdCBieSBvdGhlciBjb252ZXJ0ZXJzLlxuICAqXG4gICogTm90ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItY2xvdWRpbml0L3B1bGwvMTcwXG4gICogL1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIHRoZSByYXcgYE11bHRpcGFydEJvZHlgIHVzaW5nIHNwZWNpZmllZCBib2R5LCBjb250ZW50IHR5cGUsIGZpbGVuYW1lIGFuZCBtZXJnZSB0eXBlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21SYXdCb2R5KFxuICAgIG9wdHM6IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZ1BhcnQsXG4gICk6IE11bHRpcGFydEJvZHkge1xuICAgIHJldHVybiBuZXcgTXVsdGlwYXJ0Qm9keVJhdyhvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBib2R5IHBhcnRcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZW5kZXJCb2R5UGFydCgpOiBkYXRhQ2xvdWRpbml0Q29uZmlnLkRhdGFDbG91ZGluaXRDb25maWdQYXJ0O1xufVxuXG4vKipcbiAqIFRoZSByYXcgcGFydCBvZiBtdWx0aS1wYXJ0IHVzZXIgZGF0YSwgd2hpY2ggY2FuIGJlIGFkZGVkIHRvIGBNdWx0aXBhcnRVc2VyRGF0YWAuXG4gKi9cbmNsYXNzIE11bHRpcGFydEJvZHlSYXcgZXh0ZW5kcyBNdWx0aXBhcnRCb2R5IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZ1BhcnQsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmF3IHJldHVybiBwYXJ0XG4gICAqL1xuICBwdWJsaWMgcmVuZGVyQm9keVBhcnQoKTogZGF0YUNsb3VkaW5pdENvbmZpZy5EYXRhQ2xvdWRpbml0Q29uZmlnUGFydCB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBgVXNlckRhdGFgLlxuICovXG5jbGFzcyBNdWx0aXBhcnRCb2R5VXNlckRhdGFXcmFwcGVyIGV4dGVuZHMgTXVsdGlwYXJ0Qm9keSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGVudFR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyRGF0YTogVXNlckRhdGEsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgTXVsdGlwYXJ0Qm9keS5TSEVMTF9TQ1JJUFQ7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGJvZHkgcGFydHNcbiAgICovXG4gIHB1YmxpYyByZW5kZXJCb2R5UGFydCgpOiBkYXRhQ2xvdWRpbml0Q29uZmlnLkRhdGFDbG91ZGluaXRDb25maWdQYXJ0IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogdGhpcy51c2VyRGF0YS5jb250ZW50LFxuICAgICAgY29udGVudFR5cGU6IHRoaXMuY29udGVudFR5cGUgPz8gdGhpcy51c2VyRGF0YS5jb250ZW50VHlwZSxcbiAgICAgIGZpbGVuYW1lOiB0aGlzLnVzZXJEYXRhLmZpbGVuYW1lLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBgTXVsdGlwYXJ0VXNlckRhdGFgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlwYXJ0VXNlckRhdGFPcHRpb25zIGV4dGVuZHMgVXNlckRhdGFDb21tb24ge1xuICAvKipcbiAgICogVGhlIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhcnRzIGluIG11bHRpcGFydCB1c2VyIGRhdGEgYXJjaGl2ZSAoaXQncyBsaWtlIE1JTUUgYm91bmRhcnkpLlxuICAgKlxuICAgKiBUaGlzIHN0cmluZyBzaG91bGQgY29udGFpbiBbYS16QS1aMC05KCkrLC0uLzo9P10gY2hhcmFjdGVycyBvbmx5LCBhbmQgc2hvdWxkIG5vdCBiZSBwcmVzZW50IGluIGFueSBwYXJ0LCBvciBpbiB0ZXh0IGNvbnRlbnQgb2YgYXJjaGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYCtBV1MrQ0RLK1VzZXIrRGF0YStTZXBhcmF0b3I9PWBcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRzU2VwYXJhdG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1pbWUgbXVsdGlwYXJ0IHVzZXIgZGF0YS5cbiAqXG4gKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgTUlNRSBtdWx0aXBhcnQgdXNlciBkYXRhLCBhcyBkZXNjcmliZWQgaW4uXG4gKiBbU3BlY2lmeWluZyBNdWx0aXBsZSBVc2VyIERhdGEgQmxvY2tzIFVzaW5nIGEgTUlNRSBNdWx0aSBQYXJ0IEFyY2hpdmVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2Jvb3RzdHJhcF9jb250YWluZXJfaW5zdGFuY2UuaHRtbCNtdWx0aS1wYXJ0X3VzZXJfZGF0YSlcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBNdWx0aXBhcnRVc2VyRGF0YSBleHRlbmRzIFVzZXJEYXRhIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVNFX1BBUlRfRVJST1IgPVxuICAgIFwiTXVsdGlwYXJ0VXNlckRhdGEgb25seSBzdXBwb3J0cyB0aGlzIG9wZXJhdGlvbiBpZiBpdCBoYXMgYSBkZWZhdWx0IFVzZXJEYXRhLiBDYWxsIGFkZFVzZXJEYXRhUGFydCB3aXRoIG1ha2VEZWZhdWx0PXRydWUuXCI7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEJPVU5EUllfUEFUVEVSTiA9IFwiW15hLXpBLVowLTkoKSssLS4vOj0/XVwiO1xuXG4gIHByaXZhdGUgcGFydHM6IE11bHRpcGFydEJvZHlbXSA9IFtdO1xuXG4gIHByaXZhdGUgb3B0czogTXVsdGlwYXJ0VXNlckRhdGFPcHRpb25zO1xuXG4gIHByaXZhdGUgZGVmYXVsdFVzZXJEYXRhPzogVXNlckRhdGE7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRzPzogTXVsdGlwYXJ0VXNlckRhdGFPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5jb250ZW50VHlwZSA9IG9wdHM/LmNvbnRlbnRUeXBlO1xuICAgIHRoaXMuZmlsZW5hbWUgPSBvcHRzPy5maWxlbmFtZTtcblxuICAgIGxldCBwYXJ0c1NlcGFyYXRvcjogc3RyaW5nO1xuXG4gICAgLy8gVmFsaWRhdGUgc2VwYXJhdG9yXG4gICAgaWYgKG9wdHM/LnBhcnRzU2VwYXJhdG9yICE9IG51bGwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbmV3IFJlZ0V4cChNdWx0aXBhcnRVc2VyRGF0YS5CT1VORFJZX1BBVFRFUk4pLnRlc3Qob3B0cyEucGFydHNTZXBhcmF0b3IpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGNoYXJhY3RlcnMgaW4gc2VwYXJhdG9yLiBTZXBhcmF0b3IgaGFzIHRvIG1hdGNoIHBhdHRlcm4gJHtNdWx0aXBhcnRVc2VyRGF0YS5CT1VORFJZX1BBVFRFUk59YCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnRzU2VwYXJhdG9yID0gb3B0cyEucGFydHNTZXBhcmF0b3I7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRzU2VwYXJhdG9yID0gXCIrQVdTK0NESytVc2VyK0RhdGErU2VwYXJhdG9yPT1cIjtcbiAgICB9XG5cbiAgICB0aGlzLm9wdHMgPSB7XG4gICAgICBwYXJ0c1NlcGFyYXRvcjogcGFydHNTZXBhcmF0b3IsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcGFydCB0byB0aGUgbGlzdCBvZiBwYXJ0cy5cbiAgICovXG4gIHB1YmxpYyBhZGRQYXJ0KHBhcnQ6IE11bHRpcGFydEJvZHkpIHtcbiAgICB0aGlzLnBhcnRzLnB1c2gocGFydCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG11bHRpcGFydCBwYXJ0IGJhc2VkIG9uIGEgVXNlckRhdGEgb2JqZWN0LlxuICAgKlxuICAgKiBJZiBgbWFrZURlZmF1bHRgIGlzIHRydWUsIHRoZW4gdGhlIFVzZXJEYXRhIGFkZGVkIGJ5IHRoaXMgbWV0aG9kXG4gICAqIHdpbGwgYWxzbyBiZSB0aGUgdGFyZ2V0IG9mIGNhbGxzIHRvIHRoZSBgYWRkKkNvbW1hbmRgIG1ldGhvZHMgb25cbiAgICogdGhpcyBNdWx0aXBhcnRVc2VyRGF0YSBvYmplY3QuXG4gICAqXG4gICAqIElmIGBtYWtlRGVmYXVsdGAgaXMgZmFsc2UsIHRoZW4gdGhpcyBpcyB0aGUgc2FtZSBhcyBjYWxsaW5nOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBkZWNsYXJlIGNvbnN0IG11bHRpUGFydDogY29tcHV0ZS5NdWx0aXBhcnRVc2VyRGF0YTtcbiAgICogZGVjbGFyZSBjb25zdCB1c2VyRGF0YTogY29tcHV0ZS5Vc2VyRGF0YTtcbiAgICogZGVjbGFyZSBjb25zdCBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgKlxuICAgKiBtdWx0aVBhcnQuYWRkUGFydChjb21wdXRlLk11bHRpcGFydEJvZHkuZnJvbVVzZXJEYXRhKHVzZXJEYXRhLCBjb250ZW50VHlwZSkpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQW4gdW5kZWZpbmVkIGBtYWtlRGVmYXVsdGAgZGVmYXVsdHMgdG8gZWl0aGVyOlxuICAgKiAtIGB0cnVlYCBpZiBubyBkZWZhdWx0IFVzZXJEYXRhIGhhcyBiZWVuIHNldCB5ZXQ7IG9yXG4gICAqIC0gYGZhbHNlYCBpZiB0aGVyZSBpcyBubyBkZWZhdWx0IFVzZXJEYXRhIHNldC5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyRGF0YVBhcnQoXG4gICAgdXNlckRhdGE6IFVzZXJEYXRhLFxuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nLFxuICAgIG1ha2VEZWZhdWx0PzogYm9vbGVhbixcbiAgKSB7XG4gICAgdGhpcy5hZGRQYXJ0KE11bHRpcGFydEJvZHkuZnJvbVVzZXJEYXRhKHVzZXJEYXRhLCBjb250ZW50VHlwZSkpO1xuICAgIG1ha2VEZWZhdWx0ID1cbiAgICAgIG1ha2VEZWZhdWx0ID8/ICh0aGlzLmRlZmF1bHRVc2VyRGF0YSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBpZiAobWFrZURlZmF1bHQpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFVzZXJEYXRhID0gdXNlckRhdGE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBkZWZhdWx0IFVzZXJEYXRhLlxuICAgKi9cbiAgcHVibGljIGdldCBjb250ZW50KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFVzZXJEYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0VXNlckRhdGEuY29udGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKE11bHRpcGFydFVzZXJEYXRhLlVTRV9QQVJUX0VSUk9SKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKHNjb3BlOiBJQ29uc3RydWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZyhzY29wZSwgXCJVc2VyRGF0YVwiLCB7XG4gICAgICBib3VuZGFyeTogdGhpcy5vcHRzLnBhcnRzU2VwYXJhdG9yLFxuICAgICAgYmFzZTY0RW5jb2RlOiB0aGlzLmJhc2U2NEVuY29kZSxcbiAgICAgIGd6aXA6IHRoaXMuZ3ppcCxcbiAgICAgIHBhcnQ6IExhenkuYW55VmFsdWUoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnBhcnRzLm1hcCgocCkgPT4gcC5yZW5kZXJCb2R5UGFydCgpKSxcbiAgICAgIH0pLFxuICAgIH0pLnJlbmRlcmVkO1xuICB9XG5cbiAgcHVibGljIGFkZFMzRG93bmxvYWRDb21tYW5kKHBhcmFtczogUzNEb3dubG9hZE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFVzZXJEYXRhLmFkZFMzRG93bmxvYWRDb21tYW5kKHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihNdWx0aXBhcnRVc2VyRGF0YS5VU0VfUEFSVF9FUlJPUik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEV4ZWN1dGVGaWxlQ29tbWFuZChwYXJhbXM6IEV4ZWN1dGVGaWxlT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAgICAgdGhpcy5kZWZhdWx0VXNlckRhdGEuYWRkRXhlY3V0ZUZpbGVDb21tYW5kKHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihNdWx0aXBhcnRVc2VyRGF0YS5VU0VfUEFSVF9FUlJPUik7XG4gICAgfVxuICB9XG5cbiAgLy8gLy8gVE9ETzogQWRkIEdyaWQgU2lnbmFsc1xuICAvLyBwdWJsaWMgYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZTogQXdzQ29uc3RydWN0QmFzZSk6IHZvaWQge1xuICAvLyAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAvLyAgICAgdGhpcy5kZWZhdWx0VXNlckRhdGEuYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZSk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRocm93IG5ldyBFcnJvcihNdWx0aXBhcnRVc2VyRGF0YS5VU0VfUEFSVF9FUlJPUik7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgcHVibGljIGFkZENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAgICAgdGhpcy5kZWZhdWx0VXNlckRhdGEuYWRkQ29tbWFuZHMoLi4uY29tbWFuZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTXVsdGlwYXJ0VXNlckRhdGEuVVNFX1BBUlRfRVJST1IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRPbkV4aXRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0VXNlckRhdGEpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFVzZXJEYXRhLmFkZE9uRXhpdENvbW1hbmRzKC4uLmNvbW1hbmRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKE11bHRpcGFydFVzZXJEYXRhLlVTRV9QQVJUX0VSUk9SKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -63,7 +63,7 @@ class BlockDeviceVolume {
63
63
  }
64
64
  exports.BlockDeviceVolume = BlockDeviceVolume;
65
65
  _a = JSII_RTTI_SYMBOL_1;
66
- BlockDeviceVolume[_a] = { fqn: "terraconstructs.aws.compute.BlockDeviceVolume", version: "0.0.19" };
66
+ BlockDeviceVolume[_a] = { fqn: "terraconstructs.aws.compute.BlockDeviceVolume", version: "0.0.20" };
67
67
  /**
68
68
  * Supported EBS volume types for blockDevices
69
69
  */
@@ -422,5 +422,5 @@ class Volume extends VolumeBase {
422
422
  }
423
423
  exports.Volume = Volume;
424
424
  _b = JSII_RTTI_SYMBOL_1;
425
- Volume[_b] = { fqn: "terraconstructs.aws.compute.Volume", version: "0.0.19" };
425
+ Volume[_b] = { fqn: "terraconstructs.aws.compute.Volume", version: "0.0.20" };
426
426
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3ZvbHVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBGQUEwRjtBQUUxRixzREFBZ0Q7QUFDaEQsaUNBQThCO0FBRTlCLGdDQUFpRTtBQUVqRSw2REFBaUQ7QUFDakQscUNBQXdEO0FBQ3hELG9EQUkwQjtBQUMxQiw0Q0FBd0M7QUFDeEMsOENBQThDO0FBQzlDLDBDQUFtQztBQUNuQyx3Q0FBd0M7QUFDeEMsOENBQTBEO0FBeUkxRDs7R0FFRztBQUNILE1BQWEsaUJBQWlCO0lBQzVCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FDZixVQUFrQixFQUNsQixVQUE0QixFQUFFO1FBRTlCLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLFVBQWtCLEVBQ2xCLFVBQW9DLEVBQUU7UUFFdEMsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFtQjtRQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLHNEQUFzRCxXQUFXLEdBQUcsQ0FDckUsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQ2tCLFNBQTBCLEVBQzFCLFdBQW9CO1FBRHBCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFT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RUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNoRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLGVBQWUsQ0FBQztZQUNyQyxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUNiLDBDQUEwQyxHQUFHLHFCQUFxQixHQUFHLEVBQUUsQ0FDeEUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUFqUUgsd0JBa1FDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvdm9sdW1lLnRzXG5cbmltcG9ydCB7IGVic1ZvbHVtZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFjY291bnRSb290UHJpbmNpcGFsLCBHcmFudCwgSUdyYW50YWJsZSB9IGZyb20gXCIuLi9pYW1cIjtcbmltcG9ydCB7IElJbnN0YW5jZSB9IGZyb20gXCIuL2luc3RhbmNlXCI7XG5pbXBvcnQgeyBtZDVoYXNoIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMtaW50ZXJuYWxcIjtcbmltcG9ydCB7IFNpemUsIFNpemVSb3VuZGluZ0JlaGF2aW9yIH0gZnJvbSBcIi4uLy4uL3NpemVcIjtcbmltcG9ydCB7XG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG4vLyBUT0RPOiBVc2UgVGFnTWFuYWdlciBhbmQgdGFnLWFzcGVjdCBpbnN0ZWFkXG5pbXBvcnQgeyBUYWdzIH0gZnJvbSBcIi4uL2F3cy10YWdzXCI7XG4vLyBpbXBvcnQgeyBUYWdzIH0gZnJvbSBcIi4uL3RhZy1hc3BlY3RcIjtcbmltcG9ydCB7IElLZXksIFZpYVNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi4vZW5jcnlwdGlvblwiO1xuXG4vKipcbiAqIEJsb2NrIGRldmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJsb2NrRGV2aWNlIHtcbiAgLyoqXG4gICAqIFRoZSBkZXZpY2UgbmFtZSBleHBvc2VkIHRvIHRoZSBFQzIgaW5zdGFuY2VcbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGEgdmFsdWUgbGlrZSBgL2Rldi9zZGhgLCBgeHZkaGAuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2RldmljZV9uYW1pbmcuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBibG9jayBkZXZpY2Ugdm9sdW1lLCB0byBiZSBlaXRoZXIgYW4gQW1hem9uIEVCUyB2b2x1bWUgb3IgYW4gZXBoZW1lcmFsIGluc3RhbmNlIHN0b3JlIHZvbHVtZVxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYSB2YWx1ZSBsaWtlIGBCbG9ja0RldmljZVZvbHVtZS5lYnMoMTUpYCwgYEJsb2NrRGV2aWNlVm9sdW1lLmVwaGVtZXJhbCgwKWAuXG4gICAqL1xuICByZWFkb25seSB2b2x1bWU6IEJsb2NrRGV2aWNlVm9sdW1lO1xuXG4gIC8qKlxuICAgKiBJZiBmYWxzZSwgdGhlIGRldmljZSBtYXBwaW5nIHdpbGwgYmUgc3VwcHJlc3NlZC5cbiAgICogSWYgc2V0IHRvIGZhbHNlIGZvciB0aGUgcm9vdCBkZXZpY2UsIHRoZSBpbnN0YW5jZSBtaWdodCBmYWlsIHRoZSBBbWF6b24gRUMyIGhlYWx0aCBjaGVjay5cbiAgICogQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgbGF1bmNoZXMgYSByZXBsYWNlbWVudCBpbnN0YW5jZSBpZiB0aGUgaW5zdGFuY2UgZmFpbHMgdGhlIGhlYWx0aCBjaGVjay5cbiAgICpcbiAgICogTk9URTogVGVycmFmb3JtIFByb3ZpZGVyIEFXUyBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZm9yIGF3c19pbnN0YW5jZSBub24tZXBoZW1lcmFsIEJsb2NrIERldmljZXNcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAtIGRldmljZSBtYXBwaW5nIGlzIGxlZnQgdW50b3VjaGVkXG4gICAqL1xuICByZWFkb25seSBtYXBwaW5nRW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQmFzZSBibG9jayBkZXZpY2Ugb3B0aW9ucyBmb3IgYW4gRUJTIHZvbHVtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVic0RldmljZU9wdGlvbnNCYXNlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRlbGV0ZSB0aGUgdm9sdW1lIHdoZW4gdGhlIGluc3RhbmNlIGlzIHRlcm1pbmF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZSBmb3IgQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcsIGZhbHNlIG90aGVyd2lzZSAoZS5nLiBFQlMpXG4gICAqL1xuICByZWFkb25seSBkZWxldGVPblRlcm1pbmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBJL08gb3BlcmF0aW9ucyBwZXIgc2Vjb25kIChJT1BTKSB0byBwcm92aXNpb24gZm9yIHRoZSB2b2x1bWUuXG4gICAqXG4gICAqIE11c3Qgb25seSBiZSBzZXQgZm9yIGB2b2x1bWVUeXBlYDogYEVic0RldmljZVZvbHVtZVR5cGUuSU8xYFxuICAgKlxuICAgKiBUaGUgbWF4aW11bSByYXRpbyBvZiBJT1BTIHRvIHZvbHVtZSBzaXplIChpbiBHaUIpIGlzIDUwOjEsIHNvIGZvciA1LDAwMCBwcm92aXNpb25lZCBJT1BTLFxuICAgKiB5b3UgbmVlZCBhdCBsZWFzdCAxMDAgR2lCIHN0b3JhZ2Ugb24gdGhlIHZvbHVtZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvRUJTVm9sdW1lVHlwZXMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUsIHJlcXVpcmVkIGZvciBgRWJzRGV2aWNlVm9sdW1lVHlwZS5JTzFgXG4gICAqL1xuICByZWFkb25seSBpb3BzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgRUJTIHZvbHVtZSB0eXBlXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL0VCU1ZvbHVtZVR5cGVzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgYEVic0RldmljZVZvbHVtZVR5cGUuR0VORVJBTF9QVVJQT1NFX1NTRGAgb3IgYEVic0RldmljZVZvbHVtZVR5cGUuR0VORVJBTF9QVVJQT1NFX1NTRF9HUDNgIGlmXG4gICAqIGBAYXdzLWNkay9hd3MtZWMyOmVic0RlZmF1bHRHcDNWb2x1bWVgIGlzIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSB2b2x1bWVUeXBlPzogRWJzRGV2aWNlVm9sdW1lVHlwZTtcblxuICAvKipcbiAgICogVGhlIHRocm91Z2hwdXQgdG8gcHJvdmlzaW9uIGZvciBhIGBncDNgIHZvbHVtZS5cbiAgICpcbiAgICogVmFsaWQgUmFuZ2U6IE1pbmltdW0gdmFsdWUgb2YgMTI1LiBNYXhpbXVtIHZhbHVlIG9mIDEwMDAuXG4gICAqXG4gICAqIGBncDNgIHZvbHVtZXMgZGVsaXZlciBhIGNvbnNpc3RlbnQgYmFzZWxpbmUgdGhyb3VnaHB1dCBwZXJmb3JtYW5jZSBvZiAxMjUgTWlCL3MuXG4gICAqIFlvdSBjYW4gcHJvdmlzaW9uIGFkZGl0aW9uYWwgdGhyb3VnaHB1dCBmb3IgYW4gYWRkaXRpb25hbCBjb3N0IGF0IGEgcmF0aW8gb2YgMC4yNSBNaUIvcyBwZXIgcHJvdmlzaW9uZWQgSU9QUy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWJzL2xhdGVzdC91c2VyZ3VpZGUvZ2VuZXJhbC1wdXJwb3NlLmh0bWwjZ3AzLXBlcmZvcm1hbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMTI1IE1pQi9zLlxuICAgKi9cbiAgcmVhZG9ubHkgdGhyb3VnaHB1dD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBCbG9jayBkZXZpY2Ugb3B0aW9ucyBmb3IgYW4gRUJTIHZvbHVtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVic0RldmljZU9wdGlvbnMgZXh0ZW5kcyBFYnNEZXZpY2VPcHRpb25zQmFzZSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgRUJTIHZvbHVtZSBpcyBlbmNyeXB0ZWQuXG4gICAqIEVuY3J5cHRlZCBFQlMgdm9sdW1lcyBjYW4gb25seSBiZSBhdHRhY2hlZCB0byBpbnN0YW5jZXMgdGhhdCBzdXBwb3J0IEFtYXpvbiBFQlMgZW5jcnlwdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9FQlNFbmNyeXB0aW9uLmh0bWwjRUJTRW5jcnlwdGlvbl9zdXBwb3J0ZWRfaW5zdGFuY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBBV1MgS2V5IE1hbmFnZW1lbnQgU2VydmljZSAoQVdTIEtNUykgQ01LIHVzZWQgZm9yIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIFlvdSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRoZSBLTVMgQ01LIGhhcyB0aGUgY29ycmVjdCBwZXJtaXNzaW9ucyB0byBiZSB1c2VkIGJ5IHRoZSBzZXJ2aWNlIGxhdW5jaGluZyB0aGUgZWMyIGluc3RhbmNlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvRUJTRW5jcnlwdGlvbi5odG1sI2Vicy1lbmNyeXB0aW9uLXJlcXVpcmVtZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIGVuY3J5cHRlZCBpcyB0cnVlLCB0aGUgZGVmYXVsdCBhd3MvZWJzIEtNUyBrZXkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5PzogSUtleTtcbn1cblxuLyoqXG4gKiBCbG9jayBkZXZpY2Ugb3B0aW9ucyBmb3IgYW4gRUJTIHZvbHVtZSBjcmVhdGVkIGZyb20gYSBzbmFwc2hvdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVic0RldmljZVNuYXBzaG90T3B0aW9ucyBleHRlbmRzIEVic0RldmljZU9wdGlvbnNCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSB2b2x1bWUgc2l6ZSwgaW4gR2liaWJ5dGVzIChHaUIpXG4gICAqXG4gICAqIElmIHlvdSBzcGVjaWZ5IHZvbHVtZVNpemUsIGl0IG11c3QgYmUgZXF1YWwgb3IgZ3JlYXRlciB0aGFuIHRoZSBzaXplIG9mIHRoZSBzbmFwc2hvdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgc25hcHNob3Qgc2l6ZVxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGFuIEVCUyBibG9jayBkZXZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFYnNEZXZpY2VQcm9wc1xuICBleHRlbmRzIEVic0RldmljZVNuYXBzaG90T3B0aW9ucyxcbiAgICBFYnNEZXZpY2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzbmFwc2hvdCBJRCBvZiB0aGUgdm9sdW1lIHRvIHVzZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHNuYXBzaG90IHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgc25hcHNob3RJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBibG9jayBkZXZpY2UgbWFwcGluZyBmb3IgYW4gRUMyIGluc3RhbmNlIG9yIEF1dG8gU2NhbGluZyBncm91cC5cbiAqL1xuZXhwb3J0IGNsYXNzIEJsb2NrRGV2aWNlVm9sdW1lIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgRWxhc3RpYyBCbG9jayBTdG9yYWdlIGRldmljZVxuICAgKlxuICAgKiBAcGFyYW0gdm9sdW1lU2l6ZSBUaGUgdm9sdW1lIHNpemUsIGluIEdpYmlieXRlcyAoR2lCKVxuICAgKiBAcGFyYW0gb3B0aW9ucyBhZGRpdGlvbmFsIGRldmljZSBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVicyhcbiAgICB2b2x1bWVTaXplOiBudW1iZXIsXG4gICAgb3B0aW9uczogRWJzRGV2aWNlT3B0aW9ucyA9IHt9LFxuICApOiBCbG9ja0RldmljZVZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyB0aGlzKHsgLi4ub3B0aW9ucywgdm9sdW1lU2l6ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEVsYXN0aWMgQmxvY2sgU3RvcmFnZSBkZXZpY2UgZnJvbSBhbiBleGlzdGluZyBzbmFwc2hvdFxuICAgKlxuICAgKiBAcGFyYW0gc25hcHNob3RJZCBUaGUgc25hcHNob3QgSUQgb2YgdGhlIHZvbHVtZSB0byB1c2VcbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBkZXZpY2Ugb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlYnNGcm9tU25hcHNob3QoXG4gICAgc25hcHNob3RJZDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEVic0RldmljZVNuYXBzaG90T3B0aW9ucyA9IHt9LFxuICApOiBCbG9ja0RldmljZVZvbHVtZSB7XG4gICAgcmV0dXJuIG5ldyB0aGlzKHsgLi4ub3B0aW9ucywgc25hcHNob3RJZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdmlydHVhbCwgZXBoZW1lcmFsIGRldmljZS5cbiAgICogVGhlIG5hbWUgd2lsbCBiZSBpbiB0aGUgZm9ybSBlcGhlbWVyYWx7dm9sdW1lSW5kZXh9LlxuICAgKlxuICAgKiBAcGFyYW0gdm9sdW1lSW5kZXggdGhlIHZvbHVtZSBpbmRleC4gTXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRoYW4gMFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcGhlbWVyYWwodm9sdW1lSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh2b2x1bWVJbmRleCA8IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYHZvbHVtZUluZGV4IG11c3QgYmUgYSBudW1iZXIgc3RhcnRpbmcgZnJvbSAwLCBnb3QgXCIke3ZvbHVtZUluZGV4fVwiYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyB0aGlzKHVuZGVmaW5lZCwgYGVwaGVtZXJhbCR7dm9sdW1lSW5kZXh9YCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGVic0RldmljZSBFQlMgZGV2aWNlIGluZm9cbiAgICogQHBhcmFtIHZpcnR1YWxOYW1lIFZpcnR1YWwgZGV2aWNlIG5hbWVcbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWJzRGV2aWNlPzogRWJzRGV2aWNlUHJvcHMsXG4gICAgcHVibGljIHJlYWRvbmx5IHZpcnR1YWxOYW1lPzogc3RyaW5nLFxuICApIHt9XG5cbiAgcHVibGljIGlzRXBoZW1lcmFsKCk6IHRoaXMgaXMgQmxvY2tEZXZpY2VWb2x1bWUgJiB7IHZpcnR1YWxOYW1lOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHRoaXMudmlydHVhbE5hbWUgIT09IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFN1cHBvcnRlZCBFQlMgdm9sdW1lIHR5cGVzIGZvciBibG9ja0RldmljZXNcbiAqL1xuZXhwb3J0IGVudW0gRWJzRGV2aWNlVm9sdW1lVHlwZSB7XG4gIC8qKlxuICAgKiBNYWduZXRpY1xuICAgKi9cbiAgU1RBTkRBUkQgPSBcInN0YW5kYXJkXCIsXG5cbiAgLyoqXG4gICAqICBQcm92aXNpb25lZCBJT1BTIFNTRCAtIElPMVxuICAgKi9cbiAgSU8xID0gXCJpbzFcIixcblxuICAvKipcbiAgICogIFByb3Zpc2lvbmVkIElPUFMgU1NEIC0gSU8yXG4gICAqL1xuICBJTzIgPSBcImlvMlwiLFxuXG4gIC8qKlxuICAgKiBHZW5lcmFsIFB1cnBvc2UgU1NEIC0gR1AyXG4gICAqL1xuICBHUDIgPSBcImdwMlwiLFxuXG4gIC8qKlxuICAgKiBHZW5lcmFsIFB1cnBvc2UgU1NEIC0gR1AzXG4gICAqL1xuICBHUDMgPSBcImdwM1wiLFxuXG4gIC8qKlxuICAgKiBUaHJvdWdocHV0IE9wdGltaXplZCBIRERcbiAgICovXG4gIFNUMSA9IFwic3QxXCIsXG5cbiAgLyoqXG4gICAqIENvbGQgSEREXG4gICAqL1xuICBTQzEgPSBcInNjMVwiLFxuXG4gIC8qKlxuICAgKiBHZW5lcmFsIHB1cnBvc2UgU1NEIHZvbHVtZSAoR1AyKSB0aGF0IGJhbGFuY2VzIHByaWNlIGFuZCBwZXJmb3JtYW5jZSBmb3IgYSB3aWRlIHZhcmlldHkgb2Ygd29ya2xvYWRzLlxuICAgKi9cbiAgR0VORVJBTF9QVVJQT1NFX1NTRCA9IEdQMixcblxuICAvKipcbiAgICogR2VuZXJhbCBwdXJwb3NlIFNTRCB2b2x1bWUgKEdQMykgdGhhdCBiYWxhbmNlcyBwcmljZSBhbmQgcGVyZm9ybWFuY2UgZm9yIGEgd2lkZSB2YXJpZXR5IG9mIHdvcmtsb2Fkcy5cbiAgICovXG4gIEdFTkVSQUxfUFVSUE9TRV9TU0RfR1AzID0gR1AzLFxuXG4gIC8qKlxuICAgKiBIaWdoZXN0LXBlcmZvcm1hbmNlIFNTRCB2b2x1bWUgKElPMSkgZm9yIG1pc3Npb24tY3JpdGljYWwgbG93LWxhdGVuY3kgb3IgaGlnaC10aHJvdWdocHV0IHdvcmtsb2Fkcy5cbiAgICovXG4gIFBST1ZJU0lPTkVEX0lPUFNfU1NEID0gSU8xLFxuXG4gIC8qKlxuICAgKiBIaWdoZXN0LXBlcmZvcm1hbmNlIFNTRCB2b2x1bWUgKElPMikgZm9yIG1pc3Npb24tY3JpdGljYWwgbG93LWxhdGVuY3kgb3IgaGlnaC10aHJvdWdocHV0IHdvcmtsb2Fkcy5cbiAgICovXG4gIFBST1ZJU0lPTkVEX0lPUFNfU1NEX0lPMiA9IElPMixcblxuICAvKipcbiAgICogTG93LWNvc3QgSEREIHZvbHVtZSBkZXNpZ25lZCBmb3IgZnJlcXVlbnRseSBhY2Nlc3NlZCwgdGhyb3VnaHB1dC1pbnRlbnNpdmUgd29ya2xvYWRzLlxuICAgKi9cbiAgVEhST1VHSFBVVF9PUFRJTUlaRURfSEREID0gU1QxLFxuXG4gIC8qKlxuICAgKiBMb3dlc3QgY29zdCBIREQgdm9sdW1lIGRlc2lnbmVkIGZvciBsZXNzIGZyZXF1ZW50bHkgYWNjZXNzZWQgd29ya2xvYWRzLlxuICAgKi9cbiAgQ09MRF9IREQgPSBTQzEsXG5cbiAgLyoqXG4gICAqIE1hZ25ldGljIHZvbHVtZXMgYXJlIGJhY2tlZCBieSBtYWduZXRpYyBkcml2ZXMgYW5kIGFyZSBzdWl0ZWQgZm9yIHdvcmtsb2FkcyB3aGVyZSBkYXRhIGlzIGFjY2Vzc2VkIGluZnJlcXVlbnRseSwgYW5kIHNjZW5hcmlvcyB3aGVyZSBsb3ctY29zdFxuICAgKiBzdG9yYWdlIGZvciBzbWFsbCB2b2x1bWUgc2l6ZXMgaXMgaW1wb3J0YW50LlxuICAgKi9cbiAgTUFHTkVUSUMgPSBTVEFOREFSRCxcbn1cblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZvbHVtZU91dHB1dHMge1xuICAvKipcbiAgICogVGhlIEVCUyBWb2x1bWUncyBJRFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB2b2x1bWVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmlsaXR5IHpvbmUgdGhhdCB0aGUgRUJTIFZvbHVtZSBpcyBjb250YWluZWQgd2l0aGluIChleDogdXMtd2VzdC0yYSlcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1c3RvbWVyLW1hbmFnZWQgZW5jcnlwdGlvbiBrZXkgdGhhdCBpcyB1c2VkIHRvIGVuY3J5cHQgdGhlIFZvbHVtZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIEVCUyBWb2x1bWUgaW4gQVdTIEVDMi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVm9sdW1lIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IHZvbHVtZU91dHB1dHM6IFZvbHVtZU91dHB1dHM7XG4gIC8qKlxuICAgKiBUaGUgRUJTIFZvbHVtZSdzIElEXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGF0IHRoZSBFQlMgVm9sdW1lIGlzIGNvbnRhaW5lZCB3aXRoaW4gKGV4OiB1cy13ZXN0LTJhKVxuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tZXItbWFuYWdlZCBlbmNyeXB0aW9uIGtleSB0aGF0IGlzIHVzZWQgdG8gZW5jcnlwdCB0aGUgVm9sdW1lLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5PzogSUtleTtcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXR0YWNoIHRoaXMgVm9sdW1lIHRvIGFuIGluc3RhbmNlLlxuICAgKiBDQVVUSU9OOiBHcmFudGluZyBhbiBpbnN0YW5jZSBwZXJtaXNzaW9uIHRvIGF0dGFjaCB0byBpdHNlbGYgdXNpbmcgdGhpcyBtZXRob2Qgd2lsbCBsZWFkIHRvXG4gICAqIGFuIHVucmVzb2x2YWJsZSBjaXJjdWxhciByZWZlcmVuY2UgYmV0d2VlbiB0aGUgaW5zdGFuY2Ugcm9sZSBhbmQgdGhlIGluc3RhbmNlLlxuICAgKiBVc2UgYElWb2x1bWUuZ3JhbnRBdHRhY2hWb2x1bWVUb1NlbGZgIHRvIGdyYW50IGFuIGluc3RhbmNlIHBlcm1pc3Npb24gdG8gYXR0YWNoIHRoaXNcbiAgICogdm9sdW1lIHRvIGl0c2VsZi5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgIHRoZSBwcmluY2lwYWwgYmVpbmcgZ3JhbnRlZCBwZXJtaXNzaW9uLlxuICAgKiBAcGFyYW0gaW5zdGFuY2VzIHRoZSBpbnN0YW5jZXMgdG8gd2hpY2ggcGVybWlzc2lvbiBpcyBiZWluZyBncmFudGVkIHRvIGF0dGFjaCB0aGlzXG4gICAqICAgICAgICAgICAgICAgICB2b2x1bWUgdG8uIElmIG5vdCBzcGVjaWZpZWQsIHRoZW4gcGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGF0dGFjaFxuICAgKiAgICAgICAgICAgICAgICAgdG8gYWxsIGluc3RhbmNlcyBpbiB0aGlzIGFjY291bnQuXG4gICAqL1xuICBncmFudEF0dGFjaFZvbHVtZShncmFudGVlOiBJR3JhbnRhYmxlLCBpbnN0YW5jZXM/OiBJSW5zdGFuY2VbXSk6IEdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhdHRhY2ggdGhlIFZvbHVtZSBieSBhIFJlc291cmNlVGFnIGNvbmRpdGlvbi4gSWYgeW91IGFyZSBsb29raW5nIHRvXG4gICAqIGdyYW50IGFuIEluc3RhbmNlLCBBdXRvU2NhbGluZ0dyb3VwLCBFQzItRmxlZXQsIFNwb3RGbGVldCwgRUNTIGhvc3QsIGV0YyB0aGUgYWJpbGl0eSB0byBhdHRhY2hcbiAgICogdGhpcyB2b2x1bWUgdG8gKippdHNlbGYqKiB0aGVuIHRoaXMgaXMgdGhlIG1ldGhvZCB5b3Ugd2FudCB0byB1c2UuXG4gICAqXG4gICAqIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgYWRkaW5nIGEgVGFnIHdpdGgga2V5IGBWb2x1bWVHcmFudEF0dGFjaC08c3VmZml4PmAgdG8gdGhlIGdpdmVuXG4gICAqIGNvbnN0cnVjdHMgYW5kIHRoaXMgVm9sdW1lLCBhbmQgdGhlbiBjb25kaXRpb25pbmcgdGhlIEdyYW50IHN1Y2ggdGhhdCB0aGUgZ3JhbnRlZSBpcyBvbmx5XG4gICAqIGdpdmVuIHRoZSBhYmlsaXR5IHRvIEF0dGFjaFZvbHVtZSBpZiBib3RoIHRoZSBWb2x1bWUgYW5kIHRoZSBkZXN0aW5hdGlvbiBJbnN0YW5jZSBoYXZlIHRoYXRcbiAgICogdGFnIGFwcGxpZWQgdG8gdGhlbS5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgICAgdGhlIHByaW5jaXBhbCBiZWluZyBncmFudGVkIHBlcm1pc3Npb24uXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3RzIFRoZSBsaXN0IG9mIGNvbnN0cnVjdHMgdGhhdCB3aWxsIGhhdmUgdGhlIGdlbmVyYXRlZCByZXNvdXJjZSB0YWcgYXBwbGllZCB0byB0aGVtLlxuICAgKiBAcGFyYW0gdGFnS2V5U3VmZml4IEEgc3VmZml4IHRvIHVzZSBvbiB0aGUgZ2VuZXJhdGVkIFRhZyBrZXkgaW4gcGxhY2Ugb2YgdGhlIGdlbmVyYXRlZCBoYXNoIHZhbHVlLlxuICAgKiAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIGEgaGFzaCBjYWxjdWxhdGVkIGZyb20gdGhpcyB2b2x1bWUgYW5kIGxpc3Qgb2YgY29uc3RydWN0cy4gKERFUFJFQ0FURUQpXG4gICAqL1xuICBncmFudEF0dGFjaFZvbHVtZUJ5UmVzb3VyY2VUYWcoXG4gICAgZ3JhbnRlZTogSUdyYW50YWJsZSxcbiAgICBjb25zdHJ1Y3RzOiBDb25zdHJ1Y3RbXSxcbiAgICB0YWdLZXlTdWZmaXg/OiBzdHJpbmcsXG4gICk6IEdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXRhY2ggdGhpcyBWb2x1bWUgZnJvbSBhbiBpbnN0YW5jZVxuICAgKiBDQVVUSU9OOiBHcmFudGluZyBhbiBpbnN0YW5jZSBwZXJtaXNzaW9uIHRvIGRldGFjaCBmcm9tIGl0c2VsZiB1c2luZyB0aGlzIG1ldGhvZCB3aWxsIGxlYWQgdG9cbiAgICogYW4gdW5yZXNvbHZhYmxlIGNpcmN1bGFyIHJlZmVyZW5jZSBiZXR3ZWVuIHRoZSBpbnN0YW5jZSByb2xlIGFuZCB0aGUgaW5zdGFuY2UuXG4gICAqIFVzZSBgSVZvbHVtZS5ncmFudERldGFjaFZvbHVtZUZyb21TZWxmYCB0byBncmFudCBhbiBpbnN0YW5jZSBwZXJtaXNzaW9uIHRvIGRldGFjaCB0aGlzXG4gICAqIHZvbHVtZSBmcm9tIGl0c2VsZi5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgIHRoZSBwcmluY2lwYWwgYmVpbmcgZ3JhbnRlZCBwZXJtaXNzaW9uLlxuICAgKiBAcGFyYW0gaW5zdGFuY2VzIHRoZSBpbnN0YW5jZXMgdG8gd2hpY2ggcGVybWlzc2lvbiBpcyBiZWluZyBncmFudGVkIHRvIGRldGFjaCB0aGlzXG4gICAqICAgICAgICAgICAgICAgICB2b2x1bWUgZnJvbS4gSWYgbm90IHNwZWNpZmllZCwgdGhlbiBwZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gZGV0YWNoXG4gICAqICAgICAgICAgICAgICAgICBmcm9tIGFsbCBpbnN0YW5jZXMgaW4gdGhpcyBhY2NvdW50LlxuICAgKi9cbiAgZ3JhbnREZXRhY2hWb2x1bWUoZ3JhbnRlZTogSUdyYW50YWJsZSwgaW5zdGFuY2VzPzogSUluc3RhbmNlW10pOiBHcmFudDtcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGV0YWNoIHRoZSBWb2x1bWUgYnkgYSBSZXNvdXJjZVRhZyBjb25kaXRpb24uXG4gICAqXG4gICAqIFRoaXMgaXMgaW1wbGVtZW50ZWQgdmlhIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyBgSVZvbHVtZS5ncmFudEF0dGFjaFZvbHVtZUJ5UmVzb3VyY2VUYWdgLFxuICAgKiBhbmQgaXMgc3ViamVjdCB0byB0aGUgc2FtZSBjb25kaXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAgICB0aGUgcHJpbmNpcGFsIGJlaW5nIGdyYW50ZWQgcGVybWlzc2lvbi5cbiAgICogQHBhcmFtIGNvbnN0cnVjdHMgVGhlIGxpc3Qgb2YgY29uc3RydWN0cyB0aGF0IHdpbGwgaGF2ZSB0aGUgZ2VuZXJhdGVkIHJlc291cmNlIHRhZyBhcHBsaWVkIHRvIHRoZW0uXG4gICAqIEBwYXJhbSB0YWdLZXlTdWZmaXggQSBzdWZmaXggdG8gdXNlIG9uIHRoZSBnZW5lcmF0ZWQgVGFnIGtleSBpbiBwbGFjZSBvZiB0aGUgZ2VuZXJhdGVkIGhhc2ggdmFsdWUuXG4gICAqICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gYSBoYXNoIGNhbGN1bGF0ZWQgZnJvbSB0aGlzIHZvbHVtZSBhbmQgbGlzdCBvZiBjb25zdHJ1Y3RzLiAoREVQUkVDQVRFRClcbiAgICovXG4gIGdyYW50RGV0YWNoVm9sdW1lQnlSZXNvdXJjZVRhZyhcbiAgICBncmFudGVlOiBJR3JhbnRhYmxlLFxuICAgIGNvbnN0cnVjdHM6IENvbnN0cnVjdFtdLFxuICAgIHRhZ0tleVN1ZmZpeD86IHN0cmluZyxcbiAgKTogR3JhbnQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhbiBFQlMgVm9sdW1lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVm9sdW1lUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBoeXNpY2FsTmFtZSBwcm9wZXJ0eSBvZiB0aGlzIHJlc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBUaGUgcGh5c2ljYWwgbmFtZSB3aWxsIGJlIGFsbG9jYXRlZCBieSBDbG91ZEZvcm1hdGlvbiBhdCBkZXBsb3ltZW50IHRpbWVcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBdmFpbGFiaWxpdHkgWm9uZSBpbiB3aGljaCB0byBjcmVhdGUgdGhlIHZvbHVtZS5cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNpemUgb2YgdGhlIHZvbHVtZSwgaW4gR2lCcy4gWW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYSBzbmFwc2hvdCBJRCBvciBhIHZvbHVtZSBzaXplLlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi12b2x1bWUuaHRtbFxuICAgKiBmb3IgZGV0YWlscyBvbiB0aGUgYWxsb3dhYmxlIHNpemUgZm9yIGVhY2ggdHlwZSBvZiB2b2x1bWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IElmIHlvdSdyZSBjcmVhdGluZyB0aGUgdm9sdW1lIGZyb20gYSBzbmFwc2hvdCBhbmQgZG9uJ3Qgc3BlY2lmeSBhIHZvbHVtZSBzaXplLCB0aGUgZGVmYXVsdCBpcyB0aGUgc25hcHNob3Qgc2l6ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNpemU/OiBTaXplO1xuXG4gIC8qKlxuICAgKiBUaGUgc25hcHNob3QgZnJvbSB3aGljaCB0byBjcmVhdGUgdGhlIHZvbHVtZS4gWW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYSBzbmFwc2hvdCBJRCBvciBhIHZvbHVtZSBzaXplLlxuICAgKlxuICAgKiBAZGVmYXVsdCBUaGUgRUJTIHZvbHVtZSBpcyBub3QgY3JlYXRlZCBmcm9tIGEgc25hcHNob3QuXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBBbWF6b24gRUJTIE11bHRpLUF0dGFjaCBpcyBlbmFibGVkLlxuICAgKiBTZWUgW0NvbnNpZGVyYXRpb25zIGFuZCBsaW1pdGF0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2Vicy12b2x1bWVzLW11bHRpLmh0bWwjY29uc2lkZXJhdGlvbnMpXG4gICAqIGZvciB0aGUgY29uc3RyYWludHMgb2YgbXVsdGktYXR0YWNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlTXVsdGlBdHRhY2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgdm9sdW1lIHNob3VsZCBiZSBlbmNyeXB0ZWQuIFRoZSBlZmZlY3Qgb2Ygc2V0dGluZyB0aGUgZW5jcnlwdGlvbiBzdGF0ZSB0byB0cnVlIGRlcGVuZHMgb24gdGhlIHZvbHVtZSBvcmlnaW5cbiAgICogKG5ldyBvciBmcm9tIGEgc25hcHNob3QpLCBzdGFydGluZyBlbmNyeXB0aW9uIHN0YXRlLCBvd25lcnNoaXAsIGFuZCB3aGV0aGVyIGVuY3J5cHRpb24gYnkgZGVmYXVsdCBpcyBlbmFibGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbixcbiAgICogc2VlIFtFbmNyeXB0aW9uIGJ5IERlZmF1bHRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9FQlNFbmNyeXB0aW9uLmh0bWwjZW5jcnlwdGlvbi1ieS1kZWZhdWx0KVxuICAgKiBpbiB0aGUgQW1hem9uIEVsYXN0aWMgQ29tcHV0ZSBDbG91ZCBVc2VyIEd1aWRlLlxuICAgKlxuICAgKiBFbmNyeXB0ZWQgQW1hem9uIEVCUyB2b2x1bWVzIG11c3QgYmUgYXR0YWNoZWQgdG8gaW5zdGFuY2VzIHRoYXQgc3VwcG9ydCBBbWF6b24gRUJTIGVuY3J5cHRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N1cHBvcnRlZCBJbnN0YW5jZSBUeXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL0VCU0VuY3J5cHRpb24uaHRtbCNFQlNFbmNyeXB0aW9uX3N1cHBvcnRlZF9pbnN0YW5jZXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGN1c3RvbWVyLW1hbmFnZWQgZW5jcnlwdGlvbiBrZXkgdGhhdCBpcyB1c2VkIHRvIGVuY3J5cHQgdGhlIFZvbHVtZS4gVGhlIGVuY3J5cHRlZCBwcm9wZXJ0eSBtdXN0XG4gICAqIGJlIHRydWUgaWYgdGhpcyBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogTm90ZTogSWYgdXNpbmcgYW4gYGF3cy1rbXMuSUtleWAgY3JlYXRlZCBmcm9tIGEgYGF3cy1rbXMuS2V5LmZyb21LZXlBcm4oKWAgaGVyZSxcbiAgICogdGhlbiB0aGUgS01TIGtleSAqKm11c3QqKiBoYXZlIHRoZSBmb2xsb3dpbmcgaW4gaXRzIEtleSBwb2xpY3k7IG90aGVyd2lzZSwgdGhlIFZvbHVtZVxuICAgKiB3aWxsIGZhaWwgdG8gY3JlYXRlLlxuICAgKlxuICAgKiAgICAge1xuICAgKiAgICAgICBcIkVmZmVjdFwiOiBcIkFsbG93XCIsXG4gICAqICAgICAgIFwiUHJpbmNpcGFsXCI6IHsgXCJBV1NcIjogXCI8YXJuIGZvciB5b3VyIGFjY291bnQtdXNlcj4gZXg6IGFybjphd3M6aWFtOjowMDAwMDAwMDAwMDpyb290XCIgfSxcbiAgICogICAgICAgXCJSZXNvdXJjZVwiOiBcIipcIixcbiAgICogICAgICAgXCJBY3Rpb25cIjogW1xuICAgKiAgICAgICAgIFwia21zOkRlc2NyaWJlS2V5XCIsXG4gICAqICAgICAgICAgXCJrbXM6R2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWluVGV4dFwiLFxuICAgKiAgICAgICBdLFxuICAgKiAgICAgICBcIkNvbmRpdGlvblwiOiB7XG4gICAqICAgICAgICAgXCJTdHJpbmdFcXVhbHNcIjoge1xuICAgKiAgICAgICAgICAgXCJrbXM6VmlhU2VydmljZVwiOiBcImVjMi48UmVnaW9uPi5hbWF6b25hd3MuY29tXCIsIChlZzogZWMyLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tKVxuICAgKiAgICAgICAgICAgXCJrbXM6Q2FsbGVyQWNjb3VudFwiOiBcIjAwMDAwMDAwMDBcIiAoeW91ciBhY2NvdW50IElEKVxuICAgKiAgICAgICAgIH1cbiAgICogICAgICAgfVxuICAgKiAgICAgfVxuICAgKlxuICAgKiBAZGVmYXVsdCBUaGUgZGVmYXVsdCBLTVMga2V5IGZvciB0aGUgYWNjb3VudCwgcmVnaW9uLCBhbmQgRUMyIHNlcnZpY2UgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBJS2V5O1xuXG4gIC8vIFRPRE86IFN1cHBvcnQgZm9yIGF1dG9FbmFibGVJb1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvaXNzdWVzLzM0MTEwXG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItdm9sdW1lLmh0bWwjY2ZuLWVjMi12b2x1bWUtYXV0b2VuYWJsZWlvXG4gIC8vIC8qKlxuICAvLyAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdm9sdW1lIGlzIGF1dG8tZW5hYmxlZCBmb3IgSS9PIG9wZXJhdGlvbnMuIEJ5IGRlZmF1bHQsIEFtYXpvbiBFQlMgZGlzYWJsZXMgSS9PIHRvIHRoZSB2b2x1bWUgZnJvbSBhdHRhY2hlZCBFQzJcbiAgLy8gICogaW5zdGFuY2VzIHdoZW4gaXQgZGV0ZXJtaW5lcyB0aGF0IGEgdm9sdW1lJ3MgZGF0YSBpcyBwb3RlbnRpYWxseSBpbmNvbnNpc3RlbnQuIElmIHRoZSBjb25zaXN0ZW5jeSBvZiB0aGUgdm9sdW1lIGlzIG5vdCBhIGNvbmNlcm4sIGFuZFxuICAvLyAgKiB5b3UgcHJlZmVyIHRoYXQgdGhlIHZvbHVtZSBiZSBtYWRlIGF2YWlsYWJsZSBpbW1lZGlhdGVseSBpZiBpdCdzIGltcGFpcmVkLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgdm9sdW1lIHRvIGF1dG9tYXRpY2FsbHkgZW5hYmxlIEkvTy5cbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgZmFsc2VcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGF1dG9FbmFibGVJbz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSB2b2x1bWU7IHdoYXQgdHlwZSBvZiBzdG9yYWdlIHRvIHVzZSB0byBmb3JtIHRoZSBFQlMgVm9sdW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEX0dQM2BcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZVR5cGU/OiBFYnNEZXZpY2VWb2x1bWVUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIEkvTyBvcGVyYXRpb25zIHBlciBzZWNvbmQgKElPUFMpIHRvIHByb3Zpc2lvbiBmb3IgdGhlIHZvbHVtZS4gVGhlIG1heGltdW0gcmF0aW8gaXMgNTAgSU9QUy9HaUIgZm9yIFBST1ZJU0lPTkVEX0lPUFNfU1NELFxuICAgKiBhbmQgNTAwIElPUFMvR2lCIGZvciBib3RoIFBST1ZJU0lPTkVEX0lPUFNfU1NEX0lPMiBhbmQgR0VORVJBTF9QVVJQT1NFX1NTRF9HUDMuXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLXZvbHVtZS5odG1sXG4gICAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBUaGlzIHBhcmFtZXRlciBpcyB2YWxpZCBvbmx5IGZvciBQUk9WSVNJT05FRF9JT1BTX1NTRCwgUFJPVklTSU9ORURfSU9QU19TU0RfSU8yIGFuZCBHRU5FUkFMX1BVUlBPU0VfU1NEX0dQMyB2b2x1bWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lIC0tIFJlcXVpcmVkIGZvciBpbzEgYW5kIGlvMiB2b2x1bWVzLiBUaGUgZGVmYXVsdCBmb3IgZ3AzIHZvbHVtZXMgaXMgMywwMDAgSU9QUyBpZiBvbWl0dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW9wcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocm91Z2hwdXQgdGhhdCB0aGUgdm9sdW1lIHN1cHBvcnRzLCBpbiBNaUIvc1xuICAgKiBUYWtlcyBhIG1pbmltdW0gb2YgMTI1IGFuZCBtYXhpbXVtIG9mIDEwMDAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi12b2x1bWUuaHRtbCNjZm4tZWMyLXZvbHVtZS10aHJvdWdocHV0XG4gICAqIEBkZWZhdWx0IC0gMTI1IE1pQi9zLiBPbmx5IHZhbGlkIG9uIGdwMyB2b2x1bWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGhyb3VnaHB1dD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIHJlcXVpcmVkIHRvIGltcG9ydCBhbiBleGlzdGluZyBFQlMgVm9sdW1lIGludG8gdGhlIFN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZvbHVtZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEVCUyBWb2x1bWUncyBJRFxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lIHRoYXQgdGhlIEVCUyBWb2x1bWUgaXMgY29udGFpbmVkIHdpdGhpbiAoZXg6IHVzLXdlc3QtMmEpXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lci1tYW5hZ2VkIGVuY3J5cHRpb24ga2V5IHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBWb2x1bWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmUgLS0gVGhlIEVCUyBWb2x1bWUgaXMgbm90IHVzaW5nIGEgY3VzdG9tZXItbWFuYWdlZCBLTVMga2V5IGZvciBlbmNyeXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IElLZXk7XG59XG5cbi8qKlxuICogQ29tbW9uIGJlaGF2aW9yIG9mIFZvbHVtZXMuIFVzZXJzIHNob3VsZCBub3QgdXNlIHRoaXMgY2xhc3MgZGlyZWN0bHksIGFuZCBpbnN0ZWFkIHVzZSBgYFZvbHVtZWBgLlxuICovXG5hYnN0cmFjdCBjbGFzcyBWb2x1bWVCYXNlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElWb2x1bWUge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdm9sdW1lSWQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBJS2V5O1xuICBwdWJsaWMgZ2V0IHZvbHVtZU91dHB1dHMoKTogVm9sdW1lT3V0cHV0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZvbHVtZUlkOiB0aGlzLnZvbHVtZUlkLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogdGhpcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgZW5jcnlwdGlvbktleUlkOiB0aGlzLmVuY3J5cHRpb25LZXk/LmtleUlkLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLnZvbHVtZU91dHB1dHM7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRBdHRhY2hWb2x1bWUoXG4gICAgZ3JhbnRlZTogSUdyYW50YWJsZSxcbiAgICBpbnN0YW5jZXM/OiBJSW5zdGFuY2VbXSxcbiAgKTogR3JhbnQge1xuICAgIGNvbnN0IHJlc3VsdCA9IEdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJlYzI6QXR0YWNoVm9sdW1lXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiB0aGlzLmNvbGxlY3RHcmFudFJlc291cmNlQXJucyhpbnN0YW5jZXMpLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZW5jcnlwdGlvbktleSkge1xuICAgICAgLy8gV2hlbiBhdHRhY2hpbmcgYSB2b2x1bWUsIHRoZSBFQzIgU2VydmljZSB3aWxsIG5lZWQgdG8gZ3JhbnQgdG8gaXRzZWxmIHBlcm1pc3Npb25cbiAgICAgIC8vIHRvIGJlIGFibGUgdG8gZGVjcnlwdCB0aGUgZW5jcnlwdGlvbiBrZXkuIFdlIHJlc3RyaWN0IHRoZSBDcmVhdGVHcmFudCBmb3IgcHJpbmNpcGxlXG4gICAgICAvLyBvZiBsZWFzdCBwcml2aWxlZ2UsIGluIGFjY29yZGFuY2Ugd2l0aCBiZXN0IHByYWN0aWNlcy5cbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL0VCU0VuY3J5cHRpb24uaHRtbCNlYnMtZW5jcnlwdGlvbi1wZXJtaXNzaW9uc1xuICAgICAgY29uc3Qga21zR3JhbnQ6IEdyYW50ID0gdGhpcy5lbmNyeXB0aW9uS2V5LmdyYW50KFxuICAgICAgICBncmFudGVlLFxuICAgICAgICBcImttczpDcmVhdGVHcmFudFwiLFxuICAgICAgKTtcbiAgICAgIGttc0dyYW50LnByaW5jaXBhbFN0YXRlbWVudCEuYWRkQ29uZGl0aW9ucyhcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiQm9vbFwiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImttczpHcmFudElzRm9yQVdTUmVzb3VyY2VcIixcbiAgICAgICAgICB2YWx1ZXM6IFtcInRydWVcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImttczpWaWFTZXJ2aWNlXCIsXG4gICAgICAgICAgdmFsdWVzOiBbYGVjMi4ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICB2YXJpYWJsZTogXCJrbXM6R3JhbnRDb25zdHJhaW50VHlwZVwiLFxuICAgICAgICAgIHZhbHVlczogW1wiRW5jcnlwdGlvbkNvbnRleHRTdWJzZXRcIl0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ3JhbnRBdHRhY2hWb2x1bWVCeVJlc291cmNlVGFnKFxuICAgIGdyYW50ZWU6IElHcmFudGFibGUsXG4gICAgY29uc3RydWN0czogQ29uc3RydWN0W10sXG4gICAgdGFnS2V5U3VmZml4Pzogc3RyaW5nLFxuICApOiBHcmFudCB7XG4gICAgY29uc3QgdGFnVmFsdWUgPSB0aGlzLmNhbGN1bGF0ZVJlc291cmNlVGFnVmFsdWUoW3RoaXMsIC4uLmNvbnN0cnVjdHNdKTtcbiAgICBjb25zdCB0YWdLZXkgPSBgVm9sdW1lR3JhbnRBdHRhY2gtJHt0YWdLZXlTdWZmaXggPz8gdGFnVmFsdWUuc2xpY2UoMCwgMTApLnRvVXBwZXJDYXNlKCl9YDtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdyYW50QXR0YWNoVm9sdW1lKGdyYW50ZWUpO1xuICAgIHJlc3VsdC5wcmluY2lwYWxTdGF0ZW1lbnQhLmFkZENvbmRpdGlvbih7XG4gICAgICB0ZXN0OiBcIkZvckFueVZhbHVlOlN0cmluZ0VxdWFsc1wiLFxuICAgICAgdmFyaWFibGU6IGBlYzI6UmVzb3VyY2VUYWcvJHt0YWdLZXl9YCxcbiAgICAgIHZhbHVlczogW3RhZ1ZhbHVlXSxcbiAgICB9KTtcblxuICAgIC8vIFRoZSBSZXNvdXJjZVRhZyBjb25kaXRpb24gcmVxdWlyZXMgdGhhdCBhbGwgcmVzb3VyY2VzIGludm9sdmVkIGluIHRoZSBvcGVyYXRpb24gaGF2ZVxuICAgIC8vIHRoZSBnaXZlbiB0YWcsIHNvIHdlIHRhZyB0aGlzIGFuZCBhbGwgY29uc3RydWN0cyBnaXZlbi5cbiAgICBUYWdzLm9mKHRoaXMpLmFkZCh0YWdLZXksIHRhZ1ZhbHVlKTtcbiAgICBjb25zdHJ1Y3RzLmZvckVhY2goKGNvbnN0cnVjdCkgPT4gVGFncy5vZihjb25zdHJ1Y3QpLmFkZCh0YWdLZXksIHRhZ1ZhbHVlKSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdyYW50RGV0YWNoVm9sdW1lKFxuICAgIGdyYW50ZWU6IElHcmFudGFibGUsXG4gICAgaW5zdGFuY2VzPzogSUluc3RhbmNlW10sXG4gICk6IEdyYW50IHtcbiAgICBjb25zdCByZXN1bHQgPSBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiZWMyOkRldGFjaFZvbHVtZVwiXSxcbiAgICAgIHJlc291cmNlQXJuczogdGhpcy5jb2xsZWN0R3JhbnRSZXNvdXJjZUFybnMoaW5zdGFuY2VzKSxcbiAgICB9KTtcbiAgICAvLyBOb3RlOiBObyBlbmNyeXB0aW9uIGtleSBwZXJtaXNzaW9ucyBhcmUgcmVxdWlyZWQgdG8gZGV0YWNoIGFuIGVuY3J5cHRlZCB2b2x1bWUuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBncmFudERldGFjaFZvbHVtZUJ5UmVzb3VyY2VUYWcoXG4gICAgZ3JhbnRlZTogSUdyYW50YWJsZSxcbiAgICBjb25zdHJ1Y3RzOiBDb25zdHJ1Y3RbXSxcbiAgICB0YWdLZXlTdWZmaXg/OiBzdHJpbmcsXG4gICk6IEdyYW50IHtcbiAgICBjb25zdCB0YWdWYWx1ZSA9IHRoaXMuY2FsY3VsYXRlUmVzb3VyY2VUYWdWYWx1ZShbdGhpcywgLi4uY29uc3RydWN0c10pO1xuICAgIGNvbnN0IHRhZ0tleSA9IGBWb2x1bWVHcmFudERldGFjaC0ke3RhZ0tleVN1ZmZpeCA/PyB0YWdWYWx1ZS5zbGljZSgwLCAxMCkudG9VcHBlckNhc2UoKX1gO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ3JhbnREZXRhY2hWb2x1bWUoZ3JhbnRlZSk7XG4gICAgcmVzdWx0LnByaW5jaXBhbFN0YXRlbWVudCEuYWRkQ29uZGl0aW9uKHtcbiAgICAgIHRlc3Q6IFwiRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzXCIsXG4gICAgICB2YXJpYWJsZTogYGVjMjpSZXNvdXJjZVRhZy8ke3RhZ0tleX1gLFxuICAgICAgdmFsdWVzOiBbdGFnVmFsdWVdLFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIFJlc291cmNlVGFnIGNvbmRpdGlvbiByZXF1aXJlcyB0aGF0IGFsbCByZXNvdXJjZXMgaW52b2x2ZWQgaW4gdGhlIG9wZXJhdGlvbiBoYXZlXG4gICAgLy8gdGhlIGdpdmVuIHRhZywgc28gd2UgdGFnIHRoaXMgYW5kIGFsbCBjb25zdHJ1Y3RzIGdpdmVuLlxuICAgIFRhZ3Mub2YodGhpcykuYWRkKHRhZ0tleSwgdGFnVmFsdWUpO1xuICAgIGNvbnN0cnVjdHMuZm9yRWFjaCgoY29uc3RydWN0KSA9PiBUYWdzLm9mKGNvbnN0cnVjdCkuYWRkKHRhZ0tleSwgdGFnVmFsdWUpKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RHcmFudFJlc291cmNlQXJucyhpbnN0YW5jZXM/OiBJSW5zdGFuY2VbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpO1xuICAgIGNvbnN0IHJlc291cmNlQXJuczogc3RyaW5nW10gPSBbXG4gICAgICBgYXJuOiR7c3RhY2sucGFydGl0aW9ufTplYzI6JHtzdGFjay5yZWdpb259OiR7c3RhY2suYWNjb3VudH06dm9sdW1lLyR7dGhpcy52b2x1bWVJZH1gLFxuICAgIF07XG4gICAgY29uc3QgaW5zdGFuY2VBcm5QcmVmaXggPSBgYXJuOiR7c3RhY2sucGFydGl0aW9ufTplYzI6JHtzdGFjay5yZWdpb259OiR7c3RhY2suYWNjb3VudH06aW5zdGFuY2VgO1xuICAgIGlmIChpbnN0YW5jZXMpIHtcbiAgICAgIGluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZSkgPT5cbiAgICAgICAgcmVzb3VyY2VBcm5zLnB1c2goYCR7aW5zdGFuY2VBcm5QcmVmaXh9LyR7aW5zdGFuY2U/Lmluc3RhbmNlSWR9YCksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvdXJjZUFybnMucHVzaChgJHtpbnN0YW5jZUFyblByZWZpeH0vKmApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb3VyY2VBcm5zO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVSZXNvdXJjZVRhZ1ZhbHVlKGNvbnN0cnVjdHM6IENvbnN0cnVjdFtdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWQ1aGFzaChjb25zdHJ1Y3RzLm1hcCgoYykgPT4gQXdzU3RhY2sudW5pcXVlSWQoYykpLmpvaW4oXCJcIikpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBFQlMgVm9sdW1lIGluIEFXUyBFQzIuXG4gKi9cbmV4cG9ydCBjbGFzcyBWb2x1bWUgZXh0ZW5kcyBWb2x1bWVCYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBFQlMgVm9sdW1lIGludG8gdGhlIFN0YWNrLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIG9mIHRoZSBpbXBvcnQuXG4gICAqIEBwYXJhbSBpZCAgICB0aGUgSUQgb2YgdGhlIGltcG9ydGVkIFZvbHVtZSBpbiB0aGUgY29uc3RydWN0IHRyZWUuXG4gICAqIEBwYXJhbSBhdHRycyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgaW1wb3J0ZWQgVm9sdW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Wb2x1bWVBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogVm9sdW1lQXR0cmlidXRlcyxcbiAgKTogSVZvbHVtZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgVm9sdW1lQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdm9sdW1lSWQgPSBhdHRycy52b2x1bWVJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhdmFpbGFiaWxpdHlab25lID0gYXR0cnMuYXZhaWxhYmlsaXR5Wm9uZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5ID0gYXR0cnMuZW5jcnlwdGlvbktleTtcbiAgICB9XG4gICAgLy8gQ2hlY2sgdGhhdCB0aGUgcHJvdmlkZWQgdm9sdW1lSWQgbG9va3MgbGlrZSBpdCBjb3VsZCBiZSB2YWxpZC5cbiAgICBpZiAoXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKGF0dHJzLnZvbHVtZUlkKSAmJlxuICAgICAgIS9edm9sLVswLTlhLWZBLUZdKyQvLnRlc3QoYXR0cnMudm9sdW1lSWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYHZvbHVtZUlkYCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCBwYXR0ZXJuLiBFeHBlY3RlZCBgdm9sLTxoZXhhZGVjbWlhbCB2YWx1ZT5gIChleDogYHZvbC0wNWFiZTI0NmFmYCkgb3IgYSBUb2tlblwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB2b2x1bWVJZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IElLZXk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBlYnNWb2x1bWUuRWJzVm9sdW1lO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWb2x1bWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGNvbnN0IHZvbHVtZU5hbWUgPVxuICAgICAgcHJvcHMudm9sdW1lTmFtZSB8fFxuICAgICAgdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICBwcmVmaXg6IHRoaXMuZ3JpZFVVSUQsXG4gICAgICB9KTtcblxuICAgIHRoaXMudmFsaWRhdGVQcm9wcyhwcm9wcyk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGVic1ZvbHVtZS5FYnNWb2x1bWUodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBhdmFpbGFiaWxpdHlab25lOiBwcm9wcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgLy8gYXV0b0VuYWJsZUlvOiBwcm9wcy5hdXRvRW5hYmxlSW8sXG4gICAgICBlbmNyeXB0ZWQ6IHByb3BzLmVuY3J5cHRlZCxcbiAgICAgIGttc0tleUlkOiBwcm9wcy5lbmNyeXB0aW9uS2V5Py5rZXlBcm4sXG4gICAgICBpb3BzOiBwcm9wcy5pb3BzLFxuICAgICAgbXVsdGlBdHRhY2hFbmFibGVkOiBwcm9wcy5lbmFibGVNdWx0aUF0dGFjaCA/PyBmYWxzZSxcbiAgICAgIHNpemU6IHByb3BzLnNpemU/LnRvR2liaWJ5dGVzKHsgcm91bmRpbmc6IFNpemVSb3VuZGluZ0JlaGF2aW9yLkZBSUwgfSksXG4gICAgICBzbmFwc2hvdElkOiBwcm9wcy5zbmFwc2hvdElkLFxuICAgICAgdGhyb3VnaHB1dDogcHJvcHMudGhyb3VnaHB1dCxcbiAgICAgIHR5cGU6IHByb3BzLnZvbHVtZVR5cGUgPz8gRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEX0dQMyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy52b2x1bWVOYW1lKSBUYWdzLm9mKHRoaXMucmVzb3VyY2UpLmFkZChcIk5hbWVcIiwgdm9sdW1lTmFtZSk7XG5cbiAgICB0aGlzLnZvbHVtZUlkID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmUgPSBwcm9wcy5hdmFpbGFiaWxpdHlab25lO1xuICAgIHRoaXMuZW5jcnlwdGlvbktleSA9IHByb3BzLmVuY3J5cHRpb25LZXk7XG5cbiAgICBpZiAodGhpcy5lbmNyeXB0aW9uS2V5KSB7XG4gICAgICAvLyBQZXI6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9FQlNFbmNyeXB0aW9uLmh0bWwjZWJzLWVuY3J5cHRpb24tcmVxdWlyZW1lbnRzXG4gICAgICBjb25zdCBwcmluY2lwYWwgPSBuZXcgVmlhU2VydmljZVByaW5jaXBhbChcbiAgICAgICAgYGVjMi4ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLnJlZ2lvbn0uYW1hem9uYXdzLmNvbWAsXG4gICAgICAgIG5ldyBBY2NvdW50Um9vdFByaW5jaXBhbCgpLFxuICAgICAgKS53aXRoQ29uZGl0aW9ucyh7XG4gICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG4gICAgICAgIHZhcmlhYmxlOiBcImttczpDYWxsZXJBY2NvdW50XCIsXG4gICAgICAgIHZhbHVlczogW0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmFjY291bnRdLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBncmFudCA9IHRoaXMuZW5jcnlwdGlvbktleS5ncmFudChcbiAgICAgICAgcHJpbmNpcGFsLFxuICAgICAgICAvLyBEZXNjcmliZSAmIEdlbmVyYXRlIGFyZSByZXF1aXJlZCB0byBiZSBhYmxlIHRvIGNyZWF0ZSB0aGUgQ01LLWVuY3J5cHRlZCBWb2x1bWUuXG4gICAgICAgIFwia21zOkRlc2NyaWJlS2V5XCIsXG4gICAgICAgIFwia21zOkdlbmVyYXRlRGF0YUtleVdpdGhvdXRQbGFpblRleHRcIixcbiAgICAgICk7XG4gICAgICBpZiAocHJvcHMuc25hcHNob3RJZCkge1xuICAgICAgICAvLyBSZUVuY3J5cHQgaXMgcmVxdWlyZWQgZm9yIHdoZW4gcmUtZW5jcnlwdGluZyBmcm9tIGFuIGVuY3J5cHRlZCBzbmFwc2hvdC5cbiAgICAgICAgZ3JhbnQucHJpbmNpcGFsU3RhdGVtZW50Py5hZGRBY3Rpb25zKFwia21zOlJlRW5jcnlwdCpcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlUHJvcHMocHJvcHM6IFZvbHVtZVByb3BzKSB7XG4gICAgaWYgKCEocHJvcHMuc2l6ZSB8fCBwcm9wcy5zbmFwc2hvdElkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTXVzdCBwcm92aWRlIGF0IGxlYXN0IG9uZSBvZiBgc2l6ZWAgb3IgYHNuYXBzaG90SWRgXCIpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLnNuYXBzaG90SWQgJiZcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuc25hcHNob3RJZCkgJiZcbiAgICAgICEvXnNuYXAtWzAtOWEtZkEtRl0rJC8udGVzdChwcm9wcy5zbmFwc2hvdElkKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImBzbmFwc2hvdElkYCBkb2VzIG1hdGNoIGV4cGVjdGVkIHBhdHRlcm4uIEV4cGVjdGVkIGBzbmFwLTxoZXhhZGVjbWlhbCB2YWx1ZT5gIChleDogYHNuYXAtMDVhYmUyNDZhZmApIG9yIFRva2VuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5lbmNyeXB0aW9uS2V5ICYmICFwcm9wcy5lbmNyeXB0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgZW5jcnlwdGVkYCBtdXN0IGJlIHRydWUgd2hlbiBwcm92aWRpbmcgYW4gYGVuY3J5cHRpb25LZXlgLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy52b2x1bWVUeXBlICYmXG4gICAgICBbXG4gICAgICAgIEVic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0QsXG4gICAgICAgIEVic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0RfSU8yLFxuICAgICAgXS5pbmNsdWRlcyhwcm9wcy52b2x1bWVUeXBlKSAmJlxuICAgICAgIXByb3BzLmlvcHNcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgaW9wc2AgbXVzdCBiZSBzcGVjaWZpZWQgaWYgdGhlIGB2b2x1bWVUeXBlYCBpcyBgUFJPVklTSU9ORURfSU9QU19TU0RgIG9yIGBQUk9WSVNJT05FRF9JT1BTX1NTRF9JTzJgLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuaW9wcykge1xuICAgICAgY29uc3Qgdm9sdW1lVHlwZSA9XG4gICAgICAgIHByb3BzLnZvbHVtZVR5cGUgPz8gRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEO1xuICAgICAgaWYgKFxuICAgICAgICAhW1xuICAgICAgICAgIEVic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0QsXG4gICAgICAgICAgRWJzRGV2aWNlVm9sdW1lVHlwZS5QUk9WSVNJT05FRF9JT1BTX1NTRF9JTzIsXG4gICAgICAgICAgRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEX0dQMyxcbiAgICAgICAgXS5pbmNsdWRlcyh2b2x1bWVUeXBlKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcImBpb3BzYCBtYXkgb25seSBiZSBzcGVjaWZpZWQgaWYgdGhlIGB2b2x1bWVUeXBlYCBpcyBgUFJPVklTSU9ORURfSU9QU19TU0RgLCBgUFJPVklTSU9ORURfSU9QU19TU0RfSU8yYCBvciBgR0VORVJBTF9QVVJQT1NFX1NTRF9HUDNgLlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gRW5mb3JjZSBtaW5pbXVtICYgbWF4aW11bSBJT1BTOlxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi12b2x1bWUuaHRtbFxuICAgICAgY29uc3QgaW9wc1JhbmdlczogeyBba2V5OiBzdHJpbmddOiB7IE1pbjogbnVtYmVyOyBNYXg6IG51bWJlciB9IH0gPSB7fTtcbiAgICAgIGlvcHNSYW5nZXNbRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEX0dQM10gPSB7XG4gICAgICAgIE1pbjogMzAwMCxcbiAgICAgICAgTWF4OiAxNjAwMCxcbiAgICAgIH07XG4gICAgICBpb3BzUmFuZ2VzW0Vic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0RdID0ge1xuICAgICAgICBNaW46IDEwMCxcbiAgICAgICAgTWF4OiA2NDAwMCxcbiAgICAgIH07XG4gICAgICBpb3BzUmFuZ2VzW0Vic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0RfSU8yXSA9IHtcbiAgICAgICAgTWluOiAxMDAsXG4gICAgICAgIE1heDogMjU2MDAwLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHsgTWluLCBNYXggfSA9IGlvcHNSYW5nZXNbdm9sdW1lVHlwZV07XG4gICAgICBpZiAocHJvcHMuaW9wcyA8IE1pbiB8fCBwcm9wcy5pb3BzID4gTWF4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXFxgJHt2b2x1bWVUeXBlfVxcYCB2b2x1bWVzIGlvcHMgbXVzdCBiZSBiZXR3ZWVuICR7TWlufSBhbmQgJHtNYXh9LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuZm9yY2UgbWF4aW11bSByYXRpbyBvZiBJT1BTL0dpQjpcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYnMtdm9sdW1lLXR5cGVzLmh0bWxcbiAgICAgIGNvbnN0IG1heGltdW1SYXRpb3M6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICAgIG1heGltdW1SYXRpb3NbRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEX0dQM10gPSA1MDA7XG4gICAgICBtYXhpbXVtUmF0aW9zW0Vic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0RdID0gNTA7XG4gICAgICBtYXhpbXVtUmF0aW9zW0Vic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0RfSU8yXSA9IDUwMDtcbiAgICAgIGNvbnN0IG1heGltdW1SYXRpbyA9IG1heGltdW1SYXRpb3Nbdm9sdW1lVHlwZV07XG4gICAgICBpZiAoXG4gICAgICAgIHByb3BzLnNpemUgJiZcbiAgICAgICAgcHJvcHMuaW9wcyA+XG4gICAgICAgICAgbWF4aW11bVJhdGlvICpcbiAgICAgICAgICAgIHByb3BzLnNpemUudG9HaWJpYnl0ZXMoeyByb3VuZGluZzogU2l6ZVJvdW5kaW5nQmVoYXZpb3IuRkFJTCB9KVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXFxgJHt2b2x1bWVUeXBlfVxcYCB2b2x1bWVzIGlvcHMgaGFzIGEgbWF4aW11bSByYXRpbyBvZiAke21heGltdW1SYXRpb30gSU9QUy9HaUIuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWF4aW11bVRocm91Z2hwdXRSYXRpb3M6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgICAgIG1heGltdW1UaHJvdWdocHV0UmF0aW9zW0Vic0RldmljZVZvbHVtZVR5cGUuR1AzXSA9IDAuMjU7XG4gICAgICBjb25zdCBtYXhpbXVtVGhyb3VnaHB1dFJhdGlvID0gbWF4aW11bVRocm91Z2hwdXRSYXRpb3Nbdm9sdW1lVHlwZV07XG4gICAgICBpZiAocHJvcHMudGhyb3VnaHB1dCAmJiBwcm9wcy5pb3BzKSB7XG4gICAgICAgIGNvbnN0IGlvcHNSYXRpbyA9IHByb3BzLnRocm91Z2hwdXQgLyBwcm9wcy5pb3BzO1xuICAgICAgICBpZiAoaW9wc1JhdGlvID4gbWF4aW11bVRocm91Z2hwdXRSYXRpbykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBUaHJvdWdocHV0IChNaUJwcykgdG8gaW9wcyByYXRpbyBvZiAke2lvcHNSYXRpb30gaXMgdG9vIGhpZ2g7IG1heGltdW0gaXMgJHttYXhpbXVtVGhyb3VnaHB1dFJhdGlvfSBNaUJwcyBwZXIgaW9wc2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5lbmFibGVNdWx0aUF0dGFjaCkge1xuICAgICAgY29uc3Qgdm9sdW1lVHlwZSA9XG4gICAgICAgIHByb3BzLnZvbHVtZVR5cGUgPz8gRWJzRGV2aWNlVm9sdW1lVHlwZS5HRU5FUkFMX1BVUlBPU0VfU1NEO1xuICAgICAgaWYgKFxuICAgICAgICAhW1xuICAgICAgICAgIEVic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0QsXG4gICAgICAgICAgRWJzRGV2aWNlVm9sdW1lVHlwZS5QUk9WSVNJT05FRF9JT1BTX1NTRF9JTzIsXG4gICAgICAgIF0uaW5jbHVkZXModm9sdW1lVHlwZSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJtdWx0aS1hdHRhY2ggaXMgc3VwcG9ydGVkIGV4Y2x1c2l2ZWx5IG9uIGBQUk9WSVNJT05FRF9JT1BTX1NTRGAgYW5kIGBQUk9WSVNJT05FRF9JT1BTX1NTRF9JTzJgIHZvbHVtZXMuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNpemUpIHtcbiAgICAgIGNvbnN0IHNpemUgPSBwcm9wcy5zaXplLnRvR2liaWJ5dGVzKHtcbiAgICAgICAgcm91bmRpbmc6IFNpemVSb3VuZGluZ0JlaGF2aW9yLkZBSUwsXG4gICAgICB9KTtcbiAgICAgIC8vIEVuZm9yY2UgbWluaW11bSAmIG1heGltdW0gdm9sdW1lIHNpemU6XG4gICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWMyLXZvbHVtZS5odG1sXG4gICAgICBjb25zdCBzaXplUmFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IHsgTWluOiBudW1iZXI7IE1heDogbnVtYmVyIH0gfSA9IHt9O1xuICAgICAgc2l6ZVJhbmdlc1tFYnNEZXZpY2VWb2x1bWVUeXBlLkdFTkVSQUxfUFVSUE9TRV9TU0RdID0ge1xuICAgICAgICBNaW46IDEsXG4gICAgICAgIE1heDogMTYzODQsXG4gICAgICB9O1xuICAgICAgc2l6ZVJhbmdlc1tFYnNEZXZpY2VWb2x1bWVUeXBlLkdFTkVSQUxfUFVSUE9TRV9TU0RfR1AzXSA9IHtcbiAgICAgICAgTWluOiAxLFxuICAgICAgICBNYXg6IDE2Mzg0LFxuICAgICAgfTtcbiAgICAgIHNpemVSYW5nZXNbRWJzRGV2aWNlVm9sdW1lVHlwZS5QUk9WSVNJT05FRF9JT1BTX1NTRF0gPSB7XG4gICAgICAgIE1pbjogNCxcbiAgICAgICAgTWF4OiAxNjM4NCxcbiAgICAgIH07XG4gICAgICBzaXplUmFuZ2VzW0Vic0RldmljZVZvbHVtZVR5cGUuUFJPVklTSU9ORURfSU9QU19TU0RfSU8yXSA9IHtcbiAgICAgICAgTWluOiA0LFxuICAgICAgICBNYXg6IDE2Mzg0LFxuICAgICAgfTtcbiAgICAgIHNpemVSYW5nZXNbRWJzRGV2aWNlVm9sdW1lVHlwZS5USFJPVUdIUFVUX09QVElNSVpFRF9IRERdID0ge1xuICAgICAgICBNaW46IDEyNSxcbiAgICAgICAgTWF4OiAxNjM4NCxcbiAgICAgIH07XG4gICAgICBzaXplUmFuZ2VzW0Vic0RldmljZVZvbHVtZVR5cGUuQ09MRF9IRERdID0geyBNaW46IDEyNSwgTWF4OiAxNjM4NCB9O1xuICAgICAgc2l6ZVJhbmdlc1tFYnNEZXZpY2VWb2x1bWVUeXBlLk1BR05FVElDXSA9IHsgTWluOiAxLCBNYXg6IDEwMjQgfTtcbiAgICAgIGNvbnN0IHZvbHVtZVR5cGUgPVxuICAgICAgICBwcm9wcy52b2x1bWVUeXBlID8/IEVic0RldmljZVZvbHVtZVR5cGUuR0VORVJBTF9QVVJQT1NFX1NTRDtcbiAgICAgIGNvbnN0IHsgTWluLCBNYXggfSA9IHNpemVSYW5nZXNbdm9sdW1lVHlwZV07XG4gICAgICBpZiAoc2l6ZSA8IE1pbiB8fCBzaXplID4gTWF4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXFxgJHt2b2x1bWVUeXBlfVxcYCB2b2x1bWVzIG11c3QgYmUgYmV0d2VlbiAke01pbn0gR2lCIGFuZCAke01heH0gR2lCIGluIHNpemUuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJvcHMudGhyb3VnaHB1dCkge1xuICAgICAgY29uc3QgdGhyb3VnaHB1dFJhbmdlID0geyBNaW46IDEyNSwgTWF4OiAxMDAwIH07XG4gICAgICBjb25zdCB7IE1pbiwgTWF4IH0gPSB0aHJvdWdocHV0UmFuZ2U7XG4gICAgICBpZiAocHJvcHMudm9sdW1lVHlwZSAhPSBFYnNEZXZpY2VWb2x1bWVUeXBlLkdQMykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJ0aHJvdWdocHV0IHByb3BlcnR5IHJlcXVpcmVzIHZvbHVtZVR5cGU6IEVic0RldmljZVZvbHVtZVR5cGUuR1AzXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMudGhyb3VnaHB1dCA8IE1pbiB8fCBwcm9wcy50aHJvdWdocHV0ID4gTWF4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgdGhyb3VnaHB1dCBwcm9wZXJ0eSB0YWtlcyBhIG1pbmltdW0gb2YgJHtNaW59IGFuZCBhIG1heGltdW0gb2YgJHtNYXh9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -81,7 +81,7 @@ class VpcEndpointService extends aws_construct_1.AwsConstructBase {
81
81
  }
82
82
  exports.VpcEndpointService = VpcEndpointService;
83
83
  _a = JSII_RTTI_SYMBOL_1;
84
- VpcEndpointService[_a] = { fqn: "terraconstructs.aws.compute.VpcEndpointService", version: "0.0.19" };
84
+ VpcEndpointService[_a] = { fqn: "terraconstructs.aws.compute.VpcEndpointService", version: "0.0.20" };
85
85
  /**
86
86
  * The default value for a VPC Endpoint Service name prefix, useful if you do
87
87
  * not have a synthesize-time region literal available.