projen 0.100.5 → 0.100.7

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 (153) hide show
  1. package/.jsii +166 -75
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +38 -23
  7. package/lib/awscdk/awscdk-construct.js +1 -1
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +3 -3
  13. package/lib/awscdk/cdk-tasks.js +9 -9
  14. package/lib/awscdk/integ-runner.js +9 -3
  15. package/lib/awscdk/integration-test.js +12 -6
  16. package/lib/awscdk/lambda-extension.js +1 -1
  17. package/lib/awscdk/lambda-function.js +2 -2
  18. package/lib/build/build-workflow.js +1 -1
  19. package/lib/cdk/auto-discover-base.js +2 -2
  20. package/lib/cdk/construct-lib.js +1 -1
  21. package/lib/cdk/integration-test-base.js +1 -1
  22. package/lib/cdk/jsii-build.js +5 -5
  23. package/lib/cdk/jsii-docgen.js +3 -3
  24. package/lib/cdk/jsii-project.js +1 -1
  25. package/lib/cdk8s/auto-discover.js +2 -2
  26. package/lib/cdk8s/cdk8s-app-py.js +3 -3
  27. package/lib/cdk8s/cdk8s-app-ts.js +4 -4
  28. package/lib/cdk8s/cdk8s-construct.js +1 -1
  29. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  30. package/lib/cdk8s/cdk8s-deps.js +1 -1
  31. package/lib/cdk8s/integration-test.js +17 -10
  32. package/lib/cdktf/cdktf-construct.js +1 -1
  33. package/lib/circleci/circleci.js +1 -1
  34. package/lib/cli/cmds/run-task.js +4 -1
  35. package/lib/cli/task-runtime.js +82 -19
  36. package/lib/common.d.ts +1 -1
  37. package/lib/common.js +2 -2
  38. package/lib/component.js +1 -1
  39. package/lib/dependencies.js +1 -1
  40. package/lib/dev-env.js +1 -1
  41. package/lib/docker-compose/docker-compose-service.js +1 -1
  42. package/lib/docker-compose/docker-compose.js +1 -1
  43. package/lib/file.js +1 -1
  44. package/lib/gitattributes.js +1 -1
  45. package/lib/github/actions-provider.js +1 -1
  46. package/lib/github/auto-approve.js +1 -1
  47. package/lib/github/auto-merge.js +1 -1
  48. package/lib/github/auto-queue.js +1 -1
  49. package/lib/github/dependabot.js +1 -1
  50. package/lib/github/dependency-review.js +1 -1
  51. package/lib/github/github-credentials.js +1 -1
  52. package/lib/github/github-project.js +1 -1
  53. package/lib/github/github.js +1 -1
  54. package/lib/github/merge-queue.js +1 -1
  55. package/lib/github/mergify.js +1 -1
  56. package/lib/github/pr-template.js +1 -1
  57. package/lib/github/pull-request-backport.js +1 -1
  58. package/lib/github/pull-request-lint.js +1 -1
  59. package/lib/github/stale.js +1 -1
  60. package/lib/github/task-workflow-job.js +1 -1
  61. package/lib/github/task-workflow.js +1 -1
  62. package/lib/github/workflow-actions.js +1 -1
  63. package/lib/github/workflow-jobs.js +1 -1
  64. package/lib/github/workflow-steps.js +1 -1
  65. package/lib/github/workflows.js +1 -1
  66. package/lib/gitlab/configuration.js +1 -1
  67. package/lib/gitlab/gitlab-configuration.js +1 -1
  68. package/lib/gitlab/nested-configuration.js +1 -1
  69. package/lib/gitpod.js +1 -1
  70. package/lib/ignore-file.js +1 -1
  71. package/lib/ini.js +1 -1
  72. package/lib/java/java-project.js +1 -1
  73. package/lib/java/junit.js +3 -3
  74. package/lib/java/maven-compile.js +3 -3
  75. package/lib/java/maven-packaging.js +3 -3
  76. package/lib/java/maven-sample.js +1 -1
  77. package/lib/java/pom.js +2 -2
  78. package/lib/java/projenrc.js +3 -3
  79. package/lib/javascript/biome/biome.js +1 -1
  80. package/lib/javascript/bundler.js +3 -3
  81. package/lib/javascript/eslint.js +1 -1
  82. package/lib/javascript/jest.js +4 -4
  83. package/lib/javascript/license-checker.js +5 -5
  84. package/lib/javascript/node-package.js +1 -1
  85. package/lib/javascript/node-project.js +13 -4
  86. package/lib/javascript/npm-config.js +1 -1
  87. package/lib/javascript/prettier.js +1 -1
  88. package/lib/javascript/projenrc.js +3 -3
  89. package/lib/javascript/typescript-config.js +2 -2
  90. package/lib/javascript/upgrade-dependencies.js +4 -4
  91. package/lib/javascript/yarnrc.js +1 -1
  92. package/lib/json-patch.js +1 -1
  93. package/lib/json.js +1 -1
  94. package/lib/license.js +1 -1
  95. package/lib/logger.js +1 -1
  96. package/lib/makefile.js +1 -1
  97. package/lib/object-file.js +1 -1
  98. package/lib/project-build.js +1 -1
  99. package/lib/project-tree.js +1 -1
  100. package/lib/project.js +1 -1
  101. package/lib/projects.js +1 -1
  102. package/lib/projenrc-json.js +1 -1
  103. package/lib/projenrc.js +1 -1
  104. package/lib/python/pip.js +17 -5
  105. package/lib/python/poetry.js +7 -7
  106. package/lib/python/projenrc.js +3 -3
  107. package/lib/python/pyproject-toml-file.js +1 -1
  108. package/lib/python/pytest-sample.js +1 -1
  109. package/lib/python/pytest.js +1 -1
  110. package/lib/python/python-project.js +1 -1
  111. package/lib/python/python-sample.js +1 -1
  112. package/lib/python/requirements-file.js +1 -1
  113. package/lib/python/setuppy.js +1 -1
  114. package/lib/python/setuptools.js +8 -3
  115. package/lib/python/uv.js +6 -6
  116. package/lib/python/venv.js +1 -1
  117. package/lib/readme.js +1 -1
  118. package/lib/release/publisher.js +1 -1
  119. package/lib/release/release-trigger.js +1 -1
  120. package/lib/release/release.js +1 -1
  121. package/lib/renovatebot.js +1 -1
  122. package/lib/run-task.cjs +56 -20
  123. package/lib/sample-file.js +2 -2
  124. package/lib/source-code.js +1 -1
  125. package/lib/task-model.d.ts +25 -1
  126. package/lib/task-model.js +1 -1
  127. package/lib/task.d.ts +33 -0
  128. package/lib/task.js +28 -2
  129. package/lib/tasks.js +1 -1
  130. package/lib/testing.js +1 -1
  131. package/lib/textfile.js +1 -1
  132. package/lib/toml.js +1 -1
  133. package/lib/typescript/projenrc-ts.js +1 -1
  134. package/lib/typescript/projenrc.js +1 -1
  135. package/lib/typescript/typescript-typedoc.js +9 -3
  136. package/lib/typescript/typescript.js +8 -10
  137. package/lib/util/exec.d.ts +1 -1
  138. package/lib/util/exec.js +1 -1
  139. package/lib/util/fs.d.ts +12 -0
  140. package/lib/util/fs.js +33 -0
  141. package/lib/version.js +2 -2
  142. package/lib/vscode/devcontainer.js +1 -1
  143. package/lib/vscode/extensions.js +1 -1
  144. package/lib/vscode/launch-config.js +1 -1
  145. package/lib/vscode/settings.js +1 -1
  146. package/lib/vscode/vscode.js +1 -1
  147. package/lib/web/next.js +9 -9
  148. package/lib/web/postcss.js +1 -1
  149. package/lib/web/react.js +7 -7
  150. package/lib/web/tailwind.js +1 -1
  151. package/lib/xmlfile.js +1 -1
  152. package/lib/yaml.js +1 -1
  153. package/package.json +4 -4
@@ -45,7 +45,7 @@ const dependencies_1 = require("../dependencies");
45
45
  * single file. In the future, this will also supports bundling websites.
46
46
  */
47
47
  class Bundler extends component_1.Component {
48
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Bundler", version: "0.100.5" };
48
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Bundler", version: "0.100.7" };
49
49
  /**
50
50
  * Returns the `Bundler` instance associated with a project or `undefined` if
51
51
  * there is no Bundler.
@@ -190,7 +190,7 @@ class Bundler extends component_1.Component {
190
190
  });
191
191
  this.bundleTask.spawn(bundleTask);
192
192
  if (options.executable ?? false) {
193
- bundleTask.exec(`chmod +x ${outfile}`);
193
+ bundleTask.execArgs(["chmod", "+x", outfile]);
194
194
  }
195
195
  let watchTask;
196
196
  const watch = options.watchTask ?? true;
@@ -335,4 +335,4 @@ var BundleLogLevel;
335
335
  /** Show nothing */
336
336
  BundleLogLevel["SILENT"] = "silent";
337
337
  })(BundleLogLevel || (exports.BundleLogLevel = BundleLogLevel = {}));
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2J1bmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3QiwrQkFBd0M7QUFDeEMsaUNBQTBDO0FBQzFDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUEyQ2pEOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLHFCQUFTOztJQUNwQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFZLEVBQWdCLEVBQUUsQ0FBQyxDQUFDLFlBQVksT0FBTyxDQUFDO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ2EsY0FBYyxDQUFxQjtJQUVuRDs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUUxQixLQUFLLENBQW1CO0lBQ2YsYUFBYSxDQUFpQjtJQUM5QixPQUFPLENBQTZCO0lBRXJEOztPQUVHO0lBQ0gsWUFBWSxPQUFnQixFQUFFLFVBQTBCLEVBQUU7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRS9CLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsVUFBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtB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RCxXQUFZLGNBQWM7SUFDeEIsc0JBQXNCO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLDJFQUEyRTtJQUMzRSxpQ0FBZSxDQUFBO0lBQ2Ysd0RBQXdEO0lBQ3hELCtCQUFhLENBQUE7SUFDYiwrQkFBK0I7SUFDL0IscUNBQW1CLENBQUE7SUFDbkIsdUJBQXVCO0lBQ3ZCLGlDQUFlLENBQUE7SUFDZixtQkFBbUI7SUFDbkIsbUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWJXLGNBQWMsOEJBQWQsY0FBYyxRQWF6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGpvaW4gYXMgcGF0aEpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVuZGVyQnVuZGxlTmFtZSB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5cbi8vIFBhcnRzIG9mIHRoaXMgZmlsZSBpbnNwaXJlZCBieSBAYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcbi8vICAgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvYzNjNzcxYzZmNmY2NzkwZjIyOThhODVhNTQ5YmRlZDY0MGQyZTM1Yi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqcy9saWIvYnVuZGxpbmcudHMjTDE5NVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBCdW5kbGVyYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgYGVzYnVpbGRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNwZWNpZmljIHZlcnNpb24gKGltcGxpZXMgbGF0ZXN0KVxuICAgKi9cbiAgcmVhZG9ubHkgZXNidWlsZFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE91dHB1dCBkaXJlY3RvcnkgZm9yIGFsbCBidW5kbGVzLlxuICAgKiBAZGVmYXVsdCBcImFzc2V0c1wiXG4gICAqL1xuICByZWFkb25seSBhc3NldHNEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENob29zZSB3aGljaCBwaGFzZSAoaWYgYW55KSB0byBhZGQgdGhlIGBidW5kbGVgIGNvbW1hbmQgdG8uXG4gICAqXG4gICAqIE5vdGU6IElmIHVzaW5nIGBhZGRCdW5kbGUoKWAgd2l0aCB0aGUgYGJ1bmRsZUNvbXBpbGVkUmVzdWx0c2AsIHRoaXMgb3B0aW9uXG4gICAqIG11c3QgYmUgc2V0IHRvIGBSdW5CdW5kbGVUYXNrLlBPU1RfQ09NUElMRWAgb3IgYFJ1bkJ1bmRsZVRhc2suTUFOVUFMYC5cbiAgICpcbiAgICogQHNlZSBBZGRCdW5kbGVPcHRpb25zLmJ1bmRsZUNvbXBpbGVkUmVzdWx0c1xuICAgKlxuICAgKiBAZGVmYXVsdCBSdW5CdW5kbGVUYXNrLlBSRV9DT01QSUxFXG4gICAqL1xuICByZWFkb25seSBydW5CdW5kbGVUYXNrPzogUnVuQnVuZGxlVGFzaztcblxuICAvKipcbiAgICogTWFwIG9mIGZpbGUgZXh0ZW5zaW9ucyAod2l0aG91dCBkb3QpIGFuZCBsb2FkZXJzIHRvIHVzZSBmb3IgdGhpcyBmaWxlIHR5cGUuXG4gICAqIExvYWRlcnMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlc2J1aWxkIGNvbW1hbmQgYnkgYC0tbG9hZGVyOi5leHRlbnNpb249bG9hZGVyYFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQWRkcyBzdXBwb3J0IGZvciBidW5kbGluZyBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGludG8gYVxuICogc2luZ2xlIGZpbGUuIEluIHRoZSBmdXR1cmUsIHRoaXMgd2lsbCBhbHNvIHN1cHBvcnRzIGJ1bmRsaW5nIHdlYnNpdGVzLlxuICovXG5leHBvcnQgY2xhc3MgQnVuZGxlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgQnVuZGxlcmAgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGEgcHJvamVjdCBvciBgdW5kZWZpbmVkYCBpZlxuICAgKiB0aGVyZSBpcyBubyBCdW5kbGVyLlxuICAgKiBAcGFyYW0gcHJvamVjdCBUaGUgcHJvamVjdFxuICAgKiBAcmV0dXJucyBBIGJ1bmRsZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEJ1bmRsZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzQnVuZGxlciA9IChvOiBDb21wb25lbnQpOiBvIGlzIEJ1bmRsZXIgPT4gbyBpbnN0YW5jZW9mIEJ1bmRsZXI7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzQnVuZGxlcik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHNlbWFudGljIHZlcnNpb24gcmVxdWlyZW1lbnQgZm9yIGBlc2J1aWxkYCAoaWYgZGVmaW5lZCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXNidWlsZFZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUm9vdCBidW5kbGUgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1bmRsZWRpcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3Rhc2s6IFRhc2sgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgcnVuQnVuZGxlVGFzaz86IFJ1bkJ1bmRsZVRhc2s7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBgQnVuZGxlcmAuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBCdW5kbGVyT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmVzYnVpbGRWZXJzaW9uID0gb3B0aW9ucy5lc2J1aWxkVmVyc2lvbjtcbiAgICB0aGlzLmJ1bmRsZWRpciA9IG9wdGlvbnMuYXNzZXRzRGlyID8/IFwiYXNzZXRzXCI7XG4gICAgdGhpcy5sb2FkZXJzID0gb3B0aW9ucy5sb2FkZXJzO1xuXG4gICAgdGhpcy5ydW5CdW5kbGVUYXNrID0gb3B0aW9ucy5ydW5CdW5kbGVUYXNrID8/IFJ1bkJ1bmRsZVRhc2suUFJFX0NPTVBJTEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBvciBjcmVhdGVzIHRoZSBzaW5nbGV0b24gXCJidW5kbGVcIiB0YXNrIG9mIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBJZiB0aGUgcHJvamVjdCBkb2Vzbid0IGhhdmUgYSBcImJ1bmRsZVwiIHRhc2ssIGl0IHdpbGwgYmUgY3JlYXRlZCBhbmQgc3Bhd25lZFxuICAgKiBkdXJpbmcgdGhlIHByZS1jb21waWxlIHBoYXNlLlxuICAgKi9cbiAgcHVibGljIGdldCBidW5kbGVUYXNrKCk6IFRhc2sge1xuICAgIGlmICghdGhpcy5fdGFzaykge1xuICAgICAgdGhpcy5hZGRCdW5kbGluZ1N1cHBvcnQoKTtcbiAgICAgIHRoaXMuX3Rhc2sgPSB0aGlzLnByb2plY3QudGFza3MuYWRkVGFzayhcImJ1bmRsZVwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlByZXBhcmUgYXNzZXRzXCIsXG4gICAgICB9KTtcblxuICAgICAgLy8gaW5zdGFsbCB0aGUgYnVuZGxlIHRhc2sgaW50byB0aGUgcHJlLWNvbXBpbGUgcGhhc2UuXG4gICAgICBpZiAodGhpcy5ydW5CdW5kbGVUYXNrID09PSBSdW5CdW5kbGVUYXNrLlBSRV9DT01QSUxFKSB7XG4gICAgICAgIHRoaXMucHJvamVjdC5wcmVDb21waWxlVGFzay5zcGF3bih0aGlzLl90YXNrKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5ydW5CdW5kbGVUYXNrID09PSBSdW5CdW5kbGVUYXNrLlBPU1RfQ09NUElMRSkge1xuICAgICAgICB0aGlzLnByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKHRoaXMuX3Rhc2spO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90YXNrO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0YXNrIHRvIHRoZSBwcm9qZWN0IHdoaWNoIGJ1bmRsZXMgYSBzcGVjaWZpYyBlbnRyeXBvaW50IGFuZCBhbGwgb2ZcbiAgICogaXRzIGRlcGVuZGVuY2llcyBpbnRvIGEgc2luZ2xlIGphdmFzY3JpcHQgb3V0cHV0IGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBlbnRyeXBvaW50IFRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBhcnRpZmFjdCB3aXRoaW4gdGhlIHByb2plY3RcbiAgICogQHBhcmFtIG9wdGlvbnMgQnVuZGxpbmcgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGFkZEJ1bmRsZShlbnRyeXBvaW50OiBzdHJpbmcsIG9wdGlvbnM6IEFkZEJ1bmRsZU9wdGlvbnMpOiBCdW5kbGUge1xuICAgIGNvbnN0IG5hbWUgPSByZW5kZXJCdW5kbGVOYW1lKGVudHJ5cG9pbnQpO1xuXG4gICAgY29uc3Qgb3V0ZGlyID0gcGF0aC5wb3NpeC5qb2luKHRoaXMuYnVuZGxlZGlyLCBuYW1lKTtcbiAgICBjb25zdCBvdXRmaWxlID0gcGF0aC5wb3NpeC5qb2luKG91dGRpciwgb3B0aW9ucy5vdXRmaWxlID8/IFwiaW5kZXguanNcIik7XG4gICAgY29uc3QgYXJncyA9IFtcbiAgICAgIFwiZXNidWlsZFwiLFxuICAgICAgXCItLWJ1bmRsZVwiLFxuICAgICAgZW50cnlwb2ludCxcbiAgICAgIGAtLXRhcmdldD1cIiR7b3B0aW9ucy50YXJnZXR9XCJgLFxuICAgICAgYC0tcGxhdGZvcm09XCIke29wdGlvbnMucGxhdGZvcm19XCJgLFxuICAgICAgYC0tb3V0ZmlsZT1cIiR7b3V0ZmlsZX1cImAsXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLnRzY29uZmlnUGF0aCkge1xuICAgICAgYXJncy5wdXNoKGAtLXRzY29uZmlnPVwiJHtvcHRpb25zLnRzY29uZmlnUGF0aH1cImApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgeCBvZiBvcHRpb25zLmV4dGVybmFscyA/PyBbXSkge1xuICAgICAgYXJncy5wdXNoKGAtLWV4dGVybmFsOiR7eH1gKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zb3VyY2VtYXAgfHwgb3B0aW9ucy5zb3VyY2VNYXBNb2RlKSB7XG4gICAgICBjb25zdCBzb3VyY2VNYXBNb2RlID0gb3B0aW9ucy5zb3VyY2VNYXBNb2RlID8/IFNvdXJjZU1hcE1vZGUuREVGQVVMVDtcbiAgICAgIGNvbnN0IHNvdXJjZU1hcFZhbHVlID1cbiAgICAgICAgc291cmNlTWFwTW9kZSA9PT0gU291cmNlTWFwTW9kZS5ERUZBVUxUXG4gICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgOiBgPSR7b3B0aW9ucy5zb3VyY2VNYXBNb2RlfWA7XG4gICAgICBhcmdzLnB1c2goYC0tc291cmNlbWFwJHtzb3VyY2VNYXBWYWx1ZX1gKTtcblxuICAgICAgaWYgKG9wdGlvbnMuc291cmNlc0NvbnRlbnQgPT09IHRydWUpIHtcbiAgICAgICAgYXJncy5wdXNoKGAtLXNvdXJjZXMtY29udGVudD0ke29wdGlvbnMuc291cmNlc0NvbnRlbnR9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0ID0gb3B0aW9ucy5mb3JtYXQ7XG4gICAgaWYgKGZvcm1hdCkge1xuICAgICAgYXJncy5wdXNoKGAtLWZvcm1hdD0ke2Zvcm1hdH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkZXJzID1cbiAgICAgIChvcHRpb25zLmxvYWRlcnMgPz8gZmFsc2UpID8gb3B0aW9ucy5sb2FkZXJzIDogKHRoaXMubG9hZGVycyA/PyBmYWxzZSk7XG4gICAgaWYgKGxvYWRlcnMpIHtcbiAgICAgIGZvciAobGV0IFtleHRlbnNpb24sIGxvYWRlcl0gb2YgT2JqZWN0LmVudHJpZXMobG9hZGVycykpIHtcbiAgICAgICAgYXJncy5wdXNoKGAtLWxvYWRlcjouJHtleHRlbnNpb259PSR7bG9hZGVyfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRlZmluZXMgPSBPYmplY3QuZW50cmllcyhvcHRpb25zLmRlZmluZSA/PyB7fSk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZGVmaW5lcykge1xuICAgICAgYXJncy5wdXNoKGAtLWRlZmluZToke2tleX09JHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMubWluaWZ5KSB7XG4gICAgICBhcmdzLnB1c2goXCItLW1pbmlmeVwiKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5sb2dMZXZlbCkge1xuICAgICAgYXJncy5wdXNoKGAtLWxvZy1sZXZlbD0ke29wdGlvbnMubG9nTGV2ZWx9YCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmtlZXBOYW1lcykge1xuICAgICAgYXJncy5wdXNoKFwiLS1rZWVwLW5hbWVzXCIpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5tZXRhZmlsZSkge1xuICAgICAgYXJncy5wdXNoKGAtLW1ldGFmaWxlPSR7cGF0aEpvaW4ob3V0ZGlyLCBcImluZGV4Lm1ldGEuanNvblwiKX1gKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuYmFubmVyKSB7XG4gICAgICBhcmdzLnB1c2goYC0tYmFubmVyOmpzPSR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucy5iYW5uZXIpfWApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5mb290ZXIpIHtcbiAgICAgIGFyZ3MucHVzaChgLS1mb290ZXI6anM9JHtKU09OLnN0cmluZ2lmeShvcHRpb25zLmZvb3Rlcil9YCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm1haW5GaWVsZHMpIHtcbiAgICAgIGFyZ3MucHVzaChgLS1tYWluLWZpZWxkcz0ke29wdGlvbnMubWFpbkZpZWxkcy5qb2luKFwiLFwiKX1gKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaW5qZWN0KSB7XG4gICAgICBhcmdzLnB1c2goLi4ub3B0aW9ucy5pbmplY3QubWFwKChpKSA9PiBgLS1pbmplY3Q6JHtpfWApKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZXNidWlsZEFyZ3MpIHtcbiAgICAgIGNvbnN0IHN1YkFyZ3MgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zLmVzYnVpbGRBcmdzKSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICBzdWJBcmdzLnB1c2goa2V5KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHN1YkFyZ3MucHVzaChgJHtrZXl9PVwiJHt2YWx1ZX1cImApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFyZ3MucHVzaChzdWJBcmdzLmpvaW4oXCIgXCIpKTtcbiAgICB9XG5cbiAgICBjb25zdCBidW5kbGVUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soYGJ1bmRsZToke25hbWV9YCwge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVhdGUgYSBKYXZhU2NyaXB0IGJ1bmRsZSBmcm9tICR7ZW50cnlwb2ludH1gLFxuICAgICAgZXhlYzogYXJncy5qb2luKFwiIFwiKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVuZGxlVGFzay5zcGF3bihidW5kbGVUYXNrKTtcblxuICAgIGlmIChvcHRpb25zLmV4ZWN1dGFibGUgPz8gZmFsc2UpIHtcbiAgICAgIGJ1bmRsZVRhc2suZXhlYyhgY2htb2QgK3ggJHtvdXRmaWxlfWApO1xuICAgIH1cblxuICAgIGxldCB3YXRjaFRhc2s7XG4gICAgY29uc3Qgd2F0Y2ggPSBvcHRpb25zLndhdGNoVGFzayA/PyB0cnVlO1xuICAgIGlmICh3YXRjaCkge1xuICAgICAgd2F0Y2hUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soYGJ1bmRsZToke25hbWV9OndhdGNoYCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogYENvbnRpbnVvdXNseSB1cGRhdGUgdGhlIEphdmFTY3JpcHQgYnVuZGxlIGZyb20gJHtlbnRyeXBvaW50fWAsXG4gICAgICAgIGV4ZWM6IGAke2FyZ3Muam9pbihcIiBcIil9IC0td2F0Y2hgLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1bmRsZVRhc2s6IGJ1bmRsZVRhc2ssXG4gICAgICB3YXRjaFRhc2s6IHdhdGNoVGFzayxcbiAgICAgIG91dGRpcjogb3V0ZGlyLFxuICAgICAgb3V0ZmlsZTogb3V0ZmlsZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBidW5kbGluZyBzdXBwb3J0IHRvIGEgcHJvamVjdC4gVGhpcyBpcyBjYWxsZWQgaW1wbGljaXRseSB3aGVuXG4gICAqIGBidW5kbGVUYXNrYCBpcyByZWZlcmVuY2VkIGZpcnN0LiBJdCBhZGRzIHRoZSBkZXBlbmRlbmN5IG9uIGBlc2J1aWxkYCxcbiAgICogZ2l0aWdub3JlL25wbWlnbm9yZSwgZXRjLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCdW5kbGluZ1N1cHBvcnQoKSB7XG4gICAgY29uc3QgaWdub3JlRW50cnkgPSBgLyR7dGhpcy5idW5kbGVkaXJ9L2A7XG4gICAgdGhpcy5wcm9qZWN0LmFkZEdpdElnbm9yZShpZ25vcmVFbnRyeSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYCEke2lnbm9yZUVudHJ5fWApOyAvLyBpbmNsdWRlIGluIHRhcmJhbGxcbiAgICBjb25zdCBkZXAgPSB0aGlzLmVzYnVpbGRWZXJzaW9uXG4gICAgICA/IGBlc2J1aWxkQCR7dGhpcy5lc2J1aWxkVmVyc2lvbn1gXG4gICAgICA6IFwiZXNidWlsZFwiO1xuICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koZGVwLCBEZXBlbmRlbmN5VHlwZS5CVUlMRCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdW5kbGUge1xuICAvKipcbiAgICogVGhlIHRhc2sgdGhhdCBwcm9kdWNlcyB0aGlzIGJ1bmRsZS5cbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsZVRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRoZSBcIndhdGNoXCIgdGFzayBmb3IgdGhpcyBidW5kbGUuXG4gICAqL1xuICByZWFkb25seSB3YXRjaFRhc2s/OiBUYXNrO1xuXG4gIC8qKlxuICAgKiBMb2NhdGlvbiBvZiB0aGUgb3V0cHV0IGZpbGUgKHJlbGF0aXZlIHRvIHByb2plY3Qgcm9vdCkuXG4gICAqL1xuICByZWFkb25seSBvdXRmaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJhc2UgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIG91dHB1dCBmaWxlIChyZWxhdGl2ZSB0byBwcm9qZWN0IHJvb3QpLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYnVuZGxpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIFlvdSBjYW4gbWFyayBhIGZpbGUgb3IgYSBwYWNrYWdlIGFzIGV4dGVybmFsIHRvIGV4Y2x1ZGUgaXQgZnJvbSB5b3VyIGJ1aWxkLlxuICAgKiBJbnN0ZWFkIG9mIGJlaW5nIGJ1bmRsZWQsIHRoZSBpbXBvcnQgd2lsbCBiZSBwcmVzZXJ2ZWQgKHVzaW5nIHJlcXVpcmUgZm9yXG4gICAqIHRoZSBpaWZlIGFuZCBjanMgZm9ybWF0cyBhbmQgdXNpbmcgaW1wb3J0IGZvciB0aGUgZXNtIGZvcm1hdCkgYW5kIHdpbGwgYmVcbiAgICogZXZhbHVhdGVkIGF0IHJ1biB0aW1lIGluc3RlYWQuXG4gICAqXG4gICAqIFRoaXMgaGFzIHNldmVyYWwgdXNlcy4gRmlyc3Qgb2YgYWxsLCBpdCBjYW4gYmUgdXNlZCB0byB0cmltIHVubmVjZXNzYXJ5XG4gICAqIGNvZGUgZnJvbSB5b3VyIGJ1bmRsZSBmb3IgYSBjb2RlIHBhdGggdGhhdCB5b3Uga25vdyB3aWxsIG5ldmVyIGJlIGV4ZWN1dGVkLlxuICAgKiBGb3IgZXhhbXBsZSwgYSBwYWNrYWdlIG1heSBjb250YWluIGNvZGUgdGhhdCBvbmx5IHJ1bnMgaW4gbm9kZSBidXQgeW91IHdpbGxcbiAgICogb25seSBiZSB1c2luZyB0aGF0IHBhY2thZ2UgaW4gdGhlIGJyb3dzZXIuIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gaW1wb3J0XG4gICAqIGNvZGUgaW4gbm9kZSBhdCBydW4gdGltZSBmcm9tIGEgcGFja2FnZSB0aGF0IGNhbm5vdCBiZSBidW5kbGVkLiBGb3JcbiAgICogZXhhbXBsZSwgdGhlIGZzZXZlbnRzIHBhY2thZ2UgY29udGFpbnMgYSBuYXRpdmUgZXh0ZW5zaW9uLCB3aGljaCBlc2J1aWxkXG4gICAqIGRvZXNuJ3Qgc3VwcG9ydC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGV4dGVybmFscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGEgc291cmNlIG1hcCBpbiB0aGUgYnVuZGxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlbWFwPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW4gYWRkaXRpb24gdG8gdGhlIGBidW5kbGU6eHl6YCB0YXNrLCBjcmVhdGVzIGBidW5kbGU6eHl6OndhdGNoYCB0YXNrIHdoaWNoIHdpbGxcbiAgICogaW52b2tlIHRoZSBzYW1lIGVzYnVpbGQgY29tbWFuZCB3aXRoIHRoZSBgLS13YXRjaGAgZmxhZy4gVGhpcyBjYW4gYmUgdXNlZFxuICAgKiB0byBjb250aW51c291bHkgd2F0Y2ggZm9yIGNoYW5nZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoVGFzaz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYGFkZEJ1bmRsZSgpYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRCdW5kbGVPcHRpb25zIGV4dGVuZHMgQnVuZGxpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIGVzYnVpbGQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIm5vZGUxMlwiXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IHN0cmluZztcblxuICAvKipcbiAgICogZXNidWlsZCBwbGF0Zm9ybS5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJub2RlXCJcbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1bmRsZXIgb3V0cHV0IHBhdGggcmVsYXRpdmUgdG8gdGhlIGFzc2V0J3Mgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICogQGRlZmF1bHQgXCJpbmRleC5qc1wiXG4gICAqL1xuICByZWFkb25seSBvdXRmaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXJrIHRoZSBvdXRwdXQgZmlsZSBhcyBleGVjdXRhYmxlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSB0c2NvbmZpZy5qc29uIGZpbGUgdG8gdXNlIGZvciBidW5kbGluZ1xuICAgKiBAZGVmYXVsdCBcInRzY29uZmlnLmpzb25cIlxuICAgKi9cbiAgcmVhZG9ubHkgdHNjb25maWdQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgZmlsZSBleHRlbnNpb25zICh3aXRob3V0IGRvdCkgYW5kIGxvYWRlcnMgdG8gdXNlIGZvciB0aGlzIGZpbGUgdHlwZS5cbiAgICogTG9hZGVycyBhcmUgYXBwZW5kZWQgdG8gdGhlIGVzYnVpbGQgY29tbWFuZCBieSBgLS1sb2FkZXI6LmV4dGVuc2lvbj1sb2FkZXJgXG4gICAqL1xuICByZWFkb25seSBsb2FkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogT3V0cHV0IGZvcm1hdCBmb3IgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLiBUaGVyZSBhcmUgY3VycmVudGx5IHRocmVlIHBvc3NpYmxlIHZhbHVlcyB0aGF0IGNhbiBiZSBjb25maWd1cmVkOiBgXCJpaWZlXCJgLCBgXCJjanNcImAsIGFuZCBgXCJlc21cImAuXG4gICAqXG4gICAqIElmIG5vdCBzZXQgKGB1bmRlZmluZWRgKSwgZXNidWlsZCBwaWNrcyBhbiBvdXRwdXQgZm9ybWF0IGZvciB5b3UgYmFzZWQgb24gYHBsYXRmb3JtYDpcbiAgICogLSBgXCJjanNcImAgaWYgYHBsYXRmb3JtYCBpcyBgXCJub2RlXCJgXG4gICAqIC0gYFwiaWlmZVwiYCBpZiBgcGxhdGZvcm1gIGlzIGBcImJyb3dzZXJcImBcbiAgICogLSBgXCJlc21cImAgaWYgYHBsYXRmb3JtYCBpcyBgXCJuZXV0cmFsXCJgXG4gICAqXG4gICAqIE5vdGU6IElmIG1ha2luZyBhIGJ1bmRsZSB0byBydW4gdW5kZXIgbm9kZSB3aXRoIEVTTSwgc2V0IGBmb3JtYXRgIHRvIGBcImVzbVwiYCBpbnN0ZWFkIG9mIHNldHRpbmcgYHBsYXRmb3JtYCB0byBgXCJuZXV0cmFsXCJgLlxuICAgKlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jZm9ybWF0XG4gICAqL1xuXG4gIHJlYWRvbmx5IGZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBtaW5pZnkgZmlsZXMgd2hlbiBidW5kbGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG1pbmlmeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNvdXJjZSBtYXAgbW9kZSB0byBiZSB1c2VkIHdoZW4gYnVuZGxpbmcuXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NvdXJjZW1hcFxuICAgKlxuICAgKiBAZGVmYXVsdCBTb3VyY2VNYXBNb2RlLkRFRkFVTFRcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZU1hcE1vZGU/OiBTb3VyY2VNYXBNb2RlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgb3JpZ2luYWwgc291cmNlIGNvZGUgaW4gc291cmNlIG1hcHMgd2hlbiBidW5kbGluZy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jc291cmNlcy1jb250ZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZXNDb250ZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9nIGxldmVsIGZvciBlc2J1aWxkLiBUaGlzIGlzIGFsc28gcHJvcGFnYXRlZCB0byB0aGUgcGFja2FnZSBtYW5hZ2VyIGFuZFxuICAgKiBhcHBsaWVzIHRvIGl0cyBzcGVjaWZpYyBpbnN0YWxsIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IExvZ0xldmVsLldBUk5JTkdcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogQnVuZGxlTG9nTGV2ZWw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsIGBuYW1lYCB2YWx1ZXMgZXZlbiBpbiBtaW5pZmllZCBjb2RlLlxuICAgKlxuICAgKiBJbiBKYXZhU2NyaXB0IHRoZSBgbmFtZWAgcHJvcGVydHkgb24gZnVuY3Rpb25zIGFuZCBjbGFzc2VzIGRlZmF1bHRzIHRvIGFcbiAgICogbmVhcmJ5IGlkZW50aWZpZXIgaW4gdGhlIHNvdXJjZSBjb2RlLlxuICAgKlxuICAgKiBIb3dldmVyLCBtaW5pZmljYXRpb24gcmVuYW1lcyBzeW1ib2xzIHRvIHJlZHVjZSBjb2RlIHNpemUgYW5kIGJ1bmRsaW5nXG4gICAqIHNvbWV0aW1lcyBuZWVkIHRvIHJlbmFtZSBzeW1ib2xzIHRvIGF2b2lkIGNvbGxpc2lvbnMuIFRoYXQgY2hhbmdlcyB2YWx1ZSBvZlxuICAgKiB0aGUgYG5hbWVgIHByb3BlcnR5IGZvciBtYW55IG9mIHRoZXNlIGNhc2VzLiBUaGlzIGlzIHVzdWFsbHkgZmluZSBiZWNhdXNlXG4gICAqIHRoZSBgbmFtZWAgcHJvcGVydHkgaXMgbm9ybWFsbHkgb25seSB1c2VkIGZvciBkZWJ1Z2dpbmcuIEhvd2V2ZXIsIHNvbWVcbiAgICogZnJhbWV3b3JrcyByZWx5IG9uIHRoZSBgbmFtZWAgcHJvcGVydHkgZm9yIHJlZ2lzdHJhdGlvbiBhbmQgYmluZGluZyBwdXJwb3Nlcy5cbiAgICogSWYgdGhpcyBpcyB0aGUgY2FzZSwgeW91IGNhbiBlbmFibGUgdGhpcyBvcHRpb24gdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsXG4gICAqIGBuYW1lYCB2YWx1ZXMgZXZlbiBpbiBtaW5pZmllZCBjb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkga2VlcE5hbWVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gdGVsbHMgZXNidWlsZCB0byB3cml0ZSBvdXQgYSBKU09OIGZpbGUgcmVsYXRpdmUgdG8gb3V0cHV0IGRpcmVjdG9yeSB3aXRoIG1ldGFkYXRhIGFib3V0IHRoZSBidWlsZC5cbiAgICpcbiAgICogVGhlIG1ldGFkYXRhIGluIHRoaXMgSlNPTiBmaWxlIGZvbGxvd3MgdGhpcyBzY2hlbWEgKHNwZWNpZmllZCB1c2luZyBUeXBlU2NyaXB0IHN5bnRheCk6XG4gICAqXG4gICAqIGBgYHRleHRcbiAgICoge1xuICAgKiAgIG91dHB1dHM6IHtcbiAgICogICAgIFtwYXRoOiBzdHJpbmddOiB7XG4gICAqICAgICAgIGJ5dGVzOiBudW1iZXJcbiAgICogICAgICAgaW5wdXRzOiB7XG4gICAqICAgICAgICAgW3BhdGg6IHN0cmluZ106IHsgYnl0ZXNJbk91dHB1dDogbnVtYmVyIH1cbiAgICogICAgICAgfVxuICAgKiAgICAgICBpbXBvcnRzOiB7IHBhdGg6IHN0cmluZyB9W11cbiAgICogICAgICAgZXhwb3J0czogc3RyaW5nW11cbiAgICogICAgIH1cbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIFRoaXMgZGF0YSBjYW4gdGhlbiBiZSBhbmFseXplZCBieSBvdGhlciB0b29scy4gRm9yIGV4YW1wbGUsXG4gICAqIGJ1bmRsZSBidWRkeSBjYW4gY29uc3VtZSBlc2J1aWxkJ3MgbWV0YWRhdGEgZm9ybWF0IGFuZCBnZW5lcmF0ZXMgYSB0cmVlbWFwIHZpc3VhbGl6YXRpb25cbiAgICogb2YgdGhlIG1vZHVsZXMgaW4geW91ciBidW5kbGUgYW5kIGhvdyBtdWNoIHNwYWNlIGVhY2ggb25lIHRha2VzIHVwLlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNtZXRhZmlsZVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWZpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbnNlcnQgYW4gYXJiaXRyYXJ5IHN0cmluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLlxuICAgKlxuICAgKiBUaGlzIGlzIHNpbWlsYXIgdG8gZm9vdGVyIHdoaWNoIGluc2VydHMgYXQgdGhlIGVuZCBpbnN0ZWFkIG9mIHRoZSBiZWdpbm5pbmcuXG4gICAqXG4gICAqIFRoaXMgaXMgY29tbW9ubHkgdXNlZCB0byBpbnNlcnQgY29tbWVudHM6XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWVudHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYmFubmVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbnNlcnQgYW4gYXJiaXRyYXJ5IHN0cmluZyBhdCB0aGUgZW5kIG9mIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGZpbGVzLlxuICAgKlxuICAgKiBUaGlzIGlzIHNpbWlsYXIgdG8gYmFubmVyIHdoaWNoIGluc2VydHMgYXQgdGhlIGJlZ2lubmluZyBpbnN0ZWFkIG9mIHRoZSBlbmQuXG4gICAqXG4gICAqIFRoaXMgaXMgY29tbW9ubHkgdXNlZCB0byBpbnNlcnQgY29tbWVudHNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb21tZW50cyBhcmUgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBmb290ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFyc2V0IHRvIHVzZSBmb3IgZXNidWlsZCdzIG91dHB1dC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCBlc2J1aWxkJ3Mgb3V0cHV0IGlzIEFTQ0lJLW9ubHkuIEFueSBub24tQVNDSUkgY2hhcmFjdGVycyBhcmUgZXNjYXBlZFxuICAgKiB1c2luZyBiYWNrc2xhc2ggZXNjYXBlIHNlcXVlbmNlcy4gVXNpbmcgZXNjYXBlIHNlcXVlbmNlcyBtYWtlcyB0aGUgZ2VuZXJhdGVkIG91dHB1dFxuICAgKiBzbGlnaHRseSBiaWdnZXIsIGFuZCBhbHNvIG1ha2VzIGl0IGhhcmRlciB0byByZWFkLiBJZiB5b3Ugd291bGQgbGlrZSBmb3IgZXNidWlsZCB0byBwcmludFxuICAgKiB0aGUgb3JpZ2luYWwgY2hhcmFjdGVycyB3aXRob3V0IHVzaW5nIGVzY2FwZSBzZXF1ZW5jZXMsIHVzZSBgQ2hhcnNldC5VVEY4YC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jY2hhcnNldFxuICAgKiBAZGVmYXVsdCBDaGFyc2V0LkFTQ0lJXG4gICAqL1xuICByZWFkb25seSBjaGFyc2V0PzogQ2hhcnNldDtcblxuICAvKipcbiAgICogUmVwbGFjZSBnbG9iYWwgaWRlbnRpZmllcnMgd2l0aCBjb25zdGFudCBleHByZXNzaW9ucy5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGB7ICdwcm9jZXNzLmVudi5ERUJVRyc6ICd0cnVlJyB9YC5cbiAgICpcbiAgICogQW5vdGhlciBleGFtcGxlLCBgeyAncHJvY2Vzcy5lbnYuQVBJX0tFWSc6IEpTT04uc3RyaW5naWZ5KCd4eHgteHh4eC14eHgnKSB9YC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyByZXBsYWNlbWVudHMgYXJlIG1hZGVcbiAgICovXG4gIHJlYWRvbmx5IGRlZmluZT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3VtZW50cyB0byBwYXNzIGludG8gZXNidWlsZC5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIHRvIGFkZCB0aGUgWy0tbG9nLWxpbWl0XShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbG9nLWxpbWl0KSBmbGFnOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIHByb2plY3QuYnVuZGxlci5hZGRCdW5kbGUoXCIuL3NyYy9oZWxsby50c1wiLCB7XG4gICAqICAgcGxhdGZvcm06IFwibm9kZVwiLFxuICAgKiAgIHRhcmdldDogXCJub2RlMjJcIixcbiAgICogICBzb3VyY2VtYXA6IHRydWUsXG4gICAqICAgZm9ybWF0OiBcImVzbVwiLFxuICAgKiAgIGVzYnVpbGRBcmdzOiB7XG4gICAqICAgICBcIi0tbG9nLWxpbWl0XCI6IFwiMFwiLFxuICAgKiAgIH0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGVzYnVpbGQgYXJndW1lbnRzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGVzYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBib29sZWFuIH07XG5cbiAgLyoqXG4gICAqIEhvdyB0byBkZXRlcm1pbmUgdGhlIGVudHJ5IHBvaW50IGZvciBtb2R1bGVzLlxuICAgKiBUcnkgWydtb2R1bGUnLCAnbWFpbiddIHRvIGRlZmF1bHQgdG8gRVMgbW9kdWxlIHZlcnNpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgbWFpbkZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGF1dG9tYXRpY2FsbHkgcmVwbGFjZSBhIGdsb2JhbCB2YXJpYWJsZSB3aXRoIGFuXG4gICAqIGltcG9ydCBmcm9tIGFub3RoZXIgZmlsZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jaW5qZWN0XG4gICAqIEBkZWZhdWx0IC0gbm8gY29kZSBpcyBpbmplY3RlZFxuICAgKi9cbiAgcmVhZG9ubHkgaW5qZWN0Pzogc3RyaW5nW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQnVuZGxlck9wdGlvbnMucnVuQnVuZGxlVGFza1xuICovXG5leHBvcnQgZW51bSBSdW5CdW5kbGVUYXNrIHtcbiAgLyoqXG4gICAqIERvbid0IGJ1bmRsZSBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIGJ1aWxkLlxuICAgKi9cbiAgTUFOVUFMID0gXCJtYW51YWxcIixcbiAgLyoqXG4gICAqIEJ1bmRsZSBhdXRvbWF0aWNhbGx5IGJlZm9yZSBjb21waWxhdGlvbi5cbiAgICovXG4gIFBSRV9DT01QSUxFID0gXCJwcmVfY29tcGlsZVwiLFxuICAvKipcbiAgICogQnVuZGxlIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgY29tcGlsYXRpb24uIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvXG4gICAqIGJ1bmRsZSB0aGUgY29tcGlsZWQgcmVzdWx0cy5cbiAgICpcbiAgICogVGh1cyB3aWxsIHJ1biBjb21waWxhdGlvbiB0YXNrcyAodXNpbmcgdHNjLCBldGMuKSBiZWZvcmUgcnVubmluZyBmaWxlXG4gICAqIHRocm91Z2ggYnVuZGxpbmcgc3RlcC5cbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHVubGVzcyB5b3UgYXJlIHVzaW5nIG5ldyBleHBlcmltZW50YWwgZmVhdHVyZXMgdGhhdFxuICAgKiBhcmUgbm90IHN1cHBvcnRlZCBieSBgZXNidWlsZGAgYnV0IGFyZSBzdXBwb3J0ZWQgYnkgdHlwZXNjcmlwdCdzIGB0c2NgXG4gICAqIGNvbXBpbGVyLiBPbmUgZXhhbXBsZSBvZiBzdWNoIGZlYXR1cmUgaXMgYGVtaXREZWNvcmF0b3JNZXRhZGF0YWAuXG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gSW4gYSBUeXBlU2NyaXB0IHByb2plY3Qgd2l0aCBvdXRwdXQgY29uZmlndXJlZFxuICAgKiAvLyB0byBnbyB0byB0aGUgXCJsaWJcIiBkaXJlY3Rvcnk6XG4gICAqIGNvbnN0IHByb2plY3QgPSBuZXcgVHlwZVNjcmlwdFByb2plY3Qoe1xuICAgKiAgIG5hbWU6IFwidGVzdFwiLFxuICAgKiAgIHRzY29uZmlnOiB7XG4gICAqICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICogICAgICAgb3V0RGlyOiBcImxpYlwiLFxuICAgKiAgICAgfSxcbiAgICogICB9LFxuICAgKiAgIGJ1bmRsZXJPcHRpb25zOiB7XG4gICAqICAgICAvLyBlbnN1cmUgd2UgY29tcGlsZSB3aXRoIGB0c2NgIGJlZm9yZSBidW5kbGluZ1xuICAgKiAgICAgcnVuQnVuZGxlVGFzazogUnVuQnVuZGxlVGFzay5QT1NUX0NPTVBJTEUsXG4gICAqICAgfSxcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIFRlbGwgdGhlIGJ1bmRsZXIgdG8gYnVuZGxlIHRoZSBjb21waWxlZCByZXN1bHRzIChmcm9tIHRoZSBcImxpYlwiIGRpcmVjdG9yeSlcbiAgICogcHJvamVjdC5idW5kbGVyLmFkZEJ1bmRsZShcIi4vbGliL2luZGV4LmpzXCIsIHtcbiAgICogICBwbGF0Zm9ybTogXCJub2RlXCIsXG4gICAqICAgdGFyZ2V0OiBcIm5vZGUyMlwiLFxuICAgKiAgIHNvdXJjZW1hcDogZmFsc2UsXG4gICAqICAgZm9ybWF0OiBcImVzbVwiLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqKi9cbiAgUE9TVF9DT01QSUxFID0gXCJwb3N0X2NvbXBpbGVcIixcbn1cblxuLyoqXG4gKiBTb3VyY2VNYXAgbW9kZSBmb3IgZXNidWlsZFxuICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jc291cmNlbWFwXG4gKi9cbmV4cG9ydCBlbnVtIFNvdXJjZU1hcE1vZGUge1xuICAvKipcbiAgICogRGVmYXVsdCBzb3VyY2VNYXAgbW9kZSAtIHdpbGwgZ2VuZXJhdGUgYSAuanMubWFwIGZpbGUgYWxvbmdzaWRlIGFueSBnZW5lcmF0ZWQgLmpzIGZpbGUgYW5kIGFkZCBhIHNwZWNpYWwgLy8jIHNvdXJjZU1hcHBpbmdVUkw9XG4gICAqIGNvbW1lbnQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgLmpzIGZpbGUgcG9pbnRpbmcgdG8gdGhlIC5qcy5tYXAgZmlsZVxuICAgKi9cbiAgREVGQVVMVCA9IFwiZGVmYXVsdFwiLFxuICAvKipcbiAgICogIEV4dGVybmFsIHNvdXJjZU1hcCBtb2RlIC0gSWYgeW91IHdhbnQgdG8gb21pdCB0aGUgc3BlY2lhbCAvLyMgc291cmNlTWFwcGluZ1VSTD0gY29tbWVudCBmcm9tIHRoZSBnZW5lcmF0ZWQgLmpzIGZpbGUgYnV0IHlvdSBzdGlsbFxuICAgKiAgd2FudCB0byBnZW5lcmF0ZSB0aGUgLmpzLm1hcCBmaWxlc1xuICAgKi9cbiAgRVhURVJOQUwgPSBcImV4dGVybmFsXCIsXG4gIC8qKlxuICAgKiBJbmxpbmUgc291cmNlTWFwIG1vZGUgLSBJZiB5b3Ugd2FudCB0byBpbnNlcnQgdGhlIGVudGlyZSBzb3VyY2UgbWFwIGludG8gdGhlIC5qcyBmaWxlIGluc3RlYWQgb2YgZ2VuZXJhdGluZyBhIHNlcGFyYXRlIC5qcy5tYXAgZmlsZVxuICAgKi9cbiAgSU5MSU5FID0gXCJpbmxpbmVcIixcbiAgLyoqXG4gICAqIEJvdGggc291cmNlTWFwIG1vZGUgLSBJZiB5b3Ugd2FudCB0byBoYXZlIHRoZSBlZmZlY3Qgb2YgYm90aCBpbmxpbmUgYW5kIGV4dGVybmFsIHNpbXVsdGFuZW91c2x5XG4gICAqL1xuICBCT1RIID0gXCJib3RoXCIsXG59XG5cbi8qKlxuICogQ2hhcnNldCBmb3IgZXNidWlsZCdzIG91dHB1dFxuICovXG5leHBvcnQgZW51bSBDaGFyc2V0IHtcbiAgLyoqXG4gICAqIEFTQ0lJXG4gICAqXG4gICAqIEFueSBub24tQVNDSUkgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCB1c2luZyBiYWNrc2xhc2ggZXNjYXBlIHNlcXVlbmNlc1xuICAgKi9cbiAgQVNDSUkgPSBcImFzY2lpXCIsXG5cbiAgLyoqXG4gICAqIFVURi04XG4gICAqXG4gICAqIEtlZXAgb3JpZ2luYWwgY2hhcmFjdGVycyB3aXRob3V0IHVzaW5nIGVzY2FwZSBzZXF1ZW5jZXNcbiAgICovXG4gIFVURjggPSBcInV0ZjhcIixcbn1cblxuLyoqXG4gKiBMb2cgbGV2ZWxzIGZvciBlc2J1aWxkIGFuZCBwYWNrYWdlIG1hbmFnZXJzJyBpbnN0YWxsIGNvbW1hbmRzLlxuICovXG5leHBvcnQgZW51bSBCdW5kbGVMb2dMZXZlbCB7XG4gIC8qKiBTaG93IGV2ZXJ5dGhpbmcgKi9cbiAgVkVSQk9TRSA9IFwidmVyYm9zZVwiLFxuICAvKiogU2hvdyBldmVyeXRoaW5nIGZyb20gaW5mbyBhbmQgc29tZSBhZGRpdGlvbmFsIG1lc3NhZ2VzIGZvciBkZWJ1Z2dpbmcgKi9cbiAgREVCVUcgPSBcImRlYnVnXCIsXG4gIC8qKiBTaG93IHdhcm5pbmdzLCBlcnJvcnMsIGFuZCBhbiBvdXRwdXQgZmlsZSBzdW1tYXJ5ICovXG4gIElORk8gPSBcImluZm9cIixcbiAgLyoqIFNob3cgd2FybmluZ3MgYW5kIGVycm9ycyAqL1xuICBXQVJOSU5HID0gXCJ3YXJuaW5nXCIsXG4gIC8qKiBTaG93IGVycm9ycyBvbmx5ICovXG4gIEVSUk9SID0gXCJlcnJvclwiLFxuICAvKiogU2hvdyBub3RoaW5nICovXG4gIFNJTEVOVCA9IFwic2lsZW50XCIsXG59XG4iXX0=
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2J1bmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3QiwrQkFBd0M7QUFDeEMsaUNBQTBDO0FBQzFDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUEyQ2pEOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLHFCQUFTOztJQUNwQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFZLEVBQWdCLEVBQUUsQ0FBQyxDQUFDLFlBQVksT0FBTyxDQUFDO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ2EsY0FBYyxDQUFxQjtJQUVuRDs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUUxQixLQUFLLENBQW1CO0lBQ2YsYUFBYSxDQUFpQjtJQUM5QixPQUFPLENBQTZCO0lBRXJEOztPQUVHO0lBQ0gsWUFBWSxPQUFnQixFQUFFLFVBQTBCLEVBQUU7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRS9CLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsVUFBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtB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RztBQUNILElBQVksY0FhWDtBQWJELFdBQVksY0FBYztJQUN4QixzQkFBc0I7SUFDdEIscUNBQW1CLENBQUE7SUFDbkIsMkVBQTJFO0lBQzNFLGlDQUFlLENBQUE7SUFDZix3REFBd0Q7SUFDeEQsK0JBQWEsQ0FBQTtJQUNiLCtCQUErQjtJQUMvQixxQ0FBbUIsQ0FBQTtJQUNuQix1QkFBdUI7SUFDdkIsaUNBQWUsQ0FBQTtJQUNmLG1CQUFtQjtJQUNuQixtQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcsY0FBYyw4QkFBZCxjQUFjLFFBYXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgam9pbiBhcyBwYXRoSm9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyByZW5kZXJCdW5kbGVOYW1lIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuLy8gUGFydHMgb2YgdGhpcyBmaWxlIGluc3BpcmVkIGJ5IEBhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1xuLy8gICBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9jM2M3NzFjNmY2ZjY3OTBmMjI5OGE4NWE1NDliZGVkNjQwZDJlMzViL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzL2xpYi9idW5kbGluZy50cyNMMTk1XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYEJ1bmRsZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBgZXNidWlsZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3BlY2lmaWMgdmVyc2lvbiAoaW1wbGllcyBsYXRlc3QpXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3V0cHV0IGRpcmVjdG9yeSBmb3IgYWxsIGJ1bmRsZXMuXG4gICAqIEBkZWZhdWx0IFwiYXNzZXRzXCJcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0c0Rpcj86IHN0cmluZztcblxuICAvKipcbiAgICogQ2hvb3NlIHdoaWNoIHBoYXNlIChpZiBhbnkpIHRvIGFkZCB0aGUgYGJ1bmRsZWAgY29tbWFuZCB0by5cbiAgICpcbiAgICogTm90ZTogSWYgdXNpbmcgYGFkZEJ1bmRsZSgpYCB3aXRoIHRoZSBgYnVuZGxlQ29tcGlsZWRSZXN1bHRzYCwgdGhpcyBvcHRpb25cbiAgICogbXVzdCBiZSBzZXQgdG8gYFJ1bkJ1bmRsZVRhc2suUE9TVF9DT01QSUxFYCBvciBgUnVuQnVuZGxlVGFzay5NQU5VQUxgLlxuICAgKlxuICAgKiBAc2VlIEFkZEJ1bmRsZU9wdGlvbnMuYnVuZGxlQ29tcGlsZWRSZXN1bHRzXG4gICAqXG4gICAqIEBkZWZhdWx0IFJ1bkJ1bmRsZVRhc2suUFJFX0NPTVBJTEVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bkJ1bmRsZVRhc2s/OiBSdW5CdW5kbGVUYXNrO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgZmlsZSBleHRlbnNpb25zICh3aXRob3V0IGRvdCkgYW5kIGxvYWRlcnMgdG8gdXNlIGZvciB0aGlzIGZpbGUgdHlwZS5cbiAgICogTG9hZGVycyBhcmUgYXBwZW5kZWQgdG8gdGhlIGVzYnVpbGQgY29tbWFuZCBieSBgLS1sb2FkZXI6LmV4dGVuc2lvbj1sb2FkZXJgXG4gICAqL1xuICByZWFkb25seSBsb2FkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBBZGRzIHN1cHBvcnQgZm9yIGJ1bmRsaW5nIEphdmFTY3JpcHQgYXBwbGljYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgaW50byBhXG4gKiBzaW5nbGUgZmlsZS4gSW4gdGhlIGZ1dHVyZSwgdGhpcyB3aWxsIGFsc28gc3VwcG9ydHMgYnVuZGxpbmcgd2Vic2l0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCdW5kbGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBCdW5kbGVyYCBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmXG4gICAqIHRoZXJlIGlzIG5vIEJ1bmRsZXIuXG4gICAqIEBwYXJhbSBwcm9qZWN0IFRoZSBwcm9qZWN0XG4gICAqIEByZXR1cm5zIEEgYnVuZGxlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogQnVuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNCdW5kbGVyID0gKG86IENvbXBvbmVudCk6IG8gaXMgQnVuZGxlciA9PiBvIGluc3RhbmNlb2YgQnVuZGxlcjtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNCdW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2VtYW50aWMgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgYGVzYnVpbGRgIChpZiBkZWZpbmVkKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlc2J1aWxkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSb290IGJ1bmRsZSBkaXJlY3RvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVuZGxlZGlyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfdGFzazogVGFzayB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBydW5CdW5kbGVUYXNrPzogUnVuQnVuZGxlVGFzaztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGBCdW5kbGVyYC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEJ1bmRsZXJPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZXNidWlsZFZlcnNpb24gPSBvcHRpb25zLmVzYnVpbGRWZXJzaW9uO1xuICAgIHRoaXMuYnVuZGxlZGlyID0gb3B0aW9ucy5hc3NldHNEaXIgPz8gXCJhc3NldHNcIjtcbiAgICB0aGlzLmxvYWRlcnMgPSBvcHRpb25zLmxvYWRlcnM7XG5cbiAgICB0aGlzLnJ1bkJ1bmRsZVRhc2sgPSBvcHRpb25zLnJ1bkJ1bmRsZVRhc2sgPz8gUnVuQnVuZGxlVGFzay5QUkVfQ09NUElMRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIG9yIGNyZWF0ZXMgdGhlIHNpbmdsZXRvbiBcImJ1bmRsZVwiIHRhc2sgb2YgdGhlIHByb2plY3QuXG4gICAqXG4gICAqIElmIHRoZSBwcm9qZWN0IGRvZXNuJ3QgaGF2ZSBhIFwiYnVuZGxlXCIgdGFzaywgaXQgd2lsbCBiZSBjcmVhdGVkIGFuZCBzcGF3bmVkXG4gICAqIGR1cmluZyB0aGUgcHJlLWNvbXBpbGUgcGhhc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJ1bmRsZVRhc2soKTogVGFzayB7XG4gICAgaWYgKCF0aGlzLl90YXNrKSB7XG4gICAgICB0aGlzLmFkZEJ1bmRsaW5nU3VwcG9ydCgpO1xuICAgICAgdGhpcy5fdGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKFwiYnVuZGxlXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUHJlcGFyZSBhc3NldHNcIixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBpbnN0YWxsIHRoZSBidW5kbGUgdGFzayBpbnRvIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICAgIGlmICh0aGlzLnJ1bkJ1bmRsZVRhc2sgPT09IFJ1bkJ1bmRsZVRhc2suUFJFX0NPTVBJTEUpIHtcbiAgICAgICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLnNwYXduKHRoaXMuX3Rhc2spO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnJ1bkJ1bmRsZVRhc2sgPT09IFJ1bkJ1bmRsZVRhc2suUE9TVF9DT01QSUxFKSB7XG4gICAgICAgIHRoaXMucHJvamVjdC5wb3N0Q29tcGlsZVRhc2suc3Bhd24odGhpcy5fdGFzayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rhc2s7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhc2sgdG8gdGhlIHByb2plY3Qgd2hpY2ggYnVuZGxlcyBhIHNwZWNpZmljIGVudHJ5cG9pbnQgYW5kIGFsbCBvZlxuICAgKiBpdHMgZGVwZW5kZW5jaWVzIGludG8gYSBzaW5nbGUgamF2YXNjcmlwdCBvdXRwdXQgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGVudHJ5cG9pbnQgVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIGFydGlmYWN0IHdpdGhpbiB0aGUgcHJvamVjdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBCdW5kbGluZyBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgYWRkQnVuZGxlKGVudHJ5cG9pbnQ6IHN0cmluZywgb3B0aW9uczogQWRkQnVuZGxlT3B0aW9ucyk6IEJ1bmRsZSB7XG4gICAgY29uc3QgbmFtZSA9IHJlbmRlckJ1bmRsZU5hbWUoZW50cnlwb2ludCk7XG5cbiAgICBjb25zdCBvdXRkaXIgPSBwYXRoLnBvc2l4LmpvaW4odGhpcy5idW5kbGVkaXIsIG5hbWUpO1xuICAgIGNvbnN0IG91dGZpbGUgPSBwYXRoLnBvc2l4LmpvaW4ob3V0ZGlyLCBvcHRpb25zLm91dGZpbGUgPz8gXCJpbmRleC5qc1wiKTtcbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgXCJlc2J1aWxkXCIsXG4gICAgICBcIi0tYnVuZGxlXCIsXG4gICAgICBlbnRyeXBvaW50LFxuICAgICAgYC0tdGFyZ2V0PVwiJHtvcHRpb25zLnRhcmdldH1cImAsXG4gICAgICBgLS1wbGF0Zm9ybT1cIiR7b3B0aW9ucy5wbGF0Zm9ybX1cImAsXG4gICAgICBgLS1vdXRmaWxlPVwiJHtvdXRmaWxlfVwiYCxcbiAgICBdO1xuXG4gICAgaWYgKG9wdGlvbnMudHNjb25maWdQYXRoKSB7XG4gICAgICBhcmdzLnB1c2goYC0tdHNjb25maWc9XCIke29wdGlvbnMudHNjb25maWdQYXRofVwiYCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB4IG9mIG9wdGlvbnMuZXh0ZXJuYWxzID8/IFtdKSB7XG4gICAgICBhcmdzLnB1c2goYC0tZXh0ZXJuYWw6JHt4fWApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnNvdXJjZW1hcCB8fCBvcHRpb25zLnNvdXJjZU1hcE1vZGUpIHtcbiAgICAgIGNvbnN0IHNvdXJjZU1hcE1vZGUgPSBvcHRpb25zLnNvdXJjZU1hcE1vZGUgPz8gU291cmNlTWFwTW9kZS5ERUZBVUxUO1xuICAgICAgY29uc3Qgc291cmNlTWFwVmFsdWUgPVxuICAgICAgICBzb3VyY2VNYXBNb2RlID09PSBTb3VyY2VNYXBNb2RlLkRFRkFVTFRcbiAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICA6IGA9JHtvcHRpb25zLnNvdXJjZU1hcE1vZGV9YDtcbiAgICAgIGFyZ3MucHVzaChgLS1zb3VyY2VtYXAke3NvdXJjZU1hcFZhbHVlfWApO1xuXG4gICAgICBpZiAob3B0aW9ucy5zb3VyY2VzQ29udGVudCA9PT0gdHJ1ZSkge1xuICAgICAgICBhcmdzLnB1c2goYC0tc291cmNlcy1jb250ZW50PSR7b3B0aW9ucy5zb3VyY2VzQ29udGVudH1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXQgPSBvcHRpb25zLmZvcm1hdDtcbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICBhcmdzLnB1c2goYC0tZm9ybWF0PSR7Zm9ybWF0fWApO1xuICAgIH1cblxuICAgIGNvbnN0IGxvYWRlcnMgPVxuICAgICAgKG9wdGlvbnMubG9hZGVycyA/PyBmYWxzZSkgPyBvcHRpb25zLmxvYWRlcnMgOiAodGhpcy5sb2FkZXJzID8/IGZhbHNlKTtcbiAgICBpZiAobG9hZGVycykge1xuICAgICAgZm9yIChsZXQgW2V4dGVuc2lvbiwgbG9hZGVyXSBvZiBPYmplY3QuZW50cmllcyhsb2FkZXJzKSkge1xuICAgICAgICBhcmdzLnB1c2goYC0tbG9hZGVyOi4ke2V4dGVuc2lvbn09JHtsb2FkZXJ9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGVmaW5lcyA9IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuZGVmaW5lID8/IHt9KTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBkZWZpbmVzKSB7XG4gICAgICBhcmdzLnB1c2goYC0tZGVmaW5lOiR7a2V5fT0ke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5taW5pZnkpIHtcbiAgICAgIGFyZ3MucHVzaChcIi0tbWluaWZ5XCIpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmxvZ0xldmVsKSB7XG4gICAgICBhcmdzLnB1c2goYC0tbG9nLWxldmVsPSR7b3B0aW9ucy5sb2dMZXZlbH1gKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMua2VlcE5hbWVzKSB7XG4gICAgICBhcmdzLnB1c2goXCItLWtlZXAtbmFtZXNcIik7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLm1ldGFmaWxlKSB7XG4gICAgICBhcmdzLnB1c2goYC0tbWV0YWZpbGU9JHtwYXRoSm9pbihvdXRkaXIsIFwiaW5kZXgubWV0YS5qc29uXCIpfWApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5iYW5uZXIpIHtcbiAgICAgIGFyZ3MucHVzaChgLS1iYW5uZXI6anM9JHtKU09OLnN0cmluZ2lmeShvcHRpb25zLmJhbm5lcil9YCk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmZvb3Rlcikge1xuICAgICAgYXJncy5wdXNoKGAtLWZvb3Rlcjpqcz0ke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuZm9vdGVyKX1gKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubWFpbkZpZWxkcykge1xuICAgICAgYXJncy5wdXNoKGAtLW1haW4tZmllbGRzPSR7b3B0aW9ucy5tYWluRmllbGRzLmpvaW4oXCIsXCIpfWApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5pbmplY3QpIHtcbiAgICAgIGFyZ3MucHVzaCguLi5vcHRpb25zLmluamVjdC5tYXAoKGkpID0+IGAtLWluamVjdDoke2l9YCkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lc2J1aWxkQXJncykge1xuICAgICAgY29uc3Qgc3ViQXJncyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuZXNidWlsZEFyZ3MpKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgIHN1YkFyZ3MucHVzaChrZXkpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgc3ViQXJncy5wdXNoKGAke2tleX09XCIke3ZhbHVlfVwiYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXJncy5wdXNoKHN1YkFyZ3Muam9pbihcIiBcIikpO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1bmRsZVRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayhgYnVuZGxlOiR7bmFtZX1gLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYENyZWF0ZSBhIEphdmFTY3JpcHQgYnVuZGxlIGZyb20gJHtlbnRyeXBvaW50fWAsXG4gICAgICBleGVjOiBhcmdzLmpvaW4oXCIgXCIpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5idW5kbGVUYXNrLnNwYXduKGJ1bmRsZVRhc2spO1xuXG4gICAgaWYgKG9wdGlvbnMuZXhlY3V0YWJsZSA/PyBmYWxzZSkge1xuICAgICAgYnVuZGxlVGFzay5leGVjQXJncyhbXCJjaG1vZFwiLCBcIit4XCIsIG91dGZpbGVdKTtcbiAgICB9XG5cbiAgICBsZXQgd2F0Y2hUYXNrO1xuICAgIGNvbnN0IHdhdGNoID0gb3B0aW9ucy53YXRjaFRhc2sgPz8gdHJ1ZTtcbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHdhdGNoVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKGBidW5kbGU6JHtuYW1lfTp3YXRjaGAsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IGBDb250aW51b3VzbHkgdXBkYXRlIHRoZSBKYXZhU2NyaXB0IGJ1bmRsZSBmcm9tICR7ZW50cnlwb2ludH1gLFxuICAgICAgICBleGVjOiBgJHthcmdzLmpvaW4oXCIgXCIpfSAtLXdhdGNoYCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBidW5kbGVUYXNrOiBidW5kbGVUYXNrLFxuICAgICAgd2F0Y2hUYXNrOiB3YXRjaFRhc2ssXG4gICAgICBvdXRkaXI6IG91dGRpcixcbiAgICAgIG91dGZpbGU6IG91dGZpbGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYnVuZGxpbmcgc3VwcG9ydCB0byBhIHByb2plY3QuIFRoaXMgaXMgY2FsbGVkIGltcGxpY2l0bHkgd2hlblxuICAgKiBgYnVuZGxlVGFza2AgaXMgcmVmZXJlbmNlZCBmaXJzdC4gSXQgYWRkcyB0aGUgZGVwZW5kZW5jeSBvbiBgZXNidWlsZGAsXG4gICAqIGdpdGlnbm9yZS9ucG1pZ25vcmUsIGV0Yy5cbiAgICovXG4gIHByaXZhdGUgYWRkQnVuZGxpbmdTdXBwb3J0KCkge1xuICAgIGNvbnN0IGlnbm9yZUVudHJ5ID0gYC8ke3RoaXMuYnVuZGxlZGlyfS9gO1xuICAgIHRoaXMucHJvamVjdC5hZGRHaXRJZ25vcmUoaWdub3JlRW50cnkpO1xuICAgIHRoaXMucHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAhJHtpZ25vcmVFbnRyeX1gKTsgLy8gaW5jbHVkZSBpbiB0YXJiYWxsXG4gICAgY29uc3QgZGVwID0gdGhpcy5lc2J1aWxkVmVyc2lvblxuICAgICAgPyBgZXNidWlsZEAke3RoaXMuZXNidWlsZFZlcnNpb259YFxuICAgICAgOiBcImVzYnVpbGRcIjtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KGRlcCwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlIHtcbiAgLyoqXG4gICAqIFRoZSB0YXNrIHRoYXQgcHJvZHVjZXMgdGhpcyBidW5kbGUuXG4gICAqL1xuICByZWFkb25seSBidW5kbGVUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBUaGUgXCJ3YXRjaFwiIHRhc2sgZm9yIHRoaXMgYnVuZGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2hUYXNrPzogVGFzaztcblxuICAvKipcbiAgICogTG9jYXRpb24gb2YgdGhlIG91dHB1dCBmaWxlIChyZWxhdGl2ZSB0byBwcm9qZWN0IHJvb3QpLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZmlsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCYXNlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBvdXRwdXQgZmlsZSAocmVsYXRpdmUgdG8gcHJvamVjdCByb290KS5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGJ1bmRsaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBZb3UgY2FuIG1hcmsgYSBmaWxlIG9yIGEgcGFja2FnZSBhcyBleHRlcm5hbCB0byBleGNsdWRlIGl0IGZyb20geW91ciBidWlsZC5cbiAgICogSW5zdGVhZCBvZiBiZWluZyBidW5kbGVkLCB0aGUgaW1wb3J0IHdpbGwgYmUgcHJlc2VydmVkICh1c2luZyByZXF1aXJlIGZvclxuICAgKiB0aGUgaWlmZSBhbmQgY2pzIGZvcm1hdHMgYW5kIHVzaW5nIGltcG9ydCBmb3IgdGhlIGVzbSBmb3JtYXQpIGFuZCB3aWxsIGJlXG4gICAqIGV2YWx1YXRlZCBhdCBydW4gdGltZSBpbnN0ZWFkLlxuICAgKlxuICAgKiBUaGlzIGhhcyBzZXZlcmFsIHVzZXMuIEZpcnN0IG9mIGFsbCwgaXQgY2FuIGJlIHVzZWQgdG8gdHJpbSB1bm5lY2Vzc2FyeVxuICAgKiBjb2RlIGZyb20geW91ciBidW5kbGUgZm9yIGEgY29kZSBwYXRoIHRoYXQgeW91IGtub3cgd2lsbCBuZXZlciBiZSBleGVjdXRlZC5cbiAgICogRm9yIGV4YW1wbGUsIGEgcGFja2FnZSBtYXkgY29udGFpbiBjb2RlIHRoYXQgb25seSBydW5zIGluIG5vZGUgYnV0IHlvdSB3aWxsXG4gICAqIG9ubHkgYmUgdXNpbmcgdGhhdCBwYWNrYWdlIGluIHRoZSBicm93c2VyLiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGltcG9ydFxuICAgKiBjb2RlIGluIG5vZGUgYXQgcnVuIHRpbWUgZnJvbSBhIHBhY2thZ2UgdGhhdCBjYW5ub3QgYmUgYnVuZGxlZC4gRm9yXG4gICAqIGV4YW1wbGUsIHRoZSBmc2V2ZW50cyBwYWNrYWdlIGNvbnRhaW5zIGEgbmF0aXZlIGV4dGVuc2lvbiwgd2hpY2ggZXNidWlsZFxuICAgKiBkb2Vzbid0IHN1cHBvcnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSW5jbHVkZSBhIHNvdXJjZSBtYXAgaW4gdGhlIGJ1bmRsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZW1hcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluIGFkZGl0aW9uIHRvIHRoZSBgYnVuZGxlOnh5emAgdGFzaywgY3JlYXRlcyBgYnVuZGxlOnh5ejp3YXRjaGAgdGFzayB3aGljaCB3aWxsXG4gICAqIGludm9rZSB0aGUgc2FtZSBlc2J1aWxkIGNvbW1hbmQgd2l0aCB0aGUgYC0td2F0Y2hgIGZsYWcuIFRoaXMgY2FuIGJlIHVzZWRcbiAgICogdG8gY29udGludXNvdWx5IHdhdGNoIGZvciBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB3YXRjaFRhc2s/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBhZGRCdW5kbGUoKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQnVuZGxlT3B0aW9ucyBleHRlbmRzIEJ1bmRsaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBlc2J1aWxkIHRhcmdldC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJub2RlMTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGVzYnVpbGQgcGxhdGZvcm0uXG4gICAqXG4gICAqIEBleGFtcGxlIFwibm9kZVwiXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdW5kbGVyIG91dHB1dCBwYXRoIHJlbGF0aXZlIHRvIHRoZSBhc3NldCdzIG91dHB1dCBkaXJlY3RvcnkuXG4gICAqIEBkZWZhdWx0IFwiaW5kZXguanNcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogTWFyayB0aGUgb3V0cHV0IGZpbGUgYXMgZXhlY3V0YWJsZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGFibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgdHNjb25maWcuanNvbiBmaWxlIHRvIHVzZSBmb3IgYnVuZGxpbmdcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5qc29uXCJcbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogTWFwIG9mIGZpbGUgZXh0ZW5zaW9ucyAod2l0aG91dCBkb3QpIGFuZCBsb2FkZXJzIHRvIHVzZSBmb3IgdGhpcyBmaWxlIHR5cGUuXG4gICAqIExvYWRlcnMgYXJlIGFwcGVuZGVkIHRvIHRoZSBlc2J1aWxkIGNvbW1hbmQgYnkgYC0tbG9hZGVyOi5leHRlbnNpb249bG9hZGVyYFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE91dHB1dCBmb3JtYXQgZm9yIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBmaWxlcy4gVGhlcmUgYXJlIGN1cnJlbnRseSB0aHJlZSBwb3NzaWJsZSB2YWx1ZXMgdGhhdCBjYW4gYmUgY29uZmlndXJlZDogYFwiaWlmZVwiYCwgYFwiY2pzXCJgLCBhbmQgYFwiZXNtXCJgLlxuICAgKlxuICAgKiBJZiBub3Qgc2V0IChgdW5kZWZpbmVkYCksIGVzYnVpbGQgcGlja3MgYW4gb3V0cHV0IGZvcm1hdCBmb3IgeW91IGJhc2VkIG9uIGBwbGF0Zm9ybWA6XG4gICAqIC0gYFwiY2pzXCJgIGlmIGBwbGF0Zm9ybWAgaXMgYFwibm9kZVwiYFxuICAgKiAtIGBcImlpZmVcImAgaWYgYHBsYXRmb3JtYCBpcyBgXCJicm93c2VyXCJgXG4gICAqIC0gYFwiZXNtXCJgIGlmIGBwbGF0Zm9ybWAgaXMgYFwibmV1dHJhbFwiYFxuICAgKlxuICAgKiBOb3RlOiBJZiBtYWtpbmcgYSBidW5kbGUgdG8gcnVuIHVuZGVyIG5vZGUgd2l0aCBFU00sIHNldCBgZm9ybWF0YCB0byBgXCJlc21cImAgaW5zdGVhZCBvZiBzZXR0aW5nIGBwbGF0Zm9ybWAgdG8gYFwibmV1dHJhbFwiYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2Zvcm1hdFxuICAgKi9cblxuICByZWFkb25seSBmb3JtYXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gbWluaWZ5IGZpbGVzIHdoZW4gYnVuZGxpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtaW5pZnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgbWFwIG1vZGUgdG8gYmUgdXNlZCB3aGVuIGJ1bmRsaW5nLlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNzb3VyY2VtYXBcbiAgICpcbiAgICogQGRlZmF1bHQgU291cmNlTWFwTW9kZS5ERUZBVUxUXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VNYXBNb2RlPzogU291cmNlTWFwTW9kZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGluIHNvdXJjZSBtYXBzIHdoZW4gYnVuZGxpbmcuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NvdXJjZXMtY29udGVudFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VzQ29udGVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvZyBsZXZlbCBmb3IgZXNidWlsZC4gVGhpcyBpcyBhbHNvIHByb3BhZ2F0ZWQgdG8gdGhlIHBhY2thZ2UgbWFuYWdlciBhbmRcbiAgICogYXBwbGllcyB0byBpdHMgc3BlY2lmaWMgaW5zdGFsbCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCBMb2dMZXZlbC5XQVJOSU5HXG4gICAqL1xuICByZWFkb25seSBsb2dMZXZlbD86IEJ1bmRsZUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbCBgbmFtZWAgdmFsdWVzIGV2ZW4gaW4gbWluaWZpZWQgY29kZS5cbiAgICpcbiAgICogSW4gSmF2YVNjcmlwdCB0aGUgYG5hbWVgIHByb3BlcnR5IG9uIGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyBkZWZhdWx0cyB0byBhXG4gICAqIG5lYXJieSBpZGVudGlmaWVyIGluIHRoZSBzb3VyY2UgY29kZS5cbiAgICpcbiAgICogSG93ZXZlciwgbWluaWZpY2F0aW9uIHJlbmFtZXMgc3ltYm9scyB0byByZWR1Y2UgY29kZSBzaXplIGFuZCBidW5kbGluZ1xuICAgKiBzb21ldGltZXMgbmVlZCB0byByZW5hbWUgc3ltYm9scyB0byBhdm9pZCBjb2xsaXNpb25zLiBUaGF0IGNoYW5nZXMgdmFsdWUgb2ZcbiAgICogdGhlIGBuYW1lYCBwcm9wZXJ0eSBmb3IgbWFueSBvZiB0aGVzZSBjYXNlcy4gVGhpcyBpcyB1c3VhbGx5IGZpbmUgYmVjYXVzZVxuICAgKiB0aGUgYG5hbWVgIHByb3BlcnR5IGlzIG5vcm1hbGx5IG9ubHkgdXNlZCBmb3IgZGVidWdnaW5nLiBIb3dldmVyLCBzb21lXG4gICAqIGZyYW1ld29ya3MgcmVseSBvbiB0aGUgYG5hbWVgIHByb3BlcnR5IGZvciByZWdpc3RyYXRpb24gYW5kIGJpbmRpbmcgcHVycG9zZXMuXG4gICAqIElmIHRoaXMgaXMgdGhlIGNhc2UsIHlvdSBjYW4gZW5hYmxlIHRoaXMgb3B0aW9uIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbFxuICAgKiBgbmFtZWAgdmFsdWVzIGV2ZW4gaW4gbWluaWZpZWQgY29kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGtlZXBOYW1lcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoaXMgb3B0aW9uIHRlbGxzIGVzYnVpbGQgdG8gd3JpdGUgb3V0IGEgSlNPTiBmaWxlIHJlbGF0aXZlIHRvIG91dHB1dCBkaXJlY3Rvcnkgd2l0aCBtZXRhZGF0YSBhYm91dCB0aGUgYnVpbGQuXG4gICAqXG4gICAqIFRoZSBtZXRhZGF0YSBpbiB0aGlzIEpTT04gZmlsZSBmb2xsb3dzIHRoaXMgc2NoZW1hIChzcGVjaWZpZWQgdXNpbmcgVHlwZVNjcmlwdCBzeW50YXgpOlxuICAgKlxuICAgKiBgYGB0ZXh0XG4gICAqIHtcbiAgICogICBvdXRwdXRzOiB7XG4gICAqICAgICBbcGF0aDogc3RyaW5nXToge1xuICAgKiAgICAgICBieXRlczogbnVtYmVyXG4gICAqICAgICAgIGlucHV0czoge1xuICAgKiAgICAgICAgIFtwYXRoOiBzdHJpbmddOiB7IGJ5dGVzSW5PdXRwdXQ6IG51bWJlciB9XG4gICAqICAgICAgIH1cbiAgICogICAgICAgaW1wb3J0czogeyBwYXRoOiBzdHJpbmcgfVtdXG4gICAqICAgICAgIGV4cG9ydHM6IHN0cmluZ1tdXG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBUaGlzIGRhdGEgY2FuIHRoZW4gYmUgYW5hbHl6ZWQgYnkgb3RoZXIgdG9vbHMuIEZvciBleGFtcGxlLFxuICAgKiBidW5kbGUgYnVkZHkgY2FuIGNvbnN1bWUgZXNidWlsZCdzIG1ldGFkYXRhIGZvcm1hdCBhbmQgZ2VuZXJhdGVzIGEgdHJlZW1hcCB2aXN1YWxpemF0aW9uXG4gICAqIG9mIHRoZSBtb2R1bGVzIGluIHlvdXIgYnVuZGxlIGFuZCBob3cgbXVjaCBzcGFjZSBlYWNoIG9uZSB0YWtlcyB1cC5cbiAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jbWV0YWZpbGVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFmaWxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gaW5zZXJ0IGFuIGFyYml0cmFyeSBzdHJpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBmaWxlcy5cbiAgICpcbiAgICogVGhpcyBpcyBzaW1pbGFyIHRvIGZvb3RlciB3aGljaCBpbnNlcnRzIGF0IHRoZSBlbmQgaW5zdGVhZCBvZiB0aGUgYmVnaW5uaW5nLlxuICAgKlxuICAgKiBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgdG8gaW5zZXJ0IGNvbW1lbnRzOlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbW1lbnRzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJhbm5lcj86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gaW5zZXJ0IGFuIGFyYml0cmFyeSBzdHJpbmcgYXQgdGhlIGVuZCBvZiBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBmaWxlcy5cbiAgICpcbiAgICogVGhpcyBpcyBzaW1pbGFyIHRvIGJhbm5lciB3aGljaCBpbnNlcnRzIGF0IHRoZSBiZWdpbm5pbmcgaW5zdGVhZCBvZiB0aGUgZW5kLlxuICAgKlxuICAgKiBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgdG8gaW5zZXJ0IGNvbW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWVudHMgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgZm9vdGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhcnNldCB0byB1c2UgZm9yIGVzYnVpbGQncyBvdXRwdXQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQgZXNidWlsZCdzIG91dHB1dCBpcyBBU0NJSS1vbmx5LiBBbnkgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWRcbiAgICogdXNpbmcgYmFja3NsYXNoIGVzY2FwZSBzZXF1ZW5jZXMuIFVzaW5nIGVzY2FwZSBzZXF1ZW5jZXMgbWFrZXMgdGhlIGdlbmVyYXRlZCBvdXRwdXRcbiAgICogc2xpZ2h0bHkgYmlnZ2VyLCBhbmQgYWxzbyBtYWtlcyBpdCBoYXJkZXIgdG8gcmVhZC4gSWYgeW91IHdvdWxkIGxpa2UgZm9yIGVzYnVpbGQgdG8gcHJpbnRcbiAgICogdGhlIG9yaWdpbmFsIGNoYXJhY3RlcnMgd2l0aG91dCB1c2luZyBlc2NhcGUgc2VxdWVuY2VzLCB1c2UgYENoYXJzZXQuVVRGOGAuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2NoYXJzZXRcbiAgICogQGRlZmF1bHQgQ2hhcnNldC5BU0NJSVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhcnNldD86IENoYXJzZXQ7XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgZ2xvYmFsIGlkZW50aWZpZXJzIHdpdGggY29uc3RhbnQgZXhwcmVzc2lvbnMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBgeyAncHJvY2Vzcy5lbnYuREVCVUcnOiAndHJ1ZScgfWAuXG4gICAqXG4gICAqIEFub3RoZXIgZXhhbXBsZSwgYHsgJ3Byb2Nlc3MuZW52LkFQSV9LRVknOiBKU09OLnN0cmluZ2lmeSgneHh4LXh4eHgteHh4JykgfWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcmVwbGFjZW1lbnRzIGFyZSBtYWRlXG4gICAqL1xuICByZWFkb25seSBkZWZpbmU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmd1bWVudHMgdG8gcGFzcyBpbnRvIGVzYnVpbGQuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCB0byBhZGQgdGhlIFstLWxvZy1saW1pdF0oaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2xvZy1saW1pdCkgZmxhZzpcbiAgICpcbiAgICogYGBgdGV4dFxuICAgKiBwcm9qZWN0LmJ1bmRsZXIuYWRkQnVuZGxlKFwiLi9zcmMvaGVsbG8udHNcIiwge1xuICAgKiAgIHBsYXRmb3JtOiBcIm5vZGVcIixcbiAgICogICB0YXJnZXQ6IFwibm9kZTIyXCIsXG4gICAqICAgc291cmNlbWFwOiB0cnVlLFxuICAgKiAgIGZvcm1hdDogXCJlc21cIixcbiAgICogICBlc2J1aWxkQXJnczoge1xuICAgKiAgICAgXCItLWxvZy1saW1pdFwiOiBcIjBcIixcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBlc2J1aWxkIGFyZ3VtZW50cyBhcmUgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBlc2J1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhbiB9O1xuXG4gIC8qKlxuICAgKiBIb3cgdG8gZGV0ZXJtaW5lIHRoZSBlbnRyeSBwb2ludCBmb3IgbW9kdWxlcy5cbiAgICogVHJ5IFsnbW9kdWxlJywgJ21haW4nXSB0byBkZWZhdWx0IHRvIEVTIG1vZHVsZSB2ZXJzaW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IG1haW5GaWVsZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBhdXRvbWF0aWNhbGx5IHJlcGxhY2UgYSBnbG9iYWwgdmFyaWFibGUgd2l0aCBhblxuICAgKiBpbXBvcnQgZnJvbSBhbm90aGVyIGZpbGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI2luamVjdFxuICAgKiBAZGVmYXVsdCAtIG5vIGNvZGUgaXMgaW5qZWN0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGluamVjdD86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIEJ1bmRsZXJPcHRpb25zLnJ1bkJ1bmRsZVRhc2tcbiAqL1xuZXhwb3J0IGVudW0gUnVuQnVuZGxlVGFzayB7XG4gIC8qKlxuICAgKiBEb24ndCBidW5kbGUgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSBidWlsZC5cbiAgICovXG4gIE1BTlVBTCA9IFwibWFudWFsXCIsXG4gIC8qKlxuICAgKiBCdW5kbGUgYXV0b21hdGljYWxseSBiZWZvcmUgY29tcGlsYXRpb24uXG4gICAqL1xuICBQUkVfQ09NUElMRSA9IFwicHJlX2NvbXBpbGVcIixcbiAgLyoqXG4gICAqIEJ1bmRsZSBhdXRvbWF0aWNhbGx5IGFmdGVyIGNvbXBpbGF0aW9uLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0b1xuICAgKiBidW5kbGUgdGhlIGNvbXBpbGVkIHJlc3VsdHMuXG4gICAqXG4gICAqIFRodXMgd2lsbCBydW4gY29tcGlsYXRpb24gdGFza3MgKHVzaW5nIHRzYywgZXRjLikgYmVmb3JlIHJ1bm5pbmcgZmlsZVxuICAgKiB0aHJvdWdoIGJ1bmRsaW5nIHN0ZXAuXG4gICAqXG4gICAqIFRoaXMgaXMgb25seSByZXF1aXJlZCB1bmxlc3MgeW91IGFyZSB1c2luZyBuZXcgZXhwZXJpbWVudGFsIGZlYXR1cmVzIHRoYXRcbiAgICogYXJlIG5vdCBzdXBwb3J0ZWQgYnkgYGVzYnVpbGRgIGJ1dCBhcmUgc3VwcG9ydGVkIGJ5IHR5cGVzY3JpcHQncyBgdHNjYFxuICAgKiBjb21waWxlci4gT25lIGV4YW1wbGUgb2Ygc3VjaCBmZWF0dXJlIGlzIGBlbWl0RGVjb3JhdG9yTWV0YWRhdGFgLlxuICAgKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIEluIGEgVHlwZVNjcmlwdCBwcm9qZWN0IHdpdGggb3V0cHV0IGNvbmZpZ3VyZWRcbiAgICogLy8gdG8gZ28gdG8gdGhlIFwibGliXCIgZGlyZWN0b3J5OlxuICAgKiBjb25zdCBwcm9qZWN0ID0gbmV3IFR5cGVTY3JpcHRQcm9qZWN0KHtcbiAgICogICBuYW1lOiBcInRlc3RcIixcbiAgICogICB0c2NvbmZpZzoge1xuICAgKiAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAqICAgICAgIG91dERpcjogXCJsaWJcIixcbiAgICogICAgIH0sXG4gICAqICAgfSxcbiAgICogICBidW5kbGVyT3B0aW9uczoge1xuICAgKiAgICAgLy8gZW5zdXJlIHdlIGNvbXBpbGUgd2l0aCBgdHNjYCBiZWZvcmUgYnVuZGxpbmdcbiAgICogICAgIHJ1bkJ1bmRsZVRhc2s6IFJ1bkJ1bmRsZVRhc2suUE9TVF9DT01QSUxFLFxuICAgKiAgIH0sXG4gICAqIH0pO1xuICAgKlxuICAgKiAvLyBUZWxsIHRoZSBidW5kbGVyIHRvIGJ1bmRsZSB0aGUgY29tcGlsZWQgcmVzdWx0cyAoZnJvbSB0aGUgXCJsaWJcIiBkaXJlY3RvcnkpXG4gICAqIHByb2plY3QuYnVuZGxlci5hZGRCdW5kbGUoXCIuL2xpYi9pbmRleC5qc1wiLCB7XG4gICAqICAgcGxhdGZvcm06IFwibm9kZVwiLFxuICAgKiAgIHRhcmdldDogXCJub2RlMjJcIixcbiAgICogICBzb3VyY2VtYXA6IGZhbHNlLFxuICAgKiAgIGZvcm1hdDogXCJlc21cIixcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKiovXG4gIFBPU1RfQ09NUElMRSA9IFwicG9zdF9jb21waWxlXCIsXG59XG5cbi8qKlxuICogU291cmNlTWFwIG1vZGUgZm9yIGVzYnVpbGRcbiAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3NvdXJjZW1hcFxuICovXG5leHBvcnQgZW51bSBTb3VyY2VNYXBNb2RlIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgc291cmNlTWFwIG1vZGUgLSB3aWxsIGdlbmVyYXRlIGEgLmpzLm1hcCBmaWxlIGFsb25nc2lkZSBhbnkgZ2VuZXJhdGVkIC5qcyBmaWxlIGFuZCBhZGQgYSBzcGVjaWFsIC8vIyBzb3VyY2VNYXBwaW5nVVJMPVxuICAgKiBjb21tZW50IHRvIHRoZSBib3R0b20gb2YgdGhlIC5qcyBmaWxlIHBvaW50aW5nIHRvIHRoZSAuanMubWFwIGZpbGVcbiAgICovXG4gIERFRkFVTFQgPSBcImRlZmF1bHRcIixcbiAgLyoqXG4gICAqICBFeHRlcm5hbCBzb3VyY2VNYXAgbW9kZSAtIElmIHlvdSB3YW50IHRvIG9taXQgdGhlIHNwZWNpYWwgLy8jIHNvdXJjZU1hcHBpbmdVUkw9IGNvbW1lbnQgZnJvbSB0aGUgZ2VuZXJhdGVkIC5qcyBmaWxlIGJ1dCB5b3Ugc3RpbGxcbiAgICogIHdhbnQgdG8gZ2VuZXJhdGUgdGhlIC5qcy5tYXAgZmlsZXNcbiAgICovXG4gIEVYVEVSTkFMID0gXCJleHRlcm5hbFwiLFxuICAvKipcbiAgICogSW5saW5lIHNvdXJjZU1hcCBtb2RlIC0gSWYgeW91IHdhbnQgdG8gaW5zZXJ0IHRoZSBlbnRpcmUgc291cmNlIG1hcCBpbnRvIHRoZSAuanMgZmlsZSBpbnN0ZWFkIG9mIGdlbmVyYXRpbmcgYSBzZXBhcmF0ZSAuanMubWFwIGZpbGVcbiAgICovXG4gIElOTElORSA9IFwiaW5saW5lXCIsXG4gIC8qKlxuICAgKiBCb3RoIHNvdXJjZU1hcCBtb2RlIC0gSWYgeW91IHdhbnQgdG8gaGF2ZSB0aGUgZWZmZWN0IG9mIGJvdGggaW5saW5lIGFuZCBleHRlcm5hbCBzaW11bHRhbmVvdXNseVxuICAgKi9cbiAgQk9USCA9IFwiYm90aFwiLFxufVxuXG4vKipcbiAqIENoYXJzZXQgZm9yIGVzYnVpbGQncyBvdXRwdXRcbiAqL1xuZXhwb3J0IGVudW0gQ2hhcnNldCB7XG4gIC8qKlxuICAgKiBBU0NJSVxuICAgKlxuICAgKiBBbnkgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQgdXNpbmcgYmFja3NsYXNoIGVzY2FwZSBzZXF1ZW5jZXNcbiAgICovXG4gIEFTQ0lJID0gXCJhc2NpaVwiLFxuXG4gIC8qKlxuICAgKiBVVEYtOFxuICAgKlxuICAgKiBLZWVwIG9yaWdpbmFsIGNoYXJhY3RlcnMgd2l0aG91dCB1c2luZyBlc2NhcGUgc2VxdWVuY2VzXG4gICAqL1xuICBVVEY4ID0gXCJ1dGY4XCIsXG59XG5cbi8qKlxuICogTG9nIGxldmVscyBmb3IgZXNidWlsZCBhbmQgcGFja2FnZSBtYW5hZ2VycycgaW5zdGFsbCBjb21tYW5kcy5cbiAqL1xuZXhwb3J0IGVudW0gQnVuZGxlTG9nTGV2ZWwge1xuICAvKiogU2hvdyBldmVyeXRoaW5nICovXG4gIFZFUkJPU0UgPSBcInZlcmJvc2VcIixcbiAgLyoqIFNob3cgZXZlcnl0aGluZyBmcm9tIGluZm8gYW5kIHNvbWUgYWRkaXRpb25hbCBtZXNzYWdlcyBmb3IgZGVidWdnaW5nICovXG4gIERFQlVHID0gXCJkZWJ1Z1wiLFxuICAvKiogU2hvdyB3YXJuaW5ncywgZXJyb3JzLCBhbmQgYW4gb3V0cHV0IGZpbGUgc3VtbWFyeSAqL1xuICBJTkZPID0gXCJpbmZvXCIsXG4gIC8qKiBTaG93IHdhcm5pbmdzIGFuZCBlcnJvcnMgKi9cbiAgV0FSTklORyA9IFwid2FybmluZ1wiLFxuICAvKiogU2hvdyBlcnJvcnMgb25seSAqL1xuICBFUlJPUiA9IFwiZXJyb3JcIixcbiAgLyoqIFNob3cgbm90aGluZyAqL1xuICBTSUxFTlQgPSBcInNpbGVudFwiLFxufVxuIl19
@@ -10,7 +10,7 @@ const yaml_1 = require("../yaml");
10
10
  * Represents eslint configuration.
11
11
  */
12
12
  class Eslint extends component_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Eslint", version: "0.100.5" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Eslint", version: "0.100.7" };
14
14
  /**
15
15
  * Returns the singleton Eslint component of a project or undefined if there is none.
16
16
  */
@@ -45,7 +45,7 @@ const DEFAULT_TEST_REPORTS_DIR = "test-reports";
45
45
  class Transform {
46
46
  name;
47
47
  options;
48
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Transform", version: "0.100.5" };
48
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Transform", version: "0.100.7" };
49
49
  constructor(name, options) {
50
50
  this.name = name;
51
51
  this.options = options;
@@ -65,7 +65,7 @@ exports.Transform = Transform;
65
65
  class WatchPlugin {
66
66
  name;
67
67
  options;
68
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.WatchPlugin", version: "0.100.5" };
68
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.WatchPlugin", version: "0.100.7" };
69
69
  constructor(name, options) {
70
70
  this.name = name;
71
71
  this.options = options;
@@ -96,7 +96,7 @@ var UpdateSnapshot;
96
96
  class JestReporter {
97
97
  name;
98
98
  options;
99
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.JestReporter", version: "0.100.5" };
99
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.JestReporter", version: "0.100.7" };
100
100
  constructor(name, options) {
101
101
  this.name = name;
102
102
  this.options = options;
@@ -122,7 +122,7 @@ exports.JestReporter = JestReporter;
122
122
  *
123
123
  */
124
124
  class Jest extends component_1.Component {
125
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Jest", version: "0.100.5" };
125
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.Jest", version: "0.100.7" };
126
126
  /**
127
127
  * Returns the singleton Jest component of a project or undefined if there is none.
128
128
  */
@@ -8,7 +8,7 @@ const dependencies_1 = require("../dependencies");
8
8
  * Enforces allowed licenses used by dependencies.
9
9
  */
10
10
  class LicenseChecker extends component_1.Component {
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.LicenseChecker", version: "0.100.5" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.LicenseChecker", version: "0.100.7" };
12
12
  task;
13
13
  constructor(scope, options) {
14
14
  const taskName = options.taskName ?? "check-licenses";
@@ -32,19 +32,19 @@ class LicenseChecker extends component_1.Component {
32
32
  }
33
33
  if (allowedLicenses.length) {
34
34
  cmd.push("--onlyAllow");
35
- cmd.push(`"${allowedLicenses.join(";")}"`);
35
+ cmd.push(allowedLicenses.join(";"));
36
36
  }
37
37
  if (prohibitedLicenses.length) {
38
38
  cmd.push("--failOn");
39
- cmd.push(`"${prohibitedLicenses.join(";")}"`);
39
+ cmd.push(prohibitedLicenses.join(";"));
40
40
  }
41
41
  this.project.deps.addDependency("license-checker", dependencies_1.DependencyType.BUILD);
42
42
  this.task = this.project.addTask(taskName, {
43
- exec: cmd.join(" "),
43
+ execArgs: cmd,
44
44
  receiveArgs: true,
45
45
  });
46
46
  this.project.preCompileTask.spawn(this.task);
47
47
  }
48
48
  }
49
49
  exports.LicenseChecker = LicenseChecker;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS1jaGVja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvbGljZW5zZS1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBNkNqRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTOztJQUMzQixJQUFJLENBQU87SUFFM0IsWUFBbUIsS0FBZ0IsRUFBRSxPQUE4QjtRQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDO1FBQ3RELEtBQUssQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFM0MsTUFBTSxFQUNKLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLEtBQUssRUFBRSxlQUFlLEdBQUcsRUFBRSxFQUMzQixJQUFJLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxHQUM5QixHQUFHLE9BQU8sQ0FBQztRQUVaLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLGdGQUFnRixDQUNqRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRkFBK0YsQ0FDaEcsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRkFBK0YsQ0FDaEcsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTdDLElBQUksVUFBVSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxXQUFXLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM5QixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsNkJBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN6QyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbkIsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQXJESCx3Q0FzREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB0eXBlIHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5cbi8qKlxuICogT3B0aW9ucyB0byBjb25maWd1cmUgdGhlIGxpY2Vuc2UgY2hlY2tlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2VDaGVja2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGVjayBwcm9kdWN0aW9uIGRlcGVuZGVuY2llcy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZHVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrIGRldmVsb3BtZW50IGRlcGVuZGVuY2llcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRldmVsb3BtZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBGb3IgdGhlIGxpY2Vuc2UgY2hlY2sgdG8gcGFzcywgYWxsIGRldGVjdGVkIGxpY2Vuc2VzIE1VU1QgYmUgaW4gdGhpcyBsaXN0LlxuICAgKiBPbmx5IG9uZSBvZiBgYWxsb3dlZExpY2Vuc2VzYCBhbmQgYHByb2hpYml0ZWRMaWNlbnNlc2AgY2FuIGJlIHByb3ZpZGVkIGFuZCBtdXN0IG5vdCBiZSBlbXB0eS5cbiAgICogQGRlZmF1bHQgLSBubyBsaWNlbnNlcyBhcmUgYWxsb3dlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3c/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMgdGhhdCBhcmUgcHJvaGliaXRlZCB0byBiZSB1c2VkLlxuICAgKlxuICAgKiBGb3IgdGhlIGxpY2Vuc2UgY2hlY2sgdG8gcGFzcywgbm8gZGV0ZWN0ZWQgbGljZW5zZXMgY2FuIGJlIGluIHRoaXMgbGlzdC5cbiAgICogT25seSBvbmUgb2YgYGFsbG93ZWRMaWNlbnNlc2AgYW5kIGBwcm9oaWJpdGVkTGljZW5zZXNgIGNhbiBiZSBwcm92aWRlZCBhbmQgbXVzdCBub3QgYmUgZW1wdHkuXG4gICAqIEBkZWZhdWx0IC0gbm8gbGljZW5zZXMgYXJlIHByb2hpYml0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlbnk/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRhc2sgdGhhdCBpcyBhZGRlZCB0byBjaGVjayBsaWNlbnNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCBcImNoZWNrLWxpY2Vuc2VzXCJcbiAgICovXG4gIHJlYWRvbmx5IHRhc2tOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVuZm9yY2VzIGFsbG93ZWQgbGljZW5zZXMgdXNlZCBieSBkZXBlbmRlbmNpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaWNlbnNlQ2hlY2tlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSB0YXNrOiBUYXNrO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBvcHRpb25zOiBMaWNlbnNlQ2hlY2tlck9wdGlvbnMpIHtcbiAgICBjb25zdCB0YXNrTmFtZSA9IG9wdGlvbnMudGFza05hbWUgPz8gXCJjaGVjay1saWNlbnNlc1wiO1xuICAgIHN1cGVyKHNjb3BlLCBgTGljZW5zZUNoZWNrZXIjJHt0YXNrTmFtZX1gKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIHByb2R1Y3Rpb24gPSB0cnVlLFxuICAgICAgZGV2ZWxvcG1lbnQgPSBmYWxzZSxcbiAgICAgIGFsbG93OiBhbGxvd2VkTGljZW5zZXMgPSBbXSxcbiAgICAgIGRlbnk6IHByb2hpYml0ZWRMaWNlbnNlcyA9IFtdLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgaWYgKCFwcm9kdWN0aW9uICYmICFkZXZlbG9wbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkxpY2Vuc2VDaGVja2VyOiBBdCBsZWFzdCBvbmUgb2YgYHByb2R1Y3Rpb25gIG9yIGBkZXZlbG9wbWVudGAgbXVzdCBiZSBlbmFibGVkLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFhbGxvd2VkTGljZW5zZXMubGVuZ3RoICYmICFwcm9oaWJpdGVkTGljZW5zZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiTGljZW5zZUNoZWNrZXI6IE5laXRoZXIgYGFsbG93YCBub3IgYGRlbnlgIGZvdW5kLiBFeGFjdGx5IG9uZSBtdXN0IGJlIHByb3ZpZGVkIGFuZCBub3QgZW1wdHkuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoYWxsb3dlZExpY2Vuc2VzLmxlbmd0aCAmJiBwcm9oaWJpdGVkTGljZW5zZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiTGljZW5zZUNoZWNrZXI6IGBhbGxvd2AgYW5kIGBkZW55YCBjYW4gbm90IGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZS4gQ2hvb3NlIG9uZSBvciB0aGUgb3RoZXIuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNtZCA9IFtcImxpY2Vuc2UtY2hlY2tlclwiLCBcIi0tc3VtbWFyeVwiXTtcblxuICAgIGlmIChwcm9kdWN0aW9uICYmICFkZXZlbG9wbWVudCkge1xuICAgICAgY21kLnB1c2goXCItLXByb2R1Y3Rpb25cIik7XG4gICAgfVxuICAgIGlmIChkZXZlbG9wbWVudCAmJiAhcHJvZHVjdGlvbikge1xuICAgICAgY21kLnB1c2goXCItLWRldmVsb3BtZW50XCIpO1xuICAgIH1cbiAgICBpZiAoYWxsb3dlZExpY2Vuc2VzLmxlbmd0aCkge1xuICAgICAgY21kLnB1c2goXCItLW9ubHlBbGxvd1wiKTtcbiAgICAgIGNtZC5wdXNoKGBcIiR7YWxsb3dlZExpY2Vuc2VzLmpvaW4oXCI7XCIpfVwiYCk7XG4gICAgfVxuICAgIGlmIChwcm9oaWJpdGVkTGljZW5zZXMubGVuZ3RoKSB7XG4gICAgICBjbWQucHVzaChcIi0tZmFpbE9uXCIpO1xuICAgICAgY21kLnB1c2goYFwiJHtwcm9oaWJpdGVkTGljZW5zZXMuam9pbihcIjtcIil9XCJgKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KFwibGljZW5zZS1jaGVja2VyXCIsIERlcGVuZGVuY3lUeXBlLkJVSUxEKTtcbiAgICB0aGlzLnRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzayh0YXNrTmFtZSwge1xuICAgICAgZXhlYzogY21kLmpvaW4oXCIgXCIpLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLnNwYXduKHRoaXMudGFzayk7XG4gIH1cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS1jaGVja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvbGljZW5zZS1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSw0Q0FBeUM7QUFDekMsa0RBQWlEO0FBNkNqRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHFCQUFTOztJQUMzQixJQUFJLENBQU87SUFFM0IsWUFBbUIsS0FBZ0IsRUFBRSxPQUE4QjtRQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDO1FBQ3RELEtBQUssQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFM0MsTUFBTSxFQUNKLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLEtBQUssRUFBRSxlQUFlLEdBQUcsRUFBRSxFQUMzQixJQUFJLEVBQUUsa0JBQWtCLEdBQUcsRUFBRSxHQUM5QixHQUFHLE9BQU8sQ0FBQztRQUVaLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLGdGQUFnRixDQUNqRixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRkFBK0YsQ0FDaEcsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRkFBK0YsQ0FDaEcsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTdDLElBQUksVUFBVSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxXQUFXLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLDZCQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDekMsUUFBUSxFQUFFLEdBQUc7WUFDYixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBckRILHdDQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuLyoqXG4gKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgbGljZW5zZSBjaGVja2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZUNoZWNrZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIENoZWNrIHByb2R1Y3Rpb24gZGVwZW5kZW5jaWVzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwcm9kdWN0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2sgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2ZWxvcG1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIFNQRFggbGljZW5zZSBpZGVudGlmaWVycyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEZvciB0aGUgbGljZW5zZSBjaGVjayB0byBwYXNzLCBhbGwgZGV0ZWN0ZWQgbGljZW5zZXMgTVVTVCBiZSBpbiB0aGlzIGxpc3QuXG4gICAqIE9ubHkgb25lIG9mIGBhbGxvd2VkTGljZW5zZXNgIGFuZCBgcHJvaGliaXRlZExpY2Vuc2VzYCBjYW4gYmUgcHJvdmlkZWQgYW5kIG11c3Qgbm90IGJlIGVtcHR5LlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpY2Vuc2VzIGFyZSBhbGxvd2VkXG4gICAqL1xuICByZWFkb25seSBhbGxvdz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIFNQRFggbGljZW5zZSBpZGVudGlmaWVycyB0aGF0IGFyZSBwcm9oaWJpdGVkIHRvIGJlIHVzZWQuXG4gICAqXG4gICAqIEZvciB0aGUgbGljZW5zZSBjaGVjayB0byBwYXNzLCBubyBkZXRlY3RlZCBsaWNlbnNlcyBjYW4gYmUgaW4gdGhpcyBsaXN0LlxuICAgKiBPbmx5IG9uZSBvZiBgYWxsb3dlZExpY2Vuc2VzYCBhbmQgYHByb2hpYml0ZWRMaWNlbnNlc2AgY2FuIGJlIHByb3ZpZGVkIGFuZCBtdXN0IG5vdCBiZSBlbXB0eS5cbiAgICogQGRlZmF1bHQgLSBubyBsaWNlbnNlcyBhcmUgcHJvaGliaXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVueT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFzayB0aGF0IGlzIGFkZGVkIHRvIGNoZWNrIGxpY2Vuc2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiY2hlY2stbGljZW5zZXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGFza05hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW5mb3JjZXMgYWxsb3dlZCBsaWNlbnNlcyB1c2VkIGJ5IGRlcGVuZGVuY2llcy5cbiAqL1xuZXhwb3J0IGNsYXNzIExpY2Vuc2VDaGVja2VyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHRhc2s6IFRhc2s7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG9wdGlvbnM6IExpY2Vuc2VDaGVja2VyT3B0aW9ucykge1xuICAgIGNvbnN0IHRhc2tOYW1lID0gb3B0aW9ucy50YXNrTmFtZSA/PyBcImNoZWNrLWxpY2Vuc2VzXCI7XG4gICAgc3VwZXIoc2NvcGUsIGBMaWNlbnNlQ2hlY2tlciMke3Rhc2tOYW1lfWApO1xuXG4gICAgY29uc3Qge1xuICAgICAgcHJvZHVjdGlvbiA9IHRydWUsXG4gICAgICBkZXZlbG9wbWVudCA9IGZhbHNlLFxuICAgICAgYWxsb3c6IGFsbG93ZWRMaWNlbnNlcyA9IFtdLFxuICAgICAgZGVueTogcHJvaGliaXRlZExpY2Vuc2VzID0gW10sXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoIXByb2R1Y3Rpb24gJiYgIWRldmVsb3BtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiTGljZW5zZUNoZWNrZXI6IEF0IGxlYXN0IG9uZSBvZiBgcHJvZHVjdGlvbmAgb3IgYGRldmVsb3BtZW50YCBtdXN0IGJlIGVuYWJsZWQuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWFsbG93ZWRMaWNlbnNlcy5sZW5ndGggJiYgIXByb2hpYml0ZWRMaWNlbnNlcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJMaWNlbnNlQ2hlY2tlcjogTmVpdGhlciBgYWxsb3dgIG5vciBgZGVueWAgZm91bmQuIEV4YWN0bHkgb25lIG11c3QgYmUgcHJvdmlkZWQgYW5kIG5vdCBlbXB0eS5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChhbGxvd2VkTGljZW5zZXMubGVuZ3RoICYmIHByb2hpYml0ZWRMaWNlbnNlcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJMaWNlbnNlQ2hlY2tlcjogYGFsbG93YCBhbmQgYGRlbnlgIGNhbiBub3QgYmUgdXNlZCBhdCB0aGUgc2FtZSB0aW1lLiBDaG9vc2Ugb25lIG9yIHRoZSBvdGhlci5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgY21kID0gW1wibGljZW5zZS1jaGVja2VyXCIsIFwiLS1zdW1tYXJ5XCJdO1xuXG4gICAgaWYgKHByb2R1Y3Rpb24gJiYgIWRldmVsb3BtZW50KSB7XG4gICAgICBjbWQucHVzaChcIi0tcHJvZHVjdGlvblwiKTtcbiAgICB9XG4gICAgaWYgKGRldmVsb3BtZW50ICYmICFwcm9kdWN0aW9uKSB7XG4gICAgICBjbWQucHVzaChcIi0tZGV2ZWxvcG1lbnRcIik7XG4gICAgfVxuICAgIGlmIChhbGxvd2VkTGljZW5zZXMubGVuZ3RoKSB7XG4gICAgICBjbWQucHVzaChcIi0tb25seUFsbG93XCIpO1xuICAgICAgY21kLnB1c2goYWxsb3dlZExpY2Vuc2VzLmpvaW4oXCI7XCIpKTtcbiAgICB9XG4gICAgaWYgKHByb2hpYml0ZWRMaWNlbnNlcy5sZW5ndGgpIHtcbiAgICAgIGNtZC5wdXNoKFwiLS1mYWlsT25cIik7XG4gICAgICBjbWQucHVzaChwcm9oaWJpdGVkTGljZW5zZXMuam9pbihcIjtcIikpO1xuICAgIH1cblxuICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koXCJsaWNlbnNlLWNoZWNrZXJcIiwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuICAgIHRoaXMudGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKHRhc2tOYW1lLCB7XG4gICAgICBleGVjQXJnczogY21kLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLnNwYXduKHRoaXMudGFzayk7XG4gIH1cbn1cbiJdfQ==
@@ -76,7 +76,7 @@ var CodeArtifactAuthProvider;
76
76
  * Represents the npm `package.json` file.
77
77
  */
78
78
  class NodePackage extends component_1.Component {
79
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodePackage", version: "0.100.5" };
79
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.javascript.NodePackage", version: "0.100.7" };
80
80
  /**
81
81
  * Returns the `NodePackage` instance associated with a project or `undefined` if
82
82
  * there is no NodePackage.