cps-ui-kit 0.81.0 → 0.82.0

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.
@@ -214,22 +214,22 @@ export class CpsMenuComponent {
214
214
  case 'bl':
215
215
  return {
216
216
  top: Math.max(targetOffset.top + target.offsetHeight - element.offsetHeight, 0),
217
- left: Math.max(0, targetOffset.left - element.offsetWidth - 1)
217
+ left: Math.max(0, targetOffset.left - element.offsetWidth)
218
218
  };
219
219
  case 'br':
220
220
  return {
221
221
  top: Math.max(targetOffset.top + target.offsetHeight - element.offsetHeight, 0),
222
- left: Math.min(targetOffset.left + target.offsetWidth + 1, window.innerWidth - element.offsetWidth)
222
+ left: Math.min(targetOffset.left + target.offsetWidth, window.innerWidth - element.offsetWidth)
223
223
  };
224
224
  case 'tl':
225
225
  return {
226
226
  top: Math.min(targetOffset.top, window.innerHeight - element.offsetHeight),
227
- left: Math.max(0, targetOffset.left - element.offsetWidth - 1)
227
+ left: Math.max(0, targetOffset.left - element.offsetWidth)
228
228
  };
229
229
  case 'tr':
230
230
  return {
231
231
  top: Math.min(targetOffset.top, window.innerHeight - element.offsetHeight),
232
- left: Math.min(targetOffset.left + target.offsetWidth + 1, window.innerWidth - element.offsetWidth)
232
+ left: Math.min(targetOffset.left + target.offsetWidth, window.innerWidth - element.offsetWidth)
233
233
  };
234
234
  case 'default':
235
235
  default:
@@ -472,4 +472,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
472
472
  }], contentClicked: [{
473
473
  type: Output
474
474
  }] } });
475
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFFUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sV0FBVyxFQUVYLGlCQUFpQixFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlDLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBcURsRSxNQUFNLE9BQU8sZ0JBQWdCO0lBMEMzQixrREFBa0Q7SUFDbEQsWUFDNEIsUUFBa0IsRUFDZixVQUFlLEVBQ3JDLEVBQWMsRUFDZCxRQUFtQixFQUNuQixFQUFxQixFQUNwQixJQUFZLEVBQ2IsTUFBcUIsRUFDckIsY0FB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NUNaLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgQW5pbWF0aW9uRXZlbnQsXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBWaWV3UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UsIFByaW1lTkdDb25maWcsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IENvbm5lY3RlZE92ZXJsYXlTY3JvbGxIYW5kbGVyLCBEb21IYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuaW1wb3J0IHsgWkluZGV4VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5cbnR5cGUgTnVsbGFibGU8VCA9IHZvaWQ+ID0gVCB8IG51bGwgfCB1bmRlZmluZWQ7XG50eXBlIFZvaWRMaXN0ZW5lciA9ICgpID0+IHZvaWQgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBDcHNNZW51SXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgYWN0aW9uPzogKGV2ZW50PzogYW55KSA9PiB2b2lkO1xuICBpY29uPzogc3RyaW5nO1xuICBkZXNjPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIHRhcmdldD86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3BzTWVudUF0dGFjaFBvc2l0aW9uID0gJ3RyJyB8ICdicicgfCAndGwnIHwgJ2JsJyB8ICdkZWZhdWx0JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZSwgQ3BzSWNvbkNvbXBvbmVudCwgUm91dGVyTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdjcHMtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdhbmltYXRpb24nLCBbXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3ZvaWQnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVZKDAuOCknLFxuICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2Nsb3NlJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWSgwLjgpJyxcbiAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgc3RhdGUoXG4gICAgICAgICdvcGVuJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLFxuICAgICAgICAgIG9wYWNpdHk6IDFcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IG9wZW4nLCBhbmltYXRlKCd7e3Nob3dUcmFuc2l0aW9uUGFyYW1zfX0nKSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlJywgYW5pbWF0ZSgne3toaWRlVHJhbnNpdGlvblBhcmFtc319JykpXG4gICAgXSlcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ3BzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaGVhZGVyID0gJyc7XG4gIEBJbnB1dCgpIGl0ZW1zOiBDcHNNZW51SXRlbVtdID0gW107XG4gIEBJbnB1dCgpIHdpdGhBcnJvdyA9IHRydWU7XG4gIEBJbnB1dCgpIGNvbXByZXNzZWQgPSBmYWxzZTsgLy8gcHJlcGFyZWQtY29sb3JlZCwgd2l0aG91dCBoZWFkZXIgYW5kIGl0ZW1zIGRlc2NyaXB0aW9uXG4gIEBJbnB1dCgpIGZvY3VzT25TaG93ID0gdHJ1ZTtcbiAgQElucHV0KCkgcGVyc2lzdGVudCA9IGZhbHNlO1xuICBASW5wdXQoKSBjb250YWluZXJDbGFzcyA9ICcnO1xuICBASW5wdXQoKSBzaG93VHJhbnNpdGlvbk9wdGlvbnMgPSAnLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gIEBJbnB1dCgpIGhpZGVUcmFuc2l0aW9uT3B0aW9ucyA9ICcuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJztcblxuICBAT3V0cHV0KCkgbWVudVNob3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbWVudUhpZGRlbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGJlZm9yZU1lbnVIaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjb250ZW50Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB3aXRoSWNvbnMgPSB0cnVlO1xuICBhdXRvWkluZGV4ID0gdHJ1ZTtcbiAgYmFzZVpJbmRleCA9IDA7XG4gIGRpc21pc3NhYmxlID0gdHJ1ZTtcbiAgY29udGFpbmVyOiBOdWxsYWJsZTxIVE1MRGl2RWxlbWVudD47XG4gIG92ZXJsYXlWaXNpYmxlID0gZmFsc2U7XG4gIHJlbmRlciA9IGZhbHNlO1xuICBpc092ZXJsYXlBbmltYXRpb25JblByb2dyZXNzID0gZmFsc2U7XG4gIHNlbGZDbGljayA9IGZhbHNlO1xuICB0YXJnZXQ6IGFueTtcbiAgc2Nyb2xsSGFuZGxlcjogTnVsbGFibGU8Q29ubmVjdGVkT3ZlcmxheVNjcm9sbEhhbmRsZXI+O1xuICBwb3NpdGlvbjogQ3BzTWVudUF0dGFjaFBvc2l0aW9uID0gJ2RlZmF1bHQnO1xuXG4gIGRvY3VtZW50UmVzaXplTGlzdGVuZXIhOiBWb2lkTGlzdGVuZXIgfCBudWxsO1xuICBvdmVybGF5RXZlbnRMaXN0ZW5lcjogTnVsbGFibGU8KGV2ZW50PzogYW55KSA9PiB2b2lkPjtcbiAgZG9jdW1lbnRDbGlja0xpc3RlbmVyITogVm9pZExpc3RlbmVyIHwgbnVsbDtcbiAgZG9jdW1lbnRLZXlkb3duTGlzdGVuZXIhOiBWb2lkTGlzdGVuZXIgfCBudWxsO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIGRlc3Ryb3lDYWxsYmFjazogTnVsbGFibGU8RnVuY3Rpb24+O1xuICBvdmVybGF5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgdGFyZ2V0UmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGl0ZW1zQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jb25zdHJ1Y3RvclxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwdWJsaWMgY29uZmlnOiBQcmltZU5HQ29uZmlnLFxuICAgIHB1YmxpYyBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy50YXJnZXRSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICBpZiAodGhpcy50YXJnZXQgJiYgZW50cnkpIHRoaXMuYWxpZ24oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcHJlc3NlZCkgdGhpcy53aXRoSWNvbnMgPSB0aGlzLml0ZW1zLnNvbWUoKGl0bSkgPT4gaXRtLmljb24pO1xuICAgIHRoaXMuX3NldEl0ZW1zQ2xhc3NlcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdub25lJyk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRJdGVtc0NsYXNzZXMoKSB7XG4gICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoIDwgMSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pdGVtc0NsYXNzZXMgPSB0aGlzLml0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IFsnY3BzLW1lbnUtaXRlbSddO1xuICAgICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHJlcy5wdXNoKCdjcHMtbWVudS1pdGVtLWRpc2FibGVkJyk7XG4gICAgICBpZiAoaW5kZXggPT09IDApIHJlcy5wdXNoKCdjcHMtbWVudS1pdGVtLWZpcnN0Jyk7XG4gICAgICBpZiAodGhpcy5jb21wcmVzc2VkKSByZXMucHVzaCgnY3BzLW1lbnUtaXRlbS1jb21wcmVzc2VkJyk7XG4gICAgICBpZiAodGhpcy5jb21wcmVzc2VkICYmIHRoaXMud2l0aEljb25zKVxuICAgICAgICByZXMucHVzaCgnY3BzLW1lbnUtaXRlbS1jb21wcmVzc2VkLXdpdGgtaWNvbnMnKTtcblxuICAgICAgcmV0dXJuIHJlcy5qb2luKCcgJyk7XG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGUoZXZlbnQ/OiBhbnksIHRhcmdldD86IGFueSwgcG9zPzogQ3BzTWVudUF0dGFjaFBvc2l0aW9uKSB7XG4gICAgaWYgKHRoaXMuaXNPdmVybGF5QW5pbWF0aW9uSW5Qcm9ncmVzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlKSB7XG4gICAgICBpZiAodGhpcy5oYXNUYXJnZXRDaGFuZ2VkKGV2ZW50LCB0YXJnZXQpKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveUNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvdyhudWxsLCB0YXJnZXQgfHwgZXZlbnQ/LmN1cnJlbnRUYXJnZXQgfHwgZXZlbnQ/LnRhcmdldCwgcG9zKTtcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvdyhldmVudCwgdGFyZ2V0LCBwb3MpO1xuICAgIH1cbiAgfVxuXG4gIHNob3coZXZlbnQ/OiBhbnksIHRhcmdldD86IGFueSwgcG9zPzogQ3BzTWVudUF0dGFjaFBvc2l0aW9uKSB7XG4gICAgdGFyZ2V0ICYmIGV2ZW50ICYmIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmlzT3ZlcmxheUFuaW1hdGlvbkluUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldCA9IHRhcmdldCB8fCBldmVudD8uY3VycmVudFRhcmdldCB8fCBldmVudD8udGFyZ2V0O1xuICAgIGlmICh0aGlzLnRhcmdldCkgdGhpcy50YXJnZXRSZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudGFyZ2V0KTtcbiAgICB0aGlzLm92ZXJsYXlWaXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnJlbmRlciA9IHRydWU7XG4gICAgdGhpcy5wb3NpdGlvbiA9IHBvcyB8fCAnZGVmYXVsdCc7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5vdmVybGF5VmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc1Zpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheVZpc2libGU7XG4gIH1cblxuICBvbkl0ZW1DbGljayhldmVudDogYW55LCBpdGVtOiBDcHNNZW51SXRlbSkge1xuICAgIGlmIChpdGVtLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKGl0ZW0uYWN0aW9uKSB7XG4gICAgICBpdGVtLmFjdGlvbih7XG4gICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICBpdGVtXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBiaW5kRG9jdW1lbnRLZXlkb3duTGlzdGVuZXIoKSB7XG4gICAgaWYgKERvbUhhbmRsZXIuaXNUb3VjaERldmljZSgpKSByZXR1cm47XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICghdGhpcy5kb2N1bWVudEtleWRvd25MaXN0ZW5lciAmJiB0aGlzLmRpc21pc3NhYmxlKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZG9jdW1lbnRUYXJnZXQ6IGFueSA9IHRoaXMuZWxcbiAgICAgICAgICAgID8gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm93bmVyRG9jdW1lbnRcbiAgICAgICAgICAgIDogdGhpcy5kb2N1bWVudDtcblxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRLZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGRvY3VtZW50VGFyZ2V0LFxuICAgICAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIC8vIGVzY2FwZVxuICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlKSB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVuYmluZERvY3VtZW50S2V5ZG93bkxpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLmRvY3VtZW50S2V5ZG93bkxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50S2V5ZG93bkxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRvY3VtZW50S2V5ZG93bkxpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBiaW5kRG9jdW1lbnRDbGlja0xpc3RlbmVyKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBpZiAoIXRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyICYmIHRoaXMuZGlzbWlzc2FibGUpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBkb2N1bWVudEV2ZW50ID0gRG9tSGFuZGxlci5pc0lPUygpID8gJ3RvdWNoc3RhcnQnIDogJ2NsaWNrJztcbiAgICAgICAgICBjb25zdCBkb2N1bWVudFRhcmdldDogYW55ID0gdGhpcy5lbFxuICAgICAgICAgICAgPyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudFxuICAgICAgICAgICAgOiB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgIGRvY3VtZW50VGFyZ2V0LFxuICAgICAgICAgICAgZG9jdW1lbnRFdmVudCxcbiAgICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIXRoaXMucGVyc2lzdGVudCAmJlxuICAgICAgICAgICAgICAgICF0aGlzLmNvbnRhaW5lcj8uY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0ICE9PSBldmVudC50YXJnZXQgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy50YXJnZXQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICF0aGlzLnNlbGZDbGlja1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5zZWxmQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1bmJpbmREb2N1bWVudENsaWNrTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgICAgdGhpcy5zZWxmQ2xpY2sgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvbk92ZXJsYXlDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuYWRkKHtcbiAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgdGFyZ2V0OiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZkNsaWNrID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQ29udGVudENsaWNrKCkge1xuICAgIHRoaXMuc2VsZkNsaWNrID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29udGVudENsaWNrZWQuZW1pdCgpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBoYXNUYXJnZXRDaGFuZ2VkKGV2ZW50PzogYW55LCB0YXJnZXQ/OiBhbnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy50YXJnZXQgJiZcbiAgICAgIHRoaXMudGFyZ2V0ICE9PSAodGFyZ2V0IHx8IGV2ZW50Py5jdXJyZW50VGFyZ2V0IHx8IGV2ZW50Py50YXJnZXQpXG4gICAgKTtcbiAgfVxuXG4gIGFwcGVuZENvbnRhaW5lcigpIHtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgdGhpcy5jb250YWluZXIpO1xuICB9XG5cbiAgcmVzdG9yZUFwcGVuZCgpIHtcbiAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmNvbnRhaW5lcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9zaXRpb24oZWxlbWVudDogYW55LCB0YXJnZXQ6IGFueSkge1xuICAgIGNvbnN0IGdldFBvcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldE9mZnNldCA9IERvbUhhbmRsZXIuZ2V0T2Zmc2V0KHRhcmdldCk7XG4gICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgICAgY2FzZSAnYmwnOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6IE1hdGgubWF4KFxuICAgICAgICAgICAgICB0YXJnZXRPZmZzZXQudG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAtIGVsZW1lbnQub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGVmdDogTWF0aC5tYXgoMCwgdGFyZ2V0T2Zmc2V0LmxlZnQgLSBlbGVtZW50Lm9mZnNldFdpZHRoIC0gMSlcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdicic6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogTWF0aC5tYXgoXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC50b3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsZWZ0OiBNYXRoLm1pbihcbiAgICAgICAgICAgICAgdGFyZ2V0T2Zmc2V0LmxlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggKyAxLFxuICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCAtIGVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0bCc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogTWF0aC5taW4oXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC50b3AsXG4gICAgICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGVmdDogTWF0aC5tYXgoMCwgdGFyZ2V0T2Zmc2V0LmxlZnQgLSBlbGVtZW50Lm9mZnNldFdpZHRoIC0gMSlcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0cic6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogTWF0aC5taW4oXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC50b3AsXG4gICAgICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGVmdDogTWF0aC5taW4oXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC5sZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoICsgMSxcbiAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggLSBlbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgICAgICAgICApXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgRG9tSGFuZGxlci5hYnNvbHV0ZVBvc2l0aW9uKGVsZW1lbnQsIHRhcmdldCk7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCFlbGVtZW50IHx8ICF0YXJnZXQpIHJldHVybjtcbiAgICBjb25zdCBwb3MgPSBnZXRQb3MoKTtcbiAgICBpZiAocG9zKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IChwb3MudG9wIHx8IDApICsgJ3B4JztcbiAgICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IChwb3MubGVmdCB8fCAwKSArICdweCc7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24oKSB7XG4gICAgaWYgKHRoaXMuYXV0b1pJbmRleCkge1xuICAgICAgWkluZGV4VXRpbHMuc2V0KFxuICAgICAgICAnb3ZlcmxheScsXG4gICAgICAgIHRoaXMuY29udGFpbmVyLFxuICAgICAgICB0aGlzLmJhc2VaSW5kZXggKyB0aGlzLmNvbmZpZy56SW5kZXgub3ZlcmxheVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRQb3NpdGlvbih0aGlzLmNvbnRhaW5lciwgdGhpcy50YXJnZXQpO1xuXG4gICAgY29uc3QgY29udGFpbmVyT2Zmc2V0ID0gRG9tSGFuZGxlci5nZXRPZmZzZXQodGhpcy5jb250YWluZXIpO1xuICAgIGNvbnN0IHRhcmdldE9mZnNldCA9IERvbUhhbmRsZXIuZ2V0T2Zmc2V0KHRoaXMudGFyZ2V0KTtcblxuICAgIGlmICh0aGlzLndpdGhBcnJvdykge1xuICAgICAgY29uc3QgYm9yZGVyUmFkaXVzID1cbiAgICAgICAgdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlld1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgPy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuY29udGFpbmVyISlcbiAgICAgICAgICA/LmdldFByb3BlcnR5VmFsdWUoJ2JvcmRlci1yYWRpdXMnKSB8fCAnMCc7XG5cbiAgICAgIGxldCBhcnJvd0xlZnQgPSAwO1xuXG4gICAgICBpZiAoY29udGFpbmVyT2Zmc2V0LmxlZnQgPCB0YXJnZXRPZmZzZXQubGVmdCkge1xuICAgICAgICBhcnJvd0xlZnQgPVxuICAgICAgICAgIDIwICtcbiAgICAgICAgICB0YXJnZXRPZmZzZXQubGVmdCAtXG4gICAgICAgICAgY29udGFpbmVyT2Zmc2V0LmxlZnQgLVxuICAgICAgICAgIHBhcnNlRmxvYXQoYm9yZGVyUmFkaXVzKSAqIDI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuY29udGFpbmVyPy5vZmZzZXRXaWR0aCB8fCAwO1xuICAgICAgICBjb25zdCB0YXJnZXRXaWR0aCA9IHRoaXMudGFyZ2V0Py5vZmZzZXRXaWR0aCB8fCAwO1xuICAgICAgICBhcnJvd0xlZnQgPSBNYXRoLm1pbih0YXJnZXRXaWR0aCAvIDIsIGNvbnRhaW5lcldpZHRoIC8gMik7XG4gICAgICB9XG4gICAgICBhcnJvd0xlZnQgPSBNYXRoLm1heChhcnJvd0xlZnQsIDEyKTtcbiAgICAgIHRoaXMuY29udGFpbmVyPy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1vdmVybGF5QXJyb3dMZWZ0JywgYCR7YXJyb3dMZWZ0fXB4YCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5lck9mZnNldC50b3AgPCB0YXJnZXRPZmZzZXQudG9wKSB7XG4gICAgICBEb21IYW5kbGVyLmFkZENsYXNzKHRoaXMuY29udGFpbmVyLCAnY3BzLW1lbnUtY29udGFpbmVyLWZsaXBwZWQnKTtcbiAgICB9XG4gIH1cblxuICBvbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAnY2xvc2UnKSB7XG4gICAgICB0aGlzLmJlZm9yZU1lbnVIaWRkZW4uZW1pdChudWxsKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdvcGVuJykge1xuICAgICAgdGhpcy5jb250YWluZXIgPSBldmVudC5lbGVtZW50O1xuICAgICAgdGhpcy5hcHBlbmRDb250YWluZXIoKTtcbiAgICAgIHRoaXMuYWxpZ24oKTtcbiAgICAgIHRoaXMuYmluZERvY3VtZW50Q2xpY2tMaXN0ZW5lcigpO1xuICAgICAgdGhpcy5iaW5kRG9jdW1lbnRLZXlkb3duTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuYmluZFNjcm9sbExpc3RlbmVyKCk7XG5cbiAgICAgIGlmICh0aGlzLmZvY3VzT25TaG93KSB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5vdmVybGF5RXZlbnRMaXN0ZW5lciA9IChlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiB0aGlzLmNvbnRhaW5lci5jb250YWlucyhlLnRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLnNlbGZDbGljayA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY2xpY2tPYnNlcnZhYmxlLnN1YnNjcmliZShcbiAgICAgICAgdGhpcy5vdmVybGF5RXZlbnRMaXN0ZW5lclxuICAgICAgKTtcbiAgICAgIHRoaXMubWVudVNob3duLmVtaXQobnVsbCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc092ZXJsYXlBbmltYXRpb25JblByb2dyZXNzID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQudG9TdGF0ZSkge1xuICAgICAgY2FzZSAndm9pZCc6XG4gICAgICAgIGlmICh0aGlzLmRlc3Ryb3lDYWxsYmFjaykge1xuICAgICAgICAgIHRoaXMuZGVzdHJveUNhbGxiYWNrKCk7XG4gICAgICAgICAgdGhpcy5kZXN0cm95Q2FsbGJhY2sgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIGlmICh0aGlzLmF1dG9aSW5kZXgpIHtcbiAgICAgICAgICBaSW5kZXhVdGlscy5jbGVhcih0aGlzLmNvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vdmVybGF5U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ29udGFpbmVyRGVzdHJveSgpO1xuICAgICAgICB0aGlzLm1lbnVIaWRkZW4uZW1pdCh7fSk7XG4gICAgICAgIHRoaXMucmVuZGVyID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuaXNPdmVybGF5QW5pbWF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgY29uc3QgZm9jdXNhYmxlID0gRG9tSGFuZGxlci5maW5kU2luZ2xlKHRoaXMuY29udGFpbmVyLCAnW2F1dG9mb2N1c10nKTtcbiAgICBpZiAoZm9jdXNhYmxlKSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZvY3VzYWJsZS5mb2N1cygpLCA1KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uV2luZG93UmVzaXplKCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlICYmICFEb21IYW5kbGVyLmlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXIoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICghdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgYXMgV2luZG93O1xuICAgICAgICB0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICB3aW5kb3csXG4gICAgICAgICAgJ3Jlc2l6ZScsXG4gICAgICAgICAgdGhpcy5vbldpbmRvd1Jlc2l6ZS5iaW5kKHRoaXMpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdW5iaW5kRG9jdW1lbnRSZXNpemVMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYmluZFNjcm9sbExpc3RlbmVyKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBpZiAoIXRoaXMuc2Nyb2xsSGFuZGxlcikge1xuICAgICAgICB0aGlzLnNjcm9sbEhhbmRsZXIgPSBuZXcgQ29ubmVjdGVkT3ZlcmxheVNjcm9sbEhhbmRsZXIoXG4gICAgICAgICAgdGhpcy50YXJnZXQsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIuYmluZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgdW5iaW5kU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsSGFuZGxlcikge1xuICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyLnVuYmluZFNjcm9sbExpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25Db250YWluZXJEZXN0cm95KCkge1xuICAgIGlmICghKHRoaXMuY2QgYXMgVmlld1JlZikuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLnRhcmdldCA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy51bmJpbmREb2N1bWVudENsaWNrTGlzdGVuZXIoKTtcbiAgICB0aGlzLnVuYmluZERvY3VtZW50S2V5ZG93bkxpc3RlbmVyKCk7XG4gICAgdGhpcy51bmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgdGhpcy51bmJpbmRTY3JvbGxMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsSGFuZGxlcikge1xuICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlciA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udGFpbmVyICYmIHRoaXMuYXV0b1pJbmRleCkge1xuICAgICAgWkluZGV4VXRpbHMuY2xlYXIodGhpcy5jb250YWluZXIpO1xuICAgIH1cblxuICAgIGlmICghKHRoaXMuY2QgYXMgVmlld1JlZikuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLnRhcmdldCA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0cm95Q2FsbGJhY2sgPSBudWxsO1xuICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgdGhpcy5yZXN0b3JlQXBwZW5kKCk7XG4gICAgICB0aGlzLm9uQ29udGFpbmVyRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMudGFyZ2V0UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cInJlbmRlclwiXG4gIGNsYXNzPVwiY3BzLW1lbnUtY29udGFpbmVyXCJcbiAgW25nQ2xhc3NdPVwieyAnY3BzLW1lbnUtbm8tYXJyb3cnOiAhd2l0aEFycm93IH1cIlxuICBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIlxuICAoY2xpY2spPVwib25PdmVybGF5Q2xpY2soJGV2ZW50KVwiXG4gIFtAYW5pbWF0aW9uXT1cIntcbiAgICB2YWx1ZTogb3ZlcmxheVZpc2libGUgPyAnb3BlbicgOiAnY2xvc2UnLFxuICAgIHBhcmFtczoge1xuICAgICAgc2hvd1RyYW5zaXRpb25QYXJhbXM6IHNob3dUcmFuc2l0aW9uT3B0aW9ucyxcbiAgICAgIGhpZGVUcmFuc2l0aW9uUGFyYW1zOiBoaWRlVHJhbnNpdGlvbk9wdGlvbnNcbiAgICB9XG4gIH1cIlxuICAoQGFuaW1hdGlvbi5zdGFydCk9XCJvbkFuaW1hdGlvblN0YXJ0KCRldmVudClcIlxuICAoQGFuaW1hdGlvbi5kb25lKT1cIm9uQW5pbWF0aW9uRW5kKCRldmVudClcIj5cbiAgPGRpdiAobW91c2V1cCk9XCJvbkNvbnRlbnRDbGljaygpXCIgKHRvdWNoZW5kKT1cIm9uQ29udGVudENsaWNrKClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXMubGVuZ3RoIDwgMVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiaXRlbXMubGVuZ3RoID4gMFwiXG4gICAgICBjbGFzcz1cImNwcy1tZW51LWNvbnRlbnRcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnY3BzLW1lbnUtY29udGVudC1jb21wcmVzc2VkJzogY29tcHJlc3NlZCB9XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyICYmICFjb21wcmVzc2VkXCIgY2xhc3M9XCJjcHMtbWVudS1oZWFkZXJcIj5cbiAgICAgICAge3sgaGVhZGVyIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiIWl0ZW0udXJsXCJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbXNDbGFzc2VzW2ldXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgaXRlbTogaXRlbVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiaXRlbS51cmwgJiYgaXRlbS51cmwuc3RhcnRzV2l0aCgnLycpXCJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxuICAgICAgICAgIFt0YXJnZXRdPVwiaXRlbS50YXJnZXRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW1zQ2xhc3Nlc1tpXVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cIml0ZW0udXJsICYmICFpdGVtLnVybC5zdGFydHNXaXRoKCcvJylcIlxuICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXG4gICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJpdGVtc0NsYXNzZXNbaV1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBpdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2E+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJjcHMtbWVudS1pdGVtLWljb25cIiAqbmdJZj1cIndpdGhJY29uc1wiPlxuICAgIDxjcHMtaWNvblxuICAgICAgKm5nSWY9XCJpdGVtLmljb25cIlxuICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgIFtjb2xvcl09XCJpdGVtLmRpc2FibGVkID8gJ3RleHQtbGlnaHQnIDogJ3RleHQtZGFyaydcIlxuICAgICAgW3NpemVdPVwiY29tcHJlc3NlZCA/ICdzbWFsbCcgOiAnbm9ybWFsJ1wiPjwvY3BzLWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY3BzLW1lbnUtaXRlbS1jb250ZW50XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjcHMtbWVudS1pdGVtLWNvbnRlbnQtdGl0bGVcIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5kZXNjICYmICFjb21wcmVzc2VkXCIgY2xhc3M9XCJjcHMtbWVudS1pdGVtLWNvbnRlbnQtZGVzY1wiPnt7XG4gICAgICBpdGVtLmRlc2NcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
475
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLW1lbnUvY3BzLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFFUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sV0FBVyxFQUVYLGlCQUFpQixFQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlDLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBcURsRSxNQUFNLE9BQU8sZ0JBQWdCO0lBMEMzQixrREFBa0Q7SUFDbEQsWUFDNEIsUUFBa0IsRUFDZixVQUFlLEVBQ3JDLEVBQWMsRUFDZCxRQUFtQixFQUNuQixFQUFxQixFQUNwQixJQUFZLEVBQ2IsTUFBcUIsRUFDckIsY0FB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SztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBBbmltYXRpb25FdmVudCxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFZpZXdSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSwgUHJpbWVOR0NvbmZpZywgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVNjcm9sbEhhbmRsZXIsIERvbUhhbmRsZXIgfSBmcm9tICdwcmltZW5nL2RvbSc7XG5pbXBvcnQgeyBaSW5kZXhVdGlscyB9IGZyb20gJ3ByaW1lbmcvdXRpbHMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcblxudHlwZSBOdWxsYWJsZTxUID0gdm9pZD4gPSBUIHwgbnVsbCB8IHVuZGVmaW5lZDtcbnR5cGUgVm9pZExpc3RlbmVyID0gKCkgPT4gdm9pZCB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIENwc01lbnVJdGVtID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBhY3Rpb24/OiAoZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRlc2M/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgdGFyZ2V0Pzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDcHNNZW51QXR0YWNoUG9zaXRpb24gPSAndHInIHwgJ2JyJyB8ICd0bCcgfCAnYmwnIHwgJ2RlZmF1bHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlLCBDcHNJY29uQ29tcG9uZW50LCBSb3V0ZXJNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2Nwcy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2FuaW1hdGlvbicsIFtcbiAgICAgIHN0YXRlKFxuICAgICAgICAndm9pZCcsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVkoMC44KScsXG4gICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHN0YXRlKFxuICAgICAgICAnY2xvc2UnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVZKDAuOCknLFxuICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ29wZW4nLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsXG4gICAgICAgICAgb3BhY2l0eTogMVxuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gb3BlbicsIGFuaW1hdGUoJ3t7c2hvd1RyYW5zaXRpb25QYXJhbXN9fScpKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gY2xvc2UnLCBhbmltYXRlKCd7e2hpZGVUcmFuc2l0aW9uUGFyYW1zfX0nKSlcbiAgICBdKVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDcHNNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBoZWFkZXIgPSAnJztcbiAgQElucHV0KCkgaXRlbXM6IENwc01lbnVJdGVtW10gPSBbXTtcbiAgQElucHV0KCkgd2l0aEFycm93ID0gdHJ1ZTtcbiAgQElucHV0KCkgY29tcHJlc3NlZCA9IGZhbHNlOyAvLyBwcmVwYXJlZC1jb2xvcmVkLCB3aXRob3V0IGhlYWRlciBhbmQgaXRlbXMgZGVzY3JpcHRpb25cbiAgQElucHV0KCkgZm9jdXNPblNob3cgPSB0cnVlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbnRhaW5lckNsYXNzID0gJyc7XG4gIEBJbnB1dCgpIHNob3dUcmFuc2l0aW9uT3B0aW9ucyA9ICcuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJztcbiAgQElucHV0KCkgaGlkZVRyYW5zaXRpb25PcHRpb25zID0gJy4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuXG4gIEBPdXRwdXQoKSBtZW51U2hvd24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtZW51SGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmVmb3JlTWVudUhpZGRlbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNvbnRlbnRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHdpdGhJY29ucyA9IHRydWU7XG4gIGF1dG9aSW5kZXggPSB0cnVlO1xuICBiYXNlWkluZGV4ID0gMDtcbiAgZGlzbWlzc2FibGUgPSB0cnVlO1xuICBjb250YWluZXI6IE51bGxhYmxlPEhUTUxEaXZFbGVtZW50PjtcbiAgb3ZlcmxheVZpc2libGUgPSBmYWxzZTtcbiAgcmVuZGVyID0gZmFsc2U7XG4gIGlzT3ZlcmxheUFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgc2VsZkNsaWNrID0gZmFsc2U7XG4gIHRhcmdldDogYW55O1xuICBzY3JvbGxIYW5kbGVyOiBOdWxsYWJsZTxDb25uZWN0ZWRPdmVybGF5U2Nyb2xsSGFuZGxlcj47XG4gIHBvc2l0aW9uOiBDcHNNZW51QXR0YWNoUG9zaXRpb24gPSAnZGVmYXVsdCc7XG5cbiAgZG9jdW1lbnRSZXNpemVMaXN0ZW5lciE6IFZvaWRMaXN0ZW5lciB8IG51bGw7XG4gIG92ZXJsYXlFdmVudExpc3RlbmVyOiBOdWxsYWJsZTwoZXZlbnQ/OiBhbnkpID0+IHZvaWQ+O1xuICBkb2N1bWVudENsaWNrTGlzdGVuZXIhOiBWb2lkTGlzdGVuZXIgfCBudWxsO1xuICBkb2N1bWVudEtleWRvd25MaXN0ZW5lciE6IFZvaWRMaXN0ZW5lciB8IG51bGw7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgZGVzdHJveUNhbGxiYWNrOiBOdWxsYWJsZTxGdW5jdGlvbj47XG4gIG92ZXJsYXlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICB0YXJnZXRSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgaXRlbXNDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNvbnN0cnVjdG9yXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkdDb25maWcsXG4gICAgcHVibGljIG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZVxuICApIHtcbiAgICB0aGlzLnRhcmdldFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnRhcmdldCAmJiBlbnRyeSkgdGhpcy5hbGlnbigpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wcmVzc2VkKSB0aGlzLndpdGhJY29ucyA9IHRoaXMuaXRlbXMuc29tZSgoaXRtKSA9PiBpdG0uaWNvbik7XG4gICAgdGhpcy5fc2V0SXRlbXNDbGFzc2VzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEl0ZW1zQ2xhc3NlcygpIHtcbiAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPCAxKSByZXR1cm47XG5cbiAgICB0aGlzLml0ZW1zQ2xhc3NlcyA9IHRoaXMuaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gWydjcHMtbWVudS1pdGVtJ107XG4gICAgICBpZiAoaXRlbS5kaXNhYmxlZCkgcmVzLnB1c2goJ2Nwcy1tZW51LWl0ZW0tZGlzYWJsZWQnKTtcbiAgICAgIGlmIChpbmRleCA9PT0gMCkgcmVzLnB1c2goJ2Nwcy1tZW51LWl0ZW0tZmlyc3QnKTtcbiAgICAgIGlmICh0aGlzLmNvbXByZXNzZWQpIHJlcy5wdXNoKCdjcHMtbWVudS1pdGVtLWNvbXByZXNzZWQnKTtcbiAgICAgIGlmICh0aGlzLmNvbXByZXNzZWQgJiYgdGhpcy53aXRoSWNvbnMpXG4gICAgICAgIHJlcy5wdXNoKCdjcHMtbWVudS1pdGVtLWNvbXByZXNzZWQtd2l0aC1pY29ucycpO1xuXG4gICAgICByZXR1cm4gcmVzLmpvaW4oJyAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZShldmVudD86IGFueSwgdGFyZ2V0PzogYW55LCBwb3M/OiBDcHNNZW51QXR0YWNoUG9zaXRpb24pIHtcbiAgICBpZiAodGhpcy5pc092ZXJsYXlBbmltYXRpb25JblByb2dyZXNzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUpIHtcbiAgICAgIGlmICh0aGlzLmhhc1RhcmdldENoYW5nZWQoZXZlbnQsIHRhcmdldCkpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95Q2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93KG51bGwsIHRhcmdldCB8fCBldmVudD8uY3VycmVudFRhcmdldCB8fCBldmVudD8udGFyZ2V0LCBwb3MpO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93KGV2ZW50LCB0YXJnZXQsIHBvcyk7XG4gICAgfVxuICB9XG5cbiAgc2hvdyhldmVudD86IGFueSwgdGFyZ2V0PzogYW55LCBwb3M/OiBDcHNNZW51QXR0YWNoUG9zaXRpb24pIHtcbiAgICB0YXJnZXQgJiYgZXZlbnQgJiYgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuaXNPdmVybGF5QW5pbWF0aW9uSW5Qcm9ncmVzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0IHx8IGV2ZW50Py5jdXJyZW50VGFyZ2V0IHx8IGV2ZW50Py50YXJnZXQ7XG4gICAgaWYgKHRoaXMudGFyZ2V0KSB0aGlzLnRhcmdldFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy50YXJnZXQpO1xuICAgIHRoaXMub3ZlcmxheVZpc2libGUgPSB0cnVlO1xuICAgIHRoaXMucmVuZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zIHx8ICdkZWZhdWx0JztcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLm92ZXJsYXlWaXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5VmlzaWJsZTtcbiAgfVxuXG4gIG9uSXRlbUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IENwc01lbnVJdGVtKSB7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKHtcbiAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgIGl0ZW1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGJpbmREb2N1bWVudEtleWRvd25MaXN0ZW5lcigpIHtcbiAgICBpZiAoRG9tSGFuZGxlci5pc1RvdWNoRGV2aWNlKCkpIHJldHVybjtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgaWYgKCF0aGlzLmRvY3VtZW50S2V5ZG93bkxpc3RlbmVyICYmIHRoaXMuZGlzbWlzc2FibGUpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBkb2N1bWVudFRhcmdldDogYW55ID0gdGhpcy5lbFxuICAgICAgICAgICAgPyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudFxuICAgICAgICAgICAgOiB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgICAgdGhpcy5kb2N1bWVudEtleWRvd25MaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgZG9jdW1lbnRUYXJnZXQsXG4gICAgICAgICAgICAna2V5ZG93bicsXG4gICAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgLy8gZXNjYXBlXG4gICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUpIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdW5iaW5kRG9jdW1lbnRLZXlkb3duTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRLZXlkb3duTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRLZXlkb3duTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRLZXlkb3duTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGJpbmREb2N1bWVudENsaWNrTGlzdGVuZXIoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGlmICghdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgJiYgdGhpcy5kaXNtaXNzYWJsZSkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRvY3VtZW50RXZlbnQgPSBEb21IYW5kbGVyLmlzSU9TKCkgPyAndG91Y2hzdGFydCcgOiAnY2xpY2snO1xuICAgICAgICAgIGNvbnN0IGRvY3VtZW50VGFyZ2V0OiBhbnkgPSB0aGlzLmVsXG4gICAgICAgICAgICA/IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vd25lckRvY3VtZW50XG4gICAgICAgICAgICA6IHRoaXMuZG9jdW1lbnQ7XG5cbiAgICAgICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgZG9jdW1lbnRUYXJnZXQsXG4gICAgICAgICAgICBkb2N1bWVudEV2ZW50LFxuICAgICAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5wZXJzaXN0ZW50ICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuY29udGFpbmVyPy5jb250YWlucyhldmVudC50YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgdGhpcy50YXJnZXQgIT09IGV2ZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgICAgICF0aGlzLnRhcmdldC5jb250YWlucyhldmVudC50YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuc2VsZkNsaWNrXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLnNlbGZDbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVuYmluZERvY3VtZW50Q2xpY2tMaXN0ZW5lcigpIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lciA9IG51bGw7XG4gICAgICB0aGlzLnNlbGZDbGljayA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uT3ZlcmxheUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5vdmVybGF5U2VydmljZS5hZGQoe1xuICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICB0YXJnZXQ6IHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxmQ2xpY2sgPSB0cnVlO1xuICB9XG5cbiAgb25Db250ZW50Q2xpY2soKSB7XG4gICAgdGhpcy5zZWxmQ2xpY2sgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZW50Q2xpY2tlZC5lbWl0KCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGhhc1RhcmdldENoYW5nZWQoZXZlbnQ/OiBhbnksIHRhcmdldD86IGFueSkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRhcmdldCAmJlxuICAgICAgdGhpcy50YXJnZXQgIT09ICh0YXJnZXQgfHwgZXZlbnQ/LmN1cnJlbnRUYXJnZXQgfHwgZXZlbnQ/LnRhcmdldClcbiAgICApO1xuICB9XG5cbiAgYXBwZW5kQ29udGFpbmVyKCkge1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLmNvbnRhaW5lcik7XG4gIH1cblxuICByZXN0b3JlQXBwZW5kKCkge1xuICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY29udGFpbmVyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRQb3NpdGlvbihlbGVtZW50OiBhbnksIHRhcmdldDogYW55KSB7XG4gICAgY29uc3QgZ2V0UG9zID0gKCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0T2Zmc2V0ID0gRG9tSGFuZGxlci5nZXRPZmZzZXQodGFyZ2V0KTtcbiAgICAgIHN3aXRjaCAodGhpcy5wb3NpdGlvbikge1xuICAgICAgICBjYXNlICdibCc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogTWF0aC5tYXgoXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC50b3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsZWZ0OiBNYXRoLm1heCgwLCB0YXJnZXRPZmZzZXQubGVmdCAtIGVsZW1lbnQub2Zmc2V0V2lkdGgpXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnYnInOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6IE1hdGgubWF4KFxuICAgICAgICAgICAgICB0YXJnZXRPZmZzZXQudG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAtIGVsZW1lbnQub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGVmdDogTWF0aC5taW4oXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC5sZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCAtIGVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICd0bCc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogTWF0aC5taW4oXG4gICAgICAgICAgICAgIHRhcmdldE9mZnNldC50b3AsXG4gICAgICAgICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbGVmdDogTWF0aC5tYXgoMCwgdGFyZ2V0T2Zmc2V0LmxlZnQgLSBlbGVtZW50Lm9mZnNldFdpZHRoKVxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiBNYXRoLm1pbihcbiAgICAgICAgICAgICAgdGFyZ2V0T2Zmc2V0LnRvcCxcbiAgICAgICAgICAgICAgd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRIZWlnaHRcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsZWZ0OiBNYXRoLm1pbihcbiAgICAgICAgICAgICAgdGFyZ2V0T2Zmc2V0LmxlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoIC0gZWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIERvbUhhbmRsZXIuYWJzb2x1dGVQb3NpdGlvbihlbGVtZW50LCB0YXJnZXQpO1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghZWxlbWVudCB8fCAhdGFyZ2V0KSByZXR1cm47XG4gICAgY29uc3QgcG9zID0gZ2V0UG9zKCk7XG4gICAgaWYgKHBvcykge1xuICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSAocG9zLnRvcCB8fCAwKSArICdweCc7XG4gICAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAocG9zLmxlZnQgfHwgMCkgKyAncHgnO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduKCkge1xuICAgIGlmICh0aGlzLmF1dG9aSW5kZXgpIHtcbiAgICAgIFpJbmRleFV0aWxzLnNldChcbiAgICAgICAgJ292ZXJsYXknLFxuICAgICAgICB0aGlzLmNvbnRhaW5lcixcbiAgICAgICAgdGhpcy5iYXNlWkluZGV4ICsgdGhpcy5jb25maWcuekluZGV4Lm92ZXJsYXlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0UG9zaXRpb24odGhpcy5jb250YWluZXIsIHRoaXMudGFyZ2V0KTtcblxuICAgIGNvbnN0IGNvbnRhaW5lck9mZnNldCA9IERvbUhhbmRsZXIuZ2V0T2Zmc2V0KHRoaXMuY29udGFpbmVyKTtcbiAgICBjb25zdCB0YXJnZXRPZmZzZXQgPSBEb21IYW5kbGVyLmdldE9mZnNldCh0aGlzLnRhcmdldCk7XG5cbiAgICBpZiAodGhpcy53aXRoQXJyb3cpIHtcbiAgICAgIGNvbnN0IGJvcmRlclJhZGl1cyA9XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXdcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgID8uZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNvbnRhaW5lciEpXG4gICAgICAgICAgPy5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItcmFkaXVzJykgfHwgJzAnO1xuXG4gICAgICBsZXQgYXJyb3dMZWZ0ID0gMDtcblxuICAgICAgaWYgKGNvbnRhaW5lck9mZnNldC5sZWZ0IDwgdGFyZ2V0T2Zmc2V0LmxlZnQpIHtcbiAgICAgICAgYXJyb3dMZWZ0ID1cbiAgICAgICAgICAyMCArXG4gICAgICAgICAgdGFyZ2V0T2Zmc2V0LmxlZnQgLVxuICAgICAgICAgIGNvbnRhaW5lck9mZnNldC5sZWZ0IC1cbiAgICAgICAgICBwYXJzZUZsb2F0KGJvcmRlclJhZGl1cykgKiAyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lcj8ub2Zmc2V0V2lkdGggfHwgMDtcbiAgICAgICAgY29uc3QgdGFyZ2V0V2lkdGggPSB0aGlzLnRhcmdldD8ub2Zmc2V0V2lkdGggfHwgMDtcbiAgICAgICAgYXJyb3dMZWZ0ID0gTWF0aC5taW4odGFyZ2V0V2lkdGggLyAyLCBjb250YWluZXJXaWR0aCAvIDIpO1xuICAgICAgfVxuICAgICAgYXJyb3dMZWZ0ID0gTWF0aC5tYXgoYXJyb3dMZWZ0LCAxMik7XG4gICAgICB0aGlzLmNvbnRhaW5lcj8uc3R5bGUuc2V0UHJvcGVydHkoJy0tb3ZlcmxheUFycm93TGVmdCcsIGAke2Fycm93TGVmdH1weGApO1xuICAgIH1cblxuICAgIGlmIChjb250YWluZXJPZmZzZXQudG9wIDwgdGFyZ2V0T2Zmc2V0LnRvcCkge1xuICAgICAgRG9tSGFuZGxlci5hZGRDbGFzcyh0aGlzLmNvbnRhaW5lciwgJ2Nwcy1tZW51LWNvbnRhaW5lci1mbGlwcGVkJyk7XG4gICAgfVxuICB9XG5cbiAgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ2Nsb3NlJykge1xuICAgICAgdGhpcy5iZWZvcmVNZW51SGlkZGVuLmVtaXQobnVsbCk7XG4gICAgfSBlbHNlIGlmIChldmVudC50b1N0YXRlID09PSAnb3BlbicpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyID0gZXZlbnQuZWxlbWVudDtcbiAgICAgIHRoaXMuYXBwZW5kQ29udGFpbmVyKCk7XG4gICAgICB0aGlzLmFsaWduKCk7XG4gICAgICB0aGlzLmJpbmREb2N1bWVudENsaWNrTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuYmluZERvY3VtZW50S2V5ZG93bkxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmJpbmRTY3JvbGxMaXN0ZW5lcigpO1xuXG4gICAgICBpZiAodGhpcy5mb2N1c09uU2hvdykge1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMub3ZlcmxheUV2ZW50TGlzdGVuZXIgPSAoZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5jb250YWluZXIuY29udGFpbnMoZS50YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxmQ2xpY2sgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICB0aGlzLm92ZXJsYXlTdWJzY3JpcHRpb24gPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsaWNrT2JzZXJ2YWJsZS5zdWJzY3JpYmUoXG4gICAgICAgIHRoaXMub3ZlcmxheUV2ZW50TGlzdGVuZXJcbiAgICAgICk7XG4gICAgICB0aGlzLm1lbnVTaG93bi5lbWl0KG51bGwpO1xuICAgIH1cblxuICAgIHRoaXMuaXNPdmVybGF5QW5pbWF0aW9uSW5Qcm9ncmVzcyA9IHRydWU7XG4gIH1cblxuICBvbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnRvU3RhdGUpIHtcbiAgICAgIGNhc2UgJ3ZvaWQnOlxuICAgICAgICBpZiAodGhpcy5kZXN0cm95Q2FsbGJhY2spIHtcbiAgICAgICAgICB0aGlzLmRlc3Ryb3lDYWxsYmFjaygpO1xuICAgICAgICAgIHRoaXMuZGVzdHJveUNhbGxiYWNrID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnY2xvc2UnOlxuICAgICAgICBpZiAodGhpcy5hdXRvWkluZGV4KSB7XG4gICAgICAgICAgWkluZGV4VXRpbHMuY2xlYXIodGhpcy5jb250YWluZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMub3ZlcmxheVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNvbnRhaW5lckRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5tZW51SGlkZGVuLmVtaXQoe30pO1xuICAgICAgICB0aGlzLnJlbmRlciA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmlzT3ZlcmxheUFuaW1hdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmNvbnRhaW5lciwgJ1thdXRvZm9jdXNdJyk7XG4gICAgaWYgKGZvY3VzYWJsZSkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c2FibGUuZm9jdXMoKSwgNSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5VmlzaWJsZSAmJiAhRG9tSGFuZGxlci5pc1RvdWNoRGV2aWNlKCkpIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIGJpbmREb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBpZiAoIXRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcikge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3IGFzIFdpbmRvdztcbiAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgd2luZG93LFxuICAgICAgICAgICdyZXNpemUnLFxuICAgICAgICAgIHRoaXMub25XaW5kb3dSZXNpemUuYmluZCh0aGlzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVuYmluZERvY3VtZW50UmVzaXplTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGJpbmRTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgaWYgKCF0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyID0gbmV3IENvbm5lY3RlZE92ZXJsYXlTY3JvbGxIYW5kbGVyKFxuICAgICAgICAgIHRoaXMudGFyZ2V0LFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zY3JvbGxIYW5kbGVyLmJpbmRTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHVuYmluZFNjcm9sbExpc3RlbmVyKCkge1xuICAgIGlmICh0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci51bmJpbmRTY3JvbGxMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29udGFpbmVyRGVzdHJveSgpIHtcbiAgICBpZiAoISh0aGlzLmNkIGFzIFZpZXdSZWYpLmRlc3Ryb3llZCkge1xuICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMudW5iaW5kRG9jdW1lbnRDbGlja0xpc3RlbmVyKCk7XG4gICAgdGhpcy51bmJpbmREb2N1bWVudEtleWRvd25MaXN0ZW5lcigpO1xuICAgIHRoaXMudW5iaW5kRG9jdW1lbnRSZXNpemVMaXN0ZW5lcigpO1xuICAgIHRoaXMudW5iaW5kU2Nyb2xsTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnNjcm9sbEhhbmRsZXIpIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLnNjcm9sbEhhbmRsZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiB0aGlzLmF1dG9aSW5kZXgpIHtcbiAgICAgIFpJbmRleFV0aWxzLmNsZWFyKHRoaXMuY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICBpZiAoISh0aGlzLmNkIGFzIFZpZXdSZWYpLmRlc3Ryb3llZCkge1xuICAgICAgdGhpcy50YXJnZXQgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZGVzdHJveUNhbGxiYWNrID0gbnVsbDtcbiAgICBpZiAodGhpcy5jb250YWluZXIpIHtcbiAgICAgIHRoaXMucmVzdG9yZUFwcGVuZCgpO1xuICAgICAgdGhpcy5vbkNvbnRhaW5lckRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLm92ZXJsYXlTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLnRhcmdldFJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJyZW5kZXJcIlxuICBjbGFzcz1cImNwcy1tZW51LWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgJ2Nwcy1tZW51LW5vLWFycm93JzogIXdpdGhBcnJvdyB9XCJcbiAgW2NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCJcbiAgKGNsaWNrKT1cIm9uT3ZlcmxheUNsaWNrKCRldmVudClcIlxuICBbQGFuaW1hdGlvbl09XCJ7XG4gICAgdmFsdWU6IG92ZXJsYXlWaXNpYmxlID8gJ29wZW4nIDogJ2Nsb3NlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHNob3dUcmFuc2l0aW9uUGFyYW1zOiBzaG93VHJhbnNpdGlvbk9wdGlvbnMsXG4gICAgICBoaWRlVHJhbnNpdGlvblBhcmFtczogaGlkZVRyYW5zaXRpb25PcHRpb25zXG4gICAgfVxuICB9XCJcbiAgKEBhbmltYXRpb24uc3RhcnQpPVwib25BbmltYXRpb25TdGFydCgkZXZlbnQpXCJcbiAgKEBhbmltYXRpb24uZG9uZSk9XCJvbkFuaW1hdGlvbkVuZCgkZXZlbnQpXCI+XG4gIDxkaXYgKG1vdXNldXApPVwib25Db250ZW50Q2xpY2soKVwiICh0b3VjaGVuZCk9XCJvbkNvbnRlbnRDbGljaygpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zLmxlbmd0aCA8IDFcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIml0ZW1zLmxlbmd0aCA+IDBcIlxuICAgICAgY2xhc3M9XCJjcHMtbWVudS1jb250ZW50XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2Nwcy1tZW51LWNvbnRlbnQtY29tcHJlc3NlZCc6IGNvbXByZXNzZWQgfVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImhlYWRlciAmJiAhY29tcHJlc3NlZFwiIGNsYXNzPVwiY3BzLW1lbnUtaGVhZGVyXCI+XG4gICAgICAgIHt7IGhlYWRlciB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cIiFpdGVtLnVybFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW1zQ2xhc3Nlc1tpXVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cIml0ZW0udXJsICYmIGl0ZW0udXJsLnN0YXJ0c1dpdGgoJy8nKVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJpdGVtc0NsYXNzZXNbaV1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBpdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2E+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLnVybCAmJiAhaXRlbS51cmwuc3RhcnRzV2l0aCgnLycpXCJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgIFthdHRyLnRhcmdldF09XCJpdGVtLnRhcmdldFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbXNDbGFzc2VzW2ldXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgaXRlbVRlbXBsYXRlO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgaXRlbTogaXRlbVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaXRlbVRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwiY3BzLW1lbnUtaXRlbS1pY29uXCIgKm5nSWY9XCJ3aXRoSWNvbnNcIj5cbiAgICA8Y3BzLWljb25cbiAgICAgICpuZ0lmPVwiaXRlbS5pY29uXCJcbiAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICBbY29sb3JdPVwiaXRlbS5kaXNhYmxlZCA/ICd0ZXh0LWxpZ2h0JyA6ICd0ZXh0LWRhcmsnXCJcbiAgICAgIFtzaXplXT1cImNvbXByZXNzZWQgPyAnc21hbGwnIDogJ25vcm1hbCdcIj48L2Nwcy1pY29uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNwcy1tZW51LWl0ZW0tY29udGVudFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiY3BzLW1lbnUtaXRlbS1jb250ZW50LXRpdGxlXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIml0ZW0uZGVzYyAmJiAhY29tcHJlc3NlZFwiIGNsYXNzPVwiY3BzLW1lbnUtaXRlbS1jb250ZW50LWRlc2NcIj57e1xuICAgICAgaXRlbS5kZXNjXG4gICAgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { Component, Input, Optional } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
+ import { Table } from 'primeng/table';
4
5
  import { CpsInputComponent } from '../../../cps-input/cps-input.component';
5
6
  import { CpsDatepickerComponent } from '../../../cps-datepicker/cps-datepicker.component';
6
7
  import { CpsAutocompleteComponent } from '../../../cps-autocomplete/cps-autocomplete.component';
@@ -24,21 +25,37 @@ export class TableColumnFilterConstraintComponent {
24
25
  this._tableInstance = dt || tt;
25
26
  }
26
27
  ngOnInit() {
27
- if (this.type === 'category') {
28
- if (this.categoryOptions.length > 0) {
29
- this.categories = this.categoryOptions.map((o) => ({
30
- label: o,
31
- value: o
32
- }));
28
+ this._initCategories();
29
+ }
30
+ _initCategories() {
31
+ if (this.type !== 'category')
32
+ return;
33
+ if (this.categoryOptions.length > 0) {
34
+ this.categories = this.categoryOptions.map((o) => ({
35
+ label: o,
36
+ value: o
37
+ }));
38
+ }
39
+ else {
40
+ let cats = [];
41
+ if (this._tableInstance instanceof Table) {
42
+ cats =
43
+ this._tableInstance.value?.map((v) => v[this.field]) || [];
33
44
  }
34
45
  else {
35
- this.categories =
36
- Array.from(new Set(this._tableInstance.value?.map((v) => v[this.field]) ||
37
- []))?.map((c) => ({
38
- label: c,
39
- value: c
40
- })) || [];
46
+ const fillCats = (nodes) => {
47
+ nodes?.forEach((v) => {
48
+ cats.push(v.data[this.field]);
49
+ fillCats(v.children);
50
+ });
51
+ };
52
+ fillCats(this._tableInstance.value);
41
53
  }
54
+ this.categories =
55
+ Array.from(new Set(cats))?.map((c) => ({
56
+ label: c,
57
+ value: c
58
+ })) || [];
42
59
  }
43
60
  }
44
61
  onValueChange(value) {
@@ -81,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
81
98
  }], hasApplyButton: [{
82
99
  type: Input
83
100
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNoRyxPQUFPLEVBRUwsd0JBQXdCLEVBQ3pCLE1BQU0sd0RBQXdELENBQUM7Ozs7O0FBaUJoRSxNQUFNLE9BQU8sb0NBQW9DO0lBaUIvQyxZQUErQixFQUFTLEVBQXFCLEVBQWE7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBTztRQUFxQixPQUFFLEdBQUYsRUFBRSxDQUFXO1FBYmpFLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRS9CLG1CQUFjLEdBQUc7WUFDZixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtTQUNkLENBQUM7UUFFdkIsZUFBVSxHQUF1QyxFQUFFLENBQUM7UUFLbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDakQsS0FBSyxFQUFFLENBQUM7b0JBQ1IsS0FBSyxFQUFFLENBQUM7aUJBQ1QsQ0FBQyxDQUFDLENBQUM7YUFDTDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVTtvQkFDYixLQUFLLENBQUMsSUFBSSxDQUNSLElBQUksR0FBRyxDQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFlLENBQUMsQ0FBQzt3QkFDNUQsRUFBRSxDQUNMLENBQ0YsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ2IsS0FBSyxFQUFFLENBQUM7d0JBQ1IsS0FBSyxFQUFFLENBQUM7cUJBQ1QsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2I7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsZ0JBQWlCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUUzQyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7aUlBdERVLG9DQUFvQztxSEFBcEMsb0NBQW9DLDRRQzVCakQsc2xEQW1EQSxnT0RqQ0ksWUFBWSwwTkFDWixXQUFXLCtCQUNYLGlCQUFpQix1ZUFDakIsc0JBQXNCLGtZQUN0Qix3QkFBd0IsK1FBQ3hCLHdCQUF3QjsyRkFLZixvQ0FBb0M7a0JBZGhELFNBQVM7K0JBQ0UsZ0NBQWdDLGNBQzlCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3FCQUN6Qjs7MEJBcUJZLFFBQVE7OzBCQUFzQixRQUFROzRDQWhCMUMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWx0ZXJNZXRhZGF0YSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBDcHNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1pbnB1dC9jcHMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENwc0RhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtZGF0ZXBpY2tlci9jcHMtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWF1dG9jb21wbGV0ZS9jcHMtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBCdG5Ub2dnbGVPcHRpb24sXG4gIENwc0J1dHRvblRvZ2dsZUNvbXBvbmVudFxufSBmcm9tICcuLi8uLi8uLi9jcHMtYnV0dG9uLXRvZ2dsZS9jcHMtYnV0dG9uLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJlZVRhYmxlIH0gZnJvbSAncHJpbWVuZy90cmVldGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENwc0lucHV0Q29tcG9uZW50LFxuICAgIENwc0RhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50LFxuICAgIENwc0F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5GaWx0ZXJDb25zdHJhaW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmaWx0ZXJDb25zdHJhaW50OiBGaWx0ZXJNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY2F0ZWdvcnlPcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBoYXNBcHBseUJ1dHRvbiA9IHRydWU7XG5cbiAgYm9vbGVhbk9wdGlvbnMgPSBbXG4gICAgeyBsYWJlbDogJ1RydWUnLCB2YWx1ZTogJ3RydWUnIH0sXG4gICAgeyBsYWJlbDogJ0ZhbHNlJywgdmFsdWU6ICdmYWxzZScgfVxuICBdIGFzIEJ0blRvZ2dsZU9wdGlvbltdO1xuXG4gIGNhdGVnb3JpZXM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcblxuICBfdGFibGVJbnN0YW5jZTogVGFibGUgfCBUcmVlVGFibGU7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIGR0OiBUYWJsZSwgQE9wdGlvbmFsKCkgcHVibGljIHR0OiBUcmVlVGFibGUpIHtcbiAgICB0aGlzLl90YWJsZUluc3RhbmNlID0gZHQgfHwgdHQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnY2F0ZWdvcnknKSB7XG4gICAgICBpZiAodGhpcy5jYXRlZ29yeU9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMgPSB0aGlzLmNhdGVnb3J5T3B0aW9ucy5tYXAoKG8pID0+ICh7XG4gICAgICAgICAgbGFiZWw6IG8sXG4gICAgICAgICAgdmFsdWU6IG9cbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID1cbiAgICAgICAgICBBcnJheS5mcm9tKFxuICAgICAgICAgICAgbmV3IFNldChcbiAgICAgICAgICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS52YWx1ZT8ubWFwKCh2KSA9PiB2W3RoaXMuZmllbGQgYXMgc3RyaW5nXSkgfHxcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk/Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBjLFxuICAgICAgICAgICAgdmFsdWU6IGNcbiAgICAgICAgICB9KSkgfHwgW107XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxhbnk+dGhpcy5maWx0ZXJDb25zdHJhaW50KS52YWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCAhdGhpcy5oYXNBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25FbnRlcktleURvd24oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIHR5cGU9XCJ0ZXh0XCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cIm51bWJlclwiPjwvY3BzLWlucHV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1jb25zdHJhaW50LWJvb2xlYW5cIj5cbiAgICA8Y3BzLWJ1dHRvbi10b2dnbGVcbiAgICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPGNwcy1hdXRvY29tcGxldGVcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWNhdGVnb3J5LWF1dG9jb21wbGV0ZVwiXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjYXRlZ29yeSdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW29wdGlvbnNdPVwiY2F0ZWdvcmllc1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgW211bHRpcGxlXT1cInRydWVcIj48L2Nwcy1hdXRvY29tcGxldGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10YWJsZS90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL3RhYmxlLWNvbHVtbi1maWx0ZXIvdGFibGUtY29sdW1uLWZpbHRlci1jb25zdHJhaW50L3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFFTCx3QkFBd0IsRUFDekIsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7QUFpQmhFLE1BQU0sT0FBTyxvQ0FBb0M7SUFpQi9DLFlBQStCLEVBQVMsRUFBcUIsRUFBYTtRQUEzQyxPQUFFLEdBQUYs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U0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7cUJBQ3pCOzswQkFxQlksUUFBUTs7MEJBQXNCLFFBQVE7NENBaEIxQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlck1ldGFkYXRhIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcbmltcG9ydCB7IENwc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3BzLWlucHV0L2Nwcy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Nwcy1kYXRlcGlja2VyL2Nwcy1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jcHMtYXV0b2NvbXBsZXRlL2Nwcy1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJ0blRvZ2dsZU9wdGlvbixcbiAgQ3BzQnV0dG9uVG9nZ2xlQ29tcG9uZW50XG59IGZyb20gJy4uLy4uLy4uL2Nwcy1idXR0b24tdG9nZ2xlL2Nwcy1idXR0b24tdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmVlVGFibGUgfSBmcm9tICdwcmltZW5nL3RyZWV0YWJsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RhYmxlLWNvbHVtbi1maWx0ZXItY29uc3RyYWludCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ3BzSW5wdXRDb21wb25lbnQsXG4gICAgQ3BzRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBDcHNCdXR0b25Ub2dnbGVDb21wb25lbnQsXG4gICAgQ3BzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZmlsdGVyLWNvbnN0cmFpbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkZpbHRlckNvbnN0cmFpbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZpbHRlckNvbnN0cmFpbnQ6IEZpbHRlck1ldGFkYXRhIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBjYXRlZ29yeU9wdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGhhc0FwcGx5QnV0dG9uID0gdHJ1ZTtcblxuICBib29sZWFuT3B0aW9ucyA9IFtcbiAgICB7IGxhYmVsOiAnVHJ1ZScsIHZhbHVlOiAndHJ1ZScgfSxcbiAgICB7IGxhYmVsOiAnRmFsc2UnLCB2YWx1ZTogJ2ZhbHNlJyB9XG4gIF0gYXMgQnRuVG9nZ2xlT3B0aW9uW107XG5cbiAgY2F0ZWdvcmllczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIF90YWJsZUluc3RhbmNlOiBUYWJsZSB8IFRyZWVUYWJsZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgZHQ6IFRhYmxlLCBAT3B0aW9uYWwoKSBwdWJsaWMgdHQ6IFRyZWVUYWJsZSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UgPSBkdCB8fCB0dDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2luaXRDYXRlZ29yaWVzKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2F0ZWdvcmllcygpIHtcbiAgICBpZiAodGhpcy50eXBlICE9PSAnY2F0ZWdvcnknKSByZXR1cm47XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHRoaXMuY2F0ZWdvcnlPcHRpb25zLm1hcCgobykgPT4gKHtcbiAgICAgICAgbGFiZWw6IG8sXG4gICAgICAgIHZhbHVlOiBvXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjYXRzID0gW107XG4gICAgICBpZiAodGhpcy5fdGFibGVJbnN0YW5jZSBpbnN0YW5jZW9mIFRhYmxlKSB7XG4gICAgICAgIGNhdHMgPVxuICAgICAgICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UudmFsdWU/Lm1hcCgodikgPT4gdlt0aGlzLmZpZWxkIGFzIHN0cmluZ10pIHx8IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsbENhdHMgPSAobm9kZXM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgbm9kZXM/LmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICAgIGNhdHMucHVzaCh2LmRhdGFbdGhpcy5maWVsZCBhcyBzdHJpbmddKTtcbiAgICAgICAgICAgIGZpbGxDYXRzKHYuY2hpbGRyZW4pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBmaWxsQ2F0cyh0aGlzLl90YWJsZUluc3RhbmNlLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9XG4gICAgICAgIEFycmF5LmZyb20obmV3IFNldChjYXRzKSk/Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICBsYWJlbDogYyxcbiAgICAgICAgICB2YWx1ZTogY1xuICAgICAgICB9KSkgfHwgW107XG4gICAgfVxuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgKDxhbnk+dGhpcy5maWx0ZXJDb25zdHJhaW50KS52YWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJyB8fCAhdGhpcy5oYXNBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5fdGFibGVJbnN0YW5jZS5fZmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgb25FbnRlcktleURvd24oZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuX3RhYmxlSW5zdGFuY2UuX2ZpbHRlcigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJDb25zdHJhaW50Py52YWx1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlZCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIHR5cGU9XCJ0ZXh0XCI+PC9jcHMtaW5wdXQ+XG5cbiAgPGNwcy1pbnB1dFxuICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleURvd24oJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgdHlwZT1cIm51bWJlclwiPjwvY3BzLWlucHV0PlxuXG4gIDxkaXYgY2xhc3M9XCJjcHMtdGFibGUtY29sLWZpbHRlci1jb25zdHJhaW50LWJvb2xlYW5cIj5cbiAgICA8Y3BzLWJ1dHRvbi10b2dnbGVcbiAgICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICAgW29wdGlvbnNdPVwiYm9vbGVhbk9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICA8L2Nwcy1idXR0b24tdG9nZ2xlPlxuICA8L2Rpdj5cblxuICA8Y3BzLWRhdGVwaWNrZXJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICBbb3Blbk9uSW5wdXRGb2N1c109XCJ0cnVlXCJcbiAgICBbaGlkZURldGFpbHNdPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwiZmlsdGVyQ29uc3RyYWludD8udmFsdWVcIlxuICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlEb3duKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZWQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3BzLWRhdGVwaWNrZXI+XG5cbiAgPGNwcy1hdXRvY29tcGxldGVcbiAgICBjbGFzcz1cImNwcy10YWJsZS1jb2wtZmlsdGVyLWNhdGVnb3J5LWF1dG9jb21wbGV0ZVwiXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidjYXRlZ29yeSdcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW29wdGlvbnNdPVwiY2F0ZWdvcmllc1wiXG4gICAgW2hpZGVEZXRhaWxzXT1cInRydWVcIlxuICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgW3ZhbHVlXT1cImZpbHRlckNvbnN0cmFpbnQ/LnZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2VkKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW3JldHVybk9iamVjdF09XCJmYWxzZVwiXG4gICAgW211bHRpcGxlXT1cInRydWVcIj48L2Nwcy1hdXRvY29tcGxldGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
182
182
  }], blurred: [{
183
183
  type: Output
184
184
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10ZXh0YXJlYS9jcHMtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRleHRhcmVhL2Nwcy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBVXRGLE1BQU0sT0FBTyxvQkFBb0I7SUFvQi9CLElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFZRCxZQUM4QixRQUFtQixFQUN2QyxXQUFvQztRQURoQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3ZDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQXhDckMsVUFBSyxHQUFH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LEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbnZlcnRTaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJuYWwvc2l6ZS11dGlscyc7XG5pbXBvcnQgeyBDcHNJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENwc0luZm9DaXJjbGVDb21wb25lbnQgfSBmcm9tICcuLi9jcHMtaW5mby1jaXJjbGUvY3BzLWluZm8tY2lyY2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nwcy10b29sdGlwLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2Nwcy10ZXh0YXJlYScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENwc0ljb25Db21wb25lbnQsIENwc0luZm9DaXJjbGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY3BzLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3BzLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3BzVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBlbnRlcic7XG4gIEBJbnB1dCgpIHJvd3MgPSA1O1xuICBASW5wdXQoKSBjb2xzID0gMjA7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50Q2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSAnJztcbiAgQElucHV0KCkgcmVzaXphYmxlOiAndmVydGljYWwnIHwgJ25vbmUnID0gJ3ZlcnRpY2FsJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXAgPSAnJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBDbGFzcyA9ICdjcHMtdG9vbHRpcC1jb250ZW50JztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBNYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBlcnNpc3RlbnQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3RvcCc7XG5cbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeEljb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XG5cbiAgY3Z0V2lkdGggPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN2dFdpZHRoID0gY29udmVydFNpemUodGhpcy53aWR0aCk7XG5cbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgICAgfVxuICAgICkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCkge1xuICAgIGlmICghdGhpcy5fY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuX2NvbnRyb2w/LmVycm9ycztcblxuICAgIGlmICghdGhpcy5fY29udHJvbD8uY29udHJvbD8udG91Y2hlZCB8fCAhZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdyZXF1aXJlZCcgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ0ZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ21pbmxlbmd0aCcgaW4gZXJyb3JzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICB0aGlzLmVycm9yID0gYEZpZWxkIG11c3QgY29udGFpbiBhdCBsZWFzdCAke2Vycm9yc1snbWlubGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgnbWF4bGVuZ3RoJyBpbiBlcnJvcnMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgIHRoaXMuZXJyb3IgPSBgRmllbGQgbXVzdCBjb250YWluICR7ZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBtYXhpbXVtYDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJBcnIgPSBPYmplY3QudmFsdWVzKGVycm9ycyk7XG4gICAgaWYgKGVyckFyci5sZW5ndGggPCAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJBcnIuZmluZCgobXNnKSA9PiB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyk7XG5cbiAgICB0aGlzLmVycm9yID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICB1cGRhdGVWYWx1ZUV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09ICcnKSB0aGlzLl91cGRhdGVWYWx1ZSgnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZC5lbWl0KCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpPy5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLXRleHRhcmVhLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLXRleHRhcmVhLWxhYmVsXCJcbiAgICBbbmdDbGFzc109XCJ7ICdjcHMtdGV4dGFyZWEtbGFiZWwtZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICAqbmdJZj1cImxhYmVsXCI+XG4gICAgPGxhYmVsPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICA8Y3BzLWluZm8tY2lyY2xlXG4gICAgICAqbmdJZj1cImluZm9Ub29sdGlwXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRleHRhcmVhLWxhYmVsLWluZm8tY2lyY2xlXCJcbiAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJpbmZvVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgIFt0b29sdGlwQ29udGVudENsYXNzXT1cImluZm9Ub29sdGlwQ2xhc3NcIlxuICAgICAgW3Rvb2x0aXBNYXhXaWR0aF09XCJpbmZvVG9vbHRpcE1heFdpZHRoXCJcbiAgICAgIFt0b29sdGlwUGVyc2lzdGVudF09XCJpbmZvVG9vbHRpcFBlcnNpc3RlbnRcIlxuICAgICAgW3Rvb2x0aXBUZXh0XT1cImluZm9Ub29sdGlwXCI+XG4gICAgPC9jcHMtaW5mby1jaXJjbGU+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImNwcy10ZXh0YXJlYS13cmFwXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLXRleHRhcmVhLXdyYXAtZXJyb3InOiBlcnJvcixcbiAgICAgIGNsZWFyYWJsZTogY2xlYXJhYmxlLFxuICAgICAgJ3BlcnNpc3RlbnQtY2xlYXInOiBwZXJzaXN0ZW50Q2xlYXJcbiAgICB9XCI+XG4gICAgPHRleHRhcmVhXG4gICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgW2NvbHNdPVwiY29sc1wiXG4gICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6IGN2dFdpZHRoLFxuICAgICAgICByZXNpemU6IHJlc2l6YWJsZVxuICAgICAgfVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIj48L3RleHRhcmVhPlxuXG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlICYmICFkaXNhYmxlZFwiXG4gICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJcbiAgICAgICAgcGVyc2lzdGVudENsZWFyIHx8ICghcGVyc2lzdGVudENsZWFyICYmIHZhbHVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJjbGVhci1idG5cIj5cbiAgICAgIDxjcHMtaWNvbiBpY29uPVwiZGVsZXRlXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImNsZWFyKClcIj48L2Nwcy1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtdGV4dGFyZWEtaGludC10ZXh0XCI+XG4gICAge3sgaGludCB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLXRleHRhcmVhLWVycm9yLXRleHRcIj5cbiAgICB7eyBlcnJvciB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy10ZXh0YXJlYS9jcHMtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRleHRhcmVhL2Nwcy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBVXRGLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFZRCxZQUM4QixRQUFtQixFQUN2QyxXQUFvQztRQURoQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3ZDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQXhDckMsVUFBSyxHQUFH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LEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb252ZXJ0U2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVybmFsL3NpemUtdXRpbHMnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcHNJbmZvQ2lyY2xlQ29tcG9uZW50IH0gZnJvbSAnLi4vY3BzLWluZm8tY2lyY2xlL2Nwcy1pbmZvLWNpcmNsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jcHMtdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdjcHMtdGV4dGFyZWEnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDcHNJY29uQ29tcG9uZW50LCBDcHNJbmZvQ2lyY2xlQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nwcy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nwcy10ZXh0YXJlYS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENwc1RleHRhcmVhQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1BsZWFzZSBlbnRlcic7XG4gIEBJbnB1dCgpIHJvd3MgPSA1O1xuICBASW5wdXQoKSBjb2xzID0gMjA7XG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGNsZWFyYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50Q2xlYXIgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSAnJztcbiAgQElucHV0KCkgcmVzaXphYmxlOiAndmVydGljYWwnIHwgJ25vbmUnID0gJ3ZlcnRpY2FsJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXAgPSAnJztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBDbGFzcyA9ICdjcHMtdG9vbHRpcC1jb250ZW50JztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBNYXhXaWR0aDogbnVtYmVyIHwgc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBlcnNpc3RlbnQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3RvcCc7XG5cbiAgQElucHV0KCkgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZWZpeEljb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX3ZhbHVlID0gJyc7XG5cbiAgY3Z0V2lkdGggPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHtcbiAgICBpZiAodGhpcy5fY29udHJvbCkge1xuICAgICAgdGhpcy5fY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmN2dFdpZHRoID0gY29udmVydFNpemUodGhpcy53aWR0aCk7XG5cbiAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgICAgfVxuICAgICkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3RhdHVzQ2hhbmdlc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRXJyb3JzKCkge1xuICAgIGlmICghdGhpcy5fY29udHJvbCkgcmV0dXJuO1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuX2NvbnRyb2w/LmVycm9ycztcblxuICAgIGlmICghdGhpcy5fY29udHJvbD8uY29udHJvbD8udG91Y2hlZCB8fCAhZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCdyZXF1aXJlZCcgaW4gZXJyb3JzKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ0ZpZWxkIGlzIHJlcXVpcmVkJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ21pbmxlbmd0aCcgaW4gZXJyb3JzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZG90LW5vdGF0aW9uXG4gICAgICB0aGlzLmVycm9yID0gYEZpZWxkIG11c3QgY29udGFpbiBhdCBsZWFzdCAke2Vycm9yc1snbWlubGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgnbWF4bGVuZ3RoJyBpbiBlcnJvcnMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgIHRoaXMuZXJyb3IgPSBgRmllbGQgbXVzdCBjb250YWluICR7ZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVycyBtYXhpbXVtYDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJBcnIgPSBPYmplY3QudmFsdWVzKGVycm9ycyk7XG4gICAgaWYgKGVyckFyci5sZW5ndGggPCAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJBcnIuZmluZCgobXNnKSA9PiB0eXBlb2YgbXNnID09PSAnc3RyaW5nJyk7XG5cbiAgICB0aGlzLmVycm9yID0gbWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcic7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG9uQ2hhbmdlID0gKGV2ZW50OiBhbnkpID0+IHt9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICB1cGRhdGVWYWx1ZUV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMudmFsdWUgIT09ICcnKSB0aGlzLl91cGRhdGVWYWx1ZSgnJyk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMuX2NvbnRyb2w/LmNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGVja0Vycm9ycygpO1xuICAgIHRoaXMuYmx1cnJlZC5lbWl0KCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuZm9jdXNlZC5lbWl0KCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpPy5mb2N1cygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3BzLXRleHRhcmVhLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGN2dFdpZHRoIH1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3BzLXRleHRhcmVhLWxhYmVsXCJcbiAgICBbbmdDbGFzc109XCJ7ICdjcHMtdGV4dGFyZWEtbGFiZWwtZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICAqbmdJZj1cImxhYmVsXCI+XG4gICAgPGxhYmVsPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICA8Y3BzLWluZm8tY2lyY2xlXG4gICAgICAqbmdJZj1cImluZm9Ub29sdGlwXCJcbiAgICAgIGNsYXNzPVwiY3BzLXRleHRhcmVhLWxhYmVsLWluZm8tY2lyY2xlXCJcbiAgICAgIHNpemU9XCJ4c21hbGxcIlxuICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJpbmZvVG9vbHRpcFBvc2l0aW9uXCJcbiAgICAgIFt0b29sdGlwQ29udGVudENsYXNzXT1cImluZm9Ub29sdGlwQ2xhc3NcIlxuICAgICAgW3Rvb2x0aXBNYXhXaWR0aF09XCJpbmZvVG9vbHRpcE1heFdpZHRoXCJcbiAgICAgIFt0b29sdGlwUGVyc2lzdGVudF09XCJpbmZvVG9vbHRpcFBlcnNpc3RlbnRcIlxuICAgICAgW3Rvb2x0aXBUZXh0XT1cImluZm9Ub29sdGlwXCI+XG4gICAgPC9jcHMtaW5mby1jaXJjbGU+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImNwcy10ZXh0YXJlYS13cmFwXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY3BzLXRleHRhcmVhLXdyYXAtZXJyb3InOiBlcnJvcixcbiAgICAgIGNsZWFyYWJsZTogY2xlYXJhYmxlLFxuICAgICAgJ3BlcnNpc3RlbnQtY2xlYXInOiBwZXJzaXN0ZW50Q2xlYXJcbiAgICB9XCI+XG4gICAgPHRleHRhcmVhXG4gICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgW2NvbHNdPVwiY29sc1wiXG4gICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgd2lkdGg6IGN2dFdpZHRoLFxuICAgICAgICByZXNpemU6IHJlc2l6YWJsZVxuICAgICAgfVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIj48L3RleHRhcmVhPlxuXG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlICYmICFkaXNhYmxlZFwiXG4gICAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJcbiAgICAgICAgcGVyc2lzdGVudENsZWFyIHx8ICghcGVyc2lzdGVudENsZWFyICYmIHZhbHVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJjbGVhci1idG5cIj5cbiAgICAgIDxjcHMtaWNvbiBpY29uPVwiZGVsZXRlXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImNsZWFyKClcIj48L2Nwcy1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJjcHMtdGV4dGFyZWEtaGludC10ZXh0XCI+XG4gICAge3sgaGludCB9fVxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImVycm9yICYmICFoaWRlRGV0YWlsc1wiIGNsYXNzPVwiY3BzLXRleHRhcmVhLWVycm9yLXRleHRcIj5cbiAgICB7eyBlcnJvciB9fVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1117,22 +1117,22 @@ class CpsMenuComponent {
1117
1117
  case 'bl':
1118
1118
  return {
1119
1119
  top: Math.max(targetOffset.top + target.offsetHeight - element.offsetHeight, 0),
1120
- left: Math.max(0, targetOffset.left - element.offsetWidth - 1)
1120
+ left: Math.max(0, targetOffset.left - element.offsetWidth)
1121
1121
  };
1122
1122
  case 'br':
1123
1123
  return {
1124
1124
  top: Math.max(targetOffset.top + target.offsetHeight - element.offsetHeight, 0),
1125
- left: Math.min(targetOffset.left + target.offsetWidth + 1, window.innerWidth - element.offsetWidth)
1125
+ left: Math.min(targetOffset.left + target.offsetWidth, window.innerWidth - element.offsetWidth)
1126
1126
  };
1127
1127
  case 'tl':
1128
1128
  return {
1129
1129
  top: Math.min(targetOffset.top, window.innerHeight - element.offsetHeight),
1130
- left: Math.max(0, targetOffset.left - element.offsetWidth - 1)
1130
+ left: Math.max(0, targetOffset.left - element.offsetWidth)
1131
1131
  };
1132
1132
  case 'tr':
1133
1133
  return {
1134
1134
  top: Math.min(targetOffset.top, window.innerHeight - element.offsetHeight),
1135
- left: Math.min(targetOffset.left + target.offsetWidth + 1, window.innerWidth - element.offsetWidth)
1135
+ left: Math.min(targetOffset.left + target.offsetWidth, window.innerWidth - element.offsetWidth)
1136
1136
  };
1137
1137
  case 'default':
1138
1138
  default:
@@ -4701,22 +4701,38 @@ class TableColumnFilterConstraintComponent {
4701
4701
  this._tableInstance = dt || tt;
4702
4702
  }
4703
4703
  ngOnInit() {
4704
+ this._initCategories();
4705
+ }
4706
+ _initCategories() {
4704
4707
  var _a, _b;
4705
- if (this.type === 'category') {
4706
- if (this.categoryOptions.length > 0) {
4707
- this.categories = this.categoryOptions.map((o) => ({
4708
- label: o,
4709
- value: o
4710
- }));
4708
+ if (this.type !== 'category')
4709
+ return;
4710
+ if (this.categoryOptions.length > 0) {
4711
+ this.categories = this.categoryOptions.map((o) => ({
4712
+ label: o,
4713
+ value: o
4714
+ }));
4715
+ }
4716
+ else {
4717
+ let cats = [];
4718
+ if (this._tableInstance instanceof Table) {
4719
+ cats =
4720
+ ((_a = this._tableInstance.value) === null || _a === void 0 ? void 0 : _a.map((v) => v[this.field])) || [];
4711
4721
  }
4712
4722
  else {
4713
- this.categories =
4714
- ((_b = Array.from(new Set(((_a = this._tableInstance.value) === null || _a === void 0 ? void 0 : _a.map((v) => v[this.field])) ||
4715
- []))) === null || _b === void 0 ? void 0 : _b.map((c) => ({
4716
- label: c,
4717
- value: c
4718
- }))) || [];
4723
+ const fillCats = (nodes) => {
4724
+ nodes === null || nodes === void 0 ? void 0 : nodes.forEach((v) => {
4725
+ cats.push(v.data[this.field]);
4726
+ fillCats(v.children);
4727
+ });
4728
+ };
4729
+ fillCats(this._tableInstance.value);
4719
4730
  }
4731
+ this.categories =
4732
+ ((_b = Array.from(new Set(cats))) === null || _b === void 0 ? void 0 : _b.map((c) => ({
4733
+ label: c,
4734
+ value: c
4735
+ }))) || [];
4720
4736
  }
4721
4737
  }
4722
4738
  onValueChange(value) {