qms-angular 1.0.23 → 1.0.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.
@@ -193,7 +193,7 @@ export class RelatedPopupComponent {
193
193
  onSearchRelated(_val) {
194
194
  this.filteredOptions = [];
195
195
  if (typeof (_val) === 'object') {
196
- return;
196
+ this.myControl.setValue('');
197
197
  }
198
198
  else if (typeof (_val) === 'string') {
199
199
  if (!!_val) {
@@ -532,4 +532,4 @@ RelatedPopupComponent.propDecorators = {
532
532
  autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
533
533
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
534
534
  };
535
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9wb3B1cC9yZWxhdGVkLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxF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QUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNoRjtRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBYztRQUM3QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JELENBQUM7OztZQXpqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLG0xZEFBNkM7Z0JBRTdDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBdENRLGlCQUFpQjtZQU1qQix1QkFBdUI7WUFIdkIsWUFBWTtZQVlaLHVCQUF1QjtZQUV2QixlQUFlO1lBRGYsWUFBWTtZQU5aLFNBQVMsdUJBNEViLE1BQU0sU0FBQyxlQUFlOzs7d0JBWHhCLFlBQVksU0FBQyxhQUFhLEVBQUUsRUFBRTsyQkFFOUIsU0FBUyxTQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBb0NuRixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0NoZWNrZWQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9kYXRhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tICcuLi9jb21tb24vbW9kdWxlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFJlbGF0ZWRDb25zdCB9IGZyb20gJy4uL2NvbW1vbi9yZWxhdGVkLmNvbnN0JztcclxuaW1wb3J0IHsgUG9wdXBEYXRhIH0gZnJvbSAnLi4vbW9kZWwvcG9wdXAtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElSZWxhdGVkLCBSZWxhdGVkSXRlbSB9IGZyb20gJy4uL21vZGVsL3JlbGF0ZWQtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkTm9kZSB9IGZyb20gJy4uL21vZGVsL3NlbGVjdGVkLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TUmVsYXRlZEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3JlbGF0ZWQtZ2xvYmFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IENIRUNLTElTVF9JQ09OLCBERVZJQVRJT05fSUNPTiwgRE9DVU1FTlRfSUNPTiwgUFJPQ0VTU19BUkVBX0lDT04sIFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OLCBQUk9DRVNTX0lDT04sIFJJU0tfSUNPTiB9IGZyb20gJy4uL2NvbW1vbi9xbXMtaWNvbi5jb25zdCc7XHJcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi90cmVlL3RyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdHJlZS1ub2RlLm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBUcmVlRmxhdE5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuICBoYXNDaGlsZDogYm9vbGVhbjtcclxuICBwYXJlbnRJZD86IHN0cmluZztcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtcmVsYXRlZC1wb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIExBTkc6IGFueTtcclxuICBtb2R1bGVJZCA9IDA7XHJcbiAgbW9kdWxlTmFtZSA9ICcnO1xyXG4gIHRyZWVEYXRhMTogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIHRyZWVDb25maWcxOiBUcmVlQ29uZmlnO1xyXG4gIHRyZWVDb25maWcyOiBUcmVlQ29uZmlnO1xyXG5cclxuICBjaGVja2VkTm9kZUxpc3Q6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZE5vZGU6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZERhdGE6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZERhdGEyOiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcblxyXG4gIGNvbW1vbkNoZWNrZWRMaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgZG9jdW1lbnRDaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIHNpbmdsZVByb2Nlc3NMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgc2luZ2xlRG9jdW1lbnRMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcblxyXG4gIG1vZHVsZSA9IE1vZHVsZVR5cGU7XHJcbiAgZGF0YVR5cGUgPSBEYXRhVHlwZTtcclxuICBpdGVtVHlwZSA9IDA7XHJcbiAgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICBkaXNhYmxlZExpc3QyOiBhbnkgPSBbXTtcclxuXHJcbiAgaXNEb2N1bWVudEV4cGFuZGVkID0gdHJ1ZTtcclxuICBpc0NvbW1vbkV4cGFuZGVkID0gdHJ1ZTtcclxuICBzaW5nbGVTZWxlY3RlZE5vZGUgPSBmYWxzZTtcclxuXHJcbiAgbXlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBJUmVsYXRlZFtdID0gW107XHJcbiAgaXNJbnB1dFZhbHVlID0gZmFsc2U7XHJcbiAgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZHJlbihUcmVlQ29tcG9uZW50LCB7fSkgZGF0YVRyZWVzOiBRdWVyeUxpc3Q8VHJlZUNvbXBvbmVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0U2VhcmNoJywgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBzdGF0aWM6IHRydWUgfSlcclxuICBhdXRvQ29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlbGF0ZWRQb3B1cENvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgZ2xvYmFsU2VydmljZTogUU1TUmVsYXRlZEdsb2JhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUG9wdXBEYXRhXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1vZHVsZUlkID0gZGF0YS5tb2R1bGVJZDtcclxuICAgIHRoaXMubW9kdWxlTmFtZSA9IGRhdGEubW9kdWxlTmFtZTtcclxuICAgIHRoaXMudHJlZURhdGExID0gZGF0YS50cmVlRGF0YTE7XHJcbiAgICB0aGlzLnRyZWVEYXRhMiA9IGRhdGEudHJlZURhdGEyO1xyXG4gICAgdGhpcy50cmVlQ29uZmlnMSA9IGRhdGEudHJlZUNvbmZpZzE7XHJcbiAgICB0aGlzLnRyZWVDb25maWcyID0gZGF0YS50cmVlQ29uZmlnMjtcclxuICAgIHRoaXMuc2VsZWN0ZWRSaXNrRGF0YSA9IGRhdGE/LnNlbGVjdGVkTm9kZSB8fCBbXTtcclxuICAgIHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlID0gZGF0YS50cmVlQ29uZmlnMS5zaW5nbGVTZWxlY3RlZE5vZGU7XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdCA9IGRhdGEuZGlzYWJsZWRMaXN0IHx8IFtdO1xyXG4gICAgdGhpcy5kaXNhYmxlZExpc3QyID0gZGF0YS5kaXNhYmxlZExpc3QyIHx8IFtdO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzX2FyZWEnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUFJPQ0VTU19BUkVBX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncHJvY2Vzc19hcmVhX291dGxpbmVkJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RvY3VtZW50Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKERPQ1VNRU5UX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnY2hlY2tsaXN0Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKENIRUNLTElTVF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RldmlhdGlvbicsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChERVZJQVRJT05fSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdyaXNrJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFJJU0tfSUNPTikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmdsb2JhbFNlcnZpY2Uuc2V0U2VhcmNoUmVsYXRlZChbXSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuZGF0YSA9PT0gUmVsYXRlZENvbnN0LkhJREVfU0VBUkNIX1JFU1VMVCkge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZS5jbG9zZVBhbmVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZWFyY2hSZWxhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vblNlYXJjaFJlbGF0ZWQodmFsKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXRlbVR5cGUgPSB0aGlzLmdldERhdGFUeXBlSWQodGhpcy5tb2R1bGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucyAmJiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuc2V0UmVzdWx0SGVpZ2h0KCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGFUeXBlSWQobW9kdWxlSWQ6IG51bWJlcikge1xyXG4gICAgbGV0IGl0ZW1UeXBlO1xyXG4gICAgc3dpdGNoIChtb2R1bGVJZCkge1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUuZG9jdW1lbnRQcm9jZXNzOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5kZXZpYXRpb247XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kdWxlVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2R1bGVUeXBlLnJpc2s6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnJpc2s7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1UeXBlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KGl0ZW06IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhMiA9IFtdO1xyXG5cclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmlsdGVyKHggPT4gKHguaWQgIT09IGl0ZW0uaWQgfHwgeC5wYXJlbnRJZCAhPT0gaXRlbS5wYXJlbnRJZCkpO1xyXG4gICAgY29uc3QgdGVtcEFyciA9IFtdO1xyXG4gICAgY29uc3QgdGVtcEFyckRvY3VtZW50ID0gW107XHJcbiAgICBjb25zdCBuZXdTZWxlY3RQcm9jZXNzTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgbmV3U2VsZWN0RG9jdW1lbnRMaXN0ID0gW107XHJcblxyXG4gICAgXHJcbiAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgPT09IHguaWQgJiYgZWxlbWVudC5wYXJlbnRJZCA9PT0geC5wYXJlbnRJZCkge1xyXG4gICAgICAgICAgdGVtcEFyci5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgPT09IHguaWQgJiYgZWxlbWVudC5wYXJlbnRJZCA9PT0geC5wYXJlbnRJZCkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0UHJvY2Vzc0xpc3QucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0ID0gbmV3U2VsZWN0UHJvY2Vzc0xpc3Q7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFsuLi50ZW1wQXJyXTtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50Q2hlY2tlZExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0geC5pZCAmJiBlbGVtZW50LnBhcmVudElkID09PSB4LnBhcmVudElkKSB7XHJcbiAgICAgICAgICB0ZW1wQXJyRG9jdW1lbnQucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0geC5pZCAmJiBlbGVtZW50LnBhcmVudElkID09PSB4LnBhcmVudElkKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3REb2N1bWVudExpc3QucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICAgIHRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0ID0gbmV3U2VsZWN0RG9jdW1lbnRMaXN0O1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEyID0gWy4uLnRlbXBBcnJEb2N1bWVudF07XHJcblxyXG4gIH1cclxuXHJcbiAgaXNNYXRjaFRydWUoYXJyOiBhbnlbXSwgYXJyMjogYW55W10pIHtcclxuICAgIHJldHVybiBhcnIuZXZlcnkoKGkpID0+IHtcclxuICAgICAgcmV0dXJuIGFycjIuaW5jbHVkZXMoaSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0UmVzdWx0SGVpZ2h0KGFycj86IElSZWxhdGVkW10pIHtcclxuICAgIGxldCBtYXhIZWlnaHQgPSA0ODQ7XHJcbiAgICBjb25zdCBwb3B1cF9jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncW1zbGliX3JlbGF0ZWRfcG9wdXBfY29udGVudCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmIChwb3B1cF9jb250ZW50ICYmIGxpbmVfX2RpdmlkZXIpIHtcclxuICAgICAgbWF4SGVpZ2h0ID0gdGhpcy5nZXRPZmZzZXRIZWlnaHQocG9wdXBfY29udGVudCwgdHJ1ZSkgKyB0aGlzLmdldE9mZnNldEhlaWdodChsaW5lX19kaXZpZGVyLCB0cnVlKSAqIDI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudFJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIGlmICh2aWV3cmVwb3J0cykge1xyXG4gICAgICBpZiAoY29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgdmlld3JlcG9ydHMuc3R5bGUuaGVpZ2h0ID0gYCR7Y29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHR9cHhgO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb25TZWFyY2hSZWxhdGVkKF92YWw6IGFueSkge1xyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXTtcclxuICAgIGlmICh0eXBlb2YgKF92YWwpID09PSAnb2JqZWN0Jykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgKF92YWwpID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAoISFfdmFsKSB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KF92YWwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRNb2R1bGVGaWx0ZXJlZE9wdGlvbnMobW9kdWxlSWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRPcHRpb25zLmZpbHRlcih4ID0+IHguaXRlbVR5cGUgPT09IG1vZHVsZUlkKTtcclxuICB9XHJcblxyXG4gIHNob3dTZWFyY2hSZXN1bHQoKSB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXlSZWxhdGVkKHJlbGF0ZWQ/OiBJUmVsYXRlZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gcmVsYXRlZCA/IHJlbGF0ZWQuaXRlbU5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSZWxhdGVkKGl0ZW06IElSZWxhdGVkKSB7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gW107XHJcbiAgICBpZiAodGhpcy50cmVlQ29uZmlnMS5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgaW5kZXggPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IGl0ZW0uaWQgJiYgeC5wYXJlbnRJZCA9PT0gaXRlbS5wYXJlbnRJZDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgbGV0IG5vZGU6IGFueTtcclxuICAgICAgbGV0IHR5cGVJZDogbnVtYmVyO1xyXG5cclxuICAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQpIHtcclxuICAgICAgICAvLyBkb2N1bWVudFxyXG4gICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHguY2hpbGRJZCA9PT0gaXRlbS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBub2RlID0gdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dO1xyXG4gICAgICAgIHR5cGVJZCA9IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQ7XHJcbiAgICAgICAgdGhpcy5kYXRhVHJlZXMudG9BcnJheSgpWzFdLnRvZG9JdGVtU2VsZWN0aW9uQnlJZChbaXRlbS5pZF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZm9sZGVyKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGEyW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSBpdGVtLml0ZW1UeXBlO1xyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29uZmlnMi5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0uaXRlbU5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHR5cGVJZCxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uaXRlbU51bWJlcklkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlLnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVsxXS50b2RvSXRlbVNlbGVjdGlvbkJ5SWQoW2l0ZW0uaWRdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uVHlwZVxyXG4gICAgICAgIHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0Q2F0ZWdvcnlcclxuICAgICAgICB8fCBpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnJpc2tGb2xkZXIpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdE5vZGVSZWN1cnNpdmUodGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLCBpdGVtLml0ZW1UeXBlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmFyZWEpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBub2RlID0gdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dO1xyXG4gICAgICAgIHR5cGVJZCA9IGl0ZW0uaXRlbVR5cGU7XHJcblxyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29uZmlnMS5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBub2RlLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5wdXNoKHtcclxuICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICBpZDogbm9kZS5yb290SWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IG5vZGUucm9vdE5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHR5cGVJZCxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uaXRlbU51bWJlcklkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb25CeUlkKFtpdGVtLmlkXSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uIHx8XHJcbiAgICAgICAgaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5jaGVja2xpc3QpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQgJiYgeC5yb290SWQgPT09IGl0ZW0ucGFyZW50SWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSB0aGlzLml0ZW1UeXBlO1xyXG4gICAgICAgIGNvbnN0IHRyZWVOb2RlID0ge1xyXG4gICAgICAgICAgaWQ6IG5vZGUuY2hpbGRJZCxcclxuICAgICAgICAgIG5hbWU6IG5vZGUuY2hpbGROYW1lLFxyXG4gICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgcGFyZW50SWQ6IG5vZGUucm9vdElkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvSXRlbVNlbGVjdGlvbihbdHJlZU5vZGVdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvLyBwcm9jZXNzLCBkZXZpYXRpb24sIGNoZWNrbGlzdCwuLi5cclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSB0aGlzLml0ZW1UeXBlO1xyXG4gICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvSXRlbVNlbGVjdGlvbkJ5SWQoW2l0ZW0uaWRdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0Tm9kZVJlY3Vyc2l2ZShpdGVtOiBUcmVlTW9kZWwsIGl0ZW1UeXBlOiBEYXRhVHlwZSkge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0ucm9vdElkO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHBvc2l0aW9uID49IDApIHtcclxuXHJcbiAgICAgIGNvbnN0IG5vZGUgPSB7XHJcbiAgICAgICAgaWQ6IGl0ZW0ucm9vdElkLFxyXG4gICAgICAgIG5hbWU6IGl0ZW0ucm9vdE5hbWUsXHJcbiAgICAgICAgY2hpbGRyZW46IFtdXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBub2RlQ2hpbGRyZW46IFRyZWVOb2RlW10gPSB0aGlzLnRyZWVEYXRhMS5cclxuICAgICAgICBmaWx0ZXIoeCA9PiB4LnJvb3RJZCA9PT0gaXRlbS5yb290SWQpLlxyXG4gICAgICAgIG1hcCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiB4LmNoaWxkSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0uY2hpbGROYW1lLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnJvb3RJZFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgbGV0IG5vZGVTdWJmb2xkZXJzOiBUcmVlTW9kZWxbXSA9IHRoaXMudHJlZURhdGExLlxyXG4gICAgICAgIGZpbHRlcih4ID0+IHgucGFyZW50SWQgPT09IGl0ZW0ucm9vdElkKVxyXG5cclxuICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgbm9kZUNoaWxkcmVuLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogaXRlbVR5cGUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5kaXNwbGF5SWQudG9TdHJpbmcoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbm9kZUNoaWxkcmVuLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogaXRlbVR5cGUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5kaXNwbGF5SWQudG9TdHJpbmcoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvSXRlbVNlbGVjdGlvbihbbm9kZV0uY29uY2F0KG5vZGVDaGlsZHJlbikpO1xyXG4gICAgICBpZiAobm9kZVN1YmZvbGRlcnMpIHtcclxuICAgICAgICBub2RlU3ViZm9sZGVycy5mb3JFYWNoKGZvbGRlciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVSZWN1cnNpdmUoZm9sZGVyLCBpdGVtVHlwZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNldFR5cGVQcm9jZXNzKGV4cGFuZCkge1xyXG4gICAgcmV0dXJuIGV4cGFuZCA/IHRoaXMuZGF0YVR5cGUuYXJlYSA6IHRoaXMuZGF0YVR5cGUucHJvY2VzcztcclxuICB9XHJcblxyXG4gIGdldENvbW1vbkNoZWNrZWROb2RlKGxpc3Q6IEFycmF5PFRyZWVGbGF0Tm9kZT4pIHtcclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gW107XHJcbiAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0ID0gW107XHJcbiAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLnNpbmdsZURvY3VtZW50TGlzdF07XHJcblxyXG4gICAgaWYgKGxpc3QubGVuZ3RoKSB7XHJcbiAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbmRJbmRleCh4ID0+IHguaWQgPT09IGl0ZW0uaWQgJiYgeC5wYXJlbnRJZCA9PT0gaXRlbS5wYXJlbnRJZCk7XHJcblxyXG4gICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgdGhpcy5jb21tb25DaGVja2VkTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcclxuICAgICAgICAgIGlmKGl0ZW0uZXhwYW5kYWJsZSl7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5yb290SWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYocG9zaXRpb24gPiAtMSl7XHJcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlUHJvY2Vzc0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogKHRoaXMuaXRlbVR5cGUgPT09IDIpID8gdGhpcy5zZXRUeXBlUHJvY2VzcyhpdGVtLmV4cGFuZGFibGUpIDogdGhpcy5pdGVtVHlwZSxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICBwYXJlbnRJZDogaXRlbS5wYXJlbnRJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDAgJiYgIWl0ZW0uZXhwYW5kYWJsZSAmJiAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkICYmIHAucm9vdElkID09PSBpdGVtLnBhcmVudElkKTtcclxuICAgICAgICAgIGlmIChwb3NpdGlvbiA+IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHRoaXMuaXRlbVR5cGUsXHJcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLmNoZWNrZWROb2RlTGlzdCwgLi4udGhpcy5zaW5nbGVQcm9jZXNzTGlzdF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERvY3VtZW50Q2hlY2tlZE5vZGUobGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPikge1xyXG4gICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgIHRoaXMuZG9jdW1lbnRDaGVja2VkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gWy4uLnRoaXMuc2luZ2xlUHJvY2Vzc0xpc3RdO1xyXG5cclxuXHJcbiAgICBpZiAobGlzdC5sZW5ndGgpIHtcclxuICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XHJcblxyXG4gICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudENoZWNrZWRMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGxldCBwb3NpdGlvbjogbnVtYmVyO1xyXG4gICAgICAgICAgaWYoaXRlbS5leHBhbmRhYmxlKXtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgocCA9PiBwLnJvb3RJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEyLmZpbmRJbmRleChwID0+IHAuY2hpbGRJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihwb3NpdGlvbiA+IC0xKXtcclxuICAgICAgICAgICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogaXRlbS5leHBhbmRhYmxlID8gdGhpcy5kYXRhVHlwZS5mb2xkZXIgOiB0aGlzLmRhdGFUeXBlLmRvY3VtZW50LFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgaWYgKGluZGV4IDwgMCAmJiAhaXRlbS5leHBhbmRhYmxlICYmICF0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSkge1xyXG4gICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgaWYocG9zaXRpb24gPiAtMSl7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiB0aGlzLnRyZWVEYXRhMltwb3NpdGlvbl0uZGlzcGxheUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbLi4udGhpcy5jaGVja2VkTm9kZUxpc3QsIC4uLnRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9O1xyXG5cclxuICBvbkFkZENsaWNrKCkge1xyXG4gICAgLy8gaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmNoZWNrZWROb2RlTGlzdCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5zZWxlY3RlZE5vZGUpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgZ2V0T2Zmc2V0SGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbmNsdWRlTWFyZ2luOiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgIGxldCBlbG1IZWlnaHQgPSAwLCBlbG1NYXJnaW4gPSAwO1xyXG5cclxuICAgIGVsbUhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKGluY2x1ZGVNYXJnaW4pIHtcclxuICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgZWxtTWFyZ2luID0gcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Cb3R0b20ucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoZWxtSGVpZ2h0ICsgZWxtTWFyZ2luKTtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1DaGlwTmFtZShpdGVtOiBTZWxlY3RlZE5vZGUpIHtcclxuICAgIGlmKGl0ZW0uaXRlbVR5cGUgPT09IERhdGFUeXBlLmNoZWNrbGlzdCB8fCBpdGVtLml0ZW1UeXBlID09PSBEYXRhVHlwZS5kZXZpYXRpb24pe1xyXG4gICAgICByZXR1cm4gaXRlbS5wYXJlbnROYW1lID8gYCR7aXRlbS5wYXJlbnROYW1lfS8ke2l0ZW0uaXRlbU5hbWV9YCA6IGl0ZW0uaXRlbU5hbWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbS5pdGVtTmFtZTtcclxuICB9XHJcblxyXG4gIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlID8gKGUuY2xpZW50V2lkdGggPCBlLnNjcm9sbFdpZHRoKSA6IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
535
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9wb3B1cC9yZWxhdGVkLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxF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QUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2hGO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFjO1FBQzdCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQzs7O1lBempCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsbTFkQUE2QztnQkFFN0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUF0Q1EsaUJBQWlCO1lBTWpCLHVCQUF1QjtZQUh2QixZQUFZO1lBWVosdUJBQXVCO1lBRXZCLGVBQWU7WUFEZixZQUFZO1lBTlosU0FBUyx1QkE0RWIsTUFBTSxTQUFDLGVBQWU7Ozt3QkFYeEIsWUFBWSxTQUFDLGFBQWEsRUFBRSxFQUFFOzJCQUU5QixTQUFTLFNBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt3QkFvQ25GLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3Q2hlY2tlZCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2RhdGEtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgTW9kdWxlVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9tb2R1bGUtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUmVsYXRlZENvbnN0IH0gZnJvbSAnLi4vY29tbW9uL3JlbGF0ZWQuY29uc3QnO1xyXG5pbXBvcnQgeyBQb3B1cERhdGEgfSBmcm9tICcuLi9tb2RlbC9wb3B1cC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgSVJlbGF0ZWQsIFJlbGF0ZWRJdGVtIH0gZnJvbSAnLi4vbW9kZWwvcmVsYXRlZC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWROb2RlIH0gZnJvbSAnLi4vbW9kZWwvc2VsZWN0ZWQtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVDb25maWcgfSBmcm9tICcuLi9tb2RlbC90cmVlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVNb2RlbCB9IGZyb20gJy4uL21vZGVsL3RyZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNSZWxhdGVkR2xvYmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvcmVsYXRlZC1nbG9iYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQ0hFQ0tMSVNUX0lDT04sIERFVklBVElPTl9JQ09OLCBET0NVTUVOVF9JQ09OLCBQUk9DRVNTX0FSRUFfSUNPTiwgUFJPQ0VTU19BUkVBX09VVExJTkVEX0lDT04sIFBST0NFU1NfSUNPTiwgUklTS19JQ09OIH0gZnJvbSAnLi4vY29tbW9uL3Ftcy1pY29uLmNvbnN0JztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci10cmVlLW5vZGUubW9kZWwnO1xyXG5cclxuaW50ZXJmYWNlIFRyZWVGbGF0Tm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGhhc0NoaWxkOiBib29sZWFuO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1yZWxhdGVkLXBvcHVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVsYXRlZC1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVsYXRlZC1wb3B1cC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlbGF0ZWRQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgTEFORzogYW55O1xyXG4gIG1vZHVsZUlkID0gMDtcclxuICBtb2R1bGVOYW1lID0gJyc7XHJcbiAgdHJlZURhdGExOiBBcnJheTxUcmVlTW9kZWw+ID0gW107XHJcbiAgdHJlZURhdGEyOiBBcnJheTxUcmVlTW9kZWw+ID0gW107XHJcbiAgdHJlZUNvbmZpZzE6IFRyZWVDb25maWc7XHJcbiAgdHJlZUNvbmZpZzI6IFRyZWVDb25maWc7XHJcblxyXG4gIGNoZWNrZWROb2RlTGlzdDogQXJyYXk8U2VsZWN0ZWROb2RlPiA9IFtdO1xyXG4gIHNlbGVjdGVkTm9kZTogQXJyYXk8U2VsZWN0ZWROb2RlPiA9IFtdO1xyXG4gIHNlbGVjdGVkRGF0YTogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIHNlbGVjdGVkRGF0YTI6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuXHJcbiAgY29tbW9uQ2hlY2tlZExpc3Q6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuICBkb2N1bWVudENoZWNrZWRMaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgc2luZ2xlUHJvY2Vzc0xpc3Q6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzaW5nbGVEb2N1bWVudExpc3Q6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuXHJcbiAgbW9kdWxlID0gTW9kdWxlVHlwZTtcclxuICBkYXRhVHlwZSA9IERhdGFUeXBlO1xyXG4gIGl0ZW1UeXBlID0gMDtcclxuICBzZWxlY3RlZFJpc2tEYXRhOiBhbnkgPSBbXTtcclxuICBkaXNhYmxlZExpc3Q6IGFueSA9IFtdO1xyXG4gIGRpc2FibGVkTGlzdDI6IGFueSA9IFtdO1xyXG5cclxuICBpc0RvY3VtZW50RXhwYW5kZWQgPSB0cnVlO1xyXG4gIGlzQ29tbW9uRXhwYW5kZWQgPSB0cnVlO1xyXG4gIHNpbmdsZVNlbGVjdGVkTm9kZSA9IGZhbHNlO1xyXG5cclxuICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBmaWx0ZXJlZE9wdGlvbnM6IElSZWxhdGVkW10gPSBbXTtcclxuICBpc0lucHV0VmFsdWUgPSBmYWxzZTtcclxuICBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkcmVuKFRyZWVDb21wb25lbnQsIHt9KSBkYXRhVHJlZXM6IFF1ZXJ5TGlzdDxUcmVlQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXRTZWFyY2gnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGF1dG9Db21wbGV0ZTogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVsYXRlZFBvcHVwQ29tcG9uZW50PixcclxuICAgIHB1YmxpYyBnbG9iYWxTZXJ2aWNlOiBRTVNSZWxhdGVkR2xvYmFsU2VydmljZSxcclxuICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBQb3B1cERhdGFcclxuICApIHtcclxuICAgIHRoaXMubW9kdWxlSWQgPSBkYXRhLm1vZHVsZUlkO1xyXG4gICAgdGhpcy5tb2R1bGVOYW1lID0gZGF0YS5tb2R1bGVOYW1lO1xyXG4gICAgdGhpcy50cmVlRGF0YTEgPSBkYXRhLnRyZWVEYXRhMTtcclxuICAgIHRoaXMudHJlZURhdGEyID0gZGF0YS50cmVlRGF0YTI7XHJcbiAgICB0aGlzLnRyZWVDb25maWcxID0gZGF0YS50cmVlQ29uZmlnMTtcclxuICAgIHRoaXMudHJlZUNvbmZpZzIgPSBkYXRhLnRyZWVDb25maWcyO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhID0gZGF0YT8uc2VsZWN0ZWROb2RlIHx8IFtdO1xyXG4gICAgdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPSBkYXRhLnRyZWVDb25maWcxLnNpbmdsZVNlbGVjdGVkTm9kZTtcclxuICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gZGF0YS5kaXNhYmxlZExpc3QgfHwgW107XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdDIgPSBkYXRhLmRpc2FibGVkTGlzdDIgfHwgW107XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3Byb2Nlc3MnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUFJPQ0VTU19JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3Byb2Nlc3NfYXJlYScsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChQUk9DRVNTX0FSRUFfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzX2FyZWFfb3V0bGluZWQnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUFJPQ0VTU19BUkVBX09VVExJTkVEX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZG9jdW1lbnQnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoRE9DVU1FTlRfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdjaGVja2xpc3QnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoQ0hFQ0tMSVNUX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZGV2aWF0aW9uJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKERFVklBVElPTl9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3Jpc2snLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUklTS19JQ09OKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRTZWFyY2hSZWxhdGVkKFtdKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptZXNzYWdlJywgWyckZXZlbnQnXSlcclxuICBvbk1lc3NhZ2UoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5kYXRhID09PSBSZWxhdGVkQ29uc3QuSElERV9TRUFSQ0hfUkVTVUxUKSB7XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNlYXJjaFJlbGF0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSByZXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubXlDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxMDAwKSkuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgdGhpcy5pc0lucHV0VmFsdWUgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uU2VhcmNoUmVsYXRlZCh2YWwpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pdGVtVHlwZSA9IHRoaXMuZ2V0RGF0YVR5cGVJZCh0aGlzLm1vZHVsZUlkKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zICYmIHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICAgICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hdXRvQ29tcGxldGUpIHtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGUuY2xvc2VQYW5lbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YVR5cGVJZChtb2R1bGVJZDogbnVtYmVyKSB7XHJcbiAgICBsZXQgaXRlbVR5cGU7XHJcbiAgICBzd2l0Y2ggKG1vZHVsZUlkKSB7XHJcbiAgICAgIGNhc2UgTW9kdWxlVHlwZS5kb2N1bWVudFByb2Nlc3M6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnByb2Nlc3M7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kdWxlVHlwZS5kZXZpYXRpb246XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvbjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2R1bGVUeXBlLmNoZWNrbGlzdDpcclxuICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUucmlzazpcclxuICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUucmlzaztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbVR5cGU7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDaGVja2VkTm9kZUxpc3QoaXRlbTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEyID0gW107XHJcblxyXG4gICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maWx0ZXIoeCA9PiAoeC5pZCAhPT0gaXRlbS5pZCB8fCB4LnBhcmVudElkICE9PSBpdGVtLnBhcmVudElkKSk7XHJcbiAgICBjb25zdCB0ZW1wQXJyID0gW107XHJcbiAgICBjb25zdCB0ZW1wQXJyRG9jdW1lbnQgPSBbXTtcclxuICAgIGNvbnN0IG5ld1NlbGVjdFByb2Nlc3NMaXN0ID0gW107XHJcbiAgICBjb25zdCBuZXdTZWxlY3REb2N1bWVudExpc3QgPSBbXTtcclxuXHJcbiAgICBcclxuICAgIHRoaXMuY29tbW9uQ2hlY2tlZExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0geC5pZCAmJiBlbGVtZW50LnBhcmVudElkID09PSB4LnBhcmVudElkKSB7XHJcbiAgICAgICAgICB0ZW1wQXJyLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2luZ2xlUHJvY2Vzc0xpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0geC5pZCAmJiBlbGVtZW50LnBhcmVudElkID09PSB4LnBhcmVudElkKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3RQcm9jZXNzTGlzdC5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc2luZ2xlUHJvY2Vzc0xpc3QgPSBuZXdTZWxlY3RQcm9jZXNzTGlzdDtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gWy4uLnRlbXBBcnJdO1xyXG5cclxuICAgIHRoaXMuZG9jdW1lbnRDaGVja2VkTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmlkID09PSB4LmlkICYmIGVsZW1lbnQucGFyZW50SWQgPT09IHgucGFyZW50SWQpIHtcclxuICAgICAgICAgIHRlbXBBcnJEb2N1bWVudC5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNpbmdsZURvY3VtZW50TGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmlkID09PSB4LmlkICYmIGVsZW1lbnQucGFyZW50SWQgPT09IHgucGFyZW50SWQpIHtcclxuICAgICAgICAgIG5ld1NlbGVjdERvY3VtZW50TGlzdC5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QgPSBuZXdTZWxlY3REb2N1bWVudExpc3Q7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YTIgPSBbLi4udGVtcEFyckRvY3VtZW50XTtcclxuXHJcbiAgfVxyXG5cclxuICBpc01hdGNoVHJ1ZShhcnI6IGFueVtdLCBhcnIyOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIGFyci5ldmVyeSgoaSkgPT4ge1xyXG4gICAgICByZXR1cm4gYXJyMi5pbmNsdWRlcyhpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRSZXN1bHRIZWlnaHQoYXJyPzogSVJlbGF0ZWRbXSkge1xyXG4gICAgbGV0IG1heEhlaWdodCA9IDQ4NDtcclxuICAgIGNvbnN0IHBvcHVwX2NvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbXNsaWJfcmVsYXRlZF9wb3B1cF9jb250ZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBsaW5lX19kaXZpZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbGluZV9fZGl2aWRlcicpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKHBvcHVwX2NvbnRlbnQgJiYgbGluZV9fZGl2aWRlcikge1xyXG4gICAgICBtYXhIZWlnaHQgPSB0aGlzLmdldE9mZnNldEhlaWdodChwb3B1cF9jb250ZW50LCB0cnVlKSArIHRoaXMuZ2V0T2Zmc2V0SGVpZ2h0KGxpbmVfX2RpdmlkZXIsIHRydWUpICogMjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250ZW50UmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlcicpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3Qgdmlld3JlcG9ydHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZWxhdGVkLXZpZXdwb3J0JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKHZpZXdyZXBvcnRzKSB7XHJcbiAgICAgIGlmIChjb250ZW50UmVzdWx0Lm9mZnNldEhlaWdodCA8PSBtYXhIZWlnaHQpIHtcclxuICAgICAgICB2aWV3cmVwb3J0cy5zdHlsZS5oZWlnaHQgPSBgJHtjb250ZW50UmVzdWx0Lm9mZnNldEhlaWdodH1weGA7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmlld3JlcG9ydHMuc3R5bGUuaGVpZ2h0ID0gYCR7bWF4SGVpZ2h0fXB4YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvblNlYXJjaFJlbGF0ZWQoX3ZhbDogYW55KSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdO1xyXG4gICAgaWYgKHR5cGVvZiAoX3ZhbCkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHRoaXMubXlDb250cm9sLnNldFZhbHVlKCcnKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKCEhX3ZhbCkge1xyXG4gICAgICAgIHRoaXMub25TZWFyY2guZW1pdChfdmFsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TW9kdWxlRmlsdGVyZWRPcHRpb25zKG1vZHVsZUlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5maWx0ZXIoeCA9PiB4Lml0ZW1UeXBlID09PSBtb2R1bGVJZCk7XHJcbiAgfVxyXG5cclxuICBzaG93U2VhcmNoUmVzdWx0KCkge1xyXG4gICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5UmVsYXRlZChyZWxhdGVkPzogSVJlbGF0ZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHJlbGF0ZWQgPyByZWxhdGVkLml0ZW1OYW1lIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmVsYXRlZChpdGVtOiBJUmVsYXRlZCkge1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IFtdO1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgIGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgIHJldHVybiB4LmlkID09PSBpdGVtLmlkICYmIHgucGFyZW50SWQgPT09IGl0ZW0ucGFyZW50SWQ7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgbGV0IHBvc2l0aW9uID0gLTE7XHJcbiAgICAgIGxldCBub2RlOiBhbnk7XHJcbiAgICAgIGxldCB0eXBlSWQ6IG51bWJlcjtcclxuXHJcbiAgICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50KSB7XHJcbiAgICAgICAgLy8gZG9jdW1lbnRcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEyLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGEyW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50O1xyXG4gICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVsxXS50b2RvSXRlbVNlbGVjdGlvbkJ5SWQoW2l0ZW0uaWRdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmZvbGRlcikge1xyXG4gICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhMltwb3NpdGlvbl07XHJcbiAgICAgICAgdHlwZUlkID0gaXRlbS5pdGVtVHlwZTtcclxuICAgICAgICBpZiAocG9zaXRpb24gPj0gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZzIuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5wdXNoKHtcclxuICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICBpdGVtTmFtZTogaXRlbS5pdGVtTmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5pdGVtTnVtYmVySWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMV0udG9kb0l0ZW1TZWxlY3Rpb25CeUlkKFtpdGVtLmlkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvblR5cGVcclxuICAgICAgICB8fCBpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdENhdGVnb3J5XHJcbiAgICAgICAgfHwgaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5yaXNrRm9sZGVyKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3ROb2RlUmVjdXJzaXZlKHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXSwgaXRlbS5pdGVtVHlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5hcmVhKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSBpdGVtLml0ZW1UeXBlO1xyXG5cclxuICAgICAgICBpZiAocG9zaXRpb24gPj0gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBub2RlLnJvb3RJZCxcclxuICAgICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5yb290TmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5pdGVtTnVtYmVySWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBub2RlLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kYXRhVHJlZXMudG9BcnJheSgpWzBdLnRvZG9JdGVtU2VsZWN0aW9uQnlJZChbaXRlbS5pZF0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvbiB8fFxyXG4gICAgICAgIGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0KSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5jaGlsZElkID09PSBpdGVtLmlkICYmIHgucm9vdElkID09PSBpdGVtLnBhcmVudElkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhMVtwb3NpdGlvbl07XHJcbiAgICAgICAgdHlwZUlkID0gdGhpcy5pdGVtVHlwZTtcclxuICAgICAgICBjb25zdCB0cmVlTm9kZSA9IHtcclxuICAgICAgICAgIGlkOiBub2RlLmNoaWxkSWQsXHJcbiAgICAgICAgICBuYW1lOiBub2RlLmNoaWxkTmFtZSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBbXSxcclxuICAgICAgICAgIHBhcmVudElkOiBub2RlLnJvb3RJZFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb24oW3RyZWVOb2RlXSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgLy8gcHJvY2VzcywgZGV2aWF0aW9uLCBjaGVja2xpc3QsLi4uXHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5jaGlsZElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhMVtwb3NpdGlvbl07XHJcbiAgICAgICAgdHlwZUlkID0gdGhpcy5pdGVtVHlwZTtcclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb25CeUlkKFtpdGVtLmlkXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdE5vZGVSZWN1cnNpdmUoaXRlbTogVHJlZU1vZGVsLCBpdGVtVHlwZTogRGF0YVR5cGUpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLnJvb3RJZDtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcblxyXG4gICAgICBjb25zdCBub2RlID0ge1xyXG4gICAgICAgIGlkOiBpdGVtLnJvb3RJZCxcclxuICAgICAgICBuYW1lOiBpdGVtLnJvb3ROYW1lLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbXVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbm9kZUNoaWxkcmVuOiBUcmVlTm9kZVtdID0gdGhpcy50cmVlRGF0YTEuXHJcbiAgICAgICAgZmlsdGVyKHggPT4geC5yb290SWQgPT09IGl0ZW0ucm9vdElkKS5cclxuICAgICAgICBtYXAoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogeC5jaGlsZElkLFxyXG4gICAgICAgICAgICBuYW1lOiBpdGVtLmNoaWxkTmFtZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogaXRlbS5yb290SWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxldCBub2RlU3ViZm9sZGVyczogVHJlZU1vZGVsW10gPSB0aGlzLnRyZWVEYXRhMS5cclxuICAgICAgICBmaWx0ZXIoeCA9PiB4LnBhcmVudElkID09PSBpdGVtLnJvb3RJZClcclxuXHJcbiAgICAgIGlmICh0aGlzLnRyZWVDb25maWcxLnNob3dDaGVja0JveCkge1xyXG4gICAgICAgIG5vZGVDaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICBpZDogeC5pZCxcclxuICAgICAgICAgICAgaXRlbU5hbWU6IHgubmFtZSxcclxuICAgICAgICAgICAgaXRlbVR5cGU6IGl0ZW1UeXBlLFxyXG4gICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uZGlzcGxheUlkLnRvU3RyaW5nKClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG5vZGVDaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUucHVzaCh7XHJcbiAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICBpZDogeC5pZCxcclxuICAgICAgICAgICAgaXRlbU5hbWU6IHgubmFtZSxcclxuICAgICAgICAgICAgaXRlbVR5cGU6IGl0ZW1UeXBlLFxyXG4gICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uZGlzcGxheUlkLnRvU3RyaW5nKClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb24oW25vZGVdLmNvbmNhdChub2RlQ2hpbGRyZW4pKTtcclxuICAgICAgaWYgKG5vZGVTdWJmb2xkZXJzKSB7XHJcbiAgICAgICAgbm9kZVN1YmZvbGRlcnMuZm9yRWFjaChmb2xkZXIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3ROb2RlUmVjdXJzaXZlKGZvbGRlciwgaXRlbVR5cGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlUHJvY2VzcyhleHBhbmQpIHtcclxuICAgIHJldHVybiBleHBhbmQgPyB0aGlzLmRhdGFUeXBlLmFyZWEgOiB0aGlzLmRhdGFUeXBlLnByb2Nlc3M7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tb25DaGVja2VkTm9kZShsaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+KSB7XHJcbiAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb21tb25DaGVja2VkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbLi4udGhpcy5zaW5nbGVEb2N1bWVudExpc3RdO1xyXG5cclxuICAgIGlmIChsaXN0Lmxlbmd0aCkge1xyXG4gICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maW5kSW5kZXgoeCA9PiB4LmlkID09PSBpdGVtLmlkICYmIHgucGFyZW50SWQgPT09IGl0ZW0ucGFyZW50SWQpO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDApIHtcclxuICAgICAgICAgIHRoaXMuY29tbW9uQ2hlY2tlZExpc3QucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSkge1xyXG4gICAgICAgICAgbGV0IHBvc2l0aW9uOiBudW1iZXI7XHJcbiAgICAgICAgICBpZihpdGVtLmV4cGFuZGFibGUpe1xyXG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleChwID0+IHAucm9vdElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHBvc2l0aW9uID4gLTEpe1xyXG4gICAgICAgICAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6ICh0aGlzLml0ZW1UeXBlID09PSAyKSA/IHRoaXMuc2V0VHlwZVByb2Nlc3MoaXRlbS5leHBhbmRhYmxlKSA6IHRoaXMuaXRlbVR5cGUsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiB0aGlzLnRyZWVEYXRhMVtwb3NpdGlvbl0uZGlzcGxheUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgaWYgKGl0ZW0uaWQgJiYgaW5kZXggPCAwICYmICFpdGVtLmV4cGFuZGFibGUgJiYgIXRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleChwID0+IHAuY2hpbGRJZCA9PT0gaXRlbS5pZCAmJiBwLnJvb3RJZCA9PT0gaXRlbS5wYXJlbnRJZCk7XHJcbiAgICAgICAgICBpZiAocG9zaXRpb24gPiAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICBpdGVtTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0aGlzLml0ZW1UeXBlLFxyXG4gICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICAgIHBhcmVudE5hbWU6IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXS5yb290TmFtZSxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbLi4udGhpcy5jaGVja2VkTm9kZUxpc3QsIC4uLnRoaXMuc2luZ2xlUHJvY2Vzc0xpc3RdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREb2N1bWVudENoZWNrZWROb2RlKGxpc3Q6IEFycmF5PFRyZWVGbGF0Tm9kZT4pIHtcclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gW107XHJcbiAgICB0aGlzLmRvY3VtZW50Q2hlY2tlZExpc3QgPSBbXTtcclxuICAgIHRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0ID0gW107XHJcbiAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLnNpbmdsZVByb2Nlc3NMaXN0XTtcclxuXHJcblxyXG4gICAgaWYgKGxpc3QubGVuZ3RoKSB7XHJcbiAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbmRJbmRleCh4ID0+IHguaWQgPT09IGl0ZW0uaWQpO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDApIHtcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRDaGVja2VkTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcclxuICAgICAgICAgIGlmKGl0ZW0uZXhwYW5kYWJsZSl7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHAgPT4gcC5yb290SWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYocG9zaXRpb24gPiAtMSl7XHJcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IGl0ZW0uZXhwYW5kYWJsZSA/IHRoaXMuZGF0YVR5cGUuZm9sZGVyIDogdGhpcy5kYXRhVHlwZS5kb2N1bWVudCxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IHRoaXMudHJlZURhdGEyW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICBwYXJlbnRJZDogaXRlbS5wYXJlbnRJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGlmIChpbmRleCA8IDAgJiYgIWl0ZW0uZXhwYW5kYWJsZSAmJiAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIGlmKHBvc2l0aW9uID4gLTEpe1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICBpdGVtTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0aGlzLmRhdGFUeXBlLmRvY3VtZW50LFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICAgIHBhcmVudE5hbWU6IHRoaXMudHJlZURhdGEyW3Bvc2l0aW9uXS5yb290TmFtZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gWy4uLnRoaXMuY2hlY2tlZE5vZGVMaXN0LCAuLi50aGlzLnNpbmdsZURvY3VtZW50TGlzdF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfTtcclxuXHJcbiAgb25BZGRDbGljaygpIHtcclxuICAgIC8vIGlmICh0aGlzLnRyZWVDb25maWcxLnNob3dDaGVja0JveCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5jaGVja2VkTm9kZUxpc3QpO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2VsZWN0ZWROb2RlKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGdldE9mZnNldEhlaWdodChlbGVtZW50OiBIVE1MRWxlbWVudCwgaW5jbHVkZU1hcmdpbjogYm9vbGVhbik6IG51bWJlciB7XHJcbiAgICBsZXQgZWxtSGVpZ2h0ID0gMCwgZWxtTWFyZ2luID0gMDtcclxuXHJcbiAgICBlbG1IZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIGlmIChpbmNsdWRlTWFyZ2luKSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgICAgIGVsbU1hcmdpbiA9IHBhcnNlRmxvYXQoc3R5bGUubWFyZ2luVG9wLnJlcGxhY2UoJ3B4JywgJycpKSArIHBhcnNlRmxvYXQoc3R5bGUubWFyZ2luQm90dG9tLnJlcGxhY2UoJ3B4JywgJycpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gKGVsbUhlaWdodCArIGVsbU1hcmdpbik7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtQ2hpcE5hbWUoaXRlbTogU2VsZWN0ZWROb2RlKSB7XHJcbiAgICBpZihpdGVtLml0ZW1UeXBlID09PSBEYXRhVHlwZS5jaGVja2xpc3QgfHwgaXRlbS5pdGVtVHlwZSA9PT0gRGF0YVR5cGUuZGV2aWF0aW9uKXtcclxuICAgICAgcmV0dXJuIGl0ZW0ucGFyZW50TmFtZSA/IGAke2l0ZW0ucGFyZW50TmFtZX0vJHtpdGVtLml0ZW1OYW1lfWAgOiBpdGVtLml0ZW1OYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW0uaXRlbU5hbWU7XHJcbiAgfVxyXG5cclxuICBpc0VsbGlwc2lzQWN0aXZlKGU6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZSA/IChlLmNsaWVudFdpZHRoIDwgZS5zY3JvbGxXaWR0aCkgOiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
@@ -92,9 +92,10 @@ export class QMSToolTipRendererDirective {
92
92
  */
93
93
  show() {
94
94
  //attach the component if it has not already attached to the overlay
95
- if (this.text && this._overlayRef && !this._overlayRef.hasAttached()) {
95
+ if ((this.text || this.contentTemplate) && this._overlayRef && !this._overlayRef.hasAttached()) {
96
96
  const tooltipRef = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));
97
- tooltipRef.instance.text = this.text;
97
+ if (this.text)
98
+ tooltipRef.instance.text = this.text;
98
99
  if (this.mode) {
99
100
  tooltipRef.instance.mode = this.mode;
100
101
  }
@@ -147,4 +148,4 @@ QMSToolTipRendererDirective.propDecorators = {
147
148
  show: [{ type: HostListener, args: ['focus',] }, { type: HostListener, args: ['mouseenter',] }],
148
149
  hide: [{ type: HostListener, args: ['focusout',] }, { type: HostListener, args: ['mouseleave',] }]
149
150
  };
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1yZW5kZXJlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXJlbmRlcmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzlILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUt2RSxNQUFNLE9BQU8sMkJBQTJCO0lBZ0JwQyxZQUFvQixRQUFpQixFQUN6Qix1QkFBK0MsRUFDL0MsV0FBdUI7UUFGZixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ3pCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFoQm5DOzs7V0FHRztRQUNNLGdCQUFXLEdBQVksSUFBSSxDQUFDO0lBWUUsQ0FBQztJQUV4Qzs7T0FFRztJQUNILFFBQVE7UUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUI7YUFDOUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUNyQyxhQUFhLENBQUMsQ0FBQztnQkFDWixPQUFPLEVBQUUsUUFBUTtnQkFDakIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsQ0FBQzthQUNi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O0lBRUQ7Ozs7OztPQU1HO0lBQ0gsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQzs7O1lBcEpKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzdCOzs7WUFQbUQsT0FBTztZQUFFLHNCQUFzQjtZQUVqRCxVQUFVOzs7MEJBWXZDLEtBQUs7bUJBQ0wsS0FBSzttQkFFTCxLQUFLLFNBQUMsY0FBYzs4QkFHcEIsS0FBSzt1QkFDTCxLQUFLO21CQXdGTCxZQUFZLFNBQUMsT0FBTyxjQUNwQixZQUFZLFNBQUMsWUFBWTttQkFtQnpCLFlBQVksU0FBQyxVQUFVLGNBQ3ZCLFlBQVksU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXksIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUU1TVG9vbFRpcENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcFwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1txbXMtdG9vbC10aXBdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUU1TVG9vbFRpcFJlbmRlcmVyRGlyZWN0aXZlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHNob3cgdG9vbHRpcCBvciBub3RcclxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc2hvdyB0aGUgdG9vbHRpcCBjb25kaXRpb25hbGx5XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNob3dUb29sVGlwOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIG1vZGU6IHN0cmluZztcclxuICAgIC8vSWYgdGhpcyBpcyBzcGVjaWZpZWQgdGhlbiBzcGVjaWZpZWQgdGV4dCB3aWxsIGJlIHNob3dpbiBpbiB0aGUgdG9vbHRpcFxyXG4gICAgQElucHV0KGBxbXMtdG9vbC10aXBgKSB0ZXh0OiBzdHJpbmc7XHJcblxyXG4gICAgLy9JZiB0aGlzIGlzIHNwZWNpZmllZCB0aGVuIHNwZWNpZmllZCB0ZW1wbGF0ZSB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSB0b29sdGlwXHJcbiAgICBASW5wdXQoKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxyXG4gICAgICAgIHByaXZhdGUgX292ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0IGxpZmUgY3ljbGUgZXZlbnQgaGFuZGxlclxyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNob3dUb29sVGlwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheVBvc2l0aW9uQnVpbGRlclxyXG4gICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgICAgICAgICAgIG9mZnNldFk6IDUsXHJcbiAgICAgICAgICAgIH1dKTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgY2FzZSAnbGVmdCc6IHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5UG9zaXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZilcclxuICAgICAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFg6IC0xMCxcclxuICAgICAgICAgICAgICAgICAgICB9XSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdyaWdodCc6IHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5UG9zaXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZilcclxuICAgICAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFg6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgIH1dKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6IHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5UG9zaXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZWxlbWVudFJlZilcclxuICAgICAgICAgICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRZOiAtMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFg6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgfV0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzoge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRYOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgfV0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7IHBvc2l0aW9uU3RyYXRlZ3kgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBtb3VzZSBlbnRlcnMgaW4gdGhlIEhvc3QgZWxlbWVudFxyXG4gICAgICogaS5lLiB3aGVyZSB0aGlzIGRpcmVjdGl2ZSBpcyBhcHBsaWVkXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIHNob3cgdGhlIHRvb2x0aXAgYnkgaW5zdGFudGlhdGluZyB0aGUgTWNUb29sVGlwQ29tcG9uZW50IGFuZCBhdHRhY2hpbmcgdG8gdGhlIG92ZXJsYXlcclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXHJcbiAgICBzaG93KCkge1xyXG4gICAgICAgIC8vYXR0YWNoIHRoZSBjb21wb25lbnQgaWYgaXQgaGFzIG5vdCBhbHJlYWR5IGF0dGFjaGVkIHRvIHRoZSBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMudGV4dCAmJiB0aGlzLl9vdmVybGF5UmVmICYmICF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdG9vbHRpcFJlZjogQ29tcG9uZW50UmVmPFFNU1Rvb2xUaXBDb21wb25lbnQ+XHJcbiAgICAgICAgICAgICAgICA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoUU1TVG9vbFRpcENvbXBvbmVudCkpO1xyXG4gICAgICAgICAgICB0b29sdGlwUmVmLmluc3RhbmNlLnRleHQgPSB0aGlzLnRleHQ7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRvb2x0aXBSZWYuaW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b29sdGlwUmVmLmluc3RhbmNlLmNvbnRlbnRUZW1wbGF0ZSA9IHRoaXMuY29udGVudFRlbXBsYXRlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdoZW4gbW91c2UgZ29lcyBvdXQgb2YgdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogaS5lLiB3aGVyZSB0aGlzIGRpcmVjdGl2ZSBpcyBhcHBsaWVkXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGNsb3NlIHRoZSB0b29sdGlwIGJ5IGRldGFjaGluZyB0aGUgb3ZlcmxheSBmcm9tIHRoZSB2aWV3XHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gICAgaGlkZSgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlVG9vbFRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveSBsaWZlY3ljbGUgZXZlbnQgaGFuZGxlclxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBtYWtlIHN1cmUgdG8gY2xvc2UgdGhlIHRvb2x0aXBcclxuICAgICAqIEl0IHdpbGwgYmUgbmVlZGVkIGluIGNhc2Ugd2hlbiBhcHAgaXMgbmF2aWdhdGluZyB0byBkaWZmZXJlbnQgcGFnZVxyXG4gICAgICogYW5kIHVzZXIgaXMgc3RpbGwgc2VlaW5nIHRoZSB0b29sdGlwOyBJbiB0aGF0IGNhc2Ugd2UgZG8gbm90IHdhbnQgdG8gaGFuZyBhcm91bmQgdGhlXHJcbiAgICAgKiB0b29sdGlwIGFmdGVyIHRoZSBwYWdlIFtvbiB3aGljaCB0b29sdGlwIHZpc2libGVdIGlzIGRlc3Ryb3llZFxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlVG9vbFRpcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBjbG9zZSB0aGUgdG9vbHRpcCBieSBkZXRhY2hpbmcgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSBvdmVybGF5XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgY2xvc2VUb29sVGlwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1yZW5kZXJlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLXJlbmRlcmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzlILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUt2RSxNQUFNLE9BQU8sMkJBQTJCO0lBZ0JwQyxZQUFvQixRQUFpQixFQUN6Qix1QkFBK0MsRUFDL0MsV0FBdUI7UUFGZixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ3pCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFoQm5DOzs7V0FHRztRQUNNLGdCQUFXLEdBQVksSUFBSSxDQUFDO0lBWUUsQ0FBQztJQUV4Qzs7T0FFRztJQUNILFFBQVE7UUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUI7YUFDOUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUNyQyxhQUFhLENBQUMsQ0FBQztnQkFDWixPQUFPLEVBQUUsUUFBUTtnQkFDakIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsQ0FBQzthQUNi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O09BSUc7SUFHSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDN0I7SUFDTCxDQUFDOzs7WUFySkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0I7YUFDN0I7OztZQVBtRCxPQUFPO1lBQUUsc0JBQXNCO1lBRWpELFVBQVU7OzswQkFZdkMsS0FBSzttQkFDTCxLQUFLO21CQUVMLEtBQUssU0FBQyxjQUFjOzhCQUdwQixLQUFLO3VCQUNMLEtBQUs7bUJBd0ZMLFlBQVksU0FBQyxPQUFPLGNBQ3BCLFlBQVksU0FBQyxZQUFZO21CQW9CekIsWUFBWSxTQUFDLFVBQVUsY0FDdkIsWUFBWSxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBRTVNUb29sVGlwQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3Ftcy10b29sLXRpcF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNUb29sVGlwUmVuZGVyZXJEaXJlY3RpdmUge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyB3aWxsIGJlIHVzZWQgdG8gc2hvdyB0b29sdGlwIG9yIG5vdFxyXG4gICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBzaG93IHRoZSB0b29sdGlwIGNvbmRpdGlvbmFsbHlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc2hvd1Rvb2xUaXA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgbW9kZTogc3RyaW5nO1xyXG4gICAgLy9JZiB0aGlzIGlzIHNwZWNpZmllZCB0aGVuIHNwZWNpZmllZCB0ZXh0IHdpbGwgYmUgc2hvd2luIGluIHRoZSB0b29sdGlwXHJcbiAgICBASW5wdXQoYHFtcy10b29sLXRpcGApIHRleHQ6IHN0cmluZztcclxuXHJcbiAgICAvL0lmIHRoaXMgaXMgc3BlY2lmaWVkIHRoZW4gc3BlY2lmaWVkIHRlbXBsYXRlIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIHRvb2x0aXBcclxuICAgIEBJbnB1dCgpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXHJcbiAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheVBvc2l0aW9uQnVpbGRlcjogT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXQgbGlmZSBjeWNsZSBldmVudCBoYW5kbGVyXHJcbiAgICAgKi9cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc2hvd1Rvb2xUaXApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5UG9zaXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2VsZW1lbnRSZWYpXHJcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFt7XHJcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogNSxcclxuICAgICAgICAgICAgfV0pO1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlICdsZWZ0Jzoge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogLTEwLFxyXG4gICAgICAgICAgICAgICAgICAgIH1dKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0Jzoge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgfV0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAndG9wJzoge1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcclxuICAgICAgICAgICAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxyXG4gICAgICAgICAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IC0xMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcclxuICAgICAgICAgICAgICAgICAgICB9XSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdib3R0b20nOiB7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheVBvc2l0aW9uQnVpbGRlclxyXG4gICAgICAgICAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2VsZW1lbnRSZWYpXHJcbiAgICAgICAgICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMTAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFg6IDBcclxuICAgICAgICAgICAgICAgICAgICB9XSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHsgcG9zaXRpb25TdHJhdGVneSB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIG1vdXNlIGVudGVycyBpbiB0aGUgSG9zdCBlbGVtZW50XHJcbiAgICAgKiBpLmUuIHdoZXJlIHRoaXMgZGlyZWN0aXZlIGlzIGFwcGxpZWRcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgc2hvdyB0aGUgdG9vbHRpcCBieSBpbnN0YW50aWF0aW5nIHRoZSBNY1Rvb2xUaXBDb21wb25lbnQgYW5kIGF0dGFjaGluZyB0byB0aGUgb3ZlcmxheVxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcclxuICAgIHNob3coKSB7XHJcbiAgICAgICAgLy9hdHRhY2ggdGhlIGNvbXBvbmVudCBpZiBpdCBoYXMgbm90IGFscmVhZHkgYXR0YWNoZWQgdG8gdGhlIG92ZXJsYXlcclxuICAgICAgICBpZiAoKHRoaXMudGV4dCB8fCB0aGlzLmNvbnRlbnRUZW1wbGF0ZSkgJiYgdGhpcy5fb3ZlcmxheVJlZiAmJiAhdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXBSZWY6IENvbXBvbmVudFJlZjxRTVNUb29sVGlwQ29tcG9uZW50PlxyXG4gICAgICAgICAgICAgICAgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKFFNU1Rvb2xUaXBDb21wb25lbnQpKTtcclxuICAgICAgICAgICAgaWYodGhpcy50ZXh0KVxyXG4gICAgICAgICAgICAgICAgdG9vbHRpcFJlZi5pbnN0YW5jZS50ZXh0ID0gdGhpcy50ZXh0O1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0b29sdGlwUmVmLmluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG9vbHRpcFJlZi5pbnN0YW5jZS5jb250ZW50VGVtcGxhdGUgPSB0aGlzLmNvbnRlbnRUZW1wbGF0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB3aGVuIG1vdXNlIGdvZXMgb3V0IG9mIHRoZSBob3N0IGVsZW1lbnRcclxuICAgICAqIGkuZS4gd2hlcmUgdGhpcyBkaXJlY3RpdmUgaXMgYXBwbGllZFxyXG4gICAgICogVGhpcyBtZXRob2Qgd2lsbCBjbG9zZSB0aGUgdG9vbHRpcCBieSBkZXRhY2hpbmcgdGhlIG92ZXJsYXkgZnJvbSB0aGUgdmlld1xyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICAgIGhpZGUoKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRvb2xUaXAoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3kgbGlmZWN5Y2xlIGV2ZW50IGhhbmRsZXJcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgbWFrZSBzdXJlIHRvIGNsb3NlIHRoZSB0b29sdGlwXHJcbiAgICAgKiBJdCB3aWxsIGJlIG5lZWRlZCBpbiBjYXNlIHdoZW4gYXBwIGlzIG5hdmlnYXRpbmcgdG8gZGlmZmVyZW50IHBhZ2VcclxuICAgICAqIGFuZCB1c2VyIGlzIHN0aWxsIHNlZWluZyB0aGUgdG9vbHRpcDsgSW4gdGhhdCBjYXNlIHdlIGRvIG5vdCB3YW50IHRvIGhhbmcgYXJvdW5kIHRoZVxyXG4gICAgICogdG9vbHRpcCBhZnRlciB0aGUgcGFnZSBbb24gd2hpY2ggdG9vbHRpcCB2aXNpYmxlXSBpcyBkZXN0cm95ZWRcclxuICAgICAqL1xyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVRvb2xUaXAoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgY2xvc2UgdGhlIHRvb2x0aXAgYnkgZGV0YWNoaW5nIHRoZSBjb21wb25lbnQgZnJvbSB0aGUgb3ZlcmxheVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNsb3NlVG9vbFRpcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -1694,9 +1694,10 @@ class QMSToolTipRendererDirective {
1694
1694
  */
1695
1695
  show() {
1696
1696
  //attach the component if it has not already attached to the overlay
1697
- if (this.text && this._overlayRef && !this._overlayRef.hasAttached()) {
1697
+ if ((this.text || this.contentTemplate) && this._overlayRef && !this._overlayRef.hasAttached()) {
1698
1698
  const tooltipRef = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));
1699
- tooltipRef.instance.text = this.text;
1699
+ if (this.text)
1700
+ tooltipRef.instance.text = this.text;
1700
1701
  if (this.mode) {
1701
1702
  tooltipRef.instance.mode = this.mode;
1702
1703
  }
@@ -3987,7 +3988,7 @@ class RelatedPopupComponent {
3987
3988
  onSearchRelated(_val) {
3988
3989
  this.filteredOptions = [];
3989
3990
  if (typeof (_val) === 'object') {
3990
- return;
3991
+ this.myControl.setValue('');
3991
3992
  }
3992
3993
  else if (typeof (_val) === 'string') {
3993
3994
  if (!!_val) {