fabrikantencore 2.34.4 → 2.34.6

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.
@@ -112,7 +112,14 @@ class FabProductComponent {
112
112
  if (this.FabrikantenService.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels != null) {
113
113
  for (var i = 0; i < this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels.length; i++) {
114
114
  if (this.FabrikantenService.FabrikantenViewModel.selectedProduct.fabrikantenBCBProductViewModels[i].hasSpecification) {
115
- return true;
115
+ if (this.FabrikantenService.FabrikantenSettingsViewModel?.onlyShowBestekWhenFilled == true) {
116
+ if (this.BestekService.HasNonAbstractBestek()) {
117
+ return true;
118
+ }
119
+ }
120
+ else {
121
+ return true;
122
+ }
116
123
  }
117
124
  }
118
125
  }
@@ -171,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
171
178
  type: ViewChild,
172
179
  args: ['header']
173
180
  }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBU2xKLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUYsTUFNYSxtQkFBbUI7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNDO0lBQ0E7SUFuQlYsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxHQUFXLE1BQU0sQ0FBQztJQUVWLE1BQU0sQ0FBYTtJQUV4QyxZQUNTLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDekIsY0FBOEIsRUFDOUIsaUJBQW9DO1FBTnJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixtQkFB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRG9DaGVjaywgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TGVnYWN5VGFiQ2hhbmdlRXZlbnQgYXMgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktdGFicyc7XHJcbmltcG9ydCB7IE1hdERyYXdlck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVzdGVrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQ2F0ZWdvcnksIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXByb2R1Y3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXByb2R1Y3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWJQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvbkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25TdWJDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBIZWlnaHQ6IHN0cmluZyA9IFwiMTAwJVwiO1xyXG5cclxuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIE1vYmlsZVNlcnZpY2U6IE1vYmlsZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgQmVzdGVrU2VydmljZTogQmVzdGVrU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLlByb2Nlc3NQYXJhbWV0ZXJzKHRoaXMuQWN0aXZhdGVkUm91dGUsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Mb2FkRmFicmlrYW50ZW5WaWV3TW9kZWwodGhpcy5DaGFuZ2VEZXRlY3RvclJlZiwgdGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlVwZGF0ZUhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBCYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVIZWlnaHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkhlaWdodCA9IHRoaXMuR2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RlZFRhYkNoYW5nZShldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlRhYlNlbGVjdGlvbkNoYW5nZWQoZXZlbnQudGFiLnRleHRMYWJlbCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0luZm9ybWF0aW9uQmxvY2soKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbD8uc2hvd0luZm9ybWF0aW9uQmxvY2sgPT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBIYXNQYXJhbWV0ZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5HZXRQYXJhbWV0ZXJDbGFzcygpICE9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzNEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLmhhczNEKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzJEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLnNuZWRlcyAhPSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dTcGVjaWZpY2F0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5TaG93U3BlY2lmaWNhdGlvbigpKSB7XHJcbiAgICAgIGlmICh0aGlzLkhhc1NwZWNpZmljYXRpb24oKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5TaG93QXV0b1NwZWNpZmljYXRpb24oKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5UcmFuc2xhdGVTZXJ2aWNlLlNob3dMYXN0ZW5ib2VrKCkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEhhc1NwZWNpZmljYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdD8uZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNbaV0uaGFzU3BlY2lmaWNhdGlvbikge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dJbmZvcm1hdGlvbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmhpZGVJbmZvcm1hdGlvblRhYikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCcmVhZGNydW1iKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWwuaGlkZUJyZWFkY3J1bWIpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgR2V0SGVpZ2h0KCk6IHN0cmluZyB7XHJcbiAgICB2YXIgaGVpZ2h0ID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5oZWFkZXIgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGhlaWdodCArPSB0aGlzLmhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5TaG93SW5mb3JtYXRpb25CbG9jaygpKSB7XHJcbiAgICAgIGhlaWdodCArPSAxMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJjYWxjKDEwMCUgLSBcIiArIGhlaWdodCArIFwicHgpXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0UGFyYW1ldGVyQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbD8uY3VzdG9tVVJMUGFyYW1ldGVycyAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmN1c3RvbVVSTFBhcmFtZXRlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuY3VzdG9tVVJMUGFyYW1ldGVyc1swXS52YWx1ZSArIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TmF2TW9kZSgpOiBNYXREcmF3ZXJNb2RlIHtcclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmhpZGVGaWx0ZXJzKSB7XHJcbiAgICAgICAgdGhpcy5Nb2JpbGVTZXJ2aWNlLk5hdk9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiBcIm92ZXJcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLk1vYmlsZVNlcnZpY2UuTmF2TW9kZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Jc0xvYWRpbmdTbWFsbCgpXCIgW25nQ2xhc3NdPVwiSGFzUGFyYW1ldGVyKCkgPyBHZXRQYXJhbWV0ZXJDbGFzcygpIDogJydcIiBjbGFzcz1cImxvYWRlclwiPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImxvYWRlci1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwibG9hZGVyLXNwaW5uZXJcIiBbZGlhbWV0ZXJdPVwiODBcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLXN1YnRpdGxlIGNsYXNzPVwibG9hZGVyLXN1YnRpdGxlXCIgKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLklzU3RhcnRpbmdEb3dubG9hZCgpXCI+XHJcbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuUHJvZHVjdHNMb2FkaW5nKSB9fVxyXG4gICAgPC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICA8L21hdC1jYXJkPlxyXG48L2Rpdj5cclxuXHJcbjxtYXQtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cInZpZXctY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiSGFzUGFyYW1ldGVyKCkgPyBHZXRQYXJhbWV0ZXJDbGFzcygpIDogJydcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5Mb2FkZWRcIj5cclxuICA8bWF0LWRyYXdlciAjZHJhd2VyIFttb2RlXT1cIkdldE5hdk1vZGUoKVwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLk5hdk9wZW5lZFwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdmlld1wiPlxyXG4gICAgICA8ZmFiLWZpbHRlcnMtaW5wdXQ+PC9mYWItZmlsdGVycy1pbnB1dD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlciBtb2RlPVwib3ZlclwiIHBvc2l0aW9uPVwiZW5kXCIgWyhvcGVuZWQpXT1cIk1vYmlsZVNlcnZpY2UuQWN0aW9uT3BlbmVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ud3JhcHBlclwiPlxyXG4gICAgICA8YXBwLWZhYi1hY3Rpb25tZW51IFtkaXNwbGF5XT1cIkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RlZFRhYlwiPjwvYXBwLWZhYi1hY3Rpb25tZW51PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZHJhd2VyPlxyXG4gIDxtYXQtZHJhd2VyLWNvbnRlbnQgY2xhc3M9XCJ2aWV3LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgI2hlYWRlciAqbmdJZj1cIlNob3dCcmVhZGNydW1iKClcIj5cclxuICAgICAgPGFwcC1mYWItaGVhZGVyIFtzaG93ZmlsdGVybWVudWJ1dHRvbl09XCJ0cnVlXCI+PC9hcHAtZmFiLWhlYWRlcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93SW5mb3JtYXRpb25CbG9jaygpXCI+XHJcbiAgICAgICAgPGFwcC1mYWItcHJvZHVjdC1pbmZvPjwvYXBwLWZhYi1wcm9kdWN0LWluZm8+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5TaG93UmVxdWlyZWQoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVxdWlyZWQtZGl2XCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Ob3RBbGxSZXF1aXJlZEZpbGxlZCkgfX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd05vUGFyYW1ldGVycygpICYmICFGYWJyaWthbnRlblNlcnZpY2UuSXNMb2FkaW5nKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5vLXBhcmFtZXRlcnMtZGl2XCI+XHJcbiAgICAgICAgTm8gcHJvZHVjdCByZXF1ZXN0IHNlbmQgdG8gQkNCIGR1ZSB0byBpbnZhbGlkIG9yIG1pc3NpbmcgcGFyYW1ldGVyc1xyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlcXVpcmVkLWRpdlwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LmN1c3RvbUluZm9QYXJhbWV0ZXJzICE9IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY3VzdG9tcGFyYW1ldGVyIG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5jdXN0b21JbmZvUGFyYW1ldGVyc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS12YWx1ZS1pdGVtXCI+XHJcbiAgICAgICAgICAgICAge3sgY3VzdG9tcGFyYW1ldGVyLm5hbWUgfX06IHt7IGN1c3RvbXBhcmFtZXRlci52YWx1ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dSZXF1aXJlZCgpICYmICFGYWJyaWthbnRlblNlcnZpY2UuU2hvd05vUGFyYW1ldGVycygpXCI+XHJcbiAgICAgIDxkaXYgW3N0eWxlLmhlaWdodF09XCJIZWlnaHRcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsXCI+XHJcbiAgICAgICAgPG1hdC10YWItZ3JvdXAgY2xhc3M9XCJ2aWV3LWNvbnRhaW5lclwiIFtzZWxlY3RlZEluZGV4XT1cIkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RlZFRhYkluZGV4XCIgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIlNlbGVjdGVkVGFiQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiSW5mb3JtYXRpZVwiICpuZ0lmPVwiU2hvd0luZm9ybWF0aW9uKClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5UYWJJbmZvcm1hdGlvbikgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtaW5mbz48L2FwcC1mYWItcHJvZHVjdC1pbmZvPlxyXG4gICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCIzRFwiICpuZ0lmPVwiU2hvdzNEKClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5UYWIzRCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxhcHAtZmFiLXdlYmdsLXZpZXdlcj48L2FwcC1mYWItd2ViZ2wtdmlld2VyPlxyXG4gICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCIyRFwiICpuZ0lmPVwiU2hvdzJEKClcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5UYWIyRCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxhcHAtZmFiLXN2Zy12aWV3ZXI+PC9hcHAtZmFiLXN2Zy12aWV3ZXI+XHJcbiAgICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkJlc3Rla1wiICpuZ0lmPVwiU2hvd1NwZWNpZmljYXRpb24oKVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlRhYlNwZWNpZmljYXRpb24pIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1wcm9kdWN0LWJlc3RlayAqbmdJZj1cIlRyYW5zbGF0ZVNlcnZpY2UuU2hvd1NwZWNpZmljYXRpb24oKVwiPjwvYXBwLWZhYi1wcm9kdWN0LWJlc3Rlaz5cclxuICAgICAgICAgICAgPGFwcC1mYWItcHJvZHVjdC1hdXRvLXNwZWNpZmljYXRpb24gKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNob3dBdXRvU3BlY2lmaWNhdGlvbigpXCI+PC9hcHAtZmFiLXByb2R1Y3QtYXV0by1zcGVjaWZpY2F0aW9uPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1wcm9kdWN0LWxhc3RlbmJvZWsgKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNob3dMYXN0ZW5ib2VrKClcIj48L2FwcC1mYWItcHJvZHVjdC1sYXN0ZW5ib2VrPlxyXG4gICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUZXh0dXJlXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1RleHR1cmUoKVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlRleHR1cmUpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi10ZXh0dXJlPjwvYXBwLWZhYi10ZXh0dXJlPlxyXG4gICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUb2ViZWhvcmVuXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1RvZWJlaG9yZW4oKVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlRvZWJlaG9yZW4pIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi10b2ViZWhvcmVuPjwvYXBwLWZhYi10b2ViZWhvcmVuPlxyXG4gICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgIDwvbWF0LXRhYi1ncm91cD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1kcmF3ZXItY29udGVudD5cclxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cclxuXHJcblxyXG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBU2xKLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUYsTUFNYSxtQkFBbUI7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNDO0lBQ0E7SUFuQlYsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxHQUFXLE1BQU0sQ0FBQztJQUVWLE1BQU0sQ0FBYTtJQUV4QyxZQUNTLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxhQUE0QixFQUM1QixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDekIsY0FBOEIsRUFDOUIsaUJBQW9DO1FBTnJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixtQkFB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cEMsQ0FBQzt3R0E5S1UsbUJBQW1COzRGQUFuQixtQkFBbUIseUpDakJoQyw0NktBa0dBOztTRGpGYSxtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTt3UkFjaEIsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRG9DaGVjaywgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0TGVnYWN5VGFiQ2hhbmdlRXZlbnQgYXMgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktdGFicyc7XHJcbmltcG9ydCB7IE1hdERyYXdlck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVzdGVrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQ2F0ZWdvcnksIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXByb2R1Y3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXByb2R1Y3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWJQcm9kdWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvbkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25TdWJDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBIZWlnaHQ6IHN0cmluZyA9IFwiMTAwJVwiO1xyXG5cclxuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIE1vYmlsZVNlcnZpY2U6IE1vYmlsZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgQmVzdGVrU2VydmljZTogQmVzdGVrU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLlByb2Nlc3NQYXJhbWV0ZXJzKHRoaXMuQWN0aXZhdGVkUm91dGUsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Mb2FkRmFicmlrYW50ZW5WaWV3TW9kZWwodGhpcy5DaGFuZ2VEZXRlY3RvclJlZiwgdGhpcy5BY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlVwZGF0ZUhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBCYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVIZWlnaHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkhlaWdodCA9IHRoaXMuR2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RlZFRhYkNoYW5nZShldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlRhYlNlbGVjdGlvbkNoYW5nZWQoZXZlbnQudGFiLnRleHRMYWJlbCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0luZm9ybWF0aW9uQmxvY2soKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbD8uc2hvd0luZm9ybWF0aW9uQmxvY2sgPT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBIYXNQYXJhbWV0ZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5HZXRQYXJhbWV0ZXJDbGFzcygpICE9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzNEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLmhhczNEKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzJEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLnNuZWRlcyAhPSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dTcGVjaWZpY2F0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5TaG93U3BlY2lmaWNhdGlvbigpKSB7XHJcbiAgICAgIGlmICh0aGlzLkhhc1NwZWNpZmljYXRpb24oKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5TaG93QXV0b1NwZWNpZmljYXRpb24oKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5UcmFuc2xhdGVTZXJ2aWNlLlNob3dMYXN0ZW5ib2VrKCkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEhhc1NwZWNpZmljYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdD8uZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVscyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNbaV0uaGFzU3BlY2lmaWNhdGlvbikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWw/Lm9ubHlTaG93QmVzdGVrV2hlbkZpbGxlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLkJlc3Rla1NlcnZpY2UuSGFzTm9uQWJzdHJhY3RCZXN0ZWsoKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93SW5mb3JtYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbC5oaWRlSW5mb3JtYXRpb25UYWIpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QnJlYWRjcnVtYigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmhpZGVCcmVhZGNydW1iKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIEdldEhlaWdodCgpOiBzdHJpbmcge1xyXG4gICAgdmFyIGhlaWdodCA9IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuaGVhZGVyICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBoZWlnaHQgKz0gdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuU2hvd0luZm9ybWF0aW9uQmxvY2soKSkge1xyXG4gICAgICBoZWlnaHQgKz0gMTA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiY2FsYygxMDAlIC0gXCIgKyBoZWlnaHQgKyBcInB4KVwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFBhcmFtZXRlckNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LmN1c3RvbVVSTFBhcmFtZXRlcnMgIT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5jdXN0b21VUkxQYXJhbWV0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmN1c3RvbVVSTFBhcmFtZXRlcnNbMF0udmFsdWUgKyBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldE5hdk1vZGUoKTogTWF0RHJhd2VyTW9kZSB7XHJcblxyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbC5oaWRlRmlsdGVycykge1xyXG4gICAgICAgIHRoaXMuTW9iaWxlU2VydmljZS5OYXZPcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gXCJvdmVyXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5Nb2JpbGVTZXJ2aWNlLk5hdk1vZGU7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuSXNMb2FkaW5nU21hbGwoKVwiIFtuZ0NsYXNzXT1cIkhhc1BhcmFtZXRlcigpID8gR2V0UGFyYW1ldGVyQ2xhc3MoKSA6ICcnXCIgY2xhc3M9XCJsb2FkZXJcIj5cclxuICA8bWF0LWNhcmQgY2xhc3M9XCJsb2FkZXItY2FyZFwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjbGFzcz1cImxvYWRlci1zcGlubmVyXCIgW2RpYW1ldGVyXT1cIjgwXCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImxvYWRlci1zdWJ0aXRsZVwiICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5Jc1N0YXJ0aW5nRG93bmxvYWQoKVwiPlxyXG4gICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlByb2R1Y3RzTG9hZGluZykgfX1cclxuICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgPC9tYXQtY2FyZD5cclxuPC9kaXY+XHJcblxyXG48bWF0LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJ2aWV3LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cIkhhc1BhcmFtZXRlcigpID8gR2V0UGFyYW1ldGVyQ2xhc3MoKSA6ICcnXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuTG9hZGVkXCI+XHJcbiAgPG1hdC1kcmF3ZXIgI2RyYXdlciBbbW9kZV09XCJHZXROYXZNb2RlKClcIiBbKG9wZW5lZCldPVwiTW9iaWxlU2VydmljZS5OYXZPcGVuZWRcIiAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXZpZXdcIj5cclxuICAgICAgPGZhYi1maWx0ZXJzLWlucHV0PjwvZmFiLWZpbHRlcnMtaW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kcmF3ZXI+XHJcbiAgPG1hdC1kcmF3ZXIgbW9kZT1cIm92ZXJcIiBwb3NpdGlvbj1cImVuZFwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLkFjdGlvbk9wZW5lZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbndyYXBwZXJcIj5cclxuICAgICAgPGFwcC1mYWItYWN0aW9ubWVudSBbZGlzcGxheV09XCJGYWJyaWthbnRlblNlcnZpY2UuU2VsZWN0ZWRUYWJcIj48L2FwcC1mYWItYWN0aW9ubWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlci1jb250ZW50IGNsYXNzPVwidmlldy1jb250ZW50XCI+XHJcbiAgICA8ZGl2ICNoZWFkZXIgKm5nSWY9XCJTaG93QnJlYWRjcnVtYigpXCI+XHJcbiAgICAgIDxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwidHJ1ZVwiPjwvYXBwLWZhYi1oZWFkZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0luZm9ybWF0aW9uQmxvY2soKVwiPlxyXG4gICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtaW5mbz48L2FwcC1mYWItcHJvZHVjdC1pbmZvPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1JlcXVpcmVkKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlcXVpcmVkLWRpdlwiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuTm90QWxsUmVxdWlyZWRGaWxsZWQpIH19PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dOb1BhcmFtZXRlcnMoKSAmJiAhRmFicmlrYW50ZW5TZXJ2aWNlLklzTG9hZGluZygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuby1wYXJhbWV0ZXJzLWRpdlwiPlxyXG4gICAgICAgIE5vIHByb2R1Y3QgcmVxdWVzdCBzZW5kIHRvIEJDQiBkdWUgdG8gaW52YWxpZCBvciBtaXNzaW5nIHBhcmFtZXRlcnNcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXJlZC1kaXZcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5jdXN0b21JbmZvUGFyYW1ldGVycyAhPSB1bmRlZmluZWRcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN1c3RvbXBhcmFtZXRlciBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuY3VzdG9tSW5mb1BhcmFtZXRlcnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXktdmFsdWUtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIHt7IGN1c3RvbXBhcmFtZXRlci5uYW1lIH19OiB7eyBjdXN0b21wYXJhbWV0ZXIudmFsdWUgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUZhYnJpa2FudGVuU2VydmljZS5TaG93UmVxdWlyZWQoKSAmJiAhRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dOb1BhcmFtZXRlcnMoKVwiPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiSGVpZ2h0XCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbFwiPlxyXG4gICAgICAgIDxtYXQtdGFiLWdyb3VwIGNsYXNzPVwidmlldy1jb250YWluZXJcIiBbc2VsZWN0ZWRJbmRleF09XCJGYWJyaWthbnRlblNlcnZpY2UuU2VsZWN0ZWRUYWJJbmRleFwiIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJTZWxlY3RlZFRhYkNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluZm9ybWF0aWVcIiAqbmdJZj1cIlNob3dJbmZvcm1hdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuVGFiSW5mb3JtYXRpb24pIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1wcm9kdWN0LWluZm8+PC9hcHAtZmFiLXByb2R1Y3QtaW5mbz5cclxuICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiM0RcIiAqbmdJZj1cIlNob3czRCgpXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuVGFiM0QpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi13ZWJnbC12aWV3ZXI+PC9hcHAtZmFiLXdlYmdsLXZpZXdlcj5cclxuICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiMkRcIiAqbmdJZj1cIlNob3cyRCgpXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuVGFiMkQpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8YXBwLWZhYi1zdmctdmlld2VyPjwvYXBwLWZhYi1zdmctdmlld2VyPlxyXG4gICAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJCZXN0ZWtcIiAqbmdJZj1cIlNob3dTcGVjaWZpY2F0aW9uKClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5UYWJTcGVjaWZpY2F0aW9uKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGFwcC1mYWItcHJvZHVjdC1iZXN0ZWsgKm5nSWY9XCJUcmFuc2xhdGVTZXJ2aWNlLlNob3dTcGVjaWZpY2F0aW9uKClcIj48L2FwcC1mYWItcHJvZHVjdC1iZXN0ZWs+XHJcbiAgICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtYXV0by1zcGVjaWZpY2F0aW9uICpuZ0lmPVwiVHJhbnNsYXRlU2VydmljZS5TaG93QXV0b1NwZWNpZmljYXRpb24oKVwiPjwvYXBwLWZhYi1wcm9kdWN0LWF1dG8tc3BlY2lmaWNhdGlvbj5cclxuICAgICAgICAgICAgPGFwcC1mYWItcHJvZHVjdC1sYXN0ZW5ib2VrICpuZ0lmPVwiVHJhbnNsYXRlU2VydmljZS5TaG93TGFzdGVuYm9laygpXCI+PC9hcHAtZmFiLXByb2R1Y3QtbGFzdGVuYm9laz5cclxuICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVGV4dHVyZVwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dUZXh0dXJlKClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5UZXh0dXJlKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGFwcC1mYWItdGV4dHVyZT48L2FwcC1mYWItdGV4dHVyZT5cclxuICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVG9lYmVob3JlblwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dUb2ViZWhvcmVuKClcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Ub2ViZWhvcmVuKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGFwcC1mYWItdG9lYmVob3Jlbj48L2FwcC1mYWItdG9lYmVob3Jlbj5cclxuICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XHJcbjwvbWF0LWRyYXdlci1jb250YWluZXI+XHJcblxyXG5cclxuIl19
@@ -169,6 +169,17 @@ class BestekService {
169
169
  ShowBestek() {
170
170
  return this.TranslateService.ActiveLanguage.showSpecification;
171
171
  }
172
+ HasNonAbstractBestek() {
173
+ if (this.FabrikantenBestekViewModel != null) {
174
+ //if (this.FabrikantenBestekViewModel.osfhtml != "") {
175
+ // return true;
176
+ //}
177
+ if (this.FabrikantenBestekViewModel.stabu != "") {
178
+ return true;
179
+ }
180
+ }
181
+ return false;
182
+ }
172
183
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BestekService, deps: [{ token: i1.Clipboard }, { token: i2.TranslateService }, { token: i3.FabrikantenApiClient }], target: i0.ɵɵFactoryTarget.Injectable });
173
184
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BestekService, providedIn: 'root' });
174
185
  }
@@ -177,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
177
188
  type: Injectable,
178
189
  args: [{ providedIn: 'root' }]
179
190
  }], ctorParameters: function () { return [{ type: i1.Clipboard }, { type: i2.TranslateService }, { type: i3.FabrikantenApiClient }]; } });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdGVrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL2Jlc3Rlay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBb0QsNkJBQTZCLEVBQXlDLHdDQUF3QyxFQUFrQyxpQ0FBaUMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUsvUSxNQUNhLGFBQWE7SUFnQko7SUFDVjtJQUNBO0lBaEJILE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsVUFBVSxHQUFXLE9BQU8sQ0FBQztJQUU3QixnQkFBZ0IsR0FBc0IsSUFBSSxDQUFDO0lBQzNDLDBCQUEwQixHQUFzQixJQUFJLENBQUM7SUFDckQsb0JBQW9CLEdBQXNCLElBQUksQ0FBQztJQUMvQyxrQkFBa0IsR0FBOEIsSUFBSSxDQUFDO0lBRXJELDBCQUEwQixDQUE2QjtJQUN2RCxxQ0FBcUMsQ0FBd0M7SUFDN0UsOEJBQThCLENBQWlDO0lBRTlELG1CQUFtQixHQUFZLEtBQUssQ0FBQztJQUU3QyxZQUFvQixTQUFvQixFQUM5QixnQkFBa0MsRUFDbEMsb0JBQTBDO1FBRmhDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ3BELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBZSxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFpQixD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LElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRTt3QkFDekcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO3FCQUN4RDtvQkFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTt3QkFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQzt3QkFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO3FCQUMzRDt5QkFDSTt3QkFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztxQkFDakU7aUJBQ0Y7WUFFSCxDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtnQkFDckIsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztJQUNoRSxDQUFDO3dHQTlNVSxhQUFhOzRHQUFiLGFBQWEsY0FEQSxNQUFNOztTQUNuQixhQUFhOzRGQUFiLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5BcGlDbGllbnQsIEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsLCBGYWJyaWthbnRlbkJlc3Rla1JlcXVlc3RNb2RlbCwgRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbCwgRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblJlcXVlc3RNb2RlbCwgRmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsLCBGYWJyaWthbnRlbkxhc3RlbmJvZWtSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEJlc3Rla1NlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBUeXBlQmVzdGVrOiBzdHJpbmcgPSBcIlNUQUJVXCI7XHJcblxyXG4gIHB1YmxpYyBmYWJQcm9kdWN0QmVzdGVrOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGZhYlByb2R1Y3RBdXRvU3BlY2lmY2F0aW9uOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIGZhYlByb2R1Y3RMYXN0ZW5ib2VrOiBFbGVtZW50UmVmIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBGYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbDogRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw7XHJcbiAgcHVibGljIEZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWw6IEZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWw7XHJcbiAgcHVibGljIEZhYnJpa2FudGVuTGFzdGVuYm9la1ZpZXdNb2RlbDogRmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsO1xyXG5cclxuICBwcml2YXRlIFNob3VsZFRyaWdnZXJSZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcclxuICAgIHByaXZhdGUgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgRmFicmlrYW50ZW5BcGlDbGllbnQ6IEZhYnJpa2FudGVuQXBpQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QmVzdGVrVGVrc3QoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLlR5cGVCZXN0ZWsgPT0gXCJTVEFCVVwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsLnN0YWJ1IGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5UeXBlQmVzdGVrID09IFwiT1NGXCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwub3NmaHRtbCBhcyBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuVHlwZUJlc3RlayA9PSBcIlZyaWpcIikge1xyXG4gICAgICByZXR1cm4gdGhpcy5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbC52cmlqQmVzdGVrSFRNTCBhcyBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QXV0b1NwZWNpZmljYXRpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLkZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWw/LnRleHQgKyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENvcHlUb0NsaXBib2FyZChzdHI6IGFueSkge1xyXG4gICAgdGhpcy5jbGlwYm9hcmQuY29weShzdHIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRGYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbChzZXNzaW9uaWQ6IHN0cmluZywgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuTG9hZGluZykge1xyXG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5CZXN0ZWtSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gc2Vzc2lvbmlkO1xyXG5cclxuICAgICAgaWYgKHRoaXMuU2hvd0Jlc3RlaygpKSB7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLlR5cGVCZXN0ZWsgPT0gXCJTVEFCVVwiKSB7XHJcbiAgICAgICAgICAgIGlmIChtb2RlbC5zdGFidSA9PSB1bmRlZmluZWQgfHwgbW9kZWwuc3RhYnUgPT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLlR5cGVCZXN0ZWsgPSBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuVHlwZUJlc3RlayA9PSBcIk9TRlwiKSB7XHJcbiAgICAgICAgICAgIGlmIChtb2RlbC5vc2ZodG1sID09IHVuZGVmaW5lZCB8fCBtb2RlbC5vc2ZodG1sID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5UeXBlQmVzdGVrID0gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vaWYgKHRoaXMuVHlwZUJlc3RlayA9PSBcIlNVRlwiKSB7XHJcbiAgICAgICAgICAvLyAgaWYgKG1vZGVsLnN1ZiA9PSB1bmRlZmluZWQgfHwgbW9kZWwuc3VmID09ICcnKSB7XHJcbiAgICAgICAgICAvLyAgICB0aGlzLlR5cGVCZXN0ZWsgPSBcIlwiO1xyXG4gICAgICAgICAgLy8gIH1cclxuICAgICAgICAgIC8vfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLlR5cGVCZXN0ZWsgPT0gXCJWcmlqXCIpIHtcclxuICAgICAgICAgICAgaWYgKG1vZGVsLnZyaWpCZXN0ZWtIVE1MID09IHVuZGVmaW5lZCB8fCBtb2RlbC52cmlqQmVzdGVrSFRNTCA9PSAnJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuVHlwZUJlc3RlayA9IFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5UeXBlQmVzdGVrID09IFwiXCIpIHtcclxuICAgICAgICAgICAgaWYgKG1vZGVsLnN0YWJ1ICE9IHVuZGVmaW5lZCAmJiBtb2RlbC5zdGFidSAhPSAnJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuVHlwZUJlc3RlayA9IFwiU1RBQlVcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKG1vZGVsLm9zZmh0bWwgIT0gdW5kZWZpbmVkICYmIG1vZGVsLm9zZmh0bWwgIT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLlR5cGVCZXN0ZWsgPSBcIk9TRlwiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL2lmIChtb2RlbC5zdWYgIT0gdW5kZWZpbmVkICYmIG1vZGVsLnN1ZiAhPSAnJykge1xyXG4gICAgICAgICAgICAvLyAgdGhpcy5UeXBlQmVzdGVrID0gXCJTVUZcIjtcclxuICAgICAgICAgICAgLy99XHJcblxyXG4gICAgICAgICAgICBpZiAobW9kZWwudnJpakJlc3Rla0hUTUwgIT0gdW5kZWZpbmVkICYmIG1vZGVsLnZyaWpCZXN0ZWtIVE1MICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5UeXBlQmVzdGVrID0gXCJWcmlqXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5TaG91bGRUcmlnZ2VyUmVsb2FkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5TaG91bGRUcmlnZ2VyUmVsb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuVHJpZ2dlclJlbG9hZHMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlByb2Nlc3NEeW5hbWljTW9kZWxzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRGYWJyaWthbnRlbkF1dG9TcGVjaWZpY2F0aW9uVmlld01vZGVsKHNlc3Npb25pZDogc3RyaW5nLCBsYW5ndWFnZWlkOiBudW1iZXIsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLkxvYWRpbmcpIHtcclxuICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25SZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gc2Vzc2lvbmlkO1xyXG4gICAgICByZXF1ZXN0Lmxhbmd1YWdlSWQgPSBsYW5ndWFnZWlkO1xyXG5cclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlbkF1dG9TcGVjaWZpY2F0aW9uVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWwpID0+IHtcclxuICAgICAgICB0aGlzLkZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbC5jaGVja3N1bSAhPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5jaGVja3N1bSkge1xyXG4gICAgICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCkge1xyXG4gICAgICAgICAgICB0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuVHJpZ2dlclJlbG9hZHMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlByb2Nlc3NEeW5hbWljTW9kZWxzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRGYWJyaWthbnRlbkxhc3RlbmJvZWtWaWV3TW9kZWwoc2Vzc2lvbmlkOiBzdHJpbmcsIGxhbmd1YWdlaWQ6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuTG9hZGluZykge1xyXG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5MYXN0ZW5ib2VrUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHNlc3Npb25pZDtcclxuICAgICAgcmVxdWVzdC5sYW5ndWFnZUlkID0gbGFuZ3VhZ2VpZDtcclxuXHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuZ2V0RmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuTGFzdGVuYm9la1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuRmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UgIT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuTGFzdGVuYm9la1ZpZXdNb2RlbC5jaGVja3N1bSAhPSB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5jaGVja3N1bSkge1xyXG4gICAgICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCkge1xyXG4gICAgICAgICAgICB0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuVHJpZ2dlclJlbG9hZHMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlByb2Nlc3NEeW5hbWljTW9kZWxzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCZXN0ZWsoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkFjdGl2ZUxhbmd1YWdlLnNob3dTcGVjaWZpY2F0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVzdGVrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL2Jlc3Rlay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBb0QsNkJBQTZCLEVBQXlDLHdDQUF3QyxFQUFrQyxpQ0FBaUMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUsvUSxNQUNhLGFBQWE7SUFnQko7SUFDVjtJQUNBO0lBaEJILE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsVUFBVSxHQUFXLE9BQU8sQ0FBQztJQUU3QixnQkFBZ0IsR0FBc0IsSUFBSSxDQUFDO0lBQzNDLDBCQUEwQixHQUFzQixJQUFJLENBQUM7SUFDckQsb0JBQW9CLEdBQXNCLElBQUksQ0FBQztJQUMvQyxrQkFBa0IsR0FBOEIsSUFBSSxDQUFDO0lBRXJELDBCQUEwQixDQUE2QjtJQUN2RCxxQ0FBcUMsQ0FBd0M7SUFDN0UsOEJBQThCLENBQWlDO0lBRTlELG1CQUFtQixHQUFZLEtBQUssQ0FBQztJQUU3QyxZQUFvQixTQUFvQixFQUM5QixnQkFBa0MsRUFDbEMsb0JBQTBDO1FBRmhDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ3BELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBZSxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFpQixD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LFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlbkFwaUNsaWVudCwgRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwsIEZhYnJpa2FudGVuQmVzdGVrUmVxdWVzdE1vZGVsLCBGYWJyaWthbnRlbkF1dG9TcGVjaWZpY2F0aW9uVmlld01vZGVsLCBGYWJyaWthbnRlbkF1dG9TcGVjaWZpY2F0aW9uUmVxdWVzdE1vZGVsLCBGYWJyaWthbnRlbkxhc3RlbmJvZWtWaWV3TW9kZWwsIEZhYnJpa2FudGVuTGFzdGVuYm9la1JlcXVlc3RNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQmVzdGVrU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIFR5cGVCZXN0ZWs6IHN0cmluZyA9IFwiU1RBQlVcIjtcclxuXHJcbiAgcHVibGljIGZhYlByb2R1Y3RCZXN0ZWs6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgZmFiUHJvZHVjdEF1dG9TcGVjaWZjYXRpb246IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgZmFiUHJvZHVjdExhc3RlbmJvZWs6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHVibGljIEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsOiBGYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbDtcclxuICBwdWJsaWMgRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbDogRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbDtcclxuICBwdWJsaWMgRmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsOiBGYWJyaWthbnRlbkxhc3RlbmJvZWtWaWV3TW9kZWw7XHJcblxyXG4gIHByaXZhdGUgU2hvdWxkVHJpZ2dlclJlbG9hZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkLFxyXG4gICAgcHJpdmF0ZSBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBGYWJyaWthbnRlbkFwaUNsaWVudDogRmFicmlrYW50ZW5BcGlDbGllbnQpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRCZXN0ZWtUZWtzdCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuVHlwZUJlc3RlayA9PSBcIlNUQUJVXCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwuc3RhYnUgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLlR5cGVCZXN0ZWsgPT0gXCJPU0ZcIikge1xyXG4gICAgICByZXR1cm4gdGhpcy5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbC5vc2ZodG1sIGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5UeXBlQmVzdGVrID09IFwiVnJpalwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsLnZyaWpCZXN0ZWtIVE1MIGFzIHN0cmluZztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBdXRvU3BlY2lmaWNhdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbD8udGV4dCArIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29weVRvQ2xpcGJvYXJkKHN0cjogYW55KSB7XHJcbiAgICB0aGlzLmNsaXBib2FyZC5jb3B5KHN0cik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsKHNlc3Npb25pZDogc3RyaW5nLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Mb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlbkJlc3Rla1JlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5zZXNzaW9uSWQgPSBzZXNzaW9uaWQ7XHJcblxyXG4gICAgICBpZiAodGhpcy5TaG93QmVzdGVrKCkpIHtcclxuICAgICAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuVHlwZUJlc3RlayA9PSBcIlNUQUJVXCIpIHtcclxuICAgICAgICAgICAgaWYgKG1vZGVsLnN0YWJ1ID09IHVuZGVmaW5lZCB8fCBtb2RlbC5zdGFidSA9PSAnJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuVHlwZUJlc3RlayA9IFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5UeXBlQmVzdGVrID09IFwiT1NGXCIpIHtcclxuICAgICAgICAgICAgaWYgKG1vZGVsLm9zZmh0bWwgPT0gdW5kZWZpbmVkIHx8IG1vZGVsLm9zZmh0bWwgPT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLlR5cGVCZXN0ZWsgPSBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy9pZiAodGhpcy5UeXBlQmVzdGVrID09IFwiU1VGXCIpIHtcclxuICAgICAgICAgIC8vICBpZiAobW9kZWwuc3VmID09IHVuZGVmaW5lZCB8fCBtb2RlbC5zdWYgPT0gJycpIHtcclxuICAgICAgICAgIC8vICAgIHRoaXMuVHlwZUJlc3RlayA9IFwiXCI7XHJcbiAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgLy99XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuVHlwZUJlc3RlayA9PSBcIlZyaWpcIikge1xyXG4gICAgICAgICAgICBpZiAobW9kZWwudnJpakJlc3Rla0hUTUwgPT0gdW5kZWZpbmVkIHx8IG1vZGVsLnZyaWpCZXN0ZWtIVE1MID09ICcnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5UeXBlQmVzdGVrID0gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLlR5cGVCZXN0ZWsgPT0gXCJcIikge1xyXG4gICAgICAgICAgICBpZiAobW9kZWwuc3RhYnUgIT0gdW5kZWZpbmVkICYmIG1vZGVsLnN0YWJ1ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5UeXBlQmVzdGVrID0gXCJTVEFCVVwiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAobW9kZWwub3NmaHRtbCAhPSB1bmRlZmluZWQgJiYgbW9kZWwub3NmaHRtbCAhPSAnJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuVHlwZUJlc3RlayA9IFwiT1NGXCI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vaWYgKG1vZGVsLnN1ZiAhPSB1bmRlZmluZWQgJiYgbW9kZWwuc3VmICE9ICcnKSB7XHJcbiAgICAgICAgICAgIC8vICB0aGlzLlR5cGVCZXN0ZWsgPSBcIlNVRlwiO1xyXG4gICAgICAgICAgICAvL31cclxuXHJcbiAgICAgICAgICAgIGlmIChtb2RlbC52cmlqQmVzdGVrSFRNTCAhPSB1bmRlZmluZWQgJiYgbW9kZWwudnJpakJlc3Rla0hUTUwgIT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLlR5cGVCZXN0ZWsgPSBcIlZyaWpcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLlNob3VsZFRyaWdnZXJSZWxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5UcmlnZ2VyUmVsb2FkcyhDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUHJvY2Vzc0R5bmFtaWNNb2RlbHMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZEZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWwoc2Vzc2lvbmlkOiBzdHJpbmcsIGxhbmd1YWdlaWQ6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuTG9hZGluZykge1xyXG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5zZXNzaW9uSWQgPSBzZXNzaW9uaWQ7XHJcbiAgICAgIHJlcXVlc3QubGFuZ3VhZ2VJZCA9IGxhbmd1YWdlaWQ7XHJcblxyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuQXV0b1NwZWNpZmljYXRpb25WaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuRmFicmlrYW50ZW5BdXRvU3BlY2lmaWNhdGlvblZpZXdNb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlICE9IG51bGwpIHtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlbkF1dG9TcGVjaWZpY2F0aW9uVmlld01vZGVsLmNoZWNrc3VtICE9IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmNoZWNrc3VtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5TaG91bGRUcmlnZ2VyUmVsb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5UcmlnZ2VyUmVsb2FkcyhDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUHJvY2Vzc0R5bmFtaWNNb2RlbHMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZEZhYnJpa2FudGVuTGFzdGVuYm9la1ZpZXdNb2RlbChzZXNzaW9uaWQ6IHN0cmluZywgbGFuZ3VhZ2VpZDogbnVtYmVyLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Mb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlbkxhc3RlbmJvZWtSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gc2Vzc2lvbmlkO1xyXG4gICAgICByZXF1ZXN0Lmxhbmd1YWdlSWQgPSBsYW5ndWFnZWlkO1xyXG5cclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlbkxhc3RlbmJvZWtWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogRmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsKSA9PiB7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlbkxhc3RlbmJvZWtWaWV3TW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5MYXN0ZW5ib2VrVmlld01vZGVsLmNoZWNrc3VtICE9IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmNoZWNrc3VtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5TaG91bGRUcmlnZ2VyUmVsb2FkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5UcmlnZ2VyUmVsb2FkcyhDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUHJvY2Vzc0R5bmFtaWNNb2RlbHMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuU2hvdWxkVHJpZ2dlclJlbG9hZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0Jlc3RlaygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuQWN0aXZlTGFuZ3VhZ2Uuc2hvd1NwZWNpZmljYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSGFzTm9uQWJzdHJhY3RCZXN0ZWsoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIC8vaWYgKHRoaXMuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwub3NmaHRtbCAhPSBcIlwiKSB7XHJcbiAgICAgIC8vICByZXR1cm4gdHJ1ZTtcclxuICAgICAgLy99XHJcblxyXG4gICAgICBpZiAodGhpcy5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbC5zdGFidSAhPSBcIlwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==