wacom 16.2.1 → 16.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +197 -197
- package/esm2022/lib/components/alert/alert.component.mjs +5 -5
- package/esm2022/lib/components/alert/wrapper/wrapper.component.mjs +5 -5
- package/esm2022/lib/components/files/files.component.mjs +5 -5
- package/esm2022/lib/components/loader/loader.component.mjs +5 -5
- package/esm2022/lib/components/modal/modal.component.mjs +5 -5
- package/esm2022/lib/directives/click-outside.directive.mjs +4 -4
- package/esm2022/lib/guard/meta.guard.mjs +4 -4
- package/esm2022/lib/interfaces/alert.interface.mjs +1 -1
- package/esm2022/lib/interfaces/config.mjs +1 -1
- package/esm2022/lib/interfaces/modal.interface.mjs +1 -1
- package/esm2022/lib/pipes/arr.pipe.mjs +4 -4
- package/esm2022/lib/pipes/mongodate.pipe.mjs +4 -4
- package/esm2022/lib/pipes/pagination.pipe.mjs +4 -4
- package/esm2022/lib/pipes/safe.pipe.mjs +4 -4
- package/esm2022/lib/pipes/search.pipe.mjs +4 -4
- package/esm2022/lib/pipes/splice.pipe.mjs +4 -4
- package/esm2022/lib/services/alert.service.mjs +4 -4
- package/esm2022/lib/services/base.service.mjs +4 -4
- package/esm2022/lib/services/core.service.mjs +4 -4
- package/esm2022/lib/services/crud.service.mjs +4 -4
- package/esm2022/lib/services/dom.service.mjs +4 -4
- package/esm2022/lib/services/file.service.mjs +4 -4
- package/esm2022/lib/services/hash.service.mjs +4 -4
- package/esm2022/lib/services/http.service.mjs +4 -4
- package/esm2022/lib/services/loader.service.mjs +4 -4
- package/esm2022/lib/services/meta.service.mjs +7 -7
- package/esm2022/lib/services/modal.service.mjs +4 -4
- package/esm2022/lib/services/mongo.service.mjs +5 -5
- package/esm2022/lib/services/render.service.mjs +4 -4
- package/esm2022/lib/services/socket.service.mjs +4 -4
- package/esm2022/lib/services/store.service.mjs +4 -4
- package/esm2022/lib/services/time.service.mjs +4 -4
- package/esm2022/lib/services/ui.service.mjs +4 -4
- package/esm2022/lib/wacom.module.mjs +5 -5
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/wacom.mjs +103 -103
- package/fesm2022/wacom.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -47,7 +47,7 @@ export class MetaService {
|
|
|
47
47
|
}
|
|
48
48
|
setTag(tag, value, prop) {
|
|
49
49
|
if (tag === 'title' || tag === 'titleSuffix') {
|
|
50
|
-
throw new Error(`Attempt to set ${tag} through 'setTag': 'title' and 'titleSuffix' are reserved tag names.
|
|
50
|
+
throw new Error(`Attempt to set ${tag} through 'setTag': 'title' and 'titleSuffix' are reserved tag names.
|
|
51
51
|
Please use 'MetaService.setTitle' instead`);
|
|
52
52
|
}
|
|
53
53
|
let content = isDefined(value) ? value : (this._meta.defaults[tag] || '');
|
|
@@ -81,20 +81,20 @@ export class MetaService {
|
|
|
81
81
|
&& (hasDefaultMeta || hasRouteMeta)
|
|
82
82
|
&& !(route.canActivate || []).some(hasMetaGuardInArr);
|
|
83
83
|
if (showWarning) {
|
|
84
|
-
console.warn(`Route with path "${route.path}" has ${hasRouteMeta ? '' : 'default '}meta tags, but does not use MetaGuard. \
|
|
84
|
+
console.warn(`Route with path "${route.path}" has ${hasRouteMeta ? '' : 'default '}meta tags, but does not use MetaGuard. \
|
|
85
85
|
Please add MetaGuard to the canActivate array in your route configuration`);
|
|
86
86
|
hasShownWarnings = true;
|
|
87
87
|
}
|
|
88
88
|
});
|
|
89
89
|
if (hasShownWarnings) {
|
|
90
|
-
console.warn(`To disable these warnings, set metaConfig.warnMissingGuard: false \
|
|
90
|
+
console.warn(`To disable these warnings, set metaConfig.warnMissingGuard: false \
|
|
91
91
|
in your ng2-meta MetaConfig passed to MetaModule.forRoot()`);
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
95
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MetaService, deps: [{ token: i1.Router }, { token: i2.Meta }, { token: i3.CoreService }, { token: i2.Title }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
95
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MetaService });
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MetaService, decorators: [{
|
|
98
98
|
type: Injectable
|
|
99
99
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Meta }, { type: i3.CoreService }, { type: i2.Title }, { type: undefined, decorators: [{
|
|
100
100
|
type: Inject,
|
|
@@ -102,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
|
|
|
102
102
|
}, {
|
|
103
103
|
type: Optional
|
|
104
104
|
}] }]; } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2Fjb20vc3JjL2xpYi9zZXJ2aWNlcy9tZXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxZQUFZLEVBQVUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRTVFLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFHM0QsTUFBTSxPQUFPLFdBQVc7SUFJZDtJQUNBO0lBQ0E7SUFDQTtJQUNrQztJQVBuQyxLQUFLLENBQU07SUFFbkIsWUFDUyxNQUFjLEVBQ2QsSUFBVSxFQUNWLElBQWlCLEVBQ2pCLFlBQW1CLEVBQ2UsTUFBYztRQUpoRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUNWLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQU87UUFDZSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRXhELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWlCO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWMsRUFBRSxXQUFvQjtRQUM1QyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENB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LE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDN0UsSUFBSSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDM0MsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7bUJBQzVDLENBQUMsY0FBYyxJQUFJLFlBQVksQ0FBQzttQkFDaEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFdkQsSUFBSSxXQUFXLEVBQUU7Z0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssQ0FBQyxJQUFJLFNBQVMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVU7K0VBQ1AsQ0FBQyxDQUFDO2dCQUM3RSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7YUFDeEI7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksZ0JBQWdCLEVBQUU7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQzsrREFDK0MsQ0FBQyxDQUFDO1NBQzlEO0lBQ0YsQ0FBQzt3R0F2RlcsV0FBVyw0R0FRZCxZQUFZOzRHQVJULFdBQVc7OzRGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQVNSLE1BQU07MkJBQUMsWUFBWTs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlLCBNZXRhIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDT05GSUdfVE9LRU4sIENvbmZpZywgREVGQVVMVF9DT05GSUcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZyc7XG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4vY29yZS5zZXJ2aWNlJztcbmNvbnN0IGlzRGVmaW5lZCA9ICh2YWw6IGFueSkgPT4gdHlwZW9mIHZhbCAhPT0gJ3VuZGVmaW5lZCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZXRhU2VydmljZSB7XG5cdHByaXZhdGUgX21ldGE6IGFueTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuXHRcdHByaXZhdGUgbWV0YTogTWV0YSxcblx0XHRwcml2YXRlIGNvcmU6IENvcmVTZXJ2aWNlLFxuXHRcdHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZSxcblx0XHRASW5qZWN0KENPTkZJR19UT0tFTikgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1xuXHQpIHtcblx0XHR0aGlzLl9tZXRhID0gY29uZmlnLm1ldGFcblx0XHRpZiAoIXRoaXMuY29uZmlnKSB0aGlzLmNvbmZpZyA9IERFRkFVTFRfQ09ORklHO1xuXHRcdHRoaXMuX3dhcm5NaXNzaW5nR3VhcmQoKTtcblx0fVxuXG5cdHNldERlZmF1bHRzKGRlZmF1bHRzOiB1bmtub3duKSB7XG5cdFx0dGhpcy5fbWV0YS5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuXHR9XG5cblx0c2V0VGl0bGUodGl0bGU/OiBzdHJpbmcsIHRpdGxlU3VmZml4Pzogc3RyaW5nKTogTWV0YVNlcnZpY2Uge1xuXHRcdGxldCB0aXRsZUNvbnRlbnQgPSBpc0RlZmluZWQodGl0bGUpID8gdGl0bGUgOiAodGhpcy5fbWV0YS5kZWZhdWx0c1sndGl0bGUnXSB8fCAnJyk7XG5cdFx0aWYgKHRoaXMuX21ldGEudXNlVGl0bGVTdWZmaXgpIHtcblx0XHRcdHRpdGxlQ29udGVudCArPSBpc0RlZmluZWQodGl0bGVTdWZmaXgpID8gdGl0bGVTdWZmaXggOiAodGhpcy5fbWV0YS5kZWZhdWx0c1sndGl0bGVTdWZmaXgnXSB8fCAnJyk7XG5cdFx0fVxuXHRcdHRoaXMuX3VwZGF0ZU1ldGFUYWcoJ3RpdGxlJywgdGl0bGVDb250ZW50KTtcblx0XHR0aGlzLl91cGRhdGVNZXRhVGFnKCdvZzp0aXRsZScsIHRpdGxlQ29udGVudCk7XG5cdFx0dGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGVDb250ZW50KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHNldExpbmsob2JqOiBhbnkpOiBNZXRhU2VydmljZSB7XG5cdFx0Zm9yIChsZXQga2V5IGluIG9iaikge1xuXHRcdFx0bGV0IGxpbms6IEhUTUxMaW5rRWxlbWVudCA9IHRoaXMuY29yZS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG5cdFx0XHRsaW5rLnNldEF0dHJpYnV0ZSgncmVsJywga2V5KTtcblx0XHRcdHRoaXMuY29yZS5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuXHRcdFx0bGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBvYmpba2V5XSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0c2V0VGFnKHRhZzogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBwcm9wPzogc3RyaW5nKTogTWV0YVNlcnZpY2Uge1xuXHRcdGlmICh0YWcgPT09ICd0aXRsZScgfHwgdGFnID09PSAndGl0bGVTdWZmaXgnKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEF0dGVtcHQgdG8gc2V0ICR7dGFnfSB0aHJvdWdoICdzZXRUYWcnOiAndGl0bGUnIGFuZCAndGl0bGVTdWZmaXgnIGFyZSByZXNlcnZlZCB0YWcgbmFtZXMuXG5cdFx0XHRcdFBsZWFzZSB1c2UgJ01ldGFTZXJ2aWNlLnNldFRpdGxlJyBpbnN0ZWFkYCk7XG5cdFx0fVxuXHRcdGxldCBjb250ZW50ID0gaXNEZWZpbmVkKHZhbHVlKSA/IHZhbHVlIDogKHRoaXMuX21ldGEuZGVmYXVsdHNbdGFnXSB8fCAnJyk7XG5cdFx0dGhpcy5fdXBkYXRlTWV0YVRhZyh0YWcsIGNvbnRlbnQsIHByb3ApO1xuXHRcdGlmICh0YWcgPT09ICdkZXNjcmlwdGlvbicpIHtcblx0XHRcdHRoaXMuX3VwZGF0ZU1ldGFUYWcoJ29nOmRlc2NyaXB0aW9uJywgY29udGVudCwgcHJvcCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHJpdmF0ZSBfdXBkYXRlTWV0YVRhZyh0YWc6IHN0cmluZywgdmFsdWU6IHN0cmluZywgcHJvcD86IHN0cmluZykge1xuXHRcdGlmICghcHJvcCkgcHJvcCA9ICduYW1lJztcblx0XHRpZiAodGFnLnN0YXJ0c1dpdGgoYG9nOmApKSB7XG5cdFx0XHRwcm9wID0gJ3Byb3BlcnR5Jztcblx0XHR9XG5cblx0XHR0aGlzLm1ldGEudXBkYXRlVGFnKHtcblx0XHRcdFtwcm9wXTogdGFnLFxuXHRcdFx0Y29udGVudDogdmFsdWVcblx0XHR9KTtcblx0fVxuXHRwcml2YXRlIF93YXJuTWlzc2luZ0d1YXJkKCkge1xuXHRcdGlmIChpc0RlZmluZWQodGhpcy5fbWV0YS53YXJuTWlzc2luZ0d1YXJkKSAmJiAhdGhpcy5fbWV0YS53YXJuTWlzc2luZ0d1YXJkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGhhc0RlZmF1bHRNZXRhID0gISFPYmplY3Qua2V5cyh0aGlzLl9tZXRhLmRlZmF1bHRzKS5sZW5ndGg7XG5cdFx0Y29uc3QgaGFzTWV0YUd1YXJkSW5BcnIgPSAoaXQ6IGFueSkgPT4gKGl0ICYmIGl0LklERU5USUZJRVIgPT09ICdNZXRhR3VhcmQnKTtcblx0XHRsZXQgaGFzU2hvd25XYXJuaW5ncyA9IGZhbHNlO1xuXHRcdHRoaXMucm91dGVyLmNvbmZpZy5mb3JFYWNoKChyb3V0ZTogUm91dGUpID0+IHtcblx0XHRcdGNvbnN0IGhhc1JvdXRlTWV0YSA9IHJvdXRlLmRhdGEgJiYgcm91dGUuZGF0YVsnbWV0YSddO1xuXHRcdFx0Y29uc3Qgc2hvd1dhcm5pbmcgPSAhaXNEZWZpbmVkKHJvdXRlLnJlZGlyZWN0VG8pXG5cdFx0XHRcdCYmIChoYXNEZWZhdWx0TWV0YSB8fCBoYXNSb3V0ZU1ldGEpXG5cdFx0XHRcdCYmICEocm91dGUuY2FuQWN0aXZhdGUgfHwgW10pLnNvbWUoaGFzTWV0YUd1YXJkSW5BcnIpO1xuXG5cdFx0XHRpZiAoc2hvd1dhcm5pbmcpIHtcblx0XHRcdFx0Y29uc29sZS53YXJuKGBSb3V0ZSB3aXRoIHBhdGggXCIke3JvdXRlLnBhdGh9XCIgaGFzICR7aGFzUm91dGVNZXRhID8gJycgOiAnZGVmYXVsdCAnfW1ldGEgdGFncywgYnV0IGRvZXMgbm90IHVzZSBNZXRhR3VhcmQuIFxcXG5cdFx0XHRcdFx0UGxlYXNlIGFkZCBNZXRhR3VhcmQgdG8gdGhlIGNhbkFjdGl2YXRlIGFycmF5IGluIHlvdXIgcm91dGUgY29uZmlndXJhdGlvbmApO1xuXHRcdFx0XHRoYXNTaG93bldhcm5pbmdzID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRpZiAoaGFzU2hvd25XYXJuaW5ncykge1xuXHRcdFx0Y29uc29sZS53YXJuKGBUbyBkaXNhYmxlIHRoZXNlIHdhcm5pbmdzLCBzZXQgbWV0YUNvbmZpZy53YXJuTWlzc2luZ0d1YXJkOiBmYWxzZSBcXFxuXHRcdFx0XHRpbiB5b3VyIG5nMi1tZXRhIE1ldGFDb25maWcgcGFzc2VkIHRvIE1ldGFNb2R1bGUuZm9yUm9vdCgpYCk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
|
|
@@ -110,10 +110,10 @@ export class ModalService {
|
|
|
110
110
|
}
|
|
111
111
|
this.core.document.body.classList.remove("modalOpened");
|
|
112
112
|
}
|
|
113
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
114
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
113
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: ModalService, deps: [{ token: i1.DomService }, { token: i2.CoreService }, { token: CONFIG_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
114
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
115
115
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: ModalService, decorators: [{
|
|
117
117
|
type: Injectable,
|
|
118
118
|
args: [{
|
|
119
119
|
providedIn: 'root'
|
|
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
|
|
|
124
124
|
}, {
|
|
125
125
|
type: Optional
|
|
126
126
|
}] }]; } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFLNUUsTUFBTSxPQUFPLFlBQVk7SUFFSjtJQUF5QjtJQUNGO0lBRm5DLE1BQU0sQ0FBTTtJQUNwQixZQUFvQixHQUFlLEVBQVUsSUFBaUIsRUFDbkIsTUFBYztRQURyQyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hELElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDO1FBQ2hDLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQWlCO1FBQ3JCLElBQUcsT0FBTyxJQUFJLElBQUksUUFBUSxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBQztZQUN2RCxJQUFJLEdBQUc7Z0JBQ04sU0FBUyxF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SSxPQUFPLElBQUksSUFBSSxVQUFVLEVBQUM7WUFDdkQsSUFBSSxHQUFHO2dCQUNOLFNBQVMsRUFBRSxJQUFJO2FBQ2YsQ0FBQTtTQUNEO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ08sTUFBTSxHQUFPLEVBQUUsQ0FBQztJQUN4QixPQUFPO1FBQ04sS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO3dHQTdGVyxZQUFZLHVFQUdmLFlBQVk7NEdBSFQsWUFBWSxjQUZaLE1BQU07OzRGQUVOLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFJRSxNQUFNOzJCQUFDLFlBQVk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuL2RvbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZVNlcnZpY2UgfSBmcm9tICcuL2NvcmUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDT05GSUdfVE9LRU4sIENvbmZpZywgREVGQVVMVF9DT05GSUcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZyc7XHJcbmltcG9ydCB7IE1vZGFsLCBERUZBVUxUX01vZGFsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9tb2RhbC5pbnRlcmZhY2UnO1xyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xyXG5cdHByaXZhdGUgX21vZGFsOiBhbnk7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBkb206IERvbVNlcnZpY2UsIHByaXZhdGUgY29yZTogQ29yZVNlcnZpY2UsXHJcblx0XHRASW5qZWN0KENPTkZJR19UT0tFTikgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xyXG5cdFx0aWYoIXRoaXMuY29uZmlnKSB0aGlzLmNvbmZpZz17fTtcclxuXHRcdGlmKCF0aGlzLmNvbmZpZy5tb2RhbCkgdGhpcy5jb25maWcubW9kYWw9e307XHJcblx0XHRpZighdGhpcy5jb25maWcubW9kYWwubW9kYWxzKSB0aGlzLmNvbmZpZy5tb2RhbC5tb2RhbHM9e307XHJcblx0XHR0aGlzLl9tb2RhbCA9IGNvbmZpZy5tb2RhbDtcclxuXHR9XHJcblxyXG5cdHNob3cob3B0czogTW9kYWwgfCBhbnkpe1xyXG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ3N0cmluZycgfHwgdHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdG9wdHMgPSB7XHJcblx0XHRcdFx0Y29tcG9uZW50OiBvcHRzXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGlmKCFvcHRzIHx8IHR5cGVvZiBvcHRzICE9ICdvYmplY3QnKSBvcHRzID0ge307XHJcblx0XHRpZih0eXBlb2Ygb3B0cy5jb21wb25lbnQgPT0gJ3N0cmluZycgJiYgdGhpcy5fbW9kYWwubW9kYWxzW29wdHMuY29tcG9uZW50XSl7XHJcblx0XHRcdG9wdHMuY29tcG9uZW50ID0gdGhpcy5fbW9kYWwubW9kYWxzW29wdHMuY29tcG9uZW50XTtcclxuXHRcdH1cclxuXHRcdGlmKHR5cGVvZiBvcHRzLmNvbXBvbmVudCAhPSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0Y29uc29sZS5sb2coXCJUaGlzIGNvbXBvbmVudCBkb2VzIG5vdCBleGlzdHMuXCIpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZighb3B0cy5jbGFzcykgb3B0cy5jbGFzcz0nJztcclxuXHRcdGZvciAobGV0IGVhY2ggaW4gdGhpcy5jb25maWcubW9kYWwpe1xyXG5cdFx0XHRpZihlYWNoPT1cImNsYXNzXCIpIG9wdHMuY2xhc3MgKz0gKG9wdHMuY2xhc3MmJicgJ3x8JycpICsgdGhpcy5jb25maWcubW9kYWwuY2xhc3M7XHJcblx0XHRcdGVsc2UgaWYoIW9wdHNbZWFjaF0pIG9wdHNbZWFjaF0gPSB0aGlzLl9tb2RhbFtlYWNoXTtcclxuXHRcdH1cclxuXHRcdG9wdHMuaWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKSArIERhdGUubm93KCk7XHJcblx0XHR0aGlzLm9wZW5lZFtvcHRzLmlkXSA9IG9wdHM7XHJcblx0XHR0aGlzLmNvcmUuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwibW9kYWxPcGVuZWRcIik7XHJcblx0XHRsZXQgY29tcG9uZW50OmFueTtcclxuXHRcdGxldCBjb250ZW50OmFueTtcclxuXHRcdG9wdHMuY2xvc2UgPSAoKT0+e1xyXG5cdFx0XHRjb250ZW50LmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcblx0XHRcdGNvbXBvbmVudC5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xyXG5cdFx0XHRpZih0eXBlb2Ygb3B0cy5vbkNsb3NlID09ICdmdW5jdGlvbicpIG9wdHMub25DbG9zZSgpO1xyXG5cdFx0XHRkZWxldGUgdGhpcy5vcGVuZWRbb3B0cy5pZF07XHJcblx0XHRcdGlmKCFPYmplY3Qua2V5cyh0aGlzLm9wZW5lZCkubGVuZ3RoKXtcclxuXHRcdFx0XHR0aGlzLmNvcmUuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwibW9kYWxPcGVuZWRcIik7XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0XHRpZih0eXBlb2Ygb3B0cy50aW1lb3V0ID09ICdudW1iZXInICYmIG9wdHMudGltZW91dD4wKXtcclxuXHRcdFx0c2V0VGltZW91dChvcHRzLmNsb3NlLCBvcHRzLnRpbWVvdXQpO1xyXG5cdFx0fVxyXG5cdFx0Y29tcG9uZW50ID0gdGhpcy5kb20uYXBwZW5kQ29tcG9uZW50KE1vZGFsQ29tcG9uZW50LCBvcHRzKTtcclxuXHRcdGNvbnRlbnQgPSB0aGlzLmRvbS5hcHBlbmRDb21wb25lbnQob3B0cy5jb21wb25lbnQsIG9wdHMsIGNvbXBvbmVudC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGFzIEhUTUxFbGVtZW50KTtcclxuXHRcdHJldHVybiBjb21wb25lbnQubmF0aXZlRWxlbWVudDtcclxuXHR9XHJcblx0b3BlbihvcHRzOiBNb2RhbCl7IHRoaXMuc2hvdyhvcHRzKTsgfVxyXG5cdHNtYWxsKG9wdHM6IE1vZGFsKXtcclxuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRvcHRzID0ge1xyXG5cdFx0XHRcdGNvbXBvbmVudDogb3B0c1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRvcHRzLnNpemUgPSAnc21hbGwnO1xyXG5cdFx0dGhpcy5zaG93KG9wdHMpO1xyXG5cdH1cclxuXHRtaWQob3B0czogTW9kYWwpe1xyXG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ3N0cmluZycgfHwgdHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdG9wdHMgPSB7XHJcblx0XHRcdFx0Y29tcG9uZW50OiBvcHRzXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdG9wdHMuc2l6ZSA9ICdtaWQnO1xyXG5cdFx0dGhpcy5zaG93KG9wdHMpO1xyXG5cdH1cclxuXHRiaWcob3B0czogTW9kYWwpe1xyXG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ3N0cmluZycgfHwgdHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdG9wdHMgPSB7XHJcblx0XHRcdFx0Y29tcG9uZW50OiBvcHRzXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdG9wdHMuc2l6ZSA9ICdiaWcnO1xyXG5cdFx0dGhpcy5zaG93KG9wdHMpO1xyXG5cdH1cclxuXHRmdWxsKG9wdHM6IE1vZGFsKXtcclxuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRvcHRzID0ge1xyXG5cdFx0XHRcdGNvbXBvbmVudDogb3B0c1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRvcHRzLnNpemUgPSAnZnVsbCc7XHJcblx0XHR0aGlzLnNob3cob3B0cyk7XHJcblx0fVxyXG5cdHByaXZhdGUgb3BlbmVkOmFueSA9IHt9O1xyXG5cdGRlc3Ryb3koKXtcclxuXHRcdGZvciAobGV0IGVhY2ggaW4gdGhpcy5vcGVuZWQpe1xyXG5cdFx0ICAgIHRoaXMub3BlbmVkW2VhY2hdLmNsb3NlKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmNvcmUuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwibW9kYWxPcGVuZWRcIik7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFLNUUsTUFBTSxPQUFPLFlBQVk7SUFFSjtJQUF5QjtJQUNGO0lBRm5DLE1BQU0sQ0FBTTtJQUNwQixZQUFvQixHQUFlLEVBQVUsSUFBaUIsRUFDbkIsTUFBYztRQURyQyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hELElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDO1FBQ2hDLElBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBQyxFQUFFLENBQUM7UUFDNUMsSUFBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUMsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxDQUFDLElBQWlCO1FBQ3JCLElBQUcsT0FBTyxJQUFJLElBQUksUUFBUSxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBQztZQUN2RCxJQUFJLEdBQUc7Z0JBQ04sU0FBUyxF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SSxPQUFPLElBQUksSUFBSSxVQUFVLEVBQUM7WUFDdkQsSUFBSSxHQUFHO2dCQUNOLFNBQVMsRUFBRSxJQUFJO2FBQ2YsQ0FBQTtTQUNEO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ08sTUFBTSxHQUFPLEVBQUUsQ0FBQztJQUN4QixPQUFPO1FBQ04sS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO3dHQTdGVyxZQUFZLHVFQUdmLFlBQVk7NEdBSFQsWUFBWSxjQUZaLE1BQU07OzRGQUVOLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFJRSxNQUFNOzJCQUFDLFlBQVk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSAnLi9kb20uc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlU2VydmljZSB9IGZyb20gJy4vY29yZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ09ORklHX1RPS0VOLCBDb25maWcsIERFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcnO1xuaW1wb3J0IHsgTW9kYWwsIERFRkFVTFRfTW9kYWwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21vZGFsLmludGVyZmFjZSc7XG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuXHRwcml2YXRlIF9tb2RhbDogYW55O1xuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGRvbTogRG9tU2VydmljZSwgcHJpdmF0ZSBjb3JlOiBDb3JlU2VydmljZSxcblx0XHRASW5qZWN0KENPTkZJR19UT0tFTikgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xuXHRcdGlmKCF0aGlzLmNvbmZpZykgdGhpcy5jb25maWc9e307XG5cdFx0aWYoIXRoaXMuY29uZmlnLm1vZGFsKSB0aGlzLmNvbmZpZy5tb2RhbD17fTtcblx0XHRpZighdGhpcy5jb25maWcubW9kYWwubW9kYWxzKSB0aGlzLmNvbmZpZy5tb2RhbC5tb2RhbHM9e307XG5cdFx0dGhpcy5fbW9kYWwgPSBjb25maWcubW9kYWw7XG5cdH1cblxuXHRzaG93KG9wdHM6IE1vZGFsIHwgYW55KXtcblx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdGNvbXBvbmVudDogb3B0c1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZighb3B0cyB8fCB0eXBlb2Ygb3B0cyAhPSAnb2JqZWN0Jykgb3B0cyA9IHt9O1xuXHRcdGlmKHR5cGVvZiBvcHRzLmNvbXBvbmVudCA9PSAnc3RyaW5nJyAmJiB0aGlzLl9tb2RhbC5tb2RhbHNbb3B0cy5jb21wb25lbnRdKXtcblx0XHRcdG9wdHMuY29tcG9uZW50ID0gdGhpcy5fbW9kYWwubW9kYWxzW29wdHMuY29tcG9uZW50XTtcblx0XHR9XG5cdFx0aWYodHlwZW9mIG9wdHMuY29tcG9uZW50ICE9ICdmdW5jdGlvbicpe1xuXHRcdFx0Y29uc29sZS5sb2coXCJUaGlzIGNvbXBvbmVudCBkb2VzIG5vdCBleGlzdHMuXCIpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZighb3B0cy5jbGFzcykgb3B0cy5jbGFzcz0nJztcblx0XHRmb3IgKGxldCBlYWNoIGluIHRoaXMuY29uZmlnLm1vZGFsKXtcblx0XHRcdGlmKGVhY2g9PVwiY2xhc3NcIikgb3B0cy5jbGFzcyArPSAob3B0cy5jbGFzcyYmJyAnfHwnJykgKyB0aGlzLmNvbmZpZy5tb2RhbC5jbGFzcztcblx0XHRcdGVsc2UgaWYoIW9wdHNbZWFjaF0pIG9wdHNbZWFjaF0gPSB0aGlzLl9tb2RhbFtlYWNoXTtcblx0XHR9XG5cdFx0b3B0cy5pZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpICsgRGF0ZS5ub3coKTtcblx0XHR0aGlzLm9wZW5lZFtvcHRzLmlkXSA9IG9wdHM7XG5cdFx0dGhpcy5jb3JlLmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcIm1vZGFsT3BlbmVkXCIpO1xuXHRcdGxldCBjb21wb25lbnQ6YW55O1xuXHRcdGxldCBjb250ZW50OmFueTtcblx0XHRvcHRzLmNsb3NlID0gKCk9Pntcblx0XHRcdGNvbnRlbnQuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcblx0XHRcdGNvbXBvbmVudC5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xuXHRcdFx0aWYodHlwZW9mIG9wdHMub25DbG9zZSA9PSAnZnVuY3Rpb24nKSBvcHRzLm9uQ2xvc2UoKTtcblx0XHRcdGRlbGV0ZSB0aGlzLm9wZW5lZFtvcHRzLmlkXTtcblx0XHRcdGlmKCFPYmplY3Qua2V5cyh0aGlzLm9wZW5lZCkubGVuZ3RoKXtcblx0XHRcdFx0dGhpcy5jb3JlLmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcIm1vZGFsT3BlbmVkXCIpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0aWYodHlwZW9mIG9wdHMudGltZW91dCA9PSAnbnVtYmVyJyAmJiBvcHRzLnRpbWVvdXQ+MCl7XG5cdFx0XHRzZXRUaW1lb3V0KG9wdHMuY2xvc2UsIG9wdHMudGltZW91dCk7XG5cdFx0fVxuXHRcdGNvbXBvbmVudCA9IHRoaXMuZG9tLmFwcGVuZENvbXBvbmVudChNb2RhbENvbXBvbmVudCwgb3B0cyk7XG5cdFx0Y29udGVudCA9IHRoaXMuZG9tLmFwcGVuZENvbXBvbmVudChvcHRzLmNvbXBvbmVudCwgb3B0cywgY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEVsZW1lbnQpO1xuXHRcdHJldHVybiBjb21wb25lbnQubmF0aXZlRWxlbWVudDtcblx0fVxuXHRvcGVuKG9wdHM6IE1vZGFsKXsgdGhpcy5zaG93KG9wdHMpOyB9XG5cdHNtYWxsKG9wdHM6IE1vZGFsKXtcblx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdGNvbXBvbmVudDogb3B0c1xuXHRcdFx0fVxuXHRcdH1cblx0XHRvcHRzLnNpemUgPSAnc21hbGwnO1xuXHRcdHRoaXMuc2hvdyhvcHRzKTtcblx0fVxuXHRtaWQob3B0czogTW9kYWwpe1xuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0Y29tcG9uZW50OiBvcHRzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdG9wdHMuc2l6ZSA9ICdtaWQnO1xuXHRcdHRoaXMuc2hvdyhvcHRzKTtcblx0fVxuXHRiaWcob3B0czogTW9kYWwpe1xuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdzdHJpbmcnIHx8IHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0Y29tcG9uZW50OiBvcHRzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdG9wdHMuc2l6ZSA9ICdiaWcnO1xuXHRcdHRoaXMuc2hvdyhvcHRzKTtcblx0fVxuXHRmdWxsKG9wdHM6IE1vZGFsKXtcblx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdGNvbXBvbmVudDogb3B0c1xuXHRcdFx0fVxuXHRcdH1cblx0XHRvcHRzLnNpemUgPSAnZnVsbCc7XG5cdFx0dGhpcy5zaG93KG9wdHMpO1xuXHR9XG5cdHByaXZhdGUgb3BlbmVkOmFueSA9IHt9O1xuXHRkZXN0cm95KCl7XG5cdFx0Zm9yIChsZXQgZWFjaCBpbiB0aGlzLm9wZW5lZCl7XG5cdFx0ICAgIHRoaXMub3BlbmVkW2VhY2hdLmNsb3NlKCk7XG5cdFx0fVxuXHRcdHRoaXMuY29yZS5kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJtb2RhbE9wZW5lZFwiKTtcblx0fVxufVxuIl19
|
|
@@ -330,7 +330,7 @@ export class MongoService {
|
|
|
330
330
|
}
|
|
331
331
|
this.renew(part, current_doc);
|
|
332
332
|
}
|
|
333
|
-
if (resp && typeof cb == 'function') {
|
|
333
|
+
if ((resp || typeof resp === 'string') && typeof cb == 'function') {
|
|
334
334
|
cb(resp);
|
|
335
335
|
}
|
|
336
336
|
else if (typeof cb == 'function') {
|
|
@@ -960,13 +960,13 @@ export class MongoService {
|
|
|
960
960
|
});
|
|
961
961
|
});
|
|
962
962
|
}
|
|
963
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
964
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
963
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MongoService, deps: [{ token: i1.StoreService }, { token: i2.HttpService }, { token: i3.CoreService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
964
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MongoService, providedIn: 'root' });
|
|
965
965
|
}
|
|
966
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
966
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MongoService, decorators: [{
|
|
967
967
|
type: Injectable,
|
|
968
968
|
args: [{
|
|
969
969
|
providedIn: 'root'
|
|
970
970
|
}]
|
|
971
971
|
}], ctorParameters: function () { return [{ type: i1.StoreService }, { type: i2.HttpService }, { type: i3.CoreService }]; } });
|
|
972
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvbW9uZ28uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVEzQyxNQUFNLE9BQU8sWUFBWTtJQWt5QmY7SUFDQTtJQUNBO0lBbnlCVDs7Ozs7Ozs7TUFRRTtJQUNPLElBQUksR0FBTyxFQUFFLENBQUM7SUFDZCxNQUFNLEdBQVE7UUFDckIsSUFBSSxFQUFFLENBQUMsS0FBUyxFQUFFLEdBQU8sRUFBRSxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7S0FDRCxDQUFDO0lBQ0g7O01BRUU7SUFDTSxNQUFNLENBQUMsSUFBUSxFQUFFLElBQVE7UUFDL0IsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBQ3BDLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFDO1lBQzNCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxFQUFDO2dCQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0M7U0FDRDs7WUFBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFFLEVBQUUsQ0FBQztRQUNqRCxJQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUM7WUFDL0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUcsSUFBSSxDQUFDLEtBQUssRUFBQztZQUNiLEtBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBQztnQkFDekIsSUFBRyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxFQUFDO29CQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHO3dCQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQ3RCLENBQUE7aUJBQ0Q7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ2xDO1NBQ0Q7UUFDRCxJQUFHLElBQUksQ0FBQyxNQUFNLEVBQUM7WUFDZCxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUM7Z0JBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckM7WUFDRCxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDO2dCQUM3QixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7b0JBQ2xDLElBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFDO3dCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztxQkFDM0I7eUJBQUs7d0JBQ0wsS0FBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUM7NEJBQ3JCLElBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxFQUFDO2dDQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUc7b0NBQ2IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7aUNBQ2xCLENBQUE7NkJBQ0Q7NEJBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQy9CO3FCQUNEO2lCQUNEO2FBQ0Q7WUFDRCxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUM7Z0JBQzFCLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsRUFBQztvQkFDdkMsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFDO3dCQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHOzRCQUNsQixLQUFLLEVBQUUsVUFBUyxHQUFPO2dDQUN0QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDakIsQ0FBQzt5QkFDRCxDQUFBO3FCQUNEO3lCQUFJO3dCQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDeEIsU0FBUztxQkFDVDtpQkFDRDtnQkFDRCxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLEVBQUM7b0JBQ3RDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsU0FBUztpQkFDVDtnQkFDRCxJQUFHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxFQUFDO29CQUM5QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3hCLFNBQVM7aUJBQ1Q7Z0JBQ0QsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUM7b0JBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbURBQW1ELEdBQUMsR0FBRyxHQUFDLHlCQUF5QixDQUFDLENBQUM7b0JBQ2hHLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsU0FBUztpQkFDVDtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDbEM7U0FDRDtRQUNELElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQztTQUNEO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsK0NBQStDO1FBQy9DLHNDQUFzQztRQUN0Qyw0Q0FBNEM7UUFDNUMsK0JBQStCO1FBQy9CLE1BQU07UUFDTixLQUFLO1FBQ0wsTUFBTTtRQUNOLE9BQU87WUFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzVCLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDNUIsQ0FBQztJQUNILENBQUM7SUFBQSxDQUFDO0lBQ0ssTUFBTSxDQUFDLElBQVEsRUFBRSxNQUFRLFNBQVMsRUFBRSxLQUFPLFNBQVMsRUFBRSxPQUFTLEVBQUU7UUFDdkUsSUFBSSxPQUFPLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDN0IsSUFBRyxFQUFFO2dCQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDakIsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUNULEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDVDtRQUNELElBQUcsT0FBTyxJQUFJLElBQUksVUFBVSxFQUFDO1lBQzVCLElBQUksR0FBRztnQkFDTixHQUFHLEVBQUUsSUFBSTthQUNULENBQUM7U0FDRjtRQUNELElBQUcsT0FBTyxHQUFHLElBQUksUUFBUTtZQUFFLEdBQUcsR0FBQyxFQUFFLENBQUM7UUFDbEMsSUFBRyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQ2xELEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLElBQUksR0FBRyxTQUFTLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUN4RSxJQUFJLElBQUksRUFBRTtnQkFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzFCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDYixJQUFJLEVBQUUsSUFBSTtpQkFDVixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLElBQUksT0FBTyxFQUFFLElBQUksVUFBVTtvQkFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEM7aUJBQUssSUFBSSxPQUFPLEVBQUUsSUFBSSxVQUFVLEVBQUU7Z0JBQ2xDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNWO1FBQ0YsQ0FBQyxFQUFFO1lBQ0YsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1NBQ25DLENBQUMsQ0FBQztJQUNKLENBQUM7SUFBQSxDQUFDO0lBQ0ssS0FBSyxDQUFDLElBQVEsRUFBRSxPQUFTLFNBQVMsRUFBRSxLQUFPLFNBQVM7UUFDMUQsSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQztZQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBRTtZQUM5QixFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ1YsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNWO1FBQ0QsSUFBRyxDQUFDLElBQUk7WUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsd0JBQXdCO1FBQ2pELElBQUksR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLEdBQUcsUUFBUSxHQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRSxFQUFFLENBQUMsRUFBRSxHQUFPLENBQUM7UUFDN0QsSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDMUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUM7YUFBSTtZQUNKLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDVCxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBQztnQkFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzVEO1NBQ0Q7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDeEQsSUFBRyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxFQUFFLElBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxFQUFDO2dCQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCO1lBQ0QsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUM7Z0JBQ2pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSSxVQUFVLEVBQUU7Z0JBQ3BDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNSO1FBQ0YsQ0FBQyxFQUFFO1lBQ0YsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1NBQ25DLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUFBLENBQUM7SUFDSyxHQUFHLENBQUMsSUFBUSxFQUFFLE9BQVMsU0FBUyxFQUFFLEtBQU8sU0FBUztRQUN4RCxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBRTtZQUM5QixFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ1YsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNWO1FBQ0QsSUFBRyxDQUFDLElBQUk7WUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsd0JBQXdCO1FBQ2pELElBQUksR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLEdBQUcsTUFBTSxHQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRSxFQUFFLENBQUMsR0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDckMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3hCO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUN4RCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ2xCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOzRCQUNyQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFO2dDQUNuRCxNQUFNLEdBQUcsS0FBSyxDQUFDO2dDQUNmLE1BQU07NkJBQ047eUJBQ0Q7d0JBQ0QsSUFBSSxNQUFNLEVBQUU7NEJBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDOUM7cUJBQ0Q7aUJBQ0Q7Z0JBQ0QsSUFBSSxPQUFPLEVBQUUsSUFBSSxVQUFVO29CQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN2RztpQkFBTSxJQUFJLE9BQU8sRUFBRSxJQUFJLFVBQVUsRUFBRTtnQkFDbkMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDLEdBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUMsRUFBRTtZQUNGLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztTQUNuQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFBQSxDQUFDO0lBQ0ssR0FBRyxDQUFDLElBQVEsRUFBRSxPQUFTLFNBQVMsRUFBRSxPQUFTLFNBQVM7UUFDMUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLElBQUksR0FBRyxJQUFJLENBQUM7WUFDWixJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQ2pCO1FBQ0QsSUFBRyxJQUFJO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN6QjtTQUNEO1FBQ0QsT0FBTztZQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUM1QixDQUFBO0lBQ0YsQ0FBQztJQUFBLENBQUM7SUFDTSxjQUFjLENBQUMsSUFBUSxFQUFFLEdBQU8sRUFBRSxJQUFRO1FBQ2pELElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQztZQUNkLElBQUcsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RSxJQUFJLElBQUksR0FBTyxFQUFFLENBQUM7WUFDbEIsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0M7WUFDRCxHQUFHLEdBQUcsSUFBSSxDQUFDO1NBQ1g7O1lBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBRyxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBQztZQUN4RSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEMsS0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Q7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFBQSxDQUFDO0lBQ0ssTUFBTSxDQUFDLElBQVEsRUFBRSxHQUFPLEVBQUUsT0FBUyxTQUFTLEVBQUUsS0FBTyxTQUFTO1FBQ3BFLElBQUksT0FBTyxJQUFJLElBQUksVUFBVSxFQUFDO1lBQzdCLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDVixJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1Y7UUFDRCxJQUFHLE9BQU8sSUFBSSxJQUFJLFFBQVE7WUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUMzQyxJQUFHLElBQUksRUFBQztnQkFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztvQkFDWixJQUFJLEVBQUUsSUFBSTtpQkFDVixDQUFDLENBQUM7YUFDSDtZQUNELElBQUksSUFBSSxJQUFJLE9BQU8sRUFBRSxJQUFJLFVBQVUsRUFBRTtnQkFDcEMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ1Q7aUJBQU0sSUFBSSxPQUFPLEVBQUUsSUFBSSxVQUFVLEVBQUU7Z0JBQ25DLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNWO1FBQ0YsQ0FBQyxFQUFFO1lBQ0YsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1NBQ25DLENBQUMsQ0FBQztJQUNKLENBQUM7SUFBQSxDQUFDO0lBQ0ssTUFBTSxDQUFDLElBQVEsRUFBRSxHQUFPLEVBQUUsT0FBUyxTQUFTLEVBQUUsS0FBTyxTQUFTO1FBQ3BFLElBQUksT0FBTyxJQUFJLElBQUksVUFBVSxFQUFDO1lBQzdCLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDVixJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1Y7UUFDRCxJQUFHLE9BQU8sSUFBSSxJQUFJLFFBQVE7WUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUMzQyxJQUFHLElBQUksRUFBQztnQkFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztvQkFDWixJQUFJLEVBQUUsSUFBSTtpQkFDVixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuRCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBQztvQkFDakIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakM7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDOUI7WUFDRCxJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSSxVQUFVLEVBQUU7Z0JBQ3BDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNUO2lCQUFNLElBQUksT0FBTyxFQUFFLElBQUksVUFBVSxFQUFFO2dCQUNuQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDVjtRQUNGLENBQUMsRUFBRTtZQUNGLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztTQUNuQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQUEsQ0FBQztJQUNLLE1BQU0sQ0FBQyxJQUFRLEVBQUUsR0FBTyxFQUFFLE9BQVMsU0FBUyxFQUFFLEtBQU8sU0FBUztRQUNwRSxJQUFJLE9BQU8sSUFBSSxJQUFJLFVBQVUsRUFBRTtZQUM5QixFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ1YsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNWO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBRyxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtnQkFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksSUFBSSxHQUFPLEVBQUUsQ0FBQztZQUNsQixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUNELEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWDthQUFNO1lBQ04sR0FBRyxHQUFDO2dCQUNILEdBQUcsRUFBQyxHQUFHLENBQUMsR0FBRzthQUNYLENBQUE7U0FDRDtRQUNELElBQUksR0FBRyxHQUFHLE9BQU8sR0FBRyxJQUFJLEdBQUcsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxJQUFJLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUMxQixHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUc7b0JBQ1osSUFBSSxFQUFFLElBQUk7aUJBQ1YsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1lBQ0QsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFLElBQUksVUFBVSxFQUFFO2dCQUNwQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDVDtpQkFBTSxJQUFJLE9BQU8sRUFBRSxJQUFJLFVBQVUsRUFBRTtnQkFDbkMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ1Y7UUFDRixDQUFDLEVBQUU7WUFDRixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7U0FDbkMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUFBLENBQUM7SUFDSyxHQUFHLENBQUMsRUFBTTtRQUNoQixJQUFHLE9BQU8sRUFBRSxJQUFJLFVBQVUsRUFBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDaEM7SUFDRixDQUFDO0lBQUEsQ0FBQztJQUNLLEtBQUssQ0FBQyxJQUFRO1FBQ3BCLElBQUcsQ0FBQyxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO1lBQ3RCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEI7YUFBSyxJQUFHLE9BQU8sSUFBSSxJQUFJLFFBQVEsRUFBQztZQUNoQyxJQUFHLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2YsS0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUM7Z0JBQ25CLElBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbkQ7WUFDRCxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ2I7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNyQyxJQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBQUEsQ0FBQztJQUNLLFVBQVUsQ0FBQyxHQUFPLEVBQUUsRUFBTSxFQUFFLElBQUksR0FBQyxJQUFJO1FBQzNDLElBQUcsT0FBTyxFQUFFLElBQUksVUFBVSxJQUFJLE9BQU8sSUFBSSxJQUFJLFFBQVEsRUFBQztZQUNyRCxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUMzQztJQUNGLENBQUM7SUFBQSxDQUFDO0lBQ0ssUUFBUSxDQUFDLEdBQU8sRUFBRSxLQUFTLEVBQUUsSUFBUTtRQUMzQyxJQUFHLENBQUMsR0FBRyxJQUFFLENBQUMsS0FBSyxJQUFFLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDL0IsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ3JCLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDbkM7WUFDRCxPQUFPO1NBQ1A7UUFDRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFDLElBQUksQ0FBQyxFQUFDO1lBQzNCLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQztnQkFDdkIsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7b0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTzthQUNQO2lCQUFLLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQztnQkFDOUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsSUFBRyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRO29CQUFFLE9BQU87Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQztnQkFDNUIsS0FBSSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUM1QyxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDO3dCQUN2QyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3JEO3lCQUFJO3dCQUNKLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUN4QjtpQkFDRDtnQkFDRCxPQUFPO2FBQ1A7aUJBQUssSUFBRyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLEVBQUM7Z0JBQ3ZDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7YUFDdkQ7O2dCQUFLLE9BQU87U0FDYjthQUFJO1lBQ0osVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1I7SUFDRixDQUFDO0lBQUEsQ0FBQztJQUNLLEVBQUUsQ0FBQyxLQUFTLEVBQUUsRUFBTTtRQUNwQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxVQUFVLENBQUUsR0FBRyxFQUFFO29CQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1g7U0FDSjtRQUNELEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUFBLENBQUM7SUFDSyxLQUFLLENBQUMsS0FBUyxFQUFFLEdBQU8sSUFBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRTs7TUFFRDtJQUNTLFNBQVM7UUFDZixPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUFFLE9BQU8sQ0FBQyxDQUFDOztnQkFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUE7SUFDRixDQUFDO0lBQUEsQ0FBQztJQUNLLFVBQVU7UUFDaEIsT0FBTyxVQUFTLENBQUssRUFBQyxDQUFLO1lBQzFCLElBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsR0FBRztnQkFBRSxPQUFPLENBQUMsQ0FBQzs7Z0JBQ3BCLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFBO0lBQ0YsQ0FBQztJQUFBLENBQUM7SUFDSyxhQUFhLENBQUMsSUFBUTtRQUM1QixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNoRSxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7O2dCQUNwRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDTSxjQUFjLENBQUMsSUFBUTtRQUM3QixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNoRSxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7O2dCQUNwRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDTSxXQUFXLENBQUMsSUFBUTtRQUMxQixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUN4RCxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7O2dCQUM1RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDTSxZQUFZLENBQUMsSUFBUTtRQUMzQixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUN4RCxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7O2dCQUM1RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDTSxhQUFhLENBQUMsSUFBUTtRQUM1QixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNwQyxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7O2dCQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDTSxjQUFjLENBQUMsSUFBUTtRQUM3QixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUNwQyxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7O2dCQUN4RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQTtJQUNGLENBQUM7SUFDTSxjQUFjLENBQUMsSUFBUTtRQUM3QixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBQztZQUMzQixJQUFJLEdBQUc7Z0JBQ04sS0FBSyxFQUFFLElBQUk7YUFDWCxDQUFBO1NBQ0Q7UUFDRCxPQUFPLFVBQVMsQ0FBSyxFQUFDLENBQUs7WUFDMUIsSUFBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ3RDLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDOztnQkFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUE7SUFDRixDQUFDO0lBQ00sZUFBZSxDQUFDLElBQVE7UUFDOUIsSUFBRyxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUM7WUFDM0IsSUFBSSxHQUFHO2dCQUNOLEtBQUssRUFBRSxJQUFJO2FBQ1gsQ0FBQTtTQUNEO1FBQ0QsT0FBTyxVQUFTLENBQUssRUFBQyxDQUFLO1lBQzFCLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO2lCQUN0QyxJQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Z0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzs7Z0JBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFBO0lBQ0YsQ0FBQztJQUNMOztNQUVFO0lBQ00sS0FBSyxDQUFDLEdBQU8sRUFBRSxFQUFNO1FBQzNCLElBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7WUFDMUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUFBLENBQUM7SUFDSyxLQUFLLENBQUMsR0FBTyxFQUFFLEVBQU07UUFDM0IsSUFBRyxPQUFPLEdBQUcsSUFBSSxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQztZQUN2RCxHQUFHLEdBQUcsRUFBRSxDQUFDO1NBQ1Q7UUFDRCxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVCxDQUFDO0lBQUEsQ0FBQztJQUNLLE1BQU0sQ0FBQyxHQUFPLEVBQUUsRUFBTSxJQUFJLEVBQUUsQ0FBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDakQsUUFBUSxDQUFDLEdBQU8sRUFBRSxFQUFNO1FBQzlCLElBQUcsT0FBTyxHQUFHLElBQUksUUFBUSxFQUFDO1lBQ3pCLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDVDtRQUNELEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNULENBQUM7SUFBQSxDQUFDO0lBQ0ssS0FBSyxHQUFHLENBQUMsR0FBTyxFQUFFLEVBQU0sRUFBQyxFQUFFO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBTyxFQUFDLEVBQUU7WUFDMUIsSUFBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUM7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQU8sRUFBQyxFQUFFO29CQUNuQixHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztvQkFDZCxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxDQUFDLENBQUM7YUFDSDs7Z0JBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFDSyxRQUFRLENBQUMsR0FBTyxFQUFFLEVBQU0sSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUNyQyxRQUFRLENBQUMsR0FBTyxFQUFFLEVBQU0sSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUNyQyxXQUFXLENBQUMsR0FBTyxFQUFFLEVBQU0sSUFBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUN4QyxRQUFRLEdBQUcsQ0FBQyxHQUFPLEVBQUUsRUFBTSxFQUFFLEVBQUU7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQU8sRUFBQyxFQUFFO1lBQ25CLEVBQUUsQ0FBQztnQkFDRixHQUFHLEVBQUUsR0FBRzthQUNSLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBQ0ssVUFBVSxDQUFDLEdBQU8sRUFBRSxFQUFNLEVBQUUsR0FBTztRQUN6QyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFBQSxDQUFDO0lBQ0g7O01BRUU7SUFDTyxPQUFPLENBQUMsR0FBTyxFQUFFLEtBQVMsRUFBRSxHQUFPO1FBQzFDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBQyxDQUFDLENBQUMsRUFBQztZQUN4QixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDdEUsT0FBTztZQUNSLElBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBRyxPQUFPLEdBQUcsSUFBSSxVQUFVLEVBQUM7WUFDM0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFTLFFBQVk7Z0JBQ3BDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7WUFDdkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1I7SUFDRixDQUFDO0lBQUEsQ0FBQztJQUNLLEtBQUssQ0FBQyxJQUFRLEVBQUUsR0FBTztRQUM3QixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUM7WUFDakMsS0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUM7Z0JBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1RDtTQUNEO1FBQ0QsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuRDtRQUNELEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkQ7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQzFDLFNBQVM7YUFDVDtZQUNELEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEQ7U0FDRDtRQUNELElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQ2hDLEtBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFDO2dCQUM1QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsSUFBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUFFLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ25FLElBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUFFLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ2xFLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQztvQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUNsQztnQkFDRCxJQUFJLE1BQU0sR0FBTyxFQUFFLENBQUM7Z0JBQ3BCLElBQUksR0FBRyxHQUFHLENBQUMsS0FBUyxFQUFFLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLElBQUcsQ0FBQyxLQUFLO3dCQUFFLE9BQU87b0JBQ2xCLElBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUM7d0JBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztxQkFDekM7b0JBQ0QsSUFBRyxPQUFPLEVBQUM7d0JBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUM7NEJBQ25FLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHO2dDQUFFLE9BQU87eUJBQ3BFO3dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDOUM7eUJBQU07d0JBQ04sS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUM7NEJBQ25FLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxL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QUFFLEdBQU87UUFDNUIsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxRCxJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFELElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDNUQsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRSxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBQztZQUNuQyxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBQztnQkFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzVEO1NBQ0Q7UUFDRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDeEMsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDO2dCQUNuQixLQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztvQkFDaEMsSUFBRyxPQUFPLENBQUMsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDO3dCQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDMUM7aUJBQ0Q7YUFDRDtpQkFBSyxJQUFHLE9BQU8sQ0FBQyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUM7Z0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Q7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN2QyxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUM7Z0JBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNyRTtTQUNEO1FBQ0QsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUM7WUFDaEMsS0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUM7Z0JBQzVDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsSUFBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUFFLFNBQVM7Z0JBQzVELElBQUcsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUFFLFNBQVM7Z0JBQzNELElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQztvQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxL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QUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQVcsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLEtBQUssRUFBRTt3QkFDTixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7cUJBQ2hCO2lCQUNELENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFXLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO29CQUN4QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxLQUFLLEVBQUU7d0JBQ04sR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO3FCQUNoQjtpQkFDRCxDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBVyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt3R0E1ekJXLFlBQVk7NEdBQVosWUFBWSxjQUZaLE1BQU07OzRGQUVOLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZVNlcnZpY2UgfSBmcm9tICcuL2NvcmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9uZ29TZXJ2aWNlIHtcclxuXHQvKlxyXG5cdCpcdERhdGEgd2lsbCBiZSBzdG9yYWdlIGZvciBhbGwgaW5mb3JtYXRpb24gd2UgYXJlIHB1bGxpbmcgZnJvbSB3YXcgY3J1ZC5cclxuXHQqXHRkYXRhWydhcnInICsgcGFydF0gd2lsbCBob3N0IGFsbCBkb2NzIGZyb20gY29sbGVjdGlvbiBwYXJ0IGluIGFycmF5IGZvcm1cclxuXHQqXHRkYXRhWydvYmonICsgcGFydF0gd2lsbCBob3N0IGFsbCBkb2NzIGZyb20gY29sbGVjdGlvbiBwYXJ0IGluIG9iamVjdCBmb3JtXHJcblx0Klx0XHRhbmQgYWxsIGdyb3VwcyBjb2xsZWNpdG9ucyBwcm92aWRlZFxyXG5cdCpcdGRhdGFbJ29wdHMnICsgcGFydF0gd2lsbCBob3N0IG9wdGlvbnMgZm9yIGRvY3MgZnJvbSBjb2xsZWN0aW9uIHBhcnRcclxuXHQqXHRcdFdpbGwgYmUgaW5pdGlhbGl6ZWQgb25seSBpbnNpZGUgZ2V0XHJcblx0Klx0XHRXaWxsIGJlIHVzZWQgaW5zaWRlIHB1c2hcclxuXHQqL1xyXG5cdFx0cHJpdmF0ZSBkYXRhOmFueSA9IHt9O1xyXG5cdFx0cHJpdmF0ZSBzb2NrZXQ6IGFueSA9IHtcclxuXHRcdFx0ZW1pdDogKHdoaWNoOmFueSwgZG9jOmFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHdoaWNoLCBkb2MsICdpcyBub3QgdXNlZCBvbiBzb2NrZXRzJyk7XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0LypcclxuXHQqXHR3YXcgY3J1ZCBjb25uZWN0IGZ1bmN0aW9uc1xyXG5cdCovXHJcblx0XHRwdWJsaWMgY29uZmlnKHBhcnQ6YW55LCBvcHRzOmFueSl7XHJcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XSkgcmV0dXJuO1xyXG5cdFx0XHRpZighdGhpcy5kYXRhWydhcnInICsgcGFydF0pIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdID0gW107XHJcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSkgdGhpcy5kYXRhWydvYmonICsgcGFydF0gPSB7fTtcclxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdKXtcclxuXHRcdFx0XHRmb3IgKGxldCBlYWNoIGluIG9wdHMpe1xyXG5cdFx0XHRcdCAgICB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF1bZWFjaF0gPSBvcHRzW2VhY2hdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fWVsc2UgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdID0gb3B0cyA9IG9wdHN8fHt9O1xyXG5cdFx0XHRpZih0eXBlb2Ygb3B0cy51c2UgPT09ICdzdHJpbmcnKXtcclxuXHRcdFx0XHRvcHRzLnVzZSA9IG9wdHMudXNlLnNwbGl0KCcgJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYob3B0cy5xdWVyeSl7XHJcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gb3B0cy5xdWVyeSl7XHJcblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5xdWVyeVtrZXldID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRvcHRzLnF1ZXJ5W2tleV0gPSB7XHJcblx0XHRcdFx0XHRcdFx0YWxsb3c6IG9wdHMucXVlcnlba2V5XVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0gW107XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmKG9wdHMuZ3JvdXBzKXtcclxuXHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHMgPT09ICdzdHJpbmcnKXtcclxuXHRcdFx0XHRcdG9wdHMuZ3JvdXBzID0gb3B0cy5ncm91cHMuc3BsaXQoJyAnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShvcHRzLmdyb3Vwcykpe1xyXG5cdFx0XHRcdFx0bGV0IGFyciA9IG9wdHMuZ3JvdXBzO1xyXG5cdFx0XHRcdFx0b3B0cy5ncm91cHMgPSB7fTtcclxuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspe1xyXG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgYXJyW2ldID09PSAnc3RyaW5nJyl7XHJcblx0XHRcdFx0XHRcdFx0b3B0cy5ncm91cHNbYXJyW2ldXSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH1lbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRmb3IobGV0IGtleSBpbiBhcnJbaV0pe1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYodHlwZW9mIGFycltpXVtrZXldID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcnJbaV1ba2V5XSA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWVsZDogYXJyW2ldW2tleV1cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0b3B0cy5ncm91cHNba2V5XSA9IGFycltpXVtrZXldO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBvcHRzLmdyb3Vwcyl7XHJcblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHNba2V5XSA9PSAnYm9vbGVhbicpe1xyXG5cdFx0XHRcdFx0XHRpZihvcHRzLmdyb3Vwc1trZXldKXtcclxuXHRcdFx0XHRcdFx0XHRvcHRzLmdyb3Vwc1trZXldID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0ZmllbGQ6IGZ1bmN0aW9uKGRvYzphbnkpe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZG9jW2tleV07XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYodHlwZW9mIG9wdHMuZ3JvdXBzW2tleV0gIT0gJ29iamVjdCcpe1xyXG5cdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcclxuXHRcdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHNba2V5XS5maWVsZCAhPSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0XHRcdFx0ZGVsZXRlIG9wdHMuZ3JvdXBzW2tleV07XHJcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKSl7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUud2FybignWW91IGNhbiBoYXZlIHNhbWUgZmllbGQgZ3JvdXBzIHdpdGggcXVlcnkuIEZpZWxkICcra2V5KycgaXMgbm90IHVzZWQgaW4gZ3JvdXBzLicpO1xyXG5cdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcclxuXHRcdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmKG9wdHMuZmllbGRzKSB7XHJcblx0XHRcdFx0aWYgKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRcdG9wdHMuZmllbGRzID0gb3B0cy5maWVsZHMuc3BsaXQoJyAnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKCFBcnJheS5pc0FycmF5KG9wdHMuZmllbGRzKSkge1xyXG5cdFx0XHRcdG9wdHMuZmllbGRzID0gW107XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gdGhpcy5zdG9yZS5nZXRKc29uKCdtb25nbycgKyBwYXJ0LCBkYXRhID0+IHtcclxuXHRcdFx0Ly8gXHRpZiAoZGF0YSAmJiBBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcblx0XHRcdC8vIFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0Ly8gXHRcdFx0dGhpcy5wdXNoKHBhcnQsIGRhdGFbaV0pO1xyXG5cdFx0XHQvLyBcdFx0fVxyXG5cdFx0XHQvLyBcdH1cclxuXHRcdFx0Ly8gfSk7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0YXJyOiB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XSxcclxuXHRcdFx0XHRvYmo6IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdXHJcblx0XHRcdH07XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIGNyZWF0ZShwYXJ0OmFueSwgZG9jOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQsIG9wdHM6YW55PXt9KSB7XHJcblx0XHRcdGlmICh0eXBlb2YgZG9jID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRpZihjYikgb3B0cyA9IGNiO1xyXG5cdFx0XHRcdGNiID0gZG9jO1xyXG5cdFx0XHRcdGRvYyA9IHt9O1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdG9wdHMgPSB7XHJcblx0XHRcdFx0XHRlcnI6IG9wdHNcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmKHR5cGVvZiBkb2MgIT0gJ29iamVjdCcpIGRvYz17fTtcclxuXHRcdFx0aWYoZG9jLl9fX2NyZWF0ZWQgJiYgIW9wdHMuYWxsb3dfbXVsdGlwbGUpIHJldHVybjtcclxuXHRcdFx0ZG9jLl9fX2NyZWF0ZWQgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmh0dHAucG9zdChvcHRzLnVybCB8fCAnL2FwaS8nICsgcGFydCArICcvY3JlYXRlJywgZG9jIHx8IHt9LCByZXNwID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgnY3JlYXRlJywge1xyXG5cdFx0XHRcdFx0XHRfaWQ6IHJlc3AuX2lkLFxyXG5cdFx0XHRcdFx0XHRwYXJ0OiBwYXJ0XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdHRoaXMucHVzaChwYXJ0LCByZXNwKTtcclxuXHRcdFx0XHRcdGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykgY2IocmVzcCk7XHJcblx0XHRcdFx0fWVsc2UgaWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRjYihmYWxzZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB7XHJcblx0XHRcdFx0dXJsOiBvcHRzLmJhc2VfdXJsIHx8IHRoaXMuaHR0cC51cmxcclxuXHRcdFx0fSk7XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIGZldGNoKHBhcnQ6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcclxuXHRcdFx0aWYob3B0cy5xdWVyeSAmJiBvcHRzLnF1ZXJ5Ll9pZCAmJiAhb3B0cy5mb3JjZSAmJlxyXG5cdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXSl7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdGNiID0gb3B0cztcclxuXHRcdFx0XHRvcHRzID0ge307XHJcblx0XHRcdH1cclxuXHRcdFx0aWYoIW9wdHMpIG9wdHMgPSB7fTtcclxuXHRcdFx0dGhpcy5jb25maWcocGFydCwgb3B0cyk7IC8vIHJlbW92ZSB0aGlzIGluIGZ1dHVyZVxyXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL2ZldGNoJysob3B0cy5uYW1lfHwnJyksIGRvYzphbnk7XHJcblx0XHRcdGlmKG9wdHMucXVlcnkgJiYgb3B0cy5xdWVyeS5faWQgJiYgdGhpcy5kYXRhWydvYmonICsgcGFydF1bb3B0cy5xdWVyeS5faWRdKXtcclxuXHRcdFx0XHRkb2MgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtvcHRzLnF1ZXJ5Ll9pZF07XHJcblx0XHRcdH1lbHNle1xyXG5cdFx0XHRcdGRvYyA9IHt9O1xyXG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZSl7XHJcblx0XHRcdFx0XHR0aGlzLnJlcGxhY2UoZG9jLCBrZXksIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZVtrZXldKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgdXJsLCAob3B0cy5xdWVyeXx8e30pLCByZXNwID0+IHtcclxuXHRcdFx0XHRpZighcmVzcCkgcmV0dXJuIGNiJiZjYihmYWxzZSk7XHJcblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiByZXNwKXtcclxuXHRcdFx0XHQgICAgZG9jW2VhY2hdID0gcmVzcFtlYWNoXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2Mpe1xyXG5cdFx0XHRcdCAgICBkb2NbZWFjaF0gPSByZXNwW2VhY2hdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLnB1c2gocGFydCwgZG9jKTtcclxuXHRcdFx0XHRpZiAocmVzcCAmJiB0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0Y2IoZG9jKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHtcclxuXHRcdFx0XHR1cmw6IG9wdHMuYmFzZV91cmwgfHwgdGhpcy5odHRwLnVybFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0cmV0dXJuIGRvYztcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgZ2V0KHBhcnQ6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRjYiA9IG9wdHM7XHJcblx0XHRcdFx0b3B0cyA9IHt9O1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmKCFvcHRzKSBvcHRzID0ge307XHJcblx0XHRcdHRoaXMuY29uZmlnKHBhcnQsIG9wdHMpOyAvLyByZW1vdmUgdGhpcyBpbiBmdXR1cmVcclxuXHRcdFx0bGV0IHVybCA9ICcvYXBpLycgKyBwYXJ0ICsgJy9nZXQnKyhvcHRzLm5hbWV8fCcnKSsob3B0cy5wYXJhbXx8JycpO1xyXG5cdFx0XHR0aGlzLmh0dHAuZ2V0KG9wdHMudXJsIHx8IHVybCwgcmVzcCA9PiB7XHJcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkocmVzcCkpIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnB1c2gocGFydCxyZXNwW2ldKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICghb3B0cy5wYWdpbmF0ZSkge1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdFx0bGV0IHJlbW92ZSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCByZXNwLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzcFtqXS5faWQgPT09IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdW2ldLl9pZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZW1vdmUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGlmIChyZW1vdmUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMucmVtb3ZlKHBhcnQsIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdW2ldKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykgY2IodGhpcy5kYXRhWydhcnInICsgcGFydF0sIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdLCBvcHRzLm5hbWV8fCcnLCByZXNwKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRjYih0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XSwgdGhpcy5kYXRhWydvYmonICsgcGFydF0sIG9wdHMubmFtZXx8JycsIHJlc3ApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmRhdGFbJ2xvYWRlZCcrcGFydF09dHJ1ZTtcclxuXHRcdFx0fSwge1xyXG5cdFx0XHRcdHVybDogb3B0cy5iYXNlX3VybCB8fCB0aGlzLmh0dHAudXJsXHJcblx0XHRcdH0pO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5kYXRhWydhcnInICsgcGFydF07XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIHNldChwYXJ0OmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCByZXNwOmFueT11bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob3B0cykpIHtcclxuXHRcdFx0XHRyZXNwID0gb3B0cztcclxuXHRcdFx0XHRvcHRzID0gdW5kZWZpbmVkO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmKG9wdHMpIHRoaXMuY29uZmlnKHBhcnQsIG9wdHMpO1xyXG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShyZXNwKSkge1xyXG5cdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcC5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0dGhpcy5wdXNoKHBhcnQsIHJlc3BbaV0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdGFycjogdGhpcy5kYXRhWydhcnInICsgcGFydF0sXHJcblx0XHRcdFx0b2JqOiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0cHJpdmF0ZSBwcmVwYXJlX3VwZGF0ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnkpe1xyXG5cdFx0XHRpZihvcHRzLmZpZWxkcyl7XHJcblx0XHRcdFx0aWYodHlwZW9mIG9wdHMuZmllbGRzID09PSAnc3RyaW5nJykgb3B0cy5maWVsZHMgPSBvcHRzLmZpZWxkcy5zcGxpdCgnICcpO1xyXG5cdFx0XHRcdGxldCBfZG9jOmFueSA9IHt9O1xyXG5cdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBvcHRzLmZpZWxkcy5sZW5ndGg7IGkrKyl7XHJcblx0XHRcdFx0XHRfZG9jW29wdHMuZmllbGRzW2ldXSA9IGRvY1tvcHRzLmZpZWxkc1tpXV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGRvYyA9IF9kb2M7XHJcblx0XHRcdH1lbHNlIHRoaXMucmVuZXcocGFydCwgZG9jKTtcclxuXHRcdFx0aWYodHlwZW9mIG9wdHMucmV3cml0ZSA9PSAnb2JqZWN0JyAmJiBPYmplY3QudmFsdWVzKG9wdHMucmV3cml0ZSkubGVuZ3RoKXtcclxuXHRcdFx0XHRkb2MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRvYykpO1xyXG5cdFx0XHRcdGZvcihsZXQga2V5IGluIG9wdHMucmV3cml0ZSl7XHJcblx0XHRcdFx0XHR0aGlzLnJlcGxhY2UoZG9jLCBrZXksIG9wdHMucmV3cml0ZVtrZXldKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGRvYztcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgdXBkYXRlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdGNiID0gb3B0cztcclxuXHRcdFx0XHRvcHRzID0ge307XHJcblx0XHRcdH1cclxuXHRcdFx0aWYodHlwZW9mIG9wdHMgIT0gJ29iamVjdCcpIG9wdHMgPSB7fTtcclxuXHRcdFx0ZG9jID0gdGhpcy5wcmVwYXJlX3VwZGF0ZShwYXJ0LCBkb2MsIG9wdHMpO1xyXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL3VwZGF0ZScgKyAob3B0cy5uYW1lfHwnJyk7XHJcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcclxuXHRcdFx0XHRpZihyZXNwKXtcclxuXHRcdFx0XHRcdHRoaXMuc29ja2V0LmVtaXQoJ3VwZGF0ZScsIHtcclxuXHRcdFx0XHRcdFx0X2lkOiBkb2MuX2lkLFxyXG5cdFx0XHRcdFx0XHRwYXJ0OiBwYXJ0XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHJlc3AgJiYgdHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdGNiKHJlc3ApO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdGNiKGZhbHNlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHtcclxuXHRcdFx0XHR1cmw6IG9wdHMuYmFzZV91cmwgfHwgdGhpcy5odHRwLnVybFxyXG5cdFx0XHR9KTtcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgdW5pcXVlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdGNiID0gb3B0cztcclxuXHRcdFx0XHRvcHRzID0ge307XHJcblx0XHRcdH1cclxuXHRcdFx0aWYodHlwZW9mIG9wdHMgIT0gJ29iamVjdCcpIG9wdHMgPSB7fTtcclxuXHRcdFx0ZG9jID0gdGhpcy5wcmVwYXJlX3VwZGF0ZShwYXJ0LCBkb2MsIG9wdHMpO1xyXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL3VuaXF1ZScgKyAob3B0cy5uYW1lfHwnJyk7XHJcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcclxuXHRcdFx0XHRpZihyZXNwKXtcclxuXHRcdFx0XHRcdHRoaXMuc29ja2V0LmVtaXQoJ3VwZGF0ZScsIHtcclxuXHRcdFx0XHRcdFx0X2lkOiBkb2MuX2lkLFxyXG5cdFx0XHRcdFx0XHRwYXJ0OiBwYXJ0XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdGxldCBjdXJyZW50X2RvYyA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdO1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2Mpe1xyXG5cdFx0XHRcdFx0ICAgIGN1cnJlbnRfZG9jW2VhY2hdID0gZG9jW2VhY2hdO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dGhpcy5yZW5ldyhwYXJ0LCBjdXJyZW50X2RvYyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChyZXNwICYmIHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRjYihyZXNwKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRjYihmYWxzZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB7XHJcblx0XHRcdFx0dXJsOiBvcHRzLmJhc2VfdXJsIHx8IHRoaXMuaHR0cC51cmxcclxuXHRcdFx0fSk7XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIGRlbGV0ZShwYXJ0OmFueSwgZG9jOmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XHJcblx0XHRcdGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0Y2IgPSBvcHRzO1xyXG5cdFx0XHRcdG9wdHMgPSB7fTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgIT09ICdvYmplY3QnKSBvcHRzID0ge307XHJcblx0XHRcdGlmIChvcHRzLmZpZWxkcykge1xyXG5cdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIG9wdHMuZmllbGRzID0gb3B0cy5maWVsZHMuc3BsaXQoJyAnKTtcclxuXHRcdFx0XHRsZXQgX2RvYzphbnkgPSB7fTtcclxuXHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgb3B0cy5maWVsZHMubGVuZ3RoOyBpKyspe1xyXG5cdFx0XHRcdFx0X2RvY1tvcHRzLmZpZWxkc1tpXV0gPSBkb2Nbb3B0cy5maWVsZHNbaV1dO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkb2MgPSBfZG9jO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGRvYz17XHJcblx0XHRcdFx0XHRfaWQ6ZG9jLl9pZFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL2RlbGV0ZScgKyAob3B0cy5uYW1lfHwnJyk7XHJcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcclxuXHRcdFx0XHRpZiAocmVzcCkge1xyXG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgnZGVsZXRlJywge1xyXG5cdFx0XHRcdFx0XHRfaWQ6IGRvYy5faWQsXHJcblx0XHRcdFx0XHRcdHBhcnQ6IHBhcnRcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0dGhpcy5yZW1vdmUocGFydCwgZG9jKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKHJlc3AgJiYgdHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdGNiKHJlc3ApO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdGNiKGZhbHNlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHtcclxuXHRcdFx0XHR1cmw6IG9wdHMuYmFzZV91cmwgfHwgdGhpcy5odHRwLnVybFxyXG5cdFx0XHR9KTtcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgX2lkKGNiOmFueSl7XHJcblx0XHRcdGlmKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0XHR0aGlzLmh0dHAuZ2V0KCcvd2F3L25ld0lkJywgY2IpO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIHRvX2lkKGRvY3M6YW55KXtcclxuXHRcdFx0aWYoIWRvY3MpIHJldHVybiBbXTtcclxuXHRcdFx0aWYoQXJyYXkuaXNBcnJheShkb2NzKSl7XHJcblx0XHRcdFx0ZG9jcyA9IGRvY3Muc2xpY2UoKTtcclxuXHRcdFx0fWVsc2UgaWYodHlwZW9mIGRvY3MgPT0gJ29iamVjdCcpe1xyXG5cdFx0XHRcdGlmKGRvY3MuX2lkKSByZXR1cm4gW2RvY3MuX2lkXTtcclxuXHRcdFx0XHRsZXQgX2RvY3MgPSBbXTtcclxuXHRcdFx0XHRmb3IobGV0IGtleSBpbiBkb2NzKXtcclxuXHRcdFx0XHRcdGlmKGRvY3Nba2V5XSkgX2RvY3MucHVzaChkb2NzW2tleV0uX2lkfHxkb2NzW2tleV0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkb2NzID0gX2RvY3M7XHJcblx0XHRcdH1cclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBkb2NzLmxlbmd0aDsgKytpKSB7XHJcblx0XHRcdFx0aWYoZG9jc1tpXSkgZG9jc1tpXSA9IGRvY3NbaV0uX2lkIHx8IGRvY3NbaV07XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGRvY3M7XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIGFmdGVyV2hpbGUoZG9jOmFueSwgY2I6YW55LCB0aW1lPTEwMDApe1xyXG5cdFx0XHRpZih0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdGltZSA9PSAnbnVtYmVyJyl7XHJcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KGRvYy5fX3VwZGF0ZVRpbWVvdXQpO1xyXG5cdFx0XHRcdGRvYy5fX3VwZGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KGNiLCB0aW1lKTtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHRcdHB1YmxpYyBwb3B1bGF0ZShkb2M6YW55LCBmaWVsZDphbnksIHBhcnQ6YW55KTphbnl7XHJcblx0XHRcdGlmKCFkb2N8fCFmaWVsZHx8IXBhcnQpIHJldHVybjtcclxuXHRcdFx0aWYoQXJyYXkuaXNBcnJheShkb2MpKXtcclxuXHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgZG9jLmxlbmd0aDsgaSsrKXtcclxuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jW2ldLCBmaWVsZCwgcGFydCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZih0aGlzLmRhdGFbJ2xvYWRlZCcrcGFydF0pe1xyXG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkoZmllbGQpKXtcclxuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBmaWVsZC5sZW5ndGg7IGkrKyl7XHJcblx0XHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBmaWVsZFtpXSwgcGFydCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fWVsc2UgaWYoZmllbGQuaW5kZXhPZignLicpPi0xKXtcclxuXHRcdFx0XHRcdGZpZWxkID0gZmllbGQuc3BsaXQoJy4nKTtcclxuXHRcdFx0XHRcdGxldCBzdWIgPSBmaWVsZC5zaGlmdCgpO1xyXG5cdFx0XHRcdFx0aWYodHlwZW9mIGRvY1tzdWJdICE9ICdvYmplY3QnKSByZXR1cm47XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5wb3B1bGF0ZShkb2Nbc3ViXSwgZmllbGQuam9pbignLicpLCBwYXJ0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShkb2NbZmllbGRdKSl7XHJcblx0XHRcdFx0XHRmb3IobGV0IGkgPSBkb2NbZmllbGRdLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XHJcblx0XHRcdFx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJytwYXJ0XVtkb2NbZmllbGRdW2ldXSl7XHJcblx0XHRcdFx0XHRcdFx0ZG9jW2ZpZWxkXVtpXSA9IHRoaXMuZGF0YVsnb2JqJytwYXJ0XVtkb2NbZmllbGRdW2ldXTtcclxuXHRcdFx0XHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0XHRcdFx0ZG9jW2ZpZWxkXS5zcGxpY2UoaSwgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9ZWxzZSBpZih0eXBlb2YgZG9jW2ZpZWxkXSA9PT0gJ3N0cmluZycpe1xyXG5cdFx0XHRcdFx0ZG9jW2ZpZWxkXSA9IHRoaXMuZGF0YVsnb2JqJytwYXJ0XVtkb2NbZmllbGRdXSB8fCBudWxsO1xyXG5cdFx0XHRcdH1lbHNlIHJldHVybjtcclxuXHRcdFx0fWVsc2V7XHJcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PntcclxuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBmaWVsZCwgcGFydCk7XHJcblx0XHRcdFx0fSwgMTAwKTtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHRcdHB1YmxpYyBvbihwYXJ0czphbnksIGNiOmFueSk6YW55IHtcclxuICAgXHRcdCAgICBpZiAodHlwZW9mIHBhcnRzID09PSAnc3RyaW5nJykge1xyXG4gICBcdFx0ICAgICAgICBwYXJ0cyA9IHBhcnRzLnNwbGl0KFwiIFwiKTtcclxuICAgXHRcdCAgICB9XHJcbiAgIFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xyXG4gICBcdFx0ICAgICAgICBpZiAoIXRoaXMuZGF0YVsnbG9hZGVkJytwYXJ0c1tpXV0pIHtcclxuICAgXHRcdCAgICAgICAgICAgIHJldHVybiBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgIFx0XHQgICAgICAgICAgICAgICAgdGhpcy5vbihwYXJ0cywgY2IpO1xyXG4gICBcdFx0ICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgXHRcdCAgICAgICAgfVxyXG4gICBcdFx0ICAgIH1cclxuICAgXHRcdCAgICBjYih0aGlzLmRhdGEpO1xyXG4gICBcdFx0fTtcclxuICAgXHRcdHB1YmxpYyB0cmFjayhpbmRleDphbnksIGRvYzphbnkpeyByZXR1cm4gZG9jICYmIGRvYy5faWQgJiYgZG9jLl9pZCB8fCBpbmRleDsgfVxyXG4gICBcdC8qXHJcblx0Klx0bW9uZ28gc29ydCBmaWx0ZXJzXHJcblx0Ki9cclxuICAgXHRcdHB1YmxpYyBzb3J0QXNjSWQoKXtcclxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcclxuICAgXHRcdFx0XHRpZihhLl9pZD5iLl9pZCkgcmV0dXJuIDE7XHJcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gLTE7XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdH07XHJcbiAgIFx0XHRwdWJsaWMgc29ydERlc2NJZCgpe1xyXG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xyXG4gICBcdFx0XHRcdGlmKGEuX2lkPGIuX2lkKSByZXR1cm4gMTtcclxuICAgXHRcdFx0XHRlbHNlIHJldHVybiAtMTtcclxuICAgXHRcdFx0fVxyXG4gICBcdFx0fTtcclxuICAgXHRcdHB1YmxpYyBzb3J0QXNjU3RyaW5nKG9wdHM6YW55KXtcclxuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcclxuICAgXHRcdFx0XHRvcHRzID0ge1xyXG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcclxuICAgXHRcdFx0XHR9XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcclxuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCk+YltvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpKSByZXR1cm4gMTtcclxuICAgXHRcdFx0XHRlbHNlIGlmKGFbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKTxiW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCkgfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xyXG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xyXG4gICBcdFx0XHR9XHJcbiAgIFx0XHR9XHJcbiAgIFx0XHRwdWJsaWMgc29ydERlc2NTdHJpbmcob3B0czphbnkpe1xyXG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xyXG4gICBcdFx0XHRcdG9wdHMgPSB7XHJcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xyXG4gICBcdFx0XHRcdH1cclxuICAgXHRcdFx0fVxyXG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xyXG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKTxiW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCkpIHJldHVybiAxO1xyXG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPmJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XHJcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdH1cclxuICAgXHRcdHB1YmxpYyBzb3J0QXNjRGF0ZShvcHRzOmFueSl7XHJcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XHJcbiAgIFx0XHRcdFx0b3B0cyA9IHtcclxuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXHJcbiAgIFx0XHRcdFx0fVxyXG4gICBcdFx0XHR9XHJcbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XHJcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXS5nZXRUaW1lKCk+YltvcHRzLmZpZWxkXS5nZXRUaW1lKCkpIHJldHVybiAxO1xyXG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXS5nZXRUaW1lKCk8YltvcHRzLmZpZWxkXS5nZXRUaW1lKCkgfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xyXG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xyXG4gICBcdFx0XHR9XHJcbiAgIFx0XHR9XHJcbiAgIFx0XHRwdWJsaWMgc29ydERlc2NEYXRlKG9wdHM6YW55KXtcclxuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcclxuICAgXHRcdFx0XHRvcHRzID0ge1xyXG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcclxuICAgXHRcdFx0XHR9XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcclxuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdLmdldFRpbWUoKTxiW29wdHMuZmllbGRdLmdldFRpbWUoKSkgcmV0dXJuIDE7XHJcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdLmdldFRpbWUoKT5iW29wdHMuZmllbGRdLmdldFRpbWUoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XHJcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdH1cclxuICAgXHRcdHB1YmxpYyBzb3J0QXNjTnVtYmVyKG9wdHM6YW55KXtcclxuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcclxuICAgXHRcdFx0XHRvcHRzID0ge1xyXG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcclxuICAgXHRcdFx0XHR9XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcclxuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdPmJbb3B0cy5maWVsZF0pIHJldHVybiAxO1xyXG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXTxiW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcclxuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcclxuICAgXHRcdFx0fVxyXG4gICBcdFx0fVxyXG4gICBcdFx0cHVibGljIHNvcnREZXNjTnVtYmVyKG9wdHM6YW55KXtcclxuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcclxuICAgXHRcdFx0XHRvcHRzID0ge1xyXG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcclxuICAgXHRcdFx0XHR9XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcclxuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdPGJbb3B0cy5maWVsZF0pIHJldHVybiAxO1xyXG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXT5iW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcclxuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcclxuICAgXHRcdFx0fVxyXG4gICBcdFx0fVxyXG4gICBcdFx0cHVibGljIHNvcnRBc2NCb29sZWFuKG9wdHM6YW55KXtcclxuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcclxuICAgXHRcdFx0XHRvcHRzID0ge1xyXG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcclxuICAgXHRcdFx0XHR9XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcclxuICAgXHRcdFx0XHRpZighYVtvcHRzLmZpZWxkXSYmYltvcHRzLmZpZWxkXSkgcmV0dXJuIDE7XHJcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdJiYhYltvcHRzLmZpZWxkXSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XHJcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XHJcbiAgIFx0XHRcdH1cclxuICAgXHRcdH1cclxuICAgXHRcdHB1YmxpYyBzb3J0RGVzY0Jvb2xlYW4ob3B0czphbnkpe1xyXG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xyXG4gICBcdFx0XHRcdG9wdHMgPSB7XHJcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xyXG4gICBcdFx0XHRcdH1cclxuICAgXHRcdFx0fVxyXG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xyXG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0mJiFiW29wdHMuZmllbGRdKSByZXR1cm4gMTtcclxuICAgXHRcdFx0XHRlbHNlIGlmKCFhW29wdHMuZmllbGRdJiZiW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcclxuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcclxuICAgXHRcdFx0fVxyXG4gICBcdFx0fVxyXG5cdC8qXHJcblx0Klx0bW9uZ28gcmVwbGFjZSBmaWx0ZXJzXHJcblx0Ki9cclxuXHRcdHB1YmxpYyBiZUFycih2YWw6YW55LCBjYjphbnkpe1xyXG5cdFx0XHRpZighQXJyYXkuaXNBcnJheSh2YWwpKSBjYihbXSk7XHJcblx0XHRcdGVsc2UgY2IodmFsKTtcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgYmVPYmoodmFsOmFueSwgY2I6YW55KXtcclxuXHRcdFx0aWYodHlwZW9mIHZhbCAhPSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbCkgfHwgIXZhbCl7XHJcblx0XHRcdFx0dmFsID0ge307XHJcblx0XHRcdH1cclxuXHRcdFx0Y2IodmFsKTtcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgYmVEYXRlKHZhbDphbnksIGNiOmFueSkgeyBjYiggbmV3IERhdGUodmFsKSApOyB9O1xyXG5cdFx0cHVibGljIGJlU3RyaW5nKHZhbDphbnksIGNiOmFueSl7XHJcblx0XHRcdGlmKHR5cGVvZiB2YWwgIT0gJ3N0cmluZycpe1xyXG5cdFx0XHRcdHZhbCA9ICcnO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNiKHZhbCk7XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIGJlRG9jID0gKHZhbDphbnksIGNiOmFueSk9PntcclxuXHRcdFx0dGhpcy5iZU9iaih2YWwsICh2YWw6YW55KT0+e1xyXG5cdFx0XHRcdGlmKCF2YWwuX2lkKXtcclxuXHRcdFx0XHRcdHRoaXMuX2lkKChfaWQ6YW55KT0+e1xyXG5cdFx0XHRcdFx0XHR2YWwuX2lkID0gX2lkO1xyXG5cdFx0XHRcdFx0XHRjYih2YWwpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fWVsc2UgY2IodmFsKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIGZvcmNlQXJyKHZhbDphbnksIGNiOmFueSl7IGNiKFtdKTsgfTtcclxuXHRcdHB1YmxpYyBmb3JjZU9iaih2YWw6YW55LCBjYjphbnkpeyBjYih7fSk7IH07XHJcblx0XHRwdWJsaWMgZm9yY2VTdHJpbmcodmFsOmFueSwgY2I6YW55KXsgY2IoJycpOyB9O1xyXG5cdFx0cHVibGljIGZvcmNlRG9jID0gKHZhbDphbnksIGNiOmFueSkgPT4ge1xyXG5cdFx0XHR0aGlzLl9pZCgoX2lkOmFueSk9PntcclxuXHRcdFx0XHRjYih7XHJcblx0XHRcdFx0XHRfaWQ6IF9pZFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgZ2V0Q3JlYXRlZCh2YWw6YW55LCBjYjphbnksIGRvYzphbnkpe1xyXG5cdFx0XHRjYihuZXcgRGF0ZShwYXJzZUludChkb2MuX2lkLnN1YnN0cmluZygwLDgpLCAxNikqMTAwMCkpO1xyXG5cdFx0fTtcclxuXHQvKlxyXG5cdCpcdG1vbmdvIGxvY2FsIHN1cHBvcnQgZnVuY3Rpb25zXHJcblx0Ki9cclxuXHRcdHByaXZhdGUgcmVwbGFjZShkb2M6YW55LCB2YWx1ZTphbnksIHJwbDphbnkpOmFueXtcclxuXHRcdFx0aWYodmFsdWUuaW5kZXhPZignLicpPi0xKXtcclxuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlLnNwbGl0KCcuJyk7XHJcblx0XHRcdFx0bGV0IHN1YiA9IHZhbHVlLnNoaWZ0KCk7XHJcblx0XHRcdFx0aWYoZG9jW3N1Yl0gJiYgKHR5cGVvZiBkb2Nbc3ViXSAhPSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGRvY1tzdWJdKSkpXHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0aWYoIWRvY1tzdWJdKSBkb2Nbc3ViXSA9IHt9O1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLnJlcGxhY2UoZG9jW3N1Yl0sIHZhbHVlLmpvaW4oJy4nKSwgcnBsKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZih0eXBlb2YgcnBsID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdHJwbChkb2NbdmFsdWVdLCBmdW5jdGlvbihuZXdWYWx1ZTphbnkpe1xyXG5cdFx0XHRcdFx0ZG9jW3ZhbHVlXSA9IG5ld1ZhbHVlO1xyXG5cdFx0XHRcdH0sIGRvYyk7XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0XHRwdWJsaWMgcmVuZXcocGFydDphbnksIGRvYzphbnkpe1xyXG5cdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF0pIHJldHVybiB0aGlzLnB1c2gocGFydCwgZG9jKTtcclxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcclxuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Upe1xyXG5cdFx0XHRcdFx0dGhpcy5yZXBsYWNlKGRvYywga2V5LCB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Vba2V5XSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGZvciAobGV0IGVhY2ggaW4gdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF0pe1xyXG5cdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdW2VhY2hdID0gZG9jW2VhY2hdO1xyXG5cdFx0XHR9XHJcblx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKXtcclxuXHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXVtlYWNoXSA9IGRvY1tlYWNoXTtcclxuXHRcdFx0fVxyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHNbaV07XHJcblx0XHRcdFx0aWYgKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2NbZmllbGRdXSkge1xyXG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jW2ZpZWxkXV0gPSBkb2M7XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2MpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1tmaWVsZF1dW2VhY2hdID0gZG9jW2VhY2hdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XHJcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xyXG5cdFx0XHRcdFx0bGV0IHRvX2hhdmUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0bGV0IGcgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwc1trZXldO1xyXG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuaWdub3JlID09ICdmdW5jdGlvbicgJiYgZy5pZ25vcmUoZG9jKSkgdG9faGF2ZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuYWxsb3cgPT0gJ2Z1bmN0aW9uJyAmJiAhZy5hbGxvdyhkb2MpKSB0b19oYXZlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSB7fTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGxldCBmaWVsZHM6YW55ID0ge307XHJcblx0XHRcdFx0XHRsZXQgc2V0ID0gKGZpZWxkOmFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRmaWVsZHNbZmllbGRdID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0aWYoIWZpZWxkKSByZXR1cm47XHJcblx0XHRcdFx0XHRcdGlmKCFBcnJheS5pc0FycmF5KHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdKSl7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0gPSBbXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZih0b19oYXZlKXtcclxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcclxuXHRcdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF1baV0uX2lkID09IGRvYy5faWQpIHJldHVybjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ucHVzaChkb2MpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xyXG5cdFx0XHRcdFx0XHRcdCAgICBpZih0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXVtpXS5faWQgPT0gZG9jLl9pZCl7XHJcblx0XHRcdFx0XHRcdFx0ICAgIFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc3BsaWNlKGksIDEpO1xyXG5cdFx0XHRcdFx0XHRcdCAgICB9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmKHR5cGVvZiBnLnNvcnQgPT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc29ydChnLnNvcnQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRzZXQoZy5maWVsZChkb2MsIHNldC5iaW5kKHRoaXMpKSk7XHJcblx0XHRcdFx0XHRmb3IgKGxldCBmaWVsZCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcclxuXHRcdFx0XHRcdFx0aWYoZmllbGRzW2ZpZWxkXSkgY29udGludWU7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xyXG5cdFx0XHRcdFx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKXtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLnNwbGljZShpLCAxKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeSl7XHJcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeSl7XHJcblx0XHRcdFx0XHRsZXQgdG9faGF2ZSA9IHRydWU7XHJcblx0XHRcdFx0XHRsZXQgcXVlcnkgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnF1ZXJ5W2tleV07XHJcblx0XHRcdFx0XHRpZih0eXBlb2YgcXVlcnkuaWdub3JlID09ICdmdW5jdGlvbicgJiYgcXVlcnkuaWdub3JlKGRvYykpIHRvX2hhdmUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdGlmKHR5cGVvZiBxdWVyeS5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFxdWVyeS5hbGxvdyhkb2MpKSB0b19oYXZlID0gZmFsc2U7XHJcblx0XHRcdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSBbXTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmKHRvX2hhdmUpe1xyXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xyXG5cdFx0XHRcdFx0XHQgICAgaWYodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtpXS5faWQgPT0gZG9jLl9pZCkgcmV0dXJuO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0ucHVzaChkb2MpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcclxuXHRcdFx0XHRcdFx0ICAgIGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1baV0uX2lkID09IGRvYy5faWQpe1xyXG5cdFx0XHRcdFx0XHQgICAgXHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLnNwbGljZShpLCAxKTtcclxuXHRcdFx0XHRcdFx0ICAgIH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYodHlwZW9mIHF1ZXJ5LnNvcnQgPT0gJ2Z1bmN0aW9uJyl7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc29ydChxdWVyeS5zb3J0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0XHRwdWJsaWMgcHVzaChwYXJ0OmFueSwgZG9jOmFueSk6YW55e1xyXG5cdFx0XHRpZighdGhpcy5kYXRhWydhcnInICsgcGFydF0pIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdID0gW107XHJcblx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSkgdGhpcy5kYXRhWydvYmonICsgcGFydF0gPSB7fTtcclxuXHRcdFx0aWYoIXRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XSkgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdID0ge307XHJcblx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdKSByZXR1cm4gdGhpcy5yZW5ldyhwYXJ0LCBkb2MpO1xyXG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucmVwbGFjZSl7XHJcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcclxuXHRcdFx0XHRcdHRoaXMucmVwbGFjZShkb2MsIGtleSwgdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlW2tleV0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnBvcHVsYXRlKXtcclxuXHRcdFx0XHRsZXQgcCA9IHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucG9wdWxhdGU7XHJcblx0XHRcdFx0aWYoQXJyYXkuaXNBcnJheShwKSl7XHJcblx0XHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKyl7XHJcblx0XHRcdFx0XHRcdGlmKHR5cGVvZiBwID09ICdvYmplY3QnICYmIHBbaV0uZmllbGQgJiYgcFtpXS5wYXJ0KXtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnBvcHVsYXRlKGRvYywgcFtpXS5maWVsZCwgcFtpXS5wYXJ0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1lbHNlIGlmKHR5cGVvZiBwID09ICdvYmplY3QnICYmIHAuZmllbGQgJiYgcC5wYXJ0KXtcclxuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBwLmZpZWxkLCBwLnBhcnQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XS5wdXNoKGRvYyk7XHJcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0uc29ydCl7XHJcblx0XHRcdFx0dGhpcy5kYXRhWydhcnInICsgcGFydF0uc29ydCh0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnNvcnQpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdID0gZG9jO1xyXG5cdFx0XHRpZihBcnJheS5pc0FycmF5KHRoaXMuZGF0YVsnb3B0cycrcGFydF0udXNlKSl7XHJcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZS5sZW5ndGg7IGkrKyl7XHJcblx0XHRcdFx0ICAgIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1t0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZVtpXV1dID0gZG9jO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XHJcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xyXG5cdFx0XHRcdFx0bGV0IGcgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwc1trZXldO1xyXG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuaWdub3JlID09ICdmdW5jdGlvbicgJiYgZy5pZ25vcmUoZG9jKSkgY29udGludWU7XHJcblx0XHRcdFx0XHRpZih0eXBlb2YgZy5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFnLmFsbG93KGRvYykpIGNvbnRpbnVlO1xyXG5cdFx0XHRcdFx0aWYoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0pe1xyXG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRsZXQgc2V0ID0gKGZpZWxkOmFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZighZmllbGQpIHJldHVybjtcclxuXHRcdFx0XHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0pKXtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSA9IFtdO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLnB1c2goZG9jKTtcclxuXHRcdFx0XHRcdFx0aWYodHlwZW9mIGcuc29ydCA9PSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zb3J0KGcuc29ydCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHNldChnLmZpZWxkKGRvYywgKGZpZWxkOmFueSk9PntcclxuXHRcdFx0XHRcdFx0c2V0KGZpZWxkKTtcclxuXHRcdFx0XHRcdH0pKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5xdWVyeSkge1xyXG5cdFx0XHRcdGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0ucXVlcnkpIHtcclxuXHRcdFx0XHRcdGxldCBxdWVyeSA9IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5xdWVyeVtrZXldO1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBxdWVyeS5pZ25vcmUgPT0gJ2Z1bmN0aW9uJyAmJiBxdWVyeS5pZ25vcmUoZG9jKSkgY29udGludWU7XHJcblx0XHRcdFx0XHRpZiAodHlwZW9mIHF1ZXJ5LmFsbG93ID09ICdmdW5jdGlvbicgJiYgIXF1ZXJ5LmFsbG93KGRvYykpIGNvbnRpbnVlO1xyXG5cdFx0XHRcdFx0aWYgKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSBbXTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0ucHVzaChkb2MpO1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBxdWVyeS5zb3J0ID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5zb3J0KHF1ZXJ5LnNvcnQpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHNbaV07XHJcblx0XHRcdFx0aWYgKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2NbZmllbGRdXSkge1xyXG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jW2ZpZWxkXV0gPSBkb2M7XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2MpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1tmaWVsZF1dW2VhY2hdID0gZG9jW2VhY2hdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyB0aGlzLnN0b3JlLnNldEpzb24oJ21vbmdvJyArIHBhcnQsIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdKTtcclxuXHRcdH07XHJcblx0XHRwdWJsaWMgcmVtb3ZlKHBhcnQ6YW55LCBkb2M6YW55KXtcclxuXHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydhcnInICsgcGFydF0pKSByZXR1cm47XHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhWydhcnInICsgcGFydF0ubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRpZiAodGhpcy5kYXRhWydhcnInICsgcGFydF1baV0uX2lkID09IGRvYy5faWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnNwbGljZShpLCAxKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRkZWxldGUgdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF07XHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGNvbnN0IGZpZWxkID0gdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkc1tpXTtcclxuXHRcdFx0XHRkZWxldGUgdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jW2ZpZWxkXV07XHJcblx0XHRcdH1cclxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xyXG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0uZ3JvdXBzKXtcclxuXHRcdFx0XHRcdGZvcihsZXQgZmllbGQgaW4gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XHJcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwIDsgaS0tKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5zcGxpY2UoaSwgMSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xyXG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xyXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0ubGVuZ3RoLTE7IGkgPj0gMCA7IGktLSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtpXS5faWQgPT0gZG9jLl9pZCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc3BsaWNlKGksIDEpO1xyXG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdC8qXHJcblx0Klx0RW5kb2YgTW9uZ28gU2VydmljZVxyXG5cdCovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIHN0b3JlOiBTdG9yZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBjb3JlOiBDb3JlU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5jb3JlLm5leHQoJ3NvY2tldCcsIChzb2NrZXQ6YW55KT0+e1xyXG5cdFx0XHR0aGlzLnNvY2tldCA9IHNvY2tldDtcclxuXHRcdFx0c29ja2V0Lm9uKCdjcmVhdGUnLCAoY3JlYXRlZDphbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZldGNoKGNyZWF0ZWQucGFydCwge1xyXG5cdFx0XHRcdFx0Zm9yY2U6IHRydWUsXHJcblx0XHRcdFx0XHRxdWVyeToge1xyXG5cdFx0XHRcdFx0XHRfaWQ6IGNyZWF0ZWQuX2lkXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRzb2NrZXQub24oJ3VwZGF0ZScsICh1cGRhdGVkOmFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZmV0Y2godXBkYXRlZC5wYXJ0LCB7XHJcblx0XHRcdFx0XHRmb3JjZTogdHJ1ZSxcclxuXHRcdFx0XHRcdHF1ZXJ5OiB7XHJcblx0XHRcdFx0XHRcdF9pZDogdXBkYXRlZC5faWRcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHNvY2tldC5vbignZGVsZXRlJywgKGRlbGV0ZWQ6YW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5yZW1vdmUoZGVsZXRlZC5wYXJ0LCBkZWxldGVkKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
|
|
972
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uZ28uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhY29tL3NyYy9saWIvc2VydmljZXMvbW9uZ28uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVEzQyxNQUFNLE9BQU8sWUFBWTtJQWt5QmY7SUFDQTtJQUNBO0lBbnlCVDs7Ozs7Ozs7TUFRRTtJQUNPLElBQUksR0FBTyxFQUFFLENBQUM7SUFDZCxNQUFNLEdBQVE7UUFDckIsSUFBSSxFQUFFLENBQUMsS0FBUyxFQUFFLEdBQU8sRUFBRSxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7S0FDRCxDQUFDO0lBQ0g7O01BRUU7SUFDTSxNQUFNLENBQUMsSUFBUSxFQUFFLElBQVE7UUFDL0IsSUFBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBQ3BDLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFDO1lBQzNCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxFQUFDO2dCQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMs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QUFDO0lBQUEsQ0FBQztJQUNLLElBQUksQ0FBQyxJQUFRLEVBQUUsR0FBTztRQUM1QixJQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFELElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1RCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO1lBQ25DLEtBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDNUQ7U0FDRDtRQUNELElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUN4QyxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUM7Z0JBQ25CLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO29CQUNoQyxJQUFHLE9BQU8sQ0FBQyxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7d0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMxQztpQkFDRDthQUNEO2lCQUFLLElBQUcsT0FBTyxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksRUFBQztnQkFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEM7U0FDRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBQztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3ZDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQztZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztnQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3JFO1NBQ0Q7UUFDRCxJQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBQztZQUNoQyxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQyxJQUFHLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUQsSUFBRyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDM0QsSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FB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RSxDQUFDLE1BQVUsRUFBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBVyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtvQkFDeEIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsS0FBSyxFQUFFO3dCQUNOLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztxQkFDaEI7aUJBQ0QsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQVcsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQ3hCLEtBQUssRUFBRSxJQUFJO29CQUNYLEtBQUssRUFBRTt3QkFDTixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7cUJBQ2hCO2lCQUNELENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFXLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO3dHQTV6QlcsWUFBWTs0R0FBWixZQUFZLGNBRlosTUFBTTs7NEZBRU4sWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4vaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS5zZXJ2aWNlJztcbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmdvU2VydmljZSB7XG5cdC8qXG5cdCpcdERhdGEgd2lsbCBiZSBzdG9yYWdlIGZvciBhbGwgaW5mb3JtYXRpb24gd2UgYXJlIHB1bGxpbmcgZnJvbSB3YXcgY3J1ZC5cblx0Klx0ZGF0YVsnYXJyJyArIHBhcnRdIHdpbGwgaG9zdCBhbGwgZG9jcyBmcm9tIGNvbGxlY3Rpb24gcGFydCBpbiBhcnJheSBmb3JtXG5cdCpcdGRhdGFbJ29iaicgKyBwYXJ0XSB3aWxsIGhvc3QgYWxsIGRvY3MgZnJvbSBjb2xsZWN0aW9uIHBhcnQgaW4gb2JqZWN0IGZvcm1cblx0Klx0XHRhbmQgYWxsIGdyb3VwcyBjb2xsZWNpdG9ucyBwcm92aWRlZFxuXHQqXHRkYXRhWydvcHRzJyArIHBhcnRdIHdpbGwgaG9zdCBvcHRpb25zIGZvciBkb2NzIGZyb20gY29sbGVjdGlvbiBwYXJ0XG5cdCpcdFx0V2lsbCBiZSBpbml0aWFsaXplZCBvbmx5IGluc2lkZSBnZXRcblx0Klx0XHRXaWxsIGJlIHVzZWQgaW5zaWRlIHB1c2hcblx0Ki9cblx0XHRwcml2YXRlIGRhdGE6YW55ID0ge307XG5cdFx0cHJpdmF0ZSBzb2NrZXQ6IGFueSA9IHtcblx0XHRcdGVtaXQ6ICh3aGljaDphbnksIGRvYzphbnkpID0+IHtcblx0XHRcdFx0Y29uc29sZS5sb2cod2hpY2gsIGRvYywgJ2lzIG5vdCB1c2VkIG9uIHNvY2tldHMnKTtcblx0XHRcdH1cblx0XHR9O1xuXHQvKlxuXHQqXHR3YXcgY3J1ZCBjb25uZWN0IGZ1bmN0aW9uc1xuXHQqL1xuXHRcdHB1YmxpYyBjb25maWcocGFydDphbnksIG9wdHM6YW55KXtcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XSkgcmV0dXJuO1xuXHRcdFx0aWYoIXRoaXMuZGF0YVsnYXJyJyArIHBhcnRdKSB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XSA9IFtdO1xuXHRcdFx0aWYoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdKSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XSA9IHt9O1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdKXtcblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBvcHRzKXtcblx0XHRcdFx0ICAgIHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XVtlYWNoXSA9IG9wdHNbZWFjaF07XG5cdFx0XHRcdH1cblx0XHRcdH1lbHNlIHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XSA9IG9wdHMgPSBvcHRzfHx7fTtcblx0XHRcdGlmKHR5cGVvZiBvcHRzLnVzZSA9PT0gJ3N0cmluZycpe1xuXHRcdFx0XHRvcHRzLnVzZSA9IG9wdHMudXNlLnNwbGl0KCcgJyk7XG5cdFx0XHR9XG5cdFx0XHRpZihvcHRzLnF1ZXJ5KXtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gb3B0cy5xdWVyeSl7XG5cdFx0XHRcdFx0aWYodHlwZW9mIG9wdHMucXVlcnlba2V5XSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHRcdG9wdHMucXVlcnlba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0YWxsb3c6IG9wdHMucXVlcnlba2V5XVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0gW107XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmKG9wdHMuZ3JvdXBzKXtcblx0XHRcdFx0aWYodHlwZW9mIG9wdHMuZ3JvdXBzID09PSAnc3RyaW5nJyl7XG5cdFx0XHRcdFx0b3B0cy5ncm91cHMgPSBvcHRzLmdyb3Vwcy5zcGxpdCgnICcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkob3B0cy5ncm91cHMpKXtcblx0XHRcdFx0XHRsZXQgYXJyID0gb3B0cy5ncm91cHM7XG5cdFx0XHRcdFx0b3B0cy5ncm91cHMgPSB7fTtcblx0XHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0XHRcdGlmKHR5cGVvZiBhcnJbaV0gPT09ICdzdHJpbmcnKXtcblx0XHRcdFx0XHRcdFx0b3B0cy5ncm91cHNbYXJyW2ldXSA9IHRydWU7XG5cdFx0XHRcdFx0XHR9ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGZvcihsZXQga2V5IGluIGFycltpXSl7XG5cdFx0XHRcdFx0XHRcdFx0aWYodHlwZW9mIGFycltpXVtrZXldID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHRcdFx0XHRcdFx0YXJyW2ldW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZpZWxkOiBhcnJbaV1ba2V5XVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRvcHRzLmdyb3Vwc1trZXldID0gYXJyW2ldW2tleV07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gb3B0cy5ncm91cHMpe1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmdyb3Vwc1trZXldID09ICdib29sZWFuJyl7XG5cdFx0XHRcdFx0XHRpZihvcHRzLmdyb3Vwc1trZXldKXtcblx0XHRcdFx0XHRcdFx0b3B0cy5ncm91cHNba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRmaWVsZDogZnVuY3Rpb24oZG9jOmFueSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZG9jW2tleV07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIG9wdHMuZ3JvdXBzW2tleV07XG5cdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHNba2V5XSAhPSAnb2JqZWN0Jyl7XG5cdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZih0eXBlb2Ygb3B0cy5ncm91cHNba2V5XS5maWVsZCAhPSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHRcdGRlbGV0ZSBvcHRzLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSkpe1xuXHRcdFx0XHRcdFx0Y29uc29sZS53YXJuKCdZb3UgY2FuIGhhdmUgc2FtZSBmaWVsZCBncm91cHMgd2l0aCBxdWVyeS4gRmllbGQgJytrZXkrJyBpcyBub3QgdXNlZCBpbiBncm91cHMuJyk7XG5cdFx0XHRcdFx0XHRkZWxldGUgb3B0cy5ncm91cHNba2V5XTtcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldID0ge307XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmKG9wdHMuZmllbGRzKSB7XG5cdFx0XHRcdGlmICh0eXBlb2Ygb3B0cy5maWVsZHMgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0b3B0cy5maWVsZHMgPSBvcHRzLmZpZWxkcy5zcGxpdCgnICcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoIUFycmF5LmlzQXJyYXkob3B0cy5maWVsZHMpKSB7XG5cdFx0XHRcdG9wdHMuZmllbGRzID0gW107XG5cdFx0XHR9XG5cdFx0XHQvLyB0aGlzLnN0b3JlLmdldEpzb24oJ21vbmdvJyArIHBhcnQsIGRhdGEgPT4ge1xuXHRcdFx0Ly8gXHRpZiAoZGF0YSAmJiBBcnJheS5pc0FycmF5KGRhdGEpKSB7XG5cdFx0XHQvLyBcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHQvLyBcdFx0XHR0aGlzLnB1c2gocGFydCwgZGF0YVtpXSk7XG5cdFx0XHQvLyBcdFx0fVxuXHRcdFx0Ly8gXHR9XG5cdFx0XHQvLyB9KTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGFycjogdGhpcy5kYXRhWydhcnInICsgcGFydF0sXG5cdFx0XHRcdG9iajogdGhpcy5kYXRhWydvYmonICsgcGFydF1cblx0XHRcdH07XG5cdFx0fTtcblx0XHRwdWJsaWMgY3JlYXRlKHBhcnQ6YW55LCBkb2M6YW55PXVuZGVmaW5lZCwgY2I6YW55PXVuZGVmaW5lZCwgb3B0czphbnk9e30pIHtcblx0XHRcdGlmICh0eXBlb2YgZG9jID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0aWYoY2IpIG9wdHMgPSBjYjtcblx0XHRcdFx0Y2IgPSBkb2M7XG5cdFx0XHRcdGRvYyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdFx0ZXJyOiBvcHRzXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRpZih0eXBlb2YgZG9jICE9ICdvYmplY3QnKSBkb2M9e307XG5cdFx0XHRpZihkb2MuX19fY3JlYXRlZCAmJiAhb3B0cy5hbGxvd19tdWx0aXBsZSkgcmV0dXJuO1xuXHRcdFx0ZG9jLl9fX2NyZWF0ZWQgPSB0cnVlO1xuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgJy9hcGkvJyArIHBhcnQgKyAnL2NyZWF0ZScsIGRvYyB8fCB7fSwgcmVzcCA9PiB7XG5cdFx0XHRcdGlmIChyZXNwKSB7XG5cdFx0XHRcdFx0dGhpcy5zb2NrZXQuZW1pdCgnY3JlYXRlJywge1xuXHRcdFx0XHRcdFx0X2lkOiByZXNwLl9pZCxcblx0XHRcdFx0XHRcdHBhcnQ6IHBhcnRcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLnB1c2gocGFydCwgcmVzcCk7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSBjYihyZXNwKTtcblx0XHRcdFx0fWVsc2UgaWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IoZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCB7XG5cdFx0XHRcdHVybDogb3B0cy5iYXNlX3VybCB8fCB0aGlzLmh0dHAudXJsXG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHB1YmxpYyBmZXRjaChwYXJ0OmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCBjYjphbnk9dW5kZWZpbmVkKSB7XG5cdFx0XHRpZihvcHRzLnF1ZXJ5ICYmIG9wdHMucXVlcnkuX2lkICYmICFvcHRzLmZvcmNlICYmXG5cdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXSl7XG5cdFx0XHRcdHJldHVybiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtvcHRzLnF1ZXJ5Ll9pZF07XG5cdFx0XHR9XG5cdFx0XHRpZiAodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRjYiA9IG9wdHM7XG5cdFx0XHRcdG9wdHMgPSB7fTtcblx0XHRcdH1cblx0XHRcdGlmKCFvcHRzKSBvcHRzID0ge307XG5cdFx0XHR0aGlzLmNvbmZpZyhwYXJ0LCBvcHRzKTsgLy8gcmVtb3ZlIHRoaXMgaW4gZnV0dXJlXG5cdFx0XHRsZXQgdXJsID0gJy9hcGkvJyArIHBhcnQgKyAnL2ZldGNoJysob3B0cy5uYW1lfHwnJyksIGRvYzphbnk7XG5cdFx0XHRpZihvcHRzLnF1ZXJ5ICYmIG9wdHMucXVlcnkuX2lkICYmIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXSl7XG5cdFx0XHRcdGRvYyA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW29wdHMucXVlcnkuX2lkXTtcblx0XHRcdH1lbHNle1xuXHRcdFx0XHRkb2MgPSB7fTtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlKXtcblx0XHRcdFx0XHR0aGlzLnJlcGxhY2UoZG9jLCBrZXksIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZVtrZXldKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgdXJsLCAob3B0cy5xdWVyeXx8e30pLCByZXNwID0+IHtcblx0XHRcdFx0aWYoIXJlc3ApIHJldHVybiBjYiYmY2IoZmFsc2UpO1xuXHRcdFx0XHRmb3IgKGxldCBlYWNoIGluIHJlc3Ape1xuXHRcdFx0XHQgICAgZG9jW2VhY2hdID0gcmVzcFtlYWNoXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IgKGxldCBlYWNoIGluIGRvYyl7XG5cdFx0XHRcdCAgICBkb2NbZWFjaF0gPSByZXNwW2VhY2hdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMucHVzaChwYXJ0LCBkb2MpO1xuXHRcdFx0XHRpZiAocmVzcCAmJiB0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNiKGRvYyk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIHtcblx0XHRcdFx0dXJsOiBvcHRzLmJhc2VfdXJsIHx8IHRoaXMuaHR0cC51cmxcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGRvYztcblx0XHR9O1xuXHRcdHB1YmxpYyBnZXQocGFydDphbnksIG9wdHM6YW55PXVuZGVmaW5lZCwgY2I6YW55PXVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0Y2IgPSBvcHRzO1xuXHRcdFx0XHRvcHRzID0ge307XG5cdFx0XHR9XG5cdFx0XHRpZighb3B0cykgb3B0cyA9IHt9O1xuXHRcdFx0dGhpcy5jb25maWcocGFydCwgb3B0cyk7IC8vIHJlbW92ZSB0aGlzIGluIGZ1dHVyZVxuXHRcdFx0bGV0IHVybCA9ICcvYXBpLycgKyBwYXJ0ICsgJy9nZXQnKyhvcHRzLm5hbWV8fCcnKSsob3B0cy5wYXJhbXx8JycpO1xuXHRcdFx0dGhpcy5odHRwLmdldChvcHRzLnVybCB8fCB1cmwsIHJlc3AgPT4ge1xuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShyZXNwKSkge1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcmVzcC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0dGhpcy5wdXNoKHBhcnQscmVzcFtpXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICghb3B0cy5wYWdpbmF0ZSkge1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRsZXQgcmVtb3ZlID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCByZXNwLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHJlc3Bbal0uX2lkID09PSB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXS5faWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJlbW92ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmIChyZW1vdmUpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlbW92ZShwYXJ0LCB0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSBjYih0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XSwgdGhpcy5kYXRhWydvYmonICsgcGFydF0sIG9wdHMubmFtZXx8JycsIHJlc3ApO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IodGhpcy5kYXRhWydhcnInICsgcGFydF0sIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdLCBvcHRzLm5hbWV8fCcnLCByZXNwKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmRhdGFbJ2xvYWRlZCcrcGFydF09dHJ1ZTtcblx0XHRcdH0sIHtcblx0XHRcdFx0dXJsOiBvcHRzLmJhc2VfdXJsIHx8IHRoaXMuaHR0cC51cmxcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdO1xuXHRcdH07XG5cdFx0cHVibGljIHNldChwYXJ0OmFueSwgb3B0czphbnk9dW5kZWZpbmVkLCByZXNwOmFueT11bmRlZmluZWQpIHtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KG9wdHMpKSB7XG5cdFx0XHRcdHJlc3AgPSBvcHRzO1xuXHRcdFx0XHRvcHRzID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdFx0aWYob3B0cykgdGhpcy5jb25maWcocGFydCwgb3B0cyk7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShyZXNwKSkge1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHJlc3AubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHR0aGlzLnB1c2gocGFydCwgcmVzcFtpXSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGFycjogdGhpcy5kYXRhWydhcnInICsgcGFydF0sXG5cdFx0XHRcdG9iajogdGhpcy5kYXRhWydvYmonICsgcGFydF1cblx0XHRcdH1cblx0XHR9O1xuXHRcdHByaXZhdGUgcHJlcGFyZV91cGRhdGUocGFydDphbnksIGRvYzphbnksIG9wdHM6YW55KXtcblx0XHRcdGlmKG9wdHMuZmllbGRzKXtcblx0XHRcdFx0aWYodHlwZW9mIG9wdHMuZmllbGRzID09PSAnc3RyaW5nJykgb3B0cy5maWVsZHMgPSBvcHRzLmZpZWxkcy5zcGxpdCgnICcpO1xuXHRcdFx0XHRsZXQgX2RvYzphbnkgPSB7fTtcblx0XHRcdFx0Zm9yKGxldCBpID0gMDsgaSA8IG9wdHMuZmllbGRzLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0XHRfZG9jW29wdHMuZmllbGRzW2ldXSA9IGRvY1tvcHRzLmZpZWxkc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdFx0ZG9jID0gX2RvYztcblx0XHRcdH1lbHNlIHRoaXMucmVuZXcocGFydCwgZG9jKTtcblx0XHRcdGlmKHR5cGVvZiBvcHRzLnJld3JpdGUgPT0gJ29iamVjdCcgJiYgT2JqZWN0LnZhbHVlcyhvcHRzLnJld3JpdGUpLmxlbmd0aCl7XG5cdFx0XHRcdGRvYyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZG9jKSk7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIG9wdHMucmV3cml0ZSl7XG5cdFx0XHRcdFx0dGhpcy5yZXBsYWNlKGRvYywga2V5LCBvcHRzLnJld3JpdGVba2V5XSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBkb2M7XG5cdFx0fTtcblx0XHRwdWJsaWMgdXBkYXRlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0Y2IgPSBvcHRzO1xuXHRcdFx0XHRvcHRzID0ge307XG5cdFx0XHR9XG5cdFx0XHRpZih0eXBlb2Ygb3B0cyAhPSAnb2JqZWN0Jykgb3B0cyA9IHt9O1xuXHRcdFx0ZG9jID0gdGhpcy5wcmVwYXJlX3VwZGF0ZShwYXJ0LCBkb2MsIG9wdHMpO1xuXHRcdFx0bGV0IHVybCA9ICcvYXBpLycgKyBwYXJ0ICsgJy91cGRhdGUnICsgKG9wdHMubmFtZXx8JycpO1xuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgdXJsLCBkb2MsIHJlc3AgPT4ge1xuXHRcdFx0XHRpZihyZXNwKXtcblx0XHRcdFx0XHR0aGlzLnNvY2tldC5lbWl0KCd1cGRhdGUnLCB7XG5cdFx0XHRcdFx0XHRfaWQ6IGRvYy5faWQsXG5cdFx0XHRcdFx0XHRwYXJ0OiBwYXJ0XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHJlc3AgJiYgdHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihyZXNwKTtcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNiKGZhbHNlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSwge1xuXHRcdFx0XHR1cmw6IG9wdHMuYmFzZV91cmwgfHwgdGhpcy5odHRwLnVybFxuXHRcdFx0fSk7XG5cdFx0fTtcblx0XHRwdWJsaWMgdW5pcXVlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0Y2IgPSBvcHRzO1xuXHRcdFx0XHRvcHRzID0ge307XG5cdFx0XHR9XG5cdFx0XHRpZih0eXBlb2Ygb3B0cyAhPSAnb2JqZWN0Jykgb3B0cyA9IHt9O1xuXHRcdFx0ZG9jID0gdGhpcy5wcmVwYXJlX3VwZGF0ZShwYXJ0LCBkb2MsIG9wdHMpO1xuXHRcdFx0bGV0IHVybCA9ICcvYXBpLycgKyBwYXJ0ICsgJy91bmlxdWUnICsgKG9wdHMubmFtZXx8JycpO1xuXHRcdFx0dGhpcy5odHRwLnBvc3Qob3B0cy51cmwgfHwgdXJsLCBkb2MsIHJlc3AgPT4ge1xuXHRcdFx0XHRpZihyZXNwKXtcblx0XHRcdFx0XHR0aGlzLnNvY2tldC5lbWl0KCd1cGRhdGUnLCB7XG5cdFx0XHRcdFx0XHRfaWQ6IGRvYy5faWQsXG5cdFx0XHRcdFx0XHRwYXJ0OiBwYXJ0XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0bGV0IGN1cnJlbnRfZG9jID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF07XG5cdFx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2Mpe1xuXHRcdFx0XHRcdCAgICBjdXJyZW50X2RvY1tlYWNoXSA9IGRvY1tlYWNoXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy5yZW5ldyhwYXJ0LCBjdXJyZW50X2RvYyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKChyZXNwIHx8IHR5cGVvZiByZXNwID09PSAnc3RyaW5nJykgJiYgdHlwZW9mIGNiID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRjYihyZXNwKTtcblx0XHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNiKGZhbHNlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSwge1xuXHRcdFx0XHR1cmw6IG9wdHMuYmFzZV91cmwgfHwgdGhpcy5odHRwLnVybFxuXHRcdFx0fSk7XG5cdFx0fTtcblx0XHRwdWJsaWMgZGVsZXRlKHBhcnQ6YW55LCBkb2M6YW55LCBvcHRzOmFueT11bmRlZmluZWQsIGNiOmFueT11bmRlZmluZWQpIHtcblx0XHRcdGlmICh0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGNiID0gb3B0cztcblx0XHRcdFx0b3B0cyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYgKHR5cGVvZiBvcHRzICE9PSAnb2JqZWN0Jykgb3B0cyA9IHt9O1xuXHRcdFx0aWYgKG9wdHMuZmllbGRzKSB7XG5cdFx0XHRcdGlmKHR5cGVvZiBvcHRzLmZpZWxkcyA9PT0gJ3N0cmluZycpIG9wdHMuZmllbGRzID0gb3B0cy5maWVsZHMuc3BsaXQoJyAnKTtcblx0XHRcdFx0bGV0IF9kb2M6YW55ID0ge307XG5cdFx0XHRcdGZvcihsZXQgaSA9IDA7IGkgPCBvcHRzLmZpZWxkcy5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0X2RvY1tvcHRzLmZpZWxkc1tpXV0gPSBkb2Nbb3B0cy5maWVsZHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRvYyA9IF9kb2M7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkb2M9e1xuXHRcdFx0XHRcdF9pZDpkb2MuX2lkXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGxldCB1cmwgPSAnL2FwaS8nICsgcGFydCArICcvZGVsZXRlJyArIChvcHRzLm5hbWV8fCcnKTtcblx0XHRcdHRoaXMuaHR0cC5wb3N0KG9wdHMudXJsIHx8IHVybCwgZG9jLCByZXNwID0+IHtcblx0XHRcdFx0aWYgKHJlc3ApIHtcblx0XHRcdFx0XHR0aGlzLnNvY2tldC5lbWl0KCdkZWxldGUnLCB7XG5cdFx0XHRcdFx0XHRfaWQ6IGRvYy5faWQsXG5cdFx0XHRcdFx0XHRwYXJ0OiBwYXJ0XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5yZW1vdmUocGFydCwgZG9jKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAocmVzcCAmJiB0eXBlb2YgY2IgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNiKHJlc3ApO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0Y2IoZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCB7XG5cdFx0XHRcdHVybDogb3B0cy5iYXNlX3VybCB8fCB0aGlzLmh0dHAudXJsXG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHB1YmxpYyBfaWQoY2I6YW55KXtcblx0XHRcdGlmKHR5cGVvZiBjYiA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0dGhpcy5odHRwLmdldCgnL3dhdy9uZXdJZCcsIGNiKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyB0b19pZChkb2NzOmFueSl7XG5cdFx0XHRpZighZG9jcykgcmV0dXJuIFtdO1xuXHRcdFx0aWYoQXJyYXkuaXNBcnJheShkb2NzKSl7XG5cdFx0XHRcdGRvY3MgPSBkb2NzLnNsaWNlKCk7XG5cdFx0XHR9ZWxzZSBpZih0eXBlb2YgZG9jcyA9PSAnb2JqZWN0Jyl7XG5cdFx0XHRcdGlmKGRvY3MuX2lkKSByZXR1cm4gW2RvY3MuX2lkXTtcblx0XHRcdFx0bGV0IF9kb2NzID0gW107XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIGRvY3Mpe1xuXHRcdFx0XHRcdGlmKGRvY3Nba2V5XSkgX2RvY3MucHVzaChkb2NzW2tleV0uX2lkfHxkb2NzW2tleV0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRvY3MgPSBfZG9jcztcblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkge1xuXHRcdFx0XHRpZihkb2NzW2ldKSBkb2NzW2ldID0gZG9jc1tpXS5faWQgfHwgZG9jc1tpXTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBkb2NzO1xuXHRcdH07XG5cdFx0cHVibGljIGFmdGVyV2hpbGUoZG9jOmFueSwgY2I6YW55LCB0aW1lPTEwMDApe1xuXHRcdFx0aWYodHlwZW9mIGNiID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHRpbWUgPT0gJ251bWJlcicpe1xuXHRcdFx0XHRjbGVhclRpbWVvdXQoZG9jLl9fdXBkYXRlVGltZW91dCk7XG5cdFx0XHRcdGRvYy5fX3VwZGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KGNiLCB0aW1lKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyBwb3B1bGF0ZShkb2M6YW55LCBmaWVsZDphbnksIHBhcnQ6YW55KTphbnl7XG5cdFx0XHRpZighZG9jfHwhZmllbGR8fCFwYXJ0KSByZXR1cm47XG5cdFx0XHRpZihBcnJheS5pc0FycmF5KGRvYykpe1xuXHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgZG9jLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0XHR0aGlzLnBvcHVsYXRlKGRvY1tpXSwgZmllbGQsIHBhcnQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmKHRoaXMuZGF0YVsnbG9hZGVkJytwYXJ0XSl7XG5cdFx0XHRcdGlmKEFycmF5LmlzQXJyYXkoZmllbGQpKXtcblx0XHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgZmllbGQubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdFx0dGhpcy5wb3B1bGF0ZShkb2MsIGZpZWxkW2ldLCBwYXJ0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9ZWxzZSBpZihmaWVsZC5pbmRleE9mKCcuJyk+LTEpe1xuXHRcdFx0XHRcdGZpZWxkID0gZmllbGQuc3BsaXQoJy4nKTtcblx0XHRcdFx0XHRsZXQgc3ViID0gZmllbGQuc2hpZnQoKTtcblx0XHRcdFx0XHRpZih0eXBlb2YgZG9jW3N1Yl0gIT0gJ29iamVjdCcpIHJldHVybjtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5wb3B1bGF0ZShkb2Nbc3ViXSwgZmllbGQuam9pbignLicpLCBwYXJ0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZihBcnJheS5pc0FycmF5KGRvY1tmaWVsZF0pKXtcblx0XHRcdFx0XHRmb3IobGV0IGkgPSBkb2NbZmllbGRdLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHRpZih0aGlzLmRhdGFbJ29iaicrcGFydF1bZG9jW2ZpZWxkXVtpXV0pe1xuXHRcdFx0XHRcdFx0XHRkb2NbZmllbGRdW2ldID0gdGhpcy5kYXRhWydvYmonK3BhcnRdW2RvY1tmaWVsZF1baV1dO1xuXHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdGRvY1tmaWVsZF0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1lbHNlIGlmKHR5cGVvZiBkb2NbZmllbGRdID09PSAnc3RyaW5nJyl7XG5cdFx0XHRcdFx0ZG9jW2ZpZWxkXSA9IHRoaXMuZGF0YVsnb2JqJytwYXJ0XVtkb2NbZmllbGRdXSB8fCBudWxsO1xuXHRcdFx0XHR9ZWxzZSByZXR1cm47XG5cdFx0XHR9ZWxzZXtcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9Pntcblx0XHRcdFx0XHR0aGlzLnBvcHVsYXRlKGRvYywgZmllbGQsIHBhcnQpO1xuXHRcdFx0XHR9LCAxMDApO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cHVibGljIG9uKHBhcnRzOmFueSwgY2I6YW55KTphbnkge1xuICAgXHRcdCAgICBpZiAodHlwZW9mIHBhcnRzID09PSAnc3RyaW5nJykge1xuICAgXHRcdCAgICAgICAgcGFydHMgPSBwYXJ0cy5zcGxpdChcIiBcIik7XG4gICBcdFx0ICAgIH1cbiAgIFx0XHQgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgXHRcdCAgICAgICAgaWYgKCF0aGlzLmRhdGFbJ2xvYWRlZCcrcGFydHNbaV1dKSB7XG4gICBcdFx0ICAgICAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoICgpID0+IHtcbiAgIFx0XHQgICAgICAgICAgICAgICAgdGhpcy5vbihwYXJ0cywgY2IpO1xuICAgXHRcdCAgICAgICAgICAgIH0sIDEwMCk7XG4gICBcdFx0ICAgICAgICB9XG4gICBcdFx0ICAgIH1cbiAgIFx0XHQgICAgY2IodGhpcy5kYXRhKTtcbiAgIFx0XHR9O1xuICAgXHRcdHB1YmxpYyB0cmFjayhpbmRleDphbnksIGRvYzphbnkpeyByZXR1cm4gZG9jICYmIGRvYy5faWQgJiYgZG9jLl9pZCB8fCBpbmRleDsgfVxuICAgXHQvKlxuXHQqXHRtb25nbyBzb3J0IGZpbHRlcnNcblx0Ki9cbiAgIFx0XHRwdWJsaWMgc29ydEFzY0lkKCl7XG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xuICAgXHRcdFx0XHRpZihhLl9pZD5iLl9pZCkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIC0xO1xuICAgXHRcdFx0fVxuICAgXHRcdH07XG4gICBcdFx0cHVibGljIHNvcnREZXNjSWQoKXtcbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGEuX2lkPGIuX2lkKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gLTE7XG4gICBcdFx0XHR9XG4gICBcdFx0fTtcbiAgIFx0XHRwdWJsaWMgc29ydEFzY1N0cmluZyhvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKT5iW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCkpIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIGlmKGFbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKTxiW29wdHMuZmllbGRdLnRvTG93ZXJDYXNlKCkgfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG4gICBcdFx0cHVibGljIHNvcnREZXNjU3RyaW5nKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPGJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXS50b0xvd2VyQ2FzZSgpPmJbb3B0cy5maWVsZF0udG9Mb3dlckNhc2UoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydEFzY0RhdGUob3B0czphbnkpe1xuICAgXHRcdFx0aWYodHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnKXtcbiAgIFx0XHRcdFx0b3B0cyA9IHtcbiAgIFx0XHRcdFx0XHRmaWVsZDogb3B0c1xuICAgXHRcdFx0XHR9XG4gICBcdFx0XHR9XG4gICBcdFx0XHRyZXR1cm4gZnVuY3Rpb24oYTphbnksYjphbnkpe1xuICAgXHRcdFx0XHRpZihhW29wdHMuZmllbGRdLmdldFRpbWUoKT5iW29wdHMuZmllbGRdLmdldFRpbWUoKSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXS5nZXRUaW1lKCk8YltvcHRzLmZpZWxkXS5nZXRUaW1lKCkgfHwgIW9wdHMubmV4dCkgcmV0dXJuIC0xO1xuICAgXHRcdFx0XHRlbHNlIHJldHVybiBvcHRzLm5leHQoYSxiKTtcbiAgIFx0XHRcdH1cbiAgIFx0XHR9XG4gICBcdFx0cHVibGljIHNvcnREZXNjRGF0ZShvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0uZ2V0VGltZSgpPGJbb3B0cy5maWVsZF0uZ2V0VGltZSgpKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdLmdldFRpbWUoKT5iW29wdHMuZmllbGRdLmdldFRpbWUoKSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydEFzY051bWJlcihvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF0+YltvcHRzLmZpZWxkXSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXTxiW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0RGVzY051bWJlcihvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKGFbb3B0cy5maWVsZF08YltvcHRzLmZpZWxkXSkgcmV0dXJuIDE7XG4gICBcdFx0XHRcdGVsc2UgaWYoYVtvcHRzLmZpZWxkXT5iW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuICAgXHRcdHB1YmxpYyBzb3J0QXNjQm9vbGVhbihvcHRzOmFueSl7XG4gICBcdFx0XHRpZih0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycpe1xuICAgXHRcdFx0XHRvcHRzID0ge1xuICAgXHRcdFx0XHRcdGZpZWxkOiBvcHRzXG4gICBcdFx0XHRcdH1cbiAgIFx0XHRcdH1cbiAgIFx0XHRcdHJldHVybiBmdW5jdGlvbihhOmFueSxiOmFueSl7XG4gICBcdFx0XHRcdGlmKCFhW29wdHMuZmllbGRdJiZiW29wdHMuZmllbGRdKSByZXR1cm4gMTtcbiAgIFx0XHRcdFx0ZWxzZSBpZihhW29wdHMuZmllbGRdJiYhYltvcHRzLmZpZWxkXSB8fCAhb3B0cy5uZXh0KSByZXR1cm4gLTE7XG4gICBcdFx0XHRcdGVsc2UgcmV0dXJuIG9wdHMubmV4dChhLGIpO1xuICAgXHRcdFx0fVxuICAgXHRcdH1cbiAgIFx0XHRwdWJsaWMgc29ydERlc2NCb29sZWFuKG9wdHM6YW55KXtcbiAgIFx0XHRcdGlmKHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyl7XG4gICBcdFx0XHRcdG9wdHMgPSB7XG4gICBcdFx0XHRcdFx0ZmllbGQ6IG9wdHNcbiAgIFx0XHRcdFx0fVxuICAgXHRcdFx0fVxuICAgXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKGE6YW55LGI6YW55KXtcbiAgIFx0XHRcdFx0aWYoYVtvcHRzLmZpZWxkXSYmIWJbb3B0cy5maWVsZF0pIHJldHVybiAxO1xuICAgXHRcdFx0XHRlbHNlIGlmKCFhW29wdHMuZmllbGRdJiZiW29wdHMuZmllbGRdIHx8ICFvcHRzLm5leHQpIHJldHVybiAtMTtcbiAgIFx0XHRcdFx0ZWxzZSByZXR1cm4gb3B0cy5uZXh0KGEsYik7XG4gICBcdFx0XHR9XG4gICBcdFx0fVxuXHQvKlxuXHQqXHRtb25nbyByZXBsYWNlIGZpbHRlcnNcblx0Ki9cblx0XHRwdWJsaWMgYmVBcnIodmFsOmFueSwgY2I6YW55KXtcblx0XHRcdGlmKCFBcnJheS5pc0FycmF5KHZhbCkpIGNiKFtdKTtcblx0XHRcdGVsc2UgY2IodmFsKTtcblx0XHR9O1xuXHRcdHB1YmxpYyBiZU9iaih2YWw6YW55LCBjYjphbnkpe1xuXHRcdFx0aWYodHlwZW9mIHZhbCAhPSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbCkgfHwgIXZhbCl7XG5cdFx0XHRcdHZhbCA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0Y2IodmFsKTtcblx0XHR9O1xuXHRcdHB1YmxpYyBiZURhdGUodmFsOmFueSwgY2I6YW55KSB7IGNiKCBuZXcgRGF0ZSh2YWwpICk7IH07XG5cdFx0cHVibGljIGJlU3RyaW5nKHZhbDphbnksIGNiOmFueSl7XG5cdFx0XHRpZih0eXBlb2YgdmFsICE9ICdzdHJpbmcnKXtcblx0XHRcdFx0dmFsID0gJyc7XG5cdFx0XHR9XG5cdFx0XHRjYih2YWwpO1xuXHRcdH07XG5cdFx0cHVibGljIGJlRG9jID0gKHZhbDphbnksIGNiOmFueSk9Pntcblx0XHRcdHRoaXMuYmVPYmoodmFsLCAodmFsOmFueSk9Pntcblx0XHRcdFx0aWYoIXZhbC5faWQpe1xuXHRcdFx0XHRcdHRoaXMuX2lkKChfaWQ6YW55KT0+e1xuXHRcdFx0XHRcdFx0dmFsLl9pZCA9IF9pZDtcblx0XHRcdFx0XHRcdGNiKHZhbCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1lbHNlIGNiKHZhbCk7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHB1YmxpYyBmb3JjZUFycih2YWw6YW55LCBjYjphbnkpeyBjYihbXSk7IH07XG5cdFx0cHVibGljIGZvcmNlT2JqKHZhbDphbnksIGNiOmFueSl7IGNiKHt9KTsgfTtcblx0XHRwdWJsaWMgZm9yY2VTdHJpbmcodmFsOmFueSwgY2I6YW55KXsgY2IoJycpOyB9O1xuXHRcdHB1YmxpYyBmb3JjZURvYyA9ICh2YWw6YW55LCBjYjphbnkpID0+IHtcblx0XHRcdHRoaXMuX2lkKChfaWQ6YW55KT0+e1xuXHRcdFx0XHRjYih7XG5cdFx0XHRcdFx0X2lkOiBfaWRcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9O1xuXHRcdHB1YmxpYyBnZXRDcmVhdGVkKHZhbDphbnksIGNiOmFueSwgZG9jOmFueSl7XG5cdFx0XHRjYihuZXcgRGF0ZShwYXJzZUludChkb2MuX2lkLnN1YnN0cmluZygwLDgpLCAxNikqMTAwMCkpO1xuXHRcdH07XG5cdC8qXG5cdCpcdG1vbmdvIGxvY2FsIHN1cHBvcnQgZnVuY3Rpb25zXG5cdCovXG5cdFx0cHJpdmF0ZSByZXBsYWNlKGRvYzphbnksIHZhbHVlOmFueSwgcnBsOmFueSk6YW55e1xuXHRcdFx0aWYodmFsdWUuaW5kZXhPZignLicpPi0xKXtcblx0XHRcdFx0dmFsdWUgPSB2YWx1ZS5zcGxpdCgnLicpO1xuXHRcdFx0XHRsZXQgc3ViID0gdmFsdWUuc2hpZnQoKTtcblx0XHRcdFx0aWYoZG9jW3N1Yl0gJiYgKHR5cGVvZiBkb2Nbc3ViXSAhPSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGRvY1tzdWJdKSkpXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRpZighZG9jW3N1Yl0pIGRvY1tzdWJdID0ge307XG5cdFx0XHRcdHJldHVybiB0aGlzLnJlcGxhY2UoZG9jW3N1Yl0sIHZhbHVlLmpvaW4oJy4nKSwgcnBsKTtcblx0XHRcdH1cblx0XHRcdGlmKHR5cGVvZiBycGwgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdHJwbChkb2NbdmFsdWVdLCBmdW5jdGlvbihuZXdWYWx1ZTphbnkpe1xuXHRcdFx0XHRcdGRvY1t2YWx1ZV0gPSBuZXdWYWx1ZTtcblx0XHRcdFx0fSwgZG9jKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyByZW5ldyhwYXJ0OmFueSwgZG9jOmFueSl7XG5cdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF0pIHJldHVybiB0aGlzLnB1c2gocGFydCwgZG9jKTtcblx0XHRcdGlmKHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZSl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucmVwbGFjZSl7XG5cdFx0XHRcdFx0dGhpcy5yZXBsYWNlKGRvYywga2V5LCB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Vba2V5XSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGVhY2ggaW4gdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF0pe1xuXHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXVtlYWNoXSA9IGRvY1tlYWNoXTtcblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGVhY2ggaW4gZG9jKXtcblx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jLl9pZF1bZWFjaF0gPSBkb2NbZWFjaF07XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgZmllbGQgPSB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0uZmllbGRzW2ldO1xuXHRcdFx0XHRpZiAoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1tmaWVsZF1dKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jW2ZpZWxkXV0gPSBkb2M7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChsZXQgZWFjaCBpbiBkb2MpIHtcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2NbZmllbGRdXVtlYWNoXSA9IGRvY1tlYWNoXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdFx0bGV0IHRvX2hhdmUgPSB0cnVlO1xuXHRcdFx0XHRcdGxldCBnID0gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHNba2V5XTtcblx0XHRcdFx0XHRpZih0eXBlb2YgZy5pZ25vcmUgPT0gJ2Z1bmN0aW9uJyAmJiBnLmlnbm9yZShkb2MpKSB0b19oYXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0aWYodHlwZW9mIGcuYWxsb3cgPT0gJ2Z1bmN0aW9uJyAmJiAhZy5hbGxvdyhkb2MpKSB0b19oYXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0aWYoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0pe1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRsZXQgZmllbGRzOmFueSA9IHt9O1xuXHRcdFx0XHRcdGxldCBzZXQgPSAoZmllbGQ6YW55KSA9PiB7XG5cdFx0XHRcdFx0XHRmaWVsZHNbZmllbGRdID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGlmKCFmaWVsZCkgcmV0dXJuO1xuXHRcdFx0XHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0pKXtcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0gPSBbXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmKHRvX2hhdmUpe1xuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ubGVuZ3RoLTE7IGkgPj0gMDsgaS0tKXtcblx0XHRcdFx0XHRcdFx0ICAgIGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdW2ldLl9pZCA9PSBkb2MuX2lkKSByZXR1cm47XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ucHVzaChkb2MpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLmxlbmd0aC0xOyBpID49IDA7IGktLSl7XG5cdFx0XHRcdFx0XHRcdCAgICBpZih0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXVtpXS5faWQgPT0gZG9jLl9pZCl7XG5cdFx0XHRcdFx0XHRcdCAgICBcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdFx0ICAgIH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYodHlwZW9mIGcuc29ydCA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc29ydChnLnNvcnQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzZXQoZy5maWVsZChkb2MsIHNldC5iaW5kKHRoaXMpKSk7XG5cdFx0XHRcdFx0Zm9yIChsZXQgZmllbGQgaW4gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSl7XG5cdFx0XHRcdFx0XHRpZihmaWVsZHNbZmllbGRdKSBjb250aW51ZTtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xuXHRcdFx0XHRcdFx0XHRpZih0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXVtpXS5faWQgPT0gZG9jLl9pZCl7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnF1ZXJ5KXtcblx0XHRcdFx0Zm9yKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeSl7XG5cdFx0XHRcdFx0bGV0IHRvX2hhdmUgPSB0cnVlO1xuXHRcdFx0XHRcdGxldCBxdWVyeSA9IHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnlba2V5XTtcblx0XHRcdFx0XHRpZih0eXBlb2YgcXVlcnkuaWdub3JlID09ICdmdW5jdGlvbicgJiYgcXVlcnkuaWdub3JlKGRvYykpIHRvX2hhdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRpZih0eXBlb2YgcXVlcnkuYWxsb3cgPT0gJ2Z1bmN0aW9uJyAmJiAhcXVlcnkuYWxsb3coZG9jKSkgdG9faGF2ZSA9IGZhbHNlO1xuXHRcdFx0XHRcdGlmKCF0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYodG9faGF2ZSl7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xuXHRcdFx0XHRcdFx0ICAgIGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1baV0uX2lkID09IGRvYy5faWQpIHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0ucHVzaChkb2MpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gdGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pe1xuXHRcdFx0XHRcdFx0ICAgIGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1baV0uX2lkID09IGRvYy5faWQpe1xuXHRcdFx0XHRcdFx0ICAgIFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5zcGxpY2UoaSwgMSk7XG5cdFx0XHRcdFx0XHQgICAgfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZih0eXBlb2YgcXVlcnkuc29ydCA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc29ydChxdWVyeS5zb3J0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHRcdHB1YmxpYyBwdXNoKHBhcnQ6YW55LCBkb2M6YW55KTphbnl7XG5cdFx0XHRpZighdGhpcy5kYXRhWydhcnInICsgcGFydF0pIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdID0gW107XG5cdFx0XHRpZighdGhpcy5kYXRhWydvYmonICsgcGFydF0pIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdID0ge307XG5cdFx0XHRpZighdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdKSB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0gPSB7fTtcblx0XHRcdGlmKHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdKSByZXR1cm4gdGhpcy5yZW5ldyhwYXJ0LCBkb2MpO1xuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLnJlcGxhY2Upe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnJlcGxhY2Upe1xuXHRcdFx0XHRcdHRoaXMucmVwbGFjZShkb2MsIGtleSwgdGhpcy5kYXRhWydvcHRzJytwYXJ0XS5yZXBsYWNlW2tleV0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnBvcHVsYXRlKXtcblx0XHRcdFx0bGV0IHAgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnBvcHVsYXRlO1xuXHRcdFx0XHRpZihBcnJheS5pc0FycmF5KHApKXtcblx0XHRcdFx0XHRmb3IobGV0IGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0XHRpZih0eXBlb2YgcCA9PSAnb2JqZWN0JyAmJiBwW2ldLmZpZWxkICYmIHBbaV0ucGFydCl7XG5cdFx0XHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBwW2ldLmZpZWxkLCBwW2ldLnBhcnQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fWVsc2UgaWYodHlwZW9mIHAgPT0gJ29iamVjdCcgJiYgcC5maWVsZCAmJiBwLnBhcnQpe1xuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGUoZG9jLCBwLmZpZWxkLCBwLnBhcnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XS5wdXNoKGRvYyk7XG5cdFx0XHRpZih0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnNvcnQpe1xuXHRcdFx0XHR0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XS5zb3J0KHRoaXMuZGF0YVsnb3B0cycrcGFydF0uc29ydCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2MuX2lkXSA9IGRvYztcblx0XHRcdGlmKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydvcHRzJytwYXJ0XS51c2UpKXtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLnVzZS5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdCAgICB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2NbdGhpcy5kYXRhWydvcHRzJytwYXJ0XS51c2VbaV1dXSA9IGRvYztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdFx0bGV0IGcgPSB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwc1trZXldO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBnLmlnbm9yZSA9PSAnZnVuY3Rpb24nICYmIGcuaWdub3JlKGRvYykpIGNvbnRpbnVlO1xuXHRcdFx0XHRcdGlmKHR5cGVvZiBnLmFsbG93ID09ICdmdW5jdGlvbicgJiYgIWcuYWxsb3coZG9jKSkgY29udGludWU7XG5cdFx0XHRcdFx0aWYoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0pe1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XSA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRsZXQgc2V0ID0gKGZpZWxkOmFueSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYoIWZpZWxkKSByZXR1cm47XG5cdFx0XHRcdFx0XHRpZighQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSkpe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXSA9IFtdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0ucHVzaChkb2MpO1xuXHRcdFx0XHRcdFx0aWYodHlwZW9mIGcuc29ydCA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XVtmaWVsZF0uc29ydChnLnNvcnQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRzZXQoZy5maWVsZChkb2MsIChmaWVsZDphbnkpPT57XG5cdFx0XHRcdFx0XHRzZXQoZmllbGQpO1xuXHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5xdWVyeSkge1xuXHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLnF1ZXJ5KSB7XG5cdFx0XHRcdFx0bGV0IHF1ZXJ5ID0gdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLnF1ZXJ5W2tleV07XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBxdWVyeS5pZ25vcmUgPT0gJ2Z1bmN0aW9uJyAmJiBxdWVyeS5pZ25vcmUoZG9jKSkgY29udGludWU7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBxdWVyeS5hbGxvdyA9PSAnZnVuY3Rpb24nICYmICFxdWVyeS5hbGxvdyhkb2MpKSBjb250aW51ZTtcblx0XHRcdFx0XHRpZiAoIXRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0pIHtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0gPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy5kYXRhWydvYmonICsgcGFydF1ba2V5XS5wdXNoKGRvYyk7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBxdWVyeS5zb3J0ID09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc29ydChxdWVyeS5zb3J0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZGF0YVsnb3B0cycgKyBwYXJ0XS5maWVsZHNbaV07XG5cdFx0XHRcdGlmICghdGhpcy5kYXRhWydvYmonICsgcGFydF1bZG9jW2ZpZWxkXV0pIHtcblx0XHRcdFx0XHR0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtkb2NbZmllbGRdXSA9IGRvYztcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IgKGxldCBlYWNoIGluIGRvYykge1xuXHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1tmaWVsZF1dW2VhY2hdID0gZG9jW2VhY2hdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvLyB0aGlzLnN0b3JlLnNldEpzb24oJ21vbmdvJyArIHBhcnQsIHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdKTtcblx0XHR9O1xuXHRcdHB1YmxpYyByZW1vdmUocGFydDphbnksIGRvYzphbnkpe1xuXHRcdFx0aWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhWydhcnInICsgcGFydF0pKSByZXR1cm47XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmICh0aGlzLmRhdGFbJ2FycicgKyBwYXJ0XVtpXS5faWQgPT0gZG9jLl9pZCkge1xuXHRcdFx0XHRcdHRoaXMuZGF0YVsnYXJyJyArIHBhcnRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZGVsZXRlIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvYy5faWRdO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFbJ29wdHMnICsgcGFydF0uZmllbGRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGZpZWxkID0gdGhpcy5kYXRhWydvcHRzJyArIHBhcnRdLmZpZWxkc1tpXTtcblx0XHRcdFx0ZGVsZXRlIHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2RvY1tmaWVsZF1dO1xuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5ncm91cHMpe1xuXHRcdFx0XHRmb3IobGV0IGtleSBpbiB0aGlzLmRhdGFbJ29wdHMnK3BhcnRdLmdyb3Vwcyl7XG5cdFx0XHRcdFx0Zm9yKGxldCBmaWVsZCBpbiB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldKXtcblx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXS5sZW5ndGgtMTsgaSA+PSAwIDsgaS0tKSB7XG5cdFx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ZpZWxkXVtpXS5faWQgPT0gZG9jLl9pZCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV1bZmllbGRdLnNwbGljZShpLCAxKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYodGhpcy5kYXRhWydvcHRzJytwYXJ0XS5xdWVyeSl7XG5cdFx0XHRcdGZvcihsZXQga2V5IGluIHRoaXMuZGF0YVsnb3B0cycrcGFydF0ucXVlcnkpe1xuXHRcdFx0XHRcdGZvciAobGV0IGkgPSB0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldLmxlbmd0aC0xOyBpID49IDAgOyBpLS0pIHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFbJ29iaicgKyBwYXJ0XVtrZXldW2ldLl9pZCA9PSBkb2MuX2lkKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YVsnb2JqJyArIHBhcnRdW2tleV0uc3BsaWNlKGksIDEpO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHQvKlxuXHQqXHRFbmRvZiBNb25nbyBTZXJ2aWNlXG5cdCovXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgc3RvcmU6IFN0b3JlU2VydmljZSxcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxuXHRcdHByaXZhdGUgY29yZTogQ29yZVNlcnZpY2Vcblx0KSB7XG5cdFx0dGhpcy5jb3JlLm5leHQoJ3NvY2tldCcsIChzb2NrZXQ6YW55KT0+e1xuXHRcdFx0dGhpcy5zb2NrZXQgPSBzb2NrZXQ7XG5cdFx0XHRzb2NrZXQub24oJ2NyZWF0ZScsIChjcmVhdGVkOmFueSkgPT4ge1xuXHRcdFx0XHR0aGlzLmZldGNoKGNyZWF0ZWQucGFydCwge1xuXHRcdFx0XHRcdGZvcmNlOiB0cnVlLFxuXHRcdFx0XHRcdHF1ZXJ5OiB7XG5cdFx0XHRcdFx0XHRfaWQ6IGNyZWF0ZWQuX2lkXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdFx0c29ja2V0Lm9uKCd1cGRhdGUnLCAodXBkYXRlZDphbnkpID0+IHtcblx0XHRcdFx0dGhpcy5mZXRjaCh1cGRhdGVkLnBhcnQsIHtcblx0XHRcdFx0XHRmb3JjZTogdHJ1ZSxcblx0XHRcdFx0XHRxdWVyeToge1xuXHRcdFx0XHRcdFx0X2lkOiB1cGRhdGVkLl9pZFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHNvY2tldC5vbignZGVsZXRlJywgKGRlbGV0ZWQ6YW55KSA9PiB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlKGRlbGV0ZWQucGFydCwgZGVsZXRlZCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
|