@tsi-developpement/tsi-shared-ui 1.10.22 → 1.10.23

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.
@@ -375,8 +375,8 @@ export class TsiCalenderComponent {
375
375
  if (this.calendar) {
376
376
  const calendarApi = this.calendar.getApi();
377
377
  this.dateRangeChange.emit({
378
- start: new Date(calendarApi.view.currentStart.setDate(calendarApi.view.currentStart.getDate() + 1)),
379
- end: new Date(calendarApi.view.currentEnd.setDate(calendarApi.view.currentEnd.getDate() + 1)),
378
+ start: calendarApi.view.currentStart,
379
+ end: calendarApi.view.currentEnd,
380
380
  viewType: calendarApi.view.type
381
381
  });
382
382
  const newViewType = calendarApi.view.type;
@@ -433,4 +433,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
433
433
  }], entityInfo: [{
434
434
  type: Input
435
435
  }] } });
436
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWNhbGVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBYSxNQUFNLEVBQThCLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHeE0sT0FBTyxpQkFBeUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLGFBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLGNBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLFVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLGdCQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixJQUFhLFVBQVUsQ0FBQyxLQUFZO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQWtCRCxZQUNVLGVBQWtDLEVBQ2xDLGlCQUFtQyxFQUNuQyxlQUF1QyxFQUN2QyxTQUFtQixFQUNuQixhQUEyQixFQUMzQixRQUFt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QkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNBLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDVSxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDTyxVQUFVO3NCQUF0QixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBcUNFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckFwaSwgQ2FsZW5kYXJPcHRpb25zLCBEYXRlU2VsZWN0QXJnLCBFdmVudEFwaSwgRXZlbnRDbGlja0FyZywgRXZlbnRJbnB1dCB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHByaW1lTmcgZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiwgeyBFdmVudFJlc2l6ZURvbmVBcmcgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcclxuaW1wb3J0IHRpbWVHcmlkUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvdGltZWdyaWQnO1xyXG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xyXG5pbXBvcnQgbXVsdGlNb250aFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL211bHRpbW9udGgnO1xyXG5pbXBvcnQgeyBGdWxsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRfTW9kZXMsIE1vZGVzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sb2NhbGl6ZS5waXBlJztcclxuaW1wb3J0IHsgQ3J1ZEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS9jcnVkLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vdHNpLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRTY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tbW9uL2V2ZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IEVudGl0eUluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwaURhdGVUaW1lRm9ybWF0IH0gZnJvbSAnLi4vLi4vY29uc3RzL3RzaS1jb25zdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0c2ktY2FsZW5kZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY2FsZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1jYWxlbmRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lDYWxlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgY3VycmVudENvbnRleHRNZW51RXZlbnQ6IGFueTtcclxuICBAVmlld0NoaWxkKENvbnRleHRNZW51Q29tcG9uZW50KSBjb250ZXh0TWVudTogQ29udGV4dE1lbnVDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXI6IHByaW1lTmcuQ2FsZW5kYXIgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhcjogRnVsbENhbGVuZGFyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBjcnVkU2VydmljZT86IENydWRCYXNlU2VydmljZTxhbnksIGFueSwgYW55LCBhbnk+O1xyXG4gIEBJbnB1dCgpIHNjaGVtYTogRXZlbnRTY2hlbWEgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IGV2ZW50c0RhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLm1hcERhdGFUb0V2ZW50cyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxhc3RFdmVudHNEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgY3VycmVudFZpZXdUeXBlOiBzdHJpbmcgPSAnZGF5R3JpZE1vbnRoJztcclxuICBASW5wdXQoKSBzaG93SW5mb0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dVcGxvYWRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Tm90ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWx0ZXJTdGFydERhdGU/OiBEYXRlO1xyXG4gIEBJbnB1dCgpIGZpbHRlckVuZERhdGU/OiBEYXRlO1xyXG5cclxuICBAT3V0cHV0KCkgZXZlbnRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0ZVJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSB2aWV3VHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZGlzcGxheU1vZGVPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogVHNpTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlNb2RlT3B0aW9ucyA9IFtcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkTW9udGgnKSwgdmFsdWU6ICdkYXlHcmlkTW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aFllYXInKSwgdmFsdWU6ICdtdWx0aU1vbnRoWWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkWWVhcicpLCB2YWx1ZTogJ2RheUdyaWRZZWFyJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RheUdyaWRXZWVrJyksIHZhbHVlOiAnZGF5R3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfZGF5R3JpZERheScpLCB2YWx1ZTogJ2RheUdyaWREYXknIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfdGltZUdyaWREYXknKSwgdmFsdWU6ICd0aW1lR3JpZERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZFdlZWsnKSwgdmFsdWU6ICd0aW1lR3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFllYXInKSwgdmFsdWU6ICdsaXN0WWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0TW9udGgnKSwgdmFsdWU6ICdsaXN0TW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFdlZWsnKSwgdmFsdWU6ICdsaXN0V2VlaycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0RGF5JyksIHZhbHVlOiAnbGlzdERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkRmlsdGVyUmFuZ2UnKSwgdmFsdWU6ICdkYXlHcmlkRmlsdGVyUmFuZ2UnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aEZpbHRlclJhbmdlJyksIHZhbHVlOiAnbXVsdGlNb250aEZpbHRlclJhbmdlJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2xpc3RGaWx0ZXJSYW5nZScpLCB2YWx1ZTogJ2xpc3RGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZEZpbHRlclJhbmdlJyksIHZhbHVlOiAndGltZUdyaWRGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgLy9wcmVtaXVtXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBhbm7DqWUnLCB2YWx1ZTogJ3RpbWVsaW5lWWVhcicgfSxcclxuICAgICAgLy8geyBsYWJlbDogJ3Z1ZSBjaHJvbm9sb2dpcXVlIG1vaXMnLCB2YWx1ZTogJ3RpbWVsaW5lTW9udGgnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBzZW1haW5lJywgdmFsdWU6ICd0aW1lbGluZVdlZWsnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBqb3VyJywgdmFsdWU6ICd0aW1lbGluZURheScgfSxcclxuICAgIF1cclxuXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBlbnRpdHlJbmZvPzogRW50aXR5SW5mbztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCFjaGFuZ2VzWydmaWx0ZXJTdGFydERhdGUnXSAmJiAhY2hhbmdlc1snZmlsdGVyRW5kRGF0ZSddKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNhbGVuZGFyQXBpID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBjb25zdCB2aWV3VHlwZSA9IGNhbGVuZGFyQXBpPy52aWV3LnR5cGU7XHJcbiAgICBpZiAodmlld1R5cGUgJiYgdGhpcy5pc0ZpbHRlclJhbmdlVmlldyh2aWV3VHlwZSkpIHtcclxuICAgICAgY2FsZW5kYXJBcGkhLmNoYW5nZVZpZXcodmlld1R5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgY29uc3QgaWNvbkZvckNhbGVuZGFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWljb24tQ2FsZW5kYXInKTtcclxuICAgIGlmIChpY29uRm9yQ2FsZW5kYXIpIHtcclxuICAgICAgaWNvbkZvckNhbGVuZGFyLmNsYXNzTGlzdC52YWx1ZSA9IFwicGkgcGktY2FsZW5kYXJcIlxyXG4gICAgfVxyXG4gICAgY29uc3QgaWNvbkZvclNlYXJjaEZpbHRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mYy1pY29uLVNlYXJjaEZpbHRlcicpO1xyXG4gICAgaWYgKGljb25Gb3JTZWFyY2hGaWx0ZXIpIHtcclxuICAgICAgaWNvbkZvclNlYXJjaEZpbHRlci5jbGFzc0xpc3QudmFsdWUgPSBcInBpIHBpLXNlYXJjaFwiXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZHJvcGRvd25FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWRpc3BsYXlNb2RlT3B0aW9ucy1idXR0b24nKTtcclxuICAgIGlmIChkcm9wZG93bkVsZW1lbnQpIHtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBhbnkgZGVmYXVsdCBjb250ZW50XHJcbiAgICAgIC8vIENyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20gdGhlIHRlbXBsYXRlXHJcbiAgICAgIGNvbnN0IGVtYmVkZGVkVmlldyA9IHRoaXMuZHJvcGRvd25UZW1wbGF0ZSEuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpO1xyXG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmluc2VydChlbWJlZGRlZFZpZXcpO1xyXG4gICAgICAvLyBBcHBlbmQgdGhlIGRyb3Bkb3duIHRvIHRoZSB0b29sYmFyXHJcbiAgICAgIGVtYmVkZGVkVmlldyEucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkcm9wZG93bkVsZW1lbnQsIG5vZGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmNsYXNzTGlzdC52YWx1ZSA9ICdkaXNwbGF5TW9kZU9wdGlvbnMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJPcHRpb25zID0gc2lnbmFsPENhbGVuZGFyT3B0aW9ucz4oe1xyXG4gICAgcGx1Z2luczogW1xyXG4gICAgICBpbnRlcmFjdGlvblBsdWdpbixcclxuICAgICAgZGF5R3JpZFBsdWdpbixcclxuICAgICAgdGltZUdyaWRQbHVnaW4sXHJcbiAgICAgIGxpc3RQbHVnaW4sXHJcbiAgICAgIG11bHRpTW9udGhQbHVnaW4sXHJcbiAgICBdLFxyXG4gICAgaGVhZGVyVG9vbGJhcjoge1xyXG4gICAgICBsZWZ0OiAncHJldlllYXIscHJldixkYXRlUGlja2VyTmF2aWdhdG9yLHNlYXJjaEZpbHRlcixuZXh0LG5leHRZZWFyLHRvZGF5JyxcclxuICAgICAgY2VudGVyOiAndGl0bGUnLFxyXG4gICAgICByaWdodDogJ2Rpc3BsYXlNb2RlT3B0aW9ucycsXHJcbiAgICB9LFxyXG4gICAgYnV0dG9uVGV4dDoge1xyXG4gICAgICB0b2RheTogXCJBdWpvdXJkJ2h1aVwiLFxyXG4gICAgfSxcclxuICAgIHZpZXdzOiB7XHJcbiAgICAgIGRheUdyaWRZZWFyOiB7XHJcbiAgICAgICAgdHlwZTogJ2RheUdyaWQnLFxyXG4gICAgICAgIGR1cmF0aW9uOiB7IHllYXJzOiAxIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGRheUdyaWRGaWx0ZXJSYW5nZToge1xyXG4gICAgICAgIHR5cGU6ICdkYXlHcmlkJyxcclxuICAgICAgICB2aXNpYmxlUmFuZ2U6IHRoaXMuZ2V0RmlsdGVyUmFuZ2VWaXNpYmxlUmFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgfSxcclxuICAgICAgbXVsdGlNb250aEZpbHRlclJhbmdlOiB7XHJcbiAgICAgICAgdHlwZTogJ211bHRpTW9udGgnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0RmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAnbGlzdCcsXHJcbiAgICAgICAgdmlzaWJsZVJhbmdlOiB0aGlzLmdldEZpbHRlclJhbmdlVmlzaWJsZVJhbmdlLmJpbmQodGhpcyksXHJcbiAgICAgIH0sXHJcbiAgICAgIHRpbWVHcmlkRmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAndGltZUdyaWQnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGN1c3RvbUJ1dHRvbnM6IHtcclxuICAgICAgZGF0ZVBpY2tlck5hdmlnYXRvcjoge1xyXG4gICAgICAgIGljb246IFwiQ2FsZW5kYXJcIixcclxuICAgICAgICBoaW50OiBcIlwiLFxyXG4gICAgICAgIGNsaWNrOiB0aGlzLmhhbmRsZURhdGVQaWNrZXJOYXZpZ2F0b3JDbGljay5iaW5kKHRoaXMpXHJcbiAgICAgIH0sXHJcbiAgICAgIHNlYXJjaEZpbHRlcjoge1xyXG4gICAgICAgIGljb246IFwiU2VhcmNoRmlsdGVyXCIsXHJcbiAgICAgICAgaGludDogXCJcIixcclxuICAgICAgICBjbGljazogdGhpcy5oYW5kbGVTZWFyY2hGaWx0ZXIuYmluZCh0aGlzKVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGluaXRpYWxWaWV3OiAnZGF5R3JpZE1vbnRoJyxcclxuICAgIGxvY2FsZTogXCJmclwiLFxyXG4gICAgZXZlbnRzOiB0aGlzLmV2ZW50c0RhdGEsXHJcbiAgICB3ZWVrZW5kczogdHJ1ZSxcclxuICAgIHNlbGVjdGFibGU6IHRydWUsXHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIGV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0OiB0cnVlLFxyXG4gICAgZXZlbnRTdGFydEVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREdXJhdGlvbkVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREaXNwbGF5OiAnYmxvY2snLFxyXG4gICAgc2VsZWN0TWlycm9yOiB0cnVlLFxyXG4gICAgZGF5TWF4RXZlbnRzOiB0cnVlLFxyXG4gICAgc2VsZWN0OiB0aGlzLmhhbmRsZURhdGVTZWxlY3QuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50Q2xpY2s6IHRoaXMuaGFuZGxlRXZlbnRDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRzU2V0OiB0aGlzLmhhbmRsZUV2ZW50cy5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnREcm9wOiB0aGlzLmhhbmRsZUV2ZW50RHJvcC5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRSZXNpemU6IHRoaXMuaGFuZGxlRXZlbnRSZXNpemUuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuaGFuZGxlRXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxyXG4gICAgZGF0ZXNTZXQ6IHRoaXMuZ2V0Q3VycmVudERhdGVzLmJpbmQodGhpcyksXHJcbiAgICBldmVudENvbnRlbnQ6IChhcmcpID0+IHtcclxuICAgICAgY29uc3Qgbm9tYnJlQXR0YWNoZW1lbnQgPSBhcmcuZXZlbnQuZXh0ZW5kZWRQcm9wcz8uWydub21icmVBdHRhY2hlbWVudCddIHx8IDA7XHJcbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRIdG1sID0gbm9tYnJlQXR0YWNoZW1lbnQgPiAwXHJcbiAgICAgICAgPyBgPHNwYW4gY2xhc3M9XCJhdHRhY2htZW50LWluZm9cIj48aSBjbGFzcz1cInBpIHBpLXBhcGVyY2xpcFwiPjwvaT4gWyR7bm9tYnJlQXR0YWNoZW1lbnR9XTwvc3Bhbj5gXHJcbiAgICAgICAgOiAnJztcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaHRtbDogYFxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldmVudC10aXRsZVwiPiR7YXJnLmV2ZW50LnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgJHthdHRhY2htZW50SHRtbH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIGAsXHJcbiAgICAgIH07XHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIGN1cnJlbnRFdmVudHMgPSBzaWduYWw8RXZlbnRBcGlbXT4oW10pO1xyXG5cclxuICBtYXBEYXRhVG9FdmVudHModmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLmxhc3RFdmVudHNEYXRhID0gdmFsdWU7XHJcbiAgICBjb25zdCBmb3JjZUFsbERheSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcbiAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy51cGRhdGUoKG9sZENhbGVuZGVyT3B0czogQ2FsZW5kYXJPcHRpb25zKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5zY2hlbWEpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgIH1cclxuICAgICAgbGV0IGV2dHMgPSB2YWx1ZS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgbGV0IHRpdGxlOiBzdHJpbmcgPSB0aGlzLnNjaGVtYSEudGl0bGVcclxuICAgICAgICAgIC5tYXAoKGNvbHVtbk5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPVxyXG4gICAgICAgICAgICAgIGNvbHVtbk5hbWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBjb2x1bW5OYW1lLnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIChpdGVtW3Byb3BlcnR5TmFtZV0gPz8gaXRlbVtjb2x1bW5OYW1lXSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgICAuam9pbignIC0gJyk7XHJcbiAgICAgICAgbGV0IGV2ZW50OiBFdmVudElucHV0ID0ge1xyXG4gICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5zY2hlbWEhLmlkXSxcclxuICAgICAgICAgIHN0YXJ0OiBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0sXHJcbiAgICAgICAgICBlbmQ6IGZvcmNlQWxsRGF5ICYmIGl0ZW1bdGhpcy5zY2hlbWEhLmVuZF1cclxuICAgICAgICAgICAgPyB0aGlzLmFkZERheXMobmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSksIDEpXHJcbiAgICAgICAgICAgIDogaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSxcclxuICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxyXG4gICAgICAgICAgYWxsRGF5OiBmb3JjZUFsbERheSxcclxuICAgICAgICAgIGV4dGVuZGVkUHJvcHM6IHtcclxuICAgICAgICAgICAgbm9tYnJlQXR0YWNoZW1lbnQ6IGl0ZW0ubm9tYnJlQXR0YWNoZW1lbnQsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgb2xkQ2FsZW5kZXJPcHRzLmV2ZW50cyA9IGV2dHM7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4ub2xkQ2FsZW5kZXJPcHRzLFxyXG4gICAgICAgIGV2ZW50czogZXZ0c1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRmlsdGVyUmFuZ2VWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2aWV3VHlwZSA9PT0gJ2RheUdyaWRGaWx0ZXJSYW5nZScgfHwgdmlld1R5cGUgPT09ICdtdWx0aU1vbnRoRmlsdGVyUmFuZ2UnIHx8IHZpZXdUeXBlID09PSAnbGlzdEZpbHRlclJhbmdlJyB8fCB2aWV3VHlwZSA9PT0gJ3RpbWVHcmlkRmlsdGVyUmFuZ2UnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZShjdXJyZW50RGF0ZTogRGF0ZSk6IHsgc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSB9IHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5maWx0ZXJTdGFydERhdGUgPz8gY3VycmVudERhdGU7XHJcbiAgICBjb25zdCBlbmQgPSB0aGlzLmZpbHRlckVuZERhdGUgPz8gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCk7XHJcbiAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGF5R3JpZEZhbWlseVZpZXcodmlld1R5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZpZXdUeXBlLnN0YXJ0c1dpdGgoJ2RheUdyaWQnKSB8fCB2aWV3VHlwZS5zdGFydHNXaXRoKCdtdWx0aU1vbnRoJykgfHwgdmlld1R5cGUuc3RhcnRzV2l0aCgnbGlzdCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseURhdGVQYXJ0KG5ld0RhdGU6IERhdGUsIHJlZmVyZW5jZURhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBEYXRlKHJlZmVyZW5jZURhdGUpO1xyXG4gICAgbWVyZ2VkLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSwgbmV3RGF0ZS5nZXRNb250aCgpLCBuZXdEYXRlLmdldERhdGUoKSk7XHJcbiAgICByZXR1cm4gbWVyZ2VkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGREYXlzKGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbmhhbmRsZURhdGVTZWxlY3Qoc2VsZWN0SW5mbzogRGF0ZVNlbGVjdEFyZykge1xyXG5cclxuICBpZiAoIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJTdGFydERhdGVDb2x1bW4gfHwgIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJFbmREYXRlQ29sdW1uKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBzdGFydENvbHVtbiA9IHRoaXMuZW50aXR5SW5mby5jYWxlbmRhclN0YXJ0RGF0ZUNvbHVtbjtcclxuICBjb25zdCBlbmRDb2x1bW4gPSB0aGlzLmVudGl0eUluZm8uY2FsZW5kYXJFbmREYXRlQ29sdW1uO1xyXG4gIGxldCBmb3JtYXR0ZWRTdGFydERhdGUgPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oc2VsZWN0SW5mby5zdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/ICcnO1xyXG5cclxuICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ1JFQVRFLFxyXG4gICAgW3N0YXJ0Q29sdW1uXTogZm9ybWF0dGVkU3RhcnREYXRlLFxyXG4gICAgW2VuZENvbHVtbl06IHNlbGVjdEluZm8uZW5kIFxyXG4gIH0pO1xyXG59XHJcbiAgaGFuZGxlRXZlbnRDbGljayhjbGlja0luZm86IEV2ZW50Q2xpY2tBcmcpIHtcclxuICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHtcclxuICAgICAgbW9kZTogQ29tcG9uZW50X01vZGVzLkVESVQsXHJcbiAgICAgIGlkOiBjbGlja0luZm8uZXZlbnQuaWRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRzKGV2ZW50czogRXZlbnRBcGlbXSkge1xyXG4gICAgdGhpcy5jdXJyZW50RXZlbnRzLnNldChldmVudHMpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAvLyB3b3JrYXJvdW5kIGZvciBwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRSZXNpemUoaW5mbzogRXZlbnRSZXNpemVEb25lQXJnKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUV2ZW50KGluZm8pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnREcm9wKGluZm86IGFueSkge1xyXG4gICAgdGhpcy51cGRhdGVFdmVudChpbmZvKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUV2ZW50KGluZm86IGFueSkge1xyXG4gICAgY29uc3QgbmV3U3RhcnQgPSBpbmZvLmV2ZW50LnN0YXJ0O1xyXG4gICAgY29uc3QgbmV3RW5kID0gaW5mby5ldmVudC5lbmQ7XHJcbiAgICBjb25zdCBpZCA9IGluZm8uZXZlbnQuaWQ7XHJcbiAgICBjb25zdCBwcmVzZXJ2ZU9yaWdpbmFsVGltZSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3J1ZFNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jcnVkU2VydmljZS5nZXRCeUlkKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNjaGVtYSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHJlcztcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkU3RhcnQgPSBwcmVzZXJ2ZU9yaWdpbmFsVGltZVxyXG4gICAgICAgICAgICA/IHRoaXMuYXBwbHlEYXRlUGFydChuZXdTdGFydCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuc3RhcnRdKSlcclxuICAgICAgICAgICAgOiBuZXdTdGFydDtcclxuICAgICAgICAgIGNvbnN0IGluY2x1c2l2ZUVuZCA9IHByZXNlcnZlT3JpZ2luYWxUaW1lICYmIG5ld0VuZFxyXG4gICAgICAgICAgICA/IHRoaXMuYWRkRGF5cyhuZXdFbmQsIC0xKVxyXG4gICAgICAgICAgICA6IG5ld0VuZDtcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkRW5kID0gaW5jbHVzaXZlRW5kXHJcbiAgICAgICAgICAgID8gKHByZXNlcnZlT3JpZ2luYWxUaW1lID8gdGhpcy5hcHBseURhdGVQYXJ0KGluY2x1c2l2ZUVuZCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSkpIDogaW5jbHVzaXZlRW5kKVxyXG4gICAgICAgICAgICA6IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0gPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0ocmVzb2x2ZWRTdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5lbmRdID0gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKHJlc29sdmVkRW5kLCBBcGlEYXRlVGltZUZvcm1hdCkgPz8gcmVzb2x2ZWRFbmQ7XHJcbiAgICAgICAgICB0aGlzLmNydWRTZXJ2aWNlPy51cGRhdGUoaXRlbSwgaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfcmVwb3J0aW5nX3N1Y2Nlc3NfdXBkYXRlZFwiKSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUubG9nKGVycilcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coXCJDYW4gbm90IHVwZGF0ZSBpdGVtIDpcIiwgZXJyKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0ZVBpY2tlck5hdmlnYXRvckNsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoYW5kbGVTZWFyY2hGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudENsaWNrLmVtaXQoe1xyXG4gICAgICBtb2RlOiBcIlNFQVJDSFwiXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBmdWxsQ2FsZW5kYXI/LmdvdG9EYXRlKGV2ZW50KTtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFdmVudERpZE1vdW50KGFyZzogYW55KSB7XHJcbiAgICAvL0F0dGFjaCByaWdodC1jbGljayBldmVudCB0byBlYWNoIGV2ZW50IGNlbGxcclxuICAgIGFyZy5lbC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAvL1ByZXZlbnQgdGhlIGRlZmF1bHQgY29udGV4dCBtZW51IGZyb20gYXBwZWFyaW5nXHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQgPSBhcmcuZXZlbnQ7XHJcbiAgICAgIHRoaXMuY29udGV4dE1lbnU/Lm9wZW5NZW51KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RlZEFjdGlvbihhY3Rpb246IGFueSk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhY3Rpb24uc2VsZWN0ZWRBY3Rpb24pIHtcclxuICAgICAgY2FzZSBNb2Rlcy5kZWxldGU6XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgICAgICAgIHRoaXMuY3J1ZFNlcnZpY2U/LmRlbGV0ZSh0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICAgICAgICAgICAgZnVsbENhbGVuZGFyPy5nZXRFdmVudEJ5SWQodGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCk/LnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RlbGV0ZV9pdGVtX3N1Y2Nlc3NcIilcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVycm9yKGVyci5lcnJvci5lcnJvcnNbNTQ3XSA/IFwic2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kZWxldGVfaXRlbV9mYWlsZWRcIiA6IGVyci5lcnJvci5kZXRhaWwpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuY29uc3VsdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ09OU1VMVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuZWRpdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuRURJVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHsgbW9kZTogJ2luZm8nLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAndXBsb2FkJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdub3Rlcyc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnbm90ZXMnLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0FjdGlvbkVSUCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnQWN0aW9uRVJQJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EaXNwbGF5TW9kZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnZpZXdUeXBlQ2hhbmdlLmVtaXQoZXZlbnQudmFsdWUpO1xyXG4gICAgY29uc3QgY2FsZW5kYXJBcGkgPSB0aGlzLmNhbGVuZGFyPy5nZXRBcGkoKTtcclxuICAgIGNhbGVuZGFyQXBpPy5jaGFuZ2VWaWV3KGV2ZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlcygpIHtcclxuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFyQXBpOiBDYWxlbmRhckFwaSA9IHRoaXMuY2FsZW5kYXIuZ2V0QXBpKCk7XHJcbiAgICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHN0YXJ0OiBuZXcgRGF0ZShjYWxlbmRhckFwaS52aWV3LmN1cnJlbnRTdGFydC5zZXREYXRlKGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudFN0YXJ0LmdldERhdGUoKSArIDEpKSxcclxuICAgICAgICBlbmQ6IG5ldyBEYXRlKGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudEVuZC5zZXREYXRlKGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudEVuZC5nZXREYXRlKCkgKyAxKSksXHJcbiAgICAgICAgdmlld1R5cGU6IGNhbGVuZGFyQXBpLnZpZXcudHlwZVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgbmV3Vmlld1R5cGUgPSBjYWxlbmRhckFwaS52aWV3LnR5cGU7XHJcbiAgICAgIGlmIChuZXdWaWV3VHlwZSAhPT0gdGhpcy5jdXJyZW50Vmlld1R5cGUpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3VHlwZSA9IG5ld1ZpZXdUeXBlO1xyXG4gICAgICAgIHRoaXMubWFwRGF0YVRvRXZlbnRzKHRoaXMubGFzdEV2ZW50c0RhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8cC1jYWxlbmRhciAjZGF0ZVBpY2tlciBjbGFzcz1cImhpZGRlbi1jYWxlbmRhclwiIChvblNlbGVjdCk9XCJuYXZpZ2F0ZVRvRGF0ZSgkZXZlbnQpXCIvPlxyXG48ZnVsbC1jYWxlbmRhciAjY2FsZW5kYXIgW29wdGlvbnNdPSdjYWxlbmRhck9wdGlvbnMoKSc+XHJcbiAgICA8bmctdGVtcGxhdGUgIGxldC1hcmc+XHJcblxyXG4gICAgPGkgW25nU3R5bGVdPVwiYXJnLmV2ZW50LmNvbG9yICYmIGFyZy5ldmVudC5jb2xvciAhPT0gJycgPyB7J2JhY2tncm91bmQtY29sb3InOiBhcmcuZXZlbnQuY29sb3J9IDoge31cIiA+XHJcbiAgICAgICAgXHJcbiAgICAgICAge3sgYXJnLmV2ZW50LnRpdGxlIH19PC9pPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9mdWxsLWNhbGVuZGFyPlxyXG48YXBwLWNvbnRleHQtbWVudSBcclxuICBbc2hvd0luZm9CdXR0b25dPVwic2hvd0luZm9CdXR0b25cIlxyXG4gIFtzaG93VXBsb2FkQnV0dG9uXT1cInNob3dVcGxvYWRCdXR0b25cIlxyXG4gIFtzaG93Tm90ZUJ1dHRvbl09XCJzaG93Tm90ZUJ1dHRvblwiXHJcbiAgW3Nob3dBY3Rpb25CdXR0b25dPVwic2hvd0FjdGlvbkJ1dHRvblwiXHJcbiAgKGFjdGlvblNlbGVjdGVkKT1cImhhbmRsZVNlbGVjdGVkQWN0aW9uKCRldmVudClcIj5cclxuPC9hcHAtY29udGV4dC1tZW51PlxyXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVGVtcGxhdGU+XHJcbiAgICA8cC1kcm9wZG93biBbc3R5bGVdPVwieyd3aWR0aCcgOiAnMjAwcHgnLCdib3JkZXItcmFkaXVzJzogJzVweCd9XCIgW29wdGlvbnNdPVwiZGlzcGxheU1vZGVPcHRpb25zXCIgKG9uQ2hhbmdlKT1cIm9uRGlzcGxheU1vZGVDaGFuZ2UoJGV2ZW50KVwiPjwvcC1kcm9wZG93bj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
436
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNpLWNhbGVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RzaS1zaGFyZWQtdWkvc3JjL2xpYi90c2ktY29tcG9uZW50cy90c2ktY2FsZW5kZXIvdHNpLWNhbGVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBYSxNQUFNLEVBQThCLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHeE0sT0FBTyxpQkFBeUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRixPQUFPLGFBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLGNBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLFVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLGdCQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixJQUFhLFVBQVUsQ0FBQyxLQUFZO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQWtCRCxZQUNVLGVBQWtDLEVBQ2xDLGlCQUFtQyxFQUNuQyxlQUF1QyxFQUN2QyxTQUFtQixFQUNuQixhQUEyQixFQUMzQixRQUFt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LEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBcUNFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckFwaSwgQ2FsZW5kYXJPcHRpb25zLCBEYXRlU2VsZWN0QXJnLCBFdmVudEFwaSwgRXZlbnRDbGlja0FyZywgRXZlbnRJbnB1dCB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIHByaW1lTmcgZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCBpbnRlcmFjdGlvblBsdWdpbiwgeyBFdmVudFJlc2l6ZURvbmVBcmcgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IGRheUdyaWRQbHVnaW4gZnJvbSAnQGZ1bGxjYWxlbmRhci9kYXlncmlkJztcclxuaW1wb3J0IHRpbWVHcmlkUGx1Z2luIGZyb20gJ0BmdWxsY2FsZW5kYXIvdGltZWdyaWQnO1xyXG5pbXBvcnQgbGlzdFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL2xpc3QnO1xyXG5pbXBvcnQgbXVsdGlNb250aFBsdWdpbiBmcm9tICdAZnVsbGNhbGVuZGFyL211bHRpbW9udGgnO1xyXG5pbXBvcnQgeyBGdWxsQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRfTW9kZXMsIE1vZGVzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9sb2NhbGl6ZS5waXBlJztcclxuaW1wb3J0IHsgQ3J1ZEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS9jcnVkLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRzaU5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vdHNpLW5vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRTY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tbW9uL2V2ZW50LXNjaGVtYSc7XHJcbmltcG9ydCB7IEVudGl0eUluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwaURhdGVUaW1lRm9ybWF0IH0gZnJvbSAnLi4vLi4vY29uc3RzL3RzaS1jb25zdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0c2ktY2FsZW5kZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90c2ktY2FsZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RzaS1jYWxlbmRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUc2lDYWxlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgY3VycmVudENvbnRleHRNZW51RXZlbnQ6IGFueTtcclxuICBAVmlld0NoaWxkKENvbnRleHRNZW51Q29tcG9uZW50KSBjb250ZXh0TWVudTogQ29udGV4dE1lbnVDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXI6IHByaW1lTmcuQ2FsZW5kYXIgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXInKSBjYWxlbmRhcjogRnVsbENhbGVuZGFyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVGVtcGxhdGUnKSBkcm9wZG93blRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSBjcnVkU2VydmljZT86IENydWRCYXNlU2VydmljZTxhbnksIGFueSwgYW55LCBhbnk+O1xyXG4gIEBJbnB1dCgpIHNjaGVtYTogRXZlbnRTY2hlbWEgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgc2V0IGV2ZW50c0RhdGEodmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLm1hcERhdGFUb0V2ZW50cyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxhc3RFdmVudHNEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgY3VycmVudFZpZXdUeXBlOiBzdHJpbmcgPSAnZGF5R3JpZE1vbnRoJztcclxuICBASW5wdXQoKSBzaG93SW5mb0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dEb3dubG9hZEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dVcGxvYWRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Tm90ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWx0ZXJTdGFydERhdGU/OiBEYXRlO1xyXG4gIEBJbnB1dCgpIGZpbHRlckVuZERhdGU/OiBEYXRlO1xyXG5cclxuICBAT3V0cHV0KCkgZXZlbnRDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0ZVJhbmdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSB2aWV3VHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZGlzcGxheU1vZGVPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogVHNpTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgX2xvY2FsaXplUGlwZTogTG9jYWxpemVQaXBlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlNb2RlT3B0aW9ucyA9IFtcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkTW9udGgnKSwgdmFsdWU6ICdkYXlHcmlkTW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aFllYXInKSwgdmFsdWU6ICdtdWx0aU1vbnRoWWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkWWVhcicpLCB2YWx1ZTogJ2RheUdyaWRZZWFyJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RheUdyaWRXZWVrJyksIHZhbHVlOiAnZGF5R3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfZGF5R3JpZERheScpLCB2YWx1ZTogJ2RheUdyaWREYXknIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfdGltZUdyaWREYXknKSwgdmFsdWU6ICd0aW1lR3JpZERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZFdlZWsnKSwgdmFsdWU6ICd0aW1lR3JpZFdlZWsnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFllYXInKSwgdmFsdWU6ICdsaXN0WWVhcicgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0TW9udGgnKSwgdmFsdWU6ICdsaXN0TW9udGgnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbGlzdFdlZWsnKSwgdmFsdWU6ICdsaXN0V2VlaycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9saXN0RGF5JyksIHZhbHVlOiAnbGlzdERheScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kYXlHcmlkRmlsdGVyUmFuZ2UnKSwgdmFsdWU6ICdkYXlHcmlkRmlsdGVyUmFuZ2UnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMuX2xvY2FsaXplUGlwZS50cmFuc2Zvcm0oJ3NoYXJlZF90c2lfY29tcG9uZW50X2dyaWRfY2FsZW5kZXJfbXVsdGlNb250aEZpbHRlclJhbmdlJyksIHZhbHVlOiAnbXVsdGlNb250aEZpbHRlclJhbmdlJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLl9sb2NhbGl6ZVBpcGUudHJhbnNmb3JtKCdzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2xpc3RGaWx0ZXJSYW5nZScpLCB2YWx1ZTogJ2xpc3RGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy5fbG9jYWxpemVQaXBlLnRyYW5zZm9ybSgnc2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl90aW1lR3JpZEZpbHRlclJhbmdlJyksIHZhbHVlOiAndGltZUdyaWRGaWx0ZXJSYW5nZScgfSxcclxuICAgICAgLy9wcmVtaXVtXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBhbm7DqWUnLCB2YWx1ZTogJ3RpbWVsaW5lWWVhcicgfSxcclxuICAgICAgLy8geyBsYWJlbDogJ3Z1ZSBjaHJvbm9sb2dpcXVlIG1vaXMnLCB2YWx1ZTogJ3RpbWVsaW5lTW9udGgnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBzZW1haW5lJywgdmFsdWU6ICd0aW1lbGluZVdlZWsnIH0sXHJcbiAgICAgIC8vIHsgbGFiZWw6ICd2dWUgY2hyb25vbG9naXF1ZSBqb3VyJywgdmFsdWU6ICd0aW1lbGluZURheScgfSxcclxuICAgIF1cclxuXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBlbnRpdHlJbmZvPzogRW50aXR5SW5mbztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCFjaGFuZ2VzWydmaWx0ZXJTdGFydERhdGUnXSAmJiAhY2hhbmdlc1snZmlsdGVyRW5kRGF0ZSddKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNhbGVuZGFyQXBpID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBjb25zdCB2aWV3VHlwZSA9IGNhbGVuZGFyQXBpPy52aWV3LnR5cGU7XHJcbiAgICBpZiAodmlld1R5cGUgJiYgdGhpcy5pc0ZpbHRlclJhbmdlVmlldyh2aWV3VHlwZSkpIHtcclxuICAgICAgY2FsZW5kYXJBcGkhLmNoYW5nZVZpZXcodmlld1R5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgY29uc3QgaWNvbkZvckNhbGVuZGFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWljb24tQ2FsZW5kYXInKTtcclxuICAgIGlmIChpY29uRm9yQ2FsZW5kYXIpIHtcclxuICAgICAgaWNvbkZvckNhbGVuZGFyLmNsYXNzTGlzdC52YWx1ZSA9IFwicGkgcGktY2FsZW5kYXJcIlxyXG4gICAgfVxyXG4gICAgY29uc3QgaWNvbkZvclNlYXJjaEZpbHRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mYy1pY29uLVNlYXJjaEZpbHRlcicpO1xyXG4gICAgaWYgKGljb25Gb3JTZWFyY2hGaWx0ZXIpIHtcclxuICAgICAgaWNvbkZvclNlYXJjaEZpbHRlci5jbGFzc0xpc3QudmFsdWUgPSBcInBpIHBpLXNlYXJjaFwiXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZHJvcGRvd25FbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZjLWRpc3BsYXlNb2RlT3B0aW9ucy1idXR0b24nKTtcclxuICAgIGlmIChkcm9wZG93bkVsZW1lbnQpIHtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmlubmVySFRNTCA9ICcnOyAvLyBDbGVhciBhbnkgZGVmYXVsdCBjb250ZW50XHJcbiAgICAgIC8vIENyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20gdGhlIHRlbXBsYXRlXHJcbiAgICAgIGNvbnN0IGVtYmVkZGVkVmlldyA9IHRoaXMuZHJvcGRvd25UZW1wbGF0ZSEuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpO1xyXG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmluc2VydChlbWJlZGRlZFZpZXcpO1xyXG4gICAgICAvLyBBcHBlbmQgdGhlIGRyb3Bkb3duIHRvIHRoZSB0b29sYmFyXHJcbiAgICAgIGVtYmVkZGVkVmlldyEucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkcm9wZG93bkVsZW1lbnQsIG5vZGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgZHJvcGRvd25FbGVtZW50LmNsYXNzTGlzdC52YWx1ZSA9ICdkaXNwbGF5TW9kZU9wdGlvbnMnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJPcHRpb25zID0gc2lnbmFsPENhbGVuZGFyT3B0aW9ucz4oe1xyXG4gICAgcGx1Z2luczogW1xyXG4gICAgICBpbnRlcmFjdGlvblBsdWdpbixcclxuICAgICAgZGF5R3JpZFBsdWdpbixcclxuICAgICAgdGltZUdyaWRQbHVnaW4sXHJcbiAgICAgIGxpc3RQbHVnaW4sXHJcbiAgICAgIG11bHRpTW9udGhQbHVnaW4sXHJcbiAgICBdLFxyXG4gICAgaGVhZGVyVG9vbGJhcjoge1xyXG4gICAgICBsZWZ0OiAncHJldlllYXIscHJldixkYXRlUGlja2VyTmF2aWdhdG9yLHNlYXJjaEZpbHRlcixuZXh0LG5leHRZZWFyLHRvZGF5JyxcclxuICAgICAgY2VudGVyOiAndGl0bGUnLFxyXG4gICAgICByaWdodDogJ2Rpc3BsYXlNb2RlT3B0aW9ucycsXHJcbiAgICB9LFxyXG4gICAgYnV0dG9uVGV4dDoge1xyXG4gICAgICB0b2RheTogXCJBdWpvdXJkJ2h1aVwiLFxyXG4gICAgfSxcclxuICAgIHZpZXdzOiB7XHJcbiAgICAgIGRheUdyaWRZZWFyOiB7XHJcbiAgICAgICAgdHlwZTogJ2RheUdyaWQnLFxyXG4gICAgICAgIGR1cmF0aW9uOiB7IHllYXJzOiAxIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGRheUdyaWRGaWx0ZXJSYW5nZToge1xyXG4gICAgICAgIHR5cGU6ICdkYXlHcmlkJyxcclxuICAgICAgICB2aXNpYmxlUmFuZ2U6IHRoaXMuZ2V0RmlsdGVyUmFuZ2VWaXNpYmxlUmFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgfSxcclxuICAgICAgbXVsdGlNb250aEZpbHRlclJhbmdlOiB7XHJcbiAgICAgICAgdHlwZTogJ211bHRpTW9udGgnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0RmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAnbGlzdCcsXHJcbiAgICAgICAgdmlzaWJsZVJhbmdlOiB0aGlzLmdldEZpbHRlclJhbmdlVmlzaWJsZVJhbmdlLmJpbmQodGhpcyksXHJcbiAgICAgIH0sXHJcbiAgICAgIHRpbWVHcmlkRmlsdGVyUmFuZ2U6IHtcclxuICAgICAgICB0eXBlOiAndGltZUdyaWQnLFxyXG4gICAgICAgIHZpc2libGVSYW5nZTogdGhpcy5nZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGN1c3RvbUJ1dHRvbnM6IHtcclxuICAgICAgZGF0ZVBpY2tlck5hdmlnYXRvcjoge1xyXG4gICAgICAgIGljb246IFwiQ2FsZW5kYXJcIixcclxuICAgICAgICBoaW50OiBcIlwiLFxyXG4gICAgICAgIGNsaWNrOiB0aGlzLmhhbmRsZURhdGVQaWNrZXJOYXZpZ2F0b3JDbGljay5iaW5kKHRoaXMpXHJcbiAgICAgIH0sXHJcbiAgICAgIHNlYXJjaEZpbHRlcjoge1xyXG4gICAgICAgIGljb246IFwiU2VhcmNoRmlsdGVyXCIsXHJcbiAgICAgICAgaGludDogXCJcIixcclxuICAgICAgICBjbGljazogdGhpcy5oYW5kbGVTZWFyY2hGaWx0ZXIuYmluZCh0aGlzKVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIGluaXRpYWxWaWV3OiAnZGF5R3JpZE1vbnRoJyxcclxuICAgIGxvY2FsZTogXCJmclwiLFxyXG4gICAgZXZlbnRzOiB0aGlzLmV2ZW50c0RhdGEsXHJcbiAgICB3ZWVrZW5kczogdHJ1ZSxcclxuICAgIHNlbGVjdGFibGU6IHRydWUsXHJcbiAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgIGV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0OiB0cnVlLFxyXG4gICAgZXZlbnRTdGFydEVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREdXJhdGlvbkVkaXRhYmxlOiB0cnVlLFxyXG4gICAgZXZlbnREaXNwbGF5OiAnYmxvY2snLFxyXG4gICAgc2VsZWN0TWlycm9yOiB0cnVlLFxyXG4gICAgZGF5TWF4RXZlbnRzOiB0cnVlLFxyXG4gICAgc2VsZWN0OiB0aGlzLmhhbmRsZURhdGVTZWxlY3QuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50Q2xpY2s6IHRoaXMuaGFuZGxlRXZlbnRDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRzU2V0OiB0aGlzLmhhbmRsZUV2ZW50cy5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnREcm9wOiB0aGlzLmhhbmRsZUV2ZW50RHJvcC5iaW5kKHRoaXMpLFxyXG4gICAgZXZlbnRSZXNpemU6IHRoaXMuaGFuZGxlRXZlbnRSZXNpemUuYmluZCh0aGlzKSxcclxuICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuaGFuZGxlRXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxyXG4gICAgZGF0ZXNTZXQ6IHRoaXMuZ2V0Q3VycmVudERhdGVzLmJpbmQodGhpcyksXHJcbiAgICBldmVudENvbnRlbnQ6IChhcmcpID0+IHtcclxuICAgICAgY29uc3Qgbm9tYnJlQXR0YWNoZW1lbnQgPSBhcmcuZXZlbnQuZXh0ZW5kZWRQcm9wcz8uWydub21icmVBdHRhY2hlbWVudCddIHx8IDA7XHJcbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRIdG1sID0gbm9tYnJlQXR0YWNoZW1lbnQgPiAwXHJcbiAgICAgICAgPyBgPHNwYW4gY2xhc3M9XCJhdHRhY2htZW50LWluZm9cIj48aSBjbGFzcz1cInBpIHBpLXBhcGVyY2xpcFwiPjwvaT4gWyR7bm9tYnJlQXR0YWNoZW1lbnR9XTwvc3Bhbj5gXHJcbiAgICAgICAgOiAnJztcclxuXHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaHRtbDogYFxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldmVudC10aXRsZVwiPiR7YXJnLmV2ZW50LnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgJHthdHRhY2htZW50SHRtbH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIGAsXHJcbiAgICAgIH07XHJcbiAgICB9LFxyXG4gIH0pO1xyXG4gIGN1cnJlbnRFdmVudHMgPSBzaWduYWw8RXZlbnRBcGlbXT4oW10pO1xyXG5cclxuICBtYXBEYXRhVG9FdmVudHModmFsdWU6IGFueVtdKSB7XHJcbiAgICB0aGlzLmxhc3RFdmVudHNEYXRhID0gdmFsdWU7XHJcbiAgICBjb25zdCBmb3JjZUFsbERheSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcbiAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy51cGRhdGUoKG9sZENhbGVuZGVyT3B0czogQ2FsZW5kYXJPcHRpb25zKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5zY2hlbWEpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgIH1cclxuICAgICAgbGV0IGV2dHMgPSB2YWx1ZS5tYXAoaXRlbSA9PiB7XHJcbiAgICAgICAgbGV0IHRpdGxlOiBzdHJpbmcgPSB0aGlzLnNjaGVtYSEudGl0bGVcclxuICAgICAgICAgIC5tYXAoKGNvbHVtbk5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPVxyXG4gICAgICAgICAgICAgIGNvbHVtbk5hbWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBjb2x1bW5OYW1lLnNsaWNlKDEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIChpdGVtW3Byb3BlcnR5TmFtZV0gPz8gaXRlbVtjb2x1bW5OYW1lXSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgICAgICAuam9pbignIC0gJyk7XHJcbiAgICAgICAgbGV0IGV2ZW50OiBFdmVudElucHV0ID0ge1xyXG4gICAgICAgICAgaWQ6IGl0ZW1bdGhpcy5zY2hlbWEhLmlkXSxcclxuICAgICAgICAgIHN0YXJ0OiBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0sXHJcbiAgICAgICAgICBlbmQ6IGZvcmNlQWxsRGF5ICYmIGl0ZW1bdGhpcy5zY2hlbWEhLmVuZF1cclxuICAgICAgICAgICAgPyB0aGlzLmFkZERheXMobmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSksIDEpXHJcbiAgICAgICAgICAgIDogaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSxcclxuICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgIGNvbG9yOiBpdGVtLmNvbG9yLFxyXG4gICAgICAgICAgYWxsRGF5OiBmb3JjZUFsbERheSxcclxuICAgICAgICAgIGV4dGVuZGVkUHJvcHM6IHtcclxuICAgICAgICAgICAgbm9tYnJlQXR0YWNoZW1lbnQ6IGl0ZW0ubm9tYnJlQXR0YWNoZW1lbnQsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gZXZlbnQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgb2xkQ2FsZW5kZXJPcHRzLmV2ZW50cyA9IGV2dHM7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4ub2xkQ2FsZW5kZXJPcHRzLFxyXG4gICAgICAgIGV2ZW50czogZXZ0c1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRmlsdGVyUmFuZ2VWaWV3KHZpZXdUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2aWV3VHlwZSA9PT0gJ2RheUdyaWRGaWx0ZXJSYW5nZScgfHwgdmlld1R5cGUgPT09ICdtdWx0aU1vbnRoRmlsdGVyUmFuZ2UnIHx8IHZpZXdUeXBlID09PSAnbGlzdEZpbHRlclJhbmdlJyB8fCB2aWV3VHlwZSA9PT0gJ3RpbWVHcmlkRmlsdGVyUmFuZ2UnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWx0ZXJSYW5nZVZpc2libGVSYW5nZShjdXJyZW50RGF0ZTogRGF0ZSk6IHsgc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSB9IHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5maWx0ZXJTdGFydERhdGUgPz8gY3VycmVudERhdGU7XHJcbiAgICBjb25zdCBlbmQgPSB0aGlzLmZpbHRlckVuZERhdGUgPz8gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgMjQgKiA2MCAqIDYwICogMTAwMCk7XHJcbiAgICByZXR1cm4geyBzdGFydCwgZW5kIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGF5R3JpZEZhbWlseVZpZXcodmlld1R5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZpZXdUeXBlLnN0YXJ0c1dpdGgoJ2RheUdyaWQnKSB8fCB2aWV3VHlwZS5zdGFydHNXaXRoKCdtdWx0aU1vbnRoJykgfHwgdmlld1R5cGUuc3RhcnRzV2l0aCgnbGlzdCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseURhdGVQYXJ0KG5ld0RhdGU6IERhdGUsIHJlZmVyZW5jZURhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgIGNvbnN0IG1lcmdlZCA9IG5ldyBEYXRlKHJlZmVyZW5jZURhdGUpO1xyXG4gICAgbWVyZ2VkLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSwgbmV3RGF0ZS5nZXRNb250aCgpLCBuZXdEYXRlLmdldERhdGUoKSk7XHJcbiAgICByZXR1cm4gbWVyZ2VkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGREYXlzKGRhdGU6IERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbmhhbmRsZURhdGVTZWxlY3Qoc2VsZWN0SW5mbzogRGF0ZVNlbGVjdEFyZykge1xyXG5cclxuICBpZiAoIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJTdGFydERhdGVDb2x1bW4gfHwgIXRoaXMuZW50aXR5SW5mbz8uY2FsZW5kYXJFbmREYXRlQ29sdW1uKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBzdGFydENvbHVtbiA9IHRoaXMuZW50aXR5SW5mby5jYWxlbmRhclN0YXJ0RGF0ZUNvbHVtbjtcclxuICBjb25zdCBlbmRDb2x1bW4gPSB0aGlzLmVudGl0eUluZm8uY2FsZW5kYXJFbmREYXRlQ29sdW1uO1xyXG4gIGxldCBmb3JtYXR0ZWRTdGFydERhdGUgPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0oc2VsZWN0SW5mby5zdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/ICcnO1xyXG5cclxuICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ1JFQVRFLFxyXG4gICAgW3N0YXJ0Q29sdW1uXTogZm9ybWF0dGVkU3RhcnREYXRlLFxyXG4gICAgW2VuZENvbHVtbl06IHNlbGVjdEluZm8uZW5kIFxyXG4gIH0pO1xyXG59XHJcbiAgaGFuZGxlRXZlbnRDbGljayhjbGlja0luZm86IEV2ZW50Q2xpY2tBcmcpIHtcclxuICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHtcclxuICAgICAgbW9kZTogQ29tcG9uZW50X01vZGVzLkVESVQsXHJcbiAgICAgIGlkOiBjbGlja0luZm8uZXZlbnQuaWRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRzKGV2ZW50czogRXZlbnRBcGlbXSkge1xyXG4gICAgdGhpcy5jdXJyZW50RXZlbnRzLnNldChldmVudHMpO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpOyAvLyB3b3JrYXJvdW5kIGZvciBwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnRSZXNpemUoaW5mbzogRXZlbnRSZXNpemVEb25lQXJnKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUV2ZW50KGluZm8pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXZlbnREcm9wKGluZm86IGFueSkge1xyXG4gICAgdGhpcy51cGRhdGVFdmVudChpbmZvKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUV2ZW50KGluZm86IGFueSkge1xyXG4gICAgY29uc3QgbmV3U3RhcnQgPSBpbmZvLmV2ZW50LnN0YXJ0O1xyXG4gICAgY29uc3QgbmV3RW5kID0gaW5mby5ldmVudC5lbmQ7XHJcbiAgICBjb25zdCBpZCA9IGluZm8uZXZlbnQuaWQ7XHJcbiAgICBjb25zdCBwcmVzZXJ2ZU9yaWdpbmFsVGltZSA9IHRoaXMuaXNEYXlHcmlkRmFtaWx5Vmlldyh0aGlzLmN1cnJlbnRWaWV3VHlwZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3J1ZFNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jcnVkU2VydmljZS5nZXRCeUlkKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNjaGVtYSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzY2hlbWEgc2hvdWxkIGJlIGRlZmluZWQuXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBsZXQgaXRlbSA9IHJlcztcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkU3RhcnQgPSBwcmVzZXJ2ZU9yaWdpbmFsVGltZVxyXG4gICAgICAgICAgICA/IHRoaXMuYXBwbHlEYXRlUGFydChuZXdTdGFydCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuc3RhcnRdKSlcclxuICAgICAgICAgICAgOiBuZXdTdGFydDtcclxuICAgICAgICAgIGNvbnN0IGluY2x1c2l2ZUVuZCA9IHByZXNlcnZlT3JpZ2luYWxUaW1lICYmIG5ld0VuZFxyXG4gICAgICAgICAgICA/IHRoaXMuYWRkRGF5cyhuZXdFbmQsIC0xKVxyXG4gICAgICAgICAgICA6IG5ld0VuZDtcclxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkRW5kID0gaW5jbHVzaXZlRW5kXHJcbiAgICAgICAgICAgID8gKHByZXNlcnZlT3JpZ2luYWxUaW1lID8gdGhpcy5hcHBseURhdGVQYXJ0KGluY2x1c2l2ZUVuZCwgbmV3IERhdGUoaXRlbVt0aGlzLnNjaGVtYSEuZW5kXSkpIDogaW5jbHVzaXZlRW5kKVxyXG4gICAgICAgICAgICA6IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5zdGFydF0gPSB0aGlzLl9kYXRlUGlwZS50cmFuc2Zvcm0ocmVzb2x2ZWRTdGFydCwgQXBpRGF0ZVRpbWVGb3JtYXQpID8/IHJlc29sdmVkU3RhcnQ7XHJcbiAgICAgICAgICBpdGVtW3RoaXMuc2NoZW1hIS5lbmRdID0gdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKHJlc29sdmVkRW5kLCBBcGlEYXRlVGltZUZvcm1hdCkgPz8gcmVzb2x2ZWRFbmQ7XHJcbiAgICAgICAgICB0aGlzLmNydWRTZXJ2aWNlPy51cGRhdGUoaXRlbSwgaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfcmVwb3J0aW5nX3N1Y2Nlc3NfdXBkYXRlZFwiKSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUubG9nKGVycilcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coXCJDYW4gbm90IHVwZGF0ZSBpdGVtIDpcIiwgZXJyKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGF0ZVBpY2tlck5hdmlnYXRvckNsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBoYW5kbGVTZWFyY2hGaWx0ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudENsaWNrLmVtaXQoe1xyXG4gICAgICBtb2RlOiBcIlNFQVJDSFwiXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RhdGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICBmdWxsQ2FsZW5kYXI/LmdvdG9EYXRlKGV2ZW50KTtcclxuICAgIGlmICh0aGlzLmRhdGVQaWNrZXIpIHtcclxuICAgICAgbGV0IGNhbGVuZGFySW5wdXQgPSB0aGlzLmRhdGVQaWNrZXIuaW5wdXRmaWVsZFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY2FsZW5kYXJJbnB1dC5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFdmVudERpZE1vdW50KGFyZzogYW55KSB7XHJcbiAgICAvL0F0dGFjaCByaWdodC1jbGljayBldmVudCB0byBlYWNoIGV2ZW50IGNlbGxcclxuICAgIGFyZy5lbC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgICAvL1ByZXZlbnQgdGhlIGRlZmF1bHQgY29udGV4dCBtZW51IGZyb20gYXBwZWFyaW5nXHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQgPSBhcmcuZXZlbnQ7XHJcbiAgICAgIHRoaXMuY29udGV4dE1lbnU/Lm9wZW5NZW51KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RlZEFjdGlvbihhY3Rpb246IGFueSk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhY3Rpb24uc2VsZWN0ZWRBY3Rpb24pIHtcclxuICAgICAgY2FzZSBNb2Rlcy5kZWxldGU6XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQpIHtcclxuICAgICAgICAgIHRoaXMuY3J1ZFNlcnZpY2U/LmRlbGV0ZSh0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZnVsbENhbGVuZGFyID0gdGhpcy5jYWxlbmRhcj8uZ2V0QXBpKCk7XHJcbiAgICAgICAgICAgICAgZnVsbENhbGVuZGFyPy5nZXRFdmVudEJ5SWQodGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCk/LnJlbW92ZSgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXCJzaGFyZWRfdHNpX2NvbXBvbmVudF9ncmlkX2NhbGVuZGVyX2RlbGV0ZV9pdGVtX3N1Y2Nlc3NcIilcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVycm9yKGVyci5lcnJvci5lcnJvcnNbNTQ3XSA/IFwic2hhcmVkX3RzaV9jb21wb25lbnRfZ3JpZF9jYWxlbmRlcl9kZWxldGVfaXRlbV9mYWlsZWRcIiA6IGVyci5lcnJvci5kZXRhaWwpLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuY29uc3VsdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuQ09OU1VMVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kZXMuZWRpdDpcclxuICAgICAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBtb2RlOiBDb21wb25lbnRfTW9kZXMuRURJVCxcclxuICAgICAgICAgIGlkOiB0aGlzLmN1cnJlbnRDb250ZXh0TWVudUV2ZW50LmlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgIHRoaXMuZXZlbnRDbGljay5lbWl0KHsgbW9kZTogJ2luZm8nLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ3VwbG9hZCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAndXBsb2FkJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdub3Rlcyc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnbm90ZXMnLCBpZDogdGhpcy5jdXJyZW50Q29udGV4dE1lbnVFdmVudC5pZCB9KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgJ0FjdGlvbkVSUCc6XHJcbiAgICAgICAgdGhpcy5ldmVudENsaWNrLmVtaXQoeyBtb2RlOiAnQWN0aW9uRVJQJywgaWQ6IHRoaXMuY3VycmVudENvbnRleHRNZW51RXZlbnQuaWQgfSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25EaXNwbGF5TW9kZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnZpZXdUeXBlQ2hhbmdlLmVtaXQoZXZlbnQudmFsdWUpO1xyXG4gICAgY29uc3QgY2FsZW5kYXJBcGkgPSB0aGlzLmNhbGVuZGFyPy5nZXRBcGkoKTtcclxuICAgIGNhbGVuZGFyQXBpPy5jaGFuZ2VWaWV3KGV2ZW50LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnREYXRlcygpIHtcclxuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFyQXBpOiBDYWxlbmRhckFwaSA9IHRoaXMuY2FsZW5kYXIuZ2V0QXBpKCk7XHJcbiAgICAgIHRoaXMuZGF0ZVJhbmdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHN0YXJ0OiBjYWxlbmRhckFwaS52aWV3LmN1cnJlbnRTdGFydCxcclxuICAgICAgICBlbmQ6IGNhbGVuZGFyQXBpLnZpZXcuY3VycmVudEVuZCxcclxuICAgICAgICB2aWV3VHlwZTogY2FsZW5kYXJBcGkudmlldy50eXBlXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICBjb25zdCBuZXdWaWV3VHlwZSA9IGNhbGVuZGFyQXBpLnZpZXcudHlwZTtcclxuICAgICAgaWYgKG5ld1ZpZXdUeXBlICE9PSB0aGlzLmN1cnJlbnRWaWV3VHlwZSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFZpZXdUeXBlID0gbmV3Vmlld1R5cGU7XHJcbiAgICAgICAgdGhpcy5tYXBEYXRhVG9FdmVudHModGhpcy5sYXN0RXZlbnRzRGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxwLWNhbGVuZGFyICNkYXRlUGlja2VyIGNsYXNzPVwiaGlkZGVuLWNhbGVuZGFyXCIgKG9uU2VsZWN0KT1cIm5hdmlnYXRlVG9EYXRlKCRldmVudClcIi8+XHJcbjxmdWxsLWNhbGVuZGFyICNjYWxlbmRhciBbb3B0aW9uc109J2NhbGVuZGFyT3B0aW9ucygpJz5cclxuICAgIDxuZy10ZW1wbGF0ZSAgbGV0LWFyZz5cclxuXHJcbiAgICA8aSBbbmdTdHlsZV09XCJhcmcuZXZlbnQuY29sb3IgJiYgYXJnLmV2ZW50LmNvbG9yICE9PSAnJyA/IHsnYmFja2dyb3VuZC1jb2xvcic6IGFyZy5ldmVudC5jb2xvcn0gOiB7fVwiID5cclxuICAgICAgICBcclxuICAgICAgICB7eyBhcmcuZXZlbnQudGl0bGUgfX08L2k+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Z1bGwtY2FsZW5kYXI+XHJcbjxhcHAtY29udGV4dC1tZW51IFxyXG4gIFtzaG93SW5mb0J1dHRvbl09XCJzaG93SW5mb0J1dHRvblwiXHJcbiAgW3Nob3dVcGxvYWRCdXR0b25dPVwic2hvd1VwbG9hZEJ1dHRvblwiXHJcbiAgW3Nob3dOb3RlQnV0dG9uXT1cInNob3dOb3RlQnV0dG9uXCJcclxuICBbc2hvd0FjdGlvbkJ1dHRvbl09XCJzaG93QWN0aW9uQnV0dG9uXCJcclxuICAoYWN0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlU2VsZWN0ZWRBY3Rpb24oJGV2ZW50KVwiPlxyXG48L2FwcC1jb250ZXh0LW1lbnU+XHJcbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25UZW1wbGF0ZT5cclxuICAgIDxwLWRyb3Bkb3duIFtzdHlsZV09XCJ7J3dpZHRoJyA6ICcyMDBweCcsJ2JvcmRlci1yYWRpdXMnOiAnNXB4J31cIiBbb3B0aW9uc109XCJkaXNwbGF5TW9kZU9wdGlvbnNcIiAob25DaGFuZ2UpPVwib25EaXNwbGF5TW9kZUNoYW5nZSgkZXZlbnQpXCI+PC9wLWRyb3Bkb3duPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -10713,8 +10713,8 @@ class TsiCalenderComponent {
10713
10713
  if (this.calendar) {
10714
10714
  const calendarApi = this.calendar.getApi();
10715
10715
  this.dateRangeChange.emit({
10716
- start: new Date(calendarApi.view.currentStart.setDate(calendarApi.view.currentStart.getDate() + 1)),
10717
- end: new Date(calendarApi.view.currentEnd.setDate(calendarApi.view.currentEnd.getDate() + 1)),
10716
+ start: calendarApi.view.currentStart,
10717
+ end: calendarApi.view.currentEnd,
10718
10718
  viewType: calendarApi.view.type
10719
10719
  });
10720
10720
  const newViewType = calendarApi.view.type;
@@ -11208,6 +11208,13 @@ class TsiGenericGridComponent {
11208
11208
  let start = this.searchFields?.find(x => x.field === this.calenderSchema?.start);
11209
11209
  let end = this.searchFields?.find(x => x.field === this.calenderSchema?.end);
11210
11210
  if (start && end) {
11211
+ if (this.calenderOriginalFilterCaptured) {
11212
+ start.value = this.calenderOriginalFilterStart;
11213
+ end.value = this.calenderOriginalFilterEnd;
11214
+ start.operator = this.calenderOriginalFilterStartOperator;
11215
+ end.operator = this.calenderOriginalFilterEndOperator;
11216
+ this.calenderOriginalFilterCaptured = false;
11217
+ }
11211
11218
  start.disabled = false;
11212
11219
  end.disabled = false;
11213
11220
  }
@@ -12697,6 +12704,8 @@ class TsiGenericGridComponent {
12697
12704
  if (wasOverwrittenByNavigation) {
12698
12705
  start.value = this.calenderOriginalFilterStart;
12699
12706
  end.value = this.calenderOriginalFilterEnd;
12707
+ start.operator = this.calenderOriginalFilterStartOperator;
12708
+ end.operator = this.calenderOriginalFilterEndOperator;
12700
12709
  }
12701
12710
  start.disabled = !isFilterRangeView;
12702
12711
  end.disabled = !isFilterRangeView;
@@ -12712,14 +12721,18 @@ class TsiGenericGridComponent {
12712
12721
  if (!this.calenderOriginalFilterCaptured) {
12713
12722
  this.calenderOriginalFilterStart = start.value;
12714
12723
  this.calenderOriginalFilterEnd = end.value;
12724
+ this.calenderOriginalFilterStartOperator = start.operator;
12725
+ this.calenderOriginalFilterEndOperator = end.operator;
12715
12726
  this.calenderOriginalFilterCaptured = true;
12716
12727
  }
12717
12728
  const isFilterRangeView = this.isCalenderFilterRangeView(event.viewType);
12718
12729
  if (!isFilterRangeView) {
12719
12730
  start.disabled = true;
12720
12731
  end.disabled = true;
12721
- start.value = event.start;
12722
- end.value = event.end;
12732
+ start.operator = FilterOperatorType.LESSOREQUAL;
12733
+ end.operator = FilterOperatorType.GREATEROREQUAL;
12734
+ start.value = this.datePipe.transform(event.end, 'yyyy-MM-dd');
12735
+ end.value = this.datePipe.transform(event.start, 'yyyy-MM-dd');
12723
12736
  this.search();
12724
12737
  }
12725
12738
  }