terraconstructs 0.0.10 → 0.0.12

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 (410) hide show
  1. package/.jsii +104486 -34582
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.d.ts +1 -1
  4. package/lib/aws/aws-construct.js +28 -2
  5. package/lib/aws/aws-stack.d.ts +2 -4
  6. package/lib/aws/aws-stack.js +21 -8
  7. package/lib/aws/aws-tags.d.ts +58 -0
  8. package/lib/aws/aws-tags.js +77 -0
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  13. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  14. package/lib/aws/cloudwatch/alarm.js +1 -1
  15. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  16. package/lib/aws/cloudwatch/dashboard.js +1 -1
  17. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  18. package/lib/aws/cloudwatch/graph.js +8 -8
  19. package/lib/aws/cloudwatch/layout.js +3 -3
  20. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  21. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  22. package/lib/aws/cloudwatch/log-group.js +1 -1
  23. package/lib/aws/cloudwatch/log-query.js +1 -1
  24. package/lib/aws/cloudwatch/log-stream.js +1 -1
  25. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  26. package/lib/aws/cloudwatch/metric-filter.js +4 -4
  27. package/lib/aws/cloudwatch/metric.js +2 -2
  28. package/lib/aws/cloudwatch/pattern.js +3 -3
  29. package/lib/aws/cloudwatch/policy.js +1 -1
  30. package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
  31. package/lib/aws/cloudwatch/private/metric-util.js +4 -5
  32. package/lib/aws/cloudwatch/private/object.js +2 -3
  33. package/lib/aws/cloudwatch/private/rendering.js +3 -3
  34. package/lib/aws/cloudwatch/private/statistic.js +6 -7
  35. package/lib/aws/cloudwatch/query-definition.js +2 -2
  36. package/lib/aws/cloudwatch/stats.js +1 -1
  37. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/subscription-filter.js +4 -4
  39. package/lib/aws/cloudwatch/text.js +1 -1
  40. package/lib/aws/cloudwatch/variable.js +3 -3
  41. package/lib/aws/cloudwatch/widget.d.ts +1 -1
  42. package/lib/aws/cloudwatch/widget.js +4 -4
  43. package/lib/aws/compute/activity.js +3 -2
  44. package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
  45. package/lib/aws/compute/alb/application-listener-action.js +281 -0
  46. package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
  47. package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
  48. package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
  49. package/lib/aws/compute/alb/application-listener-rule.js +220 -0
  50. package/lib/aws/compute/alb/application-listener.d.ts +574 -0
  51. package/lib/aws/compute/alb/application-listener.js +538 -0
  52. package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
  53. package/lib/aws/compute/alb/application-load-balancer.js +780 -0
  54. package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
  55. package/lib/aws/compute/alb/application-target-group.js +427 -0
  56. package/lib/aws/compute/alb/conditions.d.ts +61 -0
  57. package/lib/aws/compute/alb/conditions.js +164 -0
  58. package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
  59. package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
  60. package/lib/aws/compute/alb/trust-store.d.ts +86 -0
  61. package/lib/aws/compute/alb/trust-store.js +79 -0
  62. package/lib/aws/compute/architecture.js +1 -1
  63. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
  64. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
  65. package/lib/aws/compute/bastion-host.d.ts +172 -0
  66. package/lib/aws/compute/bastion-host.js +114 -0
  67. package/lib/aws/compute/chain.js +1 -1
  68. package/lib/aws/compute/cidr-splits.d.ts +49 -0
  69. package/lib/aws/compute/cidr-splits.js +59 -0
  70. package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
  71. package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
  72. package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
  73. package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
  74. package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
  75. package/lib/aws/compute/client-vpn-endpoint.js +259 -0
  76. package/lib/aws/compute/client-vpn-route.d.ts +67 -0
  77. package/lib/aws/compute/client-vpn-route.js +57 -0
  78. package/lib/aws/compute/condition.js +1 -1
  79. package/lib/aws/compute/connections.d.ts +137 -0
  80. package/lib/aws/compute/connections.js +208 -0
  81. package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
  82. package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
  83. package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
  84. package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
  85. package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
  86. package/lib/aws/compute/ec2-util-v2.js +286 -0
  87. package/lib/aws/compute/ec2-util.d.ts +52 -0
  88. package/lib/aws/compute/ec2-util.js +138 -0
  89. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
  90. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
  91. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
  92. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
  93. package/lib/aws/compute/event-invoke-config.js +1 -1
  94. package/lib/aws/compute/event-source-filter.js +2 -2
  95. package/lib/aws/compute/event-source-mapping.js +1 -1
  96. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  97. package/lib/aws/compute/event-sources/s3.js +1 -1
  98. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs.js +1 -1
  100. package/lib/aws/compute/fields.js +4 -4
  101. package/lib/aws/compute/function-alias.js +1 -1
  102. package/lib/aws/compute/function-base.js +2 -2
  103. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  104. package/lib/aws/compute/function-destinations/function.js +1 -1
  105. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  106. package/lib/aws/compute/function-nodejs.js +1 -1
  107. package/lib/aws/compute/function-url.js +1 -1
  108. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  109. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  110. package/lib/aws/compute/function.d.ts +1 -1
  111. package/lib/aws/compute/function.js +5 -5
  112. package/lib/aws/compute/index-alpha.d.ts +5 -0
  113. package/lib/aws/compute/index-alpha.js +22 -0
  114. package/lib/aws/compute/index.d.ts +60 -0
  115. package/lib/aws/compute/index.js +70 -2
  116. package/lib/aws/compute/instance-types.d.ts +1354 -0
  117. package/lib/aws/compute/instance-types.js +1683 -0
  118. package/lib/aws/compute/instance.d.ts +436 -0
  119. package/lib/aws/compute/instance.js +262 -0
  120. package/lib/aws/compute/ip-addresses.d.ts +249 -0
  121. package/lib/aws/compute/ip-addresses.js +248 -0
  122. package/lib/aws/compute/ipam.d.ts +309 -0
  123. package/lib/aws/compute/ipam.js +306 -0
  124. package/lib/aws/compute/key-pair.d.ts +178 -0
  125. package/lib/aws/compute/key-pair.js +194 -0
  126. package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
  127. package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
  128. package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
  129. package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
  130. package/lib/aws/compute/launch-template.d.ts +540 -0
  131. package/lib/aws/compute/launch-template.js +468 -0
  132. package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
  133. package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
  134. package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
  135. package/lib/aws/compute/lb-shared/base-listener.js +181 -0
  136. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
  137. package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
  138. package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
  139. package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
  140. package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
  141. package/lib/aws/compute/lb-shared/enums.js +301 -0
  142. package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
  143. package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
  144. package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
  145. package/lib/aws/compute/lb-shared/imported.js +27 -0
  146. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
  147. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
  148. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
  149. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
  150. package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
  151. package/lib/aws/compute/lb-shared/listener-action.js +4 -0
  152. package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
  153. package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
  154. package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
  155. package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
  156. package/lib/aws/compute/lb-shared/util.d.ts +113 -0
  157. package/lib/aws/compute/lb-shared/util.js +264 -0
  158. package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
  159. package/lib/aws/compute/lb-targets/alb-target.js +100 -0
  160. package/lib/aws/compute/lb-targets/index.d.ts +4 -0
  161. package/lib/aws/compute/lb-targets/index.js +22 -0
  162. package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
  163. package/lib/aws/compute/lb-targets/instance-target.js +67 -0
  164. package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
  165. package/lib/aws/compute/lb-targets/ip-target.js +79 -0
  166. package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
  167. package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
  168. package/lib/aws/compute/load-balancer.d.ts +336 -0
  169. package/lib/aws/compute/load-balancer.js +287 -0
  170. package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
  171. package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
  172. package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
  173. package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
  174. package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
  175. package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
  176. package/lib/aws/compute/machine-image/common.d.ts +181 -0
  177. package/lib/aws/compute/machine-image/common.js +122 -0
  178. package/lib/aws/compute/machine-image/index.d.ts +5 -0
  179. package/lib/aws/compute/machine-image/index.js +22 -0
  180. package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
  181. package/lib/aws/compute/machine-image/machine-image.js +566 -0
  182. package/lib/aws/compute/machine-image/utils.d.ts +2 -0
  183. package/lib/aws/compute/machine-image/utils.js +17 -0
  184. package/lib/aws/compute/nat.d.ts +325 -0
  185. package/lib/aws/compute/nat.js +455 -0
  186. package/lib/aws/compute/network-acl-types.d.ts +152 -0
  187. package/lib/aws/compute/network-acl-types.js +156 -0
  188. package/lib/aws/compute/network-acl.d.ts +285 -0
  189. package/lib/aws/compute/network-acl.js +207 -0
  190. package/lib/aws/compute/network-util.d.ts +116 -0
  191. package/lib/aws/compute/network-util.js +241 -0
  192. package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
  193. package/lib/aws/compute/nlb/network-listener-action.js +146 -0
  194. package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
  195. package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
  196. package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
  197. package/lib/aws/compute/nlb/network-listener.js +217 -0
  198. package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
  199. package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
  200. package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
  201. package/lib/aws/compute/nlb/network-target-group.js +223 -0
  202. package/lib/aws/compute/peer.d.ts +64 -0
  203. package/lib/aws/compute/peer.js +235 -0
  204. package/lib/aws/compute/placement-group.d.ts +161 -0
  205. package/lib/aws/compute/placement-group.js +133 -0
  206. package/lib/aws/compute/port.d.ts +287 -0
  207. package/lib/aws/compute/port.js +390 -0
  208. package/lib/aws/compute/prefix-list.d.ts +131 -0
  209. package/lib/aws/compute/prefix-list.js +114 -0
  210. package/lib/aws/compute/private/context-stub.d.ts +7 -0
  211. package/lib/aws/compute/private/context-stub.js +43 -0
  212. package/lib/aws/compute/private/ebs-util.d.ts +14 -0
  213. package/lib/aws/compute/private/ebs-util.js +145 -0
  214. package/lib/aws/compute/private/intrinstics.js +2 -1
  215. package/lib/aws/compute/private/json-path.js +8 -8
  216. package/lib/aws/compute/private/util.js +2 -3
  217. package/lib/aws/compute/route.d.ts +547 -0
  218. package/lib/aws/compute/route.js +469 -0
  219. package/lib/aws/compute/security-group.d.ts +414 -0
  220. package/lib/aws/compute/security-group.js +538 -0
  221. package/lib/aws/compute/state-graph.js +1 -1
  222. package/lib/aws/compute/state-machine-fragment.js +1 -1
  223. package/lib/aws/compute/state-machine.d.ts +2 -2
  224. package/lib/aws/compute/state-machine.js +14 -12
  225. package/lib/aws/compute/states/choice.js +1 -1
  226. package/lib/aws/compute/states/custom-state.js +1 -1
  227. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  228. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  229. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  230. package/lib/aws/compute/states/distributed-map.js +1 -1
  231. package/lib/aws/compute/states/fail.js +1 -1
  232. package/lib/aws/compute/states/map-base.js +1 -1
  233. package/lib/aws/compute/states/map.js +1 -1
  234. package/lib/aws/compute/states/parallel.js +1 -1
  235. package/lib/aws/compute/states/pass.js +2 -2
  236. package/lib/aws/compute/states/state.js +5 -5
  237. package/lib/aws/compute/states/succeed.js +1 -1
  238. package/lib/aws/compute/states/task-base.js +2 -2
  239. package/lib/aws/compute/states/task.js +1 -1
  240. package/lib/aws/compute/states/wait.js +2 -2
  241. package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
  242. package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
  243. package/lib/aws/compute/subnet-v2.d.ts +213 -0
  244. package/lib/aws/compute/subnet-v2.js +405 -0
  245. package/lib/aws/compute/subnet.d.ts +37 -0
  246. package/lib/aws/compute/subnet.js +181 -0
  247. package/lib/aws/compute/task-credentials.js +1 -1
  248. package/lib/aws/compute/task-input.js +1 -1
  249. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  250. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  251. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  252. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  253. package/lib/aws/compute/tasks/private/task-utils.js +3 -4
  254. package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
  255. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  256. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  257. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  258. package/lib/aws/compute/types.js +2 -2
  259. package/lib/aws/compute/user-data.d.ts +270 -0
  260. package/lib/aws/compute/user-data.js +487 -0
  261. package/lib/aws/compute/util.d.ts +1 -1
  262. package/lib/aws/compute/util.js +4 -5
  263. package/lib/aws/compute/volume.d.ts +480 -0
  264. package/lib/aws/compute/volume.js +426 -0
  265. package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
  266. package/lib/aws/compute/vpc-endpoint-service.js +90 -0
  267. package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
  268. package/lib/aws/compute/vpc-endpoint.js +811 -0
  269. package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
  270. package/lib/aws/compute/vpc-flow-logs.js +693 -0
  271. package/lib/aws/compute/vpc-lookup.d.ts +73 -0
  272. package/lib/aws/compute/vpc-lookup.js +3 -0
  273. package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
  274. package/lib/aws/compute/vpc-v2-base.js +493 -0
  275. package/lib/aws/compute/vpc-v2.d.ts +385 -0
  276. package/lib/aws/compute/vpc-v2.js +408 -0
  277. package/lib/aws/compute/vpc.d.ts +1448 -0
  278. package/lib/aws/compute/vpc.js +1495 -0
  279. package/lib/aws/compute/vpn.d.ts +443 -0
  280. package/lib/aws/compute/vpn.js +397 -0
  281. package/lib/aws/compute/windows-versions.d.ts +418 -0
  282. package/lib/aws/compute/windows-versions.js +426 -0
  283. package/lib/aws/edge/certificate-base.d.ts +20 -0
  284. package/lib/aws/edge/certificate-base.js +28 -0
  285. package/lib/aws/edge/certificate.d.ts +23 -2
  286. package/lib/aws/edge/certificate.js +54 -4
  287. package/lib/aws/edge/distribution.js +3 -3
  288. package/lib/aws/edge/dns-alias-record-targets.js +2 -2
  289. package/lib/aws/edge/dns-record.js +16 -16
  290. package/lib/aws/edge/dns-zone.d.ts +20 -2
  291. package/lib/aws/edge/dns-zone.js +25 -10
  292. package/lib/aws/edge/function.js +2 -2
  293. package/lib/aws/edge/index.d.ts +1 -0
  294. package/lib/aws/edge/index.js +2 -1
  295. package/lib/aws/edge/key-value-store.js +4 -4
  296. package/lib/aws/edge/origin.js +8 -6
  297. package/lib/aws/edge/response-headers-policy.js +1 -1
  298. package/lib/aws/encryption/alias.js +1 -1
  299. package/lib/aws/encryption/key.js +1 -1
  300. package/lib/aws/encryption/via-service-principal.js +1 -1
  301. package/lib/aws/iam/grant.js +2 -2
  302. package/lib/aws/iam/index.d.ts +1 -0
  303. package/lib/aws/iam/index.js +2 -1
  304. package/lib/aws/iam/instance-profile.d.ts +155 -0
  305. package/lib/aws/iam/instance-profile.js +124 -0
  306. package/lib/aws/iam/managed-policy.js +1 -1
  307. package/lib/aws/iam/oidc-provider.js +1 -1
  308. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  309. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  310. package/lib/aws/iam/policy-document.js +1 -1
  311. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  312. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  313. package/lib/aws/iam/policy-statement.js +9 -9
  314. package/lib/aws/iam/policy.js +1 -1
  315. package/lib/aws/iam/principals.js +26 -26
  316. package/lib/aws/iam/private/assume-role-policy.js +2 -3
  317. package/lib/aws/iam/private/comparable-principal.js +2 -3
  318. package/lib/aws/iam/private/immutable-role.d.ts +2 -1
  319. package/lib/aws/iam/private/immutable-role.js +3 -3
  320. package/lib/aws/iam/private/imported-role.d.ts +1 -1
  321. package/lib/aws/iam/private/imported-role.js +3 -3
  322. package/lib/aws/iam/private/merge-statements.js +2 -3
  323. package/lib/aws/iam/private/util.js +4 -4
  324. package/lib/aws/iam/role.js +1 -1
  325. package/lib/aws/iam/saml-provider.d.ts +1 -1
  326. package/lib/aws/iam/saml-provider.js +6 -6
  327. package/lib/aws/iam/unknown-principal.js +1 -1
  328. package/lib/aws/iam/utils.js +2 -3
  329. package/lib/aws/index.d.ts +1 -0
  330. package/lib/aws/index.js +4 -1
  331. package/lib/aws/network/simple-ipv4-vpc.js +5 -5
  332. package/lib/aws/network/subnet-group.js +3 -3
  333. package/lib/aws/network/subnet.d.ts +1 -1
  334. package/lib/aws/network/subnet.js +7 -7
  335. package/lib/aws/notify/archive.js +3 -2
  336. package/lib/aws/notify/connection.js +5 -4
  337. package/lib/aws/notify/event-bus.js +5 -4
  338. package/lib/aws/notify/event-pattern.js +3 -3
  339. package/lib/aws/notify/index.js +3 -1
  340. package/lib/aws/notify/input.js +4 -3
  341. package/lib/aws/notify/kinesis-stream.js +3 -2
  342. package/lib/aws/notify/on-event-options.js +2 -1
  343. package/lib/aws/notify/queue-config.generated.d.ts +18 -11
  344. package/lib/aws/notify/queue-config.generated.js +1 -1
  345. package/lib/aws/notify/queue-policy.js +1 -1
  346. package/lib/aws/notify/queue.js +1 -1
  347. package/lib/aws/notify/resource-policy.js +1 -1
  348. package/lib/aws/notify/rule.js +3 -2
  349. package/lib/aws/notify/schedule.js +2 -2
  350. package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
  351. package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
  352. package/lib/aws/notify/target.js +2 -1
  353. package/lib/aws/notify/targets/event-bus.js +1 -1
  354. package/lib/aws/notify/targets/function.js +1 -1
  355. package/lib/aws/notify/targets/log-group.js +2 -2
  356. package/lib/aws/notify/targets/sqs.js +1 -1
  357. package/lib/aws/notify/targets/state-machine.js +1 -1
  358. package/lib/aws/notify/targets/util.d.ts +1 -1
  359. package/lib/aws/notify/targets/util.js +10 -11
  360. package/lib/aws/notify/util.js +4 -4
  361. package/lib/aws/provider-config.generated.d.ts +33 -33
  362. package/lib/aws/provider-config.generated.js +1 -1
  363. package/lib/aws/storage/bucket-notifications.js +1 -1
  364. package/lib/aws/storage/bucket-policy.js +1 -1
  365. package/lib/aws/storage/bucket-source.js +1 -1
  366. package/lib/aws/storage/bucket.d.ts +298 -65
  367. package/lib/aws/storage/bucket.js +548 -225
  368. package/lib/aws/storage/cors-config.generated.d.ts +3 -3
  369. package/lib/aws/storage/cors-config.generated.js +1 -1
  370. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  371. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  372. package/lib/aws/storage/index.d.ts +1 -0
  373. package/lib/aws/storage/index.js +2 -1
  374. package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
  375. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  376. package/lib/aws/storage/notification-targets/function.js +6 -6
  377. package/lib/aws/storage/notification-targets/queue.js +1 -1
  378. package/lib/aws/storage/origin-access-identity.d.ts +1 -1
  379. package/lib/aws/storage/origin-access-identity.js +5 -4
  380. package/lib/aws/storage/parameter-util.d.ts +12 -0
  381. package/lib/aws/storage/parameter-util.js +65 -0
  382. package/lib/aws/storage/parameter.d.ts +526 -0
  383. package/lib/aws/storage/parameter.js +606 -0
  384. package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
  385. package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
  386. package/lib/aws/storage/util.d.ts +25 -3
  387. package/lib/aws/storage/util.js +84 -17
  388. package/lib/aws/storage/website-config.generated.d.ts +5 -5
  389. package/lib/aws/storage/website-config.generated.js +1 -1
  390. package/lib/aws/util.js +2 -3
  391. package/lib/construct-base.d.ts +10 -1
  392. package/lib/construct-base.js +9 -6
  393. package/lib/duration.js +1 -1
  394. package/lib/expiration.d.ts +48 -0
  395. package/lib/expiration.js +68 -0
  396. package/lib/helpers-internal/index.d.ts +1 -0
  397. package/lib/helpers-internal/index.js +7 -0
  398. package/lib/index.d.ts +2 -0
  399. package/lib/index.js +3 -1
  400. package/lib/private/md5.d.ts +4 -0
  401. package/lib/private/md5.js +14 -0
  402. package/lib/private/unique-resource-name.js +3 -4
  403. package/lib/size.js +2 -2
  404. package/lib/stack-base.d.ts +4 -23
  405. package/lib/stack-base.js +9 -30
  406. package/lib/terra-func.d.ts +103 -0
  407. package/lib/terra-func.js +170 -0
  408. package/lib/token.js +5 -5
  409. package/package.json +15 -8
  410. package/bun.lockb +0 -0
@@ -158,7 +158,7 @@ class SimpleIPv4Vpc extends aws_construct_1.AwsConstructBase {
158
158
  // if SingleNatGateway, only create NAT Gateway for first public subnet
159
159
  const createNatGateway = this.natGatewayOption !== NatGatewayOption.SINGLE_NAT_GATEWAY ||
160
160
  i === 0;
161
- const availabilityZone = cdktf_1.Fn.element(this.availabilityZones, i);
161
+ const availabilityZone = this.availabilityZones[i];
162
162
  const publicSubnet = new subnet_1.PublicSubnet(this, `PublicSubnet${i}`, {
163
163
  vpc: this.vpc,
164
164
  availabilityZone,
@@ -194,7 +194,7 @@ class SimpleIPv4Vpc extends aws_construct_1.AwsConstructBase {
194
194
  }
195
195
  createPrivateSubnets(privateIpv4CidrBlock) {
196
196
  for (let i = 0; i < this.azCount; i++) {
197
- const availabilityZone = cdktf_1.Fn.element(this.availabilityZones, i);
197
+ const availabilityZone = this.availabilityZones[i];
198
198
  const rtbIdx = this.privateRouteTables.length >= this.azCount ? i : 0;
199
199
  const privateSubnet = new subnet_1.PrivateSubnet(this, `PrivateSubnet${i}`, {
200
200
  vpc: this.vpc,
@@ -213,7 +213,7 @@ class SimpleIPv4Vpc extends aws_construct_1.AwsConstructBase {
213
213
  }
214
214
  createDataSubnets(dataIpv4CidrBlock) {
215
215
  for (let i = 0; i < this.azCount; i++) {
216
- const availabilityZone = cdktf_1.Fn.element(this.availabilityZones, i);
216
+ const availabilityZone = this.availabilityZones[i];
217
217
  const rtbIdx = this.privateRouteTables.length >= this.azCount ? i : 0;
218
218
  const dataSubnet = new subnet_1.DataSubnet(this, `DataSubnet${i}`, {
219
219
  vpc: this.vpc,
@@ -232,5 +232,5 @@ class SimpleIPv4Vpc extends aws_construct_1.AwsConstructBase {
232
232
  }
233
233
  exports.SimpleIPv4Vpc = SimpleIPv4Vpc;
234
234
  _a = JSII_RTTI_SYMBOL_1;
235
- SimpleIPv4Vpc[_a] = { fqn: "terraconstructs.aws.network.SimpleIPv4Vpc", version: "0.0.10" };
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlwdjQtdnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3NpbXBsZS1pcHY0LXZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQU82QjtBQUM3QixpQ0FBaUM7QUFFakMsb0RBQXVFO0FBRXZFLHFDQUE0RTtBQUM1RSxpREFJd0I7QUFFeEIsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUF5QyxDQUFBO0lBQ3pDLDJFQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFIVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQUczQjtBQXlCRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFhLGFBQWMsU0FBUSxnQ0FBZ0I7SUFHakQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBUUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBR0QsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUdELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdB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R0FBRyxJQUFJLG1CQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixnQkFBZ0I7Z0JBQ2hCLGFBQWEsRUFBRSxVQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0JBQWdCLGdCQUFnQixFQUFFO29CQUM1RCxxQkFBcUIsRUFBRSxNQUFNO29CQUM3QixxQkFBcUIsRUFBRSxVQUFVO2lCQUNsQzthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDOztBQXhPSCxzQ0F5T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIG5hdEdhdGV3YXksXG4gIHJvdXRlVGFibGUsXG4gIGludGVybmV0R2F0ZXdheSxcbiAgZGVmYXVsdFJvdXRlVGFibGUsXG4gIHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgRm4sIExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTmV0d29yaywgTmV0d29ya091dHB1dHMgfSBmcm9tIFwiLi9uZXR3b3JrXCI7XG5pbXBvcnQgeyBQdWJsaWNTdWJuZXQsIFByaXZhdGVTdWJuZXQsIERhdGFTdWJuZXQsIElTdWJuZXQgfSBmcm9tIFwiLi9zdWJuZXRcIjtcbmltcG9ydCB7XG4gIElTdWJuZXRHcm91cCxcbiAgRGJTdWJuZXRHcm91cCxcbiAgRWxhc3RpQ2FjaGVTdWJuZXRHcm91cCxcbn0gZnJvbSBcIi4vc3VibmV0LWdyb3VwXCI7XG5cbmV4cG9ydCBlbnVtIE5hdEdhdGV3YXlPcHRpb24ge1xuICBTSU5HTEVfTkFUX0dBVEVXQVkgPSBcInNpbmdsZS1uYXQtZ2F0ZXdheVwiLFxuICBOQVRfUEVSX0FWQUlMQUJJTElUWV9aT05FID0gXCJuYXQtcGVyLWF2YWlsYWJpbGl0eS16b25lXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSVB2NFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBhdmFpbGFiaWxpdHkgem9uZXMgdG8gdXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBhekNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBOQVQgR2F0ZXdheSBzZXQgdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5hdEdhdGV3YXlPcHRpb24uTkFUX1BFUl9BVkFJTEFCSUxJVFlfWk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgbmF0R2F0ZXdheU9wdGlvbj86IE5hdEdhdGV3YXlPcHRpb247XG4gIC8qKlxuICAgKiBQcm92aXNpb25zIGEgU2VydmljZSBEaXNjb3ZlcnkgUHJpdmF0ZSBETlMgTmFtZXNwYWNlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJuYWxEb21haW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gQVdTIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCBzaW1wbGUgSVB2NCBuZXR3b3JrLlxuICpcbiAqIFNlZSB0aGUgcGFja2FnZS1sZXZlbCBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcGFja2FnZSBmb3IgYW4gb3ZlcnZpZXdcbiAqIG9mIHRoZSB2YXJpb3VzIGRpbWVuc2lvbnMgaW4gd2hpY2ggeW91IGNhbiBjb25maWd1cmUgeW91ciBWUEMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IG5ldHdvcmsgPSBuZXcgbmV0d29yay5TaW1wbGVJUHY0KGF3c1N0YWNrLCBcIm5ldHdvcmtcIiwge1xuICogIGlwdjRDaWRyQmxvY2s6IFwiMTAuMC4wLjAvMTZcIixcbiAqICBpbnRlcm5hbERvbWFpbjogXCJleGFtcGxlLmxvY2FsXCIsXG4gKiB9KTtcbiAqXG4gKiAvLyBBZGQgYSBzdWJuZXQgZ3JvdXAgZm9yIFJEU1xuICogbmV0d29yay5lbmFibGVEYlN1Ym5ldEdyb3VwKCk7XG4gKiBgYGBcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX3ZwY1xuICogQGJlYWNvbi1jbGFzcyBuZXR3b3JrLlNpbXBsZUlQdjRWcGNcbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZUlQdjRWcGMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSU5ldHdvcmsge1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wczogU2ltcGxlSVB2NFByb3BzO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vdXRwdXRzOiBOZXR3b3JrT3V0cHV0cztcbiAgcHVibGljIGdldCBuZXR3b3JrT3V0cHV0cygpOiBOZXR3b3JrT3V0cHV0cyB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dHM7XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgaXB2NENpZHJCbG9jazogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdEdhdGV3YXlPcHRpb246IE5hdEdhdGV3YXlPcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgbmF0R2F0ZXdheXM6IG5hdEdhdGV3YXkuTmF0R2F0ZXdheVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpdmF0ZVJvdXRlVGFibGVzOiByb3V0ZVRhYmxlLlJvdXRlVGFibGVbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGF6Q291bnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBhdmFpbGFiaWxpdHlab25lczogc3RyaW5nW107IC8vIFRva2VuIGFzIFN0cmluZ0xpc3RcbiAgcHJpdmF0ZSByZWFkb25seSB2cGM6IHZwYy5WcGM7XG4gIHB1YmxpYyBnZXQgdnBjSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52cGMuaWQ7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfcHVibGljU3VibmV0czogUHVibGljU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBwdWJsaWNTdWJuZXRzKCk6IElTdWJuZXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3B1YmxpY1N1Ym5ldHM7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpdmF0ZVN1Ym5ldHM6IFByaXZhdGVTdWJuZXRbXSA9IFtdO1xuICBwdWJsaWMgZ2V0IHByaXZhdGVTdWJuZXRzKCk6IElTdWJuZXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVTdWJuZXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTdWJuZXRzOiBEYXRhU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBkYXRhU3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU3VibmV0cztcbiAgfVxuXG4gIHByaXZhdGUgX2RiU3VibmV0R3JvdXA/OiBJU3VibmV0R3JvdXA7XG4gIHB1YmxpYyBnZXQgZGJTdWJuZXRHcm91cCgpOiBJU3VibmV0R3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYlN1Ym5ldEdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWxhc3RpQ2FjaGVTdWJuZXRHcm91cD86IElTdWJuZXRHcm91cDtcbiAgcHVibGljIGdldCBlbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKCk6IElTdWJuZXRHcm91cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXA7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VEaXNjb3ZlcnlOYW1lc3BhY2U6IHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLlNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlO1xuICBwdWJsaWMgZ2V0IHNlcnZpY2VEaXNjb3ZlcnlOYW1lc3BhY2VBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlLmFybjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTaW1wbGVJUHY0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLl9wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuYXpDb3VudCA9IHRoaXMuX3Byb3BzLmF6Q291bnQgPz8gMjtcbiAgICBpZiAodGhpcy5hekNvdW50ID4gNCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXpDb3VudCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0XCIpO1xuICAgIH1cblxuICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXMgPSB0aGlzLnN0YWNrLmF2YWlsYWJpbGl0eVpvbmVzKHRoaXMuYXpDb3VudCk7XG4gICAgdGhpcy5pcHY0Q2lkckJsb2NrID0gdGhpcy5fcHJvcHMuaXB2NENpZHJCbG9jaztcbiAgICB0aGlzLnZwYyA9IG5ldyB2cGMuVnBjKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgY2lkckJsb2NrOiB0aGlzLmlwdjRDaWRyQmxvY2ssXG4gICAgICBlbmFibGVEbnNTdXBwb3J0OiB0cnVlLFxuICAgICAgZW5hYmxlRG5zSG9zdG5hbWVzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaWd3ID0gbmV3IGludGVybmV0R2F0ZXdheS5JbnRlcm5ldEdhdGV3YXkodGhpcywgXCJpZ3dcIiwge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjLmlkLFxuICAgICAgdGFnczoge1xuICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0taWd3YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBhZG9wdCBkZWZhdWx0IHJvdXRlIHRhYmxlIGFuZCBhZGQgdGFnc1xuICAgIG5ldyBkZWZhdWx0Um91dGVUYWJsZS5EZWZhdWx0Um91dGVUYWJsZSh0aGlzLCBcIkRlZmF1bHRSb3V0ZVRhYmxlXCIsIHtcbiAgICAgIGRlZmF1bHRSb3V0ZVRhYmxlSWQ6IHRoaXMudnBjLmRlZmF1bHRSb3V0ZVRhYmxlSWQsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1kZWZhdWx0LXJvdXRlLXRhYmxlYCxcbiAgICAgIH0sXG4gICAgICByb3V0ZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY2lkckJsb2NrOiBcIjAuMC4wLjAvMFwiLFxuICAgICAgICAgIGdhdGV3YXlJZDogaWd3LmlkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMubmF0R2F0ZXdheU9wdGlvbiA9XG4gICAgICB0aGlzLl9wcm9wcy5uYXRHYXRld2F5T3B0aW9uID8/XG4gICAgICBOYXRHYXRld2F5T3B0aW9uLk5BVF9QRVJfQVZBSUxBQklMSVRZX1pPTkU7XG5cbiAgICB0aGlzLmNyZWF0ZVB1YmxpY1N1Ym5ldHMoRm4uY2lkcnN1Ym5ldCh0aGlzLmlwdjRDaWRyQmxvY2ssIDIsIDApKTtcbiAgICB0aGlzLmNyZWF0ZVByaXZhdGVTdWJuZXRzKEZuLmNpZHJzdWJuZXQodGhpcy5pcHY0Q2lkckJsb2NrLCAyLCAxKSk7XG4gICAgdGhpcy5jcmVhdGVEYXRhU3VibmV0cyhGbi5jaWRyc3VibmV0KHRoaXMuaXB2NENpZHJCbG9jaywgMiwgMikpO1xuXG4gICAgdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlID1cbiAgICAgIG5ldyBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZS5TZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJTZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiB0aGlzLl9wcm9wcy5pbnRlcm5hbERvbWFpbixcbiAgICAgICAgICB2cGM6IHRoaXMudnBjLmlkLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUHJpdmF0ZSBETlMgbmFtZXNwYWNlIGZvciAke3RoaXMuZnJpZW5kbHlOYW1lfWAsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXNlcnZpY2UtZGlzY292ZXJ5LW5hbWVzcGFjZWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRzID0ge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjLmlkLFxuICAgICAgcHVibGljU3VibmV0SWRzOiB0aGlzLnB1YmxpY1N1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICBwcml2YXRlU3VibmV0SWRzOiB0aGlzLnByaXZhdGVTdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQuc3VibmV0SWQpLFxuICAgICAgZGF0YVN1Ym5ldElkczogdGhpcy5kYXRhU3VibmV0cy5tYXAoKHN1Ym5ldCkgPT4gc3VibmV0LnN1Ym5ldElkKSxcbiAgICAgIC8vIG9ubHkga25vd24gYXQgc3ludGggdGltZVxuICAgICAgLy8gZXhwbGljaXQgYG51bGxgIHJlcXVpcmVkIHRvIGF2b2lkIHN5bnRheCBlcnJvcnMgd2hlbiB1c2luZyBzdHJpbmdWYWx1ZSAmJiBcInVuZGVmaW5lZFwiXG4gICAgICBkYlN1Ym5ldEdyb3VwOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5kYlN1Ym5ldEdyb3VwPy5ncmlkVVVJRCA/PyBudWxsLFxuICAgICAgfSksXG4gICAgICBlbGFzdGlDYWNoZVN1Ym5ldEdyb3VwOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5lbGFzdGlDYWNoZVN1Ym5ldEdyb3VwPy5ncmlkVVVJRCA/PyBudWxsLFxuICAgICAgfSksXG4gICAgICBzZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlTmFtZTogdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlLm5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVEYlN1Ym5ldEdyb3VwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYlN1Ym5ldEdyb3VwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2RiU3VibmV0R3JvdXAgPSBuZXcgRGJTdWJuZXRHcm91cCh0aGlzLCBcIkRiU3VibmV0R3JvdXBcIiwge1xuICAgICAgc3VibmV0czogdGhpcy5fZGF0YVN1Ym5ldHMsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1kYi1kZWZhdWx0LXN1Ym5ldC1ncm91cGAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZUVsYXN0aUNhY2hlU3VibmV0R3JvdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxhc3RpQ2FjaGVTdWJuZXRHcm91cCA9IG5ldyBFbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiRWxhc3RpQ2FjaGVTdWJuZXRHcm91cFwiLFxuICAgICAge1xuICAgICAgICBzdWJuZXRzOiB0aGlzLl9kYXRhU3VibmV0cyxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1lbGFzdGljYWNoZS1kZWZhdWx0LXN1Ym5ldC1ncm91cGAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1YmxpY1N1Ym5ldHMocHVibGljSXB2NENpZHJCbG9jazogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmF6Q291bnQ7IGkrKykge1xuICAgICAgLy8gaWYgU2luZ2xlTmF0R2F0ZXdheSwgb25seSBjcmVhdGUgTkFUIEdhdGV3YXkgZm9yIGZpcnN0IHB1YmxpYyBzdWJuZXRcbiAgICAgIGNvbnN0IGNyZWF0ZU5hdEdhdGV3YXkgPVxuICAgICAgICB0aGlzLm5hdEdhdGV3YXlPcHRpb24gIT09IE5hdEdhdGV3YXlPcHRpb24uU0lOR0xFX05BVF9HQVRFV0FZIHx8XG4gICAgICAgIGkgPT09IDA7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gRm4uZWxlbWVudCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVzLCBpKTtcbiAgICAgIGNvbnN0IHB1YmxpY1N1Ym5ldCA9IG5ldyBQdWJsaWNTdWJuZXQodGhpcywgYFB1YmxpY1N1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQocHVibGljSXB2NENpZHJCbG9jaywgMiwgaSksXG4gICAgICAgIGRlZmF1bHRSb3V0ZVRhYmxlSWQ6IHRoaXMudnBjLmRlZmF1bHRSb3V0ZVRhYmxlSWQsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tcHVibGljLXN1Ym5ldC0ke2F2YWlsYWJpbGl0eVpvbmV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlTmF0R2F0ZXdheSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoY3JlYXRlTmF0R2F0ZXdheSkge1xuICAgICAgICBjb25zdCBndyA9IHB1YmxpY1N1Ym5ldC5uYXRnYXRld2F5ITtcbiAgICAgICAgLy8gY3JlYXRlIHJvdXRlIHRhYmxlIHBlciBOQVQgZ2F0ZXdheVxuICAgICAgICB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlcy5wdXNoKFxuICAgICAgICAgIG5ldyByb3V0ZVRhYmxlLlJvdXRlVGFibGUodGhpcywgYFByaXZhdGVSb3V0ZVRhYmxlJHtpfWAsIHtcbiAgICAgICAgICAgIHZwY0lkOiB0aGlzLnZwYy5pZCxcbiAgICAgICAgICAgIHJvdXRlOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjaWRyQmxvY2s6IFwiMC4wLjAuMC8wXCIsXG4gICAgICAgICAgICAgICAgbmF0R2F0ZXdheUlkOiBndy5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1wcml2YXRlLXJvdXRlLXRhYmxlLSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LW5hbWVcIjogXCJQdWJsaWNcIixcbiAgICAgICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC10eXBlXCI6IFwiUHVibGljXCIsXG4gICAgICAgICAgICAgIFwia3ViZXJuZXRlcy5pby9yb2xlL2VsYlwiOiBcIjFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubmF0R2F0ZXdheXMucHVzaChndyk7XG4gICAgICB9XG4gICAgICB0aGlzLl9wdWJsaWNTdWJuZXRzLnB1c2gocHVibGljU3VibmV0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVByaXZhdGVTdWJuZXRzKHByaXZhdGVJcHY0Q2lkckJsb2NrOiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXpDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gRm4uZWxlbWVudCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVzLCBpKTtcbiAgICAgIGNvbnN0IHJ0YklkeCA9IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzLmxlbmd0aCA+PSB0aGlzLmF6Q291bnQgPyBpIDogMDtcbiAgICAgIGNvbnN0IHByaXZhdGVTdWJuZXQgPSBuZXcgUHJpdmF0ZVN1Ym5ldCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQocHJpdmF0ZUlwdjRDaWRyQmxvY2ssIDIsIGkpLFxuICAgICAgICByb3V0ZVRhYmxlOiB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlc1tydGJJZHhdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXByaXZhdGUtc3VibmV0LSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtbmFtZVwiOiBcIlByaXZhdGVcIixcbiAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LXR5cGVcIjogXCJQcml2YXRlXCIsXG4gICAgICAgICAgXCJrdWJlcm5ldGVzLmlvL3JvbGUvaW50ZXJuYWwtZWxiXCI6IFwiMVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9wcml2YXRlU3VibmV0cy5wdXNoKHByaXZhdGVTdWJuZXQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGF0YVN1Ym5ldHMoZGF0YUlwdjRDaWRyQmxvY2s6IHN0cmluZykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hekNvdW50OyBpKyspIHtcbiAgICAgIGNvbnN0IGF2YWlsYWJpbGl0eVpvbmUgPSBGbi5lbGVtZW50KHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXMsIGkpO1xuICAgICAgY29uc3QgcnRiSWR4ID0gdGhpcy5wcml2YXRlUm91dGVUYWJsZXMubGVuZ3RoID49IHRoaXMuYXpDb3VudCA/IGkgOiAwO1xuICAgICAgY29uc3QgZGF0YVN1Ym5ldCA9IG5ldyBEYXRhU3VibmV0KHRoaXMsIGBEYXRhU3VibmV0JHtpfWAsIHtcbiAgICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgICAgaXB2NENpZHJCbG9jazogRm4uY2lkcnN1Ym5ldChkYXRhSXB2NENpZHJCbG9jaywgMiwgaSksXG4gICAgICAgIHJvdXRlVGFibGU6IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzW3J0YklkeF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tZGF0YS1zdWJuZXQtJHthdmFpbGFiaWxpdHlab25lfWAsXG4gICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC1uYW1lXCI6IFwiRGF0YVwiLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtdHlwZVwiOiBcIklzb2xhdGVkXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2RhdGFTdWJuZXRzLnB1c2goZGF0YVN1Ym5ldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
235
+ SimpleIPv4Vpc[_a] = { fqn: "terraconstructs.aws.network.SimpleIPv4Vpc", version: "0.0.12" };
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlwdjQtdnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3NpbXBsZS1pcHY0LXZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQU82QjtBQUM3QixpQ0FBaUM7QUFFakMsb0RBQXVFO0FBRXZFLHFDQUE0RTtBQUM1RSxpREFJd0I7QUFFeEIsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUF5QyxDQUFBO0lBQ3pDLDJFQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFIVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQUczQjtBQXlCRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFhLGFBQWMsU0FBUSxnQ0FBZ0I7SUFHakQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBUUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBR0QsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUdELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdB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QUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixnQkFBZ0I7Z0JBQ2hCLGFBQWEsRUFBRSxVQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0JBQWdCLGdCQUFnQixFQUFFO29CQUM1RCxxQkFBcUIsRUFBRSxNQUFNO29CQUM3QixxQkFBcUIsRUFBRSxVQUFVO2lCQUNsQzthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDOztBQXhPSCxzQ0F5T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIG5hdEdhdGV3YXksXG4gIHJvdXRlVGFibGUsXG4gIGludGVybmV0R2F0ZXdheSxcbiAgZGVmYXVsdFJvdXRlVGFibGUsXG4gIHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgRm4sIExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTmV0d29yaywgTmV0d29ya091dHB1dHMgfSBmcm9tIFwiLi9uZXR3b3JrXCI7XG5pbXBvcnQgeyBQdWJsaWNTdWJuZXQsIFByaXZhdGVTdWJuZXQsIERhdGFTdWJuZXQsIElTdWJuZXQgfSBmcm9tIFwiLi9zdWJuZXRcIjtcbmltcG9ydCB7XG4gIElTdWJuZXRHcm91cCxcbiAgRGJTdWJuZXRHcm91cCxcbiAgRWxhc3RpQ2FjaGVTdWJuZXRHcm91cCxcbn0gZnJvbSBcIi4vc3VibmV0LWdyb3VwXCI7XG5cbmV4cG9ydCBlbnVtIE5hdEdhdGV3YXlPcHRpb24ge1xuICBTSU5HTEVfTkFUX0dBVEVXQVkgPSBcInNpbmdsZS1uYXQtZ2F0ZXdheVwiLFxuICBOQVRfUEVSX0FWQUlMQUJJTElUWV9aT05FID0gXCJuYXQtcGVyLWF2YWlsYWJpbGl0eS16b25lXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSVB2NFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBhdmFpbGFiaWxpdHkgem9uZXMgdG8gdXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBhekNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBOQVQgR2F0ZXdheSBzZXQgdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5hdEdhdGV3YXlPcHRpb24uTkFUX1BFUl9BVkFJTEFCSUxJVFlfWk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgbmF0R2F0ZXdheU9wdGlvbj86IE5hdEdhdGV3YXlPcHRpb247XG4gIC8qKlxuICAgKiBQcm92aXNpb25zIGEgU2VydmljZSBEaXNjb3ZlcnkgUHJpdmF0ZSBETlMgTmFtZXNwYWNlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJuYWxEb21haW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gQVdTIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCBzaW1wbGUgSVB2NCBuZXR3b3JrLlxuICpcbiAqIFNlZSB0aGUgcGFja2FnZS1sZXZlbCBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcGFja2FnZSBmb3IgYW4gb3ZlcnZpZXdcbiAqIG9mIHRoZSB2YXJpb3VzIGRpbWVuc2lvbnMgaW4gd2hpY2ggeW91IGNhbiBjb25maWd1cmUgeW91ciBWUEMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IG5ldHdvcmsgPSBuZXcgbmV0d29yay5TaW1wbGVJUHY0KGF3c1N0YWNrLCBcIm5ldHdvcmtcIiwge1xuICogIGlwdjRDaWRyQmxvY2s6IFwiMTAuMC4wLjAvMTZcIixcbiAqICBpbnRlcm5hbERvbWFpbjogXCJleGFtcGxlLmxvY2FsXCIsXG4gKiB9KTtcbiAqXG4gKiAvLyBBZGQgYSBzdWJuZXQgZ3JvdXAgZm9yIFJEU1xuICogbmV0d29yay5lbmFibGVEYlN1Ym5ldEdyb3VwKCk7XG4gKiBgYGBcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX3ZwY1xuICogQGJlYWNvbi1jbGFzcyBuZXR3b3JrLlNpbXBsZUlQdjRWcGNcbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZUlQdjRWcGMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSU5ldHdvcmsge1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wczogU2ltcGxlSVB2NFByb3BzO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vdXRwdXRzOiBOZXR3b3JrT3V0cHV0cztcbiAgcHVibGljIGdldCBuZXR3b3JrT3V0cHV0cygpOiBOZXR3b3JrT3V0cHV0cyB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dHM7XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgaXB2NENpZHJCbG9jazogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdEdhdGV3YXlPcHRpb246IE5hdEdhdGV3YXlPcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgbmF0R2F0ZXdheXM6IG5hdEdhdGV3YXkuTmF0R2F0ZXdheVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpdmF0ZVJvdXRlVGFibGVzOiByb3V0ZVRhYmxlLlJvdXRlVGFibGVbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGF6Q291bnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBhdmFpbGFiaWxpdHlab25lczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgdnBjOiB2cGMuVnBjO1xuICBwdWJsaWMgZ2V0IHZwY0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudnBjLmlkO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3B1YmxpY1N1Ym5ldHM6IFB1YmxpY1N1Ym5ldFtdID0gW107XG4gIHB1YmxpYyBnZXQgcHVibGljU3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9wdWJsaWNTdWJuZXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByaXZhdGVTdWJuZXRzOiBQcml2YXRlU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBwcml2YXRlU3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlU3VibmV0cztcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU3VibmV0czogRGF0YVN1Ym5ldFtdID0gW107XG4gIHB1YmxpYyBnZXQgZGF0YVN1Ym5ldHMoKTogSVN1Ym5ldFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVN1Ym5ldHM7XG4gIH1cblxuICBwcml2YXRlIF9kYlN1Ym5ldEdyb3VwPzogSVN1Ym5ldEdyb3VwO1xuICBwdWJsaWMgZ2V0IGRiU3VibmV0R3JvdXAoKTogSVN1Ym5ldEdyb3VwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGJTdWJuZXRHcm91cDtcbiAgfVxuXG4gIHByaXZhdGUgX2VsYXN0aUNhY2hlU3VibmV0R3JvdXA/OiBJU3VibmV0R3JvdXA7XG4gIHB1YmxpYyBnZXQgZWxhc3RpQ2FjaGVTdWJuZXRHcm91cCgpOiBJU3VibmV0R3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9lbGFzdGlDYWNoZVN1Ym5ldEdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlOiBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZS5TZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZTtcbiAgcHVibGljIGdldCBzZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZURpc2NvdmVyeU5hbWVzcGFjZS5hcm47XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2ltcGxlSVB2NFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5fcHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLmF6Q291bnQgPSB0aGlzLl9wcm9wcy5hekNvdW50ID8/IDI7XG4gICAgaWYgKHRoaXMuYXpDb3VudCA+IDQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImF6Q291bnQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNFwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmF2YWlsYWJpbGl0eVpvbmVzID0gdGhpcy5zdGFjay5hdmFpbGFiaWxpdHlab25lcyh0aGlzLmF6Q291bnQpO1xuICAgIHRoaXMuaXB2NENpZHJCbG9jayA9IHRoaXMuX3Byb3BzLmlwdjRDaWRyQmxvY2s7XG4gICAgdGhpcy52cGMgPSBuZXcgdnBjLlZwYyh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGNpZHJCbG9jazogdGhpcy5pcHY0Q2lkckJsb2NrLFxuICAgICAgZW5hYmxlRG5zU3VwcG9ydDogdHJ1ZSxcbiAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlndyA9IG5ldyBpbnRlcm5ldEdhdGV3YXkuSW50ZXJuZXRHYXRld2F5KHRoaXMsIFwiaWd3XCIsIHtcbiAgICAgIHZwY0lkOiB0aGlzLnZwYy5pZCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LWlnd2AsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gYWRvcHQgZGVmYXVsdCByb3V0ZSB0YWJsZSBhbmQgYWRkIHRhZ3NcbiAgICBuZXcgZGVmYXVsdFJvdXRlVGFibGUuRGVmYXVsdFJvdXRlVGFibGUodGhpcywgXCJEZWZhdWx0Um91dGVUYWJsZVwiLCB7XG4gICAgICBkZWZhdWx0Um91dGVUYWJsZUlkOiB0aGlzLnZwYy5kZWZhdWx0Um91dGVUYWJsZUlkLFxuICAgICAgdGFnczoge1xuICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tZGVmYXVsdC1yb3V0ZS10YWJsZWAsXG4gICAgICB9LFxuICAgICAgcm91dGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNpZHJCbG9jazogXCIwLjAuMC4wLzBcIixcbiAgICAgICAgICBnYXRld2F5SWQ6IGlndy5pZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hdEdhdGV3YXlPcHRpb24gPVxuICAgICAgdGhpcy5fcHJvcHMubmF0R2F0ZXdheU9wdGlvbiA/P1xuICAgICAgTmF0R2F0ZXdheU9wdGlvbi5OQVRfUEVSX0FWQUlMQUJJTElUWV9aT05FO1xuXG4gICAgdGhpcy5jcmVhdGVQdWJsaWNTdWJuZXRzKEZuLmNpZHJzdWJuZXQodGhpcy5pcHY0Q2lkckJsb2NrLCAyLCAwKSk7XG4gICAgdGhpcy5jcmVhdGVQcml2YXRlU3VibmV0cyhGbi5jaWRyc3VibmV0KHRoaXMuaXB2NENpZHJCbG9jaywgMiwgMSkpO1xuICAgIHRoaXMuY3JlYXRlRGF0YVN1Ym5ldHMoRm4uY2lkcnN1Ym5ldCh0aGlzLmlwdjRDaWRyQmxvY2ssIDIsIDIpKTtcblxuICAgIHRoaXMuc2VydmljZURpc2NvdmVyeU5hbWVzcGFjZSA9XG4gICAgICBuZXcgc2VydmljZURpc2NvdmVyeVByaXZhdGVEbnNOYW1lc3BhY2UuU2VydmljZURpc2NvdmVyeVByaXZhdGVEbnNOYW1lc3BhY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiU2VydmljZURpc2NvdmVyeU5hbWVzcGFjZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogdGhpcy5fcHJvcHMuaW50ZXJuYWxEb21haW4sXG4gICAgICAgICAgdnBjOiB0aGlzLnZwYy5pZCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYFByaXZhdGUgRE5TIG5hbWVzcGFjZSBmb3IgJHt0aGlzLmZyaWVuZGx5TmFtZX1gLFxuICAgICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1zZXJ2aWNlLWRpc2NvdmVyeS1uYW1lc3BhY2VgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgdGhpcy5fb3V0cHV0cyA9IHtcbiAgICAgIHZwY0lkOiB0aGlzLnZwYy5pZCxcbiAgICAgIHB1YmxpY1N1Ym5ldElkczogdGhpcy5wdWJsaWNTdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQuc3VibmV0SWQpLFxuICAgICAgcHJpdmF0ZVN1Ym5ldElkczogdGhpcy5wcml2YXRlU3VibmV0cy5tYXAoKHN1Ym5ldCkgPT4gc3VibmV0LnN1Ym5ldElkKSxcbiAgICAgIGRhdGFTdWJuZXRJZHM6IHRoaXMuZGF0YVN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICAvLyBvbmx5IGtub3duIGF0IHN5bnRoIHRpbWVcbiAgICAgIC8vIGV4cGxpY2l0IGBudWxsYCByZXF1aXJlZCB0byBhdm9pZCBzeW50YXggZXJyb3JzIHdoZW4gdXNpbmcgc3RyaW5nVmFsdWUgJiYgXCJ1bmRlZmluZWRcIlxuICAgICAgZGJTdWJuZXRHcm91cDogTGF6eS5hbnlWYWx1ZSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuZGJTdWJuZXRHcm91cD8uZ3JpZFVVSUQgPz8gbnVsbCxcbiAgICAgIH0pLFxuICAgICAgZWxhc3RpQ2FjaGVTdWJuZXRHcm91cDogTGF6eS5hbnlWYWx1ZSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuZWxhc3RpQ2FjaGVTdWJuZXRHcm91cD8uZ3JpZFVVSUQgPz8gbnVsbCxcbiAgICAgIH0pLFxuICAgICAgc2VydmljZURpc2NvdmVyeU5hbWVzcGFjZU5hbWU6IHRoaXMuc2VydmljZURpc2NvdmVyeU5hbWVzcGFjZS5uYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlRGJTdWJuZXRHcm91cCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGJTdWJuZXRHcm91cCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9kYlN1Ym5ldEdyb3VwID0gbmV3IERiU3VibmV0R3JvdXAodGhpcywgXCJEYlN1Ym5ldEdyb3VwXCIsIHtcbiAgICAgIHN1Ym5ldHM6IHRoaXMuX2RhdGFTdWJuZXRzLFxuICAgICAgdGFnczoge1xuICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tZGItZGVmYXVsdC1zdWJuZXQtZ3JvdXBgLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVFbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9lbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXAgPSBuZXcgRWxhc3RpQ2FjaGVTdWJuZXRHcm91cChcbiAgICAgIHRoaXMsXG4gICAgICBcIkVsYXN0aUNhY2hlU3VibmV0R3JvdXBcIixcbiAgICAgIHtcbiAgICAgICAgc3VibmV0czogdGhpcy5fZGF0YVN1Ym5ldHMsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tZWxhc3RpY2FjaGUtZGVmYXVsdC1zdWJuZXQtZ3JvdXBgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaWNTdWJuZXRzKHB1YmxpY0lwdjRDaWRyQmxvY2s6IHN0cmluZykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hekNvdW50OyBpKyspIHtcbiAgICAgIC8vIGlmIFNpbmdsZU5hdEdhdGV3YXksIG9ubHkgY3JlYXRlIE5BVCBHYXRld2F5IGZvciBmaXJzdCBwdWJsaWMgc3VibmV0XG4gICAgICBjb25zdCBjcmVhdGVOYXRHYXRld2F5ID1cbiAgICAgICAgdGhpcy5uYXRHYXRld2F5T3B0aW9uICE9PSBOYXRHYXRld2F5T3B0aW9uLlNJTkdMRV9OQVRfR0FURVdBWSB8fFxuICAgICAgICBpID09PSAwO1xuICAgICAgY29uc3QgYXZhaWxhYmlsaXR5Wm9uZSA9IHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXNbaV07XG4gICAgICBjb25zdCBwdWJsaWNTdWJuZXQgPSBuZXcgUHVibGljU3VibmV0KHRoaXMsIGBQdWJsaWNTdWJuZXQke2l9YCwge1xuICAgICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lLFxuICAgICAgICBpcHY0Q2lkckJsb2NrOiBGbi5jaWRyc3VibmV0KHB1YmxpY0lwdjRDaWRyQmxvY2ssIDIsIGkpLFxuICAgICAgICBkZWZhdWx0Um91dGVUYWJsZUlkOiB0aGlzLnZwYy5kZWZhdWx0Um91dGVUYWJsZUlkLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXB1YmxpYy1zdWJuZXQtJHthdmFpbGFiaWxpdHlab25lfWAsXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZU5hdEdhdGV3YXksXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNyZWF0ZU5hdEdhdGV3YXkpIHtcbiAgICAgICAgY29uc3QgZ3cgPSBwdWJsaWNTdWJuZXQubmF0Z2F0ZXdheSE7XG4gICAgICAgIC8vIGNyZWF0ZSByb3V0ZSB0YWJsZSBwZXIgTkFUIGdhdGV3YXlcbiAgICAgICAgdGhpcy5wcml2YXRlUm91dGVUYWJsZXMucHVzaChcbiAgICAgICAgICBuZXcgcm91dGVUYWJsZS5Sb3V0ZVRhYmxlKHRoaXMsIGBQcml2YXRlUm91dGVUYWJsZSR7aX1gLCB7XG4gICAgICAgICAgICB2cGNJZDogdGhpcy52cGMuaWQsXG4gICAgICAgICAgICByb3V0ZTogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2lkckJsb2NrOiBcIjAuMC4wLjAvMFwiLFxuICAgICAgICAgICAgICAgIG5hdEdhdGV3YXlJZDogZ3cuaWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tcHJpdmF0ZS1yb3V0ZS10YWJsZS0ke2F2YWlsYWJpbGl0eVpvbmV9YCxcbiAgICAgICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC1uYW1lXCI6IFwiUHVibGljXCIsXG4gICAgICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtdHlwZVwiOiBcIlB1YmxpY1wiLFxuICAgICAgICAgICAgICBcImt1YmVybmV0ZXMuaW8vcm9sZS9lbGJcIjogXCIxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm5hdEdhdGV3YXlzLnB1c2goZ3cpO1xuICAgICAgfVxuICAgICAgdGhpcy5fcHVibGljU3VibmV0cy5wdXNoKHB1YmxpY1N1Ym5ldCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQcml2YXRlU3VibmV0cyhwcml2YXRlSXB2NENpZHJCbG9jazogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmF6Q291bnQ7IGkrKykge1xuICAgICAgY29uc3QgYXZhaWxhYmlsaXR5Wm9uZSA9IHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXNbaV07XG4gICAgICBjb25zdCBydGJJZHggPSB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlcy5sZW5ndGggPj0gdGhpcy5hekNvdW50ID8gaSA6IDA7XG4gICAgICBjb25zdCBwcml2YXRlU3VibmV0ID0gbmV3IFByaXZhdGVTdWJuZXQodGhpcywgYFByaXZhdGVTdWJuZXQke2l9YCwge1xuICAgICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lLFxuICAgICAgICBpcHY0Q2lkckJsb2NrOiBGbi5jaWRyc3VibmV0KHByaXZhdGVJcHY0Q2lkckJsb2NrLCAyLCBpKSxcbiAgICAgICAgcm91dGVUYWJsZTogdGhpcy5wcml2YXRlUm91dGVUYWJsZXNbcnRiSWR4XSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1wcml2YXRlLXN1Ym5ldC0ke2F2YWlsYWJpbGl0eVpvbmV9YCxcbiAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LW5hbWVcIjogXCJQcml2YXRlXCIsXG4gICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC10eXBlXCI6IFwiUHJpdmF0ZVwiLFxuICAgICAgICAgIFwia3ViZXJuZXRlcy5pby9yb2xlL2ludGVybmFsLWVsYlwiOiBcIjFcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fcHJpdmF0ZVN1Ym5ldHMucHVzaChwcml2YXRlU3VibmV0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURhdGFTdWJuZXRzKGRhdGFJcHY0Q2lkckJsb2NrOiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXpDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gdGhpcy5hdmFpbGFiaWxpdHlab25lc1tpXTtcbiAgICAgIGNvbnN0IHJ0YklkeCA9IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzLmxlbmd0aCA+PSB0aGlzLmF6Q291bnQgPyBpIDogMDtcbiAgICAgIGNvbnN0IGRhdGFTdWJuZXQgPSBuZXcgRGF0YVN1Ym5ldCh0aGlzLCBgRGF0YVN1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQoZGF0YUlwdjRDaWRyQmxvY2ssIDIsIGkpLFxuICAgICAgICByb3V0ZVRhYmxlOiB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlc1tydGJJZHhdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LWRhdGEtc3VibmV0LSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtbmFtZVwiOiBcIkRhdGFcIixcbiAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LXR5cGVcIjogXCJJc29sYXRlZFwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9kYXRhU3VibmV0cy5wdXNoKGRhdGFTdWJuZXQpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -36,7 +36,7 @@ class BaseSubnetGroup extends aws_construct_1.AwsConstructBase {
36
36
  }
37
37
  exports.BaseSubnetGroup = BaseSubnetGroup;
38
38
  _a = JSII_RTTI_SYMBOL_1;
39
- BaseSubnetGroup[_a] = { fqn: "terraconstructs.aws.network.BaseSubnetGroup", version: "0.0.10" };
39
+ BaseSubnetGroup[_a] = { fqn: "terraconstructs.aws.network.BaseSubnetGroup", version: "0.0.12" };
40
40
  class DbSubnetGroup extends BaseSubnetGroup {
41
41
  get arn() {
42
42
  return this.resource.arn;
@@ -52,7 +52,7 @@ class DbSubnetGroup extends BaseSubnetGroup {
52
52
  }
53
53
  exports.DbSubnetGroup = DbSubnetGroup;
54
54
  _b = JSII_RTTI_SYMBOL_1;
55
- DbSubnetGroup[_b] = { fqn: "terraconstructs.aws.network.DbSubnetGroup", version: "0.0.10" };
55
+ DbSubnetGroup[_b] = { fqn: "terraconstructs.aws.network.DbSubnetGroup", version: "0.0.12" };
56
56
  class ElastiCacheSubnetGroup extends BaseSubnetGroup {
57
57
  get arn() {
58
58
  return this.resource.arn;
@@ -68,5 +68,5 @@ class ElastiCacheSubnetGroup extends BaseSubnetGroup {
68
68
  }
69
69
  exports.ElastiCacheSubnetGroup = ElastiCacheSubnetGroup;
70
70
  _c = JSII_RTTI_SYMBOL_1;
71
- ElastiCacheSubnetGroup[_c] = { fqn: "terraconstructs.aws.network.ElastiCacheSubnetGroup", version: "0.0.10" };
71
+ ElastiCacheSubnetGroup[_c] = { fqn: "terraconstructs.aws.network.ElastiCacheSubnetGroup", version: "0.0.12" };
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3N1Ym5ldC1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUk2QjtBQUU3QixvREFJMEI7QUFHMUIsSUFBWSxlQVNYO0FBVEQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsNEJBQVMsQ0FBQTtJQUNUOztPQUVHO0lBQ0gsOENBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVRXLGVBQWUsK0JBQWYsZUFBZSxRQVMxQjtBQWFELE1BQXNCLGVBQ3BCLFNBQVEsZ0NBQWdCO0lBT3hCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsSUFBcUIsRUFDckIsS0FBdUI7UUFFdkIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDOztBQTlCSCwwQ0ErQkM7OztBQUVELE1BQWEsYUFBYyxTQUFRLGVBQWU7SUFFaEQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDeEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBWkgsc0NBYUM7OztBQUVELE1BQWEsc0JBQXVCLFNBQVEsZUFBZTtJQUV6RCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFDRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFzQixDQUFDLHNCQUFzQixDQUMvRCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7QUFoQkgsd0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZGJTdWJuZXRHcm91cCxcbiAgZWxhc3RpY2FjaGVTdWJuZXRHcm91cCxcbiAgLy8gZG9jZGJTdWJuZXRHcm91cCwgLy8gbm90IG5lZWRlZCwgcmRzIGFuZCBkb2NkYiBzaGFyZSBzdWJuZXQgZ3JvdXBzXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG4gIElBd3NDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJU3VibmV0IH0gZnJvbSBcIi4vc3VibmV0XCI7XG5cbmV4cG9ydCBlbnVtIFN1Ym5ldEdyb3VwVHlwZSB7XG4gIC8qKlxuICAgKiBSRFMgYW5kIERvY0RiIFN1Ym5ldEdyb3VwXG4gICAqL1xuICBEQiA9IFwiREJcIixcbiAgLyoqXG4gICAqIEVsYXN0aUNhY2hlIFN1Ym5ldEdyb3VwXG4gICAqL1xuICBFTEFTVElDQUNIRSA9IFwiRUxBU1RJQ0FDSEVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRHcm91cFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICByZWFkb25seSBzdWJuZXRzOiBJU3VibmV0W107XG4gIHJlYWRvbmx5IHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdWJuZXRHcm91cCBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICByZWFkb25seSB0eXBlOiBTdWJuZXRHcm91cFR5cGU7XG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICByZWFkb25seSBzdWJuZXRzOiBJU3VibmV0W107XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU3VibmV0R3JvdXBcbiAgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSVN1Ym5ldEdyb3VwXG57XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBTdWJuZXRHcm91cFR5cGU7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJuZXRzOiBJU3VibmV0W107XG4gIHB1YmxpYyBnZXQgc3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9zdWJuZXRzO1xuICB9XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgYXJuKCk6IHN0cmluZztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBhcm46IHRoaXMuYXJuLFxuICAgICAgc3VibmV0czogdGhpcy5zdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQub3V0cHV0cyksXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0eXBlOiBTdWJuZXRHcm91cFR5cGUsXG4gICAgcHJvcHM6IFN1Ym5ldEdyb3VwUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50YWdzID0gcHJvcHMudGFncztcbiAgICB0aGlzLl9zdWJuZXRzID0gcHJvcHMuc3VibmV0cztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGJTdWJuZXRHcm91cCBleHRlbmRzIEJhc2VTdWJuZXRHcm91cCB7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogZGJTdWJuZXRHcm91cC5EYlN1Ym5ldEdyb3VwO1xuICBwdWJsaWMgZ2V0IGFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmFybjtcbiAgfVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3VibmV0R3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgU3VibmV0R3JvdXBUeXBlLkRCLCBwcm9wcyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBkYlN1Ym5ldEdyb3VwLkRiU3VibmV0R3JvdXAodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB0aGlzLmdyaWRVVUlELFxuICAgICAgc3VibmV0SWRzOiB0aGlzLnN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVsYXN0aUNhY2hlU3VibmV0R3JvdXAgZXh0ZW5kcyBCYXNlU3VibmV0R3JvdXAge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGVsYXN0aWNhY2hlU3VibmV0R3JvdXAuRWxhc3RpY2FjaGVTdWJuZXRHcm91cDtcbiAgcHVibGljIGdldCBhcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN1Ym5ldEdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFN1Ym5ldEdyb3VwVHlwZS5FTEFTVElDQUNIRSwgcHJvcHMpO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgZWxhc3RpY2FjaGVTdWJuZXRHcm91cC5FbGFzdGljYWNoZVN1Ym5ldEdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgc3VibmV0SWRzOiB0aGlzLnN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICAgIHRhZ3M6IHRoaXMudGFncyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { vpc, subnet, natGateway, routeTable } from "@cdktf/provider-aws";
2
2
  import { Construct } from "constructs";
3
- import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "../";
3
+ import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "../aws-construct";
4
4
  export declare enum SubnetType {
5
5
  PUBLIC = "PUBLIC",
6
6
  PRIVATE = "PRIVATE",
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.DataSubnet = exports.PrivateSubnet = exports.PublicSubnet = exports.BaseSubnet = exports.SubnetType = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const provider_aws_1 = require("@cdktf/provider-aws");
7
- const __1 = require("../");
7
+ const aws_construct_1 = require("../aws-construct");
8
8
  var SubnetType;
9
9
  (function (SubnetType) {
10
10
  SubnetType["PUBLIC"] = "PUBLIC";
11
11
  SubnetType["PRIVATE"] = "PRIVATE";
12
12
  SubnetType["DATA"] = "DATA";
13
13
  })(SubnetType || (exports.SubnetType = SubnetType = {}));
14
- class BaseSubnet extends __1.AwsConstructBase {
14
+ class BaseSubnet extends aws_construct_1.AwsConstructBase {
15
15
  get availabilityZone() {
16
16
  return this._availabilityZone;
17
17
  }
@@ -49,7 +49,7 @@ class BaseSubnet extends __1.AwsConstructBase {
49
49
  }
50
50
  exports.BaseSubnet = BaseSubnet;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- BaseSubnet[_a] = { fqn: "terraconstructs.aws.network.BaseSubnet", version: "0.0.10" };
52
+ BaseSubnet[_a] = { fqn: "terraconstructs.aws.network.BaseSubnet", version: "0.0.12" };
53
53
  class PublicSubnet extends BaseSubnet {
54
54
  constructor(scope, id, props) {
55
55
  super(scope, id, SubnetType.PUBLIC, props);
@@ -83,7 +83,7 @@ class PublicSubnet extends BaseSubnet {
83
83
  }
84
84
  exports.PublicSubnet = PublicSubnet;
85
85
  _b = JSII_RTTI_SYMBOL_1;
86
- PublicSubnet[_b] = { fqn: "terraconstructs.aws.network.PublicSubnet", version: "0.0.10" };
86
+ PublicSubnet[_b] = { fqn: "terraconstructs.aws.network.PublicSubnet", version: "0.0.12" };
87
87
  class PrivateSubnet extends BaseSubnet {
88
88
  constructor(scope, id, props) {
89
89
  super(scope, id, SubnetType.PRIVATE, {
@@ -101,7 +101,7 @@ class PrivateSubnet extends BaseSubnet {
101
101
  }
102
102
  exports.PrivateSubnet = PrivateSubnet;
103
103
  _c = JSII_RTTI_SYMBOL_1;
104
- PrivateSubnet[_c] = { fqn: "terraconstructs.aws.network.PrivateSubnet", version: "0.0.10" };
104
+ PrivateSubnet[_c] = { fqn: "terraconstructs.aws.network.PrivateSubnet", version: "0.0.12" };
105
105
  class DataSubnet extends BaseSubnet {
106
106
  constructor(scope, id, props) {
107
107
  super(scope, id, SubnetType.DATA, {
@@ -119,5 +119,5 @@ class DataSubnet extends BaseSubnet {
119
119
  }
120
120
  exports.DataSubnet = DataSubnet;
121
121
  _d = JSII_RTTI_SYMBOL_1;
122
- DataSubnet[_d] = { fqn: "terraconstructs.aws.network.DataSubnet", version: "0.0.10" };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3N1Ym5ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQVE2QjtBQUU3QiwyQkFBeUU7QUFFekUsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLCtCQUFpQixDQUFBO0lBQ2pCLGlDQUFtQixDQUFBO0lBQ25CLDJCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsVUFBVSwwQkFBVixVQUFVLFFBSXJCO0FBMENELE1BQXNCLFVBQVcsU0FBUSxvQkFBZ0I7SUFHdkQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBR0QsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsSUFBZ0IsRUFDaEIsS0FBc0I7UUFFdEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlC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QVUsQ0FBQyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7QUFuQkgsc0NBb0JDOzs7QUFFRCxNQUFhLFVBQVcsU0FBUSxVQUFVO0lBR3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRTtZQUNoQyxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxvQ0FBcUIsQ0FBQyxxQkFBcUIsQ0FDN0MsSUFBSSxFQUNKLHVCQUF1QixFQUN2QjtZQUNFLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUM1QixDQUFDOztBQW5CSCxnQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIHN1Ym5ldCxcbiAgbmF0R2F0ZXdheSxcbiAgZWlwLFxuICBkYXRhQXdzRWlwLFxuICByb3V0ZVRhYmxlLFxuICByb3V0ZVRhYmxlQXNzb2NpYXRpb24sXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMsIElBd3NDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vXCI7XG5cbmV4cG9ydCBlbnVtIFN1Ym5ldFR5cGUge1xuICBQVUJMSUMgPSBcIlBVQkxJQ1wiLFxuICBQUklWQVRFID0gXCJQUklWQVRFXCIsXG4gIERBVEEgPSBcIkRBVEFcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3VibmV0UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIGNyZWF0ZSB0aGUgc3VibmV0IGludG9cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogdnBjLlZwYztcbiAgLyoqXG4gICAqIFRoZSBJUHY0IENJRFIgYmxvY2sgZm9yIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBpcHY0Q2lkckJsb2NrOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmlsaXR5IHpvbmUgZm9yIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHRhZ3MgZm9yIHRoZSBzdWJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3VibmV0IGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIG9mIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZSBmb3IgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgSUQgb2YgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU3VibmV0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElTdWJuZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFN1Ym5ldFR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgcHVibGljIGdldCBhdmFpbGFiaWxpdHlab25lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJpbGl0eVpvbmU7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc3VibmV0SWQ6IHN0cmluZztcbiAgcHVibGljIGdldCBzdWJuZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdWJuZXRJZDtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdnBjOiB2cGMuVnBjO1xuICBwdWJsaWMgZ2V0IHZwY0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudnBjLmlkO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBjaWRyOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgaXB2NENpZHJCbG9jaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNpZHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogdGhpcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgaXB2NENpZHJCbG9jazogdGhpcy5pcHY0Q2lkckJsb2NrLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IHN1Ym5ldC5TdWJuZXQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0eXBlOiBTdWJuZXRUeXBlLFxuICAgIHByb3BzOiBCYXNlU3VibmV0UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudnBjID0gcHJvcHMudnBjO1xuICAgIHRoaXMuY2lkciA9IHByb3BzLmlwdjRDaWRyQmxvY2s7XG4gICAgdGhpcy5fYXZhaWxhYmlsaXR5Wm9uZSA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IHN1Ym5ldC5TdWJuZXQodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICB2cGNJZDogdGhpcy52cGMuaWQsXG4gICAgICBjaWRyQmxvY2s6IHRoaXMuY2lkcixcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHRoaXMuX2F2YWlsYWJpbGl0eVpvbmUsXG4gICAgICBtYXBQdWJsaWNJcE9uTGF1bmNoOiB0aGlzLnR5cGUgPT09IFN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICB9KTtcbiAgICB0aGlzLl9zdWJuZXRJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNTdWJuZXRQcm9wcyBleHRlbmRzIEJhc2VTdWJuZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIE5BVCBnYXRld2F5IGluIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVOYXRHYXRld2F5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBFSVAgYWxsb2NhdGlvbiBJRCB0byB1c2UgZm9yIHRoZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyBFSVAgaXMgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZWlwQWxsb2NhdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIFJvdXRlIFRhYmxlIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Um91dGVUYWJsZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaWNTdWJuZXQgZXh0ZW5kcyBCYXNlU3VibmV0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBuYXRHYXRld2F5PzogbmF0R2F0ZXdheS5OYXRHYXRld2F5O1xuICBwcml2YXRlIHJlYWRvbmx5IGVpcD86IGVpcC5FaXAgfCBkYXRhQXdzRWlwLkRhdGFBd3NFaXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1YmxpY1N1Ym5ldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBTdWJuZXRUeXBlLlBVQkxJQywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmNyZWF0ZU5hdEdhdGV3YXkpIHtcbiAgICAgIGlmIChwcm9wcy5laXBBbGxvY2F0aW9uSWQgJiYgcHJvcHMuZWlwQWxsb2NhdGlvbklkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5laXAgPSBuZXcgZGF0YUF3c0VpcC5EYXRhQXdzRWlwKHRoaXMsIFwiRWlwXCIsIHtcbiAgICAgICAgICBpZDogcHJvcHMuZWlwQWxsb2NhdGlvbklkLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBwcm9wcy50YWdzPy5OYW1lID8/IHRoaXMuZnJpZW5kbHlOYW1lO1xuICAgICAgICB0aGlzLmVpcCA9IG5ldyBlaXAuRWlwKHRoaXMsIFwiRWlwXCIsIHtcbiAgICAgICAgICBkb21haW46IFwidnBjXCIsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgTmFtZTogYCR7bmFtZX0tbmF0LWdhdGV3YXlgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm5hdEdhdGV3YXkgPSBuZXcgbmF0R2F0ZXdheS5OYXRHYXRld2F5KHRoaXMsIFwiTmF0R2F0ZXdheVwiLCB7XG4gICAgICAgIGFsbG9jYXRpb25JZDogdGhpcy5laXAuaWQsXG4gICAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7cHJvcHMudGFncz8uTmFtZSA/PyB0aGlzLmZyaWVuZGx5TmFtZX0tbmF0LWdhdGV3YXlgLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbmF0Z2F0ZXdheSgpOiBuYXRHYXRld2F5Lk5hdEdhdGV3YXkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm5hdEdhdGV3YXk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlU3VibmV0UHJvcHMgZXh0ZW5kcyBCYXNlU3VibmV0UHJvcHMge1xuICByZWFkb25seSByb3V0ZVRhYmxlOiByb3V0ZVRhYmxlLlJvdXRlVGFibGU7XG59XG5cbmV4cG9ydCBjbGFzcyBQcml2YXRlU3VibmV0IGV4dGVuZHMgQmFzZVN1Ym5ldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVUYWJsZTogcm91dGVUYWJsZS5Sb3V0ZVRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcml2YXRlU3VibmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFN1Ym5ldFR5cGUuUFJJVkFURSwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZVRhYmxlID0gcHJvcHMucm91dGVUYWJsZTtcbiAgICBuZXcgcm91dGVUYWJsZUFzc29jaWF0aW9uLlJvdXRlVGFibGVBc3NvY2lhdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJvdXRlVGFibGVBc3NvY2lhdGlvblwiLFxuICAgICAge1xuICAgICAgICByb3V0ZVRhYmxlSWQ6IHByb3BzLnJvdXRlVGFibGUuaWQsXG4gICAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcm91dGVUYWJsZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVUYWJsZS5pZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YVN1Ym5ldCBleHRlbmRzIEJhc2VTdWJuZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlVGFibGU6IHJvdXRlVGFibGUuUm91dGVUYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJpdmF0ZVN1Ym5ldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBTdWJuZXRUeXBlLkRBVEEsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMucm91dGVUYWJsZSA9IHByb3BzLnJvdXRlVGFibGU7XG4gICAgbmV3IHJvdXRlVGFibGVBc3NvY2lhdGlvbi5Sb3V0ZVRhYmxlQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJSb3V0ZVRhYmxlQXNzb2NpYXRpb25cIixcbiAgICAgIHtcbiAgICAgICAgcm91dGVUYWJsZUlkOiBwcm9wcy5yb3V0ZVRhYmxlLmlkLFxuICAgICAgICBzdWJuZXRJZDogdGhpcy5zdWJuZXRJZCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJvdXRlVGFibGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJvdXRlVGFibGUuaWQ7XG4gIH1cbn1cbiJdfQ==
122
+ DataSubnet[_d] = { fqn: "terraconstructs.aws.network.DataSubnet", version: "0.0.12" };
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3N1Ym5ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQVE2QjtBQUU3QixvREFJMEI7QUFFMUIsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLCtCQUFpQixDQUFBO0lBQ2pCLGlDQUFtQixDQUFBO0lBQ25CLDJCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsVUFBVSwwQkFBVixVQUFVLFFBSXJCO0FBMENELE1BQXNCLFVBQVcsU0FBUSxnQ0FBZ0I7SUFHdkQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7SUFDSixDQUFDO0lBR0QsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsSUFBZ0IsRUFDaEIsS0FBc0I7UUFFdEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlC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QVUsQ0FBQyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7QUFuQkgsc0NBb0JDOzs7QUFFRCxNQUFhLFVBQVcsU0FBUSxVQUFVO0lBR3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRTtZQUNoQyxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxvQ0FBcUIsQ0FBQyxxQkFBcUIsQ0FDN0MsSUFBSSxFQUNKLHVCQUF1QixFQUN2QjtZQUNFLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUM1QixDQUFDOztBQW5CSCxnQ0FvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIHN1Ym5ldCxcbiAgbmF0R2F0ZXdheSxcbiAgZWlwLFxuICBkYXRhQXdzRWlwLFxuICByb3V0ZVRhYmxlLFxuICByb3V0ZVRhYmxlQXNzb2NpYXRpb24sXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG4gIElBd3NDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5cbmV4cG9ydCBlbnVtIFN1Ym5ldFR5cGUge1xuICBQVUJMSUMgPSBcIlBVQkxJQ1wiLFxuICBQUklWQVRFID0gXCJQUklWQVRFXCIsXG4gIERBVEEgPSBcIkRBVEFcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3VibmV0UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIGNyZWF0ZSB0aGUgc3VibmV0IGludG9cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogdnBjLlZwYztcbiAgLyoqXG4gICAqIFRoZSBJUHY0IENJRFIgYmxvY2sgZm9yIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBpcHY0Q2lkckJsb2NrOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmlsaXR5IHpvbmUgZm9yIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHRhZ3MgZm9yIHRoZSBzdWJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU3VibmV0IGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIG9mIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZSBmb3IgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgSUQgb2YgdGhlIHN1Ym5ldC5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU3VibmV0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElTdWJuZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHR5cGU6IFN1Ym5ldFR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcbiAgcHVibGljIGdldCBhdmFpbGFiaWxpdHlab25lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJpbGl0eVpvbmU7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfc3VibmV0SWQ6IHN0cmluZztcbiAgcHVibGljIGdldCBzdWJuZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdWJuZXRJZDtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdnBjOiB2cGMuVnBjO1xuICBwdWJsaWMgZ2V0IHZwY0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudnBjLmlkO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBjaWRyOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgaXB2NENpZHJCbG9jaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNpZHI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogdGhpcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgaXB2NENpZHJCbG9jazogdGhpcy5pcHY0Q2lkckJsb2NrLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IHN1Ym5ldC5TdWJuZXQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0eXBlOiBTdWJuZXRUeXBlLFxuICAgIHByb3BzOiBCYXNlU3VibmV0UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudnBjID0gcHJvcHMudnBjO1xuICAgIHRoaXMuY2lkciA9IHByb3BzLmlwdjRDaWRyQmxvY2s7XG4gICAgdGhpcy5fYXZhaWxhYmlsaXR5Wm9uZSA9IHByb3BzLmF2YWlsYWJpbGl0eVpvbmU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnJlc291cmNlID0gbmV3IHN1Ym5ldC5TdWJuZXQodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICB2cGNJZDogdGhpcy52cGMuaWQsXG4gICAgICBjaWRyQmxvY2s6IHRoaXMuY2lkcixcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHRoaXMuX2F2YWlsYWJpbGl0eVpvbmUsXG4gICAgICBtYXBQdWJsaWNJcE9uTGF1bmNoOiB0aGlzLnR5cGUgPT09IFN1Ym5ldFR5cGUuUFVCTElDLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICB9KTtcbiAgICB0aGlzLl9zdWJuZXRJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNTdWJuZXRQcm9wcyBleHRlbmRzIEJhc2VTdWJuZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIE5BVCBnYXRld2F5IGluIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVOYXRHYXRld2F5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBFSVAgYWxsb2NhdGlvbiBJRCB0byB1c2UgZm9yIHRoZSBOQVQgZ2F0ZXdheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIG5ldyBFSVAgaXMgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZWlwQWxsb2NhdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIFJvdXRlIFRhYmxlIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBzdWJuZXQuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Um91dGVUYWJsZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQdWJsaWNTdWJuZXQgZXh0ZW5kcyBCYXNlU3VibmV0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBuYXRHYXRld2F5PzogbmF0R2F0ZXdheS5OYXRHYXRld2F5O1xuICBwcml2YXRlIHJlYWRvbmx5IGVpcD86IGVpcC5FaXAgfCBkYXRhQXdzRWlwLkRhdGFBd3NFaXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFB1YmxpY1N1Ym5ldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBTdWJuZXRUeXBlLlBVQkxJQywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmNyZWF0ZU5hdEdhdGV3YXkpIHtcbiAgICAgIGlmIChwcm9wcy5laXBBbGxvY2F0aW9uSWQgJiYgcHJvcHMuZWlwQWxsb2NhdGlvbklkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5laXAgPSBuZXcgZGF0YUF3c0VpcC5EYXRhQXdzRWlwKHRoaXMsIFwiRWlwXCIsIHtcbiAgICAgICAgICBpZDogcHJvcHMuZWlwQWxsb2NhdGlvbklkLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBwcm9wcy50YWdzPy5OYW1lID8/IHRoaXMuZnJpZW5kbHlOYW1lO1xuICAgICAgICB0aGlzLmVpcCA9IG5ldyBlaXAuRWlwKHRoaXMsIFwiRWlwXCIsIHtcbiAgICAgICAgICBkb21haW46IFwidnBjXCIsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgTmFtZTogYCR7bmFtZX0tbmF0LWdhdGV3YXlgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm5hdEdhdGV3YXkgPSBuZXcgbmF0R2F0ZXdheS5OYXRHYXRld2F5KHRoaXMsIFwiTmF0R2F0ZXdheVwiLCB7XG4gICAgICAgIGFsbG9jYXRpb25JZDogdGhpcy5laXAuaWQsXG4gICAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7cHJvcHMudGFncz8uTmFtZSA/PyB0aGlzLmZyaWVuZGx5TmFtZX0tbmF0LWdhdGV3YXlgLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbmF0Z2F0ZXdheSgpOiBuYXRHYXRld2F5Lk5hdEdhdGV3YXkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm5hdEdhdGV3YXk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlU3VibmV0UHJvcHMgZXh0ZW5kcyBCYXNlU3VibmV0UHJvcHMge1xuICByZWFkb25seSByb3V0ZVRhYmxlOiByb3V0ZVRhYmxlLlJvdXRlVGFibGU7XG59XG5cbmV4cG9ydCBjbGFzcyBQcml2YXRlU3VibmV0IGV4dGVuZHMgQmFzZVN1Ym5ldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVUYWJsZTogcm91dGVUYWJsZS5Sb3V0ZVRhYmxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcml2YXRlU3VibmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFN1Ym5ldFR5cGUuUFJJVkFURSwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZVRhYmxlID0gcHJvcHMucm91dGVUYWJsZTtcbiAgICBuZXcgcm91dGVUYWJsZUFzc29jaWF0aW9uLlJvdXRlVGFibGVBc3NvY2lhdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJvdXRlVGFibGVBc3NvY2lhdGlvblwiLFxuICAgICAge1xuICAgICAgICByb3V0ZVRhYmxlSWQ6IHByb3BzLnJvdXRlVGFibGUuaWQsXG4gICAgICAgIHN1Ym5ldElkOiB0aGlzLnN1Ym5ldElkLFxuICAgICAgfSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcm91dGVUYWJsZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVUYWJsZS5pZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YVN1Ym5ldCBleHRlbmRzIEJhc2VTdWJuZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlVGFibGU6IHJvdXRlVGFibGUuUm91dGVUYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJpdmF0ZVN1Ym5ldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBTdWJuZXRUeXBlLkRBVEEsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMucm91dGVUYWJsZSA9IHByb3BzLnJvdXRlVGFibGU7XG4gICAgbmV3IHJvdXRlVGFibGVBc3NvY2lhdGlvbi5Sb3V0ZVRhYmxlQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJSb3V0ZVRhYmxlQXNzb2NpYXRpb25cIixcbiAgICAgIHtcbiAgICAgICAgcm91dGVUYWJsZUlkOiBwcm9wcy5yb3V0ZVRhYmxlLmlkLFxuICAgICAgICBzdWJuZXRJZDogdGhpcy5zdWJuZXRJZCxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJvdXRlVGFibGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJvdXRlVGFibGUuaWQ7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,7 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Archive = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.156.0/packages/aws-cdk-lib/aws-events/lib/archive.ts
6
7
  const provider_aws_1 = require("@cdktf/provider-aws");
7
8
  const aws_construct_1 = require("../aws-construct");
8
9
  const util_1 = require("./util");
@@ -58,5 +59,5 @@ class Archive extends aws_construct_1.AwsConstructBase {
58
59
  }
59
60
  exports.Archive = Archive;
60
61
  _a = JSII_RTTI_SYMBOL_1;
61
- Archive[_a] = { fqn: "terraconstructs.aws.notify.Archive", version: "0.0.10" };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2FyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBNkQ7QUFFN0Qsb0RBQXVFO0FBR3ZFLGlDQUE0QztBQXdENUM7Ozs7R0FJRztBQUNILE1BQWEsT0FBUSxTQUFRLGdDQUFnQjtJQUUzQzs7O09BR0c7SUFDSCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxJQUFJLEdBQ1IsS0FBSyxDQUFDLFdBQVc7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUc7Z0JBQzNCLHdCQUF3QixFQUFFLEtBQUs7Z0JBQy9CLFNBQVMsRUFBRSxFQUFFO2FBQ2QsQ0FBQyxDQUFDO1FBRUwsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkVBQTJFLENBQzVFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFzQixDQUFDLHNCQUFzQixDQUMvRCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsSUFBSTtZQUNKLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVc7WUFDaEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxJQUFBLHlCQUFrQixFQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDcEQsYUFBYSxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztTQUNoRSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDdkIsQ0FBQztJQUNKLENBQUM7O0FBN0RILDBCQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb3Vkd2F0Y2hFdmVudEFyY2hpdmUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElFdmVudEJ1cyB9IGZyb20gXCIuL2V2ZW50LWJ1c1wiO1xuaW1wb3J0IHsgRXZlbnRQYXR0ZXJuIH0gZnJvbSBcIi4vZXZlbnQtcGF0dGVyblwiO1xuaW1wb3J0IHsgcmVuZGVyRXZlbnRQYXR0ZXJuIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi5cIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIGNhbiBiZSBleHBvc2VkIHRocm91Z2ggdGhlIGdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmNoaXZlT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcmNoaXZlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXZlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGFyY2hpdmUgYmFzZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFyY2hpdmVQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhcmNoaXZlLlxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZXZlbnRicmlkZ2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQXJjaGl2ZS5odG1sI2V2ZW50YnJpZGdlLUNyZWF0ZUFyY2hpdmUtcmVxdWVzdC1BcmNoaXZlTmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBhcmNoaXZlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBhcmNoaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogQW4gZXZlbnQgcGF0dGVybiB0byB1c2UgdG8gZmlsdGVyIGV2ZW50cyBzZW50IHRvIHRoZSBhcmNoaXZlLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRQYXR0ZXJuOiBFdmVudFBhdHRlcm47XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgdG8gcmV0YWluIGV2ZW50cyBmb3IuIERlZmF1bHQgdmFsdWUgaXMgMC4gSWYgc2V0IHRvIDAsIGV2ZW50cyBhcmUgcmV0YWluZWQgaW5kZWZpbml0ZWx5LlxuICAgKiBAZGVmYXVsdCAtIEluZmluaXRlXG4gICAqL1xuICByZWFkb25seSByZXRlbnRpb24/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgYXJjaGl2ZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJjaGl2ZVByb3BzIGV4dGVuZHMgQmFzZUFyY2hpdmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXJjaGl2ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUV2ZW50QnVzOiBJRXZlbnRCdXM7XG59XG5cbi8qKlxuICogRGVmaW5lIGFuIEV2ZW50QnJpZGdlIEFyY2hpdmVcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYXJjaGl2ZVxuICovXG5leHBvcnQgY2xhc3MgQXJjaGl2ZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hFdmVudEFyY2hpdmUuQ2xvdWR3YXRjaEV2ZW50QXJjaGl2ZTtcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXZlIG5hbWUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBnZXQgYXJjaGl2ZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcmNoaXZlIGNyZWF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBnZXQgYXJjaGl2ZUFybigpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXJjaGl2ZU91dHB1dHM6IEFyY2hpdmVPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXJjaGl2ZU91dHB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXJjaGl2ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIHByb3BzLmFyY2hpdmVOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCArIFwiLVwiLFxuICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLi1fXCIsXG4gICAgICAgIG1heExlbmd0aDogNDgsXG4gICAgICB9KTtcblxuICAgIGlmIChuYW1lLmxlbmd0aCA8IDEgfHwgbmFtZS5sZW5ndGggPiA0OCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImFyY2hpdmVOYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0OCBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghbmFtZS5tYXRjaCgvXltcXC5cXC1fQS1aYS16MC05XSskLykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJhcmNoaXZlTmFtZSBtdXN0IG9ubHkgY29udGFpbiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IC4gLSBfIEEtWiBhLXogMC05XCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgY2xvdWR3YXRjaEV2ZW50QXJjaGl2ZS5DbG91ZHdhdGNoRXZlbnRBcmNoaXZlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZXZlbnRTb3VyY2VBcm46IHByb3BzLnNvdXJjZUV2ZW50QnVzLmV2ZW50QnVzQXJuLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIGV2ZW50UGF0dGVybjogcmVuZGVyRXZlbnRQYXR0ZXJuKHByb3BzLmV2ZW50UGF0dGVybiksXG4gICAgICAgIHJldGVudGlvbkRheXM6IHByb3BzLnJldGVudGlvbj8udG9EYXlzKHsgaW50ZWdyYWw6IHRydWUgfSkgfHwgMCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuYXJjaGl2ZU91dHB1dHMgPSB7XG4gICAgICBhcm46IHRoaXMuYXJjaGl2ZUFybixcbiAgICAgIG5hbWU6IHRoaXMuYXJjaGl2ZU5hbWUsXG4gICAgfTtcbiAgfVxufVxuIl19
62
+ Archive[_a] = { fqn: "terraconstructs.aws.notify.Archive", version: "0.0.12" };
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2FyY2hpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4RkFBOEY7QUFFOUYsc0RBQTZEO0FBRTdELG9EQUF1RTtBQUd2RSxpQ0FBNEM7QUF3RDVDOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxnQ0FBZ0I7SUFFM0M7OztPQUdHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sSUFBSSxHQUNSLEtBQUssQ0FBQyxXQUFXO1lBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFO2dCQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHO2dCQUMzQix3QkFBd0IsRUFBRSxLQUFLO2dCQUMvQixTQUFTLEVBQUUsRUFBRTthQUNkLENBQUMsQ0FBQztRQUVMLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUNiLDREQUE0RCxDQUM3RCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksS0FBSyxDQUNiLDJFQUEyRSxDQUM1RSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxxQ0FBc0IsQ0FBQyxzQkFBc0IsQ0FDL0QsSUFBSSxFQUNKLFVBQVUsRUFDVjtZQUNFLElBQUk7WUFDSixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXO1lBQ2hELFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixZQUFZLEVBQUUsSUFBQSx5QkFBa0IsRUFBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3BELGFBQWEsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDaEUsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQixHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ3ZCLENBQUM7SUFDSixDQUFDOztBQTdESCwwQkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZXZlbnRzL2xpYi9hcmNoaXZlLnRzXG5cbmltcG9ydCB7IGNsb3Vkd2F0Y2hFdmVudEFyY2hpdmUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElFdmVudEJ1cyB9IGZyb20gXCIuL2V2ZW50LWJ1c1wiO1xuaW1wb3J0IHsgRXZlbnRQYXR0ZXJuIH0gZnJvbSBcIi4vZXZlbnQtcGF0dGVyblwiO1xuaW1wb3J0IHsgcmVuZGVyRXZlbnRQYXR0ZXJuIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi5cIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIGNhbiBiZSBleHBvc2VkIHRocm91Z2ggdGhlIGdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcmNoaXZlT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcmNoaXZlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXZlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGFyY2hpdmUgYmFzZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFyY2hpdmVQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhcmNoaXZlLlxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZXZlbnRicmlkZ2UvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQXJjaGl2ZS5odG1sI2V2ZW50YnJpZGdlLUNyZWF0ZUFyY2hpdmUtcmVxdWVzdC1BcmNoaXZlTmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBhcmNoaXZlTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBhcmNoaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogQW4gZXZlbnQgcGF0dGVybiB0byB1c2UgdG8gZmlsdGVyIGV2ZW50cyBzZW50IHRvIHRoZSBhcmNoaXZlLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRQYXR0ZXJuOiBFdmVudFBhdHRlcm47XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgdG8gcmV0YWluIGV2ZW50cyBmb3IuIERlZmF1bHQgdmFsdWUgaXMgMC4gSWYgc2V0IHRvIDAsIGV2ZW50cyBhcmUgcmV0YWluZWQgaW5kZWZpbml0ZWx5LlxuICAgKiBAZGVmYXVsdCAtIEluZmluaXRlXG4gICAqL1xuICByZWFkb25seSByZXRlbnRpb24/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgYXJjaGl2ZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJjaGl2ZVByb3BzIGV4dGVuZHMgQmFzZUFyY2hpdmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXJjaGl2ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUV2ZW50QnVzOiBJRXZlbnRCdXM7XG59XG5cbi8qKlxuICogRGVmaW5lIGFuIEV2ZW50QnJpZGdlIEFyY2hpdmVcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYXJjaGl2ZVxuICovXG5leHBvcnQgY2xhc3MgQXJjaGl2ZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hFdmVudEFyY2hpdmUuQ2xvdWR3YXRjaEV2ZW50QXJjaGl2ZTtcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXZlIG5hbWUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBnZXQgYXJjaGl2ZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhcmNoaXZlIGNyZWF0ZWQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBnZXQgYXJjaGl2ZUFybigpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgYXJjaGl2ZU91dHB1dHM6IEFyY2hpdmVPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXJjaGl2ZU91dHB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQXJjaGl2ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBjb25zdCBuYW1lID1cbiAgICAgIHByb3BzLmFyY2hpdmVOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCArIFwiLVwiLFxuICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLi1fXCIsXG4gICAgICAgIG1heExlbmd0aDogNDgsXG4gICAgICB9KTtcblxuICAgIGlmIChuYW1lLmxlbmd0aCA8IDEgfHwgbmFtZS5sZW5ndGggPiA0OCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImFyY2hpdmVOYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0OCBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghbmFtZS5tYXRjaCgvXltcXC5cXC1fQS1aYS16MC05XSskLykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJhcmNoaXZlTmFtZSBtdXN0IG9ubHkgY29udGFpbiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IC4gLSBfIEEtWiBhLXogMC05XCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgY2xvdWR3YXRjaEV2ZW50QXJjaGl2ZS5DbG91ZHdhdGNoRXZlbnRBcmNoaXZlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgZXZlbnRTb3VyY2VBcm46IHByb3BzLnNvdXJjZUV2ZW50QnVzLmV2ZW50QnVzQXJuLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIGV2ZW50UGF0dGVybjogcmVuZGVyRXZlbnRQYXR0ZXJuKHByb3BzLmV2ZW50UGF0dGVybiksXG4gICAgICAgIHJldGVudGlvbkRheXM6IHByb3BzLnJldGVudGlvbj8udG9EYXlzKHsgaW50ZWdyYWw6IHRydWUgfSkgfHwgMCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuYXJjaGl2ZU91dHB1dHMgPSB7XG4gICAgICBhcm46IHRoaXMuYXJjaGl2ZUFybixcbiAgICAgIG5hbWU6IHRoaXMuYXJjaGl2ZU5hbWUsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -3,6 +3,7 @@ var _a, _b, _c;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.HttpMethod = exports.Connection = exports.HttpParameter = exports.Authorization = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.156.0/packages/aws-cdk-lib/aws-events/lib/connection.ts
6
7
  const provider_aws_1 = require("@cdktf/provider-aws");
7
8
  const aws_construct_1 = require("../aws-construct");
8
9
  const aws_stack_1 = require("../aws-stack");
@@ -85,7 +86,7 @@ class Authorization {
85
86
  }
86
87
  exports.Authorization = Authorization;
87
88
  _a = JSII_RTTI_SYMBOL_1;
88
- Authorization[_a] = { fqn: "terraconstructs.aws.notify.Authorization", version: "0.0.10" };
89
+ Authorization[_a] = { fqn: "terraconstructs.aws.notify.Authorization", version: "0.0.12" };
89
90
  /**
90
91
  * An additional HTTP parameter to send along with the OAuth request
91
92
  */
@@ -123,7 +124,7 @@ class HttpParameter {
123
124
  }
124
125
  exports.HttpParameter = HttpParameter;
125
126
  _b = JSII_RTTI_SYMBOL_1;
126
- HttpParameter[_b] = { fqn: "terraconstructs.aws.notify.HttpParameter", version: "0.0.10" };
127
+ HttpParameter[_b] = { fqn: "terraconstructs.aws.notify.HttpParameter", version: "0.0.12" };
127
128
  /**
128
129
  * Define an EventBridge Connection
129
130
  *
@@ -197,7 +198,7 @@ class Connection extends aws_construct_1.AwsConstructBase {
197
198
  }
198
199
  exports.Connection = Connection;
199
200
  _c = JSII_RTTI_SYMBOL_1;
200
- Connection[_c] = { fqn: "terraconstructs.aws.notify.Connection", version: "0.0.10" };
201
+ Connection[_c] = { fqn: "terraconstructs.aws.notify.Connection", version: "0.0.12" };
201
202
  class ImportedConnection extends aws_construct_1.AwsConstructBase {
202
203
  get connectionOutputs() {
203
204
  return {
@@ -258,4 +259,4 @@ function renderHttpParameters(ps) {
258
259
  }
259
260
  return Object.entries(ps).map(([name, p]) => p._render(name));
260
261
  }
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2Nvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBZ0U7QUFFaEUsb0RBSTBCO0FBQzFCLDRDQUF3QztBQXFEeEM7O0dBRUc7QUFDSCxNQUFzQixhQUFhO0lBQ2pDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFrQixFQUFFLFdBQW1CO1FBQzFELE9BQU8sSUFBSSxDQUFDLEtBQU0sU0FBUSxhQUFhO1lBQzlCLEtBQUs7Z0JBQ1YsSUFBSSxjQUFjLEdBQ2hCO29CQUNFLE1BQU0sRUFBRTt3QkFDTixHQUFHLEVBQUUsVUFBVTt3QkFDZixLQUFLLEVBQUUsV0FBVyxFQUFFLDJCQUEyQjtxQkFDaEQ7aUJBQ0YsQ0FBQztnQkFDSixPQUFPO29CQUNMLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLE9BQU87b0JBQzVDLGNBQWM7aUJBQ2YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxLQUFNLFNBQVEsYUFBYTtZQUM5QixLQUFLO2dCQUNWLElBQUksY0FBYyxHQUNoQjtvQkFDRSxLQUFLLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQUUsMkJBQTJCO3FCQUNoRDtpQkFDRixDQUFDO2dCQUNKLE9BQU87b0JBQ0wsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsS0FBSztvQkFDMUMsY0FBYztpQkFDZixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUE4QjtRQUNoRCxJQUNFLENBQUMs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LENBQUM7SUFDdkQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBZVg7QUFmRCxXQUFZLFVBQVU7SUFDcEIsV0FBVztJQUNYLDJCQUFhLENBQUE7SUFDYixVQUFVO0lBQ1YseUJBQVcsQ0FBQTtJQUNYLFdBQVc7SUFDWCwyQkFBYSxDQUFBO0lBQ2IsY0FBYztJQUNkLGlDQUFtQixDQUFBO0lBQ25CLFVBQVU7SUFDVix5QkFBVyxDQUFBO0lBQ1gsWUFBWTtJQUNaLDZCQUFlLENBQUE7SUFDZixhQUFhO0lBQ2IsK0JBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWZXLFVBQVUsMEJBQVYsVUFBVSxRQWVyQjtBQUVEOztHQUVHO0FBQ0gsSUFBSyxpQkFPSjtBQVBELFdBQUssaUJBQWlCO0lBQ3BCLGNBQWM7SUFDZCx3Q0FBbUIsQ0FBQTtJQUNuQixZQUFZO0lBQ1osb0NBQWUsQ0FBQTtJQUNmLCtCQUErQjtJQUMvQiwwRUFBcUQsQ0FBQTtBQUN2RCxDQUFDLEVBUEksaUJBQWlCLEtBQWpCLGlCQUFpQixRQU9yQjtBQUVELFNBQVMsb0JBQW9CLENBQzNCLEVBQWtDO0lBRWxDLElBQUksQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgQXdzQ29uc3RydWN0QmFzZSxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuXG4vKipcbiAqIEFuIEFQSSBEZXN0aW5hdGlvbiBDb25uZWN0aW9uXG4gKlxuICogQSBjb25uZWN0aW9uIGRlZmluZXMgdGhlIGF1dGhvcml6YXRpb24gdHlwZSBhbmQgY3JlZGVudGlhbHMgdG8gdXNlIGZvciBhdXRob3JpemF0aW9uIHdpdGggYW4gQVBJIGRlc3RpbmF0aW9uIEhUVFAgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNjQgY2hhcmFjdGVycyBjb25zaXN0aW5nIG9mIG51bWJlcnMsIGxvd2VyL3VwcGVyIGNhc2UgbGV0dGVycywgLiwtLF8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSBuYW1lIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNTEyIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHR5cGUgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbjogQXV0aG9yaXphdGlvbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIGludm9jYXRpb24gYm9kaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgaW52b2NhdGlvbiBoZWFkZXJzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgSHR0cFBhcmFtZXRlcj47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc3RyaW5nIHBhcmFtZXRlcnMgdG8gYWRkIHRvIHRoZSBpbnZvY2F0aW9uIHF1ZXJ5IHN0cmluZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xufVxuXG4vKipcbiAqIEF1dGhvcml6YXRpb24gdHlwZSBmb3IgYW4gQVBJIERlc3RpbmF0aW9uIENvbm5lY3Rpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhvcml6YXRpb24ge1xuICAvKipcbiAgICogVXNlIEFQSSBrZXkgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBBUEkga2V5IGF1dGhvcml6YXRpb24gaGFzIHR3byBjb21wb25lbnRzOiBhbiBBUEkga2V5IG5hbWUgYW5kIGFuIEFQSSBrZXkgdmFsdWUuXG4gICAqIFdoYXQgdGhlc2UgYXJlIGRlcGVuZHMgb24gdGhlIHRhcmdldCBvZiB5b3VyIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFwaUtleShhcGlLZXlOYW1lOiBzdHJpbmcsIGFwaUtleVZhbHVlOiBzdHJpbmcpOiBBdXRob3JpemF0aW9uIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBsZXQgYXV0aFBhcmFtZXRlcnM6IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzID1cbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcGlLZXk6IHtcbiAgICAgICAgICAgICAga2V5OiBhcGlLZXlOYW1lLFxuICAgICAgICAgICAgICB2YWx1ZTogYXBpS2V5VmFsdWUsIC8vIFRPRE86IEZsYWcgYXMgc2Vuc2l0aXZlP1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5BUElfS0VZLFxuICAgICAgICAgIGF1dGhQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhdXRob3JpemF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2ljKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBBdXRob3JpemF0aW9uIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBsZXQgYXV0aFBhcmFtZXRlcnM6IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzID1cbiAgICAgICAgICB7XG4gICAgICAgICAgICBiYXNpYzoge1xuICAgICAgICAgICAgICB1c2VybmFtZTogdXNlcm5hbWUsXG4gICAgICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCwgLy8gVE9ETzogRmxhZyBhcyBzZW5zaXRpdmU/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IEF1dGhvcml6YXRpb25UeXBlLkJBU0lDLFxuICAgICAgICAgIGF1dGhQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIE9BdXRoIGF1dGhvcml6YXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2F1dGgocHJvcHM6IE9BdXRoQXV0aG9yaXphdGlvblByb3BzKTogQXV0aG9yaXphdGlvbiB7XG4gICAgaWYgKFxuICAgICAgIVtIdHRwTWV0aG9kLlBPU1QsIEh0dHBNZXRob2QuR0VULCBIdHRwTWV0aG9kLlBVVF0uaW5jbHVkZXMoXG4gICAgICAgIHByb3BzLmh0dHBNZXRob2QsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJodHRwTWV0aG9kIG11c3QgYmUgb25lIG9mIEdFVCwgUE9TVCwgUFVUXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgQXV0aG9yaXphdGlvbiB7XG4gICAgICBwdWJsaWMgX2JpbmQoKSB7XG4gICAgICAgIGxldCBhdXRoUGFyYW1ldGVyczogY2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbi5DbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uQXV0aFBhcmFtZXRlcnMgPVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9hdXRoOiB7XG4gICAgICAgICAgICAgIGF1dGhvcml6YXRpb25FbmRwb2ludDogcHJvcHMuYXV0aG9yaXphdGlvbkVuZHBvaW50LFxuICAgICAgICAgICAgICBjbGllbnRQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgY2xpZW50SWQ6IHByb3BzLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudFNlY3JldDogcHJvcHMuY2xpZW50U2VjcmV0LCAvLyBUT0RPOiBGbGFnIGFzIHNlbnNpdGl2ZT9cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHR0cE1ldGhvZDogcHJvcHMuaHR0cE1ldGhvZCxcbiAgICAgICAgICAgICAgb2F1dGhIdHRwUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgIGJvZHk6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmJvZHlQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmhlYWRlclBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5PQVVUSF9DTElFTlRfQ1JFREVOVElBTFMsXG4gICAgICAgICAgYXV0aFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHRoZSBhdXRob3JpemF0aW9uIHRvIHRoZSBjb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgYXV0aG9yaXphdGlvbiBwcm9wZXJ0aWVzXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9iaW5kKCk6IEF1dGhvcml6YXRpb25CaW5kUmVzdWx0O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGBBdXRob3JpemF0aW9uLm9hdXRoKClgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhBdXRob3JpemF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbkVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gdXNlIGZvciB0aGUgYXV0aG9yaXphdGlvbiByZXF1ZXN0LlxuICAgKlxuICAgKiAoQ2FuIG9ubHkgY2hvb3NlIFBPU1QsIEdFVCBvciBQVVQpLlxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE1ldGhvZDogSHR0cE1ldGhvZDtcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBJRCB0byB1c2UgZm9yIE9BdXRoIGF1dGhvcml6YXRpb24gZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBzZWNyZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQgSUQgdG8gdXNlIGZvciBPQXV0aCBhdXRob3JpemF0aW9uIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBib2R5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBoZWFkZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlclBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIE9BdXRoIHJlcXVlc3QgcXVlcnkgc3RyaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcbn1cblxuLyoqXG4gKiBBbiBhZGRpdGlvbmFsIEhUVFAgcGFyYW1ldGVyIHRvIHNlbmQgYWxvbmcgd2l0aCB0aGUgT0F1dGggcmVxdWVzdFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFBhcmFtZXRlciB7XG4gIC8qKlxuICAgKiBNYWtlIGFuIE9BdXRoUGFyYW1ldGVyIGZyb20gYSBzdHJpbmcgdmFsdWVcbiAgICpcbiAgICogVGhlIHZhbHVlIGlzIG5vdCB0cmVhdGVkIGFzIGEgc2VjcmV0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBIdHRwUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEh0dHBQYXJhbWV0ZXIge1xuICAgICAgcHVibGljIF9yZW5kZXIobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBuYW1lLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGlzVmFsdWVTZWNyZXQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBPQXV0aFBhcmFtZXRlciBmcm9tIGEgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXQodmFsdWU6IHN0cmluZyk6IEh0dHBQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgSHR0cFBhcmFtZXRlciB7XG4gICAgICBwdWJsaWMgX3JlbmRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IG5hbWUsXG4gICAgICAgICAgdmFsdWUsIC8vIFRPRE86IEZsYWcgYXMgc2VjcmV0XG4gICAgICAgICAgaXNWYWx1ZVNlY3JldDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgcGFyYW10ZXIgdmFsdWVcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcihuYW1lOiBzdHJpbmcpOiBhbnk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHRoZSAnYmluZCcgb3BlcmF0aW9uIG9mIHRoZSAnQXV0aG9yaXphdGlvbicgY2xhc3NcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQmluZFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYXV0aG9yaXphdGlvbiB0eXBlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHBhcmFtZXRlcnMgKGRlcGVuZHMgb24gdGhlIHR5cGUpXG4gICAqL1xuICByZWFkb25seSBhdXRoUGFyYW1ldGVyczogYW55O1xufVxuXG4vKipcbiAqIE91dHB1dHMgdG8gcmVnaXN0ZXIgd2l0aCB0aGUgR3JpZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgY29ubmVjdGlvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0IGNyZWF0ZWQgZnJvbSB0aGUgYXV0aG9yaXphdGlvbiBwYXJhbWV0ZXJzIHNwZWNpZmllZCBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBFdmVudEJ1cyBDb25uZWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0aW9uIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTmFtZSBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIGZvciB0aGUgc2VjcmV0IGNyZWF0ZWQgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uU2VjcmV0QXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdpdGggcHJvcGVydGllcyBuZWNlc3NhcnkgdG8gaW1wb3J0IGEgcmV1c2FibGUgQ29ubmVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRXZlbnRCcmlkZ2UgQ29ubmVjdGlvblxuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9jb25uZWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25Bcm4gQVJOIG9mIGltcG9ydGVkIGNvbm5lY3Rpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV2ZW50QnVzQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb25uZWN0aW9uQXJuOiBzdHJpbmcsXG4gICAgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nLFxuICApOiBJQ29ubmVjdGlvbiB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oY29ubmVjdGlvbkFybik7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkQ29ubmVjdGlvbihzY29wZSwgaWQsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IGNvbm5lY3Rpb25Bcm4sXG4gICAgICBjb25uZWN0aW9uTmFtZTogcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCIsXG4gICAgICBjb25uZWN0aW9uU2VjcmV0QXJuOiBjb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydGVkIGNvbm5lY3Rpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbkF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBDb25uZWN0aW9uQXR0cmlidXRlcyxcbiAgKTogSUNvbm5lY3Rpb24ge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRDb25uZWN0aW9uKHNjb3BlLCBpZCwgYXR0cnMpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uLkNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb247XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25PdXRwdXRzOiBDb25uZWN0aW9uT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25PdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIG9mIDY0IGNoYXJhY3RlcnMgY29uc2lzdGluZyBvZiBudW1iZXJzLCBsb3dlci91cHBlciBjYXNlIGxldHRlcnMsIC4sLSxfLlxuICAgICAqL1xuICAgIGNvbnN0IGNvbm5lY3Rpb25OYW1lID1cbiAgICAgIHByb3BzLmNvbm5lY3Rpb25OYW1lID8/XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogNjQsXG4gICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCIuLV9cIixcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aEJpbmQgPSBwcm9wcy5hdXRob3JpemF0aW9uLl9iaW5kKCk7XG5cbiAgICBjb25zdCBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6XG4gICAgICB8IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzSW52b2NhdGlvbkh0dHBQYXJhbWV0ZXJzXG4gICAgICB8IHVuZGVmaW5lZCA9XG4gICAgICAhIXByb3BzLmhlYWRlclBhcmFtZXRlcnMgfHxcbiAgICAgICEhcHJvcHMucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8XG4gICAgICAhIXByb3BzLmJvZHlQYXJhbWV0ZXJzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYm9keTogcmVuZGVySHR0cFBhcmFtZXRlcnMocHJvcHMuYm9keVBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgaGVhZGVyOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5oZWFkZXJQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBhdXRoQmluZC5hdXRob3JpemF0aW9uVHlwZSxcbiAgICAgICAgYXV0aFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAuLi5hdXRoQmluZC5hdXRoUGFyYW1ldGVycyxcbiAgICAgICAgICBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6IGludm9jYXRpb25IdHRwUGFyYW1ldGVycyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lOiBjb25uZWN0aW9uTmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSB0aGlzLnJlc291cmNlLm5hbWU7XG4gICAgdGhpcy5jb25uZWN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gICAgdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuID0gdGhpcy5yZXNvdXJjZS5zZWNyZXRBcm47XG4gICAgdGhpcy5jb25uZWN0aW9uT3V0cHV0cyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuY29ubmVjdGlvbk5hbWUsXG4gICAgICBhcm46IHRoaXMuY29ubmVjdGlvbkFybixcbiAgICAgIHNlY3JldEFybjogdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25PdXRwdXRzKCk6IENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5jb25uZWN0aW9uTmFtZSxcbiAgICAgIGFybjogdGhpcy5jb25uZWN0aW9uQXJuLFxuICAgICAgc2VjcmV0QXJuOiB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IENvbm5lY3Rpb25BdHRyaWJ1dGVzKSB7XG4gICAgY29uc3QgYXJuUGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oXG4gICAgICBhdHRycy5jb25uZWN0aW9uQXJuLFxuICAgICk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhY2NvdW50OiBhcm5QYXJ0cy5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBhcm5QYXJ0cy5yZWdpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25Bcm4gPSBhdHRycy5jb25uZWN0aW9uQXJuO1xuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSBhdHRycy5jb25uZWN0aW9uTmFtZTtcbiAgICB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4gPSBhdHRycy5jb25uZWN0aW9uU2VjcmV0QXJuO1xuICB9XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIEhUVFAgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gSHR0cE1ldGhvZCB7XG4gIC8qKiBQT1NUICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqIEdFVCAqL1xuICBHRVQgPSBcIkdFVFwiLFxuICAvKiogSEVBRCAqL1xuICBIRUFEID0gXCJIRUFEXCIsXG4gIC8qKiBPUFRJT05TICovXG4gIE9QVElPTlMgPSBcIk9QVElPTlNcIixcbiAgLyoqIFBVVCAqL1xuICBQVVQgPSBcIlBVVFwiLFxuICAvKiogUEFUQ0ggKi9cbiAgUEFUQ0ggPSBcIlBBVENIXCIsXG4gIC8qKiBERUxFVEUgKi9cbiAgREVMRVRFID0gXCJERUxFVEVcIixcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgQXV0aG9yaXphdGlvbiBUeXBlcy5cbiAqL1xuZW51bSBBdXRob3JpemF0aW9uVHlwZSB7XG4gIC8qKiBBUElfS0VZICovXG4gIEFQSV9LRVkgPSBcIkFQSV9LRVlcIixcbiAgLyoqIEJBU0lDICovXG4gIEJBU0lDID0gXCJCQVNJQ1wiLFxuICAvKiogT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTICovXG4gIE9BVVRIX0NMSUVOVF9DUkVERU5USUFMUyA9IFwiT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTXCIsXG59XG5cbmZ1bmN0aW9uIHJlbmRlckh0dHBQYXJhbWV0ZXJzPFQ+KFxuICBwcz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+LFxuKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwcyB8fCBPYmplY3Qua2V5cyhwcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwcykubWFwKChbbmFtZSwgcF0pID0+IHAuX3JlbmRlcihuYW1lKSk7XG59XG4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2Nvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpR0FBaUc7QUFFakcsc0RBQWdFO0FBRWhFLG9EQUkwQjtBQUMxQiw0Q0FBd0M7QUFxRHhDOztHQUVHO0FBQ0gsTUFBc0IsYUFBYTtJQUNqQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxXQUFtQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxLQUFNLFNBQVEsYUFBYTtZQUM5QixLQUFLO2dCQUNWLElBQUksY0FBYyxHQUNoQjtvQkFDRSxNQUFNLEVBQUU7d0JBQ04sR0FBRyxFQUFFLFVBQVU7d0JBQ2YsS0FBSyxFQUFFLFdBQVcsRUFBRSwyQkFBMkI7cUJBQ2hEO2lCQUNGLENBQUM7Z0JBQ0osT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO29CQUM1QyxjQUFjO2lCQUNmLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBTSxTQUFRLGFBQWE7WUFDOUIsS0FBSztnQkFDVixJQUFJLGNBQWMsR0FDaEI7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixRQUFRLEVBQUUsUUFBUSxFQUFFLDJCQUEyQjtxQkFDaEQ7aUJBQ0YsQ0FBQztnQkFDSixPQUFPO29CQUNMLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEtBQUs7b0JBQzFDLGNBQWM7aUJBQ2YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBOEI7UUFD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SyxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQWVYO0FBZkQsV0FBWSxVQUFVO0lBQ3BCLFdBQVc7SUFDWCwyQkFBYSxDQUFBO0lBQ2IsVUFBVTtJQUNWLHlCQUFXLENBQUE7SUFDWCxXQUFXO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLGNBQWM7SUFDZCxpQ0FBbUIsQ0FBQTtJQUNuQixVQUFVO0lBQ1YseUJBQVcsQ0FBQTtJQUNYLFlBQVk7SUFDWiw2QkFBZSxDQUFBO0lBQ2YsYUFBYTtJQUNiLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFmVyxVQUFVLDBCQUFWLFVBQVUsUUFlckI7QUFFRDs7R0FFRztBQUNILElBQUssaUJBT0o7QUFQRCxXQUFLLGlCQUFpQjtJQUNwQixjQUFjO0lBQ2Qsd0NBQW1CLENBQUE7SUFDbkIsWUFBWTtJQUNaLG9DQUFlLENBQUE7SUFDZiwrQkFBK0I7SUFDL0IsMEVBQXFELENBQUE7QUFDdkQsQ0FBQyxFQVBJLGlCQUFpQixLQUFqQixpQkFBaUIsUUFPckI7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixFQUFrQztJQUVsQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWV2ZW50cy9saWIvY29ubmVjdGlvbi50c1xuXG5pbXBvcnQgeyBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgQXdzQ29uc3RydWN0QmFzZSxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuXG4vKipcbiAqIEFuIEFQSSBEZXN0aW5hdGlvbiBDb25uZWN0aW9uXG4gKlxuICogQSBjb25uZWN0aW9uIGRlZmluZXMgdGhlIGF1dGhvcml6YXRpb24gdHlwZSBhbmQgY3JlZGVudGlhbHMgdG8gdXNlIGZvciBhdXRob3JpemF0aW9uIHdpdGggYW4gQVBJIGRlc3RpbmF0aW9uIEhUVFAgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNjQgY2hhcmFjdGVycyBjb25zaXN0aW5nIG9mIG51bWJlcnMsIGxvd2VyL3VwcGVyIGNhc2UgbGV0dGVycywgLiwtLF8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSBuYW1lIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNTEyIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHR5cGUgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbjogQXV0aG9yaXphdGlvbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIGludm9jYXRpb24gYm9kaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgaW52b2NhdGlvbiBoZWFkZXJzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgSHR0cFBhcmFtZXRlcj47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc3RyaW5nIHBhcmFtZXRlcnMgdG8gYWRkIHRvIHRoZSBpbnZvY2F0aW9uIHF1ZXJ5IHN0cmluZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xufVxuXG4vKipcbiAqIEF1dGhvcml6YXRpb24gdHlwZSBmb3IgYW4gQVBJIERlc3RpbmF0aW9uIENvbm5lY3Rpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhvcml6YXRpb24ge1xuICAvKipcbiAgICogVXNlIEFQSSBrZXkgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBBUEkga2V5IGF1dGhvcml6YXRpb24gaGFzIHR3byBjb21wb25lbnRzOiBhbiBBUEkga2V5IG5hbWUgYW5kIGFuIEFQSSBrZXkgdmFsdWUuXG4gICAqIFdoYXQgdGhlc2UgYXJlIGRlcGVuZHMgb24gdGhlIHRhcmdldCBvZiB5b3VyIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFwaUtleShhcGlLZXlOYW1lOiBzdHJpbmcsIGFwaUtleVZhbHVlOiBzdHJpbmcpOiBBdXRob3JpemF0aW9uIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBsZXQgYXV0aFBhcmFtZXRlcnM6IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzID1cbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcGlLZXk6IHtcbiAgICAgICAgICAgICAga2V5OiBhcGlLZXlOYW1lLFxuICAgICAgICAgICAgICB2YWx1ZTogYXBpS2V5VmFsdWUsIC8vIFRPRE86IEZsYWcgYXMgc2Vuc2l0aXZlP1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5BUElfS0VZLFxuICAgICAgICAgIGF1dGhQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhdXRob3JpemF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJhc2ljKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBBdXRob3JpemF0aW9uIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBsZXQgYXV0aFBhcmFtZXRlcnM6IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzID1cbiAgICAgICAgICB7XG4gICAgICAgICAgICBiYXNpYzoge1xuICAgICAgICAgICAgICB1c2VybmFtZTogdXNlcm5hbWUsXG4gICAgICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCwgLy8gVE9ETzogRmxhZyBhcyBzZW5zaXRpdmU/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IEF1dGhvcml6YXRpb25UeXBlLkJBU0lDLFxuICAgICAgICAgIGF1dGhQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIE9BdXRoIGF1dGhvcml6YXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2F1dGgocHJvcHM6IE9BdXRoQXV0aG9yaXphdGlvblByb3BzKTogQXV0aG9yaXphdGlvbiB7XG4gICAgaWYgKFxuICAgICAgIVtIdHRwTWV0aG9kLlBPU1QsIEh0dHBNZXRob2QuR0VULCBIdHRwTWV0aG9kLlBVVF0uaW5jbHVkZXMoXG4gICAgICAgIHByb3BzLmh0dHBNZXRob2QsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJodHRwTWV0aG9kIG11c3QgYmUgb25lIG9mIEdFVCwgUE9TVCwgUFVUXCIpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgQXV0aG9yaXphdGlvbiB7XG4gICAgICBwdWJsaWMgX2JpbmQoKSB7XG4gICAgICAgIGxldCBhdXRoUGFyYW1ldGVyczogY2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbi5DbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uQXV0aFBhcmFtZXRlcnMgPVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9hdXRoOiB7XG4gICAgICAgICAgICAgIGF1dGhvcml6YXRpb25FbmRwb2ludDogcHJvcHMuYXV0aG9yaXphdGlvbkVuZHBvaW50LFxuICAgICAgICAgICAgICBjbGllbnRQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgY2xpZW50SWQ6IHByb3BzLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudFNlY3JldDogcHJvcHMuY2xpZW50U2VjcmV0LCAvLyBUT0RPOiBGbGFnIGFzIHNlbnNpdGl2ZT9cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHR0cE1ldGhvZDogcHJvcHMuaHR0cE1ldGhvZCxcbiAgICAgICAgICAgICAgb2F1dGhIdHRwUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgIGJvZHk6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmJvZHlQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmhlYWRlclBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5PQVVUSF9DTElFTlRfQ1JFREVOVElBTFMsXG4gICAgICAgICAgYXV0aFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHRoZSBhdXRob3JpemF0aW9uIHRvIHRoZSBjb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgYXV0aG9yaXphdGlvbiBwcm9wZXJ0aWVzXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9iaW5kKCk6IEF1dGhvcml6YXRpb25CaW5kUmVzdWx0O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGBBdXRob3JpemF0aW9uLm9hdXRoKClgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhBdXRob3JpemF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbkVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gdXNlIGZvciB0aGUgYXV0aG9yaXphdGlvbiByZXF1ZXN0LlxuICAgKlxuICAgKiAoQ2FuIG9ubHkgY2hvb3NlIFBPU1QsIEdFVCBvciBQVVQpLlxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE1ldGhvZDogSHR0cE1ldGhvZDtcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBJRCB0byB1c2UgZm9yIE9BdXRoIGF1dGhvcml6YXRpb24gZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBzZWNyZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQgSUQgdG8gdXNlIGZvciBPQXV0aCBhdXRob3JpemF0aW9uIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBib2R5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBoZWFkZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlclBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIE9BdXRoIHJlcXVlc3QgcXVlcnkgc3RyaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcbn1cblxuLyoqXG4gKiBBbiBhZGRpdGlvbmFsIEhUVFAgcGFyYW1ldGVyIHRvIHNlbmQgYWxvbmcgd2l0aCB0aGUgT0F1dGggcmVxdWVzdFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFBhcmFtZXRlciB7XG4gIC8qKlxuICAgKiBNYWtlIGFuIE9BdXRoUGFyYW1ldGVyIGZyb20gYSBzdHJpbmcgdmFsdWVcbiAgICpcbiAgICogVGhlIHZhbHVlIGlzIG5vdCB0cmVhdGVkIGFzIGEgc2VjcmV0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBIdHRwUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEh0dHBQYXJhbWV0ZXIge1xuICAgICAgcHVibGljIF9yZW5kZXIobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBuYW1lLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGlzVmFsdWVTZWNyZXQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBPQXV0aFBhcmFtZXRlciBmcm9tIGEgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXQodmFsdWU6IHN0cmluZyk6IEh0dHBQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgSHR0cFBhcmFtZXRlciB7XG4gICAgICBwdWJsaWMgX3JlbmRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IG5hbWUsXG4gICAgICAgICAgdmFsdWUsIC8vIFRPRE86IEZsYWcgYXMgc2VjcmV0XG4gICAgICAgICAgaXNWYWx1ZVNlY3JldDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgcGFyYW10ZXIgdmFsdWVcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcihuYW1lOiBzdHJpbmcpOiBhbnk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHRoZSAnYmluZCcgb3BlcmF0aW9uIG9mIHRoZSAnQXV0aG9yaXphdGlvbicgY2xhc3NcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQmluZFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYXV0aG9yaXphdGlvbiB0eXBlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHBhcmFtZXRlcnMgKGRlcGVuZHMgb24gdGhlIHR5cGUpXG4gICAqL1xuICByZWFkb25seSBhdXRoUGFyYW1ldGVyczogYW55O1xufVxuXG4vKipcbiAqIE91dHB1dHMgdG8gcmVnaXN0ZXIgd2l0aCB0aGUgR3JpZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgY29ubmVjdGlvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0IGNyZWF0ZWQgZnJvbSB0aGUgYXV0aG9yaXphdGlvbiBwYXJhbWV0ZXJzIHNwZWNpZmllZCBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBFdmVudEJ1cyBDb25uZWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0aW9uIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTmFtZSBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIGZvciB0aGUgc2VjcmV0IGNyZWF0ZWQgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uU2VjcmV0QXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdpdGggcHJvcGVydGllcyBuZWNlc3NhcnkgdG8gaW1wb3J0IGEgcmV1c2FibGUgQ29ubmVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRXZlbnRCcmlkZ2UgQ29ubmVjdGlvblxuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9jb25uZWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25Bcm4gQVJOIG9mIGltcG9ydGVkIGNvbm5lY3Rpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV2ZW50QnVzQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb25uZWN0aW9uQXJuOiBzdHJpbmcsXG4gICAgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nLFxuICApOiBJQ29ubmVjdGlvbiB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oY29ubmVjdGlvbkFybik7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkQ29ubmVjdGlvbihzY29wZSwgaWQsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IGNvbm5lY3Rpb25Bcm4sXG4gICAgICBjb25uZWN0aW9uTmFtZTogcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCIsXG4gICAgICBjb25uZWN0aW9uU2VjcmV0QXJuOiBjb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydGVkIGNvbm5lY3Rpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbkF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBDb25uZWN0aW9uQXR0cmlidXRlcyxcbiAgKTogSUNvbm5lY3Rpb24ge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRDb25uZWN0aW9uKHNjb3BlLCBpZCwgYXR0cnMpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uLkNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb247XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25PdXRwdXRzOiBDb25uZWN0aW9uT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25PdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIG9mIDY0IGNoYXJhY3RlcnMgY29uc2lzdGluZyBvZiBudW1iZXJzLCBsb3dlci91cHBlciBjYXNlIGxldHRlcnMsIC4sLSxfLlxuICAgICAqL1xuICAgIGNvbnN0IGNvbm5lY3Rpb25OYW1lID1cbiAgICAgIHByb3BzLmNvbm5lY3Rpb25OYW1lID8/XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogNjQsXG4gICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCIuLV9cIixcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aEJpbmQgPSBwcm9wcy5hdXRob3JpemF0aW9uLl9iaW5kKCk7XG5cbiAgICBjb25zdCBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6XG4gICAgICB8IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzSW52b2NhdGlvbkh0dHBQYXJhbWV0ZXJzXG4gICAgICB8IHVuZGVmaW5lZCA9XG4gICAgICAhIXByb3BzLmhlYWRlclBhcmFtZXRlcnMgfHxcbiAgICAgICEhcHJvcHMucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8XG4gICAgICAhIXByb3BzLmJvZHlQYXJhbWV0ZXJzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYm9keTogcmVuZGVySHR0cFBhcmFtZXRlcnMocHJvcHMuYm9keVBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgaGVhZGVyOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5oZWFkZXJQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBhdXRoQmluZC5hdXRob3JpemF0aW9uVHlwZSxcbiAgICAgICAgYXV0aFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAuLi5hdXRoQmluZC5hdXRoUGFyYW1ldGVycyxcbiAgICAgICAgICBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6IGludm9jYXRpb25IdHRwUGFyYW1ldGVycyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lOiBjb25uZWN0aW9uTmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSB0aGlzLnJlc291cmNlLm5hbWU7XG4gICAgdGhpcy5jb25uZWN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gICAgdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuID0gdGhpcy5yZXNvdXJjZS5zZWNyZXRBcm47XG4gICAgdGhpcy5jb25uZWN0aW9uT3V0cHV0cyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuY29ubmVjdGlvbk5hbWUsXG4gICAgICBhcm46IHRoaXMuY29ubmVjdGlvbkFybixcbiAgICAgIHNlY3JldEFybjogdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25PdXRwdXRzKCk6IENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5jb25uZWN0aW9uTmFtZSxcbiAgICAgIGFybjogdGhpcy5jb25uZWN0aW9uQXJuLFxuICAgICAgc2VjcmV0QXJuOiB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IENvbm5lY3Rpb25BdHRyaWJ1dGVzKSB7XG4gICAgY29uc3QgYXJuUGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oXG4gICAgICBhdHRycy5jb25uZWN0aW9uQXJuLFxuICAgICk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhY2NvdW50OiBhcm5QYXJ0cy5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBhcm5QYXJ0cy5yZWdpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25Bcm4gPSBhdHRycy5jb25uZWN0aW9uQXJuO1xuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSBhdHRycy5jb25uZWN0aW9uTmFtZTtcbiAgICB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4gPSBhdHRycy5jb25uZWN0aW9uU2VjcmV0QXJuO1xuICB9XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIEhUVFAgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gSHR0cE1ldGhvZCB7XG4gIC8qKiBQT1NUICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqIEdFVCAqL1xuICBHRVQgPSBcIkdFVFwiLFxuICAvKiogSEVBRCAqL1xuICBIRUFEID0gXCJIRUFEXCIsXG4gIC8qKiBPUFRJT05TICovXG4gIE9QVElPTlMgPSBcIk9QVElPTlNcIixcbiAgLyoqIFBVVCAqL1xuICBQVVQgPSBcIlBVVFwiLFxuICAvKiogUEFUQ0ggKi9cbiAgUEFUQ0ggPSBcIlBBVENIXCIsXG4gIC8qKiBERUxFVEUgKi9cbiAgREVMRVRFID0gXCJERUxFVEVcIixcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgQXV0aG9yaXphdGlvbiBUeXBlcy5cbiAqL1xuZW51bSBBdXRob3JpemF0aW9uVHlwZSB7XG4gIC8qKiBBUElfS0VZICovXG4gIEFQSV9LRVkgPSBcIkFQSV9LRVlcIixcbiAgLyoqIEJBU0lDICovXG4gIEJBU0lDID0gXCJCQVNJQ1wiLFxuICAvKiogT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTICovXG4gIE9BVVRIX0NMSUVOVF9DUkVERU5USUFMUyA9IFwiT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTXCIsXG59XG5cbmZ1bmN0aW9uIHJlbmRlckh0dHBQYXJhbWV0ZXJzPFQ+KFxuICBwcz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+LFxuKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwcyB8fCBPYmplY3Qua2V5cyhwcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwcykubWFwKChbbmFtZSwgcF0pID0+IHAuX3JlbmRlcihuYW1lKSk7XG59XG4iXX0=