ctt-babylon 0.1.127 → 0.1.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/Enum/index.mjs +2 -0
- package/esm2022/lib/Enum/logo-type.enum.mjs +10 -0
- package/esm2022/lib/components/core/babylon-engine/babylon-engine.component.mjs +2 -2
- package/esm2022/lib/components/core/babylon-engine-modal/babylon-engine-modal.component.mjs +2 -2
- package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.mjs +34 -9
- package/esm2022/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.interface.mjs +1 -1
- package/esm2022/lib/components/core/babylon-header-mobile/babylon-header-mobile.component.mjs +5 -5
- package/esm2022/lib/components/core/babylon-info-big/babylon-info-big.component.mjs +3 -3
- package/esm2022/lib/components/core/babylon-info2img-big/babylon-info2img-big.component.mjs +4 -3
- package/esm2022/lib/components/core/babylon-modal-menu/babylon-modal-menu.component.mjs +3 -3
- package/esm2022/lib/components/core/babylon-rooms-slider/babylon-rooms-slider.component.mjs +3 -3
- package/esm2022/lib/components/core/babylon-services-slider/babylon-services-slider.component.mjs +3 -3
- package/esm2022/lib/directives/babylon-sliders/babylon-sliders.directive.mjs +2 -2
- package/esm2022/lib/services/mapper/mapper.service.mjs +3 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ctt-babylon.mjs +62 -27
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/Enum/index.d.ts +1 -0
- package/lib/Enum/logo-type.enum.d.ts +8 -0
- package/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.component.d.ts +6 -5
- package/lib/components/core/babylon-header-menu-logo-center/babylon-header-menu-logo-center.interface.d.ts +4 -2
- package/lib/components/core/babylon-header-mobile/babylon-header-mobile.component.d.ts +3 -3
- package/lib/styles/styles/babylon/common.scss +20 -1
- package/lib/styles/styles/babylon/globals.scss +1 -1
- package/lib/styles/styles-babylon.scss +0 -11
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './logo-type.enum';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvRW51bS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2dvLXR5cGUuZW51bSc7Il19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var LogoType;
|
|
2
|
+
(function (LogoType) {
|
|
3
|
+
LogoType["logo"] = "logo";
|
|
4
|
+
LogoType["logoDesktop"] = "logoDesktop";
|
|
5
|
+
LogoType["logoMenu"] = "logoMenu";
|
|
6
|
+
LogoType["logoMobile"] = "logoMobile";
|
|
7
|
+
LogoType["logoTablet"] = "logoTablet";
|
|
8
|
+
LogoType["appShareIcon"] = "appShareIcon";
|
|
9
|
+
})(LogoType || (LogoType = {}));
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvRW51bS9sb2dvLXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2hCLHlCQUFhLENBQUE7SUFDYix1Q0FBMkIsQ0FBQTtJQUMzQixpQ0FBcUIsQ0FBQTtJQUNyQixxQ0FBeUIsQ0FBQTtJQUN6QixxQ0FBeUIsQ0FBQTtJQUN6Qix5Q0FBNkIsQ0FBQTtBQUNqQyxDQUFDLEVBUFcsUUFBUSxLQUFSLFFBQVEsUUFPbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBMb2dvVHlwZSB7XG4gICAgbG9nbyA9ICdsb2dvJyxcbiAgICBsb2dvRGVza3RvcCA9ICdsb2dvRGVza3RvcCcsXG4gICAgbG9nb01lbnUgPSAnbG9nb01lbnUnLFxuICAgIGxvZ29Nb2JpbGUgPSAnbG9nb01vYmlsZScsXG4gICAgbG9nb1RhYmxldCA9ICdsb2dvVGFibGV0JyxcbiAgICBhcHBTaGFyZUljb24gPSAnYXBwU2hhcmVJY29uJyxcbn0iXX0=
|
|
@@ -102,7 +102,7 @@ export class BabylonEngineComponent {
|
|
|
102
102
|
const [datein, dateout] = formValues.dates.map((date) => this.formatDate(new Date(date)));
|
|
103
103
|
params.append('datein', datein);
|
|
104
104
|
params.append('dateout', dateout);
|
|
105
|
-
this.saveEngineData();
|
|
105
|
+
this.saveEngineData(datein, dateout);
|
|
106
106
|
}
|
|
107
107
|
if (this.guestsValueSeparates.adults) {
|
|
108
108
|
params.append('adultos', this.guestsValueSeparates.adults.toString());
|
|
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
265
265
|
}], hotelsPlaceholder: [{
|
|
266
266
|
type: Input
|
|
267
267
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1lbmdpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWVuZ2luZS9iYWJ5bG9uLWVuZ2luZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZW5naW5lL2JhYnlsb24tZW5naW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQ0gsMkJBQTJCLEdBRTlCLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7QUFtQmhFLE1BQU0sT0FBTyxzQkFBc0I7SUFrRC9CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBN0NoQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxvQkFBZSxHQUFHLEVBQUUs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LGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDakIsS0FBSztzQkFBYixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFJRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFMEMsY0FBYztzQkFBN0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3JDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYWxlbmRhciwgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IERyb3Bkb3duLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1idXR0b24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25JbnB1dEkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taW5wdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gICAgQmFieWxvbkd1ZXN0c1BvcHVwQ29tcG9uZW50LFxuICAgIGd1ZXN0c1ZhbHVlLFxufSBmcm9tICcuLi9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFieWxvbkd1ZXN0c1BvcHVwSSB9IGZyb20gJy4uL2JhYnlsb24tZ3Vlc3RzLXBvcHVwL2JhYnlsb24tZ3Vlc3RzLXBvcHVwLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24tZW5naW5lJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBCYWJ5bG9uR3Vlc3RzUG9wdXBDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWVuZ2luZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24tZW5naW5lLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkVuZ2luZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlcicpIGRhdGVwaWNrZXIhOiBDYWxlbmRhcjtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VySW4nKSBkYXRlcGlja2VySW4hOiBDYWxlbmRhcjtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyT3V0JykgZGF0ZXBpY2tlck91dCE6IENhbGVuZGFyO1xuICAgIEBJbnB1dCgpIG1vZGFsPzogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBkYXRlcGlja2VyVmFsdWUgPSAnJztcbiAgICBtaW5EYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuICAgIEBJbnB1dCgpIGRhdGVwaWNrZXJEYXRhPzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBndWVzdHNJbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgcHJvbW9JbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgZ3Vlc3RzPzogQmFieWxvbkd1ZXN0c1BvcHVwSTtcbiAgICBASW5wdXQoKSBidXR0b24/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSB1cmw/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgY29kaWdvPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhbmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ2xWYWx1ZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBvbmx5QWR1bHRzPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaG93QWdlcyA9IHRydWU7XG4gICAgQElucHV0KCkgZGVmYXVsdEJ1dHRvbj86IEJhYnlsb25CdXR0b25JO1xuXG4gICAgQFZpZXdDaGlsZCgnaG90ZWxzRHJvcGRvd24nLCB7IHN0YXRpYzogZmFsc2UgfSkgaG90ZWxzRHJvcGRvd24hOiBEcm9wZG93bjtcbiAgICBASW5wdXQoKSBob3RlbHNJbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgaG90ZWxzPzogQmFieWxvbkhvdGVsc0Ryb3Bkb3duSTtcbiAgICBASW5wdXQoKSBob3RlbHNQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBob3RlbHNWYWx1ZTogYW55O1xuXG4gICAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBob3RlbHM6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGRhdGVzOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGd1ZXN0czogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBwcm9tbzogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIH0pO1xuXG4gICAgZ3Vlc3RzVmFsdWUgPSAnJztcbiAgICBndWVzdHNWYWx1ZVNlcGFyYXRlczogQmFieWxvbkd1ZXN0VmFsdWVJID0ge1xuICAgICAgICBhZHVsdHM6IDIsXG4gICAgICAgIGtpZHM6IHtcbiAgICAgICAgICAgIGNvZGU6IDAsXG4gICAgICAgICAgICBjb2RlQWdlczogW10sXG4gICAgICAgIH0sXG4gICAgICAgIGluZmFudHM6IDAsXG4gICAgfTtcbiAgICBzaG93aW5nR3Vlc3RzID0gZmFsc2U7XG4gICAgZ2VuZXJhdGVkVXJsOiBzdHJpbmcgPSAnJztcbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5taW5EYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlID0gJzInO1xuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdndWVzdHMnKT8uc2V0VmFsdWUodGhpcy5ndWVzdHNWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZUVuZ2luZURhdGEoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmxvYWRFbmdpbmVEYXRhKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlSG90ZWxzRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvdGVsc0Ryb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLmhvdGVsc0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZURyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3RlbHNWYWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgIH1cblxuICAgIHRvZ2dsZVNob3dpbmdHdWVzdHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd2luZ0d1ZXN0cyA9ICF0aGlzLnNob3dpbmdHdWVzdHM7XG4gICAgfVxuXG4gICAgZ3Vlc3RzQ2hhbmdlKGRhdGE6IGd1ZXN0c1ZhbHVlKSB7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzID0gTnVtYmVyKGRhdGEuYWR1bHRzVmFsdWU/LmNvZGUpO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSA9IE51bWJlcihkYXRhLmtpZHNWYWx1ZT8uY29kZSk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlQWdlcyA9IGRhdGEua2lkc1ZhbHVlPy5hZ2VzPy5tYXAoXG4gICAgICAgICAgICAoYWdlOiBhbnkpID0+IE51bWJlcihhZ2UuY29kZSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzID0gTnVtYmVyKGRhdGEuaW5mYW50c1ZhbHVlPy5jb2RlKTtcblxuICAgICAgICBjb25zdCB0b3RhbEd1ZXN0cyA9XG4gICAgICAgICAgICAoTnVtYmVyKGRhdGEuYWR1bHRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgPyBOdW1iZXIoZGF0YS5hZHVsdHNWYWx1ZT8uY29kZSlcbiAgICAgICAgICAgICAgICA6IDApICtcbiAgICAgICAgICAgIChOdW1iZXIoZGF0YS5raWRzVmFsdWU/LmNvZGUpID8gTnVtYmVyKGRhdGEua2lkc1ZhbHVlPy5jb2RlKSA6IDApICtcbiAgICAgICAgICAgIChOdW1iZXIoZGF0YS5pbmZhbnRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgPyBOdW1iZXIoZGF0YS5pbmZhbnRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgOiAwKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZSA9IHRvdGFsR3Vlc3RzLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtPy5nZXQoJ2d1ZXN0cycpPy5zZXRWYWx1ZSh0aGlzLmd1ZXN0c1ZhbHVlKTtcblxuICAgICAgICB0aGlzLnRvZ2dsZVNob3dpbmdHdWVzdHMoKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2F2ZUVuZ2luZURhdGEoKTtcbiAgICB9XG5cbiAgICBidG5DbGljayhlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgdXBkYXRlR2VuZXJhdGVkVXJsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybSB8fCAhdGhpcy5idXR0b24/LnVybCkge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRVcmwgPSB0aGlzLmJ1dHRvbj8udXJsIHx8ICcnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybVZhbHVlcyA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuXG4gICAgICAgIGlmICh0aGlzLnVybCkge1xuICAgICAgICAgICAgY29uc3QgaXNNb2JpbGUgPVxuICAgICAgICAgICAgICAgIC9Nb2JpfEFuZHJvaWR8aVBob25lfGlQYWR8aVBvZHxXaW5kb3dzIFBob25lL2kudGVzdChcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBhZmZpbGlhdGUgPSBgJHt0aGlzLmNvZGlnb31fJHt0aGlzLmxhbmd9XyR7XG4gICAgICAgICAgICAgICAgaXNNb2JpbGUgPyAnbW9iaWxlJyA6ICdQQydcbiAgICAgICAgICAgIH1gO1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnYWZmaWxpYXRlJywgYWZmaWxpYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1WYWx1ZXMuZGF0ZXMpICYmIGZvcm1WYWx1ZXMuZGF0ZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICBjb25zdCBbZGF0ZWluLCBkYXRlb3V0XSA9IGZvcm1WYWx1ZXMuZGF0ZXMubWFwKChkYXRlOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKGRhdGUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2RhdGVpbicsIGRhdGVpbik7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdkYXRlb3V0JywgZGF0ZW91dCk7XG4gICAgICAgICAgICB0aGlzLnNhdmVFbmdpbmVEYXRhKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoXG4gICAgICAgICAgICAgICAgJ2FkdWx0b3MnLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGUpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoXG4gICAgICAgICAgICAgICAgJ2NoaWxkcmVuJyxcbiAgICAgICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZS50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cykge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICAgICAnYmFiaWVzJyxcbiAgICAgICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMudG9TdHJpbmcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwZW5kR3Vlc3RBZ2VzKHBhcmFtcyk7XG5cbiAgICAgICAgaWYgKGZvcm1WYWx1ZXMucHJvbW8pIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ3Byb20nLCBmb3JtVmFsdWVzLnByb21vKTtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ3Byb21fY2xlYW4nLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgncHJvbV9jbGVhbicsICcxJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5nbFZhbHVlKSBwYXJhbXMuYXBwZW5kKCdfZ2wnLCB0aGlzLmdsVmFsdWUpO1xuXG4gICAgICAgIGlmIChmb3JtVmFsdWVzLmhvdGVscykge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRVcmwgPSBgJHt0aGlzLmhvdGVsc1ZhbHVlPy51cmx9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkVXJsID0gYCR7dGhpcy5idXR0b24/LnVybH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRHdWVzdEFnZXMocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBpbmZhbnRzLCBraWRzIH0gPSB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzO1xuXG4gICAgICAgIGlmIChpbmZhbnRzKSB7XG4gICAgICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBpbmZhbnRzIH0pLmZvckVhY2goKCkgPT5cbiAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdndWVzdEFnZXMnLCAnMCcpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtpZHM/LmNvZGVBZ2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGtpZHMuY29kZUFnZXMuZm9yRWFjaCgoYWdlKSA9PlxuICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2d1ZXN0QWdlcycsIGFnZS50b1N0cmluZygpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRhdGVcbiAgICAgICAgICAgIC50b0xvY2FsZURhdGVTdHJpbmcoJ2VzLUVTJywge1xuICAgICAgICAgICAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICB9XG5cbiAgICBnZXQgZGVmYXVsdEd1ZXN0c1ZhbHVlKCk6IGd1ZXN0c1ZhbHVlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFkdWx0c1ZhbHVlOiB7XG4gICAgICAgICAgICAgICAgY29kZTogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMsXG4gICAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtpZHNWYWx1ZToge1xuICAgICAgICAgICAgICAgIGNvZGU6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlLFxuICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSkucGFkU3RhcnQoXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgICcwJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgYWdlczogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGVBZ2VzPy5tYXAoKGNvZGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyhjb2RlKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbmZhbnRzVmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMsXG4gICAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cykucGFkU3RhcnQoXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgICcwJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNjcm9sbFRvU2VjdGlvbigpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHNlY3Rpb24gZXhpc3RzIGJlZm9yZSBzY3JvbGxpbmdcbiAgICAgICAgLy8gVXNlIGEgbW9yZSBzcGVjaWZpYyBzZWxlY3RvciBpZiBuZWVkZWRcbiAgICAgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHRoZSBzZWN0aW9uIGhhcyBhIHNwZWNpZmljIGNsYXNzIG9yIElELCB1c2UgdGhhdFxuICAgICAgICAvKlxuICAgICAgICBjb25zdCBzZWN0aW9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2JhYnlsb25fX2FkdmFudGFnZXMnKTtcbiAgICAgICAgaWYgKHNlY3Rpb24pIHtcbiAgICAgICAgICBzZWN0aW9uLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICB9ICovXG4gICAgfVxuXG4gICAgc2F2ZUVuZ2luZURhdGEoZGF0ZWluPzogc3RyaW5nLCBkYXRlb3V0Pzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHN0b3JlZERhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbmdpbmVEYXRhJyk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRGF0YSA9IHN0b3JlZERhdGEgPyBKU09OLnBhcnNlKHN0b3JlZERhdGEpIDoge307XG5cbiAgICAgICAgY29uc3QgZW5naW5lRGF0YSA9IHtcbiAgICAgICAgICAgIHBlcmlvZF9mcm9tOiBkYXRlaW5cbiAgICAgICAgICAgICAgICA/IGRhdGVpbi5yZXBsYWNlKC8tL2csICcvJylcbiAgICAgICAgICAgICAgICA6IHByZXZpb3VzRGF0YS5wZXJpb2RfZnJvbSxcbiAgICAgICAgICAgIHBlcmlvZF90bzogZGF0ZW91dFxuICAgICAgICAgICAgICAgID8gZGF0ZW91dC5yZXBsYWNlKC8tL2csICcvJylcbiAgICAgICAgICAgICAgICA6IHByZXZpb3VzRGF0YS5wZXJpb2RfdG8sXG4gICAgICAgICAgICBhZHVsdHM6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzIHx8IDEsXG4gICAgICAgICAgICBraWRzOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSB8fCAwLFxuICAgICAgICAgICAgYmFiaWVzOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMgfHwgMCxcbiAgICAgICAgfTtcblxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdlbmdpbmVEYXRhJywgSlNPTi5zdHJpbmdpZnkoZW5naW5lRGF0YSkpO1xuICAgIH1cblxuICAgIGxvYWRFbmdpbmVEYXRhKCkge1xuICAgICAgICBjb25zdCBzdG9yZWREYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW5naW5lRGF0YScpO1xuICAgICAgICBpZiAoIXN0b3JlZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUVuZ2luZURhdGEoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWJ5bG9uSG90ZWxJIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHRpY2tldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWJ5bG9uR3Vlc3RWYWx1ZUkge1xuICAgIGFkdWx0czogbnVtYmVyO1xuICAgIGtpZHM6IHtcbiAgICAgICAgY29kZT86IG51bWJlcjtcbiAgICAgICAgY29kZUFnZXM/OiBudW1iZXJbXTtcbiAgICB9O1xuICAgIGluZmFudHM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWJ5bG9uSG90ZWxzRHJvcGRvd25JIHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBvcHRpb25zPzogQmFieWxvbkhvdGVsRHJvcGRvd25PcHRpb25bXTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBzbWFsbFRpdGxlPzogc3RyaW5nO1xuICAgIGVycm9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25Ib3RlbERyb3Bkb3duT3B0aW9uIHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHRpY2tlcj86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG59XG4iLCI8IS0tRGVza3RvcCBFbmdpbmUtLT5cbjxkaXYgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmUgYmdfd2hpdGVcIiBbbmdDbGFzc109XCJ7IGVuZ2luZV9fY2FkZW5hOiBob3RlbHMgfVwiPlxuICAgIEBpZiAoZGVmYXVsdEJ1dHRvbikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWRlZmF1bHQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNhbGxcIiAoY2xpY2spPVwic2Nyb2xsVG9TZWN0aW9uKClcIj5cbiAgICAgICAgICAgICAgICB7eyBkZWZhdWx0QnV0dG9uIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxmb3JtXG4gICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lX19mb3JtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgID5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgIGhvdGVsc0lucHV0ICYmIGhvdGVscyAmJiBob3RlbHMub3B0aW9ucyAmJiBob3RlbHMub3B0aW9ucy5sZW5ndGggPiAxXG4gICAgICAgICkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lX19pbnB1dC0td3JhcHBlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGhvdGVsc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiaG90ZWxzLm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJob3RlbHNcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaG90ZWxzUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICNob3RlbHNEcm9wZG93blxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tYXJyb3ctYm90dG9tXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2RhdGVwaWNrZXItLXdyYXBwZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2RhdGVwaWNrZXJcIlxuICAgICAgICAgICAgICAgIFtzaG93T3RoZXJNb250aHNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC1tbS15eVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlcGlja2VyVmFsdWVcIlxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU9XCJyYW5nZVwiXG4gICAgICAgICAgICAgICAgW251bWJlck9mTW9udGhzXT1cIjJcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRlcGlja2VyRGF0YT8ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGVzXCJcbiAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgICAgICAjZGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgIFtyZWFkb25seUlucHV0XT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxuXG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lX19kYXRlcGlja2VyLS1pY29uIGJhYnlsb24tYXJyb3ctYm90dG9tXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9faW5wdXQtLXdyYXBwZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2hvd2luZ0d1ZXN0cygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2lucHV0IG5vLWNhcmV0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImd1ZXN0c0lucHV0Py5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1hcnJvdy1ib3R0b21cIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cC1kaWFsb2cgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2RpYWxvZ1wiIFsodmlzaWJsZSldPVwic2hvd2luZ0d1ZXN0c1wiPlxuICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLWd1ZXN0cy1wb3B1cFxuICAgICAgICAgICAgICAgIFtvbmx5QWR1bHRzXT1cIm9ubHlBZHVsdHNcIlxuICAgICAgICAgICAgICAgIFtzaG93QWdlc109XCJzaG93QWdlc1wiXG4gICAgICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJkZWZhdWx0R3Vlc3RzVmFsdWVcIlxuICAgICAgICAgICAgICAgIFthZHVsdHNEcm9wZG93bl09XCJndWVzdHM/LmFkdWx0c0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBbYWdlc0Ryb3Bkb3duXT1cImd1ZXN0cz8uYWdlc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBbYWdlc0xhYmVsXT1cImd1ZXN0cz8uYWdlc0xhYmVsXCJcbiAgICAgICAgICAgICAgICBbYmFiaWVzRHJvcGRvd25dPVwiZ3Vlc3RzPy5iYWJpZXNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgW2tpZHNEcm9wZG93bl09XCJndWVzdHM/LmtpZHNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgW2tpZHNEcm9wZG93bl09XCJndWVzdHM/LmtpZHNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgW2J0bl09XCJndWVzdHM/LmJ0blwiXG4gICAgICAgICAgICAgICAgKGFwcGx5KT1cImd1ZXN0c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2xpYi1iYWJ5bG9uLWd1ZXN0cy1wb3B1cD5cbiAgICAgICAgPC9wLWRpYWxvZz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2lucHV0LS13cmFwcGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHJvbW8tY29kZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9tb0lucHV0Py5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicHJvbW9cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi10YWdcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtocmVmXT1cImdlbmVyYXRlZFVybFwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fY2FsbFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJidG4tc3VibWl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1lbmdpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWVuZ2luZS9iYWJ5bG9uLWVuZ2luZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZW5naW5lL2JhYnlsb24tZW5naW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQ0gsMkJBQTJCLEdBRTlCLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7QUFtQmhFLE1BQU0sT0FBTyxzQkFBc0I7SUFrRC9CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBN0NoQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxvQkFBZSxHQUFHLEVBQUUs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QUFTO3VCQUFDLGNBQWM7Z0JBQ0csYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNqQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUlFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUUwQyxjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDckMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhbGVuZGFyLCBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgRHJvcGRvd24sIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25CdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWJ1dHRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbklucHV0SSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1pbnB1dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBCYWJ5bG9uR3Vlc3RzUG9wdXBDb21wb25lbnQsXG4gICAgZ3Vlc3RzVmFsdWUsXG59IGZyb20gJy4uL2JhYnlsb24tZ3Vlc3RzLXBvcHVwL2JhYnlsb24tZ3Vlc3RzLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWJ5bG9uR3Vlc3RzUG9wdXBJIH0gZnJvbSAnLi4vYmFieWxvbi1ndWVzdHMtcG9wdXAvYmFieWxvbi1ndWVzdHMtcG9wdXAuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItYmFieWxvbi1lbmdpbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgICAgIEJhYnlsb25HdWVzdHNQb3B1cENvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBEcm9wZG93bk1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhYnlsb24tZW5naW5lLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1lbmdpbmUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRW5naW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyJykgZGF0ZXBpY2tlciE6IENhbGVuZGFyO1xuICAgIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXJJbicpIGRhdGVwaWNrZXJJbiE6IENhbGVuZGFyO1xuICAgIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXJPdXQnKSBkYXRlcGlja2VyT3V0ITogQ2FsZW5kYXI7XG4gICAgQElucHV0KCkgbW9kYWw/OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIGRhdGVwaWNrZXJWYWx1ZSA9ICcnO1xuICAgIG1pbkRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQElucHV0KCkgZGF0ZXBpY2tlckRhdGE/OiBCYWJ5bG9uSW5wdXRJO1xuICAgIEBJbnB1dCgpIGd1ZXN0c0lucHV0PzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBwcm9tb0lucHV0PzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBndWVzdHM/OiBCYWJ5bG9uR3Vlc3RzUG9wdXBJO1xuICAgIEBJbnB1dCgpIGJ1dHRvbj86IEJhYnlsb25CdXR0b25JO1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHVybD86IHN0cmluZztcbiAgICBASW5wdXQoKSBjb2RpZ28/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFuZz86IHN0cmluZztcbiAgICBASW5wdXQoKSBnbFZhbHVlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9ubHlBZHVsdHM/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dBZ2VzID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkZWZhdWx0QnV0dG9uPzogQmFieWxvbkJ1dHRvbkk7XG5cbiAgICBAVmlld0NoaWxkKCdob3RlbHNEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBob3RlbHNEcm9wZG93biE6IERyb3Bkb3duO1xuICAgIEBJbnB1dCgpIGhvdGVsc0lucHV0PzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBob3RlbHM/OiBCYWJ5bG9uSG90ZWxzRHJvcGRvd25JO1xuICAgIEBJbnB1dCgpIGhvdGVsc1BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGhvdGVsc1ZhbHVlOiBhbnk7XG5cbiAgICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGhvdGVsczogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgZGF0ZXM6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgZ3Vlc3RzOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIHByb21vOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgfSk7XG5cbiAgICBndWVzdHNWYWx1ZSA9ICcnO1xuICAgIGd1ZXN0c1ZhbHVlU2VwYXJhdGVzOiBCYWJ5bG9uR3Vlc3RWYWx1ZUkgPSB7XG4gICAgICAgIGFkdWx0czogMixcbiAgICAgICAga2lkczoge1xuICAgICAgICAgICAgY29kZTogMCxcbiAgICAgICAgICAgIGNvZGVBZ2VzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgaW5mYW50czogMCxcbiAgICB9O1xuICAgIHNob3dpbmdHdWVzdHMgPSBmYWxzZTtcbiAgICBnZW5lcmF0ZWRVcmw6IHN0cmluZyA9ICcnO1xuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1pbkRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWUgPSAnMic7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2d1ZXN0cycpPy5zZXRWYWx1ZSh0aGlzLmd1ZXN0c1ZhbHVlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR2VuZXJhdGVkVXJsKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlRW5naW5lRGF0YSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubG9hZEVuZ2luZURhdGEoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVIb3RlbHNEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaG90ZWxzRHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMuaG90ZWxzRHJvcGRvd24uc2hvdygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdGVsc1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2hvd2luZ0d1ZXN0cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93aW5nR3Vlc3RzID0gIXRoaXMuc2hvd2luZ0d1ZXN0cztcbiAgICB9XG5cbiAgICBndWVzdHNDaGFuZ2UoZGF0YTogZ3Vlc3RzVmFsdWUpIHtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgPSBOdW1iZXIoZGF0YS5hZHVsdHNWYWx1ZT8uY29kZSk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlID0gTnVtYmVyKGRhdGEua2lkc1ZhbHVlPy5jb2RlKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGVBZ2VzID0gZGF0YS5raWRzVmFsdWU/LmFnZXM/Lm1hcChcbiAgICAgICAgICAgIChhZ2U6IGFueSkgPT4gTnVtYmVyKGFnZS5jb2RlKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMgPSBOdW1iZXIoZGF0YS5pbmZhbnRzVmFsdWU/LmNvZGUpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsR3Vlc3RzID1cbiAgICAgICAgICAgIChOdW1iZXIoZGF0YS5hZHVsdHNWYWx1ZT8uY29kZSlcbiAgICAgICAgICAgICAgICA/IE51bWJlcihkYXRhLmFkdWx0c1ZhbHVlPy5jb2RlKVxuICAgICAgICAgICAgICAgIDogMCkgK1xuICAgICAgICAgICAgKE51bWJlcihkYXRhLmtpZHNWYWx1ZT8uY29kZSkgPyBOdW1iZXIoZGF0YS5raWRzVmFsdWU/LmNvZGUpIDogMCkgK1xuICAgICAgICAgICAgKE51bWJlcihkYXRhLmluZmFudHNWYWx1ZT8uY29kZSlcbiAgICAgICAgICAgICAgICA/IE51bWJlcihkYXRhLmluZmFudHNWYWx1ZT8uY29kZSlcbiAgICAgICAgICAgICAgICA6IDApO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlID0gdG90YWxHdWVzdHMudG9TdHJpbmcoKTtcblxuICAgICAgICB0aGlzLmZvcm0/LmdldCgnZ3Vlc3RzJyk/LnNldFZhbHVlKHRoaXMuZ3Vlc3RzVmFsdWUpO1xuXG4gICAgICAgIHRoaXMudG9nZ2xlU2hvd2luZ0d1ZXN0cygpO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5zYXZlRW5naW5lRGF0YSgpO1xuICAgIH1cblxuICAgIGJ0bkNsaWNrKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlLmVtaXQodGhpcy5mb3JtLnZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVHZW5lcmF0ZWRVcmwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtIHx8ICF0aGlzLmJ1dHRvbj8udXJsKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlZFVybCA9IHRoaXMuYnV0dG9uPy51cmwgfHwgJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5mb3JtLnZhbHVlO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudXJsKSB7XG4gICAgICAgICAgICBjb25zdCBpc01vYmlsZSA9XG4gICAgICAgICAgICAgICAgL01vYml8QW5kcm9pZHxpUGhvbmV8aVBhZHxpUG9kfFdpbmRvd3MgUGhvbmUvaS50ZXN0KFxuICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IudXNlckFnZW50XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGFmZmlsaWF0ZSA9IGAke3RoaXMuY29kaWdvfV8ke3RoaXMubGFuZ31fJHtcbiAgICAgICAgICAgICAgICBpc01vYmlsZSA/ICdtb2JpbGUnIDogJ1BDJ1xuICAgICAgICAgICAgfWA7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdhZmZpbGlhdGUnLCBhZmZpbGlhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlcy5kYXRlcykgJiYgZm9ybVZhbHVlcy5kYXRlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIGNvbnN0IFtkYXRlaW4sIGRhdGVvdXRdID0gZm9ybVZhbHVlcy5kYXRlcy5tYXAoKGRhdGU6IHN0cmluZykgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoZGF0ZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnZGF0ZWluJywgZGF0ZWluKTtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2RhdGVvdXQnLCBkYXRlb3V0KTtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUVuZ2luZURhdGEoZGF0ZWluLCBkYXRlb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmFkdWx0cykge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICAgICAnYWR1bHRvcycsXG4gICAgICAgICAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMudG9TdHJpbmcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSkge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICAgICAnY2hpbGRyZW4nLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKFxuICAgICAgICAgICAgICAgICdiYWJpZXMnLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cy50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBlbmRHdWVzdEFnZXMocGFyYW1zKTtcblxuICAgICAgICBpZiAoZm9ybVZhbHVlcy5wcm9tbykge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgncHJvbScsIGZvcm1WYWx1ZXMucHJvbW8pO1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgncHJvbV9jbGVhbicsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdwcm9tX2NsZWFuJywgJzEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmdsVmFsdWUpIHBhcmFtcy5hcHBlbmQoJ19nbCcsIHRoaXMuZ2xWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGZvcm1WYWx1ZXMuaG90ZWxzKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlZFVybCA9IGAke3RoaXMuaG90ZWxzVmFsdWU/LnVybH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRVcmwgPSBgJHt0aGlzLmJ1dHRvbj8udXJsfT8ke3BhcmFtcy50b1N0cmluZygpfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZEd1ZXN0QWdlcyhwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGluZmFudHMsIGtpZHMgfSA9IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXM7XG5cbiAgICAgICAgaWYgKGluZmFudHMpIHtcbiAgICAgICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IGluZmFudHMgfSkuZm9yRWFjaCgoKSA9PlxuICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2d1ZXN0QWdlcycsICcwJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2lkcz8uY29kZUFnZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAga2lkcy5jb2RlQWdlcy5mb3JFYWNoKChhZ2UpID0+XG4gICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnZ3Vlc3RBZ2VzJywgYWdlLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZVxuICAgICAgICAgICAgLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnLCB7XG4gICAgICAgICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0R3Vlc3RzVmFsdWUoKTogZ3Vlc3RzVmFsdWUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWR1bHRzVmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmFkdWx0cyxcbiAgICAgICAgICAgICAgICBuYW1lOiBTdHJpbmcodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMpLnBhZFN0YXJ0KDIsICcwJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2lkc1ZhbHVlOiB7XG4gICAgICAgICAgICAgICAgY29kZTogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGUsXG4gICAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlKS5wYWRTdGFydChcbiAgICAgICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICAgICAgJzAnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBhZ2VzOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZUFnZXM/Lm1hcCgoY29kZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKGNvZGUpLnBhZFN0YXJ0KDIsICcwJyksXG4gICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluZmFudHNWYWx1ZToge1xuICAgICAgICAgICAgICAgIGNvZGU6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyxcbiAgICAgICAgICAgICAgICBuYW1lOiBTdHJpbmcodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzKS5wYWRTdGFydChcbiAgICAgICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICAgICAgJzAnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9TZWN0aW9uKCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2VjdGlvbiBleGlzdHMgYmVmb3JlIHNjcm9sbGluZ1xuICAgICAgICAvLyBVc2UgYSBtb3JlIHNwZWNpZmljIHNlbGVjdG9yIGlmIG5lZWRlZFxuICAgICAgICAvLyBGb3IgZXhhbXBsZSwgaWYgdGhlIHNlY3Rpb24gaGFzIGEgc3BlY2lmaWMgY2xhc3Mgb3IgSUQsIHVzZSB0aGF0XG4gICAgICAgIC8qXG4gICAgICAgIGNvbnN0IHNlY3Rpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYmFieWxvbl9fYWR2YW50YWdlcycpO1xuICAgICAgICBpZiAoc2VjdGlvbikge1xuICAgICAgICAgIHNlY3Rpb24uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgIH0gKi9cbiAgICB9XG5cbiAgICBzYXZlRW5naW5lRGF0YShkYXRlaW4/OiBzdHJpbmcsIGRhdGVvdXQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VuZ2luZURhdGEnKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNEYXRhID0gc3RvcmVkRGF0YSA/IEpTT04ucGFyc2Uoc3RvcmVkRGF0YSkgOiB7fTtcblxuICAgICAgICBjb25zdCBlbmdpbmVEYXRhID0ge1xuICAgICAgICAgICAgcGVyaW9kX2Zyb206IGRhdGVpblxuICAgICAgICAgICAgICAgID8gZGF0ZWluLnJlcGxhY2UoLy0vZywgJy8nKVxuICAgICAgICAgICAgICAgIDogcHJldmlvdXNEYXRhLnBlcmlvZF9mcm9tLFxuICAgICAgICAgICAgcGVyaW9kX3RvOiBkYXRlb3V0XG4gICAgICAgICAgICAgICAgPyBkYXRlb3V0LnJlcGxhY2UoLy0vZywgJy8nKVxuICAgICAgICAgICAgICAgIDogcHJldmlvdXNEYXRhLnBlcmlvZF90byxcbiAgICAgICAgICAgIGFkdWx0czogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgfHwgMSxcbiAgICAgICAgICAgIGtpZHM6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlIHx8IDAsXG4gICAgICAgICAgICBiYWJpZXM6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyB8fCAwLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2VuZ2luZURhdGEnLCBKU09OLnN0cmluZ2lmeShlbmdpbmVEYXRhKSk7XG4gICAgfVxuXG4gICAgbG9hZEVuZ2luZURhdGEoKSB7XG4gICAgICAgIGNvbnN0IHN0b3JlZERhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbmdpbmVEYXRhJyk7XG4gICAgICAgIGlmICghc3RvcmVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlRW5naW5lRGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25Ib3RlbEkge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGlja2V0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25HdWVzdFZhbHVlSSB7XG4gICAgYWR1bHRzOiBudW1iZXI7XG4gICAga2lkczoge1xuICAgICAgICBjb2RlPzogbnVtYmVyO1xuICAgICAgICBjb2RlQWdlcz86IG51bWJlcltdO1xuICAgIH07XG4gICAgaW5mYW50czogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25Ib3RlbHNEcm9wZG93bkkge1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIG9wdGlvbnM/OiBCYWJ5bG9uSG90ZWxEcm9wZG93bk9wdGlvbltdO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHNtYWxsVGl0bGU/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFieWxvbkhvdGVsRHJvcGRvd25PcHRpb24ge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGlja2VyPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbn1cbiIsIjwhLS1EZXNrdG9wIEVuZ2luZS0tPlxuPGRpdiBjbGFzcz1cImJhYnlsb25fX2VuZ2luZSBiZ193aGl0ZVwiIFtuZ0NsYXNzXT1cInsgZW5naW5lX19jYWRlbmE6IGhvdGVscyB9XCI+XG4gICAgQGlmIChkZWZhdWx0QnV0dG9uKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZGVmYXVsdC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tY2FsbFwiIChjbGljayk9XCJzY3JvbGxUb1NlY3Rpb24oKVwiPlxuICAgICAgICAgICAgICAgIHt7IGRlZmF1bHRCdXR0b24gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGZvcm1cbiAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2Zvcm0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgPlxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgaG90ZWxzSW5wdXQgJiYgaG90ZWxzICYmIGhvdGVscy5vcHRpb25zICYmIGhvdGVscy5vcHRpb25zLmxlbmd0aCA+IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2lucHV0LS13cmFwcGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgaG90ZWxzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJob3RlbHMub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImhvdGVsc1wiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJob3RlbHNQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVEcm9wZG93bkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgI2hvdGVsc0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1hcnJvdy1ib3R0b21cIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9fZGF0ZXBpY2tlci0td3JhcHBlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9fZGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAgICAgW3Nob3dPdGhlck1vbnRoc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD1cImRkLW1tLXl5XCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVwaWNrZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cInJhbmdlXCJcbiAgICAgICAgICAgICAgICBbbnVtYmVyT2ZNb250aHNdPVwiMlwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGVwaWNrZXJEYXRhPy5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZXNcIlxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICNkYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5SW5wdXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3AtY2FsZW5kYXI+XG5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2RhdGVwaWNrZXItLWljb24gYmFieWxvbi1hcnJvdy1ib3R0b21cIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lX19pbnB1dC0td3JhcHBlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93aW5nR3Vlc3RzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9faW5wdXQgbm8tY2FyZXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ3Vlc3RzSW5wdXQ/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWVzdHNcIlxuICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLWFycm93LWJvdHRvbVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwLWRpYWxvZyBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9fZGlhbG9nXCIgWyh2aXNpYmxlKV09XCJzaG93aW5nR3Vlc3RzXCI+XG4gICAgICAgICAgICA8bGliLWJhYnlsb24tZ3Vlc3RzLXBvcHVwXG4gICAgICAgICAgICAgICAgW29ubHlBZHVsdHNdPVwib25seUFkdWx0c1wiXG4gICAgICAgICAgICAgICAgW3Nob3dBZ2VzXT1cInNob3dBZ2VzXCJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdFZhbHVlXT1cImRlZmF1bHRHdWVzdHNWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2FkdWx0c0Ryb3Bkb3duXT1cImd1ZXN0cz8uYWR1bHRzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIFthZ2VzRHJvcGRvd25dPVwiZ3Vlc3RzPy5hZ2VzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIFthZ2VzTGFiZWxdPVwiZ3Vlc3RzPy5hZ2VzTGFiZWxcIlxuICAgICAgICAgICAgICAgIFtiYWJpZXNEcm9wZG93bl09XCJndWVzdHM/LmJhYmllc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBba2lkc0Ryb3Bkb3duXT1cImd1ZXN0cz8ua2lkc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBba2lkc0Ryb3Bkb3duXT1cImd1ZXN0cz8ua2lkc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBbYnRuXT1cImd1ZXN0cz8uYnRuXCJcbiAgICAgICAgICAgICAgICAoYXBwbHkpPVwiZ3Vlc3RzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvbGliLWJhYnlsb24tZ3Vlc3RzLXBvcHVwPlxuICAgICAgICA8L3AtZGlhbG9nPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9faW5wdXQtLXdyYXBwZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwcm9tby1jb2RlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2lucHV0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInByb21vSW5wdXQ/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9tb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLXRhZ1wiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChidXR0b24pIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2VuZXJhdGVkVXJsXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9jYWxsXCJcbiAgICAgICAgICAgICAgICBpZD1cImJ0bi1zdWJtaXRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=
|
|
@@ -112,7 +112,7 @@ export class BabylonEngineModalComponent {
|
|
|
112
112
|
const [datein, dateout] = formValues.dates.map((date) => this.formatDate(new Date(date)));
|
|
113
113
|
params.append('datein', datein);
|
|
114
114
|
params.append('dateout', dateout);
|
|
115
|
-
this.saveEngineData();
|
|
115
|
+
this.saveEngineData(datein, dateout);
|
|
116
116
|
}
|
|
117
117
|
if (this.guestsValueSeparates.adults) {
|
|
118
118
|
params.append('adultos', this.guestsValueSeparates.adults.toString());
|
|
@@ -258,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
258
258
|
}], hotelsPlaceholder: [{
|
|
259
259
|
type: Input
|
|
260
260
|
}] } });
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1lbmdpbmUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWVuZ2luZS1tb2RhbC9iYWJ5bG9uLWVuZ2luZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZW5naW5lLW1vZGFsL2JhYnlsb24tZW5naW5lLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBSTdGLE9BQU8sRUFDSCwyQkFBMkIsR0FFOUIsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7OztBQW1CaEUsTUFBTSxPQUFPLDJCQUEyQjtJQStDcEMsWUFDWSxHQUFzQixFQUNiLFNBQW9ELEVBQzdELFFBQW1CO1FB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NkhBQ1osd0JBQXdCOzs0RkFLbkIsMkJBQTJCO2tCQWhCdkMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLDJCQUEyQjt3QkFDM0IsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osd0JBQXdCO3FCQUMzQjt5SUFLd0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNkLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBSUUsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUUwQyxjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDckMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBGb3JtQ29udHJvbCxcbiAgICBGb3JtR3JvdXAsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2FsZW5kYXIsIENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBEcm9wZG93biwgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1idXR0b24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25JbnB1dEkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taW5wdXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25HdWVzdFZhbHVlSSB9IGZyb20gJy4uL2JhYnlsb24tZW5naW5lL2JhYnlsb24tZW5naW5lLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEJhYnlsb25HdWVzdHNQb3B1cENvbXBvbmVudCxcbiAgICBndWVzdHNWYWx1ZSxcbn0gZnJvbSAnLi4vYmFieWxvbi1ndWVzdHMtcG9wdXAvYmFieWxvbi1ndWVzdHMtcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEJhYnlsb25HdWVzdHNQb3B1cEkgfSBmcm9tICcuLi9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWVuZ2luZS1tb2RhbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBDYWxlbmRhck1vZHVsZSxcbiAgICAgICAgQmFieWxvbkd1ZXN0c1BvcHVwQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dNb2R1bGUsXG4gICAgICAgIERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWVuZ2luZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24tZW5naW5lLW1vZGFsLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkVuZ2luZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyJykgZGF0ZXBpY2tlciE6IENhbGVuZGFyO1xuICAgIEBJbnB1dCgpIG1vZGFsPzogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBkYXRlcGlja2VyVmFsdWUgPSAnJztcbiAgICBtaW5EYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuICAgIEBJbnB1dCgpIGRhdGVwaWNrZXJEYXRhPzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBndWVzdHNJbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgcHJvbW9JbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgYnV0dG9uPzogQmFieWxvbkJ1dHRvbkk7XG4gICAgQElucHV0KCkgZ3Vlc3RzPzogQmFieWxvbkd1ZXN0c1BvcHVwSTtcbiAgICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJ0aXRsZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBsYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHVybD86IHN0cmluZztcbiAgICBASW5wdXQoKSBjb2RpZ28/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgZ2xWYWx1ZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBvbmx5QWR1bHRzPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaG93QWdlcyA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdob3RlbHNEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBob3RlbHNEcm9wZG93biE6IERyb3Bkb3duO1xuICAgIEBJbnB1dCgpIGhvdGVsc0lucHV0PzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBob3RlbHM/OiBCYWJ5bG9uSG90ZWxzTW9kYWxEcm9wZG93bkk7XG4gICAgQElucHV0KCkgaG90ZWxzUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaG90ZWxzVmFsdWU6IGFueTtcblxuICAgIGZvcm1Nb2RhbCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBob3RlbHM6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGRhdGVzOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGd1ZXN0czogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgICBwcm9tbzogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIH0pO1xuXG4gICAgZ3Vlc3RzVmFsdWUgPSAnJztcbiAgICBndWVzdHNWYWx1ZVNlcGFyYXRlczogQmFieWxvbkd1ZXN0VmFsdWVJID0ge1xuICAgICAgICBhZHVsdHM6IDIsXG4gICAgICAgIGtpZHM6IHtcbiAgICAgICAgICAgIGNvZGU6IDAsXG4gICAgICAgICAgICBjb2RlQWdlczogW10sXG4gICAgICAgIH0sXG4gICAgICAgIGluZmFudHM6IDAsXG4gICAgfTtcbiAgICBnZW5lcmF0ZWRVcmw6IHN0cmluZyA9ICcnO1xuICAgIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBzaG93aW5nR3Vlc3RzID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJhYnlsb25FbmdpbmVNb2RhbENvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1pbkRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWUgPSAnMic7XG4gICAgICAgIHRoaXMuZm9ybU1vZGFsLmdldCgnZ3Vlc3RzJyk/LnNldFZhbHVlKHRoaXMuZ3Vlc3RzVmFsdWUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlR2VuZXJhdGVkVXJsKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmZvcm1Nb2RhbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZUVuZ2luZURhdGEoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmxvYWRFbmdpbmVEYXRhKCk7XG4gICAgfVxuXG4gICAgb3BlbkNhbGVuZGFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXIudG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlSG90ZWxzRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvdGVsc0Ryb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLmhvdGVsc0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZURyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob3RlbHNWYWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgIH1cblxuICAgIHRvZ2dsZVNob3dpbmdHdWVzdHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd2luZ0d1ZXN0cyA9ICF0aGlzLnNob3dpbmdHdWVzdHM7XG4gICAgfVxuXG4gICAgZ3Vlc3RzQ2hhbmdlKGRhdGE6IGd1ZXN0c1ZhbHVlKSB7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzID0gTnVtYmVyKGRhdGEuYWR1bHRzVmFsdWU/LmNvZGUpO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSA9IE51bWJlcihkYXRhLmtpZHNWYWx1ZT8uY29kZSk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlQWdlcyA9IGRhdGEua2lkc1ZhbHVlPy5hZ2VzPy5tYXAoXG4gICAgICAgICAgICAoYWdlKSA9PiBOdW1iZXIoYWdlLmNvZGUpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyA9IE51bWJlcihkYXRhLmluZmFudHNWYWx1ZT8uY29kZSk7XG5cbiAgICAgICAgY29uc3QgdG90YWxHdWVzdHMgPVxuICAgICAgICAgICAgKE51bWJlcihkYXRhLmFkdWx0c1ZhbHVlPy5jb2RlKVxuICAgICAgICAgICAgICAgID8gTnVtYmVyKGRhdGEuYWR1bHRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgOiAwKSArXG4gICAgICAgICAgICAoTnVtYmVyKGRhdGEua2lkc1ZhbHVlPy5jb2RlKSA/IE51bWJlcihkYXRhLmtpZHNWYWx1ZT8uY29kZSkgOiAwKSArXG4gICAgICAgICAgICAoTnVtYmVyKGRhdGEuaW5mYW50c1ZhbHVlPy5jb2RlKVxuICAgICAgICAgICAgICAgID8gTnVtYmVyKGRhdGEuaW5mYW50c1ZhbHVlPy5jb2RlKVxuICAgICAgICAgICAgICAgIDogMCk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWUgPVxuICAgICAgICAgICAgdG90YWxHdWVzdHMgPCAxMFxuICAgICAgICAgICAgICAgID8gJzAnICsgdG90YWxHdWVzdHMudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIDogdG90YWxHdWVzdHMudG9TdHJpbmcoKTtcblxuICAgICAgICB0aGlzLmZvcm1Nb2RhbD8uZ2V0KCdndWVzdHMnKT8uc2V0VmFsdWUodGhpcy5ndWVzdHNWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy50b2dnbGVTaG93aW5nR3Vlc3RzKCk7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnNhdmVFbmdpbmVEYXRhKCk7XG4gICAgfVxuXG4gICAgYnRuQ2xpY2soZTogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UuZW1pdCh0aGlzLmZvcm1Nb2RhbC52YWx1ZSk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlR2VuZXJhdGVkVXJsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybU1vZGFsIHx8ICF0aGlzLmJ1dHRvbj8udXJsKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlZFVybCA9IHRoaXMuYnV0dG9uPy51cmwgfHwgJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5mb3JtTW9kYWwudmFsdWU7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcblxuICAgICAgICBpZiAodGhpcy51cmwpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzTW9iaWxlID1cbiAgICAgICAgICAgICAgICAvTW9iaXxBbmRyb2lkfGlQaG9uZXxpUGFkfGlQb2R8V2luZG93cyBQaG9uZS9pLnRlc3QoXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci51c2VyQWdlbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgYWZmaWxpYXRlID0gYCR7dGhpcy5jb2RpZ299XyR7dGhpcy5sYW5nfV8ke1xuICAgICAgICAgICAgICAgIGlzTW9iaWxlID8gJ21vYmlsZScgOiAnUEMnXG4gICAgICAgICAgICB9YDtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2FmZmlsaWF0ZScsIGFmZmlsaWF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmb3JtVmFsdWVzLmRhdGVzKSAmJiBmb3JtVmFsdWVzLmRhdGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgY29uc3QgW2RhdGVpbiwgZGF0ZW91dF0gPSBmb3JtVmFsdWVzLmRhdGVzLm1hcCgoZGF0ZTogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZShkYXRlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdkYXRlaW4nLCBkYXRlaW4pO1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnZGF0ZW91dCcsIGRhdGVvdXQpO1xuICAgICAgICAgICAgdGhpcy5zYXZlRW5naW5lRGF0YSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKFxuICAgICAgICAgICAgICAgICdhZHVsdG9zJyxcbiAgICAgICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmFkdWx0cy50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKFxuICAgICAgICAgICAgICAgICdjaGlsZHJlbicsXG4gICAgICAgICAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGUudG9TdHJpbmcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoXG4gICAgICAgICAgICAgICAgJ2JhYmllcycsXG4gICAgICAgICAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFwcGVuZEd1ZXN0QWdlcyhwYXJhbXMpO1xuXG4gICAgICAgIGlmIChmb3JtVmFsdWVzLnByb21vKSB7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdwcm9tJywgZm9ybVZhbHVlcy5wcm9tbyk7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdwcm9tX2NsZWFuJywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ3Byb21fY2xlYW4nLCAnMScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ2xWYWx1ZSkgcGFyYW1zLmFwcGVuZCgnX2dsJywgdGhpcy5nbFZhbHVlKTtcblxuICAgICAgICBpZiAoZm9ybVZhbHVlcy5ob3RlbHMpIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkVXJsID0gYCR7dGhpcy5ob3RlbHNWYWx1ZT8udXJsfT8ke3BhcmFtcy50b1N0cmluZygpfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlZFVybCA9IGAke3RoaXMuYnV0dG9uPy51cmx9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXBwZW5kR3Vlc3RBZ2VzKHBhcmFtczogVVJMU2VhcmNoUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgaW5mYW50cywga2lkcyB9ID0gdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcztcblxuICAgICAgICBpZiAoaW5mYW50cykge1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogaW5mYW50cyB9KS5mb3JFYWNoKCgpID0+XG4gICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnZ3Vlc3RBZ2VzJywgJzAnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChraWRzPy5jb2RlQWdlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBraWRzLmNvZGVBZ2VzLmZvckVhY2goKGFnZSkgPT5cbiAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdndWVzdEFnZXMnLCBhZ2UudG9TdHJpbmcoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlXG4gICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCdlcy1FUycsIHtcbiAgICAgICAgICAgICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICctJyk7XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHRHdWVzdHNWYWx1ZSgpOiBndWVzdHNWYWx1ZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhZHVsdHNWYWx1ZToge1xuICAgICAgICAgICAgICAgIGNvZGU6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzLFxuICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmFkdWx0cykucGFkU3RhcnQoMiwgJzAnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBraWRzVmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBTdHJpbmcodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGUpLnBhZFN0YXJ0KFxuICAgICAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgICAgICAnMCdcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGFnZXM6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlQWdlcz8ubWFwKChjb2RlKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBTdHJpbmcoY29kZSkucGFkU3RhcnQoMiwgJzAnKSxcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5mYW50c1ZhbHVlOiB7XG4gICAgICAgICAgICAgICAgY29kZTogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzLFxuICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMpLnBhZFN0YXJ0KFxuICAgICAgICAgICAgICAgICAgICAyLFxuICAgICAgICAgICAgICAgICAgICAnMCdcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzYXZlRW5naW5lRGF0YShkYXRlaW4/OiBzdHJpbmcsIGRhdGVvdXQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VuZ2luZURhdGEnKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNEYXRhID0gc3RvcmVkRGF0YSA/IEpTT04ucGFyc2Uoc3RvcmVkRGF0YSkgOiB7fTtcblxuICAgICAgICBjb25zdCBlbmdpbmVEYXRhID0ge1xuICAgICAgICAgICAgcGVyaW9kX2Zyb206IGRhdGVpblxuICAgICAgICAgICAgICAgID8gZGF0ZWluLnJlcGxhY2UoLy0vZywgJy8nKVxuICAgICAgICAgICAgICAgIDogcHJldmlvdXNEYXRhLnBlcmlvZF9mcm9tLFxuICAgICAgICAgICAgcGVyaW9kX3RvOiBkYXRlb3V0XG4gICAgICAgICAgICAgICAgPyBkYXRlb3V0LnJlcGxhY2UoLy0vZywgJy8nKVxuICAgICAgICAgICAgICAgIDogcHJldmlvdXNEYXRhLnBlcmlvZF90byxcbiAgICAgICAgICAgIGFkdWx0czogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgfHwgMSxcbiAgICAgICAgICAgIGtpZHM6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlIHx8IDAsXG4gICAgICAgICAgICBiYWJpZXM6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyB8fCAwLFxuICAgICAgICB9O1xuXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2VuZ2luZURhdGEnLCBKU09OLnN0cmluZ2lmeShlbmdpbmVEYXRhKSk7XG4gICAgfVxuXG4gICAgbG9hZEVuZ2luZURhdGEoKSB7XG4gICAgICAgIGNvbnN0IHN0b3JlZERhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbmdpbmVEYXRhJyk7XG4gICAgICAgIGlmICghc3RvcmVkRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlRW5naW5lRGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25Ib3RlbHNNb2RhbERyb3Bkb3duSSB7XG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgb3B0aW9ucz86IEJhYnlsb25Ib3RlbE1vZGFsRHJvcGRvd25PcHRpb25bXTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBzbWFsbFRpdGxlPzogc3RyaW5nO1xuICAgIGVycm9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhYnlsb25Ib3RlbE1vZGFsRHJvcGRvd25PcHRpb24ge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGlja2VyPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbn1cbiIsIjxkaXYgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX193cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNsb3NlLW1vZGFsXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bl9wcmltYXJ5IGJ0bi0tbGlnaHQgYnRuLS1jbG9zZSBtbC0tMjBcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1wbHVzXCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFieWxvbl9fZW5naW5lcyBlbmdpbmUtbW9kYWxcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19oZWFkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1ucy1jZW50ZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdiYWJ5bG9uX19lbmdpbmVzX19oZWFkZXItLXBvcHVwLW9wZW4nOiBzaG93aW5nR3Vlc3RzLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0aXRsZS0tc21hbGxcIj57eyB0aXRsZSB9fTwvaDQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJ0aXRsZVwiPnt7IHN1YnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19mb3JtIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtTW9kYWxcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgIGhvdGVsc0lucHV0ICYmXG4gICAgICAgICAgICAgICAgaG90ZWxzICYmXG4gICAgICAgICAgICAgICAgaG90ZWxzLm9wdGlvbnMgJiZcbiAgICAgICAgICAgICAgICBob3RlbHMub3B0aW9ucy5sZW5ndGggPiAxXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19faW5wdXQtLXdyYXBwZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBob3RlbHNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19fZGF0ZXBpY2tlcl9faWNvbi0tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaG90ZWxzSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyLS10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUhvdGVsc0Ryb3Bkb3duKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBob3RlbHNJbnB1dCB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1hcnJvdy1ib3R0b21cIj48L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiaG90ZWxzLm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaG90ZWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJob3RlbHNQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZURyb3Bkb3duQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgI2hvdGVsc0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19fZGF0ZXBpY2tlci0td3JhcHBlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gZmxleC1ub3dyYXBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19fZGF0ZXBpY2tlcl9faWNvbi0tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ2FsZW5kYXIoKVwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGRhdGVwaWNrZXJEYXRhPy50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyLS10aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGRhdGVwaWNrZXJEYXRhPy50aXRsZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwib3BlbkNhbGVuZGFyKClcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd090aGVyTW9udGhzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD1cImRkLW1tLXl5XCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlcGlja2VyVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlPVwicmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0ZXBpY2tlckRhdGE/LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZXNcIlxuICAgICAgICAgICAgICAgICAgICBbbnVtYmVyT2ZNb250aHNdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAjZGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyX19pY29uIGJhYnlsb24tY2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoZ3Vlc3RzSW5wdXQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19faW5wdXQtLXdyYXBwZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBndWVzdHNcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2hvd2luZ0d1ZXN0cygpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2RhdGVwaWNrZXJfX2ljb24tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJndWVzdHNJbnB1dC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ3Vlc3RzVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tYXJyb3ctYm90dG9tXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzaG93aW5nR3Vlc3RzICYmIGd1ZXN0cykge1xuICAgICAgICAgICAgICAgIDxsaWItYmFieWxvbi1ndWVzdHMtcG9wdXBcbiAgICAgICAgICAgICAgICAgICAgW29ubHlBZHVsdHNdPVwib25seUFkdWx0c1wiXG4gICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwiZGVmYXVsdEd1ZXN0c1ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FkdWx0c0Ryb3Bkb3duXT1cImd1ZXN0cy5hZHVsdHNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgIFthZ2VzRHJvcGRvd25dPVwiZ3Vlc3RzLmFnZXNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgIFthZ2VzTGFiZWxdPVwiZ3Vlc3RzLmFnZXNMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtiYWJpZXNEcm9wZG93bl09XCJndWVzdHMuYmFiaWVzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICBba2lkc0Ryb3Bkb3duXT1cImd1ZXN0cy5raWRzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0FnZXNdPVwic2hvd0FnZXNcIlxuICAgICAgICAgICAgICAgICAgICBbYnRuXT1cImd1ZXN0cy5idG5cIlxuICAgICAgICAgICAgICAgICAgICAoYXBwbHkpPVwiZ3Vlc3RzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2xpYi1iYWJ5bG9uLWd1ZXN0cy1wb3B1cD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAocHJvbW9JbnB1dCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19pbnB1dC0td3JhcHBlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHByb21vLWNvZGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19fZGF0ZXBpY2tlcl9faWNvbi0tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvbW9JbnB1dC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9tb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLXRhZ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2VuZXJhdGVkVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU9XCJleHRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9jYWxsIGJ0bi0tbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlR2VuZXJhdGVkVXJsKCk7IGNsb3NlTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBidXR0b24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIDxkaXYgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVfX2Nsb3NlXCI+XG4gICAgPGFcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLWNpcmNsZSBidG4tLWxpZ2h0IGJhYnlsb24tcGx1c1wiXG4gICAgICAgIChjbGljayk9XCJjbG9zZU1vZGFsKClcIlxuICAgID48L2E+XG48L2Rpdj4gLS0+XG4iXX0=
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1lbmdpbmUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWVuZ2luZS1tb2RhbC9iYWJ5bG9uLWVuZ2luZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZW5naW5lLW1vZGFsL2JhYnlsb24tZW5naW5lLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLFVBQVUsR0FDYixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFZLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBSTdGLE9BQU8sRUFDSCwyQkFBMkIsR0FFOUIsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7OztBQW1CaEUsTUFBTSxPQUFPLDJCQUEyQjtJQStDcEMsWUFDWSxHQUFzQixFQUNiLFNBQW9ELEVBQzdELFFBQW1CO1FB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Q1osY0FBYyx1dENBQ2QsWUFBWSw2SEFDWix3QkFBd0I7OzRGQUtuQiwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNJLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ0wsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsMkJBQTJCO3dCQUMzQixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWix3QkFBd0I7cUJBQzNCO3lJQUt3QixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ2QsS0FBSztzQkFBYixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFJRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTBDLGNBQWM7c0JBQTdELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNyQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDYWxlbmRhciwgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IERyb3Bkb3duLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhYnlsb25CdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWJ1dHRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbklucHV0SSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1pbnB1dC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbkd1ZXN0VmFsdWVJIH0gZnJvbSAnLi4vYmFieWxvbi1lbmdpbmUvYmFieWxvbi1lbmdpbmUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgQmFieWxvbkd1ZXN0c1BvcHVwQ29tcG9uZW50LFxuICAgIGd1ZXN0c1ZhbHVlLFxufSBmcm9tICcuLi9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFieWxvbkd1ZXN0c1BvcHVwSSB9IGZyb20gJy4uL2JhYnlsb24tZ3Vlc3RzLXBvcHVwL2JhYnlsb24tZ3Vlc3RzLXBvcHVwLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24tZW5naW5lLW1vZGFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIENhbGVuZGFyTW9kdWxlLFxuICAgICAgICBCYWJ5bG9uR3Vlc3RzUG9wdXBDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhYnlsb24tZW5naW5lLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1lbmdpbmUtbW9kYWwuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRW5naW5lTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2RhdGVwaWNrZXInKSBkYXRlcGlja2VyITogQ2FsZW5kYXI7XG4gICAgQElucHV0KCkgbW9kYWw/OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIGRhdGVwaWNrZXJWYWx1ZSA9ICcnO1xuICAgIG1pbkRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQElucHV0KCkgZGF0ZXBpY2tlckRhdGE/OiBCYWJ5bG9uSW5wdXRJO1xuICAgIEBJbnB1dCgpIGd1ZXN0c0lucHV0PzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBwcm9tb0lucHV0PzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBidXR0b24/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSBndWVzdHM/OiBCYWJ5bG9uR3Vlc3RzUG9wdXBJO1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhbmc/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgdXJsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvZGlnbz86IHN0cmluZztcbiAgICBASW5wdXQoKSBnbFZhbHVlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9ubHlBZHVsdHM/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dBZ2VzID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2hvdGVsc0Ryb3Bkb3duJywgeyBzdGF0aWM6IGZhbHNlIH0pIGhvdGVsc0Ryb3Bkb3duITogRHJvcGRvd247XG4gICAgQElucHV0KCkgaG90ZWxzSW5wdXQ/OiBCYWJ5bG9uSW5wdXRJO1xuICAgIEBJbnB1dCgpIGhvdGVscz86IEJhYnlsb25Ib3RlbHNNb2RhbERyb3Bkb3duSTtcbiAgICBASW5wdXQoKSBob3RlbHNQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBob3RlbHNWYWx1ZTogYW55O1xuXG4gICAgZm9ybU1vZGFsID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGhvdGVsczogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgZGF0ZXM6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgZ3Vlc3RzOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIHByb21vOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgfSk7XG5cbiAgICBndWVzdHNWYWx1ZSA9ICcnO1xuICAgIGd1ZXN0c1ZhbHVlU2VwYXJhdGVzOiBCYWJ5bG9uR3Vlc3RWYWx1ZUkgPSB7XG4gICAgICAgIGFkdWx0czogMixcbiAgICAgICAga2lkczoge1xuICAgICAgICAgICAgY29kZTogMCxcbiAgICAgICAgICAgIGNvZGVBZ2VzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgICAgaW5mYW50czogMCxcbiAgICB9O1xuICAgIGdlbmVyYXRlZFVybDogc3RyaW5nID0gJyc7XG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHNob3dpbmdHdWVzdHMgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QmFieWxvbkVuZ2luZU1vZGFsQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWluRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZSA9ICcyJztcbiAgICAgICAgdGhpcy5mb3JtTW9kYWwuZ2V0KCdndWVzdHMnKT8uc2V0VmFsdWUodGhpcy5ndWVzdHNWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuZm9ybU1vZGFsLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR2VuZXJhdGVkVXJsKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlRW5naW5lRGF0YSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubG9hZEVuZ2luZURhdGEoKTtcbiAgICB9XG5cbiAgICBvcGVuQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci50b2dnbGUoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVIb3RlbHNEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaG90ZWxzRHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMuaG90ZWxzRHJvcGRvd24uc2hvdygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdGVsc1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2hvd2luZ0d1ZXN0cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93aW5nR3Vlc3RzID0gIXRoaXMuc2hvd2luZ0d1ZXN0cztcbiAgICB9XG5cbiAgICBndWVzdHNDaGFuZ2UoZGF0YTogZ3Vlc3RzVmFsdWUpIHtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgPSBOdW1iZXIoZGF0YS5hZHVsdHNWYWx1ZT8uY29kZSk7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlID0gTnVtYmVyKGRhdGEua2lkc1ZhbHVlPy5jb2RlKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGVBZ2VzID0gZGF0YS5raWRzVmFsdWU/LmFnZXM/Lm1hcChcbiAgICAgICAgICAgIChhZ2UpID0+IE51bWJlcihhZ2UuY29kZSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzID0gTnVtYmVyKGRhdGEuaW5mYW50c1ZhbHVlPy5jb2RlKTtcblxuICAgICAgICBjb25zdCB0b3RhbEd1ZXN0cyA9XG4gICAgICAgICAgICAoTnVtYmVyKGRhdGEuYWR1bHRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgPyBOdW1iZXIoZGF0YS5hZHVsdHNWYWx1ZT8uY29kZSlcbiAgICAgICAgICAgICAgICA6IDApICtcbiAgICAgICAgICAgIChOdW1iZXIoZGF0YS5raWRzVmFsdWU/LmNvZGUpID8gTnVtYmVyKGRhdGEua2lkc1ZhbHVlPy5jb2RlKSA6IDApICtcbiAgICAgICAgICAgIChOdW1iZXIoZGF0YS5pbmZhbnRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgPyBOdW1iZXIoZGF0YS5pbmZhbnRzVmFsdWU/LmNvZGUpXG4gICAgICAgICAgICAgICAgOiAwKTtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZSA9XG4gICAgICAgICAgICB0b3RhbEd1ZXN0cyA8IDEwXG4gICAgICAgICAgICAgICAgPyAnMCcgKyB0b3RhbEd1ZXN0cy50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgOiB0b3RhbEd1ZXN0cy50b1N0cmluZygpO1xuXG4gICAgICAgIHRoaXMuZm9ybU1vZGFsPy5nZXQoJ2d1ZXN0cycpPy5zZXRWYWx1ZSh0aGlzLmd1ZXN0c1ZhbHVlKTtcblxuICAgICAgICB0aGlzLnRvZ2dsZVNob3dpbmdHdWVzdHMoKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuc2F2ZUVuZ2luZURhdGEoKTtcbiAgICB9XG5cbiAgICBidG5DbGljayhlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KHRoaXMuZm9ybU1vZGFsLnZhbHVlKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVHZW5lcmF0ZWRVcmwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtTW9kYWwgfHwgIXRoaXMuYnV0dG9uPy51cmwpIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkVXJsID0gdGhpcy5idXR0b24/LnVybCB8fCAnJztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmZvcm1Nb2RhbC52YWx1ZTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuXG4gICAgICAgIGlmICh0aGlzLnVybCkge1xuICAgICAgICAgICAgY29uc3QgaXNNb2JpbGUgPVxuICAgICAgICAgICAgICAgIC9Nb2JpfEFuZHJvaWR8aVBob25lfGlQYWR8aVBvZHxXaW5kb3dzIFBob25lL2kudGVzdChcbiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBhZmZpbGlhdGUgPSBgJHt0aGlzLmNvZGlnb31fJHt0aGlzLmxhbmd9XyR7XG4gICAgICAgICAgICAgICAgaXNNb2JpbGUgPyAnbW9iaWxlJyA6ICdQQydcbiAgICAgICAgICAgIH1gO1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnYWZmaWxpYXRlJywgYWZmaWxpYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1WYWx1ZXMuZGF0ZXMpICYmIGZvcm1WYWx1ZXMuZGF0ZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICBjb25zdCBbZGF0ZWluLCBkYXRlb3V0XSA9IGZvcm1WYWx1ZXMuZGF0ZXMubWFwKChkYXRlOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKGRhdGUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2RhdGVpbicsIGRhdGVpbik7XG4gICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdkYXRlb3V0JywgZGF0ZW91dCk7XG4gICAgICAgICAgICB0aGlzLnNhdmVFbmdpbmVEYXRhKGRhdGVpbiwgZGF0ZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoXG4gICAgICAgICAgICAgICAgJ2FkdWx0b3MnLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzLnRvU3RyaW5nKClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGUpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoXG4gICAgICAgICAgICAgICAgJ2NoaWxkcmVuJyxcbiAgICAgICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZS50b1N0cmluZygpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cykge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICAgICAnYmFiaWVzJyxcbiAgICAgICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMudG9TdHJpbmcoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwZW5kR3Vlc3RBZ2VzKHBhcmFtcyk7XG5cbiAgICAgICAgaWYgKGZvcm1WYWx1ZXMucHJvbW8pIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ3Byb20nLCBmb3JtVmFsdWVzLnByb21vKTtcbiAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ3Byb21fY2xlYW4nLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgncHJvbV9jbGVhbicsICcxJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5nbFZhbHVlKSBwYXJhbXMuYXBwZW5kKCdfZ2wnLCB0aGlzLmdsVmFsdWUpO1xuXG4gICAgICAgIGlmIChmb3JtVmFsdWVzLmhvdGVscykge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRVcmwgPSBgJHt0aGlzLmhvdGVsc1ZhbHVlPy51cmx9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkVXJsID0gYCR7dGhpcy5idXR0b24/LnVybH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRHdWVzdEFnZXMocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBpbmZhbnRzLCBraWRzIH0gPSB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzO1xuXG4gICAgICAgIGlmIChpbmZhbnRzKSB7XG4gICAgICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBpbmZhbnRzIH0pLmZvckVhY2goKCkgPT5cbiAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCdndWVzdEFnZXMnLCAnMCcpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtpZHM/LmNvZGVBZ2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGtpZHMuY29kZUFnZXMuZm9yRWFjaCgoYWdlKSA9PlxuICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2d1ZXN0QWdlcycsIGFnZS50b1N0cmluZygpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGRhdGVcbiAgICAgICAgICAgIC50b0xvY2FsZURhdGVTdHJpbmcoJ2VzLUVTJywge1xuICAgICAgICAgICAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICB9XG5cbiAgICBnZXQgZGVmYXVsdEd1ZXN0c1ZhbHVlKCk6IGd1ZXN0c1ZhbHVlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFkdWx0c1ZhbHVlOiB7XG4gICAgICAgICAgICAgICAgY29kZTogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMsXG4gICAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGtpZHNWYWx1ZToge1xuICAgICAgICAgICAgICAgIGNvZGU6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcy5jb2RlLFxuICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMuY29kZSkucGFkU3RhcnQoXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgICcwJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgYWdlczogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGVBZ2VzPy5tYXAoKGNvZGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFN0cmluZyhjb2RlKS5wYWRTdGFydCgyLCAnMCcpLFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbmZhbnRzVmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMsXG4gICAgICAgICAgICAgICAgbmFtZTogU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cykucGFkU3RhcnQoXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgICcwJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNhdmVFbmdpbmVEYXRhKGRhdGVpbj86IHN0cmluZywgZGF0ZW91dD86IHN0cmluZykge1xuICAgICAgICBjb25zdCBzdG9yZWREYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW5naW5lRGF0YScpO1xuICAgICAgICBjb25zdCBwcmV2aW91c0RhdGEgPSBzdG9yZWREYXRhID8gSlNPTi5wYXJzZShzdG9yZWREYXRhKSA6IHt9O1xuXG4gICAgICAgIGNvbnN0IGVuZ2luZURhdGEgPSB7XG4gICAgICAgICAgICBwZXJpb2RfZnJvbTogZGF0ZWluXG4gICAgICAgICAgICAgICAgPyBkYXRlaW4ucmVwbGFjZSgvLS9nLCAnLycpXG4gICAgICAgICAgICAgICAgOiBwcmV2aW91c0RhdGEucGVyaW9kX2Zyb20sXG4gICAgICAgICAgICBwZXJpb2RfdG86IGRhdGVvdXRcbiAgICAgICAgICAgICAgICA/IGRhdGVvdXQucmVwbGFjZSgvLS9nLCAnLycpXG4gICAgICAgICAgICAgICAgOiBwcmV2aW91c0RhdGEucGVyaW9kX3RvLFxuICAgICAgICAgICAgYWR1bHRzOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmFkdWx0cyB8fCAxLFxuICAgICAgICAgICAga2lkczogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzLmNvZGUgfHwgMCxcbiAgICAgICAgICAgIGJhYmllczogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzIHx8IDAsXG4gICAgICAgIH07XG5cbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnZW5naW5lRGF0YScsIEpTT04uc3RyaW5naWZ5KGVuZ2luZURhdGEpKTtcbiAgICB9XG5cbiAgICBsb2FkRW5naW5lRGF0YSgpIHtcbiAgICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VuZ2luZURhdGEnKTtcbiAgICAgICAgaWYgKCFzdG9yZWREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVFbmdpbmVEYXRhKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFieWxvbkhvdGVsc01vZGFsRHJvcGRvd25JIHtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBvcHRpb25zPzogQmFieWxvbkhvdGVsTW9kYWxEcm9wZG93bk9wdGlvbltdO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHNtYWxsVGl0bGU/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFieWxvbkhvdGVsTW9kYWxEcm9wZG93bk9wdGlvbiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB0aWNrZXI/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xufVxuIiwiPGRpdiBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX3dyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtbW9kYWxcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuX3ByaW1hcnkgYnRuLS1saWdodCBidG4tLWNsb3NlIG1sLS0yMFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLXBsdXNcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzIGVuZ2luZS1tb2RhbFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2hlYWRlciBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbW5zLWNlbnRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JhYnlsb25fX2VuZ2luZXNfX2hlYWRlci0tcG9wdXAtb3Blbic6IHNob3dpbmdHdWVzdHMsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdGxlLS1zbWFsbFwiPnt7IHRpdGxlIH19PC9oND5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc3VidGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlXCI+e3sgc3VidGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2Zvcm0gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Nb2RhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgaG90ZWxzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICBob3RlbHMgJiZcbiAgICAgICAgICAgICAgICBob3RlbHMub3B0aW9ucyAmJlxuICAgICAgICAgICAgICAgIGhvdGVscy5vcHRpb25zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19pbnB1dC0td3JhcHBlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGhvdGVsc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyX19pY29uLS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChob3RlbHNJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2RhdGVwaWNrZXItLXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSG90ZWxzRHJvcGRvd24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGhvdGVsc0lucHV0IH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLWFycm93LWJvdHRvbVwiPjwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJob3RlbHMub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJob3RlbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImhvdGVsc1BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjaG90ZWxzRHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyLS13cmFwcGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LW5vd3JhcFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyX19pY29uLS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCJcbiAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoZGF0ZXBpY2tlckRhdGE/LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2RhdGVwaWNrZXItLXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ2FsZW5kYXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+e3sgZGF0ZXBpY2tlckRhdGE/LnRpdGxlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2RhdGVwaWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICAob25Gb2N1cyk9XCJvcGVuQ2FsZW5kYXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T3RoZXJNb250aHNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQtbW0teXlcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVwaWNrZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU9XCJyYW5nZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRlcGlja2VyRGF0YT8ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtudW1iZXJPZk1vbnRoc109XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICNkYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2RhdGVwaWNrZXJfX2ljb24gYmFieWxvbi1jYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChndWVzdHNJbnB1dCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19pbnB1dC0td3JhcHBlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGd1ZXN0c1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93aW5nR3Vlc3RzKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieWxvbl9fZW5naW5lc19fZGF0ZXBpY2tlcl9faWNvbi0tbGVmdFwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWVzdHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImd1ZXN0c0lucHV0LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJndWVzdHNWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1hcnJvdy1ib3R0b21cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHNob3dpbmdHdWVzdHMgJiYgZ3Vlc3RzKSB7XG4gICAgICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLWd1ZXN0cy1wb3B1cFxuICAgICAgICAgICAgICAgICAgICBbb25seUFkdWx0c109XCJvbmx5QWR1bHRzXCJcbiAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJkZWZhdWx0R3Vlc3RzVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbYWR1bHRzRHJvcGRvd25dPVwiZ3Vlc3RzLmFkdWx0c0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgW2FnZXNEcm9wZG93bl09XCJndWVzdHMuYWdlc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgW2FnZXNMYWJlbF09XCJndWVzdHMuYWdlc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2JhYmllc0Ryb3Bkb3duXT1cImd1ZXN0cy5iYWJpZXNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgIFtraWRzRHJvcGRvd25dPVwiZ3Vlc3RzLmtpZHNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93QWdlc109XCJzaG93QWdlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtidG5dPVwiZ3Vlc3RzLmJ0blwiXG4gICAgICAgICAgICAgICAgICAgIChhcHBseSk9XCJndWVzdHNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvbGliLWJhYnlsb24tZ3Vlc3RzLXBvcHVwPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChwcm9tb0lucHV0KSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2lucHV0LS13cmFwcGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHJvbW8tY29kZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWJ5bG9uX19lbmdpbmVzX19kYXRlcGlja2VyX19pY29uLS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlsb25fX2VuZ2luZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwcm9tb0lucHV0LnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb21vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhYnlsb24tdGFnXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChidXR0b24pIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZW5lcmF0ZWRVcmxcIlxuICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZT1cImV4dGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX2NhbGwgYnRuLS1saWdodFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVHZW5lcmF0ZWRVcmwoKTsgY2xvc2VNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGJ1dHRvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gPGRpdiBjbGFzcz1cImJhYnlsb25fX2VuZ2luZV9fY2xvc2VcIj5cbiAgICA8YVxuICAgICAgICBjbGFzcz1cImJ0biBidG4tY2lyY2xlIGJ0bi0tbGlnaHQgYmFieWxvbi1wbHVzXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiXG4gICAgPjwvYT5cbjwvZGl2PiAtLT5cbiJdfQ==
|