@colijnit/transaction 257.1.23 → 257.1.24

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.
@@ -36,6 +36,12 @@ export class DeliveryPlanningComponent {
36
36
  showClass() {
37
37
  return true;
38
38
  }
39
+ ngOnDestroy() {
40
+ if (this._deliveryPlanningService.employeeView) {
41
+ this._deliveryPlanningService.employeeView = false;
42
+ this._deliveryPlanningService.relationId = undefined;
43
+ }
44
+ }
39
45
  fullscreenToggle() {
40
46
  this.fullscreenEvent.emit();
41
47
  }
@@ -66,4 +72,4 @@ DeliveryPlanningComponent.propDecorators = {
66
72
  fullscreenEvent: [{ type: Output }],
67
73
  showClass: [{ type: HostBinding, args: ['class.co-delivery-planning',] }]
68
74
  };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmcvZGVsaXZlcnktcGxhbm5pbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQWEvRixNQUFNLE9BQU8seUJBQXlCO0lBaURwQyxZQUFvQix3QkFBaUQ7UUFBakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQS9DckQsY0FBUyxHQUFxQyx5QkFBeUIsQ0FBQztRQW9DakYsb0JBQWUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQVl0RSxDQUFDO0lBOUNELElBQ1csWUFBWSxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDbkQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7UUFDM0UsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDekUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixHQUFHLDZCQUE2QixDQUFDLEdBQUcsQ0FBQztJQUN4RixDQUFDO0lBRUQsSUFDVyxVQUFVLENBQUMsRUFBVTtRQUM5QixJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFDVyxZQUFZLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFDVyx1QkFBdUIsQ0FBQyxJQUFJO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUNXLG1CQUFtQixDQUFDLElBQTJCO1FBQ3hELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQ1csZ0JBQWdCLENBQUMsSUFBa0I7UUFDNUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBS0QsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDO0lBQ2hELENBQUM7SUFHTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBS00sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7O1lBakVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7OztHQU1UO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFoQk8sdUJBQXVCOzs7MkJBcUI1QixLQUFLO3lCQVFMLEtBQUs7MkJBS0wsS0FBSztzQ0FLTCxLQUFLO2tDQUtMLEtBQUs7K0JBS0wsS0FBSzs4QkFLTCxNQUFNO3dCQU9OLFdBQVcsU0FBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlc30gZnJvbSAnLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy12aWV3LW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge0NhbGVuZGFyVmlld30gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdNb2Rlc30gZnJvbSAnLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy1tb2Rlcy5lbnVtJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlc30gZnJvbSAnLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy1jYWxlbmRhci1tb2Rlcy5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tZGVsaXZlcnktcGxhbm5pbmcnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxjby1kZWxpdmVyeS1wbGFubmluZy1tYWluIChmdWxsc2NyZWVuRXZlbnQpPVwiZnVsbHNjcmVlblRvZ2dsZSgpXCI+XHJcbiAgICAgICAgICA8L2NvLWRlbGl2ZXJ5LXBsYW5uaW5nLW1haW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERlbGl2ZXJ5UGxhbm5pbmdDb21wb25lbnQge1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBlbXBsb3llZVZpZXcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmVtcGxveWVlVmlldyA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uudmlld01vZGUgPSBEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzLlNpZGViYXI7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kYXRlUGxhbm5pbmdNb2RlID0gQ2FsZW5kYXJWaWV3LkRheXNBcm91bmQ7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50Q2FsZW5kYXJNb2RlID0gRGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXMuRGF5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHJlbGF0aW9uSWQoaWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucmVsYXRpb25JZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyaXB0eWNoTW9kZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UudHJpcHR5Y2hNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFBsYW5uaW5nVmlld01vZGUobW9kZSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uudmlld01vZGUgPSBtb2RlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGN1cnJlbnRQbGFubmluZ01vZGUobW9kZTogRGVsaXZlcnlQbGFubmluZ01vZGVzKSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50UGxhbm5pbmdNb2RlID0gbW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjYWxlbmRhclZpZXdNb2RlKG1vZGU6IENhbGVuZGFyVmlldykge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZGF0ZVBsYW5uaW5nTW9kZSA9IG1vZGU7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZnVsbHNjcmVlbkV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFBsYW5uaW5nVmlld01vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uudmlld01vZGU7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWRlbGl2ZXJ5LXBsYW5uaW5nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxsc2NyZWVuVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5mdWxsc2NyZWVuRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvZGVsaXZlcnktcGxhbm5pbmcvZGVsaXZlcnktcGxhbm5pbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQWEvRixNQUFNLE9BQU8seUJBQXlCO0lBaURwQyxZQUFvQix3QkFBaUQ7UUFBakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQS9DckQsY0FBUyxHQUFxQyx5QkFBeUIsQ0FBQztRQW9DakYsb0JBQWUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQVl0RSxDQUFDO0lBOUNELElBQ1csWUFBWSxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDbkQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7UUFDM0UsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDekUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLG1CQUFtQixHQUFHLDZCQUE2QixDQUFDLEdBQUcsQ0FBQztJQUN4RixDQUFDO0lBRUQsSUFDVyxVQUFVLENBQUMsRUFBVTtRQUM5QixJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFDVyxZQUFZLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFDVyx1QkFBdUIsQ0FBQyxJQUFJO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUNXLG1CQUFtQixDQUFDLElBQTJCO1FBQ3hELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQ1csZ0JBQWdCLENBQUMsSUFBa0I7UUFDNUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBS0QsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDO0lBQ2hELENBQUM7SUFHTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBS00sV0FBVztRQUNoQixJQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLEVBQUU7WUFDN0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDbkQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7O1lBeEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7OztHQU1UO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFoQk8sdUJBQXVCOzs7MkJBcUI1QixLQUFLO3lCQVFMLEtBQUs7MkJBS0wsS0FBSztzQ0FLTCxLQUFLO2tDQUtMLEtBQUs7K0JBS0wsS0FBSzs4QkFLTCxNQUFNO3dCQU9OLFdBQVcsU0FBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4vc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzfSBmcm9tICcuLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXZpZXctbW9kZXMuZW51bSc7XHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tICdAY29saWpuaXQvc2hhcmVkY29tcG9uZW50cyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ01vZGVzfSBmcm9tICcuLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzfSBmcm9tICcuLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLWNhbGVuZGFyLW1vZGVzLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1kZWxpdmVyeS1wbGFubmluZycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGNvLWRlbGl2ZXJ5LXBsYW5uaW5nLW1haW4gKGZ1bGxzY3JlZW5FdmVudCk9XCJmdWxsc2NyZWVuVG9nZ2xlKClcIj5cclxuICAgICAgICAgIDwvY28tZGVsaXZlcnktcGxhbm5pbmctbWFpbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveXtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb2RlczogdHlwZW9mIERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZW1wbG95ZWVWaWV3KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5lbXBsb3llZVZpZXcgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnZpZXdNb2RlID0gRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlcy5TaWRlYmFyO1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZGF0ZVBsYW5uaW5nTW9kZSA9IENhbGVuZGFyVmlldy5EYXlzQXJvdW5kO1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudENhbGVuZGFyTW9kZSA9IERlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzLkRheTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZWxhdGlvbklkKGlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnJlbGF0aW9uSWQgPSBpZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmlwdHljaE1vZGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnRyaXB0eWNoTW9kZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGN1cnJlbnRQbGFubmluZ1ZpZXdNb2RlKG1vZGUpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnZpZXdNb2RlID0gbW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjdXJyZW50UGxhbm5pbmdNb2RlKG1vZGU6IERlbGl2ZXJ5UGxhbm5pbmdNb2Rlcykge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nTW9kZSA9IG1vZGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY2FsZW5kYXJWaWV3TW9kZShtb2RlOiBDYWxlbmRhclZpZXcpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRhdGVQbGFubmluZ01vZGUgPSBtb2RlO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZ1bGxzY3JlZW5FdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRQbGFubmluZ1ZpZXdNb2RlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnZpZXdNb2RlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1kZWxpdmVyeS1wbGFubmluZycpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5lbXBsb3llZVZpZXcpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZW1wbG95ZWVWaWV3ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnJlbGF0aW9uSWQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZnVsbHNjcmVlblRvZ2dsZSgpIHtcclxuICAgIHRoaXMuZnVsbHNjcmVlbkV2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -248,11 +248,19 @@ export class DeliveryPlanningService {
248
248
  if (newIndex < 0 || newIndex >= array.length) {
249
249
  return; // Do nothing if already at the first or last position
250
250
  }
251
- // Swap the items in the array
251
+ const originalDuration = item.endTime.getTime() - item.startTime.getTime();
252
+ const swapItem = array[newIndex];
253
+ // Assign new start time based on the swapped item's original start time
254
+ item.startTime = new Date(swapItem.startTime.getTime());
255
+ item.endTime = new Date(item.startTime.getTime() + originalDuration);
256
+ // Ensure the swapped item doesn't overlap
257
+ const swapDuration = swapItem.endTime.getTime() - swapItem.startTime.getTime();
258
+ if (item.endTime.getTime() > swapItem.startTime.getTime()) {
259
+ swapItem.startTime = new Date(item.endTime.getTime()); // Adjust start time to avoid overlap
260
+ swapItem.endTime = new Date(swapItem.startTime.getTime() + swapDuration);
261
+ }
262
+ // Swap positions in the array
252
263
  [array[index], array[newIndex]] = [array[newIndex], array[index]];
253
- // Swap startTime and endTime properties
254
- [array[index].startTime, array[newIndex].startTime] = [array[newIndex].startTime, array[index].startTime];
255
- [array[index].endTime, array[newIndex].endTime] = [array[newIndex].endTime, array[index].endTime];
256
264
  }
257
265
  }
258
266
  DeliveryPlanningService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DeliveryPlanningService_Factory() { return new DeliveryPlanningService(i0.ɵɵinject(i1.TransactionConnectorService)); }, token: DeliveryPlanningService, providedIn: "root" });
@@ -264,4 +272,4 @@ DeliveryPlanningService.decorators = [
264
272
  DeliveryPlanningService.ctorParameters = () => [
265
273
  { type: TransactionConnectorService }
266
274
  ];
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUVwRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUUvRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUVqRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQU1wRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUUxRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFLN0IsTUFBTSxPQUFPLHVCQUF1QjtJQXdGbEMsWUFDVSxZQUF5QztRQUF6QyxpQkFBWSxHQUFaLFlBQVksQ0FBNkI7UUF4RjNDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsdUJBQWtCLEdBQTRCLEVBQUUsQ0FBQztRQUNqRCwwQkFBcUIsR0FB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UUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEcsQ0FBQzs7OztZQWhTRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXhCTywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlc30gZnJvbSAnLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy1jYWxlbmRhci1tb2Rlcy5lbnVtJztcclxuaW1wb3J0IHtDYWxlbmRhclZpZXd9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzfSBmcm9tICcuLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXZpZXctbW9kZXMuZW51bSc7XHJcbmltcG9ydCB7UGxhbm5pbmd9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy5ibyc7XHJcbmltcG9ydCB7U2VxdWVuY2VOYW1lfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9zZXF1ZW5jZS1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla0RheX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLWRheS5ibyc7XHJcbmltcG9ydCB7R2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2dldC10cmFuc3BvcnQtb3JkZXJzLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLmJvJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nTW9kZXN9IGZyb20gJy4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctbW9kZXMuZW51bSc7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcbmltcG9ydCB7T3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZXMtcGxhbm5lZC1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtQbGFubmluZ0ZpbHRlck9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLWZpbHRlci1vYmplY3QuYm8nO1xyXG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvJztcclxuaW1wb3J0IHtEaXN0cmljdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2Rpc3RyaWN0LmJvJztcclxuaW1wb3J0IHtTa2lsbH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NraWxsLmJvJztcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VXNlckdyb3VwfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdXNlci1ncm91cC5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1RpbGVNb2Rlc30gZnJvbSAnLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy10aWxlLW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge1BsYW5PcmRlckxpbmV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLWxpbmUuYm8nO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVsaXZlcnlQbGFubmluZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcGxhblRyYW5zcG9ydFdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla1tdID0gW107XHJcbiAgcHJpdmF0ZSBfcGxhblRyYW5zcG9ydFdlZWtBcnI6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfZGVsaXZlcnlNZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdID0gW107XHJcbiAgcHJpdmF0ZSBfZGlzdHJpY3RzOiBEaXN0cmljdFtdID0gW107XHJcbiAgcHJpdmF0ZSBfc2tpbGxzOiBTa2lsbFtdID0gW107XHJcbiAgcHJpdmF0ZSBfZW1wbG95ZWVzOiBSZWxhdGlvbkxpc3RPYmplY3RbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3VzZXJHcm91cHM6IFVzZXJHcm91cFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50Q2FsZW5kYXJNb2RlOiBEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzLldlZWs7XHJcbiAgcHVibGljIGN1cnJlbnRUaWxlTW9kZTogRGVsaXZlcnlQbGFubmluZ1RpbGVNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXMuTm9ybWFsO1xyXG4gIHB1YmxpYyBkYXRlUGxhbm5pbmdNb2RlOiBDYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc7XHJcbiAgcHVibGljIHZpZXdNb2RlOiBEZWxpdmVyeVBsYW5uaW5nVmlld01vZGVzID0gRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlcy5GdWxsc2NyZWVuO1xyXG4gIHB1YmxpYyBjdXJyZW50UGxhbm5pbmdNb2RlOiBEZWxpdmVyeVBsYW5uaW5nTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nTW9kZXMuVHJhbnNhY3Rpb247XHJcbiAgcHVibGljIGN1cnJlbnRQbGFubmluZzogUGxhbm5pbmc7XHJcbiAgcHVibGljIGN1cnJlbnRTdGFydERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBwbGFuT3JkZXJEYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBjdXJyZW50VHJhbnNJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBkZWxldGluZ09yZGVyOiBQbGFuT3JkZXI7XHJcbiAgcHVibGljIGxpbmVzUGxhbk9yZGVyOiBQbGFuT3JkZXI7XHJcbiAgcHVibGljIGF2YWlsYWJpbGl0eUNoZWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxQbGFuT3JkZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFuT3JkZXI+KCk7XHJcbiAgcHVibGljIGF2YWlsYWJpbGl0eVJlc2V0RXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBwdWJsaWMgcmVSZW5kZXJIb3VyU2NoZWR1bGluZzogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIG1vdmluZ1RyYW5zSWQ6IG51bWJlcjtcclxuICBwdWJsaWMgcmVsYXRpb25JZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBlbXBsb3llZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdHJpcHR5Y2hNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHBsYW5SYXlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsc3BNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBnZXQgZHJhZ2dpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZHJhZ2dpbmc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBsYW5UcmFuc3BvcnRXZWVrKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYW5UcmFuc3BvcnRXZWVrO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwbGFuVHJhbnNwb3J0V2Vla0FycigpOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFuVHJhbnNwb3J0V2Vla0FycjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVsaXZlcnlNZXRob2RzKCk6IERlbGl2ZXJ5TWV0aG9kW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlbGl2ZXJ5TWV0aG9kcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGlzdHJpY3RzKCk6IERpc3RyaWN0W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3RyaWN0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW1wbG95ZWVzKCk6IFJlbGF0aW9uTGlzdE9iamVjdFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9lbXBsb3llZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNraWxscygpOiBTa2lsbFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9za2lsbHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHVzZXJHcm91cHMoKTogVXNlckdyb3VwW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJHcm91cHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGRyYWdnaW5nKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9kcmFnZ2luZyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBkZWxpdmVyeU1ldGhvZHMobWV0aG9kczogRGVsaXZlcnlNZXRob2RbXSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlNZXRob2RzID0gbWV0aG9kcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZGlzdHJpY3RzKGRpc3RyaWN0czogRGlzdHJpY3RbXSkge1xyXG4gICAgdGhpcy5fZGlzdHJpY3RzID0gZGlzdHJpY3RzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBlbXBsb3llZXMoZW1wbG95ZWVzOiBSZWxhdGlvbkxpc3RPYmplY3RbXSkge1xyXG4gICAgdGhpcy5fZW1wbG95ZWVzID0gZW1wbG95ZWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBza2lsbHMoc2tpbGxzOiBTa2lsbFtdKSB7XHJcbiAgICB0aGlzLl9za2lsbHMgPSBza2lsbHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHVzZXJHcm91cHMoZ3JvdXBzOiBVc2VyR3JvdXBbXSkge1xyXG4gICAgdGhpcy5fdXNlckdyb3VwcyA9IGdyb3VwcztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9yZGVyU2VxdWVuY2VWYWx1ZSgpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFNlcXVlbmNlVmFsdWUoU2VxdWVuY2VOYW1lLlBsYW5MaW5lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc3BvcnRPcmRlcnMocGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkpOiBQcm9taXNlPFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheT4ge1xyXG4gICAgaWYgKHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheS50cmFuc3BvcnQpIHtcclxuICAgICAgbGV0IHJlcXVlc3Q6IEdldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3QgPSBuZXcgR2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdCgpO1xyXG4gICAgICByZXF1ZXN0LnRyYW5zcG9ydElkID0gcGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LnRyYW5zcG9ydC50cmFuc3BvcnRJZDtcclxuICAgICAgcmVxdWVzdC5kYXRlID0gcGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LmRhdGU7XHJcbiAgICAgIHJlcXVlc3QucGxhbm5pbmdJZCA9IHRoaXMuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQ7XHJcbiAgICAgIGNvbnN0IG9yZGVyUmVzcG9uc2UgPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5nZXRUcmFuc3BvcnRPcmRlcnMocmVxdWVzdCk7XHJcbiAgICAgIGlmIChvcmRlclJlc3BvbnNlICYmIG9yZGVyUmVzcG9uc2UubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheS5wbGFubmVkT3JkZXJzID0gb3JkZXJSZXNwb25zZTtcclxuICAgICAgICBwbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkub3JkZXJzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0T3JkZXJMaW5lc1BsYW5uZWQob3JkZXI6IFBsYW5PcmRlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IE9yZGVyTGluZXNQbGFubmVkUmVxdWVzdCA9IG5ldyBPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3QoKTtcclxuICAgIGxldCBmaWx0ZXJPYmo6IFBsYW5uaW5nRmlsdGVyT2JqZWN0ID0gbmV3IFBsYW5uaW5nRmlsdGVyT2JqZWN0KCk7XHJcbiAgICByZXF1ZXN0LnBsYW5uZWQgPSB0cnVlO1xyXG4gICAgcmVxdWVzdC5wbGFubmluZ0lkID0gdGhpcy5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZDtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IG9yZGVyLnRyYW5zSWQ7XHJcbiAgICByZXF1ZXN0LnBsYW5uZWRMaW5lSWQgPSBvcmRlci5wbGFubmVkTGluZUlkO1xyXG4gICAgZmlsdGVyT2JqLm9ubHlDdXJyZW50V2VlayA9IHRydWU7XHJcbiAgICBmaWx0ZXJPYmouYmVnaW5DdXJyZW50V2VlayA9IG5ldyBEYXRlKCk7XHJcbiAgICBmaWx0ZXJPYmouY2hlY2tPcmRlckxpbmVzID0gMTtcclxuICAgIHJlcXVlc3QuZmlsdGVyT2JqZWN0ID0gZmlsdGVyT2JqO1xyXG4gICAgaWYgKCFvcmRlci5saW5lcykge1xyXG4gICAgICBvcmRlci5saW5lcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgb3JkZXIubGluZXMucHVzaCguLi5hd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5nZXRPcmRlckxpbmVzUGxhbm5lZChyZXF1ZXN0KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2VxdWVuY2VPcmRlclZhbHVlKG9yZGVyOiBQbGFuT3JkZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIG9yZGVyLnBsYW5uZWRMaW5lSWQgPSBhd2FpdCB0aGlzLmdldE9yZGVyU2VxdWVuY2VWYWx1ZSgpO1xyXG4gICAgb3JkZXIuY2hhaW5lZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFBsYW5uaW5nVHJhbnNwb3J0V2VlaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmVtcGxveWVlVmlldyAmJiB0aGlzLnJlbGF0aW9uSWQpIHtcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0UGxhbm5lZExpbmVzRm9yRW1wbG95ZWUodGhpcy5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZCwgdGhpcy5yZWxhdGlvbklkLCB0aGlzLmN1cnJlbnRTdGFydERhdGUpLnRoZW4oKHJlc3VsdDogUGxhbm5pbmdUcmFuc3BvcnRXZWVrW10pID0+IHtcclxuICAgICAgICB0aGlzLl9wbGFuVHJhbnNwb3J0V2VlayA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9wbGFuVHJhbnNwb3J0V2Vla0FyciA9IHRoaXMuY29udmVydFBsYW5uaW5nVHJhbnNwb3J0V2Vla1RvQXJyYXkodGhpcy5fcGxhblRyYW5zcG9ydFdlZWspO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0UGxhblRyYW5zcG9ydFdlZWsodGhpcy5jdXJyZW50U3RhcnREYXRlLCB0aGlzLmN1cnJlbnRQbGFubmluZy5wbGFubmluZ0lkKS50aGVuKChyZXN1bHQ6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla1tdKSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuX3BsYW5UcmFuc3BvcnRXZWVrID0gcmVzdWx0O1xyXG4gICAgICAgIHRoaXMuX3BsYW5UcmFuc3BvcnRXZWVrQXJyID0gdGhpcy5jb252ZXJ0UGxhbm5pbmdUcmFuc3BvcnRXZWVrVG9BcnJheSh0aGlzLl9wbGFuVHJhbnNwb3J0V2Vlayk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVBsYW5uaW5nVHJhbnNwb3J0VmFsdWVzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gR2V0IG5ldyBwbGFubmluZyB0cmFuc3BvcnQgd2VlayBkYXRhIGZyb20gdGhlIGJhY2tlbmRcclxuICAgIGxldCBuZXdQbGFubmluZ1RyYW5zcG9ydFdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla1tdID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0UGxhblRyYW5zcG9ydFdlZWsodGhpcy5jdXJyZW50U3RhcnREYXRlLCB0aGlzLmN1cnJlbnRQbGFubmluZy5wbGFubmluZ0lkKTtcclxuXHJcbiAgICAvLyBDb252ZXJ0IHRoZSBuZXcgcGxhbm5pbmcgdHJhbnNwb3J0IHdlZWsgZGF0YSB0byBhIG5lc3RlZCBhcnJheVxyXG4gICAgbGV0IG5ld1BsYW5uaW5nTmVzdGVkQXJyID0gdGhpcy5jb252ZXJ0UGxhbm5pbmdUcmFuc3BvcnRXZWVrVG9BcnJheShuZXdQbGFubmluZ1RyYW5zcG9ydFdlZWspO1xyXG5cclxuICAgIC8vIFVwZGF0ZSB0aGUgb2xkIG5lc3RlZCBhcnJheSAodGhpcy5fcGxhblRyYW5zcG9ydFdlZWtBcnIpIHdpdGggbmV3IHZhbHVlc1xyXG4gICAgdGhpcy5fcGxhblRyYW5zcG9ydFdlZWtBcnIuZm9yRWFjaCgob2xkV2Vla0RheXM6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdLCB3ZWVrSW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCBuZXdXZWVrRGF5cyA9IG5ld1BsYW5uaW5nTmVzdGVkQXJyW3dlZWtJbmRleF07XHJcblxyXG4gICAgICAvLyBDb21wYXJlIGVhY2ggZGF5J3MgZGF0YSBpbiB0aGUgb2xkIGFuZCBuZXcgbmVzdGVkIGFycmF5c1xyXG4gICAgICBuZXdXZWVrRGF5cy5mb3JFYWNoKGFzeW5jIChuZXdEYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgZGF5SW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9sZERheSA9IG9sZFdlZWtEYXlzW2RheUluZGV4XTtcclxuXHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGNoYW5nZXMgYW5kIHVwZGF0ZSBvbmx5IGNoYW5nZWQgcHJvcGVydGllc1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX3VwZGF0ZUNoYW5nZWRQcm9wZXJ0aWVzKG9sZERheSwgbmV3RGF5KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4vLyBGdW5jdGlvbiB0byB1cGRhdGUgb25seSB0aGUgY2hhbmdlZCBwcm9wZXJ0aWVzXHJcbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlQ2hhbmdlZFByb3BlcnRpZXMob2xkRGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIG5ld0RheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBMaXN0IG9mIHByb3BlcnRpZXMgdG8gY29tcGFyZVxyXG4gICAgY29uc3QgcHJvcGVydGllc1RvQ29tcGFyZSA9IFtcclxuICAgICAgJ21pbnV0ZXMnLFxyXG4gICAgICAnbWF4TWludXRlcycsXHJcbiAgICAgICdtYXhGYWN0b3InLFxyXG4gICAgICAnb3JkZXJBbW91bnQnLFxyXG4gICAgICAnbG9hZCcsXHJcbiAgICAgICdtYXhPcmRlckFtb3VudCcsXHJcbiAgICAgICdmYWN0b3InXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHRyYW5zcG9ydFByb3BlcnRpZXNUb0NvbXBhcmU6IHN0cmluZ1tdID0gW1xyXG4gICAgICAnbWF4TG9hZCdcclxuICAgIF07XHJcblxyXG4gICAgcHJvcGVydGllc1RvQ29tcGFyZS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcclxuICAgICAgLy8gQ29tcGFyZSBhbmQgdXBkYXRlIG9ubHkgaWYgdGhlcmUncyBhIGNoYW5nZVxyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkob2xkRGF5W3Byb3BlcnR5XSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RheVtwcm9wZXJ0eV0pKSB7XHJcbiAgICAgICAgb2xkRGF5W3Byb3BlcnR5XSA9IG5ld0RheVtwcm9wZXJ0eV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRyYW5zcG9ydFByb3BlcnRpZXNUb0NvbXBhcmUuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XHJcbiAgICAgIGlmIChvbGREYXkudHJhbnNwb3J0ICYmIG5ld0RheS50cmFuc3BvcnQpIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkob2xkRGF5LnRyYW5zcG9ydFtwcm9wZXJ0eV0gIT09IEpTT04uc3RyaW5naWZ5KG5ld0RheS50cmFuc3BvcnRbcHJvcGVydHldKSkpIHtcclxuICAgICAgICAgIG9sZERheS50cmFuc3BvcnRbcHJvcGVydHldID0gbmV3RGF5Py50cmFuc3BvcnRbcHJvcGVydHldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5nZXRUcmFuc3BvcnRPcmRlcnMob2xkRGF5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb252ZXJ0UGxhbm5pbmdUcmFuc3BvcnRXZWVrVG9BcnJheShwbGFubmluZ1RyYW5zcG9ydFdlZWs6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla1tdKSB7XHJcbiAgICBsZXQgd2Vla0FycmF5czogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W11bXSA9IFtdO1xyXG4gICAgaWYgKHBsYW5uaW5nVHJhbnNwb3J0V2Vlay5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBsYW5uaW5nVHJhbnNwb3J0V2Vlay5mb3JFYWNoKCh0ZWFtOiBQbGFubmluZ1RyYW5zcG9ydFdlZWspID0+IHtcclxuICAgICAgICB3ZWVrQXJyYXlzLnB1c2goT2JqZWN0LmtleXModGVhbSkuc29ydCgpLm1hcChrZXkgPT4gdGVhbVtrZXldKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdlZWtBcnJheXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydFRvUGxhblRyYW5zcG9ydFdlZWsobmVzdGVkQXJyYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdW10pOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtbXSB7XHJcbiAgICBsZXQgcGxhblRyYW5zcG9ydFdlZWtzOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtbXSA9IFtdO1xyXG5cclxuICAgIG5lc3RlZEFycmF5LmZvckVhY2goKHdlZWtEYXlzOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXSkgPT4ge1xyXG4gICAgICBsZXQgcGxhblRyYW5zcG9ydFdlZWs6IGFueSA9IHt9OyAvLyBDcmVhdGUgYW4gZW1wdHkgb2JqZWN0IHRvIGhvbGQgdGhlIHdlZWsncyBkYXlzXHJcblxyXG4gICAgICAvLyBTdGFydCBmcm9tIFwiZGF5MVwiIGFuZCBhc3NpZ24gdGhlIFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSBvYmplY3RzIChleGNsdWRpbmcgdGhlIHRyYW5zcG9ydElkKVxyXG4gICAgICB3ZWVrRGF5cy5mb3JFYWNoKChkYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSwgZGF5SW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChkYXlJbmRleCA9PT0gNykge1xyXG4gICAgICAgICAgcGxhblRyYW5zcG9ydFdlZWtbJ3RyYW5zcG9ydElkJ10gPSB3ZWVrRGF5c1tkYXlJbmRleF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBsYW5UcmFuc3BvcnRXZWVrW2BkYXkke2RheUluZGV4ICsgMX1gXSA9IGRheTsgIC8vIFwiZGF5MVwiLCBcImRheTJcIiwgZXRjLlxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBQdXNoIHRoZSBvYmplY3QgaW50byB0aGUgZmluYWwgYXJyYXlcclxuICAgICAgcGxhblRyYW5zcG9ydFdlZWtzLnB1c2gocGxhblRyYW5zcG9ydFdlZWsgYXMgUGxhbm5pbmdUcmFuc3BvcnRXZWVrKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBwbGFuVHJhbnNwb3J0V2Vla3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG90YWxBc3NlbWJseVRpbWUocGxhbk9yZGVyOiBQbGFuT3JkZXIpIHtcclxuICAgIGlmIChwbGFuT3JkZXIpIHtcclxuICAgICAgbGV0IHRvdGFsOiBudW1iZXIgPSAwO1xyXG4gICAgICBwbGFuT3JkZXI/LmxpbmVzPy5mb3JFYWNoKChsaW5lOiBQbGFuT3JkZXJMaW5lKSA9PiB7XHJcbiAgICAgICAgaWYgKGxpbmUubWludXRlcyA+IDApIHtcclxuICAgICAgICAgIHRvdGFsICs9IGxpbmUubWludXRlcztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdG90YWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTWludXRlcyhkYXRlOiBEYXRlLCBtaW51dGVzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSArIG1pbnV0ZXMgKiA2MDAwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzTWF0Y2gobGlzdDE6IG51bWJlcltdLCBsaXN0MjogbnVtYmVyW10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHNldDE6IFNldDxudW1iZXI+ID0gbmV3IFNldChsaXN0MSk7XHJcbiAgICByZXR1cm4gbGlzdDIuc29tZSgobnVtOiBudW1iZXIpID0+IHNldDEuaGFzKG51bSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyByZW9yZGVySXRlbTxUIGV4dGVuZHMgeyBzdGFydFRpbWU6IERhdGU7IGVuZFRpbWU6IERhdGUgfT4oXHJcbiAgICBhcnJheTogVFtdLFxyXG4gICAgaXRlbTogVCxcclxuICAgIGRpcmVjdGlvbjogXCJ1cFwiIHwgXCJkb3duXCJcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gYXJyYXkuaW5kZXhPZihpdGVtKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkl0ZW0gbm90IGZvdW5kIGluIGFycmF5XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBuZXdJbmRleCA9IGRpcmVjdGlvbiA9PT0gXCJ1cFwiID8gaW5kZXggLSAxIDogaW5kZXggKyAxO1xyXG5cclxuICAgIC8vIEVuc3VyZSBuZXdJbmRleCBpcyB3aXRoaW4gYm91bmRzXHJcbiAgICBpZiAobmV3SW5kZXggPCAwIHx8IG5ld0luZGV4ID49IGFycmF5Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47IC8vIERvIG5vdGhpbmcgaWYgYWxyZWFkeSBhdCB0aGUgZmlyc3Qgb3IgbGFzdCBwb3NpdGlvblxyXG4gICAgfVxyXG5cclxuICAgIC8vIFN3YXAgdGhlIGl0ZW1zIGluIHRoZSBhcnJheVxyXG4gICAgW2FycmF5W2luZGV4XSwgYXJyYXlbbmV3SW5kZXhdXSA9IFthcnJheVtuZXdJbmRleF0sIGFycmF5W2luZGV4XV07XHJcblxyXG4gICAgLy8gU3dhcCBzdGFydFRpbWUgYW5kIGVuZFRpbWUgcHJvcGVydGllc1xyXG4gICAgW2FycmF5W2luZGV4XS5zdGFydFRpbWUsIGFycmF5W25ld0luZGV4XS5zdGFydFRpbWVdID0gW2FycmF5W25ld0luZGV4XS5zdGFydFRpbWUsIGFycmF5W2luZGV4XS5zdGFydFRpbWVdO1xyXG4gICAgW2FycmF5W2luZGV4XS5lbmRUaW1lLCBhcnJheVtuZXdJbmRleF0uZW5kVGltZV0gPSBbYXJyYXlbbmV3SW5kZXhdLmVuZFRpbWUsIGFycmF5W2luZGV4XS5lbmRUaW1lXTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUVwRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUUvRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUVqRixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQU1wRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUUxRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFLN0IsTUFBTSxPQUFPLHVCQUF1QjtJQXdGbEMsWUFDVSxZQUF5QztRQUF6QyxpQkFBWSxHQUFaLFlBQVksQ0FBNkI7UUF4RjNDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsdUJBQWtCLEdBQTRCLEVBQUUsQ0FBQztRQUNqRCwwQkFBcUIsR0FB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Q0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXJFLDBDQUEwQztRQUMxQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0UsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekQsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7WUFDNUYsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQzFFO1FBRUQsOEJBQThCO1FBQzlCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7WUF6U0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUF4Qk8sMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXN9IGZyb20gJy4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctY2FsZW5kYXItbW9kZXMuZW51bSc7XHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tICdAY29saWpuaXQvc2hhcmVkY29tcG9uZW50cyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlc30gZnJvbSAnLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy12aWV3LW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge1BsYW5uaW5nfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmcuYm8nO1xyXG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vc2VxdWVuY2UtbmFtZS5lbnVtJztcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXl9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay1kYXkuYm8nO1xyXG5pbXBvcnQge0dldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtdHJhbnNwb3J0LW9yZGVycy1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWt9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ01vZGVzfSBmcm9tICcuLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm8nO1xyXG5pbXBvcnQge09yZGVyTGluZXNQbGFubmVkUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmVzLXBsYW5uZWQtcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7UGxhbm5pbmdGaWx0ZXJPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy1maWx0ZXItb2JqZWN0LmJvJztcclxuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ibyc7XHJcbmltcG9ydCB7RGlzdHJpY3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kaXN0cmljdC5ibyc7XHJcbmltcG9ydCB7U2tpbGx9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9za2lsbC5ibyc7XHJcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1VzZXJHcm91cH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3VzZXItZ3JvdXAuYm8nO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXN9IGZyb20gJy4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctdGlsZS1tb2Rlcy5lbnVtJztcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci1saW5lLmJvJztcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9kcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3BsYW5UcmFuc3BvcnRXZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3BsYW5UcmFuc3BvcnRXZWVrQXJyOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2RlbGl2ZXJ5TWV0aG9kczogRGVsaXZlcnlNZXRob2RbXSA9IFtdO1xyXG4gIHByaXZhdGUgX2Rpc3RyaWN0czogRGlzdHJpY3RbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3NraWxsczogU2tpbGxbXSA9IFtdO1xyXG4gIHByaXZhdGUgX2VtcGxveWVlczogUmVsYXRpb25MaXN0T2JqZWN0W10gPSBbXTtcclxuICBwcml2YXRlIF91c2VyR3JvdXBzOiBVc2VyR3JvdXBbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgY3VycmVudENhbGVuZGFyTW9kZTogRGVsaXZlcnlQbGFubmluZ0NhbGVuZGFyTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlcy5XZWVrO1xyXG4gIHB1YmxpYyBjdXJyZW50VGlsZU1vZGU6IERlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nVGlsZU1vZGVzLk5vcm1hbDtcclxuICBwdWJsaWMgZGF0ZVBsYW5uaW5nTW9kZTogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3O1xyXG4gIHB1YmxpYyB2aWV3TW9kZTogRGVsaXZlcnlQbGFubmluZ1ZpZXdNb2RlcyA9IERlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXMuRnVsbHNjcmVlbjtcclxuICBwdWJsaWMgY3VycmVudFBsYW5uaW5nTW9kZTogRGVsaXZlcnlQbGFubmluZ01vZGVzID0gRGVsaXZlcnlQbGFubmluZ01vZGVzLlRyYW5zYWN0aW9uO1xyXG4gIHB1YmxpYyBjdXJyZW50UGxhbm5pbmc6IFBsYW5uaW5nO1xyXG4gIHB1YmxpYyBjdXJyZW50U3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgcGxhbk9yZGVyRGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgY3VycmVudFRyYW5zSWQ6IG51bWJlcjtcclxuICBwdWJsaWMgZGVsZXRpbmdPcmRlcjogUGxhbk9yZGVyO1xyXG4gIHB1YmxpYyBsaW5lc1BsYW5PcmRlcjogUGxhbk9yZGVyO1xyXG4gIHB1YmxpYyBhdmFpbGFiaWxpdHlDaGVja0V2ZW50OiBFdmVudEVtaXR0ZXI8UGxhbk9yZGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhbk9yZGVyPigpO1xyXG4gIHB1YmxpYyBhdmFpbGFiaWxpdHlSZXNldEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgcHVibGljIHJlUmVuZGVySG91clNjaGVkdWxpbmc6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyBtb3ZpbmdUcmFuc0lkOiBudW1iZXI7XHJcbiAgcHVibGljIHJlbGF0aW9uSWQ6IG51bWJlcjtcclxuICBwdWJsaWMgZW1wbG95ZWVWaWV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRyaXB0eWNoTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBwbGFuUmF5b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbHNwTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZ2V0IGRyYWdnaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RyYWdnaW5nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwbGFuVHJhbnNwb3J0V2VlaygpIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFuVHJhbnNwb3J0V2VlaztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGxhblRyYW5zcG9ydFdlZWtBcnIoKTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W11bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhblRyYW5zcG9ydFdlZWtBcnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5TWV0aG9kcygpOiBEZWxpdmVyeU1ldGhvZFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWxpdmVyeU1ldGhvZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRpc3RyaWN0cygpOiBEaXN0cmljdFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXN0cmljdHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVtcGxveWVlcygpOiBSZWxhdGlvbkxpc3RPYmplY3RbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1wbG95ZWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBza2lsbHMoKTogU2tpbGxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2tpbGxzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1c2VyR3JvdXBzKCk6IFVzZXJHcm91cFtdIHtcclxuICAgIHJldHVybiB0aGlzLl91c2VyR3JvdXBzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBkcmFnZ2luZyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fZHJhZ2dpbmcgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZGVsaXZlcnlNZXRob2RzKG1ldGhvZHM6IERlbGl2ZXJ5TWV0aG9kW10pIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5TWV0aG9kcyA9IG1ldGhvZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGRpc3RyaWN0cyhkaXN0cmljdHM6IERpc3RyaWN0W10pIHtcclxuICAgIHRoaXMuX2Rpc3RyaWN0cyA9IGRpc3RyaWN0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZW1wbG95ZWVzKGVtcGxveWVlczogUmVsYXRpb25MaXN0T2JqZWN0W10pIHtcclxuICAgIHRoaXMuX2VtcGxveWVlcyA9IGVtcGxveWVlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgc2tpbGxzKHNraWxsczogU2tpbGxbXSkge1xyXG4gICAgdGhpcy5fc2tpbGxzID0gc2tpbGxzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCB1c2VyR3JvdXBzKGdyb3VwczogVXNlckdyb3VwW10pIHtcclxuICAgIHRoaXMuX3VzZXJHcm91cHMgPSBncm91cHM7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlclNlcXVlbmNlVmFsdWUoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5nZXRTZXF1ZW5jZVZhbHVlKFNlcXVlbmNlTmFtZS5QbGFuTGluZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNwb3J0T3JkZXJzKHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KTogUHJvbWlzZTxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+IHtcclxuICAgIGlmIChwbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkudHJhbnNwb3J0KSB7XHJcbiAgICAgIGxldCByZXF1ZXN0OiBHZXRUcmFuc3BvcnRPcmRlcnNSZXF1ZXN0ID0gbmV3IEdldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3QoKTtcclxuICAgICAgcmVxdWVzdC50cmFuc3BvcnRJZCA9IHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheS50cmFuc3BvcnQudHJhbnNwb3J0SWQ7XHJcbiAgICAgIHJlcXVlc3QuZGF0ZSA9IHBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheS5kYXRlO1xyXG4gICAgICByZXF1ZXN0LnBsYW5uaW5nSWQgPSB0aGlzLmN1cnJlbnRQbGFubmluZy5wbGFubmluZ0lkO1xyXG4gICAgICBjb25zdCBvcmRlclJlc3BvbnNlID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0VHJhbnNwb3J0T3JkZXJzKHJlcXVlc3QpO1xyXG4gICAgICBpZiAob3JkZXJSZXNwb25zZSAmJiBvcmRlclJlc3BvbnNlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBwbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkucGxhbm5lZE9yZGVycyA9IG9yZGVyUmVzcG9uc2U7XHJcbiAgICAgICAgcGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5Lm9yZGVyc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9yZGVyTGluZXNQbGFubmVkKG9yZGVyOiBQbGFuT3JkZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCByZXF1ZXN0OiBPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3QgPSBuZXcgT3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0KCk7XHJcbiAgICBsZXQgZmlsdGVyT2JqOiBQbGFubmluZ0ZpbHRlck9iamVjdCA9IG5ldyBQbGFubmluZ0ZpbHRlck9iamVjdCgpO1xyXG4gICAgcmVxdWVzdC5wbGFubmVkID0gdHJ1ZTtcclxuICAgIHJlcXVlc3QucGxhbm5pbmdJZCA9IHRoaXMuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQ7XHJcbiAgICByZXF1ZXN0LnRyYW5zSWQgPSBvcmRlci50cmFuc0lkO1xyXG4gICAgcmVxdWVzdC5wbGFubmVkTGluZUlkID0gb3JkZXIucGxhbm5lZExpbmVJZDtcclxuICAgIGZpbHRlck9iai5vbmx5Q3VycmVudFdlZWsgPSB0cnVlO1xyXG4gICAgZmlsdGVyT2JqLmJlZ2luQ3VycmVudFdlZWsgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZmlsdGVyT2JqLmNoZWNrT3JkZXJMaW5lcyA9IDE7XHJcbiAgICByZXF1ZXN0LmZpbHRlck9iamVjdCA9IGZpbHRlck9iajtcclxuICAgIGlmICghb3JkZXIubGluZXMpIHtcclxuICAgICAgb3JkZXIubGluZXMgPSBbXTtcclxuICAgIH1cclxuICAgIG9yZGVyLmxpbmVzLnB1c2goLi4uYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0T3JkZXJMaW5lc1BsYW5uZWQocmVxdWVzdCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNlcXVlbmNlT3JkZXJWYWx1ZShvcmRlcjogUGxhbk9yZGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBvcmRlci5wbGFubmVkTGluZUlkID0gYXdhaXQgdGhpcy5nZXRPcmRlclNlcXVlbmNlVmFsdWUoKTtcclxuICAgIG9yZGVyLmNoYWluZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQbGFubmluZ1RyYW5zcG9ydFdlZWsoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5lbXBsb3llZVZpZXcgJiYgdGhpcy5yZWxhdGlvbklkKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uLmdldFBsYW5uZWRMaW5lc0ZvckVtcGxveWVlKHRoaXMuY3VycmVudFBsYW5uaW5nLnBsYW5uaW5nSWQsIHRoaXMucmVsYXRpb25JZCwgdGhpcy5jdXJyZW50U3RhcnREYXRlKS50aGVuKChyZXN1bHQ6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla1tdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcGxhblRyYW5zcG9ydFdlZWsgPSByZXN1bHQ7XHJcbiAgICAgICAgdGhpcy5fcGxhblRyYW5zcG9ydFdlZWtBcnIgPSB0aGlzLmNvbnZlcnRQbGFubmluZ1RyYW5zcG9ydFdlZWtUb0FycmF5KHRoaXMuX3BsYW5UcmFuc3BvcnRXZWVrKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmdldFBsYW5UcmFuc3BvcnRXZWVrKHRoaXMuY3VycmVudFN0YXJ0RGF0ZSwgdGhpcy5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZCkudGhlbigocmVzdWx0OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtbXSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9wbGFuVHJhbnNwb3J0V2VlayA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9wbGFuVHJhbnNwb3J0V2Vla0FyciA9IHRoaXMuY29udmVydFBsYW5uaW5nVHJhbnNwb3J0V2Vla1RvQXJyYXkodGhpcy5fcGxhblRyYW5zcG9ydFdlZWspO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVQbGFubmluZ1RyYW5zcG9ydFZhbHVlcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEdldCBuZXcgcGxhbm5pbmcgdHJhbnNwb3J0IHdlZWsgZGF0YSBmcm9tIHRoZSBiYWNrZW5kXHJcbiAgICBsZXQgbmV3UGxhbm5pbmdUcmFuc3BvcnRXZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtbXSA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFBsYW5UcmFuc3BvcnRXZWVrKHRoaXMuY3VycmVudFN0YXJ0RGF0ZSwgdGhpcy5jdXJyZW50UGxhbm5pbmcucGxhbm5pbmdJZCk7XHJcblxyXG4gICAgLy8gQ29udmVydCB0aGUgbmV3IHBsYW5uaW5nIHRyYW5zcG9ydCB3ZWVrIGRhdGEgdG8gYSBuZXN0ZWQgYXJyYXlcclxuICAgIGxldCBuZXdQbGFubmluZ05lc3RlZEFyciA9IHRoaXMuY29udmVydFBsYW5uaW5nVHJhbnNwb3J0V2Vla1RvQXJyYXkobmV3UGxhbm5pbmdUcmFuc3BvcnRXZWVrKTtcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIG9sZCBuZXN0ZWQgYXJyYXkgKHRoaXMuX3BsYW5UcmFuc3BvcnRXZWVrQXJyKSB3aXRoIG5ldyB2YWx1ZXNcclxuICAgIHRoaXMuX3BsYW5UcmFuc3BvcnRXZWVrQXJyLmZvckVhY2goKG9sZFdlZWtEYXlzOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXSwgd2Vla0luZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgbmV3V2Vla0RheXMgPSBuZXdQbGFubmluZ05lc3RlZEFyclt3ZWVrSW5kZXhdO1xyXG5cclxuICAgICAgLy8gQ29tcGFyZSBlYWNoIGRheSdzIGRhdGEgaW4gdGhlIG9sZCBhbmQgbmV3IG5lc3RlZCBhcnJheXNcclxuICAgICAgbmV3V2Vla0RheXMuZm9yRWFjaChhc3luYyAobmV3RGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIGRheUluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCBvbGREYXkgPSBvbGRXZWVrRGF5c1tkYXlJbmRleF07XHJcblxyXG4gICAgICAgIC8vIENoZWNrIGZvciBjaGFuZ2VzIGFuZCB1cGRhdGUgb25seSBjaGFuZ2VkIHByb3BlcnRpZXNcclxuICAgICAgICBhd2FpdCB0aGlzLl91cGRhdGVDaGFuZ2VkUHJvcGVydGllcyhvbGREYXksIG5ld0RheSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuLy8gRnVuY3Rpb24gdG8gdXBkYXRlIG9ubHkgdGhlIGNoYW5nZWQgcHJvcGVydGllc1xyXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZUNoYW5nZWRQcm9wZXJ0aWVzKG9sZERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5LCBuZXdEYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gTGlzdCBvZiBwcm9wZXJ0aWVzIHRvIGNvbXBhcmVcclxuICAgIGNvbnN0IHByb3BlcnRpZXNUb0NvbXBhcmUgPSBbXHJcbiAgICAgICdtaW51dGVzJyxcclxuICAgICAgJ21heE1pbnV0ZXMnLFxyXG4gICAgICAnbWF4RmFjdG9yJyxcclxuICAgICAgJ29yZGVyQW1vdW50JyxcclxuICAgICAgJ2xvYWQnLFxyXG4gICAgICAnbWF4T3JkZXJBbW91bnQnLFxyXG4gICAgICAnZmFjdG9yJ1xyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdCB0cmFuc3BvcnRQcm9wZXJ0aWVzVG9Db21wYXJlOiBzdHJpbmdbXSA9IFtcclxuICAgICAgJ21heExvYWQnXHJcbiAgICBdO1xyXG5cclxuICAgIHByb3BlcnRpZXNUb0NvbXBhcmUuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XHJcbiAgICAgIC8vIENvbXBhcmUgYW5kIHVwZGF0ZSBvbmx5IGlmIHRoZXJlJ3MgYSBjaGFuZ2VcclxuICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KG9sZERheVtwcm9wZXJ0eV0pICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXlbcHJvcGVydHldKSkge1xyXG4gICAgICAgIG9sZERheVtwcm9wZXJ0eV0gPSBuZXdEYXlbcHJvcGVydHldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0cmFuc3BvcnRQcm9wZXJ0aWVzVG9Db21wYXJlLmZvckVhY2gocHJvcGVydHkgPT4ge1xyXG4gICAgICBpZiAob2xkRGF5LnRyYW5zcG9ydCAmJiBuZXdEYXkudHJhbnNwb3J0KSB7XHJcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KG9sZERheS50cmFuc3BvcnRbcHJvcGVydHldICE9PSBKU09OLnN0cmluZ2lmeShuZXdEYXkudHJhbnNwb3J0W3Byb3BlcnR5XSkpKSB7XHJcbiAgICAgICAgICBvbGREYXkudHJhbnNwb3J0W3Byb3BlcnR5XSA9IG5ld0RheT8udHJhbnNwb3J0W3Byb3BlcnR5XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZ2V0VHJhbnNwb3J0T3JkZXJzKG9sZERheSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29udmVydFBsYW5uaW5nVHJhbnNwb3J0V2Vla1RvQXJyYXkocGxhbm5pbmdUcmFuc3BvcnRXZWVrOiBQbGFubmluZ1RyYW5zcG9ydFdlZWtbXSkge1xyXG4gICAgbGV0IHdlZWtBcnJheXM6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheVtdW10gPSBbXTtcclxuICAgIGlmIChwbGFubmluZ1RyYW5zcG9ydFdlZWsubGVuZ3RoID4gMCkge1xyXG4gICAgICBwbGFubmluZ1RyYW5zcG9ydFdlZWsuZm9yRWFjaCgodGVhbTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrKSA9PiB7XHJcbiAgICAgICAgd2Vla0FycmF5cy5wdXNoKE9iamVjdC5rZXlzKHRlYW0pLnNvcnQoKS5tYXAoa2V5ID0+IHRlYW1ba2V5XSkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3ZWVrQXJyYXlzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnRUb1BsYW5UcmFuc3BvcnRXZWVrKG5lc3RlZEFycmF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXlbXVtdKTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrW10ge1xyXG4gICAgbGV0IHBsYW5UcmFuc3BvcnRXZWVrczogUGxhbm5pbmdUcmFuc3BvcnRXZWVrW10gPSBbXTtcclxuXHJcbiAgICBuZXN0ZWRBcnJheS5mb3JFYWNoKCh3ZWVrRGF5czogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5W10pID0+IHtcclxuICAgICAgbGV0IHBsYW5UcmFuc3BvcnRXZWVrOiBhbnkgPSB7fTsgLy8gQ3JlYXRlIGFuIGVtcHR5IG9iamVjdCB0byBob2xkIHRoZSB3ZWVrJ3MgZGF5c1xyXG5cclxuICAgICAgLy8gU3RhcnQgZnJvbSBcImRheTFcIiBhbmQgYXNzaWduIHRoZSBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXkgb2JqZWN0cyAoZXhjbHVkaW5nIHRoZSB0cmFuc3BvcnRJZClcclxuICAgICAgd2Vla0RheXMuZm9yRWFjaCgoZGF5OiBQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXksIGRheUluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAoZGF5SW5kZXggPT09IDcpIHtcclxuICAgICAgICAgIHBsYW5UcmFuc3BvcnRXZWVrWyd0cmFuc3BvcnRJZCddID0gd2Vla0RheXNbZGF5SW5kZXhdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBwbGFuVHJhbnNwb3J0V2Vla1tgZGF5JHtkYXlJbmRleCArIDF9YF0gPSBkYXk7ICAvLyBcImRheTFcIiwgXCJkYXkyXCIsIGV0Yy5cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gUHVzaCB0aGUgb2JqZWN0IGludG8gdGhlIGZpbmFsIGFycmF5XHJcbiAgICAgIHBsYW5UcmFuc3BvcnRXZWVrcy5wdXNoKHBsYW5UcmFuc3BvcnRXZWVrIGFzIFBsYW5uaW5nVHJhbnNwb3J0V2Vlayk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcGxhblRyYW5zcG9ydFdlZWtzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvdGFsQXNzZW1ibHlUaW1lKHBsYW5PcmRlcjogUGxhbk9yZGVyKSB7XHJcbiAgICBpZiAocGxhbk9yZGVyKSB7XHJcbiAgICAgIGxldCB0b3RhbDogbnVtYmVyID0gMDtcclxuICAgICAgcGxhbk9yZGVyPy5saW5lcz8uZm9yRWFjaCgobGluZTogUGxhbk9yZGVyTGluZSkgPT4ge1xyXG4gICAgICAgIGlmIChsaW5lLm1pbnV0ZXMgPiAwKSB7XHJcbiAgICAgICAgICB0b3RhbCArPSBsaW5lLm1pbnV0ZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRvdGFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE1pbnV0ZXMoZGF0ZTogRGF0ZSwgbWludXRlczogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyBtaW51dGVzICogNjAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc01hdGNoKGxpc3QxOiBudW1iZXJbXSwgbGlzdDI6IG51bWJlcltdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBzZXQxOiBTZXQ8bnVtYmVyPiA9IG5ldyBTZXQobGlzdDEpO1xyXG4gICAgcmV0dXJuIGxpc3QyLnNvbWUoKG51bTogbnVtYmVyKSA9PiBzZXQxLmhhcyhudW0pKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW9yZGVySXRlbTxUIGV4dGVuZHMgeyBzdGFydFRpbWU6IERhdGU7IGVuZFRpbWU6IERhdGUgfT4oXHJcbiAgICBhcnJheTogVFtdLFxyXG4gICAgaXRlbTogVCxcclxuICAgIGRpcmVjdGlvbjogXCJ1cFwiIHwgXCJkb3duXCJcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gYXJyYXkuaW5kZXhPZihpdGVtKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkl0ZW0gbm90IGZvdW5kIGluIGFycmF5XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBuZXdJbmRleCA9IGRpcmVjdGlvbiA9PT0gXCJ1cFwiID8gaW5kZXggLSAxIDogaW5kZXggKyAxO1xyXG5cclxuICAgIC8vIEVuc3VyZSBuZXdJbmRleCBpcyB3aXRoaW4gYm91bmRzXHJcbiAgICBpZiAobmV3SW5kZXggPCAwIHx8IG5ld0luZGV4ID49IGFycmF5Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47IC8vIERvIG5vdGhpbmcgaWYgYWxyZWFkeSBhdCB0aGUgZmlyc3Qgb3IgbGFzdCBwb3NpdGlvblxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9yaWdpbmFsRHVyYXRpb24gPSBpdGVtLmVuZFRpbWUuZ2V0VGltZSgpIC0gaXRlbS5zdGFydFRpbWUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3Qgc3dhcEl0ZW0gPSBhcnJheVtuZXdJbmRleF07XHJcblxyXG4gICAgLy8gQXNzaWduIG5ldyBzdGFydCB0aW1lIGJhc2VkIG9uIHRoZSBzd2FwcGVkIGl0ZW0ncyBvcmlnaW5hbCBzdGFydCB0aW1lXHJcbiAgICBpdGVtLnN0YXJ0VGltZSA9IG5ldyBEYXRlKHN3YXBJdGVtLnN0YXJ0VGltZS5nZXRUaW1lKCkpO1xyXG4gICAgaXRlbS5lbmRUaW1lID0gbmV3IERhdGUoaXRlbS5zdGFydFRpbWUuZ2V0VGltZSgpICsgb3JpZ2luYWxEdXJhdGlvbik7XHJcblxyXG4gICAgLy8gRW5zdXJlIHRoZSBzd2FwcGVkIGl0ZW0gZG9lc24ndCBvdmVybGFwXHJcbiAgICBjb25zdCBzd2FwRHVyYXRpb24gPSBzd2FwSXRlbS5lbmRUaW1lLmdldFRpbWUoKSAtIHN3YXBJdGVtLnN0YXJ0VGltZS5nZXRUaW1lKCk7XHJcbiAgICBpZiAoaXRlbS5lbmRUaW1lLmdldFRpbWUoKSA+IHN3YXBJdGVtLnN0YXJ0VGltZS5nZXRUaW1lKCkpIHtcclxuICAgICAgc3dhcEl0ZW0uc3RhcnRUaW1lID0gbmV3IERhdGUoaXRlbS5lbmRUaW1lLmdldFRpbWUoKSk7IC8vIEFkanVzdCBzdGFydCB0aW1lIHRvIGF2b2lkIG92ZXJsYXBcclxuICAgICAgc3dhcEl0ZW0uZW5kVGltZSA9IG5ldyBEYXRlKHN3YXBJdGVtLnN0YXJ0VGltZS5nZXRUaW1lKCkgKyBzd2FwRHVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFN3YXAgcG9zaXRpb25zIGluIHRoZSBhcnJheVxyXG4gICAgW2FycmF5W2luZGV4XSwgYXJyYXlbbmV3SW5kZXhdXSA9IFthcnJheVtuZXdJbmRleF0sIGFycmF5W2luZGV4XV07XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
@@ -64,8 +64,6 @@ export class TransactionSearchResultComponent {
64
64
  if (this.salesOrdersPageActive && this.showBatchOptions) {
65
65
  this.markSelectedTransactions();
66
66
  }
67
- }), this.transactionService.batchModalState.subscribe((state) => {
68
- this.showBatchProcessDialog = state;
69
67
  }));
70
68
  }
71
69
  ngOnChanges(changes) {
@@ -180,7 +178,7 @@ export class TransactionSearchResultComponent {
180
178
  this.showProcessOrdersLoader = false;
181
179
  this.transactionService.getBatchJobProgressesForTheUser().then((batchJobProgresses) => {
182
180
  this.batchJobProgress = batchJobProgresses;
183
- this.transactionService.openBatchModal();
181
+ this.showBatchProcessDialog = true;
184
182
  });
185
183
  }
186
184
  _clearSelected() {
@@ -276,7 +274,7 @@ TransactionSearchResultComponent.decorators = [
276
274
  *ngIf="showBatchProcessDialog"
277
275
  @fadeInOut
278
276
  [batchJobProgress]="batchJobProgress"
279
- (close)="transactionService.closeBatchModal()">
277
+ (close)="showBatchProcessDialog = false">
280
278
  </co-batch-process-dialog>
281
279
  `,
282
280
  animations: [
@@ -313,4 +311,4 @@ TransactionSearchResultComponent.propDecorators = {
313
311
  transactionClick: [{ type: Output }],
314
312
  showClass: [{ type: HostBinding, args: ['class.co-transaction-search-result',] }]
315
313
  };
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC90cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVySyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV0SCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUE4R3hFLE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1MsYUFBdUMsRUFDdkMsbUJBQTBELEVBQzFELGtCQUFzQyxFQUNyQyxrQkFBcUMsRUFDckMsd0JBQWlEO1FB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VDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDOzRCQUNuQixPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3lCQUM5QyxDQUFDO3dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt5QkFDL0MsQ0FBQztxQkFDSCxDQUFDO2lCQUNIO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0SE8sd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUlyQyxrQkFBa0I7WUFUbEIsaUJBQWlCO1lBUWpCLHVCQUF1Qjs7O29DQW9INUIsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7d0NBR0wsS0FBSztvQ0FHTCxLQUFLO3lCQVNMLEtBQUs7K0JBU0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC10cmFuc2FjdGlvbi1zZW5kaW5nLXJlcXVlc3QnO1xyXG5pbXBvcnQge0JhdGNoSm9iUHJvZ3Jlc3N9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC1qb2ItcHJvZ3Jlc3MuYm8nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zPy5sZW5ndGggPiAwICYmIHNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiBzaG93QmF0Y2hPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpID8gJ0RFU0VMRUNUX0FMTF9PUkRFUlMnIDogJ1NFTEVDVF9BTExfT1JERVJTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblRvZ2dsZUFsbE9yZGVycyhjaGVja0lmQWxsU2VsZWN0ZWQoKSlcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0lmU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlbmRNZXRob2REaWFsb2dJY29uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dQcm9jZXNzT3JkZXJzTG9hZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwic2hvd1NoaXBwaW5nTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tcXVpY2stc2VuZC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC1jb250ZW50LXRpbGVzLXdyYXBwZXJcIiBbbmdDbGFzc109XCJmdWxsc2NyZWVuID8gJ2Z1bGxzY3JlZW4nIDogJ3NpZGViYXInXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuVGlsZXMgJiYgIWV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImRyYWdnYWJsZVRyYW5zYWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQsIHRyYW5zYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdlbmQpPVwiZHJhZ0VuZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwic2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHNob3dCYXRjaE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ0cmFuc2FjdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInRyYW5zYWN0aW9uID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2xpY2spPVwib25TZWxlY3RlZENsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1zZWFyY2gtdGlsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LWNvbnRlbnQtZ3JpZC13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuR3JpZCAmJiAhZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJzYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgc2hvd0JhdGNoT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tc2VhcmNoLWdyaWQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZXh0ZW5kZWQtc2VhcmNoLXJlc3VsdC10aWxlLXdyYXBwZXJcIiAqbmdJZj1cImV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDbGljayk9XCJvblNlbGVjdGVkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hdPVwiZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGNvLXBhZ2luYXRpb24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwic2VhcmNoU2VydmljZS5jdXJyZW50UGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnNQZXJQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwic2VhcmNoU2VydmljZS5yZXN1bHRDb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwcmV2aW91c0xhYmVsXT1cIidQUkVWSU9VUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZXh0TGFiZWxdPVwiJ05FWFQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0hpZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXJlY3Rpb25MaW5rc109XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25SYW5nZV09XCIhZnVsbHNjcmVlbiA/IDYgOiA4XCJcclxuICAgICAgICAgICAgICAgICAgKHByZXZpb3VzQ2xpY2spPVwib25QcmV2aW91c0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAobmV4dENsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAocGFnZUNsaWNrKT1cIm9uUGFnZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tcGFnaW5hdGlvbi1iYXI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlLXdyYXBwZXJcIiAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zICYmIHNlYXJjaFNlcnZpY2UucmVzdWx0Q291bnQgPT09IDBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzBfUkVTVUxUU19GT1VORCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxjby1zaGlwcGluZy1tZXRob2QtZGlhbG9nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2hpcHBpbmdNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgIFtjYXRlZ29yeV09XCJiYXRjaENhdGVnb3J5XCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRUcmFuc2FjdGlvbnNdPVwic2VsZWN0ZWRUcmFuc2FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgIChjYW5jZWxDbGlja2VkKT1cInNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAoc2F2ZUNsaWNrZWQpPVwic2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDwvY28tc2hpcHBpbmctbWV0aG9kLWRpYWxvZz5cclxuXHJcbiAgICAgIDxjby1iYXRjaC1wcm9jZXNzLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0JhdGNoUHJvY2Vzc0RpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgQGZhZGVJbk91dFxyXG4gICAgICAgICAgICAgIFtiYXRjaEpvYlByb2dyZXNzXT1cImJhdGNoSm9iUHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgIChjbG9zZSk9XCJ0cmFuc2FjdGlvblNlcnZpY2UuY2xvc2VCYXRjaE1vZGFsKClcIj5cclxuICAgICAgPC9jby1iYXRjaC1wcm9jZXNzLWRpYWxvZz5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIHN0eWxlKHtvcGFjaXR5OiAwfSksXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1pbicsIHN0eWxlKHtvcGFjaXR5OiAxfSkpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7b3BhY2l0eTogMH0pKVxyXG4gICAgICBdKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dhYmxlVHJhbnNhY3Rpb25zOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYmF0Y2hDYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3RpdmVDb250ZW50Vmlld01vZGUodmFsdWU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ29udGVudFZpZXdNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNvbnRlbnRWaWV3TW9kZSgpOiBDb250ZW50Vmlld01vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBmdWxsc2NyZWVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9mdWxsc2NyZWVuID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRWaWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXc7XHJcbiAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzYWxlc09yZGVyc1BhZ2VBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoT3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U2hpcHBpbmdNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjaGVja2VkQXZhaWxhYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlYXJjaFZpZXdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3Q6IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IG5ldyBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QoKTtcclxuICBwdWJsaWMgYmF0Y2hKb2JQcm9ncmVzczogQmF0Y2hKb2JQcm9ncmVzc1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlO1xyXG4gIHByaXZhdGUgX2Z1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RTZXQuc3Vic2NyaWJlKChyZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKFtyZXF1ZXN0LnRyYW5zYWN0aW9uS2luZF0pO1xyXG4gICAgICAgICAgdGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgPSByZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9PT0gJ1YnO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgdGhpcy5zaG93QmF0Y2hPcHRpb25zKSB7XHJcbiAgICAgICAgICB0aGlzLm1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmJhdGNoTW9kYWxTdGF0ZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93QmF0Y2hQcm9jZXNzRGlhbG9nID0gc3RhdGU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10pIHtcclxuICAgICAgdGhpcy5iYXRjaENhdGVnb3J5ID0gY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5fc2hvd0JhdGNoT3B0aW9ucyh0aGlzLmJhdGNoQ2F0ZWdvcnkpO1xyXG4gICAgICBpZiAoY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2JhdGNoQ2F0ZWdvcnknXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UcmFuc2FjdGlvbkNsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkNsaWNrLmVtaXQodHJhbnNhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0ZWRDbGljayh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KTogdm9pZCB7XHJcbiAgICBpZiAodHJhbnNhY3Rpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5wdXNoKHRyYW5zYWN0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zSWQgPSB0cmFuc2FjdGlvbi50cmFuc0lkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZEluZGV4KHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLnRyYW5zSWQgPT09IHRyYW5zSWQpO1xyXG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmV2aW91c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlIC09IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25OZXh0Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgKz0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBhZ2VDbGljayhwYWdlTnI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlID0gcGFnZU5yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKHRyYW5zYWN0aW9uID0+IHtcclxuICAgICAgICBjb25zdCBtYXRjaGluZ09iamVjdCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZChzZWxlY3RlZFRyYW5zYWN0aW9uID0+IHNlbGVjdGVkVHJhbnNhY3Rpb24udHJhbnNJZCA9PT0gdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICAgICAgaWYgKG1hdGNoaW5nT2JqZWN0KSB7XHJcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkcmFnU3RhcnRlZChldjogYW55LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICBldi5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkpIHtcclxuICAgICAgbGV0IHBsYW5PcmRlcjogUGxhbk9yZGVyID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UGxhbk9yZGVyKHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5hdmFpbGFiaWxpdHlDaGVja0V2ZW50LmVtaXQocGxhbk9yZGVyKTtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxhYmlsaXR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcmFnRW5kKGV2OiBhbnkpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHVuZGVmaW5lZDtcclxuICAgIGlmICh0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxhYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eVJlc2V0RXZlbnQuZW1pdCgpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSWZTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLnNvbWUoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0lmQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5ldmVyeShpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dTaGlwcGluZ01vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U2hpcHBpbmdNZXRob2REaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVG9nZ2xlQWxsT3JkZXJzKGFsbFNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gIWFsbFNlbGVjdGVkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMgPSBbXTtcclxuICAgIGlmICghYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5wdXNoKC4uLnRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNoaXBwaW5nRGlhbG9nU2F2ZUNsaWNrZWQocmVxdWVzdDogQmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IHJlcXVlc3Q7XHJcbiAgICB0aGlzLnNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ292ZXJ2aWV3JyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdvdmVyemljaHQnKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0T3JkZXJDb25maXJtYXRpb25CYXRjaCh0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdClcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAnZGVsaXZlcnkgb3JkZXInIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2FmbGV2ZXJib24nKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0RGVsaXZlcnlOb3Rlc0JhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdpbnZvaWNlJyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdmYWN0dXVyJykge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydEludm9pY2VCYXRjaCh0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdClcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dCYXRjaE9wdGlvbnMoY2F0ZWdvcnk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QmF0Y2hPcHRpb25zID0gWydvdmVydmlldycsICdkZWxpdmVyeSBvcmRlcicsICdpbnZvaWNlJywgJ292ZXJ6aWNodCcsICdhZmxldmVyYm9uJywgJ2ZhY3R1dXInXS5pbmNsdWRlcyhjYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRCYXRjaEpvYlByb2dyZXNzZXNGb3JUaGVVc2VyKCkudGhlbigoYmF0Y2hKb2JQcm9ncmVzc2VzOiBCYXRjaEpvYlByb2dyZXNzW10pID0+IHtcclxuICAgICAgdGhpcy5iYXRjaEpvYlByb2dyZXNzID0gYmF0Y2hKb2JQcm9ncmVzc2VzO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5vcGVuQmF0Y2hNb2RhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jbGVhclNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC90cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVySyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV0SCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUE4R3hFLE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1MsYUFBdUMsRUFDdkMsbUJBQTBELEVBQzFELGtCQUFzQyxFQUNyQyxrQkFBcUMsRUFDckMsd0JBQWlEO1FB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QUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3lCQUM5QyxDQUFDO3dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt5QkFDL0MsQ0FBQztxQkFDSCxDQUFDO2lCQUNIO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0SE8sd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUlyQyxrQkFBa0I7WUFUbEIsaUJBQWlCO1lBUWpCLHVCQUF1Qjs7O29DQW9INUIsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7d0NBR0wsS0FBSztvQ0FHTCxLQUFLO3lCQVNMLEtBQUs7K0JBU0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC10cmFuc2FjdGlvbi1zZW5kaW5nLXJlcXVlc3QnO1xyXG5pbXBvcnQge0JhdGNoSm9iUHJvZ3Jlc3N9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC1qb2ItcHJvZ3Jlc3MuYm8nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zPy5sZW5ndGggPiAwICYmIHNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiBzaG93QmF0Y2hPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpID8gJ0RFU0VMRUNUX0FMTF9PUkRFUlMnIDogJ1NFTEVDVF9BTExfT1JERVJTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblRvZ2dsZUFsbE9yZGVycyhjaGVja0lmQWxsU2VsZWN0ZWQoKSlcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0lmU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlbmRNZXRob2REaWFsb2dJY29uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dQcm9jZXNzT3JkZXJzTG9hZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwic2hvd1NoaXBwaW5nTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tcXVpY2stc2VuZC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC1jb250ZW50LXRpbGVzLXdyYXBwZXJcIiBbbmdDbGFzc109XCJmdWxsc2NyZWVuID8gJ2Z1bGxzY3JlZW4nIDogJ3NpZGViYXInXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuVGlsZXMgJiYgIWV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImRyYWdnYWJsZVRyYW5zYWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQsIHRyYW5zYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdlbmQpPVwiZHJhZ0VuZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwic2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHNob3dCYXRjaE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ0cmFuc2FjdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInRyYW5zYWN0aW9uID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2xpY2spPVwib25TZWxlY3RlZENsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1zZWFyY2gtdGlsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LWNvbnRlbnQtZ3JpZC13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuR3JpZCAmJiAhZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJzYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgc2hvd0JhdGNoT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tc2VhcmNoLWdyaWQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZXh0ZW5kZWQtc2VhcmNoLXJlc3VsdC10aWxlLXdyYXBwZXJcIiAqbmdJZj1cImV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDbGljayk9XCJvblNlbGVjdGVkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hdPVwiZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGNvLXBhZ2luYXRpb24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwic2VhcmNoU2VydmljZS5jdXJyZW50UGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnNQZXJQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwic2VhcmNoU2VydmljZS5yZXN1bHRDb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwcmV2aW91c0xhYmVsXT1cIidQUkVWSU9VUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZXh0TGFiZWxdPVwiJ05FWFQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0hpZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXJlY3Rpb25MaW5rc109XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25SYW5nZV09XCIhZnVsbHNjcmVlbiA/IDYgOiA4XCJcclxuICAgICAgICAgICAgICAgICAgKHByZXZpb3VzQ2xpY2spPVwib25QcmV2aW91c0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAobmV4dENsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAocGFnZUNsaWNrKT1cIm9uUGFnZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tcGFnaW5hdGlvbi1iYXI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlLXdyYXBwZXJcIiAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zICYmIHNlYXJjaFNlcnZpY2UucmVzdWx0Q291bnQgPT09IDBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzBfUkVTVUxUU19GT1VORCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxjby1zaGlwcGluZy1tZXRob2QtZGlhbG9nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2hpcHBpbmdNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgIFtjYXRlZ29yeV09XCJiYXRjaENhdGVnb3J5XCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRUcmFuc2FjdGlvbnNdPVwic2VsZWN0ZWRUcmFuc2FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgIChjYW5jZWxDbGlja2VkKT1cInNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAoc2F2ZUNsaWNrZWQpPVwic2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDwvY28tc2hpcHBpbmctbWV0aG9kLWRpYWxvZz5cclxuXHJcbiAgICAgIDxjby1iYXRjaC1wcm9jZXNzLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0JhdGNoUHJvY2Vzc0RpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgQGZhZGVJbk91dFxyXG4gICAgICAgICAgICAgIFtiYXRjaEpvYlByb2dyZXNzXT1cImJhdGNoSm9iUHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgIChjbG9zZSk9XCJzaG93QmF0Y2hQcm9jZXNzRGlhbG9nID0gZmFsc2VcIj5cclxuICAgICAgPC9jby1iYXRjaC1wcm9jZXNzLWRpYWxvZz5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIHN0eWxlKHtvcGFjaXR5OiAwfSksXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1pbicsIHN0eWxlKHtvcGFjaXR5OiAxfSkpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7b3BhY2l0eTogMH0pKVxyXG4gICAgICBdKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dhYmxlVHJhbnNhY3Rpb25zOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYmF0Y2hDYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3RpdmVDb250ZW50Vmlld01vZGUodmFsdWU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ29udGVudFZpZXdNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNvbnRlbnRWaWV3TW9kZSgpOiBDb250ZW50Vmlld01vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBmdWxsc2NyZWVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9mdWxsc2NyZWVuID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRWaWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXc7XHJcbiAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzYWxlc09yZGVyc1BhZ2VBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoT3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U2hpcHBpbmdNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjaGVja2VkQXZhaWxhYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlYXJjaFZpZXdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3Q6IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IG5ldyBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QoKTtcclxuICBwdWJsaWMgYmF0Y2hKb2JQcm9ncmVzczogQmF0Y2hKb2JQcm9ncmVzc1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlO1xyXG4gIHByaXZhdGUgX2Z1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RTZXQuc3Vic2NyaWJlKChyZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKFtyZXF1ZXN0LnRyYW5zYWN0aW9uS2luZF0pO1xyXG4gICAgICAgICAgdGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgPSByZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9PT0gJ1YnO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgdGhpcy5zaG93QmF0Y2hPcHRpb25zKSB7XHJcbiAgICAgICAgICB0aGlzLm1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2JhdGNoQ2F0ZWdvcnknXSkge1xyXG4gICAgICB0aGlzLmJhdGNoQ2F0ZWdvcnkgPSBjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLl9zaG93QmF0Y2hPcHRpb25zKHRoaXMuYmF0Y2hDYXRlZ29yeSk7XHJcbiAgICAgIGlmIChjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX2NsZWFyU2VsZWN0ZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblRyYW5zYWN0aW9uQ2xpY2sodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VhcmNoVmlldyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uQ2xpY2suZW1pdCh0cmFuc2FjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3RlZENsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIGlmICh0cmFuc2FjdGlvbi5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnB1c2godHJhbnNhY3Rpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdHJhbnNJZCA9IHRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kSW5kZXgodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24udHJhbnNJZCA9PT0gdHJhbnNJZCk7XHJcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblByZXZpb3VzQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgLT0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5leHRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5jdXJyZW50UGFnZSArPSAxO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUGFnZUNsaWNrKHBhZ2VOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgPSBwYWdlTnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWFya1NlbGVjdGVkVHJhbnNhY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoU2VydmljZS5yZXN1bHRzVXBkYXRlZCkge1xyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2godHJhbnNhY3Rpb24gPT4ge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nT2JqZWN0ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kKHNlbGVjdGVkVHJhbnNhY3Rpb24gPT4gc2VsZWN0ZWRUcmFuc2FjdGlvbi50cmFuc0lkID09PSB0cmFuc2FjdGlvbi50cmFuc0lkKTtcclxuICAgICAgICBpZiAobWF0Y2hpbmdPYmplY3QpIHtcclxuICAgICAgICAgIHRyYW5zYWN0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRyYWdTdGFydGVkKGV2OiBhbnksIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdHJhbnNhY3Rpb24udHJhbnNJZDtcclxuICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0JywgdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tlZEF2YWlsYWJpbGl0eSkge1xyXG4gICAgICBsZXQgcGxhbk9yZGVyOiBQbGFuT3JkZXIgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQbGFuT3JkZXIodHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eUNoZWNrRXZlbnQuZW1pdChwbGFuT3JkZXIpO1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRyYWdFbmQoZXY6IGFueSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tlZEF2YWlsYWJpbGl0eSkge1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuYXZhaWxhYmlsaXR5UmVzZXRFdmVudC5lbWl0KCk7XHJcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tJZlNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMuc29tZShpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSWZBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1NoaXBwaW5nTW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ub2dnbGVBbGxPcmRlcnMoYWxsU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSAhYWxsU2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucyA9IFtdO1xyXG4gICAgaWYgKCFhbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnB1c2goLi4udGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZChyZXF1ZXN0OiBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0ID0gcmVxdWVzdDtcclxuICAgIHRoaXMuc2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAnb3ZlcnZpZXcnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ292ZXJ6aWNodCcpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnRPcmRlckNvbmZpcm1hdGlvbkJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdkZWxpdmVyeSBvcmRlcicgfHwgdGhpcy5iYXRjaENhdGVnb3J5ID09PSAnYWZsZXZlcmJvbicpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnREZWxpdmVyeU5vdGVzQmF0Y2godGhpcy5iYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2ludm9pY2UnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2ZhY3R1dXInKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0SW52b2ljZUJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2hvd0JhdGNoT3B0aW9ucyhjYXRlZ29yeTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dCYXRjaE9wdGlvbnMgPSBbJ292ZXJ2aWV3JywgJ2RlbGl2ZXJ5IG9yZGVyJywgJ2ludm9pY2UnLCAnb3ZlcnppY2h0JywgJ2FmbGV2ZXJib24nLCAnZmFjdHV1ciddLmluY2x1ZGVzKGNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEJhdGNoSm9iUHJvZ3Jlc3Nlc0ZvclRoZVVzZXIoKS50aGVuKChiYXRjaEpvYlByb2dyZXNzZXM6IEJhdGNoSm9iUHJvZ3Jlc3NbXSkgPT4ge1xyXG4gICAgICB0aGlzLmJhdGNoSm9iUHJvZ3Jlc3MgPSBiYXRjaEpvYlByb2dyZXNzZXM7XHJcbiAgICAgIHRoaXMuc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZyA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFyU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=