projen 0.78.9 → 0.78.10

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 (146) hide show
  1. package/.jsii +1126 -555
  2. package/lib/awscdk/auto-discover.js +5 -5
  3. package/lib/awscdk/awscdk-app-java.js +1 -1
  4. package/lib/awscdk/awscdk-app-py.js +1 -1
  5. package/lib/awscdk/awscdk-app-ts.js +1 -1
  6. package/lib/awscdk/awscdk-construct.js +2 -2
  7. package/lib/awscdk/awscdk-deps-java.js +1 -1
  8. package/lib/awscdk/awscdk-deps-js.js +1 -1
  9. package/lib/awscdk/awscdk-deps-py.js +1 -1
  10. package/lib/awscdk/awscdk-deps.js +1 -1
  11. package/lib/awscdk/cdk-config.js +1 -1
  12. package/lib/awscdk/cdk-tasks.js +1 -1
  13. package/lib/awscdk/integration-test.js +1 -1
  14. package/lib/awscdk/lambda-extension.js +1 -1
  15. package/lib/awscdk/lambda-function.js +2 -2
  16. package/lib/build/build-workflow.js +4 -6
  17. package/lib/cdk/auto-discover-base.js +2 -2
  18. package/lib/cdk/construct-lib.js +1 -1
  19. package/lib/cdk/integration-test-base.js +1 -1
  20. package/lib/cdk/jsii-docgen.js +1 -1
  21. package/lib/cdk/jsii-project.js +1 -1
  22. package/lib/cdk8s/auto-discover.js +2 -2
  23. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  24. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s/cdk8s-construct.js +1 -1
  26. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps.js +1 -1
  28. package/lib/cdk8s/integration-test.js +1 -1
  29. package/lib/cdktf/cdktf-construct.js +1 -1
  30. package/lib/circleci/circleci.js +1 -1
  31. package/lib/component.js +1 -1
  32. package/lib/dependencies.js +1 -1
  33. package/lib/dev-env.js +1 -1
  34. package/lib/docker-compose/docker-compose-service.js +1 -1
  35. package/lib/docker-compose/docker-compose.js +1 -1
  36. package/lib/file.js +1 -1
  37. package/lib/gitattributes.js +1 -1
  38. package/lib/github/actions-provider.js +1 -1
  39. package/lib/github/auto-approve.js +1 -1
  40. package/lib/github/auto-merge.js +1 -1
  41. package/lib/github/dependabot.js +1 -1
  42. package/lib/github/github-credentials.js +1 -1
  43. package/lib/github/github-project.js +1 -1
  44. package/lib/github/github.js +1 -1
  45. package/lib/github/index.d.ts +1 -0
  46. package/lib/github/index.js +2 -1
  47. package/lib/github/mergify.js +1 -1
  48. package/lib/github/pr-template.js +1 -1
  49. package/lib/github/pull-request-lint.js +1 -1
  50. package/lib/github/stale.js +1 -1
  51. package/lib/github/task-workflow-job.d.ts +132 -0
  52. package/lib/github/task-workflow-job.js +98 -0
  53. package/lib/github/task-workflow.d.ts +6 -85
  54. package/lib/github/task-workflow.js +7 -51
  55. package/lib/github/workflow-actions.js +4 -5
  56. package/lib/github/workflow-jobs.js +1 -1
  57. package/lib/github/workflow-steps.d.ts +51 -18
  58. package/lib/github/workflow-steps.js +26 -5
  59. package/lib/github/workflows-model.d.ts +35 -14
  60. package/lib/github/workflows-model.js +1 -1
  61. package/lib/github/workflows.js +1 -1
  62. package/lib/gitlab/configuration.js +1 -1
  63. package/lib/gitlab/gitlab-configuration.js +1 -1
  64. package/lib/gitlab/nested-configuration.js +1 -1
  65. package/lib/gitpod.js +1 -1
  66. package/lib/ignore-file.js +1 -1
  67. package/lib/ini.js +1 -1
  68. package/lib/java/java-project.js +1 -1
  69. package/lib/java/junit.js +1 -1
  70. package/lib/java/maven-compile.js +1 -1
  71. package/lib/java/maven-packaging.js +1 -1
  72. package/lib/java/maven-sample.js +1 -1
  73. package/lib/java/pom.js +1 -1
  74. package/lib/java/projenrc.js +1 -1
  75. package/lib/javascript/bundler.js +1 -1
  76. package/lib/javascript/eslint.js +1 -1
  77. package/lib/javascript/jest.js +4 -4
  78. package/lib/javascript/license-checker.js +1 -1
  79. package/lib/javascript/node-package.js +1 -1
  80. package/lib/javascript/node-project.d.ts +12 -2
  81. package/lib/javascript/node-project.js +17 -4
  82. package/lib/javascript/npm-config.js +1 -1
  83. package/lib/javascript/prettier.js +1 -1
  84. package/lib/javascript/projenrc.js +1 -1
  85. package/lib/javascript/typescript-config.js +2 -2
  86. package/lib/javascript/upgrade-dependencies.js +2 -2
  87. package/lib/javascript/yarnrc.js +1 -1
  88. package/lib/json-patch.js +1 -1
  89. package/lib/json.js +1 -1
  90. package/lib/license.js +1 -1
  91. package/lib/logger.js +1 -1
  92. package/lib/makefile.js +1 -1
  93. package/lib/object-file.js +1 -1
  94. package/lib/project-build.js +1 -1
  95. package/lib/project-tree.js +1 -1
  96. package/lib/project.js +8 -4
  97. package/lib/projects.js +1 -1
  98. package/lib/projenrc-json.js +2 -2
  99. package/lib/projenrc.js +1 -1
  100. package/lib/python/pip.js +1 -1
  101. package/lib/python/poetry.js +2 -2
  102. package/lib/python/projenrc.js +1 -1
  103. package/lib/python/pytest-sample.js +1 -1
  104. package/lib/python/pytest.js +1 -1
  105. package/lib/python/python-project.js +1 -1
  106. package/lib/python/python-sample.js +1 -1
  107. package/lib/python/requirements-file.js +1 -1
  108. package/lib/python/setuppy.js +1 -1
  109. package/lib/python/setuptools.js +1 -1
  110. package/lib/python/venv.js +1 -1
  111. package/lib/readme.js +1 -1
  112. package/lib/release/publisher.js +1 -1
  113. package/lib/release/release-trigger.js +1 -1
  114. package/lib/release/release.d.ts +9 -4
  115. package/lib/release/release.js +55 -26
  116. package/lib/renovatebot.js +1 -1
  117. package/lib/runner-options.d.ts +1 -1
  118. package/lib/runner-options.js +1 -1
  119. package/lib/sample-file.js +2 -2
  120. package/lib/semver.js +1 -1
  121. package/lib/source-code.js +1 -1
  122. package/lib/task-runtime.js +1 -1
  123. package/lib/task.js +1 -1
  124. package/lib/tasks.js +1 -1
  125. package/lib/testing.js +1 -1
  126. package/lib/textfile.js +1 -1
  127. package/lib/toml.js +1 -1
  128. package/lib/typescript/projenrc-ts.js +1 -1
  129. package/lib/typescript/projenrc.js +1 -1
  130. package/lib/typescript/typescript-typedoc.js +1 -1
  131. package/lib/typescript/typescript.js +6 -6
  132. package/lib/util/path.d.ts +8 -0
  133. package/lib/util/path.js +21 -0
  134. package/lib/version.js +2 -2
  135. package/lib/vscode/devcontainer.js +1 -1
  136. package/lib/vscode/extensions.js +1 -1
  137. package/lib/vscode/launch-config.js +1 -1
  138. package/lib/vscode/settings.js +1 -1
  139. package/lib/vscode/vscode.js +1 -1
  140. package/lib/web/next.js +3 -3
  141. package/lib/web/postcss.js +1 -1
  142. package/lib/web/react.js +4 -4
  143. package/lib/web/tailwind.js +1 -1
  144. package/lib/xmlfile.js +1 -1
  145. package/lib/yaml.js +1 -1
  146. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { GitIdentity } from "./task-workflow";
2
- import { JobStep } from "./workflows-model";
2
+ import { JobStepConfiguration, JobStep } from "./workflows-model";
3
3
  /**
4
4
  * A collection of very commonly used, individual, GitHub Workflow Job steps.
5
5
  */
@@ -17,23 +17,10 @@ export declare class WorkflowSteps {
17
17
  * @returns Job steps
18
18
  */
19
19
  static setupGitIdentity(options: SetupGitIdentityOptions): JobStep;
20
- private static _buildCommonWorkflowSteps;
20
+ static uploadArtifact(options: UploadArtifactOptions): JobStep;
21
+ private static buildJobStepConfig;
21
22
  }
22
- export interface CommonWorkflowStepOptions {
23
- /**
24
- * A unique identifier for the step.
25
- */
26
- readonly id?: string;
27
- /**
28
- * A condition to determine whether to run this step.
29
- */
30
- readonly if?: string;
31
- /**
32
- * The name of the step.
33
- */
34
- readonly name?: string;
35
- }
36
- export interface CheckoutOptions extends CommonWorkflowStepOptions {
23
+ export interface CheckoutOptions extends JobStepConfiguration {
37
24
  /**
38
25
  * Options for `checkout`.
39
26
  */
@@ -74,9 +61,55 @@ export interface CheckoutWith {
74
61
  */
75
62
  readonly token?: string;
76
63
  }
77
- export interface SetupGitIdentityOptions extends CommonWorkflowStepOptions {
64
+ export interface SetupGitIdentityOptions extends JobStepConfiguration {
78
65
  /**
79
66
  * The identity to use.
80
67
  */
81
68
  readonly gitIdentity: GitIdentity;
82
69
  }
70
+ export interface UploadArtifactWith {
71
+ /**
72
+ * Name of the artifact to upload.
73
+ *
74
+ * @default "artifact"
75
+ */
76
+ readonly name?: string;
77
+ /**
78
+ * A file, directory or wildcard pattern that describes what to upload
79
+ */
80
+ readonly path: string;
81
+ /**
82
+ * The desired behavior if no files are found using the provided path.
83
+ * Available Options:
84
+ * warn: Output a warning but do not fail the action
85
+ * error: Fail the action with an error message
86
+ * ignore: Do not output any warnings or errors, the action does not fail
87
+ *
88
+ * @default "warn"
89
+ */
90
+ readonly ifNoFilesFound?: "error" | "warn" | "ignore";
91
+ /**
92
+ * Duration after which artifact will expire in days. 0 means using default repository retention.
93
+ *
94
+ * Minimum 1 day.
95
+ * Maximum 90 days unless changed from the repository settings page.
96
+ *
97
+ * @default - The default repository retention
98
+ */
99
+ readonly retentionDays?: number;
100
+ /**
101
+ * The level of compression for Zlib to be applied to the artifact archive.
102
+ *
103
+ * The value can range from 0 to 9.
104
+ * For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
105
+ *
106
+ * @default 6
107
+ */
108
+ readonly compressionLevel?: number;
109
+ }
110
+ export interface UploadArtifactOptions extends JobStepConfiguration {
111
+ /**
112
+ * Options for `upload-artifact`.
113
+ */
114
+ readonly with: UploadArtifactWith;
115
+ }
@@ -23,7 +23,7 @@ class WorkflowSteps {
23
23
  ...(options?.with?.lfs ? { lfs: true } : {}),
24
24
  });
25
25
  return {
26
- ...this._buildCommonWorkflowSteps({
26
+ ...this.buildJobStepConfig({
27
27
  ...options,
28
28
  name: options.name ?? "Checkout",
29
29
  }),
@@ -38,7 +38,7 @@ class WorkflowSteps {
38
38
  */
39
39
  static setupGitIdentity(options) {
40
40
  return {
41
- ...this._buildCommonWorkflowSteps({
41
+ ...this.buildJobStepConfig({
42
42
  ...options,
43
43
  name: options.name ?? "Set git identity",
44
44
  }),
@@ -48,15 +48,36 @@ class WorkflowSteps {
48
48
  ].join("\n"),
49
49
  };
50
50
  }
51
- static _buildCommonWorkflowSteps(options) {
51
+ static uploadArtifact(options) {
52
+ const uploadArtifactWith = (0, object_1.removeNullOrUndefinedProperties)({
53
+ name: options?.with?.name,
54
+ path: options?.with?.path,
55
+ "if-no-files-found": options?.with?.ifNoFilesFound,
56
+ "retention-days": options?.with?.retentionDays,
57
+ "compression-level": options?.with?.compressionLevel,
58
+ });
59
+ return {
60
+ ...this.buildJobStepConfig({
61
+ ...options,
62
+ name: options.name ?? "Upload artifact",
63
+ }),
64
+ uses: "actions/upload-artifact@v3",
65
+ with: uploadArtifactWith,
66
+ };
67
+ }
68
+ static buildJobStepConfig(options) {
52
69
  return {
70
+ continueOnError: options?.continueOnError,
71
+ env: options?.env,
53
72
  id: options?.id,
54
73
  if: options?.if,
55
74
  name: options?.name,
75
+ timeoutMinutes: options?.timeoutMinutes,
76
+ workingDirectory: options?.workingDirectory,
56
77
  };
57
78
  }
58
79
  }
59
80
  exports.WorkflowSteps = WorkflowSteps;
60
81
  _a = JSII_RTTI_SYMBOL_1;
61
- WorkflowSteps[_a] = { fqn: "projen.github.WorkflowSteps", version: "0.78.9" };
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc3RlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL3dvcmtmbG93LXN0ZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsMkNBQWlFO0FBRWpFOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUEyQixFQUFFO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUEsd0NBQStCLEVBQUM7WUFDbkQsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVTtZQUN4QyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLO1lBQzNCLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUc7WUFDdkIsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVTtZQUNyQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0MsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO2dCQUNoQyxHQUFHLE9BQU87Z0JBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksVUFBVTthQUNqQyxDQUFDO1lBQ0YsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQWdDO1FBQzdELE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztnQkFDaEMsR0FBRyxPQUFPO2dCQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLGtCQUFrQjthQUN6QyxDQUFDO1lBQ0YsR0FBRyxFQUFFO2dCQUNILHlCQUF5QixPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRztnQkFDcEQsMEJBQTBCLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHO2FBQ3ZELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNiLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLHlCQUF5QixDQUN0QyxPQUFrQztRQUVsQyxPQUFPO1lBQ0wsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJO1NBQ3BCLENBQUM7SUFDSixDQUFDOztBQXBESCxzQ0FxREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRJZGVudGl0eSB9IGZyb20gXCIuL3Rhc2std29ya2Zsb3dcIjtcbmltcG9ydCB7IEpvYlN0ZXAgfSBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IHJlbW92ZU51bGxPclVuZGVmaW5lZFByb3BlcnRpZXMgfSBmcm9tIFwiLi4vdXRpbC9vYmplY3RcIjtcblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2YgdmVyeSBjb21tb25seSB1c2VkLCBpbmRpdmlkdWFsLCBHaXRIdWIgV29ya2Zsb3cgSm9iIHN0ZXBzLlxuICovXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dTdGVwcyB7XG4gIC8qKlxuICAgKiBDaGVja3Mgb3V0IGEgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKiBAcmV0dXJucyBKb2Igc3RlcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2hlY2tvdXQob3B0aW9uczogQ2hlY2tvdXRPcHRpb25zID0ge30pOiBKb2JTdGVwIHtcbiAgICBjb25zdCBjaGVja291dFdpdGggPSByZW1vdmVOdWxsT3JVbmRlZmluZWRQcm9wZXJ0aWVzKHtcbiAgICAgIFwiZmV0Y2gtZGVwdGhcIjogb3B0aW9ucz8ud2l0aD8uZmV0Y2hEZXB0aCxcbiAgICAgIHRva2VuOiBvcHRpb25zPy53aXRoPy50b2tlbixcbiAgICAgIHJlZjogb3B0aW9ucz8ud2l0aD8ucmVmLFxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucz8ud2l0aD8ucmVwb3NpdG9yeSxcbiAgICAgIC4uLihvcHRpb25zPy53aXRoPy5sZnMgPyB7IGxmczogdHJ1ZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuX2J1aWxkQ29tbW9uV29ya2Zsb3dTdGVwcyh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSA/PyBcIkNoZWNrb3V0XCIsXG4gICAgICB9KSxcbiAgICAgIHVzZXM6IFwiYWN0aW9ucy9jaGVja291dEB2M1wiLFxuICAgICAgd2l0aDogT2JqZWN0LmtleXMoY2hlY2tvdXRXaXRoKS5sZW5ndGggPiAwID8gY2hlY2tvdXRXaXRoIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgZ2l0IGlkZW50aXR5ICh1c2VyIG5hbWUgYW5kIGVtYWlsKS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyB0byBjb25maWd1cmUgdGhlIGdpdCBpZGVudGl0eSBKb2JTdGVwXG4gICAqIEByZXR1cm5zIEpvYiBzdGVwc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzZXR1cEdpdElkZW50aXR5KG9wdGlvbnM6IFNldHVwR2l0SWRlbnRpdHlPcHRpb25zKTogSm9iU3RlcCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuX2J1aWxkQ29tbW9uV29ya2Zsb3dTdGVwcyh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSA/PyBcIlNldCBnaXQgaWRlbnRpdHlcIixcbiAgICAgIH0pLFxuICAgICAgcnVuOiBbXG4gICAgICAgIGBnaXQgY29uZmlnIHVzZXIubmFtZSBcIiR7b3B0aW9ucy5naXRJZGVudGl0eS5uYW1lfVwiYCxcbiAgICAgICAgYGdpdCBjb25maWcgdXNlci5lbWFpbCBcIiR7b3B0aW9ucy5naXRJZGVudGl0eS5lbWFpbH1cImAsXG4gICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9idWlsZENvbW1vbldvcmtmbG93U3RlcHMoXG4gICAgb3B0aW9uczogQ29tbW9uV29ya2Zsb3dTdGVwT3B0aW9uc1xuICApOiBKb2JTdGVwIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG9wdGlvbnM/LmlkLFxuICAgICAgaWY6IG9wdGlvbnM/LmlmLFxuICAgICAgbmFtZTogb3B0aW9ucz8ubmFtZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uV29ya2Zsb3dTdGVwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3RlcC5cbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbmRpdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlciB0byBydW4gdGhpcyBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgaWY/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVja291dE9wdGlvbnMgZXh0ZW5kcyBDb21tb25Xb3JrZmxvd1N0ZXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIGBjaGVja291dGAuXG4gICAqL1xuICByZWFkb25seSB3aXRoPzogQ2hlY2tvdXRXaXRoO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBjaGVja291dGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tvdXRXaXRoIHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBjb21taXRzIHRvIGZldGNoLiAwIGluZGljYXRlcyBhbGwgaGlzdG9yeSBmb3IgYWxsIGJyYW5jaGVzIGFuZCB0YWdzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBmZXRjaERlcHRoPzogbnVtYmVyO1xuICAvKipcbiAgICogV2hldGhlciBMRlMgaXMgZW5hYmxlZCBmb3IgdGhlIEdpdEh1YiByZXBvc2l0b3J5XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsZnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggb3IgdGFnIG5hbWUuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgYnJhbmNoIGlzIGltcGxpY2l0bHkgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVmPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSAob3duZXIvcmVwbykgdG8gdXNlLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHJlcG9zaXRvcnkgaXMgaW1wbGljaXRseSB1c2VkXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEdpdEh1YiB0b2tlbiB0byB1c2Ugd2hlbiBjaGVja2luZyBvdXQgdGhlIHJlcG9zaXRvcnkuXG4gICAqXG4gICAqIElmIHRoZSBpbnRlbnQgaXMgdG8gcHVzaCBjaGFuZ2VzIGJhY2sgdG8gdGhlIGJyYW5jaCwgdGhlbiB5b3UgbXVzdCB1c2UgYVxuICAgKiBQQVQgd2l0aCBgcmVwb2AgKGFuZCBwb3NzaWJseSBgd29ya2Zsb3dzYCkgcGVybWlzc2lvbnMuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgR0lUSFVCX1RPS0VOIGlzIGltcGxpY2l0bHkgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dXBHaXRJZGVudGl0eU9wdGlvbnMgZXh0ZW5kcyBDb21tb25Xb3JrZmxvd1N0ZXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGl0eSB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBnaXRJZGVudGl0eTogR2l0SWRlbnRpdHk7XG59XG4iXX0=
82
+ WorkflowSteps[_a] = { fqn: "projen.github.WorkflowSteps", version: "0.78.10" };
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc3RlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0aHViL3dvcmtmbG93LXN0ZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsMkNBQWlFO0FBRWpFOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUEyQixFQUFFO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUEsd0NBQStCLEVBQUM7WUFDbkQsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVTtZQUN4QyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLO1lBQzNCLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUc7WUFDdkIsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVTtZQUNyQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0MsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUN6QixHQUFHLE9BQU87Z0JBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksVUFBVTthQUNqQyxDQUFDO1lBQ0YsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDdEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQWdDO1FBQzdELE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekIsR0FBRyxPQUFPO2dCQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLGtCQUFrQjthQUN6QyxDQUFDO1lBQ0YsR0FBRyxFQUFFO2dCQUNILHlCQUF5QixPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRztnQkFDcEQsMEJBQTBCLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHO2FBQ3ZELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNiLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUN6RCxNQUFNLGtCQUFrQixHQUN0QixJQUFBLHdDQUErQixFQUFDO1lBQzlCLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDekIsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWM7WUFDbEQsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhO1lBQzlDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCO1NBQ3JELENBQUMsQ0FBQztRQUVMLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekIsR0FBRyxPQUFPO2dCQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLGlCQUFpQjthQUN4QyxDQUFDO1lBQ0YsSUFBSSxFQUFFLDRCQUE0QjtZQUNsQyxJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUMvQixPQUE2QjtRQUU3QixPQUFPO1lBQ0wsZUFBZSxFQUFFLE9BQU8sRUFBRSxlQUFlO1lBQ3pDLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRztZQUNqQixFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDZixFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUk7WUFDbkIsY0FBYyxFQUFFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0I7U0FDNUMsQ0FBQztJQUNKLENBQUM7O0FBNUVILHNDQTZFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdpdElkZW50aXR5IH0gZnJvbSBcIi4vdGFzay13b3JrZmxvd1wiO1xuaW1wb3J0IHsgSm9iU3RlcENvbmZpZ3VyYXRpb24sIEpvYlN0ZXAgfSBmcm9tIFwiLi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IHJlbW92ZU51bGxPclVuZGVmaW5lZFByb3BlcnRpZXMgfSBmcm9tIFwiLi4vdXRpbC9vYmplY3RcIjtcblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2YgdmVyeSBjb21tb25seSB1c2VkLCBpbmRpdmlkdWFsLCBHaXRIdWIgV29ya2Zsb3cgSm9iIHN0ZXBzLlxuICovXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dTdGVwcyB7XG4gIC8qKlxuICAgKiBDaGVja3Mgb3V0IGEgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKiBAcmV0dXJucyBKb2Igc3RlcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2hlY2tvdXQob3B0aW9uczogQ2hlY2tvdXRPcHRpb25zID0ge30pOiBKb2JTdGVwIHtcbiAgICBjb25zdCBjaGVja291dFdpdGggPSByZW1vdmVOdWxsT3JVbmRlZmluZWRQcm9wZXJ0aWVzKHtcbiAgICAgIFwiZmV0Y2gtZGVwdGhcIjogb3B0aW9ucz8ud2l0aD8uZmV0Y2hEZXB0aCxcbiAgICAgIHRva2VuOiBvcHRpb25zPy53aXRoPy50b2tlbixcbiAgICAgIHJlZjogb3B0aW9ucz8ud2l0aD8ucmVmLFxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucz8ud2l0aD8ucmVwb3NpdG9yeSxcbiAgICAgIC4uLihvcHRpb25zPy53aXRoPy5sZnMgPyB7IGxmczogdHJ1ZSB9IDoge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuYnVpbGRKb2JTdGVwQ29uZmlnKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lID8/IFwiQ2hlY2tvdXRcIixcbiAgICAgIH0pLFxuICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0QHYzXCIsXG4gICAgICB3aXRoOiBPYmplY3Qua2V5cyhjaGVja291dFdpdGgpLmxlbmd0aCA+IDAgPyBjaGVja291dFdpdGggOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBnaXQgaWRlbnRpdHkgKHVzZXIgbmFtZSBhbmQgZW1haWwpLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgZ2l0IGlkZW50aXR5IEpvYlN0ZXBcbiAgICogQHJldHVybnMgSm9iIHN0ZXBzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNldHVwR2l0SWRlbnRpdHkob3B0aW9uczogU2V0dXBHaXRJZGVudGl0eU9wdGlvbnMpOiBKb2JTdGVwIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5idWlsZEpvYlN0ZXBDb25maWcoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUgPz8gXCJTZXQgZ2l0IGlkZW50aXR5XCIsXG4gICAgICB9KSxcbiAgICAgIHJ1bjogW1xuICAgICAgICBgZ2l0IGNvbmZpZyB1c2VyLm5hbWUgXCIke29wdGlvbnMuZ2l0SWRlbnRpdHkubmFtZX1cImAsXG4gICAgICAgIGBnaXQgY29uZmlnIHVzZXIuZW1haWwgXCIke29wdGlvbnMuZ2l0SWRlbnRpdHkuZW1haWx9XCJgLFxuICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHVwbG9hZEFydGlmYWN0KG9wdGlvbnM6IFVwbG9hZEFydGlmYWN0T3B0aW9ucyk6IEpvYlN0ZXAge1xuICAgIGNvbnN0IHVwbG9hZEFydGlmYWN0V2l0aDogVXBsb2FkQXJ0aWZhY3RXaXRoID1cbiAgICAgIHJlbW92ZU51bGxPclVuZGVmaW5lZFByb3BlcnRpZXMoe1xuICAgICAgICBuYW1lOiBvcHRpb25zPy53aXRoPy5uYW1lLFxuICAgICAgICBwYXRoOiBvcHRpb25zPy53aXRoPy5wYXRoLFxuICAgICAgICBcImlmLW5vLWZpbGVzLWZvdW5kXCI6IG9wdGlvbnM/LndpdGg/LmlmTm9GaWxlc0ZvdW5kLFxuICAgICAgICBcInJldGVudGlvbi1kYXlzXCI6IG9wdGlvbnM/LndpdGg/LnJldGVudGlvbkRheXMsXG4gICAgICAgIFwiY29tcHJlc3Npb24tbGV2ZWxcIjogb3B0aW9ucz8ud2l0aD8uY29tcHJlc3Npb25MZXZlbCxcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuYnVpbGRKb2JTdGVwQ29uZmlnKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lID8/IFwiVXBsb2FkIGFydGlmYWN0XCIsXG4gICAgICB9KSxcbiAgICAgIHVzZXM6IFwiYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAdjNcIixcbiAgICAgIHdpdGg6IHVwbG9hZEFydGlmYWN0V2l0aCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRKb2JTdGVwQ29uZmlnKFxuICAgIG9wdGlvbnM6IEpvYlN0ZXBDb25maWd1cmF0aW9uXG4gICk6IEpvYlN0ZXBDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGludWVPbkVycm9yOiBvcHRpb25zPy5jb250aW51ZU9uRXJyb3IsXG4gICAgICBlbnY6IG9wdGlvbnM/LmVudixcbiAgICAgIGlkOiBvcHRpb25zPy5pZCxcbiAgICAgIGlmOiBvcHRpb25zPy5pZixcbiAgICAgIG5hbWU6IG9wdGlvbnM/Lm5hbWUsXG4gICAgICB0aW1lb3V0TWludXRlczogb3B0aW9ucz8udGltZW91dE1pbnV0ZXMsXG4gICAgICB3b3JraW5nRGlyZWN0b3J5OiBvcHRpb25zPy53b3JraW5nRGlyZWN0b3J5LFxuICAgIH07XG4gIH1cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tvdXRPcHRpb25zIGV4dGVuZHMgSm9iU3RlcENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgYGNoZWNrb3V0YC5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGg/OiBDaGVja291dFdpdGg7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYGNoZWNrb3V0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja291dFdpdGgge1xuICAvKipcbiAgICogTnVtYmVyIG9mIGNvbW1pdHMgdG8gZmV0Y2guIDAgaW5kaWNhdGVzIGFsbCBoaXN0b3J5IGZvciBhbGwgYnJhbmNoZXMgYW5kIHRhZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGZldGNoRGVwdGg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIExGUyBpcyBlbmFibGVkIGZvciB0aGUgR2l0SHViIHJlcG9zaXRvcnlcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxmcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBvciB0YWcgbmFtZS5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBicmFuY2ggaXMgaW1wbGljaXRseSB1c2VkXG4gICAqL1xuICByZWFkb25seSByZWY/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IChvd25lci9yZXBvKSB0byB1c2UuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgcmVwb3NpdG9yeSBpcyBpbXBsaWNpdGx5IHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgR2l0SHViIHRva2VuIHRvIHVzZSB3aGVuIGNoZWNraW5nIG91dCB0aGUgcmVwb3NpdG9yeS5cbiAgICpcbiAgICogSWYgdGhlIGludGVudCBpcyB0byBwdXNoIGNoYW5nZXMgYmFjayB0byB0aGUgYnJhbmNoLCB0aGVuIHlvdSBtdXN0IHVzZSBhXG4gICAqIFBBVCB3aXRoIGByZXBvYCAoYW5kIHBvc3NpYmx5IGB3b3JrZmxvd3NgKSBwZXJtaXNzaW9ucy5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBHSVRIVUJfVE9LRU4gaXMgaW1wbGljaXRseSB1c2VkXG4gICAqL1xuICByZWFkb25seSB0b2tlbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXR1cEdpdElkZW50aXR5T3B0aW9ucyBleHRlbmRzIEpvYlN0ZXBDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBpZGVudGl0eSB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBnaXRJZGVudGl0eTogR2l0SWRlbnRpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkQXJ0aWZhY3RXaXRoIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGFydGlmYWN0IHRvIHVwbG9hZC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJhcnRpZmFjdFwiXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGZpbGUsIGRpcmVjdG9yeSBvciB3aWxkY2FyZCBwYXR0ZXJuIHRoYXQgZGVzY3JpYmVzIHdoYXQgdG8gdXBsb2FkXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNpcmVkIGJlaGF2aW9yIGlmIG5vIGZpbGVzIGFyZSBmb3VuZCB1c2luZyB0aGUgcHJvdmlkZWQgcGF0aC5cbiAgICogQXZhaWxhYmxlIE9wdGlvbnM6XG4gICAqICAgd2FybjogT3V0cHV0IGEgd2FybmluZyBidXQgZG8gbm90IGZhaWwgdGhlIGFjdGlvblxuICAgKiAgIGVycm9yOiBGYWlsIHRoZSBhY3Rpb24gd2l0aCBhbiBlcnJvciBtZXNzYWdlXG4gICAqICAgaWdub3JlOiBEbyBub3Qgb3V0cHV0IGFueSB3YXJuaW5ncyBvciBlcnJvcnMsIHRoZSBhY3Rpb24gZG9lcyBub3QgZmFpbFxuICAgKlxuICAgKiBAZGVmYXVsdCBcIndhcm5cIlxuICAgKi9cbiAgcmVhZG9ubHkgaWZOb0ZpbGVzRm91bmQ/OiBcImVycm9yXCIgfCBcIndhcm5cIiB8IFwiaWdub3JlXCI7XG5cbiAgLyoqXG4gICAqIER1cmF0aW9uIGFmdGVyIHdoaWNoIGFydGlmYWN0IHdpbGwgZXhwaXJlIGluIGRheXMuIDAgbWVhbnMgdXNpbmcgZGVmYXVsdCByZXBvc2l0b3J5IHJldGVudGlvbi5cbiAgICpcbiAgICogTWluaW11bSAxIGRheS5cbiAgICogTWF4aW11bSA5MCBkYXlzIHVubGVzcyBjaGFuZ2VkIGZyb20gdGhlIHJlcG9zaXRvcnkgc2V0dGluZ3MgcGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgZGVmYXVsdCByZXBvc2l0b3J5IHJldGVudGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxldmVsIG9mIGNvbXByZXNzaW9uIGZvciBabGliIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGFydGlmYWN0IGFyY2hpdmUuXG4gICAqXG4gICAqIFRoZSB2YWx1ZSBjYW4gcmFuZ2UgZnJvbSAwIHRvIDkuXG4gICAqIEZvciBsYXJnZSBmaWxlcyB0aGF0IGFyZSBub3QgZWFzaWx5IGNvbXByZXNzZWQsIGEgdmFsdWUgb2YgMCBpcyByZWNvbW1lbmRlZCBmb3Igc2lnbmlmaWNhbnRseSBmYXN0ZXIgdXBsb2Fkcy5cbiAgICpcbiAgICogQGRlZmF1bHQgNlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3Npb25MZXZlbD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRBcnRpZmFjdE9wdGlvbnMgZXh0ZW5kcyBKb2JTdGVwQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBgdXBsb2FkLWFydGlmYWN0YC5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGg6IFVwbG9hZEFydGlmYWN0V2l0aDtcbn1cbiJdfQ==
@@ -316,9 +316,12 @@ export interface RunSettings {
316
316
  readonly workingDirectory?: string;
317
317
  }
318
318
  /**
319
- * A generic step
319
+ * Fields that describe the How, Why, When, and Who of a Step.
320
+ * These fields can have none present, but can be present on every Step, and have no effect on one another.
321
+ *
322
+ * This stands in contrast to the Command (non-Configuration) fields, which are mutually exclusive, and describe the What.
320
323
  */
321
- export interface Step {
324
+ export interface StepConfiguration {
322
325
  /**
323
326
  * A unique identifier for the step. You can use the id to reference the
324
327
  * step in contexts.
@@ -334,6 +337,26 @@ export interface Step {
334
337
  * A name for your step to display on GitHub.
335
338
  */
336
339
  readonly name?: string;
340
+ /**
341
+ * Sets environment variables for steps to use in the runner environment.
342
+ * You can also set environment variables for the entire workflow or a job.
343
+ */
344
+ readonly env?: Record<string, string>;
345
+ /**
346
+ * Specifies a working directory for a step.
347
+ * Overrides a job's working directory.
348
+ */
349
+ readonly workingDirectory?: string;
350
+ }
351
+ /**
352
+ * This contains the fields that are common amongst both:
353
+ * - JobStep, which is a step that is part of a Job in Github Actions. This is by far the most common use case.
354
+ * - The metadata file `action.yaml` that is used to define an Action when you are creating one. As in, if you were creating an Action to be used in a JobStep.
355
+ * There is some overlap between the two, and this captures that overlap.
356
+ *
357
+ * @see https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions
358
+ */
359
+ export interface Step extends StepConfiguration {
337
360
  /**
338
361
  * Selects an action to run as part of a step in your job. An action is a
339
362
  * reusable unit of code. You can use an action defined in the same
@@ -353,21 +376,12 @@ export interface Step {
353
376
  * The variable is prefixed with INPUT_ and converted to upper case.
354
377
  */
355
378
  readonly with?: Record<string, any>;
356
- /**
357
- * Sets environment variables for steps to use in the runner environment.
358
- * You can also set environment variables for the entire workflow or a job.
359
- */
360
- readonly env?: Record<string, string>;
361
- /**
362
- * Specifies a working directory for a step.
363
- * Overrides a job's working directory.
364
- */
365
- readonly workingDirectory?: string;
366
379
  }
367
380
  /**
368
- * A job step
381
+ * These settings are unique to a JobStep from the fields contained within the metadata action.yaml file present in when creating a new GitHub Action.
382
+ * These fields are not present in action.yml, but are in JobStep, which are using when creating workflows.
369
383
  */
370
- export interface JobStep extends Step {
384
+ export interface JobStepConfiguration extends StepConfiguration {
371
385
  /**
372
386
  * Prevents a job from failing when a step fails. Set to true to allow a job
373
387
  * to pass when this step fails.
@@ -378,6 +392,13 @@ export interface JobStep extends Step {
378
392
  */
379
393
  readonly timeoutMinutes?: number;
380
394
  }
395
+ /**
396
+ * JobSteps run as part of a GitHub Workflow Job.
397
+ *
398
+ * @see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsteps
399
+ */
400
+ export interface JobStep extends Step, JobStepConfiguration {
401
+ }
381
402
  /**
382
403
  * A strategy creates a build matrix for your jobs. You can define different
383
404
  * variations to run each job in.
@@ -31,4 +31,4 @@ var AppPermission;
31
31
  AppPermission["ADMIN"] = "admin";
32
32
  })(AppPermission || (exports.AppPermission = AppPermission = {}));
33
33
  //#endregion
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3dzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVGQUF1Rjs7O0FBZ1N2Rjs7R0FFRztBQUNILElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix1QkFBdUI7SUFDdkIsOEJBQWEsQ0FBQTtJQUViLHdCQUF3QjtJQUN4QixnQ0FBZSxDQUFBO0lBRWYsdUJBQXVCO0lBQ3ZCLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBVFcsYUFBYSw2QkFBYixhQUFhLFFBU3hCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGFBV1g7QUFYRCxXQUFZLGFBQWE7SUFDdkIsd0JBQXdCO0lBQ3hCLDhCQUFhLENBQUE7SUFDYix3QkFBd0I7SUFDeEIsZ0NBQWUsQ0FBQTtJQUNmOzs7O09BSUc7SUFDSCxnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFYVyxhQUFhLDZCQUFiLGFBQWEsUUFXeEI7QUFvNkJELFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvcmVmZXJlbmNlL3dvcmtmbG93LXN5bnRheC1mb3ItZ2l0aHViLWFjdGlvbnNcblxuaW1wb3J0IHsgR3JvdXBSdW5uZXJPcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uSm9iRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iIGRpc3BsYXllZCBvbiBHaXRIdWIuXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGFueSBqb2JzIHRoYXQgbXVzdCBjb21wbGV0ZSBzdWNjZXNzZnVsbHkgYmVmb3JlIHRoaXMgam9iIHdpbGxcbiAgICogcnVuLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncy4gSWYgYSBqb2IgZmFpbHMsIGFsbCBqb2JzXG4gICAqIHRoYXQgbmVlZCBpdCBhcmUgc2tpcHBlZCB1bmxlc3MgdGhlIGpvYnMgdXNlIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvblxuICAgKiB0aGF0IGNhdXNlcyB0aGUgam9iIHRvIGNvbnRpbnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmVlZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogWW91IGNhbiBtb2RpZnkgdGhlIGRlZmF1bHQgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUgR0lUSFVCX1RPS0VOLCBhZGRpbmdcbiAgICogb3IgcmVtb3ZpbmcgYWNjZXNzIGFzIHJlcXVpcmVkLCBzbyB0aGF0IHlvdSBvbmx5IGFsbG93IHRoZSBtaW5pbXVtIHJlcXVpcmVkXG4gICAqIGFjY2Vzcy5cbiAgICpcbiAgICogVXNlIGB7IGNvbnRlbnRzOiBSRUFEIH1gIGlmIHlvdXIgam9iIG9ubHkgbmVlZHMgdG8gY2xvbmUgY29kZS5cbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbnRpb25hbGx5IGEgcmVxdWlyZWQgZmllbGQgc2luY2UgaXQgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG9cbiAgICogYWxsb3cgd29ya2Zsb3dzIHRvIHJ1biBpbiBHaXRIdWIgcmVwb3NpdG9yaWVzIHdpdGggcmVzdHJpY3RlZCBkZWZhdWx0XG4gICAqIGFjY2Vzcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3JlZmVyZW5jZS9hdXRoZW50aWNhdGlvbi1pbi1hLXdvcmtmbG93I3Blcm1pc3Npb25zLWZvci10aGUtZ2l0aHViX3Rva2VuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uczogSm9iUGVybWlzc2lvbnM7XG5cbiAgLyoqXG4gICAqIENvbmN1cnJlbmN5IGVuc3VyZXMgdGhhdCBvbmx5IGEgc2luZ2xlIGpvYiBvciB3b3JrZmxvdyB1c2luZyB0aGUgc2FtZVxuICAgKiBjb25jdXJyZW5jeSBncm91cCB3aWxsIHJ1biBhdCBhIHRpbWUuIEEgY29uY3VycmVuY3kgZ3JvdXAgY2FuIGJlIGFueVxuICAgKiBzdHJpbmcgb3IgZXhwcmVzc2lvbi4gVGhlIGV4cHJlc3Npb24gY2FuIHVzZSBhbnkgY29udGV4dCBleGNlcHQgZm9yIHRoZVxuICAgKiBzZWNyZXRzIGNvbnRleHQuXG4gICAqXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogdW5rbm93bjtcblxuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhlIGlmIGNvbmRpdGlvbmFsIHRvIHByZXZlbnQgYSBqb2IgZnJvbSBydW5uaW5nIHVubGVzcyBhXG4gICAqIGNvbmRpdGlvbiBpcyBtZXQuIFlvdSBjYW4gdXNlIGFueSBzdXBwb3J0ZWQgY29udGV4dCBhbmQgZXhwcmVzc2lvbiB0b1xuICAgKiBjcmVhdGUgYSBjb25kaXRpb25hbC5cbiAgICovXG4gIHJlYWRvbmx5IGlmPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0cmF0ZWd5IGNyZWF0ZXMgYSBidWlsZCBtYXRyaXggZm9yIHlvdXIgam9icy4gWW91IGNhbiBkZWZpbmUgZGlmZmVyZW50XG4gICAqIHZhcmlhdGlvbnMgdG8gcnVuIGVhY2ggam9iIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBKb2JTdHJhdGVneTtcbn1cblxuLyoqXG4gKiBBIEdpdEh1YiBXb3JrZmxvdyBKb2IgY2FsbGluZyBhIHJldXNhYmxlIHdvcmtmbG93XG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYkNhbGxpbmdSZXVzYWJsZVdvcmtmbG93IGV4dGVuZHMgQ29tbW9uSm9iRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gYW5kIHZlcnNpb24gb2YgYSByZXVzYWJsZSB3b3JrZmxvdyBmaWxlIHRvIHJ1biBhcyBhIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXM6IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiBhIGpvYiBpcyB1c2VkIHRvIGNhbGwgYSByZXVzYWJsZSB3b3JrZmxvdywgeW91IGNhbiB1c2Ugd2l0aCB0b1xuICAgKiBwcm92aWRlIGEgbWFwIG9mIGlucHV0cyB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlIGNhbGxlZCB3b3JrZmxvdy5cbiAgICpcbiAgICogQWxsb3dlZCBleHByZXNzaW9uIGNvbnRleHRzOiBgZ2l0aHViYCwgYW5kIGBuZWVkc2AuXG4gICAqL1xuICByZWFkb25seSB3aXRoPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBqb2IgaXMgdXNlZCB0byBjYWxsIGEgcmV1c2FibGUgd29ya2Zsb3csIHlvdSBjYW4gdXNlIHNlY3JldHMgdG9cbiAgICogcHJvdmlkZSBhIG1hcCBvZiBzZWNyZXRzIHRoYXQgYXJlIHBhc3NlZCB0byB0aGUgY2FsbGVkIHdvcmtmbG93LlxuICAgKlxuICAgKiBVc2UgdGhlICdpbmhlcml0JyBrZXl3b3JkIHRvIHBhc3MgYWxsIHRoZSBjYWxsaW5nIHdvcmtmbG93J3Mgc2VjcmV0cyB0byB0aGUgY2FsbGVkIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBBIEdpdEh1YiBXb3JrZmxvdyBqb2IgZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2IgZXh0ZW5kcyBDb21tb25Kb2JEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIG1hY2hpbmUgdG8gcnVuIHRoZSBqb2Igb24uIFRoZSBtYWNoaW5lIGNhbiBiZSBlaXRoZXIgYVxuICAgKiBHaXRIdWItaG9zdGVkIHJ1bm5lciBvciBhIHNlbGYtaG9zdGVkIHJ1bm5lci5cbiAgICpcbiAgICogQGV4YW1wbGUgW1widWJ1bnR1LWxhdGVzdFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVuc09uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdpdGh1YiBSdW5uZXIgR3JvdXAgc2VsZWN0aW9uIG9wdGlvbnNcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgYSB0YXJnZXQgUnVubmVyIEdyb3VwIGJ5IG5hbWUgYW5kL29yIGxhYmVsc1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgYm90aCBgcnVuc09uYCBhbmQgYHJ1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBydW5zT25Hcm91cD86IEdyb3VwUnVubmVyT3B0aW9ucztcblxuICAvKipcbiAgICogQSBqb2IgY29udGFpbnMgYSBzZXF1ZW5jZSBvZiB0YXNrcyBjYWxsZWQgc3RlcHMuIFN0ZXBzIGNhbiBydW4gY29tbWFuZHMsXG4gICAqIHJ1biBzZXR1cCB0YXNrcywgb3IgcnVuIGFuIGFjdGlvbiBpbiB5b3VyIHJlcG9zaXRvcnksIGEgcHVibGljIHJlcG9zaXRvcnksXG4gICAqIG9yIGFuIGFjdGlvbiBwdWJsaXNoZWQgaW4gYSBEb2NrZXIgcmVnaXN0cnkuIE5vdCBhbGwgc3RlcHMgcnVuIGFjdGlvbnMsXG4gICAqIGJ1dCBhbGwgYWN0aW9ucyBydW4gYXMgYSBzdGVwLiBFYWNoIHN0ZXAgcnVucyBpbiBpdHMgb3duIHByb2Nlc3MgaW4gdGhlXG4gICAqIHJ1bm5lciBlbnZpcm9ubWVudCBhbmQgaGFzIGFjY2VzcyB0byB0aGUgd29ya3NwYWNlIGFuZCBmaWxlc3lzdGVtLlxuICAgKiBCZWNhdXNlIHN0ZXBzIHJ1biBpbiB0aGVpciBvd24gcHJvY2VzcywgY2hhbmdlcyB0byBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICogYXJlIG5vdCBwcmVzZXJ2ZWQgYmV0d2VlbiBzdGVwcy4gR2l0SHViIHByb3ZpZGVzIGJ1aWx0LWluIHN0ZXBzIHRvIHNldCB1cFxuICAgKiBhbmQgY29tcGxldGUgYSBqb2IuXG4gICAqL1xuICByZWFkb25seSBzdGVwczogSm9iU3RlcFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdGhhdCB0aGUgam9iIHJlZmVyZW5jZXMuIEFsbCBlbnZpcm9ubWVudCBwcm90ZWN0aW9uIHJ1bGVzXG4gICAqIG11c3QgcGFzcyBiZWZvcmUgYSBqb2IgcmVmZXJlbmNpbmcgdGhlIGVudmlyb25tZW50IGlzIHNlbnQgdG8gYSBydW5uZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9yZWZlcmVuY2UvZW52aXJvbm1lbnRzXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHVua25vd247XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIG91dHB1dHMgZm9yIGEgam9iLiBKb2Igb3V0cHV0cyBhcmUgYXZhaWxhYmxlIHRvIGFsbCBkb3duc3RyZWFtXG4gICAqIGpvYnMgdGhhdCBkZXBlbmQgb24gdGhpcyBqb2IuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgSm9iU3RlcE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8gYWxsIHN0ZXBzIGluIHRoZVxuICAgKiBqb2IuIFlvdSBjYW4gYWxzbyBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZW50aXJlIHdvcmtmbG93IG9yIGFuXG4gICAqIGluZGl2aWR1YWwgc3RlcC5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCB3aWxsIGFwcGx5IHRvIGFsbCBzdGVwcyBpbiB0aGUgam9iLiBZb3VcbiAgICogY2FuIGFsc28gc2V0IGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoZSBlbnRpcmUgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0cz86IEpvYkRlZmF1bHRzO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWludXRlcyB0byBsZXQgYSBqb2IgcnVuIGJlZm9yZSBHaXRIdWJcbiAgICogYXV0b21hdGljYWxseSBjYW5jZWxzIGl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAzNjBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRNaW51dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQcmV2ZW50cyBhIHdvcmtmbG93IHJ1biBmcm9tIGZhaWxpbmcgd2hlbiBhIGpvYiBmYWlscy4gU2V0IHRvIHRydWUgdG9cbiAgICogYWxsb3cgYSB3b3JrZmxvdyBydW4gdG8gcGFzcyB3aGVuIHRoaXMgam9iIGZhaWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBjb250YWluZXIgdG8gcnVuIGFueSBzdGVwcyBpbiBhIGpvYiB0aGF0IGRvbid0IGFscmVhZHkgc3BlY2lmeSBhXG4gICAqIGNvbnRhaW5lci4gSWYgeW91IGhhdmUgc3RlcHMgdGhhdCB1c2UgYm90aCBzY3JpcHQgYW5kIGNvbnRhaW5lciBhY3Rpb25zLFxuICAgKiB0aGUgY29udGFpbmVyIGFjdGlvbnMgd2lsbCBydW4gYXMgc2libGluZyBjb250YWluZXJzIG9uIHRoZSBzYW1lIG5ldHdvcmtcbiAgICogd2l0aCB0aGUgc2FtZSB2b2x1bWUgbW91bnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyPzogQ29udGFpbmVyT3B0aW9ucztcblxuICAvKipcbiAgICogVXNlZCB0byBob3N0IHNlcnZpY2UgY29udGFpbmVycyBmb3IgYSBqb2IgaW4gYSB3b3JrZmxvdy4gU2VydmljZVxuICAgKiBjb250YWluZXJzIGFyZSB1c2VmdWwgZm9yIGNyZWF0aW5nIGRhdGFiYXNlcyBvciBjYWNoZSBzZXJ2aWNlcyBsaWtlIFJlZGlzLlxuICAgKiBUaGUgcnVubmVyIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIERvY2tlciBuZXR3b3JrIGFuZCBtYW5hZ2VzIHRoZSBsaWZlXG4gICAqIGN5Y2xlIG9mIHRoZSBzZXJ2aWNlIGNvbnRhaW5lcnMuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlcz86IFJlY29yZDxzdHJpbmcsIENvbnRhaW5lck9wdGlvbnM+O1xuXG4gIC8qKlxuICAgKiBUb29scyByZXF1aXJlZCBmb3IgdGhpcyBqb2IuIFRyYW5zbGF0ZXMgaW50byBgYWN0aW9ucy9zZXR1cC14eHhgIHN0ZXBzIGF0XG4gICAqIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2xzPzogVG9vbHM7XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIHRvb2xzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xzIHtcbiAgLyoqXG4gICAqIFNldHVwIGphdmEgKHRlbXVyaW4gZGlzdHJpYnV0aW9uKS5cbiAgICogQGRlZmF1bHQgLSBub3QgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBqYXZhPzogVG9vbFJlcXVpcmVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXR1cCBweXRob24uXG4gICAqIEBkZWZhdWx0IC0gbm90IGluc3RhbGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHl0aG9uPzogVG9vbFJlcXVpcmVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXR1cCBnb2xhbmcuXG4gICAqIEBkZWZhdWx0IC0gbm90IGluc3RhbGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgZ28/OiBUb29sUmVxdWlyZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFNldHVwIG5vZGUuanNcbiAgICogQGRlZmF1bHQgLSBub3QgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBub2RlPzogVG9vbFJlcXVpcmVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXR1cCAuTkVUIENvcmVcbiAgICogQGRlZmF1bHQgLSBub3QgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBkb3RuZXQ/OiBUb29sUmVxdWlyZW1lbnQ7XG59XG5cbi8qKlxuICogVmVyc2lvbiByZXF1aXJlbWVudCBmb3IgdG9vbHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbFJlcXVpcmVtZW50IHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBhdmFpbGFibGUgc2NvcGVzIGFuZCBhY2Nlc3MgdmFsdWVzIGZvciB3b3JrZmxvdyBwZXJtaXNzaW9ucy4gSWYgeW91XG4gKiBzcGVjaWZ5IHRoZSBhY2Nlc3MgZm9yIGFueSBvZiB0aGVzZSBzY29wZXMsIGFsbCB0aG9zZSB0aGF0IGFyZSBub3RcbiAqIHNwZWNpZmllZCBhcmUgc2V0IHRvIGBKb2JQZXJtaXNzaW9uLk5PTkVgLCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGJlaGF2aW9yXG4gKiB3aGVuIG5vbmUgaXMgc3BlY2lmaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYlBlcm1pc3Npb25zIHtcbiAgcmVhZG9ubHkgYWN0aW9ucz86IEpvYlBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNoZWNrcz86IEpvYlBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNvbnRlbnRzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgZGVwbG95bWVudHM/OiBKb2JQZXJtaXNzaW9uO1xuICByZWFkb25seSBpZFRva2VuPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgaXNzdWVzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgZGlzY3Vzc2lvbnM/OiBKb2JQZXJtaXNzaW9uO1xuICByZWFkb25seSBwYWNrYWdlcz86IEpvYlBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHBhZ2VzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgcmVwb3NpdG9yeVByb2plY3RzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc2VjdXJpdHlFdmVudHM/OiBKb2JQZXJtaXNzaW9uO1xuICByZWFkb25seSBzdGF0dXNlcz86IEpvYlBlcm1pc3Npb247XG59XG5cbi8qKlxuICogVGhlIHBlcm1pc3Npb25zIGF2YWlsYWJsZSB0byBhIEdpdEh1YiBBcHAuXG4gKlxuICogVHlwaWNhbGx5IGEgdG9rZW4gZm9yIGEgR2l0SHViIEFwcCBoYXMgYWxsIHRoZSBhdmFpbGFibGUgc2NvcGVzL3Blcm1pc3Npb25zIGF2YWlsYWJsZSB0byB0aGUgYXBwXG4gKiBpdHNlbGY7IGhvd2V2ZXIsIGEgbW9yZSBsaW1pdGVkIHNldCBvZiBwZXJtaXNzaW9ucyBjYW4gYmUgc3BlY2lmaWVkLiBXaGVuIHBlcm1pc3Npb25zIGFyZSBwcm92aWRlZCxcbiAqICoqb25seSoqIHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQgdG8gdGhlIHRva2VuLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vcmVzdC9hcHBzL2FwcHM/YXBpVmVyc2lvbj0yMDIyLTExLTI4I2NyZWF0ZS1hbi1pbnN0YWxsYXRpb24tYWNjZXNzLXRva2VuLWZvci1hbi1hcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBQZXJtaXNzaW9ucyB7XG4gIHJlYWRvbmx5IGFjdGlvbnM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBhZG1pbmlzdHJhdGlvbj86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNoZWNrcz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNvbnRlbnRzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgZGVwbG95bWVudHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBlbnZpcm9ubWVudHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBpc3N1ZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHBhY2thZ2VzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgcGFnZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBwdWxsUmVxdWVzdHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSByZXBvc2l0b3J5QW5ub3VuY2VtZW50QmFubmVycz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlIb29rcz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlQcm9qZWN0PzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc2VjcmV0U2Nhbm5pbmdBbGVydHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBzZWNyZXRzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc2VjdXJpdHlFdmVudHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBzaW5nbGVGaWxlPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc3RhdHVzZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSB2dWxuZXJhYmlsaXR5QWxlcnRzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgd29ya2Zsb3dzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgbWVtYmVycz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbkFkbWluaXN0cmF0aW9uPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uQ3VzdG9tUm9sZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25Bbm5vdW5jZW1lbnRCYW5uZXJzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uSG9va3M/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25QbGFuPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uUHJvamVjdHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25QYWNrYWdlcz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvblNlY3JldHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25TZWxmSG9zdGVkUnVubmVycz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IG9yZ25haXphdGlvblVzZXJCbG9ja2luZz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHRlYW1EaXNjdXNzaW9ucz86IEFwcFBlcm1pc3Npb247XG59XG5cbi8qKlxuICogQWNjZXNzIGxldmVsIGZvciB3b3JrZmxvdyBwZXJtaXNzaW9uIHNjb3Blcy5cbiAqL1xuZXhwb3J0IGVudW0gSm9iUGVybWlzc2lvbiB7XG4gIC8qKiBSZWFkLW9ubHkgYWNjZXNzICovXG4gIFJFQUQgPSBcInJlYWRcIixcblxuICAvKiogUmVhZC13cml0ZSBhY2Nlc3MgKi9cbiAgV1JJVEUgPSBcIndyaXRlXCIsXG5cbiAgLyoqIE5vIGFjY2VzcyBhdCBhbGwgKi9cbiAgTk9ORSA9IFwibm9uZVwiLFxufVxuXG4vKipcbiAqIFRoZSBwZXJtaXNzaW9ucyBhdmFpbGFibGUgZm9yIGFuIGFjY2VzcyB0b2tlbiBmb3IgYSBHaXRIdWIgQXBwLlxuICovXG5leHBvcnQgZW51bSBBcHBQZXJtaXNzaW9uIHtcbiAgLyoqIFJlYWQtb25seSBhY2NjZXNzICovXG4gIFJFQUQgPSBcInJlYWRcIixcbiAgLyoqIFJlYWQtd3JpdGUgYWNjZXNzICovXG4gIFdSSVRFID0gXCJ3cml0ZVwiLFxuICAvKipcbiAgICogUmVhZC13cml0ZSBhbmQgYWRtaW4gYWNjZXNzLlxuICAgKlxuICAgKiBOb3QgYWxsIHBlcm1pc3Npb25zIHN1cHBvcnQgYGFkbWluYC5cbiAgICovXG4gIEFETUlOID0gXCJhZG1pblwiLFxufVxuXG4vKipcbiAqIEFuIG91dHB1dCBiaW5kaW5nIGZvciBhIGpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JTdGVwT3V0cHV0IHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3RlcCB0aGF0IGV4cG9zZXMgdGhlIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iIG91dHB1dCB0aGF0IGlzIGJlaW5nIGJvdW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBzdGVwcyBpbiB0aGUgam9iLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYkRlZmF1bHRzIHtcbiAgLyoqIERlZmF1bHQgcnVuIHNldHRpbmdzLiAqL1xuICByZWFkb25seSBydW4/OiBSdW5TZXR0aW5ncztcbn1cblxuLyoqXG4gKiBSdW4gc2V0dGluZ3MgZm9yIGEgam9iLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1blNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFdoaWNoIHNoZWxsIHRvIHVzZSBmb3IgcnVubmluZyB0aGUgc3RlcC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJiYXNoXCJcbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JraW5nIGRpcmVjdG9yeSB0byB1c2Ugd2hlbiBydW5uaW5nIHRoZSBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGdlbmVyaWMgc3RlcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXAge1xuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0ZXAuIFlvdSBjYW4gdXNlIHRoZSBpZCB0byByZWZlcmVuY2UgdGhlXG4gICAqIHN0ZXAgaW4gY29udGV4dHMuXG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhlIGlmIGNvbmRpdGlvbmFsIHRvIHByZXZlbnQgYSBqb2IgZnJvbSBydW5uaW5nIHVubGVzcyBhXG4gICAqIGNvbmRpdGlvbiBpcyBtZXQuIFlvdSBjYW4gdXNlIGFueSBzdXBwb3J0ZWQgY29udGV4dCBhbmQgZXhwcmVzc2lvbiB0b1xuICAgKiBjcmVhdGUgYSBjb25kaXRpb25hbC5cbiAgICovXG4gIHJlYWRvbmx5IGlmPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHlvdXIgc3RlcCB0byBkaXNwbGF5IG9uIEdpdEh1Yi5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYW4gYWN0aW9uIHRvIHJ1biBhcyBwYXJ0IG9mIGEgc3RlcCBpbiB5b3VyIGpvYi4gQW4gYWN0aW9uIGlzIGFcbiAgICogcmV1c2FibGUgdW5pdCBvZiBjb2RlLiBZb3UgY2FuIHVzZSBhbiBhY3Rpb24gZGVmaW5lZCBpbiB0aGUgc2FtZVxuICAgKiByZXBvc2l0b3J5IGFzIHRoZSB3b3JrZmxvdywgYSBwdWJsaWMgcmVwb3NpdG9yeSwgb3IgaW4gYSBwdWJsaXNoZWQgRG9ja2VyXG4gICAqIGNvbnRhaW5lciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1bnMgY29tbWFuZC1saW5lIHByb2dyYW1zIHVzaW5nIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3Mgc2hlbGwuIElmIHlvdSBkb1xuICAgKiBub3QgcHJvdmlkZSBhIG5hbWUsIHRoZSBzdGVwIG5hbWUgd2lsbCBkZWZhdWx0IHRvIHRoZSB0ZXh0IHNwZWNpZmllZCBpblxuICAgKiB0aGUgcnVuIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBydW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGRlZmluZWQgYnkgdGhlIGFjdGlvbi4gRWFjaCBpbnB1dCBwYXJhbWV0ZXJcbiAgICogaXMgYSBrZXkvdmFsdWUgcGFpci4gSW5wdXQgcGFyYW1ldGVycyBhcmUgc2V0IGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICogVGhlIHZhcmlhYmxlIGlzIHByZWZpeGVkIHdpdGggSU5QVVRfIGFuZCBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZS5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGg/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBTZXRzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3Igc3RlcHMgdG8gdXNlIGluIHRoZSBydW5uZXIgZW52aXJvbm1lbnQuXG4gICAqIFlvdSBjYW4gYWxzbyBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZW50aXJlIHdvcmtmbG93IG9yIGEgam9iLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgd29ya2luZyBkaXJlY3RvcnkgZm9yIGEgc3RlcC5cbiAgICogT3ZlcnJpZGVzIGEgam9iJ3Mgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgam9iIHN0ZXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JTdGVwIGV4dGVuZHMgU3RlcCB7XG4gIC8qKlxuICAgKiBQcmV2ZW50cyBhIGpvYiBmcm9tIGZhaWxpbmcgd2hlbiBhIHN0ZXAgZmFpbHMuIFNldCB0byB0cnVlIHRvIGFsbG93IGEgam9iXG4gICAqIHRvIHBhc3Mgd2hlbiB0aGlzIHN0ZXAgZmFpbHMuXG4gICAqL1xuICByZWFkb25seSBjb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWludXRlcyB0byBydW4gdGhlIHN0ZXAgYmVmb3JlIGtpbGxpbmcgdGhlIHByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0TWludXRlcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIHN0cmF0ZWd5IGNyZWF0ZXMgYSBidWlsZCBtYXRyaXggZm9yIHlvdXIgam9icy4gWW91IGNhbiBkZWZpbmUgZGlmZmVyZW50XG4gKiB2YXJpYXRpb25zIHRvIHJ1biBlYWNoIGpvYiBpbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBZb3UgY2FuIGRlZmluZSBhIG1hdHJpeCBvZiBkaWZmZXJlbnQgam9iIGNvbmZpZ3VyYXRpb25zLiBBIG1hdHJpeCBhbGxvd3NcbiAgICogeW91IHRvIGNyZWF0ZSBtdWx0aXBsZSBqb2JzIGJ5IHBlcmZvcm1pbmcgdmFyaWFibGUgc3Vic3RpdHV0aW9uIGluIGFcbiAgICogc2luZ2xlIGpvYiBkZWZpbml0aW9uLiBGb3IgZXhhbXBsZSwgeW91IGNhbiB1c2UgYSBtYXRyaXggdG8gY3JlYXRlIGpvYnNcbiAgICogZm9yIG1vcmUgdGhhbiBvbmUgc3VwcG9ydGVkIHZlcnNpb24gb2YgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgb3BlcmF0aW5nXG4gICAqIHN5c3RlbSwgb3IgdG9vbC4gQSBtYXRyaXggcmV1c2VzIHRoZSBqb2IncyBjb25maWd1cmF0aW9uIGFuZCBjcmVhdGVzIGFcbiAgICogam9iIGZvciBlYWNoIG1hdHJpeCB5b3UgY29uZmlndXJlLlxuICAgKlxuICAgKiBBIGpvYiBtYXRyaXggY2FuIGdlbmVyYXRlIGEgbWF4aW11bSBvZiAyNTYgam9icyBwZXIgd29ya2Zsb3cgcnVuLiBUaGlzXG4gICAqIGxpbWl0IGFsc28gYXBwbGllcyB0byBzZWxmLWhvc3RlZCBydW5uZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF0cml4PzogSm9iTWF0cml4O1xuXG4gIC8qKlxuICAgKiBXaGVuIHNldCB0byB0cnVlLCBHaXRIdWIgY2FuY2VscyBhbGwgaW4tcHJvZ3Jlc3Mgam9icyBpZiBhbnkgbWF0cml4IGpvYlxuICAgKiBmYWlscy4gRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbEZhc3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygam9icyB0aGF0IGNhbiBydW4gc2ltdWx0YW5lb3VzbHkgd2hlbiB1c2luZyBhXG4gICAqIG1hdHJpeCBqb2Igc3RyYXRlZ3kuIEJ5IGRlZmF1bHQsIEdpdEh1YiB3aWxsIG1heGltaXplIHRoZSBudW1iZXIgb2Ygam9ic1xuICAgKiBydW4gaW4gcGFyYWxsZWwgZGVwZW5kaW5nIG9uIHRoZSBhdmFpbGFibGUgcnVubmVycyBvbiBHaXRIdWItaG9zdGVkXG4gICAqIHZpcnR1YWwgbWFjaGluZXMuXG4gICAqL1xuICByZWFkb25seSBtYXhQYXJhbGxlbD86IG51bWJlcjtcbn1cblxudHlwZSBKb2JNYXRyaXhWYWx1ZSA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XG5cbi8qKlxuICogQSBqb2IgbWF0cml4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYk1hdHJpeCB7XG4gIC8qKlxuICAgKiBFYWNoIG9wdGlvbiB5b3UgZGVmaW5lIGluIHRoZSBtYXRyaXggaGFzIGEga2V5IGFuZCB2YWx1ZS4gVGhlIGtleXMgeW91XG4gICAqIGRlZmluZSBiZWNvbWUgcHJvcGVydGllcyBpbiB0aGUgbWF0cml4IGNvbnRleHQgYW5kIHlvdSBjYW4gcmVmZXJlbmNlIHRoZVxuICAgKiBwcm9wZXJ0eSBpbiBvdGhlciBhcmVhcyBvZiB5b3VyIHdvcmtmbG93IGZpbGUuIEZvciBleGFtcGxlLCBpZiB5b3UgZGVmaW5lXG4gICAqIHRoZSBrZXkgb3MgdGhhdCBjb250YWlucyBhbiBhcnJheSBvZiBvcGVyYXRpbmcgc3lzdGVtcywgeW91IGNhbiB1c2UgdGhlXG4gICAqIG1hdHJpeC5vcyBwcm9wZXJ0eSBhcyB0aGUgdmFsdWUgb2YgdGhlIHJ1bnMtb24ga2V5d29yZCB0byBjcmVhdGUgYSBqb2JcbiAgICogZm9yIGVhY2ggb3BlcmF0aW5nIHN5c3RlbS5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbj86IFJlY29yZDxzdHJpbmcsIEpvYk1hdHJpeFZhbHVlW10+O1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIGFkZCBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBhIGJ1aWxkIG1hdHJpeCBqb2IgdGhhdFxuICAgKiBhbHJlYWR5IGV4aXN0cy4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIHVzZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgbnBtXG4gICAqIHdoZW4gdGhlIGpvYiB0aGF0IHVzZXMgd2luZG93cy1sYXRlc3QgYW5kIHZlcnNpb24gOCBvZiBub2RlIHJ1bnMsIHlvdSBjYW5cbiAgICogdXNlIGluY2x1ZGUgdG8gc3BlY2lmeSB0aGF0IGFkZGl0aW9uYWwgb3B0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZT86IEFycmF5PFJlY29yZDxzdHJpbmcsIEpvYk1hdHJpeFZhbHVlPj47XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gcmVtb3ZlIGEgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZGVmaW5lZCBpbiB0aGUgYnVpbGQgbWF0cml4XG4gICAqIHVzaW5nIHRoZSBleGNsdWRlIG9wdGlvbi4gVXNpbmcgZXhjbHVkZSByZW1vdmVzIGEgam9iIGRlZmluZWQgYnkgdGhlXG4gICAqIGJ1aWxkIG1hdHJpeC5cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBBcnJheTxSZWNvcmQ8c3RyaW5nLCBKb2JNYXRyaXhWYWx1ZT4+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgcGVydGFpbmluZyB0byBjb250YWluZXIgZW52aXJvbm1lbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5lck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIERvY2tlciBpbWFnZSB0byB1c2UgYXMgdGhlIGNvbnRhaW5lciB0byBydW4gdGhlIGFjdGlvbi4gVGhlIHZhbHVlIGNhblxuICAgKiBiZSB0aGUgRG9ja2VyIEh1YiBpbWFnZSBuYW1lIG9yIGEgcmVnaXN0cnkgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGYgdGhlIGltYWdlJ3MgY29udGFpbmVyIHJlZ2lzdHJ5IHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uIHRvIHB1bGwgdGhlXG4gICAqIGltYWdlLCB5b3UgY2FuIHVzZSBjcmVkZW50aWFscyB0byBzZXQgYSBtYXAgb2YgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZC5cbiAgICogVGhlIGNyZWRlbnRpYWxzIGFyZSB0aGUgc2FtZSB2YWx1ZXMgdGhhdCB5b3Ugd291bGQgcHJvdmlkZSB0byB0aGUgZG9ja2VyXG4gICAqIGxvZ2luIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFscz86IENvbnRhaW5lckNyZWRlbnRpYWxzO1xuXG4gIC8qKlxuICAgKiBTZXRzIGEgbWFwIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogU2V0cyBhbiBhcnJheSBvZiBwb3J0cyB0byBleHBvc2Ugb24gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnRzPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIFNldHMgYW4gYXJyYXkgb2Ygdm9sdW1lcyBmb3IgdGhlIGNvbnRhaW5lciB0byB1c2UuIFlvdSBjYW4gdXNlIHZvbHVtZXMgdG9cbiAgICogc2hhcmUgZGF0YSBiZXR3ZWVuIHNlcnZpY2VzIG9yIG90aGVyIHN0ZXBzIGluIGEgam9iLiBZb3UgY2FuIHNwZWNpZnlcbiAgICogbmFtZWQgRG9ja2VyIHZvbHVtZXMsIGFub255bW91cyBEb2NrZXIgdm9sdW1lcywgb3IgYmluZCBtb3VudHMgb24gdGhlXG4gICAqIGhvc3QuXG4gICAqXG4gICAqIFRvIHNwZWNpZnkgYSB2b2x1bWUsIHlvdSBzcGVjaWZ5IHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHBhdGg6XG4gICAqIGA8c291cmNlPjo8ZGVzdGluYXRpb25QYXRoPmAuXG4gICAqL1xuICByZWFkb25seSB2b2x1bWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgRG9ja2VyIGNvbnRhaW5lciByZXNvdXJjZSBvcHRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY3JlYXRlLyNvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQ3JlZGVudGlhbHMgdG8gdXNlIHRvIGF1dGhlbnRpY2F0ZSB0byBEb2NrZXIgcmVnaXN0cmllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJDcmVkZW50aWFscyB7XG4gIC8qKiBUaGUgdXNlcm5hbWUuICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBwYXNzd29yZC4gKi9cbiAgcmVhZG9ubHkgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc2V0IG9mIGF2YWlsYWJsZSB0cmlnZ2VycyBmb3IgR2l0SHViIFdvcmtmbG93cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvcmVmZXJlbmNlL2V2ZW50cy10aGF0LXRyaWdnZXItd29ya2Zsb3dzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlcnMge1xuICAvLyNyZWdpb24gU2NoZWR1bGVkIGV2ZW50c1xuICAvKipcbiAgICogWW91IGNhbiBzY2hlZHVsZSBhIHdvcmtmbG93IHRvIHJ1biBhdCBzcGVjaWZpYyBVVEMgdGltZXMgdXNpbmcgUE9TSVggY3JvblxuICAgKiBzeW50YXguIFNjaGVkdWxlZCB3b3JrZmxvd3MgcnVuIG9uIHRoZSBsYXRlc3QgY29tbWl0IG9uIHRoZSBkZWZhdWx0IG9yXG4gICAqIGJhc2UgYnJhbmNoLiBUaGUgc2hvcnRlc3QgaW50ZXJ2YWwgeW91IGNhbiBydW4gc2NoZWR1bGVkIHdvcmtmbG93cyBpc1xuICAgKiBvbmNlIGV2ZXJ5IDUgbWludXRlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvdXRpbGl0aWVzL2Nyb250YWIuaHRtbCN0YWdfMjBfMjVfMDdcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogQ3JvblNjaGVkdWxlT3B0aW9uc1tdO1xuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gTWFudWFsIGV2ZW50c1xuICAvKipcbiAgICogWW91IGNhbiBjb25maWd1cmUgY3VzdG9tLWRlZmluZWQgaW5wdXQgcHJvcGVydGllcywgZGVmYXVsdCBpbnB1dCB2YWx1ZXMsXG4gICAqIGFuZCByZXF1aXJlZCBpbnB1dHMgZm9yIHRoZSBldmVudCBkaXJlY3RseSBpbiB5b3VyIHdvcmtmbG93LiBXaGVuIHRoZVxuICAgKiB3b3JrZmxvdyBydW5zLCB5b3UgY2FuIGFjY2VzcyB0aGUgaW5wdXQgdmFsdWVzIGluIHRoZSBnaXRodWIuZXZlbnQuaW5wdXRzXG4gICAqIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0Rpc3BhdGNoPzogV29ya2Zsb3dEaXNwYXRjaE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gdXNlIHRoZSBHaXRIdWIgQVBJIHRvIHRyaWdnZXIgYSB3ZWJob29rIGV2ZW50IGNhbGxlZFxuICAgKiByZXBvc2l0b3J5X2Rpc3BhdGNoIHdoZW4geW91IHdhbnQgdG8gdHJpZ2dlciBhIHdvcmtmbG93IGZvciBhY3Rpdml0eSB0aGF0XG4gICAqIGhhcHBlbnMgb3V0c2lkZSBvZiBHaXRIdWIuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5RGlzcGF0Y2g/OiBSZXBvc2l0b3J5RGlzcGF0Y2hPcHRpb25zO1xuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gV29ya2Zsb3cgcmV1c2UgZXZlbnRzXG4gIC8qKlxuICAgKiBDYW4gYmUgY2FsbGVkIGZyb20gYW5vdGhlciB3b3JrZmxvd1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvbGVhcm4tZ2l0aHViLWFjdGlvbnMvcmV1c2luZy13b3JrZmxvd3NcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93Q2FsbD86IFdvcmtmbG93Q2FsbE9wdGlvbnM7XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBXZWJob29rIGV2ZW50c1xuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIGJyYW5jaF9wcm90ZWN0aW9uX3J1bGUgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoUHJvdGVjdGlvblJ1bGU/OiBCcmFuY2hQcm90ZWN0aW9uUnVsZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBjaGVja19ydW4gZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tSdW4/OiBDaGVja1J1bk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBjaGVja19zdWl0ZSBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBjaGVja1N1aXRlPzogQ2hlY2tTdWl0ZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHNvbWVvbmUgY3JlYXRlcyBhIGJyYW5jaCBvciB0YWcsIHdoaWNoXG4gICAqIHRyaWdnZXJzIHRoZSBjcmVhdGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBjcmVhdGU/OiBDcmVhdGVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSBzb21lb25lIGRlbGV0ZXMgYSBicmFuY2ggb3IgdGFnLCB3aGljaFxuICAgKiB0cmlnZ2VycyB0aGUgZGVsZXRlIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlPzogRGVsZXRlT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgc29tZW9uZSBjcmVhdGVzIGEgZGVwbG95bWVudCwgd2hpY2ggdHJpZ2dlcnNcbiAgICogdGhlIGRlcGxveW1lbnQgZXZlbnQuIERlcGxveW1lbnRzIGNyZWF0ZWQgd2l0aCBhIGNvbW1pdCBTSEEgbWF5IG5vdCBoYXZlXG4gICAqIGEgR2l0IHJlZi5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ/OiBEZXBsb3ltZW50T3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgYSB0aGlyZCBwYXJ0eSBwcm92aWRlcyBhIGRlcGxveW1lbnQgc3RhdHVzLFxuICAgKiB3aGljaCB0cmlnZ2VycyB0aGUgZGVwbG95bWVudF9zdGF0dXMgZXZlbnQuIERlcGxveW1lbnRzIGNyZWF0ZWQgd2l0aCBhXG4gICAqIGNvbW1pdCBTSEEgbWF5IG5vdCBoYXZlIGEgR2l0IHJlZi5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRTdGF0dXM/OiBEZXBsb3ltZW50U3RhdHVzT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIGRpc2N1c3Npb24gZXZlbnQgb2NjdXJzLiBNb3JlIHRoYW4gb25lIGFjdGl2aXR5IHR5cGUgdHJpZ2dlcnMgdGhpcyBldmVudC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9ncmFwaHFsL2d1aWRlcy91c2luZy10aGUtZ3JhcGhxbC1hcGktZm9yLWRpc2N1c3Npb25zXG4gICAqL1xuICByZWFkb25seSBkaXNjdXNzaW9uPzogRGlzY3Vzc2lvbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBkaXNjdXNzaW9uX2NvbW1lbnQgZXZlbnQgb2NjdXJzLiBNb3JlIHRoYW4gb25lIGFjdGl2aXR5IHR5cGUgdHJpZ2dlcnMgdGhpcyBldmVudC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9ncmFwaHFsL2d1aWRlcy91c2luZy10aGUtZ3JhcGhxbC1hcGktZm9yLWRpc2N1c3Npb25zXG4gICAqL1xuICByZWFkb25seSBkaXNjdXNzaW9uQ29tbWVudD86IERpc2N1c3Npb25Db21tZW50T3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgd2hlbiBzb21lb25lIGZvcmtzIGEgcmVwb3NpdG9yeSwgd2hpY2hcbiAgICogdHJpZ2dlcnMgdGhlIGZvcmsgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBmb3JrPzogRm9ya09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyB3aGVuIHNvbWVvbmUgY3JlYXRlcyBvciB1cGRhdGVzIGEgV2lraSBwYWdlLCB3aGljaFxuICAgKiB0cmlnZ2VycyB0aGUgZ29sbHVtIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZ29sbHVtPzogR29sbHVtT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIGlzc3VlX2NvbW1lbnQgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNzdWVDb21tZW50PzogSXNzdWVDb21tZW50T3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIGlzc3VlcyBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBpc3N1ZXM/OiBJc3N1ZXNPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgbGFiZWwgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw/OiBMYWJlbE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyB3aGVuIGEgcHVsbCByZXF1ZXN0IGlzIGFkZGVkIHRvIGEgbWVyZ2UgcXVldWUsIHdoaWNoXG4gICAqIGFkZHMgdGhlIHB1bGwgcmVxdWVzdCB0byBhIG1lcmdlIGdyb3VwLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgbWVyZ2VHcm91cD86IE1lcmdlR3JvdXBPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgbWlsZXN0b25lIGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IG1pbGVzdG9uZT86IE1pbGVzdG9uZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHNvbWVvbmUgcHVzaGVzIHRvIGEgR2l0SHViIFBhZ2VzLWVuYWJsZWRcbiAgICogYnJhbmNoLCB3aGljaCB0cmlnZ2VycyB0aGUgcGFnZV9idWlsZCBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHBhZ2VCdWlsZD86IFBhZ2VCdWlsZE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBwcm9qZWN0IGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3Q/OiBQcm9qZWN0T3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIHByb2plY3RfY2FyZCBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0Q2FyZD86IFByb2plY3RDYXJkT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIHByb2plY3RfY29sdW1uIGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3RDb2x1bW4/OiBQcm9qZWN0Q29sdW1uT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgc29tZW9uZSBtYWtlcyBhIHByaXZhdGUgcmVwb3NpdG9yeSBwdWJsaWMsXG4gICAqIHdoaWNoIHRyaWdnZXJzIHRoZSBwdWJsaWMgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWM/OiBQdWJsaWNPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgcHVsbF9yZXF1ZXN0IGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IHB1bGxSZXF1ZXN0PzogUHVsbFJlcXVlc3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgcHVsbF9yZXF1ZXN0X3JldmlldyBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdFJldmlldz86IFB1bGxSZXF1ZXN0UmV2aWV3T3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgYSBjb21tZW50IG9uIGEgcHVsbCByZXF1ZXN0J3MgdW5pZmllZCBkaWZmIGlzXG4gICAqIG1vZGlmaWVkLCB3aGljaCB0cmlnZ2VycyB0aGUgcHVsbF9yZXF1ZXN0X3Jldmlld19jb21tZW50IGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RSZXZpZXdDb21tZW50PzogUHVsbFJlcXVlc3RSZXZpZXdDb21tZW50T3B0aW9ucztcblxuICAvKipcbiAgICogVGhpcyBldmVudCBydW5zIGluIHRoZSBjb250ZXh0IG9mIHRoZSBiYXNlIG9mIHRoZSBwdWxsIHJlcXVlc3QsIHJhdGhlclxuICAgKiB0aGFuIGluIHRoZSBtZXJnZSBjb21taXQgYXMgdGhlIHB1bGxfcmVxdWVzdCBldmVudCBkb2VzLiBUaGlzIHByZXZlbnRzXG4gICAqIGV4ZWN1dGluZyB1bnNhZmUgd29ya2Zsb3cgY29kZSBmcm9tIHRoZSBoZWFkIG9mIHRoZSBwdWxsIHJlcXVlc3QgdGhhdFxuICAgKiBjb3VsZCBhbHRlciB5b3VyIHJlcG9zaXRvcnkgb3Igc3RlYWwgYW55IHNlY3JldHMgeW91IHVzZSBpbiB5b3VyIHdvcmtmbG93LlxuICAgKiBUaGlzIGV2ZW50IGFsbG93cyB5b3UgdG8gZG8gdGhpbmdzIGxpa2UgY3JlYXRlIHdvcmtmbG93cyB0aGF0IGxhYmVsIGFuZFxuICAgKiBjb21tZW50IG9uIHB1bGwgcmVxdWVzdHMgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBldmVudCBwYXlsb2FkLlxuICAgKlxuICAgKiBXQVJOSU5HOiBUaGUgYHB1bGxfcmVxdWVzdF90YXJnZXRgIGV2ZW50IGlzIGdyYW50ZWQgcmVhZC93cml0ZSByZXBvc2l0b3J5XG4gICAqIHRva2VuIGFuZCBjYW4gYWNjZXNzIHNlY3JldHMsIGV2ZW4gd2hlbiBpdCBpcyB0cmlnZ2VyZWQgZnJvbSBhIGZvcmsuXG4gICAqIEFsdGhvdWdoIHRoZSB3b3JrZmxvdyBydW5zIGluIHRoZSBjb250ZXh0IG9mIHRoZSBiYXNlIG9mIHRoZSBwdWxsIHJlcXVlc3QsXG4gICAqIHlvdSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgeW91IGRvIG5vdCBjaGVjayBvdXQsIGJ1aWxkLCBvciBydW4gdW50cnVzdGVkXG4gICAqIGNvZGUgZnJvbSB0aGUgcHVsbCByZXF1ZXN0IHdpdGggdGhpcyBldmVudC4gQWRkaXRpb25hbGx5LCBhbnkgY2FjaGVzXG4gICAqIHNoYXJlIHRoZSBzYW1lIHNjb3BlIGFzIHRoZSBiYXNlIGJyYW5jaCwgYW5kIHRvIGhlbHAgcHJldmVudCBjYWNoZVxuICAgKiBwb2lzb25pbmcsIHlvdSBzaG91bGQgbm90IHNhdmUgdGhlIGNhY2hlIGlmIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhhdFxuICAgKiB0aGUgY2FjaGUgY29udGVudHMgd2VyZSBhbHRlcmVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc2VjdXJpdHlsYWIuZ2l0aHViLmNvbS9yZXNlYXJjaC9naXRodWItYWN0aW9ucy1wcmV2ZW50aW5nLXB3bi1yZXF1ZXN0c1xuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RUYXJnZXQ/OiBQdWxsUmVxdWVzdFRhcmdldE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyB3aGVuIHNvbWVvbmUgcHVzaGVzIHRvIGEgcmVwb3NpdG9yeSBicmFuY2gsIHdoaWNoXG4gICAqIHRyaWdnZXJzIHRoZSBwdXNoIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcHVzaD86IFB1c2hPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSBhIHBhY2thZ2UgaXMgcHVibGlzaGVkIG9yIHVwZGF0ZWQuXG4gICAqL1xuICByZWFkb25seSByZWdpc3RyeVBhY2thZ2U/OiBSZWdpc3RyeVBhY2thZ2VPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgcmVsZWFzZSBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlPzogUmVsZWFzZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBzdGF0dXMgb2YgYSBHaXQgY29tbWl0IGNoYW5nZXMsIHdoaWNoXG4gICAqIHRyaWdnZXJzIHRoZSBzdGF0dXMgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBTdGF0dXNPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgd2F0Y2ggZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgd2F0Y2g/OiBXYXRjaE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgb2NjdXJzIHdoZW4gYSB3b3JrZmxvdyBydW4gaXMgcmVxdWVzdGVkIG9yIGNvbXBsZXRlZCwgYW5kXG4gICAqIGFsbG93cyB5b3UgdG8gZXhlY3V0ZSBhIHdvcmtmbG93IGJhc2VkIG9uIHRoZSBmaW5pc2hlZCByZXN1bHQgb2YgYW5vdGhlclxuICAgKiB3b3JrZmxvdy4gQSB3b3JrZmxvdyBydW4gaXMgdHJpZ2dlcmVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlc3VsdCBvZiB0aGVcbiAgICogcHJldmlvdXMgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1J1bj86IFdvcmtmbG93UnVuT3B0aW9ucztcbiAgLy8jZW5kcmVnaW9uXG59XG5cbi8qKlxuICogQ1JPTiBzY2hlZHVsZSBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyb25TY2hlZHVsZU9wdGlvbnMge1xuICAvKipcbiAgICogQHNlZSBodHRwczovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvdXRpbGl0aWVzL2Nyb250YWIuaHRtbCN0YWdfMjBfMjVfMDdcbiAgICovXG4gIHJlYWRvbmx5IGNyb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXBvc2l0b3J5IGRpc3BhdGNoIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3NpdG9yeURpc3BhdGNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQnJhbmNoIFByb3RlY3Rpb24gUnVsZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmNoUHJvdGVjdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcImNyZWF0ZWRcIiB8IFwiZWRpdGVkXCIgfCBcImRlbGV0ZWRcIj47XG59XG5cbi8qKlxuICogQ2hlY2sgcnVuIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2tSdW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICBcImNyZWF0ZVwiIHwgXCJyZXJlcXVlc3RlZFwiIHwgXCJjb21wbGV0ZWRcIiB8IFwicmVxdWVzdGVkX2FjdGlvblwiXG4gID47XG59XG5cbi8qKlxuICogQ2hlY2sgc3VpdGUgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrU3VpdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcImNvbXBsZXRlZFwiIHwgXCJyZXF1ZXN0ZWRcIiB8IFwicmVyZXF1ZXN0ZWRcIj47XG59XG5cbi8qKlxuICogRGlzY3Vzc2lvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY3Vzc2lvbk9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFxuICAgIHwgXCJjcmVhdGVkXCJcbiAgICB8IFwiZWRpdGVkXCJcbiAgICB8IFwidHJhbnNmZXJyZWRcIlxuICAgIHwgXCJwaW5uZWRcIlxuICAgIHwgXCJ1bnBpbm5lZFwiXG4gICAgfCBcImxhYmVsZWRcIlxuICAgIHwgXCJ1bmxhYmVsZWRcIlxuICAgIHwgXCJsb2NrZWRcIlxuICAgIHwgXCJ1bmxvY2tlZFwiXG4gICAgfCBcImNhdGVnb3J5X2NoYW5nZWRcIlxuICAgIHwgXCJhbnN3ZXJlZFwiXG4gICAgfCBcInVuYW5zd2VyZWRcIlxuICA+O1xufVxuXG4vKipcbiAqIERpc2N1c3Npb24gY29tbWVudCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY3Vzc2lvbkNvbW1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcImNyZWF0ZWRcIiB8IFwiZWRpdGVkXCIgfCBcImRlbGV0ZWRcIj47XG59XG5cbi8qKlxuICogSXNzdWUgY29tbWVudCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVDb21tZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjcmVhdGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCI+O1xufVxuXG4vKipcbiAqIElzc3VlcyBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXNzdWVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XG4gICAgfCBcIm9wZW5lZFwiXG4gICAgfCBcImVkaXRlZFwiXG4gICAgfCBcImRlbGV0ZWRcIlxuICAgIHwgXCJ0cmFuc2ZlcnJlZFwiXG4gICAgfCBcInBpbm5lZFwiXG4gICAgfCBcInVucGlubmVkXCJcbiAgICB8IFwiY2xvc2VkXCJcbiAgICB8IFwicmVvcGVuZWRcIlxuICAgIHwgXCJhc3NpZ25lZFwiXG4gICAgfCBcInVuYXNzaWduZWRcIlxuICAgIHwgXCJsYWJlbGVkXCJcbiAgICB8IFwidW5sYWJlbGVkXCJcbiAgICB8IFwibG9ja2VkXCJcbiAgICB8IFwidW5sb2NrZWRcIlxuICAgIHwgXCJtaWxlc3RvbmVkXCJcbiAgICB8IFwiZGVtaWxlc3RvbmVkXCJcbiAgPjtcbn1cblxuLyoqXG4gKiBMYWJlbCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcImNyZWF0ZWRcIiB8IFwiZWRpdGVkXCIgfCBcImRlbGV0ZWRcIj47XG59XG5cbi8qKlxuICogTWVyZ2UgZ3JvdXAgb3B0aW9ucy5cbiAqXG4gKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlR3JvdXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gdXNpbmcgdGhlIG1lcmdlX2dyb3VwIGV2ZW50cywgeW91IGNhbiBjb25maWd1cmUgYSB3b3JrZmxvd1xuICAgKiB0byBydW4gb24gc3BlY2lmaWMgYmFzZSBicmFuY2hlcy4gSWYgbm90IHNwZWNpZmllZCwgYWxsIGJyYW5jaGVzIHdpbGxcbiAgICogdHJpZ2dlciB0aGUgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBicmFuY2hlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE1pbGVzdG9uZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlsZXN0b25lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XG4gICAgXCJjcmVhdGVkXCIgfCBcImNsb3NlZFwiIHwgXCJvcGVuZWRcIiB8IFwiZWRpdGVkXCIgfCBcImRlbGV0ZWRcIlxuICA+O1xufVxuXG4vKipcbiAqIFByb2plY3Qgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICBcImNyZWF0ZWRcIiB8IFwidXBkYXRlZFwiIHwgXCJjbG9zZWRcIiB8IFwicmVvcGVuZWRcIiB8IFwiZWRpdGVkXCIgfCBcImRlbGV0ZWRcIlxuICA+O1xufVxuXG4vKipcbiAqIFByb2plY3QgY2FyZCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdENhcmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICBcImNyZWF0ZWRcIiB8IFwibW92ZWRcIiB8IFwiY29udmVydGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCJcbiAgPjtcbn1cblxuLyoqXG4gKiBQcm9iamVjdCBjb2x1bW4gb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RDb2x1bW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcImNyZWF0ZWRcIiB8IFwidXBkYXRlZFwiIHwgXCJtb3ZlZFwiIHwgXCJkZWxldGVkXCI+O1xufVxuXG4vKipcbiAqIFB1bGwgcmVxdWVzdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVsbFJlcXVlc3RPcHRpb25zIGV4dGVuZHMgUHVzaE9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFxuICAgIHwgXCJhc3NpZ25lZFwiXG4gICAgfCBcInVuYXNzaWduZWRcIlxuICAgIHwgXCJsYWJlbGVkXCJcbiAgICB8IFwidW5sYWJlbGVkXCJcbiAgICB8IFwib3BlbmVkXCJcbiAgICB8IFwiZWRpdGVkXCJcbiAgICB8IFwiY2xvc2VkXCJcbiAgICB8IFwicmVvcGVuZWRcIlxuICAgIHwgXCJzeW5jaHJvbml6ZVwiXG4gICAgfCBcInJlYWR5X2Zvcl9yZXZpZXdcIlxuICAgIHwgXCJsb2NrZWRcIlxuICAgIHwgXCJ1bmxvY2tlZFwiXG4gICAgfCBcInJldmlld19yZXF1ZXN0ZWRcIlxuICAgIHwgXCJyZXZpZXdfcmVxdWVzdF9yZW1vdmVkXCJcbiAgPjtcbn1cblxuLyoqXG4gKiBQdWxsIHJlcXVlc3QgcmV2aWV3IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdFJldmlld09wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFwic3VibWl0dGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkaXNtaXNzZWRcIj47XG59XG5cbi8qKlxuICogUHVsbCByZXF1ZXN0IHJldmlldyBjb21tZW50IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdFJldmlld0NvbW1lbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcImNyZWF0ZWRcIiB8IFwiZWRpdGVkXCIgfCBcImRlbGV0ZWRcIj47XG59XG5cbi8qKlxuICogUHVsbCByZXF1ZXN0IHRhcmdldCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1bGxSZXF1ZXN0VGFyZ2V0T3B0aW9ucyBleHRlbmRzIFB1c2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICB8IFwiYXNzaWduZWRcIlxuICAgIHwgXCJ1bmFzc2lnbmVkXCJcbiAgICB8IFwibGFiZWxlZFwiXG4gICAgfCBcInVubGFiZWxlZFwiXG4gICAgfCBcIm9wZW5lZFwiXG4gICAgfCBcImVkaXRlZFwiXG4gICAgfCBcImNsb3NlZFwiXG4gICAgfCBcInJlb3BlbmVkXCJcbiAgICB8IFwic3luY2hyb25pemVcIlxuICAgIHwgXCJyZWFkeV9mb3JfcmV2aWV3XCJcbiAgICB8IFwibG9ja2VkXCJcbiAgICB8IFwidW5sb2NrZWRcIlxuICAgIHwgXCJyZXZpZXdfcmVxdWVzdGVkXCJcbiAgICB8IFwicmV2aWV3X3JlcXVlc3RfcmVtb3ZlZFwiXG4gID47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcHVzaC1saWtlIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVuIHVzaW5nIHRoZSBwdXNoLCBwdWxsX3JlcXVlc3QgYW5kIHB1bGxfcmVxdWVzdF90YXJnZXQgZXZlbnRzLCB5b3UgY2FuIGNvbmZpZ3VyZSBhIHdvcmtmbG93XG4gICAqIHRvIHJ1biBvbiBzcGVjaWZpYyBicmFuY2hlcyBvciB0YWdzLiBGb3IgYSBwdWxsX3JlcXVlc3QgZXZlbnQsIG9ubHlcbiAgICogYnJhbmNoZXMgYW5kIHRhZ3Mgb24gdGhlIGJhc2UgYXJlIGV2YWx1YXRlZC4gSWYgeW91IGRlZmluZSBvbmx5IHRhZ3Mgb3JcbiAgICogb25seSBicmFuY2hlcywgdGhlIHdvcmtmbG93IHdvbid0IHJ1biBmb3IgZXZlbnRzIGFmZmVjdGluZyB0aGUgdW5kZWZpbmVkXG4gICAqIEdpdCByZWYuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9yZWZlcmVuY2Uvd29ya2Zsb3ctc3ludGF4LWZvci1naXRodWItYWN0aW9ucyNmaWx0ZXItcGF0dGVybi1jaGVhdC1zaGVldFxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hlbiB1c2luZyB0aGUgcHVzaCwgcHVsbF9yZXF1ZXN0IGFuZCBwdWxsX3JlcXVlc3RfdGFyZ2V0IGV2ZW50cywgeW91IGNhbiBjb25maWd1cmUgYSB3b3JrZmxvd1xuICAgKiB0byBydW4gb24gc3BlY2lmaWMgYnJhbmNoZXMgb3IgdGFncy4gRm9yIGEgcHVsbF9yZXF1ZXN0IGV2ZW50LCBvbmx5XG4gICAqIGJyYW5jaGVzIGFuZCB0YWdzIG9uIHRoZSBiYXNlIGFyZSBldmFsdWF0ZWQuIElmIHlvdSBkZWZpbmUgb25seSB0YWdzIG9yXG4gICAqIG9ubHkgYnJhbmNoZXMsIHRoZSB3b3JrZmxvdyB3b24ndCBydW4gZm9yIGV2ZW50cyBhZmZlY3RpbmcgdGhlIHVuZGVmaW5lZFxuICAgKiBHaXQgcmVmLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvcmVmZXJlbmNlL3dvcmtmbG93LXN5bnRheC1mb3ItZ2l0aHViLWFjdGlvbnMjZmlsdGVyLXBhdHRlcm4tY2hlYXQtc2hlZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hlbiB1c2luZyB0aGUgcHVzaCwgcHVsbF9yZXF1ZXN0IGFuZCBwdWxsX3JlcXVlc3RfdGFyZ2V0IGV2ZW50cywgeW91IGNhbiBjb25maWd1cmUgYSB3b3JrZmxvd1xuICAgKiB0byBydW4gd2hlbiBhdCBsZWFzdCBvbmUgZmlsZSBkb2VzIG5vdCBtYXRjaCBwYXRocy1pZ25vcmUgb3IgYXQgbGVhc3Qgb25lXG4gICAqIG1vZGlmaWVkIGZpbGUgbWF0Y2hlcyB0aGUgY29uZmlndXJlZCBwYXRocy4gUGF0aCBmaWx0ZXJzIGFyZSBub3RcbiAgICogZXZhbHVhdGVkIGZvciBwdXNoZXMgdG8gdGFncy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3JlZmVyZW5jZS93b3JrZmxvdy1zeW50YXgtZm9yLWdpdGh1Yi1hY3Rpb25zI2ZpbHRlci1wYXR0ZXJuLWNoZWF0LXNoZWV0XG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlZ2lzdHJ5IHBhY2thZ2Ugb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJ5UGFja2FnZU9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFwicHVibGlzaGVkXCIgfCBcInVwZGF0ZWRcIj47XG59XG5cbi8qKlxuICogUmVsZWFzZSBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVsZWFzZU9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFxuICAgIHwgXCJwdWJsaXNoZWRcIlxuICAgIHwgXCJ1bnB1Ymxpc2hlZFwiXG4gICAgfCBcImNyZWF0ZWRcIlxuICAgIHwgXCJlZGl0ZWRcIlxuICAgIHwgXCJkZWxldGVkXCJcbiAgICB8IFwicHJlcmVsZWFzZWRcIlxuICAgIHwgXCJyZWxlYXNlZFwiXG4gID47XG59XG5cbi8qKlxuICogV2F0Y2ggb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhdGNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJzdGFydGVkXCI+O1xufVxuXG4vKipcbiAqIFdvcmtmbG93IHJ1biBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dSdW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIHdvcmtmbG93IHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFueSB3b3JrZmxvd3NcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93cz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjb21wbGV0ZWRcIiB8IFwicmVxdWVzdGVkXCI+O1xuICAvKipcbiAgICogV2hpY2ggYnJhbmNoZXMgb3IgYnJhbmNoLWlnbm9yZSB0byBsaW1pdCB0aGUgdHJpZ2dlciB0by5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gbm8gYnJhbmNoIGxpbWl0c1xuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG4vLyNyZWdpb24gRW1wdHkgT3B0aW9ucyAoZnV0dXJlLXByb29maW5nIHRoZSBBUEkpXG4vKipcbiAqIFRoZSBXb3JrZmxvdyBkaXNwYXRjaCBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dEaXNwYXRjaE9wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgV29ya2Zsb3cgQ2FsbCBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dDYWxsT3B0aW9ucyB7fVxuXG4vKipcbiAqIFRoZSBDcmVhdGUgZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgRGVsZXRlIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxldGVPcHRpb25zIHt9XG5cbi8qKlxuICogVGhlIERlcGxveW1lbnQgZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRPcHRpb25zIHt9XG5cbi8qKlxuICogVGhlIERlcGxveW1lbnQgc3RhdHVzIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50U3RhdHVzT3B0aW9ucyB7fVxuXG4vKipcbiAqIFRoZSBGb3JrIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JrT3B0aW9ucyB7fVxuXG4vKipcbiAqIFRoZSBHb2xsdW0gZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvbGx1bU9wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgUGFnZSBidWlsZCBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUJ1aWxkT3B0aW9ucyB7fVxuXG4vKipcbiAqIFRoZSBQdWJsaWMgZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY09wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgU3RhdHVzIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0dXNPcHRpb25zIHt9XG4vLyNlbmRyZWdpb25cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3dzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVGQUF1Rjs7O0FBZ1N2Rjs7R0FFRztBQUNILElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix1QkFBdUI7SUFDdkIsOEJBQWEsQ0FBQTtJQUViLHdCQUF3QjtJQUN4QixnQ0FBZSxDQUFBO0lBRWYsdUJBQXVCO0lBQ3ZCLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBVFcsYUFBYSw2QkFBYixhQUFhLFFBU3hCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGFBV1g7QUFYRCxXQUFZLGFBQWE7SUFDdkIsd0JBQXdCO0lBQ3hCLDhCQUFhLENBQUE7SUFDYix3QkFBd0I7SUFDeEIsZ0NBQWUsQ0FBQTtJQUNmOzs7O09BSUc7SUFDSCxnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFYVyxhQUFhLDZCQUFiLGFBQWEsUUFXeEI7QUF5N0JELFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvcmVmZXJlbmNlL3dvcmtmbG93LXN5bnRheC1mb3ItZ2l0aHViLWFjdGlvbnNcblxuaW1wb3J0IHsgR3JvdXBSdW5uZXJPcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uSm9iRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iIGRpc3BsYXllZCBvbiBHaXRIdWIuXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGFueSBqb2JzIHRoYXQgbXVzdCBjb21wbGV0ZSBzdWNjZXNzZnVsbHkgYmVmb3JlIHRoaXMgam9iIHdpbGxcbiAgICogcnVuLiBJdCBjYW4gYmUgYSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncy4gSWYgYSBqb2IgZmFpbHMsIGFsbCBqb2JzXG4gICAqIHRoYXQgbmVlZCBpdCBhcmUgc2tpcHBlZCB1bmxlc3MgdGhlIGpvYnMgdXNlIGEgY29uZGl0aW9uYWwgZXhwcmVzc2lvblxuICAgKiB0aGF0IGNhdXNlcyB0aGUgam9iIHRvIGNvbnRpbnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmVlZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogWW91IGNhbiBtb2RpZnkgdGhlIGRlZmF1bHQgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byB0aGUgR0lUSFVCX1RPS0VOLCBhZGRpbmdcbiAgICogb3IgcmVtb3ZpbmcgYWNjZXNzIGFzIHJlcXVpcmVkLCBzbyB0aGF0IHlvdSBvbmx5IGFsbG93IHRoZSBtaW5pbXVtIHJlcXVpcmVkXG4gICAqIGFjY2Vzcy5cbiAgICpcbiAgICogVXNlIGB7IGNvbnRlbnRzOiBSRUFEIH1gIGlmIHlvdXIgam9iIG9ubHkgbmVlZHMgdG8gY2xvbmUgY29kZS5cbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbnRpb25hbGx5IGEgcmVxdWlyZWQgZmllbGQgc2luY2UgaXQgaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG9cbiAgICogYWxsb3cgd29ya2Zsb3dzIHRvIHJ1biBpbiBHaXRIdWIgcmVwb3NpdG9yaWVzIHdpdGggcmVzdHJpY3RlZCBkZWZhdWx0XG4gICAqIGFjY2Vzcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3JlZmVyZW5jZS9hdXRoZW50aWNhdGlvbi1pbi1hLXdvcmtmbG93I3Blcm1pc3Npb25zLWZvci10aGUtZ2l0aHViX3Rva2VuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uczogSm9iUGVybWlzc2lvbnM7XG5cbiAgLyoqXG4gICAqIENvbmN1cnJlbmN5IGVuc3VyZXMgdGhhdCBvbmx5IGEgc2luZ2xlIGpvYiBvciB3b3JrZmxvdyB1c2luZyB0aGUgc2FtZVxuICAgKiBjb25jdXJyZW5jeSBncm91cCB3aWxsIHJ1biBhdCBhIHRpbWUuIEEgY29uY3VycmVuY3kgZ3JvdXAgY2FuIGJlIGFueVxuICAgKiBzdHJpbmcgb3IgZXhwcmVzc2lvbi4gVGhlIGV4cHJlc3Npb24gY2FuIHVzZSBhbnkgY29udGV4dCBleGNlcHQgZm9yIHRoZVxuICAgKiBzZWNyZXRzIGNvbnRleHQuXG4gICAqXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogdW5rbm93bjtcblxuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhlIGlmIGNvbmRpdGlvbmFsIHRvIHByZXZlbnQgYSBqb2IgZnJvbSBydW5uaW5nIHVubGVzcyBhXG4gICAqIGNvbmRpdGlvbiBpcyBtZXQuIFlvdSBjYW4gdXNlIGFueSBzdXBwb3J0ZWQgY29udGV4dCBhbmQgZXhwcmVzc2lvbiB0b1xuICAgKiBjcmVhdGUgYSBjb25kaXRpb25hbC5cbiAgICovXG4gIHJlYWRvbmx5IGlmPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0cmF0ZWd5IGNyZWF0ZXMgYSBidWlsZCBtYXRyaXggZm9yIHlvdXIgam9icy4gWW91IGNhbiBkZWZpbmUgZGlmZmVyZW50XG4gICAqIHZhcmlhdGlvbnMgdG8gcnVuIGVhY2ggam9iIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBKb2JTdHJhdGVneTtcbn1cblxuLyoqXG4gKiBBIEdpdEh1YiBXb3JrZmxvdyBKb2IgY2FsbGluZyBhIHJldXNhYmxlIHdvcmtmbG93XG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYkNhbGxpbmdSZXVzYWJsZVdvcmtmbG93IGV4dGVuZHMgQ29tbW9uSm9iRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gYW5kIHZlcnNpb24gb2YgYSByZXVzYWJsZSB3b3JrZmxvdyBmaWxlIHRvIHJ1biBhcyBhIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXM6IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiBhIGpvYiBpcyB1c2VkIHRvIGNhbGwgYSByZXVzYWJsZSB3b3JrZmxvdywgeW91IGNhbiB1c2Ugd2l0aCB0b1xuICAgKiBwcm92aWRlIGEgbWFwIG9mIGlucHV0cyB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlIGNhbGxlZCB3b3JrZmxvdy5cbiAgICpcbiAgICogQWxsb3dlZCBleHByZXNzaW9uIGNvbnRleHRzOiBgZ2l0aHViYCwgYW5kIGBuZWVkc2AuXG4gICAqL1xuICByZWFkb25seSB3aXRoPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBqb2IgaXMgdXNlZCB0byBjYWxsIGEgcmV1c2FibGUgd29ya2Zsb3csIHlvdSBjYW4gdXNlIHNlY3JldHMgdG9cbiAgICogcHJvdmlkZSBhIG1hcCBvZiBzZWNyZXRzIHRoYXQgYXJlIHBhc3NlZCB0byB0aGUgY2FsbGVkIHdvcmtmbG93LlxuICAgKlxuICAgKiBVc2UgdGhlICdpbmhlcml0JyBrZXl3b3JkIHRvIHBhc3MgYWxsIHRoZSBjYWxsaW5nIHdvcmtmbG93J3Mgc2VjcmV0cyB0byB0aGUgY2FsbGVkIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBBIEdpdEh1YiBXb3JrZmxvdyBqb2IgZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2IgZXh0ZW5kcyBDb21tb25Kb2JEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIG1hY2hpbmUgdG8gcnVuIHRoZSBqb2Igb24uIFRoZSBtYWNoaW5lIGNhbiBiZSBlaXRoZXIgYVxuICAgKiBHaXRIdWItaG9zdGVkIHJ1bm5lciBvciBhIHNlbGYtaG9zdGVkIHJ1bm5lci5cbiAgICpcbiAgICogQGV4YW1wbGUgW1widWJ1bnR1LWxhdGVzdFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgcnVuc09uPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdpdGh1YiBSdW5uZXIgR3JvdXAgc2VsZWN0aW9uIG9wdGlvbnNcbiAgICogQGRlc2NyaXB0aW9uIERlZmluZXMgYSB0YXJnZXQgUnVubmVyIEdyb3VwIGJ5IG5hbWUgYW5kL29yIGxhYmVsc1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gaWYgYm90aCBgcnVuc09uYCBhbmQgYHJ1bnNPbkdyb3VwYCBhcmUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSBydW5zT25Hcm91cD86IEdyb3VwUnVubmVyT3B0aW9ucztcblxuICAvKipcbiAgICogQSBqb2IgY29udGFpbnMgYSBzZXF1ZW5jZSBvZiB0YXNrcyBjYWxsZWQgc3RlcHMuIFN0ZXBzIGNhbiBydW4gY29tbWFuZHMsXG4gICAqIHJ1biBzZXR1cCB0YXNrcywgb3IgcnVuIGFuIGFjdGlvbiBpbiB5b3VyIHJlcG9zaXRvcnksIGEgcHVibGljIHJlcG9zaXRvcnksXG4gICAqIG9yIGFuIGFjdGlvbiBwdWJsaXNoZWQgaW4gYSBEb2NrZXIgcmVnaXN0cnkuIE5vdCBhbGwgc3RlcHMgcnVuIGFjdGlvbnMsXG4gICAqIGJ1dCBhbGwgYWN0aW9ucyBydW4gYXMgYSBzdGVwLiBFYWNoIHN0ZXAgcnVucyBpbiBpdHMgb3duIHByb2Nlc3MgaW4gdGhlXG4gICAqIHJ1bm5lciBlbnZpcm9ubWVudCBhbmQgaGFzIGFjY2VzcyB0byB0aGUgd29ya3NwYWNlIGFuZCBmaWxlc3lzdGVtLlxuICAgKiBCZWNhdXNlIHN0ZXBzIHJ1biBpbiB0aGVpciBvd24gcHJvY2VzcywgY2hhbmdlcyB0byBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICogYXJlIG5vdCBwcmVzZXJ2ZWQgYmV0d2VlbiBzdGVwcy4gR2l0SHViIHByb3ZpZGVzIGJ1aWx0LWluIHN0ZXBzIHRvIHNldCB1cFxuICAgKiBhbmQgY29tcGxldGUgYSBqb2IuXG4gICAqL1xuICByZWFkb25seSBzdGVwczogSm9iU3RlcFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdGhhdCB0aGUgam9iIHJlZmVyZW5jZXMuIEFsbCBlbnZpcm9ubWVudCBwcm90ZWN0aW9uIHJ1bGVzXG4gICAqIG11c3QgcGFzcyBiZWZvcmUgYSBqb2IgcmVmZXJlbmNpbmcgdGhlIGVudmlyb25tZW50IGlzIHNlbnQgdG8gYSBydW5uZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9yZWZlcmVuY2UvZW52aXJvbm1lbnRzXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHVua25vd247XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIG91dHB1dHMgZm9yIGEgam9iLiBKb2Igb3V0cHV0cyBhcmUgYXZhaWxhYmxlIHRvIGFsbCBkb3duc3RyZWFtXG4gICAqIGpvYnMgdGhhdCBkZXBlbmQgb24gdGhpcyBqb2IuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzPzogUmVjb3JkPHN0cmluZywgSm9iU3RlcE91dHB1dD47XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8gYWxsIHN0ZXBzIGluIHRoZVxuICAgKiBqb2IuIFlvdSBjYW4gYWxzbyBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZW50aXJlIHdvcmtmbG93IG9yIGFuXG4gICAqIGluZGl2aWR1YWwgc3RlcC5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIGRlZmF1bHQgc2V0dGluZ3MgdGhhdCB3aWxsIGFwcGx5IHRvIGFsbCBzdGVwcyBpbiB0aGUgam9iLiBZb3VcbiAgICogY2FuIGFsc28gc2V0IGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoZSBlbnRpcmUgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0cz86IEpvYkRlZmF1bHRzO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWludXRlcyB0byBsZXQgYSBqb2IgcnVuIGJlZm9yZSBHaXRIdWJcbiAgICogYXV0b21hdGljYWxseSBjYW5jZWxzIGl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAzNjBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRNaW51dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQcmV2ZW50cyBhIHdvcmtmbG93IHJ1biBmcm9tIGZhaWxpbmcgd2hlbiBhIGpvYiBmYWlscy4gU2V0IHRvIHRydWUgdG9cbiAgICogYWxsb3cgYSB3b3JrZmxvdyBydW4gdG8gcGFzcyB3aGVuIHRoaXMgam9iIGZhaWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQSBjb250YWluZXIgdG8gcnVuIGFueSBzdGVwcyBpbiBhIGpvYiB0aGF0IGRvbid0IGFscmVhZHkgc3BlY2lmeSBhXG4gICAqIGNvbnRhaW5lci4gSWYgeW91IGhhdmUgc3RlcHMgdGhhdCB1c2UgYm90aCBzY3JpcHQgYW5kIGNvbnRhaW5lciBhY3Rpb25zLFxuICAgKiB0aGUgY29udGFpbmVyIGFjdGlvbnMgd2lsbCBydW4gYXMgc2libGluZyBjb250YWluZXJzIG9uIHRoZSBzYW1lIG5ldHdvcmtcbiAgICogd2l0aCB0aGUgc2FtZSB2b2x1bWUgbW91bnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyPzogQ29udGFpbmVyT3B0aW9ucztcblxuICAvKipcbiAgICogVXNlZCB0byBob3N0IHNlcnZpY2UgY29udGFpbmVycyBmb3IgYSBqb2IgaW4gYSB3b3JrZmxvdy4gU2VydmljZVxuICAgKiBjb250YWluZXJzIGFyZSB1c2VmdWwgZm9yIGNyZWF0aW5nIGRhdGFiYXNlcyBvciBjYWNoZSBzZXJ2aWNlcyBsaWtlIFJlZGlzLlxuICAgKiBUaGUgcnVubmVyIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIERvY2tlciBuZXR3b3JrIGFuZCBtYW5hZ2VzIHRoZSBsaWZlXG4gICAqIGN5Y2xlIG9mIHRoZSBzZXJ2aWNlIGNvbnRhaW5lcnMuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlcz86IFJlY29yZDxzdHJpbmcsIENvbnRhaW5lck9wdGlvbnM+O1xuXG4gIC8qKlxuICAgKiBUb29scyByZXF1aXJlZCBmb3IgdGhpcyBqb2IuIFRyYW5zbGF0ZXMgaW50byBgYWN0aW9ucy9zZXR1cC14eHhgIHN0ZXBzIGF0XG4gICAqIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IHRvb2xzPzogVG9vbHM7XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIHRvb2xzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xzIHtcbiAgLyoqXG4gICAqIFNldHVwIGphdmEgKHRlbXVyaW4gZGlzdHJpYnV0aW9uKS5cbiAgICogQGRlZmF1bHQgLSBub3QgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBqYXZhPzogVG9vbFJlcXVpcmVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXR1cCBweXRob24uXG4gICAqIEBkZWZhdWx0IC0gbm90IGluc3RhbGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHl0aG9uPzogVG9vbFJlcXVpcmVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXR1cCBnb2xhbmcuXG4gICAqIEBkZWZhdWx0IC0gbm90IGluc3RhbGxlZFxuICAgKi9cbiAgcmVhZG9ubHkgZ28/OiBUb29sUmVxdWlyZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFNldHVwIG5vZGUuanNcbiAgICogQGRlZmF1bHQgLSBub3QgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBub2RlPzogVG9vbFJlcXVpcmVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXR1cCAuTkVUIENvcmVcbiAgICogQGRlZmF1bHQgLSBub3QgaW5zdGFsbGVkXG4gICAqL1xuICByZWFkb25seSBkb3RuZXQ/OiBUb29sUmVxdWlyZW1lbnQ7XG59XG5cbi8qKlxuICogVmVyc2lvbiByZXF1aXJlbWVudCBmb3IgdG9vbHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbFJlcXVpcmVtZW50IHtcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBhdmFpbGFibGUgc2NvcGVzIGFuZCBhY2Nlc3MgdmFsdWVzIGZvciB3b3JrZmxvdyBwZXJtaXNzaW9ucy4gSWYgeW91XG4gKiBzcGVjaWZ5IHRoZSBhY2Nlc3MgZm9yIGFueSBvZiB0aGVzZSBzY29wZXMsIGFsbCB0aG9zZSB0aGF0IGFyZSBub3RcbiAqIHNwZWNpZmllZCBhcmUgc2V0IHRvIGBKb2JQZXJtaXNzaW9uLk5PTkVgLCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGJlaGF2aW9yXG4gKiB3aGVuIG5vbmUgaXMgc3BlY2lmaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYlBlcm1pc3Npb25zIHtcbiAgcmVhZG9ubHkgYWN0aW9ucz86IEpvYlBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNoZWNrcz86IEpvYlBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNvbnRlbnRzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgZGVwbG95bWVudHM/OiBKb2JQZXJtaXNzaW9uO1xuICByZWFkb25seSBpZFRva2VuPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgaXNzdWVzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgZGlzY3Vzc2lvbnM/OiBKb2JQZXJtaXNzaW9uO1xuICByZWFkb25seSBwYWNrYWdlcz86IEpvYlBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHBhZ2VzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgcmVwb3NpdG9yeVByb2plY3RzPzogSm9iUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc2VjdXJpdHlFdmVudHM/OiBKb2JQZXJtaXNzaW9uO1xuICByZWFkb25seSBzdGF0dXNlcz86IEpvYlBlcm1pc3Npb247XG59XG5cbi8qKlxuICogVGhlIHBlcm1pc3Npb25zIGF2YWlsYWJsZSB0byBhIEdpdEh1YiBBcHAuXG4gKlxuICogVHlwaWNhbGx5IGEgdG9rZW4gZm9yIGEgR2l0SHViIEFwcCBoYXMgYWxsIHRoZSBhdmFpbGFibGUgc2NvcGVzL3Blcm1pc3Npb25zIGF2YWlsYWJsZSB0byB0aGUgYXBwXG4gKiBpdHNlbGY7IGhvd2V2ZXIsIGEgbW9yZSBsaW1pdGVkIHNldCBvZiBwZXJtaXNzaW9ucyBjYW4gYmUgc3BlY2lmaWVkLiBXaGVuIHBlcm1pc3Npb25zIGFyZSBwcm92aWRlZCxcbiAqICoqb25seSoqIHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbnMgYXJlIGdyYW50ZWQgdG8gdGhlIHRva2VuLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vcmVzdC9hcHBzL2FwcHM/YXBpVmVyc2lvbj0yMDIyLTExLTI4I2NyZWF0ZS1hbi1pbnN0YWxsYXRpb24tYWNjZXNzLXRva2VuLWZvci1hbi1hcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBQZXJtaXNzaW9ucyB7XG4gIHJlYWRvbmx5IGFjdGlvbnM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBhZG1pbmlzdHJhdGlvbj86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNoZWNrcz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IGNvbnRlbnRzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgZGVwbG95bWVudHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBlbnZpcm9ubWVudHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBpc3N1ZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHBhY2thZ2VzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgcGFnZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBwdWxsUmVxdWVzdHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSByZXBvc2l0b3J5QW5ub3VuY2VtZW50QmFubmVycz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlIb29rcz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlQcm9qZWN0PzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc2VjcmV0U2Nhbm5pbmdBbGVydHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBzZWNyZXRzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc2VjdXJpdHlFdmVudHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBzaW5nbGVGaWxlPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgc3RhdHVzZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSB2dWxuZXJhYmlsaXR5QWxlcnRzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgd29ya2Zsb3dzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgbWVtYmVycz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvbkFkbWluaXN0cmF0aW9uPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uQ3VzdG9tUm9sZXM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25Bbm5vdW5jZW1lbnRCYW5uZXJzPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uSG9va3M/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25QbGFuPzogQXBwUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uUHJvamVjdHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25QYWNrYWdlcz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvblNlY3JldHM/OiBBcHBQZXJtaXNzaW9uO1xuICByZWFkb25seSBvcmdhbml6YXRpb25TZWxmSG9zdGVkUnVubmVycz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IG9yZ25haXphdGlvblVzZXJCbG9ja2luZz86IEFwcFBlcm1pc3Npb247XG4gIHJlYWRvbmx5IHRlYW1EaXNjdXNzaW9ucz86IEFwcFBlcm1pc3Npb247XG59XG5cbi8qKlxuICogQWNjZXNzIGxldmVsIGZvciB3b3JrZmxvdyBwZXJtaXNzaW9uIHNjb3Blcy5cbiAqL1xuZXhwb3J0IGVudW0gSm9iUGVybWlzc2lvbiB7XG4gIC8qKiBSZWFkLW9ubHkgYWNjZXNzICovXG4gIFJFQUQgPSBcInJlYWRcIixcblxuICAvKiogUmVhZC13cml0ZSBhY2Nlc3MgKi9cbiAgV1JJVEUgPSBcIndyaXRlXCIsXG5cbiAgLyoqIE5vIGFjY2VzcyBhdCBhbGwgKi9cbiAgTk9ORSA9IFwibm9uZVwiLFxufVxuXG4vKipcbiAqIFRoZSBwZXJtaXNzaW9ucyBhdmFpbGFibGUgZm9yIGFuIGFjY2VzcyB0b2tlbiBmb3IgYSBHaXRIdWIgQXBwLlxuICovXG5leHBvcnQgZW51bSBBcHBQZXJtaXNzaW9uIHtcbiAgLyoqIFJlYWQtb25seSBhY2NjZXNzICovXG4gIFJFQUQgPSBcInJlYWRcIixcbiAgLyoqIFJlYWQtd3JpdGUgYWNjZXNzICovXG4gIFdSSVRFID0gXCJ3cml0ZVwiLFxuICAvKipcbiAgICogUmVhZC13cml0ZSBhbmQgYWRtaW4gYWNjZXNzLlxuICAgKlxuICAgKiBOb3QgYWxsIHBlcm1pc3Npb25zIHN1cHBvcnQgYGFkbWluYC5cbiAgICovXG4gIEFETUlOID0gXCJhZG1pblwiLFxufVxuXG4vKipcbiAqIEFuIG91dHB1dCBiaW5kaW5nIGZvciBhIGpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JTdGVwT3V0cHV0IHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgc3RlcCB0aGF0IGV4cG9zZXMgdGhlIG91dHB1dC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iIG91dHB1dCB0aGF0IGlzIGJlaW5nIGJvdW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0TmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFsbCBzdGVwcyBpbiB0aGUgam9iLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYkRlZmF1bHRzIHtcbiAgLyoqIERlZmF1bHQgcnVuIHNldHRpbmdzLiAqL1xuICByZWFkb25seSBydW4/OiBSdW5TZXR0aW5ncztcbn1cblxuLyoqXG4gKiBSdW4gc2V0dGluZ3MgZm9yIGEgam9iLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1blNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFdoaWNoIHNoZWxsIHRvIHVzZSBmb3IgcnVubmluZyB0aGUgc3RlcC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJiYXNoXCJcbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JraW5nIGRpcmVjdG9yeSB0byB1c2Ugd2hlbiBydW5uaW5nIHRoZSBzdGVwLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaWVsZHMgdGhhdCBkZXNjcmliZSB0aGUgSG93LCBXaHksIFdoZW4sIGFuZCBXaG8gb2YgYSBTdGVwLlxuICogVGhlc2UgZmllbGRzIGNhbiBoYXZlIG5vbmUgcHJlc2VudCwgYnV0IGNhbiBiZSBwcmVzZW50IG9uIGV2ZXJ5IFN0ZXAsIGFuZCBoYXZlIG5vIGVmZmVjdCBvbiBvbmUgYW5vdGhlci5cbiAqXG4gKiBUaGlzIHN0YW5kcyBpbiBjb250cmFzdCB0byB0aGUgQ29tbWFuZCAobm9uLUNvbmZpZ3VyYXRpb24pIGZpZWxkcywgd2hpY2ggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSwgYW5kIGRlc2NyaWJlIHRoZSBXaGF0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdGVwLiBZb3UgY2FuIHVzZSB0aGUgaWQgdG8gcmVmZXJlbmNlIHRoZVxuICAgKiBzdGVwIGluIGNvbnRleHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gdXNlIHRoZSBpZiBjb25kaXRpb25hbCB0byBwcmV2ZW50IGEgam9iIGZyb20gcnVubmluZyB1bmxlc3MgYVxuICAgKiBjb25kaXRpb24gaXMgbWV0LiBZb3UgY2FuIHVzZSBhbnkgc3VwcG9ydGVkIGNvbnRleHQgYW5kIGV4cHJlc3Npb24gdG9cbiAgICogY3JlYXRlIGEgY29uZGl0aW9uYWwuXG4gICAqL1xuICByZWFkb25seSBpZj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBuYW1lIGZvciB5b3VyIHN0ZXAgdG8gZGlzcGxheSBvbiBHaXRIdWIuXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZXRzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3Igc3RlcHMgdG8gdXNlIGluIHRoZSBydW5uZXIgZW52aXJvbm1lbnQuXG4gICAqIFlvdSBjYW4gYWxzbyBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgZW50aXJlIHdvcmtmbG93IG9yIGEgam9iLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgd29ya2luZyBkaXJlY3RvcnkgZm9yIGEgc3RlcC5cbiAgICogT3ZlcnJpZGVzIGEgam9iJ3Mgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoaXMgY29udGFpbnMgdGhlIGZpZWxkcyB0aGF0IGFyZSBjb21tb24gYW1vbmdzdCBib3RoOlxuICogLSBKb2JTdGVwLCB3aGljaCBpcyBhIHN0ZXAgdGhhdCBpcyBwYXJ0IG9mIGEgSm9iIGluIEdpdGh1YiBBY3Rpb25zLiBUaGlzIGlzIGJ5IGZhciB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2UuXG4gKiAtIFRoZSBtZXRhZGF0YSBmaWxlIGBhY3Rpb24ueWFtbGAgdGhhdCBpcyB1c2VkIHRvIGRlZmluZSBhbiBBY3Rpb24gd2hlbiB5b3UgYXJlIGNyZWF0aW5nIG9uZS4gQXMgaW4sIGlmIHlvdSB3ZXJlIGNyZWF0aW5nIGFuIEFjdGlvbiB0byBiZSB1c2VkIGluIGEgSm9iU3RlcC5cbiAqIFRoZXJlIGlzIHNvbWUgb3ZlcmxhcCBiZXR3ZWVuIHRoZSB0d28sIGFuZCB0aGlzIGNhcHR1cmVzIHRoYXQgb3ZlcmxhcC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvY3JlYXRpbmctYWN0aW9ucy9tZXRhZGF0YS1zeW50YXgtZm9yLWdpdGh1Yi1hY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcCBleHRlbmRzIFN0ZXBDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFNlbGVjdHMgYW4gYWN0aW9uIHRvIHJ1biBhcyBwYXJ0IG9mIGEgc3RlcCBpbiB5b3VyIGpvYi4gQW4gYWN0aW9uIGlzIGFcbiAgICogcmV1c2FibGUgdW5pdCBvZiBjb2RlLiBZb3UgY2FuIHVzZSBhbiBhY3Rpb24gZGVmaW5lZCBpbiB0aGUgc2FtZVxuICAgKiByZXBvc2l0b3J5IGFzIHRoZSB3b3JrZmxvdywgYSBwdWJsaWMgcmVwb3NpdG9yeSwgb3IgaW4gYSBwdWJsaXNoZWQgRG9ja2VyXG4gICAqIGNvbnRhaW5lciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1bnMgY29tbWFuZC1saW5lIHByb2dyYW1zIHVzaW5nIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3Mgc2hlbGwuIElmIHlvdSBkb1xuICAgKiBub3QgcHJvdmlkZSBhIG5hbWUsIHRoZSBzdGVwIG5hbWUgd2lsbCBkZWZhdWx0IHRvIHRoZSB0ZXh0IHNwZWNpZmllZCBpblxuICAgKiB0aGUgcnVuIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSBydW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbWFwIG9mIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGRlZmluZWQgYnkgdGhlIGFjdGlvbi4gRWFjaCBpbnB1dCBwYXJhbWV0ZXJcbiAgICogaXMgYSBrZXkvdmFsdWUgcGFpci4gSW5wdXQgcGFyYW1ldGVycyBhcmUgc2V0IGFzIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICogVGhlIHZhcmlhYmxlIGlzIHByZWZpeGVkIHdpdGggSU5QVVRfIGFuZCBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZS5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGg/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKipcbiAqIFRoZXNlIHNldHRpbmdzIGFyZSB1bmlxdWUgdG8gYSBKb2JTdGVwIGZyb20gdGhlIGZpZWxkcyBjb250YWluZWQgd2l0aGluIHRoZSBtZXRhZGF0YSBhY3Rpb24ueWFtbCBmaWxlIHByZXNlbnQgaW4gd2hlbiBjcmVhdGluZyBhIG5ldyBHaXRIdWIgQWN0aW9uLlxuICogVGhlc2UgZmllbGRzIGFyZSBub3QgcHJlc2VudCBpbiBhY3Rpb24ueW1sLCBidXQgYXJlIGluIEpvYlN0ZXAsIHdoaWNoIGFyZSB1c2luZyB3aGVuIGNyZWF0aW5nIHdvcmtmbG93cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JTdGVwQ29uZmlndXJhdGlvbiBleHRlbmRzIFN0ZXBDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFByZXZlbnRzIGEgam9iIGZyb20gZmFpbGluZyB3aGVuIGEgc3RlcCBmYWlscy4gU2V0IHRvIHRydWUgdG8gYWxsb3cgYSBqb2JcbiAgICogdG8gcGFzcyB3aGVuIHRoaXMgc3RlcCBmYWlscy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRpbnVlT25FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtaW51dGVzIHRvIHJ1biB0aGUgc3RlcCBiZWZvcmUga2lsbGluZyB0aGUgcHJvY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRNaW51dGVzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEpvYlN0ZXBzIHJ1biBhcyBwYXJ0IG9mIGEgR2l0SHViIFdvcmtmbG93IEpvYi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvdXNpbmctd29ya2Zsb3dzL3dvcmtmbG93LXN5bnRheC1mb3ItZ2l0aHViLWFjdGlvbnMjam9ic2pvYl9pZHN0ZXBzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iU3RlcCBleHRlbmRzIFN0ZXAsIEpvYlN0ZXBDb25maWd1cmF0aW9uIHt9XG5cbi8qKlxuICogQSBzdHJhdGVneSBjcmVhdGVzIGEgYnVpbGQgbWF0cml4IGZvciB5b3VyIGpvYnMuIFlvdSBjYW4gZGVmaW5lIGRpZmZlcmVudFxuICogdmFyaWF0aW9ucyB0byBydW4gZWFjaCBqb2IgaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iU3RyYXRlZ3kge1xuICAvKipcbiAgICogWW91IGNhbiBkZWZpbmUgYSBtYXRyaXggb2YgZGlmZmVyZW50IGpvYiBjb25maWd1cmF0aW9ucy4gQSBtYXRyaXggYWxsb3dzXG4gICAqIHlvdSB0byBjcmVhdGUgbXVsdGlwbGUgam9icyBieSBwZXJmb3JtaW5nIHZhcmlhYmxlIHN1YnN0aXR1dGlvbiBpbiBhXG4gICAqIHNpbmdsZSBqb2IgZGVmaW5pdGlvbi4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIGEgbWF0cml4IHRvIGNyZWF0ZSBqb2JzXG4gICAqIGZvciBtb3JlIHRoYW4gb25lIHN1cHBvcnRlZCB2ZXJzaW9uIG9mIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIG9wZXJhdGluZ1xuICAgKiBzeXN0ZW0sIG9yIHRvb2wuIEEgbWF0cml4IHJldXNlcyB0aGUgam9iJ3MgY29uZmlndXJhdGlvbiBhbmQgY3JlYXRlcyBhXG4gICAqIGpvYiBmb3IgZWFjaCBtYXRyaXggeW91IGNvbmZpZ3VyZS5cbiAgICpcbiAgICogQSBqb2IgbWF0cml4IGNhbiBnZW5lcmF0ZSBhIG1heGltdW0gb2YgMjU2IGpvYnMgcGVyIHdvcmtmbG93IHJ1bi4gVGhpc1xuICAgKiBsaW1pdCBhbHNvIGFwcGxpZXMgdG8gc2VsZi1ob3N0ZWQgcnVubmVycy5cbiAgICovXG4gIHJlYWRvbmx5IG1hdHJpeD86IEpvYk1hdHJpeDtcblxuICAvKipcbiAgICogV2hlbiBzZXQgdG8gdHJ1ZSwgR2l0SHViIGNhbmNlbHMgYWxsIGluLXByb2dyZXNzIGpvYnMgaWYgYW55IG1hdHJpeCBqb2JcbiAgICogZmFpbHMuIERlZmF1bHQ6IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxGYXN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGpvYnMgdGhhdCBjYW4gcnVuIHNpbXVsdGFuZW91c2x5IHdoZW4gdXNpbmcgYVxuICAgKiBtYXRyaXggam9iIHN0cmF0ZWd5LiBCeSBkZWZhdWx0LCBHaXRIdWIgd2lsbCBtYXhpbWl6ZSB0aGUgbnVtYmVyIG9mIGpvYnNcbiAgICogcnVuIGluIHBhcmFsbGVsIGRlcGVuZGluZyBvbiB0aGUgYXZhaWxhYmxlIHJ1bm5lcnMgb24gR2l0SHViLWhvc3RlZFxuICAgKiB2aXJ0dWFsIG1hY2hpbmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UGFyYWxsZWw/OiBudW1iZXI7XG59XG5cbnR5cGUgSm9iTWF0cml4VmFsdWUgPSBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyO1xuXG4vKipcbiAqIEEgam9iIG1hdHJpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JNYXRyaXgge1xuICAvKipcbiAgICogRWFjaCBvcHRpb24geW91IGRlZmluZSBpbiB0aGUgbWF0cml4IGhhcyBhIGtleSBhbmQgdmFsdWUuIFRoZSBrZXlzIHlvdVxuICAgKiBkZWZpbmUgYmVjb21lIHByb3BlcnRpZXMgaW4gdGhlIG1hdHJpeCBjb250ZXh0IGFuZCB5b3UgY2FuIHJlZmVyZW5jZSB0aGVcbiAgICogcHJvcGVydHkgaW4gb3RoZXIgYXJlYXMgb2YgeW91ciB3b3JrZmxvdyBmaWxlLiBGb3IgZXhhbXBsZSwgaWYgeW91IGRlZmluZVxuICAgKiB0aGUga2V5IG9zIHRoYXQgY29udGFpbnMgYW4gYXJyYXkgb2Ygb3BlcmF0aW5nIHN5c3RlbXMsIHlvdSBjYW4gdXNlIHRoZVxuICAgKiBtYXRyaXgub3MgcHJvcGVydHkgYXMgdGhlIHZhbHVlIG9mIHRoZSBydW5zLW9uIGtleXdvcmQgdG8gY3JlYXRlIGEgam9iXG4gICAqIGZvciBlYWNoIG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqL1xuICByZWFkb25seSBkb21haW4/OiBSZWNvcmQ8c3RyaW5nLCBKb2JNYXRyaXhWYWx1ZVtdPjtcblxuICAvKipcbiAgICogWW91IGNhbiBhZGQgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gYSBidWlsZCBtYXRyaXggam9iIHRoYXRcbiAgICogYWxyZWFkeSBleGlzdHMuIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byB1c2UgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIG5wbVxuICAgKiB3aGVuIHRoZSBqb2IgdGhhdCB1c2VzIHdpbmRvd3MtbGF0ZXN0IGFuZCB2ZXJzaW9uIDggb2Ygbm9kZSBydW5zLCB5b3UgY2FuXG4gICAqIHVzZSBpbmNsdWRlIHRvIHNwZWNpZnkgdGhhdCBhZGRpdGlvbmFsIG9wdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBBcnJheTxSZWNvcmQ8c3RyaW5nLCBKb2JNYXRyaXhWYWx1ZT4+O1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIHJlbW92ZSBhIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGRlZmluZWQgaW4gdGhlIGJ1aWxkIG1hdHJpeFxuICAgKiB1c2luZyB0aGUgZXhjbHVkZSBvcHRpb24uIFVzaW5nIGV4Y2x1ZGUgcmVtb3ZlcyBhIGpvYiBkZWZpbmVkIGJ5IHRoZVxuICAgKiBidWlsZCBtYXRyaXguXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlPzogQXJyYXk8UmVjb3JkPHN0cmluZywgSm9iTWF0cml4VmFsdWU+Pjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHBlcnRhaW5pbmcgdG8gY29udGFpbmVyIGVudmlyb25tZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBEb2NrZXIgaW1hZ2UgdG8gdXNlIGFzIHRoZSBjb250YWluZXIgdG8gcnVuIHRoZSBhY3Rpb24uIFRoZSB2YWx1ZSBjYW5cbiAgICogYmUgdGhlIERvY2tlciBIdWIgaW1hZ2UgbmFtZSBvciBhIHJlZ2lzdHJ5IG5hbWUuXG4gICAqL1xuICByZWFkb25seSBpbWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmIHRoZSBpbWFnZSdzIGNvbnRhaW5lciByZWdpc3RyeSByZXF1aXJlcyBhdXRoZW50aWNhdGlvbiB0byBwdWxsIHRoZVxuICAgKiBpbWFnZSwgeW91IGNhbiB1c2UgY3JlZGVudGlhbHMgdG8gc2V0IGEgbWFwIG9mIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuXG4gICAqIFRoZSBjcmVkZW50aWFscyBhcmUgdGhlIHNhbWUgdmFsdWVzIHRoYXQgeW91IHdvdWxkIHByb3ZpZGUgdG8gdGhlIGRvY2tlclxuICAgKiBsb2dpbiBjb21tYW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbHM/OiBDb250YWluZXJDcmVkZW50aWFscztcblxuICAvKipcbiAgICogU2V0cyBhIG1hcCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFNldHMgYW4gYXJyYXkgb2YgcG9ydHMgdG8gZXhwb3NlIG9uIHRoZSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBwb3J0cz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBTZXRzIGFuIGFycmF5IG9mIHZvbHVtZXMgZm9yIHRoZSBjb250YWluZXIgdG8gdXNlLiBZb3UgY2FuIHVzZSB2b2x1bWVzIHRvXG4gICAqIHNoYXJlIGRhdGEgYmV0d2VlbiBzZXJ2aWNlcyBvciBvdGhlciBzdGVwcyBpbiBhIGpvYi4gWW91IGNhbiBzcGVjaWZ5XG4gICAqIG5hbWVkIERvY2tlciB2b2x1bWVzLCBhbm9ueW1vdXMgRG9ja2VyIHZvbHVtZXMsIG9yIGJpbmQgbW91bnRzIG9uIHRoZVxuICAgKiBob3N0LlxuICAgKlxuICAgKiBUbyBzcGVjaWZ5IGEgdm9sdW1lLCB5b3Ugc3BlY2lmeSB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBwYXRoOlxuICAgKiBgPHNvdXJjZT46PGRlc3RpbmF0aW9uUGF0aD5gLlxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIERvY2tlciBjb250YWluZXIgcmVzb3VyY2Ugb3B0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NyZWF0ZS8jb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgb3B0aW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENyZWRlbnRpYWxzIHRvIHVzZSB0byBhdXRoZW50aWNhdGUgdG8gRG9ja2VyIHJlZ2lzdHJpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyQ3JlZGVudGlhbHMge1xuICAvKiogVGhlIHVzZXJuYW1lLiAqL1xuICByZWFkb25seSB1c2VybmFtZTogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcGFzc3dvcmQuICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHNldCBvZiBhdmFpbGFibGUgdHJpZ2dlcnMgZm9yIEdpdEh1YiBXb3JrZmxvd3MuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3JlZmVyZW5jZS9ldmVudHMtdGhhdC10cmlnZ2VyLXdvcmtmbG93c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaWdnZXJzIHtcbiAgLy8jcmVnaW9uIFNjaGVkdWxlZCBldmVudHNcbiAgLyoqXG4gICAqIFlvdSBjYW4gc2NoZWR1bGUgYSB3b3JrZmxvdyB0byBydW4gYXQgc3BlY2lmaWMgVVRDIHRpbWVzIHVzaW5nIFBPU0lYIGNyb25cbiAgICogc3ludGF4LiBTY2hlZHVsZWQgd29ya2Zsb3dzIHJ1biBvbiB0aGUgbGF0ZXN0IGNvbW1pdCBvbiB0aGUgZGVmYXVsdCBvclxuICAgKiBiYXNlIGJyYW5jaC4gVGhlIHNob3J0ZXN0IGludGVydmFsIHlvdSBjYW4gcnVuIHNjaGVkdWxlZCB3b3JrZmxvd3MgaXNcbiAgICogb25jZSBldmVyeSA1IG1pbnV0ZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9jcm9udGFiLmh0bWwjdGFnXzIwXzI1XzA3XG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IENyb25TY2hlZHVsZU9wdGlvbnNbXTtcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIE1hbnVhbCBldmVudHNcbiAgLyoqXG4gICAqIFlvdSBjYW4gY29uZmlndXJlIGN1c3RvbS1kZWZpbmVkIGlucHV0IHByb3BlcnRpZXMsIGRlZmF1bHQgaW5wdXQgdmFsdWVzLFxuICAgKiBhbmQgcmVxdWlyZWQgaW5wdXRzIGZvciB0aGUgZXZlbnQgZGlyZWN0bHkgaW4geW91ciB3b3JrZmxvdy4gV2hlbiB0aGVcbiAgICogd29ya2Zsb3cgcnVucywgeW91IGNhbiBhY2Nlc3MgdGhlIGlucHV0IHZhbHVlcyBpbiB0aGUgZ2l0aHViLmV2ZW50LmlucHV0c1xuICAgKiBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dEaXNwYXRjaD86IFdvcmtmbG93RGlzcGF0Y2hPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBZb3UgY2FuIHVzZSB0aGUgR2l0SHViIEFQSSB0byB0cmlnZ2VyIGEgd2ViaG9vayBldmVudCBjYWxsZWRcbiAgICogcmVwb3NpdG9yeV9kaXNwYXRjaCB3aGVuIHlvdSB3YW50IHRvIHRyaWdnZXIgYSB3b3JrZmxvdyBmb3IgYWN0aXZpdHkgdGhhdFxuICAgKiBoYXBwZW5zIG91dHNpZGUgb2YgR2l0SHViLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeURpc3BhdGNoPzogUmVwb3NpdG9yeURpc3BhdGNoT3B0aW9ucztcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFdvcmtmbG93IHJldXNlIGV2ZW50c1xuICAvKipcbiAgICogQ2FuIGJlIGNhbGxlZCBmcm9tIGFub3RoZXIgd29ya2Zsb3dcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL2xlYXJuLWdpdGh1Yi1hY3Rpb25zL3JldXNpbmctd29ya2Zsb3dzXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0NhbGw/OiBXb3JrZmxvd0NhbGxPcHRpb25zO1xuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gV2ViaG9vayBldmVudHNcbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBicmFuY2hfcHJvdGVjdGlvbl9ydWxlIGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaFByb3RlY3Rpb25SdWxlPzogQnJhbmNoUHJvdGVjdGlvblJ1bGVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgY2hlY2tfcnVuIGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrUnVuPzogQ2hlY2tSdW5PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgY2hlY2tfc3VpdGUgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tTdWl0ZT86IENoZWNrU3VpdGVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSBzb21lb25lIGNyZWF0ZXMgYSBicmFuY2ggb3IgdGFnLCB3aGljaFxuICAgKiB0cmlnZ2VycyB0aGUgY3JlYXRlIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlPzogQ3JlYXRlT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgc29tZW9uZSBkZWxldGVzIGEgYnJhbmNoIG9yIHRhZywgd2hpY2hcbiAgICogdHJpZ2dlcnMgdGhlIGRlbGV0ZSBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZT86IERlbGV0ZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHNvbWVvbmUgY3JlYXRlcyBhIGRlcGxveW1lbnQsIHdoaWNoIHRyaWdnZXJzXG4gICAqIHRoZSBkZXBsb3ltZW50IGV2ZW50LiBEZXBsb3ltZW50cyBjcmVhdGVkIHdpdGggYSBjb21taXQgU0hBIG1heSBub3QgaGF2ZVxuICAgKiBhIEdpdCByZWYuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50PzogRGVwbG95bWVudE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIGEgdGhpcmQgcGFydHkgcHJvdmlkZXMgYSBkZXBsb3ltZW50IHN0YXR1cyxcbiAgICogd2hpY2ggdHJpZ2dlcnMgdGhlIGRlcGxveW1lbnRfc3RhdHVzIGV2ZW50LiBEZXBsb3ltZW50cyBjcmVhdGVkIHdpdGggYVxuICAgKiBjb21taXQgU0hBIG1heSBub3QgaGF2ZSBhIEdpdCByZWYuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50U3RhdHVzPzogRGVwbG95bWVudFN0YXR1c09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBkaXNjdXNzaW9uIGV2ZW50IG9jY3Vycy4gTW9yZSB0aGFuIG9uZSBhY3Rpdml0eSB0eXBlIHRyaWdnZXJzIHRoaXMgZXZlbnQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vZ3JhcGhxbC9ndWlkZXMvdXNpbmctdGhlLWdyYXBocWwtYXBpLWZvci1kaXNjdXNzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGlzY3Vzc2lvbj86IERpc2N1c3Npb25PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgZGlzY3Vzc2lvbl9jb21tZW50IGV2ZW50IG9jY3Vycy4gTW9yZSB0aGFuIG9uZSBhY3Rpdml0eSB0eXBlIHRyaWdnZXJzIHRoaXMgZXZlbnQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vZ3JhcGhxbC9ndWlkZXMvdXNpbmctdGhlLWdyYXBocWwtYXBpLWZvci1kaXNjdXNzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZGlzY3Vzc2lvbkNvbW1lbnQ/OiBEaXNjdXNzaW9uQ29tbWVudE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHdoZW4gc29tZW9uZSBmb3JrcyBhIHJlcG9zaXRvcnksIHdoaWNoXG4gICAqIHRyaWdnZXJzIHRoZSBmb3JrIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yaz86IEZvcmtPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgd2hlbiBzb21lb25lIGNyZWF0ZXMgb3IgdXBkYXRlcyBhIFdpa2kgcGFnZSwgd2hpY2hcbiAgICogdHJpZ2dlcnMgdGhlIGdvbGx1bSBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IGdvbGx1bT86IEdvbGx1bU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBpc3N1ZV9jb21tZW50IGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGlzc3VlQ29tbWVudD86IElzc3VlQ29tbWVudE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBpc3N1ZXMgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNzdWVzPzogSXNzdWVzT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIGxhYmVsIGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsPzogTGFiZWxPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgd2hlbiBhIHB1bGwgcmVxdWVzdCBpcyBhZGRlZCB0byBhIG1lcmdlIHF1ZXVlLCB3aGljaFxuICAgKiBhZGRzIHRoZSBwdWxsIHJlcXVlc3QgdG8gYSBtZXJnZSBncm91cC5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlR3JvdXA/OiBNZXJnZUdyb3VwT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIG1pbGVzdG9uZSBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBtaWxlc3RvbmU/OiBNaWxlc3RvbmVPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSBzb21lb25lIHB1c2hlcyB0byBhIEdpdEh1YiBQYWdlcy1lbmFibGVkXG4gICAqIGJyYW5jaCwgd2hpY2ggdHJpZ2dlcnMgdGhlIHBhZ2VfYnVpbGQgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBwYWdlQnVpbGQ/OiBQYWdlQnVpbGRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgcHJvamVjdCBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0PzogUHJvamVjdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBwcm9qZWN0X2NhcmQgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdENhcmQ/OiBQcm9qZWN0Q2FyZE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHRoZSBwcm9qZWN0X2NvbHVtbiBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0Q29sdW1uPzogUHJvamVjdENvbHVtbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIHNvbWVvbmUgbWFrZXMgYSBwcml2YXRlIHJlcG9zaXRvcnkgcHVibGljLFxuICAgKiB3aGljaCB0cmlnZ2VycyB0aGUgcHVibGljIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljPzogUHVibGljT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIHB1bGxfcmVxdWVzdCBldmVudCBvY2N1cnMuXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdD86IFB1bGxSZXF1ZXN0T3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIHB1bGxfcmVxdWVzdF9yZXZpZXcgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVsbFJlcXVlc3RSZXZpZXc/OiBQdWxsUmVxdWVzdFJldmlld09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJ1bnMgeW91ciB3b3JrZmxvdyBhbnl0aW1lIGEgY29tbWVudCBvbiBhIHB1bGwgcmVxdWVzdCdzIHVuaWZpZWQgZGlmZiBpc1xuICAgKiBtb2RpZmllZCwgd2hpY2ggdHJpZ2dlcnMgdGhlIHB1bGxfcmVxdWVzdF9yZXZpZXdfY29tbWVudCBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudD86IFB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgcnVucyBpbiB0aGUgY29udGV4dCBvZiB0aGUgYmFzZSBvZiB0aGUgcHVsbCByZXF1ZXN0LCByYXRoZXJcbiAgICogdGhhbiBpbiB0aGUgbWVyZ2UgY29tbWl0IGFzIHRoZSBwdWxsX3JlcXVlc3QgZXZlbnQgZG9lcy4gVGhpcyBwcmV2ZW50c1xuICAgKiBleGVjdXRpbmcgdW5zYWZlIHdvcmtmbG93IGNvZGUgZnJvbSB0aGUgaGVhZCBvZiB0aGUgcHVsbCByZXF1ZXN0IHRoYXRcbiAgICogY291bGQgYWx0ZXIgeW91ciByZXBvc2l0b3J5IG9yIHN0ZWFsIGFueSBzZWNyZXRzIHlvdSB1c2UgaW4geW91ciB3b3JrZmxvdy5cbiAgICogVGhpcyBldmVudCBhbGxvd3MgeW91IHRvIGRvIHRoaW5ncyBsaWtlIGNyZWF0ZSB3b3JrZmxvd3MgdGhhdCBsYWJlbCBhbmRcbiAgICogY29tbWVudCBvbiBwdWxsIHJlcXVlc3RzIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUgZXZlbnQgcGF5bG9hZC5cbiAgICpcbiAgICogV0FSTklORzogVGhlIGBwdWxsX3JlcXVlc3RfdGFyZ2V0YCBldmVudCBpcyBncmFudGVkIHJlYWQvd3JpdGUgcmVwb3NpdG9yeVxuICAgKiB0b2tlbiBhbmQgY2FuIGFjY2VzcyBzZWNyZXRzLCBldmVuIHdoZW4gaXQgaXMgdHJpZ2dlcmVkIGZyb20gYSBmb3JrLlxuICAgKiBBbHRob3VnaCB0aGUgd29ya2Zsb3cgcnVucyBpbiB0aGUgY29udGV4dCBvZiB0aGUgYmFzZSBvZiB0aGUgcHVsbCByZXF1ZXN0LFxuICAgKiB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0aGF0IHlvdSBkbyBub3QgY2hlY2sgb3V0LCBidWlsZCwgb3IgcnVuIHVudHJ1c3RlZFxuICAgKiBjb2RlIGZyb20gdGhlIHB1bGwgcmVxdWVzdCB3aXRoIHRoaXMgZXZlbnQuIEFkZGl0aW9uYWxseSwgYW55IGNhY2hlc1xuICAgKiBzaGFyZSB0aGUgc2FtZSBzY29wZSBhcyB0aGUgYmFzZSBicmFuY2gsIGFuZCB0byBoZWxwIHByZXZlbnQgY2FjaGVcbiAgICogcG9pc29uaW5nLCB5b3Ugc2hvdWxkIG5vdCBzYXZlIHRoZSBjYWNoZSBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXRcbiAgICogdGhlIGNhY2hlIGNvbnRlbnRzIHdlcmUgYWx0ZXJlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3NlY3VyaXR5bGFiLmdpdGh1Yi5jb20vcmVzZWFyY2gvZ2l0aHViLWFjdGlvbnMtcHJldmVudGluZy1wd24tcmVxdWVzdHNcbiAgICovXG4gIHJlYWRvbmx5IHB1bGxSZXF1ZXN0VGFyZ2V0PzogUHVsbFJlcXVlc3RUYXJnZXRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgd2hlbiBzb21lb25lIHB1c2hlcyB0byBhIHJlcG9zaXRvcnkgYnJhbmNoLCB3aGljaFxuICAgKiB0cmlnZ2VycyB0aGUgcHVzaCBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHB1c2g/OiBQdXNoT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgYSBwYWNrYWdlIGlzIHB1Ymxpc2hlZCBvciB1cGRhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaXN0cnlQYWNrYWdlPzogUmVnaXN0cnlQYWNrYWdlT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIHJlbGVhc2UgZXZlbnQgb2NjdXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZT86IFJlbGVhc2VPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBSdW5zIHlvdXIgd29ya2Zsb3cgYW55dGltZSB0aGUgc3RhdHVzIG9mIGEgR2l0IGNvbW1pdCBjaGFuZ2VzLCB3aGljaFxuICAgKiB0cmlnZ2VycyB0aGUgc3RhdHVzIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogU3RhdHVzT3B0aW9ucztcblxuICAvKipcbiAgICogUnVucyB5b3VyIHdvcmtmbG93IGFueXRpbWUgdGhlIHdhdGNoIGV2ZW50IG9jY3Vycy5cbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoPzogV2F0Y2hPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IG9jY3VycyB3aGVuIGEgd29ya2Zsb3cgcnVuIGlzIHJlcXVlc3RlZCBvciBjb21wbGV0ZWQsIGFuZFxuICAgKiBhbGxvd3MgeW91IHRvIGV4ZWN1dGUgYSB3b3JrZmxvdyBiYXNlZCBvbiB0aGUgZmluaXNoZWQgcmVzdWx0IG9mIGFub3RoZXJcbiAgICogd29ya2Zsb3cuIEEgd29ya2Zsb3cgcnVuIGlzIHRyaWdnZXJlZCByZWdhcmRsZXNzIG9mIHRoZSByZXN1bHQgb2YgdGhlXG4gICAqIHByZXZpb3VzIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dSdW4/OiBXb3JrZmxvd1J1bk9wdGlvbnM7XG4gIC8vI2VuZHJlZ2lvblxufVxuXG4vKipcbiAqIENST04gc2NoZWR1bGUgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcm9uU2NoZWR1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9jcm9udGFiLmh0bWwjdGFnXzIwXzI1XzA3XG4gICAqL1xuICByZWFkb25seSBjcm9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwb3NpdG9yeSBkaXNwYXRjaCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9zaXRvcnlEaXNwYXRjaE9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEJyYW5jaCBQcm90ZWN0aW9uIFJ1bGUgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5jaFByb3RlY3Rpb25SdWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjcmVhdGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCI+O1xufVxuXG4vKipcbiAqIENoZWNrIHJ1biBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrUnVuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XG4gICAgXCJjcmVhdGVcIiB8IFwicmVyZXF1ZXN0ZWRcIiB8IFwiY29tcGxldGVkXCIgfCBcInJlcXVlc3RlZF9hY3Rpb25cIlxuICA+O1xufVxuXG4vKipcbiAqIENoZWNrIHN1aXRlIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1N1aXRlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjb21wbGV0ZWRcIiB8IFwicmVxdWVzdGVkXCIgfCBcInJlcmVxdWVzdGVkXCI+O1xufVxuXG4vKipcbiAqIERpc2N1c3Npb24gb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc2N1c3Npb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICB8IFwiY3JlYXRlZFwiXG4gICAgfCBcImVkaXRlZFwiXG4gICAgfCBcInRyYW5zZmVycmVkXCJcbiAgICB8IFwicGlubmVkXCJcbiAgICB8IFwidW5waW5uZWRcIlxuICAgIHwgXCJsYWJlbGVkXCJcbiAgICB8IFwidW5sYWJlbGVkXCJcbiAgICB8IFwibG9ja2VkXCJcbiAgICB8IFwidW5sb2NrZWRcIlxuICAgIHwgXCJjYXRlZ29yeV9jaGFuZ2VkXCJcbiAgICB8IFwiYW5zd2VyZWRcIlxuICAgIHwgXCJ1bmFuc3dlcmVkXCJcbiAgPjtcbn1cblxuLyoqXG4gKiBEaXNjdXNzaW9uIGNvbW1lbnQgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc2N1c3Npb25Db21tZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjcmVhdGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCI+O1xufVxuXG4vKipcbiAqIElzc3VlIGNvbW1lbnQgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElzc3VlQ29tbWVudE9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFwiY3JlYXRlZFwiIHwgXCJlZGl0ZWRcIiB8IFwiZGVsZXRlZFwiPjtcbn1cblxuLyoqXG4gKiBJc3N1ZXMgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElzc3Vlc09wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFxuICAgIHwgXCJvcGVuZWRcIlxuICAgIHwgXCJlZGl0ZWRcIlxuICAgIHwgXCJkZWxldGVkXCJcbiAgICB8IFwidHJhbnNmZXJyZWRcIlxuICAgIHwgXCJwaW5uZWRcIlxuICAgIHwgXCJ1bnBpbm5lZFwiXG4gICAgfCBcImNsb3NlZFwiXG4gICAgfCBcInJlb3BlbmVkXCJcbiAgICB8IFwiYXNzaWduZWRcIlxuICAgIHwgXCJ1bmFzc2lnbmVkXCJcbiAgICB8IFwibGFiZWxlZFwiXG4gICAgfCBcInVubGFiZWxlZFwiXG4gICAgfCBcImxvY2tlZFwiXG4gICAgfCBcInVubG9ja2VkXCJcbiAgICB8IFwibWlsZXN0b25lZFwiXG4gICAgfCBcImRlbWlsZXN0b25lZFwiXG4gID47XG59XG5cbi8qKlxuICogTGFiZWwgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjcmVhdGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCI+O1xufVxuXG4vKipcbiAqIE1lcmdlIGdyb3VwIG9wdGlvbnMuXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXJnZUdyb3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVuIHVzaW5nIHRoZSBtZXJnZV9ncm91cCBldmVudHMsIHlvdSBjYW4gY29uZmlndXJlIGEgd29ya2Zsb3dcbiAgICogdG8gcnVuIG9uIHNwZWNpZmljIGJhc2UgYnJhbmNoZXMuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBicmFuY2hlcyB3aWxsXG4gICAqIHRyaWdnZXIgdGhlIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBNaWxlc3RvbmUgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pbGVzdG9uZU9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFxuICAgIFwiY3JlYXRlZFwiIHwgXCJjbG9zZWRcIiB8IFwib3BlbmVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCJcbiAgPjtcbn1cblxuLyoqXG4gKiBQcm9qZWN0IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XG4gICAgXCJjcmVhdGVkXCIgfCBcInVwZGF0ZWRcIiB8IFwiY2xvc2VkXCIgfCBcInJlb3BlbmVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCJcbiAgPjtcbn1cblxuLyoqXG4gKiBQcm9qZWN0IGNhcmQgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3RDYXJkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XG4gICAgXCJjcmVhdGVkXCIgfCBcIm1vdmVkXCIgfCBcImNvbnZlcnRlZFwiIHwgXCJlZGl0ZWRcIiB8IFwiZGVsZXRlZFwiXG4gID47XG59XG5cbi8qKlxuICogUHJvYmplY3QgY29sdW1uIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0Q29sdW1uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjcmVhdGVkXCIgfCBcInVwZGF0ZWRcIiB8IFwibW92ZWRcIiB8IFwiZGVsZXRlZFwiPjtcbn1cblxuLyoqXG4gKiBQdWxsIHJlcXVlc3Qgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1bGxSZXF1ZXN0T3B0aW9ucyBleHRlbmRzIFB1c2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICB8IFwiYXNzaWduZWRcIlxuICAgIHwgXCJ1bmFzc2lnbmVkXCJcbiAgICB8IFwibGFiZWxlZFwiXG4gICAgfCBcInVubGFiZWxlZFwiXG4gICAgfCBcIm9wZW5lZFwiXG4gICAgfCBcImVkaXRlZFwiXG4gICAgfCBcImNsb3NlZFwiXG4gICAgfCBcInJlb3BlbmVkXCJcbiAgICB8IFwic3luY2hyb25pemVcIlxuICAgIHwgXCJyZWFkeV9mb3JfcmV2aWV3XCJcbiAgICB8IFwibG9ja2VkXCJcbiAgICB8IFwidW5sb2NrZWRcIlxuICAgIHwgXCJyZXZpZXdfcmVxdWVzdGVkXCJcbiAgICB8IFwicmV2aWV3X3JlcXVlc3RfcmVtb3ZlZFwiXG4gID47XG59XG5cbi8qKlxuICogUHVsbCByZXF1ZXN0IHJldmlldyBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVsbFJlcXVlc3RSZXZpZXdPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcInN1Ym1pdHRlZFwiIHwgXCJlZGl0ZWRcIiB8IFwiZGlzbWlzc2VkXCI+O1xufVxuXG4vKipcbiAqIFB1bGwgcmVxdWVzdCByZXZpZXcgY29tbWVudCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVsbFJlcXVlc3RSZXZpZXdDb21tZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XCJjcmVhdGVkXCIgfCBcImVkaXRlZFwiIHwgXCJkZWxldGVkXCI+O1xufVxuXG4vKipcbiAqIFB1bGwgcmVxdWVzdCB0YXJnZXQgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdFRhcmdldE9wdGlvbnMgZXh0ZW5kcyBQdXNoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCBhY3Rpdml0eSB0eXBlcyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbGwgYWN0aXZpdHkgdHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVzPzogQXJyYXk8XG4gICAgfCBcImFzc2lnbmVkXCJcbiAgICB8IFwidW5hc3NpZ25lZFwiXG4gICAgfCBcImxhYmVsZWRcIlxuICAgIHwgXCJ1bmxhYmVsZWRcIlxuICAgIHwgXCJvcGVuZWRcIlxuICAgIHwgXCJlZGl0ZWRcIlxuICAgIHwgXCJjbG9zZWRcIlxuICAgIHwgXCJyZW9wZW5lZFwiXG4gICAgfCBcInN5bmNocm9uaXplXCJcbiAgICB8IFwicmVhZHlfZm9yX3Jldmlld1wiXG4gICAgfCBcImxvY2tlZFwiXG4gICAgfCBcInVubG9ja2VkXCJcbiAgICB8IFwicmV2aWV3X3JlcXVlc3RlZFwiXG4gICAgfCBcInJldmlld19yZXF1ZXN0X3JlbW92ZWRcIlxuICA+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHB1c2gtbGlrZSBldmVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVzaE9wdGlvbnMge1xuICAvKipcbiAgICogV2hlbiB1c2luZyB0aGUgcHVzaCwgcHVsbF9yZXF1ZXN0IGFuZCBwdWxsX3JlcXVlc3RfdGFyZ2V0IGV2ZW50cywgeW91IGNhbiBjb25maWd1cmUgYSB3b3JrZmxvd1xuICAgKiB0byBydW4gb24gc3BlY2lmaWMgYnJhbmNoZXMgb3IgdGFncy4gRm9yIGEgcHVsbF9yZXF1ZXN0IGV2ZW50LCBvbmx5XG4gICAqIGJyYW5jaGVzIGFuZCB0YWdzIG9uIHRoZSBiYXNlIGFyZSBldmFsdWF0ZWQuIElmIHlvdSBkZWZpbmUgb25seSB0YWdzIG9yXG4gICAqIG9ubHkgYnJhbmNoZXMsIHRoZSB3b3JrZmxvdyB3b24ndCBydW4gZm9yIGV2ZW50cyBhZmZlY3RpbmcgdGhlIHVuZGVmaW5lZFxuICAgKiBHaXQgcmVmLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvcmVmZXJlbmNlL3dvcmtmbG93LXN5bnRheC1mb3ItZ2l0aHViLWFjdGlvbnMjZmlsdGVyLXBhdHRlcm4tY2hlYXQtc2hlZXRcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZW4gdXNpbmcgdGhlIHB1c2gsIHB1bGxfcmVxdWVzdCBhbmQgcHVsbF9yZXF1ZXN0X3RhcmdldCBldmVudHMsIHlvdSBjYW4gY29uZmlndXJlIGEgd29ya2Zsb3dcbiAgICogdG8gcnVuIG9uIHNwZWNpZmljIGJyYW5jaGVzIG9yIHRhZ3MuIEZvciBhIHB1bGxfcmVxdWVzdCBldmVudCwgb25seVxuICAgKiBicmFuY2hlcyBhbmQgdGFncyBvbiB0aGUgYmFzZSBhcmUgZXZhbHVhdGVkLiBJZiB5b3UgZGVmaW5lIG9ubHkgdGFncyBvclxuICAgKiBvbmx5IGJyYW5jaGVzLCB0aGUgd29ya2Zsb3cgd29uJ3QgcnVuIGZvciBldmVudHMgYWZmZWN0aW5nIHRoZSB1bmRlZmluZWRcbiAgICogR2l0IHJlZi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL3JlZmVyZW5jZS93b3JrZmxvdy1zeW50YXgtZm9yLWdpdGh1Yi1hY3Rpb25zI2ZpbHRlci1wYXR0ZXJuLWNoZWF0LXNoZWV0XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZW4gdXNpbmcgdGhlIHB1c2gsIHB1bGxfcmVxdWVzdCBhbmQgcHVsbF9yZXF1ZXN0X3RhcmdldCBldmVudHMsIHlvdSBjYW4gY29uZmlndXJlIGEgd29ya2Zsb3dcbiAgICogdG8gcnVuIHdoZW4gYXQgbGVhc3Qgb25lIGZpbGUgZG9lcyBub3QgbWF0Y2ggcGF0aHMtaWdub3JlIG9yIGF0IGxlYXN0IG9uZVxuICAgKiBtb2RpZmllZCBmaWxlIG1hdGNoZXMgdGhlIGNvbmZpZ3VyZWQgcGF0aHMuIFBhdGggZmlsdGVycyBhcmUgbm90XG4gICAqIGV2YWx1YXRlZCBmb3IgcHVzaGVzIHRvIHRhZ3MuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9yZWZlcmVuY2Uvd29ya2Zsb3ctc3ludGF4LWZvci1naXRodWItYWN0aW9ucyNmaWx0ZXItcGF0dGVybi1jaGVhdC1zaGVldFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZWdpc3RyeSBwYWNrYWdlIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RyeVBhY2thZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcInB1Ymxpc2hlZFwiIHwgXCJ1cGRhdGVkXCI+O1xufVxuXG4vKipcbiAqIFJlbGVhc2Ugb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoaWNoIGFjdGl2aXR5IHR5cGVzIHRvIHRyaWdnZXIgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIGFsbCBhY3Rpdml0eSB0eXBlc1xuICAgKi9cbiAgcmVhZG9ubHkgdHlwZXM/OiBBcnJheTxcbiAgICB8IFwicHVibGlzaGVkXCJcbiAgICB8IFwidW5wdWJsaXNoZWRcIlxuICAgIHwgXCJjcmVhdGVkXCJcbiAgICB8IFwiZWRpdGVkXCJcbiAgICB8IFwiZGVsZXRlZFwiXG4gICAgfCBcInByZXJlbGVhc2VkXCJcbiAgICB8IFwicmVsZWFzZWRcIlxuICA+O1xufVxuXG4vKipcbiAqIFdhdGNoIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYXRjaE9wdGlvbnMge1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFwic3RhcnRlZFwiPjtcbn1cblxuLyoqXG4gKiBXb3JrZmxvdyBydW4gb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UnVuT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCB3b3JrZmxvdyB0byB0cmlnZ2VyIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdHMgLSBhbnkgd29ya2Zsb3dzXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd3M/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogV2hpY2ggYWN0aXZpdHkgdHlwZXMgdG8gdHJpZ2dlciBvbi5cbiAgICpcbiAgICogQGRlZmF1bHRzIC0gYWxsIGFjdGl2aXR5IHR5cGVzXG4gICAqL1xuICByZWFkb25seSB0eXBlcz86IEFycmF5PFwiY29tcGxldGVkXCIgfCBcInJlcXVlc3RlZFwiPjtcbiAgLyoqXG4gICAqIFdoaWNoIGJyYW5jaGVzIG9yIGJyYW5jaC1pZ25vcmUgdG8gbGltaXQgdGhlIHRyaWdnZXIgdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0cyAtIG5vIGJyYW5jaCBsaW1pdHNcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogQXJyYXk8c3RyaW5nPjtcbn1cblxuLy8jcmVnaW9uIEVtcHR5IE9wdGlvbnMgKGZ1dHVyZS1wcm9vZmluZyB0aGUgQVBJKVxuLyoqXG4gKiBUaGUgV29ya2Zsb3cgZGlzcGF0Y2ggZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93RGlzcGF0Y2hPcHRpb25zIHt9XG5cbi8qKlxuICogVGhlIFdvcmtmbG93IENhbGwgZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93Q2FsbE9wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgQ3JlYXRlIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPcHRpb25zIHt9XG5cbi8qKlxuICogVGhlIERlbGV0ZSBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlT3B0aW9ucyB7fVxuXG4vKipcbiAqIFRoZSBEZXBsb3ltZW50IGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50T3B0aW9ucyB7fVxuXG4vKipcbiAqIFRoZSBEZXBsb3ltZW50IHN0YXR1cyBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YXR1c09wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgRm9yayBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ya09wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgR29sbHVtIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb2xsdW1PcHRpb25zIHt9XG5cbi8qKlxuICogVGhlIFBhZ2UgYnVpbGQgZXZlbnQgYWNjZXB0cyBubyBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VCdWlsZE9wdGlvbnMge31cblxuLyoqXG4gKiBUaGUgUHVibGljIGV2ZW50IGFjY2VwdHMgbm8gb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdWJsaWNPcHRpb25zIHt9XG5cbi8qKlxuICogVGhlIFN0YXR1cyBldmVudCBhY2NlcHRzIG5vIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHVzT3B0aW9ucyB7fVxuLy8jZW5kcmVnaW9uXG4iXX0=
@@ -119,7 +119,7 @@ class GithubWorkflow extends component_1.Component {
119
119
  }
120
120
  exports.GithubWorkflow = GithubWorkflow;
121
121
  _a = JSII_RTTI_SYMBOL_1;
122
- GithubWorkflow[_a] = { fqn: "projen.github.GithubWorkflow", version: "0.78.9" };
122
+ GithubWorkflow[_a] = { fqn: "projen.github.GithubWorkflow", version: "0.78.10" };
123
123
  function snakeCaseKeys(obj) {
124
124
  if (typeof obj !== "object" || obj == null) {
125
125
  return obj;
@@ -267,7 +267,7 @@ class CiConfiguration extends component_1.Component {
267
267
  }
268
268
  exports.CiConfiguration = CiConfiguration;
269
269
  _a = JSII_RTTI_SYMBOL_1;
270
- CiConfiguration[_a] = { fqn: "projen.gitlab.CiConfiguration", version: "0.78.9" };
270
+ CiConfiguration[_a] = { fqn: "projen.gitlab.CiConfiguration", version: "0.78.10" };
271
271
  function snakeCaseKeys(obj, skipTopLevel = false) {
272
272
  if (typeof obj !== "object" || obj == null) {
273
273
  return obj;
@@ -34,5 +34,5 @@ class GitlabConfiguration extends configuration_1.CiConfiguration {
34
34
  }
35
35
  exports.GitlabConfiguration = GitlabConfiguration;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- GitlabConfiguration[_a] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.78.9" };
37
+ GitlabConfiguration[_a] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.78.10" };
38
38
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0bGFiL2dpdGxhYi1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsbURBQWtEO0FBQ2xELGlFQUE2RDtBQUc3RDs7R0FFRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsK0JBQWU7SUFFdEQsWUFBWSxPQUFnQixFQUFFLE9BQWdDO1FBQzVELEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRnZCLG9CQUFlLEdBQXdDLEVBQUUsQ0FBQztJQUcxRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0kscUJBQXFCLENBQUMsTUFBOEM7UUFDekUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLElBQUksQ0FBQyxJQUFJLDBDQUEwQyxJQUFJLElBQUksQ0FDL0QsQ0FBQzthQUNIO1lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSwwQ0FBbUIsQ0FDdEMsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLEVBQ0osSUFBSSxFQUNKLE9BQU8sQ0FDUixDQUFDO1lBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7O0FBOUJILGtEQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpQ29uZmlndXJhdGlvbk9wdGlvbnMgfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHsgQ2lDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgTmVzdGVkQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuL25lc3RlZC1jb25maWd1cmF0aW9uXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuLyoqXG4gKiBBIEdpdExhYiBDSSBmb3IgdGhlIG1haW4gYC5naXRsYWItY2kueW1sYCBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgR2l0bGFiQ29uZmlndXJhdGlvbiBleHRlbmRzIENpQ29uZmlndXJhdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSBuZXN0ZWRUZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE5lc3RlZENvbmZpZ3VyYXRpb24+ID0ge307XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM/OiBDaUNvbmZpZ3VyYXRpb25PcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCwgXCJnaXRsYWItY2lcIiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbmQgYWRkcyBuZXN0ZWQgdGVtcGxhdGVzIHRvIHRoZSBpbmNsdWRlcyBvZiB0aGUgbWFpbiBDSS5cbiAgICogQWRkaXRpb25hbGx5IGFkZHMgdGhlaXIgc3RhZ2VzIHRvIHRoZSBtYWluIENJIGlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IHByZXNlbnQuXG4gICAqIFlvdSBjYW4gZnV0aGVyIGN1c3RvbWl6ZSBuZXN0ZWQgdGVtcGxhdGVzIHRocm91Z2ggdGhlIGBuZXN0ZWRUZW1wbGF0ZXNgIHByb3BlcnR5LlxuICAgKiBFLmcuIGdpdGxhYkNvbmZpZy5uZXN0ZWRUZW1wbGF0ZXNbJ3RlbXBsYXRlTmFtZSddPy5hZGRTdGFnZXMoJ3N0YWdlTmFtZScpXG4gICAqIEBwYXJhbSBjb25maWcgYSByZWNvcmQgdGhlIG5hbWVzIGFuZCBjb25maWd1cmFpdG9ucyBvZiB0aGUgdGVtcGxhdGVzLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZU5lc3RlZFRlbXBsYXRlcyhjb25maWc6IFJlY29yZDxzdHJpbmcsIENpQ29uZmlndXJhdGlvbk9wdGlvbnM+KSB7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgb3B0aW9uc10gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnKSkge1xuICAgICAgaWYgKHRoaXMubmVzdGVkVGVtcGxhdGVzW25hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGAke3RoaXMubmFtZX06IEdpdExhYiBDSSBhbHJlYWR5IGNvbnRhaW5zIHRlbXBsYXRlIFwiJHtuYW1lfVwiLmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRlbXBsYXRlID0gbmV3IE5lc3RlZENvbmZpZ3VyYXRpb24oXG4gICAgICAgIHRoaXMucHJvamVjdCxcbiAgICAgICAgdGhpcyxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgb3B0aW9uc1xuICAgICAgKTtcbiAgICAgIHRoaXMubmVzdGVkVGVtcGxhdGVzW3RlbXBsYXRlLm5hbWVdID0gdGVtcGxhdGU7XG4gICAgICB0aGlzLmFkZEluY2x1ZGVzKHsgbG9jYWw6IHRlbXBsYXRlLnBhdGggfSk7XG4gICAgICB0aGlzLmFkZFN0YWdlcyguLi50ZW1wbGF0ZS5zdGFnZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -15,5 +15,5 @@ class NestedConfiguration extends configuration_1.CiConfiguration {
15
15
  }
16
16
  exports.NestedConfiguration = NestedConfiguration;
17
17
  _a = JSII_RTTI_SYMBOL_1;
18
- NestedConfiguration[_a] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.78.9" };
18
+ NestedConfiguration[_a] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.78.10" };
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2l0bGFiL25lc3RlZC1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsbURBQWtEO0FBSWxEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSwrQkFBZTtJQUV0RCxZQUNFLE9BQWdCLEVBQ2hCLE1BQTJCLEVBQzNCLElBQVksRUFDWixPQUFnQztRQUVoQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDOztBQVZILGtEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lDb25maWd1cmF0aW9uT3B0aW9ucyB9IGZyb20gXCIuXCI7XG5pbXBvcnQgeyBDaUNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5pbXBvcnQgeyBHaXRsYWJDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vZ2l0bGFiLWNvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuXG4vKipcbiAqIEEgR2l0TGFiIENJIGZvciB0ZW1wbGF0ZXMgdGhhdCBhcmUgY3JlYXRlZCBhbmQgaW5jbHVkZWQgaW4gdGhlIGAuZ2l0bGFiLWNpLnltbGAgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5lc3RlZENvbmZpZ3VyYXRpb24gZXh0ZW5kcyBDaUNvbmZpZ3VyYXRpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyZW50OiBHaXRsYWJDb25maWd1cmF0aW9uO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIHBhcmVudDogR2l0bGFiQ29uZmlndXJhdGlvbixcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IENpQ29uZmlndXJhdGlvbk9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCwgbmFtZSwgb3B0aW9ucyk7XG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gIH1cbn1cbiJdfQ==
package/lib/gitpod.js CHANGED
@@ -241,5 +241,5 @@ class Gitpod extends component_1.Component {
241
241
  }
242
242
  exports.Gitpod = Gitpod;
243
243
  _a = JSII_RTTI_SYMBOL_1;
244
- Gitpod[_a] = { fqn: "projen.Gitpod", version: "0.78.9" };
244
+ Gitpod[_a] = { fqn: "projen.Gitpod", version: "0.78.10" };
245
245
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0cG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dpdHBvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUF3QztBQVF4QyxpQ0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFFbEM7Ozs7O0dBS0c7QUFFSDs7R0FFRztBQUNILElBQVksY0F5Qlg7QUF6QkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gseUNBQXVCLENBQUE7SUFDdkI7O09BRUc7SUFDSCwyQ0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILDZDQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsMkNBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCx5Q0FBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUF6QlcsY0FBYyw4QkFBZCxjQUFjLFFBeUJ6QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxZQWlCWDtBQWpCRCxXQUFZLFlBQVk7SUFDdEI7O09BRUc7SUFDSCxpQ0FBaUIsQ0FBQTtJQUNqQjs7T0FFRztJQUNILDZCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILCtCQUFlLENBQUE7SUFDZjs7T0FFRztJQUNILDZCQUFhLENBQUE7QUFDZixDQUFDLEVBakJXLFlBQVksNEJBQVosWUFBWSxRQWlCdkI7QUEyREQ7O0dBRUc7QUFDSCxJQUFZLFlBb0JYO0FBcEJELFdBQVksWUFBWTtJQUN0Qjs7T0FFRztJQUNILDZDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsNkNBQTZCLENBQUE7SUFFN0I7O09BRUc7SUFDSCxpQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILGlDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFwQlcsWUFBWSw0QkFBWixZQUFZLFFBb0J2QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxvQkFVWDtBQVZELFdBQVksb0JBQW9CO0lBQzlCOztPQUVHO0lBQ0gseUNBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCwyQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBVlcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFVL0I7QUFzR0Q7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxxQkFBUztJQVluQyxZQUFZLE9BQWdCLEVBQUUsVUFBeUIsRUFBRTtRQUN2RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFWQSxVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUNoQyxVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBVXRELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUV4QyxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDbEIsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQztRQUVELElBQUksT0FBTyxFQUFFLGdCQUFnQixFQUFFO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7YUFDbEM7U0FDRixDQUFDO1FBRUYsSUFBSSxlQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDdEMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ2hCLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysc0VBQXNFO1lBQ3RFLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLEtBQWdDO1FBQ3BELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFFBQVEsQ0FBQyxHQUFHLEtBQWE7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxjQUFjLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDbkMsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsTUFBdUI7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxhQUFhLENBQUMsT0FBbUI7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDZCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtZQUMxQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsR0FBRyxLQUFlO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksbUJBQW1CLENBQUMsR0FBRyxVQUFtQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7U0FDL0I7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFO1lBQ3ZDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVTthQUNsQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQzFCLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDOztBQXpKSCx3QkEwSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gIElEZXZFbnZpcm9ubWVudCxcbiAgRGV2RW52aXJvbm1lbnRPcHRpb25zLFxuICBEZXZFbnZpcm9ubWVudERvY2tlckltYWdlLFxufSBmcm9tIFwiLi9kZXYtZW52XCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuL3Rhc2tcIjtcbmltcG9ydCB7IFlhbWxGaWxlIH0gZnJvbSBcIi4veWFtbFwiO1xuXG4vKipcbiAqIFJlbGF0aXZlIHBhdGggb2YgR2l0cG9kIGZpbGUgdG8gZ2VuZXJhdGVcbiAqL1xuY29uc3QgR0lUUE9EX0ZJTEUgPSBcIi5naXRwb2QueW1sXCI7XG5cbi8qKlxuICogaHR0cHM6Ly93d3cuZ2l0cG9kLmlvL2RvY3MvY29uZmlndXJhdGlvbi9cbiAqIGh0dHBzOi8vd3d3LmdpdHBvZC5pby9kb2NzL2NvbmZpZy1zdGFydC10YXNrcy9cbiAqIGh0dHBzOi8vd3d3LmdpdHBvZC5pby9kb2NzL3ByZWJ1aWxkcy8jY29uZmlndXJlLXRoZS1naXRodWItYXBwXG4gKiBodHRwczovL3d3dy5naXRwb2QuaW8vZG9jcy92c2NvZGUtZXh0ZW5zaW9ucy9cbiAqL1xuXG4vKipcbiAqIENvbmZpZ3VyZSBob3cgdGhlIHRlcm1pbmFsIHNob3VsZCBiZSBvcGVuZWQgcmVsYXRpdmUgdG8gdGhlIHByZXZpb3VzIHRhc2suXG4gKi9cbmV4cG9ydCBlbnVtIEdpdHBvZE9wZW5Nb2RlIHtcbiAgLyoqXG4gICAqIE9wZW5zIGluIHRoZSBzYW1lIHRhYiBncm91cCByaWdodCBhZnRlciB0aGUgcHJldmlvdXMgdGFiXG4gICAqL1xuICBUQUJfQUZURVIgPSBcInRhYi1hZnRlclwiLFxuICAvKipcbiAgICogT3BlbnMgaW4gdGhlIHNhbWUgdGFiIGdyb3VwIGxlZnQgYmVmb3JlIHRoZSBwcmV2aW91cyB0YWJcbiAgICovXG4gIFRBQl9CRUZPUkUgPSBcInRhYi1iZWZvcmVcIixcbiAgLyoqXG4gICAqIFNwbGl0cyBhbmQgYWRkcyB0aGUgdGVybWluYWwgdG8gdGhlIHJpZ2h0XG4gICAqL1xuICBTUExJVF9SSUdIVCA9IFwic3BsaXQtcmlnaHRcIixcbiAgLyoqXG4gICAqIFNwbGl0cyBhbmQgYWRkcyB0aGUgdGVybWluYWwgdG8gdGhlIGxlZnRcbiAgICovXG4gIFNQTElUX0xFRlQgPSBcInNwbGl0LWxlZnRcIixcbiAgLyoqXG4gICAqIFNwbGl0cyBhbmQgYWRkcyB0aGUgdGVybWluYWwgdG8gdGhlIHRvcFxuICAgKi9cbiAgU1BMSVRfVE9QID0gXCJzcGxpdC10b3BcIixcbiAgLyoqXG4gICAqIFNwbGl0cyBhbmQgYWRkcyB0aGUgdGVybWluYWwgdG8gdGhlIGJvdHRvbVxuICAgKi9cbiAgU1BMSVRfQk9UVE9NID0gXCJzcGxpdC1ib3R0b21cIixcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgd2hlcmUgaW4gdGhlIElERSB0aGUgdGVybWluYWwgc2hvdWxkIGJlIG9wZW5lZC5cbiAqL1xuZXhwb3J0IGVudW0gR2l0cG9kT3BlbkluIHtcbiAgLyoqXG4gICAqIHRoZSBib3R0b20gcGFuZWwgKGRlZmF1bHQpXG4gICAqL1xuICBCT1RUT00gPSBcImJvdHRvbVwiLFxuICAvKipcbiAgICogdGhlIGxlZnQgcGFuZWxcbiAgICovXG4gIExFRlQgPSBcImxlZnRcIixcbiAgLyoqXG4gICAqIHRoZSByaWdodCBwYW5lbFxuICAgKi9cbiAgUklHSFQgPSBcInJpZ2h0XCIsXG4gIC8qKlxuICAgKiB0aGUgbWFpbiBlZGl0b3IgYXJlYVxuICAgKi9cbiAgTUFJTiA9IFwibWFpblwiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyZSBvcHRpb25zIGZvciBhIHRhc2sgdG8gYmUgcnVuIHdoZW4gb3BlbmluZyBhIEdpdHBvZFxuICogd29ya3NwYWNlIChlLmcuIHJ1bm5pbmcgdGVzdHMsIG9yIHN0YXJ0aW5nIGEgZGV2IHNlcnZlcikuXG4gKlxuICogU3RhcnQgTW9kZSAgICAgICAgIHwgRXhlY3V0aW9uXG4gKiBGcmVzaCBXb3Jrc3BhY2UgICAgfCBiZWZvcmUgJiYgaW5pdCAmJiBjb21tYW5kXG4gKiBSZXN0YXJ0IFdvcmtzcGFjZSAgfCBiZWZvcmUgJiYgY29tbWFuZFxuICogU25hcHNob3QgICAgICAgICAgIHwgYmVmb3JlICYmIGNvbW1hbmRcbiAqIFByZWJ1aWxkICAgICAgICAgICB8IGJlZm9yZSAmJiBpbml0ICYmIHByZWJ1aWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0cG9kVGFzayB7XG4gIC8qKlxuICAgKiBSZXF1aXJlZC4gVGhlIHNoZWxsIGNvbW1hbmQgdG8gcnVuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhpcyB0YXNrLlxuICAgKiBAZGVmYXVsdCAtIHRhc2sgbmFtZXMgYXJlIG9taXR0ZWQgd2hlbiBibGFua1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogWW91IGNhbiBjb25maWd1cmUgaG93IHRoZSB0ZXJtaW5hbCBzaG91bGQgYmUgb3BlbmVkIHJlbGF0aXZlIHRvIHRoZSBwcmV2aW91cyB0YXNrLlxuICAgKiBAZGVmYXVsdCBHaXRwb2RPcGVuTW9kZS5UQUJfQUZURVJcbiAgICovXG4gIHJlYWRvbmx5IG9wZW5Nb2RlPzogR2l0cG9kT3Blbk1vZGU7XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gY29uZmlndXJlIHdoZXJlIGluIHRoZSBJREUgdGhlIHRlcm1pbmFsIHNob3VsZCBiZSBvcGVuZWRcbiAgICogQGRlZmF1bHQgR2l0cG9kT3BlbkluLkJPVFRPTVxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbkluPzogR2l0cG9kT3BlbkluO1xuXG4gIC8qKlxuICAgKiBJbiBjYXNlIHlvdSBuZWVkIHRvIHJ1biBzb21ldGhpbmcgZXZlbiBiZWZvcmUgaW5pdCwgdGhhdCBpcyBhIHJlcXVpcmVtZW50IGZvciBib3RoIGluaXQgYW5kIGNvbW1hbmQsXG4gICAqIHlvdSBjYW4gdXNlIHRoZSBiZWZvcmUgcHJvcGVydHkuXG4gICAqIEBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBiZWZvcmU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0IHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgc2hlbGwgY29tbWFuZHMgdGhhdCBzaG91bGQgb25seSBiZSBleGVjdXRlZCBhZnRlciBhIHdvcmtzcGFjZVxuICAgKiB3YXMgZnJlc2hseSBjbG9uZWQgYW5kIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIHNvbWVob3cuIFN1Y2ggdGFza3MgYXJlIHVzdWFsbHkgYnVpbGRzIG9yIGRvd25sb2FkaW5nXG4gICAqIGRlcGVuZGVuY2llcy4gQW55dGhpbmcgeW91IG9ubHkgd2FudCB0byBkbyBvbmNlIGJ1dCBub3Qgd2hlbiB5b3UgcmVzdGFydCBhIHdvcmtzcGFjZSBvciBzdGFydCBhIHNuYXBzaG90LlxuICAgKiBAZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgaW5pdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wdGlvbmFsIHByZWJ1aWxkIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZCBkdXJpbmcgcHJlYnVpbGRzLiBJdCBpcyBtZWFudCB0byBydW4gYWRkaXRpb25hbCBsb25nIHJ1bm5pbmdcbiAgICogcHJvY2Vzc2VzIHRoYXQgY291bGQgYmUgdXNlZnVsLCBlLmcuIHJ1bm5pbmcgdGVzdCBzdWl0ZXMuXG4gICAqIEBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBwcmVidWlsZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IHRvIGRvIHdoZW4gYSBzZXJ2aWNlIG9uIGEgcG9ydCBpcyBkZXRlY3RlZC5cbiAqL1xuZXhwb3J0IGVudW0gR2l0cG9kT25PcGVuIHtcbiAgLyoqXG4gICAqIE9wZW4gYSBuZXcgYnJvd3NlciB0YWJcbiAgICovXG4gIE9QRU5fQlJPV1NFUiA9IFwib3Blbi1icm93c2VyXCIsXG5cbiAgLyoqXG4gICAqIE9wZW4gYSBwcmV2aWV3IG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBJREVcbiAgICovXG4gIE9QRU5fUFJFVklFVyA9IFwib3Blbi1wcmV2aWV3XCIsXG5cbiAgLyoqXG4gICAqIFNob3cgYSBub3RpZmljYXRpb24gYXNraW5nIHRoZSB1c2VyIHdoYXQgdG8gZG8gKGRlZmF1bHQpXG4gICAqL1xuICBOT1RJRlkgPSBcIm5vdGlmeVwiLFxuXG4gIC8qKlxuICAgKiBEbyBub3RoaW5nLlxuICAgKi9cbiAgSUdOT1JFID0gXCJpZ25vcmVcIixcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBwb3J0IHZpc2liaWxpdHkgc2hvdWxkIGJlIHByaXZhdGUgb3IgcHVibGljXG4gKi9cbmV4cG9ydCBlbnVtIEdpdHBvZFBvcnRWaXNpYmlsaXR5IHtcbiAgLyoqXG4gICAqIEFsbG93cyBldmVyeW9uZSB3aXRoIHRoZSBwb3J0IFVSTCB0byBhY2Nlc3MgdGhlIHBvcnQgKGRlZmF1bHQpXG4gICAqL1xuICBQVUJMSUMgPSBcInB1YmxpY1wiLFxuXG4gIC8qKlxuICAgKiBPbmx5IGFsbG93cyB1c2VycyB3aXRoIHdvcmtzcGFjZSBhY2Nlc3MgdG8gYWNjZXNzIHRoZSBwb3J0XG4gICAqL1xuICBQUklWQVRFID0gXCJwcml2YXRlXCIsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYW4gZXhwb3NlZCBwb3J0IG9uIEdpdHBvZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdHBvZFBvcnQge1xuICAvKipcbiAgICogQSBwb3J0IHRoYXQgc2hvdWxkIGJlIGV4cG9zZWQgKGZvcndhcmRlZCkgZnJvbSB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZXhhbXBsZSBcIjgwODBcIlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hhdCB0byBkbyB3aGVuIGEgc2VydmljZSBvbiBhIHBvcnQgaXMgZGV0ZWN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IEdpdHBvZE9uT3Blbi5OT1RJRllcbiAgICovXG4gIHJlYWRvbmx5IG9uT3Blbj86IEdpdHBvZE9uT3BlbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcG9ydCB2aXNpYmlsaXR5IHNob3VsZCBiZSBwcml2YXRlIG9yIHB1YmxpYy5cbiAgICpcbiAgICogQGRlZmF1bHQgR2l0cG9kUG9ydFZpc2liaWxpdHkuUFVCTElDXG4gICAqL1xuICByZWFkb25seSB2aXNpYmlsaXR5PzogR2l0cG9kUG9ydFZpc2liaWxpdHk7XG59XG5cbi8qKlxuICogQ29uZmlndXJlIHRoZSBHaXRwb2QgQXBwIGZvciBwcmVidWlsZHMuXG4gKiBDdXJyZW50bHkgb25seSBHaXRIdWIgaXMgc3VwcG9ydGVkLlxuICogQHNlZSBodHRwczovL3d3dy5naXRwb2QuaW8vZG9jcy9wcmVidWlsZHMvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0cG9kUHJlYnVpbGRzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmb3IgdGhlIG1hc3Rlci9kZWZhdWx0IGJyYW5jaFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBtYXN0ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZm9yIGFsbCBicmFuY2hlcyBpbiB0aGlzIHJlcG9cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGZvciBwdWxsIHJlcXVlc3RzIGNvbWluZyBmcm9tIHRoaXMgcmVwb1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWxsUmVxdWVzdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZm9yIHB1bGwgcmVxdWVzdHMgY29taW5nIGZyb20gZm9ya3NcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB1bGxSZXF1ZXN0c0Zyb21Gb3Jrcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZCBhIGNoZWNrIHRvIHB1bGwgcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGQgYSBcIlJldmlldyBpbiBHaXRwb2RcIiBidXR0b24gYXMgYSBjb21tZW50IHRvIHB1bGwgcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFkZENvbW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGQgYSBcIlJldmlldyBpbiBHaXRwb2RcIiBidXR0b24gdG8gdGhlIHB1bGwgcmVxdWVzdCdzIGRlc2NyaXB0aW9uXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhZGRCYWRnZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZCBhIGxhYmVsIG9uY2UgdGhlIHByZWJ1aWxkIGlzIHJlYWR5IHRvIHB1bGwgcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFkZExhYmVsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3RvciBvcHRpb25zIGZvciB0aGUgR2l0cG9kIGNvbXBvbmVudC5cbiAqXG4gKiBCeSBkZWZhdWx0LCBHaXRwb2QgdXNlcyB0aGUgJ2dpdHBvZC93b3Jrc3BhY2UtZnVsbCcgZG9ja2VyIGltYWdlLlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vZ2l0cG9kLWlvL3dvcmtzcGFjZS1pbWFnZXMvYmxvYi9tYXN0ZXIvZnVsbC9Eb2NrZXJmaWxlXG4gKlxuICogQnkgZGVmYXVsdCwgYWxsIHRhc2tzIHdpbGwgYmUgcnVuIGluIHBhcmFsbGVsLiBUbyBydW4gdGhlIHRhc2tzIGluIHNlcXVlbmNlLFxuICogY3JlYXRlIGEgbmV3IHRhc2sgYW5kIHNwZWNpZnkgdGhlIG90aGVyIHRhc2tzIGFzIHN1YnRhc2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdHBvZE9wdGlvbnMgZXh0ZW5kcyBEZXZFbnZpcm9ubWVudE9wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWwgR2l0cG9kJ3MgR2l0aHViIEFwcCBpbnRlZ3JhdGlvbiBmb3IgcHJlYnVpbGRzXG4gICAqIElmIHRoaXMgaXMgbm90IHNldCBhbmQgR2l0cG9kJ3MgR2l0aHViIEFwcCBpcyBpbnN0YWxsZWQsIHRoZW4gR2l0cG9kIHdpbGwgYXBwbHlcbiAgICogdGhlc2UgZGVmYXVsdHM6IGh0dHBzOi8vd3d3LmdpdHBvZC5pby9kb2NzL3ByZWJ1aWxkcy8jY29uZmlndXJlLXRoZS1naXRodWItYXBwXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlYnVpbGRzPzogR2l0cG9kUHJlYnVpbGRzO1xufVxuXG4vKipcbiAqIFRoZSBHaXRwb2QgY29tcG9uZW50IHdoaWNoIGVtaXRzIC5naXRwb2QueW1sXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRwb2QgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBJRGV2RW52aXJvbm1lbnQge1xuICBwcml2YXRlIGRvY2tlckltYWdlOiBEZXZFbnZpcm9ubWVudERvY2tlckltYWdlIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHByZWJ1aWxkczogR2l0cG9kUHJlYnVpbGRzIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IHRhc2tzID0gbmV3IEFycmF5PEdpdHBvZFRhc2s+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcG9ydHMgPSBuZXcgQXJyYXk8R2l0cG9kUG9ydD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSB2c2NvZGVFeHRlbnNpb25zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRGlyZWN0IGFjY2VzcyB0byB0aGUgZ2l0cG9kIGNvbmZpZ3VyYXRpb24gKGVzY2FwZSBoYXRjaClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBHaXRwb2RPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZG9ja2VySW1hZ2UgPSBvcHRpb25zPy5kb2NrZXJJbWFnZTtcblxuICAgIGlmIChvcHRpb25zPy50YXNrcykge1xuICAgICAgZm9yIChjb25zdCB0YXNrIG9mIG9wdGlvbnMudGFza3MpIHtcbiAgICAgICAgdGhpcy5hZGRUYXNrcyh0YXNrKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8ucHJlYnVpbGRzKSB7XG4gICAgICB0aGlzLmFkZFByZWJ1aWxkcyhvcHRpb25zLnByZWJ1aWxkcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LnBvcnRzKSB7XG4gICAgICB0aGlzLmFkZFBvcnRzKC4uLm9wdGlvbnMucG9ydHMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy52c2NvZGVFeHRlbnNpb25zKSB7XG4gICAgICB0aGlzLmFkZFZzY29kZUV4dGVuc2lvbnMoLi4ub3B0aW9ucy52c2NvZGVFeHRlbnNpb25zKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGltYWdlOiAoKSA9PiB0aGlzLnJlbmRlckRvY2tlckltYWdlKCksXG4gICAgICB0YXNrczogdGhpcy50YXNrcyxcbiAgICAgIGdpdGh1YjogKCkgPT4gdGhpcy5yZW5kZXJQcmVidWlsZHMoKSxcbiAgICAgIHBvcnRzOiB0aGlzLnBvcnRzLFxuICAgICAgdnNjb2RlOiB7XG4gICAgICAgIGV4dGVuc2lvbnM6IHRoaXMudnNjb2RlRXh0ZW5zaW9ucyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIG5ldyBZYW1sRmlsZSh0aGlzLnByb2plY3QsIEdJVFBPRF9GSUxFLCB7XG4gICAgICBvYmo6IHRoaXMuY29uZmlnLFxuICAgICAgb21pdEVtcHR5OiB0cnVlLFxuICAgICAgLy8gR2l0UG9kIG5lZWRzIHRvIHJlYWQgdGhlIGZpbGUgZnJvbSB0aGUgcmVwb3NpdG9yeSBpbiBvcmRlciB0byB3b3JrLlxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGN1c3RvbSBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZSBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQHBhcmFtIGltYWdlIFRoZSBEb2NrZXIgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBhZGREb2NrZXJJbWFnZShpbWFnZTogRGV2RW52aXJvbm1lbnREb2NrZXJJbWFnZSkge1xuICAgIGlmICh0aGlzLmRvY2tlckltYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkb2NrZXJJbWFnZSBjYW5ub3QgYmUgcmVkZWZpbmVkLlwiKTtcbiAgICB9XG4gICAgdGhpcy5kb2NrZXJJbWFnZSA9IGltYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0YXNrcyB0byBydW4gd2hlbiBnaXRwb2Qgc3RhcnRzLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBhbGwgdGFza3Mgd2lsbCBiZSBydW4gaW4gcGFyYWxsZWwuIFRvIHJ1biB0YXNrcyBpbiBzZXF1ZW5jZSxcbiAgICogY3JlYXRlIGEgbmV3IGBUYXNrYCBhbmQgc3BlY2lmeSB0aGUgb3RoZXIgdGFza3MgYXMgc3VidGFza3MuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyBUaGUgbmV3IHRhc2tzXG4gICAqL1xuICBwdWJsaWMgYWRkVGFza3MoLi4udGFza3M6IFRhc2tbXSkge1xuICAgIHRoaXMudGFza3MucHVzaChcbiAgICAgIC4uLnRhc2tzLm1hcCgodGFzaykgPT4gKHtcbiAgICAgICAgbmFtZTogdGFzay5uYW1lLFxuICAgICAgICBjb21tYW5kOiBgbnB4IHByb2plbiAke3Rhc2submFtZX1gLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBwcmVidWlsZHMgY29uZmlndXJhdGlvbiBmb3IgdGhlIEdpdHBvZCBBcHBcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGFkZFByZWJ1aWxkcyhjb25maWc6IEdpdHBvZFByZWJ1aWxkcykge1xuICAgIHRoaXMucHJlYnVpbGRzID0gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHRhc2sgd2l0aCBtb3JlIGdyYW51bGFyIG9wdGlvbnMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGFsbCB0YXNrcyB3aWxsIGJlIHJ1biBpbiBwYXJhbGxlbC4gVG8gcnVuIHRhc2tzIGluIHNlcXVlbmNlLFxuICAgKiBjcmVhdGUgYSBuZXcgYFRhc2tgIGFuZCBzZXQgdGhlIG90aGVyIHRhc2tzIGFzIHN1YnRhc2tzLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgdGFzayBwYXJhbWV0ZXJzXG4gICAqL1xuICBwdWJsaWMgYWRkQ3VzdG9tVGFzayhvcHRpb25zOiBHaXRwb2RUYXNrKSB7XG4gICAgdGhpcy50YXNrcy5wdXNoKHtcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGNvbW1hbmQ6IG9wdGlvbnMuY29tbWFuZCxcbiAgICAgIG9wZW5Nb2RlOiBvcHRpb25zLm9wZW5Nb2RlLFxuICAgICAgb3BlbkluOiBvcHRpb25zLm9wZW5JbixcbiAgICAgIGJlZm9yZTogb3B0aW9ucy5iZWZvcmUsXG4gICAgICBpbml0OiBvcHRpb25zLmluaXQsXG4gICAgICBwcmVidWlsZDogb3B0aW9ucy5wcmVidWlsZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgcG9ydHMgdGhhdCBzaG91bGQgYmUgZXhwb3NlZCAoZm9yd2FyZGVkKSBmcm9tIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwb3J0cyBUaGUgbmV3IHBvcnRzXG4gICAqL1xuICBwdWJsaWMgYWRkUG9ydHMoLi4ucG9ydHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5wb3J0cy5wdXNoKC4uLnBvcnRzLm1hcCgocG9ydCkgPT4gKHsgcG9ydDogcG9ydCB9KSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGxpc3Qgb2YgVlNDb2RlIGV4dGVuc2lvbnMgdGhhdCBzaG91bGQgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWRcbiAgICogaW4gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogVGhlc2UgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IGRlZmluZWQgaW4gdGhlIE9wZW4gVlNYIHJlZ2lzdHJ5LlxuICAgKiBAZXhhbXBsZSAnc2NhbGEtbGFuZy5zY2FsYUAwLjMuOTpPNVhtandZNUd6KzBvRFpBbXFuZUp3PT0nXG4gICAqIEBzZWUgaHR0cHM6Ly93d3cuZ2l0cG9kLmlvL2RvY3MvdnNjb2RlLWV4dGVuc2lvbnMvXG4gICAqXG4gICAqIEBwYXJhbSBleHRlbnNpb25zIFRoZSBleHRlbnNpb24gSURzXG4gICAqL1xuICBwdWJsaWMgYWRkVnNjb2RlRXh0ZW5zaW9ucyguLi5leHRlbnNpb25zOiBHaXRwb2RDb2RlRXh0ZW5zaW9uSWRbXSkge1xuICAgIHRoaXMudnNjb2RlRXh0ZW5zaW9ucy5wdXNoKC4uLmV4dGVuc2lvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJEb2NrZXJJbWFnZSgpIHtcbiAgICBpZiAodGhpcy5kb2NrZXJJbWFnZT8uaW1hZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRvY2tlckltYWdlLmltYWdlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kb2NrZXJJbWFnZT8uZG9ja2VyRmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmlsZTogdGhpcy5kb2NrZXJJbWFnZS5kb2NrZXJGaWxlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclByZWJ1aWxkcygpIHtcbiAgICBpZiAodGhpcy5wcmVidWlsZHMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByZWJ1aWxkczogdGhpcy5wcmVidWlsZHMsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZTIENvZGUgZXh0ZW5zaW9ucyBhcyBkZWZpbmVkIGluIHRoZSBPcGVuIFZTWCByZWdpc3RyeVxuICogRXhhbXBsZTogYHNjYWxhLWxhbmcuc2NhbGFAMC4zLjk6TzVYbWp3WTVHeiswb0RaQW1xbmVKdz09YFxuICovXG50eXBlIEdpdHBvZENvZGVFeHRlbnNpb25JZCA9IHN0cmluZztcbiJdfQ==
@@ -97,7 +97,7 @@ class IgnoreFile extends file_1.FileBase {
97
97
  }
98
98
  exports.IgnoreFile = IgnoreFile;
99
99
  _a = JSII_RTTI_SYMBOL_1;
100
- IgnoreFile[_a] = { fqn: "projen.IgnoreFile", version: "0.78.9" };
100
+ IgnoreFile[_a] = { fqn: "projen.IgnoreFile", version: "0.78.10" };
101
101
  // O(n) hooray!
102
102
  function remove(arr, value) {
103
103
  const idx = arr.indexOf(value);
package/lib/ini.js CHANGED
@@ -26,5 +26,5 @@ class IniFile extends object_file_1.ObjectFile {
26
26
  }
27
27
  exports.IniFile = IniFile;
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- IniFile[_a] = { fqn: "projen.IniFile", version: "0.78.9" };
29
+ IniFile[_a] = { fqn: "projen.IniFile", version: "0.78.10" };
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJCQUEyQjtBQUUzQiwrQ0FBOEQ7QUFROUQ7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSx3QkFBVTtJQUNyQyxZQUFZLE9BQWdCLEVBQUUsUUFBZ0IsRUFBRSxPQUF1QjtRQUNyRSxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsUUFBbUI7UUFDN0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE9BQU87WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUMsRUFBRTtZQUNGLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7O0FBaEJILDBCQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIElOSSBmcm9tIFwiaW5pXCI7XG5pbXBvcnQgeyBJUmVzb2x2ZXIgfSBmcm9tIFwiLi9maWxlXCI7XG5pbXBvcnQgeyBPYmplY3RGaWxlLCBPYmplY3RGaWxlT3B0aW9ucyB9IGZyb20gXCIuL29iamVjdC1maWxlXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBJbmlGaWxlYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmlGaWxlT3B0aW9ucyBleHRlbmRzIE9iamVjdEZpbGVPcHRpb25zIHt9XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJTkkgZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEluaUZpbGUgZXh0ZW5kcyBPYmplY3RGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgb3B0aW9uczogSW5pRmlsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQocmVzb2x2ZXI6IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QganNvbiA9IHN1cGVyLnN5bnRoZXNpemVDb250ZW50KHJlc29sdmVyKTtcbiAgICBpZiAoIWpzb24pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLm1hcmtlciA/IFtgIyAke3RoaXMubWFya2VyfWBdIDogW10pLFxuICAgICAgXCJcIixcbiAgICAgIElOSS5zdHJpbmdpZnkoSlNPTi5wYXJzZShqc29uKSksXG4gICAgXS5qb2luKFwiXFxuXCIpO1xuICB9XG59XG4iXX0=