igniteui-angular 17.2.6 → 17.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +9 -1
- package/esm2022/lib/core/density.mjs +2 -1
- package/esm2022/lib/directives/for-of/for_of.directive.mjs +2 -2
- package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -1
- package/esm2022/lib/grids/common/events.mjs +1 -1
- package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
- package/esm2022/lib/grids/common/strategy.mjs +2 -2
- package/esm2022/lib/grids/common/types.mjs +1 -1
- package/esm2022/lib/grids/grid-base.directive.mjs +41 -38
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +2 -2
- package/fesm2022/igniteui-angular.mjs +57 -40
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/core/density.d.ts +1 -0
- package/lib/grids/common/events.d.ts +30 -30
- package/lib/grids/common/grid.interface.d.ts +48 -48
- package/lib/grids/common/strategy.d.ts +1 -1
- package/lib/grids/common/types.d.ts +2 -2
- package/lib/grids/grid-base.directive.d.ts +2 -1
- package/package.json +1 -1
|
@@ -39,6 +39,10 @@ export class IgxMonthPickerComponent extends IgxCalendarBaseDirective {
|
|
|
39
39
|
if (this.isDecadeView) {
|
|
40
40
|
this.viewDate = CalendarDay.from(this.viewDate).add('year', -15).native;
|
|
41
41
|
}
|
|
42
|
+
this.viewDateChanged.emit({
|
|
43
|
+
previousValue: this.previousViewDate,
|
|
44
|
+
currentValue: this.viewDate,
|
|
45
|
+
});
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* @hidden
|
|
@@ -52,6 +56,10 @@ export class IgxMonthPickerComponent extends IgxCalendarBaseDirective {
|
|
|
52
56
|
if (this.isDecadeView) {
|
|
53
57
|
this.viewDate = CalendarDay.from(this.viewDate).add('year', 15).native;
|
|
54
58
|
}
|
|
59
|
+
this.viewDateChanged.emit({
|
|
60
|
+
previousValue: this.previousViewDate,
|
|
61
|
+
currentValue: this.viewDate,
|
|
62
|
+
});
|
|
55
63
|
}
|
|
56
64
|
/**
|
|
57
65
|
* @hidden
|
|
@@ -423,4 +431,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
423
431
|
type: HostListener,
|
|
424
432
|
args: ['mousedown', ['$event']]
|
|
425
433
|
}] } });
|
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUtSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FB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ZCxZQUFZO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWtCbkMsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9KbEMsV0FBVztzQkFEcEIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgVmlld0NoaWxkLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCwgRGF0ZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBJZ3hNb250aHNWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4uL21vbnRocy12aWV3L21vbnRocy12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWd4WWVhcnNWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4uL3llYXJzLXZpZXcveWVhcnMtdmlldy5jb21wb25lbnRcIjtcbmltcG9ydCB7IElneERheXNWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4uL2RheXMtdmlldy9kYXlzLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IElneENhbGVuZGFyVmlldyB9IGZyb20gXCIuLi9jYWxlbmRhclwiO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXkgfSBmcm9tIFwiLi4vY29tbW9uL21vZGVsXCI7XG5pbXBvcnQgeyBJZ3hDYWxlbmRhckJhc2VEaXJlY3RpdmUgfSBmcm9tIFwiLi4vY2FsZW5kYXItYmFzZVwiO1xuaW1wb3J0IHsgS2V5Ym9hcmROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi9jYWxlbmRhci5zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgZm9ybWF0VG9QYXJ0cyB9IGZyb20gXCIuLi9jb21tb24vaGVscGVyc1wiO1xuXG5sZXQgTkVYVF9JRCA9IDA7XG5AQ29tcG9uZW50KHtcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJZ3hNb250aFBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbXVsdGk6IGZhbHNlLFxuICAgICAgICAgICAgcHJvdmlkZTogS2V5Ym9hcmROYXZpZ2F0aW9uU2VydmljZVxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc2VsZWN0b3I6IFwiaWd4LW1vbnRoLXBpY2tlclwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIm1vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ1N0eWxlLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgSWd4SWNvbkNvbXBvbmVudCxcbiAgICAgICAgSWd4TW9udGhzVmlld0NvbXBvbmVudCxcbiAgICAgICAgSWd4WWVhcnNWaWV3Q29tcG9uZW50LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIElneE1vbnRoUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgSWd4Q2FsZW5kYXJCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgbW9udGggcGlja2VyLlxuICAgICAqIElmIG5vdCBzZXQsIHRoZSBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtbW9udGgtcGlja2VyLTBcImAuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKFwiYXR0ci5pZFwiKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1tb250aC1waWNrZXItJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIF9hY3RpdmVEZXNjZW5kYW50OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChcIndyYXBwZXJcIilcbiAgICBwdWJsaWMgd3JhcHBlcjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IGNzcyBjbGFzcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaWd4LW1vbnRoLXBpY2tlclwiKVxuICAgIHB1YmxpYyBzdHlsZUNsYXNzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKFwibW9udGhzXCIsIHsgcmVhZDogSWd4TW9udGhzVmlld0NvbXBvbmVudCB9KVxuICAgIHB1YmxpYyBtb250aHNWaWV3OiBJZ3hNb250aHNWaWV3Q29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoXCJkZWNhZGVcIiwgeyByZWFkOiBJZ3hZZWFyc1ZpZXdDb21wb25lbnQgfSlcbiAgICBwdWJsaWMgZGFjYWRlVmlldzogSWd4WWVhcnNWaWV3Q29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoXCJkYXlzXCIsIHsgcmVhZDogSWd4RGF5c1ZpZXdDb21wb25lbnQgfSlcbiAgICBwdWJsaWMgZGF5c1ZpZXc6IElneERheXNWaWV3Q29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoXCJ5ZWFyc0J0blwiKVxuICAgIHB1YmxpYyB5ZWFyc0J0bjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKFwia2V5ZG93bi5wYWdldXBcIiwgW1wiJGV2ZW50XCJdKVxuICAgIHB1YmxpYyBwcmV2aW91c1BhZ2UoZXZlbnQ/OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnByZXZpb3VzVmlld0RhdGUgPSB0aGlzLnZpZXdEYXRlO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBDYWxlbmRhckRheS5mcm9tKHRoaXMudmlld0RhdGUpLmFkZCgneWVhcicsIC0xKS5uYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBDYWxlbmRhckRheS5mcm9tKHRoaXMudmlld0RhdGUpLmFkZCgneWVhcicsIC0xNSkubmF0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLnBhZ2Vkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgbmV4dFBhZ2UoZXZlbnQ/OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnByZXZpb3VzVmlld0RhdGUgPSB0aGlzLnZpZXdEYXRlO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBDYWxlbmRhckRheS5mcm9tKHRoaXMudmlld0RhdGUpLmFkZCgneWVhcicsIDEpLm5hdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVjYWRlVmlldykge1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgMTUpLm5hdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuXHQvKipcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBvbkFjdGl2ZVZpZXdEZWNhZGVLQihkYXRlOiBEYXRlLCBldmVudDogS2V5Ym9hcmRFdmVudCwgYWN0aXZlVmlld0lkeDogbnVtYmVyKSB7XG5cdFx0c3VwZXIuYWN0aXZlVmlld0RlY2FkZUtCKGV2ZW50LCBhY3RpdmVWaWV3SWR4KTtcblxuXHRcdGlmICh0aGlzLnBsYXRmb3JtLmlzQWN0aXZhdGlvbktleShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBkYXRlO1xuICAgICAgICAgICAgdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBvbkFjdGl2ZVZpZXdEZWNhZGUoZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IERhdGUsIGFjdGl2ZVZpZXdJZHg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0c3VwZXIuYWN0aXZlVmlld0RlY2FkZShhY3RpdmVWaWV3SWR4KTtcbiAgICAgICAgdGhpcy52aWV3RGF0ZSA9IGRhdGU7XG5cdH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYWN0aXZlVmlld0RlY2FkZUtCKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN1cGVyLmFjdGl2ZVZpZXdEZWNhZGVLQihldmVudCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQVJST1dfUklHSFQpIHtcbiAgICAgICAgICAgIHRoaXMubmV4dFBhZ2UoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5wbGF0Zm9ybS5LRVlNQVAuQVJST1dfTEVGVCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91c1BhZ2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBhY3RpdmVWaWV3RGVjYWRlKCkge1xuICAgICAgICBzdXBlci5hY3RpdmVWaWV3RGVjYWRlKCk7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhbmdlUGFnZUtCKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBuZXh0ID0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5wbGF0Zm9ybS5pc0FjdGl2YXRpb25LZXkoZXZlbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5leHRQYWdlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdFllYXIoZXZlbnQ6IERhdGUpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1ZpZXdEYXRlID0gdGhpcy52aWV3RGF0ZTtcblxuICAgICAgICB0aGlzLnZpZXdEYXRlID0gbmV3IERhdGUoXG4gICAgICAgICAgICBldmVudC5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgICAgZXZlbnQuZ2V0TW9udGgoKSxcbiAgICAgICAgICAgIGV2ZW50LmdldERhdGUoKSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBJZ3hDYWxlbmRhclZpZXcuWWVhcjtcbiAgICAgICAgdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdE1vbnRoKGV2ZW50OiBEYXRlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RGF0ZShldmVudCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbGVjdHMgYSBkYXRlLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgdGhpcy5tb250aFBpY2tlci5zZWxlY3REYXRlKG5ldyBEYXRlKGAyMDE4LTA2LTEyYCkpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBzZWxlY3REYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIuc2VsZWN0RGF0ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudmlld0RhdGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldE5leHRZZWFyKCkge1xuICAgICAgICByZXR1cm4gQ2FsZW5kYXJEYXkuZnJvbSh0aGlzLnZpZXdEYXRlKS5hZGQoJ3llYXInLCAxKS55ZWFyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UHJldmlvdXNZZWFyKCkge1xuICAgICAgICByZXR1cm4gQ2FsZW5kYXJEYXkuZnJvbSh0aGlzLnZpZXdEYXRlKS5hZGQoJ3llYXInLCAtMSkueWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZURhdGUoZGF0ZTogRGF0ZSkge1xuICAgICAgICB0aGlzLnByZXZpb3VzVmlld0RhdGUgPSB0aGlzLnZpZXdEYXRlO1xuICAgICAgICB0aGlzLnZpZXdEYXRlID0gQ2FsZW5kYXJEYXkuZnJvbShkYXRlKS5hZGQoJ3llYXInLCAtdGhpcy5hY3RpdmVWaWV3SWR4KS5uYXRpdmU7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNWYWx1ZTogdGhpcy5wcmV2aW91c1ZpZXdEYXRlLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZTogdGhpcy52aWV3RGF0ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd0FjdGl2ZURheTogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG4gICAgcHJvdGVjdGVkIHNldCBzaG93QWN0aXZlRGF5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dBY3RpdmVEYXkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2hvd0FjdGl2ZURheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dBY3RpdmVEYXk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBhY3RpdmVEZXNjZW5kYW50KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgIHJldHVybiAodGhpcy52YWx1ZSBhcyBEYXRlKT8uZ2V0VGltZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZURlc2NlbmRhbnQgPz8gdGhpcy52aWV3RGF0ZS5nZXRUaW1lKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldCBhY3RpdmVEZXNjZW5kYW50KGRhdGU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRGVzY2VuZGFudCA9IGRhdGUuZ2V0VGltZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgaXNEZWZhdWx0VmlldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlldyA9PT0gSWd4Q2FsZW5kYXJWaWV3LlllYXI7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBJZ3hDYWxlbmRhclZpZXcuWWVhcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmtleWJvYXJkTmF2aWdhdGlvblxuICAgICAgICAgICAgLmF0dGFjaEtleWJvYXJkSGFuZGxlcnModGhpcy53cmFwcGVyLCB0aGlzKVxuICAgICAgICAgICAgLnNldChcIkFycm93VXBcIiwgdGhpcy5vbkFycm93VXApXG4gICAgICAgICAgICAuc2V0KFwiQXJyb3dEb3duXCIsIHRoaXMub25BcnJvd0Rvd24pXG4gICAgICAgICAgICAuc2V0KFwiQXJyb3dMZWZ0XCIsIHRoaXMub25BcnJvd0xlZnQpXG4gICAgICAgICAgICAuc2V0KFwiQXJyb3dSaWdodFwiLCB0aGlzLm9uQXJyb3dSaWdodClcbiAgICAgICAgICAgIC5zZXQoXCJFbnRlclwiLCB0aGlzLm9uRW50ZXIpXG4gICAgICAgICAgICAuc2V0KFwiIFwiLCB0aGlzLm9uRW50ZXIpXG4gICAgICAgICAgICAuc2V0KFwiSG9tZVwiLCB0aGlzLm9uSG9tZSlcbiAgICAgICAgICAgIC5zZXQoXCJFbmRcIiwgdGhpcy5vbkVuZClcbiAgICAgICAgICAgIC5zZXQoXCJQYWdlVXBcIiwgdGhpcy5oYW5kbGVQYWdlVXApXG4gICAgICAgICAgICAuc2V0KFwiUGFnZURvd25cIiwgdGhpcy5oYW5kbGVQYWdlRG93bik7XG5cbiAgICAgICAgdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHRoaXMub25XcmFwcGVyRm9jdXMoZXZlbnQpKTtcbiAgICAgICAgdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIChldmVudDogRm9jdXNFdmVudCkgPT4gdGhpcy5vbldyYXBwZXJCbHVyKGV2ZW50KSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3JC5zdWJzY3JpYmUoKHZpZXcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZWQuZW1pdCh2aWV3KTtcblxuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgcHJldmlvdXNWYWx1ZTogdGhpcy5wcmV2aW91c1ZpZXdEYXRlLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZTogdGhpcy52aWV3RGF0ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25XcmFwcGVyRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2hvd0FjdGl2ZURheSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbldyYXBwZXJCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc2hvd0FjdGl2ZURheSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9vblRvdWNoZWRDYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUGFnZVVwRG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgZGVsdGE6IG51bWJlcikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRWaWV3ICYmIGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdEYXRlID0gQ2FsZW5kYXJEYXkuZnJvbSh0aGlzLnZpZXdEYXRlKS5hZGQoJ3llYXInLCBkZWx0YSkubmF0aXZlO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsdGEgPiAwID8gdGhpcy5uZXh0UGFnZSgpIDogdGhpcy5wcmV2aW91c1BhZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUGFnZVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlUGFnZVVwRG93bihldmVudCwgLTEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlUGFnZURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVQYWdlVXBEb3duKGV2ZW50LCAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQXJyb3dVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoc1ZpZXcub25LZXlkb3duQXJyb3dVcChldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5vbktleWRvd25BcnJvd1VwKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25BcnJvd0Rvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy5tb250aHNWaWV3Lm9uS2V5ZG93bkFycm93RG93bihldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5vbktleWRvd25BcnJvd0Rvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFycm93TGVmdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoc1ZpZXcub25LZXlkb3duQXJyb3dMZWZ0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVjYWRlVmlldykge1xuICAgICAgICAgICAgdGhpcy5kYWNhZGVWaWV3Lm9uS2V5ZG93bkFycm93TGVmdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQXJyb3dSaWdodChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoc1ZpZXcub25LZXlkb3duQXJyb3dSaWdodChldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5vbktleWRvd25BcnJvd1JpZ2h0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25FbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoc1ZpZXcub25LZXlkb3duRW50ZXIoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWNhZGVWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLmRhY2FkZVZpZXcub25LZXlkb3duRW50ZXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkhvbWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGhzVmlldy5vbktleWRvd25Ib21lKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVjYWRlVmlldykge1xuICAgICAgICAgICAgdGhpcy5kYWNhZGVWaWV3Lm9uS2V5ZG93bkhvbWUoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVuZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy5tb250aHNWaWV3Lm9uS2V5ZG93bkVuZChldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5vbktleWRvd25FbmQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG5cdC8qKlxuXHQgKiBAaGlkZGVuXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbi5kZXRhY2hLZXlib2FyZEhhbmRsZXJzKCk7XG4gICAgICAgIHRoaXMud3JhcHBlcj8ubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMub25XcmFwcGVyRm9jdXMpO1xuICAgICAgICB0aGlzLndyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMub25XcmFwcGVyQmx1cik7XG5cdH1cblxuXHQvKipcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBnZXRQcmV2WWVhckRhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xuXHRcdHJldHVybiBDYWxlbmRhckRheS5mcm9tKGRhdGUpLmFkZCgneWVhcicsIC0xKS5uYXRpdmU7XG5cdH1cblxuXHQvKipcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBnZXROZXh0WWVhckRhdGUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgICAgICByZXR1cm4gQ2FsZW5kYXJEYXkuZnJvbShkYXRlKS5hZGQoJ3llYXInLCAxKS5uYXRpdmU7XG5cdH1cblxuXHQvKipcblx0ICogR2V0dGVyIGZvciB0aGUgY29udGV4dCBvYmplY3QgaW5zaWRlIHRoZSBjYWxlbmRhciB0ZW1wbGF0ZXMuXG5cdCAqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q29udGV4dChpOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCdtb250aCcsIGkpLm5hdGl2ZTtcblx0XHRyZXR1cm4gdGhpcy5nZW5lcmF0ZUNvbnRleHQoZGF0ZSwgaSk7XG5cdH1cblxuXHQvKipcblx0ICogSGVscGVyIG1ldGhvZCBidWlsZGluZyBhbmQgcmV0dXJuaW5nIHRoZSBjb250ZXh0IG9iamVjdCBpbnNpZGUgdGhlIGNhbGVuZGFyIHRlbXBsYXRlcy5cblx0ICpcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHByaXZhdGUgZ2VuZXJhdGVDb250ZXh0KHZhbHVlOiBEYXRlIHwgRGF0ZVtdLCBpPzogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGNvbnN0cnVjdCA9IChkYXRlOiBEYXRlLCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIC4uLmZvcm1hdFRvUGFydHMoZGF0ZSwgdGhpcy5sb2NhbGUsIHRoaXMuZm9ybWF0T3B0aW9ucywgW1xuICAgICAgICAgICAgICAgIFwiZXJhXCIsXG4gICAgICAgICAgICAgICAgXCJ5ZWFyXCIsXG4gICAgICAgICAgICAgICAgXCJtb250aFwiLFxuICAgICAgICAgICAgICAgIFwiZGF5XCIsXG4gICAgICAgICAgICAgICAgXCJ3ZWVrZGF5XCIsXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0T2JqZWN0ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICAgID8gdmFsdWUubWFwKChkYXRlLCBpbmRleCkgPT4gY29uc3RydWN0KGRhdGUsIGluZGV4KSlcbiAgICAgICAgICAgIDogY29uc3RydWN0KHZhbHVlLCBpKTtcblxuICAgICAgICByZXR1cm4geyAkaW1wbGljaXQ6IGZvcm1hdE9iamVjdCB9O1xuXHR9XG59XG4iLCI8IS0tIFByZXZpb3VzIGFycm93IGljb24gLS0+XG48bmctdGVtcGxhdGUgI3ByZXZBcnJvdyBsZXQtb2JqPlxuICAgIDxpZ3gtaWNvbiBhcmlhLWhpZGRlbj1cInRydWVcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gTmV4dCBhcnJvdyBpY29uIC0tPlxuPG5nLXRlbXBsYXRlICNuZXh0QXJyb3cgbGV0LW9iaj5cbiAgICA8aWd4LWljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBQcmV2aW91cyBwaWNrZXIgYnV0dG9uIC0tPlxuPG5nLXRlbXBsYXRlICNwcmV2UGFnZUJ1dHRvbiBsZXQtb2JqPlxuICAgIDxkaXZcbiAgICAgICAgI3ByZXZQYWdlQnRuXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWNhbGVuZGFyLXBpY2tlcl9fcHJldlwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByZXZOYXZMYWJlbCgoZ2V0UHJldlllYXJEYXRlKHZpZXdEYXRlKSB8IGRhdGU6ICdZWVlZJykpXCJcbiAgICAgICAgZGF0YS1hY3Rpb249XCJwcmV2XCJcbiAgICAgICAgaWd4Q2FsZW5kYXJTY3JvbGxQYWdlXG4gICAgICAgIChtb3VzZWRvd24pPVwicHJldmlvdXNQYWdlKClcIlxuICAgICAgICAoa2V5ZG93bik9XCJjaGFuZ2VQYWdlS0IoJGV2ZW50LCBmYWxzZSlcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXZBcnJvd1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBOZXh0IHBpY2tlciBidXR0b24gLS0+XG48bmctdGVtcGxhdGUgI25leHRQYWdlQnV0dG9uIGxldC1vYmo+XG4gICAgPGRpdlxuICAgICAgICAjbmV4dFBhZ2VCdG5cbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgY2xhc3M9XCJpZ3gtY2FsZW5kYXItcGlja2VyX19uZXh0XCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibmV4dE5hdkxhYmVsKChnZXROZXh0WWVhckRhdGUodmlld0RhdGUpIHwgZGF0ZTogJ1lZWVknKSlcIlxuICAgICAgICBkYXRhLWFjdGlvbj1cIm5leHRcIlxuICAgICAgICBpZ3hDYWxlbmRhclNjcm9sbFBhZ2VcbiAgICAgICAgKG1vdXNlZG93bik9XCJuZXh0UGFnZSgpXCJcbiAgICAgICAgKGtleWRvd24pPVwiY2hhbmdlUGFnZUtCKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRBcnJvd1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSBZZWFyIC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0WWVhciBsZXQtb2JqPlxuICAgIDxzcGFuICpuZ0lmPVwiYWN0aXZlVmlldyA9PT0gJ3llYXInXCIgY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2FyaWEtb2ZmLXNjcmVlblwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPnt7IGZvcm1hdHRlZFllYXIob2JqLmRhdGUpIH19PC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAgICN5ZWFyc0J0blxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIob2JqLmRhdGUgfCBkYXRlOiAneXl5eScpICsgJywgJyArIHJlc291cmNlU3RyaW5ncy5pZ3hfY2FsZW5kYXJfc2VsZWN0X3llYXJcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkFjdGl2ZVZpZXdEZWNhZGVLQihvYmouZGF0ZSwgJGV2ZW50LCBvYmouaW5kZXgpXCJcbiAgICAgICAgKG1vdXNlZG93bik9XCJvbkFjdGl2ZVZpZXdEZWNhZGUoJGV2ZW50LCBvYmouZGF0ZSwgb2JqLmluZGV4KVwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWNhbGVuZGFyLXBpY2tlcl9fZGF0ZVwiPlxuICAgICAgICB7eyBmb3JtYXR0ZWRZZWFyKG9iai5kYXRlKSB9fVxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRGVjYWRlIC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RGVjYWRlPlxuICAgIDxzcGFuPnt7IGdldERlY2FkZVJhbmdlKCkuc3RhcnQgfX0gLSB7eyBnZXREZWNhZGVSYW5nZSgpLmVuZCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gUElDS0VSIElOIE1PTlRIUyAtLT5cbjxuZy10ZW1wbGF0ZSAjY2FsZW5kYXJZZWFyUGlja2VyPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwiaWd4LWNhbGVuZGFyLXBpY2tlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWNhbGVuZGFyLXBpY2tlcl9fZGF0ZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImRlZmF1bHRZZWFyOyBjb250ZXh0OiBnZXRDb250ZXh0KDApXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXItcGlja2VyX19uYXZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmV2UGFnZUJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRQYWdlQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gUElDS0VSIElOIFlFQVJTIC0tPlxuPG5nLXRlbXBsYXRlICNjYWxlbmRhckRlY2FkZVBpY2tlcj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJfX2RhdGVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdERlY2FkZTtcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJfX25hdlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXZQYWdlQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmV4dFBhZ2VCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAgICN3cmFwcGVyXG4gICAgW3RhYkluZGV4XT1cIjBcIlxuICAgIGNsYXNzPVwiaWd4LWNhbGVuZGFyX193cmFwcGVyXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiYWN0aXZlRGVzY2VuZGFudFwiXG4gICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwic2VsZWN0aW9uICE9PSAnc2luZ2xlJ1wiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiY2FsZW5kYXItZGVzY1wiXG4gICAgcm9sZT1cImdyaWRcIlxuICAgID5cbiAgICA8Y2FwdGlvbiBpZD1cImNhbGVuZGFyLWRlc2NcIiB0YWJpbmRleD1cIi0xXCIgY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2FyaWEtb2ZmLXNjcmVlblwiPlxuICAgICAgICB7eyByZXNvdXJjZVN0cmluZ3MuaWd4X2NhbGVuZGFyX3Npbmd1bGFyX3NpbmdsZV9zZWxlY3Rpb259fVxuICAgIDwvY2FwdGlvbj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwiaWd4LWNhbGVuZGFyX19waWNrZXJzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlZmF1bHRWaWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FsZW5kYXJZZWFyUGlja2VyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlY2FkZVZpZXdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYWxlbmRhckRlY2FkZVBpY2tlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImlneC1jYWxlbmRhcl9fYm9keVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWZhdWx0Vmlld1wiPlxuICAgICAgICAgICAgPGlneC1tb250aHMtdmlld1xuICAgICAgICAgICAgICAgICNtb250aHNcbiAgICAgICAgICAgICAgICByb2xlPVwicm93Z3JvdXBcIlxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgW2RhdGVdPVwidmlld0RhdGVcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICAgICAgICBbZm9ybWF0Vmlld109XCJmb3JtYXRWaWV3cy5tb250aFwiXG4gICAgICAgICAgICAgICAgW21vbnRoRm9ybWF0XT1cImZvcm1hdE9wdGlvbnMubW9udGhcIlxuICAgICAgICAgICAgICAgIFtzaG93QWN0aXZlXT1cInNob3dBY3RpdmVEYXlcIlxuICAgICAgICAgICAgICAgIFtzdGFuZGFsb25lXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAoc3dpcGVyaWdodCk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgICAgICAgICAgKHN3aXBlbGVmdCk9XCJuZXh0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0TW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cInVwZGF0ZURhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiPlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9pZ3gtbW9udGhzLXZpZXc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlY2FkZVZpZXdcIj5cbiAgICAgICAgICAgIDxpZ3gteWVhcnMtdmlld1xuICAgICAgICAgICAgICAgICNkZWNhZGVcbiAgICAgICAgICAgICAgICByb2xlPVwicm93Z3JvdXBcIlxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgW2RhdGVdPVwidmlld0RhdGVcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICAgICAgICBbZm9ybWF0Vmlld109XCJmb3JtYXRWaWV3cy55ZWFyXCJcbiAgICAgICAgICAgICAgICBbeWVhckZvcm1hdF09XCJmb3JtYXRPcHRpb25zLnllYXJcIlxuICAgICAgICAgICAgICAgIFtzaG93QWN0aXZlXT1cInNob3dBY3RpdmVEYXlcIlxuICAgICAgICAgICAgICAgIFtzdGFuZGFsb25lXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAoc3dpcGVyaWdodCk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgICAgICAgICAgICAgKHN3aXBlbGVmdCk9XCJuZXh0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwic2VsZWN0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGFnZUNoYW5nZWQpPVwidXBkYXRlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvaWd4LXllYXJzLXZpZXc+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
|
|
434
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9tb250aC1waWNrZXIvbW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUtSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FB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QUFVO3NCQURoQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTtnQkFPOUMsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBTzdDLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBTzFDLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxVQUFVO2dCQU9kLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUJuQyxRQUFRO3NCQURkLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBeUpsQyxXQUFXO3NCQURwQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBWaWV3Q2hpbGQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IElneE1vbnRoc1ZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vbW9udGhzLXZpZXcvbW9udGhzLXZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBJZ3hZZWFyc1ZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4veWVhcnMtdmlldy95ZWFycy12aWV3LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWd4RGF5c1ZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vZGF5cy12aWV3L2RheXMtdmlldy5jb21wb25lbnRcIjtcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWd4Q2FsZW5kYXJWaWV3IH0gZnJvbSBcIi4uL2NhbGVuZGFyXCI7XG5pbXBvcnQgeyBDYWxlbmRhckRheSB9IGZyb20gXCIuLi9jb21tb24vbW9kZWxcIjtcbmltcG9ydCB7IElneENhbGVuZGFyQmFzZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9jYWxlbmRhci1iYXNlXCI7XG5pbXBvcnQgeyBLZXlib2FyZE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uL2NhbGVuZGFyLnNlcnZpY2VzXCI7XG5pbXBvcnQgeyBmb3JtYXRUb1BhcnRzIH0gZnJvbSBcIi4uL2NvbW1vbi9oZWxwZXJzXCI7XG5cbmxldCBORVhUX0lEID0gMDtcbkBDb21wb25lbnQoe1xuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IElneE1vbnRoUGlja2VyQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBtdWx0aTogZmFsc2UsXG4gICAgICAgICAgICBwcm92aWRlOiBLZXlib2FyZE5hdmlnYXRpb25TZXJ2aWNlXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBzZWxlY3RvcjogXCJpZ3gtbW9udGgtcGlja2VyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwibW9udGgtcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nU3R5bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBJZ3hJY29uQ29tcG9uZW50LFxuICAgICAgICBJZ3hNb250aHNWaWV3Q29tcG9uZW50LFxuICAgICAgICBJZ3hZZWFyc1ZpZXdDb21wb25lbnQsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSWd4TW9udGhQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBJZ3hDYWxlbmRhckJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBgaWRgIG9mIHRoZSBtb250aCBwaWNrZXIuXG4gICAgICogSWYgbm90IHNldCwgdGhlIGBpZGAgd2lsbCBoYXZlIHZhbHVlIGBcImlneC1tb250aC1waWNrZXItMFwiYC5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoXCJhdHRyLmlkXCIpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LW1vbnRoLXBpY2tlci0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZURlc2NlbmRhbnQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKFwid3JhcHBlclwiKVxuICAgIHB1YmxpYyB3cmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgY3NzIGNsYXNzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pZ3gtbW9udGgtcGlja2VyXCIpXG4gICAgcHVibGljIHN0eWxlQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoXCJtb250aHNcIiwgeyByZWFkOiBJZ3hNb250aHNWaWV3Q29tcG9uZW50IH0pXG4gICAgcHVibGljIG1vbnRoc1ZpZXc6IElneE1vbnRoc1ZpZXdDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChcImRlY2FkZVwiLCB7IHJlYWQ6IElneFllYXJzVmlld0NvbXBvbmVudCB9KVxuICAgIHB1YmxpYyBkYWNhZGVWaWV3OiBJZ3hZZWFyc1ZpZXdDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChcImRheXNcIiwgeyByZWFkOiBJZ3hEYXlzVmlld0NvbXBvbmVudCB9KVxuICAgIHB1YmxpYyBkYXlzVmlldzogSWd4RGF5c1ZpZXdDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChcInllYXJzQnRuXCIpXG4gICAgcHVibGljIHllYXJzQnRuOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLnBhZ2V1cFwiLCBbXCIkZXZlbnRcIl0pXG4gICAgcHVibGljIHByZXZpb3VzUGFnZShldmVudD86IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucHJldmlvdXNWaWV3RGF0ZSA9IHRoaXMudmlld0RhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgLTEpLm5hdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVjYWRlVmlldykge1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgLTE1KS5uYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpZXdEYXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIHByZXZpb3VzVmFsdWU6IHRoaXMucHJldmlvdXNWaWV3RGF0ZSxcbiAgICAgICAgICAgIGN1cnJlbnRWYWx1ZTogdGhpcy52aWV3RGF0ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duLnBhZ2Vkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgbmV4dFBhZ2UoZXZlbnQ/OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnByZXZpb3VzVmlld0RhdGUgPSB0aGlzLnZpZXdEYXRlO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGUgPSBDYWxlbmRhckRheS5mcm9tKHRoaXMudmlld0RhdGUpLmFkZCgneWVhcicsIDEpLm5hdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVjYWRlVmlldykge1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgMTUpLm5hdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlld0RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZTogdGhpcy5wcmV2aW91c1ZpZXdEYXRlLFxuICAgICAgICAgICAgY3VycmVudFZhbHVlOiB0aGlzLnZpZXdEYXRlLFxuICAgICAgICB9KTtcbiAgICB9XG5cblx0LyoqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgb25BY3RpdmVWaWV3RGVjYWRlS0IoZGF0ZTogRGF0ZSwgZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGFjdGl2ZVZpZXdJZHg6IG51bWJlcikge1xuXHRcdHN1cGVyLmFjdGl2ZVZpZXdEZWNhZGVLQihldmVudCwgYWN0aXZlVmlld0lkeCk7XG5cblx0XHRpZiAodGhpcy5wbGF0Zm9ybS5pc0FjdGl2YXRpb25LZXkoZXZlbnQpKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdEYXRlID0gZGF0ZTtcbiAgICAgICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgb25BY3RpdmVWaWV3RGVjYWRlKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRlOiBEYXRlLCBhY3RpdmVWaWV3SWR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdHN1cGVyLmFjdGl2ZVZpZXdEZWNhZGUoYWN0aXZlVmlld0lkeCk7XG4gICAgICAgIHRoaXMudmlld0RhdGUgPSBkYXRlO1xuXHR9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGFjdGl2ZVZpZXdEZWNhZGVLQihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzdXBlci5hY3RpdmVWaWV3RGVjYWRlS0IoZXZlbnQpO1xuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLkFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICB0aGlzLm5leHRQYWdlKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLkFSUk9XX0xFRlQpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYWN0aXZlVmlld0RlY2FkZSgpIHtcbiAgICAgICAgc3VwZXIuYWN0aXZlVmlld0RlY2FkZSgpO1xuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhY2FkZVZpZXcuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGNoYW5nZVBhZ2VLQihldmVudDogS2V5Ym9hcmRFdmVudCwgbmV4dCA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhdGZvcm0uaXNBY3RpdmF0aW9uS2V5KGV2ZW50KSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzUGFnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3RZZWFyKGV2ZW50OiBEYXRlKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNWaWV3RGF0ZSA9IHRoaXMudmlld0RhdGU7XG5cbiAgICAgICAgdGhpcy52aWV3RGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgICAgICAgZXZlbnQuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICAgIGV2ZW50LmdldE1vbnRoKCksXG4gICAgICAgICAgICBldmVudC5nZXREYXRlKCksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gSWd4Q2FsZW5kYXJWaWV3LlllYXI7XG4gICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3RNb250aChldmVudDogRGF0ZSkge1xuICAgICAgICB0aGlzLnNlbGVjdERhdGUoZXZlbnQpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIGEgZGF0ZS5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIHRoaXMubW9udGhQaWNrZXIuc2VsZWN0RGF0ZShuZXcgRGF0ZShgMjAxOC0wNi0xMmApKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnNlbGVjdERhdGUodmFsdWUpO1xuICAgICAgICB0aGlzLnZpZXdEYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXROZXh0WWVhcigpIHtcbiAgICAgICAgcmV0dXJuIENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgMSkueWVhcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldFByZXZpb3VzWWVhcigpIHtcbiAgICAgICAgcmV0dXJuIENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgLTEpLnllYXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVEYXRlKGRhdGU6IERhdGUpIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c1ZpZXdEYXRlID0gdGhpcy52aWV3RGF0ZTtcbiAgICAgICAgdGhpcy52aWV3RGF0ZSA9IENhbGVuZGFyRGF5LmZyb20oZGF0ZSkuYWRkKCd5ZWFyJywgLXRoaXMuYWN0aXZlVmlld0lkeCkubmF0aXZlO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzVmFsdWU6IHRoaXMucHJldmlvdXNWaWV3RGF0ZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWU6IHRoaXMudmlld0RhdGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHJvdGVjdGVkIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Nob3dBY3RpdmVEYXk6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuICAgIHByb3RlY3RlZCBzZXQgc2hvd0FjdGl2ZURheSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zaG93QWN0aXZlRGF5ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNob3dBY3RpdmVEYXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93QWN0aXZlRGF5O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYWN0aXZlRGVzY2VuZGFudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgYXMgRGF0ZSk/LmdldFRpbWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVEZXNjZW5kYW50ID8/IHRoaXMudmlld0RhdGUuZ2V0VGltZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXQgYWN0aXZlRGVzY2VuZGFudChkYXRlOiBEYXRlKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZURlc2NlbmRhbnQgPSBkYXRlLmdldFRpbWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGlzRGVmYXVsdFZpZXcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVZpZXcgPT09IElneENhbGVuZGFyVmlldy5ZZWFyO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gSWd4Q2FsZW5kYXJWaWV3LlllYXI7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5rZXlib2FyZE5hdmlnYXRpb25cbiAgICAgICAgICAgIC5hdHRhY2hLZXlib2FyZEhhbmRsZXJzKHRoaXMud3JhcHBlciwgdGhpcylcbiAgICAgICAgICAgIC5zZXQoXCJBcnJvd1VwXCIsIHRoaXMub25BcnJvd1VwKVxuICAgICAgICAgICAgLnNldChcIkFycm93RG93blwiLCB0aGlzLm9uQXJyb3dEb3duKVxuICAgICAgICAgICAgLnNldChcIkFycm93TGVmdFwiLCB0aGlzLm9uQXJyb3dMZWZ0KVxuICAgICAgICAgICAgLnNldChcIkFycm93UmlnaHRcIiwgdGhpcy5vbkFycm93UmlnaHQpXG4gICAgICAgICAgICAuc2V0KFwiRW50ZXJcIiwgdGhpcy5vbkVudGVyKVxuICAgICAgICAgICAgLnNldChcIiBcIiwgdGhpcy5vbkVudGVyKVxuICAgICAgICAgICAgLnNldChcIkhvbWVcIiwgdGhpcy5vbkhvbWUpXG4gICAgICAgICAgICAuc2V0KFwiRW5kXCIsIHRoaXMub25FbmQpXG4gICAgICAgICAgICAuc2V0KFwiUGFnZVVwXCIsIHRoaXMuaGFuZGxlUGFnZVVwKVxuICAgICAgICAgICAgLnNldChcIlBhZ2VEb3duXCIsIHRoaXMuaGFuZGxlUGFnZURvd24pO1xuXG4gICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB0aGlzLm9uV3JhcHBlckZvY3VzKGV2ZW50KSk7XG4gICAgICAgIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHRoaXMub25XcmFwcGVyQmx1cihldmVudCkpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyQuc3Vic2NyaWJlKCh2aWV3KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZpZXdDaGFuZ2VkLmVtaXQodmlldyk7XG5cbiAgICAgICAgICAgIHRoaXMudmlld0RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzVmFsdWU6IHRoaXMucHJldmlvdXNWaWV3RGF0ZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWU6IHRoaXMudmlld0RhdGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uV3JhcHBlckZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNob3dBY3RpdmVEYXkgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25XcmFwcGVyQmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLnNob3dBY3RpdmVEYXkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVBhZ2VVcERvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRlbHRhOiBudW1iZXIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0VmlldyAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy52aWV3RGF0ZSA9IENhbGVuZGFyRGF5LmZyb20odGhpcy52aWV3RGF0ZSkuYWRkKCd5ZWFyJywgZGVsdGEpLm5hdGl2ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbHRhID4gMCA/IHRoaXMubmV4dFBhZ2UoKSA6IHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVBhZ2VVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZVBhZ2VVcERvd24oZXZlbnQsIC0xKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVBhZ2VEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlUGFnZVVwRG93bihldmVudCwgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFycm93VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy5tb250aHNWaWV3Lm9uS2V5ZG93bkFycm93VXAoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWNhZGVWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLmRhY2FkZVZpZXcub25LZXlkb3duQXJyb3dVcChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQXJyb3dEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGhzVmlldy5vbktleWRvd25BcnJvd0Rvd24oZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWNhZGVWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLmRhY2FkZVZpZXcub25LZXlkb3duQXJyb3dEb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25BcnJvd0xlZnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy5tb250aHNWaWV3Lm9uS2V5ZG93bkFycm93TGVmdChldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5vbktleWRvd25BcnJvd0xlZnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy5tb250aHNWaWV3Lm9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWNhZGVWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLmRhY2FkZVZpZXcub25LZXlkb3duQXJyb3dSaWdodChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0Vmlldykge1xuICAgICAgICAgICAgdGhpcy5tb250aHNWaWV3Lm9uS2V5ZG93bkVudGVyKGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVjYWRlVmlldykge1xuICAgICAgICAgICAgdGhpcy5kYWNhZGVWaWV3Lm9uS2V5ZG93bkVudGVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Ib21lKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoc1ZpZXcub25LZXlkb3duSG9tZShldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RlY2FkZVZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuZGFjYWRlVmlldy5vbktleWRvd25Ib21lKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25FbmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmlzRGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGhzVmlldy5vbktleWRvd25FbmQoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEZWNhZGVWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLmRhY2FkZVZpZXcub25LZXlkb3duRW5kKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuXHQvKipcblx0ICogQGhpZGRlblxuXHQgKiBAaW50ZXJuYWxcblx0ICovXG5cdHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5rZXlib2FyZE5hdmlnYXRpb24uZGV0YWNoS2V5Ym9hcmRIYW5kbGVycygpO1xuICAgICAgICB0aGlzLndyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLm9uV3JhcHBlckZvY3VzKTtcbiAgICAgICAgdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLm9uV3JhcHBlckJsdXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UHJldlllYXJEYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcblx0XHRyZXR1cm4gQ2FsZW5kYXJEYXkuZnJvbShkYXRlKS5hZGQoJ3llYXInLCAtMSkubmF0aXZlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwdWJsaWMgZ2V0TmV4dFllYXJEYXRlKGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIENhbGVuZGFyRGF5LmZyb20oZGF0ZSkuYWRkKCd5ZWFyJywgMSkubmF0aXZlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHRlciBmb3IgdGhlIGNvbnRleHQgb2JqZWN0IGluc2lkZSB0aGUgY2FsZW5kYXIgdGVtcGxhdGVzLlxuXHQgKlxuXHQgKiBAaGlkZGVuXG5cdCAqIEBpbnRlcm5hbFxuXHQgKi9cblx0cHVibGljIGdldENvbnRleHQoaTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBDYWxlbmRhckRheS5mcm9tKHRoaXMudmlld0RhdGUpLmFkZCgnbW9udGgnLCBpKS5uYXRpdmU7XG5cdFx0cmV0dXJuIHRoaXMuZ2VuZXJhdGVDb250ZXh0KGRhdGUsIGkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhlbHBlciBtZXRob2QgYnVpbGRpbmcgYW5kIHJldHVybmluZyB0aGUgY29udGV4dCBvYmplY3QgaW5zaWRlIHRoZSBjYWxlbmRhciB0ZW1wbGF0ZXMuXG5cdCAqXG5cdCAqIEBoaWRkZW5cblx0ICogQGludGVybmFsXG5cdCAqL1xuXHRwcml2YXRlIGdlbmVyYXRlQ29udGV4dCh2YWx1ZTogRGF0ZSB8IERhdGVbXSwgaT86IG51bWJlcikge1xuICAgICAgICBjb25zdCBjb25zdHJ1Y3QgPSAoZGF0ZTogRGF0ZSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICAuLi5mb3JtYXRUb1BhcnRzKGRhdGUsIHRoaXMubG9jYWxlLCB0aGlzLmZvcm1hdE9wdGlvbnMsIFtcbiAgICAgICAgICAgICAgICBcImVyYVwiLFxuICAgICAgICAgICAgICAgIFwieWVhclwiLFxuICAgICAgICAgICAgICAgIFwibW9udGhcIixcbiAgICAgICAgICAgICAgICBcImRheVwiLFxuICAgICAgICAgICAgICAgIFwid2Vla2RheVwiLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdE9iamVjdCA9IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICAgICA/IHZhbHVlLm1hcCgoZGF0ZSwgaW5kZXgpID0+IGNvbnN0cnVjdChkYXRlLCBpbmRleCkpXG4gICAgICAgICAgICA6IGNvbnN0cnVjdCh2YWx1ZSwgaSk7XG5cbiAgICAgICAgcmV0dXJuIHsgJGltcGxpY2l0OiBmb3JtYXRPYmplY3QgfTtcblx0fVxufVxuIiwiPCEtLSBQcmV2aW91cyBhcnJvdyBpY29uIC0tPlxuPG5nLXRlbXBsYXRlICNwcmV2QXJyb3cgbGV0LW9iaj5cbiAgICA8aWd4LWljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCI+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvaWd4LWljb24+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE5leHQgYXJyb3cgaWNvbiAtLT5cbjxuZy10ZW1wbGF0ZSAjbmV4dEFycm93IGxldC1vYmo+XG4gICAgPGlneC1pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gUHJldmlvdXMgcGlja2VyIGJ1dHRvbiAtLT5cbjxuZy10ZW1wbGF0ZSAjcHJldlBhZ2VCdXR0b24gbGV0LW9iaj5cbiAgICA8ZGl2XG4gICAgICAgICNwcmV2UGFnZUJ0blxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJfX3ByZXZcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2TmF2TGFiZWwoKGdldFByZXZZZWFyRGF0ZSh2aWV3RGF0ZSkgfCBkYXRlOiAnWVlZWScpKVwiXG4gICAgICAgIGRhdGEtYWN0aW9uPVwicHJldlwiXG4gICAgICAgIGlneENhbGVuZGFyU2Nyb2xsUGFnZVxuICAgICAgICAobW91c2Vkb3duKT1cInByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgKGtleWRvd24pPVwiY2hhbmdlUGFnZUtCKCRldmVudCwgZmFsc2UpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmV2QXJyb3dcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gTmV4dCBwaWNrZXIgYnV0dG9uIC0tPlxuPG5nLXRlbXBsYXRlICNuZXh0UGFnZUJ1dHRvbiBsZXQtb2JqPlxuICAgIDxkaXZcbiAgICAgICAgI25leHRQYWdlQnRuXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWNhbGVuZGFyLXBpY2tlcl9fbmV4dFwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5leHROYXZMYWJlbCgoZ2V0TmV4dFllYXJEYXRlKHZpZXdEYXRlKSB8IGRhdGU6ICdZWVlZJykpXCJcbiAgICAgICAgZGF0YS1hY3Rpb249XCJuZXh0XCJcbiAgICAgICAgaWd4Q2FsZW5kYXJTY3JvbGxQYWdlXG4gICAgICAgIChtb3VzZWRvd24pPVwibmV4dFBhZ2UoKVwiXG4gICAgICAgIChrZXlkb3duKT1cImNoYW5nZVBhZ2VLQigkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuZXh0QXJyb3dcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gWWVhciAtLT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFllYXIgbGV0LW9iaj5cbiAgICA8c3BhbiAqbmdJZj1cImFjdGl2ZVZpZXcgPT09ICd5ZWFyJ1wiIGNsYXNzPVwiaWd4LWNhbGVuZGFyX19hcmlhLW9mZi1zY3JlZW5cIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj57eyBmb3JtYXR0ZWRZZWFyKG9iai5kYXRlKSB9fTwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgICAjeWVhcnNCdG5cbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiKG9iai5kYXRlIHwgZGF0ZTogJ3l5eXknKSArICcsICcgKyByZXNvdXJjZVN0cmluZ3MuaWd4X2NhbGVuZGFyX3NlbGVjdF95ZWFyXCJcbiAgICAgICAgKGtleWRvd24pPVwib25BY3RpdmVWaWV3RGVjYWRlS0Iob2JqLmRhdGUsICRldmVudCwgb2JqLmluZGV4KVwiXG4gICAgICAgIChtb3VzZWRvd24pPVwib25BY3RpdmVWaWV3RGVjYWRlKCRldmVudCwgb2JqLmRhdGUsIG9iai5pbmRleClcIlxuICAgICAgICBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJfX2RhdGVcIj5cbiAgICAgICAge3sgZm9ybWF0dGVkWWVhcihvYmouZGF0ZSkgfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIERlY2FkZSAtLT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdERlY2FkZT5cbiAgICA8c3Bhbj57eyBnZXREZWNhZGVSYW5nZSgpLnN0YXJ0IH19IC0ge3sgZ2V0RGVjYWRlUmFuZ2UoKS5lbmQgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIFBJQ0tFUiBJTiBNT05USFMgLS0+XG48bmctdGVtcGxhdGUgI2NhbGVuZGFyWWVhclBpY2tlcj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1jYWxlbmRhci1waWNrZXJfX2RhdGVzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0WWVhcjsgY29udGV4dDogZ2V0Q29udGV4dCgwKVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWNhbGVuZGFyLXBpY2tlcl9fbmF2XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJldlBhZ2VCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuZXh0UGFnZUJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIFBJQ0tFUiBJTiBZRUFSUyAtLT5cbjxuZy10ZW1wbGF0ZSAjY2FsZW5kYXJEZWNhZGVQaWNrZXI+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJpZ3gtY2FsZW5kYXItcGlja2VyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXItcGlja2VyX19kYXRlc1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImRlZmF1bHREZWNhZGU7XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtY2FsZW5kYXItcGlja2VyX19uYXZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmV2UGFnZUJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRQYWdlQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxkaXZcbiAgICAjd3JhcHBlclxuICAgIFt0YWJJbmRleF09XCIwXCJcbiAgICBjbGFzcz1cImlneC1jYWxlbmRhcl9fd3JhcHBlclwiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImFjdGl2ZURlc2NlbmRhbnRcIlxuICAgIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cInNlbGVjdGlvbiAhPT0gJ3NpbmdsZSdcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImNhbGVuZGFyLWRlc2NcIlxuICAgIHJvbGU9XCJncmlkXCJcbiAgICA+XG4gICAgPGNhcHRpb24gaWQ9XCJjYWxlbmRhci1kZXNjXCIgdGFiaW5kZXg9XCItMVwiIGNsYXNzPVwiaWd4LWNhbGVuZGFyX19hcmlhLW9mZi1zY3JlZW5cIj5cbiAgICAgICAge3sgcmVzb3VyY2VTdHJpbmdzLmlneF9jYWxlbmRhcl9zaW5ndWxhcl9zaW5nbGVfc2VsZWN0aW9ufX1cbiAgICA8L2NhcHRpb24+XG5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImlneC1jYWxlbmRhcl9fcGlja2Vyc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWZhdWx0Vmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhbGVuZGFyWWVhclBpY2tlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWNhZGVWaWV3XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FsZW5kYXJEZWNhZGVQaWNrZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJpZ3gtY2FsZW5kYXJfX2JvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGVmYXVsdFZpZXdcIj5cbiAgICAgICAgICAgIDxpZ3gtbW9udGhzLXZpZXdcbiAgICAgICAgICAgICAgICAjbW9udGhzXG4gICAgICAgICAgICAgICAgcm9sZT1cInJvd2dyb3VwXCJcbiAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgIFtkYXRlXT1cInZpZXdEYXRlXCJcbiAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1hdFZpZXddPVwiZm9ybWF0Vmlld3MubW9udGhcIlxuICAgICAgICAgICAgICAgIFttb250aEZvcm1hdF09XCJmb3JtYXRPcHRpb25zLm1vbnRoXCJcbiAgICAgICAgICAgICAgICBbc2hvd0FjdGl2ZV09XCJzaG93QWN0aXZlRGF5XCJcbiAgICAgICAgICAgICAgICBbc3RhbmRhbG9uZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgKHN3aXBlcmlnaHQpPVwicHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgIChzd2lwZWxlZnQpPVwibmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cInNlbGVjdE1vbnRoKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJ1cGRhdGVEYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvaWd4LW1vbnRocy12aWV3PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWNhZGVWaWV3XCI+XG4gICAgICAgICAgICA8aWd4LXllYXJzLXZpZXdcbiAgICAgICAgICAgICAgICAjZGVjYWRlXG4gICAgICAgICAgICAgICAgcm9sZT1cInJvd2dyb3VwXCJcbiAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgIFtkYXRlXT1cInZpZXdEYXRlXCJcbiAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1hdFZpZXddPVwiZm9ybWF0Vmlld3MueWVhclwiXG4gICAgICAgICAgICAgICAgW3llYXJGb3JtYXRdPVwiZm9ybWF0T3B0aW9ucy55ZWFyXCJcbiAgICAgICAgICAgICAgICBbc2hvd0FjdGl2ZV09XCJzaG93QWN0aXZlRGF5XCJcbiAgICAgICAgICAgICAgICBbc3RhbmRhbG9uZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgKHN3aXBlcmlnaHQpPVwicHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgIChzd2lwZWxlZnQpPVwibmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkKT1cInNlbGVjdFllYXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cInVwZGF0ZURhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2lneC15ZWFycy12aWV3PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -119,6 +119,7 @@ export class DisplayDensityBase {
|
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
121
|
* Sets the `--component-size` CSS variable based on the value of Display Density
|
|
122
|
+
* @hidden @internal
|
|
122
123
|
*/
|
|
123
124
|
getComponentSizeStyles() {
|
|
124
125
|
switch (this._displayDensity || this.oldDisplayDensityOptions.displayDensity) {
|
|
@@ -150,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
150
151
|
}], displayDensity: [{
|
|
151
152
|
type: Input
|
|
152
153
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVuc2l0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb3JlL2RlbnNpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGNBQWMsRUFDZCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7Q0FDckIsQ0FBQyxDQUFDO0FBdUJIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ2pELGdCQUFnQixDQUNuQixDQUFDO0FBRUY7OztHQUdHO0FBS0gsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxrQkFBa0I7SUFLM0I7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxJQUNXLGNBQWM7UUFDckIsT0FBTyxDQUNILElBQUksQ0FBQyxlQUFlO1lBQ3BCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxjQUFjO1lBQzFDLGNBQWMsQ0FBQyxXQUFXLENBQzdCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWMsQ0FBQyxHQUFtQjtRQUN6QyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFxQixDQUFDO1FBRTdDLElBQUkscUJBQXFCLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNoRCxNQUFNLGtCQUFrQixHQUE2QjtnQkFDakQsVUFBVSxFQUFFLHFC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YyxDQUFDLElBQUk7Z0JBQ3BCLE9BQU8sdUNBQXVDLENBQUM7WUFDbkQsS0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQ2hDO2dCQUNJLE9BQU8sc0NBQXNDLENBQUM7U0FDckQ7SUFDTCxDQUFDOzhHQTVJUSxrQkFBa0Isa0JBd0RmLG1CQUFtQjtrR0F4RHRCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQXlEUSxRQUFROzswQkFDUixNQUFNOzJCQUFDLG1CQUFtQjtrRUFyRHhCLGNBQWM7c0JBRHBCLE1BQU07Z0JBZ0JJLGNBQWM7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgRG9DaGVjayxcbiAgICBPbkluaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCYXNlRXZlbnRBcmdzLCBta2VudW0gfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIGNvbXBvbmVudHMnIGRpc3BsYXkgZGVuc2l0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IERpc3BsYXlEZW5zaXR5ID0gbWtlbnVtKHtcbiAgICBjb21mb3J0YWJsZTogJ2NvbWZvcnRhYmxlJyxcbiAgICBjb3N5OiAnY29zeScsXG4gICAgY29tcGFjdDogJ2NvbXBhY3QnLFxufSk7XG4vKipcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTYuMS4wLlxuICogUGxlYXNlIHVzZSB0aGUgYC0taWctc2l6ZWAgQ1NTIGN1c3RvbSBwcm9wZXJ0eS5cbiAqIEBzZWUge0BsaW5rIFtVcGRhdGUgR3VpZGVdKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2dlbmVyYWwvdXBkYXRlLWd1aWRlI2Zyb20tMTYweC10by0xNjF4KX1cbiAqL1xuZXhwb3J0IHR5cGUgRGlzcGxheURlbnNpdHkgPVxuICAgICh0eXBlb2YgRGlzcGxheURlbnNpdHkpW2tleW9mIHR5cGVvZiBEaXNwbGF5RGVuc2l0eV07XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBvYmplY3QgdXNlZCB0byBjb25maWd1cmUgdGhlIERpc3BsYXlEZW5zaXR5IGluIEFuZ3VsYXIgREkuXG4gKlxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLjAuIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURpc3BsYXlEZW5zaXR5T3B0aW9ucyB7XG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZW5zaXR5Q2hhbmdlZEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBvbGREZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbiAgICBuZXdEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBEaXNwbGF5RGVuc2l0eSBESSB0b2tlbi5cbiAqXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEuMC5cbiAqIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gKiBAc2VlIHtAbGluayBbVXBkYXRlIEd1aWRlXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9nZW5lcmFsL3VwZGF0ZS1ndWlkZSNmcm9tLTE2MHgtdG8tMTYxeCl9XG4gKlxuICogQGhpZGRlblxuICovXG5leHBvcnQgY29uc3QgRGlzcGxheURlbnNpdHlUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRGlzcGxheURlbnNpdHlPcHRpb25zPihcbiAgICAnRGlzcGxheURlbnNpdHknXG4pO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIEJhc2UgY2xhc3MgY29udGFpbmluZyBhbGwgbG9naWMgcmVxdWlyZWQgZm9yIGltcGxlbWVudGluZyBEaXNwbGF5RGVuc2l0eS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4RGlzcGxheURlbnNpdHlCYXNlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBEaXNwbGF5RGVuc2l0eUJhc2UgaW1wbGVtZW50cyBEb0NoZWNrLCBPbkluaXQge1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbnNpdHlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0aGVtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIFRoZSBkZWZhdWx0IHRoZW1lIGlzIGBjb21mb3J0YWJsZWAuXG4gICAgICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlIGBjb21mb3J0YWJsZWAsIGBjb3N5YCwgYGNvbXBhY3RgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgY29tcG9uZW50VGhlbWUgPSB0aGlzLmNvbXBvbmVudC5kaXNwbGF5RGVuc2l0eTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTYuMS4wLlxuICAgICAqIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gICAgICogQHNlZSB7QGxpbmsgW1VwZGF0ZSBHdWlkZV0oaHR0cHM6Ly93d3cuaW5mcmFnaXN0aWNzLmNvbS9wcm9kdWN0cy9pZ25pdGUtdWktYW5ndWxhci9hbmd1bGFyL2NvbXBvbmVudHMvZ2VuZXJhbC91cGRhdGUtZ3VpZGUjZnJvbS0xNjB4LXRvLTE2MXgpfVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNwbGF5RGVuc2l0eSgpOiBEaXNwbGF5RGVuc2l0eSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5RGVuc2l0eSA/P1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnM/LmRpc3BsYXlEZW5zaXR5ID8/XG4gICAgICAgICAgICBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRoZW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHVibGljIHNldCBkaXNwbGF5RGVuc2l0eSh2YWw6IERpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREaXNwbGF5RGVuc2l0eSA9IHRoaXMuX2Rpc3BsYXlEZW5zaXR5O1xuICAgICAgICB0aGlzLl9kaXNwbGF5RGVuc2l0eSA9IHZhbCBhcyBEaXNwbGF5RGVuc2l0eTtcblxuICAgICAgICBpZiAoY3VycmVudERpc3BsYXlEZW5zaXR5ICE9PSB0aGlzLl9kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY29uc3QgZGVuc2l0eUNoYW5nZWRBcmdzOiBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgb2xkRGVuc2l0eTogY3VycmVudERpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgICAgIG5ld0RlbnNpdHk6IHRoaXMuX2Rpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5kZW5zaXR5Q2hhbmdlZC5lbWl0KGRlbnNpdHlDaGFuZ2VkQXJncyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGluaXRpYWxEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcblxuICAgIHByb3RlY3RlZCBvbGREaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgPSB7XG4gICAgICAgIGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZSxcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KERpc3BsYXlEZW5zaXR5VG9rZW4pXG4gICAgICAgIHByb3RlY3RlZCBkaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgIHByb3RlY3RlZCBfaG9zdDogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLCBkaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5faG9zdD8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBpZiAoZWwgaW5zdGFuY2VvZiBFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzaXplID0gZ2xvYmFsVGhpcy5kb2N1bWVudD8uZGVmYXVsdFZpZXdcbiAgICAgICAgICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZShlbClcbiAgICAgICAgICAgICAgICAuZ2V0UHJvcGVydHlWYWx1ZShcIi0taWctc2l6ZVwiKVxuICAgICAgICAgICAgICAgIC50cmltKCk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoc2l6ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5RGVuc2l0eSA9IERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5RGVuc2l0eSA9IERpc3BsYXlEZW5zaXR5LmNvc3k7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJzMnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5RGVuc2l0eSA9IERpc3BsYXlEZW5zaXR5LmNvbWZvcnRhYmxlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdGlhbERlbnNpdHkgPSB0aGlzLl9kaXNwbGF5RGVuc2l0eTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuX2Rpc3BsYXlEZW5zaXR5ICYmXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucyAmJlxuICAgICAgICAgICAgdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHkgIT09XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBkZW5zaXR5Q2hhbmdlZEFyZ3M6IElEZW5zaXR5Q2hhbmdlZEV2ZW50QXJncyA9IHtcbiAgICAgICAgICAgICAgICBvbGREZW5zaXR5OiB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgICAgICBuZXdEZW5zaXR5OiB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZGVuc2l0eUNoYW5nZWQuZW1pdChkZW5zaXR5Q2hhbmdlZEFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLFxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBzdHlsZSBjbGFzcyBvZiBhIGNvbXBvbmVudC9lbGVtZW50IHJldHVybnMgdGhlIG1vZGlmaWVkIHZlcnNpb24gb2YgaXQgYmFzZWRcbiAgICAgKiBvbiB0aGUgY3VycmVudCBkaXNwbGF5IGRlbnNpdHkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldENvbXBvbmVudERlbnNpdHlDbGFzcyhiYXNlU3R5bGVDbGFzczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kaXNwbGF5RGVuc2l0eSB8fCB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb3N5OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtiYXNlU3R5bGVDbGFzc30tLSR7RGlzcGxheURlbnNpdHkuY29zeX1gO1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb21wYWN0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtiYXNlU3R5bGVDbGFzc30tLSR7RGlzcGxheURlbnNpdHkuY29tcGFjdH1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZVN0eWxlQ2xhc3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgLS1jb21wb25lbnQtc2l6ZWAgQ1NTIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBEaXNwbGF5IERlbnNpdHlcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29tcG9uZW50U2l6ZVN0eWxlcygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kaXNwbGF5RGVuc2l0eSB8fCB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb21wYWN0OlxuICAgICAgICAgICAgICAgIHJldHVybiAndmFyKC0taWctc2l6ZSwgdmFyKC0taWctc2l6ZS1zbWFsbCkpJztcbiAgICAgICAgICAgIGNhc2UgRGlzcGxheURlbnNpdHkuY29zeTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhcigtLWlnLXNpemUsIHZhcigtLWlnLXNpemUtbWVkaXVtKSknO1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZTpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2YXIoLS1pZy1zaXplLCB2YXIoLS1pZy1zaXplLWxhcmdlKSknO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVuc2l0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9jb3JlL2RlbnNpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGNBQWMsRUFDZCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLFdBQVcsRUFBRSxhQUFhO0lBQzFCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7Q0FDckIsQ0FBQyxDQUFDO0FBdUJIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ2pELGdCQUFnQixDQUNuQixDQUFDO0FBRUY7OztHQUdHO0FBS0gsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxrQkFBa0I7SUFLM0I7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxJQUNXLGNBQWM7UUFDckIsT0FBTyxDQUNILElBQUksQ0FBQyxlQUFlO1lBQ3BCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxjQUFjO1lBQzFDLGNBQWMsQ0FBQyxXQUFXLENBQzdCLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWMsQ0FBQyxHQUFtQjtRQUN6QyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFxQixDQUFDO1FBRTdDLElBQUkscUJBQXFCLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNoRCxNQUFNLGtCQUFrQixHQUE2QjtnQkFDakQsVUFBVSxFQUFFLHFC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QWMsQ0FBQyxJQUFJO2dCQUNwQixPQUFPLHVDQUF1QyxDQUFDO1lBQ25ELEtBQUssY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUNoQztnQkFDSSxPQUFPLHNDQUFzQyxDQUFDO1NBQ3JEO0lBQ0wsQ0FBQzs4R0E3SVEsa0JBQWtCLGtCQXdEZixtQkFBbUI7a0dBeER0QixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkF5RFEsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxtQkFBbUI7a0VBckR4QixjQUFjO3NCQURwQixNQUFNO2dCQWdCSSxjQUFjO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIERvQ2hlY2ssXG4gICAgT25Jbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgRWxlbWVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncywgbWtlbnVtIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgcG9zc2libGUgdmFsdWVzIG9mIHRoZSBjb21wb25lbnRzJyBkaXNwbGF5IGRlbnNpdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBEaXNwbGF5RGVuc2l0eSA9IG1rZW51bSh7XG4gICAgY29tZm9ydGFibGU6ICdjb21mb3J0YWJsZScsXG4gICAgY29zeTogJ2Nvc3knLFxuICAgIGNvbXBhY3Q6ICdjb21wYWN0Jyxcbn0pO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEuMC5cbiAqIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gKiBAc2VlIHtAbGluayBbVXBkYXRlIEd1aWRlXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9nZW5lcmFsL3VwZGF0ZS1ndWlkZSNmcm9tLTE2MHgtdG8tMTYxeCl9XG4gKi9cbmV4cG9ydCB0eXBlIERpc3BsYXlEZW5zaXR5ID1cbiAgICAodHlwZW9mIERpc3BsYXlEZW5zaXR5KVtrZXlvZiB0eXBlb2YgRGlzcGxheURlbnNpdHldO1xuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgb2JqZWN0IHVzZWQgdG8gY29uZmlndXJlIHRoZSBEaXNwbGF5RGVuc2l0eSBpbiBBbmd1bGFyIERJLlxuICpcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTYuMS4wLiBQbGVhc2UgdXNlIHRoZSBgLS1pZy1zaXplYCBDU1MgY3VzdG9tIHByb3BlcnR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMge1xuICAgIGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgb2xkRGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgbmV3RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgRGlzcGxheURlbnNpdHkgREkgdG9rZW4uXG4gKlxuICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLjAuXG4gKiBQbGVhc2UgdXNlIHRoZSBgLS1pZy1zaXplYCBDU1MgY3VzdG9tIHByb3BlcnR5LlxuICogQHNlZSB7QGxpbmsgW1VwZGF0ZSBHdWlkZV0oaHR0cHM6Ly93d3cuaW5mcmFnaXN0aWNzLmNvbS9wcm9kdWN0cy9pZ25pdGUtdWktYW5ndWxhci9hbmd1bGFyL2NvbXBvbmVudHMvZ2VuZXJhbC91cGRhdGUtZ3VpZGUjZnJvbS0xNjB4LXRvLTE2MXgpfVxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGNvbnN0IERpc3BsYXlEZW5zaXR5VG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48SURpc3BsYXlEZW5zaXR5T3B0aW9ucz4oXG4gICAgJ0Rpc3BsYXlEZW5zaXR5J1xuKTtcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBCYXNlIGNsYXNzIGNvbnRhaW5pbmcgYWxsIGxvZ2ljIHJlcXVpcmVkIGZvciBpbXBsZW1lbnRpbmcgRGlzcGxheURlbnNpdHkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneERpc3BsYXlEZW5zaXR5QmFzZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRGlzcGxheURlbnNpdHlCYXNlIGltcGxlbWVudHMgRG9DaGVjaywgT25Jbml0IHtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZW5zaXR5Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdGhlbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBUaGUgZGVmYXVsdCB0aGVtZSBpcyBgY29tZm9ydGFibGVgLlxuICAgICAqIEF2YWlsYWJsZSBvcHRpb25zIGFyZSBgY29tZm9ydGFibGVgLCBgY29zeWAsIGBjb21wYWN0YC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGNvbXBvbmVudFRoZW1lID0gdGhpcy5jb21wb25lbnQuZGlzcGxheURlbnNpdHk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEuMC5cbiAgICAgKiBQbGVhc2UgdXNlIHRoZSBgLS1pZy1zaXplYCBDU1MgY3VzdG9tIHByb3BlcnR5LlxuICAgICAqIEBzZWUge0BsaW5rIFtVcGRhdGUgR3VpZGVdKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2dlbmVyYWwvdXBkYXRlLWd1aWRlI2Zyb20tMTYweC10by0xNjF4KX1cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGlzcGxheURlbnNpdHkoKTogRGlzcGxheURlbnNpdHkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPz9cbiAgICAgICAgICAgIHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zPy5kaXNwbGF5RGVuc2l0eSA/P1xuICAgICAgICAgICAgRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB0aGVtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgZGlzcGxheURlbnNpdHkodmFsOiBEaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICBjb25zdCBjdXJyZW50RGlzcGxheURlbnNpdHkgPSB0aGlzLl9kaXNwbGF5RGVuc2l0eTtcbiAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPSB2YWwgYXMgRGlzcGxheURlbnNpdHk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnREaXNwbGF5RGVuc2l0eSAhPT0gdGhpcy5fZGlzcGxheURlbnNpdHkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbnNpdHlDaGFuZ2VkQXJnczogSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzID0ge1xuICAgICAgICAgICAgICAgIG9sZERlbnNpdHk6IGN1cnJlbnREaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgICAgICBuZXdEZW5zaXR5OiB0aGlzLl9kaXNwbGF5RGVuc2l0eSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZGVuc2l0eUNoYW5nZWQuZW1pdChkZW5zaXR5Q2hhbmdlZEFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBpbml0aWFsRGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG5cbiAgICBwcm90ZWN0ZWQgb2xkRGlzcGxheURlbnNpdHlPcHRpb25zOiBJRGlzcGxheURlbnNpdHlPcHRpb25zID0ge1xuICAgICAgICBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGUsXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKVxuICAgICAgICBwcm90ZWN0ZWQgZGlzcGxheURlbnNpdHlPcHRpb25zOiBJRGlzcGxheURlbnNpdHlPcHRpb25zLFxuICAgICAgICBwcm90ZWN0ZWQgX2hvc3Q6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucywgZGlzcGxheURlbnNpdHlPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMuX2hvc3Q/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3Qgc2l6ZSA9IGdsb2JhbFRoaXMuZG9jdW1lbnQ/LmRlZmF1bHRWaWV3XG4gICAgICAgICAgICAgICAgLmdldENvbXB1dGVkU3R5bGUoZWwpXG4gICAgICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoXCItLWlnLXNpemVcIilcbiAgICAgICAgICAgICAgICAudHJpbSgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICcxJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPSBEaXNwbGF5RGVuc2l0eS5jb21wYWN0O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPSBEaXNwbGF5RGVuc2l0eS5jb3N5O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICczJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlzcGxheURlbnNpdHkgPSBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRpYWxEZW5zaXR5ID0gdGhpcy5fZGlzcGxheURlbnNpdHk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLl9kaXNwbGF5RGVuc2l0eSAmJlxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnMgJiZcbiAgICAgICAgICAgIHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5ICE9PVxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5XG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZGVuc2l0eUNoYW5nZWRBcmdzOiBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgb2xkRGVuc2l0eTogdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHksXG4gICAgICAgICAgICAgICAgbmV3RGVuc2l0eTogdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmRlbnNpdHlDaGFuZ2VkLmVtaXQoZGVuc2l0eUNoYW5nZWRBcmdzKTtcbiAgICAgICAgICAgIHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9uc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgc3R5bGUgY2xhc3Mgb2YgYSBjb21wb25lbnQvZWxlbWVudCByZXR1cm5zIHRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0IGJhc2VkXG4gICAgICogb24gdGhlIGN1cnJlbnQgZGlzcGxheSBkZW5zaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRDb21wb25lbnREZW5zaXR5Q2xhc3MoYmFzZVN0eWxlQ2xhc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fZGlzcGxheURlbnNpdHkgfHwgdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgRGlzcGxheURlbnNpdHkuY29zeTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YmFzZVN0eWxlQ2xhc3N9LS0ke0Rpc3BsYXlEZW5zaXR5LmNvc3l9YDtcbiAgICAgICAgICAgIGNhc2UgRGlzcGxheURlbnNpdHkuY29tcGFjdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YmFzZVN0eWxlQ2xhc3N9LS0ke0Rpc3BsYXlEZW5zaXR5LmNvbXBhY3R9YDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VTdHlsZUNsYXNzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYC0tY29tcG9uZW50LXNpemVgIENTUyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgRGlzcGxheSBEZW5zaXR5XG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29tcG9uZW50U2l6ZVN0eWxlcygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kaXNwbGF5RGVuc2l0eSB8fCB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb21wYWN0OlxuICAgICAgICAgICAgICAgIHJldHVybiAndmFyKC0taWctc2l6ZSwgdmFyKC0taWctc2l6ZS1zbWFsbCkpJztcbiAgICAgICAgICAgIGNhc2UgRGlzcGxheURlbnNpdHkuY29zeTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhcigtLWlnLXNpemUsIHZhcigtLWlnLXNpemUtbWVkaXVtKSknO1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZTpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd2YXIoLS1pZy1zaXplLCB2YXIoLS1pZy1zaXplLWxhcmdlKSknO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|