@colijnit/corecomponents_v12 260.1.12 → 260.1.13

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.
@@ -254,7 +254,8 @@ export class HourSchedulingExpandableComponent {
254
254
  return split.join(':');
255
255
  }
256
256
  convertTZ(date, tzString) {
257
- return new Date((typeof date === "string" ? new Date(date) : date).toLocaleString("en-US", { timeZone: tzString }));
257
+ var _a;
258
+ return new Date((_a = (typeof date === "string" ? new Date(date) : date)) === null || _a === void 0 ? void 0 : _a.toLocaleString("en-US", { timeZone: tzString }));
258
259
  }
259
260
  convertDateToEuropean(date) {
260
261
  return this.convertTZ(date, 'Europe/Amsterdam');
@@ -333,4 +334,4 @@ HourSchedulingExpandableComponent.propDecorators = {
333
334
  onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }],
334
335
  clickOut: [{ type: HostListener, args: ['document:click', ['$event'],] }]
335
336
  };
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLWV4cGFuZGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQWdFdkIsTUFBTSxPQUFPLGlDQUFpQztJQTZENUMsWUFDVSxLQUF3QixFQUN4QixJQUFnQjtRQURoQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBN0RuQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFHekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQiwwQkFBcUIsR0FBNEIsSUFBSSxDQUFDO1FBQ3RELDBCQUFxQixHQUE0QixJQUFJLENBQUM7UUFDdEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBdUJkLG9CQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkUsdUJBQWtCLEdBQXdELElBQUksWUFBWSxFQUd2RyxDQUFDO1FBRVksOEJBQXlCLEdBQXdELElBQUksWUFBWSxFQUF5QyxDQUFDO1FBR3JKLGNBQVMsR0FBWSxJQUFJLENBQUM7SUFtQmpDLENBQUM7SUFoREQsSUFBb0IsUUFBUSxDQUFFLEtBQWE7UUFDekMsSUFBRyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUks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Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF6RUMsaUJBQWlCO1lBQ04sVUFBVTs7O3VCQTBGcEIsS0FBSzs0QkFhTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7cUJBQ0wsS0FBSzs4QkFFTCxNQUFNO2lDQUNOLE1BQU07d0NBS04sTUFBTTt3QkFFTixXQUFXLFNBQUMscUNBQXFDO3VCQUdqRCxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO3VCQUt4QyxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbnRlcmZhY2UgU2NoZWR1bGluZ09iamVjdCB7XHJcbiAgc3RhcnQ6IERhdGU7XHJcbiAgZW5kOiBEYXRlO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHN1YlRpdGxlPzogc3RyaW5nO1xyXG4gIGhlaWdodD86IG51bWJlcjtcclxuICB0b3A/OiBudW1iZXI7XHJcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICBzaG93VG9wUmVzaXplcj86IGJvb2xlYW47XHJcbiAgc2hvd0JvdHRvbVJlc2l6ZXI/OiBib29sZWFuO1xyXG5cclxuXHJcbiAgW2tleTogc3RyaW5nXTogYW55OyAvLyBBbGxvd3MgZHluYW1pYyBwcm9wZXJ0aWVzIGluY2x1ZGluZyB1bmlxdWUgaWRlbnRpZmllcnNcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1ob3VyLXNjaGVkdWxpbmctZXhwYW5kYWJsZScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWJsb2NrXCIgKm5nRm9yPVwibGV0IGhvdXIgb2YgaG91ckxhYmVsc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWxhYmVsXCI+PHNwYW4gW3RleHRDb250ZW50XT1cImhvdXJcIj48L3NwYW4+PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtZGlzcGxheVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpcnN0LWhhbGYtaG91ciBvYmplY3QtaGFsZlwiXHJcbiAgICAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCBob3VyKVwiXHJcbiAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwiaGFuZGxlRHJhZ0xlYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudCwgaG91cilcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmQtaGFsZi1ob3VyIG9iamVjdC1oYWxmXCJcclxuICAgICAgICAgICAgICAgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQsIGFkZEhhbGZIb3VyKGhvdXIpKVwiXHJcbiAgICAgICAgICAgICAgIChkcmFnbGVhdmUpPVwiaGFuZGxlRHJhZ0xlYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoZHJvcCk9XCJoYW5kbGVEcm9wKCRldmVudCwgYWRkSGFsZkhvdXIoaG91cikpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGVkLW9iamVjdHNcIiA+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcbiAgICAgICAgICAgICAgb2JqZWN0czogc2NoZWR1bGVkT2JqZWN0cyxcclxuICAgICAgICAgICAgICBvblNlbGVjdEJsb2NrOiB0aGlzLm9uU2VsZWN0QmxvY2suYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICBvblJlc2l6ZVN0YXJ0OiB0aGlzLm9uUmVzaXplU3RhcnQuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICBvbkRyYWdTdGFydEN1c3RvbTogdGhpcy5vbkRyYWdTdGFydEN1c3RvbS5iaW5kKHRoaXMpXHJcblxyXG4gICAgICAgICAgICB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhvdXJTY2hlZHVsaW5nRXhwYW5kYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBob3VyTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBzY2hlZHVsZWRPYmplY3RzOiBTY2hlZHVsaW5nT2JqZWN0W10gPSBbXTtcclxuXHJcblxyXG4gIHByaXZhdGUgcmVzaXppbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIHJlc2l6ZURpcmVjdGlvbjogJ3RvcCcgfCAnYm90dG9tJztcclxuICBwcml2YXRlIGluaXRpYWxZOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbml0aWFsSGVpZ2h0OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbml0aWFsVG9wOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBjdXJyZW50UmVzaXppbmdPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGN1cnJlbnREcmFnZ2luZ09iamVjdDogU2NoZWR1bGluZ09iamVjdCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgTUlOX0hFSUdIVCA9IDMwO1xyXG4gIHByaXZhdGUgX3NjaGVkdWxlOiBPYmplY3QgPSB7fTtcclxuXHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2NoZWR1bGUoIHZhbHVlOiBPYmplY3QpIHtcclxuICAgIGlmKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLl9zY2hlZHVsZSkge1xyXG4gICAgICB0aGlzLnJlbmRlck9iamVjdHMoKTtcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLl9zY2hlZHVsZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzY2hlZHVsZSgpOiBPYmplY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NjaGVkdWxlO1xyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzdGFydFRpbWVQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGVuZFRpbWVQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIG9iamVjdHNQcm9wOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoaWxkUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBwdWJsaWMgaWRQcm9wOiBzdHJpbmc7ICAvLyBJbnB1dCBmb3IgdW5pcXVlIGlkZW50aWZpZXIgcHJvcGVydHlcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0aW1lQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBuZXdPYmplY3RQbGFuRXZlbnQ6IEV2ZW50RW1pdHRlcjx7IGN1cnJlbnRIb3VyOiBzdHJpbmcsIGRhdGE6IHN0cmluZyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgY3VycmVudEhvdXI6IHN0cmluZyxcclxuICAgIGRhdGE6IHN0cmluZ1xyXG4gIH0+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW92ZUJldHdlZW5DYWxlbmRhcnNFdmVudDogRXZlbnRFbWl0dGVyPHtob3VyOiBzdHJpbmcsIGRhdGE6U2NoZWR1bGluZ09iamVjdH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7aG91cjogc3RyaW5nLCBkYXRhOlNjaGVkdWxpbmdPYmplY3R9PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlJylcclxuICBwdWJsaWMgc2hvd0NsYXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uUmVzaXplKGV2ZW50OiB7IHRhcmdldDogeyBpbm5lcldpZHRoOiBhbnk7IH07IH0pIHtcclxuICAgIGV2ZW50LnRhcmdldC5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBjbGlja091dChldmVudDogeyB0YXJnZXQ6IGFueTsgfSkge1xyXG4gICAgaWYoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgdGhpcy5oYW5kbGVEZXNlbGVjdEFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5nZW5lcmF0ZVRpbWVCbG9ja3MoKTtcclxuICAgIGlmKHRoaXMuc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJPYmplY3RzKCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICAvLyBDYWxjdWxhdGUgcHJvcGVydGllcyBmb3IgZWFjaCBzY2hlZHVsZWQgb2JqZWN0IHRvIGRldGVybWluZSByZXNpemVyIHZpc2liaWxpdHlcclxuXHJcblxyXG4gIC8vIEZpbmQgdGhlIG5leHQgb2JqZWN0IGluIHRoZSBzY2hlZHVsZWRPYmplY3RzIGxpc3RcclxuICBwcml2YXRlIF9maW5kTmV4dE9iamVjdChjdXJyZW50T2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0KTogU2NoZWR1bGluZ09iamVjdCB8IG51bGwge1xyXG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5zY2hlZHVsZWRPYmplY3RzLmluZGV4T2YoY3VycmVudE9iamVjdCk7XHJcbiAgICBpZiAoY3VycmVudEluZGV4ID49IDAgJiYgY3VycmVudEluZGV4IDwgdGhpcy5zY2hlZHVsZWRPYmplY3RzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tjdXJyZW50SW5kZXggKyAxXTsgLy8gVGhlIG5leHQgb2JqZWN0IGluIHRoZSBsaXN0XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDsgLy8gTm8gbmV4dCBvYmplY3QgKGl0J3MgdGhlIGxhc3Qgb25lKVxyXG4gIH1cclxuXHJcbiAgLy8gRmluZCB0aGUgcHJldmlvdXMgb2JqZWN0IGluIHRoZSBzY2hlZHVsZWRPYmplY3RzIGxpc3RcclxuICBwcml2YXRlIF9maW5kUHJldmlvdXNPYmplY3QoY3VycmVudE9iamVjdDogU2NoZWR1bGluZ09iamVjdCk6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5pbmRleE9mKGN1cnJlbnRPYmplY3QpO1xyXG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVkT2JqZWN0c1tjdXJyZW50SW5kZXggLSAxXTsgLy8gVGhlIHByZXZpb3VzIG9iamVjdCBpbiB0aGUgbGlzdFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7IC8vIE5vIHByZXZpb3VzIG9iamVjdCAoaXQncyB0aGUgZmlyc3Qgb25lKVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyByZW5kZXJPYmplY3RzKCkge1xyXG4gICAgaWYodGhpcy5zY2hlZHVsZSkge1xyXG4gICAgICBpZiAodGhpcy5zY2hlZHVsZWRPYmplY3RzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgb2JqZWN0czogT2JqZWN0W10gPSB0aGlzLnNjaGVkdWxlW3RoaXMub2JqZWN0c1Byb3BdO1xyXG5cclxuICAgICAgbGV0IHNjaGVkdWxpbmdPYmplY3RzOiBTY2hlZHVsaW5nT2JqZWN0W10gPSBbXTtcclxuXHJcblxyXG4gICAgICBpZiAob2JqZWN0cyAmJiBvYmplY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBvYmplY3RzLmZvckVhY2gob2JqZWN0ID0+IHtcclxuICAgICAgICAgIGxldCB0b3BEaWZmZXJlbmNlOiBudW1iZXIgPSB0aGlzLnRpbWVEaWZmZXJlbmNlKHRoaXMuc2NoZWR1bGVbdGhpcy5jaGlsZFByb3BdW3RoaXMuc3RhcnRUaW1lUHJvcF0sIG9iamVjdFt0aGlzLnN0YXJ0VGltZVByb3BdKTtcclxuICAgICAgICAgIHNjaGVkdWxpbmdPYmplY3RzLnB1c2goXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogb2JqZWN0Wyd0aXRsZSddLFxyXG4gICAgICAgICAgICAgIHN1YlRpdGxlOiBvYmplY3RbJ3N1YlRpdGxlJ10sXHJcblxyXG4gICAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihvYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSksXHJcbiAgICAgICAgICAgICAgZW5kOiB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihvYmplY3RbdGhpcy5lbmRUaW1lUHJvcF0pLFxyXG4gICAgICAgICAgICAgIGlkOiBvYmplY3RbdGhpcy5pZFByb3BdLFxyXG4gICAgICAgICAgICAgIGhlaWdodDogdGhpcy50aW1lRGlmZmVyZW5jZShvYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSwgb2JqZWN0W3RoaXMuZW5kVGltZVByb3BdKSxcclxuICAgICAgICAgICAgICB0b3A6IHRvcERpZmZlcmVuY2UsXHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMgPSBzY2hlZHVsaW5nT2JqZWN0cztcclxuXHJcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0QmxvY2sob2JqOiBTY2hlZHVsaW5nT2JqZWN0KSB7XHJcbiAgICBvYmouc2VsZWN0ZWQgPSAhb2JqLnNlbGVjdGVkO1xyXG4gICAgaWYob2JqLnNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5mb3JFYWNoKChzY2hlZHVsZWRPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QpID0+IHtcclxuICAgICAgICBpZiAoc2NoZWR1bGVkT2JqZWN0LnNlbGVjdGVkICYmIHNjaGVkdWxlZE9iamVjdCAhPT0gb2JqKSB7XHJcbiAgICAgICAgICBzY2hlZHVsZWRPYmplY3Quc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QgPSBvYmo7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EcmFnU3RhcnRDdXN0b20ob2JqOiBTY2hlZHVsaW5nT2JqZWN0KSB7XHJcbiAgICB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdCA9IG9iajtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgaGFuZGxlRHJvcChkcmFnRXZlbnQ6IERyYWdFdmVudCwgaG91cjogc3RyaW5nKSB7XHJcbiAgICBkcmFnRXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGRyYWdFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZighdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXSB8fCAhdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXS5maW5kKChvYmplY3Q6IE9iamVjdCkgPT4gb2JqZWN0W3RoaXMuaWRQcm9wXSA9PT0gdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgJiYgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3Q/LmlkKSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QpIHtcclxuICAgICAgLy9UaGUgb3JkZXIgd2FzIHNjaGVkdWxlZCBhbmQgbmVlZHMgdG8gYmUgbW92ZWRcclxuXHJcbiAgICAgIGxldCBzdGFydDogRGF0ZSA9IHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LnN0YXJ0O1xyXG4gICAgICBsZXQgaG91clNwbGl0ID0gaG91ci5zcGxpdChcIjpcIilcclxuICAgICAgc3RhcnQuc2V0SG91cnMocGFyc2VJbnQoaG91clNwbGl0WzBdKSk7XHJcbiAgICAgIHN0YXJ0LnNldE1pbnV0ZXMocGFyc2VJbnQoaG91clNwbGl0WzFdKSk7XHJcbiAgICAgIGxldCBzY2hlZHVsZWRPYmplY3QgPSB0aGlzLnNjaGVkdWxlZE9iamVjdHMuZmluZCggc2NoZWR1bGVkT2JqZWN0ID0+IHNjaGVkdWxlZE9iamVjdC5pZCA9PT0gdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QuaWQpO1xyXG4gICAgICBpZihzY2hlZHVsZWRPYmplY3QpIHtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3Quc3RhcnQgPSBzdGFydDtcclxuXHJcbiAgICAgICAgbGV0IG9yaWdpbmFsT2JqZWN0OiBPYmplY3QgPSB0aGlzLnNjaGVkdWxlW3RoaXMub2JqZWN0c1Byb3BdLmZpbmQoKG9iamVjdDogT2JqZWN0KSA9PiBvYmplY3RbdGhpcy5pZFByb3BdID09PSB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdC5pZCk7XHJcbiAgICAgICAgb3JpZ2luYWxPYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSA9IHN0YXJ0O1xyXG4gICAgICAgIGxldCBlbmQ6IERhdGUgPSB0aGlzLmFkZE1pbnV0ZXMob3JpZ2luYWxPYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSwgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QuaGVpZ2h0KTtcclxuICAgICAgICBvcmlnaW5hbE9iamVjdFt0aGlzLmVuZFRpbWVQcm9wXSA9IGVuZDtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3QuZW5kID0gZW5kO1xyXG4gICAgICAgIHNjaGVkdWxlZE9iamVjdC50b3AgPSB0aGlzLnRpbWVEaWZmZXJlbmNlKHRoaXMuc2NoZWR1bGVbdGhpcy5jaGlsZFByb3BdW3RoaXMuc3RhcnRUaW1lUHJvcF0sIHNjaGVkdWxlZE9iamVjdC5zdGFydCk7XHJcbiAgICAgICAgc2NoZWR1bGVkT2JqZWN0LmhlaWdodCA9IHRoaXMudGltZURpZmZlcmVuY2Uoc2NoZWR1bGVkT2JqZWN0LnN0YXJ0LCBzY2hlZHVsZWRPYmplY3QuZW5kKTtcclxuXHJcbiAgICAgICAgdGhpcy50aW1lQ2hhbmdlRXZlbnQuZW1pdChvcmlnaW5hbE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgbGV0IHBhcnNlZDogU2NoZWR1bGluZ09iamVjdCA9IHRoaXMudHJ5UGFyc2VKU09OT2JqZWN0KGRyYWdFdmVudC5kYXRhVHJhbnNmZXIhLmdldERhdGEoXCJ0ZXh0XCIpKTtcclxuXHJcbiAgICAgIGlmICghcGFyc2VkKSB7XHJcbiAgICAgICAgdGhpcy5uZXdPYmplY3RQbGFuRXZlbnQuZW1pdCh7Y3VycmVudEhvdXI6IGhvdXIsIGRhdGE6IHBhcnNlZC50b1N0cmluZygpfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlQmV0d2VlbkNhbGVuZGFyc0V2ZW50LmVtaXQoe2hvdXI6IGhvdXIsIGRhdGE6IHBhcnNlZH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50LCBob3VyOiBzdHJpbmcpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZHJhZy1vdmVyJykpIHtcclxuICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2RyYWctb3ZlcicpO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QpIHtcclxuICAgICAgbGV0IG5ld1N0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LnN0YXJ0KTtcclxuICAgICAgbGV0IGhvdXJTcGxpdDogc3RyaW5nW10gPSBob3VyLnNwbGl0KFwiOlwiKTtcclxuICAgICAgbmV3U3RhcnREYXRlLnNldEhvdXJzKHBhcnNlSW50KGhvdXJTcGxpdFswXSkpO1xyXG4gICAgICBuZXdTdGFydERhdGUuc2V0SG91cnMocGFyc2VJbnQoaG91clNwbGl0WzFdKSk7XHJcblxyXG4gICAgICBpZih0aGlzLnNjaGVkdWxlZE9iamVjdHMuZmluZCggKHNjaGVkdWxlZE9iamVjdDogU2NoZWR1bGluZ09iamVjdCkgPT4gc2NoZWR1bGVkT2JqZWN0LnN0YXJ0ID09PSBuZXdTdGFydERhdGUgKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcHVibGljIGhhbmRsZURyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZHJhZy1vdmVyJykpIHtcclxuICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWctb3ZlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBUcmlnZ2VyZWQgd2hlbiByZXNpemluZyBzdGFydHNcclxuXHJcbiAgcHVibGljIG9uUmVzaXplU3RhcnQoZXZlbnQ6IE1vdXNlRXZlbnQsIG9iajogU2NoZWR1bGluZ09iamVjdCwgZGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nKSB7XHJcbiAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzaXplRGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QgPSBvYmo7XHJcbiAgICB0aGlzLmluaXRpYWxZID0gZXZlbnQuY2xpZW50WTtcclxuICAgIHRoaXMuaW5pdGlhbEhlaWdodCA9IG9iai5oZWlnaHQgfHwgMDtcclxuICAgIHRoaXMuaW5pdGlhbFRvcCA9IG9iai50b3AgfHwgMDtcclxuXHJcbiAgICAvLyBMaXN0ZW4gdG8gbW91c2Vtb3ZlIGFuZCBtb3VzZXVwIGV2ZW50cyBnbG9iYWxseVxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vblJlc2l6aW5nLmJpbmQodGhpcykpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVFbmQuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG4gIC8vIEhhbmRsZSByZXNpemluZyB3aXRoIHNuYXBwaW5nIHRvIDMwcHggaW5jcmVtZW50cyBhbmQgbWluaW11bSBoZWlnaHQgcmVzdHJpY3Rpb25cclxuXHJcbiAgcHVibGljIG9uUmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5yZXNpemluZyB8fCAhdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBkZWx0YVkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5pbml0aWFsWTtcclxuICAgIGNvbnN0IHNuYXBwZWREZWx0YVkgPSBNYXRoLnJvdW5kKGRlbHRhWSAvIDMwKSAqIDMwO1xyXG5cclxuICAgIGlmICh0aGlzLnJlc2l6ZURpcmVjdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgY29uc3QgbmV4dE9iamVjdCA9IHRoaXMuX2ZpbmROZXh0T2JqZWN0KHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0KTtcclxuICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gbmV4dE9iamVjdCA/IG5leHRPYmplY3QudG9wIC0gdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QudG9wIDogSW5maW5pdHk7XHJcblxyXG4gICAgICAvLyBCbG9jayBleHBhbmRpbmcgYmV5b25kIHRoZSBuZXh0IG9iamVjdCBhbmQgc2hyaW5raW5nIGJlbG93IDMwcHhcclxuICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5pbml0aWFsSGVpZ2h0ICsgc25hcHBlZERlbHRhWSwgdGhpcy5NSU5fSEVJR0hUKTtcclxuICAgICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QuaGVpZ2h0ID0gTWF0aC5taW4obmV3SGVpZ2h0LCBtYXhIZWlnaHQpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5yZXNpemVEaXJlY3Rpb24gPT09ICd0b3AnKSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzT2JqZWN0ID0gdGhpcy5fZmluZFByZXZpb3VzT2JqZWN0KHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0KTtcclxuICAgICAgY29uc3QgbWluVG9wID0gcHJldmlvdXNPYmplY3QgPyBwcmV2aW91c09iamVjdC50b3AgKyBwcmV2aW91c09iamVjdC5oZWlnaHQgOiAwO1xyXG5cclxuICAgICAgY29uc3QgbmV3SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5pbml0aWFsSGVpZ2h0IC0gc25hcHBlZERlbHRhWSwgdGhpcy5NSU5fSEVJR0hUKTtcclxuICAgICAgY29uc3QgbmV3VG9wID0gdGhpcy5pbml0aWFsVG9wICsgKHRoaXMuaW5pdGlhbEhlaWdodCAtIG5ld0hlaWdodCk7XHJcblxyXG4gICAgICAvLyBCbG9jayBtb3ZpbmcgYWJvdmUgdGhlIHByZXZpb3VzIG9iamVjdCdzIGJvdHRvbSBhbmQgc2hyaW5raW5nIGJlbG93IE1JTl9IRUlHSFRcclxuICAgICAgaWYgKG5ld0hlaWdodCA+PSB0aGlzLk1JTl9IRUlHSFQgJiYgbmV3VG9wID49IG1pblRvcCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LnRvcCA9IG5ld1RvcDtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdC5oZWlnaHQgPSBuZXdIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBFbnN1cmUgY2hhbmdlIGRldGVjdGlvbiBoYXBwZW5zXHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gcmVzaXppbmcgZW5kc1xyXG5cclxuICBwdWJsaWMgb25SZXNpemVFbmQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGxldCBvYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QgPSB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdDtcclxuXHJcbiAgICBpZihvYmplY3QgJiYgb2JqZWN0LnNlbGVjdGVkKSB7XHJcbiAgICAgIGxldCBvcmlnaW5hbE9iamVjdCA9IHRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF0uZmluZCgoc2NoZWR1bGVkT2JqZWN0OiBPYmplY3QpID0+IHNjaGVkdWxlZE9iamVjdFt0aGlzLmlkUHJvcF0gPT09IG9iamVjdC5pZCk7XHJcblxyXG4gICAgICBpZiAob3JpZ2luYWxPYmplY3QpIHtcclxuICAgICAgICAvLyBTdGFydCBkYXRlIGNhbGN1bGF0aW9uIGZpcnN0XHJcbiAgICAgICAgb3JpZ2luYWxPYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSA9IHRoaXMuYWRkTWludXRlcyh0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbih0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdKSwgb2JqZWN0LnRvcCk7XHJcblxyXG4gICAgICAgIC8vIFRoZW4gIGVuZCBkYXRlIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHRoZSBoZWlnaHQgb2YgdGhlIG9iamVjdFxyXG4gICAgICAgIG9yaWdpbmFsT2JqZWN0W3RoaXMuZW5kVGltZVByb3BdID0gdGhpcy5hZGRNaW51dGVzKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0pLCBvYmplY3QuaGVpZ2h0KTtcclxuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50aW1lQ2hhbmdlRXZlbnQuZW1pdChvcmlnaW5hbE9iamVjdCk7XHJcblxyXG4gICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0ID0gbnVsbDtcclxuXHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBSZW1vdmUgZ2xvYmFsIGV2ZW50IGxpc3RlbmVyc1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vblJlc2l6aW5nLmJpbmQodGhpcykpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25SZXNpemVFbmQuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdGltZURpZmZlcmVuY2UoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICBsZXQgZGlmZmVyZW5jZSA9IHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKGRhdGUxKS5nZXRUaW1lKCkgLyAxMDAwIC0gdGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4oZGF0ZTIpLmdldFRpbWUoKSAvIDEwMDA7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMoZGlmZmVyZW5jZSAvIDYwKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVUaW1lQmxvY2tzKCkge1xyXG4gICAgbGV0IHN0YXJ0VW5peDogbnVtYmVyID0gIXRoaXMuY2hpbGRQcm9wID8gdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLnN0YXJ0VGltZVByb3BdKSkgOiB0aGlzLmRhdGVUb1VuaXhFcG9jaCh0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbih0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdKSk7XHJcbiAgICBsZXQgZW5kVW5peDogbnVtYmVyID0gIXRoaXMuY2hpbGRQcm9wID8gdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmVuZFRpbWVQcm9wXSkpIDogdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmNoaWxkUHJvcF1bdGhpcy5lbmRUaW1lUHJvcF0pKTtcclxuXHJcbiAgICBsZXQgaW50ZXJ2YWwgPSA2MCAqIDYwO1xyXG5cclxuICAgIGZvciAobGV0IGhvdXJDb3VudCA9IHN0YXJ0VW5peDsgaG91ckNvdW50IDw9IGVuZFVuaXg7IGhvdXJDb3VudCArPSBpbnRlcnZhbCkge1xyXG4gICAgICBsZXQgaG91ciA9IG5ldyBEYXRlKGhvdXJDb3VudCAqIDEwMDApXHJcbiAgICAgIGxldCBob3VyU3RyaW5nID0gYCR7aG91ci5nZXRIb3VycygpfToke2hvdXIuZ2V0TWludXRlcygpID09PSAwID8gJzAwJyA6IGhvdXIuZ2V0TWludXRlcygpfWA7XHJcbiAgICAgIHRoaXMuaG91ckxhYmVscy5wdXNoKGhvdXJTdHJpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRhdGVUb1VuaXhFcG9jaChkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGRhdGUuZ2V0VGltZSgpKSAvIDEwMDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTWludXRlcyhkYXRlOiBEYXRlLCBtaW51dGVzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIG1pbnV0ZXMgKiA2MDAwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJ5UGFyc2VKU09OT2JqZWN0KGpzb25TdHJpbmc6IHN0cmluZykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IG8gPSBKU09OLnBhcnNlKGpzb25TdHJpbmcpO1xyXG4gICAgICBpZiAobyAmJiB0eXBlb2YgbyA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgIHJldHVybiBvO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEhhbGZIb3VyKGhvdXI6IHN0cmluZykge1xyXG4gICAgbGV0IHNwbGl0ID0gaG91ci5zcGxpdChcIjpcIik7XHJcbiAgICBzcGxpdFsxXSA9IFwiMzBcIjtcclxuICAgIHJldHVybiBzcGxpdC5qb2luKCc6Jyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydFRaKGRhdGUsIHR6U3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiID8gbmV3IERhdGUoZGF0ZSkgOiBkYXRlKS50b0xvY2FsZVN0cmluZyhcImVuLVVTXCIsIHt0aW1lWm9uZTogdHpTdHJpbmd9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydERhdGVUb0V1cm9wZWFuKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRUWihkYXRlLCAnRXVyb3BlL0Ftc3RlcmRhbScpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMuZm9yRWFjaCggKHNjaGVkdWxlZE9iamVjdDogU2NoZWR1bGluZ09iamVjdCkgPT4ge1xyXG4gICAgICBpZihzY2hlZHVsZWRPYmplY3Quc2VsZWN0ZWQpIHtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3Quc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiJdfQ==
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG91ci1zY2hlZHVsaW5nLWV4cGFuZGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlL2hvdXItc2NoZWR1bGluZy1leHBhbmRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsVUFBVSxFQUNyQixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQWdFdkIsTUFBTSxPQUFPLGlDQUFpQztJQTZENUMsWUFDVSxLQUF3QixFQUN4QixJQUFnQjtRQURoQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBN0RuQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUF1QixFQUFFLENBQUM7UUFHekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQiwwQkFBcUIsR0FBNEIsSUFBSSxDQUFDO1FBQ3RELDBCQUFxQixHQUE0QixJQUFJLENBQUM7UUFDdEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBdUJkLG9CQUFlLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkUsdUJBQWtCLEdBQXdELElBQUksWUFBWSxFQUd2RyxDQUFDO1FBRVksOEJBQXlCLEdBQXdELElBQUksWUFBWSxFQUF5QyxDQUFDO1FBR3JKLGNBQVMsR0FBWSxJQUFJLENBQUM7SUFtQmpDLENBQUM7SUFoREQsSUFBb0IsUUFBUSxDQUFFLEtBQWE7UUFDekMsSUFBRyxLQUFLLElBQUksS0FBSyxLQUFLLElBQUks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O0dBdUNUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBekVDLGlCQUFpQjtZQUNOLFVBQVU7Ozt1QkEwRnBCLEtBQUs7NEJBYUwsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzs2QkFDTCxLQUFLO3FCQUNMLEtBQUs7OEJBRUwsTUFBTTtpQ0FDTixNQUFNO3dDQUtOLE1BQU07d0JBRU4sV0FBVyxTQUFDLHFDQUFxQzt1QkFHakQsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzt1QkFLeEMsWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW50ZXJmYWNlIFNjaGVkdWxpbmdPYmplY3Qge1xyXG4gIHN0YXJ0OiBEYXRlO1xyXG4gIGVuZDogRGF0ZTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzdWJUaXRsZT86IHN0cmluZztcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgdG9wPzogbnVtYmVyO1xyXG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgc2hvd1RvcFJlc2l6ZXI/OiBib29sZWFuO1xyXG4gIHNob3dCb3R0b21SZXNpemVyPzogYm9vbGVhbjtcclxuXHJcblxyXG4gIFtrZXk6IHN0cmluZ106IGFueTsgLy8gQWxsb3dzIGR5bmFtaWMgcHJvcGVydGllcyBpbmNsdWRpbmcgdW5pcXVlIGlkZW50aWZpZXJzXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28taG91ci1zY2hlZHVsaW5nLWV4cGFuZGFibGUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGltZS1ibG9ja1wiICpuZ0Zvcj1cImxldCBob3VyIG9mIGhvdXJMYWJlbHNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbFwiPjxzcGFuIFt0ZXh0Q29udGVudF09XCJob3VyXCI+PC9zcGFuPjwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWRpc3BsYXlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaXJzdC1oYWxmLWhvdXIgb2JqZWN0LWhhbGZcIlxyXG4gICAgICAgICAgICAgICAoZHJhZ292ZXIpPVwiYWxsb3dEcm9wKCRldmVudCwgaG91cilcIlxyXG4gICAgICAgICAgICAgICAoZHJhZ2xlYXZlKT1cImhhbmRsZURyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGRyb3ApPVwiaGFuZGxlRHJvcCgkZXZlbnQsIGhvdXIpXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kLWhhbGYtaG91ciBvYmplY3QtaGFsZlwiXHJcbiAgICAgICAgICAgICAgIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50LCBhZGRIYWxmSG91cihob3VyKSlcIlxyXG4gICAgICAgICAgICAgICAoZHJhZ2xlYXZlKT1cImhhbmRsZURyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGRyb3ApPVwiaGFuZGxlRHJvcCgkZXZlbnQsIGFkZEhhbGZIb3VyKGhvdXIpKVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjaGVkdWxlZC1vYmplY3RzXCIgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG4gICAgICAgICAgICAgIG9iamVjdHM6IHNjaGVkdWxlZE9iamVjdHMsXHJcbiAgICAgICAgICAgICAgb25TZWxlY3RCbG9jazogdGhpcy5vblNlbGVjdEJsb2NrLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgb25SZXNpemVTdGFydDogdGhpcy5vblJlc2l6ZVN0YXJ0LmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgb25EcmFnU3RhcnRDdXN0b206IHRoaXMub25EcmFnU3RhcnRDdXN0b20uYmluZCh0aGlzKVxyXG5cclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb3VyU2NoZWR1bGluZ0V4cGFuZGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgaG91ckxhYmVsczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgc2NoZWR1bGVkT2JqZWN0czogU2NoZWR1bGluZ09iamVjdFtdID0gW107XHJcblxyXG5cclxuICBwcml2YXRlIHJlc2l6aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSByZXNpemVEaXJlY3Rpb246ICd0b3AnIHwgJ2JvdHRvbSc7XHJcbiAgcHJpdmF0ZSBpbml0aWFsWTogbnVtYmVyO1xyXG4gIHByaXZhdGUgaW5pdGlhbEhlaWdodDogbnVtYmVyO1xyXG4gIHByaXZhdGUgaW5pdGlhbFRvcDogbnVtYmVyO1xyXG4gIHByaXZhdGUgY3VycmVudFJlc2l6aW5nT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBjdXJyZW50RHJhZ2dpbmdPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIE1JTl9IRUlHSFQgPSAzMDtcclxuICBwcml2YXRlIF9zY2hlZHVsZTogT2JqZWN0ID0ge307XHJcblxyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNjaGVkdWxlKCB2YWx1ZTogT2JqZWN0KSB7XHJcbiAgICBpZih2YWx1ZSAmJiB2YWx1ZSAhPT0gdGhpcy5fc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJPYmplY3RzKCk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5fc2NoZWR1bGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2NoZWR1bGUoKTogT2JqZWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9zY2hlZHVsZTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc3RhcnRUaW1lUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmRUaW1lUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvYmplY3RzUHJvcDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGlsZFByb3A6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIGlkUHJvcDogc3RyaW5nOyAgLy8gSW5wdXQgZm9yIHVuaXF1ZSBpZGVudGlmaWVyIHByb3BlcnR5XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdGltZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8T2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbmV3T2JqZWN0UGxhbkV2ZW50OiBFdmVudEVtaXR0ZXI8eyBjdXJyZW50SG91cjogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGN1cnJlbnRIb3VyOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBzdHJpbmdcclxuICB9PigpO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIG1vdmVCZXR3ZWVuQ2FsZW5kYXJzRXZlbnQ6IEV2ZW50RW1pdHRlcjx7aG91cjogc3RyaW5nLCBkYXRhOlNjaGVkdWxpbmdPYmplY3R9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e2hvdXI6IHN0cmluZywgZGF0YTpTY2hlZHVsaW5nT2JqZWN0fT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1ob3VyLXNjaGVkdWxpbmctZXhwYW5kYWJsZScpXHJcbiAgcHVibGljIHNob3dDbGFzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvblJlc2l6ZShldmVudDogeyB0YXJnZXQ6IHsgaW5uZXJXaWR0aDogYW55OyB9OyB9KSB7XHJcbiAgICBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgY2xpY2tPdXQoZXZlbnQ6IHsgdGFyZ2V0OiBhbnk7IH0pIHtcclxuICAgIGlmKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRGVzZWxlY3RBbGwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVUaW1lQmxvY2tzKCk7XHJcbiAgICBpZih0aGlzLnNjaGVkdWxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyT2JqZWN0cygpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgLy8gQ2FsY3VsYXRlIHByb3BlcnRpZXMgZm9yIGVhY2ggc2NoZWR1bGVkIG9iamVjdCB0byBkZXRlcm1pbmUgcmVzaXplciB2aXNpYmlsaXR5XHJcblxyXG5cclxuICAvLyBGaW5kIHRoZSBuZXh0IG9iamVjdCBpbiB0aGUgc2NoZWR1bGVkT2JqZWN0cyBsaXN0XHJcbiAgcHJpdmF0ZSBfZmluZE5leHRPYmplY3QoY3VycmVudE9iamVjdDogU2NoZWR1bGluZ09iamVjdCk6IFNjaGVkdWxpbmdPYmplY3QgfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5pbmRleE9mKGN1cnJlbnRPYmplY3QpO1xyXG4gICAgaWYgKGN1cnJlbnRJbmRleCA+PSAwICYmIGN1cnJlbnRJbmRleCA8IHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5sZW5ndGggLSAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlZE9iamVjdHNbY3VycmVudEluZGV4ICsgMV07IC8vIFRoZSBuZXh0IG9iamVjdCBpbiB0aGUgbGlzdFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7IC8vIE5vIG5leHQgb2JqZWN0IChpdCdzIHRoZSBsYXN0IG9uZSlcclxuICB9XHJcblxyXG4gIC8vIEZpbmQgdGhlIHByZXZpb3VzIG9iamVjdCBpbiB0aGUgc2NoZWR1bGVkT2JqZWN0cyBsaXN0XHJcbiAgcHJpdmF0ZSBfZmluZFByZXZpb3VzT2JqZWN0KGN1cnJlbnRPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QpOiBTY2hlZHVsaW5nT2JqZWN0IHwgbnVsbCB7XHJcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLnNjaGVkdWxlZE9iamVjdHMuaW5kZXhPZihjdXJyZW50T2JqZWN0KTtcclxuICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlZE9iamVjdHNbY3VycmVudEluZGV4IC0gMV07IC8vIFRoZSBwcmV2aW91cyBvYmplY3QgaW4gdGhlIGxpc3RcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsOyAvLyBObyBwcmV2aW91cyBvYmplY3QgKGl0J3MgdGhlIGZpcnN0IG9uZSlcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgcmVuZGVyT2JqZWN0cygpIHtcclxuICAgIGlmKHRoaXMuc2NoZWR1bGUpIHtcclxuICAgICAgaWYgKHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzID0gW107XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG9iamVjdHM6IE9iamVjdFtdID0gdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXTtcclxuXHJcbiAgICAgIGxldCBzY2hlZHVsaW5nT2JqZWN0czogU2NoZWR1bGluZ09iamVjdFtdID0gW107XHJcblxyXG5cclxuICAgICAgaWYgKG9iamVjdHMgJiYgb2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKG9iamVjdCA9PiB7XHJcbiAgICAgICAgICBsZXQgdG9wRGlmZmVyZW5jZTogbnVtYmVyID0gdGhpcy50aW1lRGlmZmVyZW5jZSh0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdLCBvYmplY3RbdGhpcy5zdGFydFRpbWVQcm9wXSk7XHJcbiAgICAgICAgICBzY2hlZHVsaW5nT2JqZWN0cy5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IG9iamVjdFsndGl0bGUnXSxcclxuICAgICAgICAgICAgICBzdWJUaXRsZTogb2JqZWN0WydzdWJUaXRsZSddLFxyXG5cclxuICAgICAgICAgICAgICBzdGFydDogdGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4ob2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0pLFxyXG4gICAgICAgICAgICAgIGVuZDogdGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4ob2JqZWN0W3RoaXMuZW5kVGltZVByb3BdKSxcclxuICAgICAgICAgICAgICBpZDogb2JqZWN0W3RoaXMuaWRQcm9wXSxcclxuICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMudGltZURpZmZlcmVuY2Uob2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0sIG9iamVjdFt0aGlzLmVuZFRpbWVQcm9wXSksXHJcbiAgICAgICAgICAgICAgdG9wOiB0b3BEaWZmZXJlbmNlLFxyXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zY2hlZHVsZWRPYmplY3RzID0gc2NoZWR1bGluZ09iamVjdHM7XHJcblxyXG4gICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlbGVjdEJsb2NrKG9iajogU2NoZWR1bGluZ09iamVjdCkge1xyXG4gICAgb2JqLnNlbGVjdGVkID0gIW9iai5zZWxlY3RlZDtcclxuICAgIGlmKG9iai5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNjaGVkdWxlZE9iamVjdHMuZm9yRWFjaCgoc2NoZWR1bGVkT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHNjaGVkdWxlZE9iamVjdC5zZWxlY3RlZCAmJiBzY2hlZHVsZWRPYmplY3QgIT09IG9iaikge1xyXG4gICAgICAgICAgc2NoZWR1bGVkT2JqZWN0LnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0ID0gb2JqO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRHJhZ1N0YXJ0Q3VzdG9tKG9iajogU2NoZWR1bGluZ09iamVjdCkge1xyXG4gICAgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgPSBvYmo7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGhhbmRsZURyb3AoZHJhZ0V2ZW50OiBEcmFnRXZlbnQsIGhvdXI6IHN0cmluZykge1xyXG4gICAgZHJhZ0V2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBkcmFnRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYoIXRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF0gfHwgIXRoaXMuc2NoZWR1bGVbdGhpcy5vYmplY3RzUHJvcF0uZmluZCgob2JqZWN0OiBPYmplY3QpID0+IG9iamVjdFt0aGlzLmlkUHJvcF0gPT09IHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0ICYmIHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0Py5pZCkpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0KSB7XHJcbiAgICAgIC8vVGhlIG9yZGVyIHdhcyBzY2hlZHVsZWQgYW5kIG5lZWRzIHRvIGJlIG1vdmVkXHJcblxyXG4gICAgICBsZXQgc3RhcnQ6IERhdGUgPSB0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdC5zdGFydDtcclxuICAgICAgbGV0IGhvdXJTcGxpdCA9IGhvdXIuc3BsaXQoXCI6XCIpXHJcbiAgICAgIHN0YXJ0LnNldEhvdXJzKHBhcnNlSW50KGhvdXJTcGxpdFswXSkpO1xyXG4gICAgICBzdGFydC5zZXRNaW51dGVzKHBhcnNlSW50KGhvdXJTcGxpdFsxXSkpO1xyXG4gICAgICBsZXQgc2NoZWR1bGVkT2JqZWN0ID0gdGhpcy5zY2hlZHVsZWRPYmplY3RzLmZpbmQoIHNjaGVkdWxlZE9iamVjdCA9PiBzY2hlZHVsZWRPYmplY3QuaWQgPT09IHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LmlkKTtcclxuICAgICAgaWYoc2NoZWR1bGVkT2JqZWN0KSB7XHJcbiAgICAgICAgc2NoZWR1bGVkT2JqZWN0LnN0YXJ0ID0gc3RhcnQ7XHJcblxyXG4gICAgICAgIGxldCBvcmlnaW5hbE9iamVjdDogT2JqZWN0ID0gdGhpcy5zY2hlZHVsZVt0aGlzLm9iamVjdHNQcm9wXS5maW5kKChvYmplY3Q6IE9iamVjdCkgPT4gb2JqZWN0W3RoaXMuaWRQcm9wXSA9PT0gdGhpcy5jdXJyZW50RHJhZ2dpbmdPYmplY3QuaWQpO1xyXG4gICAgICAgIG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0gPSBzdGFydDtcclxuICAgICAgICBsZXQgZW5kOiBEYXRlID0gdGhpcy5hZGRNaW51dGVzKG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0sIHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0LmhlaWdodCk7XHJcbiAgICAgICAgb3JpZ2luYWxPYmplY3RbdGhpcy5lbmRUaW1lUHJvcF0gPSBlbmQ7XHJcbiAgICAgICAgc2NoZWR1bGVkT2JqZWN0LmVuZCA9IGVuZDtcclxuICAgICAgICBzY2hlZHVsZWRPYmplY3QudG9wID0gdGhpcy50aW1lRGlmZmVyZW5jZSh0aGlzLnNjaGVkdWxlW3RoaXMuY2hpbGRQcm9wXVt0aGlzLnN0YXJ0VGltZVByb3BdLCBzY2hlZHVsZWRPYmplY3Quc3RhcnQpO1xyXG4gICAgICAgIHNjaGVkdWxlZE9iamVjdC5oZWlnaHQgPSB0aGlzLnRpbWVEaWZmZXJlbmNlKHNjaGVkdWxlZE9iamVjdC5zdGFydCwgc2NoZWR1bGVkT2JqZWN0LmVuZCk7XHJcblxyXG4gICAgICAgIHRoaXMudGltZUNoYW5nZUV2ZW50LmVtaXQob3JpZ2luYWxPYmplY3QpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0ID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGxldCBwYXJzZWQ6IFNjaGVkdWxpbmdPYmplY3QgPSB0aGlzLnRyeVBhcnNlSlNPTk9iamVjdChkcmFnRXZlbnQuZGF0YVRyYW5zZmVyIS5nZXREYXRhKFwidGV4dFwiKSk7XHJcblxyXG4gICAgICBpZiAoIXBhcnNlZCkge1xyXG4gICAgICAgIHRoaXMubmV3T2JqZWN0UGxhbkV2ZW50LmVtaXQoe2N1cnJlbnRIb3VyOiBob3VyLCBkYXRhOiBwYXJzZWQudG9TdHJpbmcoKX0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW92ZUJldHdlZW5DYWxlbmRhcnNFdmVudC5lbWl0KHtob3VyOiBob3VyLCBkYXRhOiBwYXJzZWR9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhbGxvd0Ryb3AoZXZlbnQ6IERyYWdFdmVudCwgaG91cjogc3RyaW5nKSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2RyYWctb3ZlcicpKSB7XHJcbiAgICAgIHRhcmdldC5jbGFzc0xpc3QuYWRkKCdkcmFnLW92ZXInKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY3VycmVudERyYWdnaW5nT2JqZWN0KSB7XHJcbiAgICAgIGxldCBuZXdTdGFydERhdGU6IERhdGUgPSB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbih0aGlzLmN1cnJlbnREcmFnZ2luZ09iamVjdC5zdGFydCk7XHJcbiAgICAgIGxldCBob3VyU3BsaXQ6IHN0cmluZ1tdID0gaG91ci5zcGxpdChcIjpcIik7XHJcbiAgICAgIG5ld1N0YXJ0RGF0ZS5zZXRIb3VycyhwYXJzZUludChob3VyU3BsaXRbMF0pKTtcclxuICAgICAgbmV3U3RhcnREYXRlLnNldEhvdXJzKHBhcnNlSW50KGhvdXJTcGxpdFsxXSkpO1xyXG5cclxuICAgICAgaWYodGhpcy5zY2hlZHVsZWRPYmplY3RzLmZpbmQoIChzY2hlZHVsZWRPYmplY3Q6IFNjaGVkdWxpbmdPYmplY3QpID0+IHNjaGVkdWxlZE9iamVjdC5zdGFydCA9PT0gbmV3U3RhcnREYXRlICkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVEcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2RyYWctb3ZlcicpKSB7XHJcbiAgICAgIHRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnLW92ZXInKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gcmVzaXppbmcgc3RhcnRzXHJcblxyXG4gIHB1YmxpYyBvblJlc2l6ZVN0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50LCBvYmo6IFNjaGVkdWxpbmdPYmplY3QsIGRpcmVjdGlvbjogJ3RvcCcgfCAnYm90dG9tJykge1xyXG4gICAgdGhpcy5yZXNpemluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc2l6ZURpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0ID0gb2JqO1xyXG4gICAgdGhpcy5pbml0aWFsWSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgICB0aGlzLmluaXRpYWxIZWlnaHQgPSBvYmouaGVpZ2h0IHx8IDA7XHJcbiAgICB0aGlzLmluaXRpYWxUb3AgPSBvYmoudG9wIHx8IDA7XHJcblxyXG4gICAgLy8gTGlzdGVuIHRvIG1vdXNlbW92ZSBhbmQgbW91c2V1cCBldmVudHMgZ2xvYmFsbHlcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25SZXNpemluZy5iaW5kKHRoaXMpKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uUmVzaXplRW5kLmJpbmQodGhpcykpO1xyXG4gIH1cclxuICAvLyBIYW5kbGUgcmVzaXppbmcgd2l0aCBzbmFwcGluZyB0byAzMHB4IGluY3JlbWVudHMgYW5kIG1pbmltdW0gaGVpZ2h0IHJlc3RyaWN0aW9uXHJcblxyXG4gIHB1YmxpYyBvblJlc2l6aW5nKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMucmVzaXppbmcgfHwgIXRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZGVsdGFZID0gZXZlbnQuY2xpZW50WSAtIHRoaXMuaW5pdGlhbFk7XHJcbiAgICBjb25zdCBzbmFwcGVkRGVsdGFZID0gTWF0aC5yb3VuZChkZWx0YVkgLyAzMCkgKiAzMDtcclxuXHJcbiAgICBpZiAodGhpcy5yZXNpemVEaXJlY3Rpb24gPT09ICdib3R0b20nKSB7XHJcbiAgICAgIGNvbnN0IG5leHRPYmplY3QgPSB0aGlzLl9maW5kTmV4dE9iamVjdCh0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdCk7XHJcbiAgICAgIGNvbnN0IG1heEhlaWdodCA9IG5leHRPYmplY3QgPyBuZXh0T2JqZWN0LnRvcCAtIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LnRvcCA6IEluZmluaXR5O1xyXG5cclxuICAgICAgLy8gQmxvY2sgZXhwYW5kaW5nIGJleW9uZCB0aGUgbmV4dCBvYmplY3QgYW5kIHNocmlua2luZyBiZWxvdyAzMHB4XHJcbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KHRoaXMuaW5pdGlhbEhlaWdodCArIHNuYXBwZWREZWx0YVksIHRoaXMuTUlOX0hFSUdIVCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFJlc2l6aW5nT2JqZWN0LmhlaWdodCA9IE1hdGgubWluKG5ld0hlaWdodCwgbWF4SGVpZ2h0KTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzaXplRGlyZWN0aW9uID09PSAndG9wJykge1xyXG4gICAgICBjb25zdCBwcmV2aW91c09iamVjdCA9IHRoaXMuX2ZpbmRQcmV2aW91c09iamVjdCh0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdCk7XHJcbiAgICAgIGNvbnN0IG1pblRvcCA9IHByZXZpb3VzT2JqZWN0ID8gcHJldmlvdXNPYmplY3QudG9wICsgcHJldmlvdXNPYmplY3QuaGVpZ2h0IDogMDtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KHRoaXMuaW5pdGlhbEhlaWdodCAtIHNuYXBwZWREZWx0YVksIHRoaXMuTUlOX0hFSUdIVCk7XHJcbiAgICAgIGNvbnN0IG5ld1RvcCA9IHRoaXMuaW5pdGlhbFRvcCArICh0aGlzLmluaXRpYWxIZWlnaHQgLSBuZXdIZWlnaHQpO1xyXG5cclxuICAgICAgLy8gQmxvY2sgbW92aW5nIGFib3ZlIHRoZSBwcmV2aW91cyBvYmplY3QncyBib3R0b20gYW5kIHNocmlua2luZyBiZWxvdyBNSU5fSEVJR0hUXHJcbiAgICAgIGlmIChuZXdIZWlnaHQgPj0gdGhpcy5NSU5fSEVJR0hUICYmIG5ld1RvcCA+PSBtaW5Ub3ApIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdC50b3AgPSBuZXdUb3A7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3QuaGVpZ2h0ID0gbmV3SGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRW5zdXJlIGNoYW5nZSBkZXRlY3Rpb24gaGFwcGVuc1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIC8vIFRyaWdnZXJlZCB3aGVuIHJlc2l6aW5nIGVuZHNcclxuXHJcbiAgcHVibGljIG9uUmVzaXplRW5kKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBsZXQgb2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0ID0gdGhpcy5jdXJyZW50UmVzaXppbmdPYmplY3Q7XHJcblxyXG4gICAgaWYob2JqZWN0ICYmIG9iamVjdC5zZWxlY3RlZCkge1xyXG4gICAgICBsZXQgb3JpZ2luYWxPYmplY3QgPSB0aGlzLnNjaGVkdWxlW3RoaXMub2JqZWN0c1Byb3BdLmZpbmQoKHNjaGVkdWxlZE9iamVjdDogT2JqZWN0KSA9PiBzY2hlZHVsZWRPYmplY3RbdGhpcy5pZFByb3BdID09PSBvYmplY3QuaWQpO1xyXG5cclxuICAgICAgaWYgKG9yaWdpbmFsT2JqZWN0KSB7XHJcbiAgICAgICAgLy8gU3RhcnQgZGF0ZSBjYWxjdWxhdGlvbiBmaXJzdFxyXG4gICAgICAgIG9yaWdpbmFsT2JqZWN0W3RoaXMuc3RhcnRUaW1lUHJvcF0gPSB0aGlzLmFkZE1pbnV0ZXModGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmNoaWxkUHJvcF1bdGhpcy5zdGFydFRpbWVQcm9wXSksIG9iamVjdC50b3ApO1xyXG5cclxuICAgICAgICAvLyBUaGVuICBlbmQgZGF0ZSBjYWxjdWxhdGlvbiBiYXNlZCBvbiB0aGUgaGVpZ2h0IG9mIHRoZSBvYmplY3RcclxuICAgICAgICBvcmlnaW5hbE9iamVjdFt0aGlzLmVuZFRpbWVQcm9wXSA9IHRoaXMuYWRkTWludXRlcyh0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihvcmlnaW5hbE9iamVjdFt0aGlzLnN0YXJ0VGltZVByb3BdKSwgb2JqZWN0LmhlaWdodCk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGltZUNoYW5nZUV2ZW50LmVtaXQob3JpZ2luYWxPYmplY3QpO1xyXG5cclxuICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmN1cnJlbnRSZXNpemluZ09iamVjdCA9IG51bGw7XHJcblxyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gUmVtb3ZlIGdsb2JhbCBldmVudCBsaXN0ZW5lcnNcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25SZXNpemluZy5iaW5kKHRoaXMpKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uUmVzaXplRW5kLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRpbWVEaWZmZXJlbmNlKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSkge1xyXG4gICAgbGV0IGRpZmZlcmVuY2UgPSB0aGlzLmNvbnZlcnREYXRlVG9FdXJvcGVhbihkYXRlMSkuZ2V0VGltZSgpIC8gMTAwMCAtIHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKGRhdGUyKS5nZXRUaW1lKCkgLyAxMDAwO1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKGRpZmZlcmVuY2UgLyA2MCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGdlbmVyYXRlVGltZUJsb2NrcygpIHtcclxuICAgIGxldCBzdGFydFVuaXg6IG51bWJlciA9ICF0aGlzLmNoaWxkUHJvcCA/IHRoaXMuZGF0ZVRvVW5peEVwb2NoKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuc2NoZWR1bGVbdGhpcy5zdGFydFRpbWVQcm9wXSkpIDogdGhpcy5kYXRlVG9Vbml4RXBvY2godGhpcy5jb252ZXJ0RGF0ZVRvRXVyb3BlYW4odGhpcy5zY2hlZHVsZVt0aGlzLmNoaWxkUHJvcF1bdGhpcy5zdGFydFRpbWVQcm9wXSkpO1xyXG4gICAgbGV0IGVuZFVuaXg6IG51bWJlciA9ICF0aGlzLmNoaWxkUHJvcCA/IHRoaXMuZGF0ZVRvVW5peEVwb2NoKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuc2NoZWR1bGVbdGhpcy5lbmRUaW1lUHJvcF0pKSA6IHRoaXMuZGF0ZVRvVW5peEVwb2NoKHRoaXMuY29udmVydERhdGVUb0V1cm9wZWFuKHRoaXMuc2NoZWR1bGVbdGhpcy5jaGlsZFByb3BdW3RoaXMuZW5kVGltZVByb3BdKSk7XHJcblxyXG4gICAgbGV0IGludGVydmFsID0gNjAgKiA2MDtcclxuXHJcbiAgICBmb3IgKGxldCBob3VyQ291bnQgPSBzdGFydFVuaXg7IGhvdXJDb3VudCA8PSBlbmRVbml4OyBob3VyQ291bnQgKz0gaW50ZXJ2YWwpIHtcclxuICAgICAgbGV0IGhvdXIgPSBuZXcgRGF0ZShob3VyQ291bnQgKiAxMDAwKVxyXG4gICAgICBsZXQgaG91clN0cmluZyA9IGAke2hvdXIuZ2V0SG91cnMoKX06JHtob3VyLmdldE1pbnV0ZXMoKSA9PT0gMCA/ICcwMCcgOiBob3VyLmdldE1pbnV0ZXMoKX1gO1xyXG4gICAgICB0aGlzLmhvdXJMYWJlbHMucHVzaChob3VyU3RyaW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkYXRlVG9Vbml4RXBvY2goZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcihkYXRlLmdldFRpbWUoKSkgLyAxMDAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE1pbnV0ZXMoZGF0ZTogRGF0ZSwgbWludXRlczogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyBtaW51dGVzICogNjAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyeVBhcnNlSlNPTk9iamVjdChqc29uU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCBvID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcclxuICAgICAgaWYgKG8gJiYgdHlwZW9mIG8gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRIYWxmSG91cihob3VyOiBzdHJpbmcpIHtcclxuICAgIGxldCBzcGxpdCA9IGhvdXIuc3BsaXQoXCI6XCIpO1xyXG4gICAgc3BsaXRbMV0gPSBcIjMwXCI7XHJcbiAgICByZXR1cm4gc3BsaXQuam9pbignOicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnRUWihkYXRlLCB0elN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKCh0eXBlb2YgZGF0ZSA9PT0gXCJzdHJpbmdcIiA/IG5ldyBEYXRlKGRhdGUpIDogZGF0ZSk/LnRvTG9jYWxlU3RyaW5nKFwiZW4tVVNcIiwge3RpbWVab25lOiB0elN0cmluZ30pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb252ZXJ0RGF0ZVRvRXVyb3BlYW4oZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udmVydFRaKGRhdGUsICdFdXJvcGUvQW1zdGVyZGFtJylcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZXNlbGVjdEFsbCgpIHtcclxuICAgIHRoaXMuc2NoZWR1bGVkT2JqZWN0cy5mb3JFYWNoKCAoc2NoZWR1bGVkT2JqZWN0OiBTY2hlZHVsaW5nT2JqZWN0KSA9PiB7XHJcbiAgICAgIGlmKHNjaGVkdWxlZE9iamVjdC5zZWxlY3RlZCkge1xyXG4gICAgICAgIHNjaGVkdWxlZE9iamVjdC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbn1cclxuIl19
@@ -15254,7 +15254,8 @@ class HourSchedulingExpandableComponent {
15254
15254
  return split.join(':');
15255
15255
  }
15256
15256
  convertTZ(date, tzString) {
15257
- return new Date((typeof date === "string" ? new Date(date) : date).toLocaleString("en-US", { timeZone: tzString }));
15257
+ var _a;
15258
+ return new Date((_a = (typeof date === "string" ? new Date(date) : date)) === null || _a === void 0 ? void 0 : _a.toLocaleString("en-US", { timeZone: tzString }));
15258
15259
  }
15259
15260
  convertDateToEuropean(date) {
15260
15261
  return this.convertTZ(date, 'Europe/Amsterdam');