ctt-babylon 0.1.235 → 0.1.236

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.
@@ -32,12 +32,14 @@ export class BabylonColorPickerComponent {
32
32
  });
33
33
  }
34
34
  ngOnInit() {
35
- const params = new URLSearchParams(window.location.search);
36
- this.mostrarPanel = params.has('activar_panel');
37
- const storedTab = this.colorService.getStoredTab(this.tabs);
38
- this.activeTab = storedTab;
39
- this.renderer.listen('window', 'mousemove', (e) => this.onDragMove(e));
40
- this.renderer.listen('window', 'mouseup', () => this.onDragEnd());
35
+ if (isPlatformBrowser(this.platformId)) {
36
+ const params = new URLSearchParams(window.location.search);
37
+ this.mostrarPanel = params.has('activar_panel');
38
+ const storedTab = this.colorService.getStoredTab(this.tabs);
39
+ this.activeTab = storedTab;
40
+ this.renderer.listen('window', 'mousemove', (e) => this.onDragMove(e));
41
+ this.renderer.listen('window', 'mouseup', () => this.onDragEnd());
42
+ }
41
43
  }
42
44
  async login() {
43
45
  if (isPlatformBrowser(this.platformId)) {
@@ -262,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
262
264
  type: ViewChild,
263
265
  args: ['panel', { static: false }]
264
266
  }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1jb2xvci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWNvbG9yLXBpY2tlci9iYWJ5bG9uLWNvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tY29sb3ItcGlja2VyL2JhYnlsb24tY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsU0FBUyxFQUVULE1BQU0sRUFFTixXQUFXLEVBRVgsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUNYLG1CQUFtQixHQUN0QixNQUFNLGdCQUFnQixDQUFDOzs7OztBQVd4QixNQUFNLE9BQU8sMkJBQTJCO0lBd0JwQyxZQUNXLFlBQWdDLEVBQy9CLFFBQW1CLEVBQ1csVUFBa0IsRUFDaEQsRUFBZTtRQUhoQixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNXLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDaEQsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQTNCM0Isc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUd2QixzQkFBaUIsR0FBRyx5Q0FBeUMsQ0FBQztRQUM5RCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFJbkIsU0FBSSxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVELGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFdEIscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQTZDLENBQUM7UUFDeEUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUMxQyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDbkMsZUFBVSxHQUE4QixFQUFFLENBQUM7UUFFM0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQVFYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDakQsSUFDSSxLQUFLLEtBQUssSUFBSSxDQUFDLGlCQUFpQjtnQkFDaEMsUUFBUSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFDckM7Z0JBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGdCQUFnQjtvQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUN6QixDQUFDO2dCQUNGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQy9CO2lCQUFNO2dCQUNILEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2FBQzdDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sWUFBWSxHQUFHO1lBQ2pCLFNBQVM7WUFDVCxZQUFZO1lBQ1osWUFBWTtZQUNaLFFBQVE7WUFDUixTQUFTO1lBQ1QsYUFBYTtTQUNoQixDQUFDO1FBRUYsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDcEQsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUM5QixLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTt3QkFDOUIsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQ2pDLFFBQVEsQ0FBQyxlQUFlLENBQzNCOzZCQUNJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7NkJBQy9CLElBQUksRUFBRSxDQUFDO3dCQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztxQkFDN0M7aUJBQ0o7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUN6QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRztZQUNsQixPQUFPO1lBQ1AsUUFBUTtZQUNSLE9BQU87WUFDUCxNQUFNO1lBQ04sUUFBUTtTQUNYLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUU1QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVTtZQUNYLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDeEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFL0MsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWE7UUFDakIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVksRUFBRSxZQUFvQjtRQUMxQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBOEMsQ0FBQztRQUNuRSxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVuQixNQUFNLGNBQWMsR0FDaEIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDbEMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTFDLElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSywwQkFBMEIsQ0FBQztZQUN6RCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDekIsWUFBWSxFQUNaLFlBQVksRUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQ3hCLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQ3pCLFlBQVksRUFDWixLQUFLLEVBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUN4QixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLElBQVk7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFvQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7WUFDckIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFpQjtRQUM3QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdEQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQ3BCLEtBQVksRUFDWixZQUFvQjtRQUVwQixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBa0MsQ0FBQztZQUN4RCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLDBCQUEwQixDQUFDO1lBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUN6QixZQUFZLEVBQ1osS0FBSyxFQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FDeEIsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBRXpDLE1BQU0sWUFBWSxHQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWTtnQkFBRSxPQUFPLENBQUMscUNBQXFDO1lBRWhFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sRUFBRSxHQUFHLFFBQVEsYUFBYSxFQUFFLENBQUM7WUFDbkMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFBRSxPQUFPO1lBRXhDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLDRDQUE0QyxhQUFhLGVBQWUsQ0FBQztZQUNyRixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUFvQjtRQUNqQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO2lCQUNqRCxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7aUJBQzlCLElBQUksRUFBRSxDQUFDO1lBQ1osTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFdkMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLE9BQU8sQ0FDSCxHQUFHO29CQUNILEtBQUs7eUJBQ0EsS0FBSyxDQUFDLENBQUMsQ0FBQzt5QkFDUixLQUFLLENBQUMsRUFBRSxDQUFDO3lCQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNoQixDQUFDO2FBQ0w7WUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUMvRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxZQUFvQjtRQUNwQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO2lCQUNuRCxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7aUJBQzlCLElBQUksRUFBRSxDQUFDO1lBRVosTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRTlCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFFakQsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE9BQU8sQ0FDSCxHQUFHO2dCQUNILFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7Z0JBQ3pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7Z0JBQ3pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FDNUMsQ0FBQztTQUNMO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVksRUFBRSxJQUFZO1FBQ3JDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUU5QixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUVoRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25CLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxhQUFhLEtBQUssTUFBTSxFQUFFO29CQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztvQkFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUN6RCxJQUFJLENBQUMsZ0JBQWdCO3dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQy9CO2FBQ0o7U0FDSjtJQUNMLENBQUM7K0dBdFRRLDJCQUEyQiw2RUEyQnhCLFdBQVc7bUdBM0JkLDJCQUEyQix1TEMzQnhDLHlnS0FtSUEsbzFJRDdHYyxZQUFZLHlGQUFFLFdBQVcsdzJCQUFFLG1CQUFtQjs7NEZBSy9DLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxpQkFHMUMsaUJBQWlCLENBQUMsU0FBUzs7MEJBNkJyQyxNQUFNOzJCQUFDLFdBQVc7bUVBeEJnQixRQUFRO3NCQUE5QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9uSW5pdCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9yUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbG9yLXBhbmVsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWNvbG9yLXBpY2tlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhYnlsb24tY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYWJ5bG9uLWNvbG9yLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkNvbG9yUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICB1c2VyUGFuZWxJbnRlcm5hbCA9ICcnO1xuICAgIHBhc3NQYW5lbEludGVybmFsID0gJyc7XG4gICAgQFZpZXdDaGlsZCgncGFuZWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFuZWxSZWYhOiBFbGVtZW50UmVmO1xuXG4gICAgZ29vZ2xlRm9udHNBcGlLZXkgPSAnQUl6YVN5QVZienpPbUFKZnNBc2k5NTFlNjM2eW0tQUJXeTJCT01BJztcbiAgICBtb3N0cmFyUGFuZWwgPSBmYWxzZTtcbiAgICBsb2dpbkhlY2hvID0gZmFsc2U7XG4gICAgbWluaW1pemFkbyA9IGZhbHNlO1xuXG4gICAgbG9naW5Gb3JtOiBGb3JtR3JvdXA7XG5cbiAgICB0YWJzID0gWydDb2xvcmVzJywgJ1RleHRvcycsICdCb3RvbmVzJywgJ0NvbXVuZXMnLCAnT3Ryb3MnXTtcbiAgICBhY3RpdmVUYWIgPSAnQ29sb3Jlcyc7XG5cbiAgICBncm91cGVkVmFyaWFibGVzID0gbmV3IE1hcDxzdHJpbmcsIHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXT4oKTtcbiAgICBjb3BpZWRTdGF0dXMgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgICBleHBhbmRlZEdyb3VwcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvbnRWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICBkcmFnU3RhcnRYID0gMDtcbiAgICBkcmFnU3RhcnRZID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY29sb3JTZXJ2aWNlOiBDb2xvclBpY2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBlbWFpbDogWycnXSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBbJyddLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgICAgdGhpcy5tb3N0cmFyUGFuZWwgPSBwYXJhbXMuaGFzKCdhY3RpdmFyX3BhbmVsJyk7XG5cbiAgICAgICAgY29uc3Qgc3RvcmVkVGFiID0gdGhpcy5jb2xvclNlcnZpY2UuZ2V0U3RvcmVkVGFiKHRoaXMudGFicyk7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiID0gc3RvcmVkVGFiO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnbW91c2Vtb3ZlJywgKGUpID0+IHRoaXMub25EcmFnTW92ZShlKSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnbW91c2V1cCcsICgpID0+IHRoaXMub25EcmFnRW5kKCkpO1xuICAgIH1cblxuICAgIGFzeW5jIGxvZ2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHRoaXMubG9naW5Gb3JtLnZhbHVlO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVtYWlsID09PSB0aGlzLnVzZXJQYW5lbEludGVybmFsICYmXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQgPT09IHRoaXMucGFzc1BhbmVsSW50ZXJuYWxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9naW5IZWNobyA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncGFuZWwtbG9naW4tb2snLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuY29sb3JTZXJ2aWNlLmdldEFsbENTU1ZhcmlhYmxlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZFZhcmlhYmxlcyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmdyb3VwQnlDYXRlZ29yeSh2YXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29sb3JTZXJ2aWNlLmZldGNoR29vZ2xlRm9udHMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ29vZ2xlRm9udHNBcGlLZXlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5pdGlhbEZvbnRWYWx1ZXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoJ1VzdWFyaW8gbyBjb250cmFzZcOxYSBpbmNvcnJlY3RvcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0SW5pdGlhbEZvbnRWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdydXBvc0Z1ZW50ZSA9IFtcbiAgICAgICAgICAgICdUw610dWxvcycsXG4gICAgICAgICAgICAnUHJldMOtdHVsb3MnLFxuICAgICAgICAgICAgJ1N1YnTDrXR1bG9zJyxcbiAgICAgICAgICAgICdUZXh0b3MnLFxuICAgICAgICAgICAgJ0Z1ZW50ZXMnLFxuICAgICAgICAgICAgJ1RpcG9ncmFmw61hcycsXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2dyb3VwLCB2YXJpYWJsZXNdIG9mIHRoaXMuZ3JvdXBlZFZhcmlhYmxlcykge1xuICAgICAgICAgICAgICAgIGlmIChncnVwb3NGdWVudGUuaW5jbHVkZXMoZ3JvdXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2YgdmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKHZhcmlhYmxlLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvbnROYW1lID0gdGhpcy5nZXRGb250TmFtZU9ubHkoY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9udFZhbHVlc1t2YXJpYWJsZS5uYW1lXSA9IGZvbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBpc0ludGVyYWN0aXZlID0gW1xuICAgICAgICAgICAgJ0lOUFVUJyxcbiAgICAgICAgICAgICdCVVRUT04nLFxuICAgICAgICAgICAgJ0xBQkVMJyxcbiAgICAgICAgICAgICdTUEFOJyxcbiAgICAgICAgICAgICdTRUxFQ1QnLFxuICAgICAgICBdLmluY2x1ZGVzKHRhcmdldC50YWdOYW1lKTtcbiAgICAgICAgaWYgKGlzSW50ZXJhY3RpdmUgfHwgIXRoaXMucGFuZWxSZWYpIHJldHVybjtcblxuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRyYWdTdGFydFggPVxuICAgICAgICAgICAgZXZlbnQuY2xpZW50WCAtIHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgICB0aGlzLmRyYWdTdGFydFkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5wYW5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkRyYWdNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0RyYWdnaW5nIHx8ICF0aGlzLnBhbmVsUmVmKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5kcmFnU3RhcnRZO1xuXG4gICAgICAgIGNvbnN0IHBhbmVsID0gdGhpcy5wYW5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBwYW5lbC5zdHlsZS5sZWZ0ID0gYCR7eH1weGA7XG4gICAgICAgIHBhbmVsLnN0eWxlLnRvcCA9IGAke3l9cHhgO1xuICAgIH1cblxuICAgIG9uRHJhZ0VuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdG9nZ2xlR3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZEdyb3Vwcy5oYXMoZ3JvdXApKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkR3JvdXBzLmRlbGV0ZShncm91cCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkR3JvdXBzLmFkZChncm91cCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0dyb3VwRXhwYW5kZWQoZ3JvdXA6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRlZEdyb3Vwcy5oYXMoZ3JvdXApO1xuICAgIH1cblxuICAgIGlzQ29sb3IodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xvclNlcnZpY2UuaXNDb2xvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IoZXZlbnQ6IEV2ZW50LCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQ/LnZhbHVlO1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaXNGb250VmFyaWFibGUgPVxuICAgICAgICAgICAgdmFyaWFibGVOYW1lLnN0YXJ0c1dpdGgoJy0tZm9udC0nKSAmJlxuICAgICAgICAgICAgIXZhcmlhYmxlTmFtZS5pbmNsdWRlcygnLS1mb250LXNpemUnKTtcblxuICAgICAgICBpZiAoaXNGb250VmFyaWFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9udFZhbHVlc1t2YXJpYWJsZU5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICBjb25zdCBuZXdGb250VmFsdWUgPSBgJyR7dmFsdWV9JywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmYDtcbiAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmNoYW5nZUNvbG9yKFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICBuZXdGb250VmFsdWUsXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cGVkVmFyaWFibGVzXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuY2hhbmdlQ29sb3IoXG4gICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZFZhcmlhYmxlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0Q29sb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbG9yU2VydmljZS5yZXNldENvbG9ycyh0aGlzLmdyb3VwZWRWYXJpYWJsZXMpO1xuICAgIH1cblxuICAgIGNvcHlUb0NsaXBib2FyZCh2YWx1ZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHZhbHVlLCBuYW1lLCB0aGlzLmNvcGllZFN0YXR1cyk7XG4gICAgfVxuXG4gICAgd2FzQ29waWVkKHZhcmlhYmxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvcGllZFN0YXR1cy5nZXQodmFyaWFibGVOYW1lKSA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRUYWJGb3JHcm91cChncm91cDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3JTZXJ2aWNlLmdldFRhYkZvckdyb3VwKGdyb3VwKTtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmVUYWIodGFiOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BhbmVsLWVzdGlsb3MtdGFiJywgdGFiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZU1pbmltaXphZG8oKSB7XG4gICAgICAgIHRoaXMubWluaW1pemFkbyA9ICF0aGlzLm1pbmltaXphZG87XG4gICAgfVxuXG4gICAgZXhwb3J0Q1NTKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbG9yU2VydmljZS5leHBvcnRDdXN0b21WYXJpYWJsZXModGhpcy5ncm91cGVkVmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICBnZXRGb250TmFtZU9ubHkoZnVsbFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGZ1bGxWYWx1ZS5tYXRjaCgvXlsnXCJdPyhbXidcIixdKylbJ1wiXT8vKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBmdWxsVmFsdWU7XG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlRm9udFZhcmlhYmxlKFxuICAgICAgICBldmVudDogRXZlbnQsXG4gICAgICAgIHZhcmlhYmxlTmFtZTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgICAgY29uc3QgZm9udE5hbWUgPSB0YXJnZXQ/LnZhbHVlO1xuICAgICAgICAgICAgaWYgKCFmb250TmFtZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGAnJHtmb250TmFtZX0nLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWZgO1xuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuY2hhbmdlQ29sb3IoXG4gICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZFZhcmlhYmxlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZm9udFZhbHVlc1t2YXJpYWJsZU5hbWVdID0gZm9udE5hbWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzR29vZ2xlRm9udCA9XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuZ29vZ2xlRm9udHMuaW5jbHVkZXMoZm9udE5hbWUpO1xuICAgICAgICAgICAgaWYgKCFpc0dvb2dsZUZvbnQpIHJldHVybjsgLy8g4puUIE5vIGluc2VydGFyIHNpIG5vIGVzIEdvb2dsZSBGb250XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZEZvbnQgPSBmb250TmFtZS5yZXBsYWNlKC8gL2csICcrJyk7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGBmb250LSR7Zm9ybWF0dGVkRm9udH1gO1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgbGluay5pZCA9IGlkO1xuICAgICAgICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBgaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT0ke2Zvcm1hdHRlZEZvbnR9JmRpc3BsYXk9c3dhcGA7XG4gICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSAoKSA9PiBsaW5rLnJlbW92ZSgpO1xuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkQ29sb3IodmFyaWFibGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgcmF3ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUodmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICBjb25zdCBjbGVhbiA9IHJhdy5yZXBsYWNlKC9bXCInXS9nLCAnJyk7XG5cbiAgICAgICAgICAgIGlmICgvXiMoWzAtOWEtZkEtRl17M30pJC8udGVzdChjbGVhbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnIycgK1xuICAgICAgICAgICAgICAgICAgICBjbGVhblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChjKSA9PiBjICsgYylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yU2VydmljZS5pc0NvbG9yKGNsZWFuKSA/IGNsZWFuIDogJyMwMDAwMDAnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnIzAwMDAwMCc7XG4gICAgfVxuXG4gICAgZ2V0SGV4Rm9yQ29sb3JJbnB1dCh2YXJpYWJsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVxuICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKHZhcmlhYmxlTmFtZSlcbiAgICAgICAgICAgICAgICAudHJpbSgpO1xuXG4gICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgZWwuc3R5bGUuY29sb3IgPSBjb2xvcjtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsKS5jb2xvcjtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWwpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IHJlc29sdmVkLm1hdGNoKC9cXGQrL2cpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCB8fCBtYXRjaC5sZW5ndGggPCAzKSByZXR1cm4gJyMwMDAwMDAnO1xuXG4gICAgICAgICAgICBjb25zdCBbciwgZywgYl0gPSBtYXRjaDtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgJyMnICtcbiAgICAgICAgICAgICAgICBwYXJzZUludChyKS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSArXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoZykudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgICAgICAgICAgIHBhcnNlSW50KGIpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBzZXRDcmVkZW50aWFscyh1c2VyOiBzdHJpbmcsIHBhc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy51c2VyUGFuZWxJbnRlcm5hbCA9IHVzZXI7XG4gICAgICAgICAgICB0aGlzLnBhc3NQYW5lbEludGVybmFsID0gcGFzcztcblxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgICAgICAgIHRoaXMubW9zdHJhclBhbmVsID0gcGFyYW1zLmhhcygnYWN0aXZhcl9wYW5lbCcpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3N0cmFyUGFuZWwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZWRTZXNzaW9uID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncGFuZWwtbG9naW4tb2snKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVkU2Vzc2lvbiA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5IZWNobyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuY29sb3JTZXJ2aWNlLmdldEFsbENTU1ZhcmlhYmxlcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwZWRWYXJpYWJsZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuZ3JvdXBCeUNhdGVnb3J5KHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmZldGNoR29vZ2xlRm9udHModGhpcy5nb29nbGVGb250c0FwaUtleSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5pdGlhbEZvbnRWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8IS0tIE1vc3RyYXIgVE9ETyBzb2xvIHNpIG1vc3RyYXJQYW5lbCBlcyB0cnVlIC0tPlxuQGlmIChtb3N0cmFyUGFuZWwpIHtcblxuICA8IS0tIExPR0lOIFBBTkVMIC0tPlxuICBAaWYgKCFsb2dpbkhlY2hvKSB7XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwibG9naW4oKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLXBhbmVsXCI+XG4gICAgICAgIDxoMj5QYW5lbCBkZSBlc3RpbG9zPC9oMj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVXN1YXJpb1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImxvZ2luKClcIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udHJhc2XDsWFcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJsb2dpbigpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCI+RW50cmFyPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIH0gQGVsc2Uge1xuICAgIDwhLS0gRVNUSUxPIFBBTkVMIC0tPlxuICAgIDxkaXZcbiAgICAgICNwYW5lbFxuICAgICAgY2xhc3M9XCJjb2xvci1waWNrZXItcGFuZWxcIlxuICAgICAgW2NsYXNzLm1pbmltaXphZG9dPVwibWluaW1pemFkb1wiXG4gICAgICAobW91c2Vkb3duKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhlYWRlclwiPlxuICAgICAgICA8aDE+UGFuZWwgZGUgZXN0aWxvczwvaDE+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pbmltaXplLWJ0blwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1pbmltaXphZG8oKVwiXG4gICAgICAgICAgdGl0bGU9XCJNaW5pbWl6YXIvUmVzdGF1cmFyIHBhbmVsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG1pbmltaXphZG8gPyAn77yLJyA6ICfvvI0nIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIW1pbmltaXphZG8pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYnNcIj5cbiAgICAgICAgICBAZm9yICh0YWIgb2YgdGFiczsgdHJhY2sgdGFiKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlVGFiKHRhYilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB0YWIgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlc2V0LWV4cG9ydC1jb250YWluZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVzZXQtYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0Q29sb3JzKClcIj5SZXNldGVhciBlc3RpbG9zPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cG9ydC1idXR0b25cIiAoY2xpY2spPVwiZXhwb3J0Q1NTKClcIj5FeHBvcnRhciBDU1M8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3Vwcy13cmFwcGVyXCI+XG4gICAgICAgICAgQGZvciAoZ3JvdXAgb2YgZ3JvdXBlZFZhcmlhYmxlcyB8IGtleXZhbHVlOyB0cmFjayBncm91cC5rZXkpIHtcbiAgICAgICAgICAgIEBpZiAoZ2V0VGFiRm9yR3JvdXAoZ3JvdXAua2V5KSA9PT0gYWN0aXZlVGFiKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1ib3hcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtaGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUdyb3VwKGdyb3VwLmtleSlcIj5cbiAgICAgICAgICAgICAgICAgIDxoMj57eyBncm91cC5rZXkgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiIFtjbGFzcy5leHBhbmRlZF09XCJpc0dyb3VwRXhwYW5kZWQoZ3JvdXAua2V5KVwiPuKMtTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAoaXNHcm91cEV4cGFuZGVkKGdyb3VwLmtleSkpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHZhcmlhYmxlIG9mIGdyb3VwLnZhbHVlOyB0cmFjayB2YXJpYWJsZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLXBpY2tlci1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgdmFyaWFibGUubmFtZS5yZXBsYWNlKCctLScsICcnKSB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNDb2xvcih2YXJpYWJsZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0SGV4Rm9yQ29sb3JJbnB1dCh2YXJpYWJsZS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZUNvbG9yKCRldmVudCwgdmFyaWFibGUubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoWydUw610dWxvcycsICdQcmV0w610dWxvcycsICdTdWJ0w610dWxvcycsICdUZXh0b3MnLCAnRnVlbnRlcycsICdUaXBvZ3JhZsOtYXMnXS5pbmNsdWRlcyhncm91cC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvbnRWYWx1ZXNbdmFyaWFibGUubmFtZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGb250VmFyaWFibGUoJGV2ZW50LCB2YXJpYWJsZS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGdyb3VwIGxhYmVsPVwiRnVlbnRlcyBkZWwgcHJveWVjdG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZm9udCBvZiBjb2xvclNlcnZpY2UucHJvamVjdEZvbnRzOyB0cmFjayBmb250KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghWydmb250LXRpdGxlJywgJ2ZvbnQtcHJldGl0bGUnLCAnZm9udC10ZXh0JywgJ2ZvbnQtY2xhaW0nXS5pbmNsdWRlcyhmb250KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiZm9udFwiPnt7IGZvbnQgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRncm91cCBsYWJlbD1cIkdvb2dsZSBGb250c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChmb250IG9mIGNvbG9yU2VydmljZS5nb29nbGVGb250czsgdHJhY2sgZm9udCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZvbnRcIj57eyBmb250IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhcmlhYmxlLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VDb2xvcigkZXZlbnQsIHZhcmlhYmxlLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29weS1idG5cIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKHZhcmlhYmxlLnZhbHVlLCB2YXJpYWJsZS5uYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCfk4tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcC10ZXh0XCI+Q29waWFyPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAod2FzQ29waWVkKHZhcmlhYmxlLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29waWVkLW1zZ1wiPkNvcGlhZG8g4pyU77iPPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbn1cbiJdfQ==
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1jb2xvci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWNvbG9yLXBpY2tlci9iYWJ5bG9uLWNvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tY29sb3ItcGlja2VyL2JhYnlsb24tY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQ0gsU0FBUyxFQUVULE1BQU0sRUFFTixXQUFXLEVBRVgsU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0gsV0FBVyxFQUNYLG1CQUFtQixHQUN0QixNQUFNLGdCQUFnQixDQUFDOzs7OztBQVd4QixNQUFNLE9BQU8sMkJBQTJCO0lBd0JwQyxZQUNXLFlBQWdDLEVBQy9CLFFBQW1CLEVBQ1csVUFBa0IsRUFDaEQsRUFBZTtRQUhoQixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNXLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDaEQsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQTNCM0Isc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUd2QixzQkFBaUIsR0FBRyx5Q0FBeUMsQ0FBQztRQUM5RCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFJbkIsU0FB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SUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQy9CO2FBQ0o7U0FDSjtJQUNMLENBQUM7K0dBMVRRLDJCQUEyQiw2RUEyQnhCLFdBQVc7bUdBM0JkLDJCQUEyQix1TEMzQnhDLHlnS0FtSUEsbzFJRDdHYyxZQUFZLHlGQUFFLFdBQVcsdzJCQUFFLG1CQUFtQjs7NEZBSy9DLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDSSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxpQkFHMUMsaUJBQWlCLENBQUMsU0FBUzs7MEJBNkJyQyxNQUFNOzJCQUFDLFdBQVc7bUVBeEJnQixRQUFRO3NCQUE5QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9uSW5pdCxcbiAgICBQTEFURk9STV9JRCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9yUGlja2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbG9yLXBhbmVsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWNvbG9yLXBpY2tlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhYnlsb24tY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYWJ5bG9uLWNvbG9yLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkNvbG9yUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICB1c2VyUGFuZWxJbnRlcm5hbCA9ICcnO1xuICAgIHBhc3NQYW5lbEludGVybmFsID0gJyc7XG4gICAgQFZpZXdDaGlsZCgncGFuZWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFuZWxSZWYhOiBFbGVtZW50UmVmO1xuXG4gICAgZ29vZ2xlRm9udHNBcGlLZXkgPSAnQUl6YVN5QVZienpPbUFKZnNBc2k5NTFlNjM2eW0tQUJXeTJCT01BJztcbiAgICBtb3N0cmFyUGFuZWwgPSBmYWxzZTtcbiAgICBsb2dpbkhlY2hvID0gZmFsc2U7XG4gICAgbWluaW1pemFkbyA9IGZhbHNlO1xuXG4gICAgbG9naW5Gb3JtOiBGb3JtR3JvdXA7XG5cbiAgICB0YWJzID0gWydDb2xvcmVzJywgJ1RleHRvcycsICdCb3RvbmVzJywgJ0NvbXVuZXMnLCAnT3Ryb3MnXTtcbiAgICBhY3RpdmVUYWIgPSAnQ29sb3Jlcyc7XG5cbiAgICBncm91cGVkVmFyaWFibGVzID0gbmV3IE1hcDxzdHJpbmcsIHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXT4oKTtcbiAgICBjb3BpZWRTdGF0dXMgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgICBleHBhbmRlZEdyb3VwcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvbnRWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICBkcmFnU3RhcnRYID0gMDtcbiAgICBkcmFnU3RhcnRZID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY29sb3JTZXJ2aWNlOiBDb2xvclBpY2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBlbWFpbDogWycnXSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBbJyddLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICAgICAgICB0aGlzLm1vc3RyYXJQYW5lbCA9IHBhcmFtcy5oYXMoJ2FjdGl2YXJfcGFuZWwnKTtcblxuICAgICAgICAgICAgY29uc3Qgc3RvcmVkVGFiID0gdGhpcy5jb2xvclNlcnZpY2UuZ2V0U3RvcmVkVGFiKHRoaXMudGFicyk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYiA9IHN0b3JlZFRhYjtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdtb3VzZW1vdmUnLCAoZSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLm9uRHJhZ01vdmUoZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ21vdXNldXAnLCAoKSA9PiB0aGlzLm9uRHJhZ0VuZCgpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGxvZ2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHRoaXMubG9naW5Gb3JtLnZhbHVlO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVtYWlsID09PSB0aGlzLnVzZXJQYW5lbEludGVybmFsICYmXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQgPT09IHRoaXMucGFzc1BhbmVsSW50ZXJuYWxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9naW5IZWNobyA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncGFuZWwtbG9naW4tb2snLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuY29sb3JTZXJ2aWNlLmdldEFsbENTU1ZhcmlhYmxlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZFZhcmlhYmxlcyA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmdyb3VwQnlDYXRlZ29yeSh2YXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29sb3JTZXJ2aWNlLmZldGNoR29vZ2xlRm9udHMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ29vZ2xlRm9udHNBcGlLZXlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5pdGlhbEZvbnRWYWx1ZXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoJ1VzdWFyaW8gbyBjb250cmFzZcOxYSBpbmNvcnJlY3RvcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0SW5pdGlhbEZvbnRWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdydXBvc0Z1ZW50ZSA9IFtcbiAgICAgICAgICAgICdUw610dWxvcycsXG4gICAgICAgICAgICAnUHJldMOtdHVsb3MnLFxuICAgICAgICAgICAgJ1N1YnTDrXR1bG9zJyxcbiAgICAgICAgICAgICdUZXh0b3MnLFxuICAgICAgICAgICAgJ0Z1ZW50ZXMnLFxuICAgICAgICAgICAgJ1RpcG9ncmFmw61hcycsXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2dyb3VwLCB2YXJpYWJsZXNdIG9mIHRoaXMuZ3JvdXBlZFZhcmlhYmxlcykge1xuICAgICAgICAgICAgICAgIGlmIChncnVwb3NGdWVudGUuaW5jbHVkZXMoZ3JvdXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFyaWFibGUgb2YgdmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKHZhcmlhYmxlLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvbnROYW1lID0gdGhpcy5nZXRGb250TmFtZU9ubHkoY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9udFZhbHVlc1t2YXJpYWJsZS5uYW1lXSA9IGZvbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb25zdCBpc0ludGVyYWN0aXZlID0gW1xuICAgICAgICAgICAgJ0lOUFVUJyxcbiAgICAgICAgICAgICdCVVRUT04nLFxuICAgICAgICAgICAgJ0xBQkVMJyxcbiAgICAgICAgICAgICdTUEFOJyxcbiAgICAgICAgICAgICdTRUxFQ1QnLFxuICAgICAgICBdLmluY2x1ZGVzKHRhcmdldC50YWdOYW1lKTtcbiAgICAgICAgaWYgKGlzSW50ZXJhY3RpdmUgfHwgIXRoaXMucGFuZWxSZWYpIHJldHVybjtcblxuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRyYWdTdGFydFggPVxuICAgICAgICAgICAgZXZlbnQuY2xpZW50WCAtIHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgICB0aGlzLmRyYWdTdGFydFkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5wYW5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkRyYWdNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0RyYWdnaW5nIHx8ICF0aGlzLnBhbmVsUmVmKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5kcmFnU3RhcnRZO1xuXG4gICAgICAgIGNvbnN0IHBhbmVsID0gdGhpcy5wYW5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBwYW5lbC5zdHlsZS5sZWZ0ID0gYCR7eH1weGA7XG4gICAgICAgIHBhbmVsLnN0eWxlLnRvcCA9IGAke3l9cHhgO1xuICAgIH1cblxuICAgIG9uRHJhZ0VuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdG9nZ2xlR3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZEdyb3Vwcy5oYXMoZ3JvdXApKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkR3JvdXBzLmRlbGV0ZShncm91cCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkR3JvdXBzLmFkZChncm91cCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0dyb3VwRXhwYW5kZWQoZ3JvdXA6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRlZEdyb3Vwcy5oYXMoZ3JvdXApO1xuICAgIH1cblxuICAgIGlzQ29sb3IodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2xvclNlcnZpY2UuaXNDb2xvcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IoZXZlbnQ6IEV2ZW50LCB2YXJpYWJsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQ/LnZhbHVlO1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgaXNGb250VmFyaWFibGUgPVxuICAgICAgICAgICAgdmFyaWFibGVOYW1lLnN0YXJ0c1dpdGgoJy0tZm9udC0nKSAmJlxuICAgICAgICAgICAgIXZhcmlhYmxlTmFtZS5pbmNsdWRlcygnLS1mb250LXNpemUnKTtcblxuICAgICAgICBpZiAoaXNGb250VmFyaWFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9udFZhbHVlc1t2YXJpYWJsZU5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICBjb25zdCBuZXdGb250VmFsdWUgPSBgJyR7dmFsdWV9JywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmYDtcbiAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmNoYW5nZUNvbG9yKFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlTmFtZSxcbiAgICAgICAgICAgICAgICBuZXdGb250VmFsdWUsXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cGVkVmFyaWFibGVzXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuY2hhbmdlQ29sb3IoXG4gICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZFZhcmlhYmxlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2V0Q29sb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbG9yU2VydmljZS5yZXNldENvbG9ycyh0aGlzLmdyb3VwZWRWYXJpYWJsZXMpO1xuICAgIH1cblxuICAgIGNvcHlUb0NsaXBib2FyZCh2YWx1ZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHZhbHVlLCBuYW1lLCB0aGlzLmNvcGllZFN0YXR1cyk7XG4gICAgfVxuXG4gICAgd2FzQ29waWVkKHZhcmlhYmxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvcGllZFN0YXR1cy5nZXQodmFyaWFibGVOYW1lKSA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRUYWJGb3JHcm91cChncm91cDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3JTZXJ2aWNlLmdldFRhYkZvckdyb3VwKGdyb3VwKTtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmVUYWIodGFiOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiO1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BhbmVsLWVzdGlsb3MtdGFiJywgdGFiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZU1pbmltaXphZG8oKSB7XG4gICAgICAgIHRoaXMubWluaW1pemFkbyA9ICF0aGlzLm1pbmltaXphZG87XG4gICAgfVxuXG4gICAgZXhwb3J0Q1NTKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbG9yU2VydmljZS5leHBvcnRDdXN0b21WYXJpYWJsZXModGhpcy5ncm91cGVkVmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICBnZXRGb250TmFtZU9ubHkoZnVsbFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGZ1bGxWYWx1ZS5tYXRjaCgvXlsnXCJdPyhbXidcIixdKylbJ1wiXT8vKTtcbiAgICAgICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiBmdWxsVmFsdWU7XG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlRm9udFZhcmlhYmxlKFxuICAgICAgICBldmVudDogRXZlbnQsXG4gICAgICAgIHZhcmlhYmxlTmFtZTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgICAgY29uc3QgZm9udE5hbWUgPSB0YXJnZXQ/LnZhbHVlO1xuICAgICAgICAgICAgaWYgKCFmb250TmFtZSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGAnJHtmb250TmFtZX0nLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWZgO1xuICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuY2hhbmdlQ29sb3IoXG4gICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBlZFZhcmlhYmxlc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZm9udFZhbHVlc1t2YXJpYWJsZU5hbWVdID0gZm9udE5hbWU7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzR29vZ2xlRm9udCA9XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuZ29vZ2xlRm9udHMuaW5jbHVkZXMoZm9udE5hbWUpO1xuICAgICAgICAgICAgaWYgKCFpc0dvb2dsZUZvbnQpIHJldHVybjsgLy8g4puUIE5vIGluc2VydGFyIHNpIG5vIGVzIEdvb2dsZSBGb250XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZEZvbnQgPSBmb250TmFtZS5yZXBsYWNlKC8gL2csICcrJyk7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGBmb250LSR7Zm9ybWF0dGVkRm9udH1gO1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgbGluay5pZCA9IGlkO1xuICAgICAgICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBgaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT0ke2Zvcm1hdHRlZEZvbnR9JmRpc3BsYXk9c3dhcGA7XG4gICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSAoKSA9PiBsaW5rLnJlbW92ZSgpO1xuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldENvbXB1dGVkQ29sb3IodmFyaWFibGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgcmF3ID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUodmFyaWFibGVOYW1lKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG4gICAgICAgICAgICBjb25zdCBjbGVhbiA9IHJhdy5yZXBsYWNlKC9bXCInXS9nLCAnJyk7XG5cbiAgICAgICAgICAgIGlmICgvXiMoWzAtOWEtZkEtRl17M30pJC8udGVzdChjbGVhbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnIycgK1xuICAgICAgICAgICAgICAgICAgICBjbGVhblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKChjKSA9PiBjICsgYylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yU2VydmljZS5pc0NvbG9yKGNsZWFuKSA/IGNsZWFuIDogJyMwMDAwMDAnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnIzAwMDAwMCc7XG4gICAgfVxuXG4gICAgZ2V0SGV4Rm9yQ29sb3JJbnB1dCh2YXJpYWJsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVxuICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKHZhcmlhYmxlTmFtZSlcbiAgICAgICAgICAgICAgICAudHJpbSgpO1xuXG4gICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgZWwuc3R5bGUuY29sb3IgPSBjb2xvcjtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsKS5jb2xvcjtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWwpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IHJlc29sdmVkLm1hdGNoKC9cXGQrL2cpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCB8fCBtYXRjaC5sZW5ndGggPCAzKSByZXR1cm4gJyMwMDAwMDAnO1xuXG4gICAgICAgICAgICBjb25zdCBbciwgZywgYl0gPSBtYXRjaDtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgJyMnICtcbiAgICAgICAgICAgICAgICBwYXJzZUludChyKS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSArXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoZykudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykgK1xuICAgICAgICAgICAgICAgIHBhcnNlSW50KGIpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBzZXRDcmVkZW50aWFscyh1c2VyOiBzdHJpbmcsIHBhc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy51c2VyUGFuZWxJbnRlcm5hbCA9IHVzZXI7XG4gICAgICAgICAgICB0aGlzLnBhc3NQYW5lbEludGVybmFsID0gcGFzcztcblxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgICAgICAgIHRoaXMubW9zdHJhclBhbmVsID0gcGFyYW1zLmhhcygnYWN0aXZhcl9wYW5lbCcpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3N0cmFyUGFuZWwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZWRTZXNzaW9uID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgncGFuZWwtbG9naW4tb2snKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmVkU2Vzc2lvbiA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5IZWNobyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuY29sb3JTZXJ2aWNlLmdldEFsbENTU1ZhcmlhYmxlcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwZWRWYXJpYWJsZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlcnZpY2UuZ3JvdXBCeUNhdGVnb3J5KHZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JTZXJ2aWNlLmZldGNoR29vZ2xlRm9udHModGhpcy5nb29nbGVGb250c0FwaUtleSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5pdGlhbEZvbnRWYWx1ZXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8IS0tIE1vc3RyYXIgVE9ETyBzb2xvIHNpIG1vc3RyYXJQYW5lbCBlcyB0cnVlIC0tPlxuQGlmIChtb3N0cmFyUGFuZWwpIHtcblxuICA8IS0tIExPR0lOIFBBTkVMIC0tPlxuICBAaWYgKCFsb2dpbkhlY2hvKSB7XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAobmdTdWJtaXQpPVwibG9naW4oKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLXBhbmVsXCI+XG4gICAgICAgIDxoMj5QYW5lbCBkZSBlc3RpbG9zPC9oMj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVXN1YXJpb1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImxvZ2luKClcIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udHJhc2XDsWFcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJsb2dpbigpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCI+RW50cmFyPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIH0gQGVsc2Uge1xuICAgIDwhLS0gRVNUSUxPIFBBTkVMIC0tPlxuICAgIDxkaXZcbiAgICAgICNwYW5lbFxuICAgICAgY2xhc3M9XCJjb2xvci1waWNrZXItcGFuZWxcIlxuICAgICAgW2NsYXNzLm1pbmltaXphZG9dPVwibWluaW1pemFkb1wiXG4gICAgICAobW91c2Vkb3duKT1cIm9uRHJhZ1N0YXJ0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhlYWRlclwiPlxuICAgICAgICA8aDE+UGFuZWwgZGUgZXN0aWxvczwvaDE+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1pbmltaXplLWJ0blwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1pbmltaXphZG8oKVwiXG4gICAgICAgICAgdGl0bGU9XCJNaW5pbWl6YXIvUmVzdGF1cmFyIHBhbmVsXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG1pbmltaXphZG8gPyAn77yLJyA6ICfvvI0nIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIW1pbmltaXphZG8pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYnNcIj5cbiAgICAgICAgICBAZm9yICh0YWIgb2YgdGFiczsgdHJhY2sgdGFiKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2V0QWN0aXZlVGFiKHRhYilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB0YWIgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJlc2V0LWV4cG9ydC1jb250YWluZXJcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVzZXQtYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0Q29sb3JzKClcIj5SZXNldGVhciBlc3RpbG9zPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cG9ydC1idXR0b25cIiAoY2xpY2spPVwiZXhwb3J0Q1NTKClcIj5FeHBvcnRhciBDU1M8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3Vwcy13cmFwcGVyXCI+XG4gICAgICAgICAgQGZvciAoZ3JvdXAgb2YgZ3JvdXBlZFZhcmlhYmxlcyB8IGtleXZhbHVlOyB0cmFjayBncm91cC5rZXkpIHtcbiAgICAgICAgICAgIEBpZiAoZ2V0VGFiRm9yR3JvdXAoZ3JvdXAua2V5KSA9PT0gYWN0aXZlVGFiKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1ib3hcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtaGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUdyb3VwKGdyb3VwLmtleSlcIj5cbiAgICAgICAgICAgICAgICAgIDxoMj57eyBncm91cC5rZXkgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiIFtjbGFzcy5leHBhbmRlZF09XCJpc0dyb3VwRXhwYW5kZWQoZ3JvdXAua2V5KVwiPuKMtTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAoaXNHcm91cEV4cGFuZGVkKGdyb3VwLmtleSkpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHZhcmlhYmxlIG9mIGdyb3VwLnZhbHVlOyB0cmFjayB2YXJpYWJsZS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLXBpY2tlci1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgdmFyaWFibGUubmFtZS5yZXBsYWNlKCctLScsICcnKSB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNDb2xvcih2YXJpYWJsZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0SGV4Rm9yQ29sb3JJbnB1dCh2YXJpYWJsZS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZUNvbG9yKCRldmVudCwgdmFyaWFibGUubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoWydUw610dWxvcycsICdQcmV0w610dWxvcycsICdTdWJ0w610dWxvcycsICdUZXh0b3MnLCAnRnVlbnRlcycsICdUaXBvZ3JhZsOtYXMnXS5pbmNsdWRlcyhncm91cC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvbnRWYWx1ZXNbdmFyaWFibGUubmFtZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVGb250VmFyaWFibGUoJGV2ZW50LCB2YXJpYWJsZS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGdyb3VwIGxhYmVsPVwiRnVlbnRlcyBkZWwgcHJveWVjdG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZm9udCBvZiBjb2xvclNlcnZpY2UucHJvamVjdEZvbnRzOyB0cmFjayBmb250KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghWydmb250LXRpdGxlJywgJ2ZvbnQtcHJldGl0bGUnLCAnZm9udC10ZXh0JywgJ2ZvbnQtY2xhaW0nXS5pbmNsdWRlcyhmb250KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiZm9udFwiPnt7IGZvbnQgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRncm91cCBsYWJlbD1cIkdvb2dsZSBGb250c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChmb250IG9mIGNvbG9yU2VydmljZS5nb29nbGVGb250czsgdHJhY2sgZm9udCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZvbnRcIj57eyBmb250IH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0Z3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhcmlhYmxlLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VDb2xvcigkZXZlbnQsIHZhcmlhYmxlLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29weS1idG5cIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKHZhcmlhYmxlLnZhbHVlLCB2YXJpYWJsZS5uYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIPCfk4tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcC10ZXh0XCI+Q29waWFyPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAod2FzQ29waWVkKHZhcmlhYmxlLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29waWVkLW1zZ1wiPkNvcGlhZG8g4pyU77iPPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbn1cbiJdfQ==
@@ -20,14 +20,20 @@ export class BabylonHeaderBookShowComponent {
20
20
  this.platformId = inject(PLATFORM_ID);
21
21
  }
22
22
  ngOnInit() {
23
- this.checkScreen();
24
- window.addEventListener('resize', this.checkScreen.bind(this));
23
+ if (isPlatformBrowser(this.platformId)) {
24
+ this.checkScreen();
25
+ window.addEventListener('resize', this.checkScreen.bind(this));
26
+ }
25
27
  }
26
28
  ngOnDestroy() {
27
- window.removeEventListener('resize', this.checkScreen.bind(this));
29
+ if (isPlatformBrowser(this.platformId)) {
30
+ window.removeEventListener('resize', this.checkScreen.bind(this));
31
+ }
28
32
  }
29
33
  checkScreen() {
30
- this.showBtnBook.set(window.innerWidth <= this.screenBreakpoint);
34
+ if (isPlatformBrowser(this.platformId)) {
35
+ this.showBtnBook.set(window.innerWidth <= this.screenBreakpoint);
36
+ }
31
37
  }
32
38
  preventLink(linkType) {
33
39
  if (linkType.includes('internal')) {
@@ -113,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
113
119
  }], modalClick: [{
114
120
  type: Output
115
121
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1oZWFkZXItYm9vay1zaG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvYmFieWxvbi1oZWFkZXItYm9vay1zaG93L2JhYnlsb24taGVhZGVyLWJvb2stc2hvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24taGVhZGVyLWJvb2stc2hvdy9iYWJ5bG9uLWhlYWRlci1ib29rLXNob3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU83RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7OztBQWdCL0YsTUFBTSxPQUFPLDhCQUE4QjtJQXVCdkMsWUFBNkIsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBdEJuRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQVM3QixpQkFBWSxHQUFhLEtBQUssQ0FBQztRQUUvQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFFL0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWxELGdCQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFc0IsQ0FBQztJQUVoRSxRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQjtRQUN4QixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUMzQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWhELElBQUksU0FBUyxFQUFFO2dCQUNYLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDeEM7WUFDRCxJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksTUFBTSxFQUFFO2dCQUNSLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzNDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDckQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3JCO1NBQ0o7SUFDTCxDQUFDOytHQXJGUSw4QkFBOEI7bUdBQTlCLDhCQUE4Qiw4YkFINUIsQ0FBQyx3QkFBd0IsQ0FBQywwQkNsQ3pDLDhvUkEwS0EsNmh1Q0QvSVEsWUFBWSw0SEFDWixZQUFZLCtCQUNaLHdCQUF3QiwrSEFDeEIseUJBQXlCOzs0RkFPcEIsOEJBQThCO2tCQWQxQyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUM1QixhQUdVLENBQUMsd0JBQXdCLENBQUMsbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07dUZBR3RDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExvZ29UeXBlIH0gZnJvbSAnLi4vLi4vLi4vRW51bS9sb2dvLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1idXR0b24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25JbWFnZUkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taW1hZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25NZW51QnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1tZW51LWJ1dHRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbk1lbnVJbmZvSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1tZW51LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNjcmVlblNpemVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEJhYnlsb25Nb2RhbE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9iYWJ5bG9uLW1vZGFsLW1lbnUvYmFieWxvbi1tb2RhbC1tZW51LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24taGVhZGVyLWJvb2stc2hvdycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgICAgIEJhYnlsb25Nb2RhbE1lbnVDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1oZWFkZXItYm9vay1zaG93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1oZWFkZXItYm9vay1zaG93LmNvbXBvbmVudC5zY3NzJyxcbiAgICBwcm92aWRlcnM6IFtCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uSGVhZGVyQm9va1Nob3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgaGVhZGVyRml4ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2dvcz86IFJlY29yZDxMb2dvVHlwZSwgQmFieWxvbkltYWdlSSB8IHVuZGVmaW5lZD47XG4gICAgQElucHV0KCkgbGlua0xvZ28/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSBtZW51PzogQmFieWxvbk1lbnVCdXR0b25JW107XG4gICAgQElucHV0KCkgbWVudUluZm8/OiBCYWJ5bG9uTWVudUluZm9JO1xuICAgIEBJbnB1dCgpIGJ0bkJvb2s/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSBsYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5kVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaGVhZGVySW5NZW51PzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2NyZWVuQnJlYWtwb2ludDogbnVtYmVyID0gMTI3OTtcblxuICAgIEBPdXRwdXQoKSBvcGVuRW5naW5lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvcGVuTGFuZ3VhZ2VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvcGVuTmV3cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbW9kYWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgc2hvd0J0bkJvb2sgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuU2l6ZXI6IFNjcmVlblNpemVyU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrU2NyZWVuKCk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmNoZWNrU2NyZWVuLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5jaGVja1NjcmVlbi5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBjaGVja1NjcmVlbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93QnRuQm9vay5zZXQod2luZG93LmlubmVyV2lkdGggPD0gdGhpcy5zY3JlZW5CcmVha3BvaW50KTtcbiAgICB9XG5cbiAgICBwcmV2ZW50TGluayhsaW5rVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChsaW5rVHlwZS5pbmNsdWRlcygnaW50ZXJuYWwnKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGVNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgaGFtYnVyZ2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhhbWJ1cmdlcicpO1xuICAgICAgICAgICAgY29uc3QgcGFuZWxNZW51ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhbmVsX21lbnUnKTtcbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZGVyJyk7XG5cbiAgICAgICAgICAgIGlmIChoYW1idXJnZXIpIHtcbiAgICAgICAgICAgICAgICBoYW1idXJnZXIuY2xhc3NMaXN0LnRvZ2dsZSgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFuZWxNZW51KSB7XG4gICAgICAgICAgICAgICAgcGFuZWxNZW51LmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJvZHkpIHtcbiAgICAgICAgICAgICAgICBib2R5LmNsYXNzTGlzdC50b2dnbGUoJ25vX3Njcm9sbCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhlYWRlcikge1xuICAgICAgICAgICAgICAgIGhlYWRlci5jbGFzc0xpc3QudG9nZ2xlKCdoZWFkZXJfY29sb3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5MYW5ndWFnZXNNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuTGFuZ3VhZ2VzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvcGVuRW5naW5lTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbkVuZ2luZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgb3Blbk5ld3NsZXR0ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbk5ld3MuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uQW5jaG9yQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsTWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYW5lbF9tZW51Jyk7XG4gICAgICAgICAgICBpZiAocGFuZWxNZW51ICYmIHBhbmVsTWVudS5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVNZW51KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmFieWxvbi1oZWFkZXIgY3MtaGVhZGVyLWNvbXBvbmVudCBmaXhlZF9oZWFkZXJcIj5cbiAgICA8aGVhZGVyXG4gICAgICAgIGNsYXNzPVwiY3Nfc2l0ZV9oZWFkZXIgY3Nfc3R5bGVfMSBjc190cmFuc3BhcmVudF9oZWFkZXIgY3NfcHJpbWFyeV9jb2xvciBjc19zdGlja3lfaGVhZGVyIGZpeGVkX2hlYWRlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgY3NfZ2VzY291dF9zdGlja3k6IGhlYWRlckZpeGVkIH1cIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNzX21haW5faGVhZGVyXCIgaWQ9XCJoZWFkZXJCb29rU2hvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBjc19wbHJfMTAwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX21haW5faGVhZGVyX2luXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9nb3M/LmxvZ29EZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfbWFpbl9oZWFkZXJfbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGlua0xvZ28/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Nfc2l0ZV9icmFuZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtMb2dvPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGlua0xvZ28/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibG9nb3M/LmxvZ29EZXNrdG9wPy5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJsb2dvcz8ubG9nb0Rlc2t0b3A/LmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChsb2dvcz8ubG9nbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX21haW5faGVhZGVyX2xlZnRfc3RpY2t5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaW5rTG9nbz8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjc19zaXRlX2JyYW5kaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGlua0xvZ28/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJsaW5rTG9nbz8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvcz8ubG9nbz8uc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjQwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjYwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibG9nb3M/LmxvZ28/LmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfbWFpbl9oZWFkZXJfY2VudGVyIGJhYnlsb25fX2hlYWRlcl9fYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5hdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNzX25hdiBjc19mc18xMyBjc19zZW1pYm9sZCBjc19tZW51X2l0ZW1fZ2xvYmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVudS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNzX25hdl9saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAobGluayBvZiBtZW51OyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lbnUtaXRlbS1oYXMtY2hpbGRyZW4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmNoaWxkcmVuPy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGluay5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3JDbGlja2VkKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkFuY2hvckNsaWNrZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChsaW5rLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBsaW5rLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubGlua1R5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yQ2xpY2tlZCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQW5jaG9yQ2xpY2tlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19tYWluX2hlYWRlcl9yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChidG5Cb29rICYmIHNob3dCdG5Cb29rKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImJ0bkJvb2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fY2FsbCBidG4tLWxpZ2h0MVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRW5naW5lTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYnRuLWJvb2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3sgYnRuQm9vay5sYWJlbCB9fSA8L2I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobGFuZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bl9wcmltYXJ5IGJ0bi0tbGlnaHQgbWwtLTIwIGJ0bi1sYW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJidG4tbGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTGFuZ3VhZ2VzTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj57eyBsYW5nIH19PC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImhhbWJ1cmd1ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3NfaGFtYnVyZ2VyX2J0biBtbC0tMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNzX2hhbWJ1cmdlcl9idG5faW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2hlYWRlcj5cblxuICAgIEBpZiAobWVudUluZm8gJiYgbWVudSkge1xuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJiYWJ5bG9uX19tZW51XCI+XG4gICAgICAgICAgICA8bGliLWJhYnlsb24tbW9kYWwtbWVudVxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGFuZWxfbWVudVwiXG4gICAgICAgICAgICAgICAgW21lbnVdPVwibWVudVwiXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NdPVwibWVudUluZm8uYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NUaXRsZV09XCJtZW51SW5mby5hZGRyZXNzPy50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NvbnRhY3RdPVwibWVudUluZm8uY29udGFjdD8ubGlua3NcIlxuICAgICAgICAgICAgICAgIFtjb250YWN0VGl0bGVdPVwibWVudUluZm8uY29udGFjdD8udGl0bGVcIlxuICAgICAgICAgICAgICAgIFtzb2NpYWxNZWRpYV09XCJtZW51SW5mby5zb2NpYWxNZWRpYVwiXG4gICAgICAgICAgICAgICAgW2ltZ109XCJtZW51SW5mby5pbWdcIlxuICAgICAgICAgICAgICAgIFtsaW5rTG9nb109XCJsaW5rTG9nb1wiXG4gICAgICAgICAgICAgICAgW2xvZ29dPVwibG9nb3M/LmxvZ29NZW51XCJcbiAgICAgICAgICAgICAgICAoYW5jaG9yQ2xpY2tlZCk9XCJvbkFuY2hvckNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgICAgW21vZGFsRXZlbnRdPVwibW9kYWxDbGlja1wiXG4gICAgICAgICAgICAgICAgW2ltZ0JhY2tncm91bmRdPVwibWVudUluZm8uaW1nQmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgICAgW3RhZ3NdPVwibWVudUluZm8udGFnc1wiXG4gICAgICAgICAgICAgICAgW3RleHRDb2xvcnNdPVwibWVudUluZm8udGV4dENvbG9yc1wiXG4gICAgICAgICAgICA+PC9saWItYmFieWxvbi1tb2RhbC1tZW51PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgfVxuPC9kaXY+XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1oZWFkZXItYm9vay1zaG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvYmFieWxvbi1oZWFkZXItYm9vay1zaG93L2JhYnlsb24taGVhZGVyLWJvb2stc2hvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24taGVhZGVyLWJvb2stc2hvdy9iYWJ5bG9uLWhlYWRlci1ib29rLXNob3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU83RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7OztBQWdCL0YsTUFBTSxPQUFPLDhCQUE4QjtJQXVCdkMsWUFBNkIsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBdEJuRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQVM3QixpQkFBWSxHQUFhLEtBQUssQ0FBQztRQUUvQixxQkFBZ0IsR0FBVyxJQUFJLENBQUM7UUFFL0IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FB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USw4QkFBOEI7bUdBQTlCLDhCQUE4Qiw4YkFINUIsQ0FBQyx3QkFBd0IsQ0FBQywwQkNsQ3pDLDhvUkEwS0EsNmh1Q0QvSVEsWUFBWSw0SEFDWixZQUFZLCtCQUNaLHdCQUF3QiwrSEFDeEIseUJBQXlCOzs0RkFPcEIsOEJBQThCO2tCQWQxQyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3FCQUM1QixhQUdVLENBQUMsd0JBQXdCLENBQUMsbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07dUZBR3RDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExvZ29UeXBlIH0gZnJvbSAnLi4vLi4vLi4vRW51bS9sb2dvLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1idXR0b24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25JbWFnZUkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taW1hZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25NZW51QnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1tZW51LWJ1dHRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFieWxvbk1lbnVJbmZvSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvYmFieWxvbi1tZW51LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNjcmVlblNpemVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEJhYnlsb25Nb2RhbE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9iYWJ5bG9uLW1vZGFsLW1lbnUvYmFieWxvbi1tb2RhbC1tZW51LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24taGVhZGVyLWJvb2stc2hvdycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUsXG4gICAgICAgIEJhYnlsb25Nb2RhbE1lbnVDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1oZWFkZXItYm9vay1zaG93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1oZWFkZXItYm9vay1zaG93LmNvbXBvbmVudC5zY3NzJyxcbiAgICBwcm92aWRlcnM6IFtCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uSGVhZGVyQm9va1Nob3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgaGVhZGVyRml4ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsb2dvcz86IFJlY29yZDxMb2dvVHlwZSwgQmFieWxvbkltYWdlSSB8IHVuZGVmaW5lZD47XG4gICAgQElucHV0KCkgbGlua0xvZ28/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSBtZW51PzogQmFieWxvbk1lbnVCdXR0b25JW107XG4gICAgQElucHV0KCkgbWVudUluZm8/OiBCYWJ5bG9uTWVudUluZm9JO1xuICAgIEBJbnB1dCgpIGJ0bkJvb2s/OiBCYWJ5bG9uQnV0dG9uSTtcbiAgICBASW5wdXQoKSBsYW5nPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG5kVGl0bGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaGVhZGVySW5NZW51PzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2NyZWVuQnJlYWtwb2ludDogbnVtYmVyID0gMTI3OTtcblxuICAgIEBPdXRwdXQoKSBvcGVuRW5naW5lID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvcGVuTGFuZ3VhZ2VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBvcGVuTmV3cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbW9kYWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgc2hvd0J0bkJvb2sgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuU2l6ZXI6IFNjcmVlblNpemVyU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja1NjcmVlbigpO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuY2hlY2tTY3JlZW4uYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmNoZWNrU2NyZWVuLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tTY3JlZW4oKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dCdG5Cb29rLnNldCh3aW5kb3cuaW5uZXJXaWR0aCA8PSB0aGlzLnNjcmVlbkJyZWFrcG9pbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJldmVudExpbmsobGlua1R5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAobGlua1R5cGUuaW5jbHVkZXMoJ2ludGVybmFsJykpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlTWVudSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlTWVudSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbWJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oYW1idXJnZXInKTtcbiAgICAgICAgICAgIGNvbnN0IHBhbmVsTWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYW5lbF9tZW51Jyk7XG4gICAgICAgICAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWRlcicpO1xuXG4gICAgICAgICAgICBpZiAoaGFtYnVyZ2VyKSB7XG4gICAgICAgICAgICAgICAgaGFtYnVyZ2VyLmNsYXNzTGlzdC50b2dnbGUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhbmVsTWVudSkge1xuICAgICAgICAgICAgICAgIHBhbmVsTWVudS5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChib2R5KSB7XG4gICAgICAgICAgICAgICAgYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdub19zY3JvbGwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgICAgICBoZWFkZXIuY2xhc3NMaXN0LnRvZ2dsZSgnaGVhZGVyX2NvbG9yJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuTGFuZ3VhZ2VzTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbkxhbmd1YWdlcy5lbWl0KCk7XG4gICAgfVxuXG4gICAgb3BlbkVuZ2luZU1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5FbmdpbmUuZW1pdCgpO1xuICAgIH1cblxuICAgIG9wZW5OZXdzbGV0dGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5OZXdzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvbkFuY2hvckNsaWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBwYW5lbE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucGFuZWxfbWVudScpO1xuICAgICAgICAgICAgaWYgKHBhbmVsTWVudSAmJiBwYW5lbE1lbnUuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlTWVudSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJhYnlsb24taGVhZGVyIGNzLWhlYWRlci1jb21wb25lbnQgZml4ZWRfaGVhZGVyXCI+XG4gICAgPGhlYWRlclxuICAgICAgICBjbGFzcz1cImNzX3NpdGVfaGVhZGVyIGNzX3N0eWxlXzEgY3NfdHJhbnNwYXJlbnRfaGVhZGVyIGNzX3ByaW1hcnlfY29sb3IgY3Nfc3RpY2t5X2hlYWRlciBmaXhlZF9oZWFkZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGNzX2dlc2NvdXRfc3RpY2t5OiBoZWFkZXJGaXhlZCB9XCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjc19tYWluX2hlYWRlclwiIGlkPVwiaGVhZGVyQm9va1Nob3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgY3NfcGxyXzEwMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19tYWluX2hlYWRlcl9pblwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGxvZ29zPy5sb2dvRGVza3RvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX21haW5faGVhZGVyX2xlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxpbmtMb2dvPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNzX3NpdGVfYnJhbmRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rTG9nbz8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmtMb2dvPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImxvZ29zPy5sb2dvRGVza3RvcD8uc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjQwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjYwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibG9nb3M/LmxvZ29EZXNrdG9wPy5hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9nb3M/LmxvZ28pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19tYWluX2hlYWRlcl9sZWZ0X3N0aWNreVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGlua0xvZ28/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Nfc2l0ZV9icmFuZGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtMb2dvPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibGlua0xvZ28/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibG9nb3M/LmxvZ28/LnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjI0MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI2MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImxvZ29zPy5sb2dvPy5hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVudSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX21haW5faGVhZGVyX2NlbnRlciBiYWJ5bG9uX19oZWFkZXJfX2JveFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuYXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjc19uYXYgY3NfZnNfMTMgY3Nfc2VtaWJvbGQgY3NfbWVudV9pdGVtX2dsb2JhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG1lbnUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjc19uYXZfbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgbWVudTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51LWl0ZW0taGFzLWNoaWxkcmVuJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5jaGlsZHJlbj8ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImxpbmsubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmsudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yQ2xpY2tlZCk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25BbmNob3JDbGlja2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobGluay5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgbGluay5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmxpbmtUeXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS51cmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuY2hvckNsaWNrZWQpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkFuY2hvckNsaWNrZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfbWFpbl9oZWFkZXJfcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYnRuQm9vayAmJiBzaG93QnRuQm9vaygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJidG5Cb29rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX2NhbGwgYnRuLS1saWdodDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkVuZ2luZU1vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImJ0bi1ib29rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt7IGJ0bkJvb2subGFiZWwgfX0gPC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGxhbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImxhbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fcHJpbWFyeSBidG4tLWxpZ2h0IG1sLS0yMCBidG4tbGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYnRuLWxhbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbkxhbmd1YWdlc01vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3sgbGFuZyB9fTwvYj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJoYW1idXJndWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNzX2hhbWJ1cmdlcl9idG4gbWwtLTIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjc19oYW1idXJnZXJfYnRuX2luXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG5cbiAgICBAaWYgKG1lbnVJbmZvICYmIG1lbnUpIHtcbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYmFieWxvbl9fbWVudVwiPlxuICAgICAgICAgICAgPGxpYi1iYWJ5bG9uLW1vZGFsLW1lbnVcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBhbmVsX21lbnVcIlxuICAgICAgICAgICAgICAgIFttZW51XT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgIFthZGRyZXNzXT1cIm1lbnVJbmZvLmFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIFthZGRyZXNzVGl0bGVdPVwibWVudUluZm8uYWRkcmVzcz8udGl0bGVcIlxuICAgICAgICAgICAgICAgIFtjb250YWN0XT1cIm1lbnVJbmZvLmNvbnRhY3Q/LmxpbmtzXCJcbiAgICAgICAgICAgICAgICBbY29udGFjdFRpdGxlXT1cIm1lbnVJbmZvLmNvbnRhY3Q/LnRpdGxlXCJcbiAgICAgICAgICAgICAgICBbc29jaWFsTWVkaWFdPVwibWVudUluZm8uc29jaWFsTWVkaWFcIlxuICAgICAgICAgICAgICAgIFtpbWddPVwibWVudUluZm8uaW1nXCJcbiAgICAgICAgICAgICAgICBbbGlua0xvZ29dPVwibGlua0xvZ29cIlxuICAgICAgICAgICAgICAgIFtsb2dvXT1cImxvZ29zPy5sb2dvTWVudVwiXG4gICAgICAgICAgICAgICAgKGFuY2hvckNsaWNrZWQpPVwib25BbmNob3JDbGlja2VkKClcIlxuICAgICAgICAgICAgICAgIFttb2RhbEV2ZW50XT1cIm1vZGFsQ2xpY2tcIlxuICAgICAgICAgICAgICAgIFtpbWdCYWNrZ3JvdW5kXT1cIm1lbnVJbmZvLmltZ0JhY2tncm91bmRcIlxuICAgICAgICAgICAgICAgIFt0YWdzXT1cIm1lbnVJbmZvLnRhZ3NcIlxuICAgICAgICAgICAgICAgIFt0ZXh0Q29sb3JzXT1cIm1lbnVJbmZvLnRleHRDb2xvcnNcIlxuICAgICAgICAgICAgPjwvbGliLWJhYnlsb24tbW9kYWwtbWVudT5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgIH1cbjwvZGl2PlxuIl19
@@ -1,5 +1,5 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, Input, HostListener, } from '@angular/core';
1
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, HostListener, inject, Input, PLATFORM_ID, } from '@angular/core';
3
3
  import { BabylonLinkTypeDirective } from '../../../directives/link-type/link-type.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
@@ -7,6 +7,7 @@ export class BabylonSubmenuHotelComponent {
7
7
  constructor() {
8
8
  this.headerFixed = false;
9
9
  this.isDropdownOpen = false;
10
+ this.platformId = inject(PLATFORM_ID);
10
11
  }
11
12
  ngOnInit() {
12
13
  this.checkScroll();
@@ -15,8 +16,10 @@ export class BabylonSubmenuHotelComponent {
15
16
  this.checkScroll();
16
17
  }
17
18
  checkScroll() {
18
- const scrollPosition = window.scrollY;
19
- this.headerFixed = scrollPosition > 100;
19
+ if (isPlatformBrowser(this.platformId)) {
20
+ const scrollPosition = window.scrollY;
21
+ this.headerFixed = scrollPosition > 100;
22
+ }
20
23
  }
21
24
  toggleDropdown() {
22
25
  this.isDropdownOpen = !this.isDropdownOpen;
@@ -35,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
35
38
  type: HostListener,
36
39
  args: ['window:scroll', []]
37
40
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1zdWJtZW51LWhvdGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvYmFieWxvbi1zdWJtZW51LWhvdGVsL2JhYnlsb24tc3VibWVudS1ob3RlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tc3VibWVudS1ob3RlbC9iYWJ5bG9uLXN1Ym1lbnUtaG90ZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQVU3RixNQUFNLE9BQU8sNEJBQTRCO0lBUnpDO1FBWUksZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0FtQjFCO0lBakJHLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdELGNBQWM7UUFDVixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLFdBQVc7UUFDZixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9DLENBQUM7K0dBdkJRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHFNQ25CekMsMi9DQTRDQSw4MjBCRDlCYyxZQUFZLDZIQUFFLHdCQUF3Qjs7NEZBS3ZDLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDSSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHdCQUF3QixDQUFDLG1CQUdoQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFVTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24tc3VibWVudS1ob3RlbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLXN1Ym1lbnUtaG90ZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9iYWJ5bG9uLXN1Ym1lbnUtaG90ZWwuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uU3VibWVudUhvdGVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBpdGVtcz86IEJhYnlsb25CdXR0b25JW107XG4gICAgQElucHV0KCkgc2VsZWN0ZWQ/OiBCYWJ5bG9uQnV0dG9uSTtcblxuICAgIGhlYWRlckZpeGVkID0gZmFsc2U7XG4gICAgaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxuICAgIG9uV2luZG93U2Nyb2xsKCkge1xuICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1Njcm9sbCgpIHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgdGhpcy5oZWFkZXJGaXhlZCA9IHNjcm9sbFBvc2l0aW9uID4gMTAwO1xuICAgIH1cblxuICAgIHRvZ2dsZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gIXRoaXMuaXNEcm9wZG93bk9wZW47XG4gICAgfVxufVxuIiwiPHNlY3Rpb25cbiAgICBjbGFzcz1cImJhYnlsb25fX3N1Ym1lbnUtaG90ZWxcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgY3NfZ2VzY291dF9zdGlja3k6IGhlYWRlckZpeGVkLFxuICAgICAgICAnc3VibWVudS1vcGVuJzogaXNEcm9wZG93bk9wZW4sXG4gICAgfVwiXG4+XG4gICAgPCEtLSBUcmlnZ2VyIGZvciB0YWJsZXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cInN1Ym1lbnUtdHJpZ2dlclwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCI+XG4gICAgICAgIDxzcGFuPk1FTlU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGFtYnVyZ2VyLWljb25cIj5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpdGVtcykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmF2IGNsYXNzPVwic3VibWVudVwiPlxuICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIml0ZW0ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ/LmxhYmVsPy50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy5sYWJlbD8udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0/LmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L3NlY3Rpb24+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1zdWJtZW51LWhvdGVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhYnlsb24vc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvYmFieWxvbi1zdWJtZW51LWhvdGVsL2JhYnlsb24tc3VibWVudS1ob3RlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tc3VibWVudS1ob3RlbC9iYWJ5bG9uLXN1Ym1lbnUtaG90ZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBVzdGLE1BQU0sT0FBTyw0QkFBNEI7SUFSekM7UUFZSSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUVmLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FxQjVDO0lBbkJHLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdELGNBQWM7UUFDVixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQztTQUMzQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0MsQ0FBQzsrR0EzQlEsNEJBQTRCO21HQUE1Qiw0QkFBNEIscU1DckJ6QywyL0NBNENBLDgyMEJENUJjLFlBQVksNkhBQUUsd0JBQXdCOzs0RkFLdkMsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNJLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsbUJBR2hDLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQVlOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWJ5bG9uQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLXN1Ym1lbnUtaG90ZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1zdWJtZW51LWhvdGVsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vYmFieWxvbi1zdWJtZW51LWhvdGVsLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvblN1Ym1lbnVIb3RlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgaXRlbXM/OiBCYWJ5bG9uQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkPzogQmFieWxvbkJ1dHRvbkk7XG5cbiAgICBoZWFkZXJGaXhlZCA9IGZhbHNlO1xuICAgIGlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXG4gICAgb25XaW5kb3dTY3JvbGwoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrU2Nyb2xsKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyRml4ZWQgPSBzY3JvbGxQb3NpdGlvbiA+IDEwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gIXRoaXMuaXNEcm9wZG93bk9wZW47XG4gICAgfVxufVxuIiwiPHNlY3Rpb25cbiAgICBjbGFzcz1cImJhYnlsb25fX3N1Ym1lbnUtaG90ZWxcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgY3NfZ2VzY291dF9zdGlja3k6IGhlYWRlckZpeGVkLFxuICAgICAgICAnc3VibWVudS1vcGVuJzogaXNEcm9wZG93bk9wZW4sXG4gICAgfVwiXG4+XG4gICAgPCEtLSBUcmlnZ2VyIGZvciB0YWJsZXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cInN1Ym1lbnUtdHJpZ2dlclwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCI+XG4gICAgICAgIDxzcGFuPk1FTlU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaGFtYnVyZ2VyLWljb25cIj5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpdGVtcykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmF2IGNsYXNzPVwic3VibWVudVwiPlxuICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIml0ZW0ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ/LmxhYmVsPy50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtPy5sYWJlbD8udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0/LmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L3NlY3Rpb24+XG4iXX0=