terraconstructs 0.0.25 → 0.1.0

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 (420) hide show
  1. package/.jsii +83665 -54911
  2. package/.mise.toml +1 -1
  3. package/.nvmrc +1 -1
  4. package/LICENSE +202 -674
  5. package/lib/asset-manager.d.ts +23 -0
  6. package/lib/asset-manager.js +3 -0
  7. package/lib/asset-staging.d.ts +178 -0
  8. package/lib/asset-staging.js +589 -0
  9. package/lib/assets.d.ts +359 -0
  10. package/lib/assets.js +55 -0
  11. package/lib/aws/arn.js +16 -15
  12. package/lib/aws/aws-asset-manager.d.ts +91 -0
  13. package/lib/aws/aws-asset-manager.js +244 -0
  14. package/lib/aws/aws-construct.js +1 -1
  15. package/lib/aws/aws-stack.d.ts +37 -0
  16. package/lib/aws/aws-stack.js +30 -9
  17. package/lib/aws/aws-tags.js +2 -2
  18. package/lib/aws/cloudwatch/actions/appscaling.d.ts +15 -0
  19. package/lib/aws/cloudwatch/actions/appscaling.js +24 -0
  20. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  21. package/lib/aws/cloudwatch/actions/index.d.ts +3 -0
  22. package/lib/aws/cloudwatch/actions/index.js +4 -4
  23. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  24. package/lib/aws/cloudwatch/actions/sns.d.ts +14 -0
  25. package/lib/aws/cloudwatch/actions/sns.js +23 -0
  26. package/lib/aws/cloudwatch/actions/ssm.d.ts +72 -0
  27. package/lib/aws/cloudwatch/actions/ssm.js +104 -0
  28. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  29. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  30. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  31. package/lib/aws/cloudwatch/alarm.js +1 -1
  32. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  33. package/lib/aws/cloudwatch/dashboard.js +1 -1
  34. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  35. package/lib/aws/cloudwatch/graph.js +8 -8
  36. package/lib/aws/cloudwatch/layout.js +3 -3
  37. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  38. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  39. package/lib/aws/cloudwatch/log-group.js +1 -1
  40. package/lib/aws/cloudwatch/log-query.js +1 -1
  41. package/lib/aws/cloudwatch/log-stream.js +1 -1
  42. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  43. package/lib/aws/cloudwatch/metric.js +2 -2
  44. package/lib/aws/cloudwatch/pattern.js +3 -3
  45. package/lib/aws/cloudwatch/policy.js +1 -1
  46. package/lib/aws/cloudwatch/query-definition.js +2 -2
  47. package/lib/aws/cloudwatch/stats.js +1 -1
  48. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  49. package/lib/aws/cloudwatch/text.js +1 -1
  50. package/lib/aws/cloudwatch/variable.js +3 -3
  51. package/lib/aws/cloudwatch/widget.js +1 -1
  52. package/lib/aws/compute/access-log.d.ts +478 -0
  53. package/lib/aws/compute/access-log.js +649 -0
  54. package/lib/aws/compute/activity.js +1 -1
  55. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  56. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  57. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  58. package/lib/aws/compute/alb/application-listener.js +1 -1
  59. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  60. package/lib/aws/compute/alb/application-target-group.js +1 -1
  61. package/lib/aws/compute/alb/conditions.js +1 -1
  62. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  63. package/lib/aws/compute/alb/trust-store.js +1 -1
  64. package/lib/aws/compute/api-definition.d.ts +106 -0
  65. package/lib/aws/compute/api-definition.js +200 -0
  66. package/lib/aws/compute/api-key.d.ts +184 -0
  67. package/lib/aws/compute/api-key.js +197 -0
  68. package/lib/aws/compute/apigateway-canned-metrics.generated.d.ts +169 -0
  69. package/lib/aws/compute/apigateway-canned-metrics.generated.js +63 -0
  70. package/lib/aws/compute/apigateway-util.d.ts +31 -0
  71. package/lib/aws/compute/apigateway-util.js +152 -0
  72. package/lib/aws/compute/architecture.js +1 -1
  73. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  74. package/lib/aws/compute/authorizer.d.ts +35 -0
  75. package/lib/aws/compute/authorizer.js +28 -0
  76. package/lib/aws/compute/authorizers/identity-source.d.ts +37 -0
  77. package/lib/aws/compute/authorizers/identity-source.js +61 -0
  78. package/lib/aws/compute/authorizers/index.d.ts +2 -0
  79. package/lib/aws/compute/authorizers/index.js +20 -0
  80. package/lib/aws/compute/authorizers/lambda.d.ts +140 -0
  81. package/lib/aws/compute/authorizers/lambda.js +208 -0
  82. package/lib/aws/compute/base-path-mapping.d.ts +49 -0
  83. package/lib/aws/compute/base-path-mapping.js +52 -0
  84. package/lib/aws/compute/base-scalable-attribute.js +3 -3
  85. package/lib/aws/compute/bastion-host.js +1 -1
  86. package/lib/aws/compute/chain.js +1 -1
  87. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  88. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  89. package/lib/aws/compute/client-vpn-route.js +2 -2
  90. package/lib/aws/compute/code.d.ts +415 -0
  91. package/lib/aws/compute/code.js +424 -0
  92. package/lib/aws/compute/condition.js +1 -1
  93. package/lib/aws/compute/connections.js +1 -1
  94. package/lib/aws/compute/cors.d.ts +102 -0
  95. package/lib/aws/compute/cors.js +33 -0
  96. package/lib/aws/compute/deployment.d.ts +83 -0
  97. package/lib/aws/compute/deployment.js +158 -0
  98. package/lib/aws/compute/domain-name.d.ts +153 -0
  99. package/lib/aws/compute/domain-name.js +158 -0
  100. package/lib/aws/compute/event-invoke-config.d.ts +2 -2
  101. package/lib/aws/compute/event-invoke-config.js +4 -4
  102. package/lib/aws/compute/event-source-filter.js +2 -2
  103. package/lib/aws/compute/event-source-mapping.d.ts +2 -2
  104. package/lib/aws/compute/event-source-mapping.js +9 -7
  105. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  106. package/lib/aws/compute/event-sources/s3.js +1 -1
  107. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  108. package/lib/aws/compute/event-sources/sqs.js +3 -2
  109. package/lib/aws/compute/fields.js +4 -4
  110. package/lib/aws/compute/function-alias.d.ts +1 -0
  111. package/lib/aws/compute/function-alias.js +8 -2
  112. package/lib/aws/compute/function-base.d.ts +15 -0
  113. package/lib/aws/compute/function-base.js +4 -4
  114. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  115. package/lib/aws/compute/function-destinations/function.js +1 -1
  116. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  117. package/lib/aws/compute/function-nodejs/bundling.d.ts +75 -0
  118. package/lib/aws/compute/function-nodejs/bundling.js +405 -0
  119. package/lib/aws/compute/function-nodejs/function.d.ts +99 -0
  120. package/lib/aws/compute/function-nodejs/function.js +175 -0
  121. package/lib/aws/compute/function-nodejs/index.d.ts +2 -0
  122. package/lib/aws/compute/function-nodejs/index.js +19 -0
  123. package/lib/aws/compute/function-nodejs/package-installation.d.ts +8 -0
  124. package/lib/aws/compute/function-nodejs/package-installation.js +36 -0
  125. package/lib/aws/compute/function-nodejs/package-manager.d.ts +33 -0
  126. package/lib/aws/compute/function-nodejs/package-manager.js +99 -0
  127. package/lib/aws/compute/function-nodejs/types.d.ts +410 -0
  128. package/lib/aws/compute/function-nodejs/types.js +81 -0
  129. package/lib/aws/compute/function-nodejs/util.d.ts +60 -0
  130. package/lib/aws/compute/function-nodejs/util.js +202 -0
  131. package/lib/aws/compute/function-url.d.ts +2 -2
  132. package/lib/aws/compute/function-url.js +4 -4
  133. package/lib/aws/compute/function.d.ts +34 -4
  134. package/lib/aws/compute/function.js +91 -17
  135. package/lib/aws/compute/gateway-response.d.ts +157 -0
  136. package/lib/aws/compute/gateway-response.js +156 -0
  137. package/lib/aws/compute/handler.d.ts +10 -0
  138. package/lib/aws/compute/handler.js +20 -0
  139. package/lib/aws/compute/index.d.ts +27 -0
  140. package/lib/aws/compute/index.js +29 -1
  141. package/lib/aws/compute/instance-types.js +1 -1
  142. package/lib/aws/compute/instance.js +1 -1
  143. package/lib/aws/compute/integration.d.ts +311 -0
  144. package/lib/aws/compute/integration.js +165 -0
  145. package/lib/aws/compute/integrations/aws.d.ts +72 -0
  146. package/lib/aws/compute/integrations/aws.js +55 -0
  147. package/lib/aws/compute/integrations/http.d.ts +37 -0
  148. package/lib/aws/compute/integrations/http.js +35 -0
  149. package/lib/aws/compute/integrations/index.d.ts +6 -0
  150. package/lib/aws/compute/integrations/index.js +24 -0
  151. package/lib/aws/compute/integrations/lambda.d.ts +40 -0
  152. package/lib/aws/compute/integrations/lambda.js +73 -0
  153. package/lib/aws/compute/integrations/mock.d.ts +16 -0
  154. package/lib/aws/compute/integrations/mock.js +30 -0
  155. package/lib/aws/compute/integrations/request-context.d.ts +144 -0
  156. package/lib/aws/compute/integrations/request-context.js +3 -0
  157. package/lib/aws/compute/integrations/stepfunctions.d.ts +102 -0
  158. package/lib/aws/compute/integrations/stepfunctions.js +268 -0
  159. package/lib/aws/compute/ip-addresses.js +2 -2
  160. package/lib/aws/compute/ipam.js +1 -1
  161. package/lib/aws/compute/json-schema.d.ts +75 -0
  162. package/lib/aws/compute/json-schema.js +23 -0
  163. package/lib/aws/compute/key-pair.js +1 -1
  164. package/lib/aws/compute/lambda-api.d.ts +46 -0
  165. package/lib/aws/compute/lambda-api.js +64 -0
  166. package/lib/aws/compute/launch-template.js +2 -2
  167. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  168. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  169. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  170. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  171. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  172. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  173. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  174. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  175. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  176. package/lib/aws/compute/load-balancer.js +3 -3
  177. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  178. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  179. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  180. package/lib/aws/compute/machine-image/common.js +1 -1
  181. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  182. package/lib/aws/compute/method.d.ts +219 -0
  183. package/lib/aws/compute/method.js +396 -0
  184. package/lib/aws/compute/methodresponse.d.ts +28 -0
  185. package/lib/aws/compute/methodresponse.js +3 -0
  186. package/lib/aws/compute/model.d.ts +143 -0
  187. package/lib/aws/compute/model.js +141 -0
  188. package/lib/aws/compute/nat.js +5 -5
  189. package/lib/aws/compute/network-acl-types.js +2 -2
  190. package/lib/aws/compute/network-acl.js +3 -3
  191. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  192. package/lib/aws/compute/nlb/network-listener.js +1 -1
  193. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  194. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  195. package/lib/aws/compute/peer.js +1 -1
  196. package/lib/aws/compute/placement-group.js +1 -1
  197. package/lib/aws/compute/port.js +1 -1
  198. package/lib/aws/compute/prefix-list.js +1 -1
  199. package/lib/aws/compute/requestvalidator.d.ts +50 -0
  200. package/lib/aws/compute/requestvalidator.js +59 -0
  201. package/lib/aws/compute/resource.d.ts +223 -0
  202. package/lib/aws/compute/resource.js +316 -0
  203. package/lib/aws/compute/restapi.d.ts +510 -0
  204. package/lib/aws/compute/restapi.js +626 -0
  205. package/lib/aws/compute/route.js +8 -8
  206. package/lib/aws/compute/runtime.d.ts +282 -0
  207. package/lib/aws/compute/runtime.js +337 -0
  208. package/lib/aws/compute/scalable-target.js +3 -3
  209. package/lib/aws/compute/schedule.js +3 -3
  210. package/lib/aws/compute/security-group.js +1 -1
  211. package/lib/aws/compute/stage.d.ts +350 -0
  212. package/lib/aws/compute/stage.js +304 -0
  213. package/lib/aws/compute/state-graph.js +1 -1
  214. package/lib/aws/compute/state-machine-fragment.js +1 -1
  215. package/lib/aws/compute/state-machine.js +4 -4
  216. package/lib/aws/compute/states/choice.js +1 -1
  217. package/lib/aws/compute/states/custom-state.js +1 -1
  218. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  219. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  220. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  221. package/lib/aws/compute/states/distributed-map.js +1 -1
  222. package/lib/aws/compute/states/fail.js +1 -1
  223. package/lib/aws/compute/states/map-base.js +1 -1
  224. package/lib/aws/compute/states/map.js +1 -1
  225. package/lib/aws/compute/states/parallel.js +1 -1
  226. package/lib/aws/compute/states/pass.js +2 -2
  227. package/lib/aws/compute/states/state.js +1 -1
  228. package/lib/aws/compute/states/succeed.js +1 -1
  229. package/lib/aws/compute/states/task-base.js +2 -2
  230. package/lib/aws/compute/states/task.js +1 -1
  231. package/lib/aws/compute/states/wait.js +2 -2
  232. package/lib/aws/compute/step-scaling-action.js +3 -3
  233. package/lib/aws/compute/step-scaling-policy.js +1 -1
  234. package/lib/aws/compute/stepfunctions-api.d.ts +103 -0
  235. package/lib/aws/compute/stepfunctions-api.js +39 -0
  236. package/lib/aws/compute/subnet-v2.js +2 -2
  237. package/lib/aws/compute/subnet.js +1 -1
  238. package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
  239. package/lib/aws/compute/task-credentials.js +1 -1
  240. package/lib/aws/compute/task-input.js +1 -1
  241. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  242. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  243. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  244. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  245. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  246. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  247. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  248. package/lib/aws/compute/types.js +1 -1
  249. package/lib/aws/compute/usage-plan.d.ts +194 -0
  250. package/lib/aws/compute/usage-plan.js +174 -0
  251. package/lib/aws/compute/user-data.js +3 -3
  252. package/lib/aws/compute/volume.js +2 -2
  253. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  254. package/lib/aws/compute/vpc-endpoint.js +6 -6
  255. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  256. package/lib/aws/compute/vpc-link.d.ts +104 -0
  257. package/lib/aws/compute/vpc-link.js +137 -0
  258. package/lib/aws/compute/vpc-v2-base.js +1 -1
  259. package/lib/aws/compute/vpc-v2.js +2 -2
  260. package/lib/aws/compute/vpc.js +4 -4
  261. package/lib/aws/compute/vpn.js +3 -3
  262. package/lib/aws/edge/certificate.js +1 -1
  263. package/lib/aws/edge/distribution.js +3 -3
  264. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  265. package/lib/aws/edge/dns-record.js +13 -13
  266. package/lib/aws/edge/dns-zone.js +1 -1
  267. package/lib/aws/edge/function.js +2 -2
  268. package/lib/aws/edge/key-value-store.js +4 -4
  269. package/lib/aws/edge/origin.js +3 -3
  270. package/lib/aws/edge/response-headers-policy.js +1 -1
  271. package/lib/aws/encryption/alias.js +1 -1
  272. package/lib/aws/encryption/key.js +1 -1
  273. package/lib/aws/encryption/via-service-principal.js +1 -1
  274. package/lib/aws/iam/grant.js +2 -2
  275. package/lib/aws/iam/group.js +1 -1
  276. package/lib/aws/iam/instance-profile.js +1 -1
  277. package/lib/aws/iam/managed-policy.js +1 -1
  278. package/lib/aws/iam/oidc-provider.js +1 -1
  279. package/lib/aws/iam/policy-document.js +1 -1
  280. package/lib/aws/iam/policy-statement.js +1 -1
  281. package/lib/aws/iam/policy.js +1 -1
  282. package/lib/aws/iam/principals.js +20 -20
  283. package/lib/aws/iam/role.js +1 -1
  284. package/lib/aws/iam/saml-provider.js +2 -2
  285. package/lib/aws/iam/unknown-principal.js +1 -1
  286. package/lib/aws/iam/user.js +5 -5
  287. package/lib/aws/index.d.ts +1 -0
  288. package/lib/aws/index.js +4 -1
  289. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  290. package/lib/aws/network/subnet-group.js +3 -3
  291. package/lib/aws/network/subnet.js +4 -4
  292. package/lib/aws/notify/archive.js +1 -1
  293. package/lib/aws/notify/connection.js +3 -3
  294. package/lib/aws/notify/event-bus.js +3 -3
  295. package/lib/aws/notify/event-pattern.js +1 -1
  296. package/lib/aws/notify/input.js +2 -2
  297. package/lib/aws/notify/kinesis-stream.js +1 -1
  298. package/lib/aws/notify/notification-rule.d.ts +1 -1
  299. package/lib/aws/notify/notification-rule.js +5 -5
  300. package/lib/aws/notify/policy.js +1 -1
  301. package/lib/aws/notify/queue-policy.js +1 -1
  302. package/lib/aws/notify/queue.js +1 -1
  303. package/lib/aws/notify/resource-policy.js +1 -1
  304. package/lib/aws/notify/rule.js +1 -1
  305. package/lib/aws/notify/schedule.js +1 -1
  306. package/lib/aws/notify/subscription-filter.js +1 -1
  307. package/lib/aws/notify/subscription.js +4 -4
  308. package/lib/aws/notify/subscriptions/email.js +1 -1
  309. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  310. package/lib/aws/notify/subscriptions/sms.js +1 -1
  311. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  312. package/lib/aws/notify/subscriptions/url.js +1 -1
  313. package/lib/aws/notify/targets/event-bus.js +1 -1
  314. package/lib/aws/notify/targets/function.js +1 -1
  315. package/lib/aws/notify/targets/log-group.js +2 -2
  316. package/lib/aws/notify/targets/sqs.js +1 -1
  317. package/lib/aws/notify/targets/state-machine.js +1 -1
  318. package/lib/aws/notify/topic-base.js +1 -1
  319. package/lib/aws/notify/topic.js +6 -5
  320. package/lib/aws/partition.d.ts +21 -0
  321. package/lib/aws/partition.js +42 -0
  322. package/lib/aws/storage/assets/image-asset.d.ts +379 -0
  323. package/lib/aws/storage/assets/image-asset.js +247 -0
  324. package/lib/aws/storage/assets/index.d.ts +2 -0
  325. package/lib/aws/storage/assets/index.js +21 -0
  326. package/lib/aws/storage/assets/s3.d.ts +125 -0
  327. package/lib/aws/storage/assets/s3.js +80 -0
  328. package/lib/aws/storage/auth-token.d.ts +25 -0
  329. package/lib/aws/storage/auth-token.js +54 -0
  330. package/lib/aws/storage/billing.js +1 -1
  331. package/lib/aws/storage/bucket-notifications.js +1 -1
  332. package/lib/aws/storage/bucket-policy.js +1 -1
  333. package/lib/aws/storage/bucket-source.d.ts +1 -1
  334. package/lib/aws/storage/bucket-source.js +4 -4
  335. package/lib/aws/storage/bucket.d.ts +14 -6
  336. package/lib/aws/storage/bucket.js +48 -40
  337. package/lib/aws/storage/capacity.js +1 -1
  338. package/lib/aws/storage/ecr-lifecycle.d.ts +88 -0
  339. package/lib/aws/storage/ecr-lifecycle.js +23 -0
  340. package/lib/aws/storage/ecr-repository.d.ts +446 -0
  341. package/lib/aws/storage/ecr-repository.js +685 -0
  342. package/lib/aws/storage/encryption.js +1 -1
  343. package/lib/aws/storage/index.d.ts +5 -0
  344. package/lib/aws/storage/index.js +10 -3
  345. package/lib/aws/storage/location.d.ts +17 -0
  346. package/lib/aws/storage/location.js +4 -0
  347. package/lib/aws/storage/notification-targets/function.js +1 -1
  348. package/lib/aws/storage/notification-targets/queue.js +1 -1
  349. package/lib/aws/storage/origin-access-identity.js +1 -1
  350. package/lib/aws/storage/parameter.js +2 -2
  351. package/lib/aws/storage/table.js +3 -3
  352. package/lib/aws/storage/util.d.ts +8 -20
  353. package/lib/aws/storage/util.js +56 -34
  354. package/lib/aws/util.d.ts +1 -0
  355. package/lib/aws/util.js +6 -1
  356. package/lib/bundling.d.ts +434 -0
  357. package/lib/bundling.js +368 -0
  358. package/lib/construct-base.js +2 -2
  359. package/lib/duration.js +1 -1
  360. package/lib/expiration.js +1 -1
  361. package/lib/fs/copy.d.ts +2 -0
  362. package/lib/fs/copy.js +57 -0
  363. package/lib/fs/fingerprint.d.ts +21 -0
  364. package/lib/fs/fingerprint.js +165 -0
  365. package/lib/fs/ignore.d.ts +107 -0
  366. package/lib/fs/ignore.js +190 -0
  367. package/lib/fs/index.d.ts +47 -0
  368. package/lib/fs/index.js +88 -0
  369. package/lib/fs/options.d.ts +110 -0
  370. package/lib/fs/options.js +60 -0
  371. package/lib/fs/utils.d.ts +11 -0
  372. package/lib/fs/utils.js +34 -0
  373. package/lib/index.d.ts +5 -0
  374. package/lib/index.js +7 -1
  375. package/lib/private/asset-staging.d.ts +83 -0
  376. package/lib/private/asset-staging.js +205 -0
  377. package/lib/private/cache.d.ts +17 -0
  378. package/lib/private/cache.js +35 -0
  379. package/lib/private/jsii-deprecated.d.ts +2 -0
  380. package/lib/private/jsii-deprecated.js +19 -0
  381. package/lib/private/unique-resource-name.js +3 -2
  382. package/lib/size.js +1 -1
  383. package/lib/stack-base.js +1 -1
  384. package/lib/terra-func.js +2 -2
  385. package/lib/time-zone.js +1 -1
  386. package/node_modules/@balena/dockerignore/CHANGELOG.md +31 -0
  387. package/node_modules/@balena/dockerignore/LICENSE.md +206 -0
  388. package/node_modules/@balena/dockerignore/README.md +261 -0
  389. package/node_modules/@balena/dockerignore/ignore.js +363 -0
  390. package/node_modules/@balena/dockerignore/index.d.ts +45 -0
  391. package/node_modules/@balena/dockerignore/package.json +49 -0
  392. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  393. package/node_modules/balanced-match/LICENSE.md +21 -0
  394. package/node_modules/balanced-match/README.md +97 -0
  395. package/node_modules/balanced-match/index.js +62 -0
  396. package/node_modules/balanced-match/package.json +48 -0
  397. package/node_modules/concat-map/.travis.yml +4 -0
  398. package/node_modules/concat-map/LICENSE +18 -0
  399. package/node_modules/concat-map/README.markdown +62 -0
  400. package/node_modules/concat-map/example/map.js +6 -0
  401. package/node_modules/concat-map/index.js +13 -0
  402. package/node_modules/concat-map/package.json +43 -0
  403. package/node_modules/concat-map/test/map.js +39 -0
  404. package/node_modules/ignore/LICENSE-MIT +21 -0
  405. package/node_modules/ignore/README.md +412 -0
  406. package/node_modules/ignore/index.d.ts +61 -0
  407. package/node_modules/ignore/index.js +636 -0
  408. package/node_modules/ignore/legacy.js +559 -0
  409. package/node_modules/ignore/package.json +74 -0
  410. package/node_modules/minimatch/LICENSE +15 -0
  411. package/node_modules/minimatch/README.md +230 -0
  412. package/node_modules/minimatch/minimatch.js +947 -0
  413. package/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
  414. package/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
  415. package/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
  416. package/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
  417. package/node_modules/minimatch/package.json +33 -0
  418. package/package.json +14 -5
  419. package/lib/aws/compute/function-nodejs.d.ts +0 -55
  420. package/lib/aws/compute/function-nodejs.js +0 -70
@@ -0,0 +1,359 @@
1
+ import { BundlingOptions } from "./bundling";
2
+ /**
3
+ * Common interface for all assets.
4
+ */
5
+ export interface IAsset {
6
+ /**
7
+ * A hash of this asset, which is available at construction time. As this is a plain string, it
8
+ * can be used in construct IDs in order to enforce creation of a new resource when the content
9
+ * hash has changed.
10
+ */
11
+ readonly assetHash: string;
12
+ }
13
+ /**
14
+ * Asset hash options
15
+ */
16
+ export interface AssetOptions {
17
+ /**
18
+ * Specify a custom hash for this asset. If `assetHashType` is set it must
19
+ * be set to `AssetHashType.CUSTOM`. For consistency, this custom hash will
20
+ * be SHA256 hashed and encoded as hex. The resulting hash will be the asset
21
+ * hash.
22
+ *
23
+ * NOTE: the hash is used in order to identify a specific revision of the asset, and
24
+ * used for optimizing and caching deployment activities related to this asset such as
25
+ * packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will
26
+ * need to make sure it is updated every time the asset changes, or otherwise it is
27
+ * possible that some deployments will not be invalidated.
28
+ *
29
+ * @default - based on `assetHashType`
30
+ */
31
+ readonly assetHash?: string;
32
+ /**
33
+ * Specifies the type of hash to calculate for this asset.
34
+ *
35
+ * If `assetHash` is configured, this option must be `undefined` or
36
+ * `AssetHashType.CUSTOM`.
37
+ *
38
+ * @default - the default is `AssetHashType.SOURCE`, but if `assetHash` is
39
+ * explicitly specified this value defaults to `AssetHashType.CUSTOM`.
40
+ */
41
+ readonly assetHashType?: AssetHashType;
42
+ /**
43
+ * Bundle the asset by executing a command in a Docker container or a custom bundling provider.
44
+ *
45
+ * The asset path will be mounted at `/asset-input`. The Docker
46
+ * container is responsible for putting content at `/asset-output`.
47
+ * The content at `/asset-output` will be zipped and used as the
48
+ * final asset.
49
+ *
50
+ * @default - uploaded as-is to S3 if the asset is a regular file or a .zip file,
51
+ * archived into a .zip file and uploaded to S3 otherwise
52
+ */
53
+ readonly bundling?: BundlingOptions;
54
+ }
55
+ /**
56
+ * The type of asset hash
57
+ *
58
+ * NOTE: the hash is used in order to identify a specific revision of the asset, and
59
+ * used for optimizing and caching deployment activities related to this asset such as
60
+ * packaging, uploading to Amazon S3, etc.
61
+ */
62
+ export declare enum AssetHashType {
63
+ /**
64
+ * Based on the content of the source path
65
+ *
66
+ * When bundling, use `SOURCE` when the content of the bundling output is not
67
+ * stable across repeated bundling operations.
68
+ */
69
+ SOURCE = "source",
70
+ /**
71
+ * Based on the content of the bundled path
72
+ *
73
+ * @deprecated use `OUTPUT` instead
74
+ */
75
+ BUNDLE = "bundle",
76
+ /**
77
+ * Based on the content of the bundling output
78
+ *
79
+ * Use `OUTPUT` when the source of the asset is a top level folder containing
80
+ * code and/or dependencies that are not directly linked to the asset.
81
+ */
82
+ OUTPUT = "output",
83
+ /**
84
+ * Use a custom hash
85
+ */
86
+ CUSTOM = "custom"
87
+ }
88
+ /**
89
+ * Represents the source for a file asset.
90
+ */
91
+ export interface FileAssetSource {
92
+ /**
93
+ * A hash on the content source. This hash is used to uniquely identify this
94
+ * asset throughout the system. If this value doesn't change, the asset will
95
+ * not be rebuilt or republished.
96
+ */
97
+ readonly sourceHash: string;
98
+ /**
99
+ * The path, relative to the root of the cloud assembly, in which this asset
100
+ * source resides. This can be a path to a file or a directory, depending on the
101
+ * packaging type.
102
+ *
103
+ */
104
+ readonly fileName: string;
105
+ /**
106
+ * Which type of packaging to perform.
107
+ *
108
+ * @default - Required if `fileName` is specified.
109
+ */
110
+ readonly packaging?: FileAssetPackaging;
111
+ /**
112
+ * Whether or not the asset needs to exist beyond deployment time; i.e.
113
+ * are copied over to a different location and not needed afterwards.
114
+ * Setting this property to true has an impact on the lifecycle of the asset,
115
+ * because we will assume that it is safe to delete after the Terraform
116
+ * deployment succeeds.
117
+ *
118
+ * For example, Lambda Function assets are copied over to Lambda during
119
+ * deployment. Therefore, it is not necessary to store the asset in S3, so
120
+ * we consider those deployTime assets.
121
+ *
122
+ * @default false
123
+ */
124
+ readonly deployTime?: boolean;
125
+ }
126
+ export interface DockerImageAssetSource {
127
+ /**
128
+ * The hash of the contents of the docker build context. This hash is used
129
+ * throughout the system to identify this image and avoid duplicate work
130
+ * in case the source did not change.
131
+ *
132
+ * NOTE: this means that if you wish to update your docker image, you
133
+ * must make a modification to the source (e.g. add some metadata to your Dockerfile).
134
+ */
135
+ readonly sourceHash: string;
136
+ /**
137
+ * The directory where the Dockerfile is stored, must be relative
138
+ * to the cloud assembly root.
139
+ */
140
+ readonly directoryName: string;
141
+ /**
142
+ * Build args to pass to the `docker build` command.
143
+ *
144
+ * Since Docker build arguments are resolved before deployment, keys and
145
+ * values cannot refer to unresolved tokens (such as `lambda.functionArn` or
146
+ * `queue.queueUrl`).
147
+ *
148
+ * Only allowed when `directoryName` is specified.
149
+ *
150
+ * @default - no build args are passed
151
+ */
152
+ readonly dockerBuildArgs?: {
153
+ [key: string]: string;
154
+ };
155
+ /**
156
+ * Build secrets to pass to the `docker build` command.
157
+ *
158
+ * Since Docker build secrets are resolved before deployment, keys and
159
+ * values cannot refer to unresolved tokens (such as `lambda.functionArn` or
160
+ * `queue.queueUrl`).
161
+ *
162
+ * Only allowed when `directoryName` is specified.
163
+ *
164
+ * @default - no build secrets are passed
165
+ */
166
+ readonly dockerBuildSecrets?: {
167
+ [key: string]: string;
168
+ };
169
+ /**
170
+ * SSH agent socket or keys to pass to the `docker buildx` command.
171
+ *
172
+ *
173
+ * @default - no ssh arg is passed
174
+ */
175
+ readonly dockerBuildSsh?: string;
176
+ /**
177
+ * Docker target to build to
178
+ *
179
+ * Only allowed when `directoryName` is specified.
180
+ *
181
+ * @default - no target
182
+ */
183
+ readonly dockerBuildTarget?: string;
184
+ /**
185
+ * Path to the Dockerfile (relative to the directory).
186
+ *
187
+ * Only allowed when `directoryName` is specified.
188
+ *
189
+ * @default - no file
190
+ */
191
+ readonly dockerFile?: string;
192
+ /**
193
+ * Networking mode for the RUN commands during build. _Requires Docker Engine API v1.25+_.
194
+ *
195
+ * Specify this property to build images on a specific networking mode.
196
+ *
197
+ * @default - no networking mode specified
198
+ */
199
+ readonly networkMode?: string;
200
+ /**
201
+ * Platform to build for. _Requires Docker Buildx_.
202
+ *
203
+ * Specify this property to build images on a specific platform.
204
+ *
205
+ * @default - no platform specified (the current machine architecture will be used)
206
+ */
207
+ readonly platform?: string;
208
+ /**
209
+ * Outputs to pass to the `docker build` command.
210
+ *
211
+ * @default - no build args are passed
212
+ */
213
+ readonly dockerOutputs?: string[];
214
+ /**
215
+ * Unique identifier of the docker image asset and its potential revisions.
216
+ *
217
+ * @default - no asset name
218
+ */
219
+ readonly assetName?: string;
220
+ /**
221
+ * Cache from options to pass to the `docker build` command.
222
+ *
223
+ * @default - no cache from args are passed
224
+ */
225
+ readonly dockerCacheFrom?: DockerCacheOption[];
226
+ /**
227
+ * Cache to options to pass to the `docker build` command.
228
+ *
229
+ * @default - no cache to args are passed
230
+ */
231
+ readonly dockerCacheTo?: DockerCacheOption;
232
+ /**
233
+ * Disable the cache and pass `--no-cache` to the `docker build` command.
234
+ *
235
+ * @default - cache is used
236
+ */
237
+ readonly dockerCacheDisabled?: boolean;
238
+ }
239
+ /**
240
+ * Packaging modes for file assets.
241
+ */
242
+ export declare enum FileAssetPackaging {
243
+ /**
244
+ * The asset source path points to a directory, which should be archived using
245
+ * zip and and then uploaded to cloud provider object storage (e.g. Amazon S3).
246
+ */
247
+ ZIP_DIRECTORY = "zip",
248
+ /**
249
+ * The asset source path points to a single file, which should be uploaded
250
+ * to cloud provider object storage (e.g. Amazon S3).
251
+ */
252
+ FILE = "file"
253
+ }
254
+ /**
255
+ * The location of the published file asset. This is where the asset
256
+ * can be consumed at runtime.
257
+ */
258
+ export interface FileAssetLocation {
259
+ /**
260
+ * The name of the Amazon S3 bucket.
261
+ */
262
+ readonly bucketName: string;
263
+ /**
264
+ * The Amazon S3 object key.
265
+ */
266
+ readonly objectKey: string;
267
+ /**
268
+ * The HTTP URL of this asset on Amazon S3.
269
+ * @default - value specified in `httpUrl` is used.
270
+ * @deprecated use `httpUrl`
271
+ */
272
+ readonly s3Url?: string;
273
+ /**
274
+ * The HTTP URL of this asset on Amazon S3.
275
+ *
276
+ * This value suitable for inclusion in a CloudFormation template, and
277
+ * may be an encoded token.
278
+ *
279
+ * Example value: `https://s3-us-east-1.amazonaws.com/mybucket/myobject`
280
+ */
281
+ readonly httpUrl: string;
282
+ /**
283
+ * The S3 URL of this asset on Amazon S3.
284
+ *
285
+ * This value suitable for inclusion in a CloudFormation template, and
286
+ * may be an encoded token.
287
+ *
288
+ * Example value: `s3://mybucket/myobject`
289
+ */
290
+ readonly s3ObjectUrl: string;
291
+ /**
292
+ * The ARN of the KMS key used to encrypt the file asset bucket, if any.
293
+ *
294
+ * The CDK bootstrap stack comes with a key policy that does not require
295
+ * setting this property, so you only need to set this property if you
296
+ * have customized the bootstrap stack to require it.
297
+ *
298
+ * @default - Asset bucket is not encrypted, or decryption permissions are
299
+ * defined by a Key Policy.
300
+ */
301
+ readonly kmsKeyArn?: string;
302
+ /**
303
+ * Like `s3ObjectUrl`, but not suitable for CloudFormation consumption
304
+ *
305
+ * If there are placeholders in the S3 URL, they will be returned un-replaced
306
+ * and un-evaluated.
307
+ *
308
+ * @default - This feature cannot be used
309
+ */
310
+ readonly s3ObjectUrlWithPlaceholders?: string;
311
+ }
312
+ /**
313
+ * The location of the published docker image. This is where the image can be
314
+ * consumed at runtime.
315
+ */
316
+ export interface DockerImageAssetLocation {
317
+ /**
318
+ * The URI of the image in Amazon ECR (including a tag).
319
+ */
320
+ readonly imageUri: string;
321
+ /**
322
+ * The name of the ECR repository.
323
+ */
324
+ readonly repositoryName: string;
325
+ /**
326
+ * The tag of the image in Amazon ECR.
327
+ * @default - the hash of the asset, or the `dockerTagPrefix` concatenated with the asset hash if a `dockerTagPrefix` is specified in the stack synthesizer
328
+ */
329
+ readonly imageTag?: string;
330
+ }
331
+ /**
332
+ * Options for configuring the Docker cache backend
333
+ */
334
+ export interface DockerCacheOption {
335
+ /**
336
+ * The type of cache to use.
337
+ * Refer to https://docs.docker.com/build/cache/backends/ for full list of backends.
338
+ * @default - unspecified
339
+ *
340
+ * @example 'registry'
341
+ */
342
+ readonly type: string;
343
+ /**
344
+ * Any parameters to pass into the docker cache backend configuration.
345
+ * Refer to https://docs.docker.com/build/cache/backends/ for cache backend configuration.
346
+ * @default {} No options provided
347
+ *
348
+ * @example
349
+ * declare const branch: string;
350
+ *
351
+ * const params = {
352
+ * ref: `12345678.dkr.ecr.us-west-2.amazonaws.com/cache:${branch}`,
353
+ * mode: "max",
354
+ * };
355
+ */
356
+ readonly params?: {
357
+ [key: string]: string;
358
+ };
359
+ }
package/lib/assets.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ // https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/core/lib/assets.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FileAssetPackaging = exports.AssetHashType = void 0;
5
+ /**
6
+ * The type of asset hash
7
+ *
8
+ * NOTE: the hash is used in order to identify a specific revision of the asset, and
9
+ * used for optimizing and caching deployment activities related to this asset such as
10
+ * packaging, uploading to Amazon S3, etc.
11
+ */
12
+ var AssetHashType;
13
+ (function (AssetHashType) {
14
+ /**
15
+ * Based on the content of the source path
16
+ *
17
+ * When bundling, use `SOURCE` when the content of the bundling output is not
18
+ * stable across repeated bundling operations.
19
+ */
20
+ AssetHashType["SOURCE"] = "source";
21
+ /**
22
+ * Based on the content of the bundled path
23
+ *
24
+ * @deprecated use `OUTPUT` instead
25
+ */
26
+ AssetHashType["BUNDLE"] = "bundle";
27
+ /**
28
+ * Based on the content of the bundling output
29
+ *
30
+ * Use `OUTPUT` when the source of the asset is a top level folder containing
31
+ * code and/or dependencies that are not directly linked to the asset.
32
+ */
33
+ AssetHashType["OUTPUT"] = "output";
34
+ /**
35
+ * Use a custom hash
36
+ */
37
+ AssetHashType["CUSTOM"] = "custom";
38
+ })(AssetHashType || (exports.AssetHashType = AssetHashType = {}));
39
+ /**
40
+ * Packaging modes for file assets.
41
+ */
42
+ var FileAssetPackaging;
43
+ (function (FileAssetPackaging) {
44
+ /**
45
+ * The asset source path points to a directory, which should be archived using
46
+ * zip and and then uploaded to cloud provider object storage (e.g. Amazon S3).
47
+ */
48
+ FileAssetPackaging["ZIP_DIRECTORY"] = "zip";
49
+ /**
50
+ * The asset source path points to a single file, which should be uploaded
51
+ * to cloud provider object storage (e.g. Amazon S3).
52
+ */
53
+ FileAssetPackaging["FILE"] = "file";
54
+ })(FileAssetPackaging || (exports.FileAssetPackaging = FileAssetPackaging = {}));
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Fzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUZBQXVGOzs7QUE2RHZGOzs7Ozs7R0FNRztBQUNILElBQVksYUE0Qlg7QUE1QkQsV0FBWSxhQUFhO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsa0NBQWlCLENBQUE7SUFFakI7Ozs7T0FJRztJQUNILGtDQUFpQixDQUFBO0lBRWpCOzs7OztPQUtHO0lBQ0gsa0NBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCxrQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBNUJXLGFBQWEsNkJBQWIsYUFBYSxRQTRCeEI7QUF5TUQ7O0dBRUc7QUFDSCxJQUFZLGtCQVlYO0FBWkQsV0FBWSxrQkFBa0I7SUFDNUI7OztPQUdHO0lBQ0gsMkNBQXFCLENBQUE7SUFFckI7OztPQUdHO0lBQ0gsbUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFaVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQVk3QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL2Fzc2V0cy50c1xuXG5pbXBvcnQgeyBCdW5kbGluZ09wdGlvbnMgfSBmcm9tIFwiLi9idW5kbGluZ1wiO1xuXG4vKipcbiAqIENvbW1vbiBpbnRlcmZhY2UgZm9yIGFsbCBhc3NldHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFzc2V0IHtcbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpbiBzdHJpbmcsIGl0XG4gICAqIGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuIHRoZSBjb250ZW50XG4gICAqIGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqL1xuICByZWFkb25seSBhc3NldEhhc2g6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBc3NldCBoYXNoIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NldE9wdGlvbnMge1xuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBoYXNoIGZvciB0aGlzIGFzc2V0LiBJZiBgYXNzZXRIYXNoVHlwZWAgaXMgc2V0IGl0IG11c3RcbiAgICogYmUgc2V0IHRvIGBBc3NldEhhc2hUeXBlLkNVU1RPTWAuIEZvciBjb25zaXN0ZW5jeSwgdGhpcyBjdXN0b20gaGFzaCB3aWxsXG4gICAqIGJlIFNIQTI1NiBoYXNoZWQgYW5kIGVuY29kZWQgYXMgaGV4LiBUaGUgcmVzdWx0aW5nIGhhc2ggd2lsbCBiZSB0aGUgYXNzZXRcbiAgICogaGFzaC5cbiAgICpcbiAgICogTk9URTogdGhlIGhhc2ggaXMgdXNlZCBpbiBvcmRlciB0byBpZGVudGlmeSBhIHNwZWNpZmljIHJldmlzaW9uIG9mIHRoZSBhc3NldCwgYW5kXG4gICAqIHVzZWQgZm9yIG9wdGltaXppbmcgYW5kIGNhY2hpbmcgZGVwbG95bWVudCBhY3Rpdml0aWVzIHJlbGF0ZWQgdG8gdGhpcyBhc3NldCBzdWNoIGFzXG4gICAqIHBhY2thZ2luZywgdXBsb2FkaW5nIHRvIEFtYXpvbiBTMywgZXRjLiBJZiB5b3UgY2hvc2UgdG8gY3VzdG9taXplIHRoZSBoYXNoLCB5b3Ugd2lsbFxuICAgKiBuZWVkIHRvIG1ha2Ugc3VyZSBpdCBpcyB1cGRhdGVkIGV2ZXJ5IHRpbWUgdGhlIGFzc2V0IGNoYW5nZXMsIG9yIG90aGVyd2lzZSBpdCBpc1xuICAgKiBwb3NzaWJsZSB0aGF0IHNvbWUgZGVwbG95bWVudHMgd2lsbCBub3QgYmUgaW52YWxpZGF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYmFzZWQgb24gYGFzc2V0SGFzaFR5cGVgXG4gICAqL1xuICByZWFkb25seSBhc3NldEhhc2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBoYXNoIHRvIGNhbGN1bGF0ZSBmb3IgdGhpcyBhc3NldC5cbiAgICpcbiAgICogSWYgYGFzc2V0SGFzaGAgaXMgY29uZmlndXJlZCwgdGhpcyBvcHRpb24gbXVzdCBiZSBgdW5kZWZpbmVkYCBvclxuICAgKiBgQXNzZXRIYXNoVHlwZS5DVVNUT01gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IGlzIGBBc3NldEhhc2hUeXBlLlNPVVJDRWAsIGJ1dCBpZiBgYXNzZXRIYXNoYCBpc1xuICAgKiBleHBsaWNpdGx5IHNwZWNpZmllZCB0aGlzIHZhbHVlIGRlZmF1bHRzIHRvIGBBc3NldEhhc2hUeXBlLkNVU1RPTWAuXG4gICAqL1xuICByZWFkb25seSBhc3NldEhhc2hUeXBlPzogQXNzZXRIYXNoVHlwZTtcblxuICAvKipcbiAgICogQnVuZGxlIHRoZSBhc3NldCBieSBleGVjdXRpbmcgYSBjb21tYW5kIGluIGEgRG9ja2VyIGNvbnRhaW5lciBvciBhIGN1c3RvbSBidW5kbGluZyBwcm92aWRlci5cbiAgICpcbiAgICogVGhlIGFzc2V0IHBhdGggd2lsbCBiZSBtb3VudGVkIGF0IGAvYXNzZXQtaW5wdXRgLiBUaGUgRG9ja2VyXG4gICAqIGNvbnRhaW5lciBpcyByZXNwb25zaWJsZSBmb3IgcHV0dGluZyBjb250ZW50IGF0IGAvYXNzZXQtb3V0cHV0YC5cbiAgICogVGhlIGNvbnRlbnQgYXQgYC9hc3NldC1vdXRwdXRgIHdpbGwgYmUgemlwcGVkIGFuZCB1c2VkIGFzIHRoZVxuICAgKiBmaW5hbCBhc3NldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1cGxvYWRlZCBhcy1pcyB0byBTMyBpZiB0aGUgYXNzZXQgaXMgYSByZWd1bGFyIGZpbGUgb3IgYSAuemlwIGZpbGUsXG4gICAqIGFyY2hpdmVkIGludG8gYSAuemlwIGZpbGUgYW5kIHVwbG9hZGVkIHRvIFMzIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmc/OiBCdW5kbGluZ09wdGlvbnM7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgYXNzZXQgaGFzaFxuICpcbiAqIE5PVEU6IHRoZSBoYXNoIGlzIHVzZWQgaW4gb3JkZXIgdG8gaWRlbnRpZnkgYSBzcGVjaWZpYyByZXZpc2lvbiBvZiB0aGUgYXNzZXQsIGFuZFxuICogdXNlZCBmb3Igb3B0aW1pemluZyBhbmQgY2FjaGluZyBkZXBsb3ltZW50IGFjdGl2aXRpZXMgcmVsYXRlZCB0byB0aGlzIGFzc2V0IHN1Y2ggYXNcbiAqIHBhY2thZ2luZywgdXBsb2FkaW5nIHRvIEFtYXpvbiBTMywgZXRjLlxuICovXG5leHBvcnQgZW51bSBBc3NldEhhc2hUeXBlIHtcbiAgLyoqXG4gICAqIEJhc2VkIG9uIHRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgcGF0aFxuICAgKlxuICAgKiBXaGVuIGJ1bmRsaW5nLCB1c2UgYFNPVVJDRWAgd2hlbiB0aGUgY29udGVudCBvZiB0aGUgYnVuZGxpbmcgb3V0cHV0IGlzIG5vdFxuICAgKiBzdGFibGUgYWNyb3NzIHJlcGVhdGVkIGJ1bmRsaW5nIG9wZXJhdGlvbnMuXG4gICAqL1xuICBTT1VSQ0UgPSBcInNvdXJjZVwiLFxuXG4gIC8qKlxuICAgKiBCYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUgYnVuZGxlZCBwYXRoXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgT1VUUFVUYCBpbnN0ZWFkXG4gICAqL1xuICBCVU5ETEUgPSBcImJ1bmRsZVwiLFxuXG4gIC8qKlxuICAgKiBCYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUgYnVuZGxpbmcgb3V0cHV0XG4gICAqXG4gICAqIFVzZSBgT1VUUFVUYCB3aGVuIHRoZSBzb3VyY2Ugb2YgdGhlIGFzc2V0IGlzIGEgdG9wIGxldmVsIGZvbGRlciBjb250YWluaW5nXG4gICAqIGNvZGUgYW5kL29yIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgbGlua2VkIHRvIHRoZSBhc3NldC5cbiAgICovXG4gIE9VVFBVVCA9IFwib3V0cHV0XCIsXG5cbiAgLyoqXG4gICAqIFVzZSBhIGN1c3RvbSBoYXNoXG4gICAqL1xuICBDVVNUT00gPSBcImN1c3RvbVwiLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNvdXJjZSBmb3IgYSBmaWxlIGFzc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVBc3NldFNvdXJjZSB7XG4gIC8qKlxuICAgKiBBIGhhc2ggb24gdGhlIGNvbnRlbnQgc291cmNlLiBUaGlzIGhhc2ggaXMgdXNlZCB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzXG4gICAqIGFzc2V0IHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gSWYgdGhpcyB2YWx1ZSBkb2Vzbid0IGNoYW5nZSwgdGhlIGFzc2V0IHdpbGxcbiAgICogbm90IGJlIHJlYnVpbHQgb3IgcmVwdWJsaXNoZWQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VIYXNoOiBzdHJpbmc7XG5cbiAgLy8gVE9ETzogU3VwcG9ydCBleGVjdXRhYmxlIGZlYXR1cmVcbiAgLy8gLyoqXG4gIC8vICAqIEFuIGV4dGVybmFsIGNvbW1hbmQgdGhhdCB3aWxsIHByb2R1Y2UgdGhlIHBhY2thZ2VkIGFzc2V0LlxuICAvLyAgKlxuICAvLyAgKiBUaGUgY29tbWFuZCBzaG91bGQgcHJvZHVjZSB0aGUgbG9jYXRpb24gb2YgYSBaSVAgZmlsZSBvbiBgc3Rkb3V0YC5cbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgLSBFeGFjdGx5IG9uZSBvZiBgZmlsZU5hbWVgIGFuZCBgZXhlY3V0YWJsZWAgaXMgcmVxdWlyZWRcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGV4ZWN1dGFibGU/OiBzdHJpbmdbXTtcbiAgLy8gKiBAZGVmYXVsdCAtIEV4YWN0bHkgb25lIG9mIGBmaWxlTmFtZWAgYW5kIGBleGVjdXRhYmxlYCBpcyByZXF1aXJlZFxuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCwgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIGNsb3VkIGFzc2VtYmx5LCBpbiB3aGljaCB0aGlzIGFzc2V0XG4gICAqIHNvdXJjZSByZXNpZGVzLiBUaGlzIGNhbiBiZSBhIHBhdGggdG8gYSBmaWxlIG9yIGEgZGlyZWN0b3J5LCBkZXBlbmRpbmcgb24gdGhlXG4gICAqIHBhY2thZ2luZyB0eXBlLlxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hpY2ggdHlwZSBvZiBwYWNrYWdpbmcgdG8gcGVyZm9ybS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZXF1aXJlZCBpZiBgZmlsZU5hbWVgIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZz86IEZpbGVBc3NldFBhY2thZ2luZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGFzc2V0IG5lZWRzIHRvIGV4aXN0IGJleW9uZCBkZXBsb3ltZW50IHRpbWU7IGkuZS5cbiAgICogYXJlIGNvcGllZCBvdmVyIHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uIGFuZCBub3QgbmVlZGVkIGFmdGVyd2FyZHMuXG4gICAqIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGhhcyBhbiBpbXBhY3Qgb24gdGhlIGxpZmVjeWNsZSBvZiB0aGUgYXNzZXQsXG4gICAqIGJlY2F1c2Ugd2Ugd2lsbCBhc3N1bWUgdGhhdCBpdCBpcyBzYWZlIHRvIGRlbGV0ZSBhZnRlciB0aGUgVGVycmFmb3JtXG4gICAqIGRlcGxveW1lbnQgc3VjY2VlZHMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBMYW1iZGEgRnVuY3Rpb24gYXNzZXRzIGFyZSBjb3BpZWQgb3ZlciB0byBMYW1iZGEgZHVyaW5nXG4gICAqIGRlcGxveW1lbnQuIFRoZXJlZm9yZSwgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBzdG9yZSB0aGUgYXNzZXQgaW4gUzMsIHNvXG4gICAqIHdlIGNvbnNpZGVyIHRob3NlIGRlcGxveVRpbWUgYXNzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95VGltZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldFNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgaGFzaCBvZiB0aGUgY29udGVudHMgb2YgdGhlIGRvY2tlciBidWlsZCBjb250ZXh0LiBUaGlzIGhhc2ggaXMgdXNlZFxuICAgKiB0aHJvdWdob3V0IHRoZSBzeXN0ZW0gdG8gaWRlbnRpZnkgdGhpcyBpbWFnZSBhbmQgYXZvaWQgZHVwbGljYXRlIHdvcmtcbiAgICogaW4gY2FzZSB0aGUgc291cmNlIGRpZCBub3QgY2hhbmdlLlxuICAgKlxuICAgKiBOT1RFOiB0aGlzIG1lYW5zIHRoYXQgaWYgeW91IHdpc2ggdG8gdXBkYXRlIHlvdXIgZG9ja2VyIGltYWdlLCB5b3VcbiAgICogbXVzdCBtYWtlIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBzb3VyY2UgKGUuZy4gYWRkIHNvbWUgbWV0YWRhdGEgdG8geW91ciBEb2NrZXJmaWxlKS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUhhc2g6IHN0cmluZztcblxuICAvLyBUT0RPOiBTdXBwb3J0IGV4ZWN1dGFibGUgZmVhdHVyZVxuICAvLyAvKipcbiAgLy8gICogQW4gZXh0ZXJuYWwgY29tbWFuZCB0aGF0IHdpbGwgcHJvZHVjZSB0aGUgcGFja2FnZWQgYXNzZXQuXG4gIC8vICAqXG4gIC8vICAqIFRoZSBjb21tYW5kIHNob3VsZCBwcm9kdWNlIHRoZSBuYW1lIG9mIGEgbG9jYWwgRG9ja2VyIGltYWdlIG9uIGBzdGRvdXRgLlxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIEV4YWN0bHkgb25lIG9mIGBkaXJlY3RvcnlOYW1lYCBhbmQgYGV4ZWN1dGFibGVgIGlzIHJlcXVpcmVkXG4gIC8vICAqL1xuICAvLyByZWFkb25seSBleGVjdXRhYmxlPzogc3RyaW5nW107XG4gIC8vICogQGRlZmF1bHQgLSBFeGFjdGx5IG9uZSBvZiBgZGlyZWN0b3J5TmFtZWAgYW5kIGBleGVjdXRhYmxlYCBpcyByZXF1aXJlZFxuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZCwgbXVzdCBiZSByZWxhdGl2ZVxuICAgKiB0byB0aGUgY2xvdWQgYXNzZW1ibHkgcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdG9yeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICpcbiAgICogT25seSBhbGxvd2VkIHdoZW4gYGRpcmVjdG9yeU5hbWVgIGlzIHNwZWNpZmllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHNlY3JldHMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogU2luY2UgRG9ja2VyIGJ1aWxkIHNlY3JldHMgYXJlIHJlc29sdmVkIGJlZm9yZSBkZXBsb3ltZW50LCBrZXlzIGFuZFxuICAgKiB2YWx1ZXMgY2Fubm90IHJlZmVyIHRvIHVucmVzb2x2ZWQgdG9rZW5zIChzdWNoIGFzIGBsYW1iZGEuZnVuY3Rpb25Bcm5gIG9yXG4gICAqIGBxdWV1ZS5xdWV1ZVVybGApLlxuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5TmFtZWAgaXMgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIHNlY3JldHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQnVpbGRTZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogU1NIIGFnZW50IHNvY2tldCBvciBrZXlzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGR4YCBjb21tYW5kLlxuICAgKlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNzaCBhcmcgaXMgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJCdWlsZFNzaD86IHN0cmluZztcblxuICAvKipcbiAgICogRG9ja2VyIHRhcmdldCB0byBidWlsZCB0b1xuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5TmFtZWAgaXMgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQnVpbGRUYXJnZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIERvY2tlcmZpbGUgKHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkpLlxuICAgKlxuICAgKiBPbmx5IGFsbG93ZWQgd2hlbiBgZGlyZWN0b3J5TmFtZWAgaXMgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckZpbGU/OiBzdHJpbmc7XG5cbiAgLy8gLyoqXG4gIC8vICAqIEVDUiByZXBvc2l0b3J5IG5hbWVcbiAgLy8gICpcbiAgLy8gICogU3BlY2lmeSB0aGlzIHByb3BlcnR5IGlmIHlvdSBuZWVkIHRvIHN0YXRpY2FsbHkgYWRkcmVzcyB0aGUgaW1hZ2UsIGUuZy5cbiAgLy8gICogZnJvbSBhIEt1YmVybmV0ZXMgUG9kLiBOb3RlLCB0aGlzIGlzIG9ubHkgdGhlIHJlcG9zaXRvcnkgbmFtZSwgd2l0aG91dCB0aGVcbiAgLy8gICogcmVnaXN0cnkgYW5kIHRoZSB0YWcgcGFydHMuXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBkZXJpdmVkIGZyb20gdGhlIGFzc2V0J3MgSUQuXG4gIC8vICAqIEBkZXByZWNhdGVkIHJlcG9zaXRvcnkgbmFtZSBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IHRoZSBlbnZpcm9ubWVudC1sZXZlbCBhbmQgbm90IGF0IHRoZSBpbWFnZSBsZXZlbFxuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmtpbmcgbW9kZSBmb3IgdGhlIFJVTiBjb21tYW5kcyBkdXJpbmcgYnVpbGQuIF9SZXF1aXJlcyBEb2NrZXIgRW5naW5lIEFQSSB2MS4yNStfLlxuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgcHJvcGVydHkgdG8gYnVpbGQgaW1hZ2VzIG9uIGEgc3BlY2lmaWMgbmV0d29ya2luZyBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldHdvcmtpbmcgbW9kZSBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbGF0Zm9ybSB0byBidWlsZCBmb3IuIF9SZXF1aXJlcyBEb2NrZXIgQnVpbGR4Xy5cbiAgICpcbiAgICogU3BlY2lmeSB0aGlzIHByb3BlcnR5IHRvIGJ1aWxkIGltYWdlcyBvbiBhIHNwZWNpZmljIHBsYXRmb3JtLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBsYXRmb3JtIHNwZWNpZmllZCAodGhlIGN1cnJlbnQgbWFjaGluZSBhcmNoaXRlY3R1cmUgd2lsbCBiZSB1c2VkKVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE91dHB1dHMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlck91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRvY2tlciBpbWFnZSBhc3NldCBhbmQgaXRzIHBvdGVudGlhbCByZXZpc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXNzZXQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDYWNoZSBmcm9tIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYWNoZSBmcm9tIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQ2FjaGVGcm9tPzogRG9ja2VyQ2FjaGVPcHRpb25bXTtcblxuICAvKipcbiAgICogQ2FjaGUgdG8gb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhY2hlIHRvIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQ2FjaGVUbz86IERvY2tlckNhY2hlT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBjYWNoZSBhbmQgcGFzcyBgLS1uby1jYWNoZWAgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gY2FjaGUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyQ2FjaGVEaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFja2FnaW5nIG1vZGVzIGZvciBmaWxlIGFzc2V0cy5cbiAqL1xuZXhwb3J0IGVudW0gRmlsZUFzc2V0UGFja2FnaW5nIHtcbiAgLyoqXG4gICAqIFRoZSBhc3NldCBzb3VyY2UgcGF0aCBwb2ludHMgdG8gYSBkaXJlY3RvcnksIHdoaWNoIHNob3VsZCBiZSBhcmNoaXZlZCB1c2luZ1xuICAgKiB6aXAgYW5kIGFuZCB0aGVuIHVwbG9hZGVkIHRvIGNsb3VkIHByb3ZpZGVyIG9iamVjdCBzdG9yYWdlIChlLmcuIEFtYXpvbiBTMykuXG4gICAqL1xuICBaSVBfRElSRUNUT1JZID0gXCJ6aXBcIixcblxuICAvKipcbiAgICogVGhlIGFzc2V0IHNvdXJjZSBwYXRoIHBvaW50cyB0byBhIHNpbmdsZSBmaWxlLCB3aGljaCBzaG91bGQgYmUgdXBsb2FkZWRcbiAgICogdG8gY2xvdWQgcHJvdmlkZXIgb2JqZWN0IHN0b3JhZ2UgKGUuZy4gQW1hem9uIFMzKS5cbiAgICovXG4gIEZJTEUgPSBcImZpbGVcIixcbn1cblxuLyoqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGhlIHB1Ymxpc2hlZCBmaWxlIGFzc2V0LiBUaGlzIGlzIHdoZXJlIHRoZSBhc3NldFxuICogY2FuIGJlIGNvbnN1bWVkIGF0IHJ1bnRpbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUFzc2V0TG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBTMyBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUzMgb2JqZWN0IGtleS5cbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdEtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUCBVUkwgb2YgdGhpcyBhc3NldCBvbiBBbWF6b24gUzMuXG4gICAqIEBkZWZhdWx0IC0gdmFsdWUgc3BlY2lmaWVkIGluIGBodHRwVXJsYCBpcyB1c2VkLlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGh0dHBVcmxgXG4gICAqL1xuICByZWFkb25seSBzM1VybD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEhUVFAgVVJMIG9mIHRoaXMgYXNzZXQgb24gQW1hem9uIFMzLlxuICAgKlxuICAgKiBUaGlzIHZhbHVlIHN1aXRhYmxlIGZvciBpbmNsdXNpb24gaW4gYSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSwgYW5kXG4gICAqIG1heSBiZSBhbiBlbmNvZGVkIHRva2VuLlxuICAgKlxuICAgKiBFeGFtcGxlIHZhbHVlOiBgaHR0cHM6Ly9zMy11cy1lYXN0LTEuYW1hem9uYXdzLmNvbS9teWJ1Y2tldC9teW9iamVjdGBcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFMzIFVSTCBvZiB0aGlzIGFzc2V0IG9uIEFtYXpvbiBTMy5cbiAgICpcbiAgICogVGhpcyB2YWx1ZSBzdWl0YWJsZSBmb3IgaW5jbHVzaW9uIGluIGEgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUsIGFuZFxuICAgKiBtYXkgYmUgYW4gZW5jb2RlZCB0b2tlbi5cbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYHMzOi8vbXlidWNrZXQvbXlvYmplY3RgXG4gICAqL1xuICByZWFkb25seSBzM09iamVjdFVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgZmlsZSBhc3NldCBidWNrZXQsIGlmIGFueS5cbiAgICpcbiAgICogVGhlIENESyBib290c3RyYXAgc3RhY2sgY29tZXMgd2l0aCBhIGtleSBwb2xpY3kgdGhhdCBkb2VzIG5vdCByZXF1aXJlXG4gICAqIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSwgc28geW91IG9ubHkgbmVlZCB0byBzZXQgdGhpcyBwcm9wZXJ0eSBpZiB5b3VcbiAgICogaGF2ZSBjdXN0b21pemVkIHRoZSBib290c3RyYXAgc3RhY2sgdG8gcmVxdWlyZSBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBc3NldCBidWNrZXQgaXMgbm90IGVuY3J5cHRlZCwgb3IgZGVjcnlwdGlvbiBwZXJtaXNzaW9ucyBhcmVcbiAgICogZGVmaW5lZCBieSBhIEtleSBQb2xpY3kuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXlBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpa2UgYHMzT2JqZWN0VXJsYCwgYnV0IG5vdCBzdWl0YWJsZSBmb3IgQ2xvdWRGb3JtYXRpb24gY29uc3VtcHRpb25cbiAgICpcbiAgICogSWYgdGhlcmUgYXJlIHBsYWNlaG9sZGVycyBpbiB0aGUgUzMgVVJMLCB0aGV5IHdpbGwgYmUgcmV0dXJuZWQgdW4tcmVwbGFjZWRcbiAgICogYW5kIHVuLWV2YWx1YXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGlzIGZlYXR1cmUgY2Fubm90IGJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHMzT2JqZWN0VXJsV2l0aFBsYWNlaG9sZGVycz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGhlIHB1Ymxpc2hlZCBkb2NrZXIgaW1hZ2UuIFRoaXMgaXMgd2hlcmUgdGhlIGltYWdlIGNhbiBiZVxuICogY29uc3VtZWQgYXQgcnVudGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZUFzc2V0TG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIFVSSSBvZiB0aGUgaW1hZ2UgaW4gQW1hem9uIEVDUiAoaW5jbHVkaW5nIGEgdGFnKS5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBFQ1IgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgb2YgdGhlIGltYWdlIGluIEFtYXpvbiBFQ1IuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGhhc2ggb2YgdGhlIGFzc2V0LCBvciB0aGUgYGRvY2tlclRhZ1ByZWZpeGAgY29uY2F0ZW5hdGVkIHdpdGggdGhlIGFzc2V0IGhhc2ggaWYgYSBgZG9ja2VyVGFnUHJlZml4YCBpcyBzcGVjaWZpZWQgaW4gdGhlIHN0YWNrIHN5bnRoZXNpemVyXG4gICAqL1xuICByZWFkb25seSBpbWFnZVRhZz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgRG9ja2VyIGNhY2hlIGJhY2tlbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDYWNoZU9wdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjYWNoZSB0byB1c2UuXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgZnVsbCBsaXN0IG9mIGJhY2tlbmRzLlxuICAgKiBAZGVmYXVsdCAtIHVuc3BlY2lmaWVkXG4gICAqXG4gICAqIEBleGFtcGxlICdyZWdpc3RyeSdcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFueSBwYXJhbWV0ZXJzIHRvIHBhc3MgaW50byB0aGUgZG9ja2VyIGNhY2hlIGJhY2tlbmQgY29uZmlndXJhdGlvbi5cbiAgICogUmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvIGZvciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHt9IE5vIG9wdGlvbnMgcHJvdmlkZWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZGVjbGFyZSBjb25zdCBicmFuY2g6IHN0cmluZztcbiAgICpcbiAgICogY29uc3QgcGFyYW1zID0ge1xuICAgKiAgIHJlZjogYDEyMzQ1Njc4LmRrci5lY3IudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vY2FjaGU6JHticmFuY2h9YCxcbiAgICogICBtb2RlOiBcIm1heFwiLFxuICAgKiB9O1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cbiJdfQ==