mis-crystal-design-system 18.0.17 → 18.0.19-test-1
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/dropdown/dropdown.component.mjs +23 -23
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +54 -54
- package/esm2022/table/actions-cell/actions-cell.component.mjs +32 -9
- package/esm2022/table/table.component.mjs +31 -19
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +22 -22
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +53 -53
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +571 -537
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +13 -13
- package/table/actions-cell/actions-cell.component.d.ts +10 -7
- package/table/table.component.d.ts +4 -0
- package/button/button.directive.scss +0 -69
- package/drawer/drawer.scss +0 -20
- package/input/mis-input.component.scss +0 -180
- package/modal/modal.scss +0 -9
- package/styles/fonts/icomoon.eot +0 -0
- package/styles/fonts/icomoon.svg +0 -315
- package/styles/fonts/icomoon.ttf +0 -0
- package/styles/fonts/icomoon.woff +0 -0
- package/styles/mis-borders-backgrounds.scss +0 -764
- package/styles/mis-color-constants.scss +0 -149
- package/styles/mis-flex.scss +0 -321
- package/styles/mis-fonts.scss +0 -124
- package/styles/mis-icons.scss +0 -1054
- package/styles/mis-mixins.scss +0 -46
- package/styles/mis-old-icon-styles.scss +0 -498
- package/styles/mis-spacing-sizing.scss +0 -2590
- package/styles/mis-typography.scss +0 -462
|
@@ -265,17 +265,17 @@ export class DropdownComponent {
|
|
|
265
265
|
measureAndUpdateHeight() {
|
|
266
266
|
if (!this.isOpen || !this._itemsContainer)
|
|
267
267
|
return;
|
|
268
|
-
const container = this._itemsContainer
|
|
269
|
-
const items = container
|
|
270
|
-
if (items
|
|
268
|
+
const container = this._itemsContainer?.nativeElement;
|
|
269
|
+
const items = container?.querySelectorAll('.item');
|
|
270
|
+
if (!items || items?.length === 0) {
|
|
271
271
|
this.dynamicHeight = "50px";
|
|
272
272
|
return;
|
|
273
273
|
}
|
|
274
274
|
let totalMeasuredHeight = 0;
|
|
275
275
|
let maxItemHeight = 0;
|
|
276
|
-
Array.from(items)
|
|
276
|
+
Array.from(items)?.slice(0, Math.min(8, items?.length || 0))?.forEach((item) => {
|
|
277
277
|
const htmlItem = item;
|
|
278
|
-
let itemHeight = htmlItem
|
|
278
|
+
let itemHeight = htmlItem?.offsetHeight || 0; //offsetHeight is more reliable than getBoundingClientRect
|
|
279
279
|
totalMeasuredHeight += itemHeight;
|
|
280
280
|
maxItemHeight = Math.max(maxItemHeight, itemHeight);
|
|
281
281
|
});
|
|
@@ -303,21 +303,21 @@ export class DropdownComponent {
|
|
|
303
303
|
setUpAsyncDataSearch() {
|
|
304
304
|
if (this.config) {
|
|
305
305
|
this.loading = true;
|
|
306
|
-
this.config
|
|
307
|
-
this.data = res;
|
|
306
|
+
this.config?.dataStream()?.pipe()?.subscribe(res => {
|
|
307
|
+
this.data = res || [];
|
|
308
308
|
this.loading = false;
|
|
309
309
|
setTimeout(() => this.measureAndUpdateHeight(), 60);
|
|
310
310
|
});
|
|
311
311
|
}
|
|
312
|
-
const index = this.data
|
|
313
|
-
if (this.scrollIntoView)
|
|
314
|
-
this.viewPort
|
|
312
|
+
const index = this.data?.findIndex((dataItem) => dataItem?.value === this.selectedItem?.value) || -1;
|
|
313
|
+
if (this.scrollIntoView && this.viewPort)
|
|
314
|
+
this.viewPort?.scrollToIndex(index, 'smooth');
|
|
315
315
|
}
|
|
316
316
|
filterByValue(array, string) {
|
|
317
|
-
return array
|
|
317
|
+
return array?.filter(o => o?.label?.toLowerCase()?.includes(string?.toLowerCase()?.trim())) || [];
|
|
318
318
|
}
|
|
319
319
|
filterByPrimaryText(array, string) {
|
|
320
|
-
return array
|
|
320
|
+
return array?.filter(o => o?.label?.primaryText?.toLowerCase()?.includes(string?.toLowerCase()?.trim())) || [];
|
|
321
321
|
}
|
|
322
322
|
searchInputOnChange(newValue) {
|
|
323
323
|
this.searchInput = newValue;
|
|
@@ -334,7 +334,7 @@ export class DropdownComponent {
|
|
|
334
334
|
this.isSearchInputFocused = isFocused;
|
|
335
335
|
}
|
|
336
336
|
searchInputCanceled(event) {
|
|
337
|
-
event
|
|
337
|
+
event?.stopPropagation();
|
|
338
338
|
this.searchInput = "";
|
|
339
339
|
this.isSearchInputFocused = false;
|
|
340
340
|
requestAnimationFrame(() => this.measureAndUpdateHeight());
|
|
@@ -342,7 +342,7 @@ export class DropdownComponent {
|
|
|
342
342
|
toggleDropdown() {
|
|
343
343
|
this.isOpen = !this.isOpen;
|
|
344
344
|
if (this.isOpen) {
|
|
345
|
-
this.openDropdown(this.popupContainer, this.selectElement
|
|
345
|
+
this.openDropdown(this.popupContainer, this.selectElement?.nativeElement);
|
|
346
346
|
setTimeout(() => {
|
|
347
347
|
this.measureAndUpdateHeight();
|
|
348
348
|
}, 100);
|
|
@@ -373,20 +373,20 @@ export class DropdownComponent {
|
|
|
373
373
|
backdropClass: "cdk-overlay-transparent-backdrop",
|
|
374
374
|
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
375
375
|
positionStrategy,
|
|
376
|
-
width: origin
|
|
376
|
+
width: origin?.clientWidth
|
|
377
377
|
});
|
|
378
378
|
this.overlayRef = this.overlay.create(configs);
|
|
379
379
|
if (this.dropdownListWidth)
|
|
380
|
-
this.overlayRef
|
|
380
|
+
this.overlayRef?.updateSize({ width: this.dropdownListWidth });
|
|
381
381
|
if (this.dropdownListHeight)
|
|
382
|
-
this.overlayRef
|
|
383
|
-
this.overlayRef
|
|
384
|
-
this.overlayRef
|
|
382
|
+
this.overlayRef?.updateSize({ height: this.dropdownListHeight });
|
|
383
|
+
this.overlayRef?.attach(new TemplatePortal(template, this.viewContainerRef));
|
|
384
|
+
this.overlayRef?.backdropClick()?.subscribe(res => {
|
|
385
385
|
this.onCancel();
|
|
386
386
|
});
|
|
387
387
|
}
|
|
388
388
|
selectItem(item) {
|
|
389
|
-
this.onChange
|
|
389
|
+
this.onChange?.emit(item);
|
|
390
390
|
this.toggleDropdown();
|
|
391
391
|
}
|
|
392
392
|
onCancel() {
|
|
@@ -398,8 +398,8 @@ export class DropdownComponent {
|
|
|
398
398
|
}
|
|
399
399
|
closeOnEsc(event) {
|
|
400
400
|
this.onCancel();
|
|
401
|
-
event
|
|
402
|
-
event
|
|
401
|
+
event?.stopPropagation();
|
|
402
|
+
event?.preventDefault();
|
|
403
403
|
}
|
|
404
404
|
static { this.ɵfac = function DropdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DropdownComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
405
405
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DropdownComponent, selectors: [["mis-dropdown"]], contentQueries: function DropdownComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
@@ -518,4 +518,4 @@ export class DropdownComponent {
|
|
|
518
518
|
args: ["keyup.esc", ['$event']]
|
|
519
519
|
}] }); })();
|
|
520
520
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DropdownComponent, { className: "DropdownComponent" }); })();
|
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNlOUQsMEJBQXdIOzs7SUFBbEUsQUFBZCxBQUFiLDBCQUFZLGNBQWMsOEZBQWlDOzs7SUFFcEYsNkJBQXFEO0lBQ25ELFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLDRQQUNGOzs7SUFFRSw2QkFBNEM7SUFDMUMsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsNkNBQ0Y7OztJQUNBLDBCQUF5Rjs7O0lBQTFDLHFHQUEwQjs7O0lBQXpFLEFBSEEsNkVBQTRDLG9FQUc2Qzs7O0lBSHhFLHVGQUF5QjtJQUd2QixjQUEwQjtJQUExQix3RkFBMEI7Ozs7SUFnQy9DLCtCQVFDO0lBQ0MsMkJBS0U7SUFDSixpQkFBTTs7Ozs7SUFlTiwrQkFTQztJQU5DLDJNQUFTLGtDQUEyQixLQUFDO0lBT3JDLDJCQUtFO0lBQ0osaUJBQU07Ozs7SUEvQ1IsK0JBQW9EO0lBQ2xELDZGQVFDO0lBUUQsaUNBYUU7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SztZQUNHLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDSSxRQUFRO2tCQUFqQixNQUFNO1lBQ2lDLGFBQWE7a0JBQXBELFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNVLGNBQWM7a0JBQTdELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBRU0sY0FBYztrQkFBakUsU0FBUzttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFNVCxRQUFRO2tCQUE1QyxTQUFTO21CQUFDLHdCQUF3QjtZQUNlLFVBQVU7a0JBQTNELFlBQVk7bUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQThKaEQsVUFBVTtrQkFEVCxZQUFZO21CQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBck0xQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtZHJvcGRvd25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZHJvcGRvd24uY29tcG9uZW50LnNjc3NcIl0sXG4gIFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGlzT3BlbiA9IGZhbHNlO1xuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VhcmNoSW5wdXRGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHNlYXJjaElucHV0OiBzdHJpbmcgPSBcIlwiO1xuICBzZWFyY2hEYXRhOiBEcm9wZG93bkl0ZW1bXSA9IFtdO1xuICB2aXNpYmxlSXRlbXMgPSAxMDtcbiAgZHluYW1pY0hlaWdodDogc3RyaW5nID0gXCJhdXRvXCI7XG4gIEBJbnB1dCgpIGRhdGE6IERyb3Bkb3duSXRlbVtdICA9IFtdO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSBcIlNlbGVjdFwiO1xuICBASW5wdXQoKSBpdGVtU2l6ZUZvckNkazogbnVtYmVyO1xuICBASW5wdXQoKSBzaG93T25seUljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGlnbGlnaHRTZWxlY3RlZFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdEhlaWdodDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0V2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdFBvc2l0aW9uOiBcIkxlZnRcIiB8IFwiUmlnaHRcIiA9IFwiTGVmdFwiO1xuICBASW5wdXQoKSBjb25maWdcbiAgQElucHV0KCkgc2VhcmNoRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbTogRHJvcGRvd25JdGVtID0geyB2YWx1ZTogXCJcIiwgbGFiZWw6IFwiXCIgfTtcbiAgQElucHV0KCkgbm9EYXRhTWVzc2FnZTogc3RyaW5nID0gXCJObyBEYXRhXCI7XG4gIEBJbnB1dCgpIG11bHRpTGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhZGRpdGlvbmFsSW5mb01lc3NhZ2UgOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNjcm9sbEludG9WaWV3OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlYXJjaExhYmVsOnN0cmluZyA9IFwiU2VhcmNoIEtleXdvcmRcIjtcbiAgQElucHV0KCkgY3VzdG9tU3R5bGVzOiAgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgQElucHV0KCkgYWN0aXZlSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKFwic2VsZWN0XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWxlY3RFbGVtZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwicG9wdXBDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcHVwQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgcHJpdmF0ZSBfaXRlbXNDb250YWluZXI6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZChcIml0ZW1zQ29udGFpbmVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBzZXQgaXRlbXNDb250YWluZXIoY29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCkge1xuICAgIHRoaXMuX2l0ZW1zQ29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpO1xuICAgIH1cbiAgfVxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkgdmlld1BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcbiAgQENvbnRlbnRDaGlsZChcIm1pc0N1c3RvbUl0ZW1cIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGN1c3RvbUl0ZW06IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWYsIFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG4gIFxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG5cbiAgbWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuIHx8ICF0aGlzLl9pdGVtc0NvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5faXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpdGVtcyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcuaXRlbScpO1xuICAgIFxuICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZHluYW1pY0hlaWdodCA9IFwiNTBweFwiO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIFxuICAgIGxldCB0b3RhbE1lYXN1cmVkSGVpZ2h0ID0gMDtcbiAgICBsZXQgbWF4SXRlbUhlaWdodCA9IDA7XG4gICAgXG4gICAgQXJyYXkuZnJvbShpdGVtcykuc2xpY2UoMCwgTWF0aC5taW4oOCwgaXRlbXMubGVuZ3RoKSkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgaHRtbEl0ZW0gPSBpdGVtIGFzIEhUTUxFbGVtZW50O1xuICAgICAgbGV0IGl0ZW1IZWlnaHQgPSBodG1sSXRlbS5vZmZzZXRIZWlnaHQ7IC8vb2Zmc2V0SGVpZ2h0IGlzIG1vcmUgcmVsaWFibGUgdGhhbiBnZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAgICAgIHRvdGFsTWVhc3VyZWRIZWlnaHQgKz0gaXRlbUhlaWdodDtcbiAgICAgIG1heEl0ZW1IZWlnaHQgPSBNYXRoLm1heChtYXhJdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0KTtcbiAgICB9KTtcbiAgICAvL05lZWRlZCB0byBoYW5kbGUgdGhlIHNjcm9sbGJhciBjb21pbmcgZm9yIDItMyBpdGVtcyBjYXNlXG4gICAgY29uc3QgY29udGFpbmVyUGFkZGluZyA9IDg7XG4gICAgY29uc3QgZmluYWxIZWlnaHQgPSBNYXRoLm1heCg1MCwgTWF0aC5taW4odG90YWxNZWFzdXJlZEhlaWdodCArIGNvbnRhaW5lclBhZGRpbmcsIDMyMCkpO1xuICAgIFxuICAgIHRoaXMuZHluYW1pY0hlaWdodCA9IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0ID8gdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQgOiBgJHtmaW5hbEhlaWdodH1weGA7XG4gIH1cblxuICBnZXQgY3VycmVudERhdGEoKTogRHJvcGRvd25JdGVtW10ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaElucHV0ID8gdGhpcy5zZWFyY2hEYXRhIDogdGhpcy5kYXRhO1xuICB9XG5cbiAgZ2V0IGl0ZW1zQ29udGFpbmVyU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdoZWlnaHQnOiB0aGlzLmR5bmFtaWNIZWlnaHQsXG4gICAgICAnbWF4LWhlaWdodCc6ICczMjBweCcsXG4gICAgICAnbWluLWhlaWdodCc6ICc1MHB4J1xuICAgIH07XG4gIH1cblxuICBnZXRJY29uU3R5bGVzKGl0ZW06IGFueSwgYWN0aXZlSXRlbTogYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB7XG4gICAgICAnY29sb3InOiBpdGVtICYmIGFjdGl2ZUl0ZW0gPyAnIzA5MzdCMicgOiAnJyxcbiAgICAgICdmb250LXdlaWdodCc6IGl0ZW0gJiYgYWN0aXZlSXRlbSA/ICc3MDAnIDogJydcbiAgICB9O1xuICB9XG5cbnNldFVwQXN5bmNEYXRhU2VhcmNoKClcbntcbiAgaWYodGhpcy5jb25maWcpXG4gIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpZy5kYXRhU3RyZWFtKCkucGlwZSgpLnN1YnNjcmliZShyZXM9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhID0gcmVzXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpLCA2MCk7XG4gICAgICB9KVxuICB9XG4gIGNvbnN0IGluZGV4ID0gdGhpcy5kYXRhLmZpbmRJbmRleCgoZGF0YUl0ZW0pID0+IGRhdGFJdGVtLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkSXRlbS52YWx1ZSk7XG4gIGlmICh0aGlzLnNjcm9sbEludG9WaWV3KVxuICAgIHRoaXMudmlld1BvcnQuc2Nyb2xsVG9JbmRleChpbmRleCwgJ3Ntb290aCcpO1xufVxuICBmaWx0ZXJCeVZhbHVlKGFycmF5LCBzdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiBhcnJheS5maWx0ZXIobyA9PiBvLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3RyaW5nLnRvTG93ZXJDYXNlKCkudHJpbSgpKSk7XG4gIH1cblxuICBmaWx0ZXJCeVByaW1hcnlUZXh0KGFycmF5LCBzdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiBhcnJheS5maWx0ZXIobyA9PiBvLmxhYmVsLnByaW1hcnlUZXh0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3RyaW5nLnRvTG93ZXJDYXNlKCkudHJpbSgpKSk7XG4gIH1cbiAgc2VhcmNoSW5wdXRPbkNoYW5nZShuZXdWYWx1ZSkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBuZXdWYWx1ZTtcbiAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IHRoaXMubXVsdGlMaW5lID8gdGhpcy5maWx0ZXJCeVByaW1hcnlUZXh0KHRoaXMuZGF0YSwgbmV3VmFsdWUpIDogdGhpcy5maWx0ZXJCeVZhbHVlKHRoaXMuZGF0YSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCkpO1xuICB9XG4gIHNlYXJjaElucHV0Rm9jdXNlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gaXNGb2N1c2VkO1xuICB9XG4gIHNlYXJjaElucHV0Q2FuY2VsZWQoZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gXCJcIjtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpKTtcbiAgfVxuICB0b2dnbGVEcm9wZG93bigpIHtcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMucG9wdXBDb250YWluZXIsIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1lYXN1cmVBbmRVcGRhdGVIZWlnaHQoKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbiA9PT0gXCJSaWdodFwiID8gcG9zaXRpb25zQm90dG9tLnJldmVyc2UoKSA6IHBvc2l0aW9uc0JvdHRvbSksXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNUb3AucmV2ZXJzZSgpIDogcG9zaXRpb25zVG9wKVxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICBjb25zdCBjb25maWdzID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHdpZHRoOiBvcmlnaW4uY2xpZW50V2lkdGhcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZ3MpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKSB0aGlzLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IHdpZHRoOiB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoIH0pO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCkgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBoZWlnaHQ6IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0IH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH0pO1xuICB9XG4gIHNlbGVjdEl0ZW0oaXRlbSkge1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChpdGVtKTsgIFxuICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcbiAgfVxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIHRoaXMuX2l0ZW1zQ29udGFpbmVyID0gbnVsbDsgLy8gUmVzZXQgY29udGFpbmVyIHJlZmVyZW5jZSB0byBlbnN1cmUgZnJlc2ggc2V0dXAgb24gbmV4dCBvcGVuXG4gIH1cbiAgXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXl1cC5lc2NcIiwgWyckZXZlbnQnXSlcbiAgY2xvc2VPbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSXRlbSB7XG4gIGxhYmVsOiBhbnkgO1xuICB2YWx1ZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGN1c3RvbUljb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uSXRlbUxhYmVsIHtcbiAgcHJpbWFyeVRleHQgPzogc3RyaW5nO1xuICBzZWNvbmRhcnlUZXh0ID86IHN0cmluZztcbn1cbiIsIjxkaXYgKGNsaWNrKT1cInNldFVwQXN5bmNEYXRhU2VhcmNoKClcIlxuKGtleXVwLmVudGVyKT1cInNldFVwQXN5bmNEYXRhU2VhcmNoKClcIlxuICBjbGFzcz1cIm1haW4tY29udGFpbmVyXCJcbiAgW25nU3R5bGVdPVwie1xuICAgIGhlaWdodDogaGVpZ2h0Lmxlbmd0aCA+IDAgPyBoZWlnaHQgOiAnJyxcbiAgICB3aWR0aDogd2lkdGgubGVuZ3RoID4gMCA/IHdpZHRoIDogJydcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAjc2VsZWN0XG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIFtuZ1N0eWxlXT1cImN1c3RvbVN0eWxlc1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFtuZ0NsYXNzXT1cImlzT3BlbiA/ICdkcm9wZG93bi1wb3J0JzogJydcIlxuICA+XG4gICAgPGltZyBjbGFzcz1cImltZy1jb250YWluZXJcIiBbd2lkdGhdPVwiMTZcIiBbaGVpZ2h0XT1cIjE2XCIgW3NyY109XCJzZWxlY3RlZEl0ZW0/LmN1c3RvbUljb25cIiAqbmdJZj1cInNlbGVjdGVkSXRlbT8uY3VzdG9tSWNvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtuZ1N0eWxlXT1cInt3aWR0aDogc2VsZWN0ZWRJdGVtPy5jdXN0b21JY29uID8gJ2NhbGMoMTAwJSAtIDQ4cHgpJyA6ICdjYWxjKDEwMCUgLSAzMnB4KSd9XCI+XG4gICAgICA8cCBjbGFzcz1cInRleHRcIiAqbmdJZj1cIiFzaG93T25seUljb247IGVsc2Ugc2hvd0ljb25cIj5cbiAgICAgICAge3sgbXVsdGlMaW5lID8gc2VsZWN0ZWRJdGVtPy5sYWJlbD8ucHJpbWFyeVRleHQgOiBzZWxlY3RlZEl0ZW0/LmxhYmVsIHx8IGxhYmVsIH19XG4gICAgICA8L3A+XG4gICAgICA8bmctdGVtcGxhdGUgI3Nob3dJY29uPlxuICAgICAgICA8cCBjbGFzcz1cInRleHRcIiAqbmdJZj1cIiFzZWxlY3RlZEl0ZW0/Lmljb25cIj5cbiAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgKm5nSWY9XCIhIXNlbGVjdGVkSXRlbT8uaWNvblwiIFtzcmNdPVwic2VsZWN0ZWRJdGVtPy5pY29uXCIgYWx0PVwibm8gaW1nXCIgLz5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJoYW5kbGVcIlxuICAgICAgW25nU3R5bGVdPVwieyB0cmFuc2Zvcm06IGlzT3BlbiA/ICdyb3RhdGUoMTgwZGVnKScgOiAncm90YXRlKDBkZWcpJyB9XCJcbiAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgaGVpZ2h0PVwiMjBcIlxuICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTMuODI1IDcuMTU4NDVMMTAgMTAuOTc1MUw2LjE3NSA3LjE1ODQ1TDUgOC4zMzM0NUwxMCAxMy4zMzM0TDE1IDguMzMzNDVMMTMuODI1IDcuMTU4NDVaXCJcbiAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wdXBDb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiIGNka1RyYXBGb2N1cyBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiIHRhYmluZGV4PVwiMFwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgaGVpZ2h0OiBkcm9wZG93bkxpc3RIZWlnaHQsXG4gICAgICB3aWR0aDogZHJvcGRvd25MaXN0V2lkdGhcbiAgICB9XCJcbiAgICAoa2V5dXAuZXNjKT1cImNsb3NlT25Fc2MoJGV2ZW50KVwiXG4gICAgYXJpYS1sYWJlbD1cImRyb3Bkb3duXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hFbmFibGVkXCIgY2xhc3M9XCJzZWFyY2gtY29udGFpbmVyXCI+XG4gICAgICA8c3ZnXG4gICAgICAgICpuZ0lmPVwiIWlzU2VhcmNoSW5wdXRGb2N1c2VkXCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvblwiXG4gICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNNC4yMTUwOCAxMS4xNDU2QzQuMjE1MDggNy4zMTc5IDcuMzM3MjIgNC4yMTE2NSAxMS4xOTI2IDQuMjExNjVDMTUuMDQ4IDQuMjExNjUgMTguMTcwMiA3LjMxNzkgMTguMTcwMiAxMS4xNDU2QzE4LjE3MDIgMTIuNjkzMSAxNy42NTk5IDE0LjEyMjYgMTYuNzk3MiAxNS4yNzY3TDE1LjM2ODUgMTYuNzAxM0MxNC4yMDQ0IDE3LjU2NjggMTIuNzU5IDE4LjA3OTYgMTEuMTkyNiAxOC4wNzk2QzcuMzM3MjIgMTguMDc5NiA0LjIxNTA4IDE0Ljk3MzQgNC4yMTUwOCAxMS4xNDU2Wk0xNS45NDIxIDE3Ljc4MzVDMTQuNjAyMSAxOC43MzI5IDEyLjk2MjcgMTkuMjkxMyAxMS4xOTI2IDE5LjI5MTNDNi42Njk3NyAxOS4yOTEzIDMgMTUuNjQ2MSAzIDExLjE0NTZDMyA2LjY0NTEyIDYuNjY5NzcgMyAxMS4xOTI2IDNDMTUuNzE1NSAzIDE5LjM4NTIgNi42NDUxMiAxOS4zODUyIDExLjE0NTZDMTkuMzg1MiAxMi45MzcxIDE4LjgwMzcgMTQuNTkzMSAxNy44MTg0IDE1LjkzNzVMMTkuODM2MSAxNy40MDQ4QzIwLjY3MDUgMTcuOTEyIDIxLjc1NTQgMTguNjU0MyAyMC4yNDU0IDIwLjIxNUMxOC43MzUzIDIxLjc3NTYgMTguMDA5OSAyMC42NjYzIDE3LjQ5OTEgMTkuODM2NEwxNS45NDIxIDE3Ljc4MzVaXCJcbiAgICAgICAgICBmaWxsPVwiIzZBNzM3RFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxpbnB1dFxuICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICBwYWRkaW5nTGVmdDogaXNTZWFyY2hJbnB1dEZvY3VzZWQgPyAnMTJweCcgOiAnNDVweCcsXG4gICAgICAgICAgYm9yZGVyOiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICcxcHggc29saWQgIzA5MzdCMicgOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgICAgICAgIHBhZGRpbmdSaWdodDogaXNTZWFyY2hJbnB1dEZvY3VzZWQgPyAnNDVweCcgOiAnMTBweCdcbiAgICAgICAgfVwiXG4gICAgICAgIFt0YWJJbmRleF09XCIwXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoSW5wdXRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJycgOiBzZWFyY2hMYWJlbFwiXG4gICAgICAgIChmb2N1cyk9XCJzZWFyY2hJbnB1dEZvY3VzZWQodHJ1ZSlcIlxuICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VhcmNoTGFiZWxcIlxuICAgICAgLz5cbiAgICAgIDxzdmdcbiAgICAgICAgKm5nSWY9XCJpc1NlYXJjaElucHV0Rm9jdXNlZFwiXG4gICAgICAgIGNsYXNzPVwiY2FuY2VsLWljb25cIlxuICAgICAgICAoY2xpY2spPVwic2VhcmNoSW5wdXRDYW5jZWxlZCgkZXZlbnQpXCJcbiAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgZD1cIk04Ljg3NDQ2IDcuMzIxNDRDOC40NDU4OCA2Ljg5Mjg1IDcuNzUxIDYuODkyODUgNy4zMjI0MiA3LjMyMTQ0QzYuODkzODMgNy43NTAwMiA2Ljg5MzgzIDguNDQ0OSA3LjMyMjQyIDguODczNDlMMTAuNDQ4OCAxMS45OTk5TDcuMzIzNTcgMTUuMTI1MkM2Ljg5NDk4IDE1LjU1MzggNi44OTQ5OCAxNi4yNDg2IDcuMzIzNTcgMTYuNjc3MkM3Ljc1MjE1IDE3LjEwNTggOC40NDcwMyAxNy4xMDU4IDguODc1NjEgMTYuNjc3MkwxMi4wMDA5IDEzLjU1MkwxNS4xMjYxIDE2LjY3NzJDMTUuNTU0NyAxNy4xMDU4IDE2LjI0OTYgMTcuMTA1OCAxNi42NzgxIDE2LjY3NzJDMTcuMTA2NyAxNi4yNDg2IDE3LjEwNjcgMTUuNTUzNyAxNi42NzgxIDE1LjEyNTFMMTMuNTUyOSAxMS45OTk5TDE2LjY3OTMgOC44NzM1NEMxNy4xMDc5IDguNDQ0OTYgMTcuMTA3OSA3Ljc1MDA4IDE2LjY3OTMgNy4zMjE1QzE2LjI1MDcgNi44OTI5MSAxNS41NTU4IDYuODkyOTEgMTUuMTI3MyA3LjMyMTVMMTIuMDAwOSAxMC40NDc5TDguODc0NDYgNy4zMjE0NFpcIlxuICAgICAgICAgIGZpbGw9XCIjNkE3MzdEXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtY29udGFpbmVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICA8bWlzLWxvYWRlciBbbW9iaWxlVmlld109XCJ0cnVlXCI+PC9taXMtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgdGFiaW5kZXg9XCItMVwiICpuZ0lmPVwiIXNlYXJjaEVuYWJsZWRcIiBjZGtGb2N1c0luaXRpYWw+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1zXCIgI2l0ZW1zQ29udGFpbmVyIFtuZ1N0eWxlXT1cIml0ZW1zQ29udGFpbmVyU3R5bGVcIiAqbmdJZj1cIiFsb2FkaW5nIFwiPlxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCAqbmdJZj1cImN1cnJlbnREYXRhLmxlbmd0aCA+IDBcIiBbaXRlbVNpemVdPVwiaXRlbVNpemVGb3JDZGtcIiBjbGFzcz1cImRyb3Bkb3duLXZpZXdwb3J0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQsICdpdGVtLXNlbGVjdGVkJzogKGhpZ2xpZ2h0U2VsZWN0ZWRWYWx1ZSAmJiBpdGVtLnZhbHVlID09PSBzZWxlY3RlZEl0ZW0/LnZhbHVlKSwgJ2ljb24tb25seScgOiBzaG93T25seUljb24gfVwiXG4gICAgICAgIChjbGljayk9XCJpdGVtLmRpc2FibGVkID8gbnVsbCA6IHNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwiaXRlbS5kaXNhYmxlZCA/IG51bGwgOiBzZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgaXRlbSBvZiBjdXJyZW50RGF0YTtcIlxuICAgICAgICB0YWJJbmRleD1cIjBcIlxuICAgICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21JdGVtOyBlbHNlIHN0YW5kYXJkSXRlbVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tSXRlbVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N0YW5kYXJkSXRlbT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiAqbmdJZj1cIiFzaG93T25seUljb25cIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiBpdGVtLmljb24gPyAnOTAlJyA6ICcxMDAlJywgJ2Rpc3BsYXknOiBtdWx0aUxpbmUgPyAnZmxleCc6ICdpbmhlcml0JywgJ2ZsZXgtZGlyZWN0aW9uJzogbXVsdGlMaW5lID8gJ2NvbHVtbic6ICdpbmhlcml0JyB9XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByaW1hcnlUZXh0XCIgW25nU3R5bGVdPVwiZ2V0SWNvblN0eWxlcyhpdGVtLmljb24sIGFjdGl2ZUl0ZW0pXCI+e3sgbXVsdGlMaW5lID8gaXRlbT8ubGFiZWw/LnByaW1hcnlUZXh0IDogaXRlbT8ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlY29uZGFyeVRleHRcIiAqbmdJZj1cIm11bHRpTGluZVwiIFtuZ1N0eWxlXT1cImdldEljb25TdHlsZXMoaXRlbS5pY29uLCBhY3RpdmVJdGVtKVwiPiB7eyBpdGVtPy5sYWJlbD8uc2Vjb25kYXJ5VGV4dCA/IGl0ZW0/LmxhYmVsPy5zZWNvbmRhcnlUZXh0IDogYWRkaXRpb25hbEluZm9NZXNzYWdlICB9fSA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgW3NyY109XCJpdGVtLmljb25cIiBhbHQ9XCJubyBpbWdcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibm9EYXRhXCIgKm5nSWY9XCJjdXJyZW50RGF0YS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAge3sgc2VhcmNoSW5wdXQgPT09IFwiXCIgPyBub0RhdGFNZXNzYWdlIDogXCJObyByZXN1bHRzXCIgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
521
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNlOUQsMEJBQXdIOzs7SUFBbEUsQUFBZCxBQUFiLDBCQUFZLGNBQWMsOEZBQWlDOzs7SUFFcEYsNkJBQXFEO0lBQ25ELFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLDRQQUNGOzs7SUFFRSw2QkFBNEM7SUFDMUMsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsNkNBQ0Y7OztJQUNBLDBCQUF5Rjs7O0lBQTFDLHFHQUEwQjs7O0lBQXpFLEFBSEEsNkVBQTRDLG9FQUc2Qzs7O0lBSHhFLHVGQUF5QjtJQUd2QixjQUEwQjtJQUExQix3RkFBMEI7Ozs7SUFnQy9DLCtCQVFDO0lBQ0MsMkJBS0U7SUFDSixpQkFBTTs7Ozs7SUFlTiwrQkFTQztJQU5DLDJNQUFTLGtDQUEyQixLQUFDO0lBT3JDLDJCQUtFO0lBQ0osaUJBQU07Ozs7SUEvQ1IsK0JBQW9EO0lBQ2xELDZGQVFDO0lBUUQsaUNBYUU7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QUFNO2tCQUFkLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0cscUJBQXFCO2tCQUE3QixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNJLFFBQVE7a0JBQWpCLE1BQU07WUFDaUMsYUFBYTtrQkFBcEQsU0FBUzttQkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ1UsY0FBYztrQkFBN0QsU0FBUzttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFTSxjQUFjO2tCQUFqRSxTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQU1ULFFBQVE7a0JBQTVDLFNBQVM7bUJBQUMsd0JBQXdCO1lBQ2UsVUFBVTtrQkFBM0QsWUFBWTttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBOEpoRCxVQUFVO2tCQURULFlBQVk7bUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztrRkFyTTFCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNPcGVuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWFyY2hJbnB1dEZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VhcmNoSW5wdXQ6IHN0cmluZyA9IFwiXCI7XG4gIHNlYXJjaERhdGE6IERyb3Bkb3duSXRlbVtdID0gW107XG4gIHZpc2libGVJdGVtcyA9IDEwO1xuICBkeW5hbWljSGVpZ2h0OiBzdHJpbmcgPSBcImF1dG9cIjtcbiAgQElucHV0KCkgZGF0YTogRHJvcGRvd25JdGVtW10gID0gW107XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiU2VsZWN0XCI7XG4gIEBJbnB1dCgpIGl0ZW1TaXplRm9yQ2RrOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dPbmx5SWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWdsaWdodFNlbGVjdGVkVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0SGVpZ2h0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkcm9wZG93bkxpc3RXaWR0aDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0UG9zaXRpb246IFwiTGVmdFwiIHwgXCJSaWdodFwiID0gXCJMZWZ0XCI7XG4gIEBJbnB1dCgpIGNvbmZpZ1xuICBASW5wdXQoKSBzZWFyY2hFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtOiBEcm9wZG93bkl0ZW0gPSB7IHZhbHVlOiBcIlwiLCBsYWJlbDogXCJcIiB9O1xuICBASW5wdXQoKSBub0RhdGFNZXNzYWdlOiBzdHJpbmcgPSBcIk5vIERhdGFcIjtcbiAgQElucHV0KCkgbXVsdGlMaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxJbmZvTWVzc2FnZSA6IHN0cmluZztcbiAgQElucHV0KCkgc2Nyb2xsSW50b1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoTGFiZWw6c3RyaW5nID0gXCJTZWFyY2ggS2V5d29yZFwiO1xuICBASW5wdXQoKSBjdXN0b21TdHlsZXM6ICB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoKSBhY3RpdmVJdGVtOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3RcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJwb3B1cENvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wdXBDb250YWluZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIF9pdGVtc0NvbnRhaW5lcjogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xuICBAVmlld0NoaWxkKFwiaXRlbXNDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNldCBpdGVtc0NvbnRhaW5lcihjb250YWluZXI6IEVsZW1lbnRSZWYgfCBudWxsKSB7XG4gICAgdGhpcy5faXRlbXNDb250YWluZXIgPSBjb250YWluZXI7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCk7XG4gICAgfVxuICB9XG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuICBAQ29udGVudENoaWxkKFwibWlzQ3VzdG9tSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSkgY3VzdG9tSXRlbTogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZVJlZjogRWxlbWVudFJlZiwgXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cbiAgXG4gIG5nT25Jbml0KCkge1xuICB9XG5cblxuICBtZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCkge1xuICAgIGlmICghdGhpcy5pc09wZW4gfHwgIXRoaXMuX2l0ZW1zQ29udGFpbmVyKSByZXR1cm47XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9pdGVtc0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpdGVtcyA9IGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvckFsbCgnLml0ZW0nKTtcbiAgICBcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZHluYW1pY0hlaWdodCA9IFwiNTBweFwiO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIFxuICAgIGxldCB0b3RhbE1lYXN1cmVkSGVpZ2h0ID0gMDtcbiAgICBsZXQgbWF4SXRlbUhlaWdodCA9IDA7XG4gICAgXG4gICAgQXJyYXkuZnJvbShpdGVtcyk/LnNsaWNlKDAsIE1hdGgubWluKDgsIGl0ZW1zPy5sZW5ndGggfHwgMCkpPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBodG1sSXRlbSA9IGl0ZW0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBsZXQgaXRlbUhlaWdodCA9IGh0bWxJdGVtPy5vZmZzZXRIZWlnaHQgfHwgMDsgLy9vZmZzZXRIZWlnaHQgaXMgbW9yZSByZWxpYWJsZSB0aGFuIGdldEJvdW5kaW5nQ2xpZW50UmVjdFxuICAgICAgdG90YWxNZWFzdXJlZEhlaWdodCArPSBpdGVtSGVpZ2h0O1xuICAgICAgbWF4SXRlbUhlaWdodCA9IE1hdGgubWF4KG1heEl0ZW1IZWlnaHQsIGl0ZW1IZWlnaHQpO1xuICAgIH0pO1xuICAgIC8vTmVlZGVkIHRvIGhhbmRsZSB0aGUgc2Nyb2xsYmFyIGNvbWluZyBmb3IgMi0zIGl0ZW1zIGNhc2VcbiAgICBjb25zdCBjb250YWluZXJQYWRkaW5nID0gODtcbiAgICBjb25zdCBmaW5hbEhlaWdodCA9IE1hdGgubWF4KDUwLCBNYXRoLm1pbih0b3RhbE1lYXN1cmVkSGVpZ2h0ICsgY29udGFpbmVyUGFkZGluZywgMzIwKSk7XG4gICAgXG4gICAgdGhpcy5keW5hbWljSGVpZ2h0ID0gdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQgPyB0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCA6IGAke2ZpbmFsSGVpZ2h0fXB4YDtcbiAgfVxuXG4gIGdldCBjdXJyZW50RGF0YSgpOiBEcm9wZG93bkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5wdXQgPyB0aGlzLnNlYXJjaERhdGEgOiB0aGlzLmRhdGE7XG4gIH1cblxuICBnZXQgaXRlbXNDb250YWluZXJTdHlsZSgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2hlaWdodCc6IHRoaXMuZHluYW1pY0hlaWdodCxcbiAgICAgICdtYXgtaGVpZ2h0JzogJzMyMHB4JyxcbiAgICAgICdtaW4taGVpZ2h0JzogJzUwcHgnXG4gICAgfTtcbiAgfVxuXG4gIGdldEljb25TdHlsZXMoaXRlbTogYW55LCBhY3RpdmVJdGVtOiBib29sZWFuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjb2xvcic6IGl0ZW0gJiYgYWN0aXZlSXRlbSA/ICcjMDkzN0IyJyA6ICcnLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogaXRlbSAmJiBhY3RpdmVJdGVtID8gJzcwMCcgOiAnJ1xuICAgIH07XG4gIH1cblxuc2V0VXBBc3luY0RhdGFTZWFyY2goKVxue1xuICBpZih0aGlzLmNvbmZpZylcbiAge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlnPy5kYXRhU3RyZWFtKCk/LnBpcGUoKT8uc3Vic2NyaWJlKHJlcz0+IHtcbiAgICAgICAgICB0aGlzLmRhdGEgPSByZXMgfHwgW11cbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCksIDYwKTtcbiAgICAgIH0pXG4gIH1cbiAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGE/LmZpbmRJbmRleCgoZGF0YUl0ZW0pID0+IGRhdGFJdGVtPy52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZEl0ZW0/LnZhbHVlKSB8fCAtMTtcbiAgaWYgKHRoaXMuc2Nyb2xsSW50b1ZpZXcgJiYgdGhpcy52aWV3UG9ydClcbiAgICB0aGlzLnZpZXdQb3J0Py5zY3JvbGxUb0luZGV4KGluZGV4LCAnc21vb3RoJyk7XG59XG4gIGZpbHRlckJ5VmFsdWUoYXJyYXksIHN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFycmF5Py5maWx0ZXIobyA9PiBvPy5sYWJlbD8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoc3RyaW5nPy50b0xvd2VyQ2FzZSgpPy50cmltKCkpKSB8fCBbXTtcbiAgfVxuXG4gIGZpbHRlckJ5UHJpbWFyeVRleHQoYXJyYXksIHN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFycmF5Py5maWx0ZXIobyA9PiBvPy5sYWJlbD8ucHJpbWFyeVRleHQ/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKHN0cmluZz8udG9Mb3dlckNhc2UoKT8udHJpbSgpKSkgfHwgW107XG4gIH1cbiAgc2VhcmNoSW5wdXRPbkNoYW5nZShuZXdWYWx1ZSkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBuZXdWYWx1ZTtcbiAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IHRoaXMubXVsdGlMaW5lID8gdGhpcy5maWx0ZXJCeVByaW1hcnlUZXh0KHRoaXMuZGF0YSwgbmV3VmFsdWUpIDogdGhpcy5maWx0ZXJCeVZhbHVlKHRoaXMuZGF0YSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCkpO1xuICB9XG4gIHNlYXJjaElucHV0Rm9jdXNlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gaXNGb2N1c2VkO1xuICB9XG4gIHNlYXJjaElucHV0Q2FuY2VsZWQoZXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLm1lYXN1cmVBbmRVcGRhdGVIZWlnaHQoKSk7XG4gIH1cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLnBvcHVwQ29udGFpbmVyLCB0aGlzLnNlbGVjdEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIG9wZW5Ecm9wZG93bih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudD4sIG9yaWdpbjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvbnNCb3R0b20gPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcInRvcFwiIH0sIDAsIDQpLFxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcImVuZFwiLCBvcmlnaW5ZOiBcImJvdHRvbVwiIH0sIHsgb3ZlcmxheVg6IFwiZW5kXCIsIG92ZXJsYXlZOiBcInRvcFwiIH0sIDAsIDQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvbnNUb3AgPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcImJvdHRvbVwiIH0sIDAsIC00KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNClcbiAgICBdO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhvcmlnaW4pXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNCb3R0b20ucmV2ZXJzZSgpIDogcG9zaXRpb25zQm90dG9tKSxcbiAgICAgICAgLi4uKHRoaXMuZHJvcGRvd25MaXN0UG9zaXRpb24gPT09IFwiUmlnaHRcIiA/IHBvc2l0aW9uc1RvcC5yZXZlcnNlKCkgOiBwb3NpdGlvbnNUb3ApXG4gICAgICBdKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIixcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgd2lkdGg6IG9yaWdpbj8uY2xpZW50V2lkdGhcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZ3MpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKSB0aGlzLm92ZXJsYXlSZWY/LnVwZGF0ZVNpemUoeyB3aWR0aDogdGhpcy5kcm9wZG93bkxpc3RXaWR0aCB9KTtcbiAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RIZWlnaHQpIHRoaXMub3ZlcmxheVJlZj8udXBkYXRlU2l6ZSh7IGhlaWdodDogdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmJhY2tkcm9wQ2xpY2soKT8uc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm9uQ2FuY2VsKCk7XG4gICAgfSk7XG4gIH1cbiAgc2VsZWN0SXRlbShpdGVtKSB7XG4gICAgdGhpcy5vbkNoYW5nZT8uZW1pdChpdGVtKTsgIFxuICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcbiAgfVxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIHRoaXMuX2l0ZW1zQ29udGFpbmVyID0gbnVsbDsgLy8gUmVzZXQgY29udGFpbmVyIHJlZmVyZW5jZSB0byBlbnN1cmUgZnJlc2ggc2V0dXAgb24gbmV4dCBvcGVuXG4gIH1cbiAgXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXl1cC5lc2NcIiwgWyckZXZlbnQnXSlcbiAgY2xvc2VPbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JdGVtIHtcbiAgbGFiZWw6IGFueSA7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgY3VzdG9tSWNvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JdGVtTGFiZWwge1xuICBwcmltYXJ5VGV4dCA/OiBzdHJpbmc7XG4gIHNlY29uZGFyeVRleHQgPzogc3RyaW5nO1xufVxuIiwiPGRpdiAoY2xpY2spPVwic2V0VXBBc3luY0RhdGFTZWFyY2goKVwiXG4oa2V5dXAuZW50ZXIpPVwic2V0VXBBc3luY0RhdGFTZWFyY2goKVwiXG4gIGNsYXNzPVwibWFpbi1jb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgaGVpZ2h0OiBoZWlnaHQubGVuZ3RoID4gMCA/IGhlaWdodCA6ICcnLFxuICAgIHdpZHRoOiB3aWR0aC5sZW5ndGggPiAwID8gd2lkdGggOiAnJ1xuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgICNzZWxlY3RcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgW25nU3R5bGVdPVwiY3VzdG9tU3R5bGVzXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW25nQ2xhc3NdPVwiaXNPcGVuID8gJ2Ryb3Bkb3duLXBvcnQnOiAnJ1wiXG4gID5cbiAgICA8aW1nIGNsYXNzPVwiaW1nLWNvbnRhaW5lclwiIFt3aWR0aF09XCIxNlwiIFtoZWlnaHRdPVwiMTZcIiBbc3JjXT1cInNlbGVjdGVkSXRlbT8uY3VzdG9tSWNvblwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtPy5jdXN0b21JY29uXCI+XG4gICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgW25nU3R5bGVdPVwie3dpZHRoOiBzZWxlY3RlZEl0ZW0/LmN1c3RvbUljb24gPyAnY2FsYygxMDAlIC0gNDhweCknIDogJ2NhbGMoMTAwJSAtIDMycHgpJ31cIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiIXNob3dPbmx5SWNvbjsgZWxzZSBzaG93SWNvblwiPlxuICAgICAgICB7eyBtdWx0aUxpbmUgPyBzZWxlY3RlZEl0ZW0/LmxhYmVsPy5wcmltYXJ5VGV4dCA6IHNlbGVjdGVkSXRlbT8ubGFiZWwgfHwgbGFiZWwgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiIXNlbGVjdGVkSXRlbT8uaWNvblwiPlxuICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGltZyBjbGFzcz1cImljb25cIiAqbmdJZj1cIiEhc2VsZWN0ZWRJdGVtPy5pY29uXCIgW3NyY109XCJzZWxlY3RlZEl0ZW0/Lmljb25cIiBhbHQ9XCJubyBpbWdcIiAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cImhhbmRsZVwiXG4gICAgICBbbmdTdHlsZV09XCJ7IHRyYW5zZm9ybTogaXNPcGVuID8gJ3JvdGF0ZSgxODBkZWcpJyA6ICdyb3RhdGUoMGRlZyknIH1cIlxuICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICBoZWlnaHQ9XCIyMFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMy44MjUgNy4xNTg0NUwxMCAxMC45NzUxTDYuMTc1IDcuMTU4NDVMNSA4LjMzMzQ1TDEwIDEzLjMzMzRMMTUgOC4zMzM0NUwxMy44MjUgNy4xNTg0NVpcIlxuICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNwb3B1cENvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCIgY2RrVHJhcEZvY3VzIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCIgdGFiaW5kZXg9XCIwXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IGRyb3Bkb3duTGlzdEhlaWdodCxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aFxuICAgIH1cIlxuICAgIChrZXl1cC5lc2MpPVwiY2xvc2VPbkVzYygkZXZlbnQpXCJcbiAgICBhcmlhLWxhYmVsPVwiZHJvcGRvd25cIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cInNlYXJjaEVuYWJsZWRcIiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgIDxzdmdcbiAgICAgICAgKm5nSWY9XCIhaXNTZWFyY2hJbnB1dEZvY3VzZWRcIlxuICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uXCJcbiAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgZD1cIk00LjIxNTA4IDExLjE0NTZDNC4yMTUwOCA3LjMxNzkgNy4zMzcyMiA0LjIxMTY1IDExLjE5MjYgNC4yMTE2NUMxNS4wNDggNC4yMTE2NSAxOC4xNzAyIDcuMzE3OSAxOC4xNzAyIDExLjE0NTZDMTguMTcwMiAxMi42OTMxIDE3LjY1OTkgMTQuMTIyNiAxNi43OTcyIDE1LjI3NjdMMTUuMzY4NSAxNi43MDEzQzE0LjIwNDQgMTcuNTY2OCAxMi43NTkgMTguMDc5NiAxMS4xOTI2IDE4LjA3OTZDNy4zMzcyMiAxOC4wNzk2IDQuMjE1MDggMTQuOTczNCA0LjIxNTA4IDExLjE0NTZaTTE1Ljk0MjEgMTcuNzgzNUMxNC42MDIxIDE4LjczMjkgMTIuOTYyNyAxOS4yOTEzIDExLjE5MjYgMTkuMjkxM0M2LjY2OTc3IDE5LjI5MTMgMyAxNS42NDYxIDMgMTEuMTQ1NkMzIDYuNjQ1MTIgNi42Njk3NyAzIDExLjE5MjYgM0MxNS43MTU1IDMgMTkuMzg1MiA2LjY0NTEyIDE5LjM4NTIgMTEuMTQ1NkMxOS4zODUyIDEyLjkzNzEgMTguODAzNyAxNC41OTMxIDE3LjgxODQgMTUuOTM3NUwxOS44MzYxIDE3LjQwNDhDMjAuNjcwNSAxNy45MTIgMjEuNzU1NCAxOC42NTQzIDIwLjI0NTQgMjAuMjE1QzE4LjczNTMgMjEuNzc1NiAxOC4wMDk5IDIwLjY2NjMgMTcuNDk5MSAxOS44MzY0TDE1Ljk0MjEgMTcuNzgzNVpcIlxuICAgICAgICAgIGZpbGw9XCIjNkE3MzdEXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaElucHV0XCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIHBhZGRpbmdMZWZ0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICcxMnB4JyA6ICc0NXB4JyxcbiAgICAgICAgICBib3JkZXI6IGlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJzFweCBzb2xpZCAjMDkzN0IyJyA6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICc0NXB4JyA6ICcxMHB4J1xuICAgICAgICB9XCJcbiAgICAgICAgW3RhYkluZGV4XT1cIjBcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hJbnB1dE9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXNTZWFyY2hJbnB1dEZvY3VzZWQgPyAnJyA6IHNlYXJjaExhYmVsXCJcbiAgICAgICAgKGZvY3VzKT1cInNlYXJjaElucHV0Rm9jdXNlZCh0cnVlKVwiXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWFyY2hMYWJlbFwiXG4gICAgICAvPlxuICAgICAgPHN2Z1xuICAgICAgICAqbmdJZj1cImlzU2VhcmNoSW5wdXRGb2N1c2VkXCJcbiAgICAgICAgY2xhc3M9XCJjYW5jZWwtaWNvblwiXG4gICAgICAgIChjbGljayk9XCJzZWFyY2hJbnB1dENhbmNlbGVkKCRldmVudClcIlxuICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTguODc0NDYgNy4zMjE0NEM4LjQ0NTg4IDYuODkyODUgNy43NTEgNi44OTI4NSA3LjMyMjQyIDcuMzIxNDRDNi44OTM4MyA3Ljc1MDAyIDYuODkzODMgOC40NDQ5IDcuMzIyNDIgOC44NzM0OUwxMC40NDg4IDExLjk5OTlMNy4zMjM1NyAxNS4xMjUyQzYuODk0OTggMTUuNTUzOCA2Ljg5NDk4IDE2LjI0ODYgNy4zMjM1NyAxNi42NzcyQzcuNzUyMTUgMTcuMTA1OCA4LjQ0NzAzIDE3LjEwNTggOC44NzU2MSAxNi42NzcyTDEyLjAwMDkgMTMuNTUyTDE1LjEyNjEgMTYuNjc3MkMxNS41NTQ3IDE3LjEwNTggMTYuMjQ5NiAxNy4xMDU4IDE2LjY3ODEgMTYuNjc3MkMxNy4xMDY3IDE2LjI0ODYgMTcuMTA2NyAxNS41NTM3IDE2LjY3ODEgMTUuMTI1MUwxMy41NTI5IDExLjk5OTlMMTYuNjc5MyA4Ljg3MzU0QzE3LjEwNzkgOC40NDQ5NiAxNy4xMDc5IDcuNzUwMDggMTYuNjc5MyA3LjMyMTVDMTYuMjUwNyA2Ljg5MjkxIDE1LjU1NTggNi44OTI5MSAxNS4xMjczIDcuMzIxNUwxMi4wMDA5IDEwLjQ0NzlMOC44NzQ0NiA3LjMyMTQ0WlwiXG4gICAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDxtaXMtbG9hZGVyIFttb2JpbGVWaWV3XT1cInRydWVcIj48L21pcy1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiB0YWJpbmRleD1cIi0xXCIgKm5nSWY9XCIhc2VhcmNoRW5hYmxlZFwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXNcIiAjaXRlbXNDb250YWluZXIgW25nU3R5bGVdPVwiaXRlbXNDb250YWluZXJTdHlsZVwiICpuZ0lmPVwiIWxvYWRpbmcgXCI+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICpuZ0lmPVwiY3VycmVudERhdGEubGVuZ3RoID4gMFwiIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZUZvckNka1wiIGNsYXNzPVwiZHJvcGRvd24tdmlld3BvcnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpdGVtLWRpc2FibGVkJzogaXRlbS5kaXNhYmxlZCwgJ2l0ZW0tc2VsZWN0ZWQnOiAoaGlnbGlnaHRTZWxlY3RlZFZhbHVlICYmIGl0ZW0udmFsdWUgPT09IHNlbGVjdGVkSXRlbT8udmFsdWUpLCAnaWNvbi1vbmx5JyA6IHNob3dPbmx5SWNvbiB9XCJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW0uZGlzYWJsZWQgPyBudWxsIDogc2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtLmRpc2FibGVkID8gbnVsbCA6IHNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGN1cnJlbnREYXRhO1wiXG4gICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUl0ZW07IGVsc2Ugc3RhbmRhcmRJdGVtXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRJdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiICpuZ0lmPVwiIXNob3dPbmx5SWNvblwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGl0ZW0uaWNvbiA/ICc5MCUnIDogJzEwMCUnLCAnZGlzcGxheSc6IG11bHRpTGluZSA/ICdmbGV4JzogJ2luaGVyaXQnLCAnZmxleC1kaXJlY3Rpb24nOiBtdWx0aUxpbmUgPyAnY29sdW1uJzogJ2luaGVyaXQnIH1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpbWFyeVRleHRcIiBbbmdTdHlsZV09XCJnZXRJY29uU3R5bGVzKGl0ZW0uaWNvbiwgYWN0aXZlSXRlbSlcIj57eyBtdWx0aUxpbmUgPyBpdGVtPy5sYWJlbD8ucHJpbWFyeVRleHQgOiBpdGVtPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kYXJ5VGV4dFwiICpuZ0lmPVwibXVsdGlMaW5lXCIgW25nU3R5bGVdPVwiZ2V0SWNvblN0eWxlcyhpdGVtLmljb24sIGFjdGl2ZUl0ZW0pXCI+IHt7IGl0ZW0/LmxhYmVsPy5zZWNvbmRhcnlUZXh0ID8gaXRlbT8ubGFiZWw/LnNlY29uZGFyeVRleHQgOiBhZGRpdGlvbmFsSW5mb01lc3NhZ2UgIH19IDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIGFsdD1cIm5vIGltZ1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFcIiAqbmdJZj1cImN1cnJlbnREYXRhLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyBzZWFyY2hJbnB1dCA9PT0gXCJcIiA/IG5vRGF0YU1lc3NhZ2UgOiBcIk5vIHJlc3VsdHNcIiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|