aws-delivlib 14.15.83 → 14.15.84
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/lib/auto-build.js +5 -6
- package/lib/chime-notifier/chime-notifier.js +2 -3
- package/lib/chime-notifier/handler/notifier-handler.js +6 -7
- package/lib/code-signing/code-signing-certificate.js +3 -5
- package/lib/package-integrity/handler/integrity.js +2 -3
- package/lib/package-integrity/handler/repository.js +3 -4
- package/lib/package-integrity/handler/validate.bundle.js +2 -3
- package/lib/package-integrity/handler/validate.js +2 -3
- package/lib/package-integrity/integrity.js +6 -7
- package/lib/pipeline-notifications/slack.js +2 -3
- package/lib/pipeline.js +18 -31
- package/lib/publishing.js +6 -10
- package/lib/pull-request/bump.js +9 -10
- package/lib/pull-request/merge-back.js +6 -7
- package/lib/pull-request/pr.js +8 -11
- package/lib/registry-sync/ecr-mirror.js +3 -5
- package/lib/registry-sync/mirror-source.js +3 -5
- package/lib/repo.js +2 -3
- package/lib/shellable.js +9 -12
- package/lib/signing.js +2 -3
- package/package.json +2 -2
package/lib/pull-request/pr.js
CHANGED
@@ -33,12 +33,11 @@ const permissions = __importStar(require("../permissions"));
|
|
33
33
|
*/
|
34
34
|
class AutoPullRequest extends constructs_1.Construct {
|
35
35
|
constructor(parent, id, props) {
|
36
|
-
var _a, _b, _c, _d, _e;
|
37
36
|
super(parent, id);
|
38
37
|
this.props = props;
|
39
|
-
this.baseBranch =
|
40
|
-
this.headSource =
|
41
|
-
this.exports =
|
38
|
+
this.baseBranch = props.base?.name ?? 'master';
|
39
|
+
this.headSource = props.head.source ?? this.baseBranch;
|
40
|
+
this.exports = props.exports ?? {};
|
42
41
|
for (const ex of Object.keys(this.exports)) {
|
43
42
|
if (this.headSource.includes(`\${${ex}}`) || this.headSource.includes(`\$${ex}`)) {
|
44
43
|
throw new Error(`head source (${this.headSource}) cannot contain dynamic exports: ${ex}`);
|
@@ -82,7 +81,7 @@ class AutoPullRequest extends constructs_1.Construct {
|
|
82
81
|
this.project = new aws_cdk_lib_1.aws_codebuild.Project(this, 'PullRequest', {
|
83
82
|
source: props.repo.createBuildSource(this, false, { cloneDepth }),
|
84
83
|
description: props.projectDescription,
|
85
|
-
environment: (0, build_env_1.createBuildEnvironment)(
|
84
|
+
environment: (0, build_env_1.createBuildEnvironment)(props.build ?? {}),
|
86
85
|
buildSpec: aws_cdk_lib_1.aws_codebuild.BuildSpec.fromObject({
|
87
86
|
version: '0.2',
|
88
87
|
phases: {
|
@@ -139,8 +138,7 @@ class AutoPullRequest extends constructs_1.Construct {
|
|
139
138
|
];
|
140
139
|
}
|
141
140
|
runCommands() {
|
142
|
-
|
143
|
-
const userCommands = (_a = this.props.commands) !== null && _a !== void 0 ? _a : [];
|
141
|
+
const userCommands = this.props.commands ?? [];
|
144
142
|
const exports = Object.entries(this.exports).map(entry => `export ${entry[0]}=$(${entry[1]})`);
|
145
143
|
return [
|
146
144
|
...userCommands,
|
@@ -185,15 +183,14 @@ class AutoPullRequest extends constructs_1.Construct {
|
|
185
183
|
];
|
186
184
|
}
|
187
185
|
createPullRequest() {
|
188
|
-
var _a, _b;
|
189
186
|
const head = this.props.head.name;
|
190
187
|
const base = this.baseBranch;
|
191
188
|
if (head === base) {
|
192
189
|
throw new Error(`Head branch ("${base}") is the same as the base branch ("${head}")`);
|
193
190
|
}
|
194
191
|
const props = this.props;
|
195
|
-
const title =
|
196
|
-
const body =
|
192
|
+
const title = props.title ?? `Merge ${head} to ${base}`;
|
193
|
+
const body = this.props.body ?? '';
|
197
194
|
const createRequest = { title, base, head };
|
198
195
|
const commands = [];
|
199
196
|
// create the PR
|
@@ -227,4 +224,4 @@ class AutoPullRequest extends constructs_1.Construct {
|
|
227
224
|
}
|
228
225
|
}
|
229
226
|
exports.AutoPullRequest = AutoPullRequest;
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQU9xQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNENBQTZFO0FBQzdFLDREQUE4QztBQTJMOUM7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFrQjVDLFlBQVksTUFBaUIsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBQ3BFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLE1BQUEsS0FBSyxDQUFDLElBQUksMENBQUUsSUFBSSxtQ0FBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxtQ0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxLQUFLLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUM7UUFFbkMsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2hGLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLHFDQUFxQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzNGO1NBQ0Y7UUFFRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENB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QU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQsZ0JBQWdCO1lBQ2QsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RztRQUVELE9BQU8sUUFBUSxDQUFDO0lBRWxCLENBQUM7SUFFTyxVQUFVLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxPQUFZO1FBQzNELE9BQU87WUFDTCxhQUFhO1lBQ2IsT0FBTztZQUNQLCtDQUErQztZQUMvQywyQ0FBMkM7WUFDM0MsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtZQUMvQyxnQ0FBZ0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7U0FDdEYsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVcsRUFBRSxPQUFlO1FBQ2hELE9BQU87WUFDTCxhQUFhO1lBQ2IsT0FBTztZQUNQLCtDQUErQztZQUMvQywyQ0FBMkM7WUFDM0MsMEJBQTBCLEdBQUcsR0FBRztTQUNqQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7Q0FFRjtBQTdRRCwwQ0E2UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEdXJhdGlvbixcbiAgYXdzX2Nsb3Vkd2F0Y2ggYXMgY2xvdWR3YXRjaCxcbiAgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQsXG4gIGF3c19ldmVudHMgYXMgZXZlbnRzLFxuICBhd3NfZXZlbnRzX3RhcmdldHMgYXMgZXZlbnRzX3RhcmdldHMsXG4gIGF3c19pYW0gYXMgaWFtLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnRQcm9wcywgY3JlYXRlQnVpbGRFbnZpcm9ubWVudCB9IGZyb20gJy4uL2J1aWxkLWVudic7XG5pbXBvcnQgKiBhcyBwZXJtaXNzaW9ucyBmcm9tICcuLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBKb2IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBicmFuY2ggb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgYmFzZT86IEJhc2U7XG5cbiAgLyoqXG4gICAqIFRydWUgaWYgeW91IG9ubHkgd2FudCB0byBwdXNoIHRoZSBoZWFkIGJyYW5jaCB3aXRob3V0IGNyZWF0aW5nIGEgUFIuXG4gICAqIFVzZWZ1bCB3aGVuIHVzZWQgYWxvbmcgd2l0aCAnY29tbWl0cycgdG8gZXhlY3V0ZSBhIGNvbW1pdC1hbmQtcHVzaCBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiAvLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIGEgc2VwYXJhdGUgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVzaE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9keSB0aGUgUFIuIE5vdGUgdGhhdCB0aGUgYm9keSBpcyB1cGRhdGVkIHBvc3QgUFIgY3JlYXRpb24sXG4gICAqIHRoaXMgbWVhbnMgeW91IGNhbiB1c2UgdGhlICRQUl9OVU1CRVIgZW52IHZhcmlhYmxlIHRvIHJlZmVyIHRvIHRoZSBQUiBpdHNlbGYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYm9keS5cbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhYmVscyBhcHBsaWVkIHRvIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsYWJlbHMuXG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoZSBDb2RlQnVpbGQgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGJ1aWxkPzogQnVpbGRFbnZpcm9ubWVudFByb3BzO1xuXG4gIC8qKlxuICAgKiBHaXQgY2xvbmUgZGVwdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IDAgKGNsb25lcyB0aGUgZW50aXJlIHJlcG9zaXRvcnkgcmV2aXNpb25zKVxuICAgKi9cbiAgY2xvbmVEZXB0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogS2V5IHZhbHVlIHBhaXJzIG9mIHZhcmlhYmxlcyB0byBleHBvcnQuIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZHluYW1pYyBldmFsdWF0aW9uIGluIGFueVxuICAgKiBzdWJzZXF1ZW50IGNvbW1hbmQuXG4gICAqXG4gICAqIEtleSAtIFZhcmlhYmxlIG5hbWUgKGUuZyBWRVJTSU9OKVxuICAgKiBWYWx1ZSAtIENvbW1hbmQgdGhhdCBldmFsdWF0ZXMgdG8gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSAoZS5nICdnaXQgZGVzY3JpYmUnKVxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiBDb25maWd1cmUgYW4gZXhwb3J0IGluIHRoZSBmb3JtIG9mOlxuICAgKlxuICAgKiB7ICdWRVJTSU9OJzogJ2dpdCBkZXNjcmliZScgfVxuICAgKlxuICAgKiBVc2UgdGhlICRWRVJTSU9OIHZhcmlhYmxlIGluIHRoZSBQUiB0aXRsZTogJ2Nob3JlKHJlbGVhc2UpOiAkVkVSU0lPTidcbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydHMgYXJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBgY29tbWFuZHNgIGV4ZWN1dGlvbixcbiAgICogc28gdGhleSBoYXZlIGFjY2VzcyB0byB0aGUgYXJ0aWZhY3RzIHNhaWQgY29tbWFuZHMgcHJvZHVjZSAoZS5nIHZlcnNpb24gYnVtcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhwb3J0c1xuICAgKi9cbiAgZXhwb3J0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlZHVsZSB0byBwcm9kdWNlIGFuIGF1dG9tYXRpYyBQUi5cbiAgICpcbiAgICogVGhlIGV4cHJlc3Npb24gY2FuIGJlIG9uZSBvZjpcbiAgICpcbiAgICogIC0gY3JvbiBleHByZXNzaW9uLCBzdWNoIGFzIFwiY3JvbigwIDEyICogKiA/ICopXCIgd2lsbCB0cmlnZ2VyIGV2ZXJ5IGRheSBhdCAxMnBtIFVUQ1xuICAgKiAgLSByYXRlIGV4cHJlc3Npb24sIHN1Y2ggYXMgXCJyYXRlKDEgZGF5KVwiIHdpbGwgdHJpZ2dlciBldmVyeSAyNCBob3VycyBmcm9tIHRoZSB0aW1lIG9mIGRlcGxveW1lbnRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2NoZWR1bGUsIHNob3VsZCBiZSB0cmlnZ2VyZWQgbWFudWFsbHkuXG4gICAqL1xuICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvUHVsbFJlcXVlc3RQcm9wcyBleHRlbmRzIEF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgUFIgaW4uXG4gICAqL1xuICByZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGNvbW1hbmRzIHRvIHJ1biBhZ2FpbnN0IHRoZSBoZWFkIGJyYW5jaC5cbiAgICogVXNlZnVsIGZvciB0aGluZ3MgbGlrZSB2ZXJzaW9uIGJ1bXBzIG9yIGFueSBhdXRvLWdlbmVyYXRlZCBjb21taXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbm5vdCB1c2UgZXhwb3J0IGtleXMgaW4gdGhlc2UgY29tbWFuZHMgKFNlZSBgZXhwb3J0c2AgcHJvcGVydHkpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHMuXG4gICAqL1xuICBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICAgKi9cbiAgaGVhZDogSGVhZDtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZSBvZiB0aGlzIGNvbW1hbmQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byBwcm9jZWVkIHdpdGggdGhlXG4gICAqIFBSIGNyZWF0aW9uLiBJZiBjb25maWd1cmVkLCB0aGlzIGNvbW1hbmQgaXMgdGhlIGZpcnN0IG9uZSB0byBydW4sIGFuZCBpZiBpdCBmYWlscywgYWxsXG4gICAqIG90aGVyIGNvbW1hbmRzIHdpbGwgYmUgc2tpcHBlZC5cbiAgICpcbiAgICogVGhpcyBjb21tYW5kIGlzIHRoZSBmaXJzdCB0byBleGVjdXRlLCBhbmQgc2hvdWxkIG5vdCBhc3N1bWUgYW55IHByZS1leGlzdGluZyBzdGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25kaXRpb25cbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYW55IFBSIGxhYmVsZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWxzIGlzIHN0aWxsIG9wZW4sIG5vIG5ldyBQUiB3aWxsIGJlIGNyZWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBsb29rIGF0IG9wZW4gUFJzXG4gICAqL1xuICByZWFkb25seSBza2lwSWZPcGVuUHJzV2l0aExhYmVscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBzdHJpbmcgZm9yIHRoZSBDb2RlQnVpbGQgcHJvamVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0RGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgdGhlIGJhc2UgYnJhbmNoIG9mIHRoZSBQUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlIHtcblxuICAvKipcbiAgICogQnJhbmNoIG5hbWUuXG4gICAqXG4gICAqIFRoaXMgYnJhbmNoIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYXN0ZXInXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgUFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZCB7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGJyYW5jaCB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBzaGEgb2YgdGhlIGJyYW5jaC5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBhbHJlYWR5IGV4aXN0cywgdGhpcyBzaGEgd2lsbCBiZSBhdXRvLW1lcmdlZCBvbnRvIGl0LiBOb3RlIHRoYXQgaW4gc3VjaCBhIGNhc2UsXG4gICAqIHRoZSBQUiBjcmVhdGlvbiBtaWdodCBmYWlsIGluIGNhc2UgdGhlcmUgYXJlIG1lcmdlIGNvbmZsaWN0cy5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBkb2Vzbid0IGV4aXN0LCB0aGUgbmV3bHkgY3JlYXRlZCBicmFuY2ggd2lsbCBiZSBiYXNlZCBvZiB0aGlzIGhhc2guXG4gICAqXG4gICAqIE5vdGUgdGhhdCBkeW5hbWljIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgcHIuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIENvZGVCdWlsZCBqb2IgdGhhdCwgd2hlbiB0cmlnZ2VyZWQsIG9wZW5zIGEgR2l0SHViIFB1bGwgUmVxdWVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9QdWxsUmVxdWVzdCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggYWxhcm0gdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBpZiB0aGUgam9iIGZhaWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtOiBjbG91ZHdhdGNoLkFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUJ1aWxkIHByb2plY3QgdGhpcyBjb25zdHJ1Y3QgY3JlYXRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuSVByb2plY3Q7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXV0b1B1bGxSZXF1ZXN0UHJvcHM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQnJhbmNoOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZFNvdXJjZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRvUHVsbFJlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5iYXNlQnJhbmNoID0gcHJvcHMuYmFzZT8ubmFtZSA/PyAnbWFzdGVyJztcbiAgICB0aGlzLmhlYWRTb3VyY2UgPSBwcm9wcy5oZWFkLnNvdXJjZSA/PyB0aGlzLmJhc2VCcmFuY2g7XG4gICAgdGhpcy5leHBvcnRzID0gcHJvcHMuZXhwb3J0cyA/PyB7fTtcblxuICAgIGZvciAoY29uc3QgZXggb2YgT2JqZWN0LmtleXModGhpcy5leHBvcnRzKSkge1xuICAgICAgaWYgKHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkeyR7ZXh9fWApIHx8IHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkJHtleH1gKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGhlYWQgc291cmNlICgke3RoaXMuaGVhZFNvdXJjZX0pIGNhbm5vdCBjb250YWluIGR5bmFtaWMgZXhwb3J0czogJHtleH1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzc2hLZXlTZWNyZXQgPSBwcm9wcy5yZXBvLnNzaEtleVNlY3JldDtcbiAgICBjb25zdCBjb21taXRFbWFpbCA9IHByb3BzLnJlcG8uY29tbWl0RW1haWw7XG4gICAgY29uc3QgY29tbWl0VXNlcm5hbWUgPSBwcm9wcy5yZXBvLmNvbW1pdFVzZXJuYW1lO1xuICAgIGNvbnN0IGNsb25lRGVwdGggPSBwcm9wcy5jbG9uZURlcHRoID09PSB1bmRlZmluZWQgPyAwIDogcHJvcHMuY2xvbmVEZXB0aDtcblxuICAgIGNvbnN0IG5lZWRzR2l0SHViVG9rZW5TZWNyZXQgPSAhdGhpcy5wcm9wcy5wdXNoT25seSB8fCAhIXRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHM7XG5cbiAgICBsZXQgY29tbWFuZHM6IHN0cmluZ1tdID0gW1xuXG4gICAgICAuLi50aGlzLmNvbmZpZ3VyZVNzaEFjY2VzcygpLFxuXG4gICAgICAvLyB3aGVuIHRoZSBqb2IgaXMgdHJpZ2dlcmVkIGFzIGEgQ29kZVBpcGVsaW5lIGFjdGlvbiwgdGhlIHdvcmtpbmcgZGlyZWN0b3J5XG4gICAgICAvLyBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgb3V0cHV0IGFydGlmYWN0IG9mIHRoZSBDb2RlQ29tbWl0U291cmNlQWN0aW9uLCB3aGljaCBkb2Vzbid0IGluY2x1ZGVcbiAgICAgIC8vIHRoZSAuZ2l0IGRpcmVjdG9yeSBpbiB0aGUgemlwcGVkIHMzIGFyY2hpdmUuIChZZWFoLCBmdW4gc3R1ZmYpLlxuICAgICAgLy8gc2VlIGh0dHBzOi8vaXRuZXh0LmlvL2hvdy10by1hY2Nlc3MtZ2l0LW1ldGFkYXRhLWluLWNvZGVidWlsZC13aGVuLXVzaW5nLWNvZGVwaXBlbGluZS1jb2RlY29tbWl0LWNlYWNmMmM1YzFkY1xuICAgICAgLi4udGhpcy5jbG9uZUlmTmVlZGVkKCksXG4gICAgXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNvbmRpdGlvbikge1xuICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gc3RvcCBhIEJ1aWxkU3BlYyBleGVjdXRpb24gaGFsZndheSB0aHJvdWdoIHdpdGhvdXQgdGhyb3dpbmcgYW4gZXJyb3IuIEJlbGlldmUgbWUsIElcbiAgICAgIC8vIGNoZWNrZWQgdGhlIGNvZGUuIEluc3RlYWQgd2UgZGVmaW5lIGEgdmFyaWFibGUgdGhhdCB3ZSB3aWxsIHN3aXRjaCBhbGwgb3RoZXIgbGluZXMgb24vb2ZmLlxuICAgICAgY29tbWFuZHMucHVzaChgJHt0aGlzLnByb3BzLmNvbmRpdGlvbn0gYCArXG4gICAgICAnJiYgeyBlY2hvIFxcJ1NraXAgY29uZGl0aW9uIGlzIG1ldCwgc2tpcHBpbmcuLi5cXCcgJiYgZXhwb3J0IFNLSVA9dHJ1ZTsgfSAnICtcbiAgICAgICd8fCB7IGVjaG8gXFwnU2tpcCBjb25kaXRpb24gaXMgbm90IG1ldCwgY29udGludWluZy4uLlxcJyAmJiBleHBvcnQgU0tJUD1mYWxzZTsgfScpO1xuICAgIH1cblxuICAgIC8vIHJlYWQgdGhlIHRva2VuXG4gICAgaWYgKG5lZWRzR2l0SHViVG9rZW5TZWNyZXQpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goYGV4cG9ydCBHSVRIVUJfVE9LRU49JChhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAtLXNlY3JldC1pZCBcIiR7dGhpcy5wcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJufVwiIC0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcpYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4udGhpcy5za2lwSWZPcGVuUHJzKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpKTtcbiAgICB9XG5cbiAgICBjb21tYW5kcy5wdXNoKFxuICAgICAgLi4udGhpcy5jcmVhdGVIZWFkKCksXG4gICAgICAuLi50aGlzLnB1c2hIZWFkKCksXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5wdXNoT25seSkge1xuICAgICAgY29tbWFuZHMucHVzaCguLi50aGlzLmNyZWF0ZVB1bGxSZXF1ZXN0KCkpO1xuICAgIH1cblxuICAgIC8vIHRvZ2dsZSBhbGwgY29tbWFuZHMgYWNjb3JkaW5nIHRvIHRoZSBTS0lQIHZhcmlhYmxlLlxuICAgIGNvbW1hbmRzID0gY29tbWFuZHMubWFwKChjb21tYW5kOiBzdHJpbmcpID0+IGAkU0tJUCB8fCB7ICR7Y29tbWFuZH0gOyB9YCk7XG5cbiAgICAvLyBpbnRpYWxseSBhbGwgY29tbWFuZHMgYXJlIGVuYWJsZWQuXG4gICAgY29tbWFuZHMudW5zaGlmdCgnZXhwb3J0IFNLSVA9ZmFsc2UnKTtcblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjYnVpbGQuUHJvamVjdCh0aGlzLCAnUHVsbFJlcXVlc3QnLCB7XG4gICAgICBzb3VyY2U6IHByb3BzLnJlcG8uY3JlYXRlQnVpbGRTb3VyY2UodGhpcywgZmFsc2UsIHsgY2xvbmVEZXB0aCB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5wcm9qZWN0RGVzY3JpcHRpb24sXG4gICAgICBlbnZpcm9ubWVudDogY3JlYXRlQnVpbGRFbnZpcm9ubWVudChwcm9wcy5idWlsZCA/PyB7fSksXG4gICAgICBidWlsZFNwZWM6IGNidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgIGBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCIke2NvbW1pdEVtYWlsfVwiYCxcbiAgICAgICAgICAgICAgYGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiJHtjb21taXRVc2VybmFtZX1cImAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVpbGQ6IHsgY29tbWFuZHMgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgc3NtU2Vzc2lvblBlcm1pc3Npb25zOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQWx3YXlzIGV4aXN0cyBhcyB0aGUgcHJvamVjdCBpcyBub3QgYSByZWZlcmVuY2VcbiAgICBjb25zdCBwcm9qZWN0Um9sZSA9IHRoaXMucHJvamVjdC5yb2xlITtcbiAgICBwcm9qZWN0Um9sZS5hZGRNYW5hZ2VkUG9saWN5KGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnQW1hem9uRWxhc3RpY0NvbnRhaW5lclJlZ2lzdHJ5UHVibGljUmVhZE9ubHknKSk7XG4gICAgcGVybWlzc2lvbnMuZ3JhbnRTZWNyZXRSZWFkKHNzaEtleVNlY3JldCwgcHJvamVjdFJvbGUpO1xuICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQoeyBzZWNyZXRBcm46IHByb3BzLnJlcG8udG9rZW5TZWNyZXRBcm4gfSwgcHJvamVjdFJvbGUpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pIHtcbiAgICAgIGNvbnN0IHNjaGVkdWxlID0gZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24ocHJvcHMuc2NoZWR1bGVFeHByZXNzaW9uKTtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGVyJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlcyBhbiBhdXRvbWF0aWMgUHVsbCBSZXF1ZXN0IGZvciB0aGlzIHJlcG9zaXRvcnknLFxuICAgICAgICBzY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyBldmVudHNfdGFyZ2V0cy5Db2RlQnVpbGRQcm9qZWN0KHRoaXMucHJvamVjdCldLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGFybSA9IHRoaXMucHJvamVjdC5tZXRyaWNGYWlsZWRCdWlsZHMoeyBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoMzAwKSB9KS5jcmVhdGVBbGFybSh0aGlzLCAnQXV0b1B1bGxSZXF1ZXN0RmFpbGVkQWxhcm0nLCB7XG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVIZWFkKCk6IHN0cmluZ1tdIHtcblxuICAgIHJldHVybiBbXG4gICAgICAvLyBjaGVjayBpZiBoZWFkIGJyYW5jaCBleGlzdHNcbiAgICAgIGBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IG9yaWdpbi8ke3RoaXMucHJvcHMuaGVhZC5uYW1lfSBgICtcblxuICAgICAgLy8gY2hlY2tvdXQgYW5kIG1lcmdlIGlmIGl0IGRvZXMgKHRoaXMgbWlnaHQgZmFpbCBkdWUgdG8gbWVyZ2UgY29uZmxpY3RzKVxuICAgICAgYCYmIHsgZ2l0IGNoZWNrb3V0ICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9ICYmIGdpdCBtZXJnZSAke3RoaXMuaGVhZFNvdXJjZX0gJiYgJHt0aGlzLnJ1bkNvbW1hbmRzKCl9OyAgfSBgICtcblxuICAgICAgLy8gY3JlYXRlIGlmIGl0IGRvZXNudC4gd2UgaW5pdGlhbGx5IHVzZSAndGVtcCcgdG8gYWxsb3cgdXNpbmcgZXhwb3J0cyBpbiB0aGUgaGVhZCBicmFuY2ggbmFtZS4gKGUuZyBidW1wLyRWRVJTSU9OKVxuICAgICAgYHx8IHsgZ2l0IGNoZWNrb3V0ICR7dGhpcy5oZWFkU291cmNlfSAmJiBnaXQgY2hlY2tvdXQgLWIgdGVtcCAmJiAke3RoaXMucnVuQ29tbWFuZHMoKX0gJiYgZ2l0IGJyYW5jaCAtTSAke3RoaXMucHJvcHMuaGVhZC5uYW1lfTsgfWAsXG5cbiAgICBdO1xuXG4gIH1cblxuICBwcml2YXRlIGNsb25lSWZOZWVkZWQoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGNoZWNrIGlmIC5naXQgZXhpc3RcbiAgICAgICdscyAuZ2l0ICcgK1xuXG4gICAgICAvLyBhbGwgZ29vZFxuICAgICAgJyYmIHsgZWNobyBcIi5naXQgZGlyZWN0b3J5IGV4aXN0c1wiOyAgfSAnICtcblxuICAgICAgLy8gY2xvbmUgaWYgaXQgZG9lc24ndFxuICAgICAgYHx8IHsgZWNobyBcIi5naXQgZGlyZWN0b3J5IGRvZXNub3QgZXhpc3QgLSBjbG9uaW5nLi4uXCIgJiYgZ2l0IGluaXQgLiAmJiBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gZ2l0QGdpdGh1Yi5jb206JHt0aGlzLnByb3BzLnJlcG8ub3duZXJ9LyR7dGhpcy5wcm9wcy5yZXBvLnJlcG99LmdpdCAmJiBnaXQgZmV0Y2ggJiYgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4vJHt0aGlzLmJhc2VCcmFuY2h9ICYmIGdpdCBicmFuY2ggLU0gJHt0aGlzLmJhc2VCcmFuY2h9ICYmIGdpdCBjbGVhbiAtZnFkeDsgfWAsXG5cbiAgICBdO1xuXG4gIH1cblxuICBwcml2YXRlIHJ1bkNvbW1hbmRzKCk6IHN0cmluZyB7XG5cbiAgICBjb25zdCB1c2VyQ29tbWFuZHMgPSB0aGlzLnByb3BzLmNvbW1hbmRzID8/IFtdO1xuICAgIGNvbnN0IGV4cG9ydHMgPSBPYmplY3QuZW50cmllcyh0aGlzLmV4cG9ydHMpLm1hcChlbnRyeSA9PiBgZXhwb3J0ICR7ZW50cnlbMF19PSQoJHtlbnRyeVsxXX0pYCk7XG5cbiAgICByZXR1cm4gW1xuXG4gICAgICAuLi51c2VyQ29tbWFuZHMsXG5cbiAgICAgIC8vIGV4cG9ydHMgc2hvdWxkIGJlIGV4ZWN1dGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB1c2VyIGNvbW1hbmRzIChub3QgYmVmb3JlKVxuICAgICAgLy8gYmVjYXVzZSB0aGV5IG1pZ2h0IG5lZWQgYWNjZXNzIHRvIGFydGlmYWN0cyBwcm9kdWNlZCBieSB0aGVtIChlLmcgdmVyc2lvbiBmaWxlKS5cbiAgICAgIC4uLmV4cG9ydHMsXG5cbiAgICAgICdlY2hvIEZpbmlzaGVkIHJ1bm5pbmcgdXNlciBjb21tYW5kcycsXG4gICAgXS5qb2luKCcgJiYgJyk7XG5cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlU3NoQWNjZXNzKCk6IHN0cmluZ1tdIHtcblxuICAgIHJldHVybiBbXG4gICAgICAnYXdzIHNlY3JldHNtYW5hZ2VyIGdldC1zZWNyZXQtdmFsdWUgJ1xuICAgICAgICArIGAtLXNlY3JldC1pZCBcIiR7dGhpcy5wcm9wcy5yZXBvLnNzaEtleVNlY3JldC5zZWNyZXRBcm59XCIgYFxuICAgICAgICArICctLW91dHB1dD10ZXh0IC0tcXVlcnk9U2VjcmV0U3RyaW5nID4gfi8uc3NoL2lkX3JzYScsXG4gICAgICAnbWtkaXIgLXAgfi8uc3NoJyxcbiAgICAgICdjaG1vZCAwNjAwIH4vLnNzaC9pZF9yc2Egfi8uc3NoL2NvbmZpZycsXG4gICAgICAnc3NoLWtleXNjYW4gLXQgcnNhIGdpdGh1Yi5jb20gPj4gfi8uc3NoL2tub3duX2hvc3RzJyxcbiAgICBdO1xuXG4gIH1cblxuICBwcml2YXRlIHB1c2hIZWFkKCk6IHN0cmluZ1tdIHtcbiAgICAvLyBXZSB3aWxsIGRvIG5vdGhpbmcgYW5kIHNldCBgU0tJUD10cnVlYCBpZiB0aGUgaGVhZCByZWYgaXMgYW4gYW5jZXN0b3Igb2YgdGhlIGJhc2UgYnJhbmNoIChubyBQUiBjb3VsZCBiZSBjcmVhdGVkKVxuICAgIHJldHVybiBbXG4gICAgICBgZ2l0IG1lcmdlLWJhc2UgLS1pcy1hbmNlc3RvciAke3RoaXMucHJvcHMuaGVhZC5uYW1lfSBvcmlnaW4vJHt0aGlzLmJhc2VCcmFuY2h9YFxuICAgICAgICArIGAgJiYgeyBlY2hvIFwiU2tpcHBpbmc6ICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGlzIGFuIGFuY2VzdG9yIG9mIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1cIjsgZXhwb3J0IFNLSVA9dHJ1ZTsgfWBcbiAgICAgICAgKyBgIHx8IHsgZWNobyBcIlB1c2hpbmc6ICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGlzIGFoZWFkIG9mIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1cIjsgZXhwb3J0IFNLSVA9ZmFsc2U7IH1gLFxuICAgICAgYGdpdCByZW1vdGUgYWRkIG9yaWdpbl9zc2ggJHt0aGlzLnByb3BzLnJlcG8ucmVwb3NpdG9yeVVybFNzaH1gLFxuICAgICAgLy8gTmVlZCBgLS1hdG9taWNgLCBvdGhlcndpc2UgYGdpdCBwdXNoYCBtaWdodCBzdWNjZXNzZnVsbHkgcHVzaCB0aGUgdGFncyBidXQgbm90IHRvIGBtYWluYC5cbiAgICAgIGBnaXQgcHVzaCAtLWF0b21pYyAtLWZvbGxvdy10YWdzIG9yaWdpbl9zc2ggJHt0aGlzLnByb3BzLmhlYWQubmFtZX06JHt0aGlzLnByb3BzLmhlYWQubmFtZX1gLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHNraXBJZk9wZW5QcnMobGFiZWxzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gW1xuICAgICAgYHJlcG86JHt0aGlzLnByb3BzLnJlcG8ub3duZXJ9LyR7dGhpcy5wcm9wcy5yZXBvLnJlcG99YCxcbiAgICAgICdpczpwcicsXG4gICAgICAnaXM6b3BlbicsXG4gICAgICAuLi5sYWJlbHMubWFwKGwgPT4gYGxhYmVsOiR7bH1gKSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIGAke3RoaXMuZ2l0aHViQ3VybEdldChgL3NlYXJjaC9pc3N1ZXM/cT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmpvaW4oJyAnKSl9YCwgJy1vIHNlYXJjaC5qc29uJyl9YCxcbiAgICAgICdub2RlIC1lIFxcJ3Byb2Nlc3MuZXhpdENvZGUgPSByZXF1aXJlKFwiLi9zZWFyY2guanNvblwiKS50b3RhbF9jb3VudFxcJydcbiAgICAgICAgKyBgIHx8IHsgZWNobyBcIkZvdW5kIG9wZW4gUFJzIHdpdGggbGFiZWwgJHtsYWJlbHN9LCBza2lwcGluZyBQUi5cIjsgZXhwb3J0IFNLSVA9dHJ1ZTsgfWAsXG4gICAgXTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWxsUmVxdWVzdCgpOiBzdHJpbmdbXSB7XG5cbiAgICBjb25zdCBoZWFkID0gdGhpcy5wcm9wcy5oZWFkLm5hbWU7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuYmFzZUJyYW5jaDtcblxuICAgIGlmIChoZWFkID09PSBiYXNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhlYWQgYnJhbmNoIChcIiR7YmFzZX1cIikgaXMgdGhlIHNhbWUgYXMgdGhlIGJhc2UgYnJhbmNoIChcIiR7aGVhZH1cIilgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdGl0bGUgPSBwcm9wcy50aXRsZSA/PyBgTWVyZ2UgJHtoZWFkfSB0byAke2Jhc2V9YDtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5wcm9wcy5ib2R5ID8/ICcnO1xuXG4gICAgY29uc3QgY3JlYXRlUmVxdWVzdCA9IHsgdGl0bGUsIGJhc2UsIGhlYWQgfTtcblxuICAgIGNvbnN0IGNvbW1hbmRzID0gW107XG5cbiAgICAvLyBjcmVhdGUgdGhlIFBSXG4gICAgY29tbWFuZHMucHVzaChgJHt0aGlzLmdpdGh1YkN1cmwoJy9wdWxscycsICctWCBQT1NUIC1vIHByLmpzb24nLCBjcmVhdGVSZXF1ZXN0KX0gJiYgZXhwb3J0IFBSX05VTUJFUj0kKG5vZGUgLXAgJ3JlcXVpcmUoXCIuL3ByLmpzb25cIikubnVtYmVyJylgKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgYm9keVxuICAgIGNvbW1hbmRzLnB1c2godGhpcy5naXRodWJDdXJsKCcvcHVsbHMvJFBSX05VTUJFUicsICctWCBQQVRDSCcsIHsgYm9keTogYm9keSB9KSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5sYWJlbHMgJiYgdGhpcy5wcm9wcy5sYWJlbHMubGVuZ3RoID4gMCkge1xuICAgIC8vIGFwcGx5IGxhYmVscy5cbiAgICAgIGNvbW1hbmRzLnB1c2godGhpcy5naXRodWJDdXJsKCcvaXNzdWVzLyRQUl9OVU1CRVIvbGFiZWxzJywgJy1YIFBPU1QnLCB7IGxhYmVsczogdGhpcy5wcm9wcy5sYWJlbHMgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21tYW5kcztcblxuICB9XG5cbiAgcHJpdmF0ZSBnaXRodWJDdXJsKHVyaTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIHJlcXVlc3Q6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdjdXJsIC0tZmFpbCcsXG4gICAgICBjb21tYW5kLFxuICAgICAgJy0taGVhZGVyIFwiQXV0aG9yaXphdGlvbjogdG9rZW4gJEdJVEhVQl9UT0tFTlwiJyxcbiAgICAgICctLWhlYWRlciBcIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiJyxcbiAgICAgIGAtZCAke0pTT04uc3RyaW5naWZ5KEpTT04uc3RyaW5naWZ5KHJlcXVlc3QpKX1gLFxuICAgICAgYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHt0aGlzLnByb3BzLnJlcG8ub3duZXJ9LyR7dGhpcy5wcm9wcy5yZXBvLnJlcG99JHt1cml9YCxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2l0aHViQ3VybEdldCh1cmk6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2N1cmwgLS1mYWlsJyxcbiAgICAgIGNvbW1hbmQsXG4gICAgICAnLS1oZWFkZXIgXCJBdXRob3JpemF0aW9uOiB0b2tlbiAkR0lUSFVCX1RPS0VOXCInLFxuICAgICAgJy0taGVhZGVyIFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCInLFxuICAgICAgYCdodHRwczovL2FwaS5naXRodWIuY29tJHt1cml9J2AsXG4gICAgXS5qb2luKCcgJyk7XG4gIH1cblxufVxuXG4iXX0=
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQU9xQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNENBQTZFO0FBQzdFLDREQUE4QztBQTJMOUM7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFrQjVDLFlBQVksTUFBaUIsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDcEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDaEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUscUNBQXFDLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDM0Y7U0FDRjtRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FB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Q0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RztRQUVELE9BQU8sUUFBUSxDQUFDO0lBRWxCLENBQUM7SUFFTyxVQUFVLENBQUMsR0FBVyxFQUFFLE9BQWUsRUFBRSxPQUFZO1FBQzNELE9BQU87WUFDTCxhQUFhO1lBQ2IsT0FBTztZQUNQLCtDQUErQztZQUMvQywyQ0FBMkM7WUFDM0MsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtZQUMvQyxnQ0FBZ0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7U0FDdEYsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVcsRUFBRSxPQUFlO1FBQ2hELE9BQU87WUFDTCxhQUFhO1lBQ2IsT0FBTztZQUNQLCtDQUErQztZQUMvQywyQ0FBMkM7WUFDM0MsMEJBQTBCLEdBQUcsR0FBRztTQUNqQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7Q0FFRjtBQTdRRCwwQ0E2UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEdXJhdGlvbixcbiAgYXdzX2Nsb3Vkd2F0Y2ggYXMgY2xvdWR3YXRjaCxcbiAgYXdzX2NvZGVidWlsZCBhcyBjYnVpbGQsXG4gIGF3c19ldmVudHMgYXMgZXZlbnRzLFxuICBhd3NfZXZlbnRzX3RhcmdldHMgYXMgZXZlbnRzX3RhcmdldHMsXG4gIGF3c19pYW0gYXMgaWFtLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJ1aWxkRW52aXJvbm1lbnRQcm9wcywgY3JlYXRlQnVpbGRFbnZpcm9ubWVudCB9IGZyb20gJy4uL2J1aWxkLWVudic7XG5pbXBvcnQgKiBhcyBwZXJtaXNzaW9ucyBmcm9tICcuLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBXcml0YWJsZUdpdEh1YlJlcG8gfSBmcm9tICcuLi9yZXBvJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFB1bGwgUmVxdWVzdCBKb2IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b1B1bGxSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBicmFuY2ggb2YgdGhlIFBSLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFzdGVyJ1xuICAgKi9cbiAgYmFzZT86IEJhc2U7XG5cbiAgLyoqXG4gICAqIFRydWUgaWYgeW91IG9ubHkgd2FudCB0byBwdXNoIHRoZSBoZWFkIGJyYW5jaCB3aXRob3V0IGNyZWF0aW5nIGEgUFIuXG4gICAqIFVzZWZ1bCB3aGVuIHVzZWQgYWxvbmcgd2l0aCAnY29tbWl0cycgdG8gZXhlY3V0ZSBhIGNvbW1pdC1hbmQtcHVzaCBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiAvLyBUT0RPOiBDb25zaWRlciBtb3ZpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIGEgc2VwYXJhdGUgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVzaE9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNZXJnZSAke2hlYWR9IHRvICR7YmFzZX1gXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9keSB0aGUgUFIuIE5vdGUgdGhhdCB0aGUgYm9keSBpcyB1cGRhdGVkIHBvc3QgUFIgY3JlYXRpb24sXG4gICAqIHRoaXMgbWVhbnMgeW91IGNhbiB1c2UgdGhlICRQUl9OVU1CRVIgZW52IHZhcmlhYmxlIHRvIHJlZmVyIHRvIHRoZSBQUiBpdHNlbGYuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYm9keS5cbiAgICovXG4gIGJvZHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhYmVscyBhcHBsaWVkIHRvIHRoZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsYWJlbHMuXG4gICAqL1xuICBsYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQnVpbGQgZW52aXJvbm1lbnQgZm9yIHRoZSBDb2RlQnVpbGQgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGJ1aWxkPzogQnVpbGRFbnZpcm9ubWVudFByb3BzO1xuXG4gIC8qKlxuICAgKiBHaXQgY2xvbmUgZGVwdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IDAgKGNsb25lcyB0aGUgZW50aXJlIHJlcG9zaXRvcnkgcmV2aXNpb25zKVxuICAgKi9cbiAgY2xvbmVEZXB0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogS2V5IHZhbHVlIHBhaXJzIG9mIHZhcmlhYmxlcyB0byBleHBvcnQuIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgZHluYW1pYyBldmFsdWF0aW9uIGluIGFueVxuICAgKiBzdWJzZXF1ZW50IGNvbW1hbmQuXG4gICAqXG4gICAqIEtleSAtIFZhcmlhYmxlIG5hbWUgKGUuZyBWRVJTSU9OKVxuICAgKiBWYWx1ZSAtIENvbW1hbmQgdGhhdCBldmFsdWF0ZXMgdG8gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSAoZS5nICdnaXQgZGVzY3JpYmUnKVxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiBDb25maWd1cmUgYW4gZXhwb3J0IGluIHRoZSBmb3JtIG9mOlxuICAgKlxuICAgKiB7ICdWRVJTSU9OJzogJ2dpdCBkZXNjcmliZScgfVxuICAgKlxuICAgKiBVc2UgdGhlICRWRVJTSU9OIHZhcmlhYmxlIGluIHRoZSBQUiB0aXRsZTogJ2Nob3JlKHJlbGVhc2UpOiAkVkVSU0lPTidcbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZXNlIGV4cG9ydHMgYXJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBgY29tbWFuZHNgIGV4ZWN1dGlvbixcbiAgICogc28gdGhleSBoYXZlIGFjY2VzcyB0byB0aGUgYXJ0aWZhY3RzIHNhaWQgY29tbWFuZHMgcHJvZHVjZSAoZS5nIHZlcnNpb24gYnVtcCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhwb3J0c1xuICAgKi9cbiAgZXhwb3J0cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzY2hlZHVsZSB0byBwcm9kdWNlIGFuIGF1dG9tYXRpYyBQUi5cbiAgICpcbiAgICogVGhlIGV4cHJlc3Npb24gY2FuIGJlIG9uZSBvZjpcbiAgICpcbiAgICogIC0gY3JvbiBleHByZXNzaW9uLCBzdWNoIGFzIFwiY3JvbigwIDEyICogKiA/ICopXCIgd2lsbCB0cmlnZ2VyIGV2ZXJ5IGRheSBhdCAxMnBtIFVUQ1xuICAgKiAgLSByYXRlIGV4cHJlc3Npb24sIHN1Y2ggYXMgXCJyYXRlKDEgZGF5KVwiIHdpbGwgdHJpZ2dlciBldmVyeSAyNCBob3VycyBmcm9tIHRoZSB0aW1lIG9mIGRlcGxveW1lbnRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL1NjaGVkdWxlZEV2ZW50cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2NoZWR1bGUsIHNob3VsZCBiZSB0cmlnZ2VyZWQgbWFudWFsbHkuXG4gICAqL1xuICBzY2hlZHVsZUV4cHJlc3Npb24/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvUHVsbFJlcXVlc3RQcm9wcyBleHRlbmRzIEF1dG9QdWxsUmVxdWVzdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIGEgUFIgaW4uXG4gICAqL1xuICByZXBvOiBXcml0YWJsZUdpdEh1YlJlcG87XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGNvbW1hbmRzIHRvIHJ1biBhZ2FpbnN0IHRoZSBoZWFkIGJyYW5jaC5cbiAgICogVXNlZnVsIGZvciB0aGluZ3MgbGlrZSB2ZXJzaW9uIGJ1bXBzIG9yIGFueSBhdXRvLWdlbmVyYXRlZCBjb21taXRzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbm5vdCB1c2UgZXhwb3J0IGtleXMgaW4gdGhlc2UgY29tbWFuZHMgKFNlZSBgZXhwb3J0c2AgcHJvcGVydHkpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29tbWFuZHMuXG4gICAqL1xuICBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZCBicmFuY2ggb2YgdGhlIFBSLlxuICAgKi9cbiAgaGVhZDogSGVhZDtcblxuICAvKipcbiAgICogVGhlIGV4aXQgY29kZSBvZiB0aGlzIGNvbW1hbmQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byBwcm9jZWVkIHdpdGggdGhlXG4gICAqIFBSIGNyZWF0aW9uLiBJZiBjb25maWd1cmVkLCB0aGlzIGNvbW1hbmQgaXMgdGhlIGZpcnN0IG9uZSB0byBydW4sIGFuZCBpZiBpdCBmYWlscywgYWxsXG4gICAqIG90aGVyIGNvbW1hbmRzIHdpbGwgYmUgc2tpcHBlZC5cbiAgICpcbiAgICogVGhpcyBjb21tYW5kIGlzIHRoZSBmaXJzdCB0byBleGVjdXRlLCBhbmQgc2hvdWxkIG5vdCBhc3N1bWUgYW55IHByZS1leGlzdGluZyBzdGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25kaXRpb25cbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgYW55IFBSIGxhYmVsZWQgd2l0aCB0aGUgZ2l2ZW4gbGFiZWxzIGlzIHN0aWxsIG9wZW4sIG5vIG5ldyBQUiB3aWxsIGJlIGNyZWF0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBsb29rIGF0IG9wZW4gUFJzXG4gICAqL1xuICByZWFkb25seSBza2lwSWZPcGVuUHJzV2l0aExhYmVscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBzdHJpbmcgZm9yIHRoZSBDb2RlQnVpbGQgcHJvamVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0RGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgdGhlIGJhc2UgYnJhbmNoIG9mIHRoZSBQUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlIHtcblxuICAvKipcbiAgICogQnJhbmNoIG5hbWUuXG4gICAqXG4gICAqIFRoaXMgYnJhbmNoIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYXN0ZXInXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoZWFkIGJyYW5jaCBvZiB0aGUgUFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZCB7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCBuYW1lLlxuICAgKlxuICAgKiBUaGlzIGJyYW5jaCB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBzaGEgb2YgdGhlIGJyYW5jaC5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBhbHJlYWR5IGV4aXN0cywgdGhpcyBzaGEgd2lsbCBiZSBhdXRvLW1lcmdlZCBvbnRvIGl0LiBOb3RlIHRoYXQgaW4gc3VjaCBhIGNhc2UsXG4gICAqIHRoZSBQUiBjcmVhdGlvbiBtaWdodCBmYWlsIGluIGNhc2UgdGhlcmUgYXJlIG1lcmdlIGNvbmZsaWN0cy5cbiAgICpcbiAgICogSWYgdGhlIGdpdmVuIGJyYW5jaCBkb2Vzbid0IGV4aXN0LCB0aGUgbmV3bHkgY3JlYXRlZCBicmFuY2ggd2lsbCBiZSBiYXNlZCBvZiB0aGlzIGhhc2guXG4gICAqXG4gICAqIE5vdGUgdGhhdCBkeW5hbWljIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkIGZvciB0aGlzIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBiYXNlIGJyYW5jaCBvZiB0aGUgcHIuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIENvZGVCdWlsZCBqb2IgdGhhdCwgd2hlbiB0cmlnZ2VyZWQsIG9wZW5zIGEgR2l0SHViIFB1bGwgUmVxdWVzdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9QdWxsUmVxdWVzdCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggYWxhcm0gdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBpZiB0aGUgam9iIGZhaWxzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsYXJtOiBjbG91ZHdhdGNoLkFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUJ1aWxkIHByb2plY3QgdGhpcyBjb25zdHJ1Y3QgY3JlYXRlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjYnVpbGQuSVByb2plY3Q7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXV0b1B1bGxSZXF1ZXN0UHJvcHM7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQnJhbmNoOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZFNvdXJjZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRvUHVsbFJlcXVlc3RQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgdGhpcy5iYXNlQnJhbmNoID0gcHJvcHMuYmFzZT8ubmFtZSA/PyAnbWFzdGVyJztcbiAgICB0aGlzLmhlYWRTb3VyY2UgPSBwcm9wcy5oZWFkLnNvdXJjZSA/PyB0aGlzLmJhc2VCcmFuY2g7XG4gICAgdGhpcy5leHBvcnRzID0gcHJvcHMuZXhwb3J0cyA/PyB7fTtcblxuICAgIGZvciAoY29uc3QgZXggb2YgT2JqZWN0LmtleXModGhpcy5leHBvcnRzKSkge1xuICAgICAgaWYgKHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkeyR7ZXh9fWApIHx8IHRoaXMuaGVhZFNvdXJjZS5pbmNsdWRlcyhgXFwkJHtleH1gKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGhlYWQgc291cmNlICgke3RoaXMuaGVhZFNvdXJjZX0pIGNhbm5vdCBjb250YWluIGR5bmFtaWMgZXhwb3J0czogJHtleH1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzc2hLZXlTZWNyZXQgPSBwcm9wcy5yZXBvLnNzaEtleVNlY3JldDtcbiAgICBjb25zdCBjb21taXRFbWFpbCA9IHByb3BzLnJlcG8uY29tbWl0RW1haWw7XG4gICAgY29uc3QgY29tbWl0VXNlcm5hbWUgPSBwcm9wcy5yZXBvLmNvbW1pdFVzZXJuYW1lO1xuICAgIGNvbnN0IGNsb25lRGVwdGggPSBwcm9wcy5jbG9uZURlcHRoID09PSB1bmRlZmluZWQgPyAwIDogcHJvcHMuY2xvbmVEZXB0aDtcblxuICAgIGNvbnN0IG5lZWRzR2l0SHViVG9rZW5TZWNyZXQgPSAhdGhpcy5wcm9wcy5wdXNoT25seSB8fCAhIXRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHM7XG5cbiAgICBsZXQgY29tbWFuZHM6IHN0cmluZ1tdID0gW1xuXG4gICAgICAuLi50aGlzLmNvbmZpZ3VyZVNzaEFjY2VzcygpLFxuXG4gICAgICAvLyB3aGVuIHRoZSBqb2IgaXMgdHJpZ2dlcmVkIGFzIGEgQ29kZVBpcGVsaW5lIGFjdGlvbiwgdGhlIHdvcmtpbmcgZGlyZWN0b3J5XG4gICAgICAvLyBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgb3V0cHV0IGFydGlmYWN0IG9mIHRoZSBDb2RlQ29tbWl0U291cmNlQWN0aW9uLCB3aGljaCBkb2Vzbid0IGluY2x1ZGVcbiAgICAgIC8vIHRoZSAuZ2l0IGRpcmVjdG9yeSBpbiB0aGUgemlwcGVkIHMzIGFyY2hpdmUuIChZZWFoLCBmdW4gc3R1ZmYpLlxuICAgICAgLy8gc2VlIGh0dHBzOi8vaXRuZXh0LmlvL2hvdy10by1hY2Nlc3MtZ2l0LW1ldGFkYXRhLWluLWNvZGVidWlsZC13aGVuLXVzaW5nLWNvZGVwaXBlbGluZS1jb2RlY29tbWl0LWNlYWNmMmM1YzFkY1xuICAgICAgLi4udGhpcy5jbG9uZUlmTmVlZGVkKCksXG4gICAgXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNvbmRpdGlvbikge1xuICAgICAgLy8gdGhlcmUncyBubyB3YXkgdG8gc3RvcCBhIEJ1aWxkU3BlYyBleGVjdXRpb24gaGFsZndheSB0aHJvdWdoIHdpdGhvdXQgdGhyb3dpbmcgYW4gZXJyb3IuIEJlbGlldmUgbWUsIElcbiAgICAgIC8vIGNoZWNrZWQgdGhlIGNvZGUuIEluc3RlYWQgd2UgZGVmaW5lIGEgdmFyaWFibGUgdGhhdCB3ZSB3aWxsIHN3aXRjaCBhbGwgb3RoZXIgbGluZXMgb24vb2ZmLlxuICAgICAgY29tbWFuZHMucHVzaChgJHt0aGlzLnByb3BzLmNvbmRpdGlvbn0gYCArXG4gICAgICAnJiYgeyBlY2hvIFxcJ1NraXAgY29uZGl0aW9uIGlzIG1ldCwgc2tpcHBpbmcuLi5cXCcgJiYgZXhwb3J0IFNLSVA9dHJ1ZTsgfSAnICtcbiAgICAgICd8fCB7IGVjaG8gXFwnU2tpcCBjb25kaXRpb24gaXMgbm90IG1ldCwgY29udGludWluZy4uLlxcJyAmJiBleHBvcnQgU0tJUD1mYWxzZTsgfScpO1xuICAgIH1cblxuICAgIC8vIHJlYWQgdGhlIHRva2VuXG4gICAgaWYgKG5lZWRzR2l0SHViVG9rZW5TZWNyZXQpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goYGV4cG9ydCBHSVRIVUJfVE9LRU49JChhd3Mgc2VjcmV0c21hbmFnZXIgZ2V0LXNlY3JldC12YWx1ZSAtLXNlY3JldC1pZCBcIiR7dGhpcy5wcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJufVwiIC0tb3V0cHV0PXRleHQgLS1xdWVyeT1TZWNyZXRTdHJpbmcpYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpIHtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4udGhpcy5za2lwSWZPcGVuUHJzKHRoaXMucHJvcHMuc2tpcElmT3BlblByc1dpdGhMYWJlbHMpKTtcbiAgICB9XG5cbiAgICBjb21tYW5kcy5wdXNoKFxuICAgICAgLi4udGhpcy5jcmVhdGVIZWFkKCksXG4gICAgICAuLi50aGlzLnB1c2hIZWFkKCksXG4gICAgKTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5wdXNoT25seSkge1xuICAgICAgY29tbWFuZHMucHVzaCguLi50aGlzLmNyZWF0ZVB1bGxSZXF1ZXN0KCkpO1xuICAgIH1cblxuICAgIC8vIHRvZ2dsZSBhbGwgY29tbWFuZHMgYWNjb3JkaW5nIHRvIHRoZSBTS0lQIHZhcmlhYmxlLlxuICAgIGNvbW1hbmRzID0gY29tbWFuZHMubWFwKChjb21tYW5kOiBzdHJpbmcpID0+IGAkU0tJUCB8fCB7ICR7Y29tbWFuZH0gOyB9YCk7XG5cbiAgICAvLyBpbnRpYWxseSBhbGwgY29tbWFuZHMgYXJlIGVuYWJsZWQuXG4gICAgY29tbWFuZHMudW5zaGlmdCgnZXhwb3J0IFNLSVA9ZmFsc2UnKTtcblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjYnVpbGQuUHJvamVjdCh0aGlzLCAnUHVsbFJlcXVlc3QnLCB7XG4gICAgICBzb3VyY2U6IHByb3BzLnJlcG8uY3JlYXRlQnVpbGRTb3VyY2UodGhpcywgZmFsc2UsIHsgY2xvbmVEZXB0aCB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5wcm9qZWN0RGVzY3JpcHRpb24sXG4gICAgICBlbnZpcm9ubWVudDogY3JlYXRlQnVpbGRFbnZpcm9ubWVudChwcm9wcy5idWlsZCA/PyB7fSksXG4gICAgICBidWlsZFNwZWM6IGNidWlsZC5CdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgIGBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCIke2NvbW1pdEVtYWlsfVwiYCxcbiAgICAgICAgICAgICAgYGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiJHtjb21taXRVc2VybmFtZX1cImAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYnVpbGQ6IHsgY29tbWFuZHMgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgc3NtU2Vzc2lvblBlcm1pc3Npb25zOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQWx3YXlzIGV4aXN0cyBhcyB0aGUgcHJvamVjdCBpcyBub3QgYSByZWZlcmVuY2VcbiAgICBjb25zdCBwcm9qZWN0Um9sZSA9IHRoaXMucHJvamVjdC5yb2xlITtcbiAgICBwcm9qZWN0Um9sZS5hZGRNYW5hZ2VkUG9saWN5KGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnQW1hem9uRWxhc3RpY0NvbnRhaW5lclJlZ2lzdHJ5UHVibGljUmVhZE9ubHknKSk7XG4gICAgcGVybWlzc2lvbnMuZ3JhbnRTZWNyZXRSZWFkKHNzaEtleVNlY3JldCwgcHJvamVjdFJvbGUpO1xuICAgIGlmIChuZWVkc0dpdEh1YlRva2VuU2VjcmV0KSB7XG4gICAgICBwZXJtaXNzaW9ucy5ncmFudFNlY3JldFJlYWQoeyBzZWNyZXRBcm46IHByb3BzLnJlcG8udG9rZW5TZWNyZXRBcm4gfSwgcHJvamVjdFJvbGUpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZUV4cHJlc3Npb24pIHtcbiAgICAgIGNvbnN0IHNjaGVkdWxlID0gZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24ocHJvcHMuc2NoZWR1bGVFeHByZXNzaW9uKTtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGVyJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlcyBhbiBhdXRvbWF0aWMgUHVsbCBSZXF1ZXN0IGZvciB0aGlzIHJlcG9zaXRvcnknLFxuICAgICAgICBzY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyBldmVudHNfdGFyZ2V0cy5Db2RlQnVpbGRQcm9qZWN0KHRoaXMucHJvamVjdCldLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGFybSA9IHRoaXMucHJvamVjdC5tZXRyaWNGYWlsZWRCdWlsZHMoeyBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoMzAwKSB9KS5jcmVhdGVBbGFybSh0aGlzLCAnQXV0b1B1bGxSZXF1ZXN0RmFpbGVkQWxhcm0nLCB7XG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBjcmVhdGVIZWFkKCk6IHN0cmluZ1tdIHtcblxuICAgIHJldHVybiBbXG4gICAgICAvLyBjaGVjayBpZiBoZWFkIGJyYW5jaCBleGlzdHNcbiAgICAgIGBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IG9yaWdpbi8ke3RoaXMucHJvcHMuaGVhZC5uYW1lfSBgICtcblxuICAgICAgLy8gY2hlY2tvdXQgYW5kIG1lcmdlIGlmIGl0IGRvZXMgKHRoaXMgbWlnaHQgZmFpbCBkdWUgdG8gbWVyZ2UgY29uZmxpY3RzKVxuICAgICAgYCYmIHsgZ2l0IGNoZWNrb3V0ICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9ICYmIGdpdCBtZXJnZSAke3RoaXMuaGVhZFNvdXJjZX0gJiYgJHt0aGlzLnJ1bkNvbW1hbmRzKCl9OyAgfSBgICtcblxuICAgICAgLy8gY3JlYXRlIGlmIGl0IGRvZXNudC4gd2UgaW5pdGlhbGx5IHVzZSAndGVtcCcgdG8gYWxsb3cgdXNpbmcgZXhwb3J0cyBpbiB0aGUgaGVhZCBicmFuY2ggbmFtZS4gKGUuZyBidW1wLyRWRVJTSU9OKVxuICAgICAgYHx8IHsgZ2l0IGNoZWNrb3V0ICR7dGhpcy5oZWFkU291cmNlfSAmJiBnaXQgY2hlY2tvdXQgLWIgdGVtcCAmJiAke3RoaXMucnVuQ29tbWFuZHMoKX0gJiYgZ2l0IGJyYW5jaCAtTSAke3RoaXMucHJvcHMuaGVhZC5uYW1lfTsgfWAsXG5cbiAgICBdO1xuXG4gIH1cblxuICBwcml2YXRlIGNsb25lSWZOZWVkZWQoKTogc3RyaW5nW10ge1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIC8vIGNoZWNrIGlmIC5naXQgZXhpc3RcbiAgICAgICdscyAuZ2l0ICcgK1xuXG4gICAgICAvLyBhbGwgZ29vZFxuICAgICAgJyYmIHsgZWNobyBcIi5naXQgZGlyZWN0b3J5IGV4aXN0c1wiOyAgfSAnICtcblxuICAgICAgLy8gY2xvbmUgaWYgaXQgZG9lc24ndFxuICAgICAgYHx8IHsgZWNobyBcIi5naXQgZGlyZWN0b3J5IGRvZXNub3QgZXhpc3QgLSBjbG9uaW5nLi4uXCIgJiYgZ2l0IGluaXQgLiAmJiBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gZ2l0QGdpdGh1Yi5jb206JHt0aGlzLnByb3BzLnJlcG8ub3duZXJ9LyR7dGhpcy5wcm9wcy5yZXBvLnJlcG99LmdpdCAmJiBnaXQgZmV0Y2ggJiYgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4vJHt0aGlzLmJhc2VCcmFuY2h9ICYmIGdpdCBicmFuY2ggLU0gJHt0aGlzLmJhc2VCcmFuY2h9ICYmIGdpdCBjbGVhbiAtZnFkeDsgfWAsXG5cbiAgICBdO1xuXG4gIH1cblxuICBwcml2YXRlIHJ1bkNvbW1hbmRzKCk6IHN0cmluZyB7XG5cbiAgICBjb25zdCB1c2VyQ29tbWFuZHMgPSB0aGlzLnByb3BzLmNvbW1hbmRzID8/IFtdO1xuICAgIGNvbnN0IGV4cG9ydHMgPSBPYmplY3QuZW50cmllcyh0aGlzLmV4cG9ydHMpLm1hcChlbnRyeSA9PiBgZXhwb3J0ICR7ZW50cnlbMF19PSQoJHtlbnRyeVsxXX0pYCk7XG5cbiAgICByZXR1cm4gW1xuXG4gICAgICAuLi51c2VyQ29tbWFuZHMsXG5cbiAgICAgIC8vIGV4cG9ydHMgc2hvdWxkIGJlIGV4ZWN1dGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB1c2VyIGNvbW1hbmRzIChub3QgYmVmb3JlKVxuICAgICAgLy8gYmVjYXVzZSB0aGV5IG1pZ2h0IG5lZWQgYWNjZXNzIHRvIGFydGlmYWN0cyBwcm9kdWNlZCBieSB0aGVtIChlLmcgdmVyc2lvbiBmaWxlKS5cbiAgICAgIC4uLmV4cG9ydHMsXG5cbiAgICAgICdlY2hvIEZpbmlzaGVkIHJ1bm5pbmcgdXNlciBjb21tYW5kcycsXG4gICAgXS5qb2luKCcgJiYgJyk7XG5cbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlU3NoQWNjZXNzKCk6IHN0cmluZ1tdIHtcblxuICAgIHJldHVybiBbXG4gICAgICAnYXdzIHNlY3JldHNtYW5hZ2VyIGdldC1zZWNyZXQtdmFsdWUgJ1xuICAgICAgICArIGAtLXNlY3JldC1pZCBcIiR7dGhpcy5wcm9wcy5yZXBvLnNzaEtleVNlY3JldC5zZWNyZXRBcm59XCIgYFxuICAgICAgICArICctLW91dHB1dD10ZXh0IC0tcXVlcnk9U2VjcmV0U3RyaW5nID4gfi8uc3NoL2lkX3JzYScsXG4gICAgICAnbWtkaXIgLXAgfi8uc3NoJyxcbiAgICAgICdjaG1vZCAwNjAwIH4vLnNzaC9pZF9yc2Egfi8uc3NoL2NvbmZpZycsXG4gICAgICAnc3NoLWtleXNjYW4gLXQgcnNhIGdpdGh1Yi5jb20gPj4gfi8uc3NoL2tub3duX2hvc3RzJyxcbiAgICBdO1xuXG4gIH1cblxuICBwcml2YXRlIHB1c2hIZWFkKCk6IHN0cmluZ1tdIHtcbiAgICAvLyBXZSB3aWxsIGRvIG5vdGhpbmcgYW5kIHNldCBgU0tJUD10cnVlYCBpZiB0aGUgaGVhZCByZWYgaXMgYW4gYW5jZXN0b3Igb2YgdGhlIGJhc2UgYnJhbmNoIChubyBQUiBjb3VsZCBiZSBjcmVhdGVkKVxuICAgIHJldHVybiBbXG4gICAgICBgZ2l0IG1lcmdlLWJhc2UgLS1pcy1hbmNlc3RvciAke3RoaXMucHJvcHMuaGVhZC5uYW1lfSBvcmlnaW4vJHt0aGlzLmJhc2VCcmFuY2h9YFxuICAgICAgICArIGAgJiYgeyBlY2hvIFwiU2tpcHBpbmc6ICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGlzIGFuIGFuY2VzdG9yIG9mIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1cIjsgZXhwb3J0IFNLSVA9dHJ1ZTsgfWBcbiAgICAgICAgKyBgIHx8IHsgZWNobyBcIlB1c2hpbmc6ICR7dGhpcy5wcm9wcy5oZWFkLm5hbWV9IGlzIGFoZWFkIG9mIG9yaWdpbi8ke3RoaXMuYmFzZUJyYW5jaH1cIjsgZXhwb3J0IFNLSVA9ZmFsc2U7IH1gLFxuICAgICAgYGdpdCByZW1vdGUgYWRkIG9yaWdpbl9zc2ggJHt0aGlzLnByb3BzLnJlcG8ucmVwb3NpdG9yeVVybFNzaH1gLFxuICAgICAgLy8gTmVlZCBgLS1hdG9taWNgLCBvdGhlcndpc2UgYGdpdCBwdXNoYCBtaWdodCBzdWNjZXNzZnVsbHkgcHVzaCB0aGUgdGFncyBidXQgbm90IHRvIGBtYWluYC5cbiAgICAgIGBnaXQgcHVzaCAtLWF0b21pYyAtLWZvbGxvdy10YWdzIG9yaWdpbl9zc2ggJHt0aGlzLnByb3BzLmhlYWQubmFtZX06JHt0aGlzLnByb3BzLmhlYWQubmFtZX1gLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHNraXBJZk9wZW5QcnMobGFiZWxzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gW1xuICAgICAgYHJlcG86JHt0aGlzLnByb3BzLnJlcG8ub3duZXJ9LyR7dGhpcy5wcm9wcy5yZXBvLnJlcG99YCxcbiAgICAgICdpczpwcicsXG4gICAgICAnaXM6b3BlbicsXG4gICAgICAuLi5sYWJlbHMubWFwKGwgPT4gYGxhYmVsOiR7bH1gKSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIGAke3RoaXMuZ2l0aHViQ3VybEdldChgL3NlYXJjaC9pc3N1ZXM/cT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmpvaW4oJyAnKSl9YCwgJy1vIHNlYXJjaC5qc29uJyl9YCxcbiAgICAgICdub2RlIC1lIFxcJ3Byb2Nlc3MuZXhpdENvZGUgPSByZXF1aXJlKFwiLi9zZWFyY2guanNvblwiKS50b3RhbF9jb3VudFxcJydcbiAgICAgICAgKyBgIHx8IHsgZWNobyBcIkZvdW5kIG9wZW4gUFJzIHdpdGggbGFiZWwgJHtsYWJlbHN9LCBza2lwcGluZyBQUi5cIjsgZXhwb3J0IFNLSVA9dHJ1ZTsgfWAsXG4gICAgXTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWxsUmVxdWVzdCgpOiBzdHJpbmdbXSB7XG5cbiAgICBjb25zdCBoZWFkID0gdGhpcy5wcm9wcy5oZWFkLm5hbWU7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuYmFzZUJyYW5jaDtcblxuICAgIGlmIChoZWFkID09PSBiYXNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEhlYWQgYnJhbmNoIChcIiR7YmFzZX1cIikgaXMgdGhlIHNhbWUgYXMgdGhlIGJhc2UgYnJhbmNoIChcIiR7aGVhZH1cIilgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdGl0bGUgPSBwcm9wcy50aXRsZSA/PyBgTWVyZ2UgJHtoZWFkfSB0byAke2Jhc2V9YDtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5wcm9wcy5ib2R5ID8/ICcnO1xuXG4gICAgY29uc3QgY3JlYXRlUmVxdWVzdCA9IHsgdGl0bGUsIGJhc2UsIGhlYWQgfTtcblxuICAgIGNvbnN0IGNvbW1hbmRzID0gW107XG5cbiAgICAvLyBjcmVhdGUgdGhlIFBSXG4gICAgY29tbWFuZHMucHVzaChgJHt0aGlzLmdpdGh1YkN1cmwoJy9wdWxscycsICctWCBQT1NUIC1vIHByLmpzb24nLCBjcmVhdGVSZXF1ZXN0KX0gJiYgZXhwb3J0IFBSX05VTUJFUj0kKG5vZGUgLXAgJ3JlcXVpcmUoXCIuL3ByLmpzb25cIikubnVtYmVyJylgKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgYm9keVxuICAgIGNvbW1hbmRzLnB1c2godGhpcy5naXRodWJDdXJsKCcvcHVsbHMvJFBSX05VTUJFUicsICctWCBQQVRDSCcsIHsgYm9keTogYm9keSB9KSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5sYWJlbHMgJiYgdGhpcy5wcm9wcy5sYWJlbHMubGVuZ3RoID4gMCkge1xuICAgIC8vIGFwcGx5IGxhYmVscy5cbiAgICAgIGNvbW1hbmRzLnB1c2godGhpcy5naXRodWJDdXJsKCcvaXNzdWVzLyRQUl9OVU1CRVIvbGFiZWxzJywgJy1YIFBPU1QnLCB7IGxhYmVsczogdGhpcy5wcm9wcy5sYWJlbHMgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21tYW5kcztcblxuICB9XG5cbiAgcHJpdmF0ZSBnaXRodWJDdXJsKHVyaTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcsIHJlcXVlc3Q6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdjdXJsIC0tZmFpbCcsXG4gICAgICBjb21tYW5kLFxuICAgICAgJy0taGVhZGVyIFwiQXV0aG9yaXphdGlvbjogdG9rZW4gJEdJVEhVQl9UT0tFTlwiJyxcbiAgICAgICctLWhlYWRlciBcIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvblwiJyxcbiAgICAgIGAtZCAke0pTT04uc3RyaW5naWZ5KEpTT04uc3RyaW5naWZ5KHJlcXVlc3QpKX1gLFxuICAgICAgYGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJHt0aGlzLnByb3BzLnJlcG8ub3duZXJ9LyR7dGhpcy5wcm9wcy5yZXBvLnJlcG99JHt1cml9YCxcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2l0aHViQ3VybEdldCh1cmk6IHN0cmluZywgY29tbWFuZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2N1cmwgLS1mYWlsJyxcbiAgICAgIGNvbW1hbmQsXG4gICAgICAnLS1oZWFkZXIgXCJBdXRob3JpemF0aW9uOiB0b2tlbiAkR0lUSFVCX1RPS0VOXCInLFxuICAgICAgJy0taGVhZGVyIFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCInLFxuICAgICAgYCdodHRwczovL2FwaS5naXRodWIuY29tJHt1cml9J2AsXG4gICAgXS5qb2luKCcgJyk7XG4gIH1cblxufVxuXG4iXX0=
|
@@ -10,7 +10,6 @@ const constants_1 = require("../constants");
|
|
10
10
|
*/
|
11
11
|
class EcrMirror extends constructs_1.Construct {
|
12
12
|
constructor(scope, id, props) {
|
13
|
-
var _a;
|
14
13
|
super(scope, id);
|
15
14
|
this._repos = new Map();
|
16
15
|
this._repoTagsSeen = new Set();
|
@@ -21,8 +20,7 @@ class EcrMirror extends constructs_1.Construct {
|
|
21
20
|
const commands = [];
|
22
21
|
const assets = new Array();
|
23
22
|
const codeBuildSecretValue = (key, auth) => {
|
24
|
-
|
25
|
-
return `${props.dockerHubCredentials.secret.secretName}:${key}:${(_a = auth.versionStage) !== null && _a !== void 0 ? _a : 'AWSCURRENT'}`;
|
23
|
+
return `${props.dockerHubCredentials.secret.secretName}:${key}:${auth.versionStage ?? 'AWSCURRENT'}`;
|
26
24
|
};
|
27
25
|
const username = codeBuildSecretValue(props.dockerHubCredentials.usernameKey, props.dockerHubCredentials);
|
28
26
|
const password = codeBuildSecretValue(props.dockerHubCredentials.passwordKey, props.dockerHubCredentials);
|
@@ -33,7 +31,7 @@ class EcrMirror extends constructs_1.Construct {
|
|
33
31
|
description: aws_cdk_lib_1.Lazy.string({ produce: () => `Synchronize ${props.sources.length} images from DockerHub to local ECR` }),
|
34
32
|
environment: {
|
35
33
|
privileged: true,
|
36
|
-
buildImage:
|
34
|
+
buildImage: props.buildImage ?? aws_cdk_lib_1.aws_codebuild.LinuxBuildImage.fromDockerRegistry(constants_1.DEFAULT_SUPERCHAIN_IMAGE),
|
37
35
|
},
|
38
36
|
environmentVariables: {
|
39
37
|
// DockerHub credentials to avoid throttling
|
@@ -170,4 +168,4 @@ class EcrMirrorAspect {
|
|
170
168
|
}
|
171
169
|
}
|
172
170
|
exports.EcrMirrorAspect = EcrMirrorAspect;
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLW1pcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjci1taXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBV3FCO0FBQ3JCLDJDQUFtRDtBQUVuRCw0Q0FBd0Q7QUF1RXhEOzs7R0FHRztBQUNILE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBT3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7O1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFORixXQUFNLEdBQWdDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEQsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBT2pELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxNQUFNLFdBQVcsR0FBRyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sWUFBWSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDO1FBQ2pHLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUUzQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBVyxFQUFFLElBQTBCLEVBQUUsRUFBRTs7WUFDdkUsT0FBTyxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsSUFBSSxNQUFBLElBQUksQ0FBQyxZQUFZLG1DQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZHLENBQUMsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUcsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUxRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNyQix5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsMENBQTBDLEVBQUUsZ0ZBQWdGLENBQUMsQ0FBQztTQUNqSztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwyQkFBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQzFELFdBQVcsRUFBRSxrQkFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxxQ0FBcUMsRUFBRSxDQUFDO1lBQ3JILFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVSxFQUFFLE1BQUEsS0FBSyxDQUFDLFVBQVUsbUNBQUksMkJBQVMsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsb0NBQXdCLENBQUM7YUFDdkc7WUFDRCxvQkFBb0IsRUFBRTtnQkFDcEIsNENBQTRDO2dCQUM1QyxrQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLDJCQUFTLENBQUMsNEJBQTRCLENBQUMsZUFBZSxFQUFFO2dCQUNyRyxrQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLDJCQUFTLENBQUMsNEJBQTRCLENBQUMsZUFBZSxFQUFFO2FBQ3RHO1lBQ0QsU0FBUyxFQUFFLDJCQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxrQkFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixPQUFPO3dCQUNMLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE1BQU0sRUFBRTs0QkFDTixLQUFLLEVBQUU7Z0NBQ0wsUUFBUSxFQUFFO29DQUVSLDBCQUEwQjtvQ0FDMUIsa0hBQWtIO29DQUNsSCxnRUFBZ0U7b0NBRWhFLCtDQUErQztvQ0FDL0MsZ0VBQWdFO29DQUVoRSxvQ0FBb0M7b0NBQ3BDLDZFQUE2RSxXQUFXLEVBQUU7b0NBRTFGLHVFQUF1RTtvQ0FDdkUsb0hBQW9IO29DQUVwSCxHQUFHLFFBQVE7aUNBQ1o7NkJBQ0Y7eUJBQ0Y7cUJBQ0YsQ0FBQztnQkFDSixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gscUJBQXFCLEVBQUUsSUFBSTtTQUM1QixDQUFDLENBQUM7UUFFSCxtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFLLENBQUMsZ0JBQWdCLENBQUMscUJBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUFDO1FBRWhJLHdEQUF3RDtRQUN4RCx5RkFBeUY7UUFDekYsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFELEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUN4QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXO2dCQUNYLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzthQUN0QixDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxDLE1BQU0sT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsTUFBTSxDQUFDLGNBQWMsY0FBYyxNQUFNLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO2FBQzFIO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUU3QyxNQUFNLFdBQVcsR0FBRyxHQUFHLFdBQVcsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM1RSxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUU1QywyREFBMkQ7WUFDM0Qsa0NBQWtDO1lBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNuRDtRQUVELHNFQUFzRTtRQUN0RSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQscUJBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUU3RCxpRUFBaUU7UUFDakUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFL0MsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksOEJBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQy9DLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLE1BQU0sRUFBRSw4QkFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDekYsUUFBUSxFQUFFO29CQUNSLE1BQU0sRUFBRSxZQUFZO29CQUNwQixPQUFPLEVBQUUsV0FBVztvQkFDcEIsVUFBVSxFQUFFO3dCQUNWLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7d0JBQ3JDLHNDQUFzQzt3QkFDdEMsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7cUJBQ2xDO29CQUNELGtCQUFrQixFQUFFLDhCQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUVwRSxvRkFBb0Y7b0JBQ3BGLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDMUI7YUFDRixDQUFDLENBQUM7U0FDSjtRQUVELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLHdCQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtnQkFDeEMsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixPQUFPLEVBQUUsQ0FBQyxJQUFJLGdDQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3RELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGlCQUF5QjtRQUNoRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDdEMsT0FBTztTQUNSO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxxQkFBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxpQkFBaUIsRUFBRSxFQUFFO1lBQ3RFLGNBQWMsRUFBRSxpQkFBaUI7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsY0FBc0I7UUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUEvSkQsOEJBK0pDO0FBQUEsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQWEsZUFBZTtJQUMxQixZQUE2QixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUcsQ0FBQztJQUUzQyxLQUFLLENBQUMsU0FBcUI7UUFDaEMsSUFBSSxTQUFTLFlBQVksMkJBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDMUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFvQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxXQUF1RCxDQUFDO2dCQUMvRSxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLFdBQVcsRUFBRTtvQkFDZixVQUFVLENBQUMsV0FBVyxHQUFHO3dCQUN2QixHQUFHLEdBQUc7d0JBQ04sS0FBSyxFQUFFLDJCQUFTLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPO3FCQUM3RSxDQUFDO29CQUNGLFdBQVcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2pDLHFCQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUF0QkQsMENBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUFzcGVjdCwgTGF6eSwgU3RhY2ssIFRva2VuLFxuICBhd3NfZWNyIGFzIGVjcixcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19ldmVudHMgYXMgZXZlbnRzLFxuICBhd3NfZXZlbnRzX3RhcmdldHMgYXMgdGFyZ2V0cyxcbiAgYXdzX2lhbSBhcyBpYW0sXG4gIGF3c19zM19hc3NldHMgYXMgczNBc3NldHMsXG4gIGF3c19zZWNyZXRzbWFuYWdlciBhcyBzbSxcbiAgY3VzdG9tX3Jlc291cmNlcyBhcyBjcixcbiAgQW5ub3RhdGlvbnMsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTWlycm9yU291cmNlIH0gZnJvbSAnLi9taXJyb3Itc291cmNlJztcbmltcG9ydCB7IERFRkFVTFRfU1VQRVJDSEFJTl9JTUFHRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gZGV0YWlscyBmb3IgRG9ja2VySHViLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2J1aWxkLXNwZWMtcmVmLmh0bWwjYnVpbGQtc3BlYy5lbnYuc2VjcmV0cy1tYW5hZ2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySHViQ3JlZGVudGlhbHMge1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgRG9ja2VyaHViXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ6IHNtLklTZWNyZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQga2V5IHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lIGluIHRoZSBzcGVjaWZpZWQgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlcm5hbWVLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlY3JldCBrZXkgdGhhdCBjb250YWlucyB0aGUgcGFzc3dvcmQgaW4gdGhlIHNwZWNpZmllZCBzZWNyZXQuXG4gICAqL1xuICByZWFkb25seSBwYXNzd29yZEtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIHN0YWdlIG9mIHRoZSBzZWNyZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdBV1NDVVJSRU5UJ1xuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvblN0YWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gaW5pdGlhbGl6ZSBFY3JSZWdpc3RyeVN5bmNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3JNaXJyb3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpbWFnZXMgdG8ga2VlcCBzeW5jJ2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlczogTWlycm9yU291cmNlW107XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWxzIHRvIHNpZ25pbmcgaW50byBEb2NrZXJodWIuXG4gICAqL1xuICByZWFkb25seSBkb2NrZXJIdWJDcmVkZW50aWFsczogRG9ja2VySHViQ3JlZGVudGlhbHM7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB1c2VkIHRvIHJ1biB0aGUgbWlycm9yIHN0ZXAgaXRzZWxmLlxuICAgKlxuICAgKiBQcmVmZXIgdG8gc3VwcGx5IHRoZSBpbWFnZSB5b3Vyc2VsZiBoZXJlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNvbWUgc3VwZXJjaGFpbiBpbWFnZSB0aGF0IG1heSBncm93IG91dGRhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJbWFnZT86IGNvZGVidWlsZC5JQnVpbGRJbWFnZTtcblxuICAvKipcbiAgICogU3luYyBqb2IgcnVucyBvbiBhIHNjaGVkdWxlLlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgbmVpdGhlciB0aGlzIG5vciBgYXV0b1N0YXJ0YCBhcmUgc3BlY2lmaWVkLlxuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IHJ1biBvbiBzY2hlZHVsZVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBldmVudHMuU2NoZWR1bGU7XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSBzeW5jIGpvYiBpbW1lZGlhdGVseSBhZnRlciB0aGUgZGVwbG95bWVudC5cbiAgICogVGhpcyBpbmplY3RzIGEgY3VzdG9tIHJlc291cmNlIHRoYXQgaXMgZXhlY3V0ZWQgYXMgcGFydCBvZiB0aGUgZGVwbG95bWVudC5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIG5laXRoZXIgdGhpcyBub3IgYHNjaGVkdWxlYCBhcmUgc3BlY2lmaWVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1N0YXJ0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTeW5jaHJvbml6ZSBpbWFnZXMgZnJvbSBEb2NrZXJIdWIgdG8gYW4gRUNSIHJlZ2lzdHJ5IGluIHRoZSBBV1MgYWNjb3VudC5cbiAqIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCB0byB3b3JrYXJvdW5kIERvY2tlckh1YidzIHRocm90dGxpbmcgb24gcHVsbHMgYW5kIHVzZSBFQ1IgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNsYXNzIEVjck1pcnJvciBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVwb3M6IE1hcDxzdHJpbmcsIGVjci5SZXBvc2l0b3J5PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVwb1RhZ3NTZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNvZGVidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFY3JNaXJyb3JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIXByb3BzLnNjaGVkdWxlICYmICFwcm9wcy5hdXRvU3RhcnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIHNjaGVkdWxlIG9yIGF1dG9TdGFydCBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWNyUmVnaXN0cnkgPSBgJHtTdGFjay5vZihzY29wZSkuYWNjb3VudH0uZGtyLmVjci4ke1N0YWNrLm9mKHNjb3BlKS5yZWdpb259LmFtYXpvbmF3cy5jb21gO1xuICAgIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGFzc2V0cyA9IG5ldyBBcnJheTxzM0Fzc2V0cy5Bc3NldD4oKTtcblxuICAgIGNvbnN0IGNvZGVCdWlsZFNlY3JldFZhbHVlID0gKGtleTogc3RyaW5nLCBhdXRoOiBEb2NrZXJIdWJDcmVkZW50aWFscykgPT4ge1xuICAgICAgcmV0dXJuIGAke3Byb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzLnNlY3JldC5zZWNyZXROYW1lfToke2tleX06JHthdXRoLnZlcnNpb25TdGFnZSA/PyAnQVdTQ1VSUkVOVCd9YDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXNlcm5hbWUgPSBjb2RlQnVpbGRTZWNyZXRWYWx1ZShwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy51c2VybmFtZUtleSwgcHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMpO1xuICAgIGNvbnN0IHBhc3N3b3JkID0gY29kZUJ1aWxkU2VjcmV0VmFsdWUocHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMucGFzc3dvcmRLZXksIHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzKTtcblxuICAgIGlmICghcHJvcHMuYnVpbGRJbWFnZSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZ1YyKCdhd3MtZGVsaXZsaWI6RWNyTWlycm9yLm1pc3NpbmdCdWlsZEltYWdlJywgJ1ByZWZlciBzdXBwbHlpbmcgYW4gZXhwbGljaXQgYnVpbGQgaW1hZ2UgdG8gcmVseWluZyBvbiB0aGUgZGVmYXVsdCBzdXBlcmNoYWluLicpO1xuICAgIH1cblxuICAgIHRoaXMucHJvamVjdCA9IG5ldyBjb2RlYnVpbGQuUHJvamVjdCh0aGlzLCAnRWNyUHVzaEltYWdlcycsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IGBTeW5jaHJvbml6ZSAke3Byb3BzLnNvdXJjZXMubGVuZ3RofSBpbWFnZXMgZnJvbSBEb2NrZXJIdWIgdG8gbG9jYWwgRUNSYCB9KSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIHByaXZpbGVnZWQ6IHRydWUsXG4gICAgICAgIGJ1aWxkSW1hZ2U6IHByb3BzLmJ1aWxkSW1hZ2UgPz8gY29kZWJ1aWxkLkxpbnV4QnVpbGRJbWFnZS5mcm9tRG9ja2VyUmVnaXN0cnkoREVGQVVMVF9TVVBFUkNIQUlOX0lNQUdFKSxcbiAgICAgIH0sXG4gICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczoge1xuICAgICAgICAvLyBEb2NrZXJIdWIgY3JlZGVudGlhbHMgdG8gYXZvaWQgdGhyb3R0bGluZ1xuICAgICAgICBET0NLRVJIVUJfVVNFUk5BTUU6IHsgdmFsdWU6IHVzZXJuYW1lLCB0eXBlOiBjb2RlYnVpbGQuQnVpbGRFbnZpcm9ubWVudFZhcmlhYmxlVHlwZS5TRUNSRVRTX01BTkFHRVIgfSxcbiAgICAgICAgRE9DS0VSSFVCX1BBU1NXT1JEOiB7IHZhbHVlOiBwYXNzd29yZCwgdHlwZTogY29kZWJ1aWxkLkJ1aWxkRW52aXJvbm1lbnRWYXJpYWJsZVR5cGUuU0VDUkVUU19NQU5BR0VSIH0sXG4gICAgICB9LFxuICAgICAgYnVpbGRTcGVjOiBjb2RlYnVpbGQuQnVpbGRTcGVjLmZyb21PYmplY3QoTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZlcnNpb246ICcwLjInLFxuICAgICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICAgIGJ1aWxkOiB7XG4gICAgICAgICAgICAgICAgY29tbWFuZHM6IFtcblxuICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgdGhlIGRvY2tlciBkYWVtb25cbiAgICAgICAgICAgICAgICAgICdub2h1cCAvdXNyL2Jpbi9kb2NrZXJkIC0taG9zdD11bml4Oi8vL3Zhci9ydW4vZG9ja2VyLnNvY2sgLS1ob3N0PXRjcDovLzEyNy4wLjAuMToyMzc1IC0tc3RvcmFnZS1kcml2ZXI9b3ZlcmxheTImJyxcbiAgICAgICAgICAgICAgICAgICd0aW1lb3V0IDE1IHNoIC1jIFwidW50aWwgZG9ja2VyIGluZm87IGRvIGVjaG8gLjsgc2xlZXAgMTsgZG9uZVwiJyxcblxuICAgICAgICAgICAgICAgICAgLy8gbG9naW4gdG8gZG9ja2VyaHViIHNvIHdlIHdvbid0IGdldCB0aHJvdHRsZWRcbiAgICAgICAgICAgICAgICAgICdkb2NrZXIgbG9naW4gLXUgJHtET0NLRVJIVUJfVVNFUk5BTUV9IC1wICR7RE9DS0VSSFVCX1BBU1NXT1JEfScsXG5cbiAgICAgICAgICAgICAgICAgIC8vIGxvZ2luIHRvIGVjciBzbyB3ZSBjYW4gcHVzaCB0byBpdFxuICAgICAgICAgICAgICAgICAgYGF3cyBlY3IgZ2V0LWxvZ2luLXBhc3N3b3JkIHwgZG9ja2VyIGxvZ2luIC0tdXNlcm5hbWUgQVdTIC0tcGFzc3dvcmQtc3RkaW4gJHtlY3JSZWdpc3RyeX1gLFxuXG4gICAgICAgICAgICAgICAgICAvLyBsb2dpbiB0byBlY3ItcHVibGljIHNvIHdlIGNhbiBwdWxsIGZyb20gaXQgd2l0aCBpbXByb3ZlZCByYXRlIGxpbWl0c1xuICAgICAgICAgICAgICAgICAgJ2F3cyBlY3ItcHVibGljIGdldC1sb2dpbi1wYXNzd29yZCAtLXJlZ2lvbiB1cy1lYXN0LTEgfCBkb2NrZXIgbG9naW4gLS11c2VybmFtZSBBV1MgLS1wYXNzd29yZC1zdGRpbiBwdWJsaWMuZWNyLmF3cycsXG5cbiAgICAgICAgICAgICAgICAgIC4uLmNvbW1hbmRzLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICB9KSksXG4gICAgICBzc21TZXNzaW9uUGVybWlzc2lvbnM6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBFbnN1cmUgdGhlIHJ1bm5lciBoYXMgUFVMTCBhY2Nlc3MgdG8gRUNSLVB1YmxpYy5cbiAgICB0aGlzLnByb2plY3Qucm9sZSEuYWRkTWFuYWdlZFBvbGljeShpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FtYXpvbkVsYXN0aWNDb250YWluZXJSZWdpc3RyeVB1YmxpY1JlYWRPbmx5JykpO1xuXG4gICAgLy8gR2l2ZSB0aGUgcHJvamVjdCBhY2Nlc3MgdG8gdGhlIERvY2tlciBIdWIgY3JlZGVudGlhbHNcbiAgICAvLyBSZXF1aXJlZCBmb3IgYWNjZXNzIHRvIHByaXZhdGUgaW1hZ2VzIGFuZCB0byBhdm9pZCB0aHJvdHRsaW5nIG9mIHVuYXV0aG9yaXplZCByZXF1ZXN0c1xuICAgIHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzLnNlY3JldC5ncmFudFJlYWQodGhpcy5wcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgaW1hZ2Ugb2YgcHJvcHMuc291cmNlcykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaW1hZ2UuYmluZCh7XG4gICAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgICBlY3JSZWdpc3RyeSxcbiAgICAgICAgc3luY0pvYjogdGhpcy5wcm9qZWN0LFxuICAgICAgfSk7XG4gICAgICBjb21tYW5kcy5wdXNoKC4uLnJlc3VsdC5jb21tYW5kcyk7XG5cbiAgICAgIGNvbnN0IHJlcG9UYWcgPSBgJHtyZXN1bHQucmVwb3NpdG9yeU5hbWV9OiR7cmVzdWx0LnRhZ31gO1xuICAgICAgaWYgKHRoaXMuX3JlcG9UYWdzU2Vlbi5oYXMocmVwb1RhZykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXJyb3Igc291cmNlIHdpdGggcmVwb3NpdG9yeSBuYW1lIFske3Jlc3VsdC5yZXBvc2l0b3J5TmFtZX1dIGFuZCB0YWcgWyR7cmVzdWx0LnRhZ31dIGFscmVhZHkgZXhpc3RzLmApO1xuICAgICAgfVxuICAgICAgdGhpcy5fcmVwb1RhZ3NTZWVuLmFkZChyZXBvVGFnKTtcblxuICAgICAgdGhpcy5jcmVhdGVNaXJyb3JSZXBvKHJlc3VsdC5yZXBvc2l0b3J5TmFtZSk7XG5cbiAgICAgIGNvbnN0IGVjckltYWdlVXJpID0gYCR7ZWNyUmVnaXN0cnl9LyR7cmVzdWx0LnJlcG9zaXRvcnlOYW1lfToke3Jlc3VsdC50YWd9YDtcbiAgICAgIGNvbW1hbmRzLnB1c2goYGRvY2tlciBwdXNoICR7ZWNySW1hZ2VVcml9YCk7XG5cbiAgICAgIC8vIGNsZWFuIGFmdGVyIGVhY2ggcHVzaCBzbyB0aGF0IHdlIGRvbid0IGZpbGx1cCBkaXNrIHNwYWNlXG4gICAgICAvLyBwb3NzaWJseSBmYWlsaW5nIHRoZSBuZXh0IHB1bGwuXG4gICAgICBjb21tYW5kcy5wdXNoKCdkb2NrZXIgaW1hZ2UgcHJ1bmUgLS1hbGwgLS1mb3JjZScpO1xuICAgIH1cblxuICAgIC8vIENvZGVCdWlsZCBuZWVkcyB0byByZWFkIHRoZSBzZWNyZXQgdG8gcmVzb2x2ZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5zZWNyZXQuZ3JhbnRSZWFkKHRoaXMucHJvamVjdCk7XG5cbiAgICBlY3IuQXV0aG9yaXphdGlvblRva2VuLmdyYW50UmVhZCh0aGlzLnByb2plY3QpO1xuICAgIHRoaXMuX3JlcG9zLmZvckVhY2goKHIsIF8pID0+IHIuZ3JhbnRQdWxsUHVzaCh0aGlzLnByb2plY3QpKTtcblxuICAgIC8vIHRoaXMgcHJvamVjdCBuZWVkcyB0byBkb3dubG9hZCB0aGUgYXNzZXRzIHNvIGl0IGNhbiBidWlsZCB0aGVtXG4gICAgYXNzZXRzLmZvckVhY2goYSA9PiBhLmdyYW50UmVhZCh0aGlzLnByb2plY3QpKTtcblxuICAgIGlmIChwcm9wcy5hdXRvU3RhcnQpIHtcbiAgICAgIG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCAnQnVpbGRFeGVjdXRpb24nLCB7XG4gICAgICAgIGluc3RhbGxMYXRlc3RBd3NTZGs6IGZhbHNlLFxuICAgICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7IHJlc291cmNlczogW3RoaXMucHJvamVjdC5wcm9qZWN0QXJuXSB9KSxcbiAgICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgICBhY3Rpb246ICdzdGFydEJ1aWxkJyxcbiAgICAgICAgICBzZXJ2aWNlOiAnQ29kZUJ1aWxkJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBwcm9qZWN0TmFtZTogdGhpcy5wcm9qZWN0LnByb2plY3ROYW1lLFxuICAgICAgICAgICAgLy8gdG8gdGlnZ2VyIHRoZSBidWlsZCBvbiBldmVyeSB1cGRhdGVcbiAgICAgICAgICAgIGlkZW1wb3RlbmN5VG9rZW46IGAke0RhdGUubm93KCl9YCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKCdFY3JSZWdpc3RyeUV4ZWN1dGlvbicpLFxuXG4gICAgICAgICAgLy8gbmVlZCBzaW5jZSB0aGUgZGVmYXVsdCByZXBvbnNlIGlmIGdyZWF0ZXIgdGhhbiB0aGUgNGsgbGltaXQgZm9yIGN1c3RvbSByZXNvdXJjZXMuXG4gICAgICAgICAgb3V0cHV0UGF0aHM6IFsnYnVpbGQuaWQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZSkge1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZWRUcmlnZ2VyJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RyaWdnZXIgRUNSIG1pcnJvciBqb2InLFxuICAgICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5Db2RlQnVpbGRQcm9qZWN0KHRoaXMucHJvamVjdCldLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNaXJyb3JSZXBvKGVjclJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fcmVwb3MuZ2V0KGVjclJlcG9zaXRvcnlOYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBuZXcgZWNyLlJlcG9zaXRvcnkodGhpcywgYFJlcG8ke2VjclJlcG9zaXRvcnlOYW1lfWAsIHtcbiAgICAgIHJlcG9zaXRvcnlOYW1lOiBlY3JSZXBvc2l0b3J5TmFtZSxcbiAgICB9KTtcbiAgICB0aGlzLl9yZXBvcy5zZXQoZWNyUmVwb3NpdG9yeU5hbWUsIHJlcG9zaXRvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdGFyZ2V0IEVDUiByZXBvc2l0b3J5IGZvciB0aGUgZ2l2ZW4gcmVwb3NpdG9yeSBuYW1lIGFuZCB0YWcuXG4gICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgRUNSIHJlcG9zaXRvcnkgd2l0aCB0aGlzIG5hbWVcbiAgICogQHBhcmFtIHRhZyB0aGUgdGFnIGZvciB0aGUgcmVwb3NpdG9yeSwgZGVmYXVsdHMgdG8gJ2xhdGVzdCdcbiAgICovXG4gIHB1YmxpYyBlY3JSZXBvc2l0b3J5KHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBlY3IuSVJlcG9zaXRvcnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9yZXBvcy5nZXQocmVwb3NpdG9yeU5hbWUpO1xuICB9XG59O1xuXG4vKipcbiAqIEFuIGFzcGVjdCB0aGF0IHdhbGtzIHRocm91Z2ggdGhlIGNvbnN0cnVjdCB0cmVlIGFuZCByZXBsYWNlcyBDb2RlQnVpbGQgam9icyB3aXRoIERvY2tlciBpbWFnZXNcbiAqIHdpdGggRUNSIGVxdWl2YWxlbnRzIGZvdW5kIGluIHRoZSBFY3JNaXJyb3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3JNaXJyb3JBc3BlY3QgaW1wbGVtZW50cyBJQXNwZWN0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtaXJyb3I6IEVjck1pcnJvcikge31cblxuICBwdWJsaWMgdmlzaXQoY29uc3RydWN0OiBJQ29uc3RydWN0KSB7XG4gICAgaWYgKGNvbnN0cnVjdCBpbnN0YW5jZW9mIGNvZGVidWlsZC5Qcm9qZWN0KSB7XG4gICAgICBjb25zdCBjZm5wcm9qZWN0ID0gY29uc3RydWN0Lm5vZGUuZGVmYXVsdENoaWxkIGFzIGNvZGVidWlsZC5DZm5Qcm9qZWN0O1xuICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoY2ZucHJvamVjdC5lbnZpcm9ubWVudCkpIHtcbiAgICAgICAgY29uc3QgZW52ID0gY2ZucHJvamVjdC5lbnZpcm9ubWVudCBhcyBjb2RlYnVpbGQuQ2ZuUHJvamVjdC5FbnZpcm9ubWVudFByb3BlcnR5O1xuICAgICAgICBjb25zdCBpbWFnZU5hbWUgPSBlbnYuaW1hZ2Uuc3BsaXQoJzonKVswXTtcbiAgICAgICAgY29uc3QgdGFnID0gZW52LmltYWdlLnNwbGl0KCc6JylbMV07XG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gdGhpcy5taXJyb3IuZWNyUmVwb3NpdG9yeShpbWFnZU5hbWUpO1xuICAgICAgICBpZiAocmVwbGFjZW1lbnQpIHtcbiAgICAgICAgICBjZm5wcm9qZWN0LmVudmlyb25tZW50ID0ge1xuICAgICAgICAgICAgLi4uZW52LFxuICAgICAgICAgICAgaW1hZ2U6IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbUVjclJlcG9zaXRvcnkocmVwbGFjZW1lbnQsIHRhZykuaW1hZ2VJZCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJlcGxhY2VtZW50LmdyYW50UHVsbChjb25zdHJ1Y3QpO1xuICAgICAgICAgIGVjci5BdXRob3JpemF0aW9uVG9rZW4uZ3JhbnRSZWFkKGNvbnN0cnVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLW1pcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVjci1taXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBV3FCO0FBQ3JCLDJDQUFtRDtBQUVuRCw0Q0FBd0Q7QUF1RXhEOzs7R0FHRztBQUNILE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBT3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQU5GLFdBQU0sR0FBZ0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFPakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUNsRTtRQUVELE1BQU0sV0FBVyxHQUFHLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxZQUFZLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUM7UUFDakcsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxFQUFrQixDQUFDO1FBRTNDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBMEIsRUFBRSxFQUFFO1lBQ3ZFLE9BQU8sR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RyxDQUFDLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FB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QkFDN0M7YUFDRjtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBdEJELDBDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElBc3BlY3QsIExhenksIFN0YWNrLCBUb2tlbixcbiAgYXdzX2VjciBhcyBlY3IsXG4gIGF3c19jb2RlYnVpbGQgYXMgY29kZWJ1aWxkLFxuICBhd3NfZXZlbnRzIGFzIGV2ZW50cyxcbiAgYXdzX2V2ZW50c190YXJnZXRzIGFzIHRhcmdldHMsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfczNfYXNzZXRzIGFzIHMzQXNzZXRzLFxuICBhd3Nfc2VjcmV0c21hbmFnZXIgYXMgc20sXG4gIGN1c3RvbV9yZXNvdXJjZXMgYXMgY3IsXG4gIEFubm90YXRpb25zLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IE1pcnJvclNvdXJjZSB9IGZyb20gJy4vbWlycm9yLXNvdXJjZSc7XG5pbXBvcnQgeyBERUZBVUxUX1NVUEVSQ0hBSU5fSU1BR0UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uIGRldGFpbHMgZm9yIERvY2tlckh1Yi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYnVpbGQvbGF0ZXN0L3VzZXJndWlkZS9idWlsZC1zcGVjLXJlZi5odG1sI2J1aWxkLXNwZWMuZW52LnNlY3JldHMtbWFuYWdlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlckh1YkNyZWRlbnRpYWxzIHtcblxuICAvKipcbiAgICogVGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgZm9yIERvY2tlcmh1YlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0OiBzbS5JU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGtleSB0aGF0IGNvbnRhaW5zIHRoZSB1c2VybmFtZSBpbiB0aGUgc3BlY2lmaWVkIHNlY3JldC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQga2V5IHRoYXQgY29udGFpbnMgdGhlIHBhc3N3b3JkIGluIHRoZSBzcGVjaWZpZWQgc2VjcmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFzc3dvcmRLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBzdGFnZSBvZiB0aGUgc2VjcmV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnQVdTQ1VSUkVOVCdcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25TdGFnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluaXRpYWxpemUgRWNyUmVnaXN0cnlTeW5jXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWNyTWlycm9yUHJvcHMge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgaW1hZ2VzIHRvIGtlZXAgc3luYydlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZXM6IE1pcnJvclNvdXJjZVtdO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFscyB0byBzaWduaW5nIGludG8gRG9ja2VyaHViLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VySHViQ3JlZGVudGlhbHM6IERvY2tlckh1YkNyZWRlbnRpYWxzO1xuXG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdXNlZCB0byBydW4gdGhlIG1pcnJvciBzdGVwIGl0c2VsZi5cbiAgICpcbiAgICogUHJlZmVyIHRvIHN1cHBseSB0aGUgaW1hZ2UgeW91cnNlbGYgaGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBTb21lIHN1cGVyY2hhaW4gaW1hZ2UgdGhhdCBtYXkgZ3JvdyBvdXRkYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSW1hZ2U/OiBjb2RlYnVpbGQuSUJ1aWxkSW1hZ2U7XG5cbiAgLyoqXG4gICAqIFN5bmMgam9iIHJ1bnMgb24gYSBzY2hlZHVsZS5cbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIG5laXRoZXIgdGhpcyBub3IgYGF1dG9TdGFydGAgYXJlIHNwZWNpZmllZC5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBydW4gb24gc2NoZWR1bGVcbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogZXZlbnRzLlNjaGVkdWxlO1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgc3luYyBqb2IgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGRlcGxveW1lbnQuXG4gICAqIFRoaXMgaW5qZWN0cyBhIGN1c3RvbSByZXNvdXJjZSB0aGF0IGlzIGV4ZWN1dGVkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQuXG4gICAqIFRocm93cyBhbiBlcnJvciBpZiBuZWl0aGVyIHRoaXMgbm9yIGBzY2hlZHVsZWAgYXJlIHNwZWNpZmllZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9TdGFydD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3luY2hyb25pemUgaW1hZ2VzIGZyb20gRG9ja2VySHViIHRvIGFuIEVDUiByZWdpc3RyeSBpbiB0aGUgQVdTIGFjY291bnQuXG4gKiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgdG8gd29ya2Fyb3VuZCBEb2NrZXJIdWIncyB0aHJvdHRsaW5nIG9uIHB1bGxzIGFuZCB1c2UgRUNSIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFY3JNaXJyb3IgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcG9zOiBNYXA8c3RyaW5nLCBlY3IuUmVwb3NpdG9yeT4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcG9UYWdzU2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBjb2RlYnVpbGQuUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRWNyTWlycm9yUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKCFwcm9wcy5zY2hlZHVsZSAmJiAhcHJvcHMuYXV0b1N0YXJ0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBzY2hlZHVsZSBvciBhdXRvU3RhcnQgbXVzdCBiZSBwcm92aWRlZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGVjclJlZ2lzdHJ5ID0gYCR7U3RhY2sub2Yoc2NvcGUpLmFjY291bnR9LmRrci5lY3IuJHtTdGFjay5vZihzY29wZSkucmVnaW9ufS5hbWF6b25hd3MuY29tYDtcbiAgICBjb25zdCBjb21tYW5kczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBhc3NldHMgPSBuZXcgQXJyYXk8czNBc3NldHMuQXNzZXQ+KCk7XG5cbiAgICBjb25zdCBjb2RlQnVpbGRTZWNyZXRWYWx1ZSA9IChrZXk6IHN0cmluZywgYXV0aDogRG9ja2VySHViQ3JlZGVudGlhbHMpID0+IHtcbiAgICAgIHJldHVybiBgJHtwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5zZWNyZXQuc2VjcmV0TmFtZX06JHtrZXl9OiR7YXV0aC52ZXJzaW9uU3RhZ2UgPz8gJ0FXU0NVUlJFTlQnfWA7XG4gICAgfTtcblxuICAgIGNvbnN0IHVzZXJuYW1lID0gY29kZUJ1aWxkU2VjcmV0VmFsdWUocHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMudXNlcm5hbWVLZXksIHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzKTtcbiAgICBjb25zdCBwYXNzd29yZCA9IGNvZGVCdWlsZFNlY3JldFZhbHVlKHByb3BzLmRvY2tlckh1YkNyZWRlbnRpYWxzLnBhc3N3b3JkS2V5LCBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscyk7XG5cbiAgICBpZiAoIXByb3BzLmJ1aWxkSW1hZ2UpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmdWMignYXdzLWRlbGl2bGliOkVjck1pcnJvci5taXNzaW5nQnVpbGRJbWFnZScsICdQcmVmZXIgc3VwcGx5aW5nIGFuIGV4cGxpY2l0IGJ1aWxkIGltYWdlIHRvIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQgc3VwZXJjaGFpbi4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgY29kZWJ1aWxkLlByb2plY3QodGhpcywgJ0VjclB1c2hJbWFnZXMnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogTGF6eS5zdHJpbmcoeyBwcm9kdWNlOiAoKSA9PiBgU3luY2hyb25pemUgJHtwcm9wcy5zb3VyY2VzLmxlbmd0aH0gaW1hZ2VzIGZyb20gRG9ja2VySHViIHRvIGxvY2FsIEVDUmAgfSksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBwcml2aWxlZ2VkOiB0cnVlLFxuICAgICAgICBidWlsZEltYWdlOiBwcm9wcy5idWlsZEltYWdlID8/IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KERFRkFVTFRfU1VQRVJDSEFJTl9JTUFHRSksXG4gICAgICB9LFxuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHtcbiAgICAgICAgLy8gRG9ja2VySHViIGNyZWRlbnRpYWxzIHRvIGF2b2lkIHRocm90dGxpbmdcbiAgICAgICAgRE9DS0VSSFVCX1VTRVJOQU1FOiB7IHZhbHVlOiB1c2VybmFtZSwgdHlwZTogY29kZWJ1aWxkLkJ1aWxkRW52aXJvbm1lbnRWYXJpYWJsZVR5cGUuU0VDUkVUU19NQU5BR0VSIH0sXG4gICAgICAgIERPQ0tFUkhVQl9QQVNTV09SRDogeyB2YWx1ZTogcGFzc3dvcmQsIHR5cGU6IGNvZGVidWlsZC5CdWlsZEVudmlyb25tZW50VmFyaWFibGVUeXBlLlNFQ1JFVFNfTUFOQUdFUiB9LFxuICAgICAgfSxcbiAgICAgIGJ1aWxkU3BlYzogY29kZWJ1aWxkLkJ1aWxkU3BlYy5mcm9tT2JqZWN0KExhenkuYW55KHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2ZXJzaW9uOiAnMC4yJyxcbiAgICAgICAgICAgIHBoYXNlczoge1xuICAgICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG5cbiAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IHRoZSBkb2NrZXIgZGFlbW9uXG4gICAgICAgICAgICAgICAgICAnbm9odXAgL3Vzci9iaW4vZG9ja2VyZCAtLWhvc3Q9dW5peDovLy92YXIvcnVuL2RvY2tlci5zb2NrIC0taG9zdD10Y3A6Ly8xMjcuMC4wLjE6MjM3NSAtLXN0b3JhZ2UtZHJpdmVyPW92ZXJsYXkyJicsXG4gICAgICAgICAgICAgICAgICAndGltZW91dCAxNSBzaCAtYyBcInVudGlsIGRvY2tlciBpbmZvOyBkbyBlY2hvIC47IHNsZWVwIDE7IGRvbmVcIicsXG5cbiAgICAgICAgICAgICAgICAgIC8vIGxvZ2luIHRvIGRvY2tlcmh1YiBzbyB3ZSB3b24ndCBnZXQgdGhyb3R0bGVkXG4gICAgICAgICAgICAgICAgICAnZG9ja2VyIGxvZ2luIC11ICR7RE9DS0VSSFVCX1VTRVJOQU1FfSAtcCAke0RPQ0tFUkhVQl9QQVNTV09SRH0nLFxuXG4gICAgICAgICAgICAgICAgICAvLyBsb2dpbiB0byBlY3Igc28gd2UgY2FuIHB1c2ggdG8gaXRcbiAgICAgICAgICAgICAgICAgIGBhd3MgZWNyIGdldC1sb2dpbi1wYXNzd29yZCB8IGRvY2tlciBsb2dpbiAtLXVzZXJuYW1lIEFXUyAtLXBhc3N3b3JkLXN0ZGluICR7ZWNyUmVnaXN0cnl9YCxcblxuICAgICAgICAgICAgICAgICAgLy8gbG9naW4gdG8gZWNyLXB1YmxpYyBzbyB3ZSBjYW4gcHVsbCBmcm9tIGl0IHdpdGggaW1wcm92ZWQgcmF0ZSBsaW1pdHNcbiAgICAgICAgICAgICAgICAgICdhd3MgZWNyLXB1YmxpYyBnZXQtbG9naW4tcGFzc3dvcmQgLS1yZWdpb24gdXMtZWFzdC0xIHwgZG9ja2VyIGxvZ2luIC0tdXNlcm5hbWUgQVdTIC0tcGFzc3dvcmQtc3RkaW4gcHVibGljLmVjci5hd3MnLFxuXG4gICAgICAgICAgICAgICAgICAuLi5jb21tYW5kcyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgfSkpLFxuICAgICAgc3NtU2Vzc2lvblBlcm1pc3Npb25zOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gRW5zdXJlIHRoZSBydW5uZXIgaGFzIFBVTEwgYWNjZXNzIHRvIEVDUi1QdWJsaWMuXG4gICAgdGhpcy5wcm9qZWN0LnJvbGUhLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBbWF6b25FbGFzdGljQ29udGFpbmVyUmVnaXN0cnlQdWJsaWNSZWFkT25seScpKTtcblxuICAgIC8vIEdpdmUgdGhlIHByb2plY3QgYWNjZXNzIHRvIHRoZSBEb2NrZXIgSHViIGNyZWRlbnRpYWxzXG4gICAgLy8gUmVxdWlyZWQgZm9yIGFjY2VzcyB0byBwcml2YXRlIGltYWdlcyBhbmQgdG8gYXZvaWQgdGhyb3R0bGluZyBvZiB1bmF1dGhvcml6ZWQgcmVxdWVzdHNcbiAgICBwcm9wcy5kb2NrZXJIdWJDcmVkZW50aWFscy5zZWNyZXQuZ3JhbnRSZWFkKHRoaXMucHJvamVjdCk7XG5cbiAgICBmb3IgKGNvbnN0IGltYWdlIG9mIHByb3BzLnNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGltYWdlLmJpbmQoe1xuICAgICAgICBzY29wZTogdGhpcyxcbiAgICAgICAgZWNyUmVnaXN0cnksXG4gICAgICAgIHN5bmNKb2I6IHRoaXMucHJvamVjdCxcbiAgICAgIH0pO1xuICAgICAgY29tbWFuZHMucHVzaCguLi5yZXN1bHQuY29tbWFuZHMpO1xuXG4gICAgICBjb25zdCByZXBvVGFnID0gYCR7cmVzdWx0LnJlcG9zaXRvcnlOYW1lfToke3Jlc3VsdC50YWd9YDtcbiAgICAgIGlmICh0aGlzLl9yZXBvVGFnc1NlZW4uaGFzKHJlcG9UYWcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlycm9yIHNvdXJjZSB3aXRoIHJlcG9zaXRvcnkgbmFtZSBbJHtyZXN1bHQucmVwb3NpdG9yeU5hbWV9XSBhbmQgdGFnIFske3Jlc3VsdC50YWd9XSBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlcG9UYWdzU2Vlbi5hZGQocmVwb1RhZyk7XG5cbiAgICAgIHRoaXMuY3JlYXRlTWlycm9yUmVwbyhyZXN1bHQucmVwb3NpdG9yeU5hbWUpO1xuXG4gICAgICBjb25zdCBlY3JJbWFnZVVyaSA9IGAke2VjclJlZ2lzdHJ5fS8ke3Jlc3VsdC5yZXBvc2l0b3J5TmFtZX06JHtyZXN1bHQudGFnfWA7XG4gICAgICBjb21tYW5kcy5wdXNoKGBkb2NrZXIgcHVzaCAke2VjckltYWdlVXJpfWApO1xuXG4gICAgICAvLyBjbGVhbiBhZnRlciBlYWNoIHB1c2ggc28gdGhhdCB3ZSBkb24ndCBmaWxsdXAgZGlzayBzcGFjZVxuICAgICAgLy8gcG9zc2libHkgZmFpbGluZyB0aGUgbmV4dCBwdWxsLlxuICAgICAgY29tbWFuZHMucHVzaCgnZG9ja2VyIGltYWdlIHBydW5lIC0tYWxsIC0tZm9yY2UnKTtcbiAgICB9XG5cbiAgICAvLyBDb2RlQnVpbGQgbmVlZHMgdG8gcmVhZCB0aGUgc2VjcmV0IHRvIHJlc29sdmUgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4gICAgcHJvcHMuZG9ja2VySHViQ3JlZGVudGlhbHMuc2VjcmV0LmdyYW50UmVhZCh0aGlzLnByb2plY3QpO1xuXG4gICAgZWNyLkF1dGhvcml6YXRpb25Ub2tlbi5ncmFudFJlYWQodGhpcy5wcm9qZWN0KTtcbiAgICB0aGlzLl9yZXBvcy5mb3JFYWNoKChyLCBfKSA9PiByLmdyYW50UHVsbFB1c2godGhpcy5wcm9qZWN0KSk7XG5cbiAgICAvLyB0aGlzIHByb2plY3QgbmVlZHMgdG8gZG93bmxvYWQgdGhlIGFzc2V0cyBzbyBpdCBjYW4gYnVpbGQgdGhlbVxuICAgIGFzc2V0cy5mb3JFYWNoKGEgPT4gYS5ncmFudFJlYWQodGhpcy5wcm9qZWN0KSk7XG5cbiAgICBpZiAocHJvcHMuYXV0b1N0YXJ0KSB7XG4gICAgICBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0J1aWxkRXhlY3V0aW9uJywge1xuICAgICAgICBpbnN0YWxsTGF0ZXN0QXdzU2RrOiBmYWxzZSxcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IFt0aGlzLnByb2plY3QucHJvamVjdEFybl0gfSksXG4gICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgYWN0aW9uOiAnc3RhcnRCdWlsZCcsXG4gICAgICAgICAgc2VydmljZTogJ0NvZGVCdWlsZCcsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHRoaXMucHJvamVjdC5wcm9qZWN0TmFtZSxcbiAgICAgICAgICAgIC8vIHRvIHRpZ2dlciB0aGUgYnVpbGQgb24gZXZlcnkgdXBkYXRlXG4gICAgICAgICAgICBpZGVtcG90ZW5jeVRva2VuOiBgJHtEYXRlLm5vdygpfWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZignRWNyUmVnaXN0cnlFeGVjdXRpb24nKSxcblxuICAgICAgICAgIC8vIG5lZWQgc2luY2UgdGhlIGRlZmF1bHQgcmVwb25zZSBpZiBncmVhdGVyIHRoYW4gdGhlIDRrIGxpbWl0IGZvciBjdXN0b20gcmVzb3VyY2VzLlxuICAgICAgICAgIG91dHB1dFBhdGhzOiBbJ2J1aWxkLmlkJ10sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2NoZWR1bGUpIHtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGVkVHJpZ2dlcicsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUcmlnZ2VyIEVDUiBtaXJyb3Igam9iJyxcbiAgICAgICAgc2NoZWR1bGU6IHByb3BzLnNjaGVkdWxlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuQ29kZUJ1aWxkUHJvamVjdCh0aGlzLnByb2plY3QpXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTWlycm9yUmVwbyhlY3JSZXBvc2l0b3J5TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX3JlcG9zLmdldChlY3JSZXBvc2l0b3J5TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXBvc2l0b3J5ID0gbmV3IGVjci5SZXBvc2l0b3J5KHRoaXMsIGBSZXBvJHtlY3JSZXBvc2l0b3J5TmFtZX1gLCB7XG4gICAgICByZXBvc2l0b3J5TmFtZTogZWNyUmVwb3NpdG9yeU5hbWUsXG4gICAgfSk7XG4gICAgdGhpcy5fcmVwb3Muc2V0KGVjclJlcG9zaXRvcnlOYW1lLCByZXBvc2l0b3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRhcmdldCBFQ1IgcmVwb3NpdG9yeSBmb3IgdGhlIGdpdmVuIHJlcG9zaXRvcnkgbmFtZSBhbmQgdGFnLlxuICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIEVDUiByZXBvc2l0b3J5IHdpdGggdGhpcyBuYW1lXG4gICAqIEBwYXJhbSB0YWcgdGhlIHRhZyBmb3IgdGhlIHJlcG9zaXRvcnksIGRlZmF1bHRzIHRvICdsYXRlc3QnXG4gICAqL1xuICBwdWJsaWMgZWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogZWNyLklSZXBvc2l0b3J5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVwb3MuZ2V0KHJlcG9zaXRvcnlOYW1lKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBbiBhc3BlY3QgdGhhdCB3YWxrcyB0aHJvdWdoIHRoZSBjb25zdHJ1Y3QgdHJlZSBhbmQgcmVwbGFjZXMgQ29kZUJ1aWxkIGpvYnMgd2l0aCBEb2NrZXIgaW1hZ2VzXG4gKiB3aXRoIEVDUiBlcXVpdmFsZW50cyBmb3VuZCBpbiB0aGUgRWNyTWlycm9yLlxuICovXG5leHBvcnQgY2xhc3MgRWNyTWlycm9yQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWlycm9yOiBFY3JNaXJyb3IpIHt9XG5cbiAgcHVibGljIHZpc2l0KGNvbnN0cnVjdDogSUNvbnN0cnVjdCkge1xuICAgIGlmIChjb25zdHJ1Y3QgaW5zdGFuY2VvZiBjb2RlYnVpbGQuUHJvamVjdCkge1xuICAgICAgY29uc3QgY2ZucHJvamVjdCA9IGNvbnN0cnVjdC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBjb2RlYnVpbGQuQ2ZuUHJvamVjdDtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGNmbnByb2plY3QuZW52aXJvbm1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IGNmbnByb2plY3QuZW52aXJvbm1lbnQgYXMgY29kZWJ1aWxkLkNmblByb2plY3QuRW52aXJvbm1lbnRQcm9wZXJ0eTtcbiAgICAgICAgY29uc3QgaW1hZ2VOYW1lID0gZW52LmltYWdlLnNwbGl0KCc6JylbMF07XG4gICAgICAgIGNvbnN0IHRhZyA9IGVudi5pbWFnZS5zcGxpdCgnOicpWzFdO1xuICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IHRoaXMubWlycm9yLmVjclJlcG9zaXRvcnkoaW1hZ2VOYW1lKTtcbiAgICAgICAgaWYgKHJlcGxhY2VtZW50KSB7XG4gICAgICAgICAgY2ZucHJvamVjdC5lbnZpcm9ubWVudCA9IHtcbiAgICAgICAgICAgIC4uLmVudixcbiAgICAgICAgICAgIGltYWdlOiBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21FY3JSZXBvc2l0b3J5KHJlcGxhY2VtZW50LCB0YWcpLmltYWdlSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXBsYWNlbWVudC5ncmFudFB1bGwoY29uc3RydWN0KTtcbiAgICAgICAgICBlY3IuQXV0aG9yaXphdGlvblRva2VuLmdyYW50UmVhZChjb25zdHJ1Y3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -91,12 +91,10 @@ class MirrorSource {
|
|
91
91
|
static fromDir(directory, repositoryName, opts = {}) {
|
92
92
|
class DirectoryMirrorSource extends MirrorSource {
|
93
93
|
constructor() {
|
94
|
-
|
95
|
-
super(repositoryName, (_a = opts.tag) !== null && _a !== void 0 ? _a : 'latest', directory);
|
94
|
+
super(repositoryName, opts.tag ?? 'latest', directory);
|
96
95
|
}
|
97
96
|
bind(options) {
|
98
|
-
|
99
|
-
const asset = new aws_cdk_lib_1.aws_s3_assets.Asset(options.scope, `BuildContext${this.directory}${JSON.stringify((_a = opts.buildArgs) !== null && _a !== void 0 ? _a : {})}`, {
|
97
|
+
const asset = new aws_cdk_lib_1.aws_s3_assets.Asset(options.scope, `BuildContext${this.directory}${JSON.stringify(opts.buildArgs ?? {})}`, {
|
100
98
|
path: this.directory,
|
101
99
|
// Need to give an explicit displayName, because the directory might
|
102
100
|
// be absolute, and the directories and args are liable to change on
|
@@ -137,4 +135,4 @@ class MirrorSource {
|
|
137
135
|
}
|
138
136
|
}
|
139
137
|
exports.MirrorSource = MirrorSource;
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1pcnJvci1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFDbEMsNkNBR3FCO0FBc0RyQjs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFFaEM7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhLEVBQUUsTUFBYyxRQUFRO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWMsUUFBUSxFQUFFLG9CQUE0QixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFO1FBQy9JLE1BQU0scUJBQXNCLFNBQVEsWUFBWTtZQUM5QztnQkFDRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztpQkFDL0M7Z0JBQ0QsK0RBQStEO2dCQUMvRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUM7Z0JBQ3hFLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFTSxJQUFJLENBQUMsT0FBZ0M7Z0JBQzFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLEdB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LEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtvQkFDdEMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2lCQUNkLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFDRCxPQUFPLElBQUkscUJBQXFCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFDcUIsY0FBc0IsRUFDdEIsR0FBVyxFQUNYLFNBQWtCLEVBQ2xCLG9CQUFvQixjQUFjO1FBSGxDLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxjQUFTLEdBQVQsU0FBUyxDQUFTO1FBQ2xCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBaUI7SUFFdkQsQ0FBQztDQU1GO0FBMUhELG9DQTBIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7XG4gIGF3c19jb2RlYnVpbGQgYXMgY29kZWJ1aWxkLFxuICBhd3NfczNfYXNzZXRzIGFzIHMzQXNzZXRzLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IEVDUiByZWdpc3RyeVxuICAgKi9cbiAgcmVhZG9ubHkgZWNyUmVnaXN0cnk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzY29wZSB0byBhdHRhY2ggYW55IGNvbnN0cnVjdHMgdGhhdCBtYXkgYWxzbyBiZSBuZWVkZWQuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogQ29uc3RydWN0O1xuXG4gIC8qKlxuICAgKiBUaGUgQ29kZUJ1aWxkIHByb2plY3QgdGhhdCB3aWxsIHJ1biB0aGUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gRG9ja2VySHViIGFuZCBFQ1IuXG4gICAqIEBkZWZhdWx0IC0gZWl0aGVyIG5vIHN5bmMgam9iIGlzIHByZXNlbnQgb3IgaXQncyBub3QgZGVmaW5lZCB5ZXQuXG4gICAqL1xuICByZWFkb25seSBzeW5jSm9iPzogY29kZWJ1aWxkLklQcm9qZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pcnJvclNvdXJjZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZHMgdG8gcnVuIHRvIHJldHJpZXZlIHRoZSBkb2NrZXIgaW1hZ2UuXG4gICAqIGUuZy4gWydkb2NrZXIgcHVsbCA8aW1hZ2UtaWQ+J11cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRhcmdldCBFQ1IgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgdG8gYmUgdXNlIGZvciB0aGUgdGFyZ2V0IEVDUiBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhZzogc3RyaW5nO1xufVxuXG4vKiogQWRkaXRpb25hbCBvcHRpb25zIHdoZW4gY29uZmlndXJpbmcgYSBNaXJyb3IgU291cmNlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWlycm9yU291cmNlRGlyZWN0b3J5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUYWcgb2YgdGhlIGJ1aWx0IGltYWdlLlxuICAgKiBAZGVmYXVsdCAnbGF0ZXN0J1xuICAgKi9cbiAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZCBhcmdzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYnVpbGQgYXJncyBhcmUgcGFzc2VkXG4gICAqL1xuICByZWFkb25seSBidWlsZEFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFNvdXJjZSBvZiB0aGUgaW1hZ2UuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNaXJyb3JTb3VyY2Uge1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYW4gaW1hZ2UgZnJvbSBEb2NrZXJIdWIuXG4gICAqXG4gICAqIEBwYXJhbSBpbWFnZSBlLmcganNpaS9zdXBlcmNoYWluXG4gICAqIEBwYXJhbSB0YWcgb3B0aW9uYWwsIGRlZmF1bHRzIHRvICdsYXRlc3QnXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kJ3MgbmFtZSBpbmFjY3VyYXRlbHkgZXhwcmVzc2VzIHRoYXQgdGhlIGltYWdlIGNvbWVzXG4gICAqIGZyb20gRG9ja2VySHViLCB3aGVuIGFueSBwdWJsaWNseS1hY2Nlc3NpYmxlIHJlcG9zaXRvcnkgY2FuIGJlIHVzZWQuIFByZWZlclxuICAgKiB1c2luZyBgZnJvbUltYWdlTmFtZShzdHJpbmcsIHN0cmluZz8pYCBpbnN0ZWFkLCB3aGljaCBpcyBtb3JlIGFwdGx5IG5hbWVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9ja2VySHViKGltYWdlOiBzdHJpbmcsIHRhZzogc3RyaW5nID0gJ2xhdGVzdCcpOiBNaXJyb3JTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmZyb21QdWJsaWNJbWFnZShpbWFnZSwgdGFnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYW4gaW1hZ2UgZnJvbSBEb2NrZXJIdWIgb3IgYSByZXBvc2l0b3J5LXF1YWxpZmllZCBpbWFnZSBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gaW1hZ2UgZS5nIHB1YmxpYy5lY3IuYXdzL2pzaWkvc3VwZXJjaGFpblxuICAgKiBAcGFyYW0gdGFnIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAnbGF0ZXN0J1xuICAgKiBAcGFyYW0gZWNyUmVwb3NpdG9yeU5hbWUgdGhlIG5hbWUgb2YgdGhlIEVDUiBSZXBvc2l0b3J5IHRvIHVzZSAoZS5nOiBqc2lpL3N1cGVyY2hhaW4pXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21QdWJsaWNJbWFnZShpbWFnZTogc3RyaW5nLCB0YWc6IHN0cmluZyA9ICdsYXRlc3QnLCBlY3JSZXBvc2l0b3J5TmFtZTogc3RyaW5nID0gaW1hZ2UuaW5jbHVkZXMoJy8nKSA/IGltYWdlIDogYGxpYnJhcnkvJHtpbWFnZX1gKTogTWlycm9yU291cmNlIHtcbiAgICBjbGFzcyBEb2NrZXJIdWJNaXJyb3JTb3VyY2UgZXh0ZW5kcyBNaXJyb3JTb3VyY2Uge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmIChpbWFnZS5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbWFnZSBtdXN0IG5vdCBpbmNsdWRlIHRhZycpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNpbXVsYXRlcyBEb2NrZXJIdWIgYnkgcHJlZml4aW5nIGxpYnJhcnkvIHRvIG9mZmljaWFsIGltYWdlc1xuICAgICAgICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGltYWdlLmluY2x1ZGVzKCcvJykgPyBpbWFnZSA6IGBsaWJyYXJ5LyR7aW1hZ2V9YDtcbiAgICAgICAgc3VwZXIocmVwb3NpdG9yeU5hbWUsIHRhZywgdW5kZWZpbmVkLCBlY3JSZXBvc2l0b3J5TmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBiaW5kKG9wdGlvbnM6IE1pcnJvclNvdXJjZUJpbmRPcHRpb25zKTogTWlycm9yU291cmNlQ29uZmlnIHtcbiAgICAgICAgY29uc3QgZWNySW1hZ2VVcmkgPSBgJHtvcHRpb25zLmVjclJlZ2lzdHJ5fS8ke3RoaXMuZWNyUmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgYGRvY2tlciBwdWxsICR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ31gLFxuICAgICAgICAgICAgYGRvY2tlciB0YWcgJHt0aGlzLnJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfSAke2VjckltYWdlVXJpfWAsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5lY3JSZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICB0YWc6IHRoaXMudGFnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgRG9ja2VySHViTWlycm9yU291cmNlKCk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZnJvbURpcigpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21EaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIHRhZz86IHN0cmluZyk6IE1pcnJvclNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbURpcihkaXJlY3RvcnksIHJlcG9zaXRvcnlOYW1lLCB7IHRhZyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYW4gaW1hZ2UgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeSBQYXRoIHRvIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBEb2NrZXJmaWxlLlxuICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgUmVwb3NpdG9yeSBuYW1lIG9mIHRoZSBidWlsdCBpbWFnZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURpcihkaXJlY3Rvcnk6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgb3B0czogTWlycm9yU291cmNlRGlyZWN0b3J5T3B0aW9ucyA9IHt9KTogTWlycm9yU291cmNlIHtcbiAgICBjbGFzcyBEaXJlY3RvcnlNaXJyb3JTb3VyY2UgZXh0ZW5kcyBNaXJyb3JTb3VyY2Uge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHJlcG9zaXRvcnlOYW1lLCBvcHRzLnRhZyA/PyAnbGF0ZXN0JywgZGlyZWN0b3J5KTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIGJpbmQob3B0aW9uczogTWlycm9yU291cmNlQmluZE9wdGlvbnMpOiBNaXJyb3JTb3VyY2VDb25maWcge1xuICAgICAgICBjb25zdCBhc3NldCA9IG5ldyBzM0Fzc2V0cy5Bc3NldChvcHRpb25zLnNjb3BlLCBgQnVpbGRDb250ZXh0JHt0aGlzLmRpcmVjdG9yeX0ke0pTT04uc3RyaW5naWZ5KG9wdHMuYnVpbGRBcmdzID8/IHt9KX1gLCB7XG4gICAgICAgICAgcGF0aDogdGhpcy5kaXJlY3RvcnkhLFxuXG4gICAgICAgICAgLy8gTmVlZCB0byBnaXZlIGFuIGV4cGxpY2l0IGRpc3BsYXlOYW1lLCBiZWNhdXNlIHRoZSBkaXJlY3RvcnkgbWlnaHRcbiAgICAgICAgICAvLyBiZSBhYnNvbHV0ZSwgYW5kIHRoZSBkaXJlY3RvcmllcyBhbmQgYXJncyBhcmUgbGlhYmxlIHRvIGNoYW5nZSBvblxuICAgICAgICAgIC8vIGV2ZXJ5IHBpcGVsaW5lIHJ1bi5cbiAgICAgICAgICBkaXNwbGF5TmFtZTogYEVjck1pcnJvciBkaXJlY3RvcnkgJHtwYXRoLmJhc2VuYW1lKGRpcmVjdG9yeSl9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChvcHRpb25zLnN5bmNKb2IpIHtcbiAgICAgICAgICBhc3NldC5ncmFudFJlYWQob3B0aW9ucy5zeW5jSm9iKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlY3JJbWFnZVVyaSA9IGAke29wdGlvbnMuZWNyUmVnaXN0cnl9LyR7dGhpcy5lY3JSZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ31gO1xuICAgICAgICBjb25zdCBjbWRGbGFncyA9IFtdO1xuICAgICAgICBjbWRGbGFncy5wdXNoKCctLXB1bGwnKTtcbiAgICAgICAgY21kRmxhZ3MucHVzaCgnLXQnLCBlY3JJbWFnZVVyaSk7XG5cbiAgICAgICAgaWYgKG9wdHMuYnVpbGRBcmdzKSB7XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMob3B0cy5idWlsZEFyZ3MpLmZvckVhY2goKFtrLCB2XSkgPT4gY21kRmxhZ3MucHVzaCgnLS1idWlsZC1hcmcnLCBgJHtrfT0ke3Z9YCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgemlwRmlsZSA9IGAke3RoaXMucmVwb3NpdG9yeU5hbWV9LnppcGA7XG4gICAgICAgIGNvbnN0IHRtcERpciA9IHRoaXMucmVwb3NpdG9yeU5hbWU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICAgYHJtIC1yZiAke3ppcEZpbGV9ICR7dG1wRGlyfWAsXG4gICAgICAgICAgICBgYXdzIHMzIGNwICR7YXNzZXQuczNPYmplY3RVcmx9ICR7emlwRmlsZX1gLFxuICAgICAgICAgICAgYHVuemlwICR7emlwRmlsZX0gLWQgJHt0bXBEaXJ9YCxcbiAgICAgICAgICAgIGBkb2NrZXIgYnVpbGQgJHtjbWRGbGFncy5qb2luKCcgJyl9ICR7dG1wRGlyfWAsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXBvc2l0b3J5TmFtZTogdGhpcy5lY3JSZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICB0YWc6IHRoaXMudGFnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERpcmVjdG9yeU1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFnOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpcmVjdG9yeT86IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWNyUmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5TmFtZSxcbiAgKSB7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGUgc291cmNlIHdpdGggdGhlIEVjck1pcnJvciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyk6IE1pcnJvclNvdXJjZUNvbmZpZztcbn1cbiJdfQ==
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlycm9yLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1pcnJvci1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFDbEMsNkNBR3FCO0FBc0RyQjs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFFaEM7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhLEVBQUUsTUFBYyxRQUFRO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWMsUUFBUSxFQUFFLG9CQUE0QixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFO1FBQy9JLE1BQU0scUJBQXNCLFNBQVEsWUFBWTtZQUM5QztnQkFDRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztpQkFDL0M7Z0JBQ0QsK0RBQStEO2dCQUMvRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUM7Z0JBQ3hFLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFTSxJQUFJLENBQUMsT0FBZ0M7Z0JBQzFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLEdB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QyxpQkFBaUI7b0JBQ3RDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztpQkFDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQ3FCLGNBQXNCLEVBQ3RCLEdBQVcsRUFDWCxTQUFrQixFQUNsQixvQkFBb0IsY0FBYztRQUhsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlCO0lBRXZELENBQUM7Q0FNRjtBQTFIRCxvQ0EwSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBhd3NfY29kZWJ1aWxkIGFzIGNvZGVidWlsZCxcbiAgYXdzX3MzX2Fzc2V0cyBhcyBzM0Fzc2V0cyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWlycm9yU291cmNlQmluZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCBFQ1IgcmVnaXN0cnlcbiAgICovXG4gIHJlYWRvbmx5IGVjclJlZ2lzdHJ5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgdG8gYXR0YWNoIGFueSBjb25zdHJ1Y3RzIHRoYXQgbWF5IGFsc28gYmUgbmVlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogVGhlIENvZGVCdWlsZCBwcm9qZWN0IHRoYXQgd2lsbCBydW4gdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIERvY2tlckh1YiBhbmQgRUNSLlxuICAgKiBAZGVmYXVsdCAtIGVpdGhlciBubyBzeW5jIGpvYiBpcyBwcmVzZW50IG9yIGl0J3Mgbm90IGRlZmluZWQgeWV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3luY0pvYj86IGNvZGVidWlsZC5JUHJvamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaXJyb3JTb3VyY2VDb25maWcge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmRzIHRvIHJ1biB0byByZXRyaWV2ZSB0aGUgZG9ja2VyIGltYWdlLlxuICAgKiBlLmcuIFsnZG9ja2VyIHB1bGwgPGltYWdlLWlkPiddXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgRUNSIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIHRvIGJlIHVzZSBmb3IgdGhlIHRhcmdldCBFQ1IgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSB0YWc6IHN0cmluZztcbn1cblxuLyoqIEFkZGl0aW9uYWwgb3B0aW9ucyB3aGVuIGNvbmZpZ3VyaW5nIGEgTWlycm9yIFNvdXJjZSBmcm9tIGEgbG9jYWwgZGlyZWN0b3J5ICovXG5leHBvcnQgaW50ZXJmYWNlIE1pcnJvclNvdXJjZURpcmVjdG9yeU9wdGlvbnMge1xuICAvKipcbiAgICogVGFnIG9mIHRoZSBidWlsdCBpbWFnZS5cbiAgICogQGRlZmF1bHQgJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJ1aWxkIGFyZ3MgYXJlIHBhc3NlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBTb3VyY2Ugb2YgdGhlIGltYWdlLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWlycm9yU291cmNlIHtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gRG9ja2VySHViLlxuICAgKlxuICAgKiBAcGFyYW0gaW1hZ2UgZS5nIGpzaWkvc3VwZXJjaGFpblxuICAgKiBAcGFyYW0gdGFnIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAnbGF0ZXN0J1xuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCdzIG5hbWUgaW5hY2N1cmF0ZWx5IGV4cHJlc3NlcyB0aGF0IHRoZSBpbWFnZSBjb21lc1xuICAgKiBmcm9tIERvY2tlckh1Yiwgd2hlbiBhbnkgcHVibGljbHktYWNjZXNzaWJsZSByZXBvc2l0b3J5IGNhbiBiZSB1c2VkLiBQcmVmZXJcbiAgICogdXNpbmcgYGZyb21JbWFnZU5hbWUoc3RyaW5nLCBzdHJpbmc/KWAgaW5zdGVhZCwgd2hpY2ggaXMgbW9yZSBhcHRseSBuYW1lZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbURvY2tlckh1YihpbWFnZTogc3RyaW5nLCB0YWc6IHN0cmluZyA9ICdsYXRlc3QnKTogTWlycm9yU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tUHVibGljSW1hZ2UoaW1hZ2UsIHRhZyk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gRG9ja2VySHViIG9yIGEgcmVwb3NpdG9yeS1xdWFsaWZpZWQgaW1hZ2UgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIGltYWdlIGUuZyBwdWJsaWMuZWNyLmF3cy9qc2lpL3N1cGVyY2hhaW5cbiAgICogQHBhcmFtIHRhZyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gJ2xhdGVzdCdcbiAgICogQHBhcmFtIGVjclJlcG9zaXRvcnlOYW1lIHRoZSBuYW1lIG9mIHRoZSBFQ1IgUmVwb3NpdG9yeSB0byB1c2UgKGUuZzoganNpaS9zdXBlcmNoYWluKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUHVibGljSW1hZ2UoaW1hZ2U6IHN0cmluZywgdGFnOiBzdHJpbmcgPSAnbGF0ZXN0JywgZWNyUmVwb3NpdG9yeU5hbWU6IHN0cmluZyA9IGltYWdlLmluY2x1ZGVzKCcvJykgPyBpbWFnZSA6IGBsaWJyYXJ5LyR7aW1hZ2V9YCk6IE1pcnJvclNvdXJjZSB7XG4gICAgY2xhc3MgRG9ja2VySHViTWlycm9yU291cmNlIGV4dGVuZHMgTWlycm9yU291cmNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaW1hZ2UuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW1hZ2UgbXVzdCBub3QgaW5jbHVkZSB0YWcnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzaW11bGF0ZXMgRG9ja2VySHViIGJ5IHByZWZpeGluZyBsaWJyYXJ5LyB0byBvZmZpY2lhbCBpbWFnZXNcbiAgICAgICAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSBpbWFnZS5pbmNsdWRlcygnLycpID8gaW1hZ2UgOiBgbGlicmFyeS8ke2ltYWdlfWA7XG4gICAgICAgIHN1cGVyKHJlcG9zaXRvcnlOYW1lLCB0YWcsIHVuZGVmaW5lZCwgZWNyUmVwb3NpdG9yeU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBwdWJsaWMgYmluZChvcHRpb25zOiBNaXJyb3JTb3VyY2VCaW5kT3B0aW9ucyk6IE1pcnJvclNvdXJjZUNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGVjckltYWdlVXJpID0gYCR7b3B0aW9ucy5lY3JSZWdpc3RyeX0vJHt0aGlzLmVjclJlcG9zaXRvcnlOYW1lfToke3RoaXMudGFnfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgIGBkb2NrZXIgcHVsbCAke3RoaXMucmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YCxcbiAgICAgICAgICAgIGBkb2NrZXIgdGFnICR7dGhpcy5yZXBvc2l0b3J5TmFtZX06JHt0aGlzLnRhZ30gJHtlY3JJbWFnZVVyaX1gLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHRoaXMuZWNyUmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgdGFnOiB0aGlzLnRhZyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERvY2tlckh1Yk1pcnJvclNvdXJjZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZyb21EaXIoKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB0YWc/OiBzdHJpbmcpOiBNaXJyb3JTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmZyb21EaXIoZGlyZWN0b3J5LCByZXBvc2l0b3J5TmFtZSwgeyB0YWcgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIGFuIGltYWdlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgUGF0aCB0byBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgRG9ja2VyZmlsZS5cbiAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFJlcG9zaXRvcnkgbmFtZSBvZiB0aGUgYnVpbHQgaW1hZ2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21EaXIoZGlyZWN0b3J5OiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIG9wdHM6IE1pcnJvclNvdXJjZURpcmVjdG9yeU9wdGlvbnMgPSB7fSk6IE1pcnJvclNvdXJjZSB7XG4gICAgY2xhc3MgRGlyZWN0b3J5TWlycm9yU291cmNlIGV4dGVuZHMgTWlycm9yU291cmNlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihyZXBvc2l0b3J5TmFtZSwgb3B0cy50YWcgPz8gJ2xhdGVzdCcsIGRpcmVjdG9yeSk7XG4gICAgICB9XG5cbiAgICAgIHB1YmxpYyBiaW5kKG9wdGlvbnM6IE1pcnJvclNvdXJjZUJpbmRPcHRpb25zKTogTWlycm9yU291cmNlQ29uZmlnIHtcbiAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgczNBc3NldHMuQXNzZXQob3B0aW9ucy5zY29wZSwgYEJ1aWxkQ29udGV4dCR7dGhpcy5kaXJlY3Rvcnl9JHtKU09OLnN0cmluZ2lmeShvcHRzLmJ1aWxkQXJncyA/PyB7fSl9YCwge1xuICAgICAgICAgIHBhdGg6IHRoaXMuZGlyZWN0b3J5ISxcblxuICAgICAgICAgIC8vIE5lZWQgdG8gZ2l2ZSBhbiBleHBsaWNpdCBkaXNwbGF5TmFtZSwgYmVjYXVzZSB0aGUgZGlyZWN0b3J5IG1pZ2h0XG4gICAgICAgICAgLy8gYmUgYWJzb2x1dGUsIGFuZCB0aGUgZGlyZWN0b3JpZXMgYW5kIGFyZ3MgYXJlIGxpYWJsZSB0byBjaGFuZ2Ugb25cbiAgICAgICAgICAvLyBldmVyeSBwaXBlbGluZSBydW4uXG4gICAgICAgICAgZGlzcGxheU5hbWU6IGBFY3JNaXJyb3IgZGlyZWN0b3J5ICR7cGF0aC5iYXNlbmFtZShkaXJlY3RvcnkpfWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3B0aW9ucy5zeW5jSm9iKSB7XG4gICAgICAgICAgYXNzZXQuZ3JhbnRSZWFkKG9wdGlvbnMuc3luY0pvYik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWNySW1hZ2VVcmkgPSBgJHtvcHRpb25zLmVjclJlZ2lzdHJ5fS8ke3RoaXMuZWNyUmVwb3NpdG9yeU5hbWV9OiR7dGhpcy50YWd9YDtcbiAgICAgICAgY29uc3QgY21kRmxhZ3MgPSBbXTtcbiAgICAgICAgY21kRmxhZ3MucHVzaCgnLS1wdWxsJyk7XG4gICAgICAgIGNtZEZsYWdzLnB1c2goJy10JywgZWNySW1hZ2VVcmkpO1xuXG4gICAgICAgIGlmIChvcHRzLmJ1aWxkQXJncykge1xuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdHMuYnVpbGRBcmdzKS5mb3JFYWNoKChbaywgdl0pID0+IGNtZEZsYWdzLnB1c2goJy0tYnVpbGQtYXJnJywgYCR7a309JHt2fWApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHppcEZpbGUgPSBgJHt0aGlzLnJlcG9zaXRvcnlOYW1lfS56aXBgO1xuICAgICAgICBjb25zdCB0bXBEaXIgPSB0aGlzLnJlcG9zaXRvcnlOYW1lO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgIGBybSAtcmYgJHt6aXBGaWxlfSAke3RtcERpcn1gLFxuICAgICAgICAgICAgYGF3cyBzMyBjcCAke2Fzc2V0LnMzT2JqZWN0VXJsfSAke3ppcEZpbGV9YCxcbiAgICAgICAgICAgIGB1bnppcCAke3ppcEZpbGV9IC1kICR7dG1wRGlyfWAsXG4gICAgICAgICAgICBgZG9ja2VyIGJ1aWxkICR7Y21kRmxhZ3Muam9pbignICcpfSAke3RtcERpcn1gLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IHRoaXMuZWNyUmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgdGFnOiB0aGlzLnRhZyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEaXJlY3RvcnlNaXJyb3JTb3VyY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhZzogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBkaXJlY3Rvcnk/OiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVjclJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeU5hbWUsXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmQgdGhlIHNvdXJjZSB3aXRoIHRoZSBFY3JNaXJyb3IgY29uc3RydWN0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQob3B0aW9uczogTWlycm9yU291cmNlQmluZE9wdGlvbnMpOiBNaXJyb3JTb3VyY2VDb25maWc7XG59XG4iXX0=
|
package/lib/repo.js
CHANGED
@@ -70,11 +70,10 @@ class GitHubRepo {
|
|
70
70
|
return sourceOutput;
|
71
71
|
}
|
72
72
|
createBuildSource(_, webhook, options = {}) {
|
73
|
-
var _a;
|
74
73
|
if (options.branch && options.branches) {
|
75
74
|
throw new Error('Specify at most one of \'branch\' and \'branches\'');
|
76
75
|
}
|
77
|
-
const branches =
|
76
|
+
const branches = options.branches ?? (options.branch ? [options.branch] : []);
|
78
77
|
return aws_cdk_lib_1.aws_codebuild.Source.gitHub({
|
79
78
|
owner: this.owner,
|
80
79
|
repo: this.repo,
|
@@ -121,4 +120,4 @@ class WritableGitHubRepo extends GitHubRepo {
|
|
121
120
|
}
|
122
121
|
}
|
123
122
|
exports.WritableGitHubRepo = WritableGitHubRepo;
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSXFCO0FBb0NyQixNQUFhLGNBQWM7SUFJekIsWUFBNkIsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFINUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFLcEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQTRCLEVBQUUsTUFBYztRQUNuRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzlCLFNBQVMsRUFBRSxRQUFRO1NBQ3BCLENBQUMsQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLElBQUksOEJBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLHNDQUFpQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNO1lBQ04sTUFBTSxFQUFFLFlBQVk7U0FDckIsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7SUFDL0MsQ0FBQztJQUVNLGlCQUFpQixDQUFDLENBQVksRUFBRSxRQUFpQixFQUFFLFVBQThCLEVBQUc7UUFDekYsT0FBTywyQkFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDOUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtR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QyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQXJCRCxnREFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTZWNyZXRWYWx1ZSwgU2VjcmV0c01hbmFnZXJTZWNyZXRPcHRpb25zLFxuICBhd3NfY29kZWJ1aWxkIGFzIGNidWlsZCwgYXdzX2NvZGVjb21taXQgYXMgY2NvbW1pdCxcbiAgYXdzX2NvZGVwaXBlbGluZSBhcyBjcGlwZWxpbmUsIGF3c19jb2RlcGlwZWxpbmVfYWN0aW9ucyBhcyBjcGlwZWxpbmVfYWN0aW9ucyxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBFeHRlcm5hbFNlY3JldCB9IGZyb20gJy4vcGVybWlzc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSZXBvIHtcbiAgcmVwb3NpdG9yeVVybEh0dHA6IHN0cmluZztcbiAgcmVwb3NpdG9yeVVybFNzaDogc3RyaW5nO1xuICByZWFkb25seSBhbGxvd3NCYWRnZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdG9rZW5TZWNyZXRBcm4/OiBzdHJpbmc7XG4gIGNyZWF0ZUJ1aWxkU291cmNlKHBhcmVudDogQ29uc3RydWN0LCB3ZWJob29rOiBib29sZWFuLCBvcHRpb25zPzogQnVpbGRTb3VyY2VPcHRpb25zKTogY2J1aWxkLklTb3VyY2U7XG4gIGNyZWF0ZVNvdXJjZVN0YWdlKHBpcGVsaW5lOiBjcGlwZWxpbmUuUGlwZWxpbmUsIGJyYW5jaDogc3RyaW5nKTogY3BpcGVsaW5lLkFydGlmYWN0O1xuICBkZXNjcmliZSgpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTb3VyY2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNpbmdsZSBicmFuY2hcbiAgICpcbiAgICogQ2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGBicmFuY2hlc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQWxsIGJyYW5jaGVzXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgYnJhbmNoZXNgIGluc3RlYWQuXG4gICAqL1xuICBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE11bHRpcGxlIGJyYW5jaGVzXG4gICAqXG4gICAqIENhbm5vdCBiZSBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCBgYnJhbmNoYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgYnJhbmNoZXNcbiAgICovXG4gIGJyYW5jaGVzPzogc3RyaW5nW107XG4gIGNsb25lRGVwdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDb2RlQ29tbWl0UmVwbyBpbXBsZW1lbnRzIElSZXBvIHtcbiAgcHVibGljIHJlYWRvbmx5IGFsbG93c0JhZGdlID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlblNlY3JldEFybj86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlcG9zaXRvcnk6IGNjb21taXQuSVJlcG9zaXRvcnkpIHtcblxuICB9XG5cbiAgcHVibGljIGNyZWF0ZVNvdXJjZVN0YWdlKHBpcGVsaW5lOiBjcGlwZWxpbmUuUGlwZWxpbmUsIGJyYW5jaDogc3RyaW5nKTogY3BpcGVsaW5lLkFydGlmYWN0IHtcbiAgICBjb25zdCBzdGFnZSA9IHBpcGVsaW5lLmFkZFN0YWdlKHtcbiAgICAgIHN0YWdlTmFtZTogJ1NvdXJjZScsXG4gICAgfSk7XG4gICAgY29uc3Qgc291cmNlT3V0cHV0ID0gbmV3IGNwaXBlbGluZS5BcnRpZmFjdCgnU291cmNlJyk7XG4gICAgc3RhZ2UuYWRkQWN0aW9uKG5ldyBjcGlwZWxpbmVfYWN0aW9ucy5Db2RlQ29tbWl0U291cmNlQWN0aW9uKHtcbiAgICAgIGFjdGlvbk5hbWU6ICdQdWxsJyxcbiAgICAgIHJlcG9zaXRvcnk6IHRoaXMucmVwb3NpdG9yeSxcbiAgICAgIGJyYW5jaCxcbiAgICAgIG91dHB1dDogc291cmNlT3V0cHV0LFxuICAgIH0pKTtcbiAgICByZXR1cm4gc291cmNlT3V0cHV0O1xuICB9XG5cbiAgcHVibGljIGdldCByZXBvc2l0b3J5VXJsSHR0cCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5LnJlcG9zaXRvcnlDbG9uZVVybEh0dHA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcG9zaXRvcnlVcmxTc2goKSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeS5yZXBvc2l0b3J5Q2xvbmVVcmxTc2g7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQnVpbGRTb3VyY2UoXzogQ29uc3RydWN0LCBfd2ViaG9vazogYm9vbGVhbiwgb3B0aW9uczogQnVpbGRTb3VyY2VPcHRpb25zID0geyB9KTogY2J1aWxkLklTb3VyY2Uge1xuICAgIHJldHVybiBjYnVpbGQuU291cmNlLmNvZGVDb21taXQoe1xuICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5LFxuICAgICAgY2xvbmVEZXB0aDogb3B0aW9ucy5jbG9uZURlcHRoLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlc2NyaWJlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeS5yZXBvc2l0b3J5TmFtZTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgR2l0SHViUmVwb1Byb3BzIHtcbiAgLyoqXG4gICAqIFNlY3JldHMgTWFuYWdlciBBUk4gb2YgdGhlIE9BdXRoIHRva2VuIHNlY3JldCB0aGF0IGFsbG93cyBhY2Nlc3MgdG8geW91ciBnaXRodWIgcmVwby5cbiAgICovXG4gIHRva2VuU2VjcmV0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHJlZmVyZW5jaW5nIGEgc2VjcmV0IHZhbHVlIGZyb20gU2VjcmV0cyBNYW5hZ2VyXG4gICAqL1xuICB0b2tlblNlY3JldE9wdGlvbnM/OiBTZWNyZXRzTWFuYWdlclNlY3JldE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEluIHRoZSBmb3JtIFwiYWNjb3VudC9yZXBvXCIuXG4gICAqL1xuICByZXBvc2l0b3J5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRIdWJSZXBvIGltcGxlbWVudHMgSVJlcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgYWxsb3dzQmFkZ2UgPSB0cnVlO1xuICBwdWJsaWMgcmVhZG9ubHkgb3duZXI6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuU2VjcmV0QXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlblNlY3JldE9wdGlvbnM/OiBTZWNyZXRzTWFuYWdlclNlY3JldE9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEdpdEh1YlJlcG9Qcm9wcykge1xuICAgIGNvbnN0IHJlcG9zaXRvcnkgPSBwcm9wcy5yZXBvc2l0b3J5O1xuICAgIGlmIChyZXBvc2l0b3J5LmluZGV4T2YoJy8nKSA9PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXBvc2l0b3J5IG11c3QgYmUgb2YgdGhlIGZvcm0gXCJhY2NvdW50L3JlcG9cIicpO1xuICAgIH1cbiAgICBjb25zdCBbb3duZXIsIHJlcG9dID0gcmVwb3NpdG9yeS5zcGxpdCgnLycpO1xuXG4gICAgdGhpcy5vd25lciA9IG93bmVyO1xuICAgIHRoaXMucmVwbyA9IHJlcG87XG4gICAgdGhpcy50b2tlblNlY3JldEFybiA9IHByb3BzLnRva2VuU2VjcmV0QXJuO1xuICAgIHRoaXMudG9rZW5TZWNyZXRPcHRpb25zID0gcHJvcHMudG9rZW5TZWNyZXRPcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGdldCByZXBvc2l0b3J5VXJsSHR0cCgpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3RoaXMub3duZXJ9LyR7dGhpcy5yZXBvfS5naXRgO1xuICB9XG5cbiAgcHVibGljIGdldCByZXBvc2l0b3J5VXJsU3NoKCkge1xuICAgIHJldHVybiBgZ2l0QGdpdGh1Yi5jb206JHt0aGlzLm93bmVyfS8ke3RoaXMucmVwb30uZ2l0YDtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVTb3VyY2VTdGFnZShwaXBlbGluZTogY3BpcGVsaW5lLlBpcGVsaW5lLCBicmFuY2g6IHN0cmluZyk6IGNwaXBlbGluZS5BcnRpZmFjdCB7XG4gICAgY29uc3Qgc3RhZ2UgPSBwaXBlbGluZS5hZGRTdGFnZSh7IHN0YWdlTmFtZTogJ1NvdXJjZScgfSk7XG5cbiAgICBjb25zdCBzb3VyY2VPdXRwdXQgPSBuZXcgY3BpcGVsaW5lLkFydGlmYWN0KCdTb3VyY2UnKTtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkdpdEh1YlNvdXJjZUFjdGlvbih7XG4gICAgICBhY3Rpb25OYW1lOiAnUHVsbCcsXG4gICAgICBicmFuY2gsXG4gICAgICBvYXV0aFRva2VuOiBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcih0aGlzLnRva2VuU2VjcmV0QXJuLCB0aGlzLnRva2VuU2VjcmV0T3B0aW9ucyksXG4gICAgICBvd25lcjogdGhpcy5vd25lcixcbiAgICAgIHJlcG86IHRoaXMucmVwbyxcbiAgICAgIG91dHB1dDogc291cmNlT3V0cHV0LFxuICAgIH0pKTtcbiAgICByZXR1cm4gc291cmNlT3V0cHV0O1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUJ1aWxkU291cmNlKF86IENvbnN0cnVjdCwgd2ViaG9vazogYm9vbGVhbiwgb3B0aW9uczogQnVpbGRTb3VyY2VPcHRpb25zID0geyB9KTogY2J1aWxkLklTb3VyY2Uge1xuICAgIGlmIChvcHRpb25zLmJyYW5jaCAmJiBvcHRpb25zLmJyYW5jaGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NwZWNpZnkgYXQgbW9zdCBvbmUgb2YgXFwnYnJhbmNoXFwnIGFuZCBcXCdicmFuY2hlc1xcJycpO1xuICAgIH1cbiAgICBjb25zdCBicmFuY2hlcyA9IG9wdGlvbnMuYnJhbmNoZXMgPz8gKG9wdGlvbnMuYnJhbmNoID8gW29wdGlvbnMuYnJhbmNoXSA6IFtdKTtcblxuICAgIHJldHVybiBjYnVpbGQuU291cmNlLmdpdEh1Yih7XG4gICAgICBvd25lcjogdGhpcy5vd25lcixcbiAgICAgIHJlcG86IHRoaXMucmVwbyxcbiAgICAgIHdlYmhvb2ssXG4gICAgICBjbG9uZURlcHRoOiBvcHRpb25zLmNsb25lRGVwdGgsXG4gICAgICByZXBvcnRCdWlsZFN0YXR1czogd2ViaG9vayxcbiAgICAgIHdlYmhvb2tGaWx0ZXJzOiB3ZWJob29rXG4gICAgICAgID8gdGhpcy5jcmVhdGVXZWJob29rRmlsdGVycyhicmFuY2hlcylcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVzY3JpYmUoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMub3duZXJ9LyR7dGhpcy5yZXBvfWA7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVdlYmhvb2tGaWx0ZXJzKGJyYW5jaGVzOiBzdHJpbmdbXSkge1xuICAgIGlmIChicmFuY2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBUdXJuIHRoZSBsaXN0IG9mIGJyYW5jaGVzIGludG8gYSByZWdleFxuICAgICAgY29uc3QgYnJhbmNoRXhwciA9IGJyYW5jaGVzLm1hcChiID0+IGBecmVmcy9oZWFkcy8ke2J9JGApLmpvaW4oJ3wnKTtcblxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgY2J1aWxkLkZpbHRlckdyb3VwLmluRXZlbnRPZihjYnVpbGQuRXZlbnRBY3Rpb24uUFVTSClcbiAgICAgICAgICAuYW5kSGVhZFJlZklzKGJyYW5jaEV4cHIpLFxuICAgICAgICBjYnVpbGQuRmlsdGVyR3JvdXAuaW5FdmVudE9mKGNidWlsZC5FdmVudEFjdGlvbi5QVUxMX1JFUVVFU1RfQ1JFQVRFRCwgY2J1aWxkLkV2ZW50QWN0aW9uLlBVTExfUkVRVUVTVF9VUERBVEVEKVxuICAgICAgICAgIC5hbmRCYXNlUmVmSXMoYnJhbmNoRXhwciksXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgY2J1aWxkLkZpbHRlckdyb3VwLmluRXZlbnRPZihcbiAgICAgICAgY2J1aWxkLkV2ZW50QWN0aW9uLlBVU0gsXG4gICAgICAgIGNidWlsZC5FdmVudEFjdGlvbi5QVUxMX1JFUVVFU1RfQ1JFQVRFRCxcbiAgICAgICAgY2J1aWxkLkV2ZW50QWN0aW9uLlBVTExfUkVRVUVTVF9VUERBVEVELFxuICAgICAgKSxcbiAgICBdO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGFibGVHaXRIdWJSZXBvUHJvcHMgZXh0ZW5kcyBHaXRIdWJSZXBvUHJvcHMge1xuICAvKipcbiAgICogU1NIIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBUaGlzIGlzIHJlcXVpcmVkIGlmIHlvdSB3aXNoIHRvIGJlIGFibGUgdG8gdXNlIGFjdGlvbnMgdGhhdCB3cml0ZSB0byB0aGUgcmVwb1xuICAgKiBzdWNoIGFzIGRvY3MgcHVibGlzaGluZyBhbmQgYXV0b21hdGljIGJ1bXBzLlxuICAgKi9cbiAgc3NoS2V5U2VjcmV0OiBFeHRlcm5hbFNlY3JldDtcblxuICAvKipcbiAgICogVGhlIHVzZXJuYW1lIHRvIHVzZSBmb3IgdGhlIHB1Ymxpc2hlZCBjb21taXRzXG4gICAqL1xuICBjb21taXRVc2VybmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW1haWwgYWRkcmVzcyB0byB1c2UgZm9yIHRoZSBwdWJsaXNoZWQgY29tbWl0c1xuICAgKi9cbiAgY29tbWl0RW1haWw6IHN0cmluZztcblxufVxuXG5leHBvcnQgY2xhc3MgV3JpdGFibGVHaXRIdWJSZXBvIGV4dGVuZHMgR2l0SHViUmVwbyB7XG5cbiAgcHVibGljIHN0YXRpYyBpc1dyaXRhYmxlR2l0SHViUmVwbyhyZXBvOiBJUmVwbyk6IHJlcG8gaXMgV3JpdGFibGVHaXRIdWJSZXBvIHtcbiAgICBjb25zdCBvYmogPSByZXBvIGFzIGFueTtcblxuICAgIHJldHVybiAnc3NoS2V5U2VjcmV0JyBpbiBvYmpcbiAgICAgICYmICdjb21taXRFbWFpbCcgaW4gb2JqXG4gICAgICAmJiAnY29tbWl0VXNlcm5hbWUnIGluIG9iajtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBzc2hLZXlTZWNyZXQ6IEV4dGVybmFsU2VjcmV0O1xuICBwdWJsaWMgcmVhZG9ubHkgY29tbWl0RW1haWw6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNvbW1pdFVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFdyaXRhYmxlR2l0SHViUmVwb1Byb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zc2hLZXlTZWNyZXQgPSBwcm9wcy5zc2hLZXlTZWNyZXQ7XG4gICAgdGhpcy5jb21taXRFbWFpbCA9IHByb3BzLmNvbW1pdEVtYWlsO1xuICAgIHRoaXMuY29tbWl0VXNlcm5hbWUgPSBwcm9wcy5jb21taXRVc2VybmFtZTtcbiAgfVxufVxuIl19
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBSXFCO0FBb0NyQixNQUFhLGNBQWM7SUFJekIsWUFBNkIsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFINUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFLcEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQTRCLEVBQUUsTUFBYztRQUNuRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzlCLFNBQVMsRUFBRSxRQUFRO1NBQ3BCLENBQUMsQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLElBQUksOEJBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLHNDQUFpQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNO1lBQ04sTUFBTSxFQUFFLFlBQVk7U0FDckIsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7SUFDL0MsQ0FBQztJQUVNLGlCQUFpQixDQUFDLENBQVksRUFBRSxRQUFpQixFQUFFLFVBQThCLEVBQUc7UUFDekYsT0FBTywyQkFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDOUIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtR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R0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBckJELGdEQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNlY3JldFZhbHVlLCBTZWNyZXRzTWFuYWdlclNlY3JldE9wdGlvbnMsXG4gIGF3c19jb2RlYnVpbGQgYXMgY2J1aWxkLCBhd3NfY29kZWNvbW1pdCBhcyBjY29tbWl0LFxuICBhd3NfY29kZXBpcGVsaW5lIGFzIGNwaXBlbGluZSwgYXdzX2NvZGVwaXBlbGluZV9hY3Rpb25zIGFzIGNwaXBlbGluZV9hY3Rpb25zLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEV4dGVybmFsU2VjcmV0IH0gZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcG8ge1xuICByZXBvc2l0b3J5VXJsSHR0cDogc3RyaW5nO1xuICByZXBvc2l0b3J5VXJsU3NoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFsbG93c0JhZGdlOiBib29sZWFuO1xuICByZWFkb25seSB0b2tlblNlY3JldEFybj86IHN0cmluZztcbiAgY3JlYXRlQnVpbGRTb3VyY2UocGFyZW50OiBDb25zdHJ1Y3QsIHdlYmhvb2s6IGJvb2xlYW4sIG9wdGlvbnM/OiBCdWlsZFNvdXJjZU9wdGlvbnMpOiBjYnVpbGQuSVNvdXJjZTtcbiAgY3JlYXRlU291cmNlU3RhZ2UocGlwZWxpbmU6IGNwaXBlbGluZS5QaXBlbGluZSwgYnJhbmNoOiBzdHJpbmcpOiBjcGlwZWxpbmUuQXJ0aWZhY3Q7XG4gIGRlc2NyaWJlKCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFNvdXJjZU9wdGlvbnMge1xuICAvKipcbiAgICogU2luZ2xlIGJyYW5jaFxuICAgKlxuICAgKiBDYW5ub3QgYmUgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggYGJyYW5jaGVzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgYnJhbmNoZXNcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBicmFuY2hlc2AgaW5zdGVhZC5cbiAgICovXG4gIGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogTXVsdGlwbGUgYnJhbmNoZXNcbiAgICpcbiAgICogQ2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGBicmFuY2hgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBicmFuY2hlc1xuICAgKi9cbiAgYnJhbmNoZXM/OiBzdHJpbmdbXTtcbiAgY2xvbmVEZXB0aD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIENvZGVDb21taXRSZXBvIGltcGxlbWVudHMgSVJlcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgYWxsb3dzQmFkZ2UgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuU2VjcmV0QXJuPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeTogY2NvbW1pdC5JUmVwb3NpdG9yeSkge1xuXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU291cmNlU3RhZ2UocGlwZWxpbmU6IGNwaXBlbGluZS5QaXBlbGluZSwgYnJhbmNoOiBzdHJpbmcpOiBjcGlwZWxpbmUuQXJ0aWZhY3Qge1xuICAgIGNvbnN0IHN0YWdlID0gcGlwZWxpbmUuYWRkU3RhZ2Uoe1xuICAgICAgc3RhZ2VOYW1lOiAnU291cmNlJyxcbiAgICB9KTtcbiAgICBjb25zdCBzb3VyY2VPdXRwdXQgPSBuZXcgY3BpcGVsaW5lLkFydGlmYWN0KCdTb3VyY2UnKTtcbiAgICBzdGFnZS5hZGRBY3Rpb24obmV3IGNwaXBlbGluZV9hY3Rpb25zLkNvZGVDb21taXRTb3VyY2VBY3Rpb24oe1xuICAgICAgYWN0aW9uTmFtZTogJ1B1bGwnLFxuICAgICAgcmVwb3NpdG9yeTogdGhpcy5yZXBvc2l0b3J5LFxuICAgICAgYnJhbmNoLFxuICAgICAgb3V0cHV0OiBzb3VyY2VPdXRwdXQsXG4gICAgfSkpO1xuICAgIHJldHVybiBzb3VyY2VPdXRwdXQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcG9zaXRvcnlVcmxIdHRwKCkge1xuICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnkucmVwb3NpdG9yeUNsb25lVXJsSHR0cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVwb3NpdG9yeVVybFNzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5LnJlcG9zaXRvcnlDbG9uZVVybFNzaDtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVCdWlsZFNvdXJjZShfOiBDb25zdHJ1Y3QsIF93ZWJob29rOiBib29sZWFuLCBvcHRpb25zOiBCdWlsZFNvdXJjZU9wdGlvbnMgPSB7IH0pOiBjYnVpbGQuSVNvdXJjZSB7XG4gICAgcmV0dXJuIGNidWlsZC5Tb3VyY2UuY29kZUNvbW1pdCh7XG4gICAgICByZXBvc2l0b3J5OiB0aGlzLnJlcG9zaXRvcnksXG4gICAgICBjbG9uZURlcHRoOiBvcHRpb25zLmNsb25lRGVwdGgsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVzY3JpYmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvc2l0b3J5LnJlcG9zaXRvcnlOYW1lO1xuICB9XG59XG5cbmludGVyZmFjZSBHaXRIdWJSZXBvUHJvcHMge1xuICAvKipcbiAgICogU2VjcmV0cyBNYW5hZ2VyIEFSTiBvZiB0aGUgT0F1dGggdG9rZW4gc2VjcmV0IHRoYXQgYWxsb3dzIGFjY2VzcyB0byB5b3VyIGdpdGh1YiByZXBvLlxuICAgKi9cbiAgdG9rZW5TZWNyZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgcmVmZXJlbmNpbmcgYSBzZWNyZXQgdmFsdWUgZnJvbSBTZWNyZXRzIE1hbmFnZXJcbiAgICovXG4gIHRva2VuU2VjcmV0T3B0aW9ucz86IFNlY3JldHNNYW5hZ2VyU2VjcmV0T3B0aW9ucztcblxuICAvKipcbiAgICogSW4gdGhlIGZvcm0gXCJhY2NvdW50L3JlcG9cIi5cbiAgICovXG4gIHJlcG9zaXRvcnk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEdpdEh1YlJlcG8gaW1wbGVtZW50cyBJUmVwbyB7XG4gIHB1YmxpYyByZWFkb25seSBhbGxvd3NCYWRnZSA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSBvd25lcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVwbzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5TZWNyZXRBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuU2VjcmV0T3B0aW9ucz86IFNlY3JldHNNYW5hZ2VyU2VjcmV0T3B0aW9ucztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogR2l0SHViUmVwb1Byb3BzKSB7XG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IHByb3BzLnJlcG9zaXRvcnk7XG4gICAgaWYgKHJlcG9zaXRvcnkuaW5kZXhPZignLycpID09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcG9zaXRvcnkgbXVzdCBiZSBvZiB0aGUgZm9ybSBcImFjY291bnQvcmVwb1wiJyk7XG4gICAgfVxuICAgIGNvbnN0IFtvd25lciwgcmVwb10gPSByZXBvc2l0b3J5LnNwbGl0KCcvJyk7XG5cbiAgICB0aGlzLm93bmVyID0gb3duZXI7XG4gICAgdGhpcy5yZXBvID0gcmVwbztcbiAgICB0aGlzLnRva2VuU2VjcmV0QXJuID0gcHJvcHMudG9rZW5TZWNyZXRBcm47XG4gICAgdGhpcy50b2tlblNlY3JldE9wdGlvbnMgPSBwcm9wcy50b2tlblNlY3JldE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcG9zaXRvcnlVcmxIdHRwKCkge1xuICAgIHJldHVybiBgaHR0cHM6Ly9naXRodWIuY29tLyR7dGhpcy5vd25lcn0vJHt0aGlzLnJlcG99LmdpdGA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcG9zaXRvcnlVcmxTc2goKSB7XG4gICAgcmV0dXJuIGBnaXRAZ2l0aHViLmNvbToke3RoaXMub3duZXJ9LyR7dGhpcy5yZXBvfS5naXRgO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVNvdXJjZVN0YWdlKHBpcGVsaW5lOiBjcGlwZWxpbmUuUGlwZWxpbmUsIGJyYW5jaDogc3RyaW5nKTogY3BpcGVsaW5lLkFydGlmYWN0IHtcbiAgICBjb25zdCBzdGFnZSA9IHBpcGVsaW5lLmFkZFN0YWdlKHsgc3RhZ2VOYW1lOiAnU291cmNlJyB9KTtcblxuICAgIGNvbnN0IHNvdXJjZU91dHB1dCA9IG5ldyBjcGlwZWxpbmUuQXJ0aWZhY3QoJ1NvdXJjZScpO1xuICAgIHN0YWdlLmFkZEFjdGlvbihuZXcgY3BpcGVsaW5lX2FjdGlvbnMuR2l0SHViU291cmNlQWN0aW9uKHtcbiAgICAgIGFjdGlvbk5hbWU6ICdQdWxsJyxcbiAgICAgIGJyYW5jaCxcbiAgICAgIG9hdXRoVG9rZW46IFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKHRoaXMudG9rZW5TZWNyZXRBcm4sIHRoaXMudG9rZW5TZWNyZXRPcHRpb25zKSxcbiAgICAgIG93bmVyOiB0aGlzLm93bmVyLFxuICAgICAgcmVwbzogdGhpcy5yZXBvLFxuICAgICAgb3V0cHV0OiBzb3VyY2VPdXRwdXQsXG4gICAgfSkpO1xuICAgIHJldHVybiBzb3VyY2VPdXRwdXQ7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQnVpbGRTb3VyY2UoXzogQ29uc3RydWN0LCB3ZWJob29rOiBib29sZWFuLCBvcHRpb25zOiBCdWlsZFNvdXJjZU9wdGlvbnMgPSB7IH0pOiBjYnVpbGQuSVNvdXJjZSB7XG4gICAgaWYgKG9wdGlvbnMuYnJhbmNoICYmIG9wdGlvbnMuYnJhbmNoZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU3BlY2lmeSBhdCBtb3N0IG9uZSBvZiBcXCdicmFuY2hcXCcgYW5kIFxcJ2JyYW5jaGVzXFwnJyk7XG4gICAgfVxuICAgIGNvbnN0IGJyYW5jaGVzID0gb3B0aW9ucy5icmFuY2hlcyA/PyAob3B0aW9ucy5icmFuY2ggPyBbb3B0aW9ucy5icmFuY2hdIDogW10pO1xuXG4gICAgcmV0dXJuIGNidWlsZC5Tb3VyY2UuZ2l0SHViKHtcbiAgICAgIG93bmVyOiB0aGlzLm93bmVyLFxuICAgICAgcmVwbzogdGhpcy5yZXBvLFxuICAgICAgd2ViaG9vayxcbiAgICAgIGNsb25lRGVwdGg6IG9wdGlvbnMuY2xvbmVEZXB0aCxcbiAgICAgIHJlcG9ydEJ1aWxkU3RhdHVzOiB3ZWJob29rLFxuICAgICAgd2ViaG9va0ZpbHRlcnM6IHdlYmhvb2tcbiAgICAgICAgPyB0aGlzLmNyZWF0ZVdlYmhvb2tGaWx0ZXJzKGJyYW5jaGVzKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXNjcmliZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5vd25lcn0vJHt0aGlzLnJlcG99YDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV2ViaG9va0ZpbHRlcnMoYnJhbmNoZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGJyYW5jaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vIFR1cm4gdGhlIGxpc3Qgb2YgYnJhbmNoZXMgaW50byBhIHJlZ2V4XG4gICAgICBjb25zdCBicmFuY2hFeHByID0gYnJhbmNoZXMubWFwKGIgPT4gYF5yZWZzL2hlYWRzLyR7Yn0kYCkuam9pbignfCcpO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICBjYnVpbGQuRmlsdGVyR3JvdXAuaW5FdmVudE9mKGNidWlsZC5FdmVudEFjdGlvbi5QVVNIKVxuICAgICAgICAgIC5hbmRIZWFkUmVmSXMoYnJhbmNoRXhwciksXG4gICAgICAgIGNidWlsZC5GaWx0ZXJHcm91cC5pbkV2ZW50T2YoY2J1aWxkLkV2ZW50QWN0aW9uLlBVTExfUkVRVUVTVF9DUkVBVEVELCBjYnVpbGQuRXZlbnRBY3Rpb24uUFVMTF9SRVFVRVNUX1VQREFURUQpXG4gICAgICAgICAgLmFuZEJhc2VSZWZJcyhicmFuY2hFeHByKSxcbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICBjYnVpbGQuRmlsdGVyR3JvdXAuaW5FdmVudE9mKFxuICAgICAgICBjYnVpbGQuRXZlbnRBY3Rpb24uUFVTSCxcbiAgICAgICAgY2J1aWxkLkV2ZW50QWN0aW9uLlBVTExfUkVRVUVTVF9DUkVBVEVELFxuICAgICAgICBjYnVpbGQuRXZlbnRBY3Rpb24uUFVMTF9SRVFVRVNUX1VQREFURUQsXG4gICAgICApLFxuICAgIF07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXcml0YWJsZUdpdEh1YlJlcG9Qcm9wcyBleHRlbmRzIEdpdEh1YlJlcG9Qcm9wcyB7XG4gIC8qKlxuICAgKiBTU0gga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcG9zaXRvcnkuXG4gICAqXG4gICAqIFRoaXMgaXMgcmVxdWlyZWQgaWYgeW91IHdpc2ggdG8gYmUgYWJsZSB0byB1c2UgYWN0aW9ucyB0aGF0IHdyaXRlIHRvIHRoZSByZXBvXG4gICAqIHN1Y2ggYXMgZG9jcyBwdWJsaXNoaW5nIGFuZCBhdXRvbWF0aWMgYnVtcHMuXG4gICAqL1xuICBzc2hLZXlTZWNyZXQ6IEV4dGVybmFsU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlcm5hbWUgdG8gdXNlIGZvciB0aGUgcHVibGlzaGVkIGNvbW1pdHNcbiAgICovXG4gIGNvbW1pdFVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHVzZSBmb3IgdGhlIHB1Ymxpc2hlZCBjb21taXRzXG4gICAqL1xuICBjb21taXRFbWFpbDogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBjbGFzcyBXcml0YWJsZUdpdEh1YlJlcG8gZXh0ZW5kcyBHaXRIdWJSZXBvIHtcblxuICBwdWJsaWMgc3RhdGljIGlzV3JpdGFibGVHaXRIdWJSZXBvKHJlcG86IElSZXBvKTogcmVwbyBpcyBXcml0YWJsZUdpdEh1YlJlcG8ge1xuICAgIGNvbnN0IG9iaiA9IHJlcG8gYXMgYW55O1xuXG4gICAgcmV0dXJuICdzc2hLZXlTZWNyZXQnIGluIG9ialxuICAgICAgJiYgJ2NvbW1pdEVtYWlsJyBpbiBvYmpcbiAgICAgICYmICdjb21taXRVc2VybmFtZScgaW4gb2JqO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHNzaEtleVNlY3JldDogRXh0ZXJuYWxTZWNyZXQ7XG4gIHB1YmxpYyByZWFkb25seSBjb21taXRFbWFpbDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29tbWl0VXNlcm5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogV3JpdGFibGVHaXRIdWJSZXBvUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnNzaEtleVNlY3JldCA9IHByb3BzLnNzaEtleVNlY3JldDtcbiAgICB0aGlzLmNvbW1pdEVtYWlsID0gcHJvcHMuY29tbWl0RW1haWw7XG4gICAgdGhpcy5jb21taXRVc2VybmFtZSA9IHByb3BzLmNvbW1pdFVzZXJuYW1lO1xuICB9XG59XG4iXX0=
|