ctt-babylon 0.22.110 → 0.22.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/core/babylon-he-svg-list/babylon-he-svg-list.component.mjs +12 -2
- package/esm2022/lib/components/core/babylon-webmap/babylon-webmap.component.mjs +53 -19
- package/fesm2022/ctt-babylon.mjs +63 -19
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/core/babylon-webmap/babylon-webmap.component.d.ts +5 -2
- package/package.json +1 -1
|
@@ -23,7 +23,14 @@ export class BabylonHeSvgListComponent {
|
|
|
23
23
|
if (!isPlatformBrowser(this.platformId))
|
|
24
24
|
return;
|
|
25
25
|
this.initBreadcrumbFlag();
|
|
26
|
+
// 1. Ejecución inicial sincrónica
|
|
26
27
|
this.updateHeaderSticky();
|
|
28
|
+
// 2. Ejecutar usando un pequeño delay para atrapar la restauración del scroll
|
|
29
|
+
// que hace el navegador automáticamente al recargar la página.
|
|
30
|
+
setTimeout(() => this.updateHeaderSticky(), 100);
|
|
31
|
+
// 3. Ejecutar cuando todos los recursos estáticos (imágenes del hero, etc.)
|
|
32
|
+
// hayan cargado, ya que cambian las dimensiones del DOM.
|
|
33
|
+
window.addEventListener('load', () => this.updateHeaderSticky());
|
|
27
34
|
requestAnimationFrame(() => {
|
|
28
35
|
this.updateHeaderSticky();
|
|
29
36
|
requestAnimationFrame(() => this.updateHeaderSticky());
|
|
@@ -34,7 +41,8 @@ export class BabylonHeSvgListComponent {
|
|
|
34
41
|
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
35
42
|
.subscribe(() => {
|
|
36
43
|
this.closeMenuBurger();
|
|
37
|
-
|
|
44
|
+
// Al navegar también conviene un pequeño timeout por si las vistas tardan en montar
|
|
45
|
+
setTimeout(() => this.updateHeaderSticky(), 50);
|
|
38
46
|
});
|
|
39
47
|
}
|
|
40
48
|
showMenuBurger() {
|
|
@@ -73,8 +81,10 @@ export class BabylonHeSvgListComponent {
|
|
|
73
81
|
// Usamos el hero real como referencia
|
|
74
82
|
const hero = document.querySelector('.mdl-herohome') ||
|
|
75
83
|
document.querySelector('.fake-hero');
|
|
84
|
+
// SOLUCIÓN: Si no hay hero, aplicamos al header y TAMBIÉN al body para sincronía
|
|
76
85
|
if (!hero || !this.dinamyHeader) {
|
|
77
86
|
header.classList.add('sticky');
|
|
87
|
+
document.body.classList.add('header_sticky'); // Añadido para solucionar tu problema
|
|
78
88
|
return;
|
|
79
89
|
}
|
|
80
90
|
const sentinel = document.querySelector('.sticky-sentinel');
|
|
@@ -216,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
216
226
|
type: HostListener,
|
|
217
227
|
args: ['window:scroll']
|
|
218
228
|
}] } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24taGUtc3ZnLWxpc3QvYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24taGUtc3ZnLWxpc3QvYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQVM3RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFVbkYsTUFBTSxPQUFPLHlCQUF5QjtJQTRCbEMsWUFDWSxFQUEyQixFQUNsQixNQUFpQjtRQUQxQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBN0I3QixpQkFBWSxHQUFhLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQWEsS0FBSyxDQUFDO1FBaUJwQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJbkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQU10QyxDQUFDO0lBRUosZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUVoRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUxQixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQXNCLEVBQUUsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDbkUsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBYyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JFLElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFFRCxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWdCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUVoRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFjLGdCQUFnQixDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXBCLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFHRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCx5QkFBeUI7SUFDekIsb0JBQW9CO0lBQ3BCLHlCQUF5QjtJQUVqQixrQkFBa0I7UUFDdEIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBYyxhQUFhLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFcEIseUJBQXlCO1FBQ3pCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQUUsT0FBTztRQUV0RCxzQ0FBc0M7UUFDdEMsTUFBTSxJQUFJLEdBQ04sUUFBUSxDQUFDLGFBQWEsQ0FBYyxlQUFlLENBQUM7WUFDcEQsUUFBUSxDQUFDLGFBQWEsQ0FBYyxZQUFZLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM3QixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLFFBQVEsR0FDVixRQUFRLENBQUMsYUFBYSxDQUFjLGtCQUFrQixDQUFDLENBQUM7UUFFNUQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzFDLE1BQU0sWUFBWSxHQUNkLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7WUFFaEUsMEJBQTBCO1lBQzFCLG9EQUFvRDtZQUNwRCxNQUFNO1lBQ04sd0VBQXdFO1lBQ3hFLE1BQU0sU0FBUyxHQUNYLE1BQU0sQ0FBQyxXQUFXO2dCQUNsQixRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVM7Z0JBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUztnQkFDdkIsQ0FBQyxDQUFDO1lBRU4sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7WUFDckMsTUFBTSxVQUFVLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFFekMsTUFBTSxXQUFXLEdBQ2IsVUFBVSxHQUFHLFNBQVM7Z0JBQ3RCLE9BQU8sR0FBRyxTQUFTLEdBQUcsWUFBWTtnQkFDbEMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUVwQixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNoRTtJQUNMLENBQUM7SUFFRCxvRUFBb0U7SUFDNUQsa0JBQWtCO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQWMsYUFBYSxDQUFDLENBQUM7UUFDbEUsTUFBTSxVQUFVLEdBQ1osUUFBUSxDQUFDLGFBQWEsQ0FBYyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUVuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDMUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUU7WUFDbEUsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsT0FBTztZQUNmLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1NBQ3BCLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakIsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM3RCxTQUFTLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakQsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBb0I7UUFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFckMsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUU7WUFDaEMsT0FBTyxPQUFPLENBQUM7U0FDbEI7UUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUUzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxPQUFPLENBQUM7UUFFaEMsT0FBTyxHQUFHLE9BQU8sV0FBVyxVQUFVLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNsQixPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXFCO1FBQzNCLE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFDO1FBRXBDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7K0dBL05RLHlCQUF5QjttR0FBekIseUJBQXlCLGtqQkNyQ3RDLG93cUNBMGtCQSxtenBDRDFpQmMsWUFBWSw2SEFBRSx3QkFBd0I7OzRGQUt2Qyx5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0kseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxtQkFHaEMsdUJBQXVCLENBQUMsTUFBTTt1R0FHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkF3RFAsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTG9nb1R5cGUgfSBmcm9tICcuLi8uLi8uLi9FbnVtJztcbmltcG9ydCB7XG4gICAgQmFieWxvbkJvZHlFeHRyYSxcbiAgICBCYWJ5bG9uQnV0dG9uSSxcbiAgICBCYWJ5bG9uSW1hZ2VJLFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25GbG9hdGluZ0J1dHRvbnNJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWZsb2F0aW5nLWJ1dHRvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25Ib3RlbFN0eWxlc0l0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taG90ZWwtc3R5bGVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEJhYnlsb25FbmdpbmVXaWRnZXRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2JhYnlsb24tZW5naW5lLXdpZGdldC1tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24taGUtc3ZnLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24taGUtc3ZnLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uSGVTdmdMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBkaW5hbXlIZWFkZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaG90ZWxQYWdlPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1lbnU/OiBCYWJ5bG9uQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGxvZ29zPzogUmVjb3JkPExvZ29UeXBlLCBCYWJ5bG9uSW1hZ2VJIHwgdW5kZWZpbmVkPjtcbiAgICBASW5wdXQoKSBmbG9hdGluZ0J1dHRvbnM/OiBCYWJ5bG9uRmxvYXRpbmdCdXR0b25zSTtcbiAgICBASW5wdXQoKSBsaW5rcz86IEJhYnlsb25CdXR0b25JW107XG4gICAgQElucHV0KCkgbG9jYWxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpY2tlcj86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGhvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZD86IEJhYnlsb25CdXR0b25JO1xuICAgIEBJbnB1dCgpIHN0eWxlcz86IEJhYnlsb25Ib3RlbFN0eWxlc0l0ZW07XG4gICAgQElucHV0KCkgaG90ZWxUeXBlPzogQmFieWxvbkJvZHlFeHRyYTtcbiAgICBASW5wdXQoKSBob3RlbENhdGVnb3J5PzogQmFieWxvbkJvZHlFeHRyYTtcblxuICAgIEBJbnB1dCgpIHdpZGdldENvbmZpZz86IGFueTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gICAgQE91dHB1dCgpIG9wZW5MYW5ndWFnZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9wZW5PZmZlclBvcCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBkb21PYnM/OiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIG5hdlN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1xuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5pbml0QnJlYWRjcnVtYkZsYWcoKTtcbiAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJTdGlja3koKTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJTdGlja3koKTtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnVwZGF0ZUhlYWRlclN0aWNreSgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kb21PYnMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZUhlYWRlclN0aWNreSgpKTtcbiAgICAgICAgdGhpcy5kb21PYnMub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcblxuICAgICAgICB0aGlzLm5hdlN1YiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChlKTogZSBpcyBOYXZpZ2F0aW9uRW5kID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VNZW51QnVyZ2VyKCk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd01lbnVCdXJnZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubS1idXJnZXItbWVudScpO1xuICAgICAgICBpZiAoYnVyZ2VyKSB7XG4gICAgICAgICAgICBidXJnZXIuY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycpO1xuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ292ZXJmbG93LWhpZGRlbicpO1xuICAgIH1cblxuICAgIGNsb3NlTWVudUJ1cmdlcihyZWxvYWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubS1idXJnZXItbWVudScpO1xuICAgICAgICBpZiAoIWJ1cmdlcikgcmV0dXJuO1xuXG4gICAgICAgIGJ1cmdlci5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdvdmVyZmxvdy1oaWRkZW4nKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJylcbiAgICBvbldpbmRvd1Njcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBIZWxwZXJzIHByaXZhZG9zXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJTdGlja3koKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubWRsLWhlYWRlcicpO1xuICAgICAgICBpZiAoIWhlYWRlcikgcmV0dXJuO1xuXG4gICAgICAgIC8vIFJlc3BldGFyIC5mb3JjZS1zdGlja3lcbiAgICAgICAgaWYgKGhlYWRlci5jbGFzc0xpc3QuY29udGFpbnMoJ2ZvcmNlLXN0aWNreScpKSByZXR1cm47XG5cbiAgICAgICAgLy8gVXNhbW9zIGVsIGhlcm8gcmVhbCBjb21vIHJlZmVyZW5jaWFcbiAgICAgICAgY29uc3QgaGVybyA9XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLm1kbC1oZXJvaG9tZScpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmZha2UtaGVybycpO1xuXG4gICAgICAgIGlmICghaGVybyB8fCAhdGhpcy5kaW5hbXlIZWFkZXIpIHtcbiAgICAgICAgICAgIGhlYWRlci5jbGFzc0xpc3QuYWRkKCdzdGlja3knKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbnRpbmVsID1cbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuc3RpY2t5LXNlbnRpbmVsJyk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGluYW15SGVhZGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZWN0ID0gaGVyby5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9XG4gICAgICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cbiAgICAgICAgICAgIC8vIEVzdMOhIGZ1ZXJhIGRlIHZpc3RhIHNpOlxuICAgICAgICAgICAgLy8gLSBTdSBwYXJ0ZSBkZSBhYmFqbyBxdWVkYSBwb3IgZW5jaW1hIGRlbCB2aWV3cG9ydFxuICAgICAgICAgICAgLy8gICBvXG4gICAgICAgICAgICAvLyAtIFN1IHBhcnRlIGRlIGFycmliYSBxdWVkYSBwb3IgZGViYWpvIGRlbCB2aWV3cG9ydCAoc2Nyb2xsIG11eSBhYmFqbylcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9XG4gICAgICAgICAgICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0IHx8XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8XG4gICAgICAgICAgICAgICAgMDtcblxuICAgICAgICAgICAgY29uc3QgaGVyb1RvcCA9IHJlY3QudG9wICsgc2Nyb2xsVG9wO1xuICAgICAgICAgICAgY29uc3QgaGVyb0JvdHRvbSA9IGhlcm9Ub3AgKyByZWN0LmhlaWdodDtcblxuICAgICAgICAgICAgY29uc3QgaXNPdXRPZlZpZXcgPVxuICAgICAgICAgICAgICAgIGhlcm9Cb3R0b20gPCBzY3JvbGxUb3AgfHxcbiAgICAgICAgICAgICAgICBoZXJvVG9wID4gc2Nyb2xsVG9wICsgd2luZG93SGVpZ2h0IHx8XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wID4gMjAwO1xuXG4gICAgICAgICAgICBoZWFkZXIuY2xhc3NMaXN0LnRvZ2dsZSgnc3RpY2t5JywgaXNPdXRPZlZpZXcpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoZWFkZXJfc3RpY2t5JywgaXNPdXRPZlZpZXcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEHDsWFkZSAudi1uby1ob3RlbCBhbCBicmVhZGNydW1iIHNpIGVsIGhlYWRlciBOTyBlcyBob3RlbC1jYXJkICovXG4gICAgcHJpdmF0ZSBpbml0QnJlYWRjcnVtYkZsYWcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubWRsLWhlYWRlcicpO1xuICAgICAgICBjb25zdCBicmVhZGNydW1iID1cbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubWRsLWJyZWFkY3J1bWInKTtcblxuICAgICAgICBpZiAoIWhlYWRlciB8fCAhYnJlYWRjcnVtYikgcmV0dXJuO1xuXG4gICAgICAgIGlmICghaGVhZGVyLmNsYXNzTGlzdC5jb250YWlucygnaG90ZWwtY2FyZCcpKSB7XG4gICAgICAgICAgICBicmVhZGNydW1iLmNsYXNzTGlzdC5hZGQoJ3Ytbm8taG90ZWwnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5MYW5ndWFnZXNNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuTGFuZ3VhZ2VzLmVtaXQoKTtcbiAgICB9XG5cbiAgICBvcGVuT2ZmZXJQb3B1cCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuT2ZmZXJQb3AuZW1pdCgnb2ZmZXJQb3BVcFYzJyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2U3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRvbU9icz8uZGlzY29ubmVjdCgpO1xuICAgIH1cblxuICAgIG9wZW5FbmdpbmVNb2RhbCgpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCYWJ5bG9uRW5naW5lV2lkZ2V0TW9kYWxDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwdncnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDB2dycsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAgICAgZXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UubG9jYWxlID0gdGhpcy5sb2NhbGU7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS53aWRnZXRDb25maWcgPSB0aGlzLndpZGdldENvbmZpZztcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLnRpY2tlciA9IHRoaXMudGlja2VyO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2Uuc3R5bGVzID0gdGhpcy5zdHlsZXM7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5jbG9zZSA9IGV2ZW50O1xuICAgIH1cblxuICAgIGJ1aWxkTWVudVVybChpdGVtOiBCYWJ5bG9uQnV0dG9uSSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghaXRlbT8udXJsKSByZXR1cm4gJyc7XG5cbiAgICAgICAgY29uc3QgYmFzZVVybCA9IGl0ZW0udXJsLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICAgICAgICBjb25zdCBvcmRlciA9IGl0ZW0ub3JkZXI/LnRvU3RyaW5nKCk7XG5cbiAgICAgICAgaWYgKG9yZGVyICE9PSAnMicgJiYgb3JkZXIgIT09ICczJykge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VVcmw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbCA9IChpdGVtLmxhYmVsID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgaWYgKCFsYWJlbCkgcmV0dXJuIGJhc2VVcmw7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyU2x1ZyA9IHRoaXMuY2Fub25pY2FsU2x1ZyhsYWJlbCk7XG4gICAgICAgIGlmICghZmlsdGVyU2x1ZykgcmV0dXJuIGJhc2VVcmw7XG5cbiAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9P2ZpbHRlcj0ke2ZpbHRlclNsdWd9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbm9uaWNhbFNsdWcodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzID0gVXRpbHMudG9TbHVnKHZhbHVlKTtcbiAgICAgICAgaWYgKCFzKSByZXR1cm4gJyc7XG5cbiAgICAgICAgaWYgKHMubGVuZ3RoID4gMyAmJiBzLmVuZHNXaXRoKCdlcycpKSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlID0gcy5zbGljZSgwLCAtMik7XG4gICAgICAgICAgICBpZiAoYmFzZS5lbmRzV2l0aCgnYycpKSByZXR1cm4gYmFzZS5zbGljZSgwLCAtMSkgKyAneic7XG4gICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzLmxlbmd0aCA+IDMgJiYgcy5lbmRzV2l0aCgncycpKSByZXR1cm4gcy5zbGljZSgwLCAtMSk7XG5cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZ2V0TnVtYmVyKHRleHQ6IHN0cmluZyk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIFV0aWxzLmV4dHJhY3ROdW1iZXJSYW5nZSh0ZXh0KTtcbiAgICB9XG5cbiAgICBzaG93SWZTdXAodmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXFxiKFNVUHxzdXBlcmlvcilcXGIvaTtcblxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdCh2YWx1ZSA/PyAnJykgPyAnU1VQJyA6ICcnO1xuICAgIH1cbn1cbiIsIjwhLS0gQcOxYWRpciBjbGFzZSBob3RlbC1jYXJkIHBhcmEgZmljaGEgaG90ZWwgLS0+XG48IS0tIEFsIGHDsWFkaXIgbGEgY2xhc2UgZm9yY2Utc3RpY2t5IGV2aXRhbW9zIGVsIGVmZWN0byBkZSBjYW1iaWFyIGVudHJlIHN0aWNreSBlbiBlbCBzY3JvbGwgZG93bi91cCAtLT5cbjxzZWN0aW9uIGNsYXNzPVwibWRsLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtZGwtY29udGFpbmVyXCI+XG4gICAgICAgIDwhLS0gTWVuw7ogZGVza3RvcCB5IGNvbnRlbmVkb3IgcGFyYSBsb2dvLCBpZGlvbWEgeSB1c3VhcmlvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1tZW51XCI+XG4gICAgICAgICAgICA8IS0tIEJvdMOzbiBmbG90YW50ZSBwYXJhIHJlc2VydmEgb25saW5lIC0tPlxuICAgICAgICAgICAgQGlmIChmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1jaGVja2luZy1vbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBCb29rIG5vdyBidXR0b24gLS0+XG4gICAgICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8udGV4dHNCdXR0b25zPy5ib29rdGV4dCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJvb2stY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJzdHlsZXM/LnByaW1hcnkgPz8gJyNmZjQzMzgnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkVuZ2luZU1vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJ1dHRvbiBtLWJvb2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJzdHlsZXM/LnByaW1hcnkgPz8gJyNmZjQzMzgnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyBmbG9hdGluZ0J1dHRvbnM/LnRleHRzQnV0dG9ucz8uYm9va3RleHQgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIExvZ28gLS0+XG4gICAgICAgICAgICBAaWYgKGxvZ29zKSB7XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibWVudT8uWzBdPy51cmwgPz8gJy9lcy9ob21lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJtZW51Py5bMF0/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtZW51Py5bMF0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWxvZ29cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChsb2dvcy5sb2dvRGVza3RvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibG9nb3MubG9nb0Rlc2t0b3Auc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImxvZ29zLmxvZ29EZXNrdG9wLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobG9nb3MubG9nb01lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvcy5sb2dvTWVudS5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibG9nb3MubG9nb01lbnUuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8IS0tIExpbmtzICsgTGFuZyArIHVzZXIgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1saW5rcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIExpbmtzIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAobWVudT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG1lbnU7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnVpbGRNZW51VXJsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yQ2xpY2tlZCk9XCJjbG9zZU1lbnVCdXJnZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJGluZGV4ID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbnMvaG9tZS5zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJob21lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPCEtLSBNb3RvciBzdGlja3kgLS0+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1tb3RvclwiPjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSB1c2VyICsgbGFuZyAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1idXJnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFicmlyIG1lbsO6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiYnVyZ2VyLW1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dNZW51QnVyZ2VyKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIzN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzcgMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM2LjIzMzggMEgwVjEuODE5NjNIMzYuMjMzOFYwWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzYuMjMzOCAxMC41ODU5SDBWMTIuNDA2NkgzNi4yMzM4VjEwLjU4NTlaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zNi4yMzM4IDIxLjE3OTdIMFYyMi45OTkzSDM2LjIzMzhWMjEuMTc5N1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXVzZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFicmlyIG1lbsO6IGRlIHVzdWFyaW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5PZmZlclBvcHVwKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PVwiMC43XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3Ljk0MSAxNC44NDkxQzE2LjkzOCAxMy44NDMxIDE1LjYwMiAxMy4yODkxIDE0LjE3OCAxMy4yODkxSDUuMzIxQzMuODk5IDEzLjI4OTEgMi41NjMgMTMuODQzMSAxLjU1OCAxNC44NDkxQzAuNTUyMDAxIDE1Ljg1NDEgLTAuMDAwOTk4NjQ2IDE3LjE5MDEgMS4zNTM4N2UtMDYgMTguNjEyMVYyMC44MjYxQzEuMzUzODdlLTA2IDIxLjMxOTEgMC40MDAwMDEgMjEuNzIwMSAwLjg5NDAwMSAyMS43MjAxQzEuMzg2IDIxLjcyMDEgMS43ODcgMjEuMzIwMSAxLjc4NyAyMC44MjYxVjE4LjYxMjFDMS43ODcgMTcuNjY4MSAyLjE1NSAxNi43NzkxIDIuODIzIDE2LjExMTFDMy40ODggMTUuNDQ0MSA0LjM3NiAxNS4wNzYxIDUuMzIyIDE1LjA3NjFIMTQuMThDMTUuMTI1IDE1LjA3NjEgMTYuMDEzIDE1LjQ0MzEgMTYuNjc5IDE2LjExMTFDMTcuMzQ3IDE2Ljc3NzEgMTcuNzE0IDE3LjY2NjEgMTcuNzE0IDE4LjYxMjFWMjAuODI2MUMxNy43MTQgMjEuMzE5MSAxOC4xMTQgMjEuNzIwMSAxOC42MDggMjEuNzIwMUMxOS4xIDIxLjcyMDEgMTkuNTAxIDIxLjMyMDEgMTkuNTAxIDIwLjgyNjFWMTguNjEyMUMxOS41MDEgMTcuMTkwMSAxOC45NDcgMTUuODU0MSAxNy45NDEgMTQuODQ5MVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljc1MDY5IDEwLjY0NEMxMi42ODU3IDEwLjY0NCAxNS4wNzI3IDguMjU3IDE1LjA3MjcgNS4zMjJDMTUuMDcyNyAyLjM4NyAxMi42ODU3IDAgOS43NTA2OSAwQzYuODE1NjkgMCA0LjQyOTY5IDIuMzg3IDQuNDI5NjkgNS4zMjJDNC40Mjk2OSA4LjI1NyA2LjgxNTY5IDEwLjY0NCA5Ljc1MDY5IDEwLjY0NFpNOS43NTA2OSAxLjc4NkMxMS43MDA3IDEuNzg2IDEzLjI4NjcgMy4zNzIgMTMuMjg2NyA1LjMyMkMxMy4yODY3IDcuMjcyIDExLjcwMDcgOC44NTggOS43NTA2OSA4Ljg1OEM3LjgwMTY5IDguODU4IDYuMjE1NjkgNy4yNzIgNi4yMTU2OSA1LjMyMkM2LjIxNTY5IDMuMzcyIDcuODAxNjkgMS43ODYgOS43NTA2OSAxLjc4NlpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWxhbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjY2lvbmFyIGlkaW9tYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXNyYz1cIiNpZGlvbWFzLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5MYW5ndWFnZXNNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIzIDIzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgb3BhY2l0eT1cIjAuN1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS41IDIzQzkuMjI1NTIgMjMgNy4wMDIxMSAyMi4zMjU1IDUuMTEwOTUgMjEuMDYxOUMzLjIxOTc4IDE5Ljc5ODMgMS43NDU4IDE4LjAwMjIgMC44NzUzOSAxNS45MDA5QzAuMDA0OTgyNzcgMTMuNzk5NSAtMC4yMjI3NTYgMTEuNDg3MiAwLjIyMDk3NCA5LjI1NjQ2QzAuNjY0NzA0IDcuMDI1NjggMS43NTk5NyA0Ljk3NjU4IDMuMzY4MjggMy4zNjgyOEM0Ljk3NjU4IDEuNzU5OTcgNy4wMjU2OCAwLjY2NDcwNCA5LjI1NjQ2IDAuMjIwOTc0QzExLjQ4NzIgLTAuMjIyNzU2IDEzLjc5OTUgMC4wMDQ5ODI3NyAxNS45MDA5IDAuODc1MzlDMTguMDAyMiAxLjc0NTggMTkuNzk4MyAzLjIxOTc4IDIxLjA2MTkgNS4xMTA5NUMyMi4zMjU1IDcuMDAyMTEgMjMgOS4yMjU1MiAyMyAxMS41QzIyLjk5NjYgMTQuNTQ4OSAyMS43ODM5IDE3LjQ3MiAxOS42MjggMTkuNjI4QzE3LjQ3MiAyMS43ODM5IDE0LjU0ODkgMjIuOTk2NiAxMS41IDIzWk0xMS41IDEuNjA0NjZDOS41NDI4OSAxLjYwNDY2IDcuNjI5NzIgMi4xODUwMSA2LjAwMjQ0IDMuMjcyMzJDNC4zNzUxNiA0LjM1OTY0IDMuMTA2ODUgNS45MDUwOCAyLjM1Nzg5IDcuNzEzMjJDMS42MDg5NCA5LjUyMTM1IDEuNDEyOTggMTEuNTExIDEuNzk0NzkgMTMuNDMwNUMyLjE3NjYxIDE1LjM1IDMuMTE5MDUgMTcuMTEzMiA0LjUwMjk0IDE4LjQ5NzFDNS44ODY4MiAxOS44ODEgNy42NTAwMSAyMC44MjM0IDkuNTY5NTIgMjEuMjA1MkMxMS40ODkgMjEuNTg3IDEzLjQ3ODYgMjEuMzkxMSAxNS4yODY4IDIwLjY0MjFDMTcuMDk0OSAxOS44OTMyIDE4LjY0MDQgMTguNjI0OCAxOS43Mjc3IDE2Ljk5NzZDMjAuODE1IDE1LjM3MDMgMjEuMzk1MyAxMy40NTcxIDIxLjM5NTMgMTEuNUMyMS4zOTI1IDguODc2NDYgMjAuMzQ5MSA2LjM2MTE5IDE4LjQ5MzkgNC41MDYwNkMxNi42Mzg4IDIuNjUwOTQgMTQuMTIzNSAxLjYwNzQ5IDExLjUgMS42MDQ2NlpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS40OTk0IDIzQzguMTk5MTMgMjMgNi40MTc5NyAxNy4wNzQ2IDYuNDE3OTcgMTEuNUM2LjQxNzk3IDUuOTI1NDQgOC4xOTkxMyAwIDExLjQ5OTQgMEMxNC43OTk2IDAgMTYuNTgwOCA1LjkyNTQ0IDE2LjU4MDggMTEuNUMxNi41ODA4IDE3LjA3NDYgMTQuNzk5NiAyMyAxMS40OTk0IDIzWk0xMS40OTk0IDEuNjA0NjVDOS44NTgzNCAxLjYwNDY1IDguMDIyNjIgNS44MzY2NSA4LjAyMjYyIDExLjVDOC4wMjI2MiAxNy4xNjMzIDkuODU4MzQgMjEuMzk1MyAxMS40OTk0IDIxLjM5NTNDMTMuMTQwNCAyMS4zOTUzIDE0Ljk3NjEgMTcuMTYzMyAxNC45NzYxIDExLjVDMTQuOTc2MSA1LjgzNjY1IDEzLjE0MDQgMS42MDQ2NSAxMS40OTk0IDEuNjA0NjVaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuNDk5NyA2Ljk1NDE3QzEwLjIxMyA2Ljk1MzU0IDguOTMyNjQgNi43NzM1MiA3LjY5NTYzIDYuNDE5MjlDNi4yMzIxMSA2LjAwMDgxIDQuODU1MzQgNS4zMjM2NiAzLjYzMDUxIDQuNDE5ODlDMy41MzY2MyA0LjM2MTEyIDMuNDU1OTMgNC4yODM1NSAzLjM5MzUgNC4xOTIwNkMzLjMzMTA3IDQuMTAwNTcgMy4yODgyNiAzLjk5NzE1IDMuMjY3NzYgMy44ODgzQzMuMjQ3MjcgMy43Nzk0NiAzLjI0OTUzIDMuNjY3NTQgMy4yNzQ0MSAzLjU1OTYxQzMuMjk5MjkgMy40NTE2OCAzLjM0NjI0IDMuMzUwMDcgMy40MTIzMiAzLjI2MTE4QzMuNDc4MzkgMy4xNzIyOSAzLjU2MjE2IDMuMDk4MDQgMy42NTgzNCAzLjA0MzExQzMuNzU0NTIgMi45ODgxOSAzLjg2MTAzIDIuOTUzNzcgMy45NzExNyAyLjk0MjAyQzQuMDgxMyAyLjkzMDI4IDQuMTkyNjggMi45NDE0NyA0LjI5ODI4IDIuOTc0ODhDNC40MDM4OCAzLjAwODI5IDQuNTAxNDEgMy4wNjMyMSA0LjU4NDc1IDMuMTM2MTdDNS42NTY2IDMuOTIzODggNi44NjA0MSA0LjUxNDAxIDguMTM5NTggNC44Nzg4MkMxMC4zMzcxIDUuNTA0NjUgMTIuNjY1NiA1LjUwNDY1IDE0Ljg2MzEgNC44Nzg4MkMxNi4xNDE0IDQuNTEyODUgMTcuMzQ0MSAzLjkyMTYyIDE4LjQxNDcgMy4xMzI5NkMxOC40OTkgMy4wNjYyNSAxOC41OTU5IDMuMDE3MTcgMTguNjk5NiAyLjk4ODY0QzE4LjgwMzMgMi45NjAxIDE4LjkxMTYgMi45NTI3IDE5LjAxODIgMi45NjY4N0MxOS4xMjQ4IDIuOTgxMDMgMTkuMjI3NCAzLjAxNjQ4IDE5LjMyMDEgMy4wNzExMUMxOS40MTI3IDMuMTI1NzMgMTkuNDkzNCAzLjE5ODQxIDE5LjU1NzMgMy4yODQ4NEMxOS42MjEzIDMuMzcxMjYgMTkuNjY3MyAzLjQ2OTY2IDE5LjY5MjUgMy41NzQyQzE5LjcxNzcgMy42Nzg3MyAxOS43MjE2IDMuNzg3MjYgMTkuNzA0IDMuODkzMzRDMTkuNjg2NCAzLjk5OTQzIDE5LjY0NzcgNC4xMDA4OSAxOS41OTAyIDQuMTkxNzFDMTkuNTMyNiA0LjI4MjUzIDE5LjQ1NzQgNC4zNjA4NiAxOS4zNjg5IDQuNDIyMDNDMTguMTQ0MSA1LjMyNTU2IDE2Ljc2NzMgNi4wMDIzNiAxNS4zMDM4IDYuNDIwMzZDMTQuMDY2OCA2Ljc3NDIyIDEyLjc4NjQgNi45NTM4OSAxMS40OTk3IDYuOTU0MTdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguODkxMyAyMC4wMjQ2QzE4LjcxOTggMjAuMDI0NCAxOC41NTMgMTkuOTY5MyAxOC40MTUyIDE5Ljg2NzNDMTcuMzQzNyAxOS4wNzgxIDE2LjEzOTggMTguNDg2NSAxNC44NjA0IDE4LjEyMDRDMTIuNjYyOSAxNy40OTQ1IDEwLjMzNDQgMTcuNDk0NSA4LjEzNjg5IDE4LjEyMDRDNi44NTg1NiAxOC40ODYzIDUuNjU1ODIgMTkuMDc3NiA0LjU4NTI2IDE5Ljg2NjJDNC41MDA5MyAxOS45MzI5IDQuNDA0MDYgMTkuOTgyIDQuMzAwMzggMjAuMDEwNkM0LjE5NjcxIDIwLjAzOTEgNC4wODgzNiAyMC4wNDY1IDMuOTgxNzcgMjAuMDMyM0MzLjg3NTE4IDIwLjAxODIgMy43NzI1MyAxOS45ODI3IDMuNjc5OTEgMTkuOTI4MUMzLjU4NzI5IDE5Ljg3MzUgMy41MDY1OSAxOS44MDA4IDMuNDQyNjIgMTkuNzE0NEMzLjM3ODY0IDE5LjYyNzkgMy4zMzI2OSAxOS41Mjk1IDMuMzA3NDkgMTkuNDI1QzMuMjgyMyAxOS4zMjA1IDMuMjc4MzcgMTkuMjExOSAzLjI5NTk1IDE5LjEwNThDMy4zMTM1MiAxOC45OTk4IDMuMzUyMjQgMTguODk4MyAzLjQwOTgxIDE4LjgwNzVDMy40NjczNyAxOC43MTY3IDMuNTQyNiAxOC42MzgzIDMuNjMxMDMgMTguNTc3MkM0Ljg1NTg2IDE3LjY3MzYgNi4yMzI2NCAxNi45OTY4IDcuNjk2MTUgMTYuNTc4OEMxMC4xODM3IDE1Ljg2OTYgMTIuODIgMTUuODY5NiAxNS4zMDc1IDE2LjU3ODhDMTYuNzcxMSAxNi45OTczIDE4LjE0NzggMTcuNjc0NSAxOS4zNzI3IDE4LjU3ODJDMTkuNTA4NyAxOC42Nzg1IDE5LjYwOTYgMTguODE5MiAxOS42NjA5IDE4Ljk4MDJDMTkuNzEyMSAxOS4xNDEyIDE5LjcxMTIgMTkuMzE0NCAxOS42NTgxIDE5LjQ3NDhDMTkuNjA1MSAxOS42MzUzIDE5LjUwMjcgMTkuNzc0OSAxOS4zNjU1IDE5Ljg3MzZDMTkuMjI4MyAxOS45NzIzIDE5LjA2MzUgMjAuMDI1MiAxOC44OTQ1IDIwLjAyNDZIMTguODkxM1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMi4xOTc3IDEyLjNIMC44MDIzMjVDMC41ODk1MzUgMTIuMyAwLjM4NTQ2MSAxMi4yMTU0IDAuMjM0OTk2IDEyLjA2NUMwLjA4NDUzMDUgMTEuOTE0NSAwIDExLjcxMDQgMCAxMS40OTc2QzAgMTEuMjg0OCAwLjA4NDUzMDUgMTEuMDgwOCAwLjIzNDk5NiAxMC45MzAzQzAuMzg1NDYxIDEwLjc3OTggMC41ODk1MzUgMTAuNjk1MyAwLjgwMjMyNSAxMC42OTUzSDIyLjE5NzdDMjIuNDEwNSAxMC42OTUzIDIyLjYxNDUgMTAuNzc5OCAyMi43NjUgMTAuOTMwM0MyMi45MTU1IDExLjA4MDggMjMgMTEuMjg0OCAyMyAxMS40OTc2QzIzIDExLjcxMDQgMjIuOTE1NSAxMS45MTQ1IDIyLjc2NSAxMi4wNjVDMjIuNjE0NSAxMi4yMTU0IDIyLjQxMDUgMTIuMyAyMi4xOTc3IDEyLjNaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGlja3ktc2VudGluZWxcIj48L2Rpdj5cbiAgICAgICAgPCEtLSBNZW7DuiByb2pvIHBhcmEgZmljaGEgaG90ZWwgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibS1jYXJkLWhvdGVsXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiAhaXRlbXM/Lmxlbmd0aCB9XCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwic3R5bGVzPy5wcmltYXJ5ID8/ICcjZmY0MzM4J1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoaG90ZWwpIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJpdGVtcz8uWzBdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbXM/LlswXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0taG90ZWwtbG9nb1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS10aXRsZVwiPnt7IGhvdGVsIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXN0YXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhvdGVsVHlwZT8uYm9keWV4dHJhPy5uYW1lSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsVHlwZT8uYm9keWV4dHJhPy5uYW1lSWRlbnRpZmllclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChob3RlbFR5cGU/LmJvZHlleHRyYT8ubmFtZUlkZW50aWZpZXIgPT09ICdIb3RlbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgZ2V0TnVtYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsQ2F0ZWdvcnk/LmJvZHlleHRyYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lm5hbWVJZGVudGlmaWVyID8/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTE0MDQuMDAwMDAwLCAtNTkyMi4wMDAwMDApIHRyYW5zbGF0ZSgxOTEuMDAwMDAwLCA1ODY1LjAwMDAwMCkgdHJhbnNsYXRlKDExMDkuMDAwMDAwLCA1Ny4wMDAwMDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI2ZmZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMC44XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEwIDBsMi4yOTQgNy4xMDRjLjAzNC4xMDYuMTMzLjE3OC4yNDUuMTc4TDIwIDcuMjY3bC02LjA0NiA0LjM3NHYuMDAxYy0uMDkuMDY2LS4xMjguMTgyLS4wOTMuMjg5bDIuMzIyIDcuMDk1LTYuMDMyLTQuNGMtLjA5LS4wNjUtLjIxMy0uMDY1LS4zMDMgMGwtNi4wMjkgNC40IDIuMzIyLTcuMDk1SDYuMTRjLjAzNS0uMTA3LS4wMDMtLjIyMy0uMDk0LS4yODlMMCA3LjI2OGw3LjQ2MS4wMTUuMDAxLS4wMDFjLjExMiAwIC4yMTEtLjA3Mi4yNDUtLjE3OEwxMCAwelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwNC4wMDAwMDAsIDAuMDAwMDAwKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3RlbFR5cGU/LmJvZHlleHRyYT8ubmFtZUlkZW50aWZpZXIgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBcGFydGFtZW50bycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3RlbFR5cGU/LmJvZHlleHRyYT8ubmFtZUlkZW50aWZpZXIgPT09ICdBcGFydG1lbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gb2YgZ2V0TnVtYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsQ2F0ZWdvcnk/LmJvZHlleHRyYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lm5hbWVJZGVudGlmaWVyID8/ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDIgMilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC4xNDYyOTYgNC4yNjQ3OUwxLjE0MDE1IDIuMDE2OTJDMS4zMTI4OSAxLjYyNTU5IDEuNjI1NTkgMS4zMTI4OSAyLjAxNjkyIDEuMTQwMTVMNC4yNjQ3OSAwLjE0NjI5N0M0LjU4MTc0IDAuMDA2NDE4MjYgNC45MzM1NiAtMC4wMzQzOTQ0IDUuMjc0MTIgMC4wMjkyMTI3QzUuNjE0NjcgMC4wOTI4MTk4IDUuOTI4MDUgMC4yNTc4NzYgNi4xNzMxNCAwLjUwMjczTDcuOTQ3NSAyLjI3ODM5QzguMTYwNiAyLjQ5MTU1IDguMzEzODggMi43NTcwMSA4LjM5MTk3IDMuMDQ4MTNDOC40NzAwNiAzLjMzOTI1IDguNDcwMiAzLjY0NTc4IDguMzkyMzkgMy45MzY5OEw3LjkzNTc5IDUuNjQxMDlMMTIuODY2IDEwLjU3MTNDMTIuOTA4NSAxMC42MTM2IDEyLjk0MjIgMTAuNjYzOSAxMi45NjUyIDEwLjcxOTNDMTIuOTg4MiAxMC43NzQ2IDEzIDEwLjgzNCAxMyAxMC44OTM5VjEyLjU0NDdDMTIuOTk5MyAxMi42NjUyIDEyLjk1MTEgMTIuNzgwNyAxMi44NjU5IDEyLjg2NTlDMTIuNzgwNyAxMi45NTExIDEyLjY2NTIgMTIuOTk5MyAxMi41NDQ3IDEzSDEwLjg5MzlDMTAuNzkyNiAxMi45OTk4IDEwLjY5NDIgMTIuOTY1OSAxMC42MTQyIDEyLjkwMzhDMTAuNTM0MSAxMi44NDE2IDEwLjQ3NyAxMi43NTQ3IDEwLjQ1MTYgMTIuNjU2NkwxMC4yMDQ1IDExLjY3OTZMOS4zMzAzIDExLjUxMzFDOS4yNDMyMiAxMS40OTY4IDkuMTYyODIgMTEuNDU1MyA5LjA5OTAzIDExLjM5MzhDOS4wMzUyMyAxMS4zMzIzIDguOTkwODIgMTEuMjUzNSA4Ljk3MTI3IDExLjE2NzFMOC43MzMyMSAxMC4xMTczTDcuODkwMjYgMTAuMDM2N0M3Ljc4NDc5IDEwLjAyNzQgNy42ODYwOCA5Ljk4MDggNy42MTE4OCA5LjkwNTI4TDUuNjQxMDkgNy45MzU3OUwzLjkzNjk3IDguMzkyMzlDMy42NDU4IDguNDcwNDcgMy4zMzkxOSA4LjQ3MDQ2IDMuMDQ4MDIgOC4zOTIzNkMyLjc1Njg1IDguMzE0MjYgMi40OTE0IDguMTYwODIgMi4yNzgzOSA3Ljk0NzVMMC41MDI3MjkgNi4xNzMxNEMwLjI1Nzg3NSA1LjkyODA1IDAuMDkyODIwMiA1LjYxNDY3IDAuMDI5MjEzIDUuMjc0MTJDLTAuMDM0Mzk0MyA0LjkzMzU3IDAuMDA2NDE3MjcgNC41ODE3NCAwLjE0NjI5NiA0LjI2NDc5Wk0zLjY3MDMgNS4wODk1M0MzLjgxMDYxIDUuMjI5NjggMy45ODkzMiA1LjMyNTA4IDQuMTgzODUgNS4zNjM2OUM0LjM3ODM3IDUuNDAyMjkgNC41Nzk5NyA1LjM4MjM2IDQuNzYzMTcgNS4zMDY0MUM0Ljk0NjM2IDUuMjMwNDcgNS4xMDI5NCA1LjEwMTkxIDUuMjEzMDkgNC45MzdDNS4zMjMyNCA0Ljc3MjEgNS4zODIwMyA0LjU3ODIzIDUuMzgyMDMgNC4zNzk5MUM1LjM4MjAzIDQuMTgxNiA1LjMyMzI0IDMuOTg3NzMgNS4yMTMwOSAzLjgyMjgzQzUuMTAyOTQgMy42NTc5MiA0Ljk0NjM2IDMuNTI5MzYgNC43NjMxNyAzLjQ1MzQyQzQuNTc5OTcgMy4zNzc0NyA0LjM3ODM3IDMuMzU3NTQgNC4xODM4NSAzLjM5NjE0QzMuOTg5MzIgMy40MzQ3NSAzLjgxMDYxIDMuNTMwMTUgMy42NzAzIDMuNjcwM0MzLjU3Njg5IDMuNzYzMzYgMy41MDI3NyAzLjg3Mzk1IDMuNDUyMTkgMy45OTU3MkMzLjQwMTYyIDQuMTE3NSAzLjM3NTU4IDQuMjQ4MDYgMy4zNzU1OCA0LjM3OTkxQzMuMzc1NTggNC41MTE3NyAzLjQwMTYyIDQuNjQyMzMgMy40NTIxOSA0Ljc2NDExQzMuNTAyNzcgNC44ODU4OCAzLjU3Njg5IDQuOTk2NDcgMy42NzAzIDUuMDg5NTNaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjAuOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXRpdGxlLXN1cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dJZlN1cChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsQ2F0ZWdvcnk/LmJvZHlleHRyYT8ubmFtZUlkZW50aWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1ob3RlbC1zdWJtZW51c1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1zdWJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm0tb3B0aW9uc21vYmlsZVwiPlxuICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgQGlmIChmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1jaGVja2luZy1vbmxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWNoZWNraW5nLW9ubGluZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cIm0tbWVudW1vYmlsZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQWJyaXIgbWVuw7pcIlxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJidXJnZXItbWVudVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd01lbnVCdXJnZXIoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoZmxvYXRpbmdCdXR0b25zPy50ZXh0c0J1dHRvbnM/Lm1lbnVUZXh0KSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgZmxvYXRpbmdCdXR0b25zPy50ZXh0c0J1dHRvbnM/Lm1lbnVUZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+LTwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgIHdpZHRoPVwiMzdcIlxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjIzXCJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDM3IDIzXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGcgb3BhY2l0eT1cIjAuN1wiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTM2LjIzMzggMEgwVjEuODE5NjNIMzYuMjMzOFYwWlwiIGZpbGw9XCIjNTE1MDUwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzYuMjMzOCAxMC41ODU5SDBWMTIuNDA2NkgzNi4yMzM4VjEwLjU4NTlaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzYuMjMzOCAyMS4xNzk3SDBWMjIuOTk5M0gzNi4yMzM4VjIxLjE3OTdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgQGlmIChmbG9hdGluZ0J1dHRvbnM/LnRleHRzQnV0dG9ucz8uYm9va3RleHQpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJvb2ttb2JpbGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRW5naW5lTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJzdHlsZXM/LnByaW1hcnkgPz8gJyNmZjQzMzgnXCJcbiAgICAgICAgICAgICAgICA+e3sgZmxvYXRpbmdCdXR0b25zPy50ZXh0c0J1dHRvbnM/LmJvb2t0ZXh0IH19PC9hXG4gICAgICAgICAgICA+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgaWQ9XCJidXJnZXItbWVudVwiIGNsYXNzPVwibS1idXJnZXItbWVudVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNlcnJhciBtZW7DulwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd01lbnVCdXJnZXIoKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgY29sb3I6IHN0eWxlcyA9PT0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoc3R5bGVzPy5wcmltYXJ5ICYmIGhvdGVsICYmIGl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxM1wiXG4gICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTQgMTNcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS4zMzY3NyAwLjczOTQwM0MxLjUxOTM3IDAuNTU3NzMgMS43NjY5NiAwLjQ1NTYyOCAyLjAyNDU0IDAuNDU2Mjg0QzIuMjgyMDIgMC40NTY5NzUgMi41Mjg2MSAwLjU2MDM2MiAyLjcxMDI0IDAuNzQyODU2TDcuMDg1NDYgNS4xNDAxOEwxMS40MzQ0IDAuNzQwMDk0QzExLjYxNiAwLjU1NzU2NSAxMS44NjI3IDAuNDU0MjYgMTIuMTIwMSAwLjQ1MzUyMkMxMi4zNzc3IDAuNDUyODY1IDEyLjYyNTMgMC41NTQ5NjggMTIuODA3OSAwLjczNjY0MUMxMi45OTA0IDAuOTE4MjgyIDEzLjA5MzggMS4xNjQ4NCAxMy4wOTQ1IDEuNDIyMzRDMTMuMDk1MSAxLjY3OTkyIDEyLjk5MyAxLjkyNzUxIDEyLjgxMTQgMi4xMTAxMUw4LjM1MjU5IDYuNTkwOTlMMTIuNzQwOSAxMS4wMDE0QzEyLjkyMjYgMTEuMTg0IDEzLjAyNDcgMTEuNDMxNyAxMy4wMjQxIDExLjY4OTJDMTMuMDIzNCAxMS45NDY3IDEyLjkxOTkgMTIuMTkzMyAxMi43Mzc1IDEyLjM3NDlDMTIuNTU0OSAxMi41NTY2IDEyLjMwNzMgMTIuNjU4NyAxMi4wNDk3IDEyLjY1OEMxMS43OTIyIDEyLjY1NzMgMTEuNTQ1NiAxMi41NTQgMTEuMzY0IDEyLjM3MTRMNi45ODk0OCA3Ljk3NDgyTDIuNjQwNSAxMi4zNzQ5QzIuNDU4ODUgMTIuNTU3NSAyLjIxMTY0IDEyLjY2MDEgMS45NTQxMSAxMi42NjA4QzEuNjk2NjMgMTIuNjYxNCAxLjQ0OTYgMTIuNTU5OSAxLjI2NzAyIDEyLjM3ODRDMS4wODQ0OSAxMi4xOTY3IDAuOTgxMTggMTEuOTUwMSAwLjk4MDQ1MyAxMS42OTI3QzAuOTc5Nzk3IDExLjQzNTEgMS4wODE5IDExLjE4NzUgMS4yNjM1NyAxMS4wMDQ5TDUuNzIwOTcgNi41MjQwMUwxLjMzMzMyIDIuMTEyODhDMS4xNTE3NyAxLjkzMDM3IDEuMDUwMzMgMS42ODMyMSAxLjA1MDg5IDEuNDI1NzlDMS4wNTE1NCAxLjE2ODI1IDEuMTU0MjIgMC45MjEwNjkgMS4zMzY3NyAwLjczOTQwM1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJzdHlsZXM/LnByaW1hcnkgPz8gJyNmZmYnXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29ucy9jbG9zZS1zbWFsbC5zdmdcIlxuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJjbG9zZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgQGlmIChzdHlsZXM/LnByaW1hcnkgJiYgaG90ZWwgJiYgaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFja2dyb3VuZC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwic3R5bGVzPy5wcmltYXJ5ID8/ICcjZmY0MzM4J1wiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICBAaWYgKGxvZ29zPy5sb2dvTWVudSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibWVudT8uWzBdPy51cmwgPz8gJy9lcy9ob21lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwibWVudT8uWzBdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1lbnU/LlswXT8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz8ucHJpbWFyeSAmJiBob3RlbCAmJiBpdGVtcz8ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibG9nb3M/LmxvZ29NZW51Py5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibG9nb3M/LmxvZ29NZW51Py5hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGhvdGVsICYmIGl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbXM/LlswXT8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbXM/LlswXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXRpdGxlXCI+e3sgaG90ZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGhvdGVsICYmIGl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1saW5rcyBob3RlbC1tZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWxpbmtzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiaXRlbS5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1zdWJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0ubGFiZWwgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIm1lbnU/LlswXT8udXJsID8/ICcvZXMvaG9tZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJtZW51Py5bMF0/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1lbnU/LlswXT8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1sb2dvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS1ob3Zlci1jb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzPy5wcmltYXJ5SG92ZXIgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzPy5wcmltYXJ5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZWQzYjM3J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVudT8uWzBdPy5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvcz8ubG9nb01lbnU/LnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibG9nb3M/LmxvZ29NZW51Py5hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChtZW51Py5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsICYmIGl0ZW1zPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdtLWxpbmtzIG1lbnUtZ2VuZXJhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdtLWxpbmtzJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tbGlua3MtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG1lbnU7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiYnVpbGRNZW51VXJsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5jaG9yQ2xpY2tlZCk9XCJjbG9zZU1lbnVCdXJnZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS1ob3Zlci1jb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM/LnByaW1hcnlIb3ZlciA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz8ucHJpbWFyeSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZWQzYjM3J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWNoZWNraW5nLW9ubGluZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXT8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwibWFpbHRvOlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE3IDE0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC40NjcxIDEzLjE1MThIMi42Nzc0MUMyLjA0NzUxIDEzLjE1MTggMS40NTU0OSAxMi45MDY4IDEuMDEwODYgMTIuNDYxM0MwLjU2NTM3NSAxMi4wMTU4IDAuMzIwMzEyIDExLjQyMzggMC4zMjAzMTIgMTAuNzkzOVYyLjM4MTk4QzAuMzIwMzEyIDIuMzc1MjQgMC4zMjAzMTIgMi4zNjc2NiAwLjMyMDMxMiAyLjM2MDkzQzAuMzIzNjgxIDEuNzM2MDggMC41Njg3NDQgMS4xNDkxMiAxLjAxMDg2IDAuNzA2MTY4QzEuNDU1NDkgMC4yNjA2ODggMi4wNDc1MSAwLjAxNTYyNSAyLjY3NzQxIDAuMDE1NjI1SDE0LjQ2NzFDMTUuMDk3IDAuMDE1NjI1IDE1LjY4OSAwLjI2MDY4OCAxNi4xMzM2IDAuNzA2MTY4QzE2LjU3NTcgMS4xNDkxMiAxNi44MjA4IDEuNzM2MDggMTYuODI0MiAyLjM2MDkzQzE2LjgyNDIgMi4zNjc2NiAxNi44MjQyIDIuMzc1MjQgMTYuODI0MiAyLjM4MTk4VjEwLjc5MzlDMTYuODI0MiAxMS40MjM4IDE2LjU3OTEgMTIuMDE1OCAxNi4xMzM2IDEyLjQ2MTNDMTUuNjg5IDEyLjkwNjggMTUuMDk3IDEzLjE1MTggMTQuNDY3MSAxMy4xNTE4Wk0xLjY2Njg2IDMuNjMwODRWMTAuNzkzMUMxLjY2Njg2IDExLjA1OTIgMS43NzQ2NCAxMS4zMTk0IDEuOTYzMjggMTEuNTA3MkMyLjE1NDQ0IDExLjY5ODMgMi40MDc5MSAxMS44MDM2IDIuNjc4MjMgMTEuODAzNkgxNC40Njc5QzE0LjczMzIgMTEuODAzNiAxNC45OTQyIDExLjY5NTggMTUuMTgyOCAxMS41MDcyQzE1LjM3MTUgMTEuMzE5NCAxNS40NzkzIDExLjA1OTIgMTUuNDc5MyAxMC43OTMxVjMuNjMwODRMOC45NDY5OSA3Ljk4NTQ0QzguNzIxMyA4LjEzNzAyIDguNDI1NyA4LjEzNzAyIDguMjAwMDEgNy45ODU0NEwxLjY2Njg2IDMuNjMwODRaTTEuNzE5OSAyLjA0NzY1TDguNTcyMjQgNi42MTYxNUwxNS40MjQ2IDIuMDQ3NjVDMTUuMzc0OSAxLjkwMjgxIDE1LjI5MzIgMS43Njk3NiAxNS4xODIgMS42NTg2QzE0Ljk5MzQgMS40Njk5NyAxNC43MzMyIDEuMzYyMTcgMTQuNDY3MSAxLjM2MjE3SDIuNjc3NDFDMi40MDc5MyAxLjM2MjE3IDIuMTUzNjEgMS40Njc0NCAxLjk2MjQ1IDEuNjU4NkMxLjg1MTI5IDEuNzY5NzYgMS43Njk1OSAxLjkwMjgxIDEuNzE5OSAyLjA0NzY1WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YSAoY2xpY2spPVwib3Blbk9mZmVyUG9wdXAoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNy45NDEgMTUuMTg1QzE2LjkzOCAxNC4xNzkgMTUuNjAyIDEzLjYyNSAxNC4xNzggMTMuNjI1SDUuMzIxQzMuODk5IDEzLjYyNSAyLjU2MyAxNC4xNzkgMS41NTggMTUuMTg1QzAuNTUyMDAxIDE2LjE5IC0wLjAwMDk5ODY0NiAxNy41MjYgMS4zNTM4N2UtMDYgMTguOTQ4VjIxLjE2MkMxLjM1Mzg3ZS0wNiAyMS42NTUgMC40MDAwMDEgMjIuMDU2IDAuODk0MDAxIDIyLjA1NkMxLjM4NiAyMi4wNTYgMS43ODcgMjEuNjU2IDEuNzg3IDIxLjE2MlYxOC45NDhDMS43ODcgMTguMDA0IDIuMTU1IDE3LjExNSAyLjgyMyAxNi40NDdDMy40ODggMTUuNzggNC4zNzYgMTUuNDEyIDUuMzIyIDE1LjQxMkgxNC4xOEMxNS4xMjUgMTUuNDEyIDE2LjAxMyAxNS43NzkgMTYuNjc5IDE2LjQ0N0MxNy4zNDcgMTcuMTEzIDE3LjcxNCAxOC4wMDIgMTcuNzE0IDE4Ljk0OFYyMS4xNjJDMTcuNzE0IDIxLjY1NSAxOC4xMTQgMjIuMDU2IDE4LjYwOCAyMi4wNTZDMTkuMSAyMi4wNTYgMTkuNTAxIDIxLjY1NiAxOS41MDEgMjEuMTYyVjE4Ljk0OEMxOS41MDEgMTcuNTI2IDE4Ljk0NyAxNi4xOSAxNy45NDEgMTUuMTg1WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuNzUwNjkgMTAuOTc5OUMxMi42ODU3IDEwLjk3OTkgMTUuMDcyNyA4LjU5Mjk0IDE1LjA3MjcgNS42NTc5NEMxNS4wNzI3IDIuNzIyOTQgMTIuNjg1NyAwLjMzNTkzOCA5Ljc1MDY5IDAuMzM1OTM4QzYuODE1NjkgMC4zMzU5MzggNC40Mjk2OSAyLjcyMjk0IDQuNDI5NjkgNS42NTc5NEM0LjQyOTY5IDguNTkyOTQgNi44MTU2OSAxMC45Nzk5IDkuNzUwNjkgMTAuOTc5OVpNOS43NTA2OSAyLjEyMTk0QzExLjcwMDcgMi4xMjE5NCAxMy4yODY3IDMuNzA3OTQgMTMuMjg2NyA1LjY1Nzk0QzEzLjI4NjcgNy42MDc5NCAxMS43MDA3IDkuMTkzOTQgOS43NTA2OSA5LjE5Mzk0QzcuODAxNjkgOS4xOTM5NCA2LjIxNTY5IDcuNjA3OTQgNi4yMTU2OSA1LjY1Nzk0QzYuMjE1NjkgMy43MDc5NCA3LjgwMTY5IDIuMTIxOTQgOS43NTA2OSAyLjEyMTk0WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2E+IC0tPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1sYW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3JjPVwiI2lkaW9tYXMtZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbkxhbmd1YWdlc01vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjMgMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjUgMjNDOS4yMjU1MiAyMyA3LjAwMjExIDIyLjMyNTUgNS4xMTA5NSAyMS4wNjE5QzMuMjE5NzggMTkuNzk4MyAxLjc0NTggMTguMDAyMiAwLjg3NTM5IDE1LjkwMDlDMC4wMDQ5ODI3NyAxMy43OTk1IC0wLjIyMjc1NiAxMS40ODcyIDAuMjIwOTc0IDkuMjU2NDZDMC42NjQ3MDQgNy4wMjU2OCAxLjc1OTk3IDQuOTc2NTggMy4zNjgyOCAzLjM2ODI4QzQuOTc2NTggMS43NTk5NyA3LjAyNTY4IDAuNjY0NzA0IDkuMjU2NDYgMC4yMjA5NzRDMTEuNDg3MiAtMC4yMjI3NTYgMTMuNzk5NSAwLjAwNDk4Mjc3IDE1LjkwMDkgMC44NzUzOUMxOC4wMDIyIDEuNzQ1OCAxOS43OTgzIDMuMjE5NzggMjEuMDYxOSA1LjExMDk1QzIyLjMyNTUgNy4wMDIxMSAyMyA5LjIyNTUyIDIzIDExLjVDMjIuOTk2NiAxNC41NDg5IDIxLjc4MzkgMTcuNDcyIDE5LjYyOCAxOS42MjhDMTcuNDcyIDIxLjc4MzkgMTQuNTQ4OSAyMi45OTY2IDExLjUgMjNaTTExLjUgMS42MDQ2NkM5LjU0Mjg5IDEuNjA0NjYgNy42Mjk3MiAyLjE4NTAxIDYuMDAyNDQgMy4yNzIzMkM0LjM3NTE2IDQuMzU5NjQgMy4xMDY4NSA1LjkwNTA4IDIuMzU3ODkgNy43MTMyMkMxLjYwODk0IDkuNTIxMzUgMS40MTI5OCAxMS41MTEgMS43OTQ3OSAxMy40MzA1QzIuMTc2NjEgMTUuMzUgMy4xMTkwNSAxNy4xMTMyIDQuNTAyOTQgMTguNDk3MUM1Ljg4NjgyIDE5Ljg4MSA3LjY1MDAxIDIwLjgyMzQgOS41Njk1MiAyMS4yMDUyQzExLjQ4OSAyMS41ODcgMTMuNDc4NiAyMS4zOTExIDE1LjI4NjggMjAuNjQyMUMxNy4wOTQ5IDE5Ljg5MzIgMTguNjQwNCAxOC42MjQ4IDE5LjcyNzcgMTYuOTk3NkMyMC44MTUgMTUuMzcwMyAyMS4zOTUzIDEzLjQ1NzEgMjEuMzk1MyAxMS41QzIxLjM5MjUgOC44NzY0NiAyMC4zNDkxIDYuMzYxMTkgMTguNDkzOSA0LjUwNjA2QzE2LjYzODggMi42NTA5NCAxNC4xMjM1IDEuNjA3NDkgMTEuNSAxLjYwNDY2WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjQ5OTQgMjNDOC4xOTkxMyAyMyA2LjQxNzk3IDE3LjA3NDYgNi40MTc5NyAxMS41QzYuNDE3OTcgNS45MjU0NCA4LjE5OTEzIDAgMTEuNDk5NCAwQzE0Ljc5OTYgMCAxNi41ODA4IDUuOTI1NDQgMTYuNTgwOCAxMS41QzE2LjU4MDggMTcuMDc0NiAxNC43OTk2IDIzIDExLjQ5OTQgMjNaTTExLjQ5OTQgMS42MDQ2NUM5Ljg1ODM0IDEuNjA0NjUgOC4wMjI2MiA1LjgzNjY1IDguMDIyNjIgMTEuNUM4LjAyMjYyIDE3LjE2MzMgOS44NTgzNCAyMS4zOTUzIDExLjQ5OTQgMjEuMzk1M0MxMy4xNDA0IDIxLjM5NTMgMTQuOTc2MSAxNy4xNjMzIDE0Ljk3NjEgMTEuNUMxNC45NzYxIDUuODM2NjUgMTMuMTQwNCAxLjYwNDY1IDExLjQ5OTQgMS42MDQ2NVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS40OTk3IDYuOTU0MTdDMTAuMjEzIDYuOTUzNTQgOC45MzI2NCA2Ljc3MzUyIDcuNjk1NjMgNi40MTkyOUM2LjIzMjExIDYuMDAwODEgNC44NTUzNCA1LjMyMzY2IDMuNjMwNTEgNC40MTk4OUMzLjUzNjYzIDQuMzYxMTIgMy40NTU5MyA0LjI4MzU1IDMuMzkzNSA0LjE5MjA2QzMuMzMxMDcgNC4xMDA1NyAzLjI4ODI2IDMuOTk3MTUgMy4yNjc3NiAzLjg4ODNDMy4yNDcyNyAzLjc3OTQ2IDMuMjQ5NTMgMy42Njc1NCAzLjI3NDQxIDMuNTU5NjFDMy4yOTkyOSAzLjQ1MTY4IDMuMzQ2MjQgMy4zNTAwNyAzLjQxMjMyIDMuMjYxMThDMy40NzgzOSAzLjE3MjI5IDMuNTYyMTYgMy4wOTgwNCAzLjY1ODM0IDMuMDQzMTFDMy43NTQ1MiAyLjk4ODE5IDMuODYxMDMgMi45NTM3NyAzLjk3MTE3IDIuOTQyMDJDNC4wODEzIDIuOTMwMjggNC4xOTI2OCAyLjk0MTQ3IDQuMjk4MjggMi45NzQ4OEM0LjQwMzg4IDMuMDA4MjkgNC41MDE0MSAzLjA2MzIxIDQuNTg0NzUgMy4xMzYxN0M1LjY1NjYgMy45MjM4OCA2Ljg2MDQxIDQuNTE0MDEgOC4xMzk1OCA0Ljg3ODgyQzEwLjMzNzEgNS41MDQ2NSAxMi42NjU2IDUuNTA0NjUgMTQuODYzMSA0Ljg3ODgyQzE2LjE0MTQgNC41MTI4NSAxNy4zNDQxIDMuOTIxNjIgMTguNDE0NyAzLjEzMjk2QzE4LjQ5OSAzLjA2NjI1IDE4LjU5NTkgMy4wMTcxNyAxOC42OTk2IDIuOTg4NjRDMTguODAzMyAyLjk2MDEgMTguOTExNiAyLjk1MjcgMTkuMDE4MiAyLjk2Njg3QzE5LjEyNDggMi45ODEwMyAxOS4yMjc0IDMuMDE2NDggMTkuMzIwMSAzLjA3MTExQzE5LjQxMjcgMy4xMjU3MyAxOS40OTM0IDMuMTk4NDEgMTkuNTU3MyAzLjI4NDg0QzE5LjYyMTMgMy4zNzEyNiAxOS42NjczIDMuNDY5NjYgMTkuNjkyNSAzLjU3NDJDMTkuNzE3NyAzLjY3ODczIDE5LjcyMTYgMy43ODcyNiAxOS43MDQgMy44OTMzNEMxOS42ODY0IDMuOTk5NDMgMTkuNjQ3NyA0LjEwMDg5IDE5LjU5MDIgNC4xOTE3MUMxOS41MzI2IDQuMjgyNTMgMTkuNDU3NCA0LjM2MDg2IDE5LjM2ODkgNC40MjIwM0MxOC4xNDQxIDUuMzI1NTYgMTYuNzY3MyA2LjAwMjM2IDE1LjMwMzggNi40MjAzNkMxNC4wNjY4IDYuNzc0MjIgMTIuNzg2NCA2Ljk1Mzg5IDExLjQ5OTcgNi45NTQxN1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC44OTEzIDIwLjAyNDZDMTguNzE5OCAyMC4wMjQ0IDE4LjU1MyAxOS45NjkzIDE4LjQxNTIgMTkuODY3M0MxNy4zNDM3IDE5LjA3ODEgMTYuMTM5OCAxOC40ODY1IDE0Ljg2MDQgMTguMTIwNEMxMi42NjI5IDE3LjQ5NDUgMTAuMzM0NCAxNy40OTQ1IDguMTM2ODkgMTguMTIwNEM2Ljg1ODU2IDE4LjQ4NjMgNS42NTU4MiAxOS4wNzc2IDQuNTg1MjYgMTkuODY2MkM0LjUwMDkzIDE5LjkzMjkgNC40MDQwNiAxOS45ODIgNC4zMDAzOCAyMC4wMTA2QzQuMTk2NzEgMjAuMDM5MSA0LjA4ODM2IDIwLjA0NjUgMy45ODE3NyAyMC4wMzIzQzMuODc1MTggMjAuMDE4MiAzLjc3MjUzIDE5Ljk4MjcgMy42Nzk5MSAxOS45MjgxQzMuNTg3MjkgMTkuODczNSAzLjUwNjU5IDE5LjgwMDggMy40NDI2MiAxOS43MTQ0QzMuMzc4NjQgMTkuNjI3OSAzLjMzMjY5IDE5LjUyOTUgMy4zMDc0OSAxOS40MjVDMy4yODIzIDE5LjMyMDUgMy4yNzgzNyAxOS4yMTE5IDMuMjk1OTUgMTkuMTA1OEMzLjMxMzUyIDE4Ljk5OTggMy4zNTIyNCAxOC44OTgzIDMuNDA5ODEgMTguODA3NUMzLjQ2NzM3IDE4LjcxNjcgMy41NDI2IDE4LjYzODMgMy42MzEwMyAxOC41NzcyQzQuODU1ODYgMTcuNjczNiA2LjIzMjY0IDE2Ljk5NjggNy42OTYxNSAxNi41Nzg4QzEwLjE4MzcgMTUuODY5NiAxMi44MiAxNS44Njk2IDE1LjMwNzUgMTYuNTc4OEMxNi43NzExIDE2Ljk5NzMgMTguMTQ3OCAxNy42NzQ1IDE5LjM3MjcgMTguNTc4MkMxOS41MDg3IDE4LjY3ODUgMTkuNjA5NiAxOC44MTkyIDE5LjY2MDkgMTguOTgwMkMxOS43MTIxIDE5LjE0MTIgMTkuNzExMiAxOS4zMTQ0IDE5LjY1ODEgMTkuNDc0OEMxOS42MDUxIDE5LjYzNTMgMTkuNTAyNyAxOS43NzQ5IDE5LjM2NTUgMTkuODczNkMxOS4yMjgzIDE5Ljk3MjMgMTkuMDYzNSAyMC4wMjUyIDE4Ljg5NDUgMjAuMDI0NkgxOC44OTEzWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIyLjE5NzcgMTIuM0gwLjgwMjMyNUMwLjU4OTUzNSAxMi4zIDAuMzg1NDYxIDEyLjIxNTQgMC4yMzQ5OTYgMTIuMDY1QzAuMDg0NTMwNSAxMS45MTQ1IDAgMTEuNzEwNCAwIDExLjQ5NzZDMCAxMS4yODQ4IDAuMDg0NTMwNSAxMS4wODA4IDAuMjM0OTk2IDEwLjkzMDNDMC4zODU0NjEgMTAuNzc5OCAwLjU4OTUzNSAxMC42OTUzIDAuODAyMzI1IDEwLjY5NTNIMjIuMTk3N0MyMi40MTA1IDEwLjY5NTMgMjIuNjE0NSAxMC43Nzk4IDIyLjc2NSAxMC45MzAzQzIyLjkxNTUgMTEuMDgwOCAyMyAxMS4yODQ4IDIzIDExLjQ5NzZDMjMgMTEuNzEwNCAyMi45MTU1IDExLjkxNDUgMjIuNzY1IDEyLjA2NUMyMi42MTQ1IDEyLjIxNTQgMjIuNDEwNSAxMi4zIDIyLjE5NzcgMTIuM1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24taGUtc3ZnLWxpc3QvYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24taGUtc3ZnLWxpc3QvYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQVM3RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFVbkYsTUFBTSxPQUFPLHlCQUF5QjtJQTRCbEMsWUFDWSxFQUEyQixFQUNsQixNQUFpQjtRQUQxQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBN0I3QixpQkFBWSxHQUFhLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQWEsS0FBSyxDQUFD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Q0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXFCO1FBQzNCLE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFDO1FBRXBDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7K0dBM09RLHlCQUF5QjttR0FBekIseUJBQXlCLGtqQkNyQ3RDLG93cUNBMGtCQSxtenBDRDFpQmMsWUFBWSw2SEFBRSx3QkFBd0I7OzRGQUt2Qyx5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0kseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxtQkFHaEMsdUJBQXVCLENBQUMsTUFBTTt1R0FHdEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFtRVAsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTG9nb1R5cGUgfSBmcm9tICcuLi8uLi8uLi9FbnVtJztcbmltcG9ydCB7XG4gICAgQmFieWxvbkJvZHlFeHRyYSxcbiAgICBCYWJ5bG9uQnV0dG9uSSxcbiAgICBCYWJ5bG9uSW1hZ2VJLFxufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25GbG9hdGluZ0J1dHRvbnNJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9iYWJ5bG9uLWZsb2F0aW5nLWJ1dHRvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhYnlsb25Ib3RlbFN0eWxlc0l0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2JhYnlsb24taG90ZWwtc3R5bGVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEJhYnlsb25FbmdpbmVXaWRnZXRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2JhYnlsb24tZW5naW5lLXdpZGdldC1tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLWJhYnlsb24taGUtc3ZnLWxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFieWxvbi1oZS1zdmctbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24taGUtc3ZnLWxpc3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYWJ5bG9uSGVTdmdMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBkaW5hbXlIZWFkZXI/OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgaG90ZWxQYWdlPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG1lbnU/OiBCYWJ5bG9uQnV0dG9uSVtdO1xuICAgIEBJbnB1dCgpIGxvZ29zPzogUmVjb3JkPExvZ29UeXBlLCBCYWJ5bG9uSW1hZ2VJIHwgdW5kZWZpbmVkPjtcbiAgICBASW5wdXQoKSBmbG9hdGluZ0J1dHRvbnM/OiBCYWJ5bG9uRmxvYXRpbmdCdXR0b25zSTtcbiAgICBASW5wdXQoKSBsaW5rcz86IEJhYnlsb25CdXR0b25JW107XG4gICAgQElucHV0KCkgbG9jYWxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRpY2tlcj86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGhvdGVsPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogQmFieWxvbkJ1dHRvbklbXTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZD86IEJhYnlsb25CdXR0b25JO1xuICAgIEBJbnB1dCgpIHN0eWxlcz86IEJhYnlsb25Ib3RlbFN0eWxlc0l0ZW07XG4gICAgQElucHV0KCkgaG90ZWxUeXBlPzogQmFieWxvbkJvZHlFeHRyYTtcbiAgICBASW5wdXQoKSBob3RlbENhdGVnb3J5PzogQmFieWxvbkJvZHlFeHRyYTtcblxuICAgIEBJbnB1dCgpIHdpZGdldENvbmZpZz86IGFueTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gICAgQE91dHB1dCgpIG9wZW5MYW5ndWFnZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9wZW5PZmZlclBvcCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBkb21PYnM/OiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIG5hdlN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1xuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5pbml0QnJlYWRjcnVtYkZsYWcoKTtcblxuICAgICAgICAvLyAxLiBFamVjdWNpw7NuIGluaWNpYWwgc2luY3LDs25pY2FcbiAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJTdGlja3koKTtcblxuICAgICAgICAvLyAyLiBFamVjdXRhciB1c2FuZG8gdW4gcGVxdWXDsW8gZGVsYXkgcGFyYSBhdHJhcGFyIGxhIHJlc3RhdXJhY2nDs24gZGVsIHNjcm9sbFxuICAgICAgICAvLyBxdWUgaGFjZSBlbCBuYXZlZ2Fkb3IgYXV0b23DoXRpY2FtZW50ZSBhbCByZWNhcmdhciBsYSBww6FnaW5hLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCksIDEwMCk7XG5cbiAgICAgICAgLy8gMy4gRWplY3V0YXIgY3VhbmRvIHRvZG9zIGxvcyByZWN1cnNvcyBlc3TDoXRpY29zIChpbcOhZ2VuZXMgZGVsIGhlcm8sIGV0Yy4pXG4gICAgICAgIC8vIGhheWFuIGNhcmdhZG8sIHlhIHF1ZSBjYW1iaWFuIGxhcyBkaW1lbnNpb25lcyBkZWwgRE9NLlxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCkpO1xuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUhlYWRlclN0aWNreSgpO1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRvbU9icyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCkpO1xuICAgICAgICB0aGlzLmRvbU9icy5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuXG4gICAgICAgIHRoaXMubmF2U3ViID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZU1lbnVCdXJnZXIoKTtcbiAgICAgICAgICAgICAgICAvLyBBbCBuYXZlZ2FyIHRhbWJpw6luIGNvbnZpZW5lIHVuIHBlcXVlw7FvIHRpbWVvdXQgcG9yIHNpIGxhcyB2aXN0YXMgdGFyZGFuIGVuIG1vbnRhclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVIZWFkZXJTdGlja3koKSwgNTApO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd01lbnVCdXJnZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubS1idXJnZXItbWVudScpO1xuICAgICAgICBpZiAoYnVyZ2VyKSB7XG4gICAgICAgICAgICBidXJnZXIuY2xhc3NMaXN0LnRvZ2dsZSgnc2hvdycpO1xuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ292ZXJmbG93LWhpZGRlbicpO1xuICAgIH1cblxuICAgIGNsb3NlTWVudUJ1cmdlcihyZWxvYWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGJ1cmdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubS1idXJnZXItbWVudScpO1xuICAgICAgICBpZiAoIWJ1cmdlcikgcmV0dXJuO1xuXG4gICAgICAgIGJ1cmdlci5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdvdmVyZmxvdy1oaWRkZW4nKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJylcbiAgICBvbldpbmRvd1Njcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIHRoaXMudXBkYXRlSGVhZGVyU3RpY2t5KCk7XG4gICAgfVxuXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vICBIZWxwZXJzIHByaXZhZG9zXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJTdGlja3koKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubWRsLWhlYWRlcicpO1xuICAgICAgICBpZiAoIWhlYWRlcikgcmV0dXJuO1xuXG4gICAgICAgIC8vIFJlc3BldGFyIC5mb3JjZS1zdGlja3lcbiAgICAgICAgaWYgKGhlYWRlci5jbGFzc0xpc3QuY29udGFpbnMoJ2ZvcmNlLXN0aWNreScpKSByZXR1cm47XG5cbiAgICAgICAgLy8gVXNhbW9zIGVsIGhlcm8gcmVhbCBjb21vIHJlZmVyZW5jaWFcbiAgICAgICAgY29uc3QgaGVybyA9XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLm1kbC1oZXJvaG9tZScpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmZha2UtaGVybycpO1xuXG4gICAgICAgIC8vIFNPTFVDScOTTjogU2kgbm8gaGF5IGhlcm8sIGFwbGljYW1vcyBhbCBoZWFkZXIgeSBUQU1CScOJTiBhbCBib2R5IHBhcmEgc2luY3JvbsOtYVxuICAgICAgICBpZiAoIWhlcm8gfHwgIXRoaXMuZGluYW15SGVhZGVyKSB7XG4gICAgICAgICAgICBoZWFkZXIuY2xhc3NMaXN0LmFkZCgnc3RpY2t5Jyk7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2hlYWRlcl9zdGlja3knKTsgLy8gQcOxYWRpZG8gcGFyYSBzb2x1Y2lvbmFyIHR1IHByb2JsZW1hXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZW50aW5lbCA9XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLnN0aWNreS1zZW50aW5lbCcpO1xuXG4gICAgICAgIGlmICh0aGlzLmRpbmFteUhlYWRlcikge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IGhlcm8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPVxuICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuXG4gICAgICAgICAgICAvLyBFc3TDoSBmdWVyYSBkZSB2aXN0YSBzaTpcbiAgICAgICAgICAgIC8vIC0gU3UgcGFydGUgZGUgYWJham8gcXVlZGEgcG9yIGVuY2ltYSBkZWwgdmlld3BvcnRcbiAgICAgICAgICAgIC8vICAgb1xuICAgICAgICAgICAgLy8gLSBTdSBwYXJ0ZSBkZSBhcnJpYmEgcXVlZGEgcG9yIGRlYmFqbyBkZWwgdmlld3BvcnQgKHNjcm9sbCBtdXkgYWJham8pXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxUb3AgPVxuICAgICAgICAgICAgICAgIHdpbmRvdy5wYWdlWU9mZnNldCB8fFxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCB8fFxuICAgICAgICAgICAgICAgIDA7XG5cbiAgICAgICAgICAgIGNvbnN0IGhlcm9Ub3AgPSByZWN0LnRvcCArIHNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IGhlcm9Cb3R0b20gPSBoZXJvVG9wICsgcmVjdC5oZWlnaHQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzT3V0T2ZWaWV3ID1cbiAgICAgICAgICAgICAgICBoZXJvQm90dG9tIDwgc2Nyb2xsVG9wIHx8XG4gICAgICAgICAgICAgICAgaGVyb1RvcCA+IHNjcm9sbFRvcCArIHdpbmRvd0hlaWdodCB8fFxuICAgICAgICAgICAgICAgIHNjcm9sbFRvcCA+IDIwMDtcblxuICAgICAgICAgICAgaGVhZGVyLmNsYXNzTGlzdC50b2dnbGUoJ3N0aWNreScsIGlzT3V0T2ZWaWV3KTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnaGVhZGVyX3N0aWNreScsIGlzT3V0T2ZWaWV3KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQcOxYWRlIC52LW5vLWhvdGVsIGFsIGJyZWFkY3J1bWIgc2kgZWwgaGVhZGVyIE5PIGVzIGhvdGVsLWNhcmQgKi9cbiAgICBwcml2YXRlIGluaXRCcmVhZGNydW1iRmxhZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5tZGwtaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWIgPVxuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5tZGwtYnJlYWRjcnVtYicpO1xuXG4gICAgICAgIGlmICghaGVhZGVyIHx8ICFicmVhZGNydW1iKSByZXR1cm47XG5cbiAgICAgICAgaWYgKCFoZWFkZXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdob3RlbC1jYXJkJykpIHtcbiAgICAgICAgICAgIGJyZWFkY3J1bWIuY2xhc3NMaXN0LmFkZCgndi1uby1ob3RlbCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3Blbkxhbmd1YWdlc01vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5MYW5ndWFnZXMuZW1pdCgpO1xuICAgIH1cblxuICAgIG9wZW5PZmZlclBvcHVwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW5PZmZlclBvcC5lbWl0KCdvZmZlclBvcFVwVjMnKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZG9tT2JzPy5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgb3BlbkVuZ2luZU1vZGFsKCkge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJhYnlsb25FbmdpbmVXaWRnZXRNb2RhbENvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICcxMDB2dycsXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgICAgICAgICBtYXhXaWR0aDogJzEwMHZ3JyxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgICAgICBldmVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5sb2NhbGUgPSB0aGlzLmxvY2FsZTtcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLndpZGdldENvbmZpZyA9IHRoaXMud2lkZ2V0Q29uZmlnO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UudGlja2VyID0gdGhpcy50aWNrZXI7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5zdHlsZXMgPSB0aGlzLnN0eWxlcztcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsb3NlID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgYnVpbGRNZW51VXJsKGl0ZW06IEJhYnlsb25CdXR0b25JKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFpdGVtPy51cmwpIHJldHVybiAnJztcblxuICAgICAgICBjb25zdCBiYXNlVXJsID0gaXRlbS51cmwucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gaXRlbS5vcmRlcj8udG9TdHJpbmcoKTtcblxuICAgICAgICBpZiAob3JkZXIgIT09ICcyJyAmJiBvcmRlciAhPT0gJzMnKSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZVVybDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhYmVsID0gKGl0ZW0ubGFiZWwgPz8gJycpLnRvU3RyaW5nKCkudHJpbSgpO1xuICAgICAgICBpZiAoIWxhYmVsKSByZXR1cm4gYmFzZVVybDtcblxuICAgICAgICBjb25zdCBmaWx0ZXJTbHVnID0gdGhpcy5jYW5vbmljYWxTbHVnKGxhYmVsKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJTbHVnKSByZXR1cm4gYmFzZVVybDtcblxuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0/ZmlsdGVyPSR7ZmlsdGVyU2x1Z31gO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2Fub25pY2FsU2x1Zyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHMgPSBVdGlscy50b1NsdWcodmFsdWUpO1xuICAgICAgICBpZiAoIXMpIHJldHVybiAnJztcblxuICAgICAgICBpZiAocy5sZW5ndGggPiAzICYmIHMuZW5kc1dpdGgoJ2VzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2UgPSBzLnNsaWNlKDAsIC0yKTtcbiAgICAgICAgICAgIGlmIChiYXNlLmVuZHNXaXRoKCdjJykpIHJldHVybiBiYXNlLnNsaWNlKDAsIC0xKSArICd6JztcbiAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHMubGVuZ3RoID4gMyAmJiBzLmVuZHNXaXRoKCdzJykpIHJldHVybiBzLnNsaWNlKDAsIC0xKTtcblxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBnZXROdW1iZXIodGV4dDogc3RyaW5nKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gVXRpbHMuZXh0cmFjdE51bWJlclJhbmdlKHRleHQpO1xuICAgIH1cblxuICAgIHNob3dJZlN1cCh2YWx1ZT86IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC9cXGIoU1VQfHN1cGVyaW9yKVxcYi9pO1xuXG4gICAgICAgIHJldHVybiByZWdleC50ZXN0KHZhbHVlID8/ICcnKSA/ICdTVVAnIDogJyc7XG4gICAgfVxufVxuIiwiPCEtLSBBw7FhZGlyIGNsYXNlIGhvdGVsLWNhcmQgcGFyYSBmaWNoYSBob3RlbCAtLT5cbjwhLS0gQWwgYcOxYWRpciBsYSBjbGFzZSBmb3JjZS1zdGlja3kgZXZpdGFtb3MgZWwgZWZlY3RvIGRlIGNhbWJpYXIgZW50cmUgc3RpY2t5IGVuIGVsIHNjcm9sbCBkb3duL3VwIC0tPlxuPHNlY3Rpb24gY2xhc3M9XCJtZGwtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1kbC1jb250YWluZXJcIj5cbiAgICAgICAgPCEtLSBNZW7DuiBkZXNrdG9wIHkgY29udGVuZWRvciBwYXJhIGxvZ28sIGlkaW9tYSB5IHVzdWFyaW8gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLW1lbnVcIj5cbiAgICAgICAgICAgIDwhLS0gQm90w7NuIGZsb3RhbnRlIHBhcmEgcmVzZXJ2YSBvbmxpbmUgLS0+XG4gICAgICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIEBpZiAoZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWNoZWNraW5nLW9ubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cImZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXT8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXT8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIEJvb2sgbm93IGJ1dHRvbiAtLT5cbiAgICAgICAgICAgIEBpZiAoZmxvYXRpbmdCdXR0b25zPy50ZXh0c0J1dHRvbnM/LmJvb2t0ZXh0KSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tYm9vay1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInN0eWxlcz8ucHJpbWFyeSA/PyAnI2ZmNDMzOCdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuRW5naW5lTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tYnV0dG9uIG0tYm9va1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInN0eWxlcz8ucHJpbWFyeSA/PyAnI2ZmNDMzOCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGZsb2F0aW5nQnV0dG9ucz8udGV4dHNCdXR0b25zPy5ib29rdGV4dCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDwhLS0gTG9nbyAtLT5cbiAgICAgICAgICAgIEBpZiAobG9nb3MpIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJtZW51Py5bMF0/LnVybCA/PyAnL2VzL2hvbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIm1lbnU/LlswXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1lbnU/LlswXT8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tbG9nb1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGxvZ29zLmxvZ29EZXNrdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvcy5sb2dvRGVza3RvcC5zcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibG9nb3MubG9nb0Rlc2t0b3AuYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChsb2dvcy5sb2dvTWVudSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImxvZ29zLmxvZ29NZW51LnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJsb2dvcy5sb2dvTWVudS5hbHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwhLS0gTGlua3MgKyBMYW5nICsgdXNlciAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWxpbmtzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gTGlua3MgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChtZW51Py5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tbGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidWlsZE1lbnVVcmwoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIml0ZW0ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3JDbGlja2VkKT1cImNsb3NlTWVudUJ1cmdlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgkaW5kZXggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29ucy9ob21lLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImhvbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8IS0tIE1vdG9yIHN0aWNreSAtLT5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLW1vdG9yXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIHVzZXIgKyBsYW5nIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWJ1cmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQWJyaXIgbWVuw7pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJidXJnZXItbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd01lbnVCdXJnZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjM3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAzNyAyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzYuMjMzOCAwSDBWMS44MTk2M0gzNi4yMzM4VjBaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zNi4yMzM4IDEwLjU4NTlIMFYxMi40MDY2SDM2LjIzMzhWMTAuNTg1OVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM2LjIzMzggMjEuMTc5N0gwVjIyLjk5OTNIMzYuMjMzOFYyMS4xNzk3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNTE1MDUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8IS0tICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tdXNlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQWJyaXIgbWVuw7ogZGUgdXN1YXJpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk9mZmVyUG9wdXAoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIG9wYWNpdHk9XCIwLjdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuOTQxIDE0Ljg0OTFDMTYuOTM4IDEzLjg0MzEgMTUuNjAyIDEzLjI4OTEgMTQuMTc4IDEzLjI4OTFINS4zMjFDMy44OTkgMTMuMjg5MSAyLjU2MyAxMy44NDMxIDEuNTU4IDE0Ljg0OTFDMC41NTIwMDEgMTUuODU0MSAtMC4wMDA5OTg2NDYgMTcuMTkwMSAxLjM1Mzg3ZS0wNiAxOC42MTIxVjIwLjgyNjFDMS4zNTM4N2UtMDYgMjEuMzE5MSAwLjQwMDAwMSAyMS43MjAxIDAuODk0MDAxIDIxLjcyMDFDMS4zODYgMjEuNzIwMSAxLjc4NyAyMS4zMjAxIDEuNzg3IDIwLjgyNjFWMTguNjEyMUMxLjc4NyAxNy42NjgxIDIuMTU1IDE2Ljc3OTEgMi44MjMgMTYuMTExMUMzLjQ4OCAxNS40NDQxIDQuMzc2IDE1LjA3NjEgNS4zMjIgMTUuMDc2MUgxNC4xOEMxNS4xMjUgMTUuMDc2MSAxNi4wMTMgMTUuNDQzMSAxNi42NzkgMTYuMTExMUMxNy4zNDcgMTYuNzc3MSAxNy43MTQgMTcuNjY2MSAxNy43MTQgMTguNjEyMVYyMC44MjYxQzE3LjcxNCAyMS4zMTkxIDE4LjExNCAyMS43MjAxIDE4LjYwOCAyMS43MjAxQzE5LjEgMjEuNzIwMSAxOS41MDEgMjEuMzIwMSAxOS41MDEgMjAuODI2MVYxOC42MTIxQzE5LjUwMSAxNy4xOTAxIDE4Ljk0NyAxNS44NTQxIDE3Ljk0MSAxNC44NDkxWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuNzUwNjkgMTAuNjQ0QzEyLjY4NTcgMTAuNjQ0IDE1LjA3MjcgOC4yNTcgMTUuMDcyNyA1LjMyMkMxNS4wNzI3IDIuMzg3IDEyLjY4NTcgMCA5Ljc1MDY5IDBDNi44MTU2OSAwIDQuNDI5NjkgMi4zODcgNC40Mjk2OSA1LjMyMkM0LjQyOTY5IDguMjU3IDYuODE1NjkgMTAuNjQ0IDkuNzUwNjkgMTAuNjQ0Wk05Ljc1MDY5IDEuNzg2QzExLjcwMDcgMS43ODYgMTMuMjg2NyAzLjM3MiAxMy4yODY3IDUuMzIyQzEzLjI4NjcgNy4yNzIgMTEuNzAwNyA4Ljg1OCA5Ljc1MDY5IDguODU4QzcuODAxNjkgOC44NTggNi4yMTU2OSA3LjI3MiA2LjIxNTY5IDUuMzIyQzYuMjE1NjkgMy4zNzIgNy44MDE2OSAxLjc4NiA5Ljc1MDY5IDEuNzg2WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tbGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWNjaW9uYXIgaWRpb21hXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3JjPVwiI2lkaW9tYXMtZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbkxhbmd1YWdlc01vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjMgMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PVwiMC43XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjUgMjNDOS4yMjU1MiAyMyA3LjAwMjExIDIyLjMyNTUgNS4xMTA5NSAyMS4wNjE5QzMuMjE5NzggMTkuNzk4MyAxLjc0NTggMTguMDAyMiAwLjg3NTM5IDE1LjkwMDlDMC4wMDQ5ODI3NyAxMy43OTk1IC0wLjIyMjc1NiAxMS40ODcyIDAuMjIwOTc0IDkuMjU2NDZDMC42NjQ3MDQgNy4wMjU2OCAxLjc1OTk3IDQuOTc2NTggMy4zNjgyOCAzLjM2ODI4QzQuOTc2NTggMS43NTk5NyA3LjAyNTY4IDAuNjY0NzA0IDkuMjU2NDYgMC4yMjA5NzRDMTEuNDg3MiAtMC4yMjI3NTYgMTMuNzk5NSAwLjAwNDk4Mjc3IDE1LjkwMDkgMC44NzUzOUMxOC4wMDIyIDEuNzQ1OCAxOS43OTgzIDMuMjE5NzggMjEuMDYxOSA1LjExMDk1QzIyLjMyNTUgNy4wMDIxMSAyMyA5LjIyNTUyIDIzIDExLjVDMjIuOTk2NiAxNC41NDg5IDIxLjc4MzkgMTcuNDcyIDE5LjYyOCAxOS42MjhDMTcuNDcyIDIxLjc4MzkgMTQuNTQ4OSAyMi45OTY2IDExLjUgMjNaTTExLjUgMS42MDQ2NkM5LjU0Mjg5IDEuNjA0NjYgNy42Mjk3MiAyLjE4NTAxIDYuMDAyNDQgMy4yNzIzMkM0LjM3NTE2IDQuMzU5NjQgMy4xMDY4NSA1LjkwNTA4IDIuMzU3ODkgNy43MTMyMkMxLjYwODk0IDkuNTIxMzUgMS40MTI5OCAxMS41MTEgMS43OTQ3OSAxMy40MzA1QzIuMTc2NjEgMTUuMzUgMy4xMTkwNSAxNy4xMTMyIDQuNTAyOTQgMTguNDk3MUM1Ljg4NjgyIDE5Ljg4MSA3LjY1MDAxIDIwLjgyMzQgOS41Njk1MiAyMS4yMDUyQzExLjQ4OSAyMS41ODcgMTMuNDc4NiAyMS4zOTExIDE1LjI4NjggMjAuNjQyMUMxNy4wOTQ5IDE5Ljg5MzIgMTguNjQwNCAxOC42MjQ4IDE5LjcyNzcgMTYuOTk3NkMyMC44MTUgMTUuMzcwMyAyMS4zOTUzIDEzLjQ1NzEgMjEuMzk1MyAxMS41QzIxLjM5MjUgOC44NzY0NiAyMC4zNDkxIDYuMzYxMTkgMTguNDkzOSA0LjUwNjA2QzE2LjYzODggMi42NTA5NCAxNC4xMjM1IDEuNjA3NDkgMTEuNSAxLjYwNDY2WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjQ5OTQgMjNDOC4xOTkxMyAyMyA2LjQxNzk3IDE3LjA3NDYgNi40MTc5NyAxMS41QzYuNDE3OTcgNS45MjU0NCA4LjE5OTEzIDAgMTEuNDk5NCAwQzE0Ljc5OTYgMCAxNi41ODA4IDUuOTI1NDQgMTYuNTgwOCAxMS41QzE2LjU4MDggMTcuMDc0NiAxNC43OTk2IDIzIDExLjQ5OTQgMjNaTTExLjQ5OTQgMS42MDQ2NUM5Ljg1ODM0IDEuNjA0NjUgOC4wMjI2MiA1LjgzNjY1IDguMDIyNjIgMTEuNUM4LjAyMjYyIDE3LjE2MzMgOS44NTgzNCAyMS4zOTUzIDExLjQ5OTQgMjEuMzk1M0MxMy4xNDA0IDIxLjM5NTMgMTQuOTc2MSAxNy4xNjMzIDE0Ljk3NjEgMTEuNUMxNC45NzYxIDUuODM2NjUgMTMuMTQwNCAxLjYwNDY1IDExLjQ5OTQgMS42MDQ2NVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS40OTk3IDYuOTU0MTdDMTAuMjEzIDYuOTUzNTQgOC45MzI2NCA2Ljc3MzUyIDcuNjk1NjMgNi40MTkyOUM2LjIzMjExIDYuMDAwODEgNC44NTUzNCA1LjMyMzY2IDMuNjMwNTEgNC40MTk4OUMzLjUzNjYzIDQuMzYxMTIgMy40NTU5MyA0LjI4MzU1IDMuMzkzNSA0LjE5MjA2QzMuMzMxMDcgNC4xMDA1NyAzLjI4ODI2IDMuOTk3MTUgMy4yNjc3NiAzLjg4ODNDMy4yNDcyNyAzLjc3OTQ2IDMuMjQ5NTMgMy42Njc1NCAzLjI3NDQxIDMuNTU5NjFDMy4yOTkyOSAzLjQ1MTY4IDMuMzQ2MjQgMy4zNTAwNyAzLjQxMjMyIDMuMjYxMThDMy40NzgzOSAzLjE3MjI5IDMuNTYyMTYgMy4wOTgwNCAzLjY1ODM0IDMuMDQzMTFDMy43NTQ1MiAyLjk4ODE5IDMuODYxMDMgMi45NTM3NyAzLjk3MTE3IDIuOTQyMDJDNC4wODEzIDIuOTMwMjggNC4xOTI2OCAyLjk0MTQ3IDQuMjk4MjggMi45NzQ4OEM0LjQwMzg4IDMuMDA4MjkgNC41MDE0MSAzLjA2MzIxIDQuNTg0NzUgMy4xMzYxN0M1LjY1NjYgMy45MjM4OCA2Ljg2MDQxIDQuNTE0MDEgOC4xMzk1OCA0Ljg3ODgyQzEwLjMzNzEgNS41MDQ2NSAxMi42NjU2IDUuNTA0NjUgMTQuODYzMSA0Ljg3ODgyQzE2LjE0MTQgNC41MTI4NSAxNy4zNDQxIDMuOTIxNjIgMTguNDE0NyAzLjEzMjk2QzE4LjQ5OSAzLjA2NjI1IDE4LjU5NTkgMy4wMTcxNyAxOC42OTk2IDIuOTg4NjRDMTguODAzMyAyLjk2MDEgMTguOTExNiAyLjk1MjcgMTkuMDE4MiAyLjk2Njg3QzE5LjEyNDggMi45ODEwMyAxOS4yMjc0IDMuMDE2NDggMTkuMzIwMSAzLjA3MTExQzE5LjQxMjcgMy4xMjU3MyAxOS40OTM0IDMuMTk4NDEgMTkuNTU3MyAzLjI4NDg0QzE5LjYyMTMgMy4zNzEyNiAxOS42NjczIDMuNDY5NjYgMTkuNjkyNSAzLjU3NDJDMTkuNzE3NyAzLjY3ODczIDE5LjcyMTYgMy43ODcyNiAxOS43MDQgMy44OTMzNEMxOS42ODY0IDMuOTk5NDMgMTkuNjQ3NyA0LjEwMDg5IDE5LjU5MDIgNC4xOTE3MUMxOS41MzI2IDQuMjgyNTMgMTkuNDU3NCA0LjM2MDg2IDE5LjM2ODkgNC40MjIwM0MxOC4xNDQxIDUuMzI1NTYgMTYuNzY3MyA2LjAwMjM2IDE1LjMwMzggNi40MjAzNkMxNC4wNjY4IDYuNzc0MjIgMTIuNzg2NCA2Ljk1Mzg5IDExLjQ5OTcgNi45NTQxN1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC44OTEzIDIwLjAyNDZDMTguNzE5OCAyMC4wMjQ0IDE4LjU1MyAxOS45NjkzIDE4LjQxNTIgMTkuODY3M0MxNy4zNDM3IDE5LjA3ODEgMTYuMTM5OCAxOC40ODY1IDE0Ljg2MDQgMTguMTIwNEMxMi42NjI5IDE3LjQ5NDUgMTAuMzM0NCAxNy40OTQ1IDguMTM2ODkgMTguMTIwNEM2Ljg1ODU2IDE4LjQ4NjMgNS42NTU4MiAxOS4wNzc2IDQuNTg1MjYgMTkuODY2MkM0LjUwMDkzIDE5LjkzMjkgNC40MDQwNiAxOS45ODIgNC4zMDAzOCAyMC4wMTA2QzQuMTk2NzEgMjAuMDM5MSA0LjA4ODM2IDIwLjA0NjUgMy45ODE3NyAyMC4wMzIzQzMuODc1MTggMjAuMDE4MiAzLjc3MjUzIDE5Ljk4MjcgMy42Nzk5MSAxOS45MjgxQzMuNTg3MjkgMTkuODczNSAzLjUwNjU5IDE5LjgwMDggMy40NDI2MiAxOS43MTQ0QzMuMzc4NjQgMTkuNjI3OSAzLjMzMjY5IDE5LjUyOTUgMy4zMDc0OSAxOS40MjVDMy4yODIzIDE5LjMyMDUgMy4yNzgzNyAxOS4yMTE5IDMuMjk1OTUgMTkuMTA1OEMzLjMxMzUyIDE4Ljk5OTggMy4zNTIyNCAxOC44OTgzIDMuNDA5ODEgMTguODA3NUMzLjQ2NzM3IDE4LjcxNjcgMy41NDI2IDE4LjYzODMgMy42MzEwMyAxOC41NzcyQzQuODU1ODYgMTcuNjczNiA2LjIzMjY0IDE2Ljk5NjggNy42OTYxNSAxNi41Nzg4QzEwLjE4MzcgMTUuODY5NiAxMi44MiAxNS44Njk2IDE1LjMwNzUgMTYuNTc4OEMxNi43NzExIDE2Ljk5NzMgMTguMTQ3OCAxNy42NzQ1IDE5LjM3MjcgMTguNTc4MkMxOS41MDg3IDE4LjY3ODUgMTkuNjA5NiAxOC44MTkyIDE5LjY2MDkgMTguOTgwMkMxOS43MTIxIDE5LjE0MTIgMTkuNzExMiAxOS4zMTQ0IDE5LjY1ODEgMTkuNDc0OEMxOS42MDUxIDE5LjYzNTMgMTkuNTAyNyAxOS43NzQ5IDE5LjM2NTUgMTkuODczNkMxOS4yMjgzIDE5Ljk3MjMgMTkuMDYzNSAyMC4wMjUyIDE4Ljg5NDUgMjAuMDI0NkgxOC44OTEzWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzUxNTA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIyLjE5NzcgMTIuM0gwLjgwMjMyNUMwLjU4OTUzNSAxMi4zIDAuMzg1NDYxIDEyLjIxNTQgMC4yMzQ5OTYgMTIuMDY1QzAuMDg0NTMwNSAxMS45MTQ1IDAgMTEuNzEwNCAwIDExLjQ5NzZDMCAxMS4yODQ4IDAuMDg0NTMwNSAxMS4wODA4IDAuMjM0OTk2IDEwLjkzMDNDMC4zODU0NjEgMTAuNzc5OCAwLjU4OTUzNSAxMC42OTUzIDAuODAyMzI1IDEwLjY5NTNIMjIuMTk3N0MyMi40MTA1IDEwLjY5NTMgMjIuNjE0NSAxMC43Nzk4IDIyLjc2NSAxMC45MzAzQzIyLjkxNTUgMTEuMDgwOCAyMyAxMS4yODQ4IDIzIDExLjQ5NzZDMjMgMTEuNzEwNCAyMi45MTU1IDExLjkxNDUgMjIuNzY1IDEyLjA2NUMyMi42MTQ1IDEyLjIxNTQgMjIuNDEwNSAxMi4zIDIyLjE5NzcgMTIuM1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0aWNreS1zZW50aW5lbFwiPjwvZGl2PlxuICAgICAgICA8IS0tIE1lbsO6IHJvam8gcGFyYSBmaWNoYSBob3RlbCAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtLWNhcmQtaG90ZWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFpdGVtcz8ubGVuZ3RoIH1cIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJzdHlsZXM/LnByaW1hcnkgPz8gJyNmZjQzMzgnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChob3RlbCkge1xuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW1zPy5bMF0/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtcz8uWzBdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibS1ob3RlbC1sb2dvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXRpdGxlXCI+e3sgaG90ZWwgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tc3RhcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaG90ZWxUeXBlPy5ib2R5ZXh0cmE/Lm5hbWVJZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG90ZWxUeXBlPy5ib2R5ZXh0cmE/Lm5hbWVJZGVudGlmaWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhvdGVsVHlwZT8uYm9keWV4dHJhPy5uYW1lSWRlbnRpZmllciA9PT0gJ0hvdGVsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFydHMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBnZXROdW1iZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG90ZWxDYXRlZ29yeT8uYm9keWV4dHJhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ubmFtZUlkZW50aWZpZXIgPz8gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtMTQwNC4wMDAwMDAsIC01OTIyLjAwMDAwMCkgdHJhbnNsYXRlKDE5MS4wMDAwMDAsIDU4NjUuMDAwMDAwKSB0cmFuc2xhdGUoMTEwOS4wMDAwMDAsIDU3LjAwMDAwMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIwLjhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTAgMGwyLjI5NCA3LjEwNGMuMDM0LjEwNi4xMzMuMTc4LjI0NS4xNzhMMjAgNy4yNjdsLTYuMDQ2IDQuMzc0di4wMDFjLS4wOS4wNjYtLjEyOC4xODItLjA5My4yODlsMi4zMjIgNy4wOTUtNi4wMzItNC40Yy0uMDktLjA2NS0uMjEzLS4wNjUtLjMwMyAwbC02LjAyOSA0LjQgMi4zMjItNy4wOTVINi4xNGMuMDM1LS4xMDctLjAwMy0uMjIzLS4wOTQtLjI4OUwwIDcuMjY4bDcuNDYxLjAxNS4wMDEtLjAwMWMuMTEyIDAgLjIxMS0uMDcyLjI0NS0uMTc4TDEwIDB6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTA0LjAwMDAwMCwgMC4wMDAwMDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsVHlwZT8uYm9keWV4dHJhPy5uYW1lSWRlbnRpZmllciA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FwYXJ0YW1lbnRvJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdGVsVHlwZT8uYm9keWV4dHJhPy5uYW1lSWRlbnRpZmllciA9PT0gJ0FwYXJ0bWVudCdcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFydHMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSBvZiBnZXROdW1iZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG90ZWxDYXRlZ29yeT8uYm9keWV4dHJhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ubmFtZUlkZW50aWZpZXIgPz8gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMiAyKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjE0NjI5NiA0LjI2NDc5TDEuMTQwMTUgMi4wMTY5MkMxLjMxMjg5IDEuNjI1NTkgMS42MjU1OSAxLjMxMjg5IDIuMDE2OTIgMS4xNDAxNUw0LjI2NDc5IDAuMTQ2Mjk3QzQuNTgxNzQgMC4wMDY0MTgyNiA0LjkzMzU2IC0wLjAzNDM5NDQgNS4yNzQxMiAwLjAyOTIxMjdDNS42MTQ2NyAwLjA5MjgxOTggNS45MjgwNSAwLjI1Nzg3NiA2LjE3MzE0IDAuNTAyNzNMNy45NDc1IDIuMjc4MzlDOC4xNjA2IDIuNDkxNTUgOC4zMTM4OCAyLjc1NzAxIDguMzkxOTcgMy4wNDgxM0M4LjQ3MDA2IDMuMzM5MjUgOC40NzAyIDMuNjQ1NzggOC4zOTIzOSAzLjkzNjk4TDcuOTM1NzkgNS42NDEwOUwxMi44NjYgMTAuNTcxM0MxMi45MDg1IDEwLjYxMzYgMTIuOTQyMiAxMC42NjM5IDEyLjk2NTIgMTAuNzE5M0MxMi45ODgyIDEwLjc3NDYgMTMgMTAuODM0IDEzIDEwLjg5MzlWMTIuNTQ0N0MxMi45OTkzIDEyLjY2NTIgMTIuOTUxMSAxMi43ODA3IDEyLjg2NTkgMTIuODY1OUMxMi43ODA3IDEyLjk1MTEgMTIuNjY1MiAxMi45OTkzIDEyLjU0NDcgMTNIMTAuODkzOUMxMC43OTI2IDEyLjk5OTggMTAuNjk0MiAxMi45NjU5IDEwLjYxNDIgMTIuOTAzOEMxMC41MzQxIDEyLjg0MTYgMTAuNDc3IDEyLjc1NDcgMTAuNDUxNiAxMi42NTY2TDEwLjIwNDUgMTEuNjc5Nkw5LjMzMDMgMTEuNTEzMUM5LjI0MzIyIDExLjQ5NjggOS4xNjI4MiAxMS40NTUzIDkuMDk5MDMgMTEuMzkzOEM5LjAzNTIzIDExLjMzMjMgOC45OTA4MiAxMS4yNTM1IDguOTcxMjcgMTEuMTY3MUw4LjczMzIxIDEwLjExNzNMNy44OTAyNiAxMC4wMzY3QzcuNzg0NzkgMTAuMDI3NCA3LjY4NjA4IDkuOTgwOCA3LjYxMTg4IDkuOTA1MjhMNS42NDEwOSA3LjkzNTc5TDMuOTM2OTcgOC4zOTIzOUMzLjY0NTggOC40NzA0NyAzLjMzOTE5IDguNDcwNDYgMy4wNDgwMiA4LjM5MjM2QzIuNzU2ODUgOC4zMTQyNiAyLjQ5MTQgOC4xNjA4MiAyLjI3ODM5IDcuOTQ3NUwwLjUwMjcyOSA2LjE3MzE0QzAuMjU3ODc1IDUuOTI4MDUgMC4wOTI4MjAyIDUuNjE0NjcgMC4wMjkyMTMgNS4yNzQxMkMtMC4wMzQzOTQzIDQuOTMzNTcgMC4wMDY0MTcyNyA0LjU4MTc0IDAuMTQ2Mjk2IDQuMjY0NzlaTTMuNjcwMyA1LjA4OTUzQzMuODEwNjEgNS4yMjk2OCAzLjk4OTMyIDUuMzI1MDggNC4xODM4NSA1LjM2MzY5QzQuMzc4MzcgNS40MDIyOSA0LjU3OTk3IDUuMzgyMzYgNC43NjMxNyA1LjMwNjQxQzQuOTQ2MzYgNS4yMzA0NyA1LjEwMjk0IDUuMTAxOTEgNS4yMTMwOSA0LjkzN0M1LjMyMzI0IDQuNzcyMSA1LjM4MjAzIDQuNTc4MjMgNS4zODIwMyA0LjM3OTkxQzUuMzgyMDMgNC4xODE2IDUuMzIzMjQgMy45ODc3MyA1LjIxMzA5IDMuODIyODNDNS4xMDI5NCAzLjY1NzkyIDQuOTQ2MzYgMy41MjkzNiA0Ljc2MzE3IDMuNDUzNDJDNC41Nzk5NyAzLjM3NzQ3IDQuMzc4MzcgMy4zNTc1NCA0LjE4Mzg1IDMuMzk2MTRDMy45ODkzMiAzLjQzNDc1IDMuODEwNjEgMy41MzAxNSAzLjY3MDMgMy42NzAzQzMuNTc2ODkgMy43NjMzNiAzLjUwMjc3IDMuODczOTUgMy40NTIxOSAzLjk5NTcyQzMuNDAxNjIgNC4xMTc1IDMuMzc1NTggNC4yNDgwNiAzLjM3NTU4IDQuMzc5OTFDMy4zNzU1OCA0LjUxMTc3IDMuNDAxNjIgNC42NDIzMyAzLjQ1MjE5IDQuNzY0MTFDMy41MDI3NyA0Ljg4NTg4IDMuNTc2ODkgNC45OTY0NyAzLjY3MDMgNS4wODk1M1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNmZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMC44XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdGl0bGUtc3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0lmU3VwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG90ZWxDYXRlZ29yeT8uYm9keWV4dHJhPy5uYW1lSWRlbnRpZmllclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWhvdGVsLXN1Ym1lbnVzXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIml0ZW0ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXN1Ym1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBpdGVtLmxhYmVsIH19PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibS1vcHRpb25zbW9iaWxlXCI+XG4gICAgICAgIEBpZiAoZmxvYXRpbmdCdXR0b25zPy5saW5rcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWNoZWNraW5nLW9ubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tY2hlY2tpbmctb25saW5lLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGlua1R5cGVdPVwiZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXT8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwibS1tZW51bW9iaWxlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBYnJpciBtZW7DulwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImJ1cmdlci1tZW51XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzaG93TWVudUJ1cmdlcigpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChmbG9hdGluZ0J1dHRvbnM/LnRleHRzQnV0dG9ucz8ubWVudVRleHQpIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBmbG9hdGluZ0J1dHRvbnM/LnRleHRzQnV0dG9ucz8ubWVudVRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj4tPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIzN1wiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjNcIlxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzcgMjNcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PVwiMC43XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMzYuMjMzOCAwSDBWMS44MTk2M0gzNi4yMzM4VjBaXCIgZmlsbD1cIiM1MTUwNTBcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zNi4yMzM4IDEwLjU4NTlIMFYxMi40MDY2SDM2LjIzMzhWMTAuNTg1OVpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zNi4yMzM4IDIxLjE3OTdIMFYyMi45OTkzSDM2LjIzMzhWMjEuMTc5N1pcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM1MTUwNTBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8udGV4dHNCdXR0b25zPy5ib29rdGV4dCkge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tYm9va21vYmlsZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5FbmdpbmVNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInN0eWxlcz8ucHJpbWFyeSA/PyAnI2ZmNDMzOCdcIlxuICAgICAgICAgICAgICAgID57eyBmbG9hdGluZ0J1dHRvbnM/LnRleHRzQnV0dG9ucz8uYm9va3RleHQgfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBpZD1cImJ1cmdlci1tZW51XCIgY2xhc3M9XCJtLWJ1cmdlci1tZW51XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2VycmFyIG1lbsO6XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzaG93TWVudUJ1cmdlcigpXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICBjb2xvcjogc3R5bGVzID09PSB1bmRlZmluZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChzdHlsZXM/LnByaW1hcnkgJiYgaG90ZWwgJiYgaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxNFwiXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjEzXCJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxM1wiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjMzNjc3IDAuNzM5NDAzQzEuNTE5MzcgMC41NTc3MyAxLjc2Njk2IDAuNDU1NjI4IDIuMDI0NTQgMC40NTYyODRDMi4yODIwMiAwLjQ1Njk3NSAyLjUyODYxIDAuNTYwMzYyIDIuNzEwMjQgMC43NDI4NTZMNy4wODU0NiA1LjE0MDE4TDExLjQzNDQgMC43NDAwOTRDMTEuNjE2IDAuNTU3NTY1IDExLjg2MjcgMC40NTQyNiAxMi4xMjAxIDAuNDUzNTIyQzEyLjM3NzcgMC40NTI4NjUgMTIuNjI1MyAwLjU1NDk2OCAxMi44MDc5IDAuNzM2NjQxQzEyLjk5MDQgMC45MTgyODIgMTMuMDkzOCAxLjE2NDg0IDEzLjA5NDUgMS40MjIzNEMxMy4wOTUxIDEuNjc5OTIgMTIuOTkzIDEuOTI3NTEgMTIuODExNCAyLjExMDExTDguMzUyNTkgNi41OTA5OUwxMi43NDA5IDExLjAwMTRDMTIuOTIyNiAxMS4xODQgMTMuMDI0NyAxMS40MzE3IDEzLjAyNDEgMTEuNjg5MkMxMy4wMjM0IDExLjk0NjcgMTIuOTE5OSAxMi4xOTMzIDEyLjczNzUgMTIuMzc0OUMxMi41NTQ5IDEyLjU1NjYgMTIuMzA3MyAxMi42NTg3IDEyLjA0OTcgMTIuNjU4QzExLjc5MjIgMTIuNjU3MyAxMS41NDU2IDEyLjU1NCAxMS4zNjQgMTIuMzcxNEw2Ljk4OTQ4IDcuOTc0ODJMMi42NDA1IDEyLjM3NDlDMi40NTg4NSAxMi41NTc1IDIuMjExNjQgMTIuNjYwMSAxLjk1NDExIDEyLjY2MDhDMS42OTY2MyAxMi42NjE0IDEuNDQ5NiAxMi41NTk5IDEuMjY3MDIgMTIuMzc4NEMxLjA4NDQ5IDEyLjE5NjcgMC45ODExOCAxMS45NTAxIDAuOTgwNDUzIDExLjY5MjdDMC45Nzk3OTcgMTEuNDM1MSAxLjA4MTkgMTEuMTg3NSAxLjI2MzU3IDExLjAwNDlMNS43MjA5NyA2LjUyNDAxTDEuMzMzMzIgMi4xMTI4OEMxLjE1MTc3IDEuOTMwMzcgMS4wNTAzMyAxLjY4MzIxIDEuMDUwODkgMS40MjU3OUMxLjA1MTU0IDEuMTY4MjUgMS4xNTQyMiAwLjkyMTA2OSAxLjMzNjc3IDAuNzM5NDAzWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cInN0eWxlcz8ucHJpbWFyeSA/PyAnI2ZmZidcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBzcmM9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb25zL2Nsb3NlLXNtYWxsLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICBAaWYgKHN0eWxlcz8ucHJpbWFyeSAmJiBob3RlbCAmJiBpdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWNrZ3JvdW5kLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJzdHlsZXM/LnByaW1hcnkgPz8gJyNmZjQzMzgnXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIEBpZiAobG9nb3M/LmxvZ29NZW51KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJtZW51Py5bMF0/LnVybCA/PyAnL2VzL2hvbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJtZW51Py5bMF0/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVudT8uWzBdPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tbG9nb1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzPy5wcmltYXJ5ICYmIGhvdGVsICYmIGl0ZW1zPy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJsb2dvcz8ubG9nb01lbnU/LnNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJsb2dvcz8ubG9nb01lbnU/LmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaG90ZWwgJiYgaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJpdGVtcz8uWzBdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtcz8uWzBdPy5saW5rVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tdGl0bGVcIj57eyBob3RlbCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoaG90ZWwgJiYgaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWxpbmtzIGhvdGVsLW1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tbGlua3MtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLXN1Ym1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibWVudT8uWzBdPy51cmwgPz8gJy9lcy9ob21lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIm1lbnU/LlswXT8ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVudT8uWzBdPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWxvZ29cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLWhvdmVyLWNvbG9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM/LnByaW1hcnlIb3ZlciA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXM/LnByaW1hcnkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlZDNiMzcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtZW51Py5bMF0/LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImxvZ29zPy5sb2dvTWVudT8uc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJsb2dvcz8ubG9nb01lbnU/LmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKG1lbnU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaG90ZWwgJiYgaXRlbXM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ20tbGlua3MgbWVudS1nZW5lcmFsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ20tbGlua3MnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1saW5rcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJidWlsZE1lbnVVcmwoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtUeXBlXT1cIml0ZW0ubGlua1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmNob3JDbGlja2VkKT1cImNsb3NlTWVudUJ1cmdlcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLWhvdmVyLWNvbG9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlcz8ucHJpbWFyeUhvdmVyID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzPy5wcmltYXJ5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlZDNiMzcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGZsb2F0aW5nQnV0dG9ucz8ubGlua3M/LlsxXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm0tY2hlY2tpbmctb25saW5lLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZmxvYXRpbmdCdXR0b25zPy5saW5rcz8uWzFdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rVHlwZV09XCJmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxpbmtUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmbG9hdGluZ0J1dHRvbnM/LmxpbmtzPy5bMV0/LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb290ZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJtYWlsdG86XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTcgMTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjQ2NzEgMTMuMTUxOEgyLjY3NzQxQzIuMDQ3NTEgMTMuMTUxOCAxLjQ1NTQ5IDEyLjkwNjggMS4wMTA4NiAxMi40NjEzQzAuNTY1Mzc1IDEyLjAxNTggMC4zMjAzMTIgMTEuNDIzOCAwLjMyMDMxMiAxMC43OTM5VjIuMzgxOThDMC4zMjAzMTIgMi4zNzUyNCAwLjMyMDMxMiAyLjM2NzY2IDAuMzIwMzEyIDIuMzYwOTNDMC4zMjM2ODEgMS43MzYwOCAwLjU2ODc0NCAxLjE0OTEyIDEuMDEwODYgMC43MDYxNjhDMS40NTU0OSAwLjI2MDY4OCAyLjA0NzUxIDAuMDE1NjI1IDIuNjc3NDEgMC4wMTU2MjVIMTQuNDY3MUMxNS4wOTcgMC4wMTU2MjUgMTUuNjg5IDAuMjYwNjg4IDE2LjEzMzYgMC43MDYxNjhDMTYuNTc1NyAxLjE0OTEyIDE2LjgyMDggMS43MzYwOCAxNi44MjQyIDIuMzYwOTNDMTYuODI0MiAyLjM2NzY2IDE2LjgyNDIgMi4zNzUyNCAxNi44MjQyIDIuMzgxOThWMTAuNzkzOUMxNi44MjQyIDExLjQyMzggMTYuNTc5MSAxMi4wMTU4IDE2LjEzMzYgMTIuNDYxM0MxNS42ODkgMTIuOTA2OCAxNS4wOTcgMTMuMTUxOCAxNC40NjcxIDEzLjE1MThaTTEuNjY2ODYgMy42MzA4NFYxMC43OTMxQzEuNjY2ODYgMTEuMDU5MiAxLjc3NDY0IDExLjMxOTQgMS45NjMyOCAxMS41MDcyQzIuMTU0NDQgMTEuNjk4MyAyLjQwNzkxIDExLjgwMzYgMi42NzgyMyAxMS44MDM2SDE0LjQ2NzlDMTQuNzMzMiAxMS44MDM2IDE0Ljk5NDIgMTEuNjk1OCAxNS4xODI4IDExLjUwNzJDMTUuMzcxNSAxMS4zMTk0IDE1LjQ3OTMgMTEuMDU5MiAxNS40NzkzIDEwLjc5MzFWMy42MzA4NEw4Ljk0Njk5IDcuOTg1NDRDOC43MjEzIDguMTM3MDIgOC40MjU3IDguMTM3MDIgOC4yMDAwMSA3Ljk4NTQ0TDEuNjY2ODYgMy42MzA4NFpNMS43MTk5IDIuMDQ3NjVMOC41NzIyNCA2LjYxNjE1TDE1LjQyNDYgMi4wNDc2NUMxNS4zNzQ5IDEuOTAyODEgMTUuMjkzMiAxLjc2OTc2IDE1LjE4MiAxLjY1ODZDMTQuOTkzNCAxLjQ2OTk3IDE0LjczMzIgMS4zNjIxNyAxNC40NjcxIDEuMzYyMTdIMi42Nzc0MUMyLjQwNzkzIDEuMzYyMTcgMi4xNTM2MSAxLjQ2NzQ0IDEuOTYyNDUgMS42NTg2QzEuODUxMjkgMS43Njk3NiAxLjc2OTU5IDEuOTAyODEgMS43MTk5IDIuMDQ3NjVaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxhIChjbGljayk9XCJvcGVuT2ZmZXJQb3B1cCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE3Ljk0MSAxNS4xODVDMTYuOTM4IDE0LjE3OSAxNS42MDIgMTMuNjI1IDE0LjE3OCAxMy42MjVINS4zMjFDMy44OTkgMTMuNjI1IDIuNTYzIDE0LjE3OSAxLjU1OCAxNS4xODVDMC41NTIwMDEgMTYuMTkgLTAuMDAwOTk4NjQ2IDE3LjUyNiAxLjM1Mzg3ZS0wNiAxOC45NDhWMjEuMTYyQzEuMzUzODdlLTA2IDIxLjY1NSAwLjQwMDAwMSAyMi4wNTYgMC44OTQwMDEgMjIuMDU2QzEuMzg2IDIyLjA1NiAxLjc4NyAyMS42NTYgMS43ODcgMjEuMTYyVjE4Ljk0OEMxLjc4NyAxOC4wMDQgMi4xNTUgMTcuMTE1IDIuODIzIDE2LjQ0N0MzLjQ4OCAxNS43OCA0LjM3NiAxNS40MTIgNS4zMjIgMTUuNDEySDE0LjE4QzE1LjEyNSAxNS40MTIgMTYuMDEzIDE1Ljc3OSAxNi42NzkgMTYuNDQ3QzE3LjM0NyAxNy4xMTMgMTcuNzE0IDE4LjAwMiAxNy43MTQgMTguOTQ4VjIxLjE2MkMxNy43MTQgMjEuNjU1IDE4LjExNCAyMi4wNTYgMTguNjA4IDIyLjA1NkMxOS4xIDIyLjA1NiAxOS41MDEgMjEuNjU2IDE5LjUwMSAyMS4xNjJWMTguOTQ4QzE5LjUwMSAxNy41MjYgMTguOTQ3IDE2LjE5IDE3Ljk0MSAxNS4xODVaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS43NTA2OSAxMC45Nzk5QzEyLjY4NTcgMTAuOTc5OSAxNS4wNzI3IDguNTkyOTQgMTUuMDcyNyA1LjY1Nzk0QzE1LjA3MjcgMi43MjI5NCAxMi42ODU3IDAuMzM1OTM4IDkuNzUwNjkgMC4zMzU5MzhDNi44MTU2OSAwLjMzNTkzOCA0LjQyOTY5IDIuNzIyOTQgNC40Mjk2OSA1LjY1Nzk0QzQuNDI5NjkgOC41OTI5NCA2LjgxNTY5IDEwLjk3OTkgOS43NTA2OSAxMC45Nzk5Wk05Ljc1MDY5IDIuMTIxOTRDMTEuNzAwNyAyLjEyMTk0IDEzLjI4NjcgMy43MDc5NCAxMy4yODY3IDUuNjU3OTRDMTMuMjg2NyA3LjYwNzk0IDExLjcwMDcgOS4xOTM5NCA5Ljc1MDY5IDkuMTkzOTRDNy44MDE2OSA5LjE5Mzk0IDYuMjE1NjkgNy42MDc5NCA2LjIxNTY5IDUuNjU3OTRDNi4yMTU2OSAzLjcwNzk0IDcuODAxNjkgMi4xMjE5NCA5Ljc1MDY5IDIuMTIxOTRaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYT4gLS0+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtLWxhbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zcmM9XCIjaWRpb21hcy1mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTGFuZ3VhZ2VzTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjIzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMyAyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuNSAyM0M5LjIyNTUyIDIzIDcuMDAyMTEgMjIuMzI1NSA1LjExMDk1IDIxLjA2MTlDMy4yMTk3OCAxOS43OTgzIDEuNzQ1OCAxOC4wMDIyIDAuODc1MzkgMTUuOTAwOUMwLjAwNDk4Mjc3IDEzLjc5OTUgLTAuMjIyNzU2IDExLjQ4NzIgMC4yMjA5NzQgOS4yNTY0NkMwLjY2NDcwNCA3LjAyNTY4IDEuNzU5OTcgNC45NzY1OCAzLjM2ODI4IDMuMzY4MjhDNC45NzY1OCAxLjc1OTk3IDcuMDI1NjggMC42NjQ3MDQgOS4yNTY0NiAwLjIyMDk3NEMxMS40ODcyIC0wLjIyMjc1NiAxMy43OTk1IDAuMDA0OTgyNzcgMTUuOTAwOSAwLjg3NTM5QzE4LjAwMjIgMS43NDU4IDE5Ljc5ODMgMy4yMTk3OCAyMS4wNjE5IDUuMTEwOTVDMjIuMzI1NSA3LjAwMjExIDIzIDkuMjI1NTIgMjMgMTEuNUMyMi45OTY2IDE0LjU0ODkgMjEuNzgzOSAxNy40NzIgMTkuNjI4IDE5LjYyOEMxNy40NzIgMjEuNzgzOSAxNC41NDg5IDIyLjk5NjYgMTEuNSAyM1pNMTEuNSAxLjYwNDY2QzkuNTQyODkgMS42MDQ2NiA3LjYyOTcyIDIuMTg1MDEgNi4wMDI0NCAzLjI3MjMyQzQuMzc1MTYgNC4zNTk2NCAzLjEwNjg1IDUuOTA1MDggMi4zNTc4OSA3LjcxMzIyQzEuNjA4OTQgOS41MjEzNSAxLjQxMjk4IDExLjUxMSAxLjc5NDc5IDEzLjQzMDVDMi4xNzY2MSAxNS4zNSAzLjExOTA1IDE3LjExMzIgNC41MDI5NCAxOC40OTcxQzUuODg2ODIgMTkuODgxIDcuNjUwMDEgMjAuODIzNCA5LjU2OTUyIDIxLjIwNTJDMTEuNDg5IDIxLjU4NyAxMy40Nzg2IDIxLjM5MTEgMTUuMjg2OCAyMC42NDIxQzE3LjA5NDkgMTkuODkzMiAxOC42NDA0IDE4LjYyNDggMTkuNzI3NyAxNi45OTc2QzIwLjgxNSAxNS4zNzAzIDIxLjM5NTMgMTMuNDU3MSAyMS4zOTUzIDExLjVDMjEuMzkyNSA4Ljg3NjQ2IDIwLjM0OTEgNi4zNjExOSAxOC40OTM5IDQuNTA2MDZDMTYuNjM4OCAyLjY1MDk0IDE0LjEyMzUgMS42MDc0OSAxMS41IDEuNjA0NjZaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuNDk5NCAyM0M4LjE5OTEzIDIzIDYuNDE3OTcgMTcuMDc0NiA2LjQxNzk3IDExLjVDNi40MTc5NyA1LjkyNTQ0IDguMTk5MTMgMCAxMS40OTk0IDBDMTQuNzk5NiAwIDE2LjU4MDggNS45MjU0NCAxNi41ODA4IDExLjVDMTYuNTgwOCAxNy4wNzQ2IDE0Ljc5OTYgMjMgMTEuNDk5NCAyM1pNMTEuNDk5NCAxLjYwNDY1QzkuODU4MzQgMS42MDQ2NSA4LjAyMjYyIDUuODM2NjUgOC4wMjI2MiAxMS41QzguMDIyNjIgMTcuMTYzMyA5Ljg1ODM0IDIxLjM5NTMgMTEuNDk5NCAyMS4zOTUzQzEzLjE0MDQgMjEuMzk1MyAxNC45NzYxIDE3LjE2MzMgMTQuOTc2MSAxMS41QzE0Ljk3NjEgNS44MzY2NSAxMy4xNDA0IDEuNjA0NjUgMTEuNDk5NCAxLjYwNDY1WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjQ5OTcgNi45NTQxN0MxMC4yMTMgNi45NTM1NCA4LjkzMjY0IDYuNzczNTIgNy42OTU2MyA2LjQxOTI5QzYuMjMyMTEgNi4wMDA4MSA0Ljg1NTM0IDUuMzIzNjYgMy42MzA1MSA0LjQxOTg5QzMuNTM2NjMgNC4zNjExMiAzLjQ1NTkzIDQuMjgzNTUgMy4zOTM1IDQuMTkyMDZDMy4zMzEwNyA0LjEwMDU3IDMuMjg4MjYgMy45OTcxNSAzLjI2Nzc2IDMuODg4M0MzLjI0NzI3IDMuNzc5NDYgMy4yNDk1MyAzLjY2NzU0IDMuMjc0NDEgMy41NTk2MUMzLjI5OTI5IDMuNDUxNjggMy4zNDYyNCAzLjM1MDA3IDMuNDEyMzIgMy4yNjExOEMzLjQ3ODM5IDMuMTcyMjkgMy41NjIxNiAzLjA5ODA0IDMuNjU4MzQgMy4wNDMxMUMzLjc1NDUyIDIuOTg4MTkgMy44NjEwMyAyLjk1Mzc3IDMuOTcxMTcgMi45NDIwMkM0LjA4MTMgMi45MzAyOCA0LjE5MjY4IDIuOTQxNDcgNC4yOTgyOCAyLjk3NDg4QzQuNDAzODggMy4wMDgyOSA0LjUwMTQxIDMuMDYzMjEgNC41ODQ3NSAzLjEzNjE3QzUuNjU2NiAzLjkyMzg4IDYuODYwNDEgNC41MTQwMSA4LjEzOTU4IDQuODc4ODJDMTAuMzM3MSA1LjUwNDY1IDEyLjY2NTYgNS41MDQ2NSAxNC44NjMxIDQuODc4ODJDMTYuMTQxNCA0LjUxMjg1IDE3LjM0NDEgMy45MjE2MiAxOC40MTQ3IDMuMTMyOTZDMTguNDk5IDMuMDY2MjUgMTguNTk1OSAzLjAxNzE3IDE4LjY5OTYgMi45ODg2NEMxOC44MDMzIDIuOTYwMSAxOC45MTE2IDIuOTUyNyAxOS4wMTgyIDIuOTY2ODdDMTkuMTI0OCAyLjk4MTAzIDE5LjIyNzQgMy4wMTY0OCAxOS4zMjAxIDMuMDcxMTFDMTkuNDEyNyAzLjEyNTczIDE5LjQ5MzQgMy4xOTg0MSAxOS41NTczIDMuMjg0ODRDMTkuNjIxMyAzLjM3MTI2IDE5LjY2NzMgMy40Njk2NiAxOS42OTI1IDMuNTc0MkMxOS43MTc3IDMuNjc4NzMgMTkuNzIxNiAzLjc4NzI2IDE5LjcwNCAzLjg5MzM0QzE5LjY4NjQgMy45OTk0MyAxOS42NDc3IDQuMTAwODkgMTkuNTkwMiA0LjE5MTcxQzE5LjUzMjYgNC4yODI1MyAxOS40NTc0IDQuMzYwODYgMTkuMzY4OSA0LjQyMjAzQzE4LjE0NDEgNS4zMjU1NiAxNi43NjczIDYuMDAyMzYgMTUuMzAzOCA2LjQyMDM2QzE0LjA2NjggNi43NzQyMiAxMi43ODY0IDYuOTUzODkgMTEuNDk5NyA2Ljk1NDE3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4Ljg5MTMgMjAuMDI0NkMxOC43MTk4IDIwLjAyNDQgMTguNTUzIDE5Ljk2OTMgMTguNDE1MiAxOS44NjczQzE3LjM0MzcgMTkuMDc4MSAxNi4xMzk4IDE4LjQ4NjUgMTQuODYwNCAxOC4xMjA0QzEyLjY2MjkgMTcuNDk0NSAxMC4zMzQ0IDE3LjQ5NDUgOC4xMzY4OSAxOC4xMjA0QzYuODU4NTYgMTguNDg2MyA1LjY1NTgyIDE5LjA3NzYgNC41ODUyNiAxOS44NjYyQzQuNTAwOTMgMTkuOTMyOSA0LjQwNDA2IDE5Ljk4MiA0LjMwMDM4IDIwLjAxMDZDNC4xOTY3MSAyMC4wMzkxIDQuMDg4MzYgMjAuMDQ2NSAzLjk4MTc3IDIwLjAzMjNDMy44NzUxOCAyMC4wMTgyIDMuNzcyNTMgMTkuOTgyNyAzLjY3OTkxIDE5LjkyODFDMy41ODcyOSAxOS44NzM1IDMuNTA2NTkgMTkuODAwOCAzLjQ0MjYyIDE5LjcxNDRDMy4zNzg2NCAxOS42Mjc5IDMuMzMyNjkgMTkuNTI5NSAzLjMwNzQ5IDE5LjQyNUMzLjI4MjMgMTkuMzIwNSAzLjI3ODM3IDE5LjIxMTkgMy4yOTU5NSAxOS4xMDU4QzMuMzEzNTIgMTguOTk5OCAzLjM1MjI0IDE4Ljg5ODMgMy40MDk4MSAxOC44MDc1QzMuNDY3MzcgMTguNzE2NyAzLjU0MjYgMTguNjM4MyAzLjYzMTAzIDE4LjU3NzJDNC44NTU4NiAxNy42NzM2IDYuMjMyNjQgMTYuOTk2OCA3LjY5NjE1IDE2LjU3ODhDMTAuMTgzNyAxNS44Njk2IDEyLjgyIDE1Ljg2OTYgMTUuMzA3NSAxNi41Nzg4QzE2Ljc3MTEgMTYuOTk3MyAxOC4xNDc4IDE3LjY3NDUgMTkuMzcyNyAxOC41NzgyQzE5LjUwODcgMTguNjc4NSAxOS42MDk2IDE4LjgxOTIgMTkuNjYwOSAxOC45ODAyQzE5LjcxMjEgMTkuMTQxMiAxOS43MTEyIDE5LjMxNDQgMTkuNjU4MSAxOS40NzQ4QzE5LjYwNTEgMTkuNjM1MyAxOS41MDI3IDE5Ljc3NDkgMTkuMzY1NSAxOS44NzM2QzE5LjIyODMgMTkuOTcyMyAxOS4wNjM1IDIwLjAyNTIgMTguODk0NSAyMC4wMjQ2SDE4Ljg5MTNaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjIuMTk3NyAxMi4zSDAuODAyMzI1QzAuNTg5NTM1IDEyLjMgMC4zODU0NjEgMTIuMjE1NCAwLjIzNDk5NiAxMi4wNjVDMC4wODQ1MzA1IDExLjkxNDUgMCAxMS43MTA0IDAgMTEuNDk3NkMwIDExLjI4NDggMC4wODQ1MzA1IDExLjA4MDggMC4yMzQ5OTYgMTAuOTMwM0MwLjM4NTQ2MSAxMC43Nzk4IDAuNTg5NTM1IDEwLjY5NTMgMC44MDIzMjUgMTAuNjk1M0gyMi4xOTc3QzIyLjQxMDUgMTAuNjk1MyAyMi42MTQ1IDEwLjc3OTggMjIuNzY1IDEwLjkzMDNDMjIuOTE1NSAxMS4wODA4IDIzIDExLjI4NDggMjMgMTEuNDk3NkMyMyAxMS43MTA0IDIyLjkxNTUgMTEuOTE0NSAyMi43NjUgMTIuMDY1QzIyLjYxNDUgMTIuMjE1NCAyMi40MTA1IDEyLjMgMjIuMTk3NyAxMi4zWlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|