projen-cdktf-hybrid-construct 0.1.33 → 0.1.36
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.
- package/README.md +1 -1
- package/example/.gitattributes +1 -0
- package/example/.pre-commit-config.yml +8 -0
- package/example/package.json +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +35 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -34,7 +34,7 @@ project.synth();
|
|
34
34
|
- [x] Add dedicated file for HCL templates
|
35
35
|
- [x] Add example folder
|
36
36
|
- [x] Add `terraform` example folder
|
37
|
-
- [
|
37
|
+
- [x] [Auto-generate parts of the docs](https://github.com/terraform-aws-modules/terraform-aws-eks/blob/e90c877a741ab3cc4215376a70f7bcc360b6a3d2/.github/workflows/pre-commit.yml)
|
38
38
|
- [ ] Add testing strategy
|
39
39
|
- [ ] Add deployment scripts to Artifactory
|
40
40
|
- [ ] Add deployment scripts to Github Packages
|
package/example/.gitattributes
CHANGED
@@ -12,6 +12,7 @@
|
|
12
12
|
/.gitignore linguist-generated
|
13
13
|
/.mergify.yml linguist-generated
|
14
14
|
/.npmignore linguist-generated
|
15
|
+
/.pre-commit-config.yml linguist-generated
|
15
16
|
/.prettierignore linguist-generated
|
16
17
|
/.prettierrc.json linguist-generated
|
17
18
|
/.projen/** linguist-generated
|
package/example/package.json
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
"post-compile": "npx projen post-compile",
|
21
21
|
"post-upgrade": "npx projen post-upgrade",
|
22
22
|
"pre-compile": "npx projen pre-compile",
|
23
|
+
"precommit": "npx projen precommit",
|
23
24
|
"release": "npx projen release",
|
24
25
|
"test": "npx projen test",
|
25
26
|
"test:update": "npx projen test:update",
|
package/lib/index.d.ts
CHANGED
@@ -17,6 +17,13 @@ declare type HybridModuleOptions = ConstructLibraryOptions & {
|
|
17
17
|
terraformProvider: string;
|
18
18
|
terraformProviderAwsConfig?: TerraformProviderAwsConfig;
|
19
19
|
terraformProviderAzureConfig?: TerraformProviderAzureConfig;
|
20
|
+
documentationPrecommitHook?: boolean;
|
21
|
+
documentationPrecommitHookOptions?: {
|
22
|
+
version?: string;
|
23
|
+
disableFormatHook?: boolean;
|
24
|
+
disableDocsHook?: boolean;
|
25
|
+
};
|
26
|
+
additionalPrecommitHooks?: Record<string, any>[];
|
20
27
|
};
|
21
28
|
export declare class HybridModule extends ConstructLibrary {
|
22
29
|
constructor(config: HybridModuleOptions);
|
package/lib/index.js
CHANGED
@@ -123,6 +123,15 @@ class HybridModule extends cdk_1.ConstructLibrary {
|
|
123
123
|
eslintOptions: Object.assign({}, config.eslintOptions, {
|
124
124
|
lintProjenRc: false,
|
125
125
|
}),
|
126
|
+
postBuildSteps: [
|
127
|
+
config.documentationPrecommitHook !== false
|
128
|
+
? {
|
129
|
+
id: "documentation-precommit-hook",
|
130
|
+
name: "Documentation Pre-commit Hook",
|
131
|
+
run: "pre-commit run --all-files",
|
132
|
+
}
|
133
|
+
: undefined,
|
134
|
+
].filter((step) => step !== undefined),
|
126
135
|
});
|
127
136
|
const constructVersion = config.constructVersion || "^10.0.25";
|
128
137
|
const cdktfVersion = config.cdktfVersion || "^0.9.4";
|
@@ -252,7 +261,32 @@ terraform -chdir=terraform plan
|
|
252
261
|
`);
|
253
262
|
this.testTask.exec("./scripts/tf-module-test.sh");
|
254
263
|
(_c = this.jest) === null || _c === void 0 ? void 0 : _c.addIgnorePattern("terraform");
|
264
|
+
// Pre-commit hooks
|
265
|
+
if (config.documentationPrecommitHook !== false) {
|
266
|
+
const { additionalPrecommitHooks, documentationPrecommitHookOptions } = config;
|
267
|
+
const { version = "v1.70.1", disableDocsHook = false, disableFormatHook = false, } = documentationPrecommitHookOptions || {};
|
268
|
+
new projen_1.YamlFile(this, ".pre-commit-config.yml", {
|
269
|
+
committed: true,
|
270
|
+
obj: {
|
271
|
+
repos: [
|
272
|
+
{
|
273
|
+
repo: "git://github.com/antonbabenko/pre-commit-terraform",
|
274
|
+
rev: version,
|
275
|
+
hooks: [
|
276
|
+
disableFormatHook ? null : { id: "terraform_fmt" },
|
277
|
+
disableDocsHook ? null : { id: "terraform_docs" },
|
278
|
+
].filter((item) => item !== null),
|
279
|
+
},
|
280
|
+
...(additionalPrecommitHooks !== null && additionalPrecommitHooks !== void 0 ? additionalPrecommitHooks : []),
|
281
|
+
],
|
282
|
+
},
|
283
|
+
});
|
284
|
+
this.tasks.addTask("precommit", {
|
285
|
+
description: "Runs precommit hooks",
|
286
|
+
exec: "pre-commit install",
|
287
|
+
});
|
288
|
+
}
|
255
289
|
}
|
256
290
|
}
|
257
291
|
exports.HybridModule = HybridModule;
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWlFO0FBQ2pFLHdDQUEyRTtBQXdCM0UsTUFBTSxRQUFRLEdBQUc7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLG9CQUFvQixFQUFFLE1BQU07Q0FDN0IsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7Ozs7Ozs7Ozs7OztDQVl4QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCL0IsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCakMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQTJDO0lBQ3RFLEdBQUcsRUFBRTtRQUNILE9BQU8sRUFBRSx1QkFBdUI7S0FDakM7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUseUJBQXlCO0tBQ25DO0NBQ0YsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7OztLQVN2QixDQUFDO0FBRU4sTUFBTSxVQUFXLFNBQVEsaUJBQVE7SUFDL0IsWUFBWSxPQUFnQixFQUFFLElBQVksRUFBVSxPQUFlO1FBQ2pFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ25CLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUgrQyxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBSW5FLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFhLFlBQWEsU0FBUSxzQkFBZ0I7SUFDaEQsWUFBWSxNQUEyQjs7UUFDckMsS0FBSyxDQUFDO1lBQ0osR0FBRyxR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M0MsQ0FBQztDQUNGO0FBOUtELG9DQThLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIsIFByb2plY3QsIFNhbXBsZURpciB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IENvbnN0cnVjdExpYnJhcnksIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5cbnR5cGUgVGVycmFmb3JtUHJvdmlkZXJBd3NDb25maWcgPSB7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICByZXF1aXJlZFByb3ZpZGVyVmVyc2lvbjogc3RyaW5nO1xufTtcblxudHlwZSBUZXJyYWZvcm1Qcm92aWRlckF6dXJlQ29uZmlnID0ge1xuICBsb2NhdGlvbjogc3RyaW5nO1xuICByZXF1aXJlZFByb3ZpZGVyVmVyc2lvbjogc3RyaW5nO1xuICByZXNvdXJjZUdyb3VwTmFtZTogc3RyaW5nO1xufTtcblxudHlwZSBIeWJyaWRNb2R1bGVPcHRpb25zID0gQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgJiB7XG4gIGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcbiAgcmVwb3NpdG9yeTogc3RyaW5nO1xuICBhdXRob3I6IHN0cmluZztcbiAgdGVycmFmb3JtRXhhbXBsZXNGb2xkZXI6IHN0cmluZztcbiAgdGVycmFmb3JtUHJvdmlkZXI6IHN0cmluZztcbiAgdGVycmFmb3JtUHJvdmlkZXJBd3NDb25maWc/OiBUZXJyYWZvcm1Qcm92aWRlckF3c0NvbmZpZztcbiAgdGVycmFmb3JtUHJvdmlkZXJBenVyZUNvbmZpZz86IFRlcnJhZm9ybVByb3ZpZGVyQXp1cmVDb25maWc7XG59O1xuXG5jb25zdCBkZWZhdWx0cyA9IHtcbiAgcHJldHRpZXI6IHRydWUsXG4gIHByb2plbnJjVHM6IHRydWUsXG4gIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBcIm1haW5cIixcbn07XG5cbmNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE15Q29uc3RydWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByb3BlcnR5QTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXlDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBNeUNvbnN0cnVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG59XG5gO1xuXG5jb25zdCBtb2R1bGVTcmNDb2RlID0gYFxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVEZNb2R1bGVTdGFjayB9IGZyb20gXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgTXlBd2Vzb21lTW9kdWxlIGV4dGVuZHMgVEZNb2R1bGVTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4vLyBUaGlzIGlzIHRoZSBuYW1lIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIHVuZGVyLiBcbi8vIFdlIGV4cGVjdCBhIFwibXktYXdlc29tZS1tb2R1bGUubWRcIiBmaWxlIGluIHRoaXMgZGlyZWN0b3J5LlxuLy8gVGhlIFJFQURNRS5tZCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlLlxubmV3IE15QXdlc29tZU1vZHVsZShhcHAsIFwibXktYXdlc29tZS1tb2R1bGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbmNvbnN0IHRlcnJhZm9ybUF3c01haW5TcmNDb2RlID0gYFxudGVycmFmb3JtIHtcbiAgIyBMaW1pdCBwcm92aWRlciB2ZXJzaW9uIChzb21lIG1vZHVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggYXdzIDQueClcbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHtcbiAgICBhd3MgPSB7XG4gICAgICBzb3VyY2UgID0gXCJoYXNoaWNvcnAvYXdzXCJcbiAgICAgIHZlcnNpb24gPSBcIn4+IF9fcmVxdWlyZWRQcm92aWRlclZlcnNpb25fX1wiXG4gICAgfVxuICB9XG4gICMgVGVycmFmb3JtIGJpbmFyeSB2ZXJzaW9uIGNvbnN0cmFpbnRcbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwifj4gMS4xLjBcIlxufVxuXG5cbnByb3ZpZGVyIFwiYXdzXCIge1xuICByZWdpb24gPSBcIl9fcmVnaW9uX19cIlxufVxuYDtcblxuY29uc3QgdGVycmFmb3JtQXp1cmVNYWluU3JjQ29kZSA9IGBcbiMgQ29uZmlndXJlIHRoZSBBenVyZSBwcm92aWRlclxudGVycmFmb3JtIHtcbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHtcbiAgICBhenVyZXJtID0ge1xuICAgICAgc291cmNlICA9IFwiaGFzaGljb3JwL2F6dXJlcm1cIlxuICAgICAgdmVyc2lvbiA9IFwifj4gX19yZXF1aXJlZFByb3ZpZGVyVmVyc2lvbl9fXCJcbiAgICB9XG4gIH1cblxuICByZXF1aXJlZF92ZXJzaW9uID0gXCI+PSAxLjEuMFwiXG59XG5cbnByb3ZpZGVyIFwiYXp1cmVybVwiIHtcbiAgZmVhdHVyZXMge31cbn1cblxucmVzb3VyY2UgXCJhenVyZXJtX3Jlc291cmNlX2dyb3VwXCIgXCJyZ1wiIHtcbiAgbmFtZSAgICAgPSBcIl9fcmVzb3VyY2VHcm91cE5hbWVfX1wiXG4gIGxvY2F0aW9uID0gXCJfX2xvY2F0aW9uX19cIlxufVxuYDtcblxuY29uc3QgdGVycmFmb3JtTWFpblNyY0NvZGVNYXA6IHsgW2tleTogc3RyaW5nXTogeyBzcmNDb2RlOiBzdHJpbmcgfSB9ID0ge1xuICBhd3M6IHtcbiAgICBzcmNDb2RlOiB0ZXJyYWZvcm1Bd3NNYWluU3JjQ29kZSxcbiAgfSxcbiAgYXp1cmU6IHtcbiAgICBzcmNDb2RlOiB0ZXJyYWZvcm1BenVyZU1haW5TcmNDb2RlLFxuICB9LFxufTtcblxuY29uc3QgdGVycmFmb3JtUmVhZG1lRG9jcyA9IGBcbiMgUGxlYXNlIGFkZCBoZXJlIHNvbWUgcHVyZSBIQ0wgdGVzdHMgZm9yIHlvdXIgbW9kdWxlcyBpbiBvcmRlciB0byB0ZXN0IEhDTCBJbnRlcm9wZXJhYmlsaXR5XG5cbkV4YW1wbGVzOlxuXG5tb2R1bGUgXCJteV9hd2Vzb21lX3Rlc3RcIiB7XG4gIHNvdXJjZSA9IFwiLi4vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZXNcIlxuICAuLi52YXJpYWJsZXMuLi5cbn1cbiAgICBgO1xuXG5jbGFzcyBTY3JpcHRGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBwYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgcGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEh5YnJpZE1vZHVsZSBleHRlbmRzIENvbnN0cnVjdExpYnJhcnkge1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IEh5YnJpZE1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbnN0cnVjdFZlcnNpb24gPSBjb25maWcuY29uc3RydWN0VmVyc2lvbiB8fCBcIl4xMC4wLjI1XCI7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gY29uZmlnLmNka3RmVmVyc2lvbiB8fCBcIl4wLjkuNFwiO1xuXG4gICAgdGhpcy5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdFZlcnNpb259YCwgYGNka3RmQCR7Y2RrdGZWZXJzaW9ufWApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhgY2RrdGYtY2xpQCR7Y2RrdGZWZXJzaW9ufWAsIFwidHMtbm9kZVwiKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIik7XG4gICAgdGhpcy5zZXRTY3JpcHQoXCJ0ZXJyYWZvcm06dGVzdFwiLCBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcblxuICAgIC8vIE1vZHVsZSBFbnRyeXBvaW50XG4gICAgdGhpcy5hZGREZXBzKFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCIpO1xuICAgIGNvbnN0IG1vZHVsZURvY3MgPSBgXG4jIE15IEF3ZXNvbWUgTW9kdWxlXG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYGhjbFxubW9kdWxlIFwiZWtzX21hbmFnZWRfbm9kZV9ncm91cFwiIHtcbiAgc291cmNlID0gXCIke1xuICAgIGNvbmZpZy5yZXBvc2l0b3J5XG4gICAgICA/LnJlcGxhY2UoXCJodHRwczovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImh0dHA6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJnaXRodWIuY29tL1wiLCBcIlwiKSB8fCBcIm15LWdpdGh1Yi1yZXBvXCJcbiAgfS8vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZVwiXG5cbn1cblxcYFxcYFxcYFxuICAgIGA7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcInRmTW9kdWxlcy50c1wiOiBtb2R1bGVTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiOiBtb2R1bGVEb2NzLnRyaW0oKSxcbiAgICAgICAgXCJjZGt0Zi5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgIGFwcDogXCJucHggdHMtbm9kZSB0Zk1vZHVsZXMudHNcIixcbiAgICAgICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1wiaGFzaGljb3JwL251bGxAMy4xLjFcIl0sIC8vIFdlIG5lZWQgYXQgbGVhc3QgYSBwcm92aWRlciBmb3IgZ2V0IHRvIHN1Y2NlZWRcbiAgICAgICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtdLFxuICAgICAgICAgICAgb3V0cHV0OiBcIm1vZHVsZXNcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFJldHJpZXZlIGNvcnJlY3QgVEYgbWFpbiBzdHVmZlxuICAgIGxldCBtYWluVGZGaWxlID1cbiAgICAgIHRlcnJhZm9ybU1haW5TcmNDb2RlTWFwW2NvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcl0uc3JjQ29kZS50cmltKCk7XG5cbiAgICBsZXQgY29uZmlnUHJvcGVydHk6IGFueSA9IHt9O1xuICAgIHN3aXRjaCAoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVyKSB7XG4gICAgICBjYXNlIFwiYXdzXCI6IHtcbiAgICAgICAgY29uZmlnUHJvcGVydHkgPSBjb25maWcudGVycmFmb3JtUHJvdmlkZXJBd3NDb25maWc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBcImF6dXJlXCI6IHtcbiAgICAgICAgY29uZmlnUHJvcGVydHkgPSBjb25maWcudGVycmFmb3JtUHJvdmlkZXJBenVyZUNvbmZpZztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIk5lZWQgdG8gZGVmaW5lIGNvcnJlY3RseSBhIFByb3ZpZGVyLCBvbmx5IFthd3MsYXp1cmUsZ2NwXSBhbGxvd2VkXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBPYmplY3Qua2V5cyhjb25maWdQcm9wZXJ0eSkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIG1haW5UZkZpbGUgPSBtYWluVGZGaWxlLnJlcGxhY2UoYF9fJHtrZXl9X19gLCBjb25maWdQcm9wZXJ0eVtrZXldKTtcbiAgICB9KTtcblxuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgY29uZmlnLnRlcnJhZm9ybUV4YW1wbGVzRm9sZGVyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcIm1haW4udGZcIjogbWFpblRmRmlsZSxcbiAgICAgICAgXCJSRUFETUUubWRcIjogdGVycmFmb3JtUmVhZG1lRG9jcy50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXCJzcmMvLmdlblwiLCBcInNyYy9jZGt0Zi5vdXRcIiwgXCJzcmMvbW9kdWxlc1wiKTtcbiAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcbiAgICAgIGAke2NvbmZpZy50ZXJyYWZvcm1FeGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybWAsXG4gICAgICBgJHtjb25maWcudGVycmFmb3JtRXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm0ubG9jay5oY2xgXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnByZXBlbmRFeGVjKFwiY2RrdGYgZ2V0XCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgfSk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiY2RrdGYgc3ludGhcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICAgIG5hbWU6IFwiU3ludGhlc2l6ZSBtb2R1bGUgSENMXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgIHRoaXMsXG4gICAgICBcInNjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsXG4gICAgICBgXG4jIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxuU0NSSVBUUEFUSD1cIiQoIGNkIC0tIFwiJChkaXJuYW1lIFwiJDBcIilcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVwiXG5cbiMgY2hlY2sgaWYgdGhlIG1vZHVsZSBmb2xkZXIgaGFzIGJlZW4gZ2VuZXJhdGVkIGFzIGV4cGVjdGVkXG5NT0RVTEVTX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9tb2R1bGVzL3N0YWNrc1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5TUkNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5UQVJHRVRfRk9MREVSPVwiJFNDUklQVFBBVEgvLi4vbW9kdWxlc1wiXG5cbmlmIFsgISAtZCBcIiRNT0RVTEVTX0ZPTERFUlwiIF07IHRoZW5cbiAgZWNobyBcIkV4cGVjdGVkIG1vZHVsZSBmb2xkZXIgdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSXCJcbiAgZXhpdCAxXG5maVxuXG5jZCBcIiRNT0RVTEVTX0ZPTERFUlwiXG5mb3IgZCBpbiAqLyA7IGRvXG4gICAgWyAtTCBcIlxcJHtkJS99XCIgXSAmJiBjb250aW51ZVxuXG4gICAgZGlybmFtZT1cIlxcJHtkJS99XCJcblxuXG4gICAgIyBDaGVjayBpZiBldmVyeXRoaW5nIGlzIGluIHBsYWNlXG4gICAgaWYgWyAhIC1mIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIGNvZGUgZm9yICRkaXJuYW1lIGF0IGNkay50Zi5qc29uIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgaWYgWyAhIC1mIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgRG9jdW1lbnRhdGlvbiBmb3IgJGRpcm5hbWUgYXQgJGRpcm5hbWUubWQgdG8gZXhpc3QgYXQgJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgICMgQ29weSBtb2R1bGUgYW5kIHJlYWRtZSB0b2dldGhlclxuICAgIGVjaG8gXCJDb3B5aW5nIENvZGUgYW5kIFJFQURNRSBmb3IgbW9kdWxlICRkaXJuYW1lXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCJcbiAgICBjcCBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIlxuICAgIGNwIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiXG5kb25lXG5gLnRyaW0oKVxuICAgICk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiLi9zY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLCB7XG4gICAgICBuYW1lOiBcIkNvcHkgSENMIE1vZHVsZXNcIixcbiAgICB9KTtcblxuICAgIC8vIGlnbm9yZSBkaXN0IGluIHRlc3RzXG4gICAgdGhpcy5qZXN0Py5hZGRJZ25vcmVQYXR0ZXJuKFwiZGlzdFwiKTtcblxuICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgdGhpcyxcbiAgICAgIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIsXG4gICAgICBgXG4jIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gaW5pdCAtLXVwZ3JhZGVcbnRlcnJhZm9ybSAtY2hkaXI9dGVycmFmb3JtIGZtdFxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gdmFsaWRhdGVcbnRlcnJhZm9ybSAtY2hkaXI9dGVycmFmb3JtIHBsYW4gICAgIFxuICAgICAgICBgXG4gICAgKTtcblxuICAgIHRoaXMudGVzdFRhc2suZXhlYyhcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJ0ZXJyYWZvcm1cIik7XG4gIH1cbn1cbiJdfQ==
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQTJFO0FBQzNFLHdDQUEyRTtBQWlDM0UsTUFBTSxRQUFRLEdBQUc7SUFDZixRQUFRLEVBQUUsSUFBSTtJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLG9CQUFvQixFQUFFLE1BQU07Q0FDN0IsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7Ozs7Ozs7Ozs7OztDQVl4QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCL0IsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFCakMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQTJDO0lBQ3RFLEdBQUcsRUFBRTtRQUNILE9BQU8sRUFBRSx1QkFBdUI7S0FDakM7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUseUJBQXlCO0tBQ25DO0NBQ0YsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7OztLQVN2QixDQUFDO0FBRU4sTUFBTSxVQUFXLFNBQVEsaUJBQVE7SUFDL0IsWUFBWSxPQUFnQixFQUFFLElBQVksRUFBVSxPQUFlO1FBQ2pFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ25CLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUgrQyxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBSW5FLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFhLFlBQWEsU0FBUSxzQkFBZ0I7SUFDaEQsWUFBWSxNQUEyQjs7UUFDckMsS0FBSyxDQUFDO1lBQ0osR0FBRyxR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cEM7aUJBQ0Y7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQzlCLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLElBQUksRUFBRSxvQkFBb0I7YUFDM0IsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0NBQ0Y7QUF4TkQsb0NBd05DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciwgUHJvamVjdCwgU2FtcGxlRGlyLCBZYW1sRmlsZSB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IENvbnN0cnVjdExpYnJhcnksIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSBcInByb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuXG50eXBlIFRlcnJhZm9ybVByb3ZpZGVyQXdzQ29uZmlnID0ge1xuICByZWdpb246IHN0cmluZztcbiAgcmVxdWlyZWRQcm92aWRlclZlcnNpb246IHN0cmluZztcbn07XG5cbnR5cGUgVGVycmFmb3JtUHJvdmlkZXJBenVyZUNvbmZpZyA9IHtcbiAgbG9jYXRpb246IHN0cmluZztcbiAgcmVxdWlyZWRQcm92aWRlclZlcnNpb246IHN0cmluZztcbiAgcmVzb3VyY2VHcm91cE5hbWU6IHN0cmluZztcbn07XG5cbnR5cGUgSHlicmlkTW9kdWxlT3B0aW9ucyA9IENvbnN0cnVjdExpYnJhcnlPcHRpb25zICYge1xuICBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG4gIGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG4gIHJlcG9zaXRvcnk6IHN0cmluZztcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIHRlcnJhZm9ybUV4YW1wbGVzRm9sZGVyOiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVyOiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVyQXdzQ29uZmlnPzogVGVycmFmb3JtUHJvdmlkZXJBd3NDb25maWc7XG4gIHRlcnJhZm9ybVByb3ZpZGVyQXp1cmVDb25maWc/OiBUZXJyYWZvcm1Qcm92aWRlckF6dXJlQ29uZmlnO1xuICAvLyBSdW4gcHJlLWNvbW1pdCBob29rcyB1c2luZyBsb2NhbCBiaW5hcmllcyAvIG5vdCBhdCBhbGxcbiAgZG9jdW1lbnRhdGlvblByZWNvbW1pdEhvb2s/OiBib29sZWFuO1xuICBkb2N1bWVudGF0aW9uUHJlY29tbWl0SG9va09wdGlvbnM/OiB7XG4gICAgdmVyc2lvbj86IHN0cmluZzsgLy8gR2V0IHRoZSBsYXRlc3QgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL2FudG9uYmFiZW5rby9wcmUtY29tbWl0LXRlcnJhZm9ybS9yZWxlYXNlc1xuICAgIGRpc2FibGVGb3JtYXRIb29rPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlRG9jc0hvb2s/OiBib29sZWFuO1xuICB9O1xuICBhZGRpdGlvbmFsUHJlY29tbWl0SG9va3M/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XG59O1xuXG5jb25zdCBkZWZhdWx0cyA9IHtcbiAgcHJldHRpZXI6IHRydWUsXG4gIHByb2plbnJjVHM6IHRydWUsXG4gIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBcIm1haW5cIixcbn07XG5cbmNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE15Q29uc3RydWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByb3BlcnR5QTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXlDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBNeUNvbnN0cnVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG59XG5gO1xuXG5jb25zdCBtb2R1bGVTcmNDb2RlID0gYFxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVEZNb2R1bGVTdGFjayB9IGZyb20gXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4vaW5kZXhcIjtcblxuY2xhc3MgTXlBd2Vzb21lTW9kdWxlIGV4dGVuZHMgVEZNb2R1bGVTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG4vLyBUaGlzIGlzIHRoZSBuYW1lIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIHVuZGVyLiBcbi8vIFdlIGV4cGVjdCBhIFwibXktYXdlc29tZS1tb2R1bGUubWRcIiBmaWxlIGluIHRoaXMgZGlyZWN0b3J5LlxuLy8gVGhlIFJFQURNRS5tZCBmaWxlIHdpbGwgYmUgZ2VuZXJhdGVkIGZyb20gdGhpcyBmaWxlLlxubmV3IE15QXdlc29tZU1vZHVsZShhcHAsIFwibXktYXdlc29tZS1tb2R1bGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbmNvbnN0IHRlcnJhZm9ybUF3c01haW5TcmNDb2RlID0gYFxudGVycmFmb3JtIHtcbiAgIyBMaW1pdCBwcm92aWRlciB2ZXJzaW9uIChzb21lIG1vZHVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggYXdzIDQueClcbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHtcbiAgICBhd3MgPSB7XG4gICAgICBzb3VyY2UgID0gXCJoYXNoaWNvcnAvYXdzXCJcbiAgICAgIHZlcnNpb24gPSBcIn4+IF9fcmVxdWlyZWRQcm92aWRlclZlcnNpb25fX1wiXG4gICAgfVxuICB9XG4gICMgVGVycmFmb3JtIGJpbmFyeSB2ZXJzaW9uIGNvbnN0cmFpbnRcbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwifj4gMS4xLjBcIlxufVxuXG5cbnByb3ZpZGVyIFwiYXdzXCIge1xuICByZWdpb24gPSBcIl9fcmVnaW9uX19cIlxufVxuYDtcblxuY29uc3QgdGVycmFmb3JtQXp1cmVNYWluU3JjQ29kZSA9IGBcbiMgQ29uZmlndXJlIHRoZSBBenVyZSBwcm92aWRlclxudGVycmFmb3JtIHtcbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHtcbiAgICBhenVyZXJtID0ge1xuICAgICAgc291cmNlICA9IFwiaGFzaGljb3JwL2F6dXJlcm1cIlxuICAgICAgdmVyc2lvbiA9IFwifj4gX19yZXF1aXJlZFByb3ZpZGVyVmVyc2lvbl9fXCJcbiAgICB9XG4gIH1cblxuICByZXF1aXJlZF92ZXJzaW9uID0gXCI+PSAxLjEuMFwiXG59XG5cbnByb3ZpZGVyIFwiYXp1cmVybVwiIHtcbiAgZmVhdHVyZXMge31cbn1cblxucmVzb3VyY2UgXCJhenVyZXJtX3Jlc291cmNlX2dyb3VwXCIgXCJyZ1wiIHtcbiAgbmFtZSAgICAgPSBcIl9fcmVzb3VyY2VHcm91cE5hbWVfX1wiXG4gIGxvY2F0aW9uID0gXCJfX2xvY2F0aW9uX19cIlxufVxuYDtcblxuY29uc3QgdGVycmFmb3JtTWFpblNyY0NvZGVNYXA6IHsgW2tleTogc3RyaW5nXTogeyBzcmNDb2RlOiBzdHJpbmcgfSB9ID0ge1xuICBhd3M6IHtcbiAgICBzcmNDb2RlOiB0ZXJyYWZvcm1Bd3NNYWluU3JjQ29kZSxcbiAgfSxcbiAgYXp1cmU6IHtcbiAgICBzcmNDb2RlOiB0ZXJyYWZvcm1BenVyZU1haW5TcmNDb2RlLFxuICB9LFxufTtcblxuY29uc3QgdGVycmFmb3JtUmVhZG1lRG9jcyA9IGBcbiMgUGxlYXNlIGFkZCBoZXJlIHNvbWUgcHVyZSBIQ0wgdGVzdHMgZm9yIHlvdXIgbW9kdWxlcyBpbiBvcmRlciB0byB0ZXN0IEhDTCBJbnRlcm9wZXJhYmlsaXR5XG5cbkV4YW1wbGVzOlxuXG5tb2R1bGUgXCJteV9hd2Vzb21lX3Rlc3RcIiB7XG4gIHNvdXJjZSA9IFwiLi4vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZXNcIlxuICAuLi52YXJpYWJsZXMuLi5cbn1cbiAgICBgO1xuXG5jbGFzcyBTY3JpcHRGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBwYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgcGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEh5YnJpZE1vZHVsZSBleHRlbmRzIENvbnN0cnVjdExpYnJhcnkge1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IEh5YnJpZE1vZHVsZU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtcbiAgICAgICAgY29uZmlnLmRvY3VtZW50YXRpb25QcmVjb21taXRIb29rICE9PSBmYWxzZVxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBpZDogXCJkb2N1bWVudGF0aW9uLXByZWNvbW1pdC1ob29rXCIsXG4gICAgICAgICAgICAgIG5hbWU6IFwiRG9jdW1lbnRhdGlvbiBQcmUtY29tbWl0IEhvb2tcIixcbiAgICAgICAgICAgICAgcnVuOiBcInByZS1jb21taXQgcnVuIC0tYWxsLWZpbGVzXCIsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBdLmZpbHRlcigoc3RlcCkgPT4gc3RlcCAhPT0gdW5kZWZpbmVkKSBhcyBKb2JTdGVwW10sXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IGNvbmZpZy5jb25zdHJ1Y3RWZXJzaW9uIHx8IFwiXjEwLjAuMjVcIjtcbiAgICBjb25zdCBjZGt0ZlZlcnNpb24gPSBjb25maWcuY2RrdGZWZXJzaW9uIHx8IFwiXjAuOS40XCI7XG5cbiAgICB0aGlzLmFkZFBlZXJEZXBzKGBjb25zdHJ1Y3RzQCR7Y29uc3RydWN0VmVyc2lvbn1gLCBgY2RrdGZAJHtjZGt0ZlZlcnNpb259YCk7XG4gICAgdGhpcy5hZGREZXZEZXBzKGBjZGt0Zi1jbGlAJHtjZGt0ZlZlcnNpb259YCwgXCJ0cy1ub2RlXCIpO1xuICAgIHRoaXMuYWRkS2V5d29yZHMoXCJjZGt0ZlwiLCBcImNka3RmLWh5YnJpZFwiKTtcbiAgICB0aGlzLnNldFNjcmlwdChcInRlcnJhZm9ybTp0ZXN0XCIsIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuXG4gICAgLy8gTW9kdWxlIEVudHJ5cG9pbnRcbiAgICB0aGlzLmFkZERlcHMoXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIik7XG4gICAgY29uc3QgbW9kdWxlRG9jcyA9IGBcbiMgTXkgQXdlc29tZSBNb2R1bGVcblxuIyMgVXNhZ2VcblxuXFxgXFxgXFxgaGNsXG5tb2R1bGUgXCJla3NfbWFuYWdlZF9ub2RlX2dyb3VwXCIge1xuICBzb3VyY2UgPSBcIiR7XG4gICAgY29uZmlnLnJlcG9zaXRvcnlcbiAgICAgID8ucmVwbGFjZShcImh0dHBzOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiaHR0cDovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImdpdGh1Yi5jb20vXCIsIFwiXCIpIHx8IFwibXktZ2l0aHViLXJlcG9cIlxuICB9Ly9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlXCJcblxufVxuXFxgXFxgXFxgXG4gICAgYDtcblxuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgdGhpcy5zcmNkaXIsIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwiaW5kZXgudHNcIjogY29uc3RydWN0U3JjQ29kZS50cmltKCksXG4gICAgICAgIFwidGZNb2R1bGVzLnRzXCI6IG1vZHVsZVNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCI6IG1vZHVsZURvY3MudHJpbSgpLFxuICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgYXBwOiBcIm5weCB0cy1ub2RlIHRmTW9kdWxlcy50c1wiLFxuICAgICAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJoYXNoaWNvcnAvbnVsbEAzLjEuMVwiXSwgLy8gV2UgbmVlZCBhdCBsZWFzdCBhIHByb3ZpZGVyIGZvciBnZXQgdG8gc3VjY2VlZFxuICAgICAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW10sXG4gICAgICAgICAgICBvdXRwdXQ6IFwibW9kdWxlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gUmV0cmlldmUgY29ycmVjdCBURiBtYWluIHN0dWZmXG4gICAgbGV0IG1haW5UZkZpbGUgPVxuICAgICAgdGVycmFmb3JtTWFpblNyY0NvZGVNYXBbY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVyXS5zcmNDb2RlLnRyaW0oKTtcblxuICAgIGxldCBjb25maWdQcm9wZXJ0eTogYW55ID0ge307XG4gICAgc3dpdGNoIChjb25maWcudGVycmFmb3JtUHJvdmlkZXIpIHtcbiAgICAgIGNhc2UgXCJhd3NcIjoge1xuICAgICAgICBjb25maWdQcm9wZXJ0eSA9IGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlckF3c0NvbmZpZztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFwiYXp1cmVcIjoge1xuICAgICAgICBjb25maWdQcm9wZXJ0eSA9IGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlckF6dXJlQ29uZmlnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiTmVlZCB0byBkZWZpbmUgY29ycmVjdGx5IGEgUHJvdmlkZXIsIG9ubHkgW2F3cyxhenVyZSxnY3BdIGFsbG93ZWRcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIE9iamVjdC5rZXlzKGNvbmZpZ1Byb3BlcnR5KS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgbWFpblRmRmlsZSA9IG1haW5UZkZpbGUucmVwbGFjZShgX18ke2tleX1fX2AsIGNvbmZpZ1Byb3BlcnR5W2tleV0pO1xuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCBjb25maWcudGVycmFmb3JtRXhhbXBsZXNGb2xkZXIsIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFwibWFpbi50ZlwiOiBtYWluVGZGaWxlLFxuICAgICAgICBcIlJFQURNRS5tZFwiOiB0ZXJyYWZvcm1SZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcInNyYy8uZ2VuXCIsIFwic3JjL2Nka3RmLm91dFwiLCBcInNyYy9tb2R1bGVzXCIpO1xuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFxuICAgICAgYCR7Y29uZmlnLnRlcnJhZm9ybUV4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtYCxcbiAgICAgIGAke2NvbmZpZy50ZXJyYWZvcm1FeGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybS5sb2NrLmhjbGBcbiAgICApO1xuICAgIHRoaXMuY29tcGlsZVRhc2sucHJlcGVuZEV4ZWMoXCJjZGt0ZiBnZXRcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICB9KTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCJjZGt0ZiBzeW50aFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgICAgbmFtZTogXCJTeW50aGVzaXplIG1vZHVsZSBIQ0xcIixcbiAgICB9KTtcblxuICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgdGhpcyxcbiAgICAgIFwic2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIixcbiAgICAgIGBcbiMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG5TQ1JJUFRQQVRIPVwiJCggY2QgLS0gXCIkKGRpcm5hbWUgXCIkMFwiKVwiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXCJcblxuIyBjaGVjayBpZiB0aGUgbW9kdWxlIGZvbGRlciBoYXMgYmVlbiBnZW5lcmF0ZWQgYXMgZXhwZWN0ZWRcbk1PRFVMRVNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL21vZHVsZXMvc3RhY2tzXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcblNSQ19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcblRBUkdFVF9GT0xERVI9XCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzXCJcblxuaWYgWyAhIC1kIFwiJE1PRFVMRVNfRk9MREVSXCIgXTsgdGhlblxuICBlY2hvIFwiRXhwZWN0ZWQgbW9kdWxlIGZvbGRlciB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVJcIlxuICBleGl0IDFcbmZpXG5cbmNkIFwiJE1PRFVMRVNfRk9MREVSXCJcbmZvciBkIGluICovIDsgZG9cbiAgICBbIC1MIFwiXFwke2QlL31cIiBdICYmIGNvbnRpbnVlXG5cbiAgICBkaXJuYW1lPVwiXFwke2QlL31cIlxuXG5cbiAgICAjIENoZWNrIGlmIGV2ZXJ5dGhpbmcgaXMgaW4gcGxhY2VcbiAgICBpZiBbICEgLWYgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgY29kZSBmb3IgJGRpcm5hbWUgYXQgY2RrLnRmLmpzb24gdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICBpZiBbICEgLWYgXCIkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBEb2N1bWVudGF0aW9uIGZvciAkZGlybmFtZSBhdCAkZGlybmFtZS5tZCB0byBleGlzdCBhdCAkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgIyBDb3B5IG1vZHVsZSBhbmQgcmVhZG1lIHRvZ2V0aGVyXG4gICAgZWNobyBcIkNvcHlpbmcgQ29kZSBhbmQgUkVBRE1FIGZvciBtb2R1bGUgJGRpcm5hbWVcIlxuICAgIG1rZGlyIC1wIFwiJFRBUkdFVF9GT0xERVJcIlxuICAgIG1rZGlyIC1wIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIlxuICAgIGNwIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiXG4gICAgY3AgXCIkU1JDX0ZPTERFUi8kZGlybmFtZS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvUkVBRE1FLm1kXCJcbmRvbmVcbmAudHJpbSgpXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsIHtcbiAgICAgIG5hbWU6IFwiQ29weSBIQ0wgTW9kdWxlc1wiLFxuICAgIH0pO1xuXG4gICAgLy8gaWdub3JlIGRpc3QgaW4gdGVzdHNcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJkaXN0XCIpO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIixcbiAgICAgIGBcbiMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSBpbml0IC0tdXBncmFkZVxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gZm10XG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSB2YWxpZGF0ZVxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gcGxhbiAgICAgXG4gICAgICAgIGBcbiAgICApO1xuXG4gICAgdGhpcy50ZXN0VGFzay5leGVjKFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcInRlcnJhZm9ybVwiKTtcblxuICAgIC8vIFByZS1jb21taXQgaG9va3NcbiAgICBpZiAoY29uZmlnLmRvY3VtZW50YXRpb25QcmVjb21taXRIb29rICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBhZGRpdGlvbmFsUHJlY29tbWl0SG9va3MsIGRvY3VtZW50YXRpb25QcmVjb21taXRIb29rT3B0aW9ucyB9ID1cbiAgICAgICAgY29uZmlnO1xuICAgICAgY29uc3Qge1xuICAgICAgICB2ZXJzaW9uID0gXCJ2MS43MC4xXCIsXG4gICAgICAgIGRpc2FibGVEb2NzSG9vayA9IGZhbHNlLFxuICAgICAgICBkaXNhYmxlRm9ybWF0SG9vayA9IGZhbHNlLFxuICAgICAgfSA9IGRvY3VtZW50YXRpb25QcmVjb21taXRIb29rT3B0aW9ucyB8fCB7fTtcblxuICAgICAgbmV3IFlhbWxGaWxlKHRoaXMsIFwiLnByZS1jb21taXQtY29uZmlnLnltbFwiLCB7XG4gICAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgICAgb2JqOiB7XG4gICAgICAgICAgcmVwb3M6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVwbzogXCJnaXQ6Ly9naXRodWIuY29tL2FudG9uYmFiZW5rby9wcmUtY29tbWl0LXRlcnJhZm9ybVwiLFxuICAgICAgICAgICAgICByZXY6IHZlcnNpb24sXG4gICAgICAgICAgICAgIGhvb2tzOiBbXG4gICAgICAgICAgICAgICAgZGlzYWJsZUZvcm1hdEhvb2sgPyBudWxsIDogeyBpZDogXCJ0ZXJyYWZvcm1fZm10XCIgfSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlRG9jc0hvb2sgPyBudWxsIDogeyBpZDogXCJ0ZXJyYWZvcm1fZG9jc1wiIH0sXG4gICAgICAgICAgICAgIF0uZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBudWxsKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi4oYWRkaXRpb25hbFByZWNvbW1pdEhvb2tzID8/IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudGFza3MuYWRkVGFzayhcInByZWNvbW1pdFwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1bnMgcHJlY29tbWl0IGhvb2tzXCIsXG4gICAgICAgIGV4ZWM6IFwicHJlLWNvbW1pdCBpbnN0YWxsXCIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|