@taimos/projen 0.1.84 → 0.1.86
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/.jsii +315 -13
- package/API.md +441 -0
- package/lib/components/amplify-deploy.js +1 -1
- package/lib/components/gitleaks.d.ts +69 -0
- package/lib/components/gitleaks.js +93 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +2 -1
- package/lib/components/production-release.js +1 -1
- package/lib/projects/cdk-app.js +7 -5
- package/lib/projects/cdk-construct.js +3 -3
- package/lib/projects/monorepo.d.ts +16 -1
- package/lib/projects/monorepo.js +8 -2
- package/lib/projects/private-cdk-app.js +1 -1
- package/lib/projects/private-ts-lib.js +1 -1
- package/lib/projects/prod-cdk-app.js +1 -1
- package/lib/projects/ts-lib.js +3 -3
- package/package.json +1 -1
package/lib/components/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./amplify-deploy"), exports);
|
|
18
18
|
__exportStar(require("./production-release"), exports);
|
|
19
|
-
|
|
19
|
+
__exportStar(require("./gitleaks"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLHVEQUFxQztBQUNyQyw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FtcGxpZnktZGVwbG95JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdGlvbi1yZWxlYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2l0bGVha3MnO1xuIl19
|
|
@@ -15,7 +15,7 @@ const projen_1 = require("projen");
|
|
|
15
15
|
* dispatch time.
|
|
16
16
|
*/
|
|
17
17
|
class GitHubProductionRelease extends projen_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.GitHubProductionRelease", version: "0.1.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.GitHubProductionRelease", version: "0.1.86" };
|
|
19
19
|
/**
|
|
20
20
|
* Resolves the branch that is promoted — the project's default release branch.
|
|
21
21
|
*
|
package/lib/projects/cdk-app.js
CHANGED
|
@@ -9,7 +9,7 @@ const projen_1 = require("projen");
|
|
|
9
9
|
* @pjid taimos-cdk-app
|
|
10
10
|
*/
|
|
11
11
|
class TaimosCdkApp extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosCdkApp", version: "0.1.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosCdkApp", version: "0.1.86" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super({
|
|
15
15
|
authorEmail: 'info@taimos.de',
|
|
@@ -17,12 +17,14 @@ class TaimosCdkApp extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
|
17
17
|
authorOrganization: true,
|
|
18
18
|
authorUrl: 'https://www.taimos.de',
|
|
19
19
|
copyrightOwner: 'Taimos GmbH',
|
|
20
|
-
copyrightPeriod:
|
|
20
|
+
copyrightPeriod: new Date().getFullYear().toString(),
|
|
21
21
|
requireApproval: projen_1.awscdk.ApprovalLevel.NEVER,
|
|
22
22
|
cdkVersionPinning: true,
|
|
23
|
-
constructsVersion: '10.
|
|
23
|
+
constructsVersion: '10.6.0',
|
|
24
24
|
projenrcTs: true,
|
|
25
|
-
|
|
25
|
+
// Taimos CDK apps live in a pnpm workspace monorepo; default to PNPM so a
|
|
26
|
+
// sub-project does not have to restate it. A standalone app can override.
|
|
27
|
+
packageManager: projen_1.javascript.NodePackageManager.PNPM,
|
|
26
28
|
...options ?? {},
|
|
27
29
|
githubOptions: {
|
|
28
30
|
mergify: false,
|
|
@@ -44,4 +46,4 @@ class TaimosCdkApp extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
48
|
exports.TaimosCdkApp = TaimosCdkApp;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBNEM7QUFpQjVDOzs7O0dBSUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxlQUFNLENBQUMsbUJBQW1COztJQUUxRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQztZQUNKLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsY0FBYyxFQUFFLGFBQWE7WUFDN0IsZUFBZSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQ3BELGVBQWUsRUFBRSxlQUFNLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFDM0MsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixpQkFBaUIsRUFBRSxRQUFRO1lBQzNCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLDBFQUEwRTtZQUMxRSwwRUFBMEU7WUFDMUUsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSTtZQUNsRCxHQUFHLE9BQU8sSUFBSSxFQUFFO1lBQ2hCLGFBQWEsRUFBRTtnQkFDYixPQUFPLEVBQUUsS0FBSztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRTthQUMvQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRTtnQkFDekIsZUFBZSxFQUFFO29CQUNmLGVBQWUsRUFBRSxJQUFJO29CQUNyQixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZSxJQUFJLEVBQUU7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbEMsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDOztBQXBDSCxvQ0FzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhaW1vc0Nka0FwcE9wdGlvbnMgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgcHJpdmF0ZSBOUE0gcmVnaXN0cnkgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlTnBtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGNvbnRhaW5pbmcgdGhlIE5QTSBhdXRoZW50aWNhdGlvbiB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ05QTV9UT0tFTidcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG1Ub2tlbkVudlZhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBV1MgQ0RLIGFwcCBpbiBUeXBlU2NyaXB0XG4gKlxuICogQHBqaWQgdGFpbW9zLWNkay1hcHBcbiAqL1xuZXhwb3J0IGNsYXNzIFRhaW1vc0Nka0FwcCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUYWltb3NDZGtBcHBPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYXV0aG9yRW1haWw6ICdpbmZvQHRhaW1vcy5kZScsXG4gICAgICBhdXRob3JOYW1lOiAnVGhvcnN0ZW4gSG9lZ2VyJyxcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGF1dGhvclVybDogJ2h0dHBzOi8vd3d3LnRhaW1vcy5kZScsXG4gICAgICBjb3B5cmlnaHRPd25lcjogJ1RhaW1vcyBHbWJIJyxcbiAgICAgIGNvcHlyaWdodFBlcmlvZDogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCksXG4gICAgICByZXF1aXJlQXBwcm92YWw6IGF3c2Nkay5BcHByb3ZhbExldmVsLk5FVkVSLFxuICAgICAgY2RrVmVyc2lvblBpbm5pbmc6IHRydWUsXG4gICAgICBjb25zdHJ1Y3RzVmVyc2lvbjogJzEwLjYuMCcsXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgICAgLy8gVGFpbW9zIENESyBhcHBzIGxpdmUgaW4gYSBwbnBtIHdvcmtzcGFjZSBtb25vcmVwbzsgZGVmYXVsdCB0byBQTlBNIHNvIGFcbiAgICAgIC8vIHN1Yi1wcm9qZWN0IGRvZXMgbm90IGhhdmUgdG8gcmVzdGF0ZSBpdC4gQSBzdGFuZGFsb25lIGFwcCBjYW4gb3ZlcnJpZGUuXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuUE5QTSxcbiAgICAgIC4uLm9wdGlvbnMgPz8ge30sXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIG1lcmdpZnk6IGZhbHNlLFxuICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnMgPz8ge30sXG4gICAgICB9LFxuICAgICAgdHNjb25maWc6IHtcbiAgICAgICAgLi4ub3B0aW9ucy50c2NvbmZpZyA/PyB7fSxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgZXNNb2R1bGVJbnRlcm9wOiB0cnVlLFxuICAgICAgICAgIC4uLm9wdGlvbnMudHNjb25maWc/LmNvbXBpbGVyT3B0aW9ucyA/PyB7fSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5hZGREZXZEZXBzKCdAdGFpbW9zL3Byb2plbicpO1xuXG4gICAgaWYgKG9wdGlvbnMucHJpdmF0ZU5wbSA/PyBmYWxzZSkge1xuICAgICAgY29uc3QgdG9rZW5FbnZWYXIgPSBvcHRpb25zLnByaXZhdGVOcG1Ub2tlbkVudlZhciA/PyAnTlBNX1RPS0VOJztcbiAgICAgIHRoaXMubnBtcmMuYWRkQ29uZmlnKCcvL3JlZ2lzdHJ5Lm5wbWpzLm9yZy86X2F1dGhUb2tlbicsIGBcXCR7JHt0b2tlbkVudlZhcn19YCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -9,12 +9,12 @@ const projen_1 = require("projen");
|
|
|
9
9
|
* @pjid taimos-awscdk-construct
|
|
10
10
|
*/
|
|
11
11
|
class TaimosCdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosCdkConstructLibrary", version: "0.1.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosCdkConstructLibrary", version: "0.1.86" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super({
|
|
15
15
|
authorOrganization: true,
|
|
16
16
|
copyrightOwner: 'Taimos GmbH',
|
|
17
|
-
copyrightPeriod:
|
|
17
|
+
copyrightPeriod: new Date().getFullYear().toString(),
|
|
18
18
|
catalog: {
|
|
19
19
|
announce: true,
|
|
20
20
|
twitter: 'hoegertn',
|
|
@@ -63,4 +63,4 @@ class TaimosCdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.TaimosCdkConstructLibrary = TaimosCdkConstructLibrary;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBb0Q7QUFpQnBEOzs7O0dBSUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLGVBQU0sQ0FBQyxzQkFBc0I7O0lBRTFFLFlBQVksT0FBeUM7UUFDbkQsS0FBSyxDQUFDO1lBQ0osa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixjQUFjLEVBQUUsYUFBYTtZQUM3QixlQUFlLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDcEQsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRSxVQUFVO2FBQ3BCO1lBQ0QsT0FBTyxFQUFFLFlBQVk7WUFDckIsU0FBUyxFQUFFLGNBQWM7WUFDekIsWUFBWSxFQUFFLElBQUk7WUFDbEIsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixTQUFTLEVBQUUsbUJBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUN0QyxNQUFNLEVBQUUsS0FBSztZQUNiLG1CQUFtQixFQUFFLElBQUk7WUFDekIsa0JBQWtCLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUU7WUFDcEcsa0JBQWtCLEVBQUUsRUFBRSxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsbUJBQVUsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwRyxhQUFhLEVBQUU7Z0JBQ2IsaUJBQWlCLEVBQUUsZUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRTthQUN0RDtZQUNELDJCQUEyQixFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7eUJBc0JYLENBQUM7WUFDcEIsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFFSCxDQUFDOztBQXRESCw4REF3REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQsIGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFpbW9zQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgcHJpdmF0ZSBOUE0gcmVnaXN0cnkgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlTnBtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGNvbnRhaW5pbmcgdGhlIE5QTSBhdXRoZW50aWNhdGlvbiB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ05QTV9UT0tFTidcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG1Ub2tlbkVudlZhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlU2NyaXB0IGxpYnJhcnlcbiAqXG4gKiBAcGppZCB0YWltb3MtYXdzY2RrLWNvbnN0cnVjdFxuICovXG5leHBvcnQgY2xhc3MgVGFpbW9zQ2RrQ29uc3RydWN0TGlicmFyeSBleHRlbmRzIGF3c2Nkay5Bd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUYWltb3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGNvcHlyaWdodE93bmVyOiAnVGFpbW9zIEdtYkgnLFxuICAgICAgY29weXJpZ2h0UGVyaW9kOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgIGNhdGFsb2c6IHtcbiAgICAgICAgYW5ub3VuY2U6IHRydWUsXG4gICAgICAgIHR3aXR0ZXI6ICdob2VnZXJ0bicsXG4gICAgICB9LFxuICAgICAgbGljZW5zZTogJ0FwYWNoZS0yLjAnLFxuICAgICAgc3RhYmlsaXR5OiAnZXhwZXJpbWVudGFsJyxcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiB0cnVlLFxuICAgICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5QVUJMSUMsXG4gICAgICBnaXRwb2Q6IGZhbHNlLFxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczogeyBhbGxvd2VkVXNlcm5hbWVzOiBbJ2hvZWdlcnRuJywgJ3RhaW1vcy1wcm9qZW5bYm90XSddLCBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nIH0sXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHsgd29ya2Zsb3dPcHRpb25zOiB7IHNjaGVkdWxlOiBqYXZhc2NyaXB0LlVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFkgfSB9LFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoKSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IFtgKiAqKlBsZWFzZSBjaGVjayBpZiB0aGUgUFIgZnVsZmlsbHMgdGhlc2UgcmVxdWlyZW1lbnRzKipcbi0gWyBdIFRoZSBjb21taXQgbWVzc2FnZSBkZXNjcmliZXMgeW91ciBjaGFuZ2Vcbi0gWyBdIFRlc3RzIGZvciB0aGUgY2hhbmdlcyBoYXZlIGJlZW4gYWRkZWQgaWYgcG9zc2libGUgKGZvciBidWcgZml4ZXMgLyBmZWF0dXJlcylcbi0gWyBdIERvY3MgaGF2ZSBiZWVuIGFkZGVkIC8gdXBkYXRlZCAoZm9yIGJ1ZyBmaXhlcyAvIGZlYXR1cmVzKVxuXG5cbiogKipXaGF0IGtpbmQgb2YgY2hhbmdlIGRvZXMgdGhpcyBQUiBpbnRyb2R1Y2U/KiogKEJ1ZyBmaXgsIGZlYXR1cmUsIGRvY3MgdXBkYXRlLCAuLi4pXG5cblxuXG4qICoqV2hhdCBpcyB0aGUgY3VycmVudCBiZWhhdmlvcj8qKiAoWW91IGNhbiBhbHNvIGxpbmsgdG8gYW4gb3BlbiBpc3N1ZSBoZXJlKVxuXG5cblxuKiAqKldoYXQgaXMgdGhlIG5ldyBiZWhhdmlvciAoaWYgdGhpcyBpcyBhIGZlYXR1cmUgY2hhbmdlKT8qKlxuXG5cblxuKiAqKkRvZXMgdGhpcyBQUiBpbnRyb2R1Y2UgYSBicmVha2luZyBjaGFuZ2U/KiogKFdoYXQgY2hhbmdlcyBtaWdodCB1c2VycyBuZWVkIHRvIG1ha2UgaW4gdGhlaXIgc2V0dXAgZHVlIHRvIHRoaXMgUFI/KVxuXG5cblxuKiAqKk90aGVyIGluZm9ybWF0aW9uKio6YF0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMucHJpdmF0ZU5wbSA/PyBmYWxzZSkge1xuICAgICAgY29uc3QgdG9rZW5FbnZWYXIgPSBvcHRpb25zLnByaXZhdGVOcG1Ub2tlbkVudlZhciA/PyAnTlBNX1RPS0VOJztcbiAgICAgIHRoaXMubnBtcmMuYWRkQ29uZmlnKCcvL3JlZ2lzdHJ5Lm5wbWpzLm9yZy86X2F1dGhUb2tlbicsIGBcXCR7JHt0b2tlbkVudlZhcn19YCk7XG4gICAgfVxuXG4gIH1cblxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { github, typescript, YamlFile } from 'projen';
|
|
2
2
|
import { GitHubAssignApprover } from 'projen-pipelines';
|
|
3
|
-
import { GitHubAmplifyDeploy, GitHubAmplifyDeployOptions, GitHubProductionRelease, GitHubProductionReleaseOptions } from '../components';
|
|
3
|
+
import { GitHubAmplifyDeploy, GitHubAmplifyDeployOptions, GitHubProductionRelease, GitHubProductionReleaseOptions, Gitleaks, GitleaksOptions } from '../components';
|
|
4
4
|
/**
|
|
5
5
|
* The frontend framework an Amplify Hosting application is built with.
|
|
6
6
|
*
|
|
@@ -225,6 +225,19 @@ export interface MonorepoProjectOptions extends typescript.TypeScriptProjectOpti
|
|
|
225
225
|
* @default - promote `main` to a `production` branch
|
|
226
226
|
*/
|
|
227
227
|
readonly productionReleaseOptions?: GitHubProductionReleaseOptions;
|
|
228
|
+
/**
|
|
229
|
+
* Whether to add gitleaks secret-scanning: a `.gitleaks.toml` config plus a
|
|
230
|
+
* pull-request workflow that scans the full git history (see `Gitleaks`).
|
|
231
|
+
*
|
|
232
|
+
* @default false
|
|
233
|
+
*/
|
|
234
|
+
readonly gitleaks?: boolean;
|
|
235
|
+
/**
|
|
236
|
+
* Options for the gitleaks component. Only used when `gitleaks` is enabled.
|
|
237
|
+
*
|
|
238
|
+
* @default - extend the default ruleset, no extra allowlists
|
|
239
|
+
*/
|
|
240
|
+
readonly gitleaksOptions?: GitleaksOptions;
|
|
228
241
|
/**
|
|
229
242
|
* Drive Amplify Hosting builds from GitHub Actions instead of Amplify's own
|
|
230
243
|
* auto-build, so an app only rebuilds when the packages it is built from
|
|
@@ -270,6 +283,8 @@ export declare class MonorepoProject extends typescript.TypeScriptProject {
|
|
|
270
283
|
readonly productionRelease?: GitHubProductionRelease;
|
|
271
284
|
/** The Amplify deploy workflows, when `amplifyDeployOptions` is set. */
|
|
272
285
|
readonly amplifyDeploy?: GitHubAmplifyDeploy;
|
|
286
|
+
/** The gitleaks secret-scanning component, if enabled. */
|
|
287
|
+
readonly gitleaks?: Gitleaks;
|
|
273
288
|
/** The default release branch (promoted by the production release workflow). */
|
|
274
289
|
readonly defaultReleaseBranch: string;
|
|
275
290
|
constructor(options: MonorepoProjectOptions);
|
package/lib/projects/monorepo.js
CHANGED
|
@@ -32,7 +32,7 @@ var MonorepoAmplifyFramework;
|
|
|
32
32
|
* @pjid taimos-monorepo
|
|
33
33
|
*/
|
|
34
34
|
class MonorepoProject extends projen_1.typescript.TypeScriptProject {
|
|
35
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.MonorepoProject", version: "0.1.
|
|
35
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.MonorepoProject", version: "0.1.86" };
|
|
36
36
|
/**
|
|
37
37
|
* Packages exempt from `minimumReleaseAge` by default so our own build tooling
|
|
38
38
|
* can update without the cooldown. A consumer's
|
|
@@ -56,6 +56,8 @@ class MonorepoProject extends projen_1.typescript.TypeScriptProject {
|
|
|
56
56
|
productionRelease;
|
|
57
57
|
/** The Amplify deploy workflows, when `amplifyDeployOptions` is set. */
|
|
58
58
|
amplifyDeploy;
|
|
59
|
+
/** The gitleaks secret-scanning component, if enabled. */
|
|
60
|
+
gitleaks;
|
|
59
61
|
/** The default release branch (promoted by the production release workflow). */
|
|
60
62
|
defaultReleaseBranch;
|
|
61
63
|
constructor(options) {
|
|
@@ -156,6 +158,10 @@ class MonorepoProject extends projen_1.typescript.TypeScriptProject {
|
|
|
156
158
|
if (options.productionRelease ?? false) {
|
|
157
159
|
this.productionRelease = new components_1.GitHubProductionRelease(this, options.productionReleaseOptions);
|
|
158
160
|
}
|
|
161
|
+
// gitleaks secret-scanning: .gitleaks.toml + a PR workflow scanning history.
|
|
162
|
+
if (options.gitleaks ?? false) {
|
|
163
|
+
this.gitleaks = new components_1.Gitleaks(this, options.gitleaksOptions);
|
|
164
|
+
}
|
|
159
165
|
// The projenrc is split into modules under .projen/ — make them part of the
|
|
160
166
|
// dev tsconfig so the IDE and ts-node type-check them.
|
|
161
167
|
this.tsconfigDev?.addInclude('.projen/*.ts');
|
|
@@ -273,4 +279,4 @@ class MonorepoProject extends projen_1.typescript.TypeScriptProject {
|
|
|
273
279
|
}
|
|
274
280
|
}
|
|
275
281
|
exports.MonorepoProject = MonorepoProject;
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvbW9ub3JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFrRTtBQUNsRSx1REFBd0Q7QUFDeEQsOENBQXlJO0FBRXpJOzs7OztHQUtHO0FBQ0gsSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2xDLDZFQUE2RTtJQUM3RSw2Q0FBaUIsQ0FBQTtJQUNqQiwyR0FBMkc7SUFDM0csK0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLHdCQUF3Qix3Q0FBeEIsd0JBQXdCLFFBS25DO0FBNlBEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjs7SUFFL0Q7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSwyQkFBMkIsR0FBYTtRQUM3RCxrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixRQUFRO0tBQ1QsQ0FBQztJQUVGLDJDQUEyQztJQUMzQixhQUFhLENBQVc7SUFFeEMscUNBQXFDO0lBQ3JCLGVBQWUsQ0FBd0I7SUFFdkQsd0VBQXdFO0lBQ3hELFdBQVcsQ0FBWTtJQUV2Qyw4Q0FBOEM7SUFDOUIsY0FBYyxDQUF3QjtJQUV0RCxtREFBbUQ7SUFDbkMsaUJBQWlCLENBQTJCO0lBRTVELHdFQUF3RTtJQUN4RCxhQUFhLENBQXVCO0lBRXBELGdGQUFnRjtJQUNoRSxvQkFBb0IsQ0FBUztJQUU3QyxZQUFZLE9BQStCO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxTQUFTLENBQUM7UUFFOUQsNEVBQTRFO1FBQzVFLDBFQUEwRTtRQUMxRSwwQ0FBMEM7UUFDMUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsYUFBYSxJQUFJLENBQUMsa0JBQWtC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LFlBQVksR0FBRyxHQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTztZQUMvQyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxXQUFXLDBCQUEwQjtZQUM1RCxDQUFDLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxXQUFXLFlBQVksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLE9BQU87WUFDekQsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sU0FBUyxHQUFHLENBQUMsV0FBVyxVQUFVO1lBQ2xELENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUk7WUFDbkMsbUJBQW1CO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxtQkFBbUI7U0FDbkYsQ0FBQztRQUNGLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsUUFBUSxFQUFFO2dCQUNSLDZEQUE2RDtnQkFDN0QsaURBQWlEO2dCQUNqRCxTQUFTLEVBQUUsR0FBRztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtvQkFDaEMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7aUJBQ3BDO2dCQUNELFNBQVMsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0MsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTthQUM3QjtTQUNGLENBQUM7SUFDSixDQUFDOztBQXRRSCwwQ0F1UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnaXRodWIsIGphdmFzY3JpcHQsIHR5cGVzY3JpcHQsIFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEdpdEh1YkFzc2lnbkFwcHJvdmVyIH0gZnJvbSAncHJvamVuLXBpcGVsaW5lcyc7XG5pbXBvcnQgeyBHaXRIdWJBbXBsaWZ5RGVwbG95LCBHaXRIdWJBbXBsaWZ5RGVwbG95T3B0aW9ucywgR2l0SHViUHJvZHVjdGlvblJlbGVhc2UsIEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlT3B0aW9ucyB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG4vKipcbiAqIFRoZSBmcm9udGVuZCBmcmFtZXdvcmsgYW4gQW1wbGlmeSBIb3N0aW5nIGFwcGxpY2F0aW9uIGlzIGJ1aWx0IHdpdGguXG4gKlxuICogU2VsZWN0cyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgdGhlIGJ1aWxkIGNvbW1hbmQsIGFydGlmYWN0IGRpcmVjdG9yeSBhbmRcbiAqIGNhY2hlIHBhdGhzIGluIHRoZSBnZW5lcmF0ZWQgYGFtcGxpZnkueW1sYC5cbiAqL1xuZXhwb3J0IGVudW0gTW9ub3JlcG9BbXBsaWZ5RnJhbWV3b3JrIHtcbiAgLyoqIEEgTmV4dC5qcyBhcHAg4oCUIGFydGlmYWN0cyBpbiBgPGFwcFJvb3Q+Ly5uZXh0YCwgYnVpbHQgdmlhIGBydW4gYnVpbGRgLiAqL1xuICBORVhUSlMgPSAnbmV4dGpzJyxcbiAgLyoqIEFuIEFuZ3VsYXIgYXBwIOKAlCBhcnRpZmFjdHMgaW4gYDxhcHBSb290Pi9kaXN0LzxmaWx0ZXI+L2Jyb3dzZXJgLCBidWlsdCB2aWEgYHJ1biBidWlsZDoke0JVSUxEX0VOVn1gLiAqL1xuICBBTkdVTEFSID0gJ2FuZ3VsYXInLFxufVxuXG4vKipcbiAqIE9uZSBBV1MgQW1wbGlmeSBIb3N0aW5nIGFwcGxpY2F0aW9uIHNlcnZlZCBmcm9tIGEgd29ya3NwYWNlIHBhY2thZ2UuXG4gKlxuICogUmVuZGVycyBhIHNpbmdsZSBlbnRyeSB1bmRlciBgYXBwbGljYXRpb25zOmAgaW4gdGhlIGdlbmVyYXRlZCBgYW1wbGlmeS55bWxgLlxuICogQW1wbGlmeSBkb2VzIG5vdCBhdXRvLWRldGVjdCBQTlBNIHdvcmtzcGFjZXMsIHNvIHRoZSBnZW5lcmF0ZWQgYnVpbGQgc3BlY1xuICogcnVucyBgY29yZXBhY2sgZW5hYmxlYCArIGEgcm9vdCBgcG5wbSBpbnN0YWxsYCBhbmQgcHJlLWJ1aWxkcyBhbnkgc2hhcmVkXG4gKiBwYWNrYWdlcyBiZWZvcmUgYnVpbGRpbmcgdGhlIGFwcCBmcm9tIGl0cyBgYXBwUm9vdGAgKHNlZSBBRFItMDAwMikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ub3JlcG9BbXBsaWZ5QXBwIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIHBhdGggdGhhdCBpcyB0aGUgQW1wbGlmeSBhcHAgcm9vdCwgZS5nLiBgcGFja2FnZXMvZnJvbnRlbmRgLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwUm9vdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJvbnRlbmQgZnJhbWV3b3JrLCB1c2VkIHRvIHBpY2sgYnVpbGQvYXJ0aWZhY3QvY2FjaGUgZGVmYXVsdHMuXG4gICAqL1xuICByZWFkb25seSBmcmFtZXdvcms6IE1vbm9yZXBvQW1wbGlmeUZyYW1ld29yaztcblxuICAvKipcbiAgICogVGhlIHBucG0gcGFja2FnZSBuYW1lIHRvIGJ1aWxkLCB1c2VkIGFzIHRoZSBgLS1maWx0ZXJgIHRhcmdldCxcbiAgICogZS5nLiBgZGVwbG95bW9uLWZyb250ZW5kYCBvciBgcmFkYmFsbC1kaWdpdGFsLXBvcnRhbGAuXG4gICAqL1xuICByZWFkb25seSBidWlsZEZpbHRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgcGFja2FnZXMgdG8gYnVpbGQgYmVmb3JlIHRoZSBhcHAsIGFzIGAtLWZpbHRlcmAgdGFyZ2V0cy5cbiAgICpcbiAgICogVHlwaWNhbGx5IHRoZSBzaGFyZWQgQVBJIHBhY2thZ2UgdGhlIGFwcCBjb25zdW1lcyB2aWEgYHdvcmtzcGFjZToqYCxcbiAgICogZS5nLiBgWydAdGFpbW9zL2RlcGxveW1vbi1hcGknXWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBwcmVCdWlsZEZpbHRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGJ1aWxkIGNvbW1hbmQgcnVuIGluIHRoZSBBbXBsaWZ5IGBidWlsZGAgcGhhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYHBucG0gLS1maWx0ZXIgPGJ1aWxkRmlsdGVyPiBydW4gYnVpbGRgIGZvciBOZXh0LmpzLCBvclxuICAgKiBgcG5wbSAtLWZpbHRlciA8YnVpbGRGaWx0ZXI+IHJ1biBidWlsZDoke0JVSUxEX0VOVn1gIGZvciBBbmd1bGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb21tYW5kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgYXJ0aWZhY3QgYmFzZSBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYDxhcHBSb290Pi8ubmV4dGAgZm9yIE5leHQuanMsIG9yXG4gICAqIGA8YXBwUm9vdD4vZGlzdC88YnVpbGRGaWx0ZXI+L2Jyb3dzZXJgIGZvciBBbmd1bGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RCYXNlRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgQW1wbGlmeSBidWlsZCBjYWNoZSBwYXRocy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgbm9kZV9tb2R1bGVzLyoqYCBwbHVzIHRoZSBmcmFtZXdvcmsgYnVpbGQgY2FjaGVcbiAgICogKGA8YXBwUm9vdD4vLm5leHQvY2FjaGUvKipgIG9yIGA8YXBwUm9vdD4vLmFuZ3VsYXIvY2FjaGUvKipgKS5cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlUGF0aHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogcG5wbSBgLS1maWx0ZXJgIGV4cHJlc3Npb24gZm9yIHRoZSBzY29wZWQgaW5zdGFsbCBpbiB0aGUgcHJlQnVpbGQgcGhhc2UuXG4gICAqXG4gICAqIFRoZSB0cmFpbGluZyBgLi4uYCBzeW50YXggcHVsbHMgaW4gdGhlIGFwcCdzIHRyYW5zaXRpdmUgd29ya3NwYWNlXG4gICAqIGRlcGVuZGVuY2llcyAoZS5nLiBhIHNoYXJlZCBBUEkgcGFja2FnZSkgYnV0IGV4Y2x1ZGVzIHVucmVsYXRlZCBwYWNrYWdlcyxcbiAgICogYXZvaWRpbmcgY29uY3VycmVudCBgcHJvamVuL25vZGVfbW9kdWxlc2AgcmVuYW1lIHJhY2VzIHVuZGVyIHRoZSBob2lzdGVkXG4gICAqIGxpbmtlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYCR7YnVpbGRGaWx0ZXJ9Li4uYFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbEZpbHRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogRnVsbCBvdmVycmlkZSBvZiB0aGUgaW5zdGFsbCBjb21tYW5kIGluIHRoZSBwcmVCdWlsZCBwaGFzZS5cbiAgICpcbiAgICogV2hlbiBzZXQsIGBpbnN0YWxsRmlsdGVyYCBpcyBpZ25vcmVkIGFuZCB0aGlzIHN0cmluZyBpcyBlbWl0dGVkIHZlcmJhdGltLlxuICAgKiBVc2UgdGhpcyBhcyBhbiBlc2NhcGUgaGF0Y2ggd2hlbiB0aGUgZGVmYXVsdCBzY29wZWQgaW5zdGFsbCBpcyBpbnN1ZmZpY2llbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYHBucG0gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSAtLW5vZGUtbGlua2VyIGhvaXN0ZWQgLS1maWx0ZXIgXCI8aW5zdGFsbEZpbHRlcj5cImBcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxDb21tYW5kPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBOUE0gd29ya3NwYWNlIHR1bmluZyBmb3IgdGhlIGdlbmVyYXRlZCBgcG5wbS13b3Jrc3BhY2UueWFtbGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ub3JlcG9Xb3Jrc3BhY2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB3b3Jrc3BhY2UgcGFja2FnZSBnbG9icy5cbiAgICpcbiAgICogQGRlZmF1bHQgWydwYWNrYWdlcy8qJ11cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb3ZlcnJpZGVzIGZvcmNlZCBhY3Jvc3MgdGhlIHdob2xlIHdvcmtzcGFjZVxuICAgKiAodGhlIGBvdmVycmlkZXM6YCBmaWVsZCkuIE9taXR0ZWQgZnJvbSB0aGUgZmlsZSB3aGVuIGVtcHR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIERlcGVuZGVuY2llcyBhbGxvd2VkIHRvIHJ1biBpbnN0YWxsL2J1aWxkIHNjcmlwdHMuIHBucG0gPj0gMTAgYmxvY2tzIHRoZXNlXG4gICAqIGJ5IGRlZmF1bHQuIFRoZSBsaXN0IHBvcHVsYXRlcyBib3RoIGBhbGxvd0J1aWxkc2AgYW5kXG4gICAqIGBvbmx5QnVpbHREZXBlbmRlbmNpZXNgIHNvIHBucG0gZG9lcyBub3QgdHJlYXQgYG5vZGVfbW9kdWxlc2AgYXMgc3RhbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsnQGF3cy1hbXBsaWZ5L2NsaScsICdlc2J1aWxkJywgJ3NoYXJwJywgJ3VucnMtcmVzb2x2ZXInXVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEJ1aWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGFnZSBpbiBtaW51dGVzIGEgcHVibGlzaGVkIHZlcnNpb24gbXVzdCBoYXZlIGJlZm9yZSBpdCBtYXkgYmVcbiAgICogaW5zdGFsbGVkIChgbWluaW11bVJlbGVhc2VBZ2VgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMjg4MCAvLyAyIGRheXNcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQYWNrYWdlcyBleGVtcHQgZnJvbSBgbWluaW11bVJlbGVhc2VBZ2VgIHNvIG91ciBvd24gdG9vbGluZyBjYW4gdXBkYXRlXG4gICAqIHdpdGhvdXQgdGhlIGNvb2xkb3duLiBNRVJHRUQgb24gdG9wIG9mIHRoZSBidWlsdC1pbiBkZWZhdWx0c1xuICAgKiAoYHByb2plbi1waXBlbGluZXNgLCBgY2RrLXNlcnZlcmxlc3NgLCBgQHRhaW1vcy9wcm9qZW5gLCBgcHJvamVuYCkgYW5kXG4gICAqIGRlZHVwZWQg4oCUIHN1cHBseWluZyB0aGlzIGRvZXMgbm90IGRyb3AgdGhlIHRvb2xpbmcgZXhlbXB0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgW10gLy8gbWVyZ2VkIHdpdGggREVGQVVMVF9SRUxFQVNFX0FHRV9FWENMVURFXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBPbmUgYXV0aG9yLXRvLWFwcHJvdmVycyByb3V0aW5nIHJ1bGUgZm9yIHRoZSBQUiBhcHByb3ZlciBhc3NpZ25tZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvQXBwcm92ZXJNYXBwaW5nIHtcbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgdXNlcm5hbWUgb3BlbmluZyB0aGUgUFIuXG4gICAqL1xuICByZWFkb25seSBhdXRob3I6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiB1c2VybmFtZXMgYXNzaWduZWQgdG8gcmV2aWV3IHdoZW4gYGF1dGhvcmAgb3BlbnMgYSBQUi5cbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmVyczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ub3JlcG9Qcm9qZWN0T3B0aW9ucyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBwbnBtIHZlcnNpb24gcGlubmVkIGZvciB0aGUgd29ya3NwYWNlIGFuZCBDSS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzEwLjMzLjAnXG4gICAqL1xuICByZWFkb25seSBwbnBtV29ya3NwYWNlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE5vZGUuanMgdmVyc2lvbiB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgYnVpbGQgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMidcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQTlBNIHdvcmtzcGFjZSB0dW5pbmcgZm9yIHRoZSBnZW5lcmF0ZWQgYHBucG0td29ya3NwYWNlLnlhbWxgLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya3NwYWNlT3B0aW9ucz86IE1vbm9yZXBvV29ya3NwYWNlT3B0aW9ucztcblxuICAvKipcbiAgICogV2hldGhlciB0byBhZGQgYGNkay1zZXJ2ZXJsZXNzYCBhcyBhIHdvcmtzcGFjZSBkZXYgZGVwZW5kZW5jeS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNka1NlcnZlcmxlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFzc2lnbiBQUiBhcHByb3ZlcnMgdmlhIGBHaXRIdWJBc3NpZ25BcHByb3ZlcmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2lnbkFwcHJvdmVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0aG9yLXRvLWFwcHJvdmVycyByb3V0aW5nIGZvciB0aGUgUFIgYXBwcm92ZXIgYXNzaWdubWVudC5cbiAgICogT25seSB1c2VkIHdoZW4gYGFzc2lnbkFwcHJvdmVyYCBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGhvZWdlcnRuIGFuZCBob2VnZXJtYSByZXZpZXcgZWFjaCBvdGhlclxuICAgKi9cbiAgcmVhZG9ubHkgYXBwcm92ZXJNYXBwaW5nPzogTW9ub3JlcG9BcHByb3Zlck1hcHBpbmdbXTtcblxuICAvKipcbiAgICogQXBwcm92ZXJzIGFzc2lnbmVkIHdoZW4gbm8gYXV0aG9yLXNwZWNpZmljIG1hcHBpbmcgbWF0Y2hlcy5cbiAgICogT25seSB1c2VkIHdoZW4gYGFzc2lnbkFwcHJvdmVyYCBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ2hvZWdlcnRuJywgJ2hvZWdlcm1hJ11cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBcHByb3ZlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdW5pZmllZCBidWlsZCB3b3JrZmxvdyBhbHNvIHJ1bnMgYSBzZXBhcmF0ZSBgcG5wbSAtciBydW4gdGVzdGBcbiAgICogc3RlcC5cbiAgICpcbiAgICogRWFjaCBwcm9qZW4gc3ViLXByb2plY3QncyBvd24gYGJ1aWxkYCB0YXNrIGFscmVhZHkgcnVucyBpdHMgYHRlc3RgIHN1Yi10YXNrXG4gICAqIChwcmUtY29tcGlsZSDihpIgY29tcGlsZSDihpIgcG9zdC1jb21waWxlIOKGkiB0ZXN0IOKGkiBwYWNrYWdlKSwgc28gYHBucG0gLXIgcnVuXG4gICAqIGJ1aWxkYCBhbHJlYWR5IHJ1bnMgZXZlcnkgcHJvamVuIHBhY2thZ2UncyBqZXN0ICsgZXNsaW50LiBFbmFibGluZyB0aGlzIGFkZHNcbiAgICogYSBzZWNvbmQgZnVsbCBydW4g4oCUIGluY2x1ZGluZyB0aGUgZXhwZW5zaXZlIENESyBzeW50aHMg4oCUIHJvdWdobHkgZG91YmxpbmcgQ0kuXG4gICAqXG4gICAqIENhdmVhdDogd2l0aCB0aGlzIG9mZiwgYSBoYW5kLW1hbmFnZWQgKG5vbi1wcm9qZW4pIHBhY2thZ2UgaXMgb25seSB0ZXN0ZWQgaW5cbiAgICogQ0kgaWYgaXRzIG93biBgYnVpbGRgIHNjcmlwdCBydW5zIGl0cyBjaGVja3MgKGUuZy4gYHRzYyAmJiBqZXN0YCxcbiAgICogYGVzbGludCAuICYmIHZpdGVzdCBydW4gJiYgbmV4dCBidWlsZGApLiBNYWtlIGVhY2ggaGFuZC1tYW5hZ2VkIHBhY2thZ2Unc1xuICAgKiBidWlsZCBzZWxmLWNvbnRhaW4gaXRzIHZlcmlmaWNhdGlvbiBzbyBgcG5wbSAtciBydW4gYnVpbGRgIHN0YXlzIHRoZSBzaW5nbGVcbiAgICogZ2F0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJ1blRlc3RzSW5CdWlsZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFXUyBBbXBsaWZ5IEhvc3RpbmcgYXBwbGljYXRpb25zLiBXaGVuIHNldCwgYW4gYGFtcGxpZnkueW1sYCBpcyBnZW5lcmF0ZWRcbiAgICogd2l0aCBvbmUgZW50cnkgcGVyIGFwcC4gV2hlbiBvbWl0dGVkLCBubyBgYW1wbGlmeS55bWxgIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBhbXBsaWZ5QXBwcz86IE1vbm9yZXBvQW1wbGlmeUFwcFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCBhIG1hbnVhbCBcIlByb2R1Y3Rpb24gUmVsZWFzZVwiIHdvcmtmbG93IHRoYXQgcHJvbW90ZXMgYSBicmFuY2hcbiAgICogdG8gdGhlIHByb2R1Y3Rpb24gYnJhbmNoIChzZWUgYEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcm9kdWN0aW9uUmVsZWFzZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSBwcm9kdWN0aW9uIHJlbGVhc2Ugd29ya2Zsb3cuIE9ubHkgdXNlZCB3aGVuXG4gICAqIGBwcm9kdWN0aW9uUmVsZWFzZWAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwcm9tb3RlIGBtYWluYCB0byBhIGBwcm9kdWN0aW9uYCBicmFuY2hcbiAgICovXG4gIHJlYWRvbmx5IHByb2R1Y3Rpb25SZWxlYXNlT3B0aW9ucz86IEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlT3B0aW9ucztcblxuICAvKipcbiAgICogRHJpdmUgQW1wbGlmeSBIb3N0aW5nIGJ1aWxkcyBmcm9tIEdpdEh1YiBBY3Rpb25zIGluc3RlYWQgb2YgQW1wbGlmeSdzIG93blxuICAgKiBhdXRvLWJ1aWxkLCBzbyBhbiBhcHAgb25seSByZWJ1aWxkcyB3aGVuIHRoZSBwYWNrYWdlcyBpdCBpcyBidWlsdCBmcm9tXG4gICAqIGFjdHVhbGx5IGNoYW5nZWQgKHNlZSBgR2l0SHViQW1wbGlmeURlcGxveWApLlxuICAgKlxuICAgKiBTZXR0aW5nIHRoaXMgZ2VuZXJhdGVzIG9uZSBkZXBsb3kgd29ya2Zsb3cgcGVyIGxpc3RlZCBhcHAuIFRoZSBwcm9qZWN0J3NcbiAgICogQ0RLIGFwcCBtdXN0IGRpc2FibGUgYGF1dG9CdWlsZGAgb24gdGhlIHRyYWNrZWQgYnJhbmNoZXMgYW5kIHByb3ZpZGUgdGhlXG4gICAqIGFwcC1pZCBwYXJhbWV0ZXJzIGFuZCBidWlsZC10cmlnZ2VyIHJvbGUgdGhlIHdvcmtmbG93cyBleHBlY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQW1wbGlmeSdzIG93biBhdXRvLWJ1aWxkIGlzIGxlZnQgaW4gcGxhY2VcbiAgICovXG4gIHJlYWRvbmx5IGFtcGxpZnlEZXBsb3lPcHRpb25zPzogR2l0SHViQW1wbGlmeURlcGxveU9wdGlvbnM7XG59XG5cbi8qKlxuICogUHJpdmF0ZSBQTlBNLXdvcmtzcGFjZSBtb25vcmVwbyByb290LCBmb2xsb3dpbmcgVGFpbW9zIEFEUi0wMDAyLlxuICpcbiAqIFRoZSByb290IG9ubHkgb3JjaGVzdHJhdGVzIHRoZSB3b3Jrc3BhY2Ug4oCUIGJ1aWxkaW5nLCB0ZXN0aW5nIGFuZCBsaW50aW5nIGFyZVxuICogZGVsZWdhdGVkIHRvIHRoZSB3b3Jrc3BhY2UgcGFja2FnZXMgdmlhIGBwbnBtIC1yYC4gVGhpcyBwcm9qZWN0IGdlbmVyYXRlcyB0aGVcbiAqIGBwbnBtLXdvcmtzcGFjZS55YW1sYCwgdGhlIHJvb3QgY29udmVuaWVuY2Ugc2NyaXB0cywgYSB1bmlmaWVkIFBSIGJ1aWxkXG4gKiB3b3JrZmxvdyBhbmQgKG9wdGlvbmFsbHkpIGFuIEFtcGxpZnkgSG9zdGluZyBidWlsZCBzcGVjLiBUaGUgcHJvamVuLW1hbmFnZWRcbiAqIHN1Yi1wcm9qZWN0cyAoYXBpLCBiYWNrZW5kLCBpbmZyYSkgYXJlIGFkZGVkIHdpdGggdGhlIGBwYXJlbnRgL2BvdXRkaXJgXG4gKiBwYXR0ZXJuIGluIHRoZSBjb25zdW1pbmcgYC5wcm9qZW5yYy50c2A7IHBsYWluIHdvcmtzcGFjZSBwYWNrYWdlcyAoZS5nLlxuICogTmV4dC5qcyBhcHBzKSBhcmUgcGlja2VkIHVwIGJ5IHRoZSBgcGFja2FnZXMvKmAgZ2xvYi5cbiAqXG4gKiBAcGppZCB0YWltb3MtbW9ub3JlcG9cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbm9yZXBvUHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuXG4gIC8qKlxuICAgKiBQYWNrYWdlcyBleGVtcHQgZnJvbSBgbWluaW11bVJlbGVhc2VBZ2VgIGJ5IGRlZmF1bHQgc28gb3VyIG93biBidWlsZCB0b29saW5nXG4gICAqIGNhbiB1cGRhdGUgd2l0aG91dCB0aGUgY29vbGRvd24uIEEgY29uc3VtZXInc1xuICAgKiBgd29ya3NwYWNlT3B0aW9ucy5taW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGVgIGlzIG1lcmdlZCBvbiB0b3Agb2YgdGhpcyBsaXN0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JFTEVBU0VfQUdFX0VYQ0xVREU6IHN0cmluZ1tdID0gW1xuICAgICdwcm9qZW4tcGlwZWxpbmVzJyxcbiAgICAnY2RrLXNlcnZlcmxlc3MnLFxuICAgICdAdGFpbW9zL3Byb2plbicsXG4gICAgJ3Byb2plbicsXG4gIF07XG5cbiAgLyoqIFRoZSBnZW5lcmF0ZWQgYHBucG0td29ya3NwYWNlLnlhbWxgLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya3NwYWNlRmlsZTogWWFtbEZpbGU7XG5cbiAgLyoqIFRoZSB1bmlmaWVkIFBSIGJ1aWxkIHdvcmtmbG93LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJCdWlsZFdvcmtmbG93OiBnaXRodWIuR2l0aHViV29ya2Zsb3c7XG5cbiAgLyoqIFRoZSBnZW5lcmF0ZWQgYGFtcGxpZnkueW1sYCwgaWYgYW55IEFtcGxpZnkgYXBwcyB3ZXJlIGNvbmZpZ3VyZWQuICovXG4gIHB1YmxpYyByZWFkb25seSBhbXBsaWZ5RmlsZT86IFlhbWxGaWxlO1xuXG4gIC8qKiBUaGUgUFIgYXBwcm92ZXIgYXNzaWdubWVudCwgaWYgZW5hYmxlZC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2lnbkFwcHJvdmVyPzogR2l0SHViQXNzaWduQXBwcm92ZXI7XG5cbiAgLyoqIFRoZSBwcm9kdWN0aW9uIHJlbGVhc2Ugd29ya2Zsb3csIGlmIGVuYWJsZWQuICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9kdWN0aW9uUmVsZWFzZT86IEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlO1xuXG4gIC8qKiBUaGUgQW1wbGlmeSBkZXBsb3kgd29ya2Zsb3dzLCB3aGVuIGBhbXBsaWZ5RGVwbG95T3B0aW9uc2AgaXMgc2V0LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYW1wbGlmeURlcGxveT86IEdpdEh1YkFtcGxpZnlEZXBsb3k7XG5cbiAgLyoqIFRoZSBkZWZhdWx0IHJlbGVhc2UgYnJhbmNoIChwcm9tb3RlZCBieSB0aGUgcHJvZHVjdGlvbiByZWxlYXNlIHdvcmtmbG93KS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTW9ub3JlcG9Qcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IHBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtV29ya3NwYWNlVmVyc2lvbiA/PyAnMTAuMzMuMCc7XG5cbiAgICAvLyBQTlBNIHdvcmtzcGFjZSB0dW5pbmcg4oCUIG1hcHBlZCBvbnRvIHByb2plbidzIG5hdGl2ZSBgcG5wbS13b3Jrc3BhY2UueWFtbGBcbiAgICAvLyBzdXBwb3J0IChwcm9qZW4gPj0gMC4xMDEpIHRocm91Z2ggYGFsbG93U2NyaXB0c2AgKyBgcG5wbU9wdGlvbnNgIGJlbG93LFxuICAgIC8vIHJhdGhlciB0aGFuIGhhbmQtcm9sbGluZyB0aGUgWUFNTCBmaWxlLlxuICAgIGNvbnN0IHdzID0gb3B0aW9ucy53b3Jrc3BhY2VPcHRpb25zID8/IHt9O1xuICAgIGNvbnN0IGFsbG93ZWRCdWlsZHMgPSB3cy5hbGxvd2VkQnVpbGRzID8/IFsnQGF3cy1hbXBsaWZ5L2NsaScsICdlc2J1aWxkJywgJ3NoYXJwJywgJ3VucnMtcmVzb2x2ZXInXTtcblxuICAgIC8vIFBhY2thZ2VzIGV4ZW1wdCBmcm9tIGBtaW5pbXVtUmVsZWFzZUFnZWAgc28gb3VyIG93biBidWlsZCB0b29saW5nIGNhblxuICAgIC8vIHVwZGF0ZSB3aXRob3V0IHRoZSBjb29sZG93bi4gYHByb2plbmAgaXMgaW5jbHVkZWQgYmVjYXVzZSBgQHRhaW1vcy9wcm9qZW5gXG4gICAgLy8gcGlucyBhIHByb2plbiBmbG9vciwgc28gdGhlIHR3byBtdXN0IG1vdmUgaW4gbG9ja3N0ZXAuIEEgY29uc3VtZXItc3VwcGxpZWRcbiAgICAvLyBsaXN0IE1FUkdFUyB3aXRoIHRoZXNlIGRlZmF1bHRzIChkZWR1cGVkKSByYXRoZXIgdGhhbiByZXBsYWNpbmcgdGhlbSwgc29cbiAgICAvLyBhZGRpbmcgb25lIHBhY2thZ2UgZG9lcyBub3Qgc2lsZW50bHkgZHJvcCB0aGUgdG9vbGluZyBleGVtcHRpb25zLlxuICAgIGNvbnN0IHJlbGVhc2VBZ2VFeGNsdWRlID0gQXJyYXkuZnJvbShuZXcgU2V0KFtcbiAgICAgIC4uLk1vbm9yZXBvUHJvamVjdC5ERUZBVUxUX1JFTEVBU0VfQUdFX0VYQ0xVREUsXG4gICAgICAuLi4od3MubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlID8/IFtdKSxcbiAgICBdKSk7XG5cbiAgICBzdXBlcih7XG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcbiAgICAgIGRlcHNVcGdyYWRlOiBmYWxzZSxcbiAgICAgIC8vIFRoZSByb290IG9ubHkgb3JjaGVzdHJhdGVzIHRoZSB3b3Jrc3BhY2Ug4oCUIG5vIGFwcCBjb2RlIGxpdmVzIGhlcmUuXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIC8vIENJIGlzIHRoZSBzaW5nbGUgaGFuZC1yb2xsZWQgd29ya2Zsb3cgYmVsb3cgdGhhdCBkZWxlZ2F0ZXMgdG8gcGFja2FnZXMuXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBGb3JjZWQg4oCUIGRlZmluaW5nIHdoYXQgYSBUYWltb3MgbW9ub3JlcG8gcm9vdCBpcy5cbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5QTlBNLFxuICAgICAgcG5wbVZlcnNpb24sXG4gICAgICAvLyBOYXRpdmUgcG5wbS13b3Jrc3BhY2UueWFtbCAocHJvamVuID49IDAuMTAxKS4gYGFsbG93U2NyaXB0c2AgcmVuZGVycyB0aGVcbiAgICAgIC8vIGJ1aWxkIGFsbG93bGlzdCBpbnRvIGBvbmx5QnVpbHREZXBlbmRlbmNpZXNgOyB0aGUgcmVtYWluaW5nIHR1bmluZyBtYXBzXG4gICAgICAvLyBvbnRvIGB3b3Jrc3BhY2VZYW1sT3B0aW9uc2AuIEFueSBjb25zdW1lci1zdXBwbGllZCBgcG5wbU9wdGlvbnNgIGFyZVxuICAgICAgLy8gbWVyZ2VkIGluIGFuZCB3aW4gb3ZlciBvdXIgZGVmYXVsdHMuXG4gICAgICBhbGxvd1NjcmlwdHM6IGFsbG93ZWRCdWlsZHMsXG4gICAgICBwbnBtT3B0aW9uczoge1xuICAgICAgICAuLi5vcHRpb25zLnBucG1PcHRpb25zLFxuICAgICAgICB3b3Jrc3BhY2VZYW1sT3B0aW9uczoge1xuICAgICAgICAgIC8vIHBucG0gMTEgcmVwbGFjZWQgYG9ubHlCdWlsdERlcGVuZGVuY2llc2AgKHdoaWNoIGBhbGxvd1NjcmlwdHNgXG4gICAgICAgICAgLy8gcmVuZGVycykgd2l0aCBgYWxsb3dCdWlsZHNgLCBhbmQgcmVhZHMgb25seSB0aGUgbGF0dGVyIOKAlCBhIHBucG0gMTFcbiAgICAgICAgICAvLyBpbnN0YWxsIG90aGVyd2lzZSBhYm9ydHMgd2l0aCBFUlJfUE5QTV9JR05PUkVEX0JVSUxEUy4gcG5wbSAxMCByZWFkc1xuICAgICAgICAgIC8vIG9ubHkgYG9ubHlCdWlsdERlcGVuZGVuY2llc2AuIEVtaXQgYm90aCBzbyB0aGUgc2FtZSB3b3Jrc3BhY2UgZmlsZVxuICAgICAgICAgIC8vIHdvcmtzIG9uIGVpdGhlciwgd2hhdGV2ZXIgYHBucG1WZXJzaW9uYCBhIGNvbnN1bWVyIHBpbnMuXG4gICAgICAgICAgYWxsb3dCdWlsZHM6IE9iamVjdC5mcm9tRW50cmllcyhhbGxvd2VkQnVpbGRzLm1hcCgocGtnKSA9PiBbcGtnLCB0cnVlXSkpLFxuICAgICAgICAgIHBhY2thZ2VzOiB3cy5wYWNrYWdlcyA/PyBbJ3BhY2thZ2VzLyonXSxcbiAgICAgICAgICBtaW5pbXVtUmVsZWFzZUFnZTogd3MubWluaW11bVJlbGVhc2VBZ2UgPz8gMjg4MCwgLy8gMiBkYXlzIGluIG1pbnV0ZXNcbiAgICAgICAgICBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU6IHJlbGVhc2VBZ2VFeGNsdWRlLFxuICAgICAgICAgIC4uLih3cy5vdmVycmlkZXMgJiYgT2JqZWN0LmtleXMod3Mub3ZlcnJpZGVzKS5sZW5ndGggPiAwID8geyBvdmVycmlkZXM6IHdzLm92ZXJyaWRlcyB9IDoge30pLFxuICAgICAgICAgIC4uLm9wdGlvbnMucG5wbU9wdGlvbnM/LndvcmtzcGFjZVlhbWxPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBnaXRodWI6IHRydWUsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCgpLFxuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgICAgbWVyZ2VRdWV1ZTogdHJ1ZSxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zLFxuICAgICAgICBtZXJnZVF1ZXVlT3B0aW9uczoge1xuICAgICAgICAgIGF1dG9RdWV1ZTogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/Lm1lcmdlUXVldWVPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zPy5wdWxsUmVxdWVzdExpbnRPcHRpb25zLFxuICAgICAgICAgIHNlbWFudGljVGl0bGVPcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/LnB1bGxSZXF1ZXN0TGludE9wdGlvbnM/LnNlbWFudGljVGl0bGVPcHRpb25zLFxuICAgICAgICAgICAgLy8gRml4ZWQgYWxsb3dlZCBQUiB0aXRsZSB0eXBlcyBmb3IgYSBUYWltb3MgbW9ub3JlcG8uXG4gICAgICAgICAgICB0eXBlczogWydmZWF0JywgJ2ZpeCcsICdjaG9yZScsICdkb2NzJywgJ3NwZWMnLCAnY2knXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgJ0B0YWltb3MvcHJvamVuJyxcbiAgICAgICAgJ3Byb2plbi1waXBlbGluZXMnLFxuICAgICAgICAuLi4ob3B0aW9ucy5jZGtTZXJ2ZXJsZXNzID8/IGZhbHNlID8gWydjZGstc2VydmVybGVzcyddIDogW10pLFxuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgPz8gW10sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gUHJpdmF0ZSB3b3Jrc3BhY2Ugcm9vdCDigJQgbmV2ZXIgcHVibGlzaGVkLCByZXNvbHZlcyBwYWNrYWdlcyBsb2NhbGx5LlxuICAgIHRoaXMucGFja2FnZS5hZGRGaWVsZCgncHJpdmF0ZScsIHRydWUpO1xuXG4gICAgdGhpcy5kZWZhdWx0UmVsZWFzZUJyYW5jaCA9IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2ggPz8gJ21haW4nO1xuXG4gICAgLy8gUFIgYXBwcm92ZXIgcm91dGluZy5cbiAgICBpZiAob3B0aW9ucy5hc3NpZ25BcHByb3ZlciA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmFzc2lnbkFwcHJvdmVyID0gbmV3IEdpdEh1YkFzc2lnbkFwcHJvdmVyKHRoaXMsIHtcbiAgICAgICAgYXBwcm92ZXJNYXBwaW5nOiBvcHRpb25zLmFwcHJvdmVyTWFwcGluZyA/PyBbXG4gICAgICAgICAgeyBhdXRob3I6ICdob2VnZXJ0bicsIGFwcHJvdmVyczogWydob2VnZXJtYSddIH0sXG4gICAgICAgICAgeyBhdXRob3I6ICdob2VnZXJtYScsIGFwcHJvdmVyczogWydob2VnZXJ0biddIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGRlZmF1bHRBcHByb3ZlcnM6IG9wdGlvbnMuZGVmYXVsdEFwcHJvdmVycyA/PyBbJ2hvZWdlcnRuJywgJ2hvZWdlcm1hJ10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWwgcHJvZHVjdGlvbiByZWxlYXNlIOKAlCBwcm9tb3RlcyBhIGJyYW5jaCB0byB0aGUgcHJvZHVjdGlvbiBicmFuY2guXG4gICAgaWYgKG9wdGlvbnMuYW1wbGlmeURlcGxveU9wdGlvbnMpIHtcbiAgICAgIHRoaXMuYW1wbGlmeURlcGxveSA9IG5ldyBHaXRIdWJBbXBsaWZ5RGVwbG95KHRoaXMsIG9wdGlvbnMuYW1wbGlmeURlcGxveU9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnByb2R1Y3Rpb25SZWxlYXNlID8/IGZhbHNlKSB7XG4gICAgICB0aGlzLnByb2R1Y3Rpb25SZWxlYXNlID0gbmV3IEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlKHRoaXMsIG9wdGlvbnMucHJvZHVjdGlvblJlbGVhc2VPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcHJvamVucmMgaXMgc3BsaXQgaW50byBtb2R1bGVzIHVuZGVyIC5wcm9qZW4vIOKAlCBtYWtlIHRoZW0gcGFydCBvZiB0aGVcbiAgICAvLyBkZXYgdHNjb25maWcgc28gdGhlIElERSBhbmQgdHMtbm9kZSB0eXBlLWNoZWNrIHRoZW0uXG4gICAgdGhpcy50c2NvbmZpZ0Rldj8uYWRkSW5jbHVkZSgnLnByb2plbi8qLnRzJyk7XG5cbiAgICAvLyBwcm9qZW4ncyBOb2RlUGFja2FnZSBnZW5lcmF0ZXMgYHBucG0td29ya3NwYWNlLnlhbWxgIG5hdGl2ZWx5IChwcm9qZW4gPj1cbiAgICAvLyAwLjEwMSksIGNvbmZpZ3VyZWQgdmlhIHRoZSBgcG5wbU9wdGlvbnNgL2BhbGxvd1NjcmlwdHNgIHBhc3NlZCB0byBzdXBlcigpLlxuICAgIC8vIEV4cG9zZSB0aGUgZ2VuZXJhdGVkIGZpbGUgc28gY29uc3VtZXJzIGNhbiBmdXJ0aGVyIGN1c3RvbWl6ZSBpdC5cbiAgICB0aGlzLndvcmtzcGFjZUZpbGUgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKCdwbnBtLXdvcmtzcGFjZS55YW1sJykgYXMgWWFtbEZpbGU7XG5cbiAgICAvLyBDb252ZW5pZW5jZSByb290IHNjcmlwdHMgZGVsZWdhdGUgdG8gdGhlIHdvcmtzcGFjZS5cbiAgICBjb25zdCByb290UGtnID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgncGFja2FnZS5qc29uJykhO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMuYnVpbGQnLCAncG5wbSAtciBydW4gYnVpbGQnKTtcbiAgICByb290UGtnLmFkZE92ZXJyaWRlKCdzY3JpcHRzLnRlc3QnLCAncG5wbSAtciBydW4gdGVzdCcpO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMubGludCcsICdwbnBtIC1yIHJ1biBlc2xpbnQnKTtcblxuICAgIC8vIFVuaWZpZWQgUFIgYnVpbGQgd29ya2Zsb3cg4oCUIGJ1aWxkcyAoYW5kIG9wdGlvbmFsbHkgdGVzdHMpIGV2ZXJ5IHdvcmtzcGFjZVxuICAgIC8vIHBhY2thZ2UgaW4gZGVwZW5kZW5jeSBvcmRlci5cbiAgICBjb25zdCBub2RlVmVyc2lvbiA9IG9wdGlvbnMubm9kZVZlcnNpb24gPz8gJzIyJztcbiAgICBjb25zdCBidWlsZFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtcbiAgICAgIHsgbmFtZTogJ0NoZWNrb3V0JywgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjQnIH0sXG4gICAgICB7IG5hbWU6ICdTZXR1cCBwbnBtJywgdXNlczogJ3BucG0vYWN0aW9uLXNldHVwQHY0Jywgd2l0aDogeyB2ZXJzaW9uOiBwbnBtVmVyc2lvbiB9IH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgIHdpdGg6IHsgJ25vZGUtdmVyc2lvbic6IG5vZGVWZXJzaW9uLCAnY2FjaGUnOiAncG5wbScgfSxcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6ICdJbnN0YWxsJywgcnVuOiAncG5wbSBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJyB9LFxuICAgICAgeyBuYW1lOiAnQnVpbGQnLCBydW46ICdwbnBtIC1yIHJ1biBidWlsZCcgfSxcbiAgICBdO1xuICAgIGlmIChvcHRpb25zLnJ1blRlc3RzSW5CdWlsZCA/PyBmYWxzZSkge1xuICAgICAgYnVpbGRTdGVwcy5wdXNoKHsgbmFtZTogJ1Rlc3QnLCBydW46ICdwbnBtIC1yIHJ1biB0ZXN0JyB9KTtcbiAgICB9XG4gICAgLy8gUGF0aCBmaWx0ZXI6IG9ubHkgdHJpZ2dlciBidWlsZHMgd2hlbiB3b3Jrc3BhY2UgcGFja2FnZSBmaWxlcyBvclxuICAgIC8vIGJ1aWxkLXJlbGV2YW50IHJvb3QgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiBDaGFuZ2VzIHRvIHNwZWNzIG9yIGRvY3NcbiAgICAvLyBhbG9uZSBzaG91bGQgbm90IHRyaWdnZXIgYSBuZXcgYnVpbGQuXG4gICAgY29uc3Qgd29ya3NwYWNlUGFja2FnZXMgPSB3cy5wYWNrYWdlcyA/PyBbJ3BhY2thZ2VzLyonXTtcbiAgICBjb25zdCBidWlsZFBhdGhzOiBzdHJpbmdbXSA9IFtcbiAgICAgIC8vIFdvcmtzcGFjZSBwYWNrYWdlIHNvdXJjZSBmaWxlcy5cbiAgICAgIC4uLndvcmtzcGFjZVBhY2thZ2VzLm1hcCgocGtnKSA9PiBgJHtwa2d9LyoqYCksXG4gICAgICAvLyBEZXBlbmRlbmN5IGxvY2sgJiB3b3Jrc3BhY2UgY29uZmlndXJhdGlvbi5cbiAgICAgICdwbnBtLWxvY2sueWFtbCcsXG4gICAgICAncG5wbS13b3Jrc3BhY2UueWFtbCcsXG4gICAgICAvLyBSb290IHBhY2thZ2UuanNvbiAoc2NyaXB0cywgZGV2RGVwcywgZW5naW5lcykuXG4gICAgICAncGFja2FnZS5qc29uJyxcbiAgICAgIC8vIFByb2plbiBjb25maWd1cmF0aW9uIOKAlCByZWdlbmVyYXRlcyBwcm9qZWN0IGZpbGVzLlxuICAgICAgJy5wcm9qZW5yYy50cycsXG4gICAgICAnLnByb2plbnJjLmpzJyxcbiAgICAgICcucHJvamVuLyoqJyxcbiAgICAgIC8vIFNoYXJlZCBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24uXG4gICAgICAndHNjb25maWcuanNvbicsXG4gICAgICAndHNjb25maWcuKi5qc29uJyxcbiAgICAgIC8vIFRoZSBidWlsZCB3b3JrZmxvdyBpdHNlbGYuXG4gICAgICAnLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueW1sJyxcbiAgICAgIC8vIFNoYXJlZCBsaW50IGNvbmZpZ3VyYXRpb24uXG4gICAgICAnLmVzbGludHJjLionLFxuICAgICAgJ2VzbGludC5jb25maWcuKicsXG4gICAgXTtcblxuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93ID0gbmV3IGdpdGh1Yi5HaXRodWJXb3JrZmxvdyh0aGlzLmdpdGh1YiEsICdidWlsZCcpO1xuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0OiB7IHBhdGhzOiBidWlsZFBhdGhzIH0sXG4gICAgICBwdXNoOiB7IGJyYW5jaGVzOiBbJ21haW4nXSwgcGF0aHM6IGJ1aWxkUGF0aHMgfSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93LmFkZEpvYignYnVpbGQnLCB7XG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICBzdGVwczogYnVpbGRTdGVwcyxcbiAgICB9KTtcblxuICAgIC8vIEFXUyBBbXBsaWZ5IEhvc3RpbmcgYnVpbGQgc3BlYy4gUE5QTSB3b3Jrc3BhY2VzIGFyZSBub3QgYXV0by1kZXRlY3RlZCBieVxuICAgIC8vIEFtcGxpZnksIHNvIGVhY2ggYXBwIGluc3RhbGxzIGF0IHRoZSByZXBvIHJvb3QsIHByZS1idWlsZHMgaXRzIHNoYXJlZFxuICAgIC8vIHBhY2thZ2VzLCB0aGVuIGJ1aWxkcyBmcm9tIGl0cyBhcHBSb290IChzZWUgQURSLTAwMDIpLlxuICAgIGlmIChvcHRpb25zLmFtcGxpZnlBcHBzICYmIG9wdGlvbnMuYW1wbGlmeUFwcHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hbXBsaWZ5RmlsZSA9IG5ldyBZYW1sRmlsZSh0aGlzLCAnYW1wbGlmeS55bWwnLCB7XG4gICAgICAgIG9iajoge1xuICAgICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgICAgYXBwbGljYXRpb25zOiBvcHRpb25zLmFtcGxpZnlBcHBzLm1hcCgoYXBwKSA9PiB0aGlzLnJlbmRlckFtcGxpZnlBcHAoYXBwKSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFtcGxpZnlBcHAoYXBwOiBNb25vcmVwb0FtcGxpZnlBcHApIHtcbiAgICBjb25zdCBhbmd1bGFyID0gYXBwLmZyYW1ld29yayA9PT0gTW9ub3JlcG9BbXBsaWZ5RnJhbWV3b3JrLkFOR1VMQVI7XG4gICAgLy8gU2NvcGUgdGhlIGluc3RhbGwgdG8gdGhlIGFwcCdzIGRlcGVuZGVuY3kgY2xvc3VyZSB0byBhdm9pZCBjb25jdXJyZW50XG4gICAgLy8gcHJvamVuL25vZGVfbW9kdWxlcyByZW5hbWUgcmFjZXMgdW5kZXIgdGhlIGhvaXN0ZWQgbGlua2VyIChzZWUgIzM3MikuXG4gICAgY29uc3QgZmlsdGVyID0gYXBwLmluc3RhbGxGaWx0ZXIgPz8gYCR7YXBwLmJ1aWxkRmlsdGVyfS4uLmA7XG4gICAgY29uc3QgaW5zdGFsbENvbW1hbmQgPSBhcHAuaW5zdGFsbENvbW1hbmRcbiAgICAgID8/IGBwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUgLS1ub2RlLWxpbmtlciBob2lzdGVkIC0tZmlsdGVyIFwiJHtmaWx0ZXJ9XCJgO1xuICAgIGNvbnN0IHByZUJ1aWxkID0gW1xuICAgICAgJ2NvcmVwYWNrIGVuYWJsZScsXG4gICAgICBpbnN0YWxsQ29tbWFuZCxcbiAgICAgIC4uLihhcHAucHJlQnVpbGRGaWx0ZXJzID8/IFtdKS5tYXAoKGYpID0+IGBwbnBtIC0tZmlsdGVyICR7Zn0gcnVuIGJ1aWxkYCksXG4gICAgXTtcbiAgICAvLyBCVUlMRF9FTlYgKGRldnxwcm9kKSBpcyBwcm92aWRlZCBhcyBhbiBBbXBsaWZ5IGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgIGNvbnN0IGJ1aWxkQ29tbWFuZCA9IGFwcC5idWlsZENvbW1hbmQgPz8gKGFuZ3VsYXJcbiAgICAgID8gYHBucG0gLS1maWx0ZXIgJHthcHAuYnVpbGRGaWx0ZXJ9IHJ1biBidWlsZDpcXCR7QlVJTERfRU5WfWBcbiAgICAgIDogYHBucG0gLS1maWx0ZXIgJHthcHAuYnVpbGRGaWx0ZXJ9IHJ1biBidWlsZGApO1xuICAgIGNvbnN0IGJhc2VEaXJlY3RvcnkgPSBhcHAuYXJ0aWZhY3RCYXNlRGlyZWN0b3J5ID8/IChhbmd1bGFyXG4gICAgICA/IGAke2FwcC5hcHBSb290fS9kaXN0LyR7YXBwLmJ1aWxkRmlsdGVyfS9icm93c2VyYFxuICAgICAgOiBgJHthcHAuYXBwUm9vdH0vLm5leHRgKTtcbiAgICBjb25zdCBjYWNoZVBhdGhzID0gYXBwLmNhY2hlUGF0aHMgPz8gW1xuICAgICAgJ25vZGVfbW9kdWxlcy8qKi8qJyxcbiAgICAgIGFuZ3VsYXIgPyBgJHthcHAuYXBwUm9vdH0vLmFuZ3VsYXIvY2FjaGUvKiovKmAgOiBgJHthcHAuYXBwUm9vdH0vLm5leHQvY2FjaGUvKiovKmAsXG4gICAgXTtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwUm9vdDogYXBwLmFwcFJvb3QsXG4gICAgICBmcm9udGVuZDoge1xuICAgICAgICAvLyBJbnN0YWxsL2J1aWxkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3Qgc28gdGhlIHdvcmtzcGFjZSByb290XG4gICAgICAgIC8vIHBhY2thZ2UuanNvbiBhbmQgcG5wbS1sb2NrLnlhbWwgYXJlIGF2YWlsYWJsZS5cbiAgICAgICAgYnVpbGRQYXRoOiAnLycsXG4gICAgICAgIHBoYXNlczoge1xuICAgICAgICAgIHByZUJ1aWxkOiB7IGNvbW1hbmRzOiBwcmVCdWlsZCB9LFxuICAgICAgICAgIGJ1aWxkOiB7IGNvbW1hbmRzOiBbYnVpbGRDb21tYW5kXSB9LFxuICAgICAgICB9LFxuICAgICAgICBhcnRpZmFjdHM6IHsgYmFzZURpcmVjdG9yeSwgZmlsZXM6IFsnKiovKiddIH0sXG4gICAgICAgIGNhY2hlOiB7IHBhdGhzOiBjYWNoZVBhdGhzIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvbW9ub3JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFrRTtBQUNsRSx1REFBd0Q7QUFDeEQsOENBQW9LO0FBRXBLOzs7OztHQUtHO0FBQ0gsSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2xDLDZFQUE2RTtJQUM3RSw2Q0FBaUIsQ0FBQTtJQUNqQiwyR0FBMkc7SUFDM0csK0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLHdCQUF3Qix3Q0FBeEIsd0JBQXdCLFFBS25DO0FBNFFEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjs7SUFFL0Q7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSwyQkFBMkIsR0FBYTtRQUM3RCxrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixRQUFRO0tBQ1QsQ0FBQztJQUVGLDJDQUEyQztJQUMzQixhQUFhLENBQVc7SUFFeEMscUNBQXFDO0lBQ3JCLGVBQWUsQ0FBd0I7SUFFdkQsd0VBQXdFO0lBQ3hELFdBQVcsQ0FBWTtJQUV2Qyw4Q0FBOEM7SUFDOUIsY0FBYyxDQUF3QjtJQUV0RCxtREFBbUQ7SUFDbkMsaUJBQWlCLENBQTJCO0lBRTVELHdFQUF3RTtJQUN4RCxhQUFhLENBQXVCO0lBRXBELDBEQUEwRDtJQUMxQyxRQUFRLENBQVk7SUFFcEMsZ0ZBQWdGO0lBQ2hFLG9CQUFvQixDQUFTO0lBRTdDLFlBQVksT0FBK0I7UUFDekMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixJQUFJLFNBQVMsQ0FBQztRQUU5RCw0RUFBNEU7UUFDNUUsMEVBQTBFO1FBQzFFLDBDQUEwQztRQUMxQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLEVB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LENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzdDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7YUFDN0I7U0FDRixDQUFDO0lBQ0osQ0FBQzs7QUE5UUgsMENBK1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2l0aHViLCBqYXZhc2NyaXB0LCB0eXBlc2NyaXB0LCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBHaXRIdWJBc3NpZ25BcHByb3ZlciB9IGZyb20gJ3Byb2plbi1waXBlbGluZXMnO1xuaW1wb3J0IHsgR2l0SHViQW1wbGlmeURlcGxveSwgR2l0SHViQW1wbGlmeURlcGxveU9wdGlvbnMsIEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlLCBHaXRIdWJQcm9kdWN0aW9uUmVsZWFzZU9wdGlvbnMsIEdpdGxlYWtzLCBHaXRsZWFrc09wdGlvbnMgfSBmcm9tICcuLi9jb21wb25lbnRzJztcblxuLyoqXG4gKiBUaGUgZnJvbnRlbmQgZnJhbWV3b3JrIGFuIEFtcGxpZnkgSG9zdGluZyBhcHBsaWNhdGlvbiBpcyBidWlsdCB3aXRoLlxuICpcbiAqIFNlbGVjdHMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIHRoZSBidWlsZCBjb21tYW5kLCBhcnRpZmFjdCBkaXJlY3RvcnkgYW5kXG4gKiBjYWNoZSBwYXRocyBpbiB0aGUgZ2VuZXJhdGVkIGBhbXBsaWZ5LnltbGAuXG4gKi9cbmV4cG9ydCBlbnVtIE1vbm9yZXBvQW1wbGlmeUZyYW1ld29yayB7XG4gIC8qKiBBIE5leHQuanMgYXBwIOKAlCBhcnRpZmFjdHMgaW4gYDxhcHBSb290Pi8ubmV4dGAsIGJ1aWx0IHZpYSBgcnVuIGJ1aWxkYC4gKi9cbiAgTkVYVEpTID0gJ25leHRqcycsXG4gIC8qKiBBbiBBbmd1bGFyIGFwcCDigJQgYXJ0aWZhY3RzIGluIGA8YXBwUm9vdD4vZGlzdC88ZmlsdGVyPi9icm93c2VyYCwgYnVpbHQgdmlhIGBydW4gYnVpbGQ6JHtCVUlMRF9FTlZ9YC4gKi9cbiAgQU5HVUxBUiA9ICdhbmd1bGFyJyxcbn1cblxuLyoqXG4gKiBPbmUgQVdTIEFtcGxpZnkgSG9zdGluZyBhcHBsaWNhdGlvbiBzZXJ2ZWQgZnJvbSBhIHdvcmtzcGFjZSBwYWNrYWdlLlxuICpcbiAqIFJlbmRlcnMgYSBzaW5nbGUgZW50cnkgdW5kZXIgYGFwcGxpY2F0aW9uczpgIGluIHRoZSBnZW5lcmF0ZWQgYGFtcGxpZnkueW1sYC5cbiAqIEFtcGxpZnkgZG9lcyBub3QgYXV0by1kZXRlY3QgUE5QTSB3b3Jrc3BhY2VzLCBzbyB0aGUgZ2VuZXJhdGVkIGJ1aWxkIHNwZWNcbiAqIHJ1bnMgYGNvcmVwYWNrIGVuYWJsZWAgKyBhIHJvb3QgYHBucG0gaW5zdGFsbGAgYW5kIHByZS1idWlsZHMgYW55IHNoYXJlZFxuICogcGFja2FnZXMgYmVmb3JlIGJ1aWxkaW5nIHRoZSBhcHAgZnJvbSBpdHMgYGFwcFJvb3RgIChzZWUgQURSLTAwMDIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvQW1wbGlmeUFwcCB7XG4gIC8qKlxuICAgKiBUaGUgcGFja2FnZSBwYXRoIHRoYXQgaXMgdGhlIEFtcGxpZnkgYXBwIHJvb3QsIGUuZy4gYHBhY2thZ2VzL2Zyb250ZW5kYC5cbiAgICovXG4gIHJlYWRvbmx5IGFwcFJvb3Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyb250ZW5kIGZyYW1ld29yaywgdXNlZCB0byBwaWNrIGJ1aWxkL2FydGlmYWN0L2NhY2hlIGRlZmF1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJhbWV3b3JrOiBNb25vcmVwb0FtcGxpZnlGcmFtZXdvcms7XG5cbiAgLyoqXG4gICAqIFRoZSBwbnBtIHBhY2thZ2UgbmFtZSB0byBidWlsZCwgdXNlZCBhcyB0aGUgYC0tZmlsdGVyYCB0YXJnZXQsXG4gICAqIGUuZy4gYGRlcGxveW1vbi1mcm9udGVuZGAgb3IgYHJhZGJhbGwtZGlnaXRhbC1wb3J0YWxgLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRGaWx0ZXI6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya3NwYWNlIHBhY2thZ2VzIHRvIGJ1aWxkIGJlZm9yZSB0aGUgYXBwLCBhcyBgLS1maWx0ZXJgIHRhcmdldHMuXG4gICAqXG4gICAqIFR5cGljYWxseSB0aGUgc2hhcmVkIEFQSSBwYWNrYWdlIHRoZSBhcHAgY29uc3VtZXMgdmlhIGB3b3Jrc3BhY2U6KmAsXG4gICAqIGUuZy4gYFsnQHRhaW1vcy9kZXBsb3ltb24tYXBpJ11gLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgcHJlQnVpbGRGaWx0ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBidWlsZCBjb21tYW5kIHJ1biBpbiB0aGUgQW1wbGlmeSBgYnVpbGRgIHBoYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGBwbnBtIC0tZmlsdGVyIDxidWlsZEZpbHRlcj4gcnVuIGJ1aWxkYCBmb3IgTmV4dC5qcywgb3JcbiAgICogYHBucG0gLS1maWx0ZXIgPGJ1aWxkRmlsdGVyPiBydW4gYnVpbGQ6JHtCVUlMRF9FTlZ9YCBmb3IgQW5ndWxhci5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQ29tbWFuZD86IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGFydGlmYWN0IGJhc2UgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGA8YXBwUm9vdD4vLm5leHRgIGZvciBOZXh0LmpzLCBvclxuICAgKiBgPGFwcFJvb3Q+L2Rpc3QvPGJ1aWxkRmlsdGVyPi9icm93c2VyYCBmb3IgQW5ndWxhci5cbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0QmFzZURpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIEFtcGxpZnkgYnVpbGQgY2FjaGUgcGF0aHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYG5vZGVfbW9kdWxlcy8qKmAgcGx1cyB0aGUgZnJhbWV3b3JrIGJ1aWxkIGNhY2hlXG4gICAqIChgPGFwcFJvb3Q+Ly5uZXh0L2NhY2hlLyoqYCBvciBgPGFwcFJvb3Q+Ly5hbmd1bGFyL2NhY2hlLyoqYCkuXG4gICAqL1xuICByZWFkb25seSBjYWNoZVBhdGhzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHBucG0gYC0tZmlsdGVyYCBleHByZXNzaW9uIGZvciB0aGUgc2NvcGVkIGluc3RhbGwgaW4gdGhlIHByZUJ1aWxkIHBoYXNlLlxuICAgKlxuICAgKiBUaGUgdHJhaWxpbmcgYC4uLmAgc3ludGF4IHB1bGxzIGluIHRoZSBhcHAncyB0cmFuc2l0aXZlIHdvcmtzcGFjZVxuICAgKiBkZXBlbmRlbmNpZXMgKGUuZy4gYSBzaGFyZWQgQVBJIHBhY2thZ2UpIGJ1dCBleGNsdWRlcyB1bnJlbGF0ZWQgcGFja2FnZXMsXG4gICAqIGF2b2lkaW5nIGNvbmN1cnJlbnQgYHByb2plbi9ub2RlX21vZHVsZXNgIHJlbmFtZSByYWNlcyB1bmRlciB0aGUgaG9pc3RlZFxuICAgKiBsaW5rZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAke2J1aWxkRmlsdGVyfS4uLmBcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxGaWx0ZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZ1bGwgb3ZlcnJpZGUgb2YgdGhlIGluc3RhbGwgY29tbWFuZCBpbiB0aGUgcHJlQnVpbGQgcGhhc2UuXG4gICAqXG4gICAqIFdoZW4gc2V0LCBgaW5zdGFsbEZpbHRlcmAgaXMgaWdub3JlZCBhbmQgdGhpcyBzdHJpbmcgaXMgZW1pdHRlZCB2ZXJiYXRpbS5cbiAgICogVXNlIHRoaXMgYXMgYW4gZXNjYXBlIGhhdGNoIHdoZW4gdGhlIGRlZmF1bHQgc2NvcGVkIGluc3RhbGwgaXMgaW5zdWZmaWNpZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGBwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUgLS1ub2RlLWxpbmtlciBob2lzdGVkIC0tZmlsdGVyIFwiPGluc3RhbGxGaWx0ZXI+XCJgXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsQ29tbWFuZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQTlBNIHdvcmtzcGFjZSB0dW5pbmcgZm9yIHRoZSBnZW5lcmF0ZWQgYHBucG0td29ya3NwYWNlLnlhbWxgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgd29ya3NwYWNlIHBhY2thZ2UgZ2xvYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsncGFja2FnZXMvKiddXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG92ZXJyaWRlcyBmb3JjZWQgYWNyb3NzIHRoZSB3aG9sZSB3b3Jrc3BhY2VcbiAgICogKHRoZSBgb3ZlcnJpZGVzOmAgZmllbGQpLiBPbWl0dGVkIGZyb20gdGhlIGZpbGUgd2hlbiBlbXB0eS5cbiAgICpcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBEZXBlbmRlbmNpZXMgYWxsb3dlZCB0byBydW4gaW5zdGFsbC9idWlsZCBzY3JpcHRzLiBwbnBtID49IDEwIGJsb2NrcyB0aGVzZVxuICAgKiBieSBkZWZhdWx0LiBUaGUgbGlzdCBwb3B1bGF0ZXMgYm90aCBgYWxsb3dCdWlsZHNgIGFuZFxuICAgKiBgb25seUJ1aWx0RGVwZW5kZW5jaWVzYCBzbyBwbnBtIGRvZXMgbm90IHRyZWF0IGBub2RlX21vZHVsZXNgIGFzIHN0YWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ0Bhd3MtYW1wbGlmeS9jbGknLCAnZXNidWlsZCcsICdzaGFycCcsICd1bnJzLXJlc29sdmVyJ11cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRCdWlsZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWluaW11bSBhZ2UgaW4gbWludXRlcyBhIHB1Ymxpc2hlZCB2ZXJzaW9uIG11c3QgaGF2ZSBiZWZvcmUgaXQgbWF5IGJlXG4gICAqIGluc3RhbGxlZCAoYG1pbmltdW1SZWxlYXNlQWdlYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDI4ODAgLy8gMiBkYXlzXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZT86IG51bWJlcjtcblxuICAvKipcbiAgICogUGFja2FnZXMgZXhlbXB0IGZyb20gYG1pbmltdW1SZWxlYXNlQWdlYCBzbyBvdXIgb3duIHRvb2xpbmcgY2FuIHVwZGF0ZVxuICAgKiB3aXRob3V0IHRoZSBjb29sZG93bi4gTUVSR0VEIG9uIHRvcCBvZiB0aGUgYnVpbHQtaW4gZGVmYXVsdHNcbiAgICogKGBwcm9qZW4tcGlwZWxpbmVzYCwgYGNkay1zZXJ2ZXJsZXNzYCwgYEB0YWltb3MvcHJvamVuYCwgYHByb2plbmApIGFuZFxuICAgKiBkZWR1cGVkIOKAlCBzdXBwbHlpbmcgdGhpcyBkb2VzIG5vdCBkcm9wIHRoZSB0b29saW5nIGV4ZW1wdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdIC8vIG1lcmdlZCB3aXRoIERFRkFVTFRfUkVMRUFTRV9BR0VfRVhDTFVERVxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogT25lIGF1dGhvci10by1hcHByb3ZlcnMgcm91dGluZyBydWxlIGZvciB0aGUgUFIgYXBwcm92ZXIgYXNzaWdubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25vcmVwb0FwcHJvdmVyTWFwcGluZyB7XG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHVzZXJuYW1lIG9wZW5pbmcgdGhlIFBSLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgdXNlcm5hbWVzIGFzc2lnbmVkIHRvIHJldmlldyB3aGVuIGBhdXRob3JgIG9wZW5zIGEgUFIuXG4gICAqL1xuICByZWFkb25seSBhcHByb3ZlcnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcG5wbSB2ZXJzaW9uIHBpbm5lZCBmb3IgdGhlIHdvcmtzcGFjZSBhbmQgQ0kuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMC4zMy4wJ1xuICAgKi9cbiAgcmVhZG9ubHkgcG5wbVdvcmtzcGFjZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIHZlcnNpb24gdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGJ1aWxkIHdvcmtmbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMjInXG4gICAqL1xuICByZWFkb25seSBub2RlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUE5QTSB3b3Jrc3BhY2UgdHVuaW5nIGZvciB0aGUgZ2VuZXJhdGVkIGBwbnBtLXdvcmtzcGFjZS55YW1sYC5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtzcGFjZU9wdGlvbnM/OiBNb25vcmVwb1dvcmtzcGFjZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRkIGBjZGstc2VydmVybGVzc2AgYXMgYSB3b3Jrc3BhY2UgZGV2IGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjZGtTZXJ2ZXJsZXNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhc3NpZ24gUFIgYXBwcm92ZXJzIHZpYSBgR2l0SHViQXNzaWduQXBwcm92ZXJgLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NpZ25BcHByb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dGhvci10by1hcHByb3ZlcnMgcm91dGluZyBmb3IgdGhlIFBSIGFwcHJvdmVyIGFzc2lnbm1lbnQuXG4gICAqIE9ubHkgdXNlZCB3aGVuIGBhc3NpZ25BcHByb3ZlcmAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBob2VnZXJ0biBhbmQgaG9lZ2VybWEgcmV2aWV3IGVhY2ggb3RoZXJcbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmVyTWFwcGluZz86IE1vbm9yZXBvQXBwcm92ZXJNYXBwaW5nW107XG5cbiAgLyoqXG4gICAqIEFwcHJvdmVycyBhc3NpZ25lZCB3aGVuIG5vIGF1dGhvci1zcGVjaWZpYyBtYXBwaW5nIG1hdGNoZXMuXG4gICAqIE9ubHkgdXNlZCB3aGVuIGBhc3NpZ25BcHByb3ZlcmAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgWydob2VnZXJ0bicsICdob2VnZXJtYSddXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QXBwcm92ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVuaWZpZWQgYnVpbGQgd29ya2Zsb3cgYWxzbyBydW5zIGEgc2VwYXJhdGUgYHBucG0gLXIgcnVuIHRlc3RgXG4gICAqIHN0ZXAuXG4gICAqXG4gICAqIEVhY2ggcHJvamVuIHN1Yi1wcm9qZWN0J3Mgb3duIGBidWlsZGAgdGFzayBhbHJlYWR5IHJ1bnMgaXRzIGB0ZXN0YCBzdWItdGFza1xuICAgKiAocHJlLWNvbXBpbGUg4oaSIGNvbXBpbGUg4oaSIHBvc3QtY29tcGlsZSDihpIgdGVzdCDihpIgcGFja2FnZSksIHNvIGBwbnBtIC1yIHJ1blxuICAgKiBidWlsZGAgYWxyZWFkeSBydW5zIGV2ZXJ5IHByb2plbiBwYWNrYWdlJ3MgamVzdCArIGVzbGludC4gRW5hYmxpbmcgdGhpcyBhZGRzXG4gICAqIGEgc2Vjb25kIGZ1bGwgcnVuIOKAlCBpbmNsdWRpbmcgdGhlIGV4cGVuc2l2ZSBDREsgc3ludGhzIOKAlCByb3VnaGx5IGRvdWJsaW5nIENJLlxuICAgKlxuICAgKiBDYXZlYXQ6IHdpdGggdGhpcyBvZmYsIGEgaGFuZC1tYW5hZ2VkIChub24tcHJvamVuKSBwYWNrYWdlIGlzIG9ubHkgdGVzdGVkIGluXG4gICAqIENJIGlmIGl0cyBvd24gYGJ1aWxkYCBzY3JpcHQgcnVucyBpdHMgY2hlY2tzIChlLmcuIGB0c2MgJiYgamVzdGAsXG4gICAqIGBlc2xpbnQgLiAmJiB2aXRlc3QgcnVuICYmIG5leHQgYnVpbGRgKS4gTWFrZSBlYWNoIGhhbmQtbWFuYWdlZCBwYWNrYWdlJ3NcbiAgICogYnVpbGQgc2VsZi1jb250YWluIGl0cyB2ZXJpZmljYXRpb24gc28gYHBucG0gLXIgcnVuIGJ1aWxkYCBzdGF5cyB0aGUgc2luZ2xlXG4gICAqIGdhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBydW5UZXN0c0luQnVpbGQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBV1MgQW1wbGlmeSBIb3N0aW5nIGFwcGxpY2F0aW9ucy4gV2hlbiBzZXQsIGFuIGBhbXBsaWZ5LnltbGAgaXMgZ2VuZXJhdGVkXG4gICAqIHdpdGggb25lIGVudHJ5IHBlciBhcHAuIFdoZW4gb21pdHRlZCwgbm8gYGFtcGxpZnkueW1sYCBpcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgYW1wbGlmeUFwcHM/OiBNb25vcmVwb0FtcGxpZnlBcHBbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhZGQgYSBtYW51YWwgXCJQcm9kdWN0aW9uIFJlbGVhc2VcIiB3b3JrZmxvdyB0aGF0IHByb21vdGVzIGEgYnJhbmNoXG4gICAqIHRvIHRoZSBwcm9kdWN0aW9uIGJyYW5jaCAoc2VlIGBHaXRIdWJQcm9kdWN0aW9uUmVsZWFzZWApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZHVjdGlvblJlbGVhc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgcHJvZHVjdGlvbiByZWxlYXNlIHdvcmtmbG93LiBPbmx5IHVzZWQgd2hlblxuICAgKiBgcHJvZHVjdGlvblJlbGVhc2VgIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHJvbW90ZSBgbWFpbmAgdG8gYSBgcHJvZHVjdGlvbmAgYnJhbmNoXG4gICAqL1xuICByZWFkb25seSBwcm9kdWN0aW9uUmVsZWFzZU9wdGlvbnM/OiBHaXRIdWJQcm9kdWN0aW9uUmVsZWFzZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRkIGdpdGxlYWtzIHNlY3JldC1zY2FubmluZzogYSBgLmdpdGxlYWtzLnRvbWxgIGNvbmZpZyBwbHVzIGFcbiAgICogcHVsbC1yZXF1ZXN0IHdvcmtmbG93IHRoYXQgc2NhbnMgdGhlIGZ1bGwgZ2l0IGhpc3RvcnkgKHNlZSBgR2l0bGVha3NgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGdpdGxlYWtzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIGdpdGxlYWtzIGNvbXBvbmVudC4gT25seSB1c2VkIHdoZW4gYGdpdGxlYWtzYCBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGV4dGVuZCB0aGUgZGVmYXVsdCBydWxlc2V0LCBubyBleHRyYSBhbGxvd2xpc3RzXG4gICAqL1xuICByZWFkb25seSBnaXRsZWFrc09wdGlvbnM/OiBHaXRsZWFrc09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERyaXZlIEFtcGxpZnkgSG9zdGluZyBidWlsZHMgZnJvbSBHaXRIdWIgQWN0aW9ucyBpbnN0ZWFkIG9mIEFtcGxpZnkncyBvd25cbiAgICogYXV0by1idWlsZCwgc28gYW4gYXBwIG9ubHkgcmVidWlsZHMgd2hlbiB0aGUgcGFja2FnZXMgaXQgaXMgYnVpbHQgZnJvbVxuICAgKiBhY3R1YWxseSBjaGFuZ2VkIChzZWUgYEdpdEh1YkFtcGxpZnlEZXBsb3lgKS5cbiAgICpcbiAgICogU2V0dGluZyB0aGlzIGdlbmVyYXRlcyBvbmUgZGVwbG95IHdvcmtmbG93IHBlciBsaXN0ZWQgYXBwLiBUaGUgcHJvamVjdCdzXG4gICAqIENESyBhcHAgbXVzdCBkaXNhYmxlIGBhdXRvQnVpbGRgIG9uIHRoZSB0cmFja2VkIGJyYW5jaGVzIGFuZCBwcm92aWRlIHRoZVxuICAgKiBhcHAtaWQgcGFyYW1ldGVycyBhbmQgYnVpbGQtdHJpZ2dlciByb2xlIHRoZSB3b3JrZmxvd3MgZXhwZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFtcGxpZnkncyBvd24gYXV0by1idWlsZCBpcyBsZWZ0IGluIHBsYWNlXG4gICAqL1xuICByZWFkb25seSBhbXBsaWZ5RGVwbG95T3B0aW9ucz86IEdpdEh1YkFtcGxpZnlEZXBsb3lPcHRpb25zO1xufVxuXG4vKipcbiAqIFByaXZhdGUgUE5QTS13b3Jrc3BhY2UgbW9ub3JlcG8gcm9vdCwgZm9sbG93aW5nIFRhaW1vcyBBRFItMDAwMi5cbiAqXG4gKiBUaGUgcm9vdCBvbmx5IG9yY2hlc3RyYXRlcyB0aGUgd29ya3NwYWNlIOKAlCBidWlsZGluZywgdGVzdGluZyBhbmQgbGludGluZyBhcmVcbiAqIGRlbGVnYXRlZCB0byB0aGUgd29ya3NwYWNlIHBhY2thZ2VzIHZpYSBgcG5wbSAtcmAuIFRoaXMgcHJvamVjdCBnZW5lcmF0ZXMgdGhlXG4gKiBgcG5wbS13b3Jrc3BhY2UueWFtbGAsIHRoZSByb290IGNvbnZlbmllbmNlIHNjcmlwdHMsIGEgdW5pZmllZCBQUiBidWlsZFxuICogd29ya2Zsb3cgYW5kIChvcHRpb25hbGx5KSBhbiBBbXBsaWZ5IEhvc3RpbmcgYnVpbGQgc3BlYy4gVGhlIHByb2plbi1tYW5hZ2VkXG4gKiBzdWItcHJvamVjdHMgKGFwaSwgYmFja2VuZCwgaW5mcmEpIGFyZSBhZGRlZCB3aXRoIHRoZSBgcGFyZW50YC9gb3V0ZGlyYFxuICogcGF0dGVybiBpbiB0aGUgY29uc3VtaW5nIGAucHJvamVucmMudHNgOyBwbGFpbiB3b3Jrc3BhY2UgcGFja2FnZXMgKGUuZy5cbiAqIE5leHQuanMgYXBwcykgYXJlIHBpY2tlZCB1cCBieSB0aGUgYHBhY2thZ2VzLypgIGdsb2IuXG4gKlxuICogQHBqaWQgdGFpbW9zLW1vbm9yZXBvXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1Byb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcblxuICAvKipcbiAgICogUGFja2FnZXMgZXhlbXB0IGZyb20gYG1pbmltdW1SZWxlYXNlQWdlYCBieSBkZWZhdWx0IHNvIG91ciBvd24gYnVpbGQgdG9vbGluZ1xuICAgKiBjYW4gdXBkYXRlIHdpdGhvdXQgdGhlIGNvb2xkb3duLiBBIGNvbnN1bWVyJ3NcbiAgICogYHdvcmtzcGFjZU9wdGlvbnMubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlYCBpcyBtZXJnZWQgb24gdG9wIG9mIHRoaXMgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9SRUxFQVNFX0FHRV9FWENMVURFOiBzdHJpbmdbXSA9IFtcbiAgICAncHJvamVuLXBpcGVsaW5lcycsXG4gICAgJ2Nkay1zZXJ2ZXJsZXNzJyxcbiAgICAnQHRhaW1vcy9wcm9qZW4nLFxuICAgICdwcm9qZW4nLFxuICBdO1xuXG4gIC8qKiBUaGUgZ2VuZXJhdGVkIGBwbnBtLXdvcmtzcGFjZS55YW1sYC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUZpbGU6IFlhbWxGaWxlO1xuXG4gIC8qKiBUaGUgdW5pZmllZCBQUiBidWlsZCB3b3JrZmxvdy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHByQnVpbGRXb3JrZmxvdzogZ2l0aHViLkdpdGh1YldvcmtmbG93O1xuXG4gIC8qKiBUaGUgZ2VuZXJhdGVkIGBhbXBsaWZ5LnltbGAsIGlmIGFueSBBbXBsaWZ5IGFwcHMgd2VyZSBjb25maWd1cmVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYW1wbGlmeUZpbGU/OiBZYW1sRmlsZTtcblxuICAvKiogVGhlIFBSIGFwcHJvdmVyIGFzc2lnbm1lbnQsIGlmIGVuYWJsZWQuICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NpZ25BcHByb3Zlcj86IEdpdEh1YkFzc2lnbkFwcHJvdmVyO1xuXG4gIC8qKiBUaGUgcHJvZHVjdGlvbiByZWxlYXNlIHdvcmtmbG93LCBpZiBlbmFibGVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvZHVjdGlvblJlbGVhc2U/OiBHaXRIdWJQcm9kdWN0aW9uUmVsZWFzZTtcblxuICAvKiogVGhlIEFtcGxpZnkgZGVwbG95IHdvcmtmbG93cywgd2hlbiBgYW1wbGlmeURlcGxveU9wdGlvbnNgIGlzIHNldC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGFtcGxpZnlEZXBsb3k/OiBHaXRIdWJBbXBsaWZ5RGVwbG95O1xuXG4gIC8qKiBUaGUgZ2l0bGVha3Mgc2VjcmV0LXNjYW5uaW5nIGNvbXBvbmVudCwgaWYgZW5hYmxlZC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGdpdGxlYWtzPzogR2l0bGVha3M7XG5cbiAgLyoqIFRoZSBkZWZhdWx0IHJlbGVhc2UgYnJhbmNoIChwcm9tb3RlZCBieSB0aGUgcHJvZHVjdGlvbiByZWxlYXNlIHdvcmtmbG93KS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTW9ub3JlcG9Qcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IHBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtV29ya3NwYWNlVmVyc2lvbiA/PyAnMTAuMzMuMCc7XG5cbiAgICAvLyBQTlBNIHdvcmtzcGFjZSB0dW5pbmcg4oCUIG1hcHBlZCBvbnRvIHByb2plbidzIG5hdGl2ZSBgcG5wbS13b3Jrc3BhY2UueWFtbGBcbiAgICAvLyBzdXBwb3J0IChwcm9qZW4gPj0gMC4xMDEpIHRocm91Z2ggYGFsbG93U2NyaXB0c2AgKyBgcG5wbU9wdGlvbnNgIGJlbG93LFxuICAgIC8vIHJhdGhlciB0aGFuIGhhbmQtcm9sbGluZyB0aGUgWUFNTCBmaWxlLlxuICAgIGNvbnN0IHdzID0gb3B0aW9ucy53b3Jrc3BhY2VPcHRpb25zID8/IHt9O1xuICAgIGNvbnN0IGFsbG93ZWRCdWlsZHMgPSB3cy5hbGxvd2VkQnVpbGRzID8/IFsnQGF3cy1hbXBsaWZ5L2NsaScsICdlc2J1aWxkJywgJ3NoYXJwJywgJ3VucnMtcmVzb2x2ZXInXTtcblxuICAgIC8vIFBhY2thZ2VzIGV4ZW1wdCBmcm9tIGBtaW5pbXVtUmVsZWFzZUFnZWAgc28gb3VyIG93biBidWlsZCB0b29saW5nIGNhblxuICAgIC8vIHVwZGF0ZSB3aXRob3V0IHRoZSBjb29sZG93bi4gYHByb2plbmAgaXMgaW5jbHVkZWQgYmVjYXVzZSBgQHRhaW1vcy9wcm9qZW5gXG4gICAgLy8gcGlucyBhIHByb2plbiBmbG9vciwgc28gdGhlIHR3byBtdXN0IG1vdmUgaW4gbG9ja3N0ZXAuIEEgY29uc3VtZXItc3VwcGxpZWRcbiAgICAvLyBsaXN0IE1FUkdFUyB3aXRoIHRoZXNlIGRlZmF1bHRzIChkZWR1cGVkKSByYXRoZXIgdGhhbiByZXBsYWNpbmcgdGhlbSwgc29cbiAgICAvLyBhZGRpbmcgb25lIHBhY2thZ2UgZG9lcyBub3Qgc2lsZW50bHkgZHJvcCB0aGUgdG9vbGluZyBleGVtcHRpb25zLlxuICAgIGNvbnN0IHJlbGVhc2VBZ2VFeGNsdWRlID0gQXJyYXkuZnJvbShuZXcgU2V0KFtcbiAgICAgIC4uLk1vbm9yZXBvUHJvamVjdC5ERUZBVUxUX1JFTEVBU0VfQUdFX0VYQ0xVREUsXG4gICAgICAuLi4od3MubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlID8/IFtdKSxcbiAgICBdKSk7XG5cbiAgICBzdXBlcih7XG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcbiAgICAgIGRlcHNVcGdyYWRlOiBmYWxzZSxcbiAgICAgIC8vIFRoZSByb290IG9ubHkgb3JjaGVzdHJhdGVzIHRoZSB3b3Jrc3BhY2Ug4oCUIG5vIGFwcCBjb2RlIGxpdmVzIGhlcmUuXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIC8vIENJIGlzIHRoZSBzaW5nbGUgaGFuZC1yb2xsZWQgd29ya2Zsb3cgYmVsb3cgdGhhdCBkZWxlZ2F0ZXMgdG8gcGFja2FnZXMuXG4gICAgICBidWlsZFdvcmtmbG93OiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBGb3JjZWQg4oCUIGRlZmluaW5nIHdoYXQgYSBUYWltb3MgbW9ub3JlcG8gcm9vdCBpcy5cbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5QTlBNLFxuICAgICAgcG5wbVZlcnNpb24sXG4gICAgICAvLyBOYXRpdmUgcG5wbS13b3Jrc3BhY2UueWFtbCAocHJvamVuID49IDAuMTAxKS4gYGFsbG93U2NyaXB0c2AgcmVuZGVycyB0aGVcbiAgICAgIC8vIGJ1aWxkIGFsbG93bGlzdCBpbnRvIGBvbmx5QnVpbHREZXBlbmRlbmNpZXNgOyB0aGUgcmVtYWluaW5nIHR1bmluZyBtYXBzXG4gICAgICAvLyBvbnRvIGB3b3Jrc3BhY2VZYW1sT3B0aW9uc2AuIEFueSBjb25zdW1lci1zdXBwbGllZCBgcG5wbU9wdGlvbnNgIGFyZVxuICAgICAgLy8gbWVyZ2VkIGluIGFuZCB3aW4gb3ZlciBvdXIgZGVmYXVsdHMuXG4gICAgICBhbGxvd1NjcmlwdHM6IGFsbG93ZWRCdWlsZHMsXG4gICAgICBwbnBtT3B0aW9uczoge1xuICAgICAgICAuLi5vcHRpb25zLnBucG1PcHRpb25zLFxuICAgICAgICB3b3Jrc3BhY2VZYW1sT3B0aW9uczoge1xuICAgICAgICAgIC8vIHBucG0gMTEgcmVwbGFjZWQgYG9ubHlCdWlsdERlcGVuZGVuY2llc2AgKHdoaWNoIGBhbGxvd1NjcmlwdHNgXG4gICAgICAgICAgLy8gcmVuZGVycykgd2l0aCBgYWxsb3dCdWlsZHNgLCBhbmQgcmVhZHMgb25seSB0aGUgbGF0dGVyIOKAlCBhIHBucG0gMTFcbiAgICAgICAgICAvLyBpbnN0YWxsIG90aGVyd2lzZSBhYm9ydHMgd2l0aCBFUlJfUE5QTV9JR05PUkVEX0JVSUxEUy4gcG5wbSAxMCByZWFkc1xuICAgICAgICAgIC8vIG9ubHkgYG9ubHlCdWlsdERlcGVuZGVuY2llc2AuIEVtaXQgYm90aCBzbyB0aGUgc2FtZSB3b3Jrc3BhY2UgZmlsZVxuICAgICAgICAgIC8vIHdvcmtzIG9uIGVpdGhlciwgd2hhdGV2ZXIgYHBucG1WZXJzaW9uYCBhIGNvbnN1bWVyIHBpbnMuXG4gICAgICAgICAgYWxsb3dCdWlsZHM6IE9iamVjdC5mcm9tRW50cmllcyhhbGxvd2VkQnVpbGRzLm1hcCgocGtnKSA9PiBbcGtnLCB0cnVlXSkpLFxuICAgICAgICAgIHBhY2thZ2VzOiB3cy5wYWNrYWdlcyA/PyBbJ3BhY2thZ2VzLyonXSxcbiAgICAgICAgICBtaW5pbXVtUmVsZWFzZUFnZTogd3MubWluaW11bVJlbGVhc2VBZ2UgPz8gMjg4MCwgLy8gMiBkYXlzIGluIG1pbnV0ZXNcbiAgICAgICAgICBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU6IHJlbGVhc2VBZ2VFeGNsdWRlLFxuICAgICAgICAgIC4uLih3cy5vdmVycmlkZXMgJiYgT2JqZWN0LmtleXMod3Mub3ZlcnJpZGVzKS5sZW5ndGggPiAwID8geyBvdmVycmlkZXM6IHdzLm92ZXJyaWRlcyB9IDoge30pLFxuICAgICAgICAgIC4uLm9wdGlvbnMucG5wbU9wdGlvbnM/LndvcmtzcGFjZVlhbWxPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBnaXRodWI6IHRydWUsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCgpLFxuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgICAgbWVyZ2VRdWV1ZTogdHJ1ZSxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zLFxuICAgICAgICBtZXJnZVF1ZXVlT3B0aW9uczoge1xuICAgICAgICAgIGF1dG9RdWV1ZTogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/Lm1lcmdlUXVldWVPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zPy5wdWxsUmVxdWVzdExpbnRPcHRpb25zLFxuICAgICAgICAgIHNlbWFudGljVGl0bGVPcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/LnB1bGxSZXF1ZXN0TGludE9wdGlvbnM/LnNlbWFudGljVGl0bGVPcHRpb25zLFxuICAgICAgICAgICAgLy8gRml4ZWQgYWxsb3dlZCBQUiB0aXRsZSB0eXBlcyBmb3IgYSBUYWltb3MgbW9ub3JlcG8uXG4gICAgICAgICAgICB0eXBlczogWydmZWF0JywgJ2ZpeCcsICdjaG9yZScsICdkb2NzJywgJ3NwZWMnLCAnY2knXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgJ0B0YWltb3MvcHJvamVuJyxcbiAgICAgICAgJ3Byb2plbi1waXBlbGluZXMnLFxuICAgICAgICAuLi4ob3B0aW9ucy5jZGtTZXJ2ZXJsZXNzID8/IGZhbHNlID8gWydjZGstc2VydmVybGVzcyddIDogW10pLFxuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgPz8gW10sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gUHJpdmF0ZSB3b3Jrc3BhY2Ugcm9vdCDigJQgbmV2ZXIgcHVibGlzaGVkLCByZXNvbHZlcyBwYWNrYWdlcyBsb2NhbGx5LlxuICAgIHRoaXMucGFja2FnZS5hZGRGaWVsZCgncHJpdmF0ZScsIHRydWUpO1xuXG4gICAgdGhpcy5kZWZhdWx0UmVsZWFzZUJyYW5jaCA9IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2ggPz8gJ21haW4nO1xuXG4gICAgLy8gUFIgYXBwcm92ZXIgcm91dGluZy5cbiAgICBpZiAob3B0aW9ucy5hc3NpZ25BcHByb3ZlciA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmFzc2lnbkFwcHJvdmVyID0gbmV3IEdpdEh1YkFzc2lnbkFwcHJvdmVyKHRoaXMsIHtcbiAgICAgICAgYXBwcm92ZXJNYXBwaW5nOiBvcHRpb25zLmFwcHJvdmVyTWFwcGluZyA/PyBbXG4gICAgICAgICAgeyBhdXRob3I6ICdob2VnZXJ0bicsIGFwcHJvdmVyczogWydob2VnZXJtYSddIH0sXG4gICAgICAgICAgeyBhdXRob3I6ICdob2VnZXJtYScsIGFwcHJvdmVyczogWydob2VnZXJ0biddIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGRlZmF1bHRBcHByb3ZlcnM6IG9wdGlvbnMuZGVmYXVsdEFwcHJvdmVycyA/PyBbJ2hvZWdlcnRuJywgJ2hvZWdlcm1hJ10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWwgcHJvZHVjdGlvbiByZWxlYXNlIOKAlCBwcm9tb3RlcyBhIGJyYW5jaCB0byB0aGUgcHJvZHVjdGlvbiBicmFuY2guXG4gICAgaWYgKG9wdGlvbnMuYW1wbGlmeURlcGxveU9wdGlvbnMpIHtcbiAgICAgIHRoaXMuYW1wbGlmeURlcGxveSA9IG5ldyBHaXRIdWJBbXBsaWZ5RGVwbG95KHRoaXMsIG9wdGlvbnMuYW1wbGlmeURlcGxveU9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnByb2R1Y3Rpb25SZWxlYXNlID8/IGZhbHNlKSB7XG4gICAgICB0aGlzLnByb2R1Y3Rpb25SZWxlYXNlID0gbmV3IEdpdEh1YlByb2R1Y3Rpb25SZWxlYXNlKHRoaXMsIG9wdGlvbnMucHJvZHVjdGlvblJlbGVhc2VPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBnaXRsZWFrcyBzZWNyZXQtc2Nhbm5pbmc6IC5naXRsZWFrcy50b21sICsgYSBQUiB3b3JrZmxvdyBzY2FubmluZyBoaXN0b3J5LlxuICAgIGlmIChvcHRpb25zLmdpdGxlYWtzID8/IGZhbHNlKSB7XG4gICAgICB0aGlzLmdpdGxlYWtzID0gbmV3IEdpdGxlYWtzKHRoaXMsIG9wdGlvbnMuZ2l0bGVha3NPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcHJvamVucmMgaXMgc3BsaXQgaW50byBtb2R1bGVzIHVuZGVyIC5wcm9qZW4vIOKAlCBtYWtlIHRoZW0gcGFydCBvZiB0aGVcbiAgICAvLyBkZXYgdHNjb25maWcgc28gdGhlIElERSBhbmQgdHMtbm9kZSB0eXBlLWNoZWNrIHRoZW0uXG4gICAgdGhpcy50c2NvbmZpZ0Rldj8uYWRkSW5jbHVkZSgnLnByb2plbi8qLnRzJyk7XG5cbiAgICAvLyBwcm9qZW4ncyBOb2RlUGFja2FnZSBnZW5lcmF0ZXMgYHBucG0td29ya3NwYWNlLnlhbWxgIG5hdGl2ZWx5IChwcm9qZW4gPj1cbiAgICAvLyAwLjEwMSksIGNvbmZpZ3VyZWQgdmlhIHRoZSBgcG5wbU9wdGlvbnNgL2BhbGxvd1NjcmlwdHNgIHBhc3NlZCB0byBzdXBlcigpLlxuICAgIC8vIEV4cG9zZSB0aGUgZ2VuZXJhdGVkIGZpbGUgc28gY29uc3VtZXJzIGNhbiBmdXJ0aGVyIGN1c3RvbWl6ZSBpdC5cbiAgICB0aGlzLndvcmtzcGFjZUZpbGUgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKCdwbnBtLXdvcmtzcGFjZS55YW1sJykgYXMgWWFtbEZpbGU7XG5cbiAgICAvLyBDb252ZW5pZW5jZSByb290IHNjcmlwdHMgZGVsZWdhdGUgdG8gdGhlIHdvcmtzcGFjZS5cbiAgICBjb25zdCByb290UGtnID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgncGFja2FnZS5qc29uJykhO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMuYnVpbGQnLCAncG5wbSAtciBydW4gYnVpbGQnKTtcbiAgICByb290UGtnLmFkZE92ZXJyaWRlKCdzY3JpcHRzLnRlc3QnLCAncG5wbSAtciBydW4gdGVzdCcpO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMubGludCcsICdwbnBtIC1yIHJ1biBlc2xpbnQnKTtcblxuICAgIC8vIFVuaWZpZWQgUFIgYnVpbGQgd29ya2Zsb3cg4oCUIGJ1aWxkcyAoYW5kIG9wdGlvbmFsbHkgdGVzdHMpIGV2ZXJ5IHdvcmtzcGFjZVxuICAgIC8vIHBhY2thZ2UgaW4gZGVwZW5kZW5jeSBvcmRlci5cbiAgICBjb25zdCBub2RlVmVyc2lvbiA9IG9wdGlvbnMubm9kZVZlcnNpb24gPz8gJzIyJztcbiAgICBjb25zdCBidWlsZFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtcbiAgICAgIHsgbmFtZTogJ0NoZWNrb3V0JywgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjQnIH0sXG4gICAgICB7IG5hbWU6ICdTZXR1cCBwbnBtJywgdXNlczogJ3BucG0vYWN0aW9uLXNldHVwQHY0Jywgd2l0aDogeyB2ZXJzaW9uOiBwbnBtVmVyc2lvbiB9IH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgIHdpdGg6IHsgJ25vZGUtdmVyc2lvbic6IG5vZGVWZXJzaW9uLCAnY2FjaGUnOiAncG5wbScgfSxcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6ICdJbnN0YWxsJywgcnVuOiAncG5wbSBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJyB9LFxuICAgICAgeyBuYW1lOiAnQnVpbGQnLCBydW46ICdwbnBtIC1yIHJ1biBidWlsZCcgfSxcbiAgICBdO1xuICAgIGlmIChvcHRpb25zLnJ1blRlc3RzSW5CdWlsZCA/PyBmYWxzZSkge1xuICAgICAgYnVpbGRTdGVwcy5wdXNoKHsgbmFtZTogJ1Rlc3QnLCBydW46ICdwbnBtIC1yIHJ1biB0ZXN0JyB9KTtcbiAgICB9XG4gICAgLy8gUGF0aCBmaWx0ZXI6IG9ubHkgdHJpZ2dlciBidWlsZHMgd2hlbiB3b3Jrc3BhY2UgcGFja2FnZSBmaWxlcyBvclxuICAgIC8vIGJ1aWxkLXJlbGV2YW50IHJvb3QgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiBDaGFuZ2VzIHRvIHNwZWNzIG9yIGRvY3NcbiAgICAvLyBhbG9uZSBzaG91bGQgbm90IHRyaWdnZXIgYSBuZXcgYnVpbGQuXG4gICAgY29uc3Qgd29ya3NwYWNlUGFja2FnZXMgPSB3cy5wYWNrYWdlcyA/PyBbJ3BhY2thZ2VzLyonXTtcbiAgICBjb25zdCBidWlsZFBhdGhzOiBzdHJpbmdbXSA9IFtcbiAgICAgIC8vIFdvcmtzcGFjZSBwYWNrYWdlIHNvdXJjZSBmaWxlcy5cbiAgICAgIC4uLndvcmtzcGFjZVBhY2thZ2VzLm1hcCgocGtnKSA9PiBgJHtwa2d9LyoqYCksXG4gICAgICAvLyBEZXBlbmRlbmN5IGxvY2sgJiB3b3Jrc3BhY2UgY29uZmlndXJhdGlvbi5cbiAgICAgICdwbnBtLWxvY2sueWFtbCcsXG4gICAgICAncG5wbS13b3Jrc3BhY2UueWFtbCcsXG4gICAgICAvLyBSb290IHBhY2thZ2UuanNvbiAoc2NyaXB0cywgZGV2RGVwcywgZW5naW5lcykuXG4gICAgICAncGFja2FnZS5qc29uJyxcbiAgICAgIC8vIFByb2plbiBjb25maWd1cmF0aW9uIOKAlCByZWdlbmVyYXRlcyBwcm9qZWN0IGZpbGVzLlxuICAgICAgJy5wcm9qZW5yYy50cycsXG4gICAgICAnLnByb2plbnJjLmpzJyxcbiAgICAgICcucHJvamVuLyoqJyxcbiAgICAgIC8vIFNoYXJlZCBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24uXG4gICAgICAndHNjb25maWcuanNvbicsXG4gICAgICAndHNjb25maWcuKi5qc29uJyxcbiAgICAgIC8vIFRoZSBidWlsZCB3b3JrZmxvdyBpdHNlbGYuXG4gICAgICAnLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueW1sJyxcbiAgICAgIC8vIFNoYXJlZCBsaW50IGNvbmZpZ3VyYXRpb24uXG4gICAgICAnLmVzbGludHJjLionLFxuICAgICAgJ2VzbGludC5jb25maWcuKicsXG4gICAgXTtcblxuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93ID0gbmV3IGdpdGh1Yi5HaXRodWJXb3JrZmxvdyh0aGlzLmdpdGh1YiEsICdidWlsZCcpO1xuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0OiB7IHBhdGhzOiBidWlsZFBhdGhzIH0sXG4gICAgICBwdXNoOiB7IGJyYW5jaGVzOiBbJ21haW4nXSwgcGF0aHM6IGJ1aWxkUGF0aHMgfSxcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgIH0pO1xuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93LmFkZEpvYignYnVpbGQnLCB7XG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICBzdGVwczogYnVpbGRTdGVwcyxcbiAgICB9KTtcblxuICAgIC8vIEFXUyBBbXBsaWZ5IEhvc3RpbmcgYnVpbGQgc3BlYy4gUE5QTSB3b3Jrc3BhY2VzIGFyZSBub3QgYXV0by1kZXRlY3RlZCBieVxuICAgIC8vIEFtcGxpZnksIHNvIGVhY2ggYXBwIGluc3RhbGxzIGF0IHRoZSByZXBvIHJvb3QsIHByZS1idWlsZHMgaXRzIHNoYXJlZFxuICAgIC8vIHBhY2thZ2VzLCB0aGVuIGJ1aWxkcyBmcm9tIGl0cyBhcHBSb290IChzZWUgQURSLTAwMDIpLlxuICAgIGlmIChvcHRpb25zLmFtcGxpZnlBcHBzICYmIG9wdGlvbnMuYW1wbGlmeUFwcHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hbXBsaWZ5RmlsZSA9IG5ldyBZYW1sRmlsZSh0aGlzLCAnYW1wbGlmeS55bWwnLCB7XG4gICAgICAgIG9iajoge1xuICAgICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgICAgYXBwbGljYXRpb25zOiBvcHRpb25zLmFtcGxpZnlBcHBzLm1hcCgoYXBwKSA9PiB0aGlzLnJlbmRlckFtcGxpZnlBcHAoYXBwKSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckFtcGxpZnlBcHAoYXBwOiBNb25vcmVwb0FtcGxpZnlBcHApIHtcbiAgICBjb25zdCBhbmd1bGFyID0gYXBwLmZyYW1ld29yayA9PT0gTW9ub3JlcG9BbXBsaWZ5RnJhbWV3b3JrLkFOR1VMQVI7XG4gICAgLy8gU2NvcGUgdGhlIGluc3RhbGwgdG8gdGhlIGFwcCdzIGRlcGVuZGVuY3kgY2xvc3VyZSB0byBhdm9pZCBjb25jdXJyZW50XG4gICAgLy8gcHJvamVuL25vZGVfbW9kdWxlcyByZW5hbWUgcmFjZXMgdW5kZXIgdGhlIGhvaXN0ZWQgbGlua2VyIChzZWUgIzM3MikuXG4gICAgY29uc3QgZmlsdGVyID0gYXBwLmluc3RhbGxGaWx0ZXIgPz8gYCR7YXBwLmJ1aWxkRmlsdGVyfS4uLmA7XG4gICAgY29uc3QgaW5zdGFsbENvbW1hbmQgPSBhcHAuaW5zdGFsbENvbW1hbmRcbiAgICAgID8/IGBwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUgLS1ub2RlLWxpbmtlciBob2lzdGVkIC0tZmlsdGVyIFwiJHtmaWx0ZXJ9XCJgO1xuICAgIGNvbnN0IHByZUJ1aWxkID0gW1xuICAgICAgJ2NvcmVwYWNrIGVuYWJsZScsXG4gICAgICBpbnN0YWxsQ29tbWFuZCxcbiAgICAgIC4uLihhcHAucHJlQnVpbGRGaWx0ZXJzID8/IFtdKS5tYXAoKGYpID0+IGBwbnBtIC0tZmlsdGVyICR7Zn0gcnVuIGJ1aWxkYCksXG4gICAgXTtcbiAgICAvLyBCVUlMRF9FTlYgKGRldnxwcm9kKSBpcyBwcm92aWRlZCBhcyBhbiBBbXBsaWZ5IGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgIGNvbnN0IGJ1aWxkQ29tbWFuZCA9IGFwcC5idWlsZENvbW1hbmQgPz8gKGFuZ3VsYXJcbiAgICAgID8gYHBucG0gLS1maWx0ZXIgJHthcHAuYnVpbGRGaWx0ZXJ9IHJ1biBidWlsZDpcXCR7QlVJTERfRU5WfWBcbiAgICAgIDogYHBucG0gLS1maWx0ZXIgJHthcHAuYnVpbGRGaWx0ZXJ9IHJ1biBidWlsZGApO1xuICAgIGNvbnN0IGJhc2VEaXJlY3RvcnkgPSBhcHAuYXJ0aWZhY3RCYXNlRGlyZWN0b3J5ID8/IChhbmd1bGFyXG4gICAgICA/IGAke2FwcC5hcHBSb290fS9kaXN0LyR7YXBwLmJ1aWxkRmlsdGVyfS9icm93c2VyYFxuICAgICAgOiBgJHthcHAuYXBwUm9vdH0vLm5leHRgKTtcbiAgICBjb25zdCBjYWNoZVBhdGhzID0gYXBwLmNhY2hlUGF0aHMgPz8gW1xuICAgICAgJ25vZGVfbW9kdWxlcy8qKi8qJyxcbiAgICAgIGFuZ3VsYXIgPyBgJHthcHAuYXBwUm9vdH0vLmFuZ3VsYXIvY2FjaGUvKiovKmAgOiBgJHthcHAuYXBwUm9vdH0vLm5leHQvY2FjaGUvKiovKmAsXG4gICAgXTtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwUm9vdDogYXBwLmFwcFJvb3QsXG4gICAgICBmcm9udGVuZDoge1xuICAgICAgICAvLyBJbnN0YWxsL2J1aWxkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3Qgc28gdGhlIHdvcmtzcGFjZSByb290XG4gICAgICAgIC8vIHBhY2thZ2UuanNvbiBhbmQgcG5wbS1sb2NrLnlhbWwgYXJlIGF2YWlsYWJsZS5cbiAgICAgICAgYnVpbGRQYXRoOiAnLycsXG4gICAgICAgIHBoYXNlczoge1xuICAgICAgICAgIHByZUJ1aWxkOiB7IGNvbW1hbmRzOiBwcmVCdWlsZCB9LFxuICAgICAgICAgIGJ1aWxkOiB7IGNvbW1hbmRzOiBbYnVpbGRDb21tYW5kXSB9LFxuICAgICAgICB9LFxuICAgICAgICBhcnRpZmFjdHM6IHsgYmFzZURpcmVjdG9yeSwgZmlsZXM6IFsnKiovKiddIH0sXG4gICAgICAgIGNhY2hlOiB7IHBhdGhzOiBjYWNoZVBhdGhzIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,7 +10,7 @@ const cdk_app_1 = require("./cdk-app");
|
|
|
10
10
|
* @pjid taimos-cdk-app-private
|
|
11
11
|
*/
|
|
12
12
|
class PrivateTaimosCdkApp extends cdk_app_1.TaimosCdkApp {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.PrivateTaimosCdkApp", version: "0.1.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.PrivateTaimosCdkApp", version: "0.1.86" };
|
|
14
14
|
constructor(options) {
|
|
15
15
|
super({
|
|
16
16
|
licensed: false,
|
|
@@ -10,7 +10,7 @@ const ts_lib_1 = require("./ts-lib");
|
|
|
10
10
|
* @pjid taimos-ts-lib-private
|
|
11
11
|
*/
|
|
12
12
|
class TaimosPrivateTypescriptLibrary extends ts_lib_1.TaimosTypescriptLibrary {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosPrivateTypescriptLibrary", version: "0.1.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosPrivateTypescriptLibrary", version: "0.1.86" };
|
|
14
14
|
constructor(options) {
|
|
15
15
|
super({
|
|
16
16
|
licensed: false,
|
|
@@ -11,7 +11,7 @@ const cdk_app_1 = require("./cdk-app");
|
|
|
11
11
|
* @pjid taimos-cdk-app-production
|
|
12
12
|
*/
|
|
13
13
|
class ProductionTaimosCdkApp extends cdk_app_1.TaimosCdkApp {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.ProductionTaimosCdkApp", version: "0.1.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.ProductionTaimosCdkApp", version: "0.1.86" };
|
|
15
15
|
/**
|
|
16
16
|
* The SonarCloud properties file.
|
|
17
17
|
*/
|
package/lib/projects/ts-lib.js
CHANGED
|
@@ -9,7 +9,7 @@ const projen_1 = require("projen");
|
|
|
9
9
|
* @pjid taimos-ts-lib
|
|
10
10
|
*/
|
|
11
11
|
class TaimosTypescriptLibrary extends projen_1.typescript.TypeScriptProject {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosTypescriptLibrary", version: "0.1.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosTypescriptLibrary", version: "0.1.86" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super({
|
|
15
15
|
authorName: 'Taimos GmbH',
|
|
@@ -17,7 +17,7 @@ class TaimosTypescriptLibrary extends projen_1.typescript.TypeScriptProject {
|
|
|
17
17
|
authorOrganization: true,
|
|
18
18
|
authorUrl: 'https://taimos.de',
|
|
19
19
|
copyrightOwner: 'Taimos GmbH',
|
|
20
|
-
copyrightPeriod:
|
|
20
|
+
copyrightPeriod: new Date().getFullYear().toString(),
|
|
21
21
|
license: 'Apache-2.0',
|
|
22
22
|
licensed: true,
|
|
23
23
|
stability: 'experimental',
|
|
@@ -77,4 +77,4 @@ class TaimosTypescriptLibrary extends projen_1.typescript.TypeScriptProject {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
exports.TaimosTypescriptLibrary = TaimosTypescriptLibrary;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMtbGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL3RzLWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQXdEO0FBaUJ4RDs7OztHQUlHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjs7SUFFdkUsWUFBWSxPQUF1QztRQUNqRCxLQUFLLENBQUM7WUFDSixVQUFVLEVBQUUsYUFBYTtZQUN6QixXQUFXLEVBQUUsZ0JBQWdCO1lBQzdCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsU0FBUyxFQUFFLG1CQUFtQjtZQUM5QixjQUFjLEVBQUUsYUFBYTtZQUM3QixlQUFlLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDcEQsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsY0FBYztZQUN6QixNQUFNLEVBQUUsSUFBSTtZQUNaLFlBQVksRUFBRSxJQUFJO1lBQ2xCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsU0FBUyxFQUFFLG1CQUFVLENBQUMsU0FBUyxDQUFDLE1BQU07WUFDdEMsTUFBTSxFQUFFLEtBQUs7WUFDYixtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLGtCQUFrQixFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFO1lBQ3BHLGtCQUFrQixFQUFFLEVBQUUsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLG1CQUFVLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEcsMkJBQTJCLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5QkFzQlgsQ0FBQztZQUNwQixHQUFHLE9BQU87WUFDVixRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxPQUFPLENBQUMsUUFBUTtnQkFDbkIsZUFBZSxFQUFFO29CQUNmLGVBQWUsRUFBRSxJQUFJO29CQUNyQixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZTtpQkFDckM7YUFDRjtZQUNELGFBQWEsRUFBRTtnQkFDYixpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO2dCQUNyRCxPQUFPLEVBQUUsS0FBSztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxhQUFhO2FBQ3pCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFNBQVM7Z0JBQ1QsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7YUFDekI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxFQUFFLENBQUM7WUFDaEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLFdBQVcsQ0FBQztZQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsRUFBRSxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDakYsQ0FBQztJQUVILENBQUM7O0FBcEVILDBEQXNFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQsIHR5cGVzY3JpcHQsIGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgcHJpdmF0ZSBOUE0gcmVnaXN0cnkgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlTnBtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGNvbnRhaW5pbmcgdGhlIE5QTSBhdXRoZW50aWNhdGlvbiB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ05QTV9UT0tFTidcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG1Ub2tlbkVudlZhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlU2NyaXB0IGxpYnJhcnlcbiAqXG4gKiBAcGppZCB0YWltb3MtdHMtbGliXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWltb3NUeXBlc2NyaXB0TGlicmFyeSBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRhaW1vc1R5cGVzY3JpcHRMaWJyYXJ5T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhvck5hbWU6ICdUYWltb3MgR21iSCcsXG4gICAgICBhdXRob3JFbWFpbDogJ2luZm9AdGFpbW9zLmRlJyxcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGF1dGhvclVybDogJ2h0dHBzOi8vdGFpbW9zLmRlJyxcbiAgICAgIGNvcHlyaWdodE93bmVyOiAnVGFpbW9zIEdtYkgnLFxuICAgICAgY29weXJpZ2h0UGVyaW9kOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgIGxpY2Vuc2U6ICdBcGFjaGUtMi4wJyxcbiAgICAgIGxpY2Vuc2VkOiB0cnVlLFxuICAgICAgc3RhYmlsaXR5OiAnZXhwZXJpbWVudGFsJyxcbiAgICAgIGRvY2dlbjogdHJ1ZSxcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiB0cnVlLFxuICAgICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5QVUJMSUMsXG4gICAgICBnaXRwb2Q6IGZhbHNlLFxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczogeyBhbGxvd2VkVXNlcm5hbWVzOiBbJ2hvZWdlcnRuJywgJ3RhaW1vcy1wcm9qZW5bYm90XSddLCBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nIH0sXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHsgd29ya2Zsb3dPcHRpb25zOiB7IHNjaGVkdWxlOiBqYXZhc2NyaXB0LlVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFkgfSB9LFxuICAgICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBbYCogKipQbGVhc2UgY2hlY2sgaWYgdGhlIFBSIGZ1bGZpbGxzIHRoZXNlIHJlcXVpcmVtZW50cyoqXG4tIFsgXSBUaGUgY29tbWl0IG1lc3NhZ2UgZGVzY3JpYmVzIHlvdXIgY2hhbmdlXG4tIFsgXSBUZXN0cyBmb3IgdGhlIGNoYW5nZXMgaGF2ZSBiZWVuIGFkZGVkIGlmIHBvc3NpYmxlIChmb3IgYnVnIGZpeGVzIC8gZmVhdHVyZXMpXG4tIFsgXSBEb2NzIGhhdmUgYmVlbiBhZGRlZCAvIHVwZGF0ZWQgKGZvciBidWcgZml4ZXMgLyBmZWF0dXJlcylcblxuXG4qICoqV2hhdCBraW5kIG9mIGNoYW5nZSBkb2VzIHRoaXMgUFIgaW50cm9kdWNlPyoqIChCdWcgZml4LCBmZWF0dXJlLCBkb2NzIHVwZGF0ZSwgLi4uKVxuXG5cblxuKiAqKldoYXQgaXMgdGhlIGN1cnJlbnQgYmVoYXZpb3I/KiogKFlvdSBjYW4gYWxzbyBsaW5rIHRvIGFuIG9wZW4gaXNzdWUgaGVyZSlcblxuXG5cbiogKipXaGF0IGlzIHRoZSBuZXcgYmVoYXZpb3IgKGlmIHRoaXMgaXMgYSBmZWF0dXJlIGNoYW5nZSk/KipcblxuXG5cbiogKipEb2VzIHRoaXMgUFIgaW50cm9kdWNlIGEgYnJlYWtpbmcgY2hhbmdlPyoqIChXaGF0IGNoYW5nZXMgbWlnaHQgdXNlcnMgbmVlZCB0byBtYWtlIGluIHRoZWlyIHNldHVwIGR1ZSB0byB0aGlzIFBSPylcblxuXG5cbiogKipPdGhlciBpbmZvcm1hdGlvbioqOmBdLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIC4uLm9wdGlvbnMudHNjb25maWcsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoKSxcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aHViT3B0aW9ucyxcbiAgICAgIH0sXG4gICAgICBkZXZEZXBzOiBbXG4gICAgICAgICd0cy1ub2RlJyxcbiAgICAgICAgLi4ub3B0aW9ucy5kZXZEZXBzID8/IFtdLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLnByaXZhdGVOcG0gPz8gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRva2VuRW52VmFyID0gb3B0aW9ucy5wcml2YXRlTnBtVG9rZW5FbnZWYXIgPz8gJ05QTV9UT0tFTic7XG4gICAgICB0aGlzLm5wbXJjLmFkZENvbmZpZygnLy9yZWdpc3RyeS5ucG1qcy5vcmcvOl9hdXRoVG9rZW4nLCBgXFwkeyR7dG9rZW5FbnZWYXJ9fWApO1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==
|