@qbs-origin/origin-form 0.8.3 → 0.8.6
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/esm2022/lib/action-step-handler.mjs +7 -3
- package/esm2022/lib/enums/label.keys.mjs +2 -1
- package/esm2022/lib/formly/formly-field-stepper/formly-field-stepper.component.mjs +3 -1
- package/esm2022/lib/models/flux.model.mjs +2 -2
- package/esm2022/lib/models/forms.model.mjs +13 -2
- package/esm2022/lib/origin-form-auth.service.mjs +2 -3
- package/esm2022/lib/origin-form.component.mjs +32 -1
- package/esm2022/lib/origin-form.module.mjs +2 -13
- package/esm2022/lib/others/flux-helper.mjs +31 -1
- package/esm2022/lib/others/translations-helper.mjs +7 -1
- package/fesm2022/qbs-origin-origin-form.mjs +91 -47
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/lib/enums/label.keys.d.ts +1 -0
- package/lib/formly/formly-enrol-card/formly-enrol-card.component.d.ts +1 -0
- package/lib/models/forms.model.d.ts +11 -2
- package/lib/origin-form-auth.service.d.ts +1 -1
- package/lib/origin-form.component.d.ts +5 -0
- package/lib/others/flux-helper.d.ts +1 -0
- package/lib/others/translations-helper.d.ts +1 -0
- package/package.json +1 -1
|
@@ -147,6 +147,12 @@ export class TranslationsHelper {
|
|
|
147
147
|
];
|
|
148
148
|
return tInfo;
|
|
149
149
|
}
|
|
150
|
+
static createValidationTranslations(langs) {
|
|
151
|
+
const tInfo = [
|
|
152
|
+
this.createTranslation(langs, 'loadingMessageTranslations', 'appConfigEdit.flux.customStep.loadingMessage', 'Loading message', 'Mesaj de așteptare'),
|
|
153
|
+
];
|
|
154
|
+
return tInfo;
|
|
155
|
+
}
|
|
150
156
|
static createKycTranslations(langs) {
|
|
151
157
|
const tInfo = [
|
|
152
158
|
this.createTranslation(langs, 'name', 'common.others.name', 'KYC', 'KYC'),
|
|
@@ -255,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
255
261
|
providedIn: 'root',
|
|
256
262
|
}]
|
|
257
263
|
}] });
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29yaWdpbi1mb3JtL3NyYy9saWIvb3RoZXJzL3RyYW5zbGF0aW9ucy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsTUFBTSxDQUFDLGlDQUFpQyxDQUM3QyxLQUFpQixFQUNqQixhQUE4QjtRQUU5QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25GLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRixLQUFLLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVGLEtBQUssZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hGLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxNQUFNLENBQUMsZ0NBQWdDLENBQzdDLEtBQWlCO1FBRWpCLE1BQU0sS0FBSyxHQUF3QjtZQUNqQztnQkFDRSxJQUFJLEVBQUUsZ0JBQWdC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RUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQzdCLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsb0JBQW9CLENBQ2pDLGtCQUE4QixFQUM5QixNQUF3QztRQUV4QyxJQUFJLElBQUksR0FBZ0IsRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQixNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6RSxJQUFJLE1BQU0sSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsR0FBRztvQkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0F4ckJVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0ZXBDb250cm9sVHlwZSB9IGZyb20gXCIuLi9tb2RlbHMvZmx1eC5tb2RlbFwiO1xuaW1wb3J0IHsgRXJyb3JUcmFuc2xhdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm1zLm1vZGVsXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkluZm8sIExhYmVsSW5mbyB9IGZyb20gXCIuLi9tb2RlbHMvbGFiZWwtaW5mby5tb2RlbFwiO1xuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tIFwiLi4vbW9kZWxzL2xhbmd1YWdlLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNIZWxwZXIge1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ29tcG9uZW50RXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdLFxuICAgIGNvbXBvbmVudFR5cGU6IFN0ZXBDb250cm9sVHlwZVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLk1hbnVhbElucHV0OiByZXR1cm4gdGhpcy5jcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhsYW5ncyk7XG4gICAgICBjYXNlIFN0ZXBDb250cm9sVHlwZS5DaGVja0JveDpcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLkRpY3Rpb25hcnk6IHJldHVybiB0aGlzLmNyZWF0ZURlZmF1bHRFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgICAgY2FzZSBTdGVwQ29udHJvbFR5cGUuRG93bmxvYWREb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZURvd25sb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlVwbG9hZERvY3VtZW50czogcmV0dXJuIHRoaXMuY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlZpZXdEb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVEb3dubG9hZEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2ZhaWxUb0Rvd25sb2FkJyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gZG93bmxvYWQuJywgJ051IGFtIHJldciZaXQgc2EgZGVzY2FyYy4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9Eb3dubG9hZCcsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnTm8gZG9jdW1lbnRzIHRvIGRvd25sb2FkLicsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBkZXNjxINyY2F0LicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IEVycm9yVHJhbnNsYXRpb25zW10ge1xuICAgIGNvbnN0IHRJbmZvOiBFcnJvclRyYW5zbGF0aW9uc1tdID0gW1xuICAgICAge1xuICAgICAgICBjb2RlOiAnaW52YWxpZFR5cGUnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ0ludmFsaWQgdHlwZScsICdUaXAgaW52YWxpZCcpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAnbWF4U2l6ZScsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhlIGl0ZW0gZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mIHswfS4nLCAnRmnImWllcnVsIGRlcGHImWVzdGUgZGltZW5zaXVuZWEgbWF4aW1hIGRlIHswfS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdUaGUgaXRlbSBpcyBtYW5kYXRvcnkuJywgJ0FjZXN0IGZpyJlpZXIgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3dhaXRGb3JVcGxvYWQnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1BsZWFzZSB3YWl0IGZvciB1cGxvYWQgdG8gZmluaXNoLicsICdWxIMgcnVnYW0gYciZdGVwdGHIm2kgaW5jxINyY2FyZWEgZmnImWllcmVsb3IuJylcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogRXJyb3JUcmFuc2xhdGlvbnNbXSB7XG4gICAgY29uc3QgdEluZm86IEVycm9yVHJhbnNsYXRpb25zW10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvZGU6ICdmYWlsVG9WaWV3JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gdmlldycsICdOdSBhbSByZXXImWl0IHNhIHZpenVhbGl6ZXonKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9TaG93JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdObyBkb2N1bWVudHMgdG8gc2hvdycsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBhZmnImWF0JylcbiAgICAgIH0sXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3NpbXBsZVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAndGhyb3VnaEFwaVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRGVmYXVsdEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVDaGVja0VtYWlsVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ0NoZWNrIGVtYWlsJyxcbiAgICAgICAgJ1ZlcmlmaWNhIGVtYWlsJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsTGFiZWwnLFxuICAgICAgICAnRW1haWwnLFxuICAgICAgICAnRW1haWwnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdlbWFpbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwuZW1haWxCdXR0b25MYWJlbCcsXG4gICAgICAgICdTZW5kIGNvZGUnLFxuICAgICAgICAnVHJpbWl0ZSBjb2QnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cExhYmVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhdGlvbiBjb2RlJyxcbiAgICAgICAgJ0NvZCBkZSB2ZXJpZmljYXJlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdWZXJpZnknLFxuICAgICAgICAnVmVyaWZpY8SDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxSZXF1aXJlZExhYmVsJyxcbiAgICAgICAgJ2ZsdXguY29tcG9uZW50cy5lbWFpbC5lbWFpbFJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnRW1haWwgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnRW1haWwtdWwgZXN0ZSBvYmxpZ2F0b3JpdSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2VtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdFbWFpbCBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnRW1haWwtdWwgbnUgZXN0ZSB2YWxpZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cEVycm9yTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBFcnJvckxhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIGVycm9yJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSB2ZXJpZmljYXJlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdDb2RlIHZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhcmVhIGNvZHVsdWkgYSBmb3N0IHJlYWxpemF0xIMgY3Ugc3VjY2VzJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ2hlY2tQaG9uZVRyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdDaGVjayBwaG9uZScsXG4gICAgICAgICdWZXJpZmljYSB0ZWxlZm9uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBob25lLnBob25lTGFiZWwnLFxuICAgICAgICAnUGhvbmUnLFxuICAgICAgICAnVGVsZWZvbidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Bob25lQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5waG9uZS5waG9uZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1NlbmQgY29kZScsXG4gICAgICAgICdUcmltaXRlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cExhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwTGFiZWwnLFxuICAgICAgICAnVmVyaWZpY2F0aW9uIGNvZGUnLFxuICAgICAgICAnQ29kIGRlIHZlcmlmaWNhcmUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1ZlcmlmeScsXG4gICAgICAgICdWZXJpZmljxIMnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdwaG9uZVJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnZmx1eC5jb21wb25lbnRzLnBob25lLnBob25lUmVxdWlyZWRMYWJlbCcsXG4gICAgICAgICdQaG9uZSBudW1iZXIgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBlc3RlIG9ibGlnYXRvcml1J1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGhvbmUucGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ1Bob25lIG51bWJlciBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBudSBlc3RlIHZhbGlkJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEVycm9yTGFiZWwnLFxuICAgICAgICAnQ29kZSB2ZXJpZmljYXRpb24gZXJyb3InLFxuICAgICAgICAnRXJvYXJlIGxhIHZlcmlmaWNhcmUgY29kJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIHN1Y2Nlc3NmdWwnLFxuICAgICAgICAnVmVyaWZpY2FyZWEgY29kdWx1aSBhIGZvc3QgcmVhbGl6YXTEgyBjdSBzdWNjZXMnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVJZFNjYW5UcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdJZCBzY2FuJyxcbiAgICAgICAgJ1NjYW5hcmUgYWN0IGlkZW50aXRhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1N0ZXAgdG8gc2NhbiBpZCBkb2N1bWVudCcsXG4gICAgICAgICdQYXMgcGVudHJ1IMOubmNhcmNhcmVhIGRvY3VtZW50dWx1aSBkZSBpZGVudGl0YXRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAndXBsb2FkRmlsZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuaWRTY2FuLnVwbG9hZEJ1dHRvblRleHRMYWJlbCcsXG4gICAgICAgICdVcGxvYWQgZmlsZScsXG4gICAgICAgICfDjm5jYXJjxIMgZmnImWllcidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Rha2VQaWN0dXJlQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5pZFNjYW4udGFrZVBpY3R1cmVCdXR0b25UZXh0TGFiZWwnLFxuICAgICAgICAnVGFrZSBwaWN0dXJlJyxcbiAgICAgICAgJ1JlYWxpemVhesSDIG8gZm90b2dyYWZpZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBhdXNlVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnUGF1c2UnLFxuICAgICAgICAnUGF1esSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5TWVzc2FnZScsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBhdXNlLm9mZmVyUmVhZHlNZXNzYWdlTGFiZWwnLFxuICAgICAgICAnWW91ciBvZmZlciBoYXMgYmVlbiBwcm9jZXNzZWQuIENsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHRvIGNvbnRpbnVlIHRoZSBmbG93LicsXG4gICAgICAgICdPZmVydGEgZHVtbmVhdm9hc3RyYSBhIGZvc3QgcHJvY2VzYXRhLiBDbGljayBwZSBsaW5rLXVsIGRlIG1haSBqb3MgcGVudHJ1IGEgY29udGludWEgZmx1eHVsLidcbiAgICAgICksXG5cbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2UuY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ0NvbnRpbnVlIGZsb3cnLFxuICAgICAgICAnQ29udGludWFyZSBmbHV4J1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5U21zTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2Uub2ZmZXJSZWFkeVNtc01lc3NhZ2VMYWJlbCcsXG4gICAgICAgICdZb3VyIG9mZmVyIGhhcyBiZWVuIHByb2Nlc3NlZC4gQ2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgdG8gY29udGludWUgdGhlIGZsb3cuJyxcbiAgICAgICAgJ09mZXJ0YSBkdW1uZWF2b2FzdHJhIGEgZm9zdCBwcm9jZXNhdGEuIENsaWNrIHBlIGxpbmstdWwgZGUgbWFpIGpvcyBwZW50cnUgYSBjb250aW51YSBmbHV4dWwuJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWN0aW9uVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbG9hZGluZ01lc3NhZ2VUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnYXBwQ29uZmlnRWRpdC5mbHV4LmN1c3RvbVN0ZXAubG9hZGluZ01lc3NhZ2UnLFxuICAgICAgICAnTG9hZGluZyBtZXNzYWdlJyxcbiAgICAgICAgJ01lc2FqIGRlIGHImXRlcHRhcmUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTdGF0dXNUcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIG1lc3NhZ2UnLFxuICAgICAgICAnTWVzYWogZGUgYciZdGVwdGFyZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUt5Y1RyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKGxhbmdzLCAnbmFtZScsICdjb21tb24ub3RoZXJzLm5hbWUnLCAnS1lDJywgJ0tZQycpLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJycsXG4gICAgICAgICcnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIGlkZW50aWZpY2F0aW9uIHN0ZXAuLi4nLFxuICAgICAgICAnU2Ugw65uY2FyY8SDIHBhc3VsIGRlIGlkZW50aWZpY2FyZS4uLidcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBheW1lbnRzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1BheW1lbnQnLFxuICAgICAgICAnUGxhdMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY2FyZGVucm9sQnV0dG9uTGFiZWwnLFxuICAgICAgICAnY2FyZGVucm9sLmNhcmRlbnJvbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ0Vucm9sIGNhcmQnLFxuICAgICAgICAnw45ucm9sZWF6xIMgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbEZhaWx1cmVMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sRmFpbHVyZUxhYmVsJyxcbiAgICAgICAgJ0Vycm9yIGVucm9sbGluZyBjYXJkJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSDDrm5yb2xhcmUgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ1N1Y2Nlc3MgZW5yb2xsaW5nIGNhcmQnLFxuICAgICAgICAnU3VjY2VzIGxhIMOubnJvbGFyZSBjYXJkJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlT3BlbkJhbmtpbmdUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnT3BlbiBCYW5raW5nJyxcbiAgICAgICAgJ09wZW4gQmFua2luZydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnQ29ubmVjdCB5b3VyIGJhbmsgYWNjb3VudCcsXG4gICAgICAgICdDb25lY3RhyJtpIGNvbnR1bCBiYW5jYXInXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdpbml0aWFsTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmluaXRpYWxNZXNzYWdlJyxcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB3ZSBuZWVkIHRvIHZlcmlmeSB5b3VyIGJhbmsgYWNjb3VudCBpbmZvcm1hdGlvbi4gQ2xpY2sgTmV4dCB0byBwcm9jZWVkLicsXG4gICAgICAgICdQZW50cnUgYSBjb250aW51YSwgdHJlYnVpZSBzxIMgdmVyaWZpY8SDbSBpbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGR2cy4gYmFuY2FyLiBGYWNlyJtpIGNsaWMgcGUgVXJtxIN0b3J1bCBwZW50cnUgYSBjb250aW51YS4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdNZXNzYWdlJyxcbiAgICAgICAgJ1BsZWFzZSB3YWl0IHdoaWxlIHdlIHJldHJpZXZlIHlvdXIgYWNjb3VudCBpbmZvcm1hdGlvbi4uLicsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBhyJl0ZXB0YcibaSBww6JuxIMgY8OibmQgcHJlbHXEg20gaW5mb3JtYcibaWlsZSBjb250dWx1aSBkdnMuLi4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdjb25zZW50RXJyb3JNZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29uc2VudEVycm9yTWVzc2FnZScsXG4gICAgICAgICdZb3UgbXVzdCBwcm92aWRlIGNvbnNlbnQgdG8gY29udGludWUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgJ1RyZWJ1aWUgc8SDIG9mZXJpyJtpIGNvbnNpbcibxINtw6JudHVsIHBlbnRydSBhIGNvbnRpbnVhLiBWxIMgcnVnxINtIHPEgyDDrm5jZXJjYcibaSBkaW4gbm91LidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbXBsZXRpb25NZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29tcGxldGlvbk1lc3NhZ2UnLFxuICAgICAgICAnQWNjb3VudCBpbmZvcm1hdGlvbiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLicsXG4gICAgICAgICdJbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGF1IGZvc3QgcHJlbHVhdGUgY3Ugc3VjY2VzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3JldHJ5QnV0dG9uTGFiZWxUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5yZXRyeUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1JldHJ5JyxcbiAgICAgICAgJ1Jlw65uY2VhcmPEgydcbiAgICAgICksXG4gICAgICAvLyBCdXR0b24gdHJhbnNsYXRpb25zXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25leHRCdXR0b25UcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5uZXh0QnV0dG9uJyxcbiAgICAgICAgJ05leHQnLFxuICAgICAgICAnVXJtxIN0b3J1bCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnRpbnVlQnV0dG9uVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29udGludWVCdXR0b24nLFxuICAgICAgICAnQ29udGludWUnLFxuICAgICAgICAnQ29udGludcSDJ1xuICAgICAgKSxcbiAgICAgIC8vIFVJIGxhYmVsc1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdzZWxlY3RCYW5rVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuc2VsZWN0QmFuaycsXG4gICAgICAgICdTZWxlY3QgeW91ciBiYW5rJyxcbiAgICAgICAgJ1NlbGVjdGHIm2kgYmFuY2EgZHZzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnRUaXRsZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnRUaXRsZScsXG4gICAgICAgICdCYW5rIEF1dGhvcml6YXRpb24nLFxuICAgICAgICAnQXV0b3JpemFyZSBiYW5jYXLEgydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnREZXNjcmlwdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnREZXNjcmlwdGlvbicsXG4gICAgICAgICdQbGVhc2UgY29tcGxldGUgdGhlIGF1dGhvcml6YXRpb24gcHJvY2VzcyB3aXRoIHlvdXIgYmFuaycsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBjb21wbGV0YcibaSBwcm9jZXN1bCBkZSBhdXRvcml6YXJlIGN1IGJhbmNhIGR2cy4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nRm9yQXV0aG9yaXphdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdGb3JBdXRob3JpemF0aW9uJyxcbiAgICAgICAgJ1dhaXRpbmcgZm9yIGF1dGhvcml6YXRpb24uLi4nLFxuICAgICAgICAnU2UgYciZdGVhcHTEgyBhdXRvcml6YXJlYS4uLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3BvcHVwV2luZG93TWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwV2luZG93TWVzc2FnZScsXG4gICAgICAgICdBIG5ldyB3aW5kb3cgaGFzIG9wZW5lZCBmb3IgYmFuayBhdXRob3JpemF0aW9uLiBQbGVhc2UgY29tcGxldGUgdGhlIHByb2Nlc3MgdGhlcmUuJyxcbiAgICAgICAgJ1MtYSBkZXNjaGlzIG8gZmVyZWFzdHLEgyBub3XEgyBwZW50cnUgYXV0b3JpemFyZSBiYW5jYXLEgy4gVsSDIHJ1Z8SDbSBzxIMgY29tcGxldGHIm2kgcHJvY2VzdWwgYWNvbG8uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncG9wdXBCbG9ja2VyTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwQmxvY2tlck1lc3NhZ2UnLFxuICAgICAgICAnSWYgdGhlIHdpbmRvdyBkaWRuXFwndCBvcGVuLCBwbGVhc2UgY2hlY2sgeW91ciBwb3B1cCBibG9ja2VyIHNldHRpbmdzLicsXG4gICAgICAgICdEYWPEgyBmZXJlYXN0cmEgbnUgcy1hIGRlc2NoaXMsIHbEgyBydWfEg20gc8SDIHZlcmlmaWNhyJtpIHNldMSDcmlsZSBibG9jYXRvcnVsdWkgZGUgcG9wdXAtdXJpLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzUmV0cmlldmVkVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuYWNjb3VudHNSZXRyaWV2ZWQnLFxuICAgICAgICAnQWNjb3VudHMgcmV0cmlldmVkJyxcbiAgICAgICAgJ0NvbnR1cmkgcHJlbHVhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd0cmFuc2FjdGlvbnNSZXRyaWV2ZWRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNSZXRyaWV2ZWQnLFxuICAgICAgICAnVHJhbnNhY3Rpb25zIHJldHJpZXZlZCcsXG4gICAgICAgICdUcmFuemFjyJtpaSBwcmVsdWF0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzRm91bmRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5hY2NvdW50c0ZvdW5kJyxcbiAgICAgICAgJ3swfSBhY2NvdW50KHMpIGZvdW5kJyxcbiAgICAgICAgJ3swfSBjb250KHVyaSkgZ8SDc2l0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3RyYW5zYWN0aW9uc1N1bW1hcnlUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNTdW1tYXJ5JyxcbiAgICAgICAgJ3swfSB0cmFuc2FjdGlvbihzKSByZXRyaWV2ZWQgZm9yIHRoZSBsYXN0IHsxfSBtb250aChzKScsXG4gICAgICAgICd7MH0gdHJhbnphY8ibaWUoaSkgcHJlbHVhdGUgcGVudHJ1IHVsdGltZWxlIHsxfSBsdW7EgyhpKSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUN1c3RvbVN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnQ3VzdG9tIHN0ZXAnLFxuICAgICAgICAnUGFzIGN1c3RvbSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnJyxcbiAgICAgICAgJydcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZpZXdPZmZlclN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnVmlldyBvZmZlcicsXG4gICAgICAgICdWaXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdWaWV3IG9mZmVyIHN0ZXAnLFxuICAgICAgICAnUGFzIHBlbnRydSB2aXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlU2lnblRyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1NpZ24gZG9jdW1lbnRzJyxcbiAgICAgICAgJ1NlbW5hcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdTaWduIGRvY3VtZW50cyBzdGVwJyxcbiAgICAgICAgJ1BhcyBwZW50cnUgc2VtbmFyZSBkb2N1bWVudGUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVHZW5lcmF0ZURvY3VtZW50c1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMnLFxuICAgICAgICAnR2VuZXJhcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMgc3RlcCcsXG4gICAgICAgICdQYXMgcGVudHJ1IGdlbmVyYXJlIGRvY3VtZW50ZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVUcmFuc2xhdGlvbihcbiAgICBsYW5nczogTGFuZ3VhZ2VbXSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdHJhbnNsYXRpb25LZXk6IHN0cmluZyxcbiAgICBlblZhbHVlOiBzdHJpbmcsXG4gICAgcm9WYWx1ZTogc3RyaW5nXG4gICk6IFRyYW5zbGF0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB0cmFuc2xhdGlvbktleTogdHJhbnNsYXRpb25LZXksXG4gICAgICB2YWx1ZXM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgZW5WYWx1ZSwgcm9WYWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTGFiZWxzSW5mbyhzdXBwb3J0ZWRMYW5ndWFnZXM6IExhbmd1YWdlW10sIGVuVmFsdWU6IHN0cmluZywgcm9WYWx1ZTogc3RyaW5nKTogTGFiZWxJbmZvW10ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsc0luZm9Db3JlKHN1cHBvcnRlZExhbmd1YWdlcywgW1xuICAgICAgeyBpc286ICdlbicsIHZhbHVlOiBlblZhbHVlIH0sXG4gICAgICB7IGlzbzogJ3JvJywgdmFsdWU6IHJvVmFsdWUgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUxhYmVsc0luZm9Db3JlKFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogTGFuZ3VhZ2VbXSxcbiAgICB2YWx1ZXM6IHsgaXNvOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdXG4gICk6IExhYmVsSW5mb1tdIHtcbiAgICBsZXQgbGlzdDogTGFiZWxJbmZvW10gPSBbXTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgY29uc3QgbGFuZ0lkID0gc3VwcG9ydGVkTGFuZ3VhZ2VzLmZpbmQoKGxhbmcpID0+IGxhbmcuaXNvID09PSB2Lmlzbyk/LmlkO1xuICAgICAgaWYgKGxhbmdJZCAmJiBsYW5nSWQgPiAwKSB7XG4gICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgbGFuZ3VhZ2VJZDogbGFuZ0lkLFxuICAgICAgICAgIGxhbmd1YWdlSXNvOiB2LmlzbyxcbiAgICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiJdfQ==
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29yaWdpbi1mb3JtL3NyYy9saWIvb3RoZXJzL3RyYW5zbGF0aW9ucy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsTUFBTSxDQUFDLGlDQUFpQyxDQUM3QyxLQUFpQixFQUNqQixhQUE4QjtRQUU5QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25GLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRixLQUFLLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVGLEtBQUssZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hGLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxNQUFNLENBQUMsZ0NBQWdDLENBQzdDLEtBQWlCO1FBRWpCLE1BQU0sS0FBSyxHQUF3QjtZQUNqQztnQkFDRSxJQUFJLEVBQUUsZ0JBQWdC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bmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN0ZXBDb250cm9sVHlwZSB9IGZyb20gXCIuLi9tb2RlbHMvZmx1eC5tb2RlbFwiO1xuaW1wb3J0IHsgRXJyb3JUcmFuc2xhdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm1zLm1vZGVsXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkluZm8sIExhYmVsSW5mbyB9IGZyb20gXCIuLi9tb2RlbHMvbGFiZWwtaW5mby5tb2RlbFwiO1xuaW1wb3J0IHsgTGFuZ3VhZ2UgfSBmcm9tIFwiLi4vbW9kZWxzL2xhbmd1YWdlLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNIZWxwZXIge1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ29tcG9uZW50RXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdLFxuICAgIGNvbXBvbmVudFR5cGU6IFN0ZXBDb250cm9sVHlwZVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLk1hbnVhbElucHV0OiByZXR1cm4gdGhpcy5jcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhsYW5ncyk7XG4gICAgICBjYXNlIFN0ZXBDb250cm9sVHlwZS5DaGVja0JveDpcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLkRpY3Rpb25hcnk6IHJldHVybiB0aGlzLmNyZWF0ZURlZmF1bHRFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgICAgY2FzZSBTdGVwQ29udHJvbFR5cGUuRG93bmxvYWREb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZURvd25sb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlVwbG9hZERvY3VtZW50czogcmV0dXJuIHRoaXMuY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKGxhbmdzKTtcbiAgICAgIGNhc2UgU3RlcENvbnRyb2xUeXBlLlZpZXdEb2N1bWVudHM6IHJldHVybiB0aGlzLmNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMobGFuZ3MpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVEb3dubG9hZEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2ZhaWxUb0Rvd25sb2FkJyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gZG93bmxvYWQuJywgJ051IGFtIHJldciZaXQgc2EgZGVzY2FyYy4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9Eb3dubG9hZCcsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnTm8gZG9jdW1lbnRzIHRvIGRvd25sb2FkLicsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBkZXNjxINyY2F0LicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlVXBsb2FkRXJyb3JzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IEVycm9yVHJhbnNsYXRpb25zW10ge1xuICAgIGNvbnN0IHRJbmZvOiBFcnJvclRyYW5zbGF0aW9uc1tdID0gW1xuICAgICAge1xuICAgICAgICBjb2RlOiAnaW52YWxpZFR5cGUnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ0ludmFsaWQgdHlwZScsICdUaXAgaW52YWxpZCcpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAnbWF4U2l6ZScsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhlIGl0ZW0gZXhjZWVkcyB0aGUgbWF4aW11bSBzaXplIG9mIHswfS4nLCAnRmnImWllcnVsIGRlcGHImWVzdGUgZGltZW5zaXVuZWEgbWF4aW1hIGRlIHswfS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdUaGUgaXRlbSBpcyBtYW5kYXRvcnkuJywgJ0FjZXN0IGZpyJlpZXIgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3dhaXRGb3JVcGxvYWQnLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1BsZWFzZSB3YWl0IGZvciB1cGxvYWQgdG8gZmluaXNoLicsICdWxIMgcnVnYW0gYciZdGVwdGHIm2kgaW5jxINyY2FyZWEgZmnImWllcmVsb3IuJylcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVZpZXdFcnJvcnNUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogRXJyb3JUcmFuc2xhdGlvbnNbXSB7XG4gICAgY29uc3QgdEluZm86IEVycm9yVHJhbnNsYXRpb25zW10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvZGU6ICdmYWlsVG9WaWV3JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdGYWlsZWQgdG8gdmlldycsICdOdSBhbSByZXXImWl0IHNhIHZpenVhbGl6ZXonKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ25vRG9jdW1lbnRzVG9TaG93JyxcbiAgICAgICAgdHJhbnNsYXRpb25zOiB0aGlzLmNyZWF0ZUxhYmVsc0luZm8obGFuZ3MsICdObyBkb2N1bWVudHMgdG8gc2hvdycsICdOdSBzdW50IGRvY3VtZW50ZSBkZSBhZmnImWF0JylcbiAgICAgIH0sXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVJbnB1dEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ3NpbXBsZVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2RlOiAndGhyb3VnaEFwaVZhbGlkYXRpb24nLFxuICAgICAgICB0cmFuc2xhdGlvbnM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgJ1RoaXMgZmllbGQgaXMgaW52YWxpZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBpbnZhbGlkLicpXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRGVmYXVsdEVycm9yc1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBFcnJvclRyYW5zbGF0aW9uc1tdIHtcbiAgICBjb25zdCB0SW5mbzogRXJyb3JUcmFuc2xhdGlvbnNbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29kZTogJ2lzTWFuZGF0b3J5VmFsaWRhdGlvbicsXG4gICAgICAgIHRyYW5zbGF0aW9uczogdGhpcy5jcmVhdGVMYWJlbHNJbmZvKGxhbmdzLCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLCAnQWNlc3QgY8OibXAgZXN0ZSBvYmxpZ2F0b3JpdS4nKVxuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVDaGVja0VtYWlsVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ0NoZWNrIGVtYWlsJyxcbiAgICAgICAgJ1ZlcmlmaWNhIGVtYWlsJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsTGFiZWwnLFxuICAgICAgICAnRW1haWwnLFxuICAgICAgICAnRW1haWwnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdlbWFpbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwuZW1haWxCdXR0b25MYWJlbCcsXG4gICAgICAgICdTZW5kIGNvZGUnLFxuICAgICAgICAnVHJpbWl0ZSBjb2QnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cExhYmVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhdGlvbiBjb2RlJyxcbiAgICAgICAgJ0NvZCBkZSB2ZXJpZmljYXJlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdWZXJpZnknLFxuICAgICAgICAnVmVyaWZpY8SDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZW1haWxSZXF1aXJlZExhYmVsJyxcbiAgICAgICAgJ2ZsdXguY29tcG9uZW50cy5lbWFpbC5lbWFpbFJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnRW1haWwgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnRW1haWwtdWwgZXN0ZSBvYmxpZ2F0b3JpdSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2VtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLmVtYWlsRXJyb3JMYWJlbCcsXG4gICAgICAgICdFbWFpbCBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnRW1haWwtdWwgbnUgZXN0ZSB2YWxpZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cEVycm9yTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5lbWFpbC5vdHBFcnJvckxhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIGVycm9yJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSB2ZXJpZmljYXJlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdDb2RlIHZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsJyxcbiAgICAgICAgJ1ZlcmlmaWNhcmVhIGNvZHVsdWkgYSBmb3N0IHJlYWxpemF0xIMgY3Ugc3VjY2VzJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQ2hlY2tQaG9uZVRyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdDaGVjayBwaG9uZScsXG4gICAgICAgICdWZXJpZmljYSB0ZWxlZm9uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBob25lLnBob25lTGFiZWwnLFxuICAgICAgICAnUGhvbmUnLFxuICAgICAgICAnVGVsZWZvbidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Bob25lQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5waG9uZS5waG9uZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1NlbmQgY29kZScsXG4gICAgICAgICdUcmltaXRlIGNvZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ290cExhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwTGFiZWwnLFxuICAgICAgICAnVmVyaWZpY2F0aW9uIGNvZGUnLFxuICAgICAgICAnQ29kIGRlIHZlcmlmaWNhcmUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvdHBCdXR0b25MYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1ZlcmlmeScsXG4gICAgICAgICdWZXJpZmljxIMnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdwaG9uZVJlcXVpcmVkTGFiZWwnLFxuICAgICAgICAnZmx1eC5jb21wb25lbnRzLnBob25lLnBob25lUmVxdWlyZWRMYWJlbCcsXG4gICAgICAgICdQaG9uZSBudW1iZXIgaXMgcmVxdWlyZWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBlc3RlIG9ibGlnYXRvcml1J1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGhvbmUucGhvbmVFcnJvckxhYmVsJyxcbiAgICAgICAgJ1Bob25lIG51bWJlciBpcyBub3QgdmFsaWQnLFxuICAgICAgICAnTnVtxINydWwgZGUgdGVsZWZvbiBudSBlc3RlIHZhbGlkJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwRXJyb3JMYWJlbCcsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLmVtYWlsLm90cEVycm9yTGFiZWwnLFxuICAgICAgICAnQ29kZSB2ZXJpZmljYXRpb24gZXJyb3InLFxuICAgICAgICAnRXJvYXJlIGxhIHZlcmlmaWNhcmUgY29kJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnb3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuZW1haWwub3RwU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ0NvZGUgdmVyaWZpY2F0aW9uIHN1Y2Nlc3NmdWwnLFxuICAgICAgICAnVmVyaWZpY2FyZWEgY29kdWx1aSBhIGZvc3QgcmVhbGl6YXTEgyBjdSBzdWNjZXMnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVJZFNjYW5UcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdJZCBzY2FuJyxcbiAgICAgICAgJ1NjYW5hcmUgYWN0IGlkZW50aXRhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1N0ZXAgdG8gc2NhbiBpZCBkb2N1bWVudCcsXG4gICAgICAgICdQYXMgcGVudHJ1IMOubmNhcmNhcmVhIGRvY3VtZW50dWx1aSBkZSBpZGVudGl0YXRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAndXBsb2FkRmlsZUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMuaWRTY2FuLnVwbG9hZEJ1dHRvblRleHRMYWJlbCcsXG4gICAgICAgICdVcGxvYWQgZmlsZScsXG4gICAgICAgICfDjm5jYXJjxIMgZmnImWllcidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3Rha2VQaWN0dXJlQnV0dG9uTGFiZWwnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5pZFNjYW4udGFrZVBpY3R1cmVCdXR0b25UZXh0TGFiZWwnLFxuICAgICAgICAnVGFrZSBwaWN0dXJlJyxcbiAgICAgICAgJ1JlYWxpemVhesSDIG8gZm90b2dyYWZpZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBhdXNlVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnUGF1c2UnLFxuICAgICAgICAnUGF1esSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5TWVzc2FnZScsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLnBhdXNlLm9mZmVyUmVhZHlNZXNzYWdlTGFiZWwnLFxuICAgICAgICAnWW91ciBvZmZlciBoYXMgYmVlbiBwcm9jZXNzZWQuIENsaWNrIG9uIHRoZSBsaW5rIGJlbG93IHRvIGNvbnRpbnVlIHRoZSBmbG93LicsXG4gICAgICAgICdPZmVydGEgZHVtbmVhdm9hc3RyYSBhIGZvc3QgcHJvY2VzYXRhLiBDbGljayBwZSBsaW5rLXVsIGRlIG1haSBqb3MgcGVudHJ1IGEgY29udGludWEgZmx1eHVsLidcbiAgICAgICksXG5cbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2UuY29udGludWVPZmZlcnNMaW5rTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ0NvbnRpbnVlIGZsb3cnLFxuICAgICAgICAnQ29udGludWFyZSBmbHV4J1xuICAgICAgKSxcblxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdvZmZlclJlYWR5U21zTWVzc2FnZUxhYmVsJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMucGF1c2Uub2ZmZXJSZWFkeVNtc01lc3NhZ2VMYWJlbCcsXG4gICAgICAgICdZb3VyIG9mZmVyIGhhcyBiZWVuIHByb2Nlc3NlZC4gQ2xpY2sgb24gdGhlIGxpbmsgYmVsb3cgdG8gY29udGludWUgdGhlIGZsb3cuJyxcbiAgICAgICAgJ09mZXJ0YSBkdW1uZWF2b2FzdHJhIGEgZm9zdCBwcm9jZXNhdGEuIENsaWNrIHBlIGxpbmstdWwgZGUgbWFpIGpvcyBwZW50cnUgYSBjb250aW51YSBmbHV4dWwuJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWN0aW9uVHJhbnNsYXRpb25zKGxhbmdzOiBMYW5ndWFnZVtdKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbG9hZGluZ01lc3NhZ2VUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnYXBwQ29uZmlnRWRpdC5mbHV4LmN1c3RvbVN0ZXAubG9hZGluZ01lc3NhZ2UnLFxuICAgICAgICAnTG9hZGluZyBtZXNzYWdlJyxcbiAgICAgICAgJ01lc2FqIGRlIGHImXRlcHRhcmUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTdGF0dXNUcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIG1lc3NhZ2UnLFxuICAgICAgICAnTWVzYWogZGUgYciZdGVwdGFyZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZhbGlkYXRpb25UcmFuc2xhdGlvbnMobGFuZ3M6IExhbmd1YWdlW10pOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIG1lc3NhZ2UnLFxuICAgICAgICAnTWVzYWogZGUgYciZdGVwdGFyZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUt5Y1RyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKGxhbmdzLCAnbmFtZScsICdjb21tb24ub3RoZXJzLm5hbWUnLCAnS1lDJywgJ0tZQycpLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICdjb21tb24ub3RoZXJzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgJycsXG4gICAgICAgICcnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdsb2FkaW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdhcHBDb25maWdFZGl0LmZsdXguY3VzdG9tU3RlcC5sb2FkaW5nTWVzc2FnZScsXG4gICAgICAgICdMb2FkaW5nIGlkZW50aWZpY2F0aW9uIHN0ZXAuLi4nLFxuICAgICAgICAnU2Ugw65uY2FyY8SDIHBhc3VsIGRlIGlkZW50aWZpY2FyZS4uLidcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVBheW1lbnRzVHJhbnNsYXRpb25zKFxuICAgIGxhbmdzOiBMYW5ndWFnZVtdXG4gICk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1BheW1lbnQnLFxuICAgICAgICAnUGxhdMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICcnLFxuICAgICAgICAnJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnY2FyZGVucm9sQnV0dG9uTGFiZWwnLFxuICAgICAgICAnY2FyZGVucm9sLmNhcmRlbnJvbEJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ0Vucm9sIGNhcmQnLFxuICAgICAgICAnw45ucm9sZWF6xIMgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbEZhaWx1cmVMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sRmFpbHVyZUxhYmVsJyxcbiAgICAgICAgJ0Vycm9yIGVucm9sbGluZyBjYXJkJyxcbiAgICAgICAgJ0Vyb2FyZSBsYSDDrm5yb2xhcmUgY2FyZCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NhcmRlbnJvbFN1Y2Nlc3NMYWJlbCcsXG4gICAgICAgICdjYXJkZW5yb2wuY2FyZGVucm9sU3VjY2Vzc0xhYmVsJyxcbiAgICAgICAgJ1N1Y2Nlc3MgZW5yb2xsaW5nIGNhcmQnLFxuICAgICAgICAnU3VjY2VzIGxhIMOubnJvbGFyZSBjYXJkJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlT3BlbkJhbmtpbmdUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnT3BlbiBCYW5raW5nJyxcbiAgICAgICAgJ09wZW4gQmFua2luZydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnQ29ubmVjdCB5b3VyIGJhbmsgYWNjb3VudCcsXG4gICAgICAgICdDb25lY3RhyJtpIGNvbnR1bCBiYW5jYXInXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdpbml0aWFsTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmluaXRpYWxNZXNzYWdlJyxcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB3ZSBuZWVkIHRvIHZlcmlmeSB5b3VyIGJhbmsgYWNjb3VudCBpbmZvcm1hdGlvbi4gQ2xpY2sgTmV4dCB0byBwcm9jZWVkLicsXG4gICAgICAgICdQZW50cnUgYSBjb250aW51YSwgdHJlYnVpZSBzxIMgdmVyaWZpY8SDbSBpbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGR2cy4gYmFuY2FyLiBGYWNlyJtpIGNsaWMgcGUgVXJtxIN0b3J1bCBwZW50cnUgYSBjb250aW51YS4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdNZXNzYWdlJyxcbiAgICAgICAgJ1BsZWFzZSB3YWl0IHdoaWxlIHdlIHJldHJpZXZlIHlvdXIgYWNjb3VudCBpbmZvcm1hdGlvbi4uLicsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBhyJl0ZXB0YcibaSBww6JuxIMgY8OibmQgcHJlbHXEg20gaW5mb3JtYcibaWlsZSBjb250dWx1aSBkdnMuLi4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdjb25zZW50RXJyb3JNZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29uc2VudEVycm9yTWVzc2FnZScsXG4gICAgICAgICdZb3UgbXVzdCBwcm92aWRlIGNvbnNlbnQgdG8gY29udGludWUuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgICAgICAgJ1RyZWJ1aWUgc8SDIG9mZXJpyJtpIGNvbnNpbcibxINtw6JudHVsIHBlbnRydSBhIGNvbnRpbnVhLiBWxIMgcnVnxINtIHPEgyDDrm5jZXJjYcibaSBkaW4gbm91LidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbXBsZXRpb25NZXNzYWdlVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29tcGxldGlvbk1lc3NhZ2UnLFxuICAgICAgICAnQWNjb3VudCBpbmZvcm1hdGlvbiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkLicsXG4gICAgICAgICdJbmZvcm1hyJtpaWxlIGNvbnR1bHVpIGF1IGZvc3QgcHJlbHVhdGUgY3Ugc3VjY2VzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3JldHJ5QnV0dG9uTGFiZWxUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5yZXRyeUJ1dHRvbkxhYmVsJyxcbiAgICAgICAgJ1JldHJ5JyxcbiAgICAgICAgJ1Jlw65uY2VhcmPEgydcbiAgICAgICksXG4gICAgICAvLyBCdXR0b24gdHJhbnNsYXRpb25zXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25leHRCdXR0b25UcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5uZXh0QnV0dG9uJyxcbiAgICAgICAgJ05leHQnLFxuICAgICAgICAnVXJtxIN0b3J1bCdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnRpbnVlQnV0dG9uVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuY29udGludWVCdXR0b24nLFxuICAgICAgICAnQ29udGludWUnLFxuICAgICAgICAnQ29udGludcSDJ1xuICAgICAgKSxcbiAgICAgIC8vIFVJIGxhYmVsc1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICdzZWxlY3RCYW5rVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuc2VsZWN0QmFuaycsXG4gICAgICAgICdTZWxlY3QgeW91ciBiYW5rJyxcbiAgICAgICAgJ1NlbGVjdGHIm2kgYmFuY2EgZHZzLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnRUaXRsZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnRUaXRsZScsXG4gICAgICAgICdCYW5rIEF1dGhvcml6YXRpb24nLFxuICAgICAgICAnQXV0b3JpemFyZSBiYW5jYXLEgydcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2NvbnNlbnREZXNjcmlwdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLmNvbnNlbnREZXNjcmlwdGlvbicsXG4gICAgICAgICdQbGVhc2UgY29tcGxldGUgdGhlIGF1dGhvcml6YXRpb24gcHJvY2VzcyB3aXRoIHlvdXIgYmFuaycsXG4gICAgICAgICdWxIMgcnVnxINtIHPEgyBjb21wbGV0YcibaSBwcm9jZXN1bCBkZSBhdXRvcml6YXJlIGN1IGJhbmNhIGR2cy4nXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd3YWl0aW5nRm9yQXV0aG9yaXphdGlvblRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLndhaXRpbmdGb3JBdXRob3JpemF0aW9uJyxcbiAgICAgICAgJ1dhaXRpbmcgZm9yIGF1dGhvcml6YXRpb24uLi4nLFxuICAgICAgICAnU2UgYciZdGVhcHTEgyBhdXRvcml6YXJlYS4uLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3BvcHVwV2luZG93TWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwV2luZG93TWVzc2FnZScsXG4gICAgICAgICdBIG5ldyB3aW5kb3cgaGFzIG9wZW5lZCBmb3IgYmFuayBhdXRob3JpemF0aW9uLiBQbGVhc2UgY29tcGxldGUgdGhlIHByb2Nlc3MgdGhlcmUuJyxcbiAgICAgICAgJ1MtYSBkZXNjaGlzIG8gZmVyZWFzdHLEgyBub3XEgyBwZW50cnUgYXV0b3JpemFyZSBiYW5jYXLEgy4gVsSDIHJ1Z8SDbSBzxIMgY29tcGxldGHIm2kgcHJvY2VzdWwgYWNvbG8uJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAncG9wdXBCbG9ja2VyTWVzc2FnZVRyYW5zbGF0aW9ucycsXG4gICAgICAgICdmbHV4LnN5c3RlbVN0ZXBzLm9wZW5CYW5raW5nLnBvcHVwQmxvY2tlck1lc3NhZ2UnLFxuICAgICAgICAnSWYgdGhlIHdpbmRvdyBkaWRuXFwndCBvcGVuLCBwbGVhc2UgY2hlY2sgeW91ciBwb3B1cCBibG9ja2VyIHNldHRpbmdzLicsXG4gICAgICAgICdEYWPEgyBmZXJlYXN0cmEgbnUgcy1hIGRlc2NoaXMsIHbEgyBydWfEg20gc8SDIHZlcmlmaWNhyJtpIHNldMSDcmlsZSBibG9jYXRvcnVsdWkgZGUgcG9wdXAtdXJpLidcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzUmV0cmlldmVkVHJhbnNsYXRpb25zJyxcbiAgICAgICAgJ2ZsdXguc3lzdGVtU3RlcHMub3BlbkJhbmtpbmcuYWNjb3VudHNSZXRyaWV2ZWQnLFxuICAgICAgICAnQWNjb3VudHMgcmV0cmlldmVkJyxcbiAgICAgICAgJ0NvbnR1cmkgcHJlbHVhdGUnXG4gICAgICApLFxuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICd0cmFuc2FjdGlvbnNSZXRyaWV2ZWRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNSZXRyaWV2ZWQnLFxuICAgICAgICAnVHJhbnNhY3Rpb25zIHJldHJpZXZlZCcsXG4gICAgICAgICdUcmFuemFjyJtpaSBwcmVsdWF0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2FjY291bnRzRm91bmRUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy5hY2NvdW50c0ZvdW5kJyxcbiAgICAgICAgJ3swfSBhY2NvdW50KHMpIGZvdW5kJyxcbiAgICAgICAgJ3swfSBjb250KHVyaSkgZ8SDc2l0ZSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ3RyYW5zYWN0aW9uc1N1bW1hcnlUcmFuc2xhdGlvbnMnLFxuICAgICAgICAnZmx1eC5zeXN0ZW1TdGVwcy5vcGVuQmFua2luZy50cmFuc2FjdGlvbnNTdW1tYXJ5JyxcbiAgICAgICAgJ3swfSB0cmFuc2FjdGlvbihzKSByZXRyaWV2ZWQgZm9yIHRoZSBsYXN0IHsxfSBtb250aChzKScsXG4gICAgICAgICd7MH0gdHJhbnphY8ibaWUoaSkgcHJlbHVhdGUgcGVudHJ1IHVsdGltZWxlIHsxfSBsdW7EgyhpKSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUN1c3RvbVN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnQ3VzdG9tIHN0ZXAnLFxuICAgICAgICAnUGFzIGN1c3RvbSdcbiAgICAgICksXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMuZGVzY3JpcHRpb24nLFxuICAgICAgICAnJyxcbiAgICAgICAgJydcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZpZXdPZmZlclN0ZXBUcmFuc2xhdGlvbnMoXG4gICAgbGFuZ3M6IExhbmd1YWdlW11cbiAgKTogVHJhbnNsYXRpb25JbmZvW10ge1xuICAgIGNvbnN0IHRJbmZvOiBUcmFuc2xhdGlvbkluZm9bXSA9IFtcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnbmFtZScsXG4gICAgICAgICdjb21tb24ub3RoZXJzLm5hbWUnLFxuICAgICAgICAnVmlldyBvZmZlcicsXG4gICAgICAgICdWaXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdWaWV3IG9mZmVyIHN0ZXAnLFxuICAgICAgICAnUGFzIHBlbnRydSB2aXp1YWxpemFyZSBvZmVydMSDJ1xuICAgICAgKSxcbiAgICBdO1xuICAgIHJldHVybiB0SW5mbztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlU2lnblRyYW5zbGF0aW9ucyhsYW5nczogTGFuZ3VhZ2VbXSk6IFRyYW5zbGF0aW9uSW5mb1tdIHtcbiAgICBjb25zdCB0SW5mbzogVHJhbnNsYXRpb25JbmZvW10gPSBbXG4gICAgICB0aGlzLmNyZWF0ZVRyYW5zbGF0aW9uKFxuICAgICAgICBsYW5ncyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29tbW9uLm90aGVycy5uYW1lJyxcbiAgICAgICAgJ1NpZ24gZG9jdW1lbnRzJyxcbiAgICAgICAgJ1NlbW5hcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdTaWduIGRvY3VtZW50cyBzdGVwJyxcbiAgICAgICAgJ1BhcyBwZW50cnUgc2VtbmFyZSBkb2N1bWVudGUnXG4gICAgICApLFxuICAgIF07XG4gICAgcmV0dXJuIHRJbmZvO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVHZW5lcmF0ZURvY3VtZW50c1RyYW5zbGF0aW9ucyhcbiAgICBsYW5nczogTGFuZ3VhZ2VbXVxuICApOiBUcmFuc2xhdGlvbkluZm9bXSB7XG4gICAgY29uc3QgdEluZm86IFRyYW5zbGF0aW9uSW5mb1tdID0gW1xuICAgICAgdGhpcy5jcmVhdGVUcmFuc2xhdGlvbihcbiAgICAgICAgbGFuZ3MsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbW1vbi5vdGhlcnMubmFtZScsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMnLFxuICAgICAgICAnR2VuZXJhcmUgZG9jdW1lbnRlJ1xuICAgICAgKSxcbiAgICAgIHRoaXMuY3JlYXRlVHJhbnNsYXRpb24oXG4gICAgICAgIGxhbmdzLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnY29tbW9uLm90aGVycy5kZXNjcmlwdGlvbicsXG4gICAgICAgICdHZW5lcmF0ZSBkb2N1bWVudHMgc3RlcCcsXG4gICAgICAgICdQYXMgcGVudHJ1IGdlbmVyYXJlIGRvY3VtZW50ZSdcbiAgICAgICksXG4gICAgXTtcbiAgICByZXR1cm4gdEluZm87XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVUcmFuc2xhdGlvbihcbiAgICBsYW5nczogTGFuZ3VhZ2VbXSxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdHJhbnNsYXRpb25LZXk6IHN0cmluZyxcbiAgICBlblZhbHVlOiBzdHJpbmcsXG4gICAgcm9WYWx1ZTogc3RyaW5nXG4gICk6IFRyYW5zbGF0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB0cmFuc2xhdGlvbktleTogdHJhbnNsYXRpb25LZXksXG4gICAgICB2YWx1ZXM6IHRoaXMuY3JlYXRlTGFiZWxzSW5mbyhsYW5ncywgZW5WYWx1ZSwgcm9WYWx1ZSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlTGFiZWxzSW5mbyhzdXBwb3J0ZWRMYW5ndWFnZXM6IExhbmd1YWdlW10sIGVuVmFsdWU6IHN0cmluZywgcm9WYWx1ZTogc3RyaW5nKTogTGFiZWxJbmZvW10ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsc0luZm9Db3JlKHN1cHBvcnRlZExhbmd1YWdlcywgW1xuICAgICAgeyBpc286ICdlbicsIHZhbHVlOiBlblZhbHVlIH0sXG4gICAgICB7IGlzbzogJ3JvJywgdmFsdWU6IHJvVmFsdWUgfSxcbiAgICBdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUxhYmVsc0luZm9Db3JlKFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogTGFuZ3VhZ2VbXSxcbiAgICB2YWx1ZXM6IHsgaXNvOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdXG4gICk6IExhYmVsSW5mb1tdIHtcbiAgICBsZXQgbGlzdDogTGFiZWxJbmZvW10gPSBbXTtcbiAgICB2YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgY29uc3QgbGFuZ0lkID0gc3VwcG9ydGVkTGFuZ3VhZ2VzLmZpbmQoKGxhbmcpID0+IGxhbmcuaXNvID09PSB2Lmlzbyk/LmlkO1xuICAgICAgaWYgKGxhbmdJZCAmJiBsYW5nSWQgPiAwKSB7XG4gICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgbGFuZ3VhZ2VJZDogbGFuZ0lkLFxuICAgICAgICAgIGxhbmd1YWdlSXNvOiB2LmlzbyxcbiAgICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiJdfQ==
|