projen 0.52.20 → 0.52.24

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 (239) hide show
  1. package/.jsii +27 -27
  2. package/README.md +19 -19
  3. package/changelog.md +1 -1
  4. package/docs/README.md +1 -0
  5. package/docs/api/API.md +1 -1
  6. package/docs/github.md +1 -1
  7. package/lib/awscdk/auto-discover.d.ts +14 -46
  8. package/lib/awscdk/auto-discover.js +8 -22
  9. package/lib/awscdk/awscdk-app-java.d.ts +10 -32
  10. package/lib/awscdk/awscdk-app-java.js +5 -9
  11. package/lib/awscdk/awscdk-app-ts.d.ts +15 -35
  12. package/lib/awscdk/awscdk-app-ts.js +6 -14
  13. package/lib/awscdk/awscdk-construct.d.ts +14 -28
  14. package/lib/awscdk/awscdk-construct.js +8 -16
  15. package/lib/awscdk/awscdk-deps-java.d.ts +1 -8
  16. package/lib/awscdk/awscdk-deps-java.js +3 -10
  17. package/lib/awscdk/awscdk-deps-js.d.ts +1 -8
  18. package/lib/awscdk/awscdk-deps-js.js +3 -10
  19. package/lib/awscdk/awscdk-deps.d.ts +28 -67
  20. package/lib/awscdk/awscdk-deps.js +5 -12
  21. package/lib/awscdk/cdk-config.d.ts +19 -51
  22. package/lib/awscdk/cdk-config.js +13 -11
  23. package/lib/awscdk/cdk-tasks.d.ts +7 -24
  24. package/lib/awscdk/cdk-tasks.js +3 -8
  25. package/lib/awscdk/integration-test.d.ts +7 -29
  26. package/lib/awscdk/integration-test.js +3 -8
  27. package/lib/awscdk/lambda-function.d.ts +22 -50
  28. package/lib/awscdk/lambda-function.js +11 -24
  29. package/lib/build/build-workflow.d.ts +33 -78
  30. package/lib/build/build-workflow.js +15 -25
  31. package/lib/cdk/auto-discover-base.d.ts +11 -34
  32. package/lib/cdk/auto-discover-base.js +5 -15
  33. package/lib/cdk/construct-lib.d.ts +8 -22
  34. package/lib/cdk/construct-lib.js +3 -8
  35. package/lib/cdk/integration-test-base.d.ts +12 -38
  36. package/lib/cdk/integration-test-base.js +2 -8
  37. package/lib/cdk/jsii-docgen.d.ts +6 -12
  38. package/lib/cdk/jsii-docgen.js +6 -8
  39. package/lib/cdk/jsii-project.d.ts +16 -95
  40. package/lib/cdk/jsii-project.js +3 -10
  41. package/lib/cdk8s/auto-discover.d.ts +6 -23
  42. package/lib/cdk8s/auto-discover.js +6 -15
  43. package/lib/cdk8s/cdk8s-app-ts.d.ts +21 -43
  44. package/lib/cdk8s/cdk8s-app-ts.js +4 -7
  45. package/lib/cdk8s/cdk8s-construct.d.ts +12 -27
  46. package/lib/cdk8s/cdk8s-construct.js +3 -7
  47. package/lib/cdk8s/integration-test.d.ts +2 -9
  48. package/lib/cdk8s/integration-test.js +3 -8
  49. package/lib/cdktf/cdktf-construct.d.ts +3 -12
  50. package/lib/cdktf/cdktf-construct.js +3 -7
  51. package/lib/component.d.ts +4 -17
  52. package/lib/component.js +6 -19
  53. package/lib/dependencies.d.ts +44 -77
  54. package/lib/dependencies.js +50 -38
  55. package/lib/dev-env.d.ts +26 -53
  56. package/lib/dev-env.js +9 -19
  57. package/lib/docker-compose.d.ts +83 -209
  58. package/lib/docker-compose.js +38 -61
  59. package/lib/file.d.ts +24 -71
  60. package/lib/file.js +4 -16
  61. package/lib/gitattributes.d.ts +3 -14
  62. package/lib/gitattributes.js +5 -16
  63. package/lib/github/auto-approve.d.ts +7 -23
  64. package/lib/github/auto-approve.js +3 -8
  65. package/lib/github/auto-merge.d.ts +7 -29
  66. package/lib/github/auto-merge.js +7 -16
  67. package/lib/github/dependabot.d.ts +54 -147
  68. package/lib/github/dependabot.js +81 -22
  69. package/lib/github/github-project.d.ts +26 -70
  70. package/lib/github/github-project.js +5 -10
  71. package/lib/github/github.d.ts +19 -58
  72. package/lib/github/github.js +9 -30
  73. package/lib/github/mergify.d.ts +9 -54
  74. package/lib/github/mergify.js +2 -14
  75. package/lib/github/pr-template.d.ts +3 -13
  76. package/lib/github/pr-template.js +3 -8
  77. package/lib/github/pull-request-lint.d.ts +8 -28
  78. package/lib/github/pull-request-lint.js +3 -9
  79. package/lib/github/stale.d.ts +17 -47
  80. package/lib/github/stale.js +6 -10
  81. package/lib/github/task-workflow.d.ts +21 -63
  82. package/lib/github/task-workflow.js +3 -8
  83. package/lib/github/workflows-model.d.ts +199 -582
  84. package/lib/github/workflows-model.js +5 -4
  85. package/lib/github/workflows.d.ts +14 -41
  86. package/lib/github/workflows.js +8 -16
  87. package/lib/gitlab/configuration-model.d.ts +145 -947
  88. package/lib/gitlab/configuration-model.js +11 -28
  89. package/lib/gitlab/configuration.d.ts +31 -121
  90. package/lib/gitlab/configuration.js +14 -49
  91. package/lib/gitlab/gitlab-configuration.d.ts +2 -13
  92. package/lib/gitlab/gitlab-configuration.js +4 -15
  93. package/lib/gitlab/nested-configuration.d.ts +1 -9
  94. package/lib/gitlab/nested-configuration.js +3 -8
  95. package/lib/gitpod.d.ts +71 -167
  96. package/lib/gitpod.js +75 -42
  97. package/lib/ignore-file.d.ts +4 -23
  98. package/lib/ignore-file.js +6 -25
  99. package/lib/ini.d.ts +2 -14
  100. package/lib/ini.js +3 -13
  101. package/lib/inventory.js +2 -2
  102. package/lib/java/java-project.d.ts +29 -70
  103. package/lib/java/java-project.js +10 -17
  104. package/lib/java/junit.d.ts +5 -17
  105. package/lib/java/junit.js +3 -8
  106. package/lib/java/maven-compile.d.ts +4 -13
  107. package/lib/java/maven-compile.js +3 -8
  108. package/lib/java/maven-packaging.d.ts +6 -21
  109. package/lib/java/maven-packaging.js +3 -8
  110. package/lib/java/maven-sample.d.ts +2 -12
  111. package/lib/java/maven-sample.js +3 -8
  112. package/lib/java/pom.d.ts +38 -100
  113. package/lib/java/pom.js +13 -25
  114. package/lib/java/projenrc.d.ts +7 -22
  115. package/lib/java/projenrc.js +3 -8
  116. package/lib/javascript/bundler.d.ts +30 -72
  117. package/lib/javascript/bundler.js +13 -21
  118. package/lib/javascript/eslint.d.ts +27 -84
  119. package/lib/javascript/eslint.js +11 -30
  120. package/lib/javascript/jest.d.ts +91 -344
  121. package/lib/javascript/jest.js +6 -23
  122. package/lib/javascript/node-package.d.ts +111 -259
  123. package/lib/javascript/node-package.js +64 -81
  124. package/lib/javascript/node-project.d.ts +112 -220
  125. package/lib/javascript/node-project.js +54 -73
  126. package/lib/javascript/npm-config.d.ts +9 -19
  127. package/lib/javascript/npm-config.js +9 -16
  128. package/lib/javascript/prettier.d.ts +65 -196
  129. package/lib/javascript/prettier.js +70 -46
  130. package/lib/javascript/projenrc.d.ts +2 -12
  131. package/lib/javascript/projenrc.js +3 -8
  132. package/lib/javascript/typescript-config.d.ts +62 -158
  133. package/lib/javascript/typescript-config.js +31 -18
  134. package/lib/javascript/upgrade-dependencies.d.ts +35 -94
  135. package/lib/javascript/upgrade-dependencies.js +21 -51
  136. package/lib/json.d.ts +3 -17
  137. package/lib/json.js +3 -13
  138. package/lib/license.d.ts +3 -20
  139. package/lib/license.js +2 -13
  140. package/lib/logger.d.ts +18 -62
  141. package/lib/logger.js +17 -37
  142. package/lib/makefile.d.ts +14 -45
  143. package/lib/makefile.js +7 -25
  144. package/lib/object-file.d.ts +19 -39
  145. package/lib/object-file.js +17 -28
  146. package/lib/option-hints.d.ts +4 -13
  147. package/lib/option-hints.js +11 -5
  148. package/lib/project-build.d.ts +7 -26
  149. package/lib/project-build.js +3 -8
  150. package/lib/project.d.ts +64 -186
  151. package/lib/project.js +43 -91
  152. package/lib/projects.d.ts +11 -32
  153. package/lib/projects.js +4 -8
  154. package/lib/projenrc-json.d.ts +2 -12
  155. package/lib/projenrc-json.js +3 -8
  156. package/lib/python/pip.d.ts +7 -23
  157. package/lib/python/pip.js +8 -17
  158. package/lib/python/poetry.d.ts +36 -121
  159. package/lib/python/poetry.js +12 -26
  160. package/lib/python/projenrc.d.ts +4 -15
  161. package/lib/python/projenrc.js +3 -8
  162. package/lib/python/pytest.d.ts +3 -16
  163. package/lib/python/pytest.js +2 -8
  164. package/lib/python/python-deps.d.ts +7 -21
  165. package/lib/python/python-deps.js +1 -1
  166. package/lib/python/python-env.d.ts +1 -6
  167. package/lib/python/python-env.js +1 -1
  168. package/lib/python/python-packaging.d.ts +12 -34
  169. package/lib/python/python-packaging.js +1 -1
  170. package/lib/python/python-project.d.ts +34 -79
  171. package/lib/python/python-project.js +7 -20
  172. package/lib/python/python-sample.d.ts +2 -9
  173. package/lib/python/python-sample.js +3 -8
  174. package/lib/python/requirements-file.d.ts +4 -19
  175. package/lib/python/requirements-file.js +5 -15
  176. package/lib/python/setuppy.d.ts +11 -39
  177. package/lib/python/setuppy.js +3 -13
  178. package/lib/python/setuptools.d.ts +2 -14
  179. package/lib/python/setuptools.js +3 -8
  180. package/lib/python/venv.d.ts +4 -14
  181. package/lib/python/venv.js +4 -11
  182. package/lib/readme.d.ts +7 -16
  183. package/lib/readme.js +5 -7
  184. package/lib/release/publisher.d.ts +92 -201
  185. package/lib/release/publisher.js +18 -37
  186. package/lib/release/release-trigger.d.ts +16 -48
  187. package/lib/release/release-trigger.js +8 -18
  188. package/lib/release/release.d.ts +50 -110
  189. package/lib/release/release.js +9 -24
  190. package/lib/run-task.js +1820 -0
  191. package/lib/sample-file.d.ts +14 -47
  192. package/lib/sample-file.js +9 -30
  193. package/lib/semver.d.ts +4 -21
  194. package/lib/semver.js +6 -20
  195. package/lib/source-code.d.ts +7 -23
  196. package/lib/source-code.js +7 -19
  197. package/lib/task-model.d.ts +21 -61
  198. package/lib/task-model.js +1 -1
  199. package/lib/task-runtime.d.ts +7 -24
  200. package/lib/task-runtime.js +7 -20
  201. package/lib/task.d.ts +29 -73
  202. package/lib/task.js +28 -61
  203. package/lib/tasks.d.ts +12 -34
  204. package/lib/tasks.js +14 -36
  205. package/lib/testing.d.ts +6 -10
  206. package/lib/testing.js +8 -12
  207. package/lib/textfile.d.ts +9 -24
  208. package/lib/textfile.js +9 -19
  209. package/lib/toml.d.ts +2 -14
  210. package/lib/toml.js +3 -13
  211. package/lib/typescript/projenrc.d.ts +4 -14
  212. package/lib/typescript/projenrc.js +3 -8
  213. package/lib/typescript/typescript-typedoc.d.ts +1 -6
  214. package/lib/typescript/typescript-typedoc.js +3 -8
  215. package/lib/typescript/typescript.d.ts +24 -82
  216. package/lib/typescript/typescript.js +6 -15
  217. package/lib/version.d.ts +9 -38
  218. package/lib/version.js +2 -11
  219. package/lib/vscode/devcontainer.d.ts +10 -30
  220. package/lib/vscode/devcontainer.js +10 -26
  221. package/lib/vscode/launch-config.d.ts +18 -97
  222. package/lib/vscode/launch-config.js +9 -15
  223. package/lib/vscode/vscode.d.ts +0 -9
  224. package/lib/vscode/vscode.js +2 -11
  225. package/lib/web/next.d.ts +19 -60
  226. package/lib/web/next.js +6 -20
  227. package/lib/web/postcss.d.ts +3 -24
  228. package/lib/web/postcss.js +3 -8
  229. package/lib/web/react.d.ts +13 -60
  230. package/lib/web/react.js +7 -32
  231. package/lib/web/tailwind.d.ts +1 -15
  232. package/lib/web/tailwind.js +3 -7
  233. package/lib/xmlfile.d.ts +2 -14
  234. package/lib/xmlfile.js +3 -13
  235. package/lib/yaml.d.ts +4 -19
  236. package/lib/yaml.js +3 -13
  237. package/package.json +5 -5
  238. package/releasetag.txt +1 -1
  239. package/version.txt +1 -1
@@ -2,48 +2,33 @@ import { Component } from "../component";
2
2
  import { Project } from "../project";
3
3
  import { Pom } from "./pom";
4
4
  /**
5
- * (experimental) Options for `MavenPackage`.
6
- *
7
- * @experimental
5
+ * Options for `MavenPackage`.
8
6
  */
9
7
  export interface MavenPackagingOptions {
10
8
  /**
11
- * (experimental) Include sources jar in package.
12
- *
9
+ * Include sources jar in package.
13
10
  * @default true
14
- * @experimental
15
11
  */
16
12
  readonly sources?: boolean;
17
13
  /**
18
- * (experimental) Where to place the package output?
19
- *
14
+ * Where to place the package output?
20
15
  * @default "dist/java"
21
- * @experimental
22
16
  */
23
17
  readonly distdir?: string;
24
18
  /**
25
- * (experimental) Include javadocs jar in package.
26
- *
19
+ * Include javadocs jar in package.
27
20
  * @default true
28
- * @experimental
29
21
  */
30
22
  readonly javadocs?: boolean;
31
23
  /**
32
- * (experimental) Exclude source files from docs.
33
- *
24
+ * Exclude source files from docs.
34
25
  * @default []
35
- * @experimental
36
26
  */
37
27
  readonly javadocsExclude?: string[];
38
28
  }
39
29
  /**
40
- * (experimental) Configures a maven project to produce a .jar archive with sources and javadocs.
41
- *
42
- * @experimental
30
+ * Configures a maven project to produce a .jar archive with sources and javadocs.
43
31
  */
44
32
  export declare class MavenPackaging extends Component {
45
- /**
46
- * @experimental
47
- */
48
33
  constructor(project: Project, pom: Pom, options?: MavenPackagingOptions);
49
34
  }
@@ -5,14 +5,9 @@ exports.MavenPackaging = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const component_1 = require("../component");
7
7
  /**
8
- * (experimental) Configures a maven project to produce a .jar archive with sources and javadocs.
9
- *
10
- * @experimental
8
+ * Configures a maven project to produce a .jar archive with sources and javadocs.
11
9
  */
12
10
  class MavenPackaging extends component_1.Component {
13
- /**
14
- * @experimental
15
- */
16
11
  constructor(project, pom, options = {}) {
17
12
  var _b, _c, _d;
18
13
  super(project);
@@ -63,5 +58,5 @@ class MavenPackaging extends component_1.Component {
63
58
  }
64
59
  exports.MavenPackaging = MavenPackaging;
65
60
  _a = JSII_RTTI_SYMBOL_1;
66
- MavenPackaging[_a] = { fqn: "projen.java.MavenPackaging", version: "0.52.20" };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tcGFja2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvbWF2ZW4tcGFja2FnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQXlDOzs7Ozs7QUFvQnpDLE1BQWEsY0FBZSxTQUFRLHFCQUFTOzs7O0lBQzNDLFlBQVksT0FBZ0IsRUFBRSxHQUFRLEVBQUUsVUFBaUMsRUFBRTs7UUFDekUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsR0FBRyxDQUFDLFNBQVMsQ0FBQyxpREFBaUQsRUFBRTtZQUMvRCxhQUFhLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFO29CQUNQLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRTt3QkFDUiwrQkFBK0IsRUFBRSxJQUFJO3dCQUNyQyw4QkFBOEIsRUFBRSxJQUFJO3FCQUNyQztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsVUFBSSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxJQUFJLEVBQUU7WUFDM0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxvREFBb0QsRUFBRTtnQkFDbEUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUN2RCxDQUFDLENBQUM7U0FDSjtRQUVELFVBQUksT0FBTyxDQUFDLFFBQVEsbUNBQUksSUFBSSxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxTQUFTLENBQUMscURBQXFELEVBQUU7Z0JBQ25FLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELGFBQWEsRUFBRTtvQkFDYixXQUFXLEVBQUUsS0FBSztvQkFDbEIsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7b0JBQ3hELGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLGtCQUFrQixFQUFFO3dCQUNsQixpQkFBaUIsRUFBRTs0QkFDakIsMEJBQTBCOzRCQUMxQiwyQkFBMkI7eUJBQzVCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxNQUFNLEdBQUcsR0FBRztZQUNWLFVBQVUsRUFBRSxnREFBZ0Q7U0FDN0QsQ0FBQztRQUVGLE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLFdBQVcsQ0FBQztRQUUvQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzNCLHNFQUFzRSxPQUFPLEVBQUUsQ0FDaEYsQ0FBQztRQUVGLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O0FBdkRILHdDQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgUG9tIH0gZnJvbSBcIi4vcG9tXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIE1hdmVuUGFja2FnaW5nT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNvdXJjZXM/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkaXN0ZGlyPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBqYXZhZG9jcz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGphdmFkb2NzRXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBNYXZlblBhY2thZ2luZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHBvbTogUG9tLCBvcHRpb25zOiBNYXZlblBhY2thZ2luZ09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgcG9tLmFkZFBsdWdpbihcIm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1qYXItcGx1Z2luQDMuMi4wXCIsIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgYXJjaGl2ZToge1xuICAgICAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgICBhZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzOiB0cnVlLFxuICAgICAgICAgICAgYWRkRGVmYXVsdFNwZWNpZmljYXRpb25FbnRyaWVzOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc291cmNlcyA/PyB0cnVlKSB7XG4gICAgICBwb20uYWRkUGx1Z2luKFwib3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zL21hdmVuLXNvdXJjZS1wbHVnaW5AMy4yLjFcIiwge1xuICAgICAgICBleGVjdXRpb25zOiBbeyBpZDogXCJhdHRhY2gtc291cmNlc1wiLCBnb2FsczogW1wiamFyXCJdIH1dLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuamF2YWRvY3MgPz8gdHJ1ZSkge1xuICAgICAgcG9tLmFkZFBsdWdpbihcIm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1qYXZhZG9jLXBsdWdpbkAzLjIuMFwiLCB7XG4gICAgICAgIGV4ZWN1dGlvbnM6IFt7IGlkOiBcImF0dGFjaC1qYXZhZG9jc1wiLCBnb2FsczogW1wiamFyXCJdIH1dLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgZmFpbE9uRXJyb3I6IGZhbHNlLFxuICAgICAgICAgIHNob3c6IFwicHJvdGVjdGVkXCIsXG4gICAgICAgICAgc291cmNlRmlsZUV4Y2x1ZGVzOiB7IGV4Y2x1ZGU6IG9wdGlvbnMuamF2YWRvY3NFeGNsdWRlIH0sXG4gICAgICAgICAgZGV0ZWN0SmF2YUFwaUxpbms6IGZhbHNlLCAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNjE4ODQyNjdcbiAgICAgICAgICBhZGRpdGlvbmFsSk9wdGlvbnM6IHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxKT3B0aW9uOiBbXG4gICAgICAgICAgICAgIFwiLUotWFg6K1RpZXJlZENvbXBpbGF0aW9uXCIsXG4gICAgICAgICAgICAgIFwiLUotWFg6VGllcmVkU3RvcEF0TGV2ZWw9MVwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgTUFWRU5fT1BUUzogXCItWFg6K1RpZXJlZENvbXBpbGF0aW9uIC1YWDpUaWVyZWRTdG9wQXRMZXZlbD0xXCIsXG4gICAgfTtcblxuICAgIGNvbnN0IGRpc3RkaXIgPSBvcHRpb25zLmRpc3RkaXIgPz8gXCJkaXN0L2phdmFcIjtcblxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGVudikpIHtcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5lbnYoaywgdik7XG4gICAgfVxuICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBta2RpciAtcCAke2Rpc3RkaXJ9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLmV4ZWMoXG4gICAgICBgbXZuIGRlcGxveSAtRD1hbHREZXBsb3ltZW50UmVwb3NpdG9yeT1sb2NhbDo6ZGVmYXVsdDo6ZmlsZTovLy8kUFdELyR7ZGlzdGRpcn1gXG4gICAgKTtcblxuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoZGlzdGRpcik7XG4gIH1cbn1cbiJdfQ==
61
+ MavenPackaging[_a] = { fqn: "projen.java.MavenPackaging", version: "0.52.24" };
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tcGFja2FnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvbWF2ZW4tcGFja2FnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQXlDO0FBaUN6Qzs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTO0lBQzNDLFlBQVksT0FBZ0IsRUFBRSxHQUFRLEVBQUUsVUFBaUMsRUFBRTs7UUFDekUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsR0FBRyxDQUFDLFNBQVMsQ0FBQyxpREFBaUQsRUFBRTtZQUMvRCxhQUFhLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFO29CQUNQLEtBQUssRUFBRSxJQUFJO29CQUNYLFFBQVEsRUFBRTt3QkFDUiwrQkFBK0IsRUFBRSxJQUFJO3dCQUNyQyw4QkFBOEIsRUFBRSxJQUFJO3FCQUNyQztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsVUFBSSxPQUFPLENBQUMsT0FBTyxtQ0FBSSxJQUFJLEVBQUU7WUFDM0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxvREFBb0QsRUFBRTtnQkFDbEUsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUN2RCxDQUFDLENBQUM7U0FDSjtRQUVELFVBQUksT0FBTyxDQUFDLFFBQVEsbUNBQUksSUFBSSxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxTQUFTLENBQUMscURBQXFELEVBQUU7Z0JBQ25FLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELGFBQWEsRUFBRTtvQkFDYixXQUFXLEVBQUUsS0FBSztvQkFDbEIsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7b0JBQ3hELGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLGtCQUFrQixFQUFFO3dCQUNsQixpQkFBaUIsRUFBRTs0QkFDakIsMEJBQTBCOzRCQUMxQiwyQkFBMkI7eUJBQzVCO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxNQUFNLEdBQUcsR0FBRztZQUNWLFVBQVUsRUFBRSxnREFBZ0Q7U0FDN0QsQ0FBQztRQUVGLE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLFdBQVcsQ0FBQztRQUUvQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzNCLHNFQUFzRSxPQUFPLEVBQUUsQ0FDaEYsQ0FBQztRQUVGLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O0FBdkRILHdDQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgUG9tIH0gZnJvbSBcIi4vcG9tXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYE1hdmVuUGFja2FnZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF2ZW5QYWNrYWdpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIEluY2x1ZGUgc291cmNlcyBqYXIgaW4gcGFja2FnZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwYWNrYWdlIG91dHB1dD9cbiAgICogQGRlZmF1bHQgXCJkaXN0L2phdmFcIlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzdGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogSW5jbHVkZSBqYXZhZG9jcyBqYXIgaW4gcGFja2FnZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgamF2YWRvY3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFeGNsdWRlIHNvdXJjZSBmaWxlcyBmcm9tIGRvY3MuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBqYXZhZG9jc0V4Y2x1ZGU/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmVzIGEgbWF2ZW4gcHJvamVjdCB0byBwcm9kdWNlIGEgLmphciBhcmNoaXZlIHdpdGggc291cmNlcyBhbmQgamF2YWRvY3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXZlblBhY2thZ2luZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHBvbTogUG9tLCBvcHRpb25zOiBNYXZlblBhY2thZ2luZ09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgcG9tLmFkZFBsdWdpbihcIm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1qYXItcGx1Z2luQDMuMi4wXCIsIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgYXJjaGl2ZToge1xuICAgICAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgICBhZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzOiB0cnVlLFxuICAgICAgICAgICAgYWRkRGVmYXVsdFNwZWNpZmljYXRpb25FbnRyaWVzOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc291cmNlcyA/PyB0cnVlKSB7XG4gICAgICBwb20uYWRkUGx1Z2luKFwib3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zL21hdmVuLXNvdXJjZS1wbHVnaW5AMy4yLjFcIiwge1xuICAgICAgICBleGVjdXRpb25zOiBbeyBpZDogXCJhdHRhY2gtc291cmNlc1wiLCBnb2FsczogW1wiamFyXCJdIH1dLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuamF2YWRvY3MgPz8gdHJ1ZSkge1xuICAgICAgcG9tLmFkZFBsdWdpbihcIm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1qYXZhZG9jLXBsdWdpbkAzLjIuMFwiLCB7XG4gICAgICAgIGV4ZWN1dGlvbnM6IFt7IGlkOiBcImF0dGFjaC1qYXZhZG9jc1wiLCBnb2FsczogW1wiamFyXCJdIH1dLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgZmFpbE9uRXJyb3I6IGZhbHNlLFxuICAgICAgICAgIHNob3c6IFwicHJvdGVjdGVkXCIsXG4gICAgICAgICAgc291cmNlRmlsZUV4Y2x1ZGVzOiB7IGV4Y2x1ZGU6IG9wdGlvbnMuamF2YWRvY3NFeGNsdWRlIH0sXG4gICAgICAgICAgZGV0ZWN0SmF2YUFwaUxpbms6IGZhbHNlLCAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNjE4ODQyNjdcbiAgICAgICAgICBhZGRpdGlvbmFsSk9wdGlvbnM6IHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxKT3B0aW9uOiBbXG4gICAgICAgICAgICAgIFwiLUotWFg6K1RpZXJlZENvbXBpbGF0aW9uXCIsXG4gICAgICAgICAgICAgIFwiLUotWFg6VGllcmVkU3RvcEF0TGV2ZWw9MVwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZW52ID0ge1xuICAgICAgTUFWRU5fT1BUUzogXCItWFg6K1RpZXJlZENvbXBpbGF0aW9uIC1YWDpUaWVyZWRTdG9wQXRMZXZlbD0xXCIsXG4gICAgfTtcblxuICAgIGNvbnN0IGRpc3RkaXIgPSBvcHRpb25zLmRpc3RkaXIgPz8gXCJkaXN0L2phdmFcIjtcblxuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGVudikpIHtcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5lbnYoaywgdik7XG4gICAgfVxuICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBta2RpciAtcCAke2Rpc3RkaXJ9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLmV4ZWMoXG4gICAgICBgbXZuIGRlcGxveSAtRD1hbHREZXBsb3ltZW50UmVwb3NpdG9yeT1sb2NhbDo6ZGVmYXVsdDo6ZmlsZTovLy8kUFdELyR7ZGlzdGRpcn1gXG4gICAgKTtcblxuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoZGlzdGRpcik7XG4gIH1cbn1cbiJdfQ==
@@ -1,24 +1,14 @@
1
1
  import { Component } from "../component";
2
2
  import { Project } from "../project";
3
- /**
4
- * @experimental
5
- */
6
3
  export interface MavenSampleOptions {
7
4
  /**
8
- * (experimental) Project root java package.
9
- *
10
- * @experimental
5
+ * Project root java package.
11
6
  */
12
7
  readonly package: string;
13
8
  }
14
9
  /**
15
- * (experimental) Java code sample.
16
- *
17
- * @experimental
10
+ * Java code sample.
18
11
  */
19
12
  export declare class MavenSample extends Component {
20
- /**
21
- * @experimental
22
- */
23
13
  constructor(project: Project, options: MavenSampleOptions);
24
14
  }
@@ -7,14 +7,9 @@ const path_1 = require("path");
7
7
  const component_1 = require("../component");
8
8
  const sample_file_1 = require("../sample-file");
9
9
  /**
10
- * (experimental) Java code sample.
11
- *
12
- * @experimental
10
+ * Java code sample.
13
11
  */
14
12
  class MavenSample extends component_1.Component {
15
- /**
16
- * @experimental
17
- */
18
13
  constructor(project, options) {
19
14
  super(project);
20
15
  const pkg = options.package.split(".");
@@ -35,5 +30,5 @@ class MavenSample extends component_1.Component {
35
30
  }
36
31
  exports.MavenSample = MavenSample;
37
32
  _a = JSII_RTTI_SYMBOL_1;
38
- MavenSample[_a] = { fqn: "projen.java.MavenSample", version: "0.52.20" };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tc2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvbWF2ZW4tc2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLDRDQUF5QztBQUV6QyxnREFBMkM7Ozs7OztBQVEzQyxNQUFhLFdBQVksU0FBUSxxQkFBUzs7OztJQUN4QyxZQUFZLE9BQWdCLEVBQUUsT0FBMkI7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSx1QkFBUyxDQUFDLE9BQU8sRUFBRSxXQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRTtZQUMxRCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFO29CQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDM0QsRUFBRTtvQkFDRixxQkFBcUI7b0JBQ3JCLGtEQUFrRDtvQkFDbEQsMENBQTBDO29CQUMxQyxLQUFLO29CQUNMLEdBQUc7aUJBQ0osQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWxCSCxrQ0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSBcIi4uL3NhbXBsZS1maWxlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF2ZW5TYW1wbGVPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGFja2FnZTogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTWF2ZW5TYW1wbGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBNYXZlblNhbXBsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IHBrZyA9IG9wdGlvbnMucGFja2FnZS5zcGxpdChcIi5cIik7XG4gICAgbmV3IFNhbXBsZURpcihwcm9qZWN0LCBqb2luKFwic3JjXCIsIFwibWFpblwiLCBcImphdmFcIiwgLi4ucGtnKSwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJNYWluLmphdmFcIjogW1xuICAgICAgICAgIC4uLihvcHRpb25zLnBhY2thZ2UgPyBbYHBhY2thZ2UgJHtvcHRpb25zLnBhY2thZ2V9O2BdIDogW10pLFxuICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgXCJwdWJsaWMgY2xhc3MgTWFpbiB7XCIsXG4gICAgICAgICAgXCIgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKGZpbmFsIFN0cmluZ1tdIGFyZ3MpIHtcIixcbiAgICAgICAgICAnICAgIFN5c3RlbS5vdXQucHJpbnRsbihcIkhlbGxvLCB3b3JsZCFcIik7JyxcbiAgICAgICAgICBcIiAgfVwiLFxuICAgICAgICAgIFwifVwiLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
33
+ MavenSample[_a] = { fqn: "projen.java.MavenSample", version: "0.52.24" };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tc2FtcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvbWF2ZW4tc2FtcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLDRDQUF5QztBQUV6QyxnREFBMkM7QUFTM0M7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxxQkFBUztJQUN4QyxZQUFZLE9BQWdCLEVBQUUsT0FBMkI7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSx1QkFBUyxDQUFDLE9BQU8sRUFBRSxXQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRTtZQUMxRCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFO29CQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDM0QsRUFBRTtvQkFDRixxQkFBcUI7b0JBQ3JCLGtEQUFrRDtvQkFDbEQsMENBQTBDO29CQUMxQyxLQUFLO29CQUNMLEdBQUc7aUJBQ0osQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWxCSCxrQ0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSBcIi4uL3NhbXBsZS1maWxlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF2ZW5TYW1wbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFByb2plY3Qgcm9vdCBqYXZhIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSmF2YSBjb2RlIHNhbXBsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdmVuU2FtcGxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogTWF2ZW5TYW1wbGVPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCBwa2cgPSBvcHRpb25zLnBhY2thZ2Uuc3BsaXQoXCIuXCIpO1xuICAgIG5ldyBTYW1wbGVEaXIocHJvamVjdCwgam9pbihcInNyY1wiLCBcIm1haW5cIiwgXCJqYXZhXCIsIC4uLnBrZyksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwiTWFpbi5qYXZhXCI6IFtcbiAgICAgICAgICAuLi4ob3B0aW9ucy5wYWNrYWdlID8gW2BwYWNrYWdlICR7b3B0aW9ucy5wYWNrYWdlfTtgXSA6IFtdKSxcbiAgICAgICAgICBcIlwiLFxuICAgICAgICAgIFwicHVibGljIGNsYXNzIE1haW4ge1wiLFxuICAgICAgICAgIFwiICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihmaW5hbCBTdHJpbmdbXSBhcmdzKSB7XCIsXG4gICAgICAgICAgJyAgICBTeXN0ZW0ub3V0LnByaW50bG4oXCJIZWxsbywgd29ybGQhXCIpOycsXG4gICAgICAgICAgXCIgIH1cIixcbiAgICAgICAgICBcIn1cIixcbiAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
package/lib/java/pom.d.ts CHANGED
@@ -1,15 +1,11 @@
1
1
  import { Component } from "../component";
2
2
  import { Project } from "../project";
3
3
  /**
4
- * (experimental) Options for `Pom`.
5
- *
6
- * @experimental
4
+ * Options for `Pom`.
7
5
  */
8
6
  export interface PomOptions {
9
7
  /**
10
- * (experimental) This is generally unique amongst an organization or a project.
11
- *
12
- * For example,
8
+ * This is generally unique amongst an organization or a project. For example,
13
9
  * all core Maven artifacts do (well, should) live under the groupId
14
10
  * org.apache.maven. Group ID's do not necessarily use the dot notation, for
15
11
  * example, the junit project. Note that the dot-notated groupId does not have
@@ -20,16 +16,12 @@ export interface PomOptions {
20
16
  * '/' in Unix) which becomes a relative directory structure from the base
21
17
  * repository. In the example given, the org.codehaus.mojo group lives within
22
18
  * the directory $M2_REPO/org/codehaus/mojo.
23
- *
24
19
  * @default "org.acme"
25
- * @experimental
26
- * @featured true
20
+ * @featured
27
21
  */
28
22
  readonly groupId: string;
29
23
  /**
30
- * (experimental) The artifactId is generally the name that the project is known by.
31
- *
32
- * Although
24
+ * The artifactId is generally the name that the project is known by. Although
33
25
  * the groupId is important, people within the group will rarely mention the
34
26
  * groupId in discussion (they are often all be the same ID, such as the
35
27
  * MojoHaus project groupId: org.codehaus.mojo). It, along with the groupId,
@@ -38,16 +30,12 @@ export interface PomOptions {
38
30
  * fully defines the artifact's living quarters within the repository. In the
39
31
  * case of the above project, my-project lives in
40
32
  * $M2_REPO/org/codehaus/mojo/my-project.
41
- *
42
33
  * @default "my-app"
43
- * @experimental
44
- * @featured true
34
+ * @featured
45
35
  */
46
36
  readonly artifactId: string;
47
37
  /**
48
- * (experimental) This is the last piece of the naming puzzle.
49
- *
50
- * groupId:artifactId denotes a
38
+ * This is the last piece of the naming puzzle. groupId:artifactId denotes a
51
39
  * single project but they cannot delineate which incarnation of that project
52
40
  * we are talking about. Do we want the junit:junit of 2018 (version 4.12), or
53
41
  * of 2007 (version 3.8.2)? In short: code changes, those changes should be
@@ -55,189 +43,139 @@ export interface PomOptions {
55
43
  * within an artifact's repository to separate versions from each other.
56
44
  * my-project version 1.0 files live in the directory structure
57
45
  * $M2_REPO/org/codehaus/mojo/my-project/1.0.
58
- *
59
46
  * @default "0.1.0"
60
- * @experimental
61
- * @featured true
47
+ * @featured
62
48
  */
63
49
  readonly version: string;
64
50
  /**
65
- * (experimental) Project packaging format.
51
+ * Project packaging format.
66
52
  *
67
53
  * @default "jar"
68
- * @experimental
69
54
  */
70
55
  readonly packaging?: string;
71
56
  /**
72
- * (experimental) Description of a project is always good.
73
- *
74
- * Although this should not replace
57
+ * Description of a project is always good. Although this should not replace
75
58
  * formal documentation, a quick comment to any readers of the POM is always
76
59
  * helpful.
77
60
  *
78
61
  * @default undefined
79
- * @experimental
80
- * @featured true
62
+ * @featured
81
63
  */
82
64
  readonly description?: string;
83
65
  /**
84
- * (experimental) The URL, like the name, is not required.
85
- *
86
- * This is a nice gesture for
66
+ * The URL, like the name, is not required. This is a nice gesture for
87
67
  * projects users, however, so that they know where the project lives.
88
68
  *
89
69
  * @default undefined
90
- * @experimental
91
- * @featured true
70
+ * @featured
92
71
  */
93
72
  readonly url?: string;
94
73
  }
95
74
  /**
96
- * (experimental) A Project Object Model or POM is the fundamental unit of work in Maven.
97
- *
98
- * It is
75
+ * A Project Object Model or POM is the fundamental unit of work in Maven. It is
99
76
  * an XML file that contains information about the project and configuration
100
77
  * details used by Maven to build the project.
101
- *
102
- * @experimental
103
78
  */
104
79
  export declare class Pom extends Component {
105
80
  /**
106
- * (experimental) The name of the pom file.
107
- *
108
- * @experimental
81
+ * The name of the pom file.
109
82
  */
110
83
  readonly fileName: string;
111
84
  /**
112
- * (experimental) Maven group ID.
113
- *
114
- * @experimental
85
+ * Maven group ID.
115
86
  */
116
87
  readonly groupId: string;
117
88
  /**
118
- * (experimental) Maven artifact ID.
119
- *
120
- * @experimental
89
+ * Maven artifact ID.
121
90
  */
122
91
  readonly artifactId: string;
123
92
  /**
124
- * (experimental) Project version.
125
- *
126
- * @experimental
93
+ * Project version.
127
94
  */
128
95
  readonly version: string;
129
96
  /**
130
- * (experimental) Maven packaging format.
131
- *
132
- * @experimental
97
+ * Maven packaging format.
133
98
  */
134
99
  readonly packaging: string;
135
100
  /**
136
- * (experimental) Project display name.
137
- *
138
- * @experimental
101
+ * Project display name.
139
102
  */
140
103
  readonly name?: string;
141
104
  /**
142
- * (experimental) Project description.
143
- *
144
- * @experimental
105
+ * Project description.
145
106
  */
146
107
  readonly description?: string;
147
108
  /**
148
- * (experimental) Project URL.
149
- *
150
- * @experimental
109
+ * Project URL.
151
110
  */
152
111
  readonly url?: string;
153
112
  private readonly properties;
154
- /**
155
- * @experimental
156
- */
157
113
  constructor(project: Project, options: PomOptions);
158
114
  /**
159
- * (experimental) Adds a key/value property to the pom.
160
- *
161
- * @param key the key.
162
- * @param value the value.
163
- * @experimental
115
+ * Adds a key/value property to the pom.
116
+ * @param key the key
117
+ * @param value the value
164
118
  */
165
119
  addProperty(key: string, value: string): void;
166
120
  /**
167
- * (experimental) Adds a runtime dependency.
121
+ * Adds a runtime dependency.
168
122
  *
169
- * @param spec Format `<groupId>/<artifactId>@<semver>`.
170
- * @experimental
123
+ * @param spec Format `<groupId>/<artifactId>@<semver>`
171
124
  */
172
125
  addDependency(spec: string): void;
173
126
  /**
174
- * (experimental) Adds a test dependency.
127
+ * Adds a test dependency.
175
128
  *
176
- * @param spec Format `<groupId>/<artifactId>@<semver>`.
177
- * @experimental
129
+ * @param spec Format `<groupId>/<artifactId>@<semver>`
178
130
  */
179
131
  addTestDependency(spec: string): void;
180
132
  /**
181
- * (experimental) Adds a build plugin to the pom.
133
+ * Adds a build plugin to the pom.
182
134
  *
183
135
  * The plug in is also added as a BUILD dep to the project.
184
136
  *
185
- * @param spec dependency spec (`group/artifact@version`).
186
- * @param options plugin options.
187
- * @experimental
137
+ * @param spec dependency spec (`group/artifact@version`)
138
+ * @param options plugin options
188
139
  */
189
140
  addPlugin(spec: string, options?: PluginOptions): import("../dependencies").Dependency;
190
141
  private synthPom;
191
142
  private synthDependencies;
192
143
  }
193
144
  /**
194
- * (experimental) Options for Maven plugins.
195
- *
196
- * @experimental
145
+ * Options for Maven plugins.
197
146
  */
198
147
  export interface PluginOptions {
199
148
  /**
200
- * (experimental) Plugin key/value configuration.
201
- *
149
+ * Plugin key/value configuration
202
150
  * @default {}
203
- * @experimental
204
151
  */
205
152
  readonly configuration?: {
206
153
  [key: string]: any;
207
154
  };
208
155
  /**
209
- * (experimental) Plugin executions.
210
- *
156
+ * Plugin executions
211
157
  * @default []
212
- * @experimental
213
158
  */
214
159
  readonly executions?: PluginExecution[];
215
160
  /**
216
- * (experimental) You could configure the dependencies for the plugin.
161
+ * You could configure the dependencies for the plugin.
217
162
  *
218
163
  * Dependencies are in `<groupId>/<artifactId>@<semver>` format.
219
164
  *
220
165
  * @default []
221
- * @experimental
222
166
  */
223
167
  readonly dependencies?: string[];
224
168
  }
225
169
  /**
226
- * (experimental) Plugin execution definition.
227
- *
228
- * @experimental
170
+ * Plugin execution definition.
229
171
  */
230
172
  export interface PluginExecution {
231
173
  /**
232
- * (experimental) The ID.
233
- *
234
- * @experimental
174
+ * The ID.
235
175
  */
236
176
  readonly id: string;
237
177
  /**
238
- * (experimental) Which Maven goals this plugin should be associated with.
239
- *
240
- * @experimental
178
+ * Which Maven goals this plugin should be associated with.
241
179
  */
242
180
  readonly goals: string[];
243
181
  }
package/lib/java/pom.js CHANGED
@@ -14,18 +14,11 @@ const POM_XML_ATTRS = {
14
14
  "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
15
15
  };
16
16
  /**
17
- * (experimental) A Project Object Model or POM is the fundamental unit of work in Maven.
18
- *
19
- * It is
17
+ * A Project Object Model or POM is the fundamental unit of work in Maven. It is
20
18
  * an XML file that contains information about the project and configuration
21
19
  * details used by Maven to build the project.
22
- *
23
- * @experimental
24
20
  */
25
21
  class Pom extends component_1.Component {
26
- /**
27
- * @experimental
28
- */
29
22
  constructor(project, options) {
30
23
  var _b;
31
24
  super(project);
@@ -41,41 +34,36 @@ class Pom extends component_1.Component {
41
34
  new xmlfile_1.XmlFile(project, this.fileName, { obj: () => this.synthPom() });
42
35
  }
43
36
  /**
44
- * (experimental) Adds a key/value property to the pom.
45
- *
46
- * @param key the key.
47
- * @param value the value.
48
- * @experimental
37
+ * Adds a key/value property to the pom.
38
+ * @param key the key
39
+ * @param value the value
49
40
  */
50
41
  addProperty(key, value) {
51
42
  this.properties[key] = value;
52
43
  }
53
44
  /**
54
- * (experimental) Adds a runtime dependency.
45
+ * Adds a runtime dependency.
55
46
  *
56
- * @param spec Format `<groupId>/<artifactId>@<semver>`.
57
- * @experimental
47
+ * @param spec Format `<groupId>/<artifactId>@<semver>`
58
48
  */
59
49
  addDependency(spec) {
60
50
  this.project.deps.addDependency(spec, dependencies_1.DependencyType.RUNTIME);
61
51
  }
62
52
  /**
63
- * (experimental) Adds a test dependency.
53
+ * Adds a test dependency.
64
54
  *
65
- * @param spec Format `<groupId>/<artifactId>@<semver>`.
66
- * @experimental
55
+ * @param spec Format `<groupId>/<artifactId>@<semver>`
67
56
  */
68
57
  addTestDependency(spec) {
69
58
  this.project.deps.addDependency(spec, dependencies_1.DependencyType.TEST);
70
59
  }
71
60
  /**
72
- * (experimental) Adds a build plugin to the pom.
61
+ * Adds a build plugin to the pom.
73
62
  *
74
63
  * The plug in is also added as a BUILD dep to the project.
75
64
  *
76
- * @param spec dependency spec (`group/artifact@version`).
77
- * @param options plugin options.
78
- * @experimental
65
+ * @param spec dependency spec (`group/artifact@version`)
66
+ * @param options plugin options
79
67
  */
80
68
  addPlugin(spec, options = {}) {
81
69
  var _b;
@@ -139,7 +127,7 @@ class Pom extends component_1.Component {
139
127
  }
140
128
  exports.Pom = Pom;
141
129
  _a = JSII_RTTI_SYMBOL_1;
142
- Pom[_a] = { fqn: "projen.java.Pom", version: "0.52.20" };
130
+ Pom[_a] = { fqn: "projen.java.Pom", version: "0.52.24" };
143
131
  /**
144
132
  * Parses maven groupId and artifactId from a dependency name.
145
133
  *
@@ -175,4 +163,4 @@ function pluginConfig(options = {}) {
175
163
  })),
176
164
  };
177
165
  }
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvcG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMENBQXNDO0FBQ3RDLDRDQUF5QztBQUN6QyxrREFJeUI7QUFFekIsMkNBQXFEO0FBQ3JELHdDQUFxQztBQUVyQyxNQUFNLGFBQWEsR0FBRztJQUNwQixxQkFBcUIsRUFDbkIsK0VBQStFO0lBQ2pGLFFBQVEsRUFBRSxtQ0FBbUM7SUFDN0MsWUFBWSxFQUFFLDJDQUEyQztDQUMxRCxDQUFDOzs7Ozs7Ozs7O0FBd0JGLE1BQWEsR0FBSSxTQUFRLHFCQUFTOzs7O0lBMkJoQyxZQUFZLE9BQWdCLEVBQUUsT0FBbUI7O1FBQy9DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhBLGVBQVUsR0FBd0IsRUFBRSxDQUFDO1FBS3BELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLFNBQUcsT0FBTyxDQUFDLFNBQVMsbUNBQUksS0FBSyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBRXZCLElBQUksaUJBQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Ozs7Ozs7O0lBR00sV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7Ozs7Ozs7SUFHTSxhQUFhLENBQUMsSUFBWTtRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLDZCQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7Ozs7OztJQUdNLGlCQUFpQixDQUFDLElBQVk7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSw2QkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7Ozs7Ozs7Ozs7SUFHTSxTQUFTLENBQUMsSUFBWSxFQUFFLFVBQXlCLEVBQUU7O1FBQ3hELEtBQUssTUFBTSxHQUFHLFVBQUksT0FBTyxDQUFDLFlBQVksbUNBQUksRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsNkJBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1RDtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSw2QkFBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sUUFBUTtRQUNkLE9BQU8sa0JBQU8sQ0FDWjtZQUNFLE9BQU8sRUFBRTtnQkFDUCxHQUFHLGFBQWE7Z0JBQ2hCLFlBQVksRUFBRSxPQUFPO2dCQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2FBQzVCO1NBQ0YsRUFDRCxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBRUQsTUFBTSxZQUFZLEdBQVUsRUFBRSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUUxQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUN0QixRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLEtBQUssNkJBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pCLEtBQUssNkJBQWMsQ0FBQyxPQUFPO29CQUN6QixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxNQUFNO2dCQUVSLEtBQUssNkJBQWMsQ0FBQyxJQUFJO29CQUN0QixZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUNoQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUM7d0JBQ25CLEtBQUssRUFBRSxNQUFNO3FCQUNkLENBQUMsQ0FBQztvQkFDSCxNQUFNO2dCQUVSLHdCQUF3QjtnQkFDeEIsS0FBSyw2QkFBYyxDQUFDLEtBQUs7b0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUM7d0JBQ1gsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO3dCQUNuQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBeUIsQ0FBQztxQkFDL0MsQ0FBQyxDQUFDO29CQUNILE1BQU07Z0JBRVI7b0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDL0Q7U0FDRjtRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdkMsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRTtTQUMzQyxDQUFDO0lBQ0osQ0FBQzs7QUE5SEgsa0JBK0hDOzs7QUF1QkQ7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxHQUEwQjtJQUM3QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN0QixNQUFNLElBQUksS0FBSyxDQUNiLGtEQUFrRCxJQUFJLDZGQUE2RixDQUNwSixDQUFDO0tBQ0g7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDRCQUFtQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUNwRSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLFVBQXlCLEVBQUU7O0lBQy9DLE9BQU87UUFDTCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7UUFDcEMsWUFBWSxFQUNWLE9BQU8sQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNyRCxDQUFDLENBQUM7Z0JBQ0UsVUFBVSxRQUFFLE9BQU8sQ0FBQyxZQUFZLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzFDLFdBQVcsQ0FBQywyQkFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM3QzthQUNGO1lBQ0gsQ0FBQyxDQUFDLFNBQVM7UUFDZixVQUFVLFFBQUUsT0FBTyxDQUFDLFVBQVUsMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLFNBQVMsRUFBRTtnQkFDVCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUN6QztTQUNGLENBQUMsQ0FBQztLQUNKLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCIuLi9fcmVzb2x2ZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgRGVwZW5kZW5jaWVzLFxuICBEZXBlbmRlbmN5Q29vcmRpbmF0ZXMsXG4gIERlcGVuZGVuY3lUeXBlLFxufSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IHRvTWF2ZW5WZXJzaW9uUmFuZ2UgfSBmcm9tIFwiLi4vdXRpbC9zZW12ZXJcIjtcbmltcG9ydCB7IFhtbEZpbGUgfSBmcm9tIFwiLi4veG1sZmlsZVwiO1xuXG5jb25zdCBQT01fWE1MX0FUVFJTID0ge1xuICBcIkB4c2k6c2NoZW1hTG9jYXRpb25cIjpcbiAgICBcImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkXCIsXG4gIFwiQHhtbG5zXCI6IFwiaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wXCIsXG4gIFwiQHhtbG5zOnhzaVwiOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIsXG59O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBQb21PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBncm91cElkOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFydGlmYWN0SWQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGFja2FnaW5nPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBQb20gZXh0ZW5kcyBDb21wb25lbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWZhY3RJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgcGFja2FnaW5nOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBQb21PcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmZpbGVOYW1lID0gXCJwb20ueG1sXCI7XG4gICAgdGhpcy5ncm91cElkID0gb3B0aW9ucy5ncm91cElkO1xuICAgIHRoaXMuYXJ0aWZhY3RJZCA9IG9wdGlvbnMuYXJ0aWZhY3RJZDtcbiAgICB0aGlzLnZlcnNpb24gPSBvcHRpb25zLnZlcnNpb247XG4gICAgdGhpcy5wYWNrYWdpbmcgPSBvcHRpb25zLnBhY2thZ2luZyA/PyBcImphclwiO1xuICAgIHRoaXMubmFtZSA9IHByb2plY3QubmFtZTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gb3B0aW9ucy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLnVybCA9IG9wdGlvbnMudXJsO1xuXG4gICAgbmV3IFhtbEZpbGUocHJvamVjdCwgdGhpcy5maWxlTmFtZSwgeyBvYmo6ICgpID0+IHRoaXMuc3ludGhQb20oKSB9KTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucHJvcGVydGllc1trZXldID0gdmFsdWU7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHNwZWMsIERlcGVuZGVuY3lUeXBlLlJVTlRJTUUpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFRlc3REZXBlbmRlbmN5KHNwZWM6IHN0cmluZykge1xuICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koc3BlYywgRGVwZW5kZW5jeVR5cGUuVEVTVCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFBsdWdpbihzcGVjOiBzdHJpbmcsIG9wdGlvbnM6IFBsdWdpbk9wdGlvbnMgPSB7fSkge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIG9wdGlvbnMuZGVwZW5kZW5jaWVzID8/IFtdKSB7XG4gICAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KGRlcCwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShzcGVjLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHN5bnRoUG9tKCkge1xuICAgIHJldHVybiByZXNvbHZlKFxuICAgICAge1xuICAgICAgICBwcm9qZWN0OiB7XG4gICAgICAgICAgLi4uUE9NX1hNTF9BVFRSUyxcbiAgICAgICAgICBtb2RlbFZlcnNpb246IFwiNC4wLjBcIixcbiAgICAgICAgICBncm91cElkOiB0aGlzLmdyb3VwSWQsXG4gICAgICAgICAgYXJ0aWZhY3RJZDogdGhpcy5hcnRpZmFjdElkLFxuICAgICAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgICAgICBwYWNrYWdpbmc6IHRoaXMucGFja2FnaW5nLFxuICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAuLi50aGlzLnN5bnRoRGVwZW5kZW5jaWVzKCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgeyBvbWl0RW1wdHk6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN5bnRoRGVwZW5kZW5jaWVzKCkge1xuICAgIGNvbnN0IGRlcHMgPSB0aGlzLnByb2plY3QuZGVwcy5hbGw7XG4gICAgaWYgKGRlcHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzOiBhbnlbXSA9IFtdO1xuICAgIGNvbnN0IHBsdWdpbnM6IGFueVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBzKSB7XG4gICAgICBzd2l0Y2ggKGRlcC50eXBlKSB7XG4gICAgICAgIGNhc2UgRGVwZW5kZW5jeVR5cGUuUEVFUjpcbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5SVU5USU1FOlxuICAgICAgICAgIGRlcGVuZGVuY2llcy5wdXNoKG1hdmVuQ29vcmRzKGRlcCkpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgRGVwZW5kZW5jeVR5cGUuVEVTVDpcbiAgICAgICAgICBkZXBlbmRlbmNpZXMucHVzaCh7XG4gICAgICAgICAgICAuLi5tYXZlbkNvb3JkcyhkZXApLFxuICAgICAgICAgICAgc2NvcGU6IFwidGVzdFwiLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIC8vIGJ1aWxkIG1hcHMgdG8gcGx1Z2luc1xuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLkJVSUxEOlxuICAgICAgICAgIHBsdWdpbnMucHVzaCh7XG4gICAgICAgICAgICAuLi5tYXZlbkNvb3JkcyhkZXApLFxuICAgICAgICAgICAgLi4ucGx1Z2luQ29uZmlnKGRlcC5tZXRhZGF0YSBhcyBQbHVnaW5PcHRpb25zKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgZGVwZW5kZW5jeSB0eXBlOiAke2RlcC50eXBlfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBidWlsZDogeyBwbHVnaW5zOiB7IHBsdWdpbjogcGx1Z2lucyB9IH0sXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgZGVwZW5kZW5jeTogZGVwZW5kZW5jaWVzIH0sXG4gICAgfTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbk9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb25maWd1cmF0aW9uPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV4ZWN1dGlvbnM/OiBQbHVnaW5FeGVjdXRpb25bXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkV4ZWN1dGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBnb2Fsczogc3RyaW5nW107XG59XG5cbi8qKlxuICogUGFyc2VzIG1hdmVuIGdyb3VwSWQgYW5kIGFydGlmYWN0SWQgZnJvbSBhIGRlcGVuZGVuY3kgbmFtZS5cbiAqXG4gKiAgICAgbmFtZSAgICA8PT4gPGdyb3VwSWQ+LzxhcnRpZmFjdElkPlxuICogICAgIHZlcnNpb24gPD0+IDx2ZXJzaW9uPlxuICovXG5mdW5jdGlvbiBtYXZlbkNvb3JkcyhkZXA6IERlcGVuZGVuY3lDb29yZGluYXRlcykge1xuICBjb25zdCBuYW1lID0gZGVwLm5hbWU7XG4gIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdChcIi9cIik7XG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgaW52YWxpZCBtYXZlbiBjb29yZGluYXRlcyBpbiBkZXBlbmRlbmN5IG5hbWVkIFwiJHtuYW1lfVwiLiBmb3JtYXQgaXMgXCI8Z3JvdXBJZD4vPGFydGlmYWN0SWQ+XCIuIEZvciBleGFtcGxlIFwib3JnLmp1bml0Lmp1cGl0ZXIvanVuaXQtanVwaXRlci1lbmdpbmVcImBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBncm91cElkOiBwYXJ0c1swXSxcbiAgICBhcnRpZmFjdElkOiBwYXJ0c1sxXSxcbiAgICB2ZXJzaW9uOiBkZXAudmVyc2lvbiA/IHRvTWF2ZW5WZXJzaW9uUmFuZ2UoZGVwLnZlcnNpb24pIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwbHVnaW5Db25maWcob3B0aW9uczogUGx1Z2luT3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiB7XG4gICAgY29uZmlndXJhdGlvbjogb3B0aW9ucy5jb25maWd1cmF0aW9uLFxuICAgIGRlcGVuZGVuY2llczpcbiAgICAgIG9wdGlvbnMuZGVwZW5kZW5jaWVzICYmIG9wdGlvbnMuZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDBcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBkZXBlbmRlbmN5OiBvcHRpb25zLmRlcGVuZGVuY2llcz8ubWFwKChkKSA9PlxuICAgICAgICAgICAgICBtYXZlbkNvb3JkcyhEZXBlbmRlbmNpZXMucGFyc2VEZXBlbmRlbmN5KGQpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIGV4ZWN1dGlvbnM6IG9wdGlvbnMuZXhlY3V0aW9ucz8ubWFwKChlKSA9PiAoe1xuICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgIGlkOiBlLmlkLFxuICAgICAgICBnb2FsczogZS5nb2Fscy5tYXAoKGdvYWwpID0+ICh7IGdvYWwgfSkpLFxuICAgICAgfSxcbiAgICB9KSksXG4gIH07XG59XG4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvcG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMENBQXNDO0FBQ3RDLDRDQUF5QztBQUN6QyxrREFJeUI7QUFFekIsMkNBQXFEO0FBQ3JELHdDQUFxQztBQUVyQyxNQUFNLGFBQWEsR0FBRztJQUNwQixxQkFBcUIsRUFDbkIsK0VBQStFO0lBQ2pGLFFBQVEsRUFBRSxtQ0FBbUM7SUFDN0MsWUFBWSxFQUFFLDJDQUEyQztDQUMxRCxDQUFDO0FBK0VGOzs7O0dBSUc7QUFDSCxNQUFhLEdBQUksU0FBUSxxQkFBUztJQTJDaEMsWUFBWSxPQUFnQixFQUFFLE9BQW1COztRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFIQSxlQUFVLEdBQXdCLEVBQUUsQ0FBQztRQUtwRCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUV2QixJQUFJLGlCQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFD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QUMsMkJBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDN0M7YUFDRjtZQUNILENBQUMsQ0FBQyxTQUFTO1FBQ2YsVUFBVSxRQUFFLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNSLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekM7U0FDRixDQUFDLENBQUM7S0FDSixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwiLi4vX3Jlc29sdmVcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gIERlcGVuZGVuY2llcyxcbiAgRGVwZW5kZW5jeUNvb3JkaW5hdGVzLFxuICBEZXBlbmRlbmN5VHlwZSxcbn0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgeyB0b01hdmVuVmVyc2lvblJhbmdlIH0gZnJvbSBcIi4uL3V0aWwvc2VtdmVyXCI7XG5pbXBvcnQgeyBYbWxGaWxlIH0gZnJvbSBcIi4uL3htbGZpbGVcIjtcblxuY29uc3QgUE9NX1hNTF9BVFRSUyA9IHtcbiAgXCJAeHNpOnNjaGVtYUxvY2F0aW9uXCI6XG4gICAgXCJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZFwiLFxuICBcIkB4bWxuc1wiOiBcImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMFwiLFxuICBcIkB4bWxuczp4c2lcIjogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiLFxufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgUG9tYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb21PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoaXMgaXMgZ2VuZXJhbGx5IHVuaXF1ZSBhbW9uZ3N0IGFuIG9yZ2FuaXphdGlvbiBvciBhIHByb2plY3QuIEZvciBleGFtcGxlLFxuICAgKiBhbGwgY29yZSBNYXZlbiBhcnRpZmFjdHMgZG8gKHdlbGwsIHNob3VsZCkgbGl2ZSB1bmRlciB0aGUgZ3JvdXBJZFxuICAgKiBvcmcuYXBhY2hlLm1hdmVuLiBHcm91cCBJRCdzIGRvIG5vdCBuZWNlc3NhcmlseSB1c2UgdGhlIGRvdCBub3RhdGlvbiwgZm9yXG4gICAqIGV4YW1wbGUsIHRoZSBqdW5pdCBwcm9qZWN0LiBOb3RlIHRoYXQgdGhlIGRvdC1ub3RhdGVkIGdyb3VwSWQgZG9lcyBub3QgaGF2ZVxuICAgKiB0byBjb3JyZXNwb25kIHRvIHRoZSBwYWNrYWdlIHN0cnVjdHVyZSB0aGF0IHRoZSBwcm9qZWN0IGNvbnRhaW5zLiBJdCBpcyxcbiAgICogaG93ZXZlciwgYSBnb29kIHByYWN0aWNlIHRvIGZvbGxvdy4gV2hlbiBzdG9yZWQgd2l0aGluIGEgcmVwb3NpdG9yeSwgdGhlXG4gICAqIGdyb3VwIGFjdHMgbXVjaCBsaWtlIHRoZSBKYXZhIHBhY2thZ2luZyBzdHJ1Y3R1cmUgZG9lcyBpbiBhbiBvcGVyYXRpbmdcbiAgICogc3lzdGVtLiBUaGUgZG90cyBhcmUgcmVwbGFjZWQgYnkgT1Mgc3BlY2lmaWMgZGlyZWN0b3J5IHNlcGFyYXRvcnMgKHN1Y2ggYXNcbiAgICogJy8nIGluIFVuaXgpIHdoaWNoIGJlY29tZXMgYSByZWxhdGl2ZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGZyb20gdGhlIGJhc2VcbiAgICogcmVwb3NpdG9yeS4gSW4gdGhlIGV4YW1wbGUgZ2l2ZW4sIHRoZSBvcmcuY29kZWhhdXMubW9qbyBncm91cCBsaXZlcyB3aXRoaW5cbiAgICogdGhlIGRpcmVjdG9yeSAkTTJfUkVQTy9vcmcvY29kZWhhdXMvbW9qby5cbiAgICogQGRlZmF1bHQgXCJvcmcuYWNtZVwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJ0aWZhY3RJZCBpcyBnZW5lcmFsbHkgdGhlIG5hbWUgdGhhdCB0aGUgcHJvamVjdCBpcyBrbm93biBieS4gQWx0aG91Z2hcbiAgICogdGhlIGdyb3VwSWQgaXMgaW1wb3J0YW50LCBwZW9wbGUgd2l0aGluIHRoZSBncm91cCB3aWxsIHJhcmVseSBtZW50aW9uIHRoZVxuICAgKiBncm91cElkIGluIGRpc2N1c3Npb24gKHRoZXkgYXJlIG9mdGVuIGFsbCBiZSB0aGUgc2FtZSBJRCwgc3VjaCBhcyB0aGVcbiAgICogTW9qb0hhdXMgcHJvamVjdCBncm91cElkOiBvcmcuY29kZWhhdXMubW9qbykuIEl0LCBhbG9uZyB3aXRoIHRoZSBncm91cElkLFxuICAgKiBjcmVhdGVzIGEga2V5IHRoYXQgc2VwYXJhdGVzIHRoaXMgcHJvamVjdCBmcm9tIGV2ZXJ5IG90aGVyIHByb2plY3QgaW4gdGhlXG4gICAqIHdvcmxkIChhdCBsZWFzdCwgaXQgc2hvdWxkIDopICkuIEFsb25nIHdpdGggdGhlIGdyb3VwSWQsIHRoZSBhcnRpZmFjdElkXG4gICAqIGZ1bGx5IGRlZmluZXMgdGhlIGFydGlmYWN0J3MgbGl2aW5nIHF1YXJ0ZXJzIHdpdGhpbiB0aGUgcmVwb3NpdG9yeS4gSW4gdGhlXG4gICAqIGNhc2Ugb2YgdGhlIGFib3ZlIHByb2plY3QsIG15LXByb2plY3QgbGl2ZXMgaW5cbiAgICogJE0yX1JFUE8vb3JnL2NvZGVoYXVzL21vam8vbXktcHJvamVjdC5cbiAgICogQGRlZmF1bHQgXCJteS1hcHBcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBpcyB0aGUgbGFzdCBwaWVjZSBvZiB0aGUgbmFtaW5nIHB1enpsZS4gZ3JvdXBJZDphcnRpZmFjdElkIGRlbm90ZXMgYVxuICAgKiBzaW5nbGUgcHJvamVjdCBidXQgdGhleSBjYW5ub3QgZGVsaW5lYXRlIHdoaWNoIGluY2FybmF0aW9uIG9mIHRoYXQgcHJvamVjdFxuICAgKiB3ZSBhcmUgdGFsa2luZyBhYm91dC4gRG8gd2Ugd2FudCB0aGUganVuaXQ6anVuaXQgb2YgMjAxOCAodmVyc2lvbiA0LjEyKSwgb3JcbiAgICogb2YgMjAwNyAodmVyc2lvbiAzLjguMik/IEluIHNob3J0OiBjb2RlIGNoYW5nZXMsIHRob3NlIGNoYW5nZXMgc2hvdWxkIGJlXG4gICAqIHZlcnNpb25lZCwgYW5kIHRoaXMgZWxlbWVudCBrZWVwcyB0aG9zZSB2ZXJzaW9ucyBpbiBsaW5lLiBJdCBpcyBhbHNvIHVzZWRcbiAgICogd2l0aGluIGFuIGFydGlmYWN0J3MgcmVwb3NpdG9yeSB0byBzZXBhcmF0ZSB2ZXJzaW9ucyBmcm9tIGVhY2ggb3RoZXIuXG4gICAqIG15LXByb2plY3QgdmVyc2lvbiAxLjAgZmlsZXMgbGl2ZSBpbiB0aGUgZGlyZWN0b3J5IHN0cnVjdHVyZVxuICAgKiAkTTJfUkVQTy9vcmcvY29kZWhhdXMvbW9qby9teS1wcm9qZWN0LzEuMC5cbiAgICogQGRlZmF1bHQgXCIwLjEuMFwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IHBhY2thZ2luZyBmb3JtYXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiamFyXCJcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2luZz86IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgYSBwcm9qZWN0IGlzIGFsd2F5cyBnb29kLiBBbHRob3VnaCB0aGlzIHNob3VsZCBub3QgcmVwbGFjZVxuICAgKiBmb3JtYWwgZG9jdW1lbnRhdGlvbiwgYSBxdWljayBjb21tZW50IHRvIGFueSByZWFkZXJzIG9mIHRoZSBQT00gaXMgYWx3YXlzXG4gICAqIGhlbHBmdWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMLCBsaWtlIHRoZSBuYW1lLCBpcyBub3QgcmVxdWlyZWQuIFRoaXMgaXMgYSBuaWNlIGdlc3R1cmUgZm9yXG4gICAqIHByb2plY3RzIHVzZXJzLCBob3dldmVyLCBzbyB0aGF0IHRoZXkga25vdyB3aGVyZSB0aGUgcHJvamVjdCBsaXZlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgUHJvamVjdCBPYmplY3QgTW9kZWwgb3IgUE9NIGlzIHRoZSBmdW5kYW1lbnRhbCB1bml0IG9mIHdvcmsgaW4gTWF2ZW4uIEl0IGlzXG4gKiBhbiBYTUwgZmlsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9qZWN0IGFuZCBjb25maWd1cmF0aW9uXG4gKiBkZXRhaWxzIHVzZWQgYnkgTWF2ZW4gdG8gYnVpbGQgdGhlIHByb2plY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb20gZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBvbSBmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hdmVuIGdyb3VwIElELlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTWF2ZW4gYXJ0aWZhY3QgSUQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXJ0aWZhY3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IHZlcnNpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXZlbiBwYWNrYWdpbmcgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhY2thZ2luZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IGRpc3BsYXkgbmFtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IFVSTC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cmw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogUG9tT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5maWxlTmFtZSA9IFwicG9tLnhtbFwiO1xuICAgIHRoaXMuZ3JvdXBJZCA9IG9wdGlvbnMuZ3JvdXBJZDtcbiAgICB0aGlzLmFydGlmYWN0SWQgPSBvcHRpb25zLmFydGlmYWN0SWQ7XG4gICAgdGhpcy52ZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uO1xuICAgIHRoaXMucGFja2FnaW5nID0gb3B0aW9ucy5wYWNrYWdpbmcgPz8gXCJqYXJcIjtcbiAgICB0aGlzLm5hbWUgPSBwcm9qZWN0Lm5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IG9wdGlvbnMuZGVzY3JpcHRpb247XG4gICAgdGhpcy51cmwgPSBvcHRpb25zLnVybDtcblxuICAgIG5ldyBYbWxGaWxlKHByb2plY3QsIHRoaXMuZmlsZU5hbWUsIHsgb2JqOiAoKSA9PiB0aGlzLnN5bnRoUG9tKCkgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGtleS92YWx1ZSBwcm9wZXJ0eSB0byB0aGUgcG9tLlxuICAgKiBAcGFyYW0ga2V5IHRoZSBrZXlcbiAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGFkZFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcnVudGltZSBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBGb3JtYXQgYDxncm91cElkPi88YXJ0aWZhY3RJZD5APHNlbXZlcj5gXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHNwZWMsIERlcGVuZGVuY3lUeXBlLlJVTlRJTUUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0ZXN0IGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIEZvcm1hdCBgPGdyb3VwSWQ+LzxhcnRpZmFjdElkPkA8c2VtdmVyPmBcbiAgICovXG4gIHB1YmxpYyBhZGRUZXN0RGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHNwZWMsIERlcGVuZGVuY3lUeXBlLlRFU1QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBidWlsZCBwbHVnaW4gdG8gdGhlIHBvbS5cbiAgICpcbiAgICogVGhlIHBsdWcgaW4gaXMgYWxzbyBhZGRlZCBhcyBhIEJVSUxEIGRlcCB0byB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgZGVwZW5kZW5jeSBzcGVjIChgZ3JvdXAvYXJ0aWZhY3RAdmVyc2lvbmApXG4gICAqIEBwYXJhbSBvcHRpb25zIHBsdWdpbiBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgYWRkUGx1Z2luKHNwZWM6IHN0cmluZywgb3B0aW9uczogUGx1Z2luT3B0aW9ucyA9IHt9KSB7XG4gICAgZm9yIChjb25zdCBkZXAgb2Ygb3B0aW9ucy5kZXBlbmRlbmNpZXMgPz8gW10pIHtcbiAgICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koZGVwLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHNwZWMsIERlcGVuZGVuY3lUeXBlLkJVSUxELCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgc3ludGhQb20oKSB7XG4gICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICB7XG4gICAgICAgIHByb2plY3Q6IHtcbiAgICAgICAgICAuLi5QT01fWE1MX0FUVFJTLFxuICAgICAgICAgIG1vZGVsVmVyc2lvbjogXCI0LjAuMFwiLFxuICAgICAgICAgIGdyb3VwSWQ6IHRoaXMuZ3JvdXBJZCxcbiAgICAgICAgICBhcnRpZmFjdElkOiB0aGlzLmFydGlmYWN0SWQsXG4gICAgICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgICAgIHBhY2thZ2luZzogdGhpcy5wYWNrYWdpbmcsXG4gICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgcHJvcGVydGllczogdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIC4uLnRoaXMuc3ludGhEZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7IG9taXRFbXB0eTogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3ludGhEZXBlbmRlbmNpZXMoKSB7XG4gICAgY29uc3QgZGVwcyA9IHRoaXMucHJvamVjdC5kZXBzLmFsbDtcbiAgICBpZiAoZGVwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZXBlbmRlbmNpZXM6IGFueVtdID0gW107XG4gICAgY29uc3QgcGx1Z2luczogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICAgIHN3aXRjaCAoZGVwLnR5cGUpIHtcbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5QRUVSOlxuICAgICAgICBjYXNlIERlcGVuZGVuY3lUeXBlLlJVTlRJTUU6XG4gICAgICAgICAgZGVwZW5kZW5jaWVzLnB1c2gobWF2ZW5Db29yZHMoZGVwKSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBEZXBlbmRlbmN5VHlwZS5URVNUOlxuICAgICAgICAgIGRlcGVuZGVuY2llcy5wdXNoKHtcbiAgICAgICAgICAgIC4uLm1hdmVuQ29vcmRzKGRlcCksXG4gICAgICAgICAgICBzY29wZTogXCJ0ZXN0XCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgLy8gYnVpbGQgbWFwcyB0byBwbHVnaW5zXG4gICAgICAgIGNhc2UgRGVwZW5kZW5jeVR5cGUuQlVJTEQ6XG4gICAgICAgICAgcGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICAgIC4uLm1hdmVuQ29vcmRzKGRlcCksXG4gICAgICAgICAgICAuLi5wbHVnaW5Db25maWcoZGVwLm1ldGFkYXRhIGFzIFBsdWdpbk9wdGlvbnMpLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBkZXBlbmRlbmN5IHR5cGU6ICR7ZGVwLnR5cGV9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1aWxkOiB7IHBsdWdpbnM6IHsgcGx1Z2luOiBwbHVnaW5zIH0gfSxcbiAgICAgIGRlcGVuZGVuY2llczogeyBkZXBlbmRlbmN5OiBkZXBlbmRlbmNpZXMgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgTWF2ZW4gcGx1Z2lucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBrZXkvdmFsdWUgY29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBleGVjdXRpb25zXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBleGVjdXRpb25zPzogUGx1Z2luRXhlY3V0aW9uW107XG5cbiAgLyoqXG4gICAqIFlvdSBjb3VsZCBjb25maWd1cmUgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIHBsdWdpbi5cbiAgICpcbiAgICogRGVwZW5kZW5jaWVzIGFyZSBpbiBgPGdyb3VwSWQ+LzxhcnRpZmFjdElkPkA8c2VtdmVyPmAgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUGx1Z2luIGV4ZWN1dGlvbiBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkV4ZWN1dGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgSUQuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGljaCBNYXZlbiBnb2FscyB0aGlzIHBsdWdpbiBzaG91bGQgYmUgYXNzb2NpYXRlZCB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgZ29hbHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFBhcnNlcyBtYXZlbiBncm91cElkIGFuZCBhcnRpZmFjdElkIGZyb20gYSBkZXBlbmRlbmN5IG5hbWUuXG4gKlxuICogICAgIG5hbWUgICAgPD0+IDxncm91cElkPi88YXJ0aWZhY3RJZD5cbiAqICAgICB2ZXJzaW9uIDw9PiA8dmVyc2lvbj5cbiAqL1xuZnVuY3Rpb24gbWF2ZW5Db29yZHMoZGVwOiBEZXBlbmRlbmN5Q29vcmRpbmF0ZXMpIHtcbiAgY29uc3QgbmFtZSA9IGRlcC5uYW1lO1xuICBjb25zdCBwYXJ0cyA9IG5hbWUuc3BsaXQoXCIvXCIpO1xuICBpZiAocGFydHMubGVuZ3RoICE9PSAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGludmFsaWQgbWF2ZW4gY29vcmRpbmF0ZXMgaW4gZGVwZW5kZW5jeSBuYW1lZCBcIiR7bmFtZX1cIi4gZm9ybWF0IGlzIFwiPGdyb3VwSWQ+LzxhcnRpZmFjdElkPlwiLiBGb3IgZXhhbXBsZSBcIm9yZy5qdW5pdC5qdXBpdGVyL2p1bml0LWp1cGl0ZXItZW5naW5lXCJgXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZ3JvdXBJZDogcGFydHNbMF0sXG4gICAgYXJ0aWZhY3RJZDogcGFydHNbMV0sXG4gICAgdmVyc2lvbjogZGVwLnZlcnNpb24gPyB0b01hdmVuVmVyc2lvblJhbmdlKGRlcC52ZXJzaW9uKSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGx1Z2luQ29uZmlnKG9wdGlvbnM6IFBsdWdpbk9wdGlvbnMgPSB7fSkge1xuICByZXR1cm4ge1xuICAgIGNvbmZpZ3VyYXRpb246IG9wdGlvbnMuY29uZmlndXJhdGlvbixcbiAgICBkZXBlbmRlbmNpZXM6XG4gICAgICBvcHRpb25zLmRlcGVuZGVuY2llcyAmJiBvcHRpb25zLmRlcGVuZGVuY2llcy5sZW5ndGggPiAwXG4gICAgICAgID8ge1xuICAgICAgICAgICAgZGVwZW5kZW5jeTogb3B0aW9ucy5kZXBlbmRlbmNpZXM/Lm1hcCgoZCkgPT5cbiAgICAgICAgICAgICAgbWF2ZW5Db29yZHMoRGVwZW5kZW5jaWVzLnBhcnNlRGVwZW5kZW5jeShkKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICBleGVjdXRpb25zOiBvcHRpb25zLmV4ZWN1dGlvbnM/Lm1hcCgoZSkgPT4gKHtcbiAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICBpZDogZS5pZCxcbiAgICAgICAgZ29hbHM6IGUuZ29hbHMubWFwKChnb2FsKSA9PiAoeyBnb2FsIH0pKSxcbiAgICAgIH0sXG4gICAgfSkpLFxuICB9O1xufVxuIl19