nxt-pick-datetime 16.2.0 → 17.0.0

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.
Files changed (28) hide show
  1. package/esm2022/lib/class/date-time.class.mjs +6 -6
  2. package/esm2022/lib/date-time/calendar/calendar.component.mjs +6 -6
  3. package/esm2022/lib/date-time/calendar-body/calendar-body.component.mjs +5 -5
  4. package/esm2022/lib/date-time/calendar-month-view/calendar-month-view.component.mjs +6 -6
  5. package/esm2022/lib/date-time/calendar-multi-year-view/calendar-multi-year-view.component.mjs +5 -5
  6. package/esm2022/lib/date-time/calendar-year-view/calendar-year-view.component.mjs +6 -6
  7. package/esm2022/lib/date-time/date-time-inline/date-time-inline.component.mjs +6 -6
  8. package/esm2022/lib/date-time/date-time-picker/date-time-picker.component.mjs +6 -6
  9. package/esm2022/lib/date-time/date-time-picker-container/date-time-picker-container.component.mjs +5 -5
  10. package/esm2022/lib/date-time/date-time-picker-input.directive.mjs +6 -6
  11. package/esm2022/lib/date-time/date-time-picker-intl.service.mjs +3 -3
  12. package/esm2022/lib/date-time/date-time-picker-trigger.directive.mjs +5 -5
  13. package/esm2022/lib/date-time/date-time.module.mjs +4 -4
  14. package/esm2022/lib/date-time/number-fixed-len.pipe.mjs +3 -3
  15. package/esm2022/lib/date-time/timer/timer.component.mjs +5 -5
  16. package/esm2022/lib/date-time/timer-box/timer-box.component.mjs +5 -5
  17. package/esm2022/lib/dialog/dialog-container/dialog-container.component.mjs +6 -6
  18. package/esm2022/lib/dialog/dialog.module.mjs +4 -4
  19. package/esm2022/lib/dialog/dialog.service.mjs +5 -5
  20. package/esm2022/moment-adapter/date-time-adapter.class.mjs +5 -5
  21. package/esm2022/moment-adapter/moment-adapter.module.mjs +4 -4
  22. package/esm2022/native-adapter/date-time-adapter.class.mjs +5 -5
  23. package/esm2022/native-adapter/native-adapter.module.mjs +4 -4
  24. package/fesm2022/nxt-pick-datetime-moment-adapter.mjs +9 -9
  25. package/fesm2022/nxt-pick-datetime-native-adapter.mjs +9 -9
  26. package/fesm2022/nxt-pick-datetime.mjs +84 -84
  27. package/fesm2022/nxt-pick-datetime.mjs.map +1 -1
  28. package/package.json +8 -8
@@ -67,15 +67,15 @@ export class DateTimeDirective {
67
67
  ? obj
68
68
  : undefined;
69
69
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DateTimeDirective, deps: [{ token: i1.DateTimeAdapter }, { token: NXT_DATE_TIME_FORMATS }], target: i0.ɵɵFactoryTarget.Directive }); }
71
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.2", type: DateTimeDirective, inputs: { showSecondsTimer: "showSecondsTimer", hour12Timer: "hour12Timer", startView: "startView", stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond", firstDayOfWeek: "firstDayOfWeek", hideOtherMonths: "hideOtherMonths" }, ngImport: i0 }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DateTimeDirective, deps: [{ token: i1.DateTimeAdapter }, { token: NXT_DATE_TIME_FORMATS }], target: i0.ɵɵFactoryTarget.Directive }); }
71
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.1", type: DateTimeDirective, inputs: { showSecondsTimer: "showSecondsTimer", hour12Timer: "hour12Timer", startView: "startView", stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond", firstDayOfWeek: "firstDayOfWeek", hideOtherMonths: "hideOtherMonths" }, ngImport: i0 }); }
72
72
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DateTimeDirective, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: DateTimeDirective, decorators: [{
74
74
  type: Directive
75
- }], ctorParameters: function () { return [{ type: i1.DateTimeAdapter }, { type: undefined, decorators: [{
75
+ }], ctorParameters: () => [{ type: i1.DateTimeAdapter }, { type: undefined, decorators: [{
76
76
  type: Inject,
77
77
  args: [NXT_DATE_TIME_FORMATS]
78
- }] }]; }, propDecorators: { showSecondsTimer: [{
78
+ }] }], propDecorators: { showSecondsTimer: [{
79
79
  type: Input
80
80
  }], hour12Timer: [{
81
81
  type: Input
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
92
92
  }], hideOtherMonths: [{
93
93
  type: Input
94
94
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGljay1kYXRldGltZS9zcmMvbGliL2NsYXNzL2RhdGUtdGltZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXRFLE9BQU8sRUFBbUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7O0FBRWpGLGdCQUFnQjtBQUNoQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUE7QUFlcEIsTUFBTSxPQUFnQixpQkFBaUI7SUErRW5DLElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWU7WUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVTtnQkFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZTtnQkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFBO0lBQ2xELENBQUM7SUFZRCxJQUFJLFFBQVE7UUFDUixPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQsWUFDdUIsZUFBbUMsRUFFbkMsZUFBZ0M7UUFGaEMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBRW5DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXZHdkQ7O1dBRUc7UUFDTSxxQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFFakM7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUU1Qjs7V0FFRztRQUNNLGNBQVMsR0FBYSxPQUFPLENBQUE7UUFFdEM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBRXJCOztXQUVHO1FBQ00sZUFBVSxHQUFHLENBQUMsQ0FBQTtRQUV2Qjs7V0FFRztRQUNNLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFFdkI7Ozs7V0FJRztRQUNNLG1CQUFjLEdBQUcsQ0FBQyxDQUFBO1FBRTNCOztXQUVHO1FBQ00sb0JBQWUsR0FBRyxLQUFLLENBQUE7UUFFdkIsT0FBRSxHQUFHLGlCQUFpQixZQUFZLEVBQUUsRUFBRSxDQUFBO1FBNEMvQzs7V0FFRztRQUNILG9CQUFlLEdBQUcsQ0FBQyxRQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUMzQyxDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdkUsQ0FBQTtJQVVHLENBQUM7SUFFSyxZQUFZLENBQUMsR0FBUTtRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztZQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakMsQ0FBQyxDQUFDLEdBQUc7WUFDTCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ25CLENBQUM7OEdBaEhpQixpQkFBaUIsaURBdUd2QixxQkFBcUI7a0dBdkdmLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEdEMsU0FBUzs7MEJBd0dELE1BQU07MkJBQUMscUJBQXFCOzRDQW5HeEIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4vZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnXHJcbmltcG9ydCB7IERhdGVUaW1lRm9ybWF0cywgTlhUX0RBVEVfVElNRV9GT1JNQVRTIH0gZnJvbSAnLi9kYXRlLXRpbWUtZm9ybWF0LmNsYXNzJ1xyXG5cclxuLyoqIEBpbnRlcm5hbCAqL1xyXG5sZXQgbmV4dFVuaXF1ZUlkID0gMFxyXG5cclxuZXhwb3J0IHR5cGUgUGlja2VyVHlwZSA9ICdib3RoJyB8ICdjYWxlbmRhcicgfCAndGltZXInXHJcblxyXG5leHBvcnQgdHlwZSBQaWNrZXJNb2RlID0gJ3BvcHVwJyB8ICdkaWFsb2cnIHwgJ2lubGluZSdcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdE1vZGUgPSAnc2luZ2xlJyB8ICdyYW5nZScgfCAncmFuZ2VGcm9tJyB8ICdyYW5nZVRvJ1xyXG5cclxuZXhwb3J0IHR5cGUgUmVuZGVySXRlbSA9ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF0ZSdcclxuXHJcbmV4cG9ydCB0eXBlIFZpZXdUeXBlID0gJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFycydcclxuXHJcbmV4cG9ydCB0eXBlIERhdGVGaWx0ZXI8VD4gPSAoZGF0ZT86IFQsIGZvclJlbmRlcj86IFJlbmRlckl0ZW0pID0+IGJvb2xlYW5cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZVRpbWVEaXJlY3RpdmU8VD4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaGVuIHRydWUsIHNob3dzIGEgdGltZXIgdG8gY29uZmlndXJlIHRoZSBzZWNvbmRzIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNob3dTZWNvbmRzVGltZXIgPSBmYWxzZVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hlbiB0cnVlLCB0aGUgdGltZXIgd2lsbCBiZSBpbiAxMi1ob3VyIGZvcm1hdCBtb2RlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGhvdXIxMlRpbWVyID0gZmFsc2VcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2aWV3IHRoYXQgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBvblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzdGFydFZpZXc6IFZpZXdUeXBlID0gJ21vbnRoJ1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG91cnMgdG8gY2hhbmdlIHBlciBzdGVwXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHN0ZXBIb3VyID0gMVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWludXRlcyB0byBjaGFuZ2UgcGVyIHN0ZXBcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc3RlcE1pbnV0ZSA9IDFcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlY29uZHMgdG8gY2hhbmdlIHBlciBzdGVwXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHN0ZXBTZWNvbmQgPSAxXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrXHJcbiAgICAgKlxyXG4gICAgICogVmFsaWQgdmFsdWVzIGFyZSBmcm9tIDAgW1N1bmRheV0gdG8gNiBbU2F0dXJkYXldXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGZpcnN0RGF5T2ZXZWVrID0gMFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdHJ1ZSwgZG9uJ3Qgc2hvdyBkYXRlcyBmcm9tIHByZWlvdXMgLyBuZXh0IG1vbnRoIG9uIHRoZSBjYWxlbmRhciBtb250aCB2aWV3XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGhpZGVPdGhlck1vbnRocyA9IGZhbHNlXHJcblxyXG4gICAgcmVhZG9ubHkgaWQgPSBgbnh0LWR0LXBpY2tlci0ke25leHRVbmlxdWVJZCsrfWBcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgc2VsZWN0ZWQoKTogVCB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBzZWxlY3RlZHMoKTogQXJyYXk8VCB8IHVuZGVmaW5lZD5cclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgZGF0ZVRpbWVGaWx0ZXIoKTogRGF0ZUZpbHRlcjxUPiB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBtYXgoKTogVCB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBtaW4oKTogVCB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBzZWxlY3RNb2RlKCk6IFNlbGVjdE1vZGUgfCB1bmRlZmluZWRcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgc3RhcnRBdCgpOiBUIHwgdW5kZWZpbmVkXHJcblxyXG4gICAgYWJzdHJhY3QgZ2V0IGlzT3BlbigpOiBib29sZWFuXHJcblxyXG4gICAgYWJzdHJhY3QgZ2V0IHBpY2tlck1vZGUoKTogUGlja2VyTW9kZVxyXG5cclxuICAgIGFic3RyYWN0IGdldCBwaWNrZXJUeXBlKCk6IFBpY2tlclR5cGVcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgaXNJblNpbmdsZU1vZGUoKTogYm9vbGVhblxyXG5cclxuICAgIGFic3RyYWN0IGdldCBpc0luUmFuZ2VNb2RlKCk6IGJvb2xlYW5cclxuXHJcbiAgICBhYnN0cmFjdCBzZWxlY3QoZGF0ZTogVCB8IEFycmF5PFQgfCB1bmRlZmluZWQ+KTogdm9pZFxyXG5cclxuICAgIGFic3RyYWN0IHllYXJTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFQ+XHJcblxyXG4gICAgYWJzdHJhY3QgbW9udGhTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFQ+XHJcblxyXG4gICAgYWJzdHJhY3Qgc2VsZWN0WWVhcihub3JtYWxpemVkWWVhcjogVCk6IHZvaWRcclxuXHJcbiAgICBhYnN0cmFjdCBzZWxlY3RNb250aChub3JtYWxpemVkTW9udGg6IFQpOiB2b2lkXHJcblxyXG4gICAgZ2V0IGZvcm1hdFN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlclR5cGUgPT09ICdib3RoJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZGF0ZVRpbWVGb3JtYXRzLmZ1bGxQaWNrZXJJbnB1dFxyXG4gICAgICAgICAgICA6IHRoaXMucGlja2VyVHlwZSA9PT0gJ2NhbGVuZGFyJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRhdGVUaW1lRm9ybWF0cy5kYXRlUGlja2VySW5wdXRcclxuICAgICAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUZvcm1hdHMudGltZVBpY2tlcklucHV0XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRlIFRpbWUgQ2hlY2tlciB0byBjaGVjayBpZiB0aGUgZ2l2ZSBkYXRlVGltZSBpcyBzZWxlY3RhYmxlXHJcbiAgICAgKi9cclxuICAgIGRhdGVUaW1lQ2hlY2tlciA9IChkYXRlVGltZTogVCB8IHVuZGVmaW5lZCkgPT4gKFxyXG4gICAgICAgICEhZGF0ZVRpbWUgJiZcclxuICAgICAgICAoIXRoaXMuZGF0ZVRpbWVGaWx0ZXIgfHwgdGhpcy5kYXRlVGltZUZpbHRlcihkYXRlVGltZSkpICYmXHJcbiAgICAgICAgKCF0aGlzLm1pbiB8fCB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKGRhdGVUaW1lLCB0aGlzLm1pbikgPj0gMCkgJiZcclxuICAgICAgICAoIXRoaXMubWF4IHx8IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUoZGF0ZVRpbWUsIHRoaXMubWF4KSA8PSAwKVxyXG4gICAgKVxyXG5cclxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZVRpbWVBZGFwdGVyOiBEYXRlVGltZUFkYXB0ZXI8VD4sXHJcbiAgICAgICAgQEluamVjdChOWFRfREFURV9USU1FX0ZPUk1BVFMpXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRWYWxpZERhdGUob2JqOiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNEYXRlSW5zdGFuY2Uob2JqKSAmJlxyXG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKG9iailcclxuICAgICAgICAgICAgPyBvYmpcclxuICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgIH1cclxufVxyXG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGljay1kYXRldGltZS9zcmMvbGliL2NsYXNzL2RhdGUtdGltZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXRFLE9BQU8sRUFBbUIscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7O0FBRWpGLGdCQUFnQjtBQUNoQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUE7QUFlcEIsTUFBTSxPQUFnQixpQkFBaUI7SUErRW5DLElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWU7WUFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVTtnQkFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZTtnQkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFBO0lBQ2xELENBQUM7SUFZRCxJQUFJLFFBQVE7UUFDUixPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQsWUFDdUIsZUFBbUMsRUFFbkMsZUFBZ0M7UUFGaEMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBRW5DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXZHdkQ7O1dBRUc7UUFDTSxxQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFFakM7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQTtRQUU1Qjs7V0FFRztRQUNNLGNBQVMsR0FBYSxPQUFPLENBQUE7UUFFdEM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsQ0FBQyxDQUFBO1FBRXJCOztXQUVHO1FBQ00sZUFBVSxHQUFHLENBQUMsQ0FBQTtRQUV2Qjs7V0FFRztRQUNNLGVBQVUsR0FBRyxDQUFDLENBQUE7UUFFdkI7Ozs7V0FJRztRQUNNLG1CQUFjLEdBQUcsQ0FBQyxDQUFBO1FBRTNCOztXQUVHO1FBQ00sb0JBQWUsR0FBRyxLQUFLLENBQUE7UUFFdkIsT0FBRSxHQUFHLGlCQUFpQixZQUFZLEVBQUUsRUFBRSxDQUFBO1FBNEMvQzs7V0FFRztRQUNILG9CQUFlLEdBQUcsQ0FBQyxRQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUMzQyxDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdkUsQ0FBQTtJQVVHLENBQUM7SUFFSyxZQUFZLENBQUMsR0FBUTtRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztZQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakMsQ0FBQyxDQUFDLEdBQUc7WUFDTCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ25CLENBQUM7OEdBaEhpQixpQkFBaUIsaURBdUd2QixxQkFBcUI7a0dBdkdmLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEdEMsU0FBUzs7MEJBd0dELE1BQU07MkJBQUMscUJBQXFCO3lDQW5HeEIsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4vZGF0ZS10aW1lLWFkYXB0ZXIuY2xhc3MnXHJcbmltcG9ydCB7IERhdGVUaW1lRm9ybWF0cywgTlhUX0RBVEVfVElNRV9GT1JNQVRTIH0gZnJvbSAnLi9kYXRlLXRpbWUtZm9ybWF0LmNsYXNzJ1xyXG5cclxuLyoqIEBpbnRlcm5hbCAqL1xyXG5sZXQgbmV4dFVuaXF1ZUlkID0gMFxyXG5cclxuZXhwb3J0IHR5cGUgUGlja2VyVHlwZSA9ICdib3RoJyB8ICdjYWxlbmRhcicgfCAndGltZXInXHJcblxyXG5leHBvcnQgdHlwZSBQaWNrZXJNb2RlID0gJ3BvcHVwJyB8ICdkaWFsb2cnIHwgJ2lubGluZSdcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdE1vZGUgPSAnc2luZ2xlJyB8ICdyYW5nZScgfCAncmFuZ2VGcm9tJyB8ICdyYW5nZVRvJ1xyXG5cclxuZXhwb3J0IHR5cGUgUmVuZGVySXRlbSA9ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF0ZSdcclxuXHJcbmV4cG9ydCB0eXBlIFZpZXdUeXBlID0gJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFycydcclxuXHJcbmV4cG9ydCB0eXBlIERhdGVGaWx0ZXI8VD4gPSAoZGF0ZT86IFQsIGZvclJlbmRlcj86IFJlbmRlckl0ZW0pID0+IGJvb2xlYW5cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZVRpbWVEaXJlY3RpdmU8VD4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaGVuIHRydWUsIHNob3dzIGEgdGltZXIgdG8gY29uZmlndXJlIHRoZSBzZWNvbmRzIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNob3dTZWNvbmRzVGltZXIgPSBmYWxzZVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hlbiB0cnVlLCB0aGUgdGltZXIgd2lsbCBiZSBpbiAxMi1ob3VyIGZvcm1hdCBtb2RlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGhvdXIxMlRpbWVyID0gZmFsc2VcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2aWV3IHRoYXQgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBvblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzdGFydFZpZXc6IFZpZXdUeXBlID0gJ21vbnRoJ1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG91cnMgdG8gY2hhbmdlIHBlciBzdGVwXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHN0ZXBIb3VyID0gMVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWludXRlcyB0byBjaGFuZ2UgcGVyIHN0ZXBcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc3RlcE1pbnV0ZSA9IDFcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlY29uZHMgdG8gY2hhbmdlIHBlciBzdGVwXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHN0ZXBTZWNvbmQgPSAxXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrXHJcbiAgICAgKlxyXG4gICAgICogVmFsaWQgdmFsdWVzIGFyZSBmcm9tIDAgW1N1bmRheV0gdG8gNiBbU2F0dXJkYXldXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGZpcnN0RGF5T2ZXZWVrID0gMFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdHJ1ZSwgZG9uJ3Qgc2hvdyBkYXRlcyBmcm9tIHByZWlvdXMgLyBuZXh0IG1vbnRoIG9uIHRoZSBjYWxlbmRhciBtb250aCB2aWV3XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGhpZGVPdGhlck1vbnRocyA9IGZhbHNlXHJcblxyXG4gICAgcmVhZG9ubHkgaWQgPSBgbnh0LWR0LXBpY2tlci0ke25leHRVbmlxdWVJZCsrfWBcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgc2VsZWN0ZWQoKTogVCB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBzZWxlY3RlZHMoKTogQXJyYXk8VCB8IHVuZGVmaW5lZD5cclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgZGF0ZVRpbWVGaWx0ZXIoKTogRGF0ZUZpbHRlcjxUPiB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBtYXgoKTogVCB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBtaW4oKTogVCB8IHVuZGVmaW5lZFxyXG5cclxuICAgIGFic3RyYWN0IGdldCBzZWxlY3RNb2RlKCk6IFNlbGVjdE1vZGUgfCB1bmRlZmluZWRcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgc3RhcnRBdCgpOiBUIHwgdW5kZWZpbmVkXHJcblxyXG4gICAgYWJzdHJhY3QgZ2V0IGlzT3BlbigpOiBib29sZWFuXHJcblxyXG4gICAgYWJzdHJhY3QgZ2V0IHBpY2tlck1vZGUoKTogUGlja2VyTW9kZVxyXG5cclxuICAgIGFic3RyYWN0IGdldCBwaWNrZXJUeXBlKCk6IFBpY2tlclR5cGVcclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgaXNJblNpbmdsZU1vZGUoKTogYm9vbGVhblxyXG5cclxuICAgIGFic3RyYWN0IGdldCBpc0luUmFuZ2VNb2RlKCk6IGJvb2xlYW5cclxuXHJcbiAgICBhYnN0cmFjdCBzZWxlY3QoZGF0ZTogVCB8IEFycmF5PFQgfCB1bmRlZmluZWQ+KTogdm9pZFxyXG5cclxuICAgIGFic3RyYWN0IHllYXJTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFQ+XHJcblxyXG4gICAgYWJzdHJhY3QgbW9udGhTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFQ+XHJcblxyXG4gICAgYWJzdHJhY3Qgc2VsZWN0WWVhcihub3JtYWxpemVkWWVhcjogVCk6IHZvaWRcclxuXHJcbiAgICBhYnN0cmFjdCBzZWxlY3RNb250aChub3JtYWxpemVkTW9udGg6IFQpOiB2b2lkXHJcblxyXG4gICAgZ2V0IGZvcm1hdFN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBpY2tlclR5cGUgPT09ICdib3RoJ1xyXG4gICAgICAgICAgICA/IHRoaXMuZGF0ZVRpbWVGb3JtYXRzLmZ1bGxQaWNrZXJJbnB1dFxyXG4gICAgICAgICAgICA6IHRoaXMucGlja2VyVHlwZSA9PT0gJ2NhbGVuZGFyJ1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRhdGVUaW1lRm9ybWF0cy5kYXRlUGlja2VySW5wdXRcclxuICAgICAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUZvcm1hdHMudGltZVBpY2tlcklucHV0XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEYXRlIFRpbWUgQ2hlY2tlciB0byBjaGVjayBpZiB0aGUgZ2l2ZSBkYXRlVGltZSBpcyBzZWxlY3RhYmxlXHJcbiAgICAgKi9cclxuICAgIGRhdGVUaW1lQ2hlY2tlciA9IChkYXRlVGltZTogVCB8IHVuZGVmaW5lZCkgPT4gKFxyXG4gICAgICAgICEhZGF0ZVRpbWUgJiZcclxuICAgICAgICAoIXRoaXMuZGF0ZVRpbWVGaWx0ZXIgfHwgdGhpcy5kYXRlVGltZUZpbHRlcihkYXRlVGltZSkpICYmXHJcbiAgICAgICAgKCF0aGlzLm1pbiB8fCB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKGRhdGVUaW1lLCB0aGlzLm1pbikgPj0gMCkgJiZcclxuICAgICAgICAoIXRoaXMubWF4IHx8IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUoZGF0ZVRpbWUsIHRoaXMubWF4KSA8PSAwKVxyXG4gICAgKVxyXG5cclxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZVRpbWVBZGFwdGVyOiBEYXRlVGltZUFkYXB0ZXI8VD4sXHJcbiAgICAgICAgQEluamVjdChOWFRfREFURV9USU1FX0ZPUk1BVFMpXHJcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRWYWxpZERhdGUob2JqOiBhbnkpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNEYXRlSW5zdGFuY2Uob2JqKSAmJlxyXG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKG9iailcclxuICAgICAgICAgICAgPyBvYmpcclxuICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -300,16 +300,16 @@ export class CalendarComponent {
300
300
  ? obj
301
301
  : undefined;
302
302
  }
303
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CalendarComponent, deps: [{ token: i0.ElementRef }, { token: i1.DateTimeIntl }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i2.DateTimeAdapter }, { token: NXT_DATE_TIME_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
304
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CalendarComponent, selector: "nxt-date-time-calendar", inputs: { dateTimeFilter: "dateTimeFilter", firstDayOfWeek: "firstDayOfWeek", min: "min", max: "max", pickerMoment: "pickerMoment", selectMode: "selectMode", selected: "selected", selecteds: "selecteds", startView: "startView", hideOtherMonths: "hideOtherMonths" }, outputs: { pickerMomentChange: "pickerMomentChange", selectedChange: "selectedChange", userSelection: "userSelection", yearSelected: "yearSelected", monthSelected: "monthSelected" }, host: { properties: { "class.nxt-dt-calendar": "this.calendarClass" } }, ngImport: i0, template: "<div class=\"nxt-dt-calendar-control\">\r\n <!-- focus when keyboard tab (http://kizu.ru/en/blog/keyboard-only-focus/#x) -->\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows? 'visible': 'hidden'\"\r\n [disabled]=\"!prevButtonEnabled()\"\r\n [attr.aria-label]=\"prevButtonLabel\"\r\n (click)=\"previousClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Left\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path style=\"fill-rule: evenodd; clip-rule: evenodd;\"\r\n d=\"M96.633,125.369l95.053-94.533c7.101-7.055,7.101-18.492,0-25.546 c-7.1-7.054-18.613-7.054-25.714,0L58.989,111.689c-3.784,3.759-5.487,8.759-5.238,13.68c-0.249,4.922,1.454,9.921,5.238,13.681 l106.983,106.398c7.101,7.055,18.613,7.055,25.714,0c7.101-7.054,7.101-18.491,0-25.544L96.633,125.369z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n <div class=\"nxt-dt-calendar-control-content\">\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-period-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"periodButtonLabel\"\r\n (click)=\"toggleViews()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n {{periodButtonText}}\r\n\r\n <span class=\"nxt-dt-control-button-arrow\"\r\n [style.transform]=\"'rotate(' + (isMonthView? 0 : 180) +'deg)'\">\r\n <!-- <editor-fold desc=\"SVG Arrow\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n width=\"50%\"\r\n height=\"50%\"\r\n viewBox=\"0 0 292.362 292.362\"\r\n style=\"enable-background:new 0 0 292.362 292.362;\"\r\n xml:space=\"preserve\">\r\n <g>\r\n <path d=\"M286.935,69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952,0-9.233,1.807-12.85,5.424\r\n C1.807,72.998,0,77.279,0,82.228c0,4.948,1.807,9.229,5.424,12.847l127.907,127.907c3.621,3.617,7.902,5.428,12.85,5.428\r\n s9.233-1.811,12.847-5.428L286.935,95.074c3.613-3.617,5.427-7.898,5.427-12.847C292.362,77.279,290.548,72.998,286.935,69.377z\" />\r\n </g>\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </span>\r\n </button>\r\n </div>\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows? 'visible': 'hidden'\"\r\n [disabled]=\"!nextButtonEnabled()\"\r\n [attr.aria-label]=\"nextButtonLabel\"\r\n (click)=\"nextClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Right\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\">\r\n <path style=\"fill-rule:evenodd;clip-rule:evenodd;\"\r\n d=\"M191.75,111.689L84.766,5.291c-7.1-7.055-18.613-7.055-25.713,0\r\n c-7.101,7.054-7.101,18.49,0,25.544l95.053,94.534l-95.053,94.533c-7.101,7.054-7.101,18.491,0,25.545\r\n c7.1,7.054,18.613,7.054,25.713,0L191.75,139.05c3.784-3.759,5.487-8.759,5.238-13.681\r\n C197.237,120.447,195.534,115.448,191.75,111.689z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n</div>\r\n<div class=\"nxt-dt-calendar-main\"\r\n cdkMonitorSubtreeFocus\r\n [ngSwitch]=\"currentView\"\r\n tabindex=\"-1\">\r\n <nxt-date-time-month-view *ngSwitchCase=\"'month'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n [hideOtherMonths]=\"hideOtherMonths\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (selectedChange)=\"dateSelected($event)\"\r\n (userSelection)=\"userSelected()\"></nxt-date-time-month-view>\r\n\r\n <nxt-date-time-year-view *ngSwitchCase=\"'year'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (monthSelected)=\"selectMonthInYearView($event)\"\r\n (change)=\"goToDateInView($event, 'month')\"></nxt-date-time-year-view>\r\n\r\n <nxt-date-time-multi-year-view *ngSwitchCase=\"'multi-years'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (yearSelected)=\"selectYearInMultiYearView($event)\"\r\n (change)=\"goToDateInView($event, 'year')\"></nxt-date-time-multi-year-view>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: i5.MultiYearViewComponent, selector: "nxt-date-time-multi-year-view", inputs: ["selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["change", "yearSelected", "pickerMomentChange", "keyboardEnter"] }, { kind: "component", type: i6.YearViewComponent, selector: "nxt-date-time-year-view", inputs: ["selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["change", "monthSelected", "pickerMomentChange", "keyboardEnter"] }, { kind: "component", type: i7.MonthViewComponent, selector: "nxt-date-time-month-view", inputs: ["hideOtherMonths", "firstDayOfWeek", "selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["selectedChange", "userSelection", "pickerMomentChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: CalendarComponent, deps: [{ token: i0.ElementRef }, { token: i1.DateTimeIntl }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i2.DateTimeAdapter }, { token: NXT_DATE_TIME_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: CalendarComponent, selector: "nxt-date-time-calendar", inputs: { dateTimeFilter: "dateTimeFilter", firstDayOfWeek: "firstDayOfWeek", min: "min", max: "max", pickerMoment: "pickerMoment", selectMode: "selectMode", selected: "selected", selecteds: "selecteds", startView: "startView", hideOtherMonths: "hideOtherMonths" }, outputs: { pickerMomentChange: "pickerMomentChange", selectedChange: "selectedChange", userSelection: "userSelection", yearSelected: "yearSelected", monthSelected: "monthSelected" }, host: { properties: { "class.nxt-dt-calendar": "this.calendarClass" } }, ngImport: i0, template: "<div class=\"nxt-dt-calendar-control\">\r\n <!-- focus when keyboard tab (http://kizu.ru/en/blog/keyboard-only-focus/#x) -->\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows? 'visible': 'hidden'\"\r\n [disabled]=\"!prevButtonEnabled()\"\r\n [attr.aria-label]=\"prevButtonLabel\"\r\n (click)=\"previousClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Left\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path style=\"fill-rule: evenodd; clip-rule: evenodd;\"\r\n d=\"M96.633,125.369l95.053-94.533c7.101-7.055,7.101-18.492,0-25.546 c-7.1-7.054-18.613-7.054-25.714,0L58.989,111.689c-3.784,3.759-5.487,8.759-5.238,13.68c-0.249,4.922,1.454,9.921,5.238,13.681 l106.983,106.398c7.101,7.055,18.613,7.055,25.714,0c7.101-7.054,7.101-18.491,0-25.544L96.633,125.369z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n <div class=\"nxt-dt-calendar-control-content\">\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-period-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"periodButtonLabel\"\r\n (click)=\"toggleViews()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n {{periodButtonText}}\r\n\r\n <span class=\"nxt-dt-control-button-arrow\"\r\n [style.transform]=\"'rotate(' + (isMonthView? 0 : 180) +'deg)'\">\r\n <!-- <editor-fold desc=\"SVG Arrow\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n width=\"50%\"\r\n height=\"50%\"\r\n viewBox=\"0 0 292.362 292.362\"\r\n style=\"enable-background:new 0 0 292.362 292.362;\"\r\n xml:space=\"preserve\">\r\n <g>\r\n <path d=\"M286.935,69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952,0-9.233,1.807-12.85,5.424\r\n C1.807,72.998,0,77.279,0,82.228c0,4.948,1.807,9.229,5.424,12.847l127.907,127.907c3.621,3.617,7.902,5.428,12.85,5.428\r\n s9.233-1.811,12.847-5.428L286.935,95.074c3.613-3.617,5.427-7.898,5.427-12.847C292.362,77.279,290.548,72.998,286.935,69.377z\" />\r\n </g>\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </span>\r\n </button>\r\n </div>\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows? 'visible': 'hidden'\"\r\n [disabled]=\"!nextButtonEnabled()\"\r\n [attr.aria-label]=\"nextButtonLabel\"\r\n (click)=\"nextClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Right\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\">\r\n <path style=\"fill-rule:evenodd;clip-rule:evenodd;\"\r\n d=\"M191.75,111.689L84.766,5.291c-7.1-7.055-18.613-7.055-25.713,0\r\n c-7.101,7.054-7.101,18.49,0,25.544l95.053,94.534l-95.053,94.533c-7.101,7.054-7.101,18.491,0,25.545\r\n c7.1,7.054,18.613,7.054,25.713,0L191.75,139.05c3.784-3.759,5.487-8.759,5.238-13.681\r\n C197.237,120.447,195.534,115.448,191.75,111.689z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n</div>\r\n<div class=\"nxt-dt-calendar-main\"\r\n cdkMonitorSubtreeFocus\r\n [ngSwitch]=\"currentView\"\r\n tabindex=\"-1\">\r\n <nxt-date-time-month-view *ngSwitchCase=\"'month'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n [hideOtherMonths]=\"hideOtherMonths\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (selectedChange)=\"dateSelected($event)\"\r\n (userSelection)=\"userSelected()\"></nxt-date-time-month-view>\r\n\r\n <nxt-date-time-year-view *ngSwitchCase=\"'year'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (monthSelected)=\"selectMonthInYearView($event)\"\r\n (change)=\"goToDateInView($event, 'month')\"></nxt-date-time-year-view>\r\n\r\n <nxt-date-time-multi-year-view *ngSwitchCase=\"'multi-years'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (yearSelected)=\"selectYearInMultiYearView($event)\"\r\n (change)=\"goToDateInView($event, 'year')\"></nxt-date-time-multi-year-view>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: i5.MultiYearViewComponent, selector: "nxt-date-time-multi-year-view", inputs: ["selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["change", "yearSelected", "pickerMomentChange", "keyboardEnter"] }, { kind: "component", type: i6.YearViewComponent, selector: "nxt-date-time-year-view", inputs: ["selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["change", "monthSelected", "pickerMomentChange", "keyboardEnter"] }, { kind: "component", type: i7.MonthViewComponent, selector: "nxt-date-time-month-view", inputs: ["hideOtherMonths", "firstDayOfWeek", "selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["selectedChange", "userSelection", "pickerMomentChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
305
305
  }
306
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CalendarComponent, decorators: [{
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: CalendarComponent, decorators: [{
307
307
  type: Component,
308
308
  args: [{ selector: 'nxt-date-time-calendar', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"nxt-dt-calendar-control\">\r\n <!-- focus when keyboard tab (http://kizu.ru/en/blog/keyboard-only-focus/#x) -->\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows? 'visible': 'hidden'\"\r\n [disabled]=\"!prevButtonEnabled()\"\r\n [attr.aria-label]=\"prevButtonLabel\"\r\n (click)=\"previousClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Left\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path style=\"fill-rule: evenodd; clip-rule: evenodd;\"\r\n d=\"M96.633,125.369l95.053-94.533c7.101-7.055,7.101-18.492,0-25.546 c-7.1-7.054-18.613-7.054-25.714,0L58.989,111.689c-3.784,3.759-5.487,8.759-5.238,13.68c-0.249,4.922,1.454,9.921,5.238,13.681 l106.983,106.398c7.101,7.055,18.613,7.055,25.714,0c7.101-7.054,7.101-18.491,0-25.544L96.633,125.369z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n <div class=\"nxt-dt-calendar-control-content\">\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-period-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"periodButtonLabel\"\r\n (click)=\"toggleViews()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n {{periodButtonText}}\r\n\r\n <span class=\"nxt-dt-control-button-arrow\"\r\n [style.transform]=\"'rotate(' + (isMonthView? 0 : 180) +'deg)'\">\r\n <!-- <editor-fold desc=\"SVG Arrow\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n width=\"50%\"\r\n height=\"50%\"\r\n viewBox=\"0 0 292.362 292.362\"\r\n style=\"enable-background:new 0 0 292.362 292.362;\"\r\n xml:space=\"preserve\">\r\n <g>\r\n <path d=\"M286.935,69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952,0-9.233,1.807-12.85,5.424\r\n C1.807,72.998,0,77.279,0,82.228c0,4.948,1.807,9.229,5.424,12.847l127.907,127.907c3.621,3.617,7.902,5.428,12.85,5.428\r\n s9.233-1.811,12.847-5.428L286.935,95.074c3.613-3.617,5.427-7.898,5.427-12.847C292.362,77.279,290.548,72.998,286.935,69.377z\" />\r\n </g>\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </span>\r\n </button>\r\n </div>\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows? 'visible': 'hidden'\"\r\n [disabled]=\"!nextButtonEnabled()\"\r\n [attr.aria-label]=\"nextButtonLabel\"\r\n (click)=\"nextClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Right\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\">\r\n <path style=\"fill-rule:evenodd;clip-rule:evenodd;\"\r\n d=\"M191.75,111.689L84.766,5.291c-7.1-7.055-18.613-7.055-25.713,0\r\n c-7.101,7.054-7.101,18.49,0,25.544l95.053,94.534l-95.053,94.533c-7.101,7.054-7.101,18.491,0,25.545\r\n c7.1,7.054,18.613,7.054,25.713,0L191.75,139.05c3.784-3.759,5.487-8.759,5.238-13.681\r\n C197.237,120.447,195.534,115.448,191.75,111.689z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n</div>\r\n<div class=\"nxt-dt-calendar-main\"\r\n cdkMonitorSubtreeFocus\r\n [ngSwitch]=\"currentView\"\r\n tabindex=\"-1\">\r\n <nxt-date-time-month-view *ngSwitchCase=\"'month'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n [hideOtherMonths]=\"hideOtherMonths\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (selectedChange)=\"dateSelected($event)\"\r\n (userSelection)=\"userSelected()\"></nxt-date-time-month-view>\r\n\r\n <nxt-date-time-year-view *ngSwitchCase=\"'year'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (monthSelected)=\"selectMonthInYearView($event)\"\r\n (change)=\"goToDateInView($event, 'month')\"></nxt-date-time-year-view>\r\n\r\n <nxt-date-time-multi-year-view *ngSwitchCase=\"'multi-years'\"\r\n [pickerMoment]=\"pickerMoment\"\r\n [selected]=\"selected\"\r\n [selecteds]=\"selecteds\"\r\n [selectMode]=\"selectMode ?? 'single'\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [dateTimeFilter]=\"dateTimeFilter\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (yearSelected)=\"selectYearInMultiYearView($event)\"\r\n (change)=\"goToDateInView($event, 'year')\"></nxt-date-time-multi-year-view>\r\n</div>\r\n" }]
309
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DateTimeIntl }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i2.DateTimeAdapter }, { type: undefined, decorators: [{
309
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DateTimeIntl }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i2.DateTimeAdapter }, { type: undefined, decorators: [{
310
310
  type: Inject,
311
311
  args: [NXT_DATE_TIME_FORMATS]
312
- }] }]; }, propDecorators: { dateTimeFilter: [{
312
+ }] }], propDecorators: { dateTimeFilter: [{
313
313
  type: Input
314
314
  }], firstDayOfWeek: [{
315
315
  type: Input
@@ -343,4 +343,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
343
343
  type: HostBinding,
344
344
  args: ['class.nxt-dt-calendar']
345
345
  }] } });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGljay1kYXRldGltZS9zcmMvbGliL2RhdGUtdGltZS9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0MsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTZCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVsTixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckMsT0FBTyxFQUFtQixxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBOzs7Ozs7Ozs7QUFXM0YsTUFBTSxPQUFPLGlCQUFpQjtJQWUxQixJQUNJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEtBQW9CO1FBQ3hCLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUs7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFD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QUFHO3NCQUROLEtBQUs7Z0JBcUJGLEdBQUc7c0JBRE4sS0FBSztnQkFxQkYsWUFBWTtzQkFEZixLQUFLO2dCQVlOLFVBQVU7c0JBRFQsS0FBSztnQkFNRixRQUFRO3NCQURYLEtBQUs7Z0JBWUYsU0FBUztzQkFEWixLQUFLO2dCQWdCTixTQUFTO3NCQURSLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtHLGtCQUFrQjtzQkFEMUIsTUFBTTtnQkFLRSxjQUFjO3NCQUR0QixNQUFNO2dCQUtFLGFBQWE7c0JBRHJCLE1BQU07Z0JBU0UsWUFBWTtzQkFEcEIsTUFBTTtnQkFTRSxhQUFhO3NCQURyQixNQUFNO2dCQW9GSCxhQUFhO3NCQURoQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4uLy4uL2NsYXNzL2RhdGUtdGltZS1hZGFwdGVyLmNsYXNzJ1xyXG5pbXBvcnQgeyBEYXRlVGltZUZvcm1hdHMsIE5YVF9EQVRFX1RJTUVfRk9STUFUUyB9IGZyb20gJy4uLy4uL2NsYXNzL2RhdGUtdGltZS1mb3JtYXQuY2xhc3MnXHJcbmltcG9ydCB7IERhdGVGaWx0ZXIsIFNlbGVjdE1vZGUgfSBmcm9tICcuLi8uLi9jbGFzcy9kYXRlLXRpbWUuY2xhc3MnXHJcbmltcG9ydCB7IERhdGVUaW1lSW50bCB9IGZyb20gJy4uL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ254dC1kYXRlLXRpbWUtY2FsZW5kYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcclxuICAgIC8qKlxyXG4gICAgICogRGF0ZSBmaWx0ZXIgZm9yIHRoZSBtb250aCBhbmQgeWVhciB2aWV3XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkYXRlVGltZUZpbHRlcj86IERhdGVGaWx0ZXI8VD5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgZmlyc3QgZGF5IG9mIHdlZWtcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMFxyXG5cclxuICAgIC8qKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUgKi9cclxuICAgIHByaXZhdGUgX21pbkRhdGU/OiBUXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1pbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluRGF0ZVxyXG4gICAgfVxyXG5cclxuICAgIHNldCBtaW4odmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKVxyXG4gICAgICAgIHZhbHVlID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXHJcblxyXG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZVxyXG4gICAgICAgICAgICA/IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNyZWF0ZURhdGUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldERhdGUodmFsdWUpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXHJcbiAgICBwcml2YXRlIF9tYXhEYXRlPzogVFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtYXgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heERhdGVcclxuICAgIH1cclxuXHJcbiAgICBzZXQgbWF4KHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsaWREYXRlKHZhbHVlKVxyXG5cclxuICAgICAgICB0aGlzLl9tYXhEYXRlID0gdmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmRhdGVUaW1lQWRhcHRlci5jcmVhdGVEYXRlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih2YWx1ZSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNb250aCh2YWx1ZSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXREYXRlKHZhbHVlKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRoZSBjdXJyZW50IHBpY2tlciBtb21lbnQgKi9cclxuICAgIHByaXZhdGUgX3BpY2tlck1vbWVudD86IFRcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcGlja2VyTW9tZW50KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9waWNrZXJNb21lbnRcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGlja2VyTW9tZW50KHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcclxuICAgICAgICB0aGlzLl9waWNrZXJNb21lbnQgPVxyXG4gICAgICAgICAgICB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSkgfHwgdGhpcy5kYXRlVGltZUFkYXB0ZXIubm93KClcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2VsZWN0TW9kZT86IFNlbGVjdE1vZGVcclxuXHJcbiAgICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtb21lbnQgKi9cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkPzogVFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzZWxlY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKVxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRzID0gbmV3IEFycmF5PFQgfCB1bmRlZmluZWQ+KClcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2VsZWN0ZWRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZHNcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2VsZWN0ZWRzKHZhbHVlczogQXJyYXk8VCB8IHVuZGVmaW5lZD4pIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZHMgPSB2YWx1ZXMubWFwKHYgPT4ge1xyXG4gICAgICAgICAgICB2ID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodilcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlKHYpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2aWV3IHRoYXQgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBpblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc3RhcnRWaWV3OiAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXJzJyA9ICdtb250aCdcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdG8gaGlkZSBkYXRlcyBpbiBvdGhlciBtb250aHMgYXQgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgY3VycmVudCBtb250aFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGlkZU90aGVyTW9udGhzOiBib29sZWFuID0gZmFsc2VcclxuXHJcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY3VycmVudGx5IHBpY2tlciBtb21lbnQgY2hhbmdlcyAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICByZWFkb25seSBwaWNrZXJNb21lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KClcclxuXHJcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgY2hhbmdlcyAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICByZWFkb25seSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IHVuZGVmaW5lZD4oKVxyXG5cclxuICAgIC8qKiBFbWl0cyB3aGVuIGFueSBkYXRlIGlzIHNlbGVjdGVkICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHJlYWRvbmx5IHVzZXJTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXRzIHRoZSBzZWxlY3RlZCB5ZWFyXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHJlYWRvbmx5IHllYXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG1vbnRoXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHJlYWRvbmx5IG1vbnRoU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KClcclxuXHJcbiAgICBnZXQgcGVyaW9kQnV0dG9uVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9udGhWaWV3XHJcbiAgICAgICAgICAgID8gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5waWNrZXJNb21lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lRm9ybWF0cy5tb250aFllYXJMYWJlbFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5waWNrZXJNb21lbnQpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBlcmlvZEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb250aFZpZXdcclxuICAgICAgICAgICAgPyB0aGlzLnBpY2tlckludGwuc3dpdGNoVG9NdWx0aVllYXJWaWV3TGFiZWxcclxuICAgICAgICAgICAgOiB0aGlzLnBpY2tlckludGwuc3dpdGNoVG9Nb250aFZpZXdMYWJlbFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBwcmV2QnV0dG9uTGFiZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwucHJldk1vbnRoTGFiZWxcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAneWVhcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5wcmV2WWVhckxhYmVsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGdldCBuZXh0QnV0dG9uTGFiZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwubmV4dE1vbnRoTGFiZWxcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAneWVhcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5uZXh0WWVhckxhYmVsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2N1cnJlbnRWaWV3PzogJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFycydcclxuICAgIGdldCBjdXJyZW50VmlldygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZpZXdcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY3VycmVudFZpZXcodmlldzogJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFycycgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50VmlldyA9IHZpZXdcclxuICAgICAgICB0aGlzLm1vdmVGb2N1c09uTmV4dFRpY2sgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSW5TaW5nbGVNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSW5SYW5nZU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlRnJvbScgfHxcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2VUbydcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3dDb250cm9sQXJyb3dzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldyAhPT0gJ211bHRpLXllYXJzJ1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc01vbnRoVmlldygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZpZXcgPT09ICdtb250aCdcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgZmlsdGVyIGZvciB0aGUgbW9udGggYW5kIHllYXIgdmlld1xyXG4gICAgICovXHJcbiAgICBkYXRlVGltZUZpbHRlckZvclZpZXdzID0gKGRhdGU/OiBUKSA9PiAoXHJcbiAgICAgICAgISFkYXRlICYmXHJcbiAgICAgICAgKCF0aGlzLmRhdGVUaW1lRmlsdGVyIHx8IHRoaXMuZGF0ZVRpbWVGaWx0ZXIoZGF0ZSwgJ2RhdGUnKSkgJiZcclxuICAgICAgICAoIXRoaXMubWluIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUoZGF0ZSwgdGhpcy5taW4pID49IDApICYmXHJcbiAgICAgICAgKCF0aGlzLm1heCB8fFxyXG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKGRhdGUsIHRoaXMubWF4KSA8PSAwKVxyXG4gICAgKVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZCBjbGFzcyAnbnh0LWR0LWNhbGVuZGFyJyB0byBob3N0XHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mubnh0LWR0LWNhbGVuZGFyJylcclxuICAgIGdldCBjYWxlbmRhckNsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbnRsQ2hhbmdlc1N1Yj86IFN1YnNjcmlwdGlvblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCBmb3Igc2NoZWR1bGluZyB0aGF0IGZvY3VzIHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgYWN0aXZlIGNlbGwgb24gdGhlIG5leHQgdGljay5cclxuICAgICAqIFdlIG5lZWQgdG8gc2NoZWR1bGUgaXQsIHJhdGhlciB0aGFuIGRvIGl0IGltbWVkaWF0ZWx5LCBiZWNhdXNlIHdlIGhhdmUgdG8gd2FpdFxyXG4gICAgICogZm9yIEFuZ3VsYXIgdG8gcmUtZXZhbHVhdGUgdGhlIHZpZXcgY2hpbGRyZW4uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbW92ZUZvY3VzT25OZXh0VGljayA9IGZhbHNlXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbG1SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGlja2VySW50bDogRGF0ZVRpbWVJbnRsLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkYXRlVGltZUFkYXB0ZXI6IERhdGVUaW1lQWRhcHRlcjxUPixcclxuICAgICAgICBASW5qZWN0KE5YVF9EQVRFX1RJTUVfRk9STUFUUylcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmludGxDaGFuZ2VzU3ViID0gdGhpcy5waWNrZXJJbnRsLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZpZXcgPSB0aGlzLnN0YXJ0Vmlld1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5tb3ZlRm9jdXNPbk5leHRUaWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW92ZUZvY3VzT25OZXh0VGljayA9IGZhbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNBY3RpdmVDZWxsKClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnRsQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIHRoaXMuaW50bENoYW5nZXNTdWIgPSB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSBiZXR3ZWVuIG1vbnRoIHZpZXcgYW5kIHllYXIgdmlld1xyXG4gICAgICovXHJcbiAgICB0b2dnbGVWaWV3cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID1cclxuICAgICAgICAgICAgdGhpcy5fY3VycmVudFZpZXcgPT0gJ21vbnRoJyA/ICdtdWx0aS15ZWFycycgOiAnbW9udGgnXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBwcmV2aW91cyBidXR0b24uXHJcbiAgICAgKi9cclxuICAgIHByZXZpb3VzQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBpY2tlck1vbWVudCA9IHRoaXMuaXNNb250aFZpZXdcclxuICAgICAgICAgICAgPyB0aGlzLmRhdGVUaW1lQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLnBpY2tlck1vbWVudCwgLTEpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLnBpY2tlck1vbWVudCwgLTEpXHJcblxyXG4gICAgICAgIHRoaXMucGlja2VyTW9tZW50Q2hhbmdlLmVtaXQodGhpcy5waWNrZXJNb21lbnQpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBuZXh0IGJ1dHRvbi5cclxuICAgICAqL1xyXG4gICAgbmV4dENsaWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5waWNrZXJNb21lbnQgPSB0aGlzLmlzTW9udGhWaWV3XHJcbiAgICAgICAgICAgID8gdGhpcy5kYXRlVGltZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5waWNrZXJNb21lbnQsIDEpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLnBpY2tlck1vbWVudCwgMSlcclxuXHJcbiAgICAgICAgdGhpcy5waWNrZXJNb21lbnRDaGFuZ2UuZW1pdCh0aGlzLnBpY2tlck1vbWVudClcclxuICAgIH1cclxuXHJcbiAgICBkYXRlU2VsZWN0ZWQoZGF0ZT86IFQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0ZVRpbWVGaWx0ZXJGb3JWaWV3cyhkYXRlKSkge1xyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChkYXRlKVxyXG5cclxuICAgICAgICAvKmlmICgodGhpcy5pc0luU2luZ2xlTW9kZSAmJiAhdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNTYW1lRGF5KGRhdGUsIHRoaXMuc2VsZWN0ZWQpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmlzSW5SYW5nZU1vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KGRhdGUpO1xyXG4gICAgICAgIH0qL1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlIHRoZSBwaWNrZXJNb21lbnQgdmFsdWUgYW5kIHN3aXRjaCB0byBhIHNwZWNpZmljIHZpZXdcclxuICAgICAqL1xyXG4gICAgZ29Ub0RhdGVJblZpZXcoXHJcbiAgICAgICAgZGF0ZTogVCxcclxuICAgICAgICB2aWV3OiAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXJzJ1xyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVQaWNrZXJNb21lbnRDaGFuZ2UoZGF0ZSlcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlld1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlIHRoZSBwaWNrZXJNb21lbnQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgaGFuZGxlUGlja2VyTW9tZW50Q2hhbmdlKGRhdGU6IFQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBpY2tlck1vbWVudCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNsYW1wRGF0ZShcclxuICAgICAgICAgICAgZGF0ZSxcclxuICAgICAgICAgICAgdGhpcy5taW4sXHJcbiAgICAgICAgICAgIHRoaXMubWF4XHJcbiAgICAgICAgKVxyXG4gICAgICAgIHRoaXMucGlja2VyTW9tZW50Q2hhbmdlLmVtaXQodGhpcy5waWNrZXJNb21lbnQpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgdXNlclNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXNlclNlbGVjdGlvbi5lbWl0KClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIHByZXZpb3VzIHBlcmlvZCBidXR0b24gaXMgZW5hYmxlZC5cclxuICAgICAqL1xyXG4gICAgcHJldkJ1dHRvbkVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgIXRoaXMubWluIHx8ICF0aGlzLmlzU2FtZVZpZXcodGhpcy5waWNrZXJNb21lbnQsIHRoaXMubWluKVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIG5leHQgcGVyaW9kIGJ1dHRvbiBpcyBlbmFibGVkLlxyXG4gICAgICovXHJcbiAgICBuZXh0QnV0dG9uRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5tYXggfHwgIXRoaXMuaXNTYW1lVmlldyh0aGlzLnBpY2tlck1vbWVudCwgdGhpcy5tYXgpXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9jdXMgdG8gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBmb2N1c0FjdGl2ZUNlbGwoKSB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5vblN0YWJsZVxyXG4gICAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbG1SZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubnh0LWR0LWNhbGVuZGFyLWNlbGwtYWN0aXZlJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgPy5mb2N1cygpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0WWVhckluTXVsdGlZZWFyVmlldyhub3JtYWxpemVkWWVhcjogVCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMueWVhclNlbGVjdGVkLmVtaXQobm9ybWFsaXplZFllYXIpXHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0TW9udGhJblllYXJWaWV3KG5vcm1hbGl6ZWRNb250aDogVCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubW9udGhTZWxlY3RlZC5lbWl0KG5vcm1hbGl6ZWRNb250aClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIHR3byBkYXRlcyByZXByZXNlbnQgdGhlIHNhbWUgdmlldyBpbiB0aGUgY3VycmVudCB2aWV3IG1vZGUgKG1vbnRoIG9yIHllYXIpLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlzU2FtZVZpZXcoZGF0ZTE/OiBULCBkYXRlMj86IFQpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5fY3VycmVudFZpZXcgPT09ICdtb250aCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhKFxyXG4gICAgICAgICAgICAgICAgZGF0ZTEgJiZcclxuICAgICAgICAgICAgICAgIGRhdGUyICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRZZWFyKGRhdGUxKSA9PT1cclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoZGF0ZTIpICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNb250aChkYXRlMSkgPT09XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNb250aChkYXRlMilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fY3VycmVudFZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gISEoXHJcbiAgICAgICAgICAgICAgICBkYXRlMSAmJlxyXG4gICAgICAgICAgICAgICAgZGF0ZTIgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoZGF0ZTEpID09PVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcihkYXRlMilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhIHZhbGlkIGRhdGUgb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0VmFsaWREYXRlKG9iajogYW55KTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKG9iaikgJiZcclxuICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChvYmopXHJcbiAgICAgICAgICAgID8gb2JqXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm54dC1kdC1jYWxlbmRhci1jb250cm9sXCI+XHJcbiAgICA8IS0tIGZvY3VzIHdoZW4ga2V5Ym9hcmQgdGFiIChodHRwOi8va2l6dS5ydS9lbi9ibG9nL2tleWJvYXJkLW9ubHktZm9jdXMvI3gpIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm54dC1kdC1jb250cm9sIG54dC1kdC1jb250cm9sLWJ1dHRvbiBueHQtZHQtY29udHJvbC1hcnJvdy1idXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0NvbnRyb2xBcnJvd3M/ICd2aXNpYmxlJzogJ2hpZGRlbidcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhcHJldkJ1dHRvbkVuYWJsZWQoKVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2QnV0dG9uTGFiZWxcIlxyXG4gICAgICAgIChjbGljayk9XCJwcmV2aW91c0NsaWNrZWQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibnh0LWR0LWNvbnRyb2wtY29udGVudCBueHQtZHQtY29udHJvbC1idXR0b24tY29udGVudFwiXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cclxuICAgICAgICAgICAgPCEtLSA8ZWRpdG9yLWZvbGQgZGVzYz1cIlNWRyBBcnJvdyBMZWZ0XCI+IC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcclxuICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjUwLjczOCAyNTAuNzM4XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAuNzM4IDI1MC43Mzg7XCJcclxuICAgICAgICAgICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGwtcnVsZTogZXZlbm9kZDsgY2xpcC1ydWxlOiBldmVub2RkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk05Ni42MzMsMTI1LjM2OWw5NS4wNTMtOTQuNTMzYzcuMTAxLTcuMDU1LDcuMTAxLTE4LjQ5MiwwLTI1LjU0NiAgIGMtNy4xLTcuMDU0LTE4LjYxMy03LjA1NC0yNS43MTQsMEw1OC45ODksMTExLjY4OWMtMy43ODQsMy43NTktNS40ODcsOC43NTktNS4yMzgsMTMuNjhjLTAuMjQ5LDQuOTIyLDEuNDU0LDkuOTIxLDUuMjM4LDEzLjY4MSAgIGwxMDYuOTgzLDEwNi4zOThjNy4xMDEsNy4wNTUsMTguNjEzLDcuMDU1LDI1LjcxNCwwYzcuMTAxLTcuMDU0LDcuMTAxLTE4LjQ5MSwwLTI1LjU0NEw5Ni42MzMsMTI1LjM2OXpcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPCEtLSA8L2VkaXRvci1mb2xkPiAtLT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJueHQtZHQtY2FsZW5kYXItY29udHJvbC1jb250ZW50XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm54dC1kdC1jb250cm9sIG54dC1kdC1jb250cm9sLWJ1dHRvbiBueHQtZHQtY29udHJvbC1wZXJpb2QtYnV0dG9uXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGVyaW9kQnV0dG9uTGFiZWxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVmlld3MoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm54dC1kdC1jb250cm9sLWNvbnRlbnQgbnh0LWR0LWNvbnRyb2wtYnV0dG9uLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICAgICAgICAgICAge3twZXJpb2RCdXR0b25UZXh0fX1cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm54dC1kdC1jb250cm9sLWJ1dHRvbi1hcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCIncm90YXRlKCcgKyAoaXNNb250aFZpZXc/IDAgOiAxODApICsnZGVnKSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxlZGl0b3ItZm9sZCBkZXNjPVwiU1ZHIEFycm93XCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNTAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyOTIuMzYyIDI5Mi4zNjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjkyLjM2MiAyOTIuMzYyO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yODYuOTM1LDY5LjM3N2MtMy42MTQtMy42MTctNy44OTgtNS40MjQtMTIuODQ4LTUuNDI0SDE4LjI3NGMtNC45NTIsMC05LjIzMywxLjgwNy0xMi44NSw1LjQyNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMxLjgwNyw3Mi45OTgsMCw3Ny4yNzksMCw4Mi4yMjhjMCw0Ljk0OCwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDdsMTI3LjkwNywxMjcuOTA3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczkuMjMzLTEuODExLDEyLjg0Ny01LjQyOEwyODYuOTM1LDk1LjA3NGMzLjYxMy0zLjYxNyw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDdDMjkyLjM2Miw3Ny4yNzksMjkwLjU0OCw3Mi45OTgsMjg2LjkzNSw2OS4zNzd6XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPC9lZGl0b3ItZm9sZD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm54dC1kdC1jb250cm9sIG54dC1kdC1jb250cm9sLWJ1dHRvbiBueHQtZHQtY29udHJvbC1hcnJvdy1idXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0NvbnRyb2xBcnJvd3M/ICd2aXNpYmxlJzogJ2hpZGRlbidcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhbmV4dEJ1dHRvbkVuYWJsZWQoKVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXh0QnV0dG9uTGFiZWxcIlxyXG4gICAgICAgIChjbGljayk9XCJuZXh0Q2xpY2tlZCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJueHQtZHQtY29udHJvbC1jb250ZW50IG54dC1kdC1jb250cm9sLWJ1dHRvbi1jb250ZW50XCJcclxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxlZGl0b3ItZm9sZCBkZXNjPVwiU1ZHIEFycm93IFJpZ2h0XCI+IC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjUwLjczOCAyNTAuNzM4XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAuNzM4IDI1MC43Mzg7XCJcclxuICAgICAgICAgICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xOTEuNzUsMTExLjY4OUw4NC43NjYsNS4yOTFjLTcuMS03LjA1NS0xOC42MTMtNy4wNTUtMjUuNzEzLDBcclxuICAgICAgICAgICAgICAgICAgICBjLTcuMTAxLDcuMDU0LTcuMTAxLDE4LjQ5LDAsMjUuNTQ0bDk1LjA1Myw5NC41MzRsLTk1LjA1Myw5NC41MzNjLTcuMTAxLDcuMDU0LTcuMTAxLDE4LjQ5MSwwLDI1LjU0NVxyXG4gICAgICAgICAgICAgICAgICAgIGM3LjEsNy4wNTQsMTguNjEzLDcuMDU0LDI1LjcxMywwTDE5MS43NSwxMzkuMDVjMy43ODQtMy43NTksNS40ODctOC43NTksNS4yMzgtMTMuNjgxXHJcbiAgICAgICAgICAgICAgICAgICAgQzE5Ny4yMzcsMTIwLjQ0NywxOTUuNTM0LDExNS40NDgsMTkxLjc1LDExMS42ODl6XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwhLS0gPC9lZGl0b3ItZm9sZD4gLS0+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibnh0LWR0LWNhbGVuZGFyLW1haW5cIlxyXG4gICAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xyXG4gICAgW25nU3dpdGNoXT1cImN1cnJlbnRWaWV3XCJcclxuICAgIHRhYmluZGV4PVwiLTFcIj5cclxuICAgIDxueHQtZGF0ZS10aW1lLW1vbnRoLXZpZXcgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIlxyXG4gICAgICAgIFtwaWNrZXJNb21lbnRdPVwicGlja2VyTW9tZW50XCJcclxuICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxyXG4gICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgW3NlbGVjdGVkc109XCJzZWxlY3RlZHNcIlxyXG4gICAgICAgIFtzZWxlY3RNb2RlXT1cInNlbGVjdE1vZGUgPz8gJ3NpbmdsZSdcIlxyXG4gICAgICAgIFttaW5dPVwibWluXCJcclxuICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgW2RhdGVUaW1lRmlsdGVyXT1cImRhdGVUaW1lRmlsdGVyXCJcclxuICAgICAgICBbaGlkZU90aGVyTW9udGhzXT1cImhpZGVPdGhlck1vbnRoc1wiXHJcbiAgICAgICAgKHBpY2tlck1vbWVudENoYW5nZSk9XCJoYW5kbGVQaWNrZXJNb21lbnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAodXNlclNlbGVjdGlvbik9XCJ1c2VyU2VsZWN0ZWQoKVwiPjwvbnh0LWRhdGUtdGltZS1tb250aC12aWV3PlxyXG5cclxuICAgIDxueHQtZGF0ZS10aW1lLXllYXItdmlldyAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCJcclxuICAgICAgICBbcGlja2VyTW9tZW50XT1cInBpY2tlck1vbWVudFwiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuICAgICAgICBbc2VsZWN0ZWRzXT1cInNlbGVjdGVkc1wiXHJcbiAgICAgICAgW3NlbGVjdE1vZGVdPVwic2VsZWN0TW9kZSA/PyAnc2luZ2xlJ1wiXHJcbiAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgICBbZGF0ZVRpbWVGaWx0ZXJdPVwiZGF0ZVRpbWVGaWx0ZXJcIlxyXG4gICAgICAgIChrZXlib2FyZEVudGVyKT1cImZvY3VzQWN0aXZlQ2VsbCgpXCJcclxuICAgICAgICAocGlja2VyTW9tZW50Q2hhbmdlKT1cImhhbmRsZVBpY2tlck1vbWVudENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZWxlY3RNb250aEluWWVhclZpZXcoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJnb1RvRGF0ZUluVmlldygkZXZlbnQsICdtb250aCcpXCI+PC9ueHQtZGF0ZS10aW1lLXllYXItdmlldz5cclxuXHJcbiAgICA8bnh0LWRhdGUtdGltZS1tdWx0aS15ZWFyLXZpZXcgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS15ZWFycydcIlxyXG4gICAgICAgIFtwaWNrZXJNb21lbnRdPVwicGlja2VyTW9tZW50XCJcclxuICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgIFtzZWxlY3RlZHNdPVwic2VsZWN0ZWRzXCJcclxuICAgICAgICBbc2VsZWN0TW9kZV09XCJzZWxlY3RNb2RlID8/ICdzaW5nbGUnXCJcclxuICAgICAgICBbbWluXT1cIm1pblwiXHJcbiAgICAgICAgW21heF09XCJtYXhcIlxyXG4gICAgICAgIFtkYXRlVGltZUZpbHRlcl09XCJkYXRlVGltZUZpbHRlclwiXHJcbiAgICAgICAgKGtleWJvYXJkRW50ZXIpPVwiZm9jdXNBY3RpdmVDZWxsKClcIlxyXG4gICAgICAgIChwaWNrZXJNb21lbnRDaGFuZ2UpPVwiaGFuZGxlUGlja2VyTW9tZW50Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwic2VsZWN0WWVhckluTXVsdGlZZWFyVmlldygkZXZlbnQpXCJcclxuICAgICAgICAoY2hhbmdlKT1cImdvVG9EYXRlSW5WaWV3KCRldmVudCwgJ3llYXInKVwiPjwvbnh0LWRhdGUtdGltZS1tdWx0aS15ZWFyLXZpZXc+XHJcbjwvZGl2PlxyXG4iXX0=
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGljay1kYXRldGltZS9zcmMvbGliL2RhdGUtdGltZS9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0MsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTZCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVsTixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckMsT0FBTyxFQUFtQixxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBOzs7Ozs7Ozs7QUFXM0YsTUFBTSxPQUFPLGlCQUFpQjtJQWUxQixJQUNJLEdBQUc7UUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEtBQW9CO1FBQ3hCLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUs7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFD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QUFHO3NCQUROLEtBQUs7Z0JBcUJGLEdBQUc7c0JBRE4sS0FBSztnQkFxQkYsWUFBWTtzQkFEZixLQUFLO2dCQVlOLFVBQVU7c0JBRFQsS0FBSztnQkFNRixRQUFRO3NCQURYLEtBQUs7Z0JBWUYsU0FBUztzQkFEWixLQUFLO2dCQWdCTixTQUFTO3NCQURSLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtHLGtCQUFrQjtzQkFEMUIsTUFBTTtnQkFLRSxjQUFjO3NCQUR0QixNQUFNO2dCQUtFLGFBQWE7c0JBRHJCLE1BQU07Z0JBU0UsWUFBWTtzQkFEcEIsTUFBTTtnQkFTRSxhQUFhO3NCQURyQixNQUFNO2dCQW9GSCxhQUFhO3NCQURoQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IERhdGVUaW1lQWRhcHRlciB9IGZyb20gJy4uLy4uL2NsYXNzL2RhdGUtdGltZS1hZGFwdGVyLmNsYXNzJ1xyXG5pbXBvcnQgeyBEYXRlVGltZUZvcm1hdHMsIE5YVF9EQVRFX1RJTUVfRk9STUFUUyB9IGZyb20gJy4uLy4uL2NsYXNzL2RhdGUtdGltZS1mb3JtYXQuY2xhc3MnXHJcbmltcG9ydCB7IERhdGVGaWx0ZXIsIFNlbGVjdE1vZGUgfSBmcm9tICcuLi8uLi9jbGFzcy9kYXRlLXRpbWUuY2xhc3MnXHJcbmltcG9ydCB7IERhdGVUaW1lSW50bCB9IGZyb20gJy4uL2RhdGUtdGltZS1waWNrZXItaW50bC5zZXJ2aWNlJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ254dC1kYXRlLXRpbWUtY2FsZW5kYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcclxuICAgIC8qKlxyXG4gICAgICogRGF0ZSBmaWx0ZXIgZm9yIHRoZSBtb250aCBhbmQgeWVhciB2aWV3XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkYXRlVGltZUZpbHRlcj86IERhdGVGaWx0ZXI8VD5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgZmlyc3QgZGF5IG9mIHdlZWtcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGZpcnN0RGF5T2ZXZWVrID0gMFxyXG5cclxuICAgIC8qKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUgKi9cclxuICAgIHByaXZhdGUgX21pbkRhdGU/OiBUXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1pbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWluRGF0ZVxyXG4gICAgfVxyXG5cclxuICAgIHNldCBtaW4odmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKVxyXG4gICAgICAgIHZhbHVlID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXHJcblxyXG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB2YWx1ZVxyXG4gICAgICAgICAgICA/IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNyZWF0ZURhdGUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldERhdGUodmFsdWUpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlICovXHJcbiAgICBwcml2YXRlIF9tYXhEYXRlPzogVFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtYXgoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heERhdGVcclxuICAgIH1cclxuXHJcbiAgICBzZXQgbWF4KHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZ2V0VmFsaWREYXRlKHZhbHVlKVxyXG5cclxuICAgICAgICB0aGlzLl9tYXhEYXRlID0gdmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmRhdGVUaW1lQWRhcHRlci5jcmVhdGVEYXRlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih2YWx1ZSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNb250aCh2YWx1ZSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXREYXRlKHZhbHVlKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRoZSBjdXJyZW50IHBpY2tlciBtb21lbnQgKi9cclxuICAgIHByaXZhdGUgX3BpY2tlck1vbWVudD86IFRcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcGlja2VyTW9tZW50KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9waWNrZXJNb21lbnRcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGlja2VyTW9tZW50KHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVUaW1lQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcclxuICAgICAgICB0aGlzLl9waWNrZXJNb21lbnQgPVxyXG4gICAgICAgICAgICB0aGlzLmdldFZhbGlkRGF0ZSh2YWx1ZSkgfHwgdGhpcy5kYXRlVGltZUFkYXB0ZXIubm93KClcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2VsZWN0TW9kZT86IFNlbGVjdE1vZGVcclxuXHJcbiAgICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtb21lbnQgKi9cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkPzogVFxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzZWxlY3RlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKVxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdGhpcy5nZXRWYWxpZERhdGUodmFsdWUpXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRzID0gbmV3IEFycmF5PFQgfCB1bmRlZmluZWQ+KClcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2VsZWN0ZWRzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZHNcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2VsZWN0ZWRzKHZhbHVlczogQXJyYXk8VCB8IHVuZGVmaW5lZD4pIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZHMgPSB2YWx1ZXMubWFwKHYgPT4ge1xyXG4gICAgICAgICAgICB2ID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZGVzZXJpYWxpemUodilcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlKHYpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2aWV3IHRoYXQgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBpblxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc3RhcnRWaWV3OiAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXJzJyA9ICdtb250aCdcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdG8gaGlkZSBkYXRlcyBpbiBvdGhlciBtb250aHMgYXQgdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgY3VycmVudCBtb250aFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGlkZU90aGVyTW9udGhzOiBib29sZWFuID0gZmFsc2VcclxuXHJcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY3VycmVudGx5IHBpY2tlciBtb21lbnQgY2hhbmdlcyAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICByZWFkb25seSBwaWNrZXJNb21lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KClcclxuXHJcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgY2hhbmdlcyAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICByZWFkb25seSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IHVuZGVmaW5lZD4oKVxyXG5cclxuICAgIC8qKiBFbWl0cyB3aGVuIGFueSBkYXRlIGlzIHNlbGVjdGVkICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHJlYWRvbmx5IHVzZXJTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXRzIHRoZSBzZWxlY3RlZCB5ZWFyXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHJlYWRvbmx5IHllYXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG1vbnRoXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBkb2Vzbid0IGltcGx5IGEgY2hhbmdlIG9uIHRoZSBzZWxlY3RlZCBkYXRlLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHJlYWRvbmx5IG1vbnRoU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KClcclxuXHJcbiAgICBnZXQgcGVyaW9kQnV0dG9uVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzTW9udGhWaWV3XHJcbiAgICAgICAgICAgID8gdGhpcy5kYXRlVGltZUFkYXB0ZXIuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5waWNrZXJNb21lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lRm9ybWF0cy5tb250aFllYXJMYWJlbFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5waWNrZXJNb21lbnQpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBlcmlvZEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb250aFZpZXdcclxuICAgICAgICAgICAgPyB0aGlzLnBpY2tlckludGwuc3dpdGNoVG9NdWx0aVllYXJWaWV3TGFiZWxcclxuICAgICAgICAgICAgOiB0aGlzLnBpY2tlckludGwuc3dpdGNoVG9Nb250aFZpZXdMYWJlbFxyXG4gICAgfVxyXG5cclxuICAgIGdldCBwcmV2QnV0dG9uTGFiZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwucHJldk1vbnRoTGFiZWxcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAneWVhcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5wcmV2WWVhckxhYmVsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGdldCBuZXh0QnV0dG9uTGFiZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBpY2tlckludGwubmV4dE1vbnRoTGFiZWxcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2N1cnJlbnRWaWV3ID09PSAneWVhcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGlja2VySW50bC5uZXh0WWVhckxhYmVsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2N1cnJlbnRWaWV3PzogJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFycydcclxuICAgIGdldCBjdXJyZW50VmlldygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZpZXdcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY3VycmVudFZpZXcodmlldzogJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFycycgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50VmlldyA9IHZpZXdcclxuICAgICAgICB0aGlzLm1vdmVGb2N1c09uTmV4dFRpY2sgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSW5TaW5nbGVNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdE1vZGUgPT09ICdzaW5nbGUnXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSW5SYW5nZU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2UnIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3JhbmdlRnJvbScgfHxcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2VUbydcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNob3dDb250cm9sQXJyb3dzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldyAhPT0gJ211bHRpLXllYXJzJ1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc01vbnRoVmlldygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFZpZXcgPT09ICdtb250aCdcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgZmlsdGVyIGZvciB0aGUgbW9udGggYW5kIHllYXIgdmlld1xyXG4gICAgICovXHJcbiAgICBkYXRlVGltZUZpbHRlckZvclZpZXdzID0gKGRhdGU/OiBUKSA9PiAoXHJcbiAgICAgICAgISFkYXRlICYmXHJcbiAgICAgICAgKCF0aGlzLmRhdGVUaW1lRmlsdGVyIHx8IHRoaXMuZGF0ZVRpbWVGaWx0ZXIoZGF0ZSwgJ2RhdGUnKSkgJiZcclxuICAgICAgICAoIXRoaXMubWluIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNvbXBhcmUoZGF0ZSwgdGhpcy5taW4pID49IDApICYmXHJcbiAgICAgICAgKCF0aGlzLm1heCB8fFxyXG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5jb21wYXJlKGRhdGUsIHRoaXMubWF4KSA8PSAwKVxyXG4gICAgKVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZCBjbGFzcyAnbnh0LWR0LWNhbGVuZGFyJyB0byBob3N0XHJcbiAgICAgKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Mubnh0LWR0LWNhbGVuZGFyJylcclxuICAgIGdldCBjYWxlbmRhckNsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbnRsQ2hhbmdlc1N1Yj86IFN1YnNjcmlwdGlvblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCBmb3Igc2NoZWR1bGluZyB0aGF0IGZvY3VzIHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgYWN0aXZlIGNlbGwgb24gdGhlIG5leHQgdGljay5cclxuICAgICAqIFdlIG5lZWQgdG8gc2NoZWR1bGUgaXQsIHJhdGhlciB0aGFuIGRvIGl0IGltbWVkaWF0ZWx5LCBiZWNhdXNlIHdlIGhhdmUgdG8gd2FpdFxyXG4gICAgICogZm9yIEFuZ3VsYXIgdG8gcmUtZXZhbHVhdGUgdGhlIHZpZXcgY2hpbGRyZW4uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbW92ZUZvY3VzT25OZXh0VGljayA9IGZhbHNlXHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbG1SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGlja2VySW50bDogRGF0ZVRpbWVJbnRsLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkYXRlVGltZUFkYXB0ZXI6IERhdGVUaW1lQWRhcHRlcjxUPixcclxuICAgICAgICBASW5qZWN0KE5YVF9EQVRFX1RJTUVfRk9STUFUUylcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmludGxDaGFuZ2VzU3ViID0gdGhpcy5waWNrZXJJbnRsLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFZpZXcgPSB0aGlzLnN0YXJ0Vmlld1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5tb3ZlRm9jdXNPbk5leHRUaWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW92ZUZvY3VzT25OZXh0VGljayA9IGZhbHNlXHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNBY3RpdmVDZWxsKClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnRsQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIHRoaXMuaW50bENoYW5nZXNTdWIgPSB1bmRlZmluZWRcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSBiZXR3ZWVuIG1vbnRoIHZpZXcgYW5kIHllYXIgdmlld1xyXG4gICAgICovXHJcbiAgICB0b2dnbGVWaWV3cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID1cclxuICAgICAgICAgICAgdGhpcy5fY3VycmVudFZpZXcgPT0gJ21vbnRoJyA/ICdtdWx0aS15ZWFycycgOiAnbW9udGgnXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBwcmV2aW91cyBidXR0b24uXHJcbiAgICAgKi9cclxuICAgIHByZXZpb3VzQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBpY2tlck1vbWVudCA9IHRoaXMuaXNNb250aFZpZXdcclxuICAgICAgICAgICAgPyB0aGlzLmRhdGVUaW1lQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLnBpY2tlck1vbWVudCwgLTEpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLnBpY2tlck1vbWVudCwgLTEpXHJcblxyXG4gICAgICAgIHRoaXMucGlja2VyTW9tZW50Q2hhbmdlLmVtaXQodGhpcy5waWNrZXJNb21lbnQpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHVzZXIgY2xpY2tzIG9uIHRoZSBuZXh0IGJ1dHRvbi5cclxuICAgICAqL1xyXG4gICAgbmV4dENsaWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5waWNrZXJNb21lbnQgPSB0aGlzLmlzTW9udGhWaWV3XHJcbiAgICAgICAgICAgID8gdGhpcy5kYXRlVGltZUFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5waWNrZXJNb21lbnQsIDEpXHJcbiAgICAgICAgICAgIDogdGhpcy5kYXRlVGltZUFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyh0aGlzLnBpY2tlck1vbWVudCwgMSlcclxuXHJcbiAgICAgICAgdGhpcy5waWNrZXJNb21lbnRDaGFuZ2UuZW1pdCh0aGlzLnBpY2tlck1vbWVudClcclxuICAgIH1cclxuXHJcbiAgICBkYXRlU2VsZWN0ZWQoZGF0ZT86IFQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0ZVRpbWVGaWx0ZXJGb3JWaWV3cyhkYXRlKSkge1xyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChkYXRlKVxyXG5cclxuICAgICAgICAvKmlmICgodGhpcy5pc0luU2luZ2xlTW9kZSAmJiAhdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNTYW1lRGF5KGRhdGUsIHRoaXMuc2VsZWN0ZWQpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmlzSW5SYW5nZU1vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KGRhdGUpO1xyXG4gICAgICAgIH0qL1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlIHRoZSBwaWNrZXJNb21lbnQgdmFsdWUgYW5kIHN3aXRjaCB0byBhIHNwZWNpZmljIHZpZXdcclxuICAgICAqL1xyXG4gICAgZ29Ub0RhdGVJblZpZXcoXHJcbiAgICAgICAgZGF0ZTogVCxcclxuICAgICAgICB2aWV3OiAnbW9udGgnIHwgJ3llYXInIHwgJ211bHRpLXllYXJzJ1xyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVQaWNrZXJNb21lbnRDaGFuZ2UoZGF0ZSlcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gdmlld1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlIHRoZSBwaWNrZXJNb21lbnQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgaGFuZGxlUGlja2VyTW9tZW50Q2hhbmdlKGRhdGU6IFQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBpY2tlck1vbWVudCA9IHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmNsYW1wRGF0ZShcclxuICAgICAgICAgICAgZGF0ZSxcclxuICAgICAgICAgICAgdGhpcy5taW4sXHJcbiAgICAgICAgICAgIHRoaXMubWF4XHJcbiAgICAgICAgKVxyXG4gICAgICAgIHRoaXMucGlja2VyTW9tZW50Q2hhbmdlLmVtaXQodGhpcy5waWNrZXJNb21lbnQpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgdXNlclNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXNlclNlbGVjdGlvbi5lbWl0KClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIHByZXZpb3VzIHBlcmlvZCBidXR0b24gaXMgZW5hYmxlZC5cclxuICAgICAqL1xyXG4gICAgcHJldkJ1dHRvbkVuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgIXRoaXMubWluIHx8ICF0aGlzLmlzU2FtZVZpZXcodGhpcy5waWNrZXJNb21lbnQsIHRoaXMubWluKVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIG5leHQgcGVyaW9kIGJ1dHRvbiBpcyBlbmFibGVkLlxyXG4gICAgICovXHJcbiAgICBuZXh0QnV0dG9uRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5tYXggfHwgIXRoaXMuaXNTYW1lVmlldyh0aGlzLnBpY2tlck1vbWVudCwgdGhpcy5tYXgpXHJcbiAgICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9jdXMgdG8gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBmb2N1c0FjdGl2ZUNlbGwoKSB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5vblN0YWJsZVxyXG4gICAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbG1SZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcubnh0LWR0LWNhbGVuZGFyLWNlbGwtYWN0aXZlJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgPy5mb2N1cygpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0WWVhckluTXVsdGlZZWFyVmlldyhub3JtYWxpemVkWWVhcjogVCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMueWVhclNlbGVjdGVkLmVtaXQobm9ybWFsaXplZFllYXIpXHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0TW9udGhJblllYXJWaWV3KG5vcm1hbGl6ZWRNb250aDogVCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubW9udGhTZWxlY3RlZC5lbWl0KG5vcm1hbGl6ZWRNb250aClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIHR3byBkYXRlcyByZXByZXNlbnQgdGhlIHNhbWUgdmlldyBpbiB0aGUgY3VycmVudCB2aWV3IG1vZGUgKG1vbnRoIG9yIHllYXIpLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlzU2FtZVZpZXcoZGF0ZTE/OiBULCBkYXRlMj86IFQpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5fY3VycmVudFZpZXcgPT09ICdtb250aCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhKFxyXG4gICAgICAgICAgICAgICAgZGF0ZTEgJiZcclxuICAgICAgICAgICAgICAgIGRhdGUyICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRZZWFyKGRhdGUxKSA9PT1cclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoZGF0ZTIpICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNb250aChkYXRlMSkgPT09XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVUaW1lQWRhcHRlci5nZXRNb250aChkYXRlMilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fY3VycmVudFZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gISEoXHJcbiAgICAgICAgICAgICAgICBkYXRlMSAmJlxyXG4gICAgICAgICAgICAgICAgZGF0ZTIgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoZGF0ZTEpID09PVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcihkYXRlMilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhIHZhbGlkIGRhdGUgb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0VmFsaWREYXRlKG9iajogYW55KTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVRpbWVBZGFwdGVyLmlzRGF0ZUluc3RhbmNlKG9iaikgJiZcclxuICAgICAgICAgICAgdGhpcy5kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChvYmopXHJcbiAgICAgICAgICAgID8gb2JqXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkXHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm54dC1kdC1jYWxlbmRhci1jb250cm9sXCI+XHJcbiAgICA8IS0tIGZvY3VzIHdoZW4ga2V5Ym9hcmQgdGFiIChodHRwOi8va2l6dS5ydS9lbi9ibG9nL2tleWJvYXJkLW9ubHktZm9jdXMvI3gpIC0tPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm54dC1kdC1jb250cm9sIG54dC1kdC1jb250cm9sLWJ1dHRvbiBueHQtZHQtY29udHJvbC1hcnJvdy1idXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0NvbnRyb2xBcnJvd3M/ICd2aXNpYmxlJzogJ2hpZGRlbidcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhcHJldkJ1dHRvbkVuYWJsZWQoKVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2QnV0dG9uTGFiZWxcIlxyXG4gICAgICAgIChjbGljayk9XCJwcmV2aW91c0NsaWNrZWQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibnh0LWR0LWNvbnRyb2wtY29udGVudCBueHQtZHQtY29udHJvbC1idXR0b24tY29udGVudFwiXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cclxuICAgICAgICAgICAgPCEtLSA8ZWRpdG9yLWZvbGQgZGVzYz1cIlNWRyBBcnJvdyBMZWZ0XCI+IC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcclxuICAgICAgICAgICAgICAgIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjUwLjczOCAyNTAuNzM4XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAuNzM4IDI1MC43Mzg7XCJcclxuICAgICAgICAgICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGwtcnVsZTogZXZlbm9kZDsgY2xpcC1ydWxlOiBldmVub2RkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk05Ni42MzMsMTI1LjM2OWw5NS4wNTMtOTQuNTMzYzcuMTAxLTcuMDU1LDcuMTAxLTE4LjQ5MiwwLTI1LjU0NiAgIGMtNy4xLTcuMDU0LTE4LjYxMy03LjA1NC0yNS43MTQsMEw1OC45ODksMTExLjY4OWMtMy43ODQsMy43NTktNS40ODcsOC43NTktNS4yMzgsMTMuNjhjLTAuMjQ5LDQuOTIyLDEuNDU0LDkuOTIxLDUuMjM4LDEzLjY4MSAgIGwxMDYuOTgzLDEwNi4zOThjNy4xMDEsNy4wNTUsMTguNjEzLDcuMDU1LDI1LjcxNCwwYzcuMTAxLTcuMDU0LDcuMTAxLTE4LjQ5MSwwLTI1LjU0NEw5Ni42MzMsMTI1LjM2OXpcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPCEtLSA8L2VkaXRvci1mb2xkPiAtLT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJueHQtZHQtY2FsZW5kYXItY29udHJvbC1jb250ZW50XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm54dC1kdC1jb250cm9sIG54dC1kdC1jb250cm9sLWJ1dHRvbiBueHQtZHQtY29udHJvbC1wZXJpb2QtYnV0dG9uXCJcclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGVyaW9kQnV0dG9uTGFiZWxcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVmlld3MoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm54dC1kdC1jb250cm9sLWNvbnRlbnQgbnh0LWR0LWNvbnRyb2wtYnV0dG9uLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICAgICAgICAgICAge3twZXJpb2RCdXR0b25UZXh0fX1cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm54dC1kdC1jb250cm9sLWJ1dHRvbi1hcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCIncm90YXRlKCcgKyAoaXNNb250aFZpZXc/IDAgOiAxODApICsnZGVnKSdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxlZGl0b3ItZm9sZCBkZXNjPVwiU1ZHIEFycm93XCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB4PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgeT1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNTAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTAlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyOTIuMzYyIDI5Mi4zNjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjkyLjM2MiAyOTIuMzYyO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yODYuOTM1LDY5LjM3N2MtMy42MTQtMy42MTctNy44OTgtNS40MjQtMTIuODQ4LTUuNDI0SDE4LjI3NGMtNC45NTIsMC05LjIzMywxLjgwNy0xMi44NSw1LjQyNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMxLjgwNyw3Mi45OTgsMCw3Ny4yNzksMCw4Mi4yMjhjMCw0Ljk0OCwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDdsMTI3LjkwNywxMjcuOTA3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczkuMjMzLTEuODExLDEyLjg0Ny01LjQyOEwyODYuOTM1LDk1LjA3NGMzLjYxMy0zLjYxNyw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDdDMjkyLjM2Miw3Ny4yNzksMjkwLjU0OCw3Mi45OTgsMjg2LjkzNSw2OS4zNzd6XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPC9lZGl0b3ItZm9sZD4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cIm54dC1kdC1jb250cm9sIG54dC1kdC1jb250cm9sLWJ1dHRvbiBueHQtZHQtY29udHJvbC1hcnJvdy1idXR0b25cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgW3N0eWxlLnZpc2liaWxpdHldPVwic2hvd0NvbnRyb2xBcnJvd3M/ICd2aXNpYmxlJzogJ2hpZGRlbidcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhbmV4dEJ1dHRvbkVuYWJsZWQoKVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXh0QnV0dG9uTGFiZWxcIlxyXG4gICAgICAgIChjbGljayk9XCJuZXh0Q2xpY2tlZCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJueHQtZHQtY29udHJvbC1jb250ZW50IG54dC1kdC1jb250cm9sLWJ1dHRvbi1jb250ZW50XCJcclxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxlZGl0b3ItZm9sZCBkZXNjPVwiU1ZHIEFycm93IFJpZ2h0XCI+IC0tPlxyXG4gICAgICAgICAgICA8c3ZnIHZlcnNpb249XCIxLjFcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgICAgICAgeD1cIjBweFwiXHJcbiAgICAgICAgICAgICAgICB5PVwiMHB4XCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjUwLjczOCAyNTAuNzM4XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAuNzM4IDI1MC43Mzg7XCJcclxuICAgICAgICAgICAgICAgIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHlsZT1cImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xOTEuNzUsMTExLjY4OUw4NC43NjYsNS4yOTFjLTcuMS03LjA1NS0xOC42MTMtNy4wNTUtMjUuNzEzLDBcclxuICAgICAgICAgICAgICAgICAgICBjLTcuMTAxLDcuMDU0LTcuMTAxLDE4LjQ5LDAsMjUuNTQ0bDk1LjA1Myw5NC41MzRsLTk1LjA1Myw5NC41MzNjLTcuMTAxLDcuMDU0LTcuMTAxLDE4LjQ5MSwwLDI1LjU0NVxyXG4gICAgICAgICAgICAgICAgICAgIGM3LjEsNy4wNTQsMTguNjEzLDcuMDU0LDI1LjcxMywwTDE5MS43NSwxMzkuMDVjMy43ODQtMy43NTksNS40ODctOC43NTksNS4yMzgtMTMuNjgxXHJcbiAgICAgICAgICAgICAgICAgICAgQzE5Ny4yMzcsMTIwLjQ0NywxOTUuNTM0LDExNS40NDgsMTkxLjc1LDExMS42ODl6XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwhLS0gPC9lZGl0b3ItZm9sZD4gLS0+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibnh0LWR0LWNhbGVuZGFyLW1haW5cIlxyXG4gICAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xyXG4gICAgW25nU3dpdGNoXT1cImN1cnJlbnRWaWV3XCJcclxuICAgIHRhYmluZGV4PVwiLTFcIj5cclxuICAgIDxueHQtZGF0ZS10aW1lLW1vbnRoLXZpZXcgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIlxyXG4gICAgICAgIFtwaWNrZXJNb21lbnRdPVwicGlja2VyTW9tZW50XCJcclxuICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxyXG4gICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXHJcbiAgICAgICAgW3NlbGVjdGVkc109XCJzZWxlY3RlZHNcIlxyXG4gICAgICAgIFtzZWxlY3RNb2RlXT1cInNlbGVjdE1vZGUgPz8gJ3NpbmdsZSdcIlxyXG4gICAgICAgIFttaW5dPVwibWluXCJcclxuICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgW2RhdGVUaW1lRmlsdGVyXT1cImRhdGVUaW1lRmlsdGVyXCJcclxuICAgICAgICBbaGlkZU90aGVyTW9udGhzXT1cImhpZGVPdGhlck1vbnRoc1wiXHJcbiAgICAgICAgKHBpY2tlck1vbWVudENoYW5nZSk9XCJoYW5kbGVQaWNrZXJNb21lbnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImRhdGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAodXNlclNlbGVjdGlvbik9XCJ1c2VyU2VsZWN0ZWQoKVwiPjwvbnh0LWRhdGUtdGltZS1tb250aC12aWV3PlxyXG5cclxuICAgIDxueHQtZGF0ZS10aW1lLXllYXItdmlldyAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCJcclxuICAgICAgICBbcGlja2VyTW9tZW50XT1cInBpY2tlck1vbWVudFwiXHJcbiAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuICAgICAgICBbc2VsZWN0ZWRzXT1cInNlbGVjdGVkc1wiXHJcbiAgICAgICAgW3NlbGVjdE1vZGVdPVwic2VsZWN0TW9kZSA/PyAnc2luZ2xlJ1wiXHJcbiAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgICBbZGF0ZVRpbWVGaWx0ZXJdPVwiZGF0ZVRpbWVGaWx0ZXJcIlxyXG4gICAgICAgIChrZXlib2FyZEVudGVyKT1cImZvY3VzQWN0aXZlQ2VsbCgpXCJcclxuICAgICAgICAocGlja2VyTW9tZW50Q2hhbmdlKT1cImhhbmRsZVBpY2tlck1vbWVudENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJzZWxlY3RNb250aEluWWVhclZpZXcoJGV2ZW50KVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJnb1RvRGF0ZUluVmlldygkZXZlbnQsICdtb250aCcpXCI+PC9ueHQtZGF0ZS10aW1lLXllYXItdmlldz5cclxuXHJcbiAgICA8bnh0LWRhdGUtdGltZS1tdWx0aS15ZWFyLXZpZXcgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aS15ZWFycydcIlxyXG4gICAgICAgIFtwaWNrZXJNb21lbnRdPVwicGlja2VyTW9tZW50XCJcclxuICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxyXG4gICAgICAgIFtzZWxlY3RlZHNdPVwic2VsZWN0ZWRzXCJcclxuICAgICAgICBbc2VsZWN0TW9kZV09XCJzZWxlY3RNb2RlID8/ICdzaW5nbGUnXCJcclxuICAgICAgICBbbWluXT1cIm1pblwiXHJcbiAgICAgICAgW21heF09XCJtYXhcIlxyXG4gICAgICAgIFtkYXRlVGltZUZpbHRlcl09XCJkYXRlVGltZUZpbHRlclwiXHJcbiAgICAgICAgKGtleWJvYXJkRW50ZXIpPVwiZm9jdXNBY3RpdmVDZWxsKClcIlxyXG4gICAgICAgIChwaWNrZXJNb21lbnRDaGFuZ2UpPVwiaGFuZGxlUGlja2VyTW9tZW50Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwic2VsZWN0WWVhckluTXVsdGlZZWFyVmlldygkZXZlbnQpXCJcclxuICAgICAgICAoY2hhbmdlKT1cImdvVG9EYXRlSW5WaWV3KCRldmVudCwgJ3llYXInKVwiPjwvbnh0LWRhdGUtdGltZS1tdWx0aS15ZWFyLXZpZXc+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -122,13 +122,13 @@ export class CalendarBodyComponent {
122
122
  });
123
123
  });
124
124
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CalendarBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: CalendarBodyComponent, selector: "[nxtDateTimeCalendarBody]", inputs: { activeCell: "activeCell", rows: "rows", numCols: "numCols", cellRatio: "cellRatio", todayValue: "todayValue", selectedValues: "selectedValues", selectMode: "selectMode" }, outputs: { select: "select" }, host: { properties: { "class.nxt-dt-calendar-body": "this.calendarBodyClass" } }, exportAs: ["nxtDateTimeCalendarBody"], ngImport: i0, template: "<tr *ngFor=\"let row of rows; let rowIndex = index\"\r\n role=\"row\">\r\n <td *ngFor=\"let item of row; let colIndex = index\"\r\n class=\"nxt-dt-calendar-cell {{item.cellClass}}\"\r\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\r\n [class.nxt-dt-calendar-cell-active]=\"isActiveCell(rowIndex, colIndex)\"\r\n [class.nxt-dt-calendar-cell-disabled]=\"!item.enabled\"\r\n [class.nxt-dt-calendar-cell-in-range]=\"isInRange(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from]=\"isRangeFrom(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from-long]=\"isInRange(item.value + 7)\"\r\n [class.nxt-dt-calendar-cell-range-to]=\"isRangeTo(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-to-long]=\"isInRange(item.value - 7)\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-disabled]=\"!item.enabled || null\"\r\n [style.width.%]=\"100 / numCols\"\r\n [style.paddingTop.%]=\"50 * cellRatio / numCols\"\r\n [style.paddingBottom.%]=\"50 * cellRatio / numCols\"\r\n (click)=\"selectCell(item)\">\r\n <span class=\"nxt-dt-calendar-cell-content\"\r\n [ngClass]=\"{\r\n 'nxt-dt-calendar-cell-out': item.out,\r\n 'nxt-dt-calendar-cell-today': item.value === todayValue,\r\n 'nxt-dt-calendar-cell-selected': isSelected(item.value)\r\n }\">\r\n {{item.displayValue}}\r\n </span>\r\n </td>\r\n</tr>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: CalendarBodyComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.1", type: CalendarBodyComponent, selector: "[nxtDateTimeCalendarBody]", inputs: { activeCell: "activeCell", rows: "rows", numCols: "numCols", cellRatio: "cellRatio", todayValue: "todayValue", selectedValues: "selectedValues", selectMode: "selectMode" }, outputs: { select: "select" }, host: { properties: { "class.nxt-dt-calendar-body": "this.calendarBodyClass" } }, exportAs: ["nxtDateTimeCalendarBody"], ngImport: i0, template: "<tr *ngFor=\"let row of rows; let rowIndex = index\"\r\n role=\"row\">\r\n <td *ngFor=\"let item of row; let colIndex = index\"\r\n class=\"nxt-dt-calendar-cell {{item.cellClass}}\"\r\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\r\n [class.nxt-dt-calendar-cell-active]=\"isActiveCell(rowIndex, colIndex)\"\r\n [class.nxt-dt-calendar-cell-disabled]=\"!item.enabled\"\r\n [class.nxt-dt-calendar-cell-in-range]=\"isInRange(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from]=\"isRangeFrom(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from-long]=\"isInRange(item.value + 7)\"\r\n [class.nxt-dt-calendar-cell-range-to]=\"isRangeTo(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-to-long]=\"isInRange(item.value - 7)\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-disabled]=\"!item.enabled || null\"\r\n [style.width.%]=\"100 / numCols\"\r\n [style.paddingTop.%]=\"50 * cellRatio / numCols\"\r\n [style.paddingBottom.%]=\"50 * cellRatio / numCols\"\r\n (click)=\"selectCell(item)\">\r\n <span class=\"nxt-dt-calendar-cell-content\"\r\n [ngClass]=\"{\r\n 'nxt-dt-calendar-cell-out': item.out,\r\n 'nxt-dt-calendar-cell-today': item.value === todayValue,\r\n 'nxt-dt-calendar-cell-selected': isSelected(item.value)\r\n }\">\r\n {{item.displayValue}}\r\n </span>\r\n </td>\r\n</tr>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CalendarBodyComponent, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.1", ngImport: i0, type: CalendarBodyComponent, decorators: [{
129
129
  type: Component,
130
130
  args: [{ selector: '[nxtDateTimeCalendarBody]', exportAs: 'nxtDateTimeCalendarBody', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr *ngFor=\"let row of rows; let rowIndex = index\"\r\n role=\"row\">\r\n <td *ngFor=\"let item of row; let colIndex = index\"\r\n class=\"nxt-dt-calendar-cell {{item.cellClass}}\"\r\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\r\n [class.nxt-dt-calendar-cell-active]=\"isActiveCell(rowIndex, colIndex)\"\r\n [class.nxt-dt-calendar-cell-disabled]=\"!item.enabled\"\r\n [class.nxt-dt-calendar-cell-in-range]=\"isInRange(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from]=\"isRangeFrom(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from-long]=\"isInRange(item.value + 7)\"\r\n [class.nxt-dt-calendar-cell-range-to]=\"isRangeTo(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-to-long]=\"isInRange(item.value - 7)\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-disabled]=\"!item.enabled || null\"\r\n [style.width.%]=\"100 / numCols\"\r\n [style.paddingTop.%]=\"50 * cellRatio / numCols\"\r\n [style.paddingBottom.%]=\"50 * cellRatio / numCols\"\r\n (click)=\"selectCell(item)\">\r\n <span class=\"nxt-dt-calendar-cell-content\"\r\n [ngClass]=\"{\r\n 'nxt-dt-calendar-cell-out': item.out,\r\n 'nxt-dt-calendar-cell-today': item.value === todayValue,\r\n 'nxt-dt-calendar-cell-selected': isSelected(item.value)\r\n }\">\r\n {{item.displayValue}}\r\n </span>\r\n </td>\r\n</tr>\r\n" }]
131
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { activeCell: [{
131
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { activeCell: [{
132
132
  type: Input
133
133
  }], rows: [{
134
134
  type: Input
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
148
148
  type: HostBinding,
149
149
  args: ['class.nxt-dt-calendar-body']
150
150
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2NhbGVuZGFyLWJvZHkvY2FsZW5kYXItYm9keS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2NhbGVuZGFyLWJvZHkvY2FsZW5kYXItYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFHckMsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFDVyxLQUFhLEVBQ2IsWUFBb0IsRUFDcEIsU0FBaUIsRUFDakIsT0FBZ0IsRUFDaEIsTUFBZSxLQUFLLEVBQ3BCLFlBQW9CLEVBQUU7UUFMdEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFhO0lBQzdCLENBQUM7Q0FDUjtBQUVELGdCQUFnQjtBQVVoQixNQUFNLE9BQU8scUJBQXFCO0lBa0Q5QixnQkFBZ0I7SUFDaEIsSUFDSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsSUFBSSxhQUFh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QUE7WUFDeEMsT0FBTyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUE7U0FDcEQ7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUNmLFlBQVksRUFBRTtpQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO29CQUNyQixFQUFFLGFBQWEsQ0FBYyw4QkFBOEIsQ0FBQztvQkFDNUQsRUFBRSxLQUFLLEVBQUUsQ0FBQTtZQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs4R0E5SlEscUJBQXFCO2tHQUFyQixxQkFBcUIsK1lDekJsQyx3L0NBNEJBOzsyRkRIYSxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBRUksMkJBQTJCLFlBQzNCLHlCQUF5Qix1QkFHZCxLQUFLLG1CQUNULHVCQUF1QixDQUFDLE1BQU07c0hBTy9DLFVBQVU7c0JBRFQsS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sY0FBYztzQkFEYixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFRRyxNQUFNO3NCQUZkLE1BQU07Z0JBTUgsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBTZWxlY3RNb2RlIH0gZnJvbSAnLi4vLi4vY2xhc3MvZGF0ZS10aW1lLmNsYXNzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ2VsbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdmFsdWU6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgZGlzcGxheVZhbHVlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBlbmFibGVkOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBvdXQ6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICAgICBwdWJsaWMgY2VsbENsYXNzOiBzdHJpbmcgPSAnJ1xyXG4gICAgKSB7IH1cclxufVxyXG5cclxuLyoqIEBpbnRlcm5hbCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ1tueHREYXRlVGltZUNhbGVuZGFyQm9keV0nLFxyXG4gICAgZXhwb3J0QXM6ICdueHREYXRlVGltZUNhbGVuZGFyQm9keScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItYm9keS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1ib2R5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2VsbCBudW1iZXIgb2YgdGhlIGFjdGl2ZSBjZWxsIGluIHRoZSB0YWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGFjdGl2ZUNlbGwgPSAwXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2VsbHMgdG8gZGlzcGxheSBpbiB0aGUgdGFibGUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICByb3dzPzogQ2FsZW5kYXJDZWxsW11bXVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSB0YWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIG51bUNvbHMgPSA3XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcmF0aW8gKHdpZHRoIC8gaGVpZ2h0KSB0byB1c2UgZm9yIHRoZSBjZWxscyBpbiB0aGUgdGFibGUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjZWxsUmF0aW8gPSAxXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmFsdWUgaW4gdGhlIHRhYmxlIHRoYXQgY29ycmVzcG9uZHMgdG8gdG9kYXkuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICB0b2RheVZhbHVlPzogbnVtYmVyXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmFsdWUgaW4gdGhlIHRhYmxlIHRoYXQgaXMgY3VycmVudGx5IHNlbGVjdGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2VsZWN0ZWRWYWx1ZXM/OiBBcnJheTxudW1iZXIgfCB1bmRlZmluZWQ+XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHBpY2tlciBzZWxlY3QgbW9kZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2VsZWN0TW9kZT86IFNlbGVjdE1vZGVcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXQgd2hlbiBhIGNhbGVuZGFyIGNlbGwgaXMgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcclxuICAgIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJDZWxsPigpXHJcblxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ueHQtZHQtY2FsZW5kYXItYm9keScpXHJcbiAgICBnZXQgY2FsZW5kYXJCb2R5Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNJblNpbmdsZU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZSdcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNJblJhbmdlTW9kZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZScgfHxcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2VGcm9tJyB8fFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZVRvJ1xyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICAgIHNlbGVjdENlbGwoY2VsbDogQ2FsZW5kYXJDZWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3QuZW1pdChjZWxsKVxyXG4gICAgfVxyXG5cclxuICAgIGlzQWN0aXZlQ2VsbChyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgY2VsbE51bWJlciA9IHJvd0luZGV4ICogdGhpcy5udW1Db2xzICsgY29sSW5kZXhcclxuICAgICAgICByZXR1cm4gY2VsbE51bWJlciA9PT0gdGhpcy5hY3RpdmVDZWxsXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpcyBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBpc1NlbGVjdGVkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWYWx1ZXMgfHwgdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0luU2luZ2xlTW9kZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzSW5SYW5nZU1vZGUpIHtcclxuICAgICAgICAgICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlc1swXVxyXG4gICAgICAgICAgICBjb25zdCB0b1ZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlc1sxXVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBmcm9tVmFsdWUgfHwgdmFsdWUgPT09IHRvVmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpbiB0aGUgcmFuZ2VcclxuICAgICAqL1xyXG4gICAgaXNJblJhbmdlKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc0luUmFuZ2VNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LlswXVxyXG4gICAgICAgICAgICBjb25zdCB0b1ZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlcz8uWzFdXHJcblxyXG4gICAgICAgICAgICBpZiAoZnJvbVZhbHVlICE9PSB1bmRlZmluZWQgJiYgdG9WYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPj0gZnJvbVZhbHVlICYmIHZhbHVlIDw9IHRvVmFsdWVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gZnJvbVZhbHVlIHx8IHZhbHVlID09PSB0b1ZhbHVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpcyB0aGUgcmFuZ2UgZnJvbVxyXG4gICAgICovXHJcbiAgICBpc1JhbmdlRnJvbSh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNJblJhbmdlTW9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWVzPy5bMF1cclxuICAgICAgICAgICAgcmV0dXJuIGZyb21WYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlID09PSBmcm9tVmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpcyB0aGUgcmFuZ2UgdG9cclxuICAgICAqL1xyXG4gICAgaXNSYW5nZVRvKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc0luUmFuZ2VNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWVzPy5bMV1cclxuICAgICAgICAgICAgcmV0dXJuIHRvVmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA9PT0gdG9WYWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvY3VzIHRvIGEgYWN0aXZlIGNlbGxcclxuICAgICAqL1xyXG4gICAgZm9jdXNBY3RpdmVDZWxsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGVcclxuICAgICAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxtUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPy5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLm54dC1kdC1jYWxlbmRhci1jZWxsLWFjdGl2ZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8uZm9jdXMoKVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG59XHJcbiIsIjx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCByb3dJbmRleCA9IGluZGV4XCJcclxuICAgIHJvbGU9XCJyb3dcIj5cclxuICAgIDx0ZCAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3c7IGxldCBjb2xJbmRleCA9IGluZGV4XCJcclxuICAgICAgICBjbGFzcz1cIm54dC1kdC1jYWxlbmRhci1jZWxsIHt7aXRlbS5jZWxsQ2xhc3N9fVwiXHJcbiAgICAgICAgW3RhYmluZGV4XT1cImlzQWN0aXZlQ2VsbChyb3dJbmRleCwgY29sSW5kZXgpID8gMCA6IC0xXCJcclxuICAgICAgICBbY2xhc3Mubnh0LWR0LWNhbGVuZGFyLWNlbGwtYWN0aXZlXT1cImlzQWN0aXZlQ2VsbChyb3dJbmRleCwgY29sSW5kZXgpXCJcclxuICAgICAgICBbY2xhc3Mubnh0LWR0LWNhbGVuZGFyLWNlbGwtZGlzYWJsZWRdPVwiIWl0ZW0uZW5hYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLWluLXJhbmdlXT1cImlzSW5SYW5nZShpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLXJhbmdlLWZyb21dPVwiaXNSYW5nZUZyb20oaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgIFtjbGFzcy5ueHQtZHQtY2FsZW5kYXItY2VsbC1yYW5nZS1mcm9tLWxvbmddPVwiaXNJblJhbmdlKGl0ZW0udmFsdWUgKyA3KVwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLXJhbmdlLXRvXT1cImlzUmFuZ2VUbyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLXJhbmdlLXRvLWxvbmddPVwiaXNJblJhbmdlKGl0ZW0udmFsdWUgLSA3KVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCIhaXRlbS5lbmFibGVkIHx8IG51bGxcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMCAvIG51bUNvbHNcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nVG9wLiVdPVwiNTAgKiBjZWxsUmF0aW8gLyBudW1Db2xzXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZ0JvdHRvbS4lXT1cIjUwICogY2VsbFJhdGlvIC8gbnVtQ29sc1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdENlbGwoaXRlbSlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm54dC1kdC1jYWxlbmRhci1jZWxsLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnbnh0LWR0LWNhbGVuZGFyLWNlbGwtb3V0JzogaXRlbS5vdXQsXHJcbiAgICAgICAgICAgICAgICAnbnh0LWR0LWNhbGVuZGFyLWNlbGwtdG9kYXknOiBpdGVtLnZhbHVlID09PSB0b2RheVZhbHVlLFxyXG4gICAgICAgICAgICAgICAgJ254dC1kdC1jYWxlbmRhci1jZWxsLXNlbGVjdGVkJzogaXNTZWxlY3RlZChpdGVtLnZhbHVlKVxyXG4gICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAge3tpdGVtLmRpc3BsYXlWYWx1ZX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC90ZD5cclxuPC90cj5cclxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2NhbGVuZGFyLWJvZHkvY2FsZW5kYXItYm9keS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9waWNrLWRhdGV0aW1lL3NyYy9saWIvZGF0ZS10aW1lL2NhbGVuZGFyLWJvZHkvY2FsZW5kYXItYm9keS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFrQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7QUFHckMsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFDVyxLQUFhLEVBQ2IsWUFBb0IsRUFDcEIsU0FBaUIsRUFDakIsT0FBZ0IsRUFDaEIsTUFBZSxLQUFLLEVBQ3BCLFlBQW9CLEVBQUU7UUFMdEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFhO0lBQzdCLENBQUM7Q0FDUjtBQUVELGdCQUFnQjtBQVVoQixNQUFNLE9BQU8scUJBQXFCO0lBa0Q5QixnQkFBZ0I7SUFDaEIsSUFDSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQTtJQUN2QyxDQUFDO0lBRUQsSUFBSSxhQUFh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QUE7WUFDeEMsT0FBTyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxPQUFPLENBQUE7U0FDcEQ7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUNmLFlBQVksRUFBRTtpQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO29CQUNyQixFQUFFLGFBQWEsQ0FBYyw4QkFBOEIsQ0FBQztvQkFDNUQsRUFBRSxLQUFLLEVBQUUsQ0FBQTtZQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNWLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs4R0E5SlEscUJBQXFCO2tHQUFyQixxQkFBcUIsK1lDekJsQyx3L0NBNEJBOzsyRkRIYSxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBRUksMkJBQTJCLFlBQzNCLHlCQUF5Qix1QkFHZCxLQUFLLG1CQUNULHVCQUF1QixDQUFDLE1BQU07b0dBTy9DLFVBQVU7c0JBRFQsS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQU9OLFNBQVM7c0JBRFIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sY0FBYztzQkFEYixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFRRyxNQUFNO3NCQUZkLE1BQU07Z0JBTUgsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBOZ1pvbmUsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBTZWxlY3RNb2RlIH0gZnJvbSAnLi4vLi4vY2xhc3MvZGF0ZS10aW1lLmNsYXNzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ2VsbCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdmFsdWU6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgZGlzcGxheVZhbHVlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBlbmFibGVkOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBvdXQ6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICAgICBwdWJsaWMgY2VsbENsYXNzOiBzdHJpbmcgPSAnJ1xyXG4gICAgKSB7IH1cclxufVxyXG5cclxuLyoqIEBpbnRlcm5hbCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ1tueHREYXRlVGltZUNhbGVuZGFyQm9keV0nLFxyXG4gICAgZXhwb3J0QXM6ICdueHREYXRlVGltZUNhbGVuZGFyQm9keScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItYm9keS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1ib2R5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2VsbCBudW1iZXIgb2YgdGhlIGFjdGl2ZSBjZWxsIGluIHRoZSB0YWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGFjdGl2ZUNlbGwgPSAwXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY2VsbHMgdG8gZGlzcGxheSBpbiB0aGUgdGFibGUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICByb3dzPzogQ2FsZW5kYXJDZWxsW11bXVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSB0YWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIG51bUNvbHMgPSA3XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcmF0aW8gKHdpZHRoIC8gaGVpZ2h0KSB0byB1c2UgZm9yIHRoZSBjZWxscyBpbiB0aGUgdGFibGUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjZWxsUmF0aW8gPSAxXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmFsdWUgaW4gdGhlIHRhYmxlIHRoYXQgY29ycmVzcG9uZHMgdG8gdG9kYXkuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICB0b2RheVZhbHVlPzogbnVtYmVyXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmFsdWUgaW4gdGhlIHRhYmxlIHRoYXQgaXMgY3VycmVudGx5IHNlbGVjdGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2VsZWN0ZWRWYWx1ZXM/OiBBcnJheTxudW1iZXIgfCB1bmRlZmluZWQ+XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHBpY2tlciBzZWxlY3QgbW9kZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2VsZWN0TW9kZT86IFNlbGVjdE1vZGVcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXQgd2hlbiBhIGNhbGVuZGFyIGNlbGwgaXMgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcclxuICAgIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJDZWxsPigpXHJcblxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ueHQtZHQtY2FsZW5kYXItYm9keScpXHJcbiAgICBnZXQgY2FsZW5kYXJCb2R5Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNJblNpbmdsZU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0TW9kZSA9PT0gJ3NpbmdsZSdcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNJblJhbmdlTW9kZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZScgfHxcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RNb2RlID09PSAncmFuZ2VGcm9tJyB8fFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdE1vZGUgPT09ICdyYW5nZVRvJ1xyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICAgIHNlbGVjdENlbGwoY2VsbDogQ2FsZW5kYXJDZWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3QuZW1pdChjZWxsKVxyXG4gICAgfVxyXG5cclxuICAgIGlzQWN0aXZlQ2VsbChyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgY2VsbE51bWJlciA9IHJvd0luZGV4ICogdGhpcy5udW1Db2xzICsgY29sSW5kZXhcclxuICAgICAgICByZXR1cm4gY2VsbE51bWJlciA9PT0gdGhpcy5hY3RpdmVDZWxsXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpcyBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBpc1NlbGVjdGVkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWYWx1ZXMgfHwgdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0luU2luZ2xlTW9kZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzSW5SYW5nZU1vZGUpIHtcclxuICAgICAgICAgICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlc1swXVxyXG4gICAgICAgICAgICBjb25zdCB0b1ZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlc1sxXVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSBmcm9tVmFsdWUgfHwgdmFsdWUgPT09IHRvVmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpbiB0aGUgcmFuZ2VcclxuICAgICAqL1xyXG4gICAgaXNJblJhbmdlKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc0luUmFuZ2VNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LlswXVxyXG4gICAgICAgICAgICBjb25zdCB0b1ZhbHVlID0gdGhpcy5zZWxlY3RlZFZhbHVlcz8uWzFdXHJcblxyXG4gICAgICAgICAgICBpZiAoZnJvbVZhbHVlICE9PSB1bmRlZmluZWQgJiYgdG9WYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPj0gZnJvbVZhbHVlICYmIHZhbHVlIDw9IHRvVmFsdWVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gZnJvbVZhbHVlIHx8IHZhbHVlID09PSB0b1ZhbHVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpcyB0aGUgcmFuZ2UgZnJvbVxyXG4gICAgICovXHJcbiAgICBpc1JhbmdlRnJvbSh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNJblJhbmdlTW9kZSkge1xyXG4gICAgICAgICAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWVzPy5bMF1cclxuICAgICAgICAgICAgcmV0dXJuIGZyb21WYWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlID09PSBmcm9tVmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgY2VsbCBpcyB0aGUgcmFuZ2UgdG9cclxuICAgICAqL1xyXG4gICAgaXNSYW5nZVRvKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc0luUmFuZ2VNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWVzPy5bMV1cclxuICAgICAgICAgICAgcmV0dXJuIHRvVmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSA9PT0gdG9WYWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvY3VzIHRvIGEgYWN0aXZlIGNlbGxcclxuICAgICAqL1xyXG4gICAgZm9jdXNBY3RpdmVDZWxsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGVcclxuICAgICAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxtUmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPy5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLm54dC1kdC1jYWxlbmRhci1jZWxsLWFjdGl2ZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8uZm9jdXMoKVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG59XHJcbiIsIjx0ciAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCByb3dJbmRleCA9IGluZGV4XCJcclxuICAgIHJvbGU9XCJyb3dcIj5cclxuICAgIDx0ZCAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3c7IGxldCBjb2xJbmRleCA9IGluZGV4XCJcclxuICAgICAgICBjbGFzcz1cIm54dC1kdC1jYWxlbmRhci1jZWxsIHt7aXRlbS5jZWxsQ2xhc3N9fVwiXHJcbiAgICAgICAgW3RhYmluZGV4XT1cImlzQWN0aXZlQ2VsbChyb3dJbmRleCwgY29sSW5kZXgpID8gMCA6IC0xXCJcclxuICAgICAgICBbY2xhc3Mubnh0LWR0LWNhbGVuZGFyLWNlbGwtYWN0aXZlXT1cImlzQWN0aXZlQ2VsbChyb3dJbmRleCwgY29sSW5kZXgpXCJcclxuICAgICAgICBbY2xhc3Mubnh0LWR0LWNhbGVuZGFyLWNlbGwtZGlzYWJsZWRdPVwiIWl0ZW0uZW5hYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLWluLXJhbmdlXT1cImlzSW5SYW5nZShpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLXJhbmdlLWZyb21dPVwiaXNSYW5nZUZyb20oaXRlbS52YWx1ZSlcIlxyXG4gICAgICAgIFtjbGFzcy5ueHQtZHQtY2FsZW5kYXItY2VsbC1yYW5nZS1mcm9tLWxvbmddPVwiaXNJblJhbmdlKGl0ZW0udmFsdWUgKyA3KVwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLXJhbmdlLXRvXT1cImlzUmFuZ2VUbyhpdGVtLnZhbHVlKVwiXHJcbiAgICAgICAgW2NsYXNzLm54dC1kdC1jYWxlbmRhci1jZWxsLXJhbmdlLXRvLWxvbmddPVwiaXNJblJhbmdlKGl0ZW0udmFsdWUgLSA3KVwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCIhaXRlbS5lbmFibGVkIHx8IG51bGxcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMCAvIG51bUNvbHNcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nVG9wLiVdPVwiNTAgKiBjZWxsUmF0aW8gLyBudW1Db2xzXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZ0JvdHRvbS4lXT1cIjUwICogY2VsbFJhdGlvIC8gbnVtQ29sc1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdENlbGwoaXRlbSlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm54dC1kdC1jYWxlbmRhci1jZWxsLWNvbnRlbnRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnbnh0LWR0LWNhbGVuZGFyLWNlbGwtb3V0JzogaXRlbS5vdXQsXHJcbiAgICAgICAgICAgICAgICAnbnh0LWR0LWNhbGVuZGFyLWNlbGwtdG9kYXknOiBpdGVtLnZhbHVlID09PSB0b2RheVZhbHVlLFxyXG4gICAgICAgICAgICAgICAgJ254dC1kdC1jYWxlbmRhci1jZWxsLXNlbGVjdGVkJzogaXNTZWxlY3RlZChpdGVtLnZhbHVlKVxyXG4gICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAge3tpdGVtLmRpc3BsYXlWYWx1ZX19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC90ZD5cclxuPC90cj5cclxuIl19