@mavogel/mvc-projen 0.0.46 → 0.0.48
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
CHANGED
|
@@ -224,6 +224,6 @@
|
|
|
224
224
|
"symbolId": "src/projects/cdk-construct:MvcCdkConstructLibraryOptions"
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
|
-
"version": "0.0.
|
|
228
|
-
"fingerprint": "/
|
|
227
|
+
"version": "0.0.48",
|
|
228
|
+
"fingerprint": "K2hJPwf3qr2l4aDIqtmIuCl3sFP7HMUHjmAda67Wi/k="
|
|
229
229
|
}
|
|
@@ -50,7 +50,7 @@ const lambdaNodeVersion = awscdk_1.LambdaRuntime.NODEJS_24_X;
|
|
|
50
50
|
// SHORTCUT: hardcoded cap requires manual re-verification -- run
|
|
51
51
|
// `npm view @aws-cdk/integ-runner versions --json` and bump this if aws-cdk-lib
|
|
52
52
|
// has released newer versions than this one.
|
|
53
|
-
const LAST_INTEG_RUNNER_VERSION = '2.205.
|
|
53
|
+
const LAST_INTEG_RUNNER_VERSION = '2.205.4';
|
|
54
54
|
// AwsCdkConstructLibraryOptions.cdkVersion's own upstream `@default`
|
|
55
55
|
// (node_modules/projen/lib/awscdk/awscdk-deps.d.ts) - what `projen new`
|
|
56
56
|
// fills in when `--cdkVersion` is omitted. jsii forbids a derived options
|
|
@@ -66,14 +66,14 @@ const UPSTREAM_DEFAULT_CDK_VERSION = '2.189.1';
|
|
|
66
66
|
// SHORTCUT: both hardcoded versions require manual re-verification -- run
|
|
67
67
|
// `npm view aws-cdk-lib version` and re-check awscdk-deps.d.ts's `@default`
|
|
68
68
|
// periodically (it may drift on a projen upgrade).
|
|
69
|
-
const DEFAULT_CDK_VERSION = '2.
|
|
69
|
+
const DEFAULT_CDK_VERSION = '2.271.0';
|
|
70
70
|
/**
|
|
71
71
|
* TypeScript library
|
|
72
72
|
*
|
|
73
73
|
* @pjid mvc-awscdk-construct
|
|
74
74
|
*/
|
|
75
75
|
class MvcCdkConstructLibrary extends awscdk_1.AwsCdkConstructLibrary {
|
|
76
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@mavogel/mvc-projen.MvcCdkConstructLibrary", version: "0.0.
|
|
76
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@mavogel/mvc-projen.MvcCdkConstructLibrary", version: "0.0.48" };
|
|
77
77
|
constructor(options) {
|
|
78
78
|
const baseAssetsDirectory = options.baseAssetsDirectory ?? `${process.cwd()}/node_modules/@mavogel/mvc-projen/assets`;
|
|
79
79
|
const integTestRegions = options.integTestRegions ?? ['eu-west-1', 'eu-west-2'];
|
|
@@ -554,4 +554,4 @@ class SampleCode extends projen_1.Component {
|
|
|
554
554
|
fs.writeFileSync(path.join(examplesdir, 'main.ts'), fs.readFileSync(`${this.options.baseAssetsDirectory}/cdk-construct/examples_simple_main.ts`).toString());
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLG1DQUFzRjtBQUN0Riw4Q0FBeUc7QUFDekcsOENBQStEO0FBRy9ELDJFQUEyRTtBQUMzRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxpQkFBaUIsR0FBRyxzQkFBYSxDQUFDLFdBQVcsQ0FBQztBQUVwRCxvRkFBb0Y7QUFDcEYsb0ZBQW9GO0FBQ3BGLG1FQUFtRTtBQUNuRSxxRkFBcUY7QUFDckYsaUVBQWlFO0FBQ2pFLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUM7QUFFNUMscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSwwRUFBMEU7QUFDMUUseUVBQXlFO0FBQ3pFLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsMkNBQTJDO0FBQzNDLE1BQU0sNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRS9DLDBFQUEwRTtBQUMxRSw0RUFBNEU7QUFDNUUsMkVBQTJFO0FBQzNFLHlDQUF5QztBQUN6QywwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFLG1EQUFtRDtBQUNuRCxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztBQXFCdEM7Ozs7R0FJRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsK0JBQXNCOztJQUVoRSxZQUFZLE9BQXNDO1FBQ2hELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSwwQ0FBMEMsQ0FBQztRQUN0SCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENB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LE9BQU87UUFDVCxDQUFDO1FBQ0QsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQix3Q0FBd0MsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ29tcG9uZW50LCBqYXZhc2NyaXB0LCBSZWxlYXNhYmxlQ29tbWl0cywgVGV4dEZpbGUsIFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka0NvbnN0cnVjdExpYnJhcnksIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLCBMYW1iZGFSdW50aW1lIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgRGVwZW5kYWJvdFNjaGVkdWxlSW50ZXJ2YWwgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcblxuLy8gU2V0IHRoZSBtaW5pbXVtIG5vZGUgdmVyc2lvbiBmb3IgQVdTIENESyBhbmQgdGhlIEdpdEh1YiBhY3Rpb25zIHdvcmtmbG93XG5jb25zdCBub2RlVmVyc2lvbiA9ICcyNC54JztcbmNvbnN0IGxhbWJkYU5vZGVWZXJzaW9uID0gTGFtYmRhUnVudGltZS5OT0RFSlNfMjRfWDtcblxuLy8gVGhlIGxhc3QgQGF3cy1jZGsvaW50ZWctcnVubmVyIHZlcnNpb24gdmVyaWZpZWQgYWdhaW5zdCBucG0gKGNoZWNrZWQgMjAyNi0wNy0yMSkuXG4vLyBpbnRlZy1ydW5uZXIgdXNlcyBwbGFpbiB2ZXJzaW9ucyAobm8gLWFscGhhLjAgc3VmZml4KSBhbmQgaGFzIGhpc3RvcmljYWxseSBsYWdnZWRcbi8vIG9yIHN0b3BwZWQgdHJhY2tpbmcgYXdzLWNkay1saWIncyB2ZXJzaW9uIGZvciBzdHJldGNoZXMgb2YgdGltZS5cbi8vIEBhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhIGFuZCBhd3NsaW50IGNvbnRpbnVlIHRvIHB1Ymxpc2ggYW5kIHRyYWNrIENESyB2ZXJzaW9ucy5cbi8vIFNIT1JUQ1VUOiBoYXJkY29kZWQgY2FwIHJlcXVpcmVzIG1hbnVhbCByZS12ZXJpZmljYXRpb24gLS0gcnVuXG4vLyBgbnBtIHZpZXcgQGF3cy1jZGsvaW50ZWctcnVubmVyIHZlcnNpb25zIC0tanNvbmAgYW5kIGJ1bXAgdGhpcyBpZiBhd3MtY2RrLWxpYlxuLy8gaGFzIHJlbGVhc2VkIG5ld2VyIHZlcnNpb25zIHRoYW4gdGhpcyBvbmUuXG5jb25zdCBMQVNUX0lOVEVHX1JVTk5FUl9WRVJTSU9OID0gJzIuMjA1LjMnO1xuXG4vLyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucy5jZGtWZXJzaW9uJ3Mgb3duIHVwc3RyZWFtIGBAZGVmYXVsdGBcbi8vIChub2RlX21vZHVsZXMvcHJvamVuL2xpYi9hd3NjZGsvYXdzY2RrLWRlcHMuZC50cykgLSB3aGF0IGBwcm9qZW4gbmV3YFxuLy8gZmlsbHMgaW4gd2hlbiBgLS1jZGtWZXJzaW9uYCBpcyBvbWl0dGVkLiBqc2lpIGZvcmJpZHMgYSBkZXJpdmVkIG9wdGlvbnNcbi8vIGludGVyZmFjZSBmcm9tIHJlLWRlY2xhcmluZyBhbiBpbmhlcml0ZWQgbWVtYmVyIChKU0lJNTAxNTogXCJyZXN1bHRzIGluXG4vLyBpbnZhbGlkIEMjXCIpLCBzbyB3ZSBjYW4ndCBvdmVycmlkZSB0aGUgYEBkZWZhdWx0YCBkb2MgdGhlIENMSSByZWZsZWN0c1xuLy8gb24gdG8gY2hhbmdlIHRoYXQuIERldGVjdGluZyB0aGlzIGV4YWN0IHZhbHVlIGJlbG93IGFuZCBzdWJzdGl0dXRpbmcgb3VyXG4vLyBvd24gZGVmYXVsdCBpcyB0aGUgb25seSByZW1haW5pbmcgbGV2ZXIuXG5jb25zdCBVUFNUUkVBTV9ERUZBVUxUX0NES19WRVJTSU9OID0gJzIuMTg5LjEnO1xuXG4vLyBPdXIgZGVmYXVsdCBgY2RrVmVyc2lvbmAgd2hlbiB0aGUgY2FsbGVyIChvciBgcHJvamVuIG5ld2ApIGRvZXNuJ3QgcGFzc1xuLy8gb25lLiBNdXN0IHN0YXkgPj0gMi4yNTcuMDogY2RrLW5hZyB2MyAoZm9yY2VkIGJlbG93IHZpYSBhZGREZXBzKSByZXF1aXJlc1xuLy8gaXQgYXMgYSBwZWVyLCBhbmQgdGhlIHVwc3RyZWFtIGRlZmF1bHQgYWJvdmUgZmFpbHMgYG5wbSBpbnN0YWxsYCB3aXRoIGFuXG4vLyBFUkVTT0xWRSBjb25mbGljdCBvbiBhIGZyZXNoIHNjYWZmb2xkLlxuLy8gU0hPUlRDVVQ6IGJvdGggaGFyZGNvZGVkIHZlcnNpb25zIHJlcXVpcmUgbWFudWFsIHJlLXZlcmlmaWNhdGlvbiAtLSBydW5cbi8vIGBucG0gdmlldyBhd3MtY2RrLWxpYiB2ZXJzaW9uYCBhbmQgcmUtY2hlY2sgYXdzY2RrLWRlcHMuZC50cydzIGBAZGVmYXVsdGBcbi8vIHBlcmlvZGljYWxseSAoaXQgbWF5IGRyaWZ0IG9uIGEgcHJvamVuIHVwZ3JhZGUpLlxuY29uc3QgREVGQVVMVF9DREtfVkVSU0lPTiA9ICcyLjI3MC4wJztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE12Y0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogQmFzZSBkaXJlY3RvcnkgZm9yIHRoZSBhc3NldHNcbiAgICpcbiAgICogQGRlZmF1bHQgJHtwcm9jZXNzLmN3ZCgpfS9ub2RlX21vZHVsZXMvbXZjLXByb2plbi9hc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VBc3NldHNEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb25zIHRvIHJ1biB0aGUgaW50ZWcgdGVzdHMgaW5cbiAgICpcbiAgICogQGRlZmF1bHQgZXUtd2VzdC0xIGFuZCBldS13ZXN0LTJcbiAgICovXG4gIHJlYWRvbmx5IGludGVnVGVzdFJlZ2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUeXBlU2NyaXB0IGxpYnJhcnlcbiAqXG4gKiBAcGppZCBtdmMtYXdzY2RrLWNvbnN0cnVjdFxuICovXG5leHBvcnQgY2xhc3MgTXZjQ2RrQ29uc3RydWN0TGlicmFyeSBleHRlbmRzIEF3c0Nka0NvbnN0cnVjdExpYnJhcnkge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE12Y0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zKSB7XG4gICAgY29uc3QgYmFzZUFzc2V0c0RpcmVjdG9yeSA9IG9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeSA/PyBgJHtwcm9jZXNzLmN3ZCgpfS9ub2RlX21vZHVsZXMvQG1hdm9nZWwvbXZjLXByb2plbi9hc3NldHNgO1xuICAgIGNvbnN0IGludGVnVGVzdFJlZ2lvbnMgPSBvcHRpb25zLmludGVnVGVzdFJlZ2lvbnMgPz8gWydldS13ZXN0LTEnLCAnZXUtd2VzdC0yJ107XG4gICAgLy8gYG9wdGlvbnMuY2RrVmVyc2lvbmAgaXMgdHlwZWQgYXMgcmVxdWlyZWQsIGJ1dCBgcHJvamVuIG5ld2AgYWx3YXlzXG4gICAgLy8gc3VwcGxpZXMgYSB2YWx1ZSB2aWEganNpaSByZWZsZWN0aW9uIC0gZWl0aGVyIGEgcmVhbCB1c2VyIG92ZXJyaWRlLFxuICAgIC8vIG9yIChpZiAtLWNka1ZlcnNpb24gd2FzIG9taXR0ZWQpIHRoZSB1cHN0cmVhbSBgQGRlZmF1bHRgIGxpdGVyYWxcbiAgICAvLyBpdHNlbGYuIFN1YnN0aXR1dGUgb3VycyBvbmx5IGluIHRoZSBsYXR0ZXIgY2FzZSwgdmVyaWZpZWQgYmVsb3cuXG4gICAgY29uc3QgY2RrVmVyc2lvbiA9ICghb3B0aW9ucy5jZGtWZXJzaW9uIHx8IG9wdGlvbnMuY2RrVmVyc2lvbiA9PT0gVVBTVFJFQU1fREVGQVVMVF9DREtfVkVSU0lPTilcbiAgICAgID8gREVGQVVMVF9DREtfVkVSU0lPTlxuICAgICAgOiBvcHRpb25zLmNka1ZlcnNpb247XG5cbiAgICAvLyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5J3MgYHN1cGVyKClgIGNhbGwgYmVsb3cgd2lyZXMgdXAgYW4gQXV0b0Rpc2NvdmVyXG4gICAgLy8gY29tcG9uZW50IHdob3NlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgZ2xvYnMgYHNyY2RpcmAgZm9yXG4gICAgLy8gYCoubGFtYmRhLnRzYCBlbnRyeXBvaW50cyAtIGl0IG5ldmVyIHJlLXNjYW5zIGxhdGVyLiBTYW1wbGVDb2RlIChhZGRlZFxuICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhpcyBjb25zdHJ1Y3Rvcikgd3JpdGVzIHRoZSBzYW1wbGUgY3JkLWV4YW1wbGUubGFtYmRhLnRzXG4gICAgLy8gZHVyaW5nIHRoZSBwcm9qZWN0J3Mgc3ludGhlc2l6ZSgpIHBoYXNlLCB3aGljaCBydW5zIGFmdGVyIGV2ZXJ5XG4gICAgLy8gY29tcG9uZW50J3MgY29uc3RydWN0b3IsIGluY2x1ZGluZyBBdXRvRGlzY292ZXIncyAtIHNvIHRoZSBmaWxlIG5ldmVyXG4gICAgLy8gZXhpc3RlZCBmb3IgQXV0b0Rpc2NvdmVyIHRvIGZpbmQsIG5vIExhbWJkYUZ1bmN0aW9uL0J1bmRsZXIgZXZlciBnb3RcbiAgICAvLyBjcmVhdGVkIGZvciBpdCwgYW5kIHRoZSBnZW5lcmF0ZWQgY3JkLWV4YW1wbGUudHMgd2FzIGxlZnQgaW1wb3J0aW5nIGFcbiAgICAvLyAnLi9jcmQtZXhhbXBsZS1mdW5jdGlvbicgY29uc3RydWN0IGZpbGUgdGhhdCBubyBvbmUgd3JvdGUsIGJyZWFraW5nXG4gICAgLy8gZXNsaW50IG9uIGV2ZXJ5IHNjYWZmb2xkLiBXcml0ZSBqdXN0IHRoaXMgb25lIGZpbGUgZWFybHkgZW5vdWdoIGZvclxuICAgIC8vIEF1dG9EaXNjb3ZlciB0byBzZWUgaXQ7IFNhbXBsZUNvZGUgc3RpbGwgb3ducyBldmVyeXRoaW5nIGVsc2UuXG4gICAgLy8gU2tpcCB1bmRlciBKZXN0IChOT0RFX0VOVj10ZXN0LCBtYXRjaGluZyBwcm9qZW4ncyBvd24gSVNfVEVTVF9SVU5cbiAgICAvLyBjaGVjayk6IHdoZW4gb3B0aW9ucy5vdXRkaXIgaXMgdW5zZXQgKHRydWUgZm9yIGV2ZXJ5IHRlc3QgaW4gdGhpc1xuICAgIC8vIHJlcG8pLCBwcm9qZW4ncyBiYXNlIFByb2plY3QgY2xhc3MgLSBjb25zdHJ1Y3RlZCB2aWEgc3VwZXIoKSBiZWxvdyAtXG4gICAgLy8gcmVkaXJlY3RzIHRoZSAqcmVhbCogb3V0ZGlyIHRvIGEgZnJlc2ggdGVtcCBkaXJlY3RvcnkgaW5zdGVhZCBvZiBjd2QuXG4gICAgLy8gVGhpcyBlYXJseSB3cml0ZSBydW5zIGJlZm9yZSB0aGF0IHJlZGlyZWN0IGV4aXN0cywgc28gd2l0aG91dCB0aGlzXG4gICAgLy8gZ3VhcmQgaXQgd291bGQgd3JpdGUgc3RyYWlnaHQgaW50byB0aGlzIHJlcG8ncyBvd24gd29ya2luZyB0cmVlXG4gICAgLy8gaW5zdGVhZCBvZiB0aGUgdGVzdCdzIHRlbXAgZGlyLlxuICAgIGlmICgob3B0aW9ucy5zYW1wbGVDb2RlID8/IHRydWUpICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICAgIGNvbnN0IG91dGRpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dGRpciA/PyAnLicpO1xuICAgICAgY29uc3QgbGFtYmRhRW50cnlwb2ludCA9IHBhdGguam9pbihvdXRkaXIsICdzcmMnLCAnY3JkLWV4YW1wbGUnLCAnY3JkLWV4YW1wbGUubGFtYmRhLnRzJyk7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMobGFtYmRhRW50cnlwb2ludCkpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZShsYW1iZGFFbnRyeXBvaW50KSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMobGFtYmRhRW50cnlwb2ludCwgZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2Nkay1jb25zdHJ1Y3Qvc3JjX2NyZC1leGFtcGxlLmxhbWJkYS50c2ApLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGNvcHlyaWdodE93bmVyOiAnTVYgQ29uc3VsdGluZyBHbWJIJyxcbiAgICAgIGxpY2Vuc2U6ICdBcGFjaGUtMi4wJyxcbiAgICAgIGpzaWlWZXJzaW9uOiAnfjYuMC4wJyxcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uOiAnXjYuMC4yJyxcbiAgICAgIG1pbk5vZGVWZXJzaW9uOiBub2RlVmVyc2lvbixcbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IG5vZGVWZXJzaW9uLFxuICAgICAgc3RhYmlsaXR5OiAnZXhwZXJpbWVudGFsJyxcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5OUE0sXG4gICAgICBucG1BY2Nlc3M6IGphdmFzY3JpcHQuTnBtQWNjZXNzLlBVQkxJQyxcbiAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgcnVudGltZTogbGFtYmRhTm9kZVZlcnNpb24sXG4gICAgICAgIGF3c1Nka0Nvbm5lY3Rpb25SZXVzZTogZmFsc2UsIC8vIGRvZXNuJ3QgZXhpc3QgaW4gQVdTIFNESyBKUyB2M1xuICAgICAgfSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczoge1xuICAgICAgICAvLyAnbXZjLWJvdCcgKHRoZSBQUk9KRU5fR0lUSFVCX1RPS0VOIGlkZW50aXR5KSBpcyBkZWxpYmVyYXRlbHlcbiAgICAgICAgLy8gZXhjbHVkZWQ6IEdpdEh1YiByZWplY3RzIGEgUFIgcmV2aWV3IGZyb20gdGhlIHNhbWUgYWNjb3VudCB0aGF0XG4gICAgICAgIC8vIGF1dGhvcmVkIHRoZSBQUiAoXCJDYW4gbm90IGFwcHJvdmUgeW91ciBvd24gcHVsbCByZXF1ZXN0XCIpLCBhbmRcbiAgICAgICAgLy8gdGhpcyB0b2tlbiBjYW4gYWxzbyBhdXRob3IgUFJzIGFnYWluc3QgZ2VuZXJhdGVkIHByb2plY3RzIChlLmcuXG4gICAgICAgIC8vIHNjYWZmb2xkZXItZHJpdmVuIGF1dG9tYXRpb24pLiBUaG9zZSBQUnMgYXJlIGF1dG8tYXBwcm92ZWQgdmlhXG4gICAgICAgIC8vIE1lcmdpZnkgaW5zdGVhZCwgYmVsb3csIHdoaWNoIHBvc3RzIHRoZSByZXZpZXcgYXMgdGhlIE1lcmdpZnlcbiAgICAgICAgLy8gYXBwIC0gYSBkaWZmZXJlbnQgYWN0b3IuIFNlZSBtYXZvZ2VsL212Yy1wcm9qZW4jNzQuXG4gICAgICAgIGFsbG93ZWRVc2VybmFtZXM6IFtcbiAgICAgICAgICAnZGVwZW5kYWJvdCcsXG4gICAgICAgICAgJ2RlcGVuZGFib3RbYm90XScsXG4gICAgICAgICAgJ2dpdGh1Yi1ib3QnLFxuICAgICAgICAgICdnaXRodWItYWN0aW9uc1tib3RdJyxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gVGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGhhcyB0aGUgR2l0SHViIFBBVCBmb3IgYXV0by1hcHByb3ZpbmcgUFJzIHdpdGggcGVybWlzc2lvbnMgcmVwbywgd29ya2Zsb3csIHdyaXRlOnBhY2thZ2VzXG4gICAgICAgIC8vIEdlbmVyYXRlIGEgbmV3IFBBVCAoaHR0cHM6Ly9naXRodWIuY29tL3NldHRpbmdzL3Rva2Vucy9uZXcpIGFuZCBhZGQgaXQgdG8geW91ciByZXBvJ3Mgc2VjcmV0c1xuICAgICAgICAvLyBOT1RFOiBjb21lcyBmcm9tIE1WLUNvbnN1bHRpbmcgT3JnXG4gICAgICAgIHNlY3JldDogJ1BST0pFTl9HSVRIVUJfVE9LRU4nLFxuICAgICAgfSxcbiAgICAgIGRlcGVuZGFib3Q6IHRydWUsXG4gICAgICBkZXBlbmRhYm90T3B0aW9uczoge1xuICAgICAgICBzY2hlZHVsZUludGVydmFsOiBEZXBlbmRhYm90U2NoZWR1bGVJbnRlcnZhbC5XRUVLTFksXG4gICAgICAgIGxhYmVsczogWydkZXBlbmRlbmNpZXMnLCAnYXV0by1hcHByb3ZlJ10sXG4gICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHBhdHRlcm5zOiBbJyonXSxcbiAgICAgICAgICAgIGV4Y2x1ZGVQYXR0ZXJuczogWydhd3MtY2RrKicsICdwcm9qZW4nXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpZ25vcmU6IFt7IGRlcGVuZGVuY3lOYW1lOiAnYXdzLWNkay1saWInIH0sIHsgZGVwZW5kZW5jeU5hbWU6ICdhd3MtY2RrJyB9XSxcbiAgICAgICAgLy8geml6bW9yJ3MgZGVwZW5kYWJvdC1jb29sZG93biBhdWRpdCBmbGFncyBhIGRlZmF1bHQgY29vbGRvd24gdW5kZXJcbiAgICAgICAgLy8gNyBkYXlzIGFzIGluc3VmZmljaWVudCB0aW1lIHRvIGNhdGNoIGEgY29tcHJvbWlzZWQgcmVsZWFzZS5cbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLnppem1vci5zaC9hdWRpdHMvI2RlcGVuZGFib3QtY29vbGRvd25cbiAgICAgICAgY29vbGRvd246IHtcbiAgICAgICAgICBkZWZhdWx0RGF5czogNyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Byb2plbi9wcm9qZW4vZGlzY3Vzc2lvbnMvNDA0MCNkaXNjdXNzaW9uY29tbWVudC0xMTkwNTYyOFxuICAgICAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLm9mVHlwZShbXG4gICAgICAgICdmZWF0JyxcbiAgICAgICAgJ2ZpeCcsXG4gICAgICAgICdjaG9yZScsXG4gICAgICAgICdyZWZhY3RvcicsXG4gICAgICAgICdwZXJmJyxcbiAgICAgIF0pLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgc2VtYW50aWNUaXRsZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8vIHNlZSBjb21taXQgdHlwZXMgaGVyZTogaHR0cHM6Ly93d3cuY29udmVudGlvbmFsY29tbWl0cy5vcmcvZW4vdjEuMC4wLyNzdW1tYXJ5XG4gICAgICAgICAgICB0eXBlczogW1xuICAgICAgICAgICAgICAnZmVhdCcsXG4gICAgICAgICAgICAgICdmaXgnLFxuICAgICAgICAgICAgICAnY2hvcmUnLFxuICAgICAgICAgICAgICAncmVmYWN0b3InLFxuICAgICAgICAgICAgICAncGVyZicsXG4gICAgICAgICAgICAgICdkb2NzJyxcbiAgICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICAgJ3Rlc3QnLFxuICAgICAgICAgICAgICAnYnVpbGQnLFxuICAgICAgICAgICAgICAnY2knLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZlcnNpb25yY09wdGlvbnM6IHtcbiAgICAgICAgdHlwZXM6IFtcbiAgICAgICAgICB7IHR5cGU6ICdmZWF0Jywgc2VjdGlvbjogJ0ZlYXR1cmVzJyB9LFxuICAgICAgICAgIHsgdHlwZTogJ2ZpeCcsIHNlY3Rpb246ICdCdWcgRml4ZXMnIH0sXG4gICAgICAgICAgeyB0eXBlOiAnY2hvcmUnLCBzZWN0aW9uOiAnQ2hvcmVzJyB9LFxuICAgICAgICAgIHsgdHlwZTogJ2RvY3MnLCBzZWN0aW9uOiAnRG9jcycgfSxcbiAgICAgICAgICB7IHR5cGU6ICdzdHlsZScsIGhpZGRlbjogdHJ1ZSB9LFxuICAgICAgICAgIHsgdHlwZTogJ3JlZmFjdG9yJywgaGlkZGVuOiB0cnVlIH0sXG4gICAgICAgICAgeyB0eXBlOiAncGVyZicsIHNlY3Rpb246ICdQZXJmb3JtYW5jZScgfSxcbiAgICAgICAgICB7IHR5cGU6ICd0ZXN0JywgaGlkZGVuOiB0cnVlIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgZXNsaW50T3B0aW9uczoge1xuICAgICAgICBwcmV0dGllcjogZmFsc2UsXG4gICAgICAgIGRpcnM6IFsnc3JjJ10sXG4gICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbJyoqLyotZnVuY3Rpb24udHMnLCAnZXhhbXBsZXMvJ10sXG4gICAgICB9LFxuICAgICAgLy8gZXhwZXJpbWVudGFsSW50ZWdSdW5uZXI6IHRydWUsXG4gICAgICAvLyBtYW51YWwgaW50ZWcgdGVzdCBzZXR1cFxuICAgICAgdHNjb25maWdEZXY6IHtcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgdHlwZXM6IFsnbm9kZScsICdqZXN0J10sXG4gICAgICAgIH0sXG4gICAgICAgIGluY2x1ZGU6IFsnaW50ZWctdGVzdHMvKiovKi50cyddLFxuICAgICAgfSxcbiAgICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50czogW2ZzLnJlYWRGaWxlU3luYyhgJHtiYXNlQXNzZXRzRGlyZWN0b3J5fS9jb21tb24vZ2l0aHViX3B1bGxfcmVxdWVzdC5tZGApLnRvU3RyaW5nKCldLFxuICAgICAgLy8gTk9URTogaXNzdWUgdGVtcGxhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL3B1bGwvMzY0OFxuICAgICAgLy8gaXNzdWVUZW1wbGF0ZXM6IHt9XG4gICAgICByZWFkbWU6IHtcbiAgICAgICAgY29udGVudHM6IFtcbiAgICAgICAgICBgXG4hW1NvdXJjZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvc3RhcnMvTVYtQ29uc3VsdGluZy8ke29wdGlvbnMubmFtZX0/bG9nbz1naXRodWImbGFiZWw9R2l0SHViJTIwU3RhcnMpXG5bIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9NVi1Db25zdWx0aW5nLyR7b3B0aW9ucy5uYW1lfS9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL01WLUNvbnN1bHRpbmcvJHtvcHRpb25zLm5hbWV9L2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbClcblshW0VTTGludCBDb2RlIEZvcm1hdHRpbmddKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZV9zdHlsZS1lc2xpbnQtYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9lc2xpbnQub3JnKVxuWyFbTGF0ZXN0IHJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UvTVYtQ29uc3VsdGluZy8ke29wdGlvbnMubmFtZX0uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL01WLUNvbnN1bHRpbmcvJHtvcHRpb25zLm5hbWV9L3JlbGVhc2VzKVxuIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvTVYtQ29uc3VsdGluZy8ke29wdGlvbnMubmFtZX0pXG5bIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2R0L0BtYXZvZ2VsLyR7b3B0aW9ucy5uYW1lfT9sYWJlbD1ucG0mY29sb3I9b3JhbmdlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG1hdm9nZWwvJHtvcHRpb25zLm5hbWV9KVxuWyFbdHlwZXNjcmlwdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qc2lpLXR5cGVzY3JpcHQtYmx1ZXZpb2xldC5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbWF2b2dlbC8ke29wdGlvbnMubmFtZX0pXG4gICAgICAgICAgYCxcbiAgICAgICAgICBgIyAke29wdGlvbnMubmFtZX1gLFxuICAgICAgICAgICdNeSBhd2Vzb21lIGRlc2NyaXB0aW9uLi4uJyxcbiAgICAgICAgICBgXG4jIyBUYWJsZSBvZiBDb250ZW50c1xuXG4tIFtGZWF0dXJlc10oI2ZlYXR1cmVzKVxuLSBbVXNhZ2VdKCN1c2FnZSlcbi0gW1NvbHV0aW9uIERlc2lnbl0oI3NvbHV0aW9uLWRlc2lnbilcbi0gW0luc3BpcmF0aW9uXSgjaW5zcGlyYXRpb24pXG5cbiMjIEZlYXR1cmVzXG5cbi0g4pqhICoqUXVpY2sgU2V0dXAqKjogVEJEXG4tIPCfk48gKipCZXN0IFByYWN0aWNlIFNldHVwKio6IFRCRFxuLSDwn6S54oCN4pmC77iPICoqUHJlLWluc3RhbGxlZCBwYWNrYWdlcyoqOiBUQkRcbi0g8J+Pl++4jyAqKkV4dGVuc2liaWxpdHkqKjogVEJEXG5cbiMjIFVzYWdlXG5UaGUgZm9sbG93aW5nIHN0ZXBzIGdldCB5b3Ugc3RhcnRlZDpcblxuMS4gQ3JlYXRlIGEgbmV3IFxcYGF3c2Nkay1hcHBcXGAgdmlhXG5cXGBcXGBcXGBiYXNoXG5ucHggcHJvamVuIG5ldyBhd3NjZGstYXBwLXRzIC0tY2RrVmVyc2lvbj0yLjI2MS4wIC0tcGFja2FnZS1tYW5hZ2VyPW5wbVxuXFxgXFxgXFxgXG4zLiBBZGQgXFxgQG1hdm9nZWwvJHtvcHRpb25zLm5hbWV9XFxgIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QgaW4gdGhlIFxcYC5wcm9qZW5yYy50c1xcYCBmaWxlXG40LiBSdW4gXFxgbnB4IHByb2plblxcYCB0byBpbnN0YWxsIGl0XG41LiBBZGQgdGhlIGZvbGxvd2luZyB0byB0aGUgXFxgc3JjL21haW4udHNcXGAgZmlsZTpcblxcYFxcYFxcYHRzXG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlciB9IGZyb20gJ0BtYXZvZ2VsLyR7b3B0aW9ucy5uYW1lfSc7XG5cbmV4cG9ydCBjbGFzcyBNeVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhY2tQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBuZXcgUGxhY2Vob2xkZXIodGhpcywgJ3BsYWNlaG9sZGVyJywge1xuICAgICAgLy8gYW5kIG1vcmUuLi4g8J+SoVxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IGVudiA9IHtcbiAgYWNjb3VudDogJzEyMzQ1Njc4OTkxMicsXG4gIHJlZ2lvbjogJ2V1LWNlbnRyYWwtMScsXG59O1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5uZXcgTXlTdGFjayhhcHAsICdwbGFjZWhvbGRlcicsIHsgZW52IH0pO1xuYXBwLnN5bnRoKCk7XG5cXGBcXGBcXGBcblxuYW5kIGRlcGxveSBpdFxuXFxgXFxgXFxgYmFzaFxubnB4IHByb2plbiBidWlsZFxubnB4IHByb2plbiBkZXBsb3lcblxcYFxcYFxcYFxuXG53aXRoIHRoZSBvdXRwdXRcblxcYFxcYFxcYGNvbnNvbGVcblRCRFxuXFxgXFxgXFxgXG5cblNlZSB0aGUgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb2xkZXIgZm9yIG1vcmUgaW5zcGlyYXRpb24uXG5cbiMjIFNvbHV0aW9uIERlc2lnblxuXG48ZGV0YWlscz5cbiAgPHN1bW1hcnk+Li4uIGlmIHlvdSdyZSBjdXJpb3VzIGFib3V0IGNsaWNrIGhlcmUgZm9yIHRoZSBkZXRhaWxzPC9zdW1tYXJ5PlxuXG4hW3BsYWNlaG9sZGVyXShkb2NzL2ltZy9wbGFjZWhvbGRlci5kcmF3aW8tbWluLnBuZylcblxuPC9kZXRhaWxzPlxuXG4jIyBJbnNwaXJhdGlvblxuXG5hZGQgdG9vbHMgb3IgbGlua3Mgd2hpY2ggaW5zcGlyZWQgeW91XG4gICAgICAgICAgYCxcbiAgICAgICAgICBmcy5yZWFkRmlsZVN5bmMoYCR7YmFzZUFzc2V0c0RpcmVjdG9yeX0vY29tbW9uL2dpdGh1Yl9yZWFkbWVfY3RhLm1kYCkudG9TdHJpbmcoKSxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgICAvLyBOT1RFOiBrZWVwIGFsbCB0aGUgcGFzc2VkIGluIG9wdGlvbnMgd2hpY2ggY2FuIG92ZXJyaWRlIHRoZSBleGlzdGluZyBvbmVzIVxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIGFwcGxpZWQgYWZ0ZXIgLi4ub3B0aW9ucyBzbyB0aGUgREVGQVVMVF9DREtfVkVSU0lPTiBmYWxsYmFjayBhYm92ZVxuICAgICAgLy8gYWx3YXlzIHdpbnMgb3ZlciBhbiB1bmRlZmluZWQgb3B0aW9ucy5jZGtWZXJzaW9uXG4gICAgICBjZGtWZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgLy8gVHlwZVNjcmlwdCA2IG5vIGxvbmdlciBhdXRvLWRpc2NvdmVycyBAdHlwZXMvKiBwYWNrYWdlc1xuICAgIHRoaXMudHNjb25maWdEZXYuZmlsZS5hZGRPdmVycmlkZSgnY29tcGlsZXJPcHRpb25zLnR5cGVzJywgWydub2RlJywgJ2plc3QnXSk7XG4gICAgdGhpcy50c2NvbmZpZz8uZmlsZS5hZGRPdmVycmlkZSgnY29tcGlsZXJPcHRpb25zLnR5cGVzJywgWydub2RlJ10pO1xuXG4gICAgLy8gcHJvamVuJ3MgQXV0b01lcmdlIGNvbXBvbmVudCBoYXJkY29kZXMgYGRlbGV0ZV9oZWFkX2JyYW5jaDoge31gIGluIHRoZVxuICAgIC8vIG1lcmdpZnkgcnVsZSB3aXRoIG5vIG9wdGlvbiB0byBkaXNhYmxlIGl0LiBTdHJpcCBpdCBzbyBNZXJnaWZ5IGRvZXMgbm90XG4gICAgLy8gZGVsZXRlIGhlYWQgYnJhbmNoZXMgb24gbWVyZ2UgKHJlbm92YXRlL2RlcGVuZGFib3QgbWFuYWdlIHRoZWlyIG93bikuXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NVi1Db25zdWx0aW5nL2Nkay12c2NvZGUtc2VydmVyL3B1bGwvMTEyXG4gICAgdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgnLm1lcmdpZnkueW1sJyk/LmFkZERlbGV0aW9uT3ZlcnJpZGUoXG4gICAgICAncHVsbF9yZXF1ZXN0X3J1bGVzLjAuYWN0aW9ucy5kZWxldGVfaGVhZF9icmFuY2gnLFxuICAgICk7XG5cbiAgICAvLyBBdXRvLWFwcHJvdmUgUFJzIGF1dGhvcmVkIGJ5ICdtdmMtYm90JyBpdHNlbGYgKHNlZSB0aGVcbiAgICAvLyBhdXRvQXBwcm92ZU9wdGlvbnMgY29tbWVudCBhYm92ZSBmb3Igd2h5IHRoaXMgY2FuJ3QgZ28gdGhyb3VnaCB0aGVcbiAgICAvLyBHaXRIdWIgQWN0aW9ucyBhdXRvLWFwcHJvdmUgcGF0aCkgdmlhIE1lcmdpZnkgaW5zdGVhZDogaXQgcG9zdHMgdGhlXG4gICAgLy8gcmV2aWV3IGFzIHRoZSBNZXJnaWZ5IGFwcCwgYSBkaWZmZXJlbnQgYWN0b3IuIFNlZSBtYXZvZ2VsL212Yy1wcm9qZW4jNzQuXG4gICAgdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgnLm1lcmdpZnkueW1sJyk/LmFkZE92ZXJyaWRlKFxuICAgICAgJ3B1bGxfcmVxdWVzdF9ydWxlcy4xJyxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0F1dG8tYXBwcm92ZSBzZWxmLWF1dGhvcmVkIG12Yy1ib3QgUFJzJyxcbiAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgICdhdXRob3I9bXZjLWJvdCcsXG4gICAgICAgICAgJ2xhYmVsPWF1dG8tYXBwcm92ZScsXG4gICAgICAgIF0sXG4gICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICByZXZpZXc6IHtcbiAgICAgICAgICAgIHR5cGU6ICdBUFBST1ZFJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdBdXRvbWF0aWNhbGx5IGFwcHJvdmVkOiBzZWxmLWF1dGhvcmVkIGF1dG9tYXRpb24gUFIuJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gZ2l0aWdub3JlXG4gICAgY29uc3QgZmlsZXNQYXR0ZXJuVG9HaXRpZ25vcmUgPSBbXG4gICAgICAndG1wJyxcbiAgICAgICcuY29kZWdwdCcsXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXNQYXR0ZXJuVG9HaXRpZ25vcmUpIHtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoZmlsZSk7XG4gICAgfVxuICAgIHRoaXMuYWRkRGVwcyhcbiAgICAgIC8vIGNkay1uYWcgdjMgcmVxdWlyZXMgYXdzLWNkay1saWIgPj0gMi4yNTcuMCAoc2VlIGNkay1uYWcgTUlHUkFUSU9OLm1kKVxuICAgICAgJ2Nkay1uYWdAXjMuMC4xJyxcbiAgICApO1xuICAgIC8vIENhcCBpbnRlZy1ydW5uZXIgYXQgTEFTVF9JTlRFR19SVU5ORVJfVkVSU0lPTiBzaW5jZSBpdCBzdG9wcGVkIHB1Ymxpc2hpbmcgYWZ0ZXIgdGhhdCB2ZXJzaW9uLlxuICAgIC8vIGludGVnLXJ1bm5lciB1c2VzIHBsYWluIHZlcnNpb25zIChubyAtYWxwaGEuMCBzdWZmaXgpLlxuICAgIC8vIGludGVnLXRlc3RzLWFscGhhIGFuZCBhd3NsaW50IG9ubHkgcHVibGlzaCBhdCBtaW5vciB2ZXJzaW9ucyAoZS5nLiAyLjE5Ny4wLWFscGhhLjAsIG5vdCAyLjE5Ny40LWFscGhhLjApLlxuICAgIGNvbnN0IHJhd0Nka1ZlcnNpb24gPSB0aGlzLmNka1ZlcnNpb24ucmVwbGFjZSgvW1xcXn5dLywgJycpO1xuICAgIGNvbnN0IGludGVnUnVubmVyVmVyc2lvbiA9IHJhd0Nka1ZlcnNpb24ubG9jYWxlQ29tcGFyZShMQVNUX0lOVEVHX1JVTk5FUl9WRVJTSU9OLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSwgc2Vuc2l0aXZpdHk6ICdiYXNlJyB9KSA+IDBcbiAgICAgID8gTEFTVF9JTlRFR19SVU5ORVJfVkVSU0lPTlxuICAgICAgOiByYXdDZGtWZXJzaW9uO1xuICAgIC8vIEFscGhhIHBhY2thZ2VzIG9ubHkgcHVibGlzaCBhdCAuMCBwYXRjaCB2ZXJzaW9ucyDigJQgbm9ybWFsaXplIHRvIG1pbm9yIHZlcnNpb25cbiAgICBjb25zdCBbbWFqb3IsIG1pbm9yXSA9IHJhd0Nka1ZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBjb25zdCBhbHBoYVZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uMGA7XG4gICAgdGhpcy5hZGREZXZEZXBzKFxuICAgICAgYEBhd3MtY2RrL2ludGVnLXJ1bm5lckAke2ludGVnUnVubmVyVmVyc2lvbn1gLFxuICAgICAgYEBhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhQCR7YWxwaGFWZXJzaW9ufS1hbHBoYS4wYCxcbiAgICAgICdAY29tbWl0bGludC9jbGlAXjIwLjEuMCcsXG4gICAgICAnQGNvbW1pdGxpbnQvY29uZmlnLWNvbnZlbnRpb25hbEBeMjAuMC4wJyxcbiAgICAgIGBhd3NsaW50QCR7YWxwaGFWZXJzaW9ufS1hbHBoYS4wYCxcbiAgICAgICdodXNreUBeOS4xLjcnLFxuICAgICk7XG5cbiAgICB0aGlzLnBhY2thZ2Uuc2V0U2NyaXB0KCdwcmVwYXJlJywgJ2h1c2t5Jyk7XG4gICAgbmV3IFRleHRGaWxlKHRoaXMsICcuY29tbWl0bGludHJjLmpzJywge1xuICAgICAgbGluZXM6IFtcbiAgICAgICAgJ21vZHVsZS5leHBvcnRzID0geyBleHRlbmRzOiBbXFwnQGNvbW1pdGxpbnQvY29uZmlnLWNvbnZlbnRpb25hbFxcJ10gfTsnLFxuICAgICAgXSxcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMucGFja2FnZS5zZXRTY3JpcHQoJ2F3c2xpbnQnLCAnYXdzbGludCcpO1xuICAgIC8vIC5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnltbFxuICAgIGNvbnN0IGJ1aWxkV29ya2Zsb3cgPSB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KCdidWlsZCcpO1xuICAgIGlmICghYnVpbGRXb3JrZmxvdykgcmV0dXJuO1xuICAgIGNvbnN0IGJ1aWxkSm9iID0gYnVpbGRXb3JrZmxvdy5nZXRKb2IoJ2J1aWxkJyk7XG4gICAgaWYgKCFidWlsZEpvYiB8fCAhKCdzdGVwcycgaW4gYnVpbGRKb2IpKSByZXR1cm47XG4gICAgLy8gVE9ETzogZmlndXJlIG91dCB3aHkgd3JvbmcgdHlwZXNcbiAgICBjb25zdCBnZXRCdWlsZFN0ZXBzID0gYnVpbGRKb2Iuc3RlcHMgYXMgdW5rbm93biBhcyAoKSA9PiBKb2JTdGVwW107XG4gICAgY29uc3QgYnVpbGRKb2JTdGVwcyA9IGdldEJ1aWxkU3RlcHMoKTtcbiAgICBidWlsZFdvcmtmbG93LnVwZGF0ZUpvYignYnVpbGQnLCB7XG4gICAgICAuLi5idWlsZEpvYixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLmJ1aWxkSm9iU3RlcHMuc2xpY2UoMCwgNCksXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUnVuIGF3c2xpbnQnLFxuICAgICAgICAgIHJ1bjogJ25wbSBydW4gYXdzbGludCcsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmJ1aWxkSm9iU3RlcHMuc2xpY2UoNCksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gUGluIEdpdEh1YiBBY3Rpb25zIHRoYXQgcHJvamVuIG90aGVyd2lzZSByZWZlcmVuY2VzIGJ5IGEgbXV0YWJsZSB0YWcsXG4gICAgLy8gYW5kIHN0b3AgY2hlY2tvdXQgc3RlcHMgdGhhdCBuZXZlciBwdXNoIGJhY2sgd2l0aCBpdCBmcm9tIHBlcnNpc3RpbmcgYVxuICAgIC8vIGdpdCBjcmVkZW50aWFsIG9uIHRoZSBydW5uZXIgLSBwZXIgeml6bW9yJ3MgdW5waW5uZWQtdXNlcyAvIGFydGlwYWNrZWRcbiAgICAvLyBhdWRpdHMgKGh0dHBzOi8vZG9jcy56aXptb3Iuc2gvYXVkaXRzLykuIENlbnRyYWxpemVkIGhlcmUgc28gZXZlcnlcbiAgICAvLyBwcm9qZWN0IGJ1aWx0IG9uIE12Y0Nka0NvbnN0cnVjdExpYnJhcnkgZ2V0cyBhIGNsZWFuIGB6aXptb3IgLmAgcnVuXG4gICAgLy8gd2l0aG91dCByZWltcGxlbWVudGluZyB0aGlzIGluIGl0cyBvd24gLnByb2plbnJjLnRzLlxuICAgIHRoaXMuZ2l0aHViPy5hY3Rpb25zLnNldCgnYWN0aW9ucy9zZXR1cC1ub2RlQHY3LjAuMCcsICdhY3Rpb25zL3NldHVwLW5vZGVAODIwNzYyNzg2MDI2NzQwYzc2ZjM2MDg1YjBlZmM0N2EzMWZlNTAyMCcpOyAvLyB2Ny4wLjBcbiAgICB0aGlzLmdpdGh1Yj8uYWN0aW9ucy5zZXQoJ2FjdGlvbnMvc2V0dXAtcHl0aG9uQHY3LjAuMCcsICdhY3Rpb25zL3NldHVwLXB5dGhvbkA1ZmRhM2I5NWE0ZWE5MTI5OWEzNGU4OTQ1ODNjMzg2MjE1M2U0Yjk3Jyk7IC8vIHY3LjAuMFxuICAgIHRoaXMuZ2l0aHViPy5hY3Rpb25zLnNldCgncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEB2OC4xLjEnLCAncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEA1ZjY5NzhmYWYwODlkNGQyMGIwMGM3NzY2OTg5ZDA3NmJiMmZjN2YxJyk7IC8vIHY4LjEuMVxuXG4gICAgY29uc3QgZGlzYWJsZUNoZWNrb3V0Q3JlZGVudGlhbFBlcnNpc3RlbmNlID0gKHdvcmtmbG93TmFtZTogc3RyaW5nLCBqb2JJZHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBjb25zdCB3b3JrZmxvdyA9IHRoaXMuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgICAgIGlmICghd29ya2Zsb3cpIHJldHVybjtcbiAgICAgIGZvciAoY29uc3Qgam9iSWQgb2Ygam9iSWRzKSB7XG4gICAgICAgIGNvbnN0IGpvYiA9IHdvcmtmbG93LmdldEpvYihqb2JJZCk7XG4gICAgICAgIGlmICgham9iIHx8ICEoJ3N0ZXBzJyBpbiBqb2IpKSBjb250aW51ZTtcbiAgICAgICAgLy8gYGpvYi5zdGVwc2AgaXMgYSBib3VuZCBhY2Nlc3NvciBmdW5jdGlvbiB1bnRpbCBhIGpvYidzIGZpcnN0XG4gICAgICAgIC8vIGB1cGRhdGVKb2IoKWAgY2FsbCwgYWZ0ZXIgd2hpY2ggaXQgYmVjb21lcyBhIHBsYWluIGFycmF5IChzZWUgdGhlXG4gICAgICAgIC8vIFwiVE9ETzogZmlndXJlIG91dCB3aHkgd3JvbmcgdHlwZXNcIiBjb21tZW50IG9uIHRoZSBidWlsZC55bWwgcGF0Y2hcbiAgICAgICAgLy8gYWJvdmUpIC0gc28gcmVzb2x2ZSBpdCBkZWZlbnNpdmVseSByYXRoZXIgdGhhbiBhc3N1bWluZyBlaXRoZXIgc2hhcGUuXG4gICAgICAgIGNvbnN0IHJhd1N0ZXBzID0gam9iLnN0ZXBzIGFzIHVua25vd24gYXMgSm9iU3RlcFtdIHwgKCgpID0+IEpvYlN0ZXBbXSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwcyA9IHR5cGVvZiByYXdTdGVwcyA9PT0gJ2Z1bmN0aW9uJyA/IHJhd1N0ZXBzKCkgOiByYXdTdGVwcztcbiAgICAgICAgd29ya2Zsb3cudXBkYXRlSm9iKGpvYklkLCB7XG4gICAgICAgICAgLi4uam9iLFxuICAgICAgICAgIHN0ZXBzOiBjdXJyZW50U3RlcHMubWFwKChzdGVwKSA9PlxuICAgICAgICAgICAgc3RlcC5pZCA9PT0gJ2NoZWNrb3V0J1xuICAgICAgICAgICAgICA/IHsgLi4uc3RlcCwgd2l0aDogeyAuLi5zdGVwLndpdGgsICdwZXJzaXN0LWNyZWRlbnRpYWxzJzogZmFsc2UgfSB9XG4gICAgICAgICAgICAgIDogc3RlcCxcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIEV4Y2x1ZGVzIGJ1aWxkLnltbCdzIGBzZWxmLW11dGF0aW9uYCBqb2IsIHdoaWNoIHJlbGllcyBvbiB0aGVcbiAgICAvLyBwZXJzaXN0ZWQgY3JlZGVudGlhbCB0byBgZ2l0IHB1c2hgIGl0cyBwYXRjaCBiYWNrIHRvIHRoZSBQUiBicmFuY2guXG4gICAgZGlzYWJsZUNoZWNrb3V0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKCdidWlsZCcsIFsnYnVpbGQnLCAncGFja2FnZS1qcycsICdwYWNrYWdlLXB5dGhvbiddKTtcbiAgICBkaXNhYmxlQ2hlY2tvdXRDcmVkZW50aWFsUGVyc2lzdGVuY2UoJ3VwZ3JhZGUtbWFpbicsIFsndXBncmFkZScsICdwciddKTtcblxuICAgIC8vIFRoZSByZWxlYXNlIHdvcmtmbG93J3MgYHJlbGVhc2VfbnBtYC9gcmVsZWFzZV9weXBpYCBqb2JzIGFyZSBvbmx5XG4gICAgLy8gYWRkZWQgYnkgdGhlIGBSZWxlYXNlYCBjb21wb25lbnQncyBvd24gYHByZVN5bnRoZXNpemUoKWAsIHdoaWNoIHJ1bnNcbiAgICAvLyBkdXJpbmcgYHByb2plY3Quc3ludGgoKWAgLSBhZnRlciB0aGlzIGNvbnN0cnVjdG9yIHJldHVybnMuIFBhdGNoIHRoZW1cbiAgICAvLyBmcm9tIGEgY29tcG9uZW50IGFkZGVkIGFmdGVyd2FyZHMsIHNvIGl0cyBgcHJlU3ludGhlc2l6ZSgpYCBydW5zIGxhdGVyXG4gICAgLy8gc3RpbGwgKGNvbXBvbmVudCBwcmVTeW50aGVzaXplIG9yZGVyIGZvbGxvd3MgY29uc3RydWN0aW9uIG9yZGVyKS5cbiAgICBjbGFzcyBSZWxlYXNlV29ya2Zsb3dDcmVkZW50aWFsUGF0Y2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICAgICAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICAgICAgZGlzYWJsZUNoZWNrb3V0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKCdyZWxlYXNlJywgWydyZWxlYXNlJywgJ3JlbGVhc2VfbnBtJywgJ3JlbGVhc2VfcHlwaSddKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbmV3IFJlbGVhc2VXb3JrZmxvd0NyZWRlbnRpYWxQYXRjaCh0aGlzKTtcblxuICAgIHRoaXMucGFja2FnZS5zZXRTY3JpcHQoXG4gICAgICAnaW50ZWctdGVzdCcsXG4gICAgICBgaW50ZWctcnVubmVyIC0tZGlyZWN0b3J5IC4vaW50ZWctdGVzdHMgJHtpbnRlZ1Rlc3RSZWdpb25zPy5tYXAocmVnaW9uID0+IGAtLXBhcmFsbGVsLXJlZ2lvbnMgJHtyZWdpb259YCkuam9pbignICcpfSAtLXVwZGF0ZS1vbi1mYWlsZWRgLFxuICAgICk7XG5cbiAgICBuZXcgVGV4dEZpbGUodGhpcywgJy5naXRodWIvSVNTVUVfVEVNUExBVEUvYnVnX3JlcG9ydC5tZCcsIHtcbiAgICAgIGxpbmVzOiBbZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2NvbW1vbi9naXRodWJfYnVnX3JlcG9ydC5tZGApLnRvU3RyaW5nKCldLFxuICAgIH0pO1xuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsICcuZ2l0aHViL0lTU1VFX1RFTVBMQVRFL2ZlYXR1cmVfcmVxdWVzdC5tZCcsIHtcbiAgICAgIGxpbmVzOiBbZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2NvbW1vbi9naXRodWJfZmVhdHVyZV9yZXF1ZXN0Lm1kYCkudG9TdHJpbmcoKV0sXG4gICAgfSk7XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcywgJy5naXRodWIvRlVORElORy55YW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIGdpdGh1YjogJ21hdm9nZWwnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHppem1vcidzIGRhbmdlcm91cy10cmlnZ2VycyBhdWRpdCBmbGFncyBhbnkgcHVsbF9yZXF1ZXN0X3RhcmdldFxuICAgIC8vIHRyaWdnZXIuIEJvdGggd29ya2Zsb3dzIGJlbG93IChnZW5lcmF0ZWQgaWRlbnRpY2FsbHkgZm9yIGV2ZXJ5XG4gICAgLy8gTXZjQ2RrQ29uc3RydWN0TGlicmFyeSBjb25zdW1lciB2aWEgYXV0b0FwcHJvdmVPcHRpb25zIC9cbiAgICAvLyBwdWxsUmVxdWVzdExpbnRPcHRpb25zKSBhcmUgc2FmZTogdGhleSBvbmx5IGluc3BlY3QgUFIgbWV0YWRhdGEgKGxhYmVsLFxuICAgIC8vIGFjdG9yLCB0aXRsZSkgYW5kIG5ldmVyIGNoZWNrIG91dCBvciBleGVjdXRlIFBSIGNvZGUuXG4gICAgLy8gaHR0cHM6Ly9kb2NzLnppem1vci5zaC9hdWRpdHMvI2Rhbmdlcm91cy10cmlnZ2Vyc1xuICAgIG5ldyBZYW1sRmlsZSh0aGlzLCAnLmdpdGh1Yi96aXptb3IueW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIHJ1bGVzOiB7XG4gICAgICAgICAgJ2Rhbmdlcm91cy10cmlnZ2Vycyc6IHtcbiAgICAgICAgICAgIGlnbm9yZTogW1xuICAgICAgICAgICAgICAnYXV0by1hcHByb3ZlLnltbCcsXG4gICAgICAgICAgICAgICdwdWxsLXJlcXVlc3QtbGludC55bWwnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCAnQ09OVFJJQlVUSU5HLm1kJywge1xuICAgICAgbGluZXM6IFtmcy5yZWFkRmlsZVN5bmMoYCR7YmFzZUFzc2V0c0RpcmVjdG9yeX0vY29tbW9uL2NvbnRyaWJ1dGluZy5tZGApLnRvU3RyaW5nKCldLFxuICAgIH0pO1xuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsICcucHJldHRpZXJyYycsIHtcbiAgICAgIGxpbmVzOiBbZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2NvbW1vbi9wcmV0dGllcnJjYCkudG9TdHJpbmcoKV0sXG4gICAgfSk7XG5cbiAgICAvLyB3cml0ZSBzYW1wbGUgY29kZSB0byBtYWluLnRzICYgdG8gbWFpbi50ZXN0LnRzXG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlQ29kZSA/PyB0cnVlKSB7XG4gICAgICBuZXcgU2FtcGxlQ29kZSh0aGlzLCB7XG4gICAgICAgIGJhc2VBc3NldHNEaXJlY3RvcnksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIFNhbXBsZUNvZGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgYmFzZUFzc2V0c0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuY2xhc3MgU2FtcGxlQ29kZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGlicmFyeTogQXdzQ2RrQ29uc3RydWN0TGlicmFyeTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBTYW1wbGVDb2RlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsaWJyYXJ5OiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5LFxuICAgIG9wdGlvbnM6IFNhbXBsZUNvZGVPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihsaWJyYXJ5KTtcbiAgICB0aGlzLmxpYnJhcnkgPSBsaWJyYXJ5O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IHNyY2RpciA9IHBhdGguam9pbihvdXRkaXIsIHRoaXMubGlicmFyeS5zcmNkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmMoYCR7c3JjZGlyfS9pbmRleC50c2ApICYmXG4gICAgICAhZnMucmVhZEZpbGVTeW5jKGAke3NyY2Rpcn0vaW5kZXgudHNgKS50b1N0cmluZygpLmluY2x1ZGVzKCdleHBvcnQgY2xhc3MgSGVsbG8nKSAvLyBOb3RlOiBmcm9tIHBhcmVudFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZzLm1rZGlyU3luYyhzcmNkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHNyY2RpciwgJ2luZGV4LnRzJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY2RrLWNvbnN0cnVjdC9zcmNfaW5kZXgudHNgKS50b1N0cmluZygpKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihzcmNkaXIsICdwbGFjZWhvbGRlci50cycpLCBmcy5yZWFkRmlsZVN5bmMoYCR7dGhpcy5vcHRpb25zLmJhc2VBc3NldHNEaXJlY3Rvcnl9L2Nkay1jb25zdHJ1Y3Qvc3JjX3BsYWNlaG9sZGVyLnRzYCkudG9TdHJpbmcoKSk7XG4gICAgLy8gY3JkIHdpdGggbGFtYmRhIGdlbmVyYXRpb25cbiAgICAvLyBOb3RlOiBjcmQtZXhhbXBsZS5sYW1iZGEudHMgaXMgd3JpdHRlbiBlYXJsaWVyLCBiZWZvcmUgYHN1cGVyKClgLCBzb1xuICAgIC8vIEF1dG9EaXNjb3ZlcidzIGNvbnN0cnVjdG9yLXRpbWUgZ2xvYiBjYW4gZmluZCBpdCAtIHNlZSB0aGUgY29tbWVudCBpblxuICAgIC8vIHRoZSBjb25zdHJ1Y3RvciBhYm92ZS5cbiAgICBmcy5ta2RpclN5bmMoYCR7c3JjZGlyfS9jcmQtZXhhbXBsZWAsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGAke3NyY2Rpcn0vY3JkLWV4YW1wbGVgLCAnY3JkLWV4YW1wbGUudHMnKSwgZnMucmVhZEZpbGVTeW5jKGAke3RoaXMub3B0aW9ucy5iYXNlQXNzZXRzRGlyZWN0b3J5fS9jZGstY29uc3RydWN0L3NyY19jcmQtZXhhbXBsZS50c2ApLnRvU3RyaW5nKCkpO1xuXG5cbiAgICBjb25zdCB0ZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgdGhpcy5saWJyYXJ5LnRlc3RkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmModGVzdGRpcikgJiZcbiAgICAgIGZzLnJlYWRkaXJTeW5jKHRlc3RkaXIpLmZpbHRlcigoeCkgPT4geC5lbmRzV2l0aCgnLnRzJykpICYmXG4gICAgICAhZnMuZXhpc3RzU3luYyhgJHt0ZXN0ZGlyfS9oZWxsby50ZXN0LnRzYCkgLy8gTm90ZTogZnJvbSBwYXJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gcmVtb3ZlICR7dGVzdGRpcn0vaGVsbG8udGVzdC50cyBmaWxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2Ugb3ZlcnJpZGUgaW5kZXgudHNcbiAgICBmcy51bmxpbmtTeW5jKGAke3Rlc3RkaXJ9L2hlbGxvLnRlc3QudHNgKTtcbiAgICBmcy5ta2RpclN5bmModGVzdGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGVzdGRpciwgJ2luZGV4LnRlc3QudHMnKSwgZnMucmVhZEZpbGVTeW5jKGAke3RoaXMub3B0aW9ucy5iYXNlQXNzZXRzRGlyZWN0b3J5fS9jZGstY29uc3RydWN0L3Rlc3RfaW5kZXgudGVzdC50c2ApLnRvU3RyaW5nKCkpO1xuICAgIC8vIGxhbWJkYSB0ZXN0cyB3aXRoIGplc3Qgc3R1YnNcbiAgICBmcy5ta2RpclN5bmMoYCR7dGVzdGRpcn0vY3JkLWV4YW1wbGVgLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihgJHt0ZXN0ZGlyfS9jcmQtZXhhbXBsZWAsICdjcmQtZXhhbXBsZS50ZXN0LnRzJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY2RrLWNvbnN0cnVjdC90ZXN0X2NyZC1leGFtcGxlLnRlc3QudHNgKS50b1N0cmluZygpKTtcblxuXG4gICAgY29uc3QgaW50ZWdUZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgJ2ludGVnLXRlc3RzJyk7XG4gICAgaWYgKFxuICAgICAgZnMuZXhpc3RzU3luYyhpbnRlZ1Rlc3RkaXIpICYmXG4gICAgICBmcy5yZWFkZGlyU3luYyhpbnRlZ1Rlc3RkaXIpLmZpbHRlcigoeCkgPT4geC5lbmRzV2l0aCgnLnRzJykpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZzLm1rZGlyU3luYyhpbnRlZ1Rlc3RkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGludGVnVGVzdGRpciwgJ2ludGVnLnBsYWNlaG9sZGVyLnRzJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY2RrLWNvbnN0cnVjdC9pbnRlZ19pbnRlZy5wbGFjZWhvbGRlci50c2ApLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgaW50ZWdUZXN0RnVuY3Rpb25zZGlyID0gcGF0aC5qb2luKGludGVnVGVzdGRpciwgJ2Z1bmN0aW9ucycpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmMoaW50ZWdUZXN0RnVuY3Rpb25zZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoaW50ZWdUZXN0RnVuY3Rpb25zZGlyKS5maWx0ZXIoKHgpID0+IHguZW5kc1dpdGgoJy50cycpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmcy5ta2RpclN5bmMoaW50ZWdUZXN0RnVuY3Rpb25zZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihpbnRlZ1Rlc3RGdW5jdGlvbnNkaXIsICd0ZXN0LWhhbmRsZXIudHMnKSwgZnMucmVhZEZpbGVTeW5jKGAke3RoaXMub3B0aW9ucy5iYXNlQXNzZXRzRGlyZWN0b3J5fS9jZGstY29uc3RydWN0L2ludGVnX3Rlc3QtaGFuZGxlci50c2ApLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgZG9jc2RpciA9IHBhdGguam9pbihvdXRkaXIsICdkb2NzJyk7XG4gICAgaWYgKFxuICAgICAgZnMuZXhpc3RzU3luYyhkb2NzZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoZG9jc2RpcikuZmlsdGVyKCh4KSA9PiB4LmVuZHNXaXRoKCcuZHJhd2lvJykpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZzLm1rZGlyU3luYyhkb2NzZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihkb2NzZGlyLCAncGxhY2Vob2xkZXIuZHJhd2lvJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY29tbW9uL2RvY3NfcGxhY2Vob2xkZXIuZHJhd2lvYCkudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCBleGFtcGxlc2RpciA9IHBhdGguam9pbihvdXRkaXIsICdleGFtcGxlcycsICdzaW1wbGUnKTtcbiAgICBpZiAoXG4gICAgICBmcy5leGlzdHNTeW5jKGV4YW1wbGVzZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoZXhhbXBsZXNkaXIpLmZpbHRlcigoeCkgPT4geC5lbmRzV2l0aCgnLmRyYXdpbycpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmcy5ta2RpclN5bmMoZXhhbXBsZXNkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGV4YW1wbGVzZGlyLCAnbWFpbi50cycpLCBmcy5yZWFkRmlsZVN5bmMoYCR7dGhpcy5vcHRpb25zLmJhc2VBc3NldHNEaXJlY3Rvcnl9L2Nkay1jb25zdHJ1Y3QvZXhhbXBsZXNfc2ltcGxlX21haW4udHNgKS50b1N0cmluZygpKTtcbiAgfVxufSJdfQ==
|
|
557
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLG1DQUFzRjtBQUN0Riw4Q0FBeUc7QUFDekcsOENBQStEO0FBRy9ELDJFQUEyRTtBQUMzRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxpQkFBaUIsR0FBRyxzQkFBYSxDQUFDLFdBQVcsQ0FBQztBQUVwRCxvRkFBb0Y7QUFDcEYsb0ZBQW9GO0FBQ3BGLG1FQUFtRTtBQUNuRSxxRkFBcUY7QUFDckYsaUVBQWlFO0FBQ2pFLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUM7QUFFNUMscUVBQXFFO0FBQ3JFLHdFQUF3RTtBQUN4RSwwRUFBMEU7QUFDMUUseUVBQXlFO0FBQ3pFLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsMkNBQTJDO0FBQzNDLE1BQU0sNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRS9DLDBFQUEwRTtBQUMxRSw0RUFBNEU7QUFDNUUsMkVBQTJFO0FBQzNFLHlDQUF5QztBQUN6QywwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFLG1EQUFtRDtBQUNuRCxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztBQXFCdEM7Ozs7R0FJRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsK0JBQXNCOztJQUVoRSxZQUFZLE9BQXNDO1FBQ2hELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSwwQ0FBMEMsQ0FBQztRQUN0SCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENB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LE9BQU87UUFDVCxDQUFDO1FBQ0QsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQix3Q0FBd0MsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgQ29tcG9uZW50LCBqYXZhc2NyaXB0LCBSZWxlYXNhYmxlQ29tbWl0cywgVGV4dEZpbGUsIFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka0NvbnN0cnVjdExpYnJhcnksIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLCBMYW1iZGFSdW50aW1lIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgRGVwZW5kYWJvdFNjaGVkdWxlSW50ZXJ2YWwgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBKb2JTdGVwIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcblxuLy8gU2V0IHRoZSBtaW5pbXVtIG5vZGUgdmVyc2lvbiBmb3IgQVdTIENESyBhbmQgdGhlIEdpdEh1YiBhY3Rpb25zIHdvcmtmbG93XG5jb25zdCBub2RlVmVyc2lvbiA9ICcyNC54JztcbmNvbnN0IGxhbWJkYU5vZGVWZXJzaW9uID0gTGFtYmRhUnVudGltZS5OT0RFSlNfMjRfWDtcblxuLy8gVGhlIGxhc3QgQGF3cy1jZGsvaW50ZWctcnVubmVyIHZlcnNpb24gdmVyaWZpZWQgYWdhaW5zdCBucG0gKGNoZWNrZWQgMjAyNi0wNy0yMSkuXG4vLyBpbnRlZy1ydW5uZXIgdXNlcyBwbGFpbiB2ZXJzaW9ucyAobm8gLWFscGhhLjAgc3VmZml4KSBhbmQgaGFzIGhpc3RvcmljYWxseSBsYWdnZWRcbi8vIG9yIHN0b3BwZWQgdHJhY2tpbmcgYXdzLWNkay1saWIncyB2ZXJzaW9uIGZvciBzdHJldGNoZXMgb2YgdGltZS5cbi8vIEBhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhIGFuZCBhd3NsaW50IGNvbnRpbnVlIHRvIHB1Ymxpc2ggYW5kIHRyYWNrIENESyB2ZXJzaW9ucy5cbi8vIFNIT1JUQ1VUOiBoYXJkY29kZWQgY2FwIHJlcXVpcmVzIG1hbnVhbCByZS12ZXJpZmljYXRpb24gLS0gcnVuXG4vLyBgbnBtIHZpZXcgQGF3cy1jZGsvaW50ZWctcnVubmVyIHZlcnNpb25zIC0tanNvbmAgYW5kIGJ1bXAgdGhpcyBpZiBhd3MtY2RrLWxpYlxuLy8gaGFzIHJlbGVhc2VkIG5ld2VyIHZlcnNpb25zIHRoYW4gdGhpcyBvbmUuXG5jb25zdCBMQVNUX0lOVEVHX1JVTk5FUl9WRVJTSU9OID0gJzIuMjA1LjQnO1xuXG4vLyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucy5jZGtWZXJzaW9uJ3Mgb3duIHVwc3RyZWFtIGBAZGVmYXVsdGBcbi8vIChub2RlX21vZHVsZXMvcHJvamVuL2xpYi9hd3NjZGsvYXdzY2RrLWRlcHMuZC50cykgLSB3aGF0IGBwcm9qZW4gbmV3YFxuLy8gZmlsbHMgaW4gd2hlbiBgLS1jZGtWZXJzaW9uYCBpcyBvbWl0dGVkLiBqc2lpIGZvcmJpZHMgYSBkZXJpdmVkIG9wdGlvbnNcbi8vIGludGVyZmFjZSBmcm9tIHJlLWRlY2xhcmluZyBhbiBpbmhlcml0ZWQgbWVtYmVyIChKU0lJNTAxNTogXCJyZXN1bHRzIGluXG4vLyBpbnZhbGlkIEMjXCIpLCBzbyB3ZSBjYW4ndCBvdmVycmlkZSB0aGUgYEBkZWZhdWx0YCBkb2MgdGhlIENMSSByZWZsZWN0c1xuLy8gb24gdG8gY2hhbmdlIHRoYXQuIERldGVjdGluZyB0aGlzIGV4YWN0IHZhbHVlIGJlbG93IGFuZCBzdWJzdGl0dXRpbmcgb3VyXG4vLyBvd24gZGVmYXVsdCBpcyB0aGUgb25seSByZW1haW5pbmcgbGV2ZXIuXG5jb25zdCBVUFNUUkVBTV9ERUZBVUxUX0NES19WRVJTSU9OID0gJzIuMTg5LjEnO1xuXG4vLyBPdXIgZGVmYXVsdCBgY2RrVmVyc2lvbmAgd2hlbiB0aGUgY2FsbGVyIChvciBgcHJvamVuIG5ld2ApIGRvZXNuJ3QgcGFzc1xuLy8gb25lLiBNdXN0IHN0YXkgPj0gMi4yNTcuMDogY2RrLW5hZyB2MyAoZm9yY2VkIGJlbG93IHZpYSBhZGREZXBzKSByZXF1aXJlc1xuLy8gaXQgYXMgYSBwZWVyLCBhbmQgdGhlIHVwc3RyZWFtIGRlZmF1bHQgYWJvdmUgZmFpbHMgYG5wbSBpbnN0YWxsYCB3aXRoIGFuXG4vLyBFUkVTT0xWRSBjb25mbGljdCBvbiBhIGZyZXNoIHNjYWZmb2xkLlxuLy8gU0hPUlRDVVQ6IGJvdGggaGFyZGNvZGVkIHZlcnNpb25zIHJlcXVpcmUgbWFudWFsIHJlLXZlcmlmaWNhdGlvbiAtLSBydW5cbi8vIGBucG0gdmlldyBhd3MtY2RrLWxpYiB2ZXJzaW9uYCBhbmQgcmUtY2hlY2sgYXdzY2RrLWRlcHMuZC50cydzIGBAZGVmYXVsdGBcbi8vIHBlcmlvZGljYWxseSAoaXQgbWF5IGRyaWZ0IG9uIGEgcHJvamVuIHVwZ3JhZGUpLlxuY29uc3QgREVGQVVMVF9DREtfVkVSU0lPTiA9ICcyLjI3MS4wJztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE12Y0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogQmFzZSBkaXJlY3RvcnkgZm9yIHRoZSBhc3NldHNcbiAgICpcbiAgICogQGRlZmF1bHQgJHtwcm9jZXNzLmN3ZCgpfS9ub2RlX21vZHVsZXMvbXZjLXByb2plbi9hc3NldHNcbiAgICovXG4gIHJlYWRvbmx5IGJhc2VBc3NldHNEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb25zIHRvIHJ1biB0aGUgaW50ZWcgdGVzdHMgaW5cbiAgICpcbiAgICogQGRlZmF1bHQgZXUtd2VzdC0xIGFuZCBldS13ZXN0LTJcbiAgICovXG4gIHJlYWRvbmx5IGludGVnVGVzdFJlZ2lvbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUeXBlU2NyaXB0IGxpYnJhcnlcbiAqXG4gKiBAcGppZCBtdmMtYXdzY2RrLWNvbnN0cnVjdFxuICovXG5leHBvcnQgY2xhc3MgTXZjQ2RrQ29uc3RydWN0TGlicmFyeSBleHRlbmRzIEF3c0Nka0NvbnN0cnVjdExpYnJhcnkge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE12Y0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zKSB7XG4gICAgY29uc3QgYmFzZUFzc2V0c0RpcmVjdG9yeSA9IG9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeSA/PyBgJHtwcm9jZXNzLmN3ZCgpfS9ub2RlX21vZHVsZXMvQG1hdm9nZWwvbXZjLXByb2plbi9hc3NldHNgO1xuICAgIGNvbnN0IGludGVnVGVzdFJlZ2lvbnMgPSBvcHRpb25zLmludGVnVGVzdFJlZ2lvbnMgPz8gWydldS13ZXN0LTEnLCAnZXUtd2VzdC0yJ107XG4gICAgLy8gYG9wdGlvbnMuY2RrVmVyc2lvbmAgaXMgdHlwZWQgYXMgcmVxdWlyZWQsIGJ1dCBgcHJvamVuIG5ld2AgYWx3YXlzXG4gICAgLy8gc3VwcGxpZXMgYSB2YWx1ZSB2aWEganNpaSByZWZsZWN0aW9uIC0gZWl0aGVyIGEgcmVhbCB1c2VyIG92ZXJyaWRlLFxuICAgIC8vIG9yIChpZiAtLWNka1ZlcnNpb24gd2FzIG9taXR0ZWQpIHRoZSB1cHN0cmVhbSBgQGRlZmF1bHRgIGxpdGVyYWxcbiAgICAvLyBpdHNlbGYuIFN1YnN0aXR1dGUgb3VycyBvbmx5IGluIHRoZSBsYXR0ZXIgY2FzZSwgdmVyaWZpZWQgYmVsb3cuXG4gICAgY29uc3QgY2RrVmVyc2lvbiA9ICghb3B0aW9ucy5jZGtWZXJzaW9uIHx8IG9wdGlvbnMuY2RrVmVyc2lvbiA9PT0gVVBTVFJFQU1fREVGQVVMVF9DREtfVkVSU0lPTilcbiAgICAgID8gREVGQVVMVF9DREtfVkVSU0lPTlxuICAgICAgOiBvcHRpb25zLmNka1ZlcnNpb247XG5cbiAgICAvLyBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5J3MgYHN1cGVyKClgIGNhbGwgYmVsb3cgd2lyZXMgdXAgYW4gQXV0b0Rpc2NvdmVyXG4gICAgLy8gY29tcG9uZW50IHdob3NlIGNvbnN0cnVjdG9yIHN5bmNocm9ub3VzbHkgZ2xvYnMgYHNyY2RpcmAgZm9yXG4gICAgLy8gYCoubGFtYmRhLnRzYCBlbnRyeXBvaW50cyAtIGl0IG5ldmVyIHJlLXNjYW5zIGxhdGVyLiBTYW1wbGVDb2RlIChhZGRlZFxuICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhpcyBjb25zdHJ1Y3Rvcikgd3JpdGVzIHRoZSBzYW1wbGUgY3JkLWV4YW1wbGUubGFtYmRhLnRzXG4gICAgLy8gZHVyaW5nIHRoZSBwcm9qZWN0J3Mgc3ludGhlc2l6ZSgpIHBoYXNlLCB3aGljaCBydW5zIGFmdGVyIGV2ZXJ5XG4gICAgLy8gY29tcG9uZW50J3MgY29uc3RydWN0b3IsIGluY2x1ZGluZyBBdXRvRGlzY292ZXIncyAtIHNvIHRoZSBmaWxlIG5ldmVyXG4gICAgLy8gZXhpc3RlZCBmb3IgQXV0b0Rpc2NvdmVyIHRvIGZpbmQsIG5vIExhbWJkYUZ1bmN0aW9uL0J1bmRsZXIgZXZlciBnb3RcbiAgICAvLyBjcmVhdGVkIGZvciBpdCwgYW5kIHRoZSBnZW5lcmF0ZWQgY3JkLWV4YW1wbGUudHMgd2FzIGxlZnQgaW1wb3J0aW5nIGFcbiAgICAvLyAnLi9jcmQtZXhhbXBsZS1mdW5jdGlvbicgY29uc3RydWN0IGZpbGUgdGhhdCBubyBvbmUgd3JvdGUsIGJyZWFraW5nXG4gICAgLy8gZXNsaW50IG9uIGV2ZXJ5IHNjYWZmb2xkLiBXcml0ZSBqdXN0IHRoaXMgb25lIGZpbGUgZWFybHkgZW5vdWdoIGZvclxuICAgIC8vIEF1dG9EaXNjb3ZlciB0byBzZWUgaXQ7IFNhbXBsZUNvZGUgc3RpbGwgb3ducyBldmVyeXRoaW5nIGVsc2UuXG4gICAgLy8gU2tpcCB1bmRlciBKZXN0IChOT0RFX0VOVj10ZXN0LCBtYXRjaGluZyBwcm9qZW4ncyBvd24gSVNfVEVTVF9SVU5cbiAgICAvLyBjaGVjayk6IHdoZW4gb3B0aW9ucy5vdXRkaXIgaXMgdW5zZXQgKHRydWUgZm9yIGV2ZXJ5IHRlc3QgaW4gdGhpc1xuICAgIC8vIHJlcG8pLCBwcm9qZW4ncyBiYXNlIFByb2plY3QgY2xhc3MgLSBjb25zdHJ1Y3RlZCB2aWEgc3VwZXIoKSBiZWxvdyAtXG4gICAgLy8gcmVkaXJlY3RzIHRoZSAqcmVhbCogb3V0ZGlyIHRvIGEgZnJlc2ggdGVtcCBkaXJlY3RvcnkgaW5zdGVhZCBvZiBjd2QuXG4gICAgLy8gVGhpcyBlYXJseSB3cml0ZSBydW5zIGJlZm9yZSB0aGF0IHJlZGlyZWN0IGV4aXN0cywgc28gd2l0aG91dCB0aGlzXG4gICAgLy8gZ3VhcmQgaXQgd291bGQgd3JpdGUgc3RyYWlnaHQgaW50byB0aGlzIHJlcG8ncyBvd24gd29ya2luZyB0cmVlXG4gICAgLy8gaW5zdGVhZCBvZiB0aGUgdGVzdCdzIHRlbXAgZGlyLlxuICAgIGlmICgob3B0aW9ucy5zYW1wbGVDb2RlID8/IHRydWUpICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICAgIGNvbnN0IG91dGRpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dGRpciA/PyAnLicpO1xuICAgICAgY29uc3QgbGFtYmRhRW50cnlwb2ludCA9IHBhdGguam9pbihvdXRkaXIsICdzcmMnLCAnY3JkLWV4YW1wbGUnLCAnY3JkLWV4YW1wbGUubGFtYmRhLnRzJyk7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMobGFtYmRhRW50cnlwb2ludCkpIHtcbiAgICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZShsYW1iZGFFbnRyeXBvaW50KSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMobGFtYmRhRW50cnlwb2ludCwgZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2Nkay1jb25zdHJ1Y3Qvc3JjX2NyZC1leGFtcGxlLmxhbWJkYS50c2ApLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1cGVyKHtcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGNvcHlyaWdodE93bmVyOiAnTVYgQ29uc3VsdGluZyBHbWJIJyxcbiAgICAgIGxpY2Vuc2U6ICdBcGFjaGUtMi4wJyxcbiAgICAgIGpzaWlWZXJzaW9uOiAnfjYuMC4wJyxcbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uOiAnXjYuMC4yJyxcbiAgICAgIG1pbk5vZGVWZXJzaW9uOiBub2RlVmVyc2lvbixcbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IG5vZGVWZXJzaW9uLFxuICAgICAgc3RhYmlsaXR5OiAnZXhwZXJpbWVudGFsJyxcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5OUE0sXG4gICAgICBucG1BY2Nlc3M6IGphdmFzY3JpcHQuTnBtQWNjZXNzLlBVQkxJQyxcbiAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgcnVudGltZTogbGFtYmRhTm9kZVZlcnNpb24sXG4gICAgICAgIGF3c1Nka0Nvbm5lY3Rpb25SZXVzZTogZmFsc2UsIC8vIGRvZXNuJ3QgZXhpc3QgaW4gQVdTIFNESyBKUyB2M1xuICAgICAgfSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczoge1xuICAgICAgICAvLyAnbXZjLWJvdCcgKHRoZSBQUk9KRU5fR0lUSFVCX1RPS0VOIGlkZW50aXR5KSBpcyBkZWxpYmVyYXRlbHlcbiAgICAgICAgLy8gZXhjbHVkZWQ6IEdpdEh1YiByZWplY3RzIGEgUFIgcmV2aWV3IGZyb20gdGhlIHNhbWUgYWNjb3VudCB0aGF0XG4gICAgICAgIC8vIGF1dGhvcmVkIHRoZSBQUiAoXCJDYW4gbm90IGFwcHJvdmUgeW91ciBvd24gcHVsbCByZXF1ZXN0XCIpLCBhbmRcbiAgICAgICAgLy8gdGhpcyB0b2tlbiBjYW4gYWxzbyBhdXRob3IgUFJzIGFnYWluc3QgZ2VuZXJhdGVkIHByb2plY3RzIChlLmcuXG4gICAgICAgIC8vIHNjYWZmb2xkZXItZHJpdmVuIGF1dG9tYXRpb24pLiBUaG9zZSBQUnMgYXJlIGF1dG8tYXBwcm92ZWQgdmlhXG4gICAgICAgIC8vIE1lcmdpZnkgaW5zdGVhZCwgYmVsb3csIHdoaWNoIHBvc3RzIHRoZSByZXZpZXcgYXMgdGhlIE1lcmdpZnlcbiAgICAgICAgLy8gYXBwIC0gYSBkaWZmZXJlbnQgYWN0b3IuIFNlZSBtYXZvZ2VsL212Yy1wcm9qZW4jNzQuXG4gICAgICAgIGFsbG93ZWRVc2VybmFtZXM6IFtcbiAgICAgICAgICAnZGVwZW5kYWJvdCcsXG4gICAgICAgICAgJ2RlcGVuZGFib3RbYm90XScsXG4gICAgICAgICAgJ2dpdGh1Yi1ib3QnLFxuICAgICAgICAgICdnaXRodWItYWN0aW9uc1tib3RdJyxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gVGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGhhcyB0aGUgR2l0SHViIFBBVCBmb3IgYXV0by1hcHByb3ZpbmcgUFJzIHdpdGggcGVybWlzc2lvbnMgcmVwbywgd29ya2Zsb3csIHdyaXRlOnBhY2thZ2VzXG4gICAgICAgIC8vIEdlbmVyYXRlIGEgbmV3IFBBVCAoaHR0cHM6Ly9naXRodWIuY29tL3NldHRpbmdzL3Rva2Vucy9uZXcpIGFuZCBhZGQgaXQgdG8geW91ciByZXBvJ3Mgc2VjcmV0c1xuICAgICAgICAvLyBOT1RFOiBjb21lcyBmcm9tIE1WLUNvbnN1bHRpbmcgT3JnXG4gICAgICAgIHNlY3JldDogJ1BST0pFTl9HSVRIVUJfVE9LRU4nLFxuICAgICAgfSxcbiAgICAgIGRlcGVuZGFib3Q6IHRydWUsXG4gICAgICBkZXBlbmRhYm90T3B0aW9uczoge1xuICAgICAgICBzY2hlZHVsZUludGVydmFsOiBEZXBlbmRhYm90U2NoZWR1bGVJbnRlcnZhbC5XRUVLTFksXG4gICAgICAgIGxhYmVsczogWydkZXBlbmRlbmNpZXMnLCAnYXV0by1hcHByb3ZlJ10sXG4gICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIHBhdHRlcm5zOiBbJyonXSxcbiAgICAgICAgICAgIGV4Y2x1ZGVQYXR0ZXJuczogWydhd3MtY2RrKicsICdwcm9qZW4nXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpZ25vcmU6IFt7IGRlcGVuZGVuY3lOYW1lOiAnYXdzLWNkay1saWInIH0sIHsgZGVwZW5kZW5jeU5hbWU6ICdhd3MtY2RrJyB9XSxcbiAgICAgICAgLy8geml6bW9yJ3MgZGVwZW5kYWJvdC1jb29sZG93biBhdWRpdCBmbGFncyBhIGRlZmF1bHQgY29vbGRvd24gdW5kZXJcbiAgICAgICAgLy8gNyBkYXlzIGFzIGluc3VmZmljaWVudCB0aW1lIHRvIGNhdGNoIGEgY29tcHJvbWlzZWQgcmVsZWFzZS5cbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLnppem1vci5zaC9hdWRpdHMvI2RlcGVuZGFib3QtY29vbGRvd25cbiAgICAgICAgY29vbGRvd246IHtcbiAgICAgICAgICBkZWZhdWx0RGF5czogNyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Byb2plbi9wcm9qZW4vZGlzY3Vzc2lvbnMvNDA0MCNkaXNjdXNzaW9uY29tbWVudC0xMTkwNTYyOFxuICAgICAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLm9mVHlwZShbXG4gICAgICAgICdmZWF0JyxcbiAgICAgICAgJ2ZpeCcsXG4gICAgICAgICdjaG9yZScsXG4gICAgICAgICdyZWZhY3RvcicsXG4gICAgICAgICdwZXJmJyxcbiAgICAgIF0pLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgc2VtYW50aWNUaXRsZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8vIHNlZSBjb21taXQgdHlwZXMgaGVyZTogaHR0cHM6Ly93d3cuY29udmVudGlvbmFsY29tbWl0cy5vcmcvZW4vdjEuMC4wLyNzdW1tYXJ5XG4gICAgICAgICAgICB0eXBlczogW1xuICAgICAgICAgICAgICAnZmVhdCcsXG4gICAgICAgICAgICAgICdmaXgnLFxuICAgICAgICAgICAgICAnY2hvcmUnLFxuICAgICAgICAgICAgICAncmVmYWN0b3InLFxuICAgICAgICAgICAgICAncGVyZicsXG4gICAgICAgICAgICAgICdkb2NzJyxcbiAgICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICAgJ3Rlc3QnLFxuICAgICAgICAgICAgICAnYnVpbGQnLFxuICAgICAgICAgICAgICAnY2knLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZlcnNpb25yY09wdGlvbnM6IHtcbiAgICAgICAgdHlwZXM6IFtcbiAgICAgICAgICB7IHR5cGU6ICdmZWF0Jywgc2VjdGlvbjogJ0ZlYXR1cmVzJyB9LFxuICAgICAgICAgIHsgdHlwZTogJ2ZpeCcsIHNlY3Rpb246ICdCdWcgRml4ZXMnIH0sXG4gICAgICAgICAgeyB0eXBlOiAnY2hvcmUnLCBzZWN0aW9uOiAnQ2hvcmVzJyB9LFxuICAgICAgICAgIHsgdHlwZTogJ2RvY3MnLCBzZWN0aW9uOiAnRG9jcycgfSxcbiAgICAgICAgICB7IHR5cGU6ICdzdHlsZScsIGhpZGRlbjogdHJ1ZSB9LFxuICAgICAgICAgIHsgdHlwZTogJ3JlZmFjdG9yJywgaGlkZGVuOiB0cnVlIH0sXG4gICAgICAgICAgeyB0eXBlOiAncGVyZicsIHNlY3Rpb246ICdQZXJmb3JtYW5jZScgfSxcbiAgICAgICAgICB7IHR5cGU6ICd0ZXN0JywgaGlkZGVuOiB0cnVlIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgZXNsaW50T3B0aW9uczoge1xuICAgICAgICBwcmV0dGllcjogZmFsc2UsXG4gICAgICAgIGRpcnM6IFsnc3JjJ10sXG4gICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbJyoqLyotZnVuY3Rpb24udHMnLCAnZXhhbXBsZXMvJ10sXG4gICAgICB9LFxuICAgICAgLy8gZXhwZXJpbWVudGFsSW50ZWdSdW5uZXI6IHRydWUsXG4gICAgICAvLyBtYW51YWwgaW50ZWcgdGVzdCBzZXR1cFxuICAgICAgdHNjb25maWdEZXY6IHtcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgdHlwZXM6IFsnbm9kZScsICdqZXN0J10sXG4gICAgICAgIH0sXG4gICAgICAgIGluY2x1ZGU6IFsnaW50ZWctdGVzdHMvKiovKi50cyddLFxuICAgICAgfSxcbiAgICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50czogW2ZzLnJlYWRGaWxlU3luYyhgJHtiYXNlQXNzZXRzRGlyZWN0b3J5fS9jb21tb24vZ2l0aHViX3B1bGxfcmVxdWVzdC5tZGApLnRvU3RyaW5nKCldLFxuICAgICAgLy8gTk9URTogaXNzdWUgdGVtcGxhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL3B1bGwvMzY0OFxuICAgICAgLy8gaXNzdWVUZW1wbGF0ZXM6IHt9XG4gICAgICByZWFkbWU6IHtcbiAgICAgICAgY29udGVudHM6IFtcbiAgICAgICAgICBgXG4hW1NvdXJjZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvc3RhcnMvTVYtQ29uc3VsdGluZy8ke29wdGlvbnMubmFtZX0/bG9nbz1naXRodWImbGFiZWw9R2l0SHViJTIwU3RhcnMpXG5bIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9NVi1Db25zdWx0aW5nLyR7b3B0aW9ucy5uYW1lfS9hY3Rpb25zL3dvcmtmbG93cy9idWlsZC55bWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL01WLUNvbnN1bHRpbmcvJHtvcHRpb25zLm5hbWV9L2FjdGlvbnMvd29ya2Zsb3dzL2J1aWxkLnltbClcblshW0VTTGludCBDb2RlIEZvcm1hdHRpbmddKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZV9zdHlsZS1lc2xpbnQtYnJpZ2h0Z3JlZW4uc3ZnKV0oaHR0cHM6Ly9lc2xpbnQub3JnKVxuWyFbTGF0ZXN0IHJlbGVhc2VdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3JlbGVhc2UvTVYtQ29uc3VsdGluZy8ke29wdGlvbnMubmFtZX0uc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL01WLUNvbnN1bHRpbmcvJHtvcHRpb25zLm5hbWV9L3JlbGVhc2VzKVxuIVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvTVYtQ29uc3VsdGluZy8ke29wdGlvbnMubmFtZX0pXG5bIVtucG1dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vbnBtL2R0L0BtYXZvZ2VsLyR7b3B0aW9ucy5uYW1lfT9sYWJlbD1ucG0mY29sb3I9b3JhbmdlKV0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvQG1hdm9nZWwvJHtvcHRpb25zLm5hbWV9KVxuWyFbdHlwZXNjcmlwdF0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9qc2lpLXR5cGVzY3JpcHQtYmx1ZXZpb2xldC5zdmcpXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9AbWF2b2dlbC8ke29wdGlvbnMubmFtZX0pXG4gICAgICAgICAgYCxcbiAgICAgICAgICBgIyAke29wdGlvbnMubmFtZX1gLFxuICAgICAgICAgICdNeSBhd2Vzb21lIGRlc2NyaXB0aW9uLi4uJyxcbiAgICAgICAgICBgXG4jIyBUYWJsZSBvZiBDb250ZW50c1xuXG4tIFtGZWF0dXJlc10oI2ZlYXR1cmVzKVxuLSBbVXNhZ2VdKCN1c2FnZSlcbi0gW1NvbHV0aW9uIERlc2lnbl0oI3NvbHV0aW9uLWRlc2lnbilcbi0gW0luc3BpcmF0aW9uXSgjaW5zcGlyYXRpb24pXG5cbiMjIEZlYXR1cmVzXG5cbi0g4pqhICoqUXVpY2sgU2V0dXAqKjogVEJEXG4tIPCfk48gKipCZXN0IFByYWN0aWNlIFNldHVwKio6IFRCRFxuLSDwn6S54oCN4pmC77iPICoqUHJlLWluc3RhbGxlZCBwYWNrYWdlcyoqOiBUQkRcbi0g8J+Pl++4jyAqKkV4dGVuc2liaWxpdHkqKjogVEJEXG5cbiMjIFVzYWdlXG5UaGUgZm9sbG93aW5nIHN0ZXBzIGdldCB5b3Ugc3RhcnRlZDpcblxuMS4gQ3JlYXRlIGEgbmV3IFxcYGF3c2Nkay1hcHBcXGAgdmlhXG5cXGBcXGBcXGBiYXNoXG5ucHggcHJvamVuIG5ldyBhd3NjZGstYXBwLXRzIC0tY2RrVmVyc2lvbj0yLjI2MS4wIC0tcGFja2FnZS1tYW5hZ2VyPW5wbVxuXFxgXFxgXFxgXG4zLiBBZGQgXFxgQG1hdm9nZWwvJHtvcHRpb25zLm5hbWV9XFxgIGFzIGEgZGVwZW5kZW5jeSB0byB5b3VyIHByb2plY3QgaW4gdGhlIFxcYC5wcm9qZW5yYy50c1xcYCBmaWxlXG40LiBSdW4gXFxgbnB4IHByb2plblxcYCB0byBpbnN0YWxsIGl0XG41LiBBZGQgdGhlIGZvbGxvd2luZyB0byB0aGUgXFxgc3JjL21haW4udHNcXGAgZmlsZTpcblxcYFxcYFxcYHRzXG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlciB9IGZyb20gJ0BtYXZvZ2VsLyR7b3B0aW9ucy5uYW1lfSc7XG5cbmV4cG9ydCBjbGFzcyBNeVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhY2tQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBuZXcgUGxhY2Vob2xkZXIodGhpcywgJ3BsYWNlaG9sZGVyJywge1xuICAgICAgLy8gYW5kIG1vcmUuLi4g8J+SoVxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IGVudiA9IHtcbiAgYWNjb3VudDogJzEyMzQ1Njc4OTkxMicsXG4gIHJlZ2lvbjogJ2V1LWNlbnRyYWwtMScsXG59O1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5uZXcgTXlTdGFjayhhcHAsICdwbGFjZWhvbGRlcicsIHsgZW52IH0pO1xuYXBwLnN5bnRoKCk7XG5cXGBcXGBcXGBcblxuYW5kIGRlcGxveSBpdFxuXFxgXFxgXFxgYmFzaFxubnB4IHByb2plbiBidWlsZFxubnB4IHByb2plbiBkZXBsb3lcblxcYFxcYFxcYFxuXG53aXRoIHRoZSBvdXRwdXRcblxcYFxcYFxcYGNvbnNvbGVcblRCRFxuXFxgXFxgXFxgXG5cblNlZSB0aGUgW2V4YW1wbGVzXSguL2V4YW1wbGVzKSBmb2xkZXIgZm9yIG1vcmUgaW5zcGlyYXRpb24uXG5cbiMjIFNvbHV0aW9uIERlc2lnblxuXG48ZGV0YWlscz5cbiAgPHN1bW1hcnk+Li4uIGlmIHlvdSdyZSBjdXJpb3VzIGFib3V0IGNsaWNrIGhlcmUgZm9yIHRoZSBkZXRhaWxzPC9zdW1tYXJ5PlxuXG4hW3BsYWNlaG9sZGVyXShkb2NzL2ltZy9wbGFjZWhvbGRlci5kcmF3aW8tbWluLnBuZylcblxuPC9kZXRhaWxzPlxuXG4jIyBJbnNwaXJhdGlvblxuXG5hZGQgdG9vbHMgb3IgbGlua3Mgd2hpY2ggaW5zcGlyZWQgeW91XG4gICAgICAgICAgYCxcbiAgICAgICAgICBmcy5yZWFkRmlsZVN5bmMoYCR7YmFzZUFzc2V0c0RpcmVjdG9yeX0vY29tbW9uL2dpdGh1Yl9yZWFkbWVfY3RhLm1kYCkudG9TdHJpbmcoKSxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgICAvLyBOT1RFOiBrZWVwIGFsbCB0aGUgcGFzc2VkIGluIG9wdGlvbnMgd2hpY2ggY2FuIG92ZXJyaWRlIHRoZSBleGlzdGluZyBvbmVzIVxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIGFwcGxpZWQgYWZ0ZXIgLi4ub3B0aW9ucyBzbyB0aGUgREVGQVVMVF9DREtfVkVSU0lPTiBmYWxsYmFjayBhYm92ZVxuICAgICAgLy8gYWx3YXlzIHdpbnMgb3ZlciBhbiB1bmRlZmluZWQgb3B0aW9ucy5jZGtWZXJzaW9uXG4gICAgICBjZGtWZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgLy8gVHlwZVNjcmlwdCA2IG5vIGxvbmdlciBhdXRvLWRpc2NvdmVycyBAdHlwZXMvKiBwYWNrYWdlc1xuICAgIHRoaXMudHNjb25maWdEZXYuZmlsZS5hZGRPdmVycmlkZSgnY29tcGlsZXJPcHRpb25zLnR5cGVzJywgWydub2RlJywgJ2plc3QnXSk7XG4gICAgdGhpcy50c2NvbmZpZz8uZmlsZS5hZGRPdmVycmlkZSgnY29tcGlsZXJPcHRpb25zLnR5cGVzJywgWydub2RlJ10pO1xuXG4gICAgLy8gcHJvamVuJ3MgQXV0b01lcmdlIGNvbXBvbmVudCBoYXJkY29kZXMgYGRlbGV0ZV9oZWFkX2JyYW5jaDoge31gIGluIHRoZVxuICAgIC8vIG1lcmdpZnkgcnVsZSB3aXRoIG5vIG9wdGlvbiB0byBkaXNhYmxlIGl0LiBTdHJpcCBpdCBzbyBNZXJnaWZ5IGRvZXMgbm90XG4gICAgLy8gZGVsZXRlIGhlYWQgYnJhbmNoZXMgb24gbWVyZ2UgKHJlbm92YXRlL2RlcGVuZGFib3QgbWFuYWdlIHRoZWlyIG93bikuXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NVi1Db25zdWx0aW5nL2Nkay12c2NvZGUtc2VydmVyL3B1bGwvMTEyXG4gICAgdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgnLm1lcmdpZnkueW1sJyk/LmFkZERlbGV0aW9uT3ZlcnJpZGUoXG4gICAgICAncHVsbF9yZXF1ZXN0X3J1bGVzLjAuYWN0aW9ucy5kZWxldGVfaGVhZF9icmFuY2gnLFxuICAgICk7XG5cbiAgICAvLyBBdXRvLWFwcHJvdmUgUFJzIGF1dGhvcmVkIGJ5ICdtdmMtYm90JyBpdHNlbGYgKHNlZSB0aGVcbiAgICAvLyBhdXRvQXBwcm92ZU9wdGlvbnMgY29tbWVudCBhYm92ZSBmb3Igd2h5IHRoaXMgY2FuJ3QgZ28gdGhyb3VnaCB0aGVcbiAgICAvLyBHaXRIdWIgQWN0aW9ucyBhdXRvLWFwcHJvdmUgcGF0aCkgdmlhIE1lcmdpZnkgaW5zdGVhZDogaXQgcG9zdHMgdGhlXG4gICAgLy8gcmV2aWV3IGFzIHRoZSBNZXJnaWZ5IGFwcCwgYSBkaWZmZXJlbnQgYWN0b3IuIFNlZSBtYXZvZ2VsL212Yy1wcm9qZW4jNzQuXG4gICAgdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgnLm1lcmdpZnkueW1sJyk/LmFkZE92ZXJyaWRlKFxuICAgICAgJ3B1bGxfcmVxdWVzdF9ydWxlcy4xJyxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0F1dG8tYXBwcm92ZSBzZWxmLWF1dGhvcmVkIG12Yy1ib3QgUFJzJyxcbiAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgICdhdXRob3I9bXZjLWJvdCcsXG4gICAgICAgICAgJ2xhYmVsPWF1dG8tYXBwcm92ZScsXG4gICAgICAgIF0sXG4gICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICByZXZpZXc6IHtcbiAgICAgICAgICAgIHR5cGU6ICdBUFBST1ZFJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdBdXRvbWF0aWNhbGx5IGFwcHJvdmVkOiBzZWxmLWF1dGhvcmVkIGF1dG9tYXRpb24gUFIuJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gZ2l0aWdub3JlXG4gICAgY29uc3QgZmlsZXNQYXR0ZXJuVG9HaXRpZ25vcmUgPSBbXG4gICAgICAndG1wJyxcbiAgICAgICcuY29kZWdwdCcsXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXNQYXR0ZXJuVG9HaXRpZ25vcmUpIHtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmV4Y2x1ZGUoZmlsZSk7XG4gICAgfVxuICAgIHRoaXMuYWRkRGVwcyhcbiAgICAgIC8vIGNkay1uYWcgdjMgcmVxdWlyZXMgYXdzLWNkay1saWIgPj0gMi4yNTcuMCAoc2VlIGNkay1uYWcgTUlHUkFUSU9OLm1kKVxuICAgICAgJ2Nkay1uYWdAXjMuMC4xJyxcbiAgICApO1xuICAgIC8vIENhcCBpbnRlZy1ydW5uZXIgYXQgTEFTVF9JTlRFR19SVU5ORVJfVkVSU0lPTiBzaW5jZSBpdCBzdG9wcGVkIHB1Ymxpc2hpbmcgYWZ0ZXIgdGhhdCB2ZXJzaW9uLlxuICAgIC8vIGludGVnLXJ1bm5lciB1c2VzIHBsYWluIHZlcnNpb25zIChubyAtYWxwaGEuMCBzdWZmaXgpLlxuICAgIC8vIGludGVnLXRlc3RzLWFscGhhIGFuZCBhd3NsaW50IG9ubHkgcHVibGlzaCBhdCBtaW5vciB2ZXJzaW9ucyAoZS5nLiAyLjE5Ny4wLWFscGhhLjAsIG5vdCAyLjE5Ny40LWFscGhhLjApLlxuICAgIGNvbnN0IHJhd0Nka1ZlcnNpb24gPSB0aGlzLmNka1ZlcnNpb24ucmVwbGFjZSgvW1xcXn5dLywgJycpO1xuICAgIGNvbnN0IGludGVnUnVubmVyVmVyc2lvbiA9IHJhd0Nka1ZlcnNpb24ubG9jYWxlQ29tcGFyZShMQVNUX0lOVEVHX1JVTk5FUl9WRVJTSU9OLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSwgc2Vuc2l0aXZpdHk6ICdiYXNlJyB9KSA+IDBcbiAgICAgID8gTEFTVF9JTlRFR19SVU5ORVJfVkVSU0lPTlxuICAgICAgOiByYXdDZGtWZXJzaW9uO1xuICAgIC8vIEFscGhhIHBhY2thZ2VzIG9ubHkgcHVibGlzaCBhdCAuMCBwYXRjaCB2ZXJzaW9ucyDigJQgbm9ybWFsaXplIHRvIG1pbm9yIHZlcnNpb25cbiAgICBjb25zdCBbbWFqb3IsIG1pbm9yXSA9IHJhd0Nka1ZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBjb25zdCBhbHBoYVZlcnNpb24gPSBgJHttYWpvcn0uJHttaW5vcn0uMGA7XG4gICAgdGhpcy5hZGREZXZEZXBzKFxuICAgICAgYEBhd3MtY2RrL2ludGVnLXJ1bm5lckAke2ludGVnUnVubmVyVmVyc2lvbn1gLFxuICAgICAgYEBhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhQCR7YWxwaGFWZXJzaW9ufS1hbHBoYS4wYCxcbiAgICAgICdAY29tbWl0bGludC9jbGlAXjIwLjEuMCcsXG4gICAgICAnQGNvbW1pdGxpbnQvY29uZmlnLWNvbnZlbnRpb25hbEBeMjAuMC4wJyxcbiAgICAgIGBhd3NsaW50QCR7YWxwaGFWZXJzaW9ufS1hbHBoYS4wYCxcbiAgICAgICdodXNreUBeOS4xLjcnLFxuICAgICk7XG5cbiAgICB0aGlzLnBhY2thZ2Uuc2V0U2NyaXB0KCdwcmVwYXJlJywgJ2h1c2t5Jyk7XG4gICAgbmV3IFRleHRGaWxlKHRoaXMsICcuY29tbWl0bGludHJjLmpzJywge1xuICAgICAgbGluZXM6IFtcbiAgICAgICAgJ21vZHVsZS5leHBvcnRzID0geyBleHRlbmRzOiBbXFwnQGNvbW1pdGxpbnQvY29uZmlnLWNvbnZlbnRpb25hbFxcJ10gfTsnLFxuICAgICAgXSxcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMucGFja2FnZS5zZXRTY3JpcHQoJ2F3c2xpbnQnLCAnYXdzbGludCcpO1xuICAgIC8vIC5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnltbFxuICAgIGNvbnN0IGJ1aWxkV29ya2Zsb3cgPSB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KCdidWlsZCcpO1xuICAgIGlmICghYnVpbGRXb3JrZmxvdykgcmV0dXJuO1xuICAgIGNvbnN0IGJ1aWxkSm9iID0gYnVpbGRXb3JrZmxvdy5nZXRKb2IoJ2J1aWxkJyk7XG4gICAgaWYgKCFidWlsZEpvYiB8fCAhKCdzdGVwcycgaW4gYnVpbGRKb2IpKSByZXR1cm47XG4gICAgLy8gVE9ETzogZmlndXJlIG91dCB3aHkgd3JvbmcgdHlwZXNcbiAgICBjb25zdCBnZXRCdWlsZFN0ZXBzID0gYnVpbGRKb2Iuc3RlcHMgYXMgdW5rbm93biBhcyAoKSA9PiBKb2JTdGVwW107XG4gICAgY29uc3QgYnVpbGRKb2JTdGVwcyA9IGdldEJ1aWxkU3RlcHMoKTtcbiAgICBidWlsZFdvcmtmbG93LnVwZGF0ZUpvYignYnVpbGQnLCB7XG4gICAgICAuLi5idWlsZEpvYixcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLmJ1aWxkSm9iU3RlcHMuc2xpY2UoMCwgNCksXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnUnVuIGF3c2xpbnQnLFxuICAgICAgICAgIHJ1bjogJ25wbSBydW4gYXdzbGludCcsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmJ1aWxkSm9iU3RlcHMuc2xpY2UoNCksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gUGluIEdpdEh1YiBBY3Rpb25zIHRoYXQgcHJvamVuIG90aGVyd2lzZSByZWZlcmVuY2VzIGJ5IGEgbXV0YWJsZSB0YWcsXG4gICAgLy8gYW5kIHN0b3AgY2hlY2tvdXQgc3RlcHMgdGhhdCBuZXZlciBwdXNoIGJhY2sgd2l0aCBpdCBmcm9tIHBlcnNpc3RpbmcgYVxuICAgIC8vIGdpdCBjcmVkZW50aWFsIG9uIHRoZSBydW5uZXIgLSBwZXIgeml6bW9yJ3MgdW5waW5uZWQtdXNlcyAvIGFydGlwYWNrZWRcbiAgICAvLyBhdWRpdHMgKGh0dHBzOi8vZG9jcy56aXptb3Iuc2gvYXVkaXRzLykuIENlbnRyYWxpemVkIGhlcmUgc28gZXZlcnlcbiAgICAvLyBwcm9qZWN0IGJ1aWx0IG9uIE12Y0Nka0NvbnN0cnVjdExpYnJhcnkgZ2V0cyBhIGNsZWFuIGB6aXptb3IgLmAgcnVuXG4gICAgLy8gd2l0aG91dCByZWltcGxlbWVudGluZyB0aGlzIGluIGl0cyBvd24gLnByb2plbnJjLnRzLlxuICAgIHRoaXMuZ2l0aHViPy5hY3Rpb25zLnNldCgnYWN0aW9ucy9zZXR1cC1ub2RlQHY3LjAuMCcsICdhY3Rpb25zL3NldHVwLW5vZGVAODIwNzYyNzg2MDI2NzQwYzc2ZjM2MDg1YjBlZmM0N2EzMWZlNTAyMCcpOyAvLyB2Ny4wLjBcbiAgICB0aGlzLmdpdGh1Yj8uYWN0aW9ucy5zZXQoJ2FjdGlvbnMvc2V0dXAtcHl0aG9uQHY3LjAuMCcsICdhY3Rpb25zL3NldHVwLXB5dGhvbkA1ZmRhM2I5NWE0ZWE5MTI5OWEzNGU4OTQ1ODNjMzg2MjE1M2U0Yjk3Jyk7IC8vIHY3LjAuMFxuICAgIHRoaXMuZ2l0aHViPy5hY3Rpb25zLnNldCgncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEB2OC4xLjEnLCAncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEA1ZjY5NzhmYWYwODlkNGQyMGIwMGM3NzY2OTg5ZDA3NmJiMmZjN2YxJyk7IC8vIHY4LjEuMVxuXG4gICAgY29uc3QgZGlzYWJsZUNoZWNrb3V0Q3JlZGVudGlhbFBlcnNpc3RlbmNlID0gKHdvcmtmbG93TmFtZTogc3RyaW5nLCBqb2JJZHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICBjb25zdCB3b3JrZmxvdyA9IHRoaXMuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgICAgIGlmICghd29ya2Zsb3cpIHJldHVybjtcbiAgICAgIGZvciAoY29uc3Qgam9iSWQgb2Ygam9iSWRzKSB7XG4gICAgICAgIGNvbnN0IGpvYiA9IHdvcmtmbG93LmdldEpvYihqb2JJZCk7XG4gICAgICAgIGlmICgham9iIHx8ICEoJ3N0ZXBzJyBpbiBqb2IpKSBjb250aW51ZTtcbiAgICAgICAgLy8gYGpvYi5zdGVwc2AgaXMgYSBib3VuZCBhY2Nlc3NvciBmdW5jdGlvbiB1bnRpbCBhIGpvYidzIGZpcnN0XG4gICAgICAgIC8vIGB1cGRhdGVKb2IoKWAgY2FsbCwgYWZ0ZXIgd2hpY2ggaXQgYmVjb21lcyBhIHBsYWluIGFycmF5IChzZWUgdGhlXG4gICAgICAgIC8vIFwiVE9ETzogZmlndXJlIG91dCB3aHkgd3JvbmcgdHlwZXNcIiBjb21tZW50IG9uIHRoZSBidWlsZC55bWwgcGF0Y2hcbiAgICAgICAgLy8gYWJvdmUpIC0gc28gcmVzb2x2ZSBpdCBkZWZlbnNpdmVseSByYXRoZXIgdGhhbiBhc3N1bWluZyBlaXRoZXIgc2hhcGUuXG4gICAgICAgIGNvbnN0IHJhd1N0ZXBzID0gam9iLnN0ZXBzIGFzIHVua25vd24gYXMgSm9iU3RlcFtdIHwgKCgpID0+IEpvYlN0ZXBbXSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwcyA9IHR5cGVvZiByYXdTdGVwcyA9PT0gJ2Z1bmN0aW9uJyA/IHJhd1N0ZXBzKCkgOiByYXdTdGVwcztcbiAgICAgICAgd29ya2Zsb3cudXBkYXRlSm9iKGpvYklkLCB7XG4gICAgICAgICAgLi4uam9iLFxuICAgICAgICAgIHN0ZXBzOiBjdXJyZW50U3RlcHMubWFwKChzdGVwKSA9PlxuICAgICAgICAgICAgc3RlcC5pZCA9PT0gJ2NoZWNrb3V0J1xuICAgICAgICAgICAgICA/IHsgLi4uc3RlcCwgd2l0aDogeyAuLi5zdGVwLndpdGgsICdwZXJzaXN0LWNyZWRlbnRpYWxzJzogZmFsc2UgfSB9XG4gICAgICAgICAgICAgIDogc3RlcCxcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIC8vIEV4Y2x1ZGVzIGJ1aWxkLnltbCdzIGBzZWxmLW11dGF0aW9uYCBqb2IsIHdoaWNoIHJlbGllcyBvbiB0aGVcbiAgICAvLyBwZXJzaXN0ZWQgY3JlZGVudGlhbCB0byBgZ2l0IHB1c2hgIGl0cyBwYXRjaCBiYWNrIHRvIHRoZSBQUiBicmFuY2guXG4gICAgZGlzYWJsZUNoZWNrb3V0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKCdidWlsZCcsIFsnYnVpbGQnLCAncGFja2FnZS1qcycsICdwYWNrYWdlLXB5dGhvbiddKTtcbiAgICBkaXNhYmxlQ2hlY2tvdXRDcmVkZW50aWFsUGVyc2lzdGVuY2UoJ3VwZ3JhZGUtbWFpbicsIFsndXBncmFkZScsICdwciddKTtcblxuICAgIC8vIFRoZSByZWxlYXNlIHdvcmtmbG93J3MgYHJlbGVhc2VfbnBtYC9gcmVsZWFzZV9weXBpYCBqb2JzIGFyZSBvbmx5XG4gICAgLy8gYWRkZWQgYnkgdGhlIGBSZWxlYXNlYCBjb21wb25lbnQncyBvd24gYHByZVN5bnRoZXNpemUoKWAsIHdoaWNoIHJ1bnNcbiAgICAvLyBkdXJpbmcgYHByb2plY3Quc3ludGgoKWAgLSBhZnRlciB0aGlzIGNvbnN0cnVjdG9yIHJldHVybnMuIFBhdGNoIHRoZW1cbiAgICAvLyBmcm9tIGEgY29tcG9uZW50IGFkZGVkIGFmdGVyd2FyZHMsIHNvIGl0cyBgcHJlU3ludGhlc2l6ZSgpYCBydW5zIGxhdGVyXG4gICAgLy8gc3RpbGwgKGNvbXBvbmVudCBwcmVTeW50aGVzaXplIG9yZGVyIGZvbGxvd3MgY29uc3RydWN0aW9uIG9yZGVyKS5cbiAgICBjbGFzcyBSZWxlYXNlV29ya2Zsb3dDcmVkZW50aWFsUGF0Y2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICAgICAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICAgICAgZGlzYWJsZUNoZWNrb3V0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKCdyZWxlYXNlJywgWydyZWxlYXNlJywgJ3JlbGVhc2VfbnBtJywgJ3JlbGVhc2VfcHlwaSddKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbmV3IFJlbGVhc2VXb3JrZmxvd0NyZWRlbnRpYWxQYXRjaCh0aGlzKTtcblxuICAgIHRoaXMucGFja2FnZS5zZXRTY3JpcHQoXG4gICAgICAnaW50ZWctdGVzdCcsXG4gICAgICBgaW50ZWctcnVubmVyIC0tZGlyZWN0b3J5IC4vaW50ZWctdGVzdHMgJHtpbnRlZ1Rlc3RSZWdpb25zPy5tYXAocmVnaW9uID0+IGAtLXBhcmFsbGVsLXJlZ2lvbnMgJHtyZWdpb259YCkuam9pbignICcpfSAtLXVwZGF0ZS1vbi1mYWlsZWRgLFxuICAgICk7XG5cbiAgICBuZXcgVGV4dEZpbGUodGhpcywgJy5naXRodWIvSVNTVUVfVEVNUExBVEUvYnVnX3JlcG9ydC5tZCcsIHtcbiAgICAgIGxpbmVzOiBbZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2NvbW1vbi9naXRodWJfYnVnX3JlcG9ydC5tZGApLnRvU3RyaW5nKCldLFxuICAgIH0pO1xuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsICcuZ2l0aHViL0lTU1VFX1RFTVBMQVRFL2ZlYXR1cmVfcmVxdWVzdC5tZCcsIHtcbiAgICAgIGxpbmVzOiBbZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2NvbW1vbi9naXRodWJfZmVhdHVyZV9yZXF1ZXN0Lm1kYCkudG9TdHJpbmcoKV0sXG4gICAgfSk7XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcywgJy5naXRodWIvRlVORElORy55YW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIGdpdGh1YjogJ21hdm9nZWwnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIHppem1vcidzIGRhbmdlcm91cy10cmlnZ2VycyBhdWRpdCBmbGFncyBhbnkgcHVsbF9yZXF1ZXN0X3RhcmdldFxuICAgIC8vIHRyaWdnZXIuIEJvdGggd29ya2Zsb3dzIGJlbG93IChnZW5lcmF0ZWQgaWRlbnRpY2FsbHkgZm9yIGV2ZXJ5XG4gICAgLy8gTXZjQ2RrQ29uc3RydWN0TGlicmFyeSBjb25zdW1lciB2aWEgYXV0b0FwcHJvdmVPcHRpb25zIC9cbiAgICAvLyBwdWxsUmVxdWVzdExpbnRPcHRpb25zKSBhcmUgc2FmZTogdGhleSBvbmx5IGluc3BlY3QgUFIgbWV0YWRhdGEgKGxhYmVsLFxuICAgIC8vIGFjdG9yLCB0aXRsZSkgYW5kIG5ldmVyIGNoZWNrIG91dCBvciBleGVjdXRlIFBSIGNvZGUuXG4gICAgLy8gaHR0cHM6Ly9kb2NzLnppem1vci5zaC9hdWRpdHMvI2Rhbmdlcm91cy10cmlnZ2Vyc1xuICAgIG5ldyBZYW1sRmlsZSh0aGlzLCAnLmdpdGh1Yi96aXptb3IueW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIHJ1bGVzOiB7XG4gICAgICAgICAgJ2Rhbmdlcm91cy10cmlnZ2Vycyc6IHtcbiAgICAgICAgICAgIGlnbm9yZTogW1xuICAgICAgICAgICAgICAnYXV0by1hcHByb3ZlLnltbCcsXG4gICAgICAgICAgICAgICdwdWxsLXJlcXVlc3QtbGludC55bWwnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCAnQ09OVFJJQlVUSU5HLm1kJywge1xuICAgICAgbGluZXM6IFtmcy5yZWFkRmlsZVN5bmMoYCR7YmFzZUFzc2V0c0RpcmVjdG9yeX0vY29tbW9uL2NvbnRyaWJ1dGluZy5tZGApLnRvU3RyaW5nKCldLFxuICAgIH0pO1xuXG4gICAgbmV3IFRleHRGaWxlKHRoaXMsICcucHJldHRpZXJyYycsIHtcbiAgICAgIGxpbmVzOiBbZnMucmVhZEZpbGVTeW5jKGAke2Jhc2VBc3NldHNEaXJlY3Rvcnl9L2NvbW1vbi9wcmV0dGllcnJjYCkudG9TdHJpbmcoKV0sXG4gICAgfSk7XG5cbiAgICAvLyB3cml0ZSBzYW1wbGUgY29kZSB0byBtYWluLnRzICYgdG8gbWFpbi50ZXN0LnRzXG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlQ29kZSA/PyB0cnVlKSB7XG4gICAgICBuZXcgU2FtcGxlQ29kZSh0aGlzLCB7XG4gICAgICAgIGJhc2VBc3NldHNEaXJlY3RvcnksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuaW50ZXJmYWNlIFNhbXBsZUNvZGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgYmFzZUFzc2V0c0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuY2xhc3MgU2FtcGxlQ29kZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGlicmFyeTogQXdzQ2RrQ29uc3RydWN0TGlicmFyeTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBTYW1wbGVDb2RlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsaWJyYXJ5OiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5LFxuICAgIG9wdGlvbnM6IFNhbXBsZUNvZGVPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihsaWJyYXJ5KTtcbiAgICB0aGlzLmxpYnJhcnkgPSBsaWJyYXJ5O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZSgpIHtcbiAgICBjb25zdCBvdXRkaXIgPSB0aGlzLnByb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IHNyY2RpciA9IHBhdGguam9pbihvdXRkaXIsIHRoaXMubGlicmFyeS5zcmNkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmMoYCR7c3JjZGlyfS9pbmRleC50c2ApICYmXG4gICAgICAhZnMucmVhZEZpbGVTeW5jKGAke3NyY2Rpcn0vaW5kZXgudHNgKS50b1N0cmluZygpLmluY2x1ZGVzKCdleHBvcnQgY2xhc3MgSGVsbG8nKSAvLyBOb3RlOiBmcm9tIHBhcmVudFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZzLm1rZGlyU3luYyhzcmNkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHNyY2RpciwgJ2luZGV4LnRzJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY2RrLWNvbnN0cnVjdC9zcmNfaW5kZXgudHNgKS50b1N0cmluZygpKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihzcmNkaXIsICdwbGFjZWhvbGRlci50cycpLCBmcy5yZWFkRmlsZVN5bmMoYCR7dGhpcy5vcHRpb25zLmJhc2VBc3NldHNEaXJlY3Rvcnl9L2Nkay1jb25zdHJ1Y3Qvc3JjX3BsYWNlaG9sZGVyLnRzYCkudG9TdHJpbmcoKSk7XG4gICAgLy8gY3JkIHdpdGggbGFtYmRhIGdlbmVyYXRpb25cbiAgICAvLyBOb3RlOiBjcmQtZXhhbXBsZS5sYW1iZGEudHMgaXMgd3JpdHRlbiBlYXJsaWVyLCBiZWZvcmUgYHN1cGVyKClgLCBzb1xuICAgIC8vIEF1dG9EaXNjb3ZlcidzIGNvbnN0cnVjdG9yLXRpbWUgZ2xvYiBjYW4gZmluZCBpdCAtIHNlZSB0aGUgY29tbWVudCBpblxuICAgIC8vIHRoZSBjb25zdHJ1Y3RvciBhYm92ZS5cbiAgICBmcy5ta2RpclN5bmMoYCR7c3JjZGlyfS9jcmQtZXhhbXBsZWAsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGAke3NyY2Rpcn0vY3JkLWV4YW1wbGVgLCAnY3JkLWV4YW1wbGUudHMnKSwgZnMucmVhZEZpbGVTeW5jKGAke3RoaXMub3B0aW9ucy5iYXNlQXNzZXRzRGlyZWN0b3J5fS9jZGstY29uc3RydWN0L3NyY19jcmQtZXhhbXBsZS50c2ApLnRvU3RyaW5nKCkpO1xuXG5cbiAgICBjb25zdCB0ZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgdGhpcy5saWJyYXJ5LnRlc3RkaXIpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmModGVzdGRpcikgJiZcbiAgICAgIGZzLnJlYWRkaXJTeW5jKHRlc3RkaXIpLmZpbHRlcigoeCkgPT4geC5lbmRzV2l0aCgnLnRzJykpICYmXG4gICAgICAhZnMuZXhpc3RzU3luYyhgJHt0ZXN0ZGlyfS9oZWxsby50ZXN0LnRzYCkgLy8gTm90ZTogZnJvbSBwYXJlbnRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gcmVtb3ZlICR7dGVzdGRpcn0vaGVsbG8udGVzdC50cyBmaWxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2Ugb3ZlcnJpZGUgaW5kZXgudHNcbiAgICBmcy51bmxpbmtTeW5jKGAke3Rlc3RkaXJ9L2hlbGxvLnRlc3QudHNgKTtcbiAgICBmcy5ta2RpclN5bmModGVzdGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4odGVzdGRpciwgJ2luZGV4LnRlc3QudHMnKSwgZnMucmVhZEZpbGVTeW5jKGAke3RoaXMub3B0aW9ucy5iYXNlQXNzZXRzRGlyZWN0b3J5fS9jZGstY29uc3RydWN0L3Rlc3RfaW5kZXgudGVzdC50c2ApLnRvU3RyaW5nKCkpO1xuICAgIC8vIGxhbWJkYSB0ZXN0cyB3aXRoIGplc3Qgc3R1YnNcbiAgICBmcy5ta2RpclN5bmMoYCR7dGVzdGRpcn0vY3JkLWV4YW1wbGVgLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihgJHt0ZXN0ZGlyfS9jcmQtZXhhbXBsZWAsICdjcmQtZXhhbXBsZS50ZXN0LnRzJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY2RrLWNvbnN0cnVjdC90ZXN0X2NyZC1leGFtcGxlLnRlc3QudHNgKS50b1N0cmluZygpKTtcblxuXG4gICAgY29uc3QgaW50ZWdUZXN0ZGlyID0gcGF0aC5qb2luKG91dGRpciwgJ2ludGVnLXRlc3RzJyk7XG4gICAgaWYgKFxuICAgICAgZnMuZXhpc3RzU3luYyhpbnRlZ1Rlc3RkaXIpICYmXG4gICAgICBmcy5yZWFkZGlyU3luYyhpbnRlZ1Rlc3RkaXIpLmZpbHRlcigoeCkgPT4geC5lbmRzV2l0aCgnLnRzJykpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZzLm1rZGlyU3luYyhpbnRlZ1Rlc3RkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGludGVnVGVzdGRpciwgJ2ludGVnLnBsYWNlaG9sZGVyLnRzJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY2RrLWNvbnN0cnVjdC9pbnRlZ19pbnRlZy5wbGFjZWhvbGRlci50c2ApLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgaW50ZWdUZXN0RnVuY3Rpb25zZGlyID0gcGF0aC5qb2luKGludGVnVGVzdGRpciwgJ2Z1bmN0aW9ucycpO1xuICAgIGlmIChcbiAgICAgIGZzLmV4aXN0c1N5bmMoaW50ZWdUZXN0RnVuY3Rpb25zZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoaW50ZWdUZXN0RnVuY3Rpb25zZGlyKS5maWx0ZXIoKHgpID0+IHguZW5kc1dpdGgoJy50cycpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmcy5ta2RpclN5bmMoaW50ZWdUZXN0RnVuY3Rpb25zZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihpbnRlZ1Rlc3RGdW5jdGlvbnNkaXIsICd0ZXN0LWhhbmRsZXIudHMnKSwgZnMucmVhZEZpbGVTeW5jKGAke3RoaXMub3B0aW9ucy5iYXNlQXNzZXRzRGlyZWN0b3J5fS9jZGstY29uc3RydWN0L2ludGVnX3Rlc3QtaGFuZGxlci50c2ApLnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgZG9jc2RpciA9IHBhdGguam9pbihvdXRkaXIsICdkb2NzJyk7XG4gICAgaWYgKFxuICAgICAgZnMuZXhpc3RzU3luYyhkb2NzZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoZG9jc2RpcikuZmlsdGVyKCh4KSA9PiB4LmVuZHNXaXRoKCcuZHJhd2lvJykpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZzLm1rZGlyU3luYyhkb2NzZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihkb2NzZGlyLCAncGxhY2Vob2xkZXIuZHJhd2lvJyksIGZzLnJlYWRGaWxlU3luYyhgJHt0aGlzLm9wdGlvbnMuYmFzZUFzc2V0c0RpcmVjdG9yeX0vY29tbW9uL2RvY3NfcGxhY2Vob2xkZXIuZHJhd2lvYCkudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCBleGFtcGxlc2RpciA9IHBhdGguam9pbihvdXRkaXIsICdleGFtcGxlcycsICdzaW1wbGUnKTtcbiAgICBpZiAoXG4gICAgICBmcy5leGlzdHNTeW5jKGV4YW1wbGVzZGlyKSAmJlxuICAgICAgZnMucmVhZGRpclN5bmMoZXhhbXBsZXNkaXIpLmZpbHRlcigoeCkgPT4geC5lbmRzV2l0aCgnLmRyYXdpbycpKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBmcy5ta2RpclN5bmMoZXhhbXBsZXNkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGV4YW1wbGVzZGlyLCAnbWFpbi50cycpLCBmcy5yZWFkRmlsZVN5bmMoYCR7dGhpcy5vcHRpb25zLmJhc2VBc3NldHNEaXJlY3Rvcnl9L2Nkay1jb25zdHJ1Y3QvZXhhbXBsZXNfc2ltcGxlX21haW4udHNgKS50b1N0cmluZygpKTtcbiAgfVxufSJdfQ==
|
|
@@ -13,7 +13,7 @@ import (
|
|
|
13
13
|
projen "github.com/projen/projen-go/projen/jsii"
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
//go:embed mavogel-mvc-projen-0.0.
|
|
16
|
+
//go:embed mavogel-mvc-projen-0.0.47.tgz
|
|
17
17
|
var tarball []byte
|
|
18
18
|
|
|
19
19
|
// Initialize loads the necessary packages in the @jsii/kernel to support the enclosing module.
|
|
@@ -24,5 +24,5 @@ func Initialize() {
|
|
|
24
24
|
projen.Initialize()
|
|
25
25
|
|
|
26
26
|
// Load this library into the kernel
|
|
27
|
-
_jsii_.Load("@mavogel/mvc-projen", "0.0.
|
|
27
|
+
_jsii_.Load("@mavogel/mvc-projen", "0.0.47", tarball)
|
|
28
28
|
}
|
package/mavogelmvcprojen/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.47
|