@stemy/ngx-utils 17.3.13 → 17.3.15
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/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +2 -2
- package/esm2022/ngx-utils/directives/dropdown-content.directive.mjs +4 -3
- package/fesm2022/stemy-ngx-utils.mjs +4 -3
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/ngx-utils.imports.d.ts +2 -2
- package/package.json +1 -1
|
@@ -96,7 +96,7 @@ export class DynamicTableComponent {
|
|
|
96
96
|
this.hasQuery = this.cols.some(col => this.realColumns[col].filter);
|
|
97
97
|
if (changes.orderBy && this.realColumns && this.cols) {
|
|
98
98
|
const sortable = this.cols.filter(c => this.realColumns[c].sort);
|
|
99
|
-
this.orderBy = this.orderBy
|
|
99
|
+
this.orderBy = sortable.includes(this.orderBy) ? this.orderBy : sortable[0] || null;
|
|
100
100
|
}
|
|
101
101
|
if (!changes.data && !changes.parallelData && !changes.dataLoader && !changes.itemsPerPage && !changes.orderBy && !changes.orderDescending)
|
|
102
102
|
return;
|
|
@@ -260,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
260
260
|
type: ContentChildren,
|
|
261
261
|
args: [DynamicTableTemplateDirective]
|
|
262
262
|
}] } });
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUFFLFVBQVUsRUFDM0IsS0FBSyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUFFLGlCQUFpQixFQUMvQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBS0gscUJBQXFCLEVBR3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUUxRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQVNqRCxNQUFNLE9BQU8scUJBQXFCO0lBb0Q5QixJQUFJLEtBQUs7UUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDO0lBdUJTLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLENBQXdCLEVBQUUsQ0FBd0I7UUFDeEYsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENB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QyxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUk1QyxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUkvQyxzQkFBc0I7c0JBRHJCLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUl6QyxVQUFVO3NCQURuQixTQUFTO3VCQUFDLFlBQVk7Z0JBSWIsa0JBQWtCO3NCQUQzQixlQUFlO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7XG4gICAgSVBhZ2luYXRpb25EYXRhLFxuICAgIElUYWJsZUNvbHVtbnMsXG4gICAgSVRhYmxlRGF0YVF1ZXJ5LFxuICAgIElUYWJsZVRlbXBsYXRlcyxcbiAgICBQYWdpbmF0aW9uSXRlbUNvbnRleHQsXG4gICAgVGFibGVDb2x1bW5zLFxuICAgIFRhYmxlRGF0YUxvYWRlclxufSBmcm9tIFwiLi4vLi4vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5pbXBvcnQge1VuaXF1ZVV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvdW5pcXVlLnV0aWxzXCI7XG5cbmltcG9ydCB7RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtdGFibGUtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQge0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9kcm9wZG93bi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7TWF0aFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWF0aC51dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtdGFibGVcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICAgIEBJbnB1dCgpIGRhdGFMb2FkZXI6IFRhYmxlRGF0YUxvYWRlcjtcbiAgICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZDogYW55O1xuICAgIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcbiAgICBASW5wdXQoKSB1cmxQYXJhbTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBhcmFsbGVsRGF0YTogYW55W107XG4gICAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5zO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIGZvciBkaXNwbGF5aW5nIGEgc2ltcGxlIGZpbHRlciBzZWFyY2ggYm94XG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciBmb3Igc3BlY2lmeWluZyBhIGxhYmVsIGZvciBmaWx0ZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIGZvciBzcGVjaWZ5aW5nIGEgcGxhY2Vob2xkZXIgZm9yIGZpbHRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgZm9yIGRpc3BsYXlpbmcgYW4gaXRlbSBwZXIgcGFnZSBzZWxlY3RvciBkcm9wZG93biB3aXRoIHRoZSBzcGVjaWZpZWQgbnVtYmVyc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNob3dJdGVtczogbnVtYmVyW107XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgZm9yIHNldHRpbmcgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGRpc3BsYXllZCBieSBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KCkgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gICAgQElucHV0KCkgdXBkYXRlVGltZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZpbHRlclRpbWU6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtYXhQYWdlczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGRpcmVjdGlvbkxpbmtzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGJvdW5kYXJ5TGlua3M6IGJvb2xlYW47XG4gICAgQElucHV0KCkgb3JkZXJCeTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB0ZXN0SWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSB0aXRsZVByZWZpeDogc3RyaW5nO1xuXG4gICAgdGFibGVJZDogc3RyaW5nO1xuICAgIHRlbXBsYXRlczogSVRhYmxlVGVtcGxhdGVzO1xuICAgIGZpbHRlcjogc3RyaW5nO1xuICAgIHF1ZXJ5OiBJVGFibGVEYXRhUXVlcnk7XG4gICAgaGFzUXVlcnk6IGJvb2xlYW47XG4gICAgcmVhbENvbHVtbnM6IElUYWJsZUNvbHVtbnM7XG4gICAgY29sczogc3RyaW5nW107XG5cbiAgICBnZXQgaXRlbXMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gIXRoaXMucGFnaW5hdGlvbiA/IFtdIDogdGhpcy5wYWdpbmF0aW9uLml0ZW1zO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoXCJyb3dUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICByb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoXCJ3cmFwcGVyVGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXG4gICAgd3JhcHBlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImNvbHVtbnNUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiZGVmYXVsdFJvd1RlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxuICAgIGRlZmF1bHRSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJkZWZhdWx0V3JhcHBlclRlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxuICAgIGRlZmF1bHRXcmFwcGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwicGFnaW5hdGlvblwiKVxuICAgIHByb3RlY3RlZCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBwcm90ZWN0ZWQgdGVtcGxhdGVEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBjb21wYXJlKG9yZGVyQnk6IHN0cmluZywgYTogUGFnaW5hdGlvbkl0ZW1Db250ZXh0LCBiOiBQYWdpbmF0aW9uSXRlbUNvbnRleHQpOiBudW1iZXIge1xuICAgICAgICBhID0gYS5pdGVtID8gYS5pdGVtW29yZGVyQnldIDogbnVsbDtcbiAgICAgICAgYiA9IGIuaXRlbSA/IGIuaXRlbVtvcmRlckJ5XSA6IG51bGw7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5jb21wYXJlKGEsIGIpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICB0aGlzLmRhdGFMb2FkZXIgPSB0aGlzLmxvYWRMb2NhbERhdGE7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIlwiO1xuICAgICAgICB0aGlzLnRhYmxlSWQgPSBVbmlxdWVVdGlscy51dWlkKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0ge307XG4gICAgICAgIHRoaXMuZmlsdGVyID0gXCJcIjtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHt9O1xuICAgICAgICB0aGlzLmhhc1F1ZXJ5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGVzdElkID0gXCJ0YWJsZVwiO1xuICAgICAgICB0aGlzLnRpdGxlUHJlZml4ID0gXCJsYWJlbFwiO1xuICAgICAgICB0aGlzLnJlYWxDb2x1bW5zID0ge307XG4gICAgfVxuXG4gICAgc2V0UHJvcGVydHkobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbGVtKSByZXR1cm47XG4gICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoYC0tJHtuYW1lfWAsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGhpcy50ZW1wbGF0ZURpcmVjdGl2ZXMucmVkdWNlKChyZXN1bHQsIGRpcmVjdGl2ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzQXJyYXkoZGlyZWN0aXZlLmNvbHVtbikpIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmUuY29sdW1uLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2NvbHVtbl0gPSBkaXJlY3RpdmU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoZGlyZWN0aXZlLmNvbHVtbikgfHwgZGlyZWN0aXZlLmNvbHVtbi5sZW5ndGggPT0gMCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIHJlc3VsdFtkaXJlY3RpdmUuY29sdW1uXSA9IGRpcmVjdGl2ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm93VGVtcGxhdGUgPSB0aGlzLnJvd1RlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdFJvd1RlbXBsYXRlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuY29sdW1ucykge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUgfHwgW107XG4gICAgICAgICAgICB0aGlzLnJlYWxDb2x1bW5zID0gT2JqZWN0VXRpbHMuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMucmVkdWNlKChyZXN1bHQsIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoY29sdW1uKSB8fCBjb2x1bW4ubGVuZ3RoID09IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2NvbHVtbl0gPSB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7Y29sdW1ufWAsIHNvcnQ6IGNvbHVtbn07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0sIHt9KSA6IE9iamVjdC5rZXlzKGNvbHVtbnMpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbHVtbnNba2V5XTtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9ICF2YWx1ZSB8fCBPYmplY3RVdGlscy5pc1N0cmluZyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7a2V5fWAsIHNvcnQ6IHZhbHVlfVxuICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSBhcyBJVGFibGVDb2x1bW5zKTtcbiAgICAgICAgICAgIHRoaXMuY29scyA9IE9iamVjdC5rZXlzKHRoaXMucmVhbENvbHVtbnMpO1xuICAgICAgICAgICAgY29uc3Qgc29ydGFibGUgPSB0aGlzLmNvbHMuZmlsdGVyKGMgPT4gdGhpcy5yZWFsQ29sdW1uc1tjXS5zb3J0KTtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeSB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMub3JkZXJCeSA9IHNvcnRhYmxlLmluY2x1ZGVzKHRoaXMub3JkZXJCeSkgPyB0aGlzLm9yZGVyQnkgOiBzb3J0YWJsZVswXSB8fCBudWxsO1xuICAgICAgICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuY29scy5yZWR1Y2UoKHJlcywgY29sKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVtjb2xdO1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgcmVzW2NvbF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgICAgdGhpcy5zZXRQcm9wZXJ0eShcImNlbGwtd2lkdGhcIiwgTWF0aFV0aWxzLnJvdW5kKDEwMCAvIHRoaXMuY29scy5sZW5ndGgsIDQpICsgXCIlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzUXVlcnkgPSB0aGlzLmNvbHMuc29tZShjb2wgPT4gdGhpcy5yZWFsQ29sdW1uc1tjb2xdLmZpbHRlcik7XG4gICAgICAgIGlmIChjaGFuZ2VzLm9yZGVyQnkgJiYgdGhpcy5yZWFsQ29sdW1ucyAmJiB0aGlzLmNvbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRhYmxlID0gdGhpcy5jb2xzLmZpbHRlcihjID0+IHRoaXMucmVhbENvbHVtbnNbY10uc29ydCk7XG4gICAgICAgICAgICB0aGlzLm9yZGVyQnkgPSB0aGlzLm9yZGVyQnkgaW4gc29ydGFibGUgPyB0aGlzLm9yZGVyQnkgOiBzb3J0YWJsZVswXSB8fCBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hhbmdlcy5kYXRhICYmICFjaGFuZ2VzLnBhcmFsbGVsRGF0YSAmJiAhY2hhbmdlcy5kYXRhTG9hZGVyICYmICFjaGFuZ2VzLml0ZW1zUGVyUGFnZSAmJiAhY2hhbmdlcy5vcmRlckJ5ICYmICFjaGFuZ2VzLm9yZGVyRGVzY2VuZGluZykgcmV0dXJuO1xuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKHRpbWU/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24pIHJldHVybjtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnJlZnJlc2godGltZSk7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVyKGZpbHRlcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyO1xuICAgICAgICB0aGlzLnJlZnJlc2godGhpcy5maWx0ZXJUaW1lID8/IDMwMCk7XG4gICAgfVxuXG4gICAgc2V0U29ydGluZyhjb2x1bW46IHN0cmluZywgdG9nZ2xlPzogRHJvcGRvd25EaXJlY3RpdmUpIHtcbiAgICAgICAgaWYgKHRvZ2dsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JkZXJEZXNjZW5kaW5nID0gY29sdW1uID09IHRoaXMub3JkZXJCeSAmJiAhdGhpcy5vcmRlckRlc2NlbmRpbmc7XG4gICAgICAgIHRoaXMub3JkZXJCeSA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuXG4gICAgc2V0UXVlcnlWYWx1ZShjOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMucmVhbENvbHVtbnNbY107XG4gICAgICAgIGlmICghY29sPy5maWx0ZXIpIHJldHVybjtcbiAgICAgICAgc3dpdGNoIChjb2wuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImVudW1cIjpcbiAgICAgICAgICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCh0aGlzLnF1ZXJ5W2NdIHx8IFtdKSBhcyBzdHJpbmdbXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gYCR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICBpZiAoc2V0Lmhhcyh2YWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldC5kZWxldGUodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNldC5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5xdWVyeVtjXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0LmFkZCh2YWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5W2NdID0gQXJyYXkuZnJvbShzZXQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImNoZWNrYm94XCI6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucXVlcnlbY10pIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlbY107XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5W2NdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5xdWVyeVtjXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlbY10gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZnJlc2godGhpcy5maWx0ZXJUaW1lID8/IDMwMCk7XG4gICAgfVxuXG4gICAgc2V0SXRlbXNQZXJQYWdlKGNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBjb3VudDtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuXG4gICAgbG9hZERhdGEgPSAocGFnZTogbnVtYmVyLCBpdGVtc1BlclBhZ2U6IG51bWJlcik6IFByb21pc2U8SVBhZ2luYXRpb25EYXRhPiA9PiB7XG4gICAgICAgIGNvbnN0IG9yZGVyQnkgPSB0aGlzLnJlYWxDb2x1bW5zW3RoaXMub3JkZXJCeV0/LnNvcnQ7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFMb2FkZXIocGFnZSwgaXRlbXNQZXJQYWdlLCBvcmRlckJ5LCB0aGlzLm9yZGVyRGVzY2VuZGluZywgdGhpcy5maWx0ZXIsIHRoaXMucXVlcnkpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgbG9hZExvY2FsRGF0YShwYWdlOiBudW1iZXIsIHJvd3NQZXJQYWdlOiBudW1iZXIsIG9yZGVyQnk6IHN0cmluZywgb3JkZXJEZXNjZW5kaW5nOiBib29sZWFuLCBmaWx0ZXI6IHN0cmluZyk6IFByb21pc2U8SVBhZ2luYXRpb25EYXRhPiB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgICAgICB0b3RhbDogMCxcbiAgICAgICAgICAgICAgICBpdGVtczogW11cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXBhcmU6IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyID0gb3JkZXJEZXNjZW5kaW5nXG4gICAgICAgICAgICA/IChhLCBiKSA9PiBEeW5hbWljVGFibGVDb21wb25lbnQuY29tcGFyZShvcmRlckJ5LCBiLCBhKVxuICAgICAgICAgICAgOiAoYSwgYikgPT4gRHluYW1pY1RhYmxlQ29tcG9uZW50LmNvbXBhcmUob3JkZXJCeSwgYSwgYik7XG4gICAgICAgIGNvbnN0IGZyb20gPSAocGFnZSAtIDEpICogcm93c1BlclBhZ2U7XG4gICAgICAgIGNvbnN0IGRhdGFMZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihyb3dzUGVyUGFnZSwgZGF0YUxlbmd0aCAtIGZyb20pO1xuICAgICAgICBjb25zdCBwYXJhbGxlbERhdGEgPSB0aGlzLnBhcmFsbGVsRGF0YSB8fCBbXTtcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmRhdGEubWFwKChpdGVtLCBpeCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQYWdpbmF0aW9uSXRlbUNvbnRleHQoaXRlbSwgcGFyYWxsZWxEYXRhW2l4XSB8fCB7fSwgZGF0YUxlbmd0aCwgaXgsIGl4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChPYmplY3RVdGlscy5pc1N0cmluZyhmaWx0ZXIpICYmIGZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJSeCA9IG5ldyBSZWdFeHAoZmlsdGVyLCBcImdpXCIpO1xuICAgICAgICAgICAgZGF0YSA9IGRhdGEuZmlsdGVyKGMgPT4gYy5maWx0ZXIoZmlsdGVyUngpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtcyA9IG9yZGVyQnkgPyBkYXRhLnNvcnQoY29tcGFyZSkuc3BsaWNlKGZyb20sIGxlbmd0aCkgOiBkYXRhLnNwbGljZShmcm9tLCBsZW5ndGgpO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChjb250ZXh0LCBpeCkgPT4ge1xuICAgICAgICAgICAgY29udGV4dC5pbmRleCA9IGZyb20gKyBpeDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgdG90YWw6IGRhdGFMZW5ndGgsXG4gICAgICAgICAgICBpdGVtczogaXRlbXNcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNjb2x1bW5UZW1wbGF0ZSBsZXQtY29udGV4dCBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LXRlbXBsYXRlPVwidGVtcGxhdGVcIj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgIDxzcGFuPnt7IGl0ZW1bY29sdW1uXSA9PSB1bmRlZmluZWQgfHwgaXRlbVtjb2x1bW5dID09IG51bGwgPyAnLScgOiBpdGVtW2NvbHVtbl0gfX08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3B1cmVUZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGUucmVmXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHRkIFtuZ0NsYXNzXT1cIidjb2x1bW4tJyArIGNvbHVtblwiXG4gICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCArICctJyArIGNvbHVtbiArICctJyArIGNvbnRleHQucm93SW5kZXhcIlxuICAgICAgICAqbmdJZj1cIiF0ZW1wbGF0ZSB8fCAhdGVtcGxhdGUucHVyZTsgZWxzZSBwdXJlVGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwiIXRlbXBsYXRlID8gZGVmYXVsdFRlbXBsYXRlIDogdGVtcGxhdGUucmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uc1RlbXBsYXRlIGxldC1jb250ZXh0PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCJcbiAgICAgICAgICAgICAgICAgIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJjb2x1bW5UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgIFthZGRpdGlvbmFsQ29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlc1tjb2x1bW5dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJvd1RlbXBsYXRlIGxldC1jb250ZXh0PlxuICAgIDx0ciBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgICAgI2VsZW1cbiAgICAgICAgW25nQ2xhc3NdPVwie2FjdGl2ZTogc2VsZWN0ZWQgPT09IGNvbnRleHQuaXRlbX1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uc1RlbXBsYXRlXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtdG9nZ2xlPVwidG9nZ2xlXCI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sPlxuICAgICAgICA8c3Bhbj57eyByZWFsQ29sdW1uc1tjb2x1bW5dLnRpdGxlIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eUNvbD5cbiAgICAgICAgPHNwYW4+LTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFsQ29sdW1uc1tjb2x1bW5dOyBlbHNlIGVtcHR5Q29sXCI+XG4gICAgICAgIDxhICpuZ0lmPVwicmVhbENvbHVtbnNbY29sdW1uXS5zb3J0OyBlbHNlIGRlZmF1bHRDb2xcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJbJ3NvcnQnLCBvcmRlckJ5ICE9PSBjb2x1bW4gPyAnJyA6IChvcmRlckRlc2NlbmRpbmcgPyAnc29ydC1kZXNjJyA6ICdzb3J0LWFzYycpXVwiXG4gICAgICAgICAgIChjbGljayk9XCJzZXRTb3J0aW5nKGNvbHVtbiwgdG9nZ2xlKVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgcmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdiBjbGFzcz1cImR5bmFtaWMtdGFibGVcIiAjcGFnaW5hdGlvbj1cInBhZ2luYXRpb25cIiBbcGFnaW5hdGlvbl09XCJsb2FkRGF0YVwiIFtwYWdlXT1cInBhZ2VcIiBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiXG4gICAgIFt1cGRhdGVUaW1lXT1cInVwZGF0ZVRpbWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtZmVhdHVyZXMtcm93XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZS1mZWF0dXJlcy1iZWZvcmVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaW5wdXQtd3JhcCB0YWJsZS1zZWFyY2gtZmlsdGVyXCIgKm5nSWY9XCJzaG93RmlsdGVyXCI+XG4gICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJmaWx0ZXJMYWJlbFwiIFthdHRyLmZvcl09XCJ0YWJsZUlkXCI+XG4gICAgICAgICAgICAgICAge3sgZmlsdGVyTGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJ0YWJsZUlkXCJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQgKyAnLWZpbHRlci1pbnB1dCdcIlxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRGaWx0ZXIoJGV2ZW50KVwiLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkcm9wZG93bi1ib3ggY29tcG9uZW50Q2xhc3M9XCJzb3J0LWRyb3Bkb3duXCIgI3NvcnREZD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgdG9nZ2xlLWNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2NvbHVtbjogb3JkZXJCeSwgdG9nZ2xlOiBzb3J0RGR9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIidzb3J0LWNvbHVtbiBzb3J0LScgKyBjb2x1bW5cIiAqbmdJZj1cInJlYWxDb2x1bW5zW2NvbHVtbl0uc29ydFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7Y29sdW1uOiBjb2x1bW59XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Ryb3Bkb3duLWJveD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWlucHV0LXdyYXAgdGFibGUtaXRlbXMtY291bnRcIiAqbmdJZj1cInNob3dJdGVtc1wiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICdsYWJlbC5pdGVtcy5iZWZvcmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGRyb3Bkb3duLWJveD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIHRvZ2dsZS1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtc1BlclBhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdW50IG9mIHNob3dJdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIidpdGVtLWNvdW50IGNvdW50LScgKyBjb3VudFwiIChjbGljayk9XCJzZXRJdGVtc1BlclBhZ2UoY291bnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY291bnQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Ryb3Bkb3duLWJveD5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICB7eyAnbGFiZWwuaXRlbXMuYWZ0ZXInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RhYmxlLWZlYXR1cmVzLWFmdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8cGFnaW5hdGlvbi1tZW51IFt1cmxQYXJhbV09XCJ1cmxQYXJhbVwiIFttYXhTaXplXT1cIm1heFBhZ2VzXCIgW2RpcmVjdGlvbkxpbmtzXT1cImRpcmVjdGlvbkxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgIFtib3VuZGFyeUxpbmtzXT1cImJvdW5kYXJ5TGlua3NcIj48L3BhZ2luYXRpb24tbWVudT5cbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRXcmFwcGVyVGVtcGxhdGU+XG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zdHJpcGVkXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sc1wiIFtuZ0NsYXNzXT1cIidoZWFkZXItY29sdW1uIGNvbHVtbi0nICsgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntjb2x1bW46IGNvbHVtbn1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cImhhc1F1ZXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHNcIiBbbmdDbGFzc109XCJbJ2NvbHVtbi0nICsgY29sdW1uLCAnZmlsdGVyLWNvbHVtbiddXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVhbENvbHVtbnNbY29sdW1uXS5maWx0ZXJcIiBbbmdTd2l0Y2hdPVwicmVhbENvbHVtbnNbY29sdW1uXS5maWx0ZXJUeXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2VudW0nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjb3B0aW9uSXRlbSBsZXQtb3B0aW9uPVwib3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAocmVhbENvbHVtbnNbY29sdW1uXS5lbnVtUHJlZml4ID8gcmVhbENvbHVtbnNbY29sdW1uXS5lbnVtUHJlZml4ICsgJy4nICsgb3B0aW9uIDogb3B0aW9uKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHJvcGRvd24tYm94IGNvbXBvbmVudENsYXNzPVwiZmlsdGVyLWJveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2ZpbHRlci1ib3gtJyArIGNvbHVtblwiIFtjbG9zZUluc2lkZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciB0b2dnbGUtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1wbGFjZWhvbGRlclwiICpuZ0lmPVwiIXF1ZXJ5W2NvbHVtbl1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJbJ29wdGlvbi0nICsgb3B0aW9uLCBjb2x1bW4gKyAnLW9wdGlvbi0nICsgb3B0aW9uLCBvcHRpb25dXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHF1ZXJ5W2NvbHVtbl0gfCB2YWx1ZXM7IGxldCBpeCA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpeCA+IDBcIj4sIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7b3B0aW9uOiBvcHRpb259XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIltjb2x1bW4gKyAnLW9wdGlvbicsICdvcHRpb24tJyArIG9wdGlvbiwgb3B0aW9uXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRRdWVyeVZhbHVlKGNvbHVtbiwgb3B0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcmVhbENvbHVtbnNbY29sdW1uXS5lbnVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cIid0b2dnbGUtbGluay0nICsgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwicXVlcnlbY29sdW1uXSB8IGluY2x1ZGVzOiBvcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uSXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7b3B0aW9uOiBvcHRpb259XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kcm9wZG93bi1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInRlc3RJZCArICctZmlsdGVyLScgKyBjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInJlYWxDb2x1bW5zW2NvbHVtbl0udGl0bGUgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicXVlcnlbY29sdW1uXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRRdWVyeVZhbHVlKGNvbHVtbiwgJGV2ZW50KVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQgKyAnLWZpbHRlci0nICsgY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJyZWFsQ29sdW1uc1tjb2x1bW5dLnRpdGxlIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInF1ZXJ5W2NvbHVtbl1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UXVlcnlWYWx1ZShjb2x1bW4sICRldmVudClcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBhZ2luYXRpb25JdGVtPVwibGV0IGNvbnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25neFRlbXBsYXRlT3V0bGV0XT1cInJvd1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZGl0aW9uYWxDb250ZXh0XT1cInRoaXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RhYmxlLXRvcF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJ3cmFwcGVyVGVtcGxhdGUgfHwgZGVmYXVsdFdyYXBwZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cInRoaXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZS1ib3R0b21dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cGFnaW5hdGlvbi1tZW51IFt1cmxQYXJhbV09XCJ1cmxQYXJhbVwiIFttYXhTaXplXT1cIm1heFBhZ2VzXCIgW2RpcmVjdGlvbkxpbmtzXT1cImRpcmVjdGlvbkxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgIFtib3VuZGFyeUxpbmtzXT1cImJvdW5kYXJ5TGlua3NcIj48L3BhZ2luYXRpb24tbWVudT5cbjwvZGl2PlxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2NvbXBvbmVudHMvZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFLSCxxQkFBcUIsRUFHeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU2pELE1BQU0sT0FBTyxxQkFBcUI7SUFvRDlCLElBQUksS0FBSztRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ3pELENBQUM7SUF1QlMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFlLEVBQUUsQ0FBd0IsRUFBRSxDQUF3QjtRQUN4RixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FB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QUFJLEVBQUM7Z0JBSS9DLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSTVDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSS9DLHNCQUFzQjtzQkFEckIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSXpDLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsWUFBWTtnQkFJYixrQkFBa0I7c0JBRDNCLGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7XG4gICAgSVBhZ2luYXRpb25EYXRhLFxuICAgIElUYWJsZUNvbHVtbnMsXG4gICAgSVRhYmxlRGF0YVF1ZXJ5LFxuICAgIElUYWJsZVRlbXBsYXRlcyxcbiAgICBQYWdpbmF0aW9uSXRlbUNvbnRleHQsXG4gICAgVGFibGVDb2x1bW5zLFxuICAgIFRhYmxlRGF0YUxvYWRlclxufSBmcm9tIFwiLi4vLi4vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XG5pbXBvcnQge1VuaXF1ZVV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvdW5pcXVlLnV0aWxzXCI7XG5cbmltcG9ydCB7RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtdGFibGUtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQge0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9kcm9wZG93bi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7TWF0aFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvbWF0aC51dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHNlbGVjdG9yOiBcImR5bmFtaWMtdGFibGVcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy10YWJsZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtdGFibGUuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICAgIEBJbnB1dCgpIGRhdGFMb2FkZXI6IFRhYmxlRGF0YUxvYWRlcjtcbiAgICBASW5wdXQoKSBkYXRhOiBhbnlbXTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZDogYW55O1xuICAgIEBJbnB1dCgpIHBhZ2U6IG51bWJlcjtcbiAgICBASW5wdXQoKSB1cmxQYXJhbTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBhcmFsbGVsRGF0YTogYW55W107XG4gICAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5zO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIGZvciBkaXNwbGF5aW5nIGEgc2ltcGxlIGZpbHRlciBzZWFyY2ggYm94XG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciBmb3Igc3BlY2lmeWluZyBhIGxhYmVsIGZvciBmaWx0ZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIGZvciBzcGVjaWZ5aW5nIGEgcGxhY2Vob2xkZXIgZm9yIGZpbHRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgZm9yIGRpc3BsYXlpbmcgYW4gaXRlbSBwZXIgcGFnZSBzZWxlY3RvciBkcm9wZG93biB3aXRoIHRoZSBzcGVjaWZpZWQgbnVtYmVyc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNob3dJdGVtczogbnVtYmVyW107XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbWV0ZXIgZm9yIHNldHRpbmcgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGRpc3BsYXllZCBieSBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KCkgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gICAgQElucHV0KCkgdXBkYXRlVGltZTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGZpbHRlclRpbWU6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtYXhQYWdlczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGRpcmVjdGlvbkxpbmtzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGJvdW5kYXJ5TGlua3M6IGJvb2xlYW47XG4gICAgQElucHV0KCkgb3JkZXJCeTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB0ZXN0SWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSB0aXRsZVByZWZpeDogc3RyaW5nO1xuXG4gICAgdGFibGVJZDogc3RyaW5nO1xuICAgIHRlbXBsYXRlczogSVRhYmxlVGVtcGxhdGVzO1xuICAgIGZpbHRlcjogc3RyaW5nO1xuICAgIHF1ZXJ5OiBJVGFibGVEYXRhUXVlcnk7XG4gICAgaGFzUXVlcnk6IGJvb2xlYW47XG4gICAgcmVhbENvbHVtbnM6IElUYWJsZUNvbHVtbnM7XG4gICAgY29sczogc3RyaW5nW107XG5cbiAgICBnZXQgaXRlbXMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gIXRoaXMucGFnaW5hdGlvbiA/IFtdIDogdGhpcy5wYWdpbmF0aW9uLml0ZW1zO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoXCJyb3dUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICByb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoXCJ3cmFwcGVyVGVtcGxhdGVcIiwge3N0YXRpYzogdHJ1ZX0pXG4gICAgd3JhcHBlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImNvbHVtbnNUZW1wbGF0ZVwiLCB7c3RhdGljOiB0cnVlfSlcbiAgICBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiZGVmYXVsdFJvd1RlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxuICAgIGRlZmF1bHRSb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJkZWZhdWx0V3JhcHBlclRlbXBsYXRlXCIsIHtzdGF0aWM6IHRydWV9KVxuICAgIGRlZmF1bHRXcmFwcGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwicGFnaW5hdGlvblwiKVxuICAgIHByb3RlY3RlZCBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRGlyZWN0aXZlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEeW5hbWljVGFibGVUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBwcm90ZWN0ZWQgdGVtcGxhdGVEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8RHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBjb21wYXJlKG9yZGVyQnk6IHN0cmluZywgYTogUGFnaW5hdGlvbkl0ZW1Db250ZXh0LCBiOiBQYWdpbmF0aW9uSXRlbUNvbnRleHQpOiBudW1iZXIge1xuICAgICAgICBhID0gYS5pdGVtID8gYS5pdGVtW29yZGVyQnldIDogbnVsbDtcbiAgICAgICAgYiA9IGIuaXRlbSA/IGIuaXRlbVtvcmRlckJ5XSA6IG51bGw7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5jb21wYXJlKGEsIGIpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICB0aGlzLmRhdGFMb2FkZXIgPSB0aGlzLmxvYWRMb2NhbERhdGE7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIlwiO1xuICAgICAgICB0aGlzLnRhYmxlSWQgPSBVbmlxdWVVdGlscy51dWlkKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0ge307XG4gICAgICAgIHRoaXMuZmlsdGVyID0gXCJcIjtcbiAgICAgICAgdGhpcy5xdWVyeSA9IHt9O1xuICAgICAgICB0aGlzLmhhc1F1ZXJ5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGVzdElkID0gXCJ0YWJsZVwiO1xuICAgICAgICB0aGlzLnRpdGxlUHJlZml4ID0gXCJsYWJlbFwiO1xuICAgICAgICB0aGlzLnJlYWxDb2x1bW5zID0ge307XG4gICAgfVxuXG4gICAgc2V0UHJvcGVydHkobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbGVtKSByZXR1cm47XG4gICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoYC0tJHtuYW1lfWAsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGhpcy50ZW1wbGF0ZURpcmVjdGl2ZXMucmVkdWNlKChyZXN1bHQsIGRpcmVjdGl2ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzQXJyYXkoZGlyZWN0aXZlLmNvbHVtbikpIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmUuY29sdW1uLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2NvbHVtbl0gPSBkaXJlY3RpdmU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoZGlyZWN0aXZlLmNvbHVtbikgfHwgZGlyZWN0aXZlLmNvbHVtbi5sZW5ndGggPT0gMCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIHJlc3VsdFtkaXJlY3RpdmUuY29sdW1uXSA9IGRpcmVjdGl2ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm93VGVtcGxhdGUgPSB0aGlzLnJvd1RlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdFJvd1RlbXBsYXRlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuY29sdW1ucykge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUgfHwgW107XG4gICAgICAgICAgICB0aGlzLnJlYWxDb2x1bW5zID0gT2JqZWN0VXRpbHMuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMucmVkdWNlKChyZXN1bHQsIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoY29sdW1uKSB8fCBjb2x1bW4ubGVuZ3RoID09IDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2NvbHVtbl0gPSB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7Y29sdW1ufWAsIHNvcnQ6IGNvbHVtbn07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0sIHt9KSA6IE9iamVjdC5rZXlzKGNvbHVtbnMpLnJlZHVjZSgocmVzdWx0LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbHVtbnNba2V5XTtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9ICF2YWx1ZSB8fCBPYmplY3RVdGlscy5pc1N0cmluZyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgPyB7dGl0bGU6IGAke3RoaXMudGl0bGVQcmVmaXh9LiR7a2V5fWAsIHNvcnQ6IHZhbHVlfVxuICAgICAgICAgICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSBhcyBJVGFibGVDb2x1bW5zKTtcbiAgICAgICAgICAgIHRoaXMuY29scyA9IE9iamVjdC5rZXlzKHRoaXMucmVhbENvbHVtbnMpO1xuICAgICAgICAgICAgY29uc3Qgc29ydGFibGUgPSB0aGlzLmNvbHMuZmlsdGVyKGMgPT4gdGhpcy5yZWFsQ29sdW1uc1tjXS5zb3J0KTtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeSB8fCB7fTtcbiAgICAgICAgICAgIHRoaXMub3JkZXJCeSA9IHNvcnRhYmxlLmluY2x1ZGVzKHRoaXMub3JkZXJCeSkgPyB0aGlzLm9yZGVyQnkgOiBzb3J0YWJsZVswXSB8fCBudWxsO1xuICAgICAgICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuY29scy5yZWR1Y2UoKHJlcywgY29sKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVtjb2xdO1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgcmVzW2NvbF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICAgICAgdGhpcy5zZXRQcm9wZXJ0eShcImNlbGwtd2lkdGhcIiwgTWF0aFV0aWxzLnJvdW5kKDEwMCAvIHRoaXMuY29scy5sZW5ndGgsIDQpICsgXCIlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzUXVlcnkgPSB0aGlzLmNvbHMuc29tZShjb2wgPT4gdGhpcy5yZWFsQ29sdW1uc1tjb2xdLmZpbHRlcik7XG4gICAgICAgIGlmIChjaGFuZ2VzLm9yZGVyQnkgJiYgdGhpcy5yZWFsQ29sdW1ucyAmJiB0aGlzLmNvbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRhYmxlID0gdGhpcy5jb2xzLmZpbHRlcihjID0+IHRoaXMucmVhbENvbHVtbnNbY10uc29ydCk7XG4gICAgICAgICAgICB0aGlzLm9yZGVyQnkgPSBzb3J0YWJsZS5pbmNsdWRlcyh0aGlzLm9yZGVyQnkpID8gdGhpcy5vcmRlckJ5IDogc29ydGFibGVbMF0gfHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoYW5nZXMuZGF0YSAmJiAhY2hhbmdlcy5wYXJhbGxlbERhdGEgJiYgIWNoYW5nZXMuZGF0YUxvYWRlciAmJiAhY2hhbmdlcy5pdGVtc1BlclBhZ2UgJiYgIWNoYW5nZXMub3JkZXJCeSAmJiAhY2hhbmdlcy5vcmRlckRlc2NlbmRpbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuXG4gICAgcmVmcmVzaCh0aW1lPzogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wYWdpbmF0aW9uKSByZXR1cm47XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5yZWZyZXNoKHRpbWUpO1xuICAgIH1cblxuICAgIHNldEZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcbiAgICAgICAgdGhpcy5yZWZyZXNoKHRoaXMuZmlsdGVyVGltZSA/PyAzMDApO1xuICAgIH1cblxuICAgIHNldFNvcnRpbmcoY29sdW1uOiBzdHJpbmcsIHRvZ2dsZT86IERyb3Bkb3duRGlyZWN0aXZlKSB7XG4gICAgICAgIGlmICh0b2dnbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9yZGVyRGVzY2VuZGluZyA9IGNvbHVtbiA9PSB0aGlzLm9yZGVyQnkgJiYgIXRoaXMub3JkZXJEZXNjZW5kaW5nO1xuICAgICAgICB0aGlzLm9yZGVyQnkgPSBjb2x1bW47XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIHNldFF1ZXJ5VmFsdWUoYzogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgYm9vbGVhbikge1xuICAgICAgICBjb25zdCBjb2wgPSB0aGlzLnJlYWxDb2x1bW5zW2NdO1xuICAgICAgICBpZiAoIWNvbD8uZmlsdGVyKSByZXR1cm47XG4gICAgICAgIHN3aXRjaCAoY29sLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJlbnVtXCI6XG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0ID0gbmV3IFNldCgodGhpcy5xdWVyeVtjXSB8fCBbXSkgYXMgc3RyaW5nW10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IGAke3ZhbHVlfWA7XG4gICAgICAgICAgICAgICAgaWYgKHNldC5oYXModmFsKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXQuZGVsZXRlKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXQuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlbY107XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldC5hZGQodmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVtjXSA9IEFycmF5LmZyb20oc2V0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJjaGVja2JveFwiOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnF1ZXJ5W2NdKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnF1ZXJ5W2NdO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVtjXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlbY107XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5W2NdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWZyZXNoKHRoaXMuZmlsdGVyVGltZSA/PyAzMDApO1xuICAgIH1cblxuICAgIHNldEl0ZW1zUGVyUGFnZShjb3VudDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gY291bnQ7XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIGxvYWREYXRhID0gKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpOiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT4gPT4ge1xuICAgICAgICBjb25zdCBvcmRlckJ5ID0gdGhpcy5yZWFsQ29sdW1uc1t0aGlzLm9yZGVyQnldPy5zb3J0O1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhTG9hZGVyKHBhZ2UsIGl0ZW1zUGVyUGFnZSwgb3JkZXJCeSwgdGhpcy5vcmRlckRlc2NlbmRpbmcsIHRoaXMuZmlsdGVyLCB0aGlzLnF1ZXJ5KTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGxvYWRMb2NhbERhdGEocGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbiwgZmlsdGVyOiBzdHJpbmcpOiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT4ge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wYXJlOiAoYTogYW55LCBiOiBhbnkpID0+IG51bWJlciA9IG9yZGVyRGVzY2VuZGluZ1xuICAgICAgICAgICAgPyAoYSwgYikgPT4gRHluYW1pY1RhYmxlQ29tcG9uZW50LmNvbXBhcmUob3JkZXJCeSwgYiwgYSlcbiAgICAgICAgICAgIDogKGEsIGIpID0+IER5bmFtaWNUYWJsZUNvbXBvbmVudC5jb21wYXJlKG9yZGVyQnksIGEsIGIpO1xuICAgICAgICBjb25zdCBmcm9tID0gKHBhZ2UgLSAxKSAqIHJvd3NQZXJQYWdlO1xuICAgICAgICBjb25zdCBkYXRhTGVuZ3RoID0gdGhpcy5kYXRhLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5taW4ocm93c1BlclBhZ2UsIGRhdGFMZW5ndGggLSBmcm9tKTtcbiAgICAgICAgY29uc3QgcGFyYWxsZWxEYXRhID0gdGhpcy5wYXJhbGxlbERhdGEgfHwgW107XG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5kYXRhLm1hcCgoaXRlbSwgaXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUGFnaW5hdGlvbkl0ZW1Db250ZXh0KGl0ZW0sIHBhcmFsbGVsRGF0YVtpeF0gfHwge30sIGRhdGFMZW5ndGgsIGl4LCBpeCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNTdHJpbmcoZmlsdGVyKSAmJiBmaWx0ZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUnggPSBuZXcgUmVnRXhwKGZpbHRlciwgXCJnaVwiKTtcbiAgICAgICAgICAgIGRhdGEgPSBkYXRhLmZpbHRlcihjID0+IGMuZmlsdGVyKGZpbHRlclJ4KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSBvcmRlckJ5ID8gZGF0YS5zb3J0KGNvbXBhcmUpLnNwbGljZShmcm9tLCBsZW5ndGgpIDogZGF0YS5zcGxpY2UoZnJvbSwgbGVuZ3RoKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoY29udGV4dCwgaXgpID0+IHtcbiAgICAgICAgICAgIGNvbnRleHQuaW5kZXggPSBmcm9tICsgaXg7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHRvdGFsOiBkYXRhTGVuZ3RoLFxuICAgICAgICAgICAgaXRlbXM6IGl0ZW1zXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29sdW1uVGVtcGxhdGUgbGV0LWNvbnRleHQgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC10ZW1wbGF0ZT1cInRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8c3Bhbj57eyBpdGVtW2NvbHVtbl0gPT0gdW5kZWZpbmVkIHx8IGl0ZW1bY29sdW1uXSA9PSBudWxsID8gJy0nIDogaXRlbVtjb2x1bW5dIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNwdXJlVGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25neFRlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlLnJlZlwiIFtjb250ZXh0XT1cImNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDx0ZCBbbmdDbGFzc109XCInY29sdW1uLScgKyBjb2x1bW5cIlxuICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQgKyAnLScgKyBjb2x1bW4gKyAnLScgKyBjb250ZXh0LnJvd0luZGV4XCJcbiAgICAgICAgKm5nSWY9XCIhdGVtcGxhdGUgfHwgIXRlbXBsYXRlLnB1cmU7IGVsc2UgcHVyZVRlbXBsYXRlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25neFRlbXBsYXRlT3V0bGV0XT1cIiF0ZW1wbGF0ZSA/IGRlZmF1bHRUZW1wbGF0ZSA6IHRlbXBsYXRlLnJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdGQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbHVtbnNUZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sc1wiXG4gICAgICAgICAgICAgICAgICBbbmd4VGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgICAgICAgICAgICBbYWRkaXRpb25hbENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZXNbY29sdW1uXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRSb3dUZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICA8dHIgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICNlbGVtXG4gICAgICAgIFtuZ0NsYXNzXT1cInthY3RpdmU6IHNlbGVjdGVkID09PSBjb250ZXh0Lml0ZW19XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25neFRlbXBsYXRlT3V0bGV0XT1cImNvbHVtbnNUZW1wbGF0ZVwiIFtjb250ZXh0XT1cImNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3RyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LXRvZ2dsZT1cInRvZ2dsZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbD5cbiAgICAgICAgPHNwYW4+e3sgcmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlDb2w+XG4gICAgICAgIDxzcGFuPi08L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVhbENvbHVtbnNbY29sdW1uXTsgZWxzZSBlbXB0eUNvbFwiPlxuICAgICAgICA8YSAqbmdJZj1cInJlYWxDb2x1bW5zW2NvbHVtbl0uc29ydDsgZWxzZSBkZWZhdWx0Q29sXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwiWydzb3J0Jywgb3JkZXJCeSAhPT0gY29sdW1uID8gJycgOiAob3JkZXJEZXNjZW5kaW5nID8gJ3NvcnQtZGVzYycgOiAnc29ydC1hc2MnKV1cIlxuICAgICAgICAgICAoY2xpY2spPVwic2V0U29ydGluZyhjb2x1bW4sIHRvZ2dsZSlcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHJlYWxDb2x1bW5zW2NvbHVtbl0udGl0bGUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXYgY2xhc3M9XCJkeW5hbWljLXRhYmxlXCIgI3BhZ2luYXRpb249XCJwYWdpbmF0aW9uXCIgW3BhZ2luYXRpb25dPVwibG9hZERhdGFcIiBbcGFnZV09XCJwYWdlXCIgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2VcIlxuICAgICBbdXBkYXRlVGltZV09XCJ1cGRhdGVUaW1lXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWZlYXR1cmVzLXJvd1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGFibGUtZmVhdHVyZXMtYmVmb3JlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWlucHV0LXdyYXAgdGFibGUtc2VhcmNoLWZpbHRlclwiICpuZ0lmPVwic2hvd0ZpbHRlclwiPlxuICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiZmlsdGVyTGFiZWxcIiBbYXR0ci5mb3JdPVwidGFibGVJZFwiPlxuICAgICAgICAgICAgICAgIHt7IGZpbHRlckxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwidGFibGVJZFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkICsgJy1maWx0ZXItaW5wdXQnXCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RmlsdGVyKCRldmVudClcIi8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZHJvcGRvd24tYm94IGNvbXBvbmVudENsYXNzPVwic29ydC1kcm9wZG93blwiICNzb3J0RGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIHRvZ2dsZS1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntjb2x1bW46IG9yZGVyQnksIHRvZ2dsZTogc29ydERkfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCInc29ydC1jb2x1bW4gc29ydC0nICsgY29sdW1uXCIgKm5nSWY9XCJyZWFsQ29sdW1uc1tjb2x1bW5dLnNvcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2NvbHVtbjogY29sdW1ufVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kcm9wZG93bi1ib3g+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1pbnB1dC13cmFwIHRhYmxlLWl0ZW1zLWNvdW50XCIgKm5nSWY9XCJzaG93SXRlbXNcIj5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICB7eyAnbGFiZWwuaXRlbXMuYmVmb3JlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxkcm9wZG93bi1ib3g+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciB0b2dnbGUtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbXNQZXJQYWdlIH19XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb3VudCBvZiBzaG93SXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCInaXRlbS1jb3VudCBjb3VudC0nICsgY291bnRcIiAoY2xpY2spPVwic2V0SXRlbXNQZXJQYWdlKGNvdW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvdW50IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kcm9wZG93bi1ib3g+XG4gICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAge3sgJ2xhYmVsLml0ZW1zLmFmdGVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZS1mZWF0dXJlcy1hZnRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPHBhZ2luYXRpb24tbWVudSBbdXJsUGFyYW1dPVwidXJsUGFyYW1cIiBbbWF4U2l6ZV09XCJtYXhQYWdlc1wiIFtkaXJlY3Rpb25MaW5rc109XCJkaXJlY3Rpb25MaW5rc1wiXG4gICAgICAgICAgICAgICAgICAgICBbYm91bmRhcnlMaW5rc109XCJib3VuZGFyeUxpbmtzXCI+PC9wYWdpbmF0aW9uLW1lbnU+XG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0V3JhcHBlclRlbXBsYXRlPlxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc3RyaXBlZFwiPlxuICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHNcIiBbbmdDbGFzc109XCInaGVhZGVyLWNvbHVtbiBjb2x1bW4tJyArIGNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7Y29sdW1uOiBjb2x1bW59XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJoYXNRdWVyeVwiPlxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2xzXCIgW25nQ2xhc3NdPVwiWydjb2x1bW4tJyArIGNvbHVtbiwgJ2ZpbHRlci1jb2x1bW4nXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWxDb2x1bW5zW2NvbHVtbl0uZmlsdGVyXCIgW25nU3dpdGNoXT1cInJlYWxDb2x1bW5zW2NvbHVtbl0uZmlsdGVyVHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlbnVtJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI29wdGlvbkl0ZW0gbGV0LW9wdGlvbj1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgKHJlYWxDb2x1bW5zW2NvbHVtbl0uZW51bVByZWZpeCA/IHJlYWxDb2x1bW5zW2NvbHVtbl0uZW51bVByZWZpeCArICcuJyArIG9wdGlvbiA6IG9wdGlvbikgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRyb3Bkb3duLWJveCBjb21wb25lbnRDbGFzcz1cImZpbHRlci1ib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmaWx0ZXItYm94LScgKyBjb2x1bW5cIiBbY2xvc2VJbnNpZGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgdG9nZ2xlLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtcGxhY2Vob2xkZXJcIiAqbmdJZj1cIiFxdWVyeVtjb2x1bW5dXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlYWxDb2x1bW5zW2NvbHVtbl0udGl0bGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiWydvcHRpb24tJyArIG9wdGlvbiwgY29sdW1uICsgJy1vcHRpb24tJyArIG9wdGlvbiwgb3B0aW9uXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBxdWVyeVtjb2x1bW5dIHwgdmFsdWVzOyBsZXQgaXggPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXggPiAwXCI+LCA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25JdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie29wdGlvbjogb3B0aW9ufVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJbY29sdW1uICsgJy1vcHRpb24nLCAnb3B0aW9uLScgKyBvcHRpb24sIG9wdGlvbl1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UXVlcnlWYWx1ZShjb2x1bW4sIG9wdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHJlYWxDb2x1bW5zW2NvbHVtbl0uZW51bVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCIndG9nZ2xlLWxpbmstJyArIGNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cInF1ZXJ5W2NvbHVtbl0gfCBpbmNsdWRlczogb3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvbkl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie29wdGlvbjogb3B0aW9ufVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHJvcGRvd24tYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJ0ZXN0SWQgKyAnLWZpbHRlci0nICsgY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJyZWFsQ29sdW1uc1tjb2x1bW5dLnRpdGxlIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInF1ZXJ5W2NvbHVtbl1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UXVlcnlWYWx1ZShjb2x1bW4sICRldmVudClcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkICsgJy1maWx0ZXItJyArIGNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVhbENvbHVtbnNbY29sdW1uXS50aXRsZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJxdWVyeVtjb2x1bW5dXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFF1ZXJ5VmFsdWUoY29sdW1uLCAkZXZlbnQpXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwYWdpbmF0aW9uSXRlbT1cImxldCBjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ3hUZW1wbGF0ZU91dGxldF09XCJyb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRpdGlvbmFsQ29udGV4dF09XCJ0aGlzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZS10b3BdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmd4VGVtcGxhdGVPdXRsZXRdPVwid3JhcHBlclRlbXBsYXRlIHx8IGRlZmF1bHRXcmFwcGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJ0aGlzXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGFibGUtYm90dG9tXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHBhZ2luYXRpb24tbWVudSBbdXJsUGFyYW1dPVwidXJsUGFyYW1cIiBbbWF4U2l6ZV09XCJtYXhQYWdlc1wiIFtkaXJlY3Rpb25MaW5rc109XCJkaXJlY3Rpb25MaW5rc1wiXG4gICAgICAgICAgICAgICAgICAgICBbYm91bmRhcnlMaW5rc109XCJib3VuZGFyeUxpbmtzXCI+PC9wYWdpbmF0aW9uLW1lbnU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -99,14 +99,15 @@ export class DropdownContentDirective {
|
|
|
99
99
|
content.classList.add(newPlacement);
|
|
100
100
|
}
|
|
101
101
|
if (isMobileView || fixed) {
|
|
102
|
-
content.classList.remove(`dropdown-content-desktop`);
|
|
103
|
-
content.classList.add(`dropdown-content-mobile`);
|
|
104
102
|
if (!isMobileView) {
|
|
105
103
|
content.classList.add(`dropdown-content-fixed`);
|
|
104
|
+
content.classList.remove(`dropdown-content-mobile`);
|
|
106
105
|
}
|
|
107
106
|
else {
|
|
107
|
+
content.classList.add(`dropdown-content-mobile`);
|
|
108
108
|
content.classList.remove(`dropdown-content-fixed`);
|
|
109
109
|
}
|
|
110
|
+
content.classList.remove(`dropdown-content-desktop`);
|
|
110
111
|
}
|
|
111
112
|
else {
|
|
112
113
|
content.classList.add(`dropdown-content-desktop`);
|
|
@@ -206,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
206
207
|
}] }, { type: i0.TemplateRef, decorators: [{
|
|
207
208
|
type: Optional
|
|
208
209
|
}] }] });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFDSCxLQUFLLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDVixlQUFlLEVBQ2YsS0FBSyxFQUdPLFVBQVUsRUFDekIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUU5QyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBb0JoRCxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLFlBQXNCLEdBQXFCLEVBQ2EsUUFBcUIsRUFDM0MsUUFBMkIsRUFDNUIsV0FBNkI7UUFIeEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDYSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQzNDLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsaUJBQWlCLENBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsVUFBVSxDQUFDLE9BQWdCLEtBQUs7UUFDdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDeEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixVQUFVLENBQUMsSUFBSSxDQUNYLEtBQUssQ0FBQztnQkFDRixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO2dCQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFO2FBQ3hCLENBQUMsRUFDRixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FDN0MsQ0FBQztRQUNOLENBQUM7UUFDRCxVQUFVLENBQUMsSUFBSSxDQUNYLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUM1QixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsS0FBSyxJQUE0QixFQUFFO1lBQy9DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDO1lBQ3RELElBQUksWUFBWSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN4QixPQUFPO29CQUNILE1BQU0sRUFBRTt3QkFDSixJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSzt3QkFDcEQsUUFBUSxFQUFFLE9BQU87cUJBQ3BCO29CQUNELFNBQVMsRUFBRSxLQUFLO29CQUNoQixZQUFZO2lCQUNmLENBQUM7WUFDTixDQUFDO1lBQ0QsTUFBTSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBQyxHQUFHLE1BQU0sZUFBZSxDQUMzRCxHQUFHLEVBQ0gsT0FBTyxFQUNQO2dCQUNJLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUTtnQkFDOUMsVUFBVTthQUNiLENBQ0osQ0FBQztZQUVGLE9BQU87Z0JBQ0gsTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUk7b0JBQ3hELFFBQVEsRUFBRSxVQUFVO2lCQUN2QjtnQkFDRCxTQUFTO2dCQUNULFlBQVk7Z0JBQ1osY0FBYzthQUNqQixDQUFDO1FBQ04sQ0FBQyxDQUFBO1FBQ0QsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUNyQixHQUFHLEVBQ0gsT0FBTyxFQUNQLEdBQUcsRUFBRTtZQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFDLEVBQUUsRUFBRTtnQkFFakUsSUFBSSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQztvQkFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDL0IsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7cUJBQ2pDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7b0JBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRztvQkFDekIsTUFBTSxFQUFFLHdCQUF3QjtpQkFDbkMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUM1QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDekMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLFNBQVMsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNoQixHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQ25ELE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztxQkFBTSxDQUFDO29CQUNKLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNoQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztnQkFDRCxJQUFJLFlBQVksSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztvQkFDckQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO3dCQUNoQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUNwRCxDQUFDO3lCQUFNLENBQUM7d0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvQkFDdkQsQ0FBQztnQkFDTCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztvQkFDcEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztnQkFDRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pFLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRVMsV0FBVztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjO1lBQUUsT0FBTztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRVMsYUFBYTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxJQUFJLE1BQU0sS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxNQUFNLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLE1BQU0sWUFBWSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBNEIsQ0FBQztRQUM3RCxPQUFPLE1BQU0sRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNsRCxDQUFDO0lBRVMsYUFBYTtRQUNuQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRCxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RCxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFM0UsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckUsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdEcsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3hHLElBQUksUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDSixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7K0dBL01RLHdCQUF3QixrREFTRCxZQUFZO21HQVRuQyx3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9COzswQkFVZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZOzswQkFDL0IsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgYXJyb3csXG4gICAgYXV0b1BsYWNlbWVudCxcbiAgICBhdXRvVXBkYXRlLFxuICAgIGNvbXB1dGVQb3NpdGlvbixcbiAgICBzaGlmdCxcbiAgICBNaWRkbGV3YXJlRGF0YSxcbiAgICBQbGFjZW1lbnQsXG4gICAgTWlkZGxld2FyZSwgbGltaXRTaGlmdFxufSBmcm9tIFwiQGZsb2F0aW5nLXVpL2RvbVwiO1xuXG5pbXBvcnQge1JPT1RfRUxFTUVOVH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHtEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSBcIi4vZHJvcGRvd24uZGlyZWN0aXZlXCI7XG5pbXBvcnQge09ic2VydmFibGVVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29ic2VydmFibGUudXRpbHNcIjtcbmltcG9ydCB7Z2V0Q3NzVmFyaWFibGVzfSBmcm9tIFwiLi4vdXRpbHMvbWlzY1wiO1xuXG5jb25zdCByZWN0UHJvcHMgPSBbXCJ4XCIsIFwieVwiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCJdO1xuXG5pbnRlcmZhY2UgQ29tcHV0ZVJlc3VsdCB7XG4gICAgc3R5bGVzOiB7XG4gICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIgfCBcImFic29sdXRlXCI7XG4gICAgICAgIGxlZnQ6IHN0cmluZztcbiAgICAgICAgdG9wOiBzdHJpbmc7XG4gICAgICAgIHJpZ2h0OiBzdHJpbmc7XG4gICAgICAgIGJvdHRvbTogc3RyaW5nO1xuICAgIH0sXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQ7XG4gICAgaXNNb2JpbGVWaWV3OiBib29sZWFuO1xuICAgIG1pZGRsZXdhcmVEYXRhPzogTWlkZGxld2FyZURhdGE7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiBcIltkcm9wZG93bkNvbnRlbnRdXCIsXG4gICAgZXhwb3J0QXM6IFwiZHJvcGRvd24tY29udGVudFwiLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbnRlbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIGF0dGFjaFRvOiBIVE1MRWxlbWVudDtcbiAgICBwcm90ZWN0ZWQgYXR0YWNoT3V0c2lkZTogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgbGFzdFBsYWNlbWVudDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBjbGVhblVwOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJPT1RfRUxFTUVOVCkgcHJvdGVjdGVkIHJvb3RFbGVtOiBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgZHJvcGRvd246IERyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmICghdGhpcy5kcm9wZG93bikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRHJvcGRvd25EaXJlY3RpdmUgaXMgcmVxdWlyZWQhIFBsZWFzZSB1c2UgaXQgaW5zaWRlIGEgZGQsIGRyb3AtZG93biBkaXJlY3RpdmUgYXR0cmlidXRlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGVtcGxhdGVSZWYgaXMgcmVxdWlyZWQhIFBsZWFzZSB1c2Ugd2l0aCAqZHJvcGRvd25Db250ZW50XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFBsYWNlbWVudCA9IG51bGw7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gT2JzZXJ2YWJsZVV0aWxzLm11bHRpU3Vic2NyaXB0aW9uKFxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5vblNob3duLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNyZWF0ZVZpZXcoKSksXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm9uSGlkZGVuLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRlc3Ryb3lWaWV3KCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVZpZXcoaW5pdDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50KSByZXR1cm47XG4gICAgICAgIGNvbnN0IG1vYmlsZVdpZHRoID0gdGhpcy5kcm9wZG93bi5tb2JpbGVWaWV3VW5kZXIgfHwgMDtcbiAgICAgICAgY29uc3QgZml4ZWQgPSB0aGlzLmRyb3Bkb3duLmZpeGVkIHx8IGZhbHNlO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IFtjb250ZW50LCBhcnJvd0VsXSA9IHRoaXMuY3JlYXRlV3JhcHBlcigpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50ID0gY29udGVudDtcbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIHBvc2l0aW9uaW5nIHNldHRpbmdzXG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmU6IE1pZGRsZXdhcmVbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50KSB7XG4gICAgICAgICAgICBtaWRkbGV3YXJlLnB1c2goXG4gICAgICAgICAgICAgICAgc2hpZnQoe1xuICAgICAgICAgICAgICAgICAgICBib3VuZGFyeTogdGhpcy5kcm9wZG93bi5ib3VuZGFyeSxcbiAgICAgICAgICAgICAgICAgICAgbGltaXRlcjogbGltaXRTaGlmdCgpXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYXV0b1BsYWNlbWVudCh0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBtaWRkbGV3YXJlLnB1c2goXG4gICAgICAgICAgICBhcnJvdyh7ZWxlbWVudDogYXJyb3dFbH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGUgPSBhc3luYyAoKTogUHJvbWlzZTxDb21wdXRlUmVzdWx0PiA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc01vYmlsZVZpZXcgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBtb2JpbGVXaWR0aDtcbiAgICAgICAgICAgIGlmIChpc01vYmlsZVZpZXcgfHwgZml4ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IFwiMHB4XCIsIHRvcDogXCIwcHhcIiwgcmlnaHQ6IFwiMHB4XCIsIGJvdHRvbTogXCIwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogXCJ0b3BcIixcbiAgICAgICAgICAgICAgICAgICAgaXNNb2JpbGVWaWV3XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHt4LCB5LCBwbGFjZW1lbnQsIG1pZGRsZXdhcmVEYXRhfSA9IGF3YWl0IGNvbXB1dGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogdGhpcy5kcm9wZG93bi5wbGFjZW1lbnQgfHwgXCJib3R0b21cIixcbiAgICAgICAgICAgICAgICAgICAgbWlkZGxld2FyZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3R5bGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGAke3h9cHhgLCB0b3A6IGAke3l9cHhgLCByaWdodDogbnVsbCwgYm90dG9tOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIGlzTW9iaWxlVmlldyxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTZXQgdXAgZmxvYXRpbmcgVUkgYXV0byB1cGRhdGVcbiAgICAgICAgdGhpcy5jbGVhblVwID0gYXV0b1VwZGF0ZShcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZSgpLnRoZW4oKHtzdHlsZXMsIHBsYWNlbWVudCwgaXNNb2JpbGVWaWV3LCBtaWRkbGV3YXJlRGF0YX0pID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobWlkZGxld2FyZURhdGE/LmFycm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7eCwgeX0gPSBtaWRkbGV3YXJlRGF0YS5hcnJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXJyb3dFbC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHggIT0gbnVsbCA/IGAke3h9cHhgIDogYGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5ICE9IG51bGwgPyBgJHt5fXB4YCA6IGBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbnRlbnQuc3R5bGUsIHN0eWxlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaW5pdCA/IFwiMFwiIDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IGB2YXIoLS1kZC16LWluZGV4LCAxMDApYFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZSZWN0ID0gcmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UmVjdCA9IGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQbGFjZW1lbnQgPSB0aGlzLmxhc3RQbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BsYWNlbWVudCA9IGBkcm9wZG93bi1wbGFjZW1lbnQtJHtwbGFjZW1lbnR9YDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5jbGFzc0xpc3QucmVwbGFjZShsYXN0UGxhY2VtZW50LCBuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QucmVwbGFjZShsYXN0UGxhY2VtZW50LCBuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmNsYXNzTGlzdC5hZGQobmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZChuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01vYmlsZVZpZXcgfHwgZml4ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LnJlbW92ZShgZHJvcGRvd24tY29udGVudC1kZXNrdG9wYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1maXhlZGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoYGRyb3Bkb3duLWNvbnRlbnQtZml4ZWRgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1kZXNrdG9wYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoYGRyb3Bkb3duLWNvbnRlbnQtZml4ZWRgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZWN0UHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuc3R5bGUuc2V0UHJvcGVydHkoYC0tdG9nZ2xlLSR7cHJvcH1gLCBgJHtyZWZSZWN0W3Byb3BdfXB4YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYuc3R5bGUuc2V0UHJvcGVydHkoYC0tY29udGVudC0ke3Byb3B9YCwgYCR7Y29udGVudFJlY3RbcHJvcF19cHhgKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFBsYWNlbWVudCA9IG5ld1BsYWNlbWVudDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3lWaWV3KCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd24uY29udGVudEVsZW1lbnQpIHJldHVybjtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5jb250ZW50RWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5jb250ZW50RWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY2xlYW5VcD8uKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHdoZXJlVG9BdHRhY2goKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmRyb3Bkb3duLmF0dGFjaFRvO1xuICAgICAgICBpZiAodGFyZ2V0ID09PSBcInJvb3RcIiAmJiB0aGlzLnJvb3RFbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290RWxlbTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBhbmNob3I/LnBhcmVudEVsZW1lbnQgfHwgdGhpcy5yb290RWxlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlV3JhcHBlcigpIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGNvbnN0IGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgYXJyb3cuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1hcnJvd2ApO1xuICAgICAgICBhcnJvdy5zdHlsZS5wb3NpdGlvbiA9IGBhYnNvbHV0ZWA7XG4gICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoYXJyb3cpO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIHJlZi5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHdyYXBwZXIuYXBwZW5kQ2hpbGQobm9kZSkpO1xuICAgICAgICByZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmF0dGFjaFRvID0gdGhpcy53aGVyZVRvQXR0YWNoKCk7XG4gICAgICAgIHRoaXMuYXR0YWNoVG8uYXBwZW5kQ2hpbGQod3JhcHBlcik7XG4gICAgICAgIHRoaXMuYXR0YWNoT3V0c2lkZSA9ICF0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRoaXMuYXR0YWNoVG8pO1xuXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaE91dHNpZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZVN0eWxlcyA9IGdldENzc1ZhcmlhYmxlcyh0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlclN0eWxlcyA9IGdldENzc1ZhcmlhYmxlcyh3cmFwcGVyKTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlZmVyZW5jZVN0eWxlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghd3JhcHBlclN0eWxlc1trZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCByZWZlcmVuY2VTdHlsZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhdXRvUGxhY2VtZW50ID0gdGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50O1xuICAgICAgICBpZiAodGhpcy5sYXN0UGxhY2VtZW50KSB7XG4gICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQodGhpcy5sYXN0UGxhY2VtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXV0b1BsYWNlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgdmVydGljYWwgPSBhdXRvUGxhY2VtZW50LmFsbG93ZWRQbGFjZW1lbnRzLnNvbWUocCA9PiBwLmluY2x1ZGVzKFwidG9wXCIpIHx8IHAuaW5jbHVkZXMoXCJib3R0b21cIikpO1xuICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbCA9IGF1dG9QbGFjZW1lbnQuYWxsb3dlZFBsYWNlbWVudHMuc29tZShwID0+IHAuaW5jbHVkZXMoXCJsZWZ0XCIpIHx8IHAuaW5jbHVkZXMoXCJyaWdodFwiKSk7XG4gICAgICAgICAgICBpZiAodmVydGljYWwgJiYgaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1heGlzLWJvdGhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXhpcyA9IHZlcnRpY2FsID8gXCJ2ZXJ0aWNhbFwiIDogXCJob3Jpem9udGFsXCI7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWF4aXMtJHtheGlzfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZChcImRyb3Bkb3duLWNvbnRlbnQtd3JhcFwiKTtcbiAgICAgICAgcmV0dXJuIFt3cmFwcGVyLCBhcnJvd107XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVWaWV3KHRydWUpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSk7XG4gICAgfVxufVxuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFDSCxLQUFLLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDVixlQUFlLEVBQ2YsS0FBSyxFQUdPLFVBQVUsRUFDekIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUU5QyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBb0JoRCxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLFlBQXNCLEdBQXFCLEVBQ2EsUUFBcUIsRUFDM0MsUUFBMkIsRUFDNUIsV0FBNkI7UUFIeEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDYSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQzNDLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElB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QUFDLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7K0dBaE5RLHdCQUF3QixrREFTRCxZQUFZO21HQVRuQyx3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9COzswQkFVZ0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZOzswQkFDL0IsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgYXJyb3csXG4gICAgYXV0b1BsYWNlbWVudCxcbiAgICBhdXRvVXBkYXRlLFxuICAgIGNvbXB1dGVQb3NpdGlvbixcbiAgICBzaGlmdCxcbiAgICBNaWRkbGV3YXJlRGF0YSxcbiAgICBQbGFjZW1lbnQsXG4gICAgTWlkZGxld2FyZSwgbGltaXRTaGlmdFxufSBmcm9tIFwiQGZsb2F0aW5nLXVpL2RvbVwiO1xuXG5pbXBvcnQge1JPT1RfRUxFTUVOVH0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xuaW1wb3J0IHtEcm9wZG93bkRpcmVjdGl2ZX0gZnJvbSBcIi4vZHJvcGRvd24uZGlyZWN0aXZlXCI7XG5pbXBvcnQge09ic2VydmFibGVVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29ic2VydmFibGUudXRpbHNcIjtcbmltcG9ydCB7Z2V0Q3NzVmFyaWFibGVzfSBmcm9tIFwiLi4vdXRpbHMvbWlzY1wiO1xuXG5jb25zdCByZWN0UHJvcHMgPSBbXCJ4XCIsIFwieVwiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCJdO1xuXG5pbnRlcmZhY2UgQ29tcHV0ZVJlc3VsdCB7XG4gICAgc3R5bGVzOiB7XG4gICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIgfCBcImFic29sdXRlXCI7XG4gICAgICAgIGxlZnQ6IHN0cmluZztcbiAgICAgICAgdG9wOiBzdHJpbmc7XG4gICAgICAgIHJpZ2h0OiBzdHJpbmc7XG4gICAgICAgIGJvdHRvbTogc3RyaW5nO1xuICAgIH0sXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQ7XG4gICAgaXNNb2JpbGVWaWV3OiBib29sZWFuO1xuICAgIG1pZGRsZXdhcmVEYXRhPzogTWlkZGxld2FyZURhdGE7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiBcIltkcm9wZG93bkNvbnRlbnRdXCIsXG4gICAgZXhwb3J0QXM6IFwiZHJvcGRvd24tY29udGVudFwiLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbnRlbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIGF0dGFjaFRvOiBIVE1MRWxlbWVudDtcbiAgICBwcm90ZWN0ZWQgYXR0YWNoT3V0c2lkZTogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgbGFzdFBsYWNlbWVudDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBjbGVhblVwOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFJPT1RfRUxFTUVOVCkgcHJvdGVjdGVkIHJvb3RFbGVtOiBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgZHJvcGRvd246IERyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmICghdGhpcy5kcm9wZG93bikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRHJvcGRvd25EaXJlY3RpdmUgaXMgcmVxdWlyZWQhIFBsZWFzZSB1c2UgaXQgaW5zaWRlIGEgZGQsIGRyb3AtZG93biBkaXJlY3RpdmUgYXR0cmlidXRlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGVtcGxhdGVSZWYgaXMgcmVxdWlyZWQhIFBsZWFzZSB1c2Ugd2l0aCAqZHJvcGRvd25Db250ZW50XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFBsYWNlbWVudCA9IG51bGw7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gT2JzZXJ2YWJsZVV0aWxzLm11bHRpU3Vic2NyaXB0aW9uKFxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5vblNob3duLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNyZWF0ZVZpZXcoKSksXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm9uSGlkZGVuLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRlc3Ryb3lWaWV3KCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVZpZXcoaW5pdDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50KSByZXR1cm47XG4gICAgICAgIGNvbnN0IG1vYmlsZVdpZHRoID0gdGhpcy5kcm9wZG93bi5tb2JpbGVWaWV3VW5kZXIgfHwgMDtcbiAgICAgICAgY29uc3QgZml4ZWQgPSB0aGlzLmRyb3Bkb3duLmZpeGVkIHx8IGZhbHNlO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IFtjb250ZW50LCBhcnJvd0VsXSA9IHRoaXMuY3JlYXRlV3JhcHBlcigpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50ID0gY29udGVudDtcbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIHBvc2l0aW9uaW5nIHNldHRpbmdzXG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmU6IE1pZGRsZXdhcmVbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50KSB7XG4gICAgICAgICAgICBtaWRkbGV3YXJlLnB1c2goXG4gICAgICAgICAgICAgICAgc2hpZnQoe1xuICAgICAgICAgICAgICAgICAgICBib3VuZGFyeTogdGhpcy5kcm9wZG93bi5ib3VuZGFyeSxcbiAgICAgICAgICAgICAgICAgICAgbGltaXRlcjogbGltaXRTaGlmdCgpXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYXV0b1BsYWNlbWVudCh0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBtaWRkbGV3YXJlLnB1c2goXG4gICAgICAgICAgICBhcnJvdyh7ZWxlbWVudDogYXJyb3dFbH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGUgPSBhc3luYyAoKTogUHJvbWlzZTxDb21wdXRlUmVzdWx0PiA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc01vYmlsZVZpZXcgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBtb2JpbGVXaWR0aDtcbiAgICAgICAgICAgIGlmIChpc01vYmlsZVZpZXcgfHwgZml4ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IFwiMHB4XCIsIHRvcDogXCIwcHhcIiwgcmlnaHQ6IFwiMHB4XCIsIGJvdHRvbTogXCIwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogXCJ0b3BcIixcbiAgICAgICAgICAgICAgICAgICAgaXNNb2JpbGVWaWV3XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHt4LCB5LCBwbGFjZW1lbnQsIG1pZGRsZXdhcmVEYXRhfSA9IGF3YWl0IGNvbXB1dGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogdGhpcy5kcm9wZG93bi5wbGFjZW1lbnQgfHwgXCJib3R0b21cIixcbiAgICAgICAgICAgICAgICAgICAgbWlkZGxld2FyZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3R5bGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGAke3h9cHhgLCB0b3A6IGAke3l9cHhgLCByaWdodDogbnVsbCwgYm90dG9tOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgICAgIGlzTW9iaWxlVmlldyxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlRGF0YVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTZXQgdXAgZmxvYXRpbmcgVUkgYXV0byB1cGRhdGVcbiAgICAgICAgdGhpcy5jbGVhblVwID0gYXV0b1VwZGF0ZShcbiAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZSgpLnRoZW4oKHtzdHlsZXMsIHBsYWNlbWVudCwgaXNNb2JpbGVWaWV3LCBtaWRkbGV3YXJlRGF0YX0pID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobWlkZGxld2FyZURhdGE/LmFycm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7eCwgeX0gPSBtaWRkbGV3YXJlRGF0YS5hcnJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXJyb3dFbC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHggIT0gbnVsbCA/IGAke3h9cHhgIDogYGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5ICE9IG51bGwgPyBgJHt5fXB4YCA6IGBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbnRlbnQuc3R5bGUsIHN0eWxlcywge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaW5pdCA/IFwiMFwiIDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IGB2YXIoLS1kZC16LWluZGV4LCAxMDApYFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZSZWN0ID0gcmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50UmVjdCA9IGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RQbGFjZW1lbnQgPSB0aGlzLmxhc3RQbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BsYWNlbWVudCA9IGBkcm9wZG93bi1wbGFjZW1lbnQtJHtwbGFjZW1lbnR9YDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5jbGFzc0xpc3QucmVwbGFjZShsYXN0UGxhY2VtZW50LCBuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QucmVwbGFjZShsYXN0UGxhY2VtZW50LCBuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmNsYXNzTGlzdC5hZGQobmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZChuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01vYmlsZVZpZXcgfHwgZml4ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWZpeGVkYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKGBkcm9wZG93bi1jb250ZW50LW1vYmlsZWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKGBkcm9wZG93bi1jb250ZW50LWZpeGVkYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoYGRyb3Bkb3duLWNvbnRlbnQtZGVza3RvcGApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWRlc2t0b3BgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LnJlbW92ZShgZHJvcGRvd24tY29udGVudC1tb2JpbGVgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LnJlbW92ZShgZHJvcGRvd24tY29udGVudC1maXhlZGApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlY3RQcm9wcy5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5zdHlsZS5zZXRQcm9wZXJ0eShgLS10b2dnbGUtJHtwcm9wfWAsIGAke3JlZlJlY3RbcHJvcF19cHhgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5zdHlsZS5zZXRQcm9wZXJ0eShgLS1jb250ZW50LSR7cHJvcH1gLCBgJHtjb250ZW50UmVjdFtwcm9wXX1weGApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbmV3UGxhY2VtZW50O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIGlmICghdGhpcy5kcm9wZG93bi5jb250ZW50RWxlbWVudCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5jbGVhblVwPy4oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgd2hlcmVUb0F0dGFjaCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZHJvcGRvd24uYXR0YWNoVG87XG4gICAgICAgIGlmICh0YXJnZXQgPT09IFwicm9vdFwiICYmIHRoaXMucm9vdEVsZW0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb3RFbGVtO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMudmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIGFuY2hvcj8ucGFyZW50RWxlbWVudCB8fCB0aGlzLnJvb3RFbGVtO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVXcmFwcGVyKCkge1xuICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgY29uc3QgYXJyb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICBhcnJvdy5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWFycm93YCk7XG4gICAgICAgIGFycm93LnN0eWxlLnBvc2l0aW9uID0gYGFic29sdXRlYDtcbiAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChhcnJvdyk7XG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgcmVmLnJvb3ROb2Rlcy5mb3JFYWNoKG5vZGUgPT4gd3JhcHBlci5hcHBlbmRDaGlsZChub2RlKSk7XG4gICAgICAgIHJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuYXR0YWNoVG8gPSB0aGlzLndoZXJlVG9BdHRhY2goKTtcbiAgICAgICAgdGhpcy5hdHRhY2hUby5hcHBlbmRDaGlsZCh3cmFwcGVyKTtcbiAgICAgICAgdGhpcy5hdHRhY2hPdXRzaWRlID0gIXRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGhpcy5hdHRhY2hUbyk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXR0YWNoT3V0c2lkZSkge1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlU3R5bGVzID0gZ2V0Q3NzVmFyaWFibGVzKHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyU3R5bGVzID0gZ2V0Q3NzVmFyaWFibGVzKHdyYXBwZXIpO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVmZXJlbmNlU3R5bGVzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF3cmFwcGVyU3R5bGVzW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHJlZmVyZW5jZVN0eWxlc1trZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGF1dG9QbGFjZW1lbnQgPSB0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmxhc3RQbGFjZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRvUGxhY2VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGF1dG9QbGFjZW1lbnQuYWxsb3dlZFBsYWNlbWVudHMuc29tZShwID0+IHAuaW5jbHVkZXMoXCJ0b3BcIikgfHwgcC5pbmNsdWRlcyhcImJvdHRvbVwiKSk7XG4gICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gYXV0b1BsYWNlbWVudC5hbGxvd2VkUGxhY2VtZW50cy5zb21lKHAgPT4gcC5pbmNsdWRlcyhcImxlZnRcIikgfHwgcC5pbmNsdWRlcyhcInJpZ2h0XCIpKTtcbiAgICAgICAgICAgIGlmICh2ZXJ0aWNhbCAmJiBob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWF4aXMtYm90aGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBheGlzID0gdmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIjtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtYXhpcy0ke2F4aXN9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKFwiZHJvcGRvd24tY29udGVudC13cmFwXCIpO1xuICAgICAgICByZXR1cm4gW3dyYXBwZXIsIGFycm93XTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZVZpZXcodHJ1ZSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kZXN0cm95VmlldygpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -4900,14 +4900,15 @@ class DropdownContentDirective {
|
|
|
4900
4900
|
content.classList.add(newPlacement);
|
|
4901
4901
|
}
|
|
4902
4902
|
if (isMobileView || fixed) {
|
|
4903
|
-
content.classList.remove(`dropdown-content-desktop`);
|
|
4904
|
-
content.classList.add(`dropdown-content-mobile`);
|
|
4905
4903
|
if (!isMobileView) {
|
|
4906
4904
|
content.classList.add(`dropdown-content-fixed`);
|
|
4905
|
+
content.classList.remove(`dropdown-content-mobile`);
|
|
4907
4906
|
}
|
|
4908
4907
|
else {
|
|
4908
|
+
content.classList.add(`dropdown-content-mobile`);
|
|
4909
4909
|
content.classList.remove(`dropdown-content-fixed`);
|
|
4910
4910
|
}
|
|
4911
|
+
content.classList.remove(`dropdown-content-desktop`);
|
|
4911
4912
|
}
|
|
4912
4913
|
else {
|
|
4913
4914
|
content.classList.add(`dropdown-content-desktop`);
|
|
@@ -5828,7 +5829,7 @@ class DynamicTableComponent {
|
|
|
5828
5829
|
this.hasQuery = this.cols.some(col => this.realColumns[col].filter);
|
|
5829
5830
|
if (changes.orderBy && this.realColumns && this.cols) {
|
|
5830
5831
|
const sortable = this.cols.filter(c => this.realColumns[c].sort);
|
|
5831
|
-
this.orderBy = this.orderBy
|
|
5832
|
+
this.orderBy = sortable.includes(this.orderBy) ? this.orderBy : sortable[0] || null;
|
|
5832
5833
|
}
|
|
5833
5834
|
if (!changes.data && !changes.parallelData && !changes.dataLoader && !changes.itemsPerPage && !changes.orderBy && !changes.orderDescending)
|
|
5834
5835
|
return;
|