@aws-cdk/toolkit-lib 0.3.1 → 0.3.3

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 (367) hide show
  1. package/README.md +1 -1
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/actions/bootstrap/index.d.ts +1 -1
  5. package/lib/actions/bootstrap/index.js +5 -5
  6. package/lib/actions/deploy/index.d.ts +1 -1
  7. package/lib/actions/deploy/index.js +1 -1
  8. package/lib/actions/deploy/private/deploy-options.d.ts +1 -1
  9. package/lib/actions/deploy/private/deploy-options.js +1 -1
  10. package/lib/actions/deploy/private/helpers.d.ts +3 -2
  11. package/lib/actions/deploy/private/helpers.js +3 -3
  12. package/lib/actions/diff/private/helpers.d.ts +5 -9
  13. package/lib/actions/diff/private/helpers.js +6 -23
  14. package/lib/api/aws-auth/account-cache.d.ts +41 -0
  15. package/lib/api/aws-auth/account-cache.js +108 -0
  16. package/lib/api/aws-auth/awscli-compatible.d.ts +70 -0
  17. package/lib/api/aws-auth/awscli-compatible.js +250 -0
  18. package/lib/api/aws-auth/cached.d.ts +11 -0
  19. package/lib/api/aws-auth/cached.js +26 -0
  20. package/lib/api/aws-auth/credential-plugins.d.ts +38 -0
  21. package/lib/api/aws-auth/credential-plugins.js +154 -0
  22. package/lib/api/aws-auth/private/index.d.ts +11 -0
  23. package/lib/api/aws-auth/private/index.js +37 -0
  24. package/lib/api/aws-auth/provider-caching.d.ts +13 -0
  25. package/lib/api/aws-auth/provider-caching.js +24 -0
  26. package/lib/api/aws-auth/proxy-agent.d.ts +13 -0
  27. package/lib/api/aws-auth/proxy-agent.js +54 -0
  28. package/lib/api/aws-auth/sdk-logger.d.ts +69 -0
  29. package/lib/api/aws-auth/sdk-logger.js +128 -0
  30. package/lib/api/aws-auth/sdk-provider.d.ts +195 -0
  31. package/lib/api/aws-auth/sdk-provider.js +373 -0
  32. package/lib/api/aws-auth/sdk.d.ts +235 -0
  33. package/lib/api/aws-auth/sdk.js +391 -0
  34. package/lib/api/aws-auth/tracing.d.ts +11 -0
  35. package/lib/api/aws-auth/tracing.js +60 -0
  36. package/lib/api/aws-auth/types.d.ts +79 -1
  37. package/lib/api/aws-auth/types.js +74 -1
  38. package/lib/api/aws-auth/user-agent.d.ts +7 -0
  39. package/lib/api/aws-auth/user-agent.js +20 -0
  40. package/lib/api/aws-auth/util.d.ts +6 -0
  41. package/lib/api/aws-auth/util.js +21 -0
  42. package/lib/api/bootstrap/bootstrap-environment.d.ts +35 -0
  43. package/lib/api/bootstrap/bootstrap-environment.js +323 -0
  44. package/lib/api/bootstrap/bootstrap-props.d.ts +130 -0
  45. package/lib/api/bootstrap/bootstrap-props.js +14 -0
  46. package/lib/api/bootstrap/deploy-bootstrap.d.ts +39 -0
  47. package/lib/api/bootstrap/deploy-bootstrap.js +147 -0
  48. package/lib/api/bootstrap/index.d.ts +3 -0
  49. package/lib/api/bootstrap/index.js +23 -0
  50. package/lib/api/bootstrap/legacy-template.d.ts +2 -0
  51. package/lib/api/bootstrap/legacy-template.js +82 -0
  52. package/lib/api/cloud-assembly/environment.d.ts +43 -0
  53. package/lib/api/cloud-assembly/environment.js +127 -0
  54. package/lib/api/cloud-assembly/index.d.ts +1 -1
  55. package/lib/api/cloud-assembly/index.js +3 -3
  56. package/lib/api/cloud-assembly/private/context-aware-source.d.ts +1 -1
  57. package/lib/api/cloud-assembly/private/context-aware-source.js +5 -5
  58. package/lib/api/cloud-assembly/private/prepare-source.d.ts +2 -1
  59. package/lib/api/cloud-assembly/private/prepare-source.js +14 -12
  60. package/lib/api/cloud-assembly/private/readable-assembly.d.ts +1 -1
  61. package/lib/api/cloud-assembly/private/readable-assembly.js +1 -1
  62. package/lib/api/cloud-assembly/private/source-builder.js +10 -8
  63. package/lib/api/cloud-assembly/private/stack-assembly.d.ts +2 -1
  64. package/lib/api/cloud-assembly/private/stack-assembly.js +10 -9
  65. package/lib/api/cloud-assembly/stack-assembly.d.ts +55 -0
  66. package/lib/api/cloud-assembly/stack-assembly.js +139 -0
  67. package/lib/api/cloud-assembly/stack-collection.d.ts +27 -0
  68. package/lib/api/cloud-assembly/stack-collection.js +112 -0
  69. package/lib/api/cloud-assembly/stack-selector.d.ts +81 -2
  70. package/lib/api/cloud-assembly/stack-selector.js +62 -5
  71. package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +85 -0
  72. package/lib/api/cloudformation/evaluate-cloudformation-template.js +456 -0
  73. package/lib/api/cloudformation/index.d.ts +4 -0
  74. package/lib/api/cloudformation/index.js +21 -0
  75. package/lib/api/cloudformation/nested-stack-helpers.d.ts +25 -0
  76. package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
  77. package/lib/api/cloudformation/stack-helpers.d.ts +96 -0
  78. package/lib/api/cloudformation/stack-helpers.js +163 -0
  79. package/lib/api/cloudformation/template-body-parameter.d.ts +22 -0
  80. package/lib/api/cloudformation/template-body-parameter.js +104 -0
  81. package/lib/api/context.d.ts +40 -0
  82. package/lib/api/context.js +84 -0
  83. package/lib/api/deployments/asset-manifest-builder.d.ts +8 -0
  84. package/lib/api/deployments/asset-manifest-builder.js +33 -0
  85. package/lib/api/deployments/asset-publishing.d.ts +60 -0
  86. package/lib/api/deployments/asset-publishing.js +144 -0
  87. package/lib/api/deployments/assets.d.ts +11 -0
  88. package/lib/api/deployments/assets.js +109 -0
  89. package/lib/api/deployments/cfn-api.d.ts +145 -0
  90. package/lib/api/deployments/cfn-api.js +444 -0
  91. package/lib/api/deployments/checks.d.ts +9 -0
  92. package/lib/api/deployments/checks.js +72 -0
  93. package/lib/api/deployments/deploy-stack.d.ts +164 -0
  94. package/lib/api/deployments/deploy-stack.js +490 -0
  95. package/lib/api/deployments/deployment-method.d.ts +24 -0
  96. package/lib/api/deployments/deployment-method.js +3 -0
  97. package/lib/api/deployments/deployment-result.d.ts +21 -0
  98. package/lib/api/deployments/deployment-result.js +10 -0
  99. package/lib/api/deployments/deployments.d.ts +289 -0
  100. package/lib/api/deployments/deployments.js +355 -0
  101. package/lib/api/deployments/index.d.ts +6 -0
  102. package/lib/api/deployments/index.js +27 -0
  103. package/lib/api/diff/diff-formatter.d.ts +147 -0
  104. package/lib/api/diff/diff-formatter.js +225 -0
  105. package/lib/api/diff/index.d.ts +1 -0
  106. package/lib/api/diff/index.js +18 -0
  107. package/lib/api/environment/environment-access.d.ts +139 -0
  108. package/lib/api/environment/environment-access.js +205 -0
  109. package/lib/api/environment/environment-resources.d.ts +75 -0
  110. package/lib/api/environment/environment-resources.js +213 -0
  111. package/lib/api/environment/index.d.ts +3 -0
  112. package/lib/api/environment/index.js +20 -0
  113. package/lib/api/environment/placeholders.d.ts +10 -0
  114. package/lib/api/environment/placeholders.js +23 -0
  115. package/lib/api/garbage-collection/garbage-collector.d.ts +158 -0
  116. package/lib/api/garbage-collection/garbage-collector.js +614 -0
  117. package/lib/api/garbage-collection/index.d.ts +3 -0
  118. package/lib/api/garbage-collection/index.js +21 -0
  119. package/lib/api/garbage-collection/progress-printer.d.ts +23 -0
  120. package/lib/api/garbage-collection/progress-printer.js +80 -0
  121. package/lib/api/garbage-collection/stack-refresh.d.ts +49 -0
  122. package/lib/api/garbage-collection/stack-refresh.js +152 -0
  123. package/lib/api/hotswap/appsync-mapping-templates.d.ts +4 -0
  124. package/lib/api/hotswap/appsync-mapping-templates.js +162 -0
  125. package/lib/api/hotswap/code-build-projects.d.ts +4 -0
  126. package/lib/api/hotswap/code-build-projects.js +62 -0
  127. package/lib/api/hotswap/common.d.ts +89 -0
  128. package/lib/api/hotswap/common.js +137 -0
  129. package/lib/api/hotswap/ecs-services.d.ts +4 -0
  130. package/lib/api/hotswap/ecs-services.js +159 -0
  131. package/lib/api/hotswap/hotswap-deployments.d.ts +17 -0
  132. package/lib/api/hotswap/hotswap-deployments.js +441 -0
  133. package/lib/api/hotswap/index.d.ts +2 -0
  134. package/lib/api/hotswap/index.js +19 -0
  135. package/lib/api/hotswap/lambda-functions.d.ts +4 -0
  136. package/lib/api/hotswap/lambda-functions.js +297 -0
  137. package/lib/api/hotswap/s3-bucket-deployments.d.ts +5 -0
  138. package/lib/api/hotswap/s3-bucket-deployments.js +117 -0
  139. package/lib/api/hotswap/stepfunctions-state-machines.d.ts +4 -0
  140. package/lib/api/hotswap/stepfunctions-state-machines.js +48 -0
  141. package/lib/api/index.d.ts +25 -0
  142. package/lib/api/index.js +42 -0
  143. package/lib/api/io/index.d.ts +3 -1
  144. package/lib/api/io/index.js +18 -1
  145. package/lib/api/io/io-host.d.ts +15 -0
  146. package/lib/api/io/io-host.js +3 -0
  147. package/lib/api/io/io-message.d.ts +76 -0
  148. package/lib/api/io/io-message.js +3 -0
  149. package/lib/api/io/private/index.d.ts +7 -1
  150. package/lib/api/io/private/index.js +8 -5
  151. package/lib/api/io/private/io-default-messages.d.ts +21 -0
  152. package/lib/api/io/private/io-default-messages.js +59 -0
  153. package/lib/api/io/private/io-helper.d.ts +32 -0
  154. package/lib/api/io/private/io-helper.js +51 -0
  155. package/lib/api/io/private/level-priority.d.ts +11 -0
  156. package/lib/api/io/private/level-priority.js +33 -0
  157. package/lib/api/io/private/message-maker.d.ts +89 -0
  158. package/lib/api/io/private/message-maker.js +60 -0
  159. package/lib/api/io/private/messages.d.ts +178 -0
  160. package/lib/api/io/private/messages.js +534 -0
  161. package/lib/api/io/private/span.d.ts +93 -0
  162. package/lib/api/io/private/span.js +87 -0
  163. package/lib/api/io/private/testing/fake-io-host.d.ts +28 -0
  164. package/lib/api/io/private/testing/fake-io-host.js +41 -0
  165. package/lib/api/io/private/testing/index.d.ts +2 -0
  166. package/lib/api/io/private/testing/index.js +19 -0
  167. package/lib/api/io/private/testing/test-io-host.d.ts +27 -0
  168. package/lib/api/io/private/testing/test-io-host.js +61 -0
  169. package/lib/api/io/private/types.d.ts +4 -0
  170. package/lib/api/io/private/types.js +3 -0
  171. package/lib/api/io/toolkit-action.d.ts +4 -0
  172. package/lib/api/io/toolkit-action.js +3 -0
  173. package/lib/api/logs-monitor/find-cloudwatch-logs.d.ts +25 -0
  174. package/lib/api/logs-monitor/find-cloudwatch-logs.js +95 -0
  175. package/lib/api/logs-monitor/index.d.ts +2 -0
  176. package/lib/api/logs-monitor/index.js +19 -0
  177. package/lib/api/logs-monitor/logs-monitor.d.ts +76 -0
  178. package/lib/api/logs-monitor/logs-monitor.js +194 -0
  179. package/lib/api/notices.d.ts +210 -0
  180. package/lib/api/notices.js +430 -0
  181. package/lib/api/plugin/context-provider-plugin.d.ts +6 -0
  182. package/lib/api/plugin/context-provider-plugin.js +7 -0
  183. package/lib/api/plugin/index.d.ts +3 -0
  184. package/lib/api/plugin/index.js +20 -0
  185. package/lib/api/plugin/mode.d.ts +4 -0
  186. package/lib/api/plugin/mode.js +9 -0
  187. package/lib/api/plugin/plugin.d.ts +72 -0
  188. package/lib/api/plugin/plugin.js +132 -0
  189. package/lib/api/private.d.ts +1 -0
  190. package/lib/api/private.js +18 -0
  191. package/lib/api/refactoring/cloudformation.d.ts +15 -0
  192. package/lib/api/refactoring/cloudformation.js +3 -0
  193. package/lib/api/refactoring/digest.d.ts +26 -0
  194. package/lib/api/refactoring/digest.js +175 -0
  195. package/lib/api/refactoring/index.d.ts +51 -0
  196. package/lib/api/refactoring/index.js +223 -0
  197. package/lib/api/require-approval.d.ts +17 -0
  198. package/lib/api/require-approval.js +22 -0
  199. package/lib/api/resource-import/importer.d.ts +216 -0
  200. package/lib/api/resource-import/importer.js +331 -0
  201. package/lib/api/resource-import/index.d.ts +2 -0
  202. package/lib/api/resource-import/index.js +19 -0
  203. package/lib/api/resource-import/migrator.d.ts +26 -0
  204. package/lib/api/resource-import/migrator.js +73 -0
  205. package/lib/api/resource-metadata/index.d.ts +1 -0
  206. package/lib/api/resource-metadata/index.js +18 -0
  207. package/lib/api/resource-metadata/resource-metadata.d.ts +24 -0
  208. package/lib/api/resource-metadata/resource-metadata.js +42 -0
  209. package/lib/api/rwlock.d.ts +60 -0
  210. package/lib/api/rwlock.js +204 -0
  211. package/lib/api/settings.d.ts +26 -0
  212. package/lib/api/settings.js +107 -0
  213. package/lib/api/shared-private.d.ts +8 -5
  214. package/lib/api/shared-private.js +2921 -9246
  215. package/lib/api/shared-private.js.map +4 -4
  216. package/lib/api/shared-public.d.ts +179 -37
  217. package/lib/api/shared-public.js +3106 -16
  218. package/lib/api/shared-public.js.map +4 -4
  219. package/lib/api/stack-events/index.d.ts +4 -0
  220. package/lib/api/stack-events/index.js +23 -0
  221. package/lib/api/stack-events/stack-activity-monitor.d.ts +100 -0
  222. package/lib/api/stack-events/stack-activity-monitor.js +164 -0
  223. package/lib/api/stack-events/stack-event-poller.d.ts +69 -0
  224. package/lib/api/stack-events/stack-event-poller.js +130 -0
  225. package/lib/api/stack-events/stack-progress-monitor.d.ts +48 -0
  226. package/lib/api/stack-events/stack-progress-monitor.js +98 -0
  227. package/lib/api/stack-events/stack-status.d.ts +42 -0
  228. package/lib/api/stack-events/stack-status.js +90 -0
  229. package/lib/api/streams.d.ts +7 -0
  230. package/lib/api/streams.js +24 -0
  231. package/lib/api/tags.d.ts +9 -0
  232. package/lib/api/tags.js +10 -0
  233. package/lib/api/toolkit-error.d.ts +86 -0
  234. package/lib/api/toolkit-error.js +132 -0
  235. package/lib/api/toolkit-info.d.ts +52 -0
  236. package/lib/api/toolkit-info.js +157 -0
  237. package/lib/api/tree.d.ts +31 -0
  238. package/lib/api/tree.js +37 -0
  239. package/lib/api/work-graph/index.d.ts +3 -0
  240. package/lib/api/work-graph/index.js +20 -0
  241. package/lib/api/work-graph/work-graph-builder.d.ts +34 -0
  242. package/lib/api/work-graph/work-graph-builder.js +172 -0
  243. package/lib/api/work-graph/work-graph-types.d.ts +50 -0
  244. package/lib/api/work-graph/work-graph-types.js +13 -0
  245. package/lib/api/work-graph/work-graph.d.ts +72 -0
  246. package/lib/api/work-graph/work-graph.js +349 -0
  247. package/lib/context-providers/ami.d.ts +13 -0
  248. package/lib/context-providers/ami.js +52 -0
  249. package/lib/context-providers/availability-zones.d.ts +13 -0
  250. package/lib/context-providers/availability-zones.js +29 -0
  251. package/lib/context-providers/cc-api-provider.d.ts +30 -0
  252. package/lib/context-providers/cc-api-provider.js +145 -0
  253. package/lib/context-providers/endpoint-service-availability-zones.d.ts +13 -0
  254. package/lib/context-providers/endpoint-service-availability-zones.js +35 -0
  255. package/lib/context-providers/hosted-zones.d.ts +12 -0
  256. package/lib/context-providers/hosted-zones.js +69 -0
  257. package/lib/context-providers/index.d.ts +44 -0
  258. package/lib/context-providers/index.js +128 -0
  259. package/lib/context-providers/keys.d.ts +13 -0
  260. package/lib/context-providers/keys.js +54 -0
  261. package/lib/context-providers/load-balancers.d.ts +20 -0
  262. package/lib/context-providers/load-balancers.js +161 -0
  263. package/lib/context-providers/security-groups.d.ts +9 -0
  264. package/lib/context-providers/security-groups.js +69 -0
  265. package/lib/context-providers/ssm-parameters.d.ts +25 -0
  266. package/lib/context-providers/ssm-parameters.js +61 -0
  267. package/lib/context-providers/vpcs.d.ts +13 -0
  268. package/lib/context-providers/vpcs.js +291 -0
  269. package/lib/index.d.ts +1 -0
  270. package/lib/index.js +2 -1
  271. package/lib/index_bg.wasm +0 -0
  272. package/lib/payloads/bootstrap-environment-progress.d.ts +17 -0
  273. package/lib/payloads/bootstrap-environment-progress.js +3 -0
  274. package/lib/payloads/context.d.ts +9 -0
  275. package/lib/payloads/context.js +3 -0
  276. package/lib/payloads/deploy.d.ts +43 -0
  277. package/lib/payloads/deploy.js +3 -0
  278. package/lib/payloads/destroy.d.ts +23 -0
  279. package/lib/payloads/destroy.js +3 -0
  280. package/lib/payloads/diff.d.ts +31 -0
  281. package/lib/payloads/diff.js +22 -0
  282. package/lib/payloads/hotswap.d.ts +211 -0
  283. package/lib/payloads/hotswap.js +43 -0
  284. package/lib/payloads/index.d.ts +17 -0
  285. package/lib/payloads/index.js +34 -0
  286. package/lib/payloads/list.d.ts +4 -0
  287. package/lib/payloads/list.js +3 -0
  288. package/lib/payloads/logs-monitor.d.ts +33 -0
  289. package/lib/payloads/logs-monitor.js +3 -0
  290. package/lib/payloads/progress.d.ts +14 -0
  291. package/lib/payloads/progress.js +3 -0
  292. package/lib/payloads/refactor.d.ts +14 -0
  293. package/lib/payloads/refactor.js +3 -0
  294. package/lib/payloads/rollback.d.ts +17 -0
  295. package/lib/payloads/rollback.js +3 -0
  296. package/lib/payloads/sdk-trace.d.ts +20 -0
  297. package/lib/payloads/sdk-trace.js +3 -0
  298. package/lib/payloads/stack-activity.d.ts +53 -0
  299. package/lib/payloads/stack-activity.js +3 -0
  300. package/lib/payloads/stack-details.d.ts +17 -0
  301. package/lib/payloads/stack-details.js +3 -0
  302. package/lib/payloads/synth.d.ts +7 -0
  303. package/lib/payloads/synth.js +3 -0
  304. package/lib/payloads/types.d.ts +95 -0
  305. package/lib/payloads/types.js +3 -0
  306. package/lib/payloads/watch.d.ts +27 -0
  307. package/lib/payloads/watch.js +3 -0
  308. package/lib/private/activity-printer/base.d.ts +50 -0
  309. package/lib/private/activity-printer/base.js +120 -0
  310. package/lib/private/activity-printer/current.d.ts +26 -0
  311. package/lib/private/activity-printer/current.js +122 -0
  312. package/lib/private/activity-printer/display.d.ts +13 -0
  313. package/lib/private/activity-printer/display.js +81 -0
  314. package/lib/private/activity-printer/history.d.ts +32 -0
  315. package/lib/private/activity-printer/history.js +109 -0
  316. package/lib/private/activity-printer/index.d.ts +3 -0
  317. package/lib/private/activity-printer/index.js +20 -0
  318. package/lib/private/index.d.ts +1 -0
  319. package/lib/private/index.js +18 -0
  320. package/lib/private/util.d.ts +1 -1
  321. package/lib/private/util.js +22 -22
  322. package/lib/private/util.js.map +2 -2
  323. package/lib/toolkit/private/index.d.ts +2 -0
  324. package/lib/toolkit/private/index.js +1 -1
  325. package/lib/toolkit/toolkit.d.ts +16 -0
  326. package/lib/toolkit/toolkit.js +158 -124
  327. package/lib/toolkit/types.d.ts +0 -55
  328. package/lib/toolkit/types.js +1 -1
  329. package/lib/util/archive.d.ts +1 -0
  330. package/lib/util/archive.js +86 -0
  331. package/lib/util/arrays.d.ts +14 -0
  332. package/lib/util/arrays.js +36 -0
  333. package/lib/util/bool.d.ts +7 -0
  334. package/lib/util/bool.js +13 -0
  335. package/lib/util/bytes.d.ts +8 -0
  336. package/lib/util/bytes.js +21 -0
  337. package/lib/util/cloudformation.d.ts +16 -0
  338. package/lib/util/cloudformation.js +36 -0
  339. package/lib/util/content-hash.d.ts +5 -0
  340. package/lib/util/content-hash.js +43 -0
  341. package/lib/util/directories.d.ts +22 -0
  342. package/lib/util/directories.js +59 -0
  343. package/lib/util/format-error.d.ts +9 -0
  344. package/lib/util/format-error.js +22 -0
  345. package/lib/util/index.d.ts +18 -0
  346. package/lib/util/index.js +35 -0
  347. package/lib/util/json.d.ts +48 -0
  348. package/lib/util/json.js +68 -0
  349. package/lib/util/objects.d.ts +65 -0
  350. package/lib/util/objects.js +230 -0
  351. package/lib/util/package-info.d.ts +3 -0
  352. package/lib/util/package-info.js +22 -0
  353. package/lib/util/parallel.d.ts +6 -0
  354. package/lib/util/parallel.js +48 -0
  355. package/lib/util/serialize.d.ts +27 -0
  356. package/lib/util/serialize.js +86 -0
  357. package/lib/util/string-manipulation.d.ts +18 -0
  358. package/lib/util/string-manipulation.js +46 -0
  359. package/lib/util/type-brands.d.ts +39 -0
  360. package/lib/util/type-brands.js +39 -0
  361. package/lib/util/types.d.ts +27 -0
  362. package/lib/util/types.js +25 -0
  363. package/lib/util/version-range.d.ts +2 -0
  364. package/lib/util/version-range.js +36 -0
  365. package/lib/util/yaml-cfn.d.ts +15 -0
  366. package/lib/util/yaml-cfn.js +58 -0
  367. package/package.json +12 -13
@@ -0,0 +1,534 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPAN = exports.IO = void 0;
4
+ const make = require("./message-maker");
5
+ /**
6
+ * We have a rough system by which we assign message codes:
7
+ * - First digit groups messages by action, e.g. synth or deploy
8
+ * - X000-X009 are reserved for timings
9
+ * - X900-X999 are reserved for results
10
+ */
11
+ exports.IO = {
12
+ // Defaults (0000)
13
+ DEFAULT_TOOLKIT_INFO: make.info({
14
+ code: 'CDK_TOOLKIT_I0000',
15
+ description: 'Default info messages emitted from the Toolkit',
16
+ }),
17
+ DEFAULT_TOOLKIT_DEBUG: make.debug({
18
+ code: 'CDK_TOOLKIT_I0000',
19
+ description: 'Default debug messages emitted from the Toolkit',
20
+ }),
21
+ DEFAULT_TOOLKIT_WARN: make.warn({
22
+ code: 'CDK_TOOLKIT_W0000',
23
+ description: 'Default warning messages emitted from the Toolkit',
24
+ }),
25
+ DEFAULT_TOOLKIT_ERROR: make.error({
26
+ code: 'CDK_TOOLKIT_E0000',
27
+ description: 'Default error messages emitted from the Toolkit',
28
+ }),
29
+ DEFAULT_TOOLKIT_TRACE: make.trace({
30
+ code: 'CDK_TOOLKIT_I0000',
31
+ description: 'Default trace messages emitted from the Toolkit',
32
+ }),
33
+ // warnings & errors
34
+ CDK_TOOLKIT_W0100: make.warn({
35
+ code: 'CDK_TOOLKIT_W0100',
36
+ description: 'Credential plugin warnings',
37
+ }),
38
+ // 1: Synth (1xxx)
39
+ CDK_TOOLKIT_I1000: make.info({
40
+ code: 'CDK_TOOLKIT_I1000',
41
+ description: 'Provides synthesis times.',
42
+ interface: 'Duration',
43
+ }),
44
+ CDK_TOOLKIT_I1001: make.trace({
45
+ code: 'CDK_TOOLKIT_I1001',
46
+ description: 'Cloud Assembly synthesis is starting',
47
+ interface: 'StackSelectionDetails',
48
+ }),
49
+ CDK_TOOLKIT_I1901: make.result({
50
+ code: 'CDK_TOOLKIT_I1901',
51
+ description: 'Provides stack data',
52
+ interface: 'StackAndAssemblyData',
53
+ }),
54
+ CDK_TOOLKIT_I1902: make.result({
55
+ code: 'CDK_TOOLKIT_I1902',
56
+ description: 'Successfully deployed stacks',
57
+ interface: 'AssemblyData',
58
+ }),
59
+ // 2: List (2xxx)
60
+ CDK_TOOLKIT_I2901: make.result({
61
+ code: 'CDK_TOOLKIT_I2901',
62
+ description: 'Provides details on the selected stacks and their dependencies',
63
+ interface: 'StackDetailsPayload',
64
+ }),
65
+ // 3: Import & Migrate
66
+ CDK_TOOLKIT_E3900: make.error({
67
+ code: 'CDK_TOOLKIT_E3900',
68
+ description: 'Resource import failed',
69
+ interface: 'ErrorPayload',
70
+ }),
71
+ // 4: Diff (4xxx)
72
+ CDK_TOOLKIT_I4000: make.trace({
73
+ code: 'CDK_TOOLKIT_I4000',
74
+ description: 'Diff stacks is starting',
75
+ interface: 'StackSelectionDetails',
76
+ }),
77
+ CDK_TOOLKIT_I4001: make.info({
78
+ code: 'CDK_TOOLKIT_I4001',
79
+ description: 'Output of the diff command',
80
+ interface: 'DiffResult',
81
+ }),
82
+ // 5: Deploy & Watch (5xxx)
83
+ CDK_TOOLKIT_I5000: make.info({
84
+ code: 'CDK_TOOLKIT_I5000',
85
+ description: 'Provides deployment times',
86
+ interface: 'Duration',
87
+ }),
88
+ CDK_TOOLKIT_I5001: make.info({
89
+ code: 'CDK_TOOLKIT_I5001',
90
+ description: 'Provides total time in deploy action, including synth and rollback',
91
+ interface: 'Duration',
92
+ }),
93
+ CDK_TOOLKIT_I5002: make.info({
94
+ code: 'CDK_TOOLKIT_I5002',
95
+ description: 'Provides time for resource migration',
96
+ interface: 'Duration',
97
+ }),
98
+ CDK_TOOLKIT_W5021: make.warn({
99
+ code: 'CDK_TOOLKIT_W5021',
100
+ description: 'Empty non-existent stack, deployment is skipped',
101
+ }),
102
+ CDK_TOOLKIT_W5022: make.warn({
103
+ code: 'CDK_TOOLKIT_W5022',
104
+ description: 'Empty existing stack, stack will be destroyed',
105
+ }),
106
+ CDK_TOOLKIT_I5031: make.info({
107
+ code: 'CDK_TOOLKIT_I5031',
108
+ description: 'Informs about any log groups that are traced as part of the deployment',
109
+ }),
110
+ CDK_TOOLKIT_I5032: make.debug({
111
+ code: 'CDK_TOOLKIT_I5032',
112
+ description: 'Start monitoring log groups',
113
+ interface: 'CloudWatchLogMonitorControlEvent',
114
+ }),
115
+ CDK_TOOLKIT_I5033: make.info({
116
+ code: 'CDK_TOOLKIT_I5033',
117
+ description: 'A log event received from Cloud Watch',
118
+ interface: 'CloudWatchLogEvent',
119
+ }),
120
+ CDK_TOOLKIT_I5034: make.debug({
121
+ code: 'CDK_TOOLKIT_I5034',
122
+ description: 'Stop monitoring log groups',
123
+ interface: 'CloudWatchLogMonitorControlEvent',
124
+ }),
125
+ CDK_TOOLKIT_E5035: make.error({
126
+ code: 'CDK_TOOLKIT_E5035',
127
+ description: 'A log monitoring error',
128
+ interface: 'ErrorPayload',
129
+ }),
130
+ CDK_TOOLKIT_I5050: make.confirm({
131
+ code: 'CDK_TOOLKIT_I5050',
132
+ description: 'Confirm rollback during deployment',
133
+ interface: 'ConfirmationRequest',
134
+ }),
135
+ CDK_TOOLKIT_I5060: make.confirm({
136
+ code: 'CDK_TOOLKIT_I5060',
137
+ description: 'Confirm deploy security sensitive changes',
138
+ interface: 'DeployConfirmationRequest',
139
+ }),
140
+ CDK_TOOLKIT_I5100: make.info({
141
+ code: 'CDK_TOOLKIT_I5100',
142
+ description: 'Stack deploy progress',
143
+ interface: 'StackDeployProgress',
144
+ }),
145
+ // Assets (52xx)
146
+ CDK_TOOLKIT_I5210: make.trace({
147
+ code: 'CDK_TOOLKIT_I5210',
148
+ description: 'Started building a specific asset',
149
+ interface: 'BuildAsset',
150
+ }),
151
+ CDK_TOOLKIT_I5211: make.trace({
152
+ code: 'CDK_TOOLKIT_I5211',
153
+ description: 'Building the asset has completed',
154
+ interface: 'Duration',
155
+ }),
156
+ CDK_TOOLKIT_I5220: make.trace({
157
+ code: 'CDK_TOOLKIT_I5220',
158
+ description: 'Started publishing a specific asset',
159
+ interface: 'PublishAsset',
160
+ }),
161
+ CDK_TOOLKIT_I5221: make.trace({
162
+ code: 'CDK_TOOLKIT_I5221',
163
+ description: 'Publishing the asset has completed',
164
+ interface: 'Duration',
165
+ }),
166
+ // Watch (53xx)
167
+ CDK_TOOLKIT_I5310: make.debug({
168
+ code: 'CDK_TOOLKIT_I5310',
169
+ description: 'The computed settings used for file watching',
170
+ interface: 'WatchSettings',
171
+ }),
172
+ CDK_TOOLKIT_I5311: make.info({
173
+ code: 'CDK_TOOLKIT_I5311',
174
+ description: 'File watching started',
175
+ interface: 'FileWatchEvent',
176
+ }),
177
+ CDK_TOOLKIT_I5312: make.info({
178
+ code: 'CDK_TOOLKIT_I5312',
179
+ description: 'File event detected, starting deployment',
180
+ interface: 'FileWatchEvent',
181
+ }),
182
+ CDK_TOOLKIT_I5313: make.info({
183
+ code: 'CDK_TOOLKIT_I5313',
184
+ description: 'File event detected during active deployment, changes are queued',
185
+ interface: 'FileWatchEvent',
186
+ }),
187
+ CDK_TOOLKIT_I5314: make.info({
188
+ code: 'CDK_TOOLKIT_I5314',
189
+ description: 'Initial watch deployment started',
190
+ }),
191
+ CDK_TOOLKIT_I5315: make.info({
192
+ code: 'CDK_TOOLKIT_I5315',
193
+ description: 'Queued watch deployment started',
194
+ }),
195
+ // Hotswap (54xx)
196
+ CDK_TOOLKIT_I5400: make.trace({
197
+ code: 'CDK_TOOLKIT_I5400',
198
+ description: 'Attempting a hotswap deployment',
199
+ interface: 'HotswapDeploymentAttempt',
200
+ }),
201
+ CDK_TOOLKIT_I5401: make.trace({
202
+ code: 'CDK_TOOLKIT_I5401',
203
+ description: 'Computed details for the hotswap deployment',
204
+ interface: 'HotswapDeploymentDetails',
205
+ }),
206
+ CDK_TOOLKIT_I5402: make.info({
207
+ code: 'CDK_TOOLKIT_I5402',
208
+ description: 'A hotswappable change is processed as part of a hotswap deployment',
209
+ interface: 'HotswappableChange',
210
+ }),
211
+ CDK_TOOLKIT_I5403: make.info({
212
+ code: 'CDK_TOOLKIT_I5403',
213
+ description: 'The hotswappable change has completed processing',
214
+ interface: 'HotswappableChange',
215
+ }),
216
+ CDK_TOOLKIT_I5410: make.info({
217
+ code: 'CDK_TOOLKIT_I5410',
218
+ description: 'Hotswap deployment has ended, a full deployment might still follow if needed',
219
+ interface: 'HotswapResult',
220
+ }),
221
+ // Stack Monitor (55xx)
222
+ CDK_TOOLKIT_I5501: make.info({
223
+ code: 'CDK_TOOLKIT_I5501',
224
+ description: 'Stack Monitoring: Start monitoring of a single stack',
225
+ interface: 'StackMonitoringControlEvent',
226
+ }),
227
+ CDK_TOOLKIT_I5502: make.info({
228
+ code: 'CDK_TOOLKIT_I5502',
229
+ description: 'Stack Monitoring: Activity event for a single stack',
230
+ interface: 'StackActivity',
231
+ }),
232
+ CDK_TOOLKIT_I5503: make.info({
233
+ code: 'CDK_TOOLKIT_I5503',
234
+ description: 'Stack Monitoring: Finished monitoring of a single stack',
235
+ interface: 'StackMonitoringControlEvent',
236
+ }),
237
+ // Success (59xx)
238
+ CDK_TOOLKIT_I5900: make.result({
239
+ code: 'CDK_TOOLKIT_I5900',
240
+ description: 'Deployment results on success',
241
+ interface: 'SuccessfulDeployStackResult',
242
+ }),
243
+ CDK_TOOLKIT_I5901: make.info({
244
+ code: 'CDK_TOOLKIT_I5901',
245
+ description: 'Generic deployment success messages',
246
+ }),
247
+ CDK_TOOLKIT_W5400: make.warn({
248
+ code: 'CDK_TOOLKIT_W5400',
249
+ description: 'Hotswap disclosure message',
250
+ }),
251
+ CDK_TOOLKIT_E5001: make.error({
252
+ code: 'CDK_TOOLKIT_E5001',
253
+ description: 'No stacks found',
254
+ }),
255
+ CDK_TOOLKIT_E5500: make.error({
256
+ code: 'CDK_TOOLKIT_E5500',
257
+ description: 'Stack Monitoring error',
258
+ interface: 'ErrorPayload',
259
+ }),
260
+ // 6: Rollback (6xxx)
261
+ CDK_TOOLKIT_I6000: make.info({
262
+ code: 'CDK_TOOLKIT_I6000',
263
+ description: 'Provides rollback times',
264
+ interface: 'Duration',
265
+ }),
266
+ CDK_TOOLKIT_I6100: make.info({
267
+ code: 'CDK_TOOLKIT_I6100',
268
+ description: 'Stack rollback progress',
269
+ interface: 'StackRollbackProgress',
270
+ }),
271
+ CDK_TOOLKIT_E6001: make.error({
272
+ code: 'CDK_TOOLKIT_E6001',
273
+ description: 'No stacks found',
274
+ }),
275
+ CDK_TOOLKIT_E6900: make.error({
276
+ code: 'CDK_TOOLKIT_E6900',
277
+ description: 'Rollback failed',
278
+ interface: 'ErrorPayload',
279
+ }),
280
+ // 7: Destroy (7xxx)
281
+ CDK_TOOLKIT_I7000: make.info({
282
+ code: 'CDK_TOOLKIT_I7000',
283
+ description: 'Provides destroy times',
284
+ interface: 'Duration',
285
+ }),
286
+ CDK_TOOLKIT_I7001: make.trace({
287
+ code: 'CDK_TOOLKIT_I7001',
288
+ description: 'Provides destroy time for a single stack',
289
+ interface: 'Duration',
290
+ }),
291
+ CDK_TOOLKIT_I7010: make.confirm({
292
+ code: 'CDK_TOOLKIT_I7010',
293
+ description: 'Confirm destroy stacks',
294
+ interface: 'ConfirmationRequest',
295
+ }),
296
+ CDK_TOOLKIT_I7100: make.info({
297
+ code: 'CDK_TOOLKIT_I7100',
298
+ description: 'Stack destroy progress',
299
+ interface: 'StackDestroyProgress',
300
+ }),
301
+ CDK_TOOLKIT_I7101: make.trace({
302
+ code: 'CDK_TOOLKIT_I7101',
303
+ description: 'Start stack destroying',
304
+ interface: 'StackDestroy',
305
+ }),
306
+ CDK_TOOLKIT_I7900: make.result({
307
+ code: 'CDK_TOOLKIT_I7900',
308
+ description: 'Stack deletion succeeded',
309
+ interface: 'cxapi.CloudFormationStackArtifact',
310
+ }),
311
+ CDK_TOOLKIT_E7010: make.error({
312
+ code: 'CDK_TOOLKIT_E7010',
313
+ description: 'Action was aborted due to negative confirmation of request',
314
+ }),
315
+ CDK_TOOLKIT_E7900: make.error({
316
+ code: 'CDK_TOOLKIT_E7900',
317
+ description: 'Stack deletion failed',
318
+ interface: 'ErrorPayload',
319
+ }),
320
+ // 8. Refactor (8xxx)
321
+ CDK_TOOLKIT_I8900: make.result({
322
+ code: 'CDK_TOOLKIT_I8900',
323
+ description: 'Refactor result',
324
+ interface: 'RefactorResult',
325
+ }),
326
+ CDK_TOOLKIT_W8010: make.warn({
327
+ code: 'CDK_TOOLKIT_W8010',
328
+ description: 'Refactor execution not yet supported',
329
+ }),
330
+ // 9: Bootstrap (9xxx)
331
+ CDK_TOOLKIT_I9000: make.info({
332
+ code: 'CDK_TOOLKIT_I9000',
333
+ description: 'Provides bootstrap times',
334
+ interface: 'Duration',
335
+ }),
336
+ CDK_TOOLKIT_I9100: make.info({
337
+ code: 'CDK_TOOLKIT_I9100',
338
+ description: 'Bootstrap progress',
339
+ interface: 'BootstrapEnvironmentProgress',
340
+ }),
341
+ CDK_TOOLKIT_I9900: make.result({
342
+ code: 'CDK_TOOLKIT_I9900',
343
+ description: 'Bootstrap results on success',
344
+ interface: 'cxapi.Environment',
345
+ }),
346
+ CDK_TOOLKIT_E9900: make.error({
347
+ code: 'CDK_TOOLKIT_E9900',
348
+ description: 'Bootstrap failed',
349
+ interface: 'ErrorPayload',
350
+ }),
351
+ // Notices
352
+ CDK_TOOLKIT_I0100: make.info({
353
+ code: 'CDK_TOOLKIT_I0100',
354
+ description: 'Notices decoration (the header or footer of a list of notices)',
355
+ }),
356
+ CDK_TOOLKIT_W0101: make.warn({
357
+ code: 'CDK_TOOLKIT_W0101',
358
+ description: 'A notice that is marked as a warning',
359
+ }),
360
+ CDK_TOOLKIT_E0101: make.error({
361
+ code: 'CDK_TOOLKIT_E0101',
362
+ description: 'A notice that is marked as an error',
363
+ }),
364
+ CDK_TOOLKIT_I0101: make.info({
365
+ code: 'CDK_TOOLKIT_I0101',
366
+ description: 'A notice that is marked as informational',
367
+ }),
368
+ // Assembly codes
369
+ DEFAULT_ASSEMBLY_TRACE: make.trace({
370
+ code: 'CDK_ASSEMBLY_I0000',
371
+ description: 'Default trace messages emitted from Cloud Assembly operations',
372
+ }),
373
+ DEFAULT_ASSEMBLY_DEBUG: make.debug({
374
+ code: 'CDK_ASSEMBLY_I0000',
375
+ description: 'Default debug messages emitted from Cloud Assembly operations',
376
+ }),
377
+ DEFAULT_ASSEMBLY_INFO: make.info({
378
+ code: 'CDK_ASSEMBLY_I0000',
379
+ description: 'Default info messages emitted from Cloud Assembly operations',
380
+ }),
381
+ DEFAULT_ASSEMBLY_WARN: make.warn({
382
+ code: 'CDK_ASSEMBLY_W0000',
383
+ description: 'Default warning messages emitted from Cloud Assembly operations',
384
+ }),
385
+ CDK_ASSEMBLY_I0010: make.debug({
386
+ code: 'CDK_ASSEMBLY_I0010',
387
+ description: 'Generic environment preparation debug messages',
388
+ }),
389
+ CDK_ASSEMBLY_W0010: make.warn({
390
+ code: 'CDK_ASSEMBLY_W0010',
391
+ description: 'Emitted if the found framework version does not support context overflow',
392
+ }),
393
+ CDK_ASSEMBLY_I0042: make.debug({
394
+ code: 'CDK_ASSEMBLY_I0042',
395
+ description: 'Writing updated context',
396
+ interface: 'UpdatedContext',
397
+ }),
398
+ CDK_ASSEMBLY_I0240: make.debug({
399
+ code: 'CDK_ASSEMBLY_I0240',
400
+ description: 'Context lookup was stopped as no further progress was made. ',
401
+ interface: 'MissingContext',
402
+ }),
403
+ CDK_ASSEMBLY_I0241: make.debug({
404
+ code: 'CDK_ASSEMBLY_I0241',
405
+ description: 'Fetching missing context. This is an iterative message that may appear multiple times with different missing keys.',
406
+ interface: 'MissingContext',
407
+ }),
408
+ CDK_ASSEMBLY_I1000: make.debug({
409
+ code: 'CDK_ASSEMBLY_I1000',
410
+ description: 'Cloud assembly output starts',
411
+ }),
412
+ CDK_ASSEMBLY_I1001: make.info({
413
+ code: 'CDK_ASSEMBLY_I1001',
414
+ description: 'Output lines emitted by the cloud assembly to stdout',
415
+ }),
416
+ CDK_ASSEMBLY_E1002: make.error({
417
+ code: 'CDK_ASSEMBLY_E1002',
418
+ description: 'Output lines emitted by the cloud assembly to stderr',
419
+ }),
420
+ CDK_ASSEMBLY_I1003: make.info({
421
+ code: 'CDK_ASSEMBLY_I1003',
422
+ description: 'Cloud assembly output finished',
423
+ }),
424
+ CDK_ASSEMBLY_E1111: make.error({
425
+ code: 'CDK_ASSEMBLY_E1111',
426
+ description: 'Incompatible CDK CLI version. Upgrade needed.',
427
+ interface: 'ErrorPayload',
428
+ }),
429
+ CDK_ASSEMBLY_I0150: make.debug({
430
+ code: 'CDK_ASSEMBLY_I0150',
431
+ description: 'Indicates the use of a pre-synthesized cloud assembly directory',
432
+ }),
433
+ CDK_ASSEMBLY_I0300: make.info({
434
+ code: 'CDK_ASSEMBLY_I0300',
435
+ description: 'An info message emitted by a Context Provider',
436
+ interface: 'ContextProviderMessageSource',
437
+ }),
438
+ CDK_ASSEMBLY_I0301: make.debug({
439
+ code: 'CDK_ASSEMBLY_I0301',
440
+ description: 'A debug message emitted by a Context Provider',
441
+ interface: 'ContextProviderMessageSource',
442
+ }),
443
+ // Assembly Annotations
444
+ CDK_ASSEMBLY_I9999: make.info({
445
+ code: 'CDK_ASSEMBLY_I9999',
446
+ description: 'Annotations emitted by the cloud assembly',
447
+ interface: 'cxapi.SynthesisMessage',
448
+ }),
449
+ CDK_ASSEMBLY_W9999: make.warn({
450
+ code: 'CDK_ASSEMBLY_W9999',
451
+ description: 'Warnings emitted by the cloud assembly',
452
+ interface: 'cxapi.SynthesisMessage',
453
+ }),
454
+ CDK_ASSEMBLY_E9999: make.error({
455
+ code: 'CDK_ASSEMBLY_E9999',
456
+ description: 'Errors emitted by the cloud assembly',
457
+ interface: 'cxapi.SynthesisMessage',
458
+ }),
459
+ // SDK codes
460
+ DEFAULT_SDK_TRACE: make.trace({
461
+ code: 'CDK_SDK_I0000',
462
+ description: 'An SDK trace message.',
463
+ }),
464
+ DEFAULT_SDK_DEBUG: make.debug({
465
+ code: 'CDK_SDK_I0000',
466
+ description: 'An SDK debug message.',
467
+ }),
468
+ DEFAULT_SDK_WARN: make.warn({
469
+ code: 'CDK_SDK_W0000',
470
+ description: 'An SDK warning message.',
471
+ }),
472
+ CDK_SDK_I0100: make.trace({
473
+ code: 'CDK_SDK_I0100',
474
+ description: 'An SDK trace. SDK traces are emitted as traces to the IoHost, but contain the original SDK logging level.',
475
+ interface: 'SdkTrace',
476
+ }),
477
+ };
478
+ //////////////////////////////////////////////////////////////////////////////////////////
479
+ /**
480
+ * Payload type of the end message must extend Duration
481
+ */
482
+ exports.SPAN = {
483
+ SYNTH_ASSEMBLY: {
484
+ name: 'Synthesis',
485
+ start: exports.IO.CDK_TOOLKIT_I1001,
486
+ end: exports.IO.CDK_TOOLKIT_I1000,
487
+ },
488
+ DEPLOY_STACK: {
489
+ name: 'Deployment',
490
+ start: exports.IO.CDK_TOOLKIT_I5100,
491
+ end: exports.IO.CDK_TOOLKIT_I5001,
492
+ },
493
+ ROLLBACK_STACK: {
494
+ name: 'Rollback',
495
+ start: exports.IO.CDK_TOOLKIT_I6100,
496
+ end: exports.IO.CDK_TOOLKIT_I6000,
497
+ },
498
+ DIFF_STACK: {
499
+ name: 'Diff',
500
+ start: exports.IO.CDK_TOOLKIT_I4000,
501
+ end: exports.IO.CDK_TOOLKIT_I4001,
502
+ },
503
+ DESTROY_STACK: {
504
+ name: 'Destroy',
505
+ start: exports.IO.CDK_TOOLKIT_I7100,
506
+ end: exports.IO.CDK_TOOLKIT_I7001,
507
+ },
508
+ DESTROY_ACTION: {
509
+ name: 'Destroy',
510
+ start: exports.IO.CDK_TOOLKIT_I7101,
511
+ end: exports.IO.CDK_TOOLKIT_I7000,
512
+ },
513
+ BOOTSTRAP_SINGLE: {
514
+ name: 'Bootstrap',
515
+ start: exports.IO.CDK_TOOLKIT_I9100,
516
+ end: exports.IO.CDK_TOOLKIT_I9000,
517
+ },
518
+ BUILD_ASSET: {
519
+ name: 'Build Asset',
520
+ start: exports.IO.CDK_TOOLKIT_I5210,
521
+ end: exports.IO.CDK_TOOLKIT_I5211,
522
+ },
523
+ PUBLISH_ASSET: {
524
+ name: 'Publish Asset',
525
+ start: exports.IO.CDK_TOOLKIT_I5220,
526
+ end: exports.IO.CDK_TOOLKIT_I5221,
527
+ },
528
+ HOTSWAP: {
529
+ name: 'hotswap-deployment',
530
+ start: exports.IO.CDK_TOOLKIT_I5400,
531
+ end: exports.IO.CDK_TOOLKIT_I5410,
532
+ },
533
+ };
534
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFrQnhDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsa0JBQWtCO0lBQ2xCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsZ0RBQWdEO0tBQzlELENBQUM7SUFDRixxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRCxDQUFDO0lBQ0Ysb0JBQW9CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxtREFBbUQ7S0FDakUsQ0FBQztJQUNGLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaURBQWlEO0tBQy9ELENBQUM7SUFDRixxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRCxDQUFDO0lBRUYsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFL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QUMsaUJBQWlCO0tBQzFCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0NBQ2lELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IFNwYW5EZWZpbml0aW9uIH0gZnJvbSAnLi9zcGFuJztcbmltcG9ydCB0eXBlIHsgRGlmZlJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2Jvb3RzdHJhcC1lbnZpcm9ubWVudC1wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0LCBVcGRhdGVkQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBCdWlsZEFzc2V0LCBEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0LCBQdWJsaXNoQXNzZXQsIFN0YWNrRGVwbG95UHJvZ3Jlc3MsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGVzdHJveSwgU3RhY2tEZXN0cm95UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXN0cm95JztcbmltcG9ydCB0eXBlIHsgSG90c3dhcERlcGxveW1lbnREZXRhaWxzLCBIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQsIEhvdHN3YXBwYWJsZUNoYW5nZSwgSG90c3dhcFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2hvdHN3YXAnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RldGFpbHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbGlzdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCwgQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3RvclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JlZmFjdG9yJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSb2xsYmFja1Byb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcm9sbGJhY2snO1xuaW1wb3J0IHR5cGUgeyBTZGtUcmFjZSB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3Nkay10cmFjZSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHksIFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3N0YWNrLWFjdGl2aXR5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3Rpb25EZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3ludGgnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURhdGEsIENvbmZpcm1hdGlvblJlcXVlc3QsIENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UsIER1cmF0aW9uLCBFcnJvclBheWxvYWQsIFN0YWNrQW5kQXNzZW1ibHlEYXRhIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlV2F0Y2hFdmVudCwgV2F0Y2hTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3dhdGNoJztcblxuLyoqXG4gKiBXZSBoYXZlIGEgcm91Z2ggc3lzdGVtIGJ5IHdoaWNoIHdlIGFzc2lnbiBtZXNzYWdlIGNvZGVzOlxuICogLSBGaXJzdCBkaWdpdCBncm91cHMgbWVzc2FnZXMgYnkgYWN0aW9uLCBlLmcuIHN5bnRoIG9yIGRlcGxveVxuICogLSBYMDAwLVgwMDkgYXJlIHJlc2VydmVkIGZvciB0aW1pbmdzXG4gKiAtIFg5MDAtWDk5OSBhcmUgcmVzZXJ2ZWQgZm9yIHJlc3VsdHNcbiAqL1xuZXhwb3J0IGNvbnN0IElPID0ge1xuICAvLyBEZWZhdWx0cyAoMDAwMClcbiAgREVGQVVMVF9UT09MS0lUX0lORk86IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgaW5mbyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX0RFQlVHOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBkZWJ1ZyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX1dBUk46IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1cwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX0VSUk9SOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBlcnJvciBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX1RSQUNFOiBtYWtlLnRyYWNlKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB0cmFjZSBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcblxuICAvLyB3YXJuaW5ncyAmIGVycm9yc1xuICBDREtfVE9PTEtJVF9XMDEwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3JlZGVudGlhbCBwbHVnaW4gd2FybmluZ3MnLFxuICB9KSxcblxuICAvLyAxOiBTeW50aCAoMXh4eClcbiAgQ0RLX1RPT0xLSVRfSTEwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBzeW50aGVzaXMgdGltZXMuJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTAwMTogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgQXNzZW1ibHkgc3ludGhlc2lzIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1NlbGVjdGlvbkRldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDE6IG1ha2UucmVzdWx0PFN0YWNrQW5kQXNzZW1ibHlEYXRhPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxOTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHN0YWNrIGRhdGEnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQW5kQXNzZW1ibHlEYXRhJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxOTAyOiBtYWtlLnJlc3VsdDxBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3VjY2Vzc2Z1bGx5IGRlcGxveWVkIHN0YWNrcycsXG4gICAgaW50ZXJmYWNlOiAnQXNzZW1ibHlEYXRhJyxcbiAgfSksXG5cbiAgLy8gMjogTGlzdCAoMnh4eClcbiAgQ0RLX1RPT0xLSVRfSTI5MDE6IG1ha2UucmVzdWx0PFN0YWNrRGV0YWlsc1BheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTI5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgZGV0YWlscyBvbiB0aGUgc2VsZWN0ZWQgc3RhY2tzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGV0YWlsc1BheWxvYWQnLFxuICB9KSxcblxuICAvLyAzOiBJbXBvcnQgJiBNaWdyYXRlXG4gIENES19UT09MS0lUX0UzOTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBpbXBvcnQgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA0OiBEaWZmICg0eHh4KVxuICBDREtfVE9PTEtJVF9JNDAwMDogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGlmZiBzdGFja3MgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDAwMTogbWFrZS5pbmZvPERpZmZSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IG9mIHRoZSBkaWZmIGNvbW1hbmQnLFxuICAgIGludGVyZmFjZTogJ0RpZmZSZXN1bHQnLFxuICB9KSxcblxuICAvLyA1OiBEZXBsb3kgJiBXYXRjaCAoNXh4eClcbiAgQ0RLX1RPT0xLSVRfSTUwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXBsb3ltZW50IHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMTogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRvdGFsIHRpbWUgaW4gZGVwbG95IGFjdGlvbiwgaW5jbHVkaW5nIHN5bnRoIGFuZCByb2xsYmFjaycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMDI6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMicsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyB0aW1lIGZvciByZXNvdXJjZSBtaWdyYXRpb24nLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMScsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBub24tZXhpc3RlbnQgc3RhY2ssIGRlcGxveW1lbnQgaXMgc2tpcHBlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTAyMjogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzUwMjInLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1wdHkgZXhpc3Rpbmcgc3RhY2ssIHN0YWNrIHdpbGwgYmUgZGVzdHJveWVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMScsXG4gICAgZGVzY3JpcHRpb246ICdJbmZvcm1zIGFib3V0IGFueSBsb2cgZ3JvdXBzIHRoYXQgYXJlIHRyYWNlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3ltZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMyOiBtYWtlLmRlYnVnPENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IG1vbml0b3JpbmcgbG9nIGdyb3VwcycsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzM6IG1ha2UuaW5mbzxDbG91ZFdhdGNoTG9nRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBsb2cgZXZlbnQgcmVjZWl2ZWQgZnJvbSBDbG91ZCBXYXRjaCcsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ0V2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDM0OiBtYWtlLmRlYnVnPENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDM0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0b3AgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTAzNTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTUwMzUnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBsb2cgbW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDUwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTA1MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHJvbGxiYWNrIGR1cmluZyBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDYwOiBtYWtlLmNvbmZpcm08RGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTA2MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlcGxveSBzZWN1cml0eSBzZW5zaXRpdmUgY2hhbmdlcycsXG4gICAgaW50ZXJmYWNlOiAnRGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTEwMDogbWFrZS5pbmZvPFN0YWNrRGVwbG95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVwbG95IHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RlcGxveVByb2dyZXNzJyxcbiAgfSksXG5cbiAgLy8gQXNzZXRzICg1Mnh4KVxuICBDREtfVE9PTEtJVF9JNTIxMDogbWFrZS50cmFjZTxCdWlsZEFzc2V0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0ZWQgYnVpbGRpbmcgYSBzcGVjaWZpYyBhc3NldCcsXG4gICAgaW50ZXJmYWNlOiAnQnVpbGRBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIxMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIxMScsXG4gICAgZGVzY3JpcHRpb246ICdCdWlsZGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMjA6IG1ha2UudHJhY2U8UHVibGlzaEFzc2V0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjIwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0ZWQgcHVibGlzaGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMjE6IG1ha2UudHJhY2U8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcblxuICAvLyBXYXRjaCAoNTN4eClcbiAgQ0RLX1RPT0xLSVRfSTUzMTA6IG1ha2UuZGVidWc8V2F0Y2hTZXR0aW5ncz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMCcsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgY29tcHV0ZWQgc2V0dGluZ3MgdXNlZCBmb3IgZmlsZSB3YXRjaGluZycsXG4gICAgaW50ZXJmYWNlOiAnV2F0Y2hTZXR0aW5ncycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMTogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgd2F0Y2hpbmcgc3RhcnRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTI6IG1ha2UuaW5mbzxGaWxlV2F0Y2hFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMicsXG4gICAgZGVzY3JpcHRpb246ICdGaWxlIGV2ZW50IGRldGVjdGVkLCBzdGFydGluZyBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMzogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQgZHVyaW5nIGFjdGl2ZSBkZXBsb3ltZW50LCBjaGFuZ2VzIGFyZSBxdWV1ZWQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE0OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNCcsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsIHdhdGNoIGRlcGxveW1lbnQgc3RhcnRlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxNTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVldWVkIHdhdGNoIGRlcGxveW1lbnQgc3RhcnRlZCcsXG4gIH0pLFxuXG4gIC8vIEhvdHN3YXAgKDU0eHgpXG4gIENES19UT09MS0lUX0k1NDAwOiBtYWtlLnRyYWNlPEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBdHRlbXB0aW5nIGEgaG90c3dhcCBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU0MDE6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnREZXRhaWxzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbXB1dGVkIGRldGFpbHMgZm9yIHRoZSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50RGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMjogbWFrZS5pbmZvPEhvdHN3YXBwYWJsZUNoYW5nZT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMicsXG4gICAgZGVzY3JpcHRpb246ICdBIGhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgcHJvY2Vzc2VkIGFzIHBhcnQgb2YgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBwYWJsZUNoYW5nZScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMzogbWFrZS5pbmZvPEhvdHN3YXBwYWJsZUNoYW5nZT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMycsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgaG90c3dhcHBhYmxlIGNoYW5nZSBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBwYWJsZUNoYW5nZScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQxMDogbWFrZS5pbmZvPEhvdHN3YXBSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkZXBsb3ltZW50IGhhcyBlbmRlZCwgYSBmdWxsIGRlcGxveW1lbnQgbWlnaHQgc3RpbGwgZm9sbG93IGlmIG5lZWRlZCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcFJlc3VsdCcsXG4gIH0pLFxuXG4gIC8vIFN0YWNrIE1vbml0b3IgKDU1eHgpXG4gIENES19UT09MS0lUX0k1NTAxOiBtYWtlLmluZm88U3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IFN0YXJ0IG1vbml0b3Jpbmcgb2YgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTUwMjogbWFrZS5pbmZvPFN0YWNrQWN0aXZpdHk+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogQWN0aXZpdHkgZXZlbnQgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0FjdGl2aXR5JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAzOiBtYWtlLmluZm88U3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IEZpbmlzaGVkIG1vbml0b3Jpbmcgb2YgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCcsXG4gIH0pLFxuXG4gIC8vIFN1Y2Nlc3MgKDU5eHgpXG4gIENES19UT09MS0lUX0k1OTAwOiBtYWtlLnJlc3VsdDxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95bWVudCByZXN1bHRzIG9uIHN1Y2Nlc3MnLFxuICAgIGludGVyZmFjZTogJ1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTkwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJpYyBkZXBsb3ltZW50IHN1Y2Nlc3MgbWVzc2FnZXMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzU0MDA6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0hvdHN3YXAgZGlzY2xvc3VyZSBtZXNzYWdlJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTUwMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBzdGFja3MgZm91bmQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTU1MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1NTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3JpbmcgZXJyb3InLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDY6IFJvbGxiYWNrICg2eHh4KVxuICBDREtfVE9PTEtJVF9JNjAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHJvbGxiYWNrIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNjEwMDogbWFrZS5pbmZvPFN0YWNrUm9sbGJhY2tQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNjEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByb2xsYmFjayBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tSb2xsYmFja1Byb2dyZXNzJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTYwMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNjAwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBzdGFja3MgZm91bmQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTY5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JvbGxiYWNrIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNzogRGVzdHJveSAoN3h4eClcbiAgQ0RLX1RPT0xLSVRfSTcwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXN0cm95IHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzAwMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXN0cm95IHRpbWUgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzAxMDogbWFrZS5jb25maXJtPENvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSBkZXN0cm95IHN0YWNrcycsXG4gICAgaW50ZXJmYWNlOiAnQ29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzEwMDogbWFrZS5pbmZvPFN0YWNrRGVzdHJveVByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlc3Ryb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveVByb2dyZXNzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAxOiBtYWtlLnRyYWNlPFN0YWNrRGVzdHJveT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzEwMScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBzdGFjayBkZXN0cm95aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0Rlc3Ryb3knLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JNzkwMDogbWFrZS5yZXN1bHQ8Y3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIHN1Y2NlZWRlZCcsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTcwMTA6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdBY3Rpb24gd2FzIGFib3J0ZWQgZHVlIHRvIG5lZ2F0aXZlIGNvbmZpcm1hdGlvbiBvZiByZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U3OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZWxldGlvbiBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDguIFJlZmFjdG9yICg4eHh4KVxuICBDREtfVE9PTEtJVF9JODkwMDogbWFrZS5yZXN1bHQ8UmVmYWN0b3JSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTg5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgcmVzdWx0JyxcbiAgICBpbnRlcmZhY2U6ICdSZWZhY3RvclJlc3VsdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX1c4MDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XODAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciBleGVjdXRpb24gbm90IHlldCBzdXBwb3J0ZWQnLFxuICB9KSxcblxuICAvLyA5OiBCb290c3RyYXAgKDl4eHgpXG4gIENES19UT09MS0lUX0k5MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgYm9vdHN0cmFwIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JOTEwMDogbWFrZS5pbmZvPEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIE5vdGljZXNcbiAgQ0RLX1RPT0xLSVRfSTAxMDA6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vdGljZXMgZGVjb3JhdGlvbiAodGhlIGhlYWRlciBvciBmb290ZXIgb2YgYSBsaXN0IG9mIG5vdGljZXMpJyxcbiAgfSksXG4gIENES19UT09MS0lUX1cwMTAxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhIHdhcm5pbmcnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTAxMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhbiBlcnJvcicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMDEwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgaW5mb3JtYXRpb25hbCcsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IGNvZGVzXG4gIERFRkFVTFRfQVNTRU1CTFlfVFJBQ0U6IG1ha2UudHJhY2Uoe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB0cmFjZSBtZXNzYWdlcyBlbWl0dGVkIGZyb20gQ2xvdWQgQXNzZW1ibHkgb3BlcmF0aW9ucycsXG4gIH0pLFxuICBERUZBVUxUX0FTU0VNQkxZX0RFQlVHOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgZGVidWcgbWVzc2FnZXMgZW1pdHRlZCBmcm9tIENsb3VkIEFzc2VtYmx5IG9wZXJhdGlvbnMnLFxuICB9KSxcbiAgREVGQVVMVF9BU1NFTUJMWV9JTkZPOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBpbmZvIG1lc3NhZ2VzIGVtaXR0ZWQgZnJvbSBDbG91ZCBBc3NlbWJseSBvcGVyYXRpb25zJyxcbiAgfSksXG4gIERFRkFVTFRfQVNTRU1CTFlfV0FSTjogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gQ2xvdWQgQXNzZW1ibHkgb3BlcmF0aW9ucycsXG4gIH0pLFxuXG4gIENES19BU1NFTUJMWV9JMDAxMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGVudmlyb25tZW50IHByZXBhcmF0aW9uIGRlYnVnIG1lc3NhZ2VzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XMDAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtaXR0ZWQgaWYgdGhlIGZvdW5kIGZyYW1ld29yayB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCBvdmVyZmxvdycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAwNDI6IG1ha2UuZGVidWc8VXBkYXRlZENvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDQyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1dyaXRpbmcgdXBkYXRlZCBjb250ZXh0JyxcbiAgICBpbnRlcmZhY2U6ICdVcGRhdGVkQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDA6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbnRleHQgbG9va3VwIHdhcyBzdG9wcGVkIGFzIG5vIGZ1cnRoZXIgcHJvZ3Jlc3Mgd2FzIG1hZGUuICcsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMjQxOiBtYWtlLmRlYnVnPE1pc3NpbmdDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDI0MScsXG4gICAgZGVzY3JpcHRpb246ICdGZXRjaGluZyBtaXNzaW5nIGNvbnRleHQuIFRoaXMgaXMgYW4gaXRlcmF0aXZlIG1lc3NhZ2UgdGhhdCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1pc3Npbmcga2V5cy4nLFxuICAgIGludGVyZmFjZTogJ01pc3NpbmdDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgc3RhcnRzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRvdXQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMDAyOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRlcnInLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAzOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgYXNzZW1ibHkgb3V0cHV0IGZpbmlzaGVkJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FMTExMTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMTExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luY29tcGF0aWJsZSBDREsgQ0xJIHZlcnNpb24uIFVwZ3JhZGUgbmVlZGVkLicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VNQkxZX0kwMTUwOiBtYWtlLmRlYnVnPG5ldmVyPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDE1MCcsXG4gICAgZGVzY3JpcHRpb246ICdJbmRpY2F0ZXMgdGhlIHVzZSBvZiBhIHByZS1zeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnknLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAzMDA6IG1ha2UuaW5mbzxDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbiBpbmZvIG1lc3NhZ2UgZW1pdHRlZCBieSBhIENvbnRleHQgUHJvdmlkZXInLFxuICAgIGludGVyZmFjZTogJ0NvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMzAxOiBtYWtlLmRlYnVnPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgZGVidWcgbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IEFubm90YXRpb25zXG4gIENES19BU1NFTUJMWV9JOTk5OTogbWFrZS5pbmZvPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0k5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fubm90YXRpb25zIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XOTk5OTogbWFrZS53YXJuPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1c5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1dhcm5pbmdzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FOTk5OTogbWFrZS5lcnJvcjxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdFcnJvcnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcblxuICAvLyBTREsgY29kZXNcbiAgREVGQVVMVF9TREtfVFJBQ0U6IG1ha2UudHJhY2Uoe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZSBtZXNzYWdlLicsXG4gIH0pLFxuICBERUZBVUxUX1NES19ERUJVRzogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19TREtfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIGRlYnVnIG1lc3NhZ2UuJyxcbiAgfSksXG4gIERFRkFVTFRfU0RLX1dBUk46IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19TREtfVzAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIHdhcm5pbmcgbWVzc2FnZS4nLFxuICB9KSxcbiAgQ0RLX1NES19JMDEwMDogbWFrZS50cmFjZTxTZGtUcmFjZT4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZS4gU0RLIHRyYWNlcyBhcmUgZW1pdHRlZCBhcyB0cmFjZXMgdG8gdGhlIElvSG9zdCwgYnV0IGNvbnRhaW4gdGhlIG9yaWdpbmFsIFNESyBsb2dnaW5nIGxldmVsLicsXG4gICAgaW50ZXJmYWNlOiAnU2RrVHJhY2UnLFxuICB9KSxcbn07XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFBheWxvYWQgdHlwZSBvZiB0aGUgZW5kIG1lc3NhZ2UgbXVzdCBleHRlbmQgRHVyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNQQU4gPSB7XG4gIFNZTlRIX0FTU0VNQkxZOiB7XG4gICAgbmFtZTogJ1N5bnRoZXNpcycsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0kxMDAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTEwMDAsXG4gIH0sXG4gIERFUExPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTAwMSxcbiAgfSxcbiAgUk9MTEJBQ0tfU1RBQ0s6IHtcbiAgICBuYW1lOiAnUm9sbGJhY2snLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNjEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k2MDAwLFxuICB9LFxuICBESUZGX1NUQUNLOiB7XG4gICAgbmFtZTogJ0RpZmYnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0MDAxLFxuICB9LFxuICBERVNUUk9ZX1NUQUNLOiB7XG4gICAgbmFtZTogJ0Rlc3Ryb3knLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNzEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k3MDAxLFxuICB9LFxuICBERVNUUk9ZX0FDVElPTjoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDEsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMCxcbiAgfSxcbiAgQk9PVFNUUkFQX1NJTkdMRToge1xuICAgIG5hbWU6ICdCb290c3RyYXAnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JOTEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k5MDAwLFxuICB9LFxuICBCVUlMRF9BU1NFVDoge1xuICAgIG5hbWU6ICdCdWlsZCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjEwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMTEsXG4gIH0sXG4gIFBVQkxJU0hfQVNTRVQ6IHtcbiAgICBuYW1lOiAnUHVibGlzaCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjIwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMjEsXG4gIH0sXG4gIEhPVFNXQVA6IHtcbiAgICBuYW1lOiAnaG90c3dhcC1kZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTU0MDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTQxMCxcbiAgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFNwYW5EZWZpbml0aW9uPGFueSwgYW55Pj47XG4iXX0=