barsa-sap-ui 2.0.8 → 2.0.9

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.
@@ -41,7 +41,10 @@ export class ReportTreeBaseComponent extends SapUiReportBaseComponent {
41
41
  return [];
42
42
  }))
43
43
  .subscribe((flatMoDataList) => {
44
- this.flatMoDataList = flatMoDataList;
44
+ this.flatMoDataList = flatMoDataList.map((c) => ({
45
+ ...c,
46
+ parentNode: c.parentNode ? { ...c.parentNode } : null
47
+ }));
45
48
  });
46
49
  this._resetDropActionTodo();
47
50
  this._dragMove
@@ -405,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
405
408
  changeDetection: ChangeDetectionStrategy.OnPush
406
409
  }]
407
410
  }] });
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRyZWUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3JlcG9ydC10cmVlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEVBQ0gsUUFBUSxFQUtYLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBUTFFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx3QkFBaUQ7SUFMOUY7O1FBWUksY0FBUyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFJckIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBQ3BFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO0tBcWJ6RTtJQXBiRyxJQUFZLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUks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LElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ0osVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbkMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxvQkFBb0I7SUFDWixNQUFNLENBQUMsdUJBQXVCO1FBQ2xDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0lBQzNFLENBQUM7OEdBaGNRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1GQUh0QixFQUFFOzsyRkFHSCx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSwgRGlhbG9nQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBCYXJzYUFwaSxcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxuICAgIFRyZWVOb2RlT2JqLFxuICAgIFJlbGF0aW9uSXRlbVR5cGVcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9zYXAtdWktcmVwb3J0LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3BJbmZvIH0gZnJvbSAnLi91aS10cmVlLXZpZXcvdWktdHJlZS12aWV3LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXJlcG9ydC10cmVlLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudCBleHRlbmRzIFNhcFVpUmVwb3J0QmFzZUNvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnRlbnREZW5zaXR5JDogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT47XG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBkaWFsb2dTZWxlY3RlZE5vZGU7XG4gICAgc2VsZWN0ZWROb2RlJDogT2JzZXJ2YWJsZTxUcmVlTm9kZU9iaiB8IG51bGw+O1xuICAgIHJvb3QkOiBPYnNlcnZhYmxlPFRyZWVOb2RlT2JqIHwgbnVsbD47XG4gICAgZHJvcEFjdGlvblRvZG86IERyb3BJbmZvO1xuICAgIF9kcmFnTW92ZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBmbGF0TW9EYXRhTGlzdDtcbiAgICBkaWFsb2dSZWY7XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdGVkTm9kZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGVPYmogfCBudWxsPihudWxsKTtcbiAgICBwcm90ZWN0ZWQgX3Jvb3RTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlT2JqIHwgbnVsbD4obnVsbCk7XG4gICAgcHJpdmF0ZSBnZXQgX3Jvb3QoKTogVHJlZU5vZGVPYmogfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3RTb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlJCA9IHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5yb290JCA9IHRoaXMuX3Jvb3RTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnJ0bCQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJ0bCQ7XG4gICAgICAgIHRoaXMuY29udGVudERlbnNpdHkkID0gdGhpcy5fY29udGVudERlbnNpdHlTZXJ2aWNlLmNvbnRlbnREZW5zaXR5O1xuICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQodGhpcy5jb250ZXh0LnJvb3QpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dCh0aGlzLmNvbnRleHQuc2VsTm9kZSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5vbih7XG4gICAgICAgICAgICByb290Q2hhbmdlZDogKHJvb3QpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQocm9vdCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0ZWROb2RlQ2hhbmdlOiAobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcm9vdFNvdXJjZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIG1hcCgocm9vdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9MaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG9PcGVuTGV2ZWxzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuVHJlZUF1dG9PcGVuTGV2ZWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2V0QWxsSXRlbXNQZXJDaGlsZHJlbihyb290LCAwLCBtb0xpc3QsIHJvb3QsIGF1dG9PcGVuTGV2ZWxzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmbGF0TW9EYXRhTGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3QgPSBmbGF0TW9EYXRhTGlzdDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yZXNldERyb3BBY3Rpb25Ub2RvKCk7XG4gICAgICAgIHRoaXMuX2RyYWdNb3ZlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDUwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZG9EcmFnTW92ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNyZWF0ZU5ldyhlOiBSZWxhdGlvbkl0ZW1UeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NyZWF0ZU5ldycsIGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZHJhZ01vdmVkKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RyYWdNb3ZlLm5leHQoZXZlbnQpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZHJvcChldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVOb0Ryb3BzKCk7XG4gICAgICAgIHRoaXMuX2NsZWFyRHJhZ0luZm8oKTtcbiAgICAgICAgY29uc3QgZHJhZ0FjdGlvbiA9IHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uO1xuICAgICAgICBpZiAoIWRyYWdBY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhZ0FjdGlvbiA9PT0gJ2ZvcmJpZCcpIHtcbiAgICAgICAgICAgIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50Ll9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW1JZCA9IGV2ZW50Lml0ZW0uZGF0YTtcbiAgICAgICAgY29uc3QgdGFyZ2V0SXRlbUlkID0gdGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZDtcbiAgICAgICAgY29uc3QgZHJhZ2dlZEl0ZW0gPSB0aGlzLl9nZXROb2RlQnlJZChkcmFnZ2VkSXRlbUlkKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0SXRlbSA9IHRoaXMuX2dldE5vZGVCeUlkKHRhcmdldEl0ZW1JZCk7XG4gICAgICAgIGNvbnN0IG9sZFBhcmVudE5vZGVJZCA9IGRyYWdnZWRJdGVtLnBhcmVudE5vZGU/LkRhdGE/LklkIHx8ICckUm9vdCc7XG4gICAgICAgIGNvbnN0IG5ld1BhcmVudE5vZGVJZCA9IHRhcmdldEl0ZW0ucGFyZW50Tm9kZT8uRGF0YT8uSWQgfHwgJyRSb290JztcbiAgICAgICAgY29uc3Qgb2xkUGFyZW50Tm9kZSA9IGRyYWdnZWRJdGVtLnBhcmVudE5vZGU7XG4gICAgICAgIGxldCBuZXdQYXJlbnROb2RlID0gdGFyZ2V0SXRlbS5wYXJlbnROb2RlO1xuICAgICAgICBpZiAob2xkUGFyZW50Tm9kZSAmJiBuZXdQYXJlbnROb2RlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGRyYWdBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdiZWZvcmUnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2FmdGVyJzoge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2VydmVyVGFyZ2V0OiBUcmVlTm9kZU9iaiB8IG51bGwgPSB0YXJnZXRJdGVtO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZHJhZ0FjdGlvbiA9PT0gJ2FmdGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLmZsYXRNb0RhdGFMaXN0LmZpbmRJbmRleCgoYykgPT4gYy5EYXRhLklkID09PSB0YXJnZXRJdGVtLkRhdGEuSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldEluZGV4ID09PSB0aGlzLmZsYXRNb0RhdGFMaXN0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJUYXJnZXQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhZnRlclRhcmdldCA9IHRoaXMuZmxhdE1vRGF0YUxpc3RbdGFyZ2V0SW5kZXggKyAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWZ0ZXJUYXJnZXQucGFyZW50Tm9kZSA9PT0gdGFyZ2V0SXRlbS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclRhcmdldCA9IGFmdGVyVGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclRhcmdldCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVUb1NlcnZlcihkcmFnZ2VkSXRlbS5EYXRhLklkLCBzZXJ2ZXJUYXJnZXQsIG5ld1BhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEcmFnZ2VkSXRlbXNPcmRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdnZWRJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmVudE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbGRQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGFyZW50Tm9kZUlkXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdQYXJlbnROb2RlSWQgIT09ICckUm9vdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3QuaW5kZXhPZihkcmFnZ2VkSXRlbSkgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3QuaW5kZXhPZih0YXJnZXRJdGVtLnBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50Tm9kZT8uY2hpbGRyZW4uc3BsaWNlKGksIDAsIGRyYWdnZWRJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgbmV3IG1vRGF0YUxpc3QgVG8gc2VydmVyOlxuICAgICAgICAgICAgICAgICAgICAvLyAoZHJhZ2dlZEl0ZW0sIGRyYWdnZWRJdGVtLnBhcmVudE5vZGUsIGRyYWdnZWRJdGVtLnBhcmVudE5vZGUuY2hpbGRyZW4/LmluZGV4T2YoZHJhZ2dlZEl0ZW0pKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjYXNlICdpbnNpZGUnOiB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1BhcmVudE5vZGUgPSB0YXJnZXRJdGVtO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zYXZlVG9TZXJ2ZXIoZHJhZ2dlZEl0ZW0uRGF0YS5JZCwgbnVsbCwgbmV3UGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21vdmVOb2RlSW5zaWRlQW5vdGhlcihkcmFnZ2VkSXRlbSwgdGFyZ2V0SXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0T25lRGVwdGhMZXZlbChuZXdQYXJlbnROb2RlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0T25lRGVwdGhMZXZlbChvbGRQYXJlbnROb2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyRHJhZ0luZm8odHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZWJpbmRSb290KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQodGhpcy5fcm9vdCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zYXZlVG9TZXJ2ZXIoZHJhZ2dlZElkOiBzdHJpbmcsIHRhcmdldDogVHJlZU5vZGVPYmogfCBudWxsLCBwYXJlbnQ6IFRyZWVOb2RlT2JqKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldElkOiBzdHJpbmcgPSB0YXJnZXQgPyB0YXJnZXQuRGF0YS5JZCA6ICcwJztcbiAgICAgICAgY29uc3QgcGFyZW50SWQ6IHN0cmluZyA9IHBhcmVudC5EYXRhLklkID09PSAnJFJvb3QnID8gJzAnIDogcGFyZW50LkRhdGEuSWQ7XG4gICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kKCdNb3ZlVHJlZU5vZGUnLCBkcmFnZ2VkSWQsIHRhcmdldElkLCBwYXJlbnRJZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbmZpcm1EaWFsb2coc2VsZWN0ZWROb2RlOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHNlbGVjdGVkTm9kZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRpc21pc3NEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29sbGFwc2VBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NvbGxhcHNlQWxsJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZW5Nb3ZlVG9EaWFsb2coc291cmNlTm9kZSwgZGV2aWNlOiBzdHJpbmcsIGRpYWxvZ1RtcCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWc6IERpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgZGF0YTogeyBjb250ZXh0OiB0aGlzLmNvbnRleHQgfSxcbiAgICAgICAgICAgIG1vYmlsZTogZGV2aWNlID09PSAnbW9iaWxlJyxcbiAgICAgICAgICAgIG1pbldpZHRoOiBkZXZpY2UgPT09ICdtb2JpbGUnID8gJ2F1dG8nIDogdGhpcy5kaWFsb2dDb25maWcubWluV2lkdGgsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IGRldmljZSA9PT0gJ21vYmlsZScgPyAnYXV0bycgOiB0aGlzLmRpYWxvZ0NvbmZpZy5taW5IZWlnaHRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oZGlhbG9nVG1wLCBjb25maWcpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoKGRlc3RpbmF0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFkZXN0aW5hdGlvbk5vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjYW5Nb3ZlID0gdGhpcy5fY2FuTW92ZShzb3VyY2VOb2RlLCBkZXN0aW5hdGlvbk5vZGUpO1xuICAgICAgICAgICAgaWYgKGNhbk1vdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlTm9kZUluc2lkZUFub3RoZXIoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgUmVwb3J0VHJlZUJhc2VDb21wb25lbnQuX3Nob3dGb3JiaWRkZW5Nb3ZlQWxlcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3Jvb3RTb3VyY2UubmV4dCh0aGlzLl9yb290KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlbGVjdE5vZGVJbk1vdmVEaWFsb2coZXY6IHsgbm9kZTogVHJlZU5vZGVPYmo7IGluZGV4OiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkTm9kZSA9IGV2Lm5vZGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRDaGlsZHJlbihub2RlOiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdsb2FkTm9kZUNoaWxkcmVuJywgbm9kZSk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUdyaWRTZXR0aW5nKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBfc2VsZWN0Tm9kZShub2RlOiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuc2VsTm9kZSA9IG5vZGU7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KG5vZGUpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjbGljaycpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdzZWxlY3Rpb25jaGFuZ2UnKTtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByb3RlY3RlZCBfZGVzZWxlY3ROb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuc2VsTm9kZSA9IG51bGw7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KG51bGwpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmFpc2VSb3dDbGljayhpbmRleCwgbW8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBtbztcbiAgICAgICAgdGhpcy5jb250ZXh0Py5maXJlRXZlbnQoJ2RibGNsaWNrJywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8gPSB7IHRhcmdldElkOiBudWxsLCBhY3Rpb246IG51bGwgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRBbGxJdGVtc1BlckNoaWxkcmVuKFxuICAgICAgICBpdGVtOiBUcmVlTm9kZU9iaixcbiAgICAgICAgbGV2ZWw6IG51bWJlcixcbiAgICAgICAgYXJyYXk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSxcbiAgICAgICAgcGFyZW50Tm9kZTogVHJlZU5vZGVPYmosXG4gICAgICAgIGF1dG9PcGVuTGV2ZWxzOiBudW1iZXJcbiAgICApOiBhbnkge1xuICAgICAgICBsZXQgbmV3SXRlbTogYW55ID0gaXRlbTtcbiAgICAgICAgaWYgKGxldmVsID4gMCkge1xuICAgICAgICAgICAgaXRlbS5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgIGl0ZW0ubGV2ZWwgPSBsZXZlbDtcbiAgICAgICAgICAgIGl0ZW0uaXNFeHBhbmQgPSBpdGVtLmlzRXhwYW5kID8/IGF1dG9PcGVuTGV2ZWxzID4gbGV2ZWw7XG4gICAgICAgICAgICBpdGVtLnZpc2liaWxpdHkgPSBpdGVtLnBhcmVudE5vZGUuaXNFeHBhbmQ7XG4gICAgICAgICAgICBhcnJheS5wdXNoKG5ld0l0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3SXRlbSA9IGl0ZW07XG4gICAgICAgICAgICBuZXdJdGVtLmlzRXhwYW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB0aGlzLnNldE9uZURlcHRoTGV2ZWwoY2hpbGQpKTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtLmNoaWxkcmVuLm1hcCgoaSkgPT4gdGhpcy5fZ2V0QWxsSXRlbXNQZXJDaGlsZHJlbihpLCBsZXZlbCArIDEsIGFycmF5LCBuZXdJdGVtLCBhdXRvT3BlbkxldmVscykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZURyYWdnZWRJdGVtc09yZGVyKFxuICAgICAgICBkcmFnZ2VkSXRlbTogVHJlZU5vZGVPYmosXG4gICAgICAgIHRhcmdldEl0ZW06IFRyZWVOb2RlT2JqLFxuICAgICAgICBuZXdQYXJlbnROb2RlOiBUcmVlTm9kZU9iaixcbiAgICAgICAgb2xkUGFyZW50Tm9kZTogVHJlZU5vZGVPYmosXG4gICAgICAgIG9sZFBhcmVudE5vZGVJZFxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVEcmFnZ2VkSXRlbUZyb21Nb0RhdGFMaXN0KGRyYWdnZWRJdGVtKTtcbiAgICAgICAgaWYgKG9sZFBhcmVudE5vZGVJZCAhPT0gJyRSb290Jykge1xuICAgICAgICAgICAgLy8gb2xkUGFyZW50Tm9kZS5jaGlsZHJlbj8ucmVtb3ZlKGRyYWdnZWRJdGVtKTtcbiAgICAgICAgICAgIG9sZFBhcmVudE5vZGUuY2hpbGRyZW4gPSBvbGRQYXJlbnROb2RlLmNoaWxkcmVuLmZpbHRlcigoYykgPT4gYy5EYXRhLklkICE9PSBkcmFnZ2VkSXRlbS5EYXRhLklkKTtcblxuICAgICAgICAgICAgb2xkUGFyZW50Tm9kZS5sZWFmID0gIShvbGRQYXJlbnROb2RlLmNoaWxkcmVuPy5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgIG9sZFBhcmVudE5vZGUuRGF0YS4kSGFzQ2hpbGRyZW4gPSAhb2xkUGFyZW50Tm9kZS5sZWFmO1xuICAgICAgICB9XG4gICAgICAgIGRyYWdnZWRJdGVtLnBhcmVudE5vZGUgPSBuZXdQYXJlbnROb2RlO1xuICAgICAgICB0aGlzLl9zZXRMZXZlbEZvckRyYWdnZWRJdGVtcyhkcmFnZ2VkSXRlbSwgbmV3UGFyZW50Tm9kZS5sZXZlbCB8fCAwKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLmZsYXRNb0RhdGFMaXN0LmluZGV4T2YodGFyZ2V0SXRlbSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gPT09ICdiZWZvcmUnID8gdGFyZ2V0SW5kZXggOiB0aGlzLl9uZXh0SW5kZXhJbk1vRGF0YUxpc3QodGFyZ2V0SXRlbSk7XG4gICAgICAgIHRoaXMuX2FkZERyYWdnZWRJdGVtc1RvTW9EYXRhTGlzdChkcmFnZ2VkSXRlbSwgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FkZERyYWdnZWRJdGVtc1RvTW9EYXRhTGlzdChub2RlOiBUcmVlTm9kZU9iaiwgaSk6IG51bWJlciB7XG4gICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3Quc3BsaWNlKGksIDAsIG5vZGUpO1xuICAgICAgICBub2RlPy5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIGkgPSB0aGlzLl9hZGREcmFnZ2VkSXRlbXNUb01vRGF0YUxpc3QoY2hpbGQsIGkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRHJhZ2dlZEl0ZW1Gcm9tTW9EYXRhTGlzdChub2RlOiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICBub2RlPy5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3JlbW92ZURyYWdnZWRJdGVtRnJvbU1vRGF0YUxpc3QoY2hpbGQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdC5yZW1vdmUobm9kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmV4dEluZGV4SW5Nb0RhdGFMaXN0KG5vZGU6IFRyZWVOb2RlT2JqKTogQXJyYXk8TWV0YW9iamVjdERhdGFNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mbGF0TW9EYXRhTGlzdC5pbmRleE9mKG5vZGUpICsgdGhpcy5fYWxsTmVzdGVkQ2hpbGRlc0NvdW50KG5vZGUpICsgMTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hbGxOZXN0ZWRDaGlsZGVzQ291bnQobm9kZTogVHJlZU5vZGVPYmosIGkgPSAwKTogbnVtYmVyIHtcbiAgICAgICAgbm9kZS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIGlmIChjaGlsZC5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGkgPSB0aGlzLl9hbGxOZXN0ZWRDaGlsZGVzQ291bnQoY2hpbGQsIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Tm9kZUJ5SWQoaWQ6IGFueSk6IFRyZWVOb2RlT2JqIHtcbiAgICAgICAgbGV0IG5vZGU7XG4gICAgICAgIGZvciAoY29uc3QgbW8gb2YgdGhpcy5mbGF0TW9EYXRhTGlzdCkge1xuICAgICAgICAgICAgaWYgKG1vLkRhdGEuSWQgPT09IGlkKSB7XG4gICAgICAgICAgICAgICAgbm9kZSA9IG1vO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldExldmVsRm9yRHJhZ2dlZEl0ZW1zKG5vZGUsIHBhcmVudExldmVsKTogdm9pZCB7XG4gICAgICAgIHBhcmVudExldmVsKys7XG4gICAgICAgIG5vZGUubGV2ZWwgPSBwYXJlbnRMZXZlbDtcbiAgICAgICAgbm9kZT8uY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZXRMZXZlbEZvckRyYWdnZWRJdGVtcyhjaGlsZCwgcGFyZW50TGV2ZWwpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9tb3ZlTm9kZUluc2lkZUFub3RoZXIoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9sZFBhcmVudE5vZGUgPSBzb3VyY2VOb2RlLnBhcmVudE5vZGU7XG4gICAgICAgIGNvbnN0IG9sZFBhcmVudE5vZGVJZCA9IG9sZFBhcmVudE5vZGU/LkRhdGE/LklkIHx8ICckUm9vdCc7XG4gICAgICAgIHRoaXMuX2NoYW5nZURyYWdnZWRJdGVtc09yZGVyKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSwgZGVzdGluYXRpb25Ob2RlLCBvbGRQYXJlbnROb2RlLCBvbGRQYXJlbnROb2RlSWQpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdtb3ZlTm9kZUluc2lkZUFub3RoZXInLCBzb3VyY2VOb2RlLCBkZXN0aW5hdGlvbk5vZGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFyRHJhZ0luZm8oZHJvcHBlZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChkcm9wcGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldERyb3BBY3Rpb25Ub2RvKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmRyb3AtYmVmb3JlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhlbGVtZW50LCAnZHJvcC1iZWZvcmUnKSk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcm9wLWFmdGVyJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhlbGVtZW50LCAnZHJvcC1hZnRlcicpKTtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmRyb3AtaW5zaWRlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhlbGVtZW50LCAnZHJvcC1pbnNpZGUnKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3RvcERyYWdnaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XG4gICAgICAgIHRoaXMuX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaG93RHJhZ0luZm8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsZWFyRHJhZ0luZm8oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX2dldE5vZGVCeUlkKHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQpO1xuICAgICAgICAgICAgY29uc3QgbmV3UGFyZW50SWQgPSBwYXJlbnQ/LnBhcmVudE5vZGU/LkRhdGE/LklkIHx8ICckUm9vdCc7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXROb2RlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjbm9kZS0nICsgdGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZCk7XG4gICAgICAgICAgICBpZiAoIXRhcmdldE5vZGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmV3UGFyZW50SWQgPT09ICckUm9vdCcgJiYgdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gIT09ICdpbnNpZGUnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdENvbnRhaW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmZC1sYXlvdXQtcGFuZWwnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhyb290Q29udGFpbmVyLCAnZHJvcC1pbnNpZGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRhcmdldE5vZGVFbGVtZW50LCAnZHJvcC0nICsgdGhpcy5kcm9wQWN0aW9uVG9kbz8uYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RvRHJhZ01vdmUoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudEZyb21Qb2ludCA9IGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoZXZlbnQucG9pbnRlclBvc2l0aW9uLngsIGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55KTtcblxuICAgICAgICBpZiAoIWVsZW1lbnRGcm9tUG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0b3BEcmFnZ2luZygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldE5vZGVFbGVtZW50ID0gZWxlbWVudEZyb21Qb2ludC5jbGFzc0xpc3QuY29udGFpbnMoJ25vZGUtaXRlbScpXG4gICAgICAgICAgICA/IGVsZW1lbnRGcm9tUG9pbnRcbiAgICAgICAgICAgIDogZWxlbWVudEZyb21Qb2ludC5jbG9zZXN0KCcubm9kZS1pdGVtJyk7XG4gICAgICAgIGlmICghdGFyZ2V0Tm9kZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0b3BEcmFnZ2luZygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8gPSB7XG4gICAgICAgICAgICB0YXJnZXRJZDogdGFyZ2V0Tm9kZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWlkJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UmVjdCA9IHRhcmdldE5vZGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBvbmVUaGlyZCA9IHRhcmdldFJlY3QuaGVpZ2h0IC8gMztcblxuICAgICAgICBpZiAoZXZlbnQucG9pbnRlclBvc2l0aW9uLnkgLSB0YXJnZXRSZWN0LnRvcCA8IG9uZVRoaXJkKSB7XG4gICAgICAgICAgICAvLyBiZWZvcmVcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID0gJ2JlZm9yZSc7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQucG9pbnRlclBvc2l0aW9uLnkgLSB0YXJnZXRSZWN0LnRvcCA+IDIgKiBvbmVUaGlyZCkge1xuICAgICAgICAgICAgLy8gYWZ0ZXJcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID0gJ2FmdGVyJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGluc2lkZVxuICAgICAgICAgICAgdGhpcy5kcm9wQWN0aW9uVG9kby5hY3Rpb24gPSAnaW5zaWRlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXROb0Ryb3BJdGVtcyhldmVudC5zb3VyY2UuZGF0YSk7XG4gICAgICAgIHRoaXMuX3NldE5vRHJvcFN0eWxlKCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLl9nZXROb2RlQnlJZCh0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkKTtcbiAgICAgICAgaWYgKHRhcmdldE5vZGUubm9Ecm9wKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9wRHJhZ2dpbmcoKTtcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID0gJ2ZvcmJpZCc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2hvd0RyYWdJbmZvKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPbmVEZXB0aExldmVsKG5vZGUpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhc09uZURlcHRoID0gdHJ1ZTtcbiAgICAgICAgbm9kZS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZC5EYXRhPy4kSGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBoYXNPbmVEZXB0aCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG5vZGUuaGFzT25lRGVwdGhMZXZlbCA9IGhhc09uZURlcHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZU5vRHJvcHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3RcbiAgICAgICAgICAgIC5maWx0ZXIoKG5vZGUpID0+IG5vZGUubm9Ecm9wKVxuICAgICAgICAgICAgLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICBub2RlLm5vRHJvcCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub2RlLScgKyBub2RlLkRhdGEuSWQpO1xuICAgICAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhlbCwgJ25vLWRyb3AnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXROb0Ryb3BJdGVtcyhkcmFnZ2VkSXRlbUlkKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLl9nZXROb2RlQnlJZChkcmFnZ2VkSXRlbUlkKTtcbiAgICAgICAgbm9kZS5ub0Ryb3AgPSB0cnVlO1xuICAgICAgICBub2RlLmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0Tm9Ecm9wSXRlbXMoY2hpbGQuRGF0YS5JZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE5vRHJvcFN0eWxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0XG4gICAgICAgICAgICAuZmlsdGVyKChub2RlKSA9PiBub2RlLm5vRHJvcClcbiAgICAgICAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI25vZGUtJyArIG5vZGUuRGF0YS5JZCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGVsLCAnbm8tZHJvcCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Nhbk1vdmUoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBjYW5Nb3ZlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHNvdXJjZU5vZGUuRGF0YS5JZCA9PT0gZGVzdGluYXRpb25Ob2RlLkRhdGEuSWQpIHtcbiAgICAgICAgICAgIGNhbk1vdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNvdXJjZU5vZGUuY2hpbGRyZW4/LmZvcmVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgY2FuTW92ZSA9IHRoaXMuX2Nhbk1vdmUoc291cmNlTm9kZSwgY2hpbGQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbk1vdmU7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgX3Nob3dGb3JiaWRkZW5Nb3ZlQWxlcnQoKTogdm9pZCB7XG4gICAgICAgIEJhcnNhQXBpLkJ3Lk1zZy5FcnJvcign2YbZhduM2KrZiNin2YbbjNivINii24zYqtmFINix2Kcg2KjZhyDYstuM2LHYtNin2K7ZhyDYrtmI2K/YtCDZhdmG2KrZgtmEINqp2YbbjNivLicpO1xuICAgIH1cbn1cbiJdfQ==
411
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRyZWUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3JlcG9ydC10cmVlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5RCxPQUFPLEVBQ0gsUUFBUSxFQUtYLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBUTFFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx3QkFBaUQ7SUFMOUY7O1FBWUksY0FBUyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFJckIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBQ3BFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO0tBd2J6RTtJQXZiRyxJQUFZLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUks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LEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZUFBZTtRQUN4QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELG9CQUFvQjtJQUNaLE1BQU0sQ0FBQyx1QkFBdUI7UUFDbEMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs4R0FuY1EsdUJBQXVCO2tHQUF2Qix1QkFBdUIsbUZBSHRCLEVBQUU7OzJGQUdILHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBEaWFsb2dDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEJhcnNhQXBpLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcsXG4gICAgVHJlZU5vZGVPYmosXG4gICAgUmVsYXRpb25JdGVtVHlwZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBTYXBVaVJlcG9ydEJhc2VDb21wb25lbnQgfSBmcm9tICcuL3NhcC11aS1yZXBvcnQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcEluZm8gfSBmcm9tICcuL3VpLXRyZWUtdmlldy91aS10cmVlLXZpZXcuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtcmVwb3J0LXRyZWUtYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50IGV4dGVuZHMgU2FwVWlSZXBvcnRCYXNlQ29tcG9uZW50PFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGRpYWxvZ1NlbGVjdGVkTm9kZTtcbiAgICBzZWxlY3RlZE5vZGUkOiBPYnNlcnZhYmxlPFRyZWVOb2RlT2JqIHwgbnVsbD47XG4gICAgcm9vdCQ6IE9ic2VydmFibGU8VHJlZU5vZGVPYmogfCBudWxsPjtcbiAgICBkcm9wQWN0aW9uVG9kbzogRHJvcEluZm87XG4gICAgX2RyYWdNb3ZlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIGZsYXRNb0RhdGFMaXN0O1xuICAgIGRpYWxvZ1JlZjtcblxuICAgIHByb3RlY3RlZCBfc2VsZWN0ZWROb2RlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmVlTm9kZU9iaiB8IG51bGw+KG51bGwpO1xuICAgIHByb3RlY3RlZCBfcm9vdFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJlZU5vZGVPYmogfCBudWxsPihudWxsKTtcbiAgICBwcml2YXRlIGdldCBfcm9vdCgpOiBUcmVlTm9kZU9iaiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm9vdFNvdXJjZS5nZXRWYWx1ZSgpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUkID0gdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLnJvb3QkID0gdGhpcy5fcm9vdFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucnRsJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UucnRsJDtcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHk7XG4gICAgICAgIHRoaXMuX3Jvb3RTb3VyY2UubmV4dCh0aGlzLmNvbnRleHQucm9vdCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTm9kZVNvdXJjZS5uZXh0KHRoaXMuY29udGV4dC5zZWxOb2RlKTtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcbiAgICAgICAgICAgIHJvb3RDaGFuZ2VkOiAocm9vdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3RTb3VyY2UubmV4dChyb290KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZWxlY3RlZE5vZGVDaGFuZ2U6IChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlU291cmNlLm5leHQobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yb290U291cmNlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgbWFwKChyb290KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb290KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtb0xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0b09wZW5MZXZlbHMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NldHRpbmcuVmlldy5UcmVlQXV0b09wZW5MZXZlbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRBbGxJdGVtc1BlckNoaWxkcmVuKHJvb3QsIDAsIG1vTGlzdCwgcm9vdCwgYXV0b09wZW5MZXZlbHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZsYXRNb0RhdGFMaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdCA9IGZsYXRNb0RhdGFMaXN0Lm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogYy5wYXJlbnROb2RlID8geyAuLi5jLnBhcmVudE5vZGUgfSA6IG51bGxcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xuICAgICAgICB0aGlzLl9kcmFnTW92ZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRlYm91bmNlVGltZSg1MCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RvRHJhZ01vdmUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DcmVhdGVOZXcoZTogUmVsYXRpb25JdGVtVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjcmVhdGVOZXcnLCBlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGRyYWdNb3ZlZChldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcmFnTW92ZS5uZXh0KGV2ZW50KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGRyb3AoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlTm9Ecm9wcygpO1xuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XG4gICAgICAgIGNvbnN0IGRyYWdBY3Rpb24gPSB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbjtcbiAgICAgICAgaWYgKCFkcmFnQWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRyYWdBY3Rpb24gPT09ICdmb3JiaWQnKSB7XG4gICAgICAgICAgICBSZXBvcnRUcmVlQmFzZUNvbXBvbmVudC5fc2hvd0ZvcmJpZGRlbk1vdmVBbGVydCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRyYWdnZWRJdGVtSWQgPSBldmVudC5pdGVtLmRhdGE7XG4gICAgICAgIGNvbnN0IHRhcmdldEl0ZW1JZCA9IHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQ7XG4gICAgICAgIGNvbnN0IGRyYWdnZWRJdGVtID0gdGhpcy5fZ2V0Tm9kZUJ5SWQoZHJhZ2dlZEl0ZW1JZCk7XG4gICAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSB0aGlzLl9nZXROb2RlQnlJZCh0YXJnZXRJdGVtSWQpO1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlSWQgPSBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICBjb25zdCBuZXdQYXJlbnROb2RlSWQgPSB0YXJnZXRJdGVtLnBhcmVudE5vZGU/LkRhdGE/LklkIHx8ICckUm9vdCc7XG4gICAgICAgIGNvbnN0IG9sZFBhcmVudE5vZGUgPSBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlO1xuICAgICAgICBsZXQgbmV3UGFyZW50Tm9kZSA9IHRhcmdldEl0ZW0ucGFyZW50Tm9kZTtcbiAgICAgICAgaWYgKG9sZFBhcmVudE5vZGUgJiYgbmV3UGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgc3dpdGNoIChkcmFnQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgICAgICAgICAgICBjYXNlICdhZnRlcic6IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlcnZlclRhcmdldDogVHJlZU5vZGVPYmogfCBudWxsID0gdGFyZ2V0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRyYWdBY3Rpb24gPT09ICdhZnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5mbGF0TW9EYXRhTGlzdC5maW5kSW5kZXgoKGMpID0+IGMuRGF0YS5JZCA9PT0gdGFyZ2V0SXRlbS5EYXRhLklkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRJbmRleCA9PT0gdGhpcy5mbGF0TW9EYXRhTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyVGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWZ0ZXJUYXJnZXQgPSB0aGlzLmZsYXRNb0RhdGFMaXN0W3RhcmdldEluZGV4ICsgMV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFmdGVyVGFyZ2V0LnBhcmVudE5vZGUgPT09IHRhcmdldEl0ZW0ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJUYXJnZXQgPSBhZnRlclRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJUYXJnZXQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zYXZlVG9TZXJ2ZXIoZHJhZ2dlZEl0ZW0uRGF0YS5JZCwgc2VydmVyVGFyZ2V0LCBuZXdQYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRHJhZ2dlZEl0ZW1zT3JkZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBhcmVudE5vZGVJZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3UGFyZW50Tm9kZUlkICE9PSAnJFJvb3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LmluZGV4T2YoZHJhZ2dlZEl0ZW0pIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LmluZGV4T2YodGFyZ2V0SXRlbS5wYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BhcmVudE5vZGU/LmNoaWxkcmVuLnNwbGljZShpLCAwLCBkcmFnZ2VkSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBzZW5kIG5ldyBtb0RhdGFMaXN0IFRvIHNlcnZlcjpcbiAgICAgICAgICAgICAgICAgICAgLy8gKGRyYWdnZWRJdGVtLCBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlLCBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlLmNoaWxkcmVuPy5pbmRleE9mKGRyYWdnZWRJdGVtKSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY2FzZSAnaW5zaWRlJzoge1xuICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnROb2RlID0gdGFyZ2V0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2F2ZVRvU2VydmVyKGRyYWdnZWRJdGVtLkRhdGEuSWQsIG51bGwsIG5ld1BhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlTm9kZUluc2lkZUFub3RoZXIoZHJhZ2dlZEl0ZW0sIHRhcmdldEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldE9uZURlcHRoTGV2ZWwobmV3UGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB0aGlzLnNldE9uZURlcHRoTGV2ZWwob2xkUGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmViaW5kUm9vdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcm9vdFNvdXJjZS5uZXh0KHRoaXMuX3Jvb3QpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfc2F2ZVRvU2VydmVyKGRyYWdnZWRJZDogc3RyaW5nLCB0YXJnZXQ6IFRyZWVOb2RlT2JqIHwgbnVsbCwgcGFyZW50OiBUcmVlTm9kZU9iaik6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXRJZDogc3RyaW5nID0gdGFyZ2V0ID8gdGFyZ2V0LkRhdGEuSWQgOiAnMCc7XG4gICAgICAgIGNvbnN0IHBhcmVudElkOiBzdHJpbmcgPSBwYXJlbnQuRGF0YS5JZCA9PT0gJyRSb290JyA/ICcwJyA6IHBhcmVudC5EYXRhLklkO1xuICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZCgnTW92ZVRyZWVOb2RlJywgZHJhZ2dlZElkLCB0YXJnZXRJZCwgcGFyZW50SWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25maXJtRGlhbG9nKHNlbGVjdGVkTm9kZTogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShzZWxlY3RlZE5vZGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkaXNtaXNzRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjb2xsYXBzZUFsbCcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVuTW92ZVRvRGlhbG9nKHNvdXJjZU5vZGUsIGRldmljZTogc3RyaW5nLCBkaWFsb2dUbXApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnOiBEaWFsb2dDb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgIGRhdGE6IHsgY29udGV4dDogdGhpcy5jb250ZXh0IH0sXG4gICAgICAgICAgICBtb2JpbGU6IGRldmljZSA9PT0gJ21vYmlsZScsXG4gICAgICAgICAgICBtaW5XaWR0aDogZGV2aWNlID09PSAnbW9iaWxlJyA/ICdhdXRvJyA6IHRoaXMuZGlhbG9nQ29uZmlnLm1pbldpZHRoLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBkZXZpY2UgPT09ICdtb2JpbGUnID8gJ2F1dG8nIDogdGhpcy5kaWFsb2dDb25maWcubWluSGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGRpYWxvZ1RtcCwgY29uZmlnKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKChkZXN0aW5hdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGlmICghZGVzdGluYXRpb25Ob2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2FuTW92ZSA9IHRoaXMuX2Nhbk1vdmUoc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTtcbiAgICAgICAgICAgIGlmIChjYW5Nb3ZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW92ZU5vZGVJbnNpZGVBbm90aGVyKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFJlcG9ydFRyZWVCYXNlQ29tcG9uZW50Ll9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yb290U291cmNlLm5leHQodGhpcy5fcm9vdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZWxlY3ROb2RlSW5Nb3ZlRGlhbG9nKGV2OiB7IG5vZGU6IFRyZWVOb2RlT2JqOyBpbmRleDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZE5vZGUgPSBldi5ub2RlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ2hpbGRyZW4obm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnbG9hZE5vZGVDaGlsZHJlbicsIG5vZGUpO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVHcmlkU2V0dGluZygpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdE5vZGUobm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBub2RlO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChub2RlKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnY2xpY2snKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnc2VsZWN0aW9uY2hhbmdlJyk7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBwcm90ZWN0ZWQgX2Rlc2VsZWN0Tm9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnNlbE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE5vZGVTb3VyY2UubmV4dChudWxsKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JhaXNlUm93Q2xpY2soaW5kZXgsIG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5zZWxOb2RlID0gbW87XG4gICAgICAgIHRoaXMuY29udGV4dD8uZmlyZUV2ZW50KCdkYmxjbGljaycsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNldERyb3BBY3Rpb25Ub2RvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvID0geyB0YXJnZXRJZDogbnVsbCwgYWN0aW9uOiBudWxsIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0QWxsSXRlbXNQZXJDaGlsZHJlbihcbiAgICAgICAgaXRlbTogVHJlZU5vZGVPYmosXG4gICAgICAgIGxldmVsOiBudW1iZXIsXG4gICAgICAgIGFycmF5OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sXG4gICAgICAgIHBhcmVudE5vZGU6IFRyZWVOb2RlT2JqLFxuICAgICAgICBhdXRvT3BlbkxldmVsczogbnVtYmVyXG4gICAgKTogYW55IHtcbiAgICAgICAgbGV0IG5ld0l0ZW06IGFueSA9IGl0ZW07XG4gICAgICAgIGlmIChsZXZlbCA+IDApIHtcbiAgICAgICAgICAgIGl0ZW0ucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICBpdGVtLmxldmVsID0gbGV2ZWw7XG4gICAgICAgICAgICBpdGVtLmlzRXhwYW5kID0gaXRlbS5pc0V4cGFuZCA/PyBhdXRvT3BlbkxldmVscyA+IGxldmVsO1xuICAgICAgICAgICAgaXRlbS52aXNpYmlsaXR5ID0gaXRlbS5wYXJlbnROb2RlLmlzRXhwYW5kO1xuICAgICAgICAgICAgYXJyYXkucHVzaChuZXdJdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0l0ZW0gPSBpdGVtO1xuICAgICAgICAgICAgbmV3SXRlbS5pc0V4cGFuZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gdGhpcy5zZXRPbmVEZXB0aExldmVsKGNoaWxkKSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5jaGlsZHJlbi5tYXAoKGkpID0+IHRoaXMuX2dldEFsbEl0ZW1zUGVyQ2hpbGRyZW4oaSwgbGV2ZWwgKyAxLCBhcnJheSwgbmV3SXRlbSwgYXV0b09wZW5MZXZlbHMpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VEcmFnZ2VkSXRlbXNPcmRlcihcbiAgICAgICAgZHJhZ2dlZEl0ZW06IFRyZWVOb2RlT2JqLFxuICAgICAgICB0YXJnZXRJdGVtOiBUcmVlTm9kZU9iaixcbiAgICAgICAgbmV3UGFyZW50Tm9kZTogVHJlZU5vZGVPYmosXG4gICAgICAgIG9sZFBhcmVudE5vZGU6IFRyZWVOb2RlT2JqLFxuICAgICAgICBvbGRQYXJlbnROb2RlSWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlRHJhZ2dlZEl0ZW1Gcm9tTW9EYXRhTGlzdChkcmFnZ2VkSXRlbSk7XG4gICAgICAgIGlmIChvbGRQYXJlbnROb2RlSWQgIT09ICckUm9vdCcpIHtcbiAgICAgICAgICAgIC8vIG9sZFBhcmVudE5vZGUuY2hpbGRyZW4/LnJlbW92ZShkcmFnZ2VkSXRlbSk7XG4gICAgICAgICAgICBvbGRQYXJlbnROb2RlLmNoaWxkcmVuID0gb2xkUGFyZW50Tm9kZS5jaGlsZHJlbi5maWx0ZXIoKGMpID0+IGMuRGF0YS5JZCAhPT0gZHJhZ2dlZEl0ZW0uRGF0YS5JZCk7XG5cbiAgICAgICAgICAgIG9sZFBhcmVudE5vZGUubGVhZiA9ICEob2xkUGFyZW50Tm9kZS5jaGlsZHJlbj8ubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICBvbGRQYXJlbnROb2RlLkRhdGEuJEhhc0NoaWxkcmVuID0gIW9sZFBhcmVudE5vZGUubGVhZjtcbiAgICAgICAgfVxuICAgICAgICBkcmFnZ2VkSXRlbS5wYXJlbnROb2RlID0gbmV3UGFyZW50Tm9kZTtcbiAgICAgICAgdGhpcy5fc2V0TGV2ZWxGb3JEcmFnZ2VkSXRlbXMoZHJhZ2dlZEl0ZW0sIG5ld1BhcmVudE5vZGUubGV2ZWwgfHwgMCk7XG4gICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5mbGF0TW9EYXRhTGlzdC5pbmRleE9mKHRhcmdldEl0ZW0pO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID09PSAnYmVmb3JlJyA/IHRhcmdldEluZGV4IDogdGhpcy5fbmV4dEluZGV4SW5Nb0RhdGFMaXN0KHRhcmdldEl0ZW0pO1xuICAgICAgICB0aGlzLl9hZGREcmFnZ2VkSXRlbXNUb01vRGF0YUxpc3QoZHJhZ2dlZEl0ZW0sIGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hZGREcmFnZ2VkSXRlbXNUb01vRGF0YUxpc3Qobm9kZTogVHJlZU5vZGVPYmosIGkpOiBudW1iZXIge1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0LnNwbGljZShpLCAwLCBub2RlKTtcbiAgICAgICAgbm9kZT8uY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpID0gdGhpcy5fYWRkRHJhZ2dlZEl0ZW1zVG9Nb0RhdGFMaXN0KGNoaWxkLCBpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZURyYWdnZWRJdGVtRnJvbU1vRGF0YUxpc3Qobm9kZTogVHJlZU5vZGVPYmopOiB2b2lkIHtcbiAgICAgICAgbm9kZT8uY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9yZW1vdmVEcmFnZ2VkSXRlbUZyb21Nb0RhdGFMaXN0KGNoaWxkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZmxhdE1vRGF0YUxpc3QucmVtb3ZlKG5vZGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX25leHRJbmRleEluTW9EYXRhTGlzdChub2RlOiBUcmVlTm9kZU9iaik6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxhdE1vRGF0YUxpc3QuaW5kZXhPZihub2RlKSArIHRoaXMuX2FsbE5lc3RlZENoaWxkZXNDb3VudChub2RlKSArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWxsTmVzdGVkQ2hpbGRlc0NvdW50KG5vZGU6IFRyZWVOb2RlT2JqLCBpID0gMCk6IG51bWJlciB7XG4gICAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBpZiAoY2hpbGQuY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBpID0gdGhpcy5fYWxsTmVzdGVkQ2hpbGRlc0NvdW50KGNoaWxkLCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldE5vZGVCeUlkKGlkOiBhbnkpOiBUcmVlTm9kZU9iaiB7XG4gICAgICAgIGxldCBub2RlO1xuICAgICAgICBmb3IgKGNvbnN0IG1vIG9mIHRoaXMuZmxhdE1vRGF0YUxpc3QpIHtcbiAgICAgICAgICAgIGlmIChtby5EYXRhLklkID09PSBpZCkge1xuICAgICAgICAgICAgICAgIG5vZGUgPSBtbztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRMZXZlbEZvckRyYWdnZWRJdGVtcyhub2RlLCBwYXJlbnRMZXZlbCk6IHZvaWQge1xuICAgICAgICBwYXJlbnRMZXZlbCsrO1xuICAgICAgICBub2RlLmxldmVsID0gcGFyZW50TGV2ZWw7XG4gICAgICAgIG5vZGU/LmNoaWxkcmVuPy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0TGV2ZWxGb3JEcmFnZ2VkSXRlbXMoY2hpbGQsIHBhcmVudExldmVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW92ZU5vZGVJbnNpZGVBbm90aGVyKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlID0gc291cmNlTm9kZS5wYXJlbnROb2RlO1xuICAgICAgICBjb25zdCBvbGRQYXJlbnROb2RlSWQgPSBvbGRQYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEcmFnZ2VkSXRlbXNPcmRlcihzb3VyY2VOb2RlLCBkZXN0aW5hdGlvbk5vZGUsIGRlc3RpbmF0aW9uTm9kZSwgb2xkUGFyZW50Tm9kZSwgb2xkUGFyZW50Tm9kZUlkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnbW92ZU5vZGVJbnNpZGVBbm90aGVyJywgc291cmNlTm9kZSwgZGVzdGluYXRpb25Ob2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhckRyYWdJbmZvKGRyb3BwZWQgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoZHJvcHBlZCkge1xuICAgICAgICAgICAgdGhpcy5fcmVzZXREcm9wQWN0aW9uVG9kbygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcm9wLWJlZm9yZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtYmVmb3JlJykpO1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuZHJvcC1hZnRlcicpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtYWZ0ZXInKSk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcm9wLWluc2lkZScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4gdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgJ2Ryb3AtaW5zaWRlJykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N0b3BEcmFnZ2luZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJEcmFnSW5mbygpO1xuICAgICAgICB0aGlzLl9yZXNldERyb3BBY3Rpb25Ub2RvKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd0RyYWdJbmZvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhckRyYWdJbmZvKCk7XG4gICAgICAgIGlmICh0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLl9nZXROb2RlQnlJZCh0aGlzLmRyb3BBY3Rpb25Ub2RvLnRhcmdldElkKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudElkID0gcGFyZW50Py5wYXJlbnROb2RlPy5EYXRhPy5JZCB8fCAnJFJvb3QnO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI25vZGUtJyArIHRoaXMuZHJvcEFjdGlvblRvZG8udGFyZ2V0SWQpO1xuICAgICAgICAgICAgaWYgKCF0YXJnZXROb2RlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0RHJvcEFjdGlvblRvZG8oKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5ld1BhcmVudElkID09PSAnJFJvb3QnICYmIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uICE9PSAnaW5zaWRlJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RDb250YWluZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZmQtbGF5b3V0LXBhbmVsJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3Mocm9vdENvbnRhaW5lciwgJ2Ryb3AtaW5zaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0YXJnZXROb2RlRWxlbWVudCwgJ2Ryb3AtJyArIHRoaXMuZHJvcEFjdGlvblRvZG8/LmFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kb0RyYWdNb3ZlKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRGcm9tUG9pbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGV2ZW50LnBvaW50ZXJQb3NpdGlvbi54LCBldmVudC5wb2ludGVyUG9zaXRpb24ueSk7XG5cbiAgICAgICAgaWYgKCFlbGVtZW50RnJvbVBvaW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9wRHJhZ2dpbmcoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0YXJnZXROb2RlRWxlbWVudCA9IGVsZW1lbnRGcm9tUG9pbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdub2RlLWl0ZW0nKVxuICAgICAgICAgICAgPyBlbGVtZW50RnJvbVBvaW50XG4gICAgICAgICAgICA6IGVsZW1lbnRGcm9tUG9pbnQuY2xvc2VzdCgnLm5vZGUtaXRlbScpO1xuICAgICAgICBpZiAoIXRhcmdldE5vZGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9wRHJhZ2dpbmcoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvID0ge1xuICAgICAgICAgICAgdGFyZ2V0SWQ6IHRhcmdldE5vZGVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1pZCcpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0YXJnZXROb2RlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgb25lVGhpcmQgPSB0YXJnZXRSZWN0LmhlaWdodCAvIDM7XG5cbiAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55IC0gdGFyZ2V0UmVjdC50b3AgPCBvbmVUaGlyZCkge1xuICAgICAgICAgICAgLy8gYmVmb3JlXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdiZWZvcmUnO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnBvaW50ZXJQb3NpdGlvbi55IC0gdGFyZ2V0UmVjdC50b3AgPiAyICogb25lVGhpcmQpIHtcbiAgICAgICAgICAgIC8vIGFmdGVyXG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdhZnRlcic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpbnNpZGVcbiAgICAgICAgICAgIHRoaXMuZHJvcEFjdGlvblRvZG8uYWN0aW9uID0gJ2luc2lkZSc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0Tm9Ecm9wSXRlbXMoZXZlbnQuc291cmNlLmRhdGEpO1xuICAgICAgICB0aGlzLl9zZXROb0Ryb3BTdHlsZSgpO1xuICAgICAgICBjb25zdCB0YXJnZXROb2RlID0gdGhpcy5fZ2V0Tm9kZUJ5SWQodGhpcy5kcm9wQWN0aW9uVG9kby50YXJnZXRJZCk7XG4gICAgICAgIGlmICh0YXJnZXROb2RlLm5vRHJvcCkge1xuICAgICAgICAgICAgdGhpcy5fc3RvcERyYWdnaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmRyb3BBY3Rpb25Ub2RvLmFjdGlvbiA9ICdmb3JiaWQnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Nob3dEcmFnSW5mbygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0T25lRGVwdGhMZXZlbChub2RlKTogdm9pZCB7XG4gICAgICAgIGxldCBoYXNPbmVEZXB0aCA9IHRydWU7XG4gICAgICAgIG5vZGUuY2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuRGF0YT8uJEhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaGFzT25lRGVwdGggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBub2RlLmhhc09uZURlcHRoTGV2ZWwgPSBoYXNPbmVEZXB0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZW1vdmVOb0Ryb3BzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZsYXRNb0RhdGFMaXN0XG4gICAgICAgICAgICAuZmlsdGVyKChub2RlKSA9PiBub2RlLm5vRHJvcClcbiAgICAgICAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgbm9kZS5ub0Ryb3AgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjbm9kZS0nICsgbm9kZS5EYXRhLklkKTtcbiAgICAgICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsICduby1kcm9wJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Tm9Ecm9wSXRlbXMoZHJhZ2dlZEl0ZW1JZCk6IHZvaWQge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5fZ2V0Tm9kZUJ5SWQoZHJhZ2dlZEl0ZW1JZCk7XG4gICAgICAgIG5vZGUubm9Ecm9wID0gdHJ1ZTtcbiAgICAgICAgbm9kZS5jaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NldE5vRHJvcEl0ZW1zKGNoaWxkLkRhdGEuSWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXROb0Ryb3BTdHlsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mbGF0TW9EYXRhTGlzdFxuICAgICAgICAgICAgLmZpbHRlcigobm9kZSkgPT4gbm9kZS5ub0Ryb3ApXG4gICAgICAgICAgICAuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub2RlLScgKyBub2RlLkRhdGEuSWQpO1xuICAgICAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhlbCwgJ25vLWRyb3AnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5Nb3ZlKHNvdXJjZU5vZGUsIGRlc3RpbmF0aW9uTm9kZSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgY2FuTW92ZSA9IHRydWU7XG4gICAgICAgIGlmIChzb3VyY2VOb2RlLkRhdGEuSWQgPT09IGRlc3RpbmF0aW9uTm9kZS5EYXRhLklkKSB7XG4gICAgICAgICAgICBjYW5Nb3ZlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzb3VyY2VOb2RlLmNoaWxkcmVuPy5mb3JlYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNhbk1vdmUgPSB0aGlzLl9jYW5Nb3ZlKHNvdXJjZU5vZGUsIGNoaWxkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYW5Nb3ZlO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByaXZhdGUgc3RhdGljIF9zaG93Rm9yYmlkZGVuTW92ZUFsZXJ0KCk6IHZvaWQge1xuICAgICAgICBCYXJzYUFwaS5Cdy5Nc2cuRXJyb3IoJ9mG2YXbjNiq2YjYp9mG24zYryDYotuM2KrZhSDYsdinINio2Ycg2LLbjNix2LTYp9iu2Ycg2K7ZiNiv2LQg2YXZhtiq2YLZhCDaqdmG24zYry4nKTtcbiAgICB9XG59XG4iXX0=
@@ -5,6 +5,7 @@ import * as i1 from "@angular/cdk/drag-drop";
5
5
  import * as i2 from "@fundamental-ngx/core/layout-panel";
6
6
  import * as i3 from "../barsa-tree-item/barsa-tree-item.component";
7
7
  import * as i4 from "../no-data/no-data.component";
8
+ import * as i5 from "barsa-novin-ray-core";
8
9
  export class UiTreeViewComponent extends ReportViewBaseComponent {
9
10
  constructor() {
10
11
  super(...arguments);
@@ -41,11 +42,11 @@ export class UiTreeViewComponent extends ReportViewBaseComponent {
41
42
  this.loadChildren.emit(node);
42
43
  }
43
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTreeViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTreeViewComponent, selector: "bsu-tree-view", inputs: { root: "root", selectedNode: "selectedNode", hasDragDrop: "hasDragDrop", isHetro: "isHetro", relationList: "relationList", showOkCancelButtons: "showOkCancelButtons", collapseIcon: "collapseIcon" }, outputs: { checkChange: "checkChange", nodeSelect: "nodeSelect", createNew: "createNew", loadChildren: "loadChildren", nodeViewClick: "nodeViewClick", nodeUlvCommand: "nodeUlvCommand", itemDrop: "itemDrop", itemDragMoved: "itemDragMoved" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) {\n @for (node of moDataList; track node; let index = $index) {\n @if (node.visibility === true && node.parentNode.isExpand) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n }\n }\n } @else {\n <bsu-no-data></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"], dependencies: [{ kind: "directive", type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i2.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i2.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i3.BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: ["node", "selectedNode", "relationList", "hasDragDrop", "hasArrowIcon", "collapseIcon", "loading", "hasChildren", "isExpand", "children", "parentNode", "text", "isHetro"], outputs: ["createNew", "select", "checkChange", "viewClick", "loadChildren", "dragMoved"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UiTreeViewComponent, selector: "bsu-tree-view", inputs: { root: "root", selectedNode: "selectedNode", hasDragDrop: "hasDragDrop", isHetro: "isHetro", relationList: "relationList", showOkCancelButtons: "showOkCancelButtons", collapseIcon: "collapseIcon" }, outputs: { checkChange: "checkChange", nodeSelect: "nodeSelect", createNew: "createNew", loadChildren: "loadChildren", nodeViewClick: "nodeViewClick", nodeUlvCommand: "nodeUlvCommand", itemDrop: "itemDrop", itemDragMoved: "itemDragMoved" }, usesInheritance: true, ngImport: i0, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\n (node.visibility === true && node.parentNode | isExpandedNode) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n } } } @else {\n <bsu-no-data></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"], dependencies: [{ kind: "directive", type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: i2.LayoutPanelComponent, selector: "fd-layout-panel", inputs: ["backgroundImage", "id", "transparent"] }, { kind: "component", type: i2.LayoutPanelBodyComponent, selector: "fd-layout-panel-body", inputs: ["bleed"] }, { kind: "component", type: i3.BarsaTreeItemComponent, selector: "bsu-barsa-tree-item", inputs: ["node", "selectedNode", "relationList", "hasDragDrop", "hasArrowIcon", "collapseIcon", "loading", "hasChildren", "isExpand", "children", "parentNode", "text", "isHetro"], outputs: ["createNew", "select", "checkChange", "viewClick", "loadChildren", "dragMoved"] }, { kind: "component", type: i4.NoDataComponent, selector: "bsu-no-data", inputs: ["simple"] }, { kind: "pipe", type: i5.IsExpandedNodePipe, name: "isExpandedNode" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
46
  }
46
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UiTreeViewComponent, decorators: [{
47
48
  type: Component,
48
- args: [{ selector: 'bsu-tree-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) {\n @for (node of moDataList; track node; let index = $index) {\n @if (node.visibility === true && node.parentNode.isExpand) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n }\n }\n } @else {\n <bsu-no-data></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"] }]
49
+ args: [{ selector: 'bsu-tree-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-layout-panel>\n <fd-layout-panel-body [bleed]=\"true\">\n <ul\n cdkDropList\n [cdkDropListData]=\"moDataList\"\n [id]=\"'$Root'\"\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListSortingDisabled]=\"true\"\n >\n @if (moDataList?.length > 0) { @for (node of moDataList; track node.key; let index = $index) { @if\n (node.visibility === true && node.parentNode | isExpandedNode) {\n <bsu-barsa-tree-item\n class=\"node-item\"\n [attr.data-id]=\"node.Data.Id\"\n [attr.id]=\"'node-' + node.Data.Id\"\n [style.cursor]=\"cursor\"\n [node]=\"node\"\n [level]=\"node.level\"\n [styleIndex]=\"node.Data.$StyleIndex\"\n [isChecked]=\"selectedNode?.Data?.Id === node.Data.Id || (inDialog && node.Data.$IsChecked)\"\n [hasChildren]=\"node.Data.$HasChildren\"\n [loading]=\"node.loading\"\n [inDialog]=\"inDialog\"\n [isMultiSelect]=\"isMultiSelect\"\n [isExpand]=\"node.isExpand\"\n [isHetro]=\"isHetro\"\n [parentNode]=\"node.parentNode\"\n [text]=\"node.text\"\n [collapseIcon]=\"collapseIcon\"\n [navigationArrow]=\"navigationArrow\"\n [rtl]=\"rtl\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [showOkCancelButtons]=\"showOkCancelButtons\"\n [selectedNode]=\"selectedNode\"\n [conditionalFormats]=\"conditionalFormats\"\n [contextMenuItems]=\"contextMenuItems\"\n [isCheckList]=\"isCheckList\"\n [deviceName]=\"deviceName\"\n [access]=\"access\"\n [hasDragDrop]=\"hasDragDrop\"\n (checkChange)=\"onCheckChange($event)\"\n (select)=\"onNodeSelect(node, index)\"\n (ulvCommandClick)=\"onNodeUlvCommand(node, index)\"\n (viewClick)=\"onNodeViewClick(node, index)\"\n (loadChildren)=\"onLoadChildren(node)\"\n (dragMoved)=\"onDragMoved($event)\"\n [relationList]=\"relationList\"\n (createNew)=\"createNew.emit($event)\"\n >\n </bsu-barsa-tree-item>\n } } } @else {\n <bsu-no-data></bsu-no-data>\n }\n </ul>\n </fd-layout-panel-body>\n</fd-layout-panel>\n\n<!--noData-->\n", styles: ["*{font-family:Lato}.cdk-drag-placeholder{display:none}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 3px 3px -2px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;background:#fff;opacity:.3}ul{padding-inline-start:0}.drop-inside{border:1px solid #00f}.drop-inside ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-before{border-top:1px solid #00f}.drop-before ::ng-deep .fd-list__item{background-color:#dce9f6!important}.drop-after{border-bottom:1px solid #00f}.drop-after ::ng-deep .fd-list__item{background-color:#dce9f6!important}.no-drop ::ng-deep li,.no-drop li .cdk-drag-handle{cursor:no-drop!important}.node-title{padding:15px;margin:5px;background:#eee;cursor:grab}.node-children{position:relative;transition:height .2s;margin-left:40px}.item-notes{margin-left:20px;color:#aaa}\n"] }]
49
50
  }], propDecorators: { root: [{
50
51
  type: Input
51
52
  }], selectedNode: [{
@@ -77,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
77
78
  }], itemDragMoved: [{
78
79
  type: Output
79
80
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXRyZWUtdmlldy91aS10cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS12aWV3L3VpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBMkIsdUJBQXVCLEVBQWlDLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQWF2SCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQWdEO0lBTnpGOztRQVNhLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBTWxCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBSXBDLENBQUM7UUFFSyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBR25DLENBQUM7UUFDSyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFakQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBR3RDLENBQUM7UUFDSyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUd2QyxDQUFDO1FBQ0ssYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWxELFdBQU0sR0FBRyxTQUFTLENBQUM7S0E0QnRCO0lBMUJHLE1BQU0sQ0FBQyxNQUFNO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFpQixFQUFFLEtBQUs7UUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxLQUFhO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFpQixFQUFFLEtBQWE7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQU07UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBNURRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDZnQkNkaEMsNC9FQStEQTs7MkZEakRhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxVQUFVO3NCQUFuQixNQUFNO2dCQUlHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUlHLGNBQWM7c0JBQXZCLE1BQU07Z0JBSUcsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZywgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQsIFRyZWVOb2RlT2JqLCBSZWxhdGlvbkl0ZW1UeXBlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BJbmZvIHtcbiAgICB0YXJnZXRJZDogc3RyaW5nIHwgbnVsbDtcbiAgICBhY3Rpb24/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS10cmVlLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS10cmVlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLXRyZWUtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpVHJlZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4ge1xuICAgIEBJbnB1dCgpIHJvb3Q6IGFueTtcbiAgICBASW5wdXQoKSBzZWxlY3RlZE5vZGU6IGFueTtcbiAgICBASW5wdXQoKSBoYXNEcmFnRHJvcCA9IHRydWU7XG4gICAgQElucHV0KCkgaXNIZXRybzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByZWxhdGlvbkxpc3Q6IFJlbGF0aW9uSXRlbVR5cGVbXTtcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xuICAgIEBJbnB1dCgpIGNvbGxhcHNlSWNvbjogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIGNoZWNrQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIG5vZGU6IFRyZWVOb2RlT2JqO1xuICAgICAgICBpbmRleDogbnVtYmVyO1xuICAgICAgICBjaGVja2VkOiBib29sZWFuO1xuICAgIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgbm9kZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuICAgIEBPdXRwdXQoKSBjcmVhdGVOZXcgPSBuZXcgRXZlbnRFbWl0dGVyPFJlbGF0aW9uSXRlbVR5cGU+KCk7XG5cbiAgICBAT3V0cHV0KCkgbG9hZENoaWxkcmVuID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlTm9kZU9iaj4oKTtcbiAgICBAT3V0cHV0KCkgbm9kZVZpZXdDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuICAgIEBPdXRwdXQoKSBub2RlVWx2Q29tbWFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9PigpO1xuICAgIEBPdXRwdXQoKSBpdGVtRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBpdGVtRHJhZ01vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjdXJzb3IgPSAnZGVmYXVsdCc7XG5cbiAgICBvbkRyb3AoJGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbURyb3AuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRHJhZ01vdmVkKCRldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1EcmFnTW92ZWQuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uTm9kZVNlbGVjdChub2RlOiBUcmVlTm9kZU9iaiwgaW5kZXgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub2RlU2VsZWN0LmVtaXQoeyBub2RlLCBpbmRleCB9KTtcbiAgICB9XG5cbiAgICBvbk5vZGVVbHZDb21tYW5kKG5vZGU6IFRyZWVOb2RlT2JqLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9kZVVsdkNvbW1hbmQuZW1pdCh7IG5vZGUsIGluZGV4IH0pO1xuICAgIH1cblxuICAgIG9uTm9kZVZpZXdDbGljayhub2RlOiBUcmVlTm9kZU9iaiwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm5vZGVWaWV3Q2xpY2suZW1pdCh7IG5vZGUsIGluZGV4IH0pO1xuICAgIH1cbiAgICBvbkNoZWNrQ2hhbmdlKCRldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoZWNrQ2hhbmdlLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkxvYWRDaGlsZHJlbihub2RlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4uZW1pdChub2RlKTtcbiAgICB9XG59XG4iLCI8ZmQtbGF5b3V0LXBhbmVsPlxuICA8ZmQtbGF5b3V0LXBhbmVsLWJvZHkgW2JsZWVkXT1cInRydWVcIj5cbiAgICA8dWxcbiAgICAgIGNka0Ryb3BMaXN0XG4gICAgICBbY2RrRHJvcExpc3REYXRhXT1cIm1vRGF0YUxpc3RcIlxuICAgICAgW2lkXT1cIickUm9vdCdcIlxuICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICBAaWYgKG1vRGF0YUxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgQGZvciAobm9kZSBvZiBtb0RhdGFMaXN0OyB0cmFjayBub2RlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgICBAaWYgKG5vZGUudmlzaWJpbGl0eSA9PT0gdHJ1ZSAmJiBub2RlLnBhcmVudE5vZGUuaXNFeHBhbmQpIHtcbiAgICAgICAgICAgIDxic3UtYmFyc2EtdHJlZS1pdGVtXG4gICAgICAgICAgICAgIGNsYXNzPVwibm9kZS1pdGVtXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJub2RlLkRhdGEuSWRcIlxuICAgICAgICAgICAgICBbYXR0ci5pZF09XCInbm9kZS0nICsgbm9kZS5EYXRhLklkXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJjdXJzb3JcIlxuICAgICAgICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgICAgICAgW2xldmVsXT1cIm5vZGUubGV2ZWxcIlxuICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJub2RlLkRhdGEuJFN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cInNlbGVjdGVkTm9kZT8uRGF0YT8uSWQgPT09IG5vZGUuRGF0YS5JZCB8fCAoaW5EaWFsb2cgJiYgbm9kZS5EYXRhLiRJc0NoZWNrZWQpXCJcbiAgICAgICAgICAgICAgW2hhc0NoaWxkcmVuXT1cIm5vZGUuRGF0YS4kSGFzQ2hpbGRyZW5cIlxuICAgICAgICAgICAgICBbbG9hZGluZ109XCJub2RlLmxvYWRpbmdcIlxuICAgICAgICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICAgICAgICBbaXNNdWx0aVNlbGVjdF09XCJpc011bHRpU2VsZWN0XCJcbiAgICAgICAgICAgICAgW2lzRXhwYW5kXT1cIm5vZGUuaXNFeHBhbmRcIlxuICAgICAgICAgICAgICBbaXNIZXRyb109XCJpc0hldHJvXCJcbiAgICAgICAgICAgICAgW3BhcmVudE5vZGVdPVwibm9kZS5wYXJlbnROb2RlXCJcbiAgICAgICAgICAgICAgW3RleHRdPVwibm9kZS50ZXh0XCJcbiAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJjb2xsYXBzZUljb25cIlxuICAgICAgICAgICAgICBbbmF2aWdhdGlvbkFycm93XT1cIm5hdmlnYXRpb25BcnJvd1wiXG4gICAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgW2FsbENvbHVtbnNdPVwiYWxsQ29sdW1uc1wiXG4gICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWROb2RlXT1cInNlbGVjdGVkTm9kZVwiXG4gICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgIFtpc0NoZWNrTGlzdF09XCJpc0NoZWNrTGlzdFwiXG4gICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgICAgICAgIFtoYXNEcmFnRHJvcF09XCJoYXNEcmFnRHJvcFwiXG4gICAgICAgICAgICAgIChjaGVja0NoYW5nZSk9XCJvbkNoZWNrQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uTm9kZVNlbGVjdChub2RlLCBpbmRleClcIlxuICAgICAgICAgICAgICAodWx2Q29tbWFuZENsaWNrKT1cIm9uTm9kZVVsdkNvbW1hbmQobm9kZSwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgKHZpZXdDbGljayk9XCJvbk5vZGVWaWV3Q2xpY2sobm9kZSwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgKGxvYWRDaGlsZHJlbik9XCJvbkxvYWRDaGlsZHJlbihub2RlKVwiXG4gICAgICAgICAgICAgIChkcmFnTW92ZWQpPVwib25EcmFnTW92ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtyZWxhdGlvbkxpc3RdPVwicmVsYXRpb25MaXN0XCJcbiAgICAgICAgICAgICAgKGNyZWF0ZU5ldyk9XCJjcmVhdGVOZXcuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9ic3UtYmFyc2EtdHJlZS1pdGVtPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxic3Utbm8tZGF0YT48L2JzdS1uby1kYXRhPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XG48L2ZkLWxheW91dC1wYW5lbD5cblxuPCEtLW5vRGF0YS0tPlxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLXRyZWUtdmlldy91aS10cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktdHJlZS12aWV3L3VpLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBMkIsdUJBQXVCLEVBQWlDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFhdkgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUFnRDtJQU56Rjs7UUFTYSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQU1sQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUlwQyxDQUFDO1FBRUssZUFBVSxHQUFHLElBQUksWUFBWSxFQUduQyxDQUFDO1FBQ0ssY0FBUyxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRWpELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUMvQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUd0QyxDQUFDO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFHdkMsQ0FBQztRQUNLLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsRCxXQUFNLEdBQUcsU0FBUyxDQUFDO0tBNEJ0QjtJQTFCRyxNQUFNLENBQUMsTUFBTTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBTTtRQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBaUIsRUFBRSxLQUFLO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWlCLEVBQUUsS0FBYTtRQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBaUIsRUFBRSxLQUFhO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELGFBQWEsQ0FBQyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQTVEUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw2Z0JDZGhDLHluRkE0REE7OzJGRDlDYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBTUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFJRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFJRyxjQUFjO3NCQUF2QixNQUFNO2dCQUlHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcsIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50LCBUcmVlTm9kZU9iaiwgUmVsYXRpb25JdGVtVHlwZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wSW5mbyB7XG4gICAgdGFyZ2V0SWQ6IHN0cmluZyB8IG51bGw7XG4gICAgYWN0aW9uPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdHJlZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS10cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaVRyZWVWaWV3Q29tcG9uZW50IGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8VWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+IHtcbiAgICBASW5wdXQoKSByb290OiBhbnk7XG4gICAgQElucHV0KCkgc2VsZWN0ZWROb2RlOiBhbnk7XG4gICAgQElucHV0KCkgaGFzRHJhZ0Ryb3AgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGlzSGV0cm86IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVsYXRpb25MaXN0OiBSZWxhdGlvbkl0ZW1UeXBlW107XG4gICAgQElucHV0KCkgc2hvd09rQ2FuY2VsQnV0dG9ucztcbiAgICBASW5wdXQoKSBjb2xsYXBzZUljb246IHN0cmluZztcblxuICAgIEBPdXRwdXQoKSBjaGVja0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgICAgICBub2RlOiBUcmVlTm9kZU9iajtcbiAgICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICAgICAgY2hlY2tlZDogYm9vbGVhbjtcbiAgICB9PigpO1xuXG4gICAgQE91dHB1dCgpIG5vZGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgbm9kZTogVHJlZU5vZGVPYmo7XG4gICAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgfT4oKTtcbiAgICBAT3V0cHV0KCkgY3JlYXRlTmV3ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkl0ZW1UeXBlPigpO1xuXG4gICAgQE91dHB1dCgpIGxvYWRDaGlsZHJlbiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZU5vZGVPYmo+KCk7XG4gICAgQE91dHB1dCgpIG5vZGVWaWV3Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgbm9kZTogVHJlZU5vZGVPYmo7XG4gICAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgfT4oKTtcbiAgICBAT3V0cHV0KCkgbm9kZVVsdkNvbW1hbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAgbm9kZTogVHJlZU5vZGVPYmo7XG4gICAgICAgIGluZGV4OiBudW1iZXI7XG4gICAgfT4oKTtcbiAgICBAT3V0cHV0KCkgaXRlbURyb3AgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgaXRlbURyYWdNb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY3Vyc29yID0gJ2RlZmF1bHQnO1xuXG4gICAgb25Ecm9wKCRldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1Ecm9wLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkRyYWdNb3ZlZCgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtRHJhZ01vdmVkLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbk5vZGVTZWxlY3Qobm9kZTogVHJlZU5vZGVPYmosIGluZGV4KTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9kZVNlbGVjdC5lbWl0KHsgbm9kZSwgaW5kZXggfSk7XG4gICAgfVxuXG4gICAgb25Ob2RlVWx2Q29tbWFuZChub2RlOiBUcmVlTm9kZU9iaiwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm5vZGVVbHZDb21tYW5kLmVtaXQoeyBub2RlLCBpbmRleCB9KTtcbiAgICB9XG5cbiAgICBvbk5vZGVWaWV3Q2xpY2sobm9kZTogVHJlZU5vZGVPYmosIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub2RlVmlld0NsaWNrLmVtaXQoeyBub2RlLCBpbmRleCB9KTtcbiAgICB9XG4gICAgb25DaGVja0NoYW5nZSgkZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGVja0NoYW5nZS5lbWl0KCRldmVudCk7XG4gICAgfVxuXG4gICAgb25Mb2FkQ2hpbGRyZW4obm9kZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZENoaWxkcmVuLmVtaXQobm9kZSk7XG4gICAgfVxufVxuIiwiPGZkLWxheW91dC1wYW5lbD5cbiAgICA8ZmQtbGF5b3V0LXBhbmVsLWJvZHkgW2JsZWVkXT1cInRydWVcIj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJtb0RhdGFMaXN0XCJcbiAgICAgICAgICAgIFtpZF09XCInJFJvb3QnXCJcbiAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKG1vRGF0YUxpc3Q/Lmxlbmd0aCA+IDApIHsgQGZvciAobm9kZSBvZiBtb0RhdGFMaXN0OyB0cmFjayBub2RlLmtleTsgbGV0IGluZGV4ID0gJGluZGV4KSB7IEBpZlxuICAgICAgICAgICAgKG5vZGUudmlzaWJpbGl0eSA9PT0gdHJ1ZSAmJiBub2RlLnBhcmVudE5vZGUgfCBpc0V4cGFuZGVkTm9kZSkge1xuICAgICAgICAgICAgPGJzdS1iYXJzYS10cmVlLWl0ZW1cbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vZGUtaXRlbVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJub2RlLkRhdGEuSWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIidub2RlLScgKyBub2RlLkRhdGEuSWRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiY3Vyc29yXCJcbiAgICAgICAgICAgICAgICBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibm9kZS5sZXZlbFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwibm9kZS5EYXRhLiRTdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cInNlbGVjdGVkTm9kZT8uRGF0YT8uSWQgPT09IG5vZGUuRGF0YS5JZCB8fCAoaW5EaWFsb2cgJiYgbm9kZS5EYXRhLiRJc0NoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICBbaGFzQ2hpbGRyZW5dPVwibm9kZS5EYXRhLiRIYXNDaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwibm9kZS5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgICBbaW5EaWFsb2ddPVwiaW5EaWFsb2dcIlxuICAgICAgICAgICAgICAgIFtpc011bHRpU2VsZWN0XT1cImlzTXVsdGlTZWxlY3RcIlxuICAgICAgICAgICAgICAgIFtpc0V4cGFuZF09XCJub2RlLmlzRXhwYW5kXCJcbiAgICAgICAgICAgICAgICBbaXNIZXRyb109XCJpc0hldHJvXCJcbiAgICAgICAgICAgICAgICBbcGFyZW50Tm9kZV09XCJub2RlLnBhcmVudE5vZGVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0XT1cIm5vZGUudGV4dFwiXG4gICAgICAgICAgICAgICAgW2NvbGxhcHNlSWNvbl09XCJjb2xsYXBzZUljb25cIlxuICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uQXJyb3ddPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtzaG93T2tDYW5jZWxCdXR0b25zXT1cInNob3dPa0NhbmNlbEJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZE5vZGVdPVwic2VsZWN0ZWROb2RlXCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tMaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgICAgICBbYWNjZXNzXT1cImFjY2Vzc1wiXG4gICAgICAgICAgICAgICAgW2hhc0RyYWdEcm9wXT1cImhhc0RyYWdEcm9wXCJcbiAgICAgICAgICAgICAgICAoY2hlY2tDaGFuZ2UpPVwib25DaGVja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uTm9kZVNlbGVjdChub2RlLCBpbmRleClcIlxuICAgICAgICAgICAgICAgICh1bHZDb21tYW5kQ2xpY2spPVwib25Ob2RlVWx2Q29tbWFuZChub2RlLCBpbmRleClcIlxuICAgICAgICAgICAgICAgICh2aWV3Q2xpY2spPVwib25Ob2RlVmlld0NsaWNrKG5vZGUsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgKGxvYWRDaGlsZHJlbik9XCJvbkxvYWRDaGlsZHJlbihub2RlKVwiXG4gICAgICAgICAgICAgICAgKGRyYWdNb3ZlZCk9XCJvbkRyYWdNb3ZlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcmVsYXRpb25MaXN0XT1cInJlbGF0aW9uTGlzdFwiXG4gICAgICAgICAgICAgICAgKGNyZWF0ZU5ldyk9XCJjcmVhdGVOZXcuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvYnN1LWJhcnNhLXRyZWUtaXRlbT5cbiAgICAgICAgICAgIH0gfSB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxic3Utbm8tZGF0YT48L2JzdS1uby1kYXRhPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIDwvZmQtbGF5b3V0LXBhbmVsLWJvZHk+XG48L2ZkLWxheW91dC1wYW5lbD5cblxuPCEtLW5vRGF0YS0tPlxuIl19
@@ -4,12 +4,13 @@ import { delay, takeUntil } from 'rxjs/operators';
4
4
  import { BaseComponent, BarsaApi } from 'barsa-novin-ray-core';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@fundamental-ngx/core";
7
- import * as i2 from "@fundamental-ngx/core/button";
8
- import * as i3 from "@fundamental-ngx/core/dialog";
9
- import * as i4 from "@fundamental-ngx/core/title";
10
- import * as i5 from "../mask/mask.component";
11
- import * as i6 from "@angular/common";
12
- import * as i7 from "barsa-novin-ray-core";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@fundamental-ngx/core/button";
9
+ import * as i4 from "@fundamental-ngx/core/dialog";
10
+ import * as i5 from "@fundamental-ngx/core/title";
11
+ import * as i6 from "@fundamental-ngx/core/text";
12
+ import * as i7 from "../mask/mask.component";
13
+ import * as i8 from "barsa-novin-ray-core";
13
14
  export class UlMsgBoxAdapterComponent extends BaseComponent {
14
15
  constructor(_dialogService, _contentDensityService) {
15
16
  super();
@@ -26,9 +27,10 @@ export class UlMsgBoxAdapterComponent extends BaseComponent {
26
27
  this.wait = (msg, title, object) => {
27
28
  object.iconType = this.getMsgType(object.icon);
28
29
  const waitDialog = this._dialogService.open(this.waitRef, {
29
- ...object,
30
+ data: { ...object, msg, title },
30
31
  responsivePadding: true,
31
- mobile: true
32
+ mobile: true,
33
+ containerClass: 'xxxxx'
32
34
  });
33
35
  if (!object.duration) {
34
36
  return;
@@ -100,11 +102,11 @@ export class UlMsgBoxAdapterComponent extends BaseComponent {
100
102
  return '';
101
103
  }
102
104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlMsgBoxAdapterComponent, deps: [{ token: i1.DialogService }, { token: i1.ContentDensityService }], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlMsgBoxAdapterComponent, selector: "bsu-ul-msg-box-adapter", inputs: { context: "context" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true }, { propertyName: "waitRef", first: true, predicate: ["waitRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #waitRef>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>\n {{ dialogConfig.title }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body style=\"padding: 15px; max-width: 480px\">\n <div style=\"min-height: 125px\">\n <label fd-label [type]=\"dialogConfig.iconType\" [innerHtml]=\"dialogConfig.msg\"> </label>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n @for (btn of dialogConfig.buttons | keyvalue: keepOrder; track btn) {\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"\r\n btn.key === 'ok' || btn.key === 'yes'\r\n ? 'emphasized'\r\n : btn.key === 'no'\r\n ? 'standard'\r\n : 'transparent'\r\n \"\r\n [label]=\"btn.key + '' | titlecase | bbbTranslate\"\n (click)=\"onButton(btn, dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i3.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i3.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i3.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i4.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i5.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: UlMsgBoxAdapterComponent, selector: "bsu-ul-msg-box-adapter", inputs: { context: "context" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true }, { propertyName: "waitRef", first: true, predicate: ["waitRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #waitRef [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\">\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-body\n style=\"background-color: transparent\"\n class=\"tw-flex tw-flex-col tw-items-center tw-justify-center\"\n >\n @if(dialog.data && dialog.data.title){\n <div\n _ngcontent-ng-c678863778=\"\"\n class=\"tw-flex tw-flex-col tw-justify-start tw-items-center tw-p-4\"\n style=\"\n color: white;\n min-width: 210px;\n width: auto;\n height: 160px;\n background: white;\n position: relative;\n gap: 1rem;\n border-radius: 0.625rem;\n \"\n >\n <h3 fd-title *ngIf=\"dialog.data?.title\">{{ dialog.data?.title }}</h3>\n <fd-text *ngIf=\"dialog.data?.msg\" [text]=\"dialog.data?.msg\" [whitespaces]=\"true\"></fd-text>\n <div style=\"position: relative; width: 100%\">\n <bsu-mask></bsu-mask>\n </div>\n </div>\n }@else {\n <bsu-mask></bsu-mask>\n }\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>\n {{ dialogConfig.title }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body style=\"padding: 15px; max-width: 480px\">\n <div style=\"min-height: 125px\">\n <label fd-label [type]=\"dialogConfig.iconType\" [innerHtml]=\"dialogConfig.msg\"> </label>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n @for (btn of dialogConfig.buttons | keyvalue: keepOrder; track btn) {\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"\n btn.key === 'ok' || btn.key === 'yes'\n ? 'emphasized'\n : btn.key === 'no'\n ? 'standard'\n : 'transparent'\n \"\n [label]=\"btn.key + '' | titlecase | bbbTranslate\"\n (click)=\"onButton(btn, dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i4.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i4.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i4.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i4.DialogTemplateDirective, selector: "[fdDialogTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "component", type: i5.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "component", type: i7.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i8.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
106
  }
105
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: UlMsgBoxAdapterComponent, decorators: [{
106
108
  type: Component,
107
- args: [{ selector: 'bsu-ul-msg-box-adapter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #waitRef>\n <bsu-mask></bsu-mask>\n</ng-template>\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>\n {{ dialogConfig.title }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body style=\"padding: 15px; max-width: 480px\">\n <div style=\"min-height: 125px\">\n <label fd-label [type]=\"dialogConfig.iconType\" [innerHtml]=\"dialogConfig.msg\"> </label>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n @for (btn of dialogConfig.buttons | keyvalue: keepOrder; track btn) {\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"\r\n btn.key === 'ok' || btn.key === 'yes'\r\n ? 'emphasized'\r\n : btn.key === 'no'\r\n ? 'standard'\r\n : 'transparent'\r\n \"\r\n [label]=\"btn.key + '' | titlecase | bbbTranslate\"\n (click)=\"onButton(btn, dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
109
+ args: [{ selector: 'bsu-ul-msg-box-adapter', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #waitRef [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\">\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-body\n style=\"background-color: transparent\"\n class=\"tw-flex tw-flex-col tw-items-center tw-justify-center\"\n >\n @if(dialog.data && dialog.data.title){\n <div\n _ngcontent-ng-c678863778=\"\"\n class=\"tw-flex tw-flex-col tw-justify-start tw-items-center tw-p-4\"\n style=\"\n color: white;\n min-width: 210px;\n width: auto;\n height: 160px;\n background: white;\n position: relative;\n gap: 1rem;\n border-radius: 0.625rem;\n \"\n >\n <h3 fd-title *ngIf=\"dialog.data?.title\">{{ dialog.data?.title }}</h3>\n <fd-text *ngIf=\"dialog.data?.msg\" [text]=\"dialog.data?.msg\" [whitespaces]=\"true\"></fd-text>\n <div style=\"position: relative; width: 100%\">\n <bsu-mask></bsu-mask>\n </div>\n </div>\n }@else {\n <bsu-mask></bsu-mask>\n }\n </fd-dialog-body>\n </fd-dialog>\n</ng-template>\n\n<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #templateRef>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title>\n {{ dialogConfig.title }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body style=\"padding: 15px; max-width: 480px\">\n <div style=\"min-height: 125px\">\n <label fd-label [type]=\"dialogConfig.iconType\" [innerHtml]=\"dialogConfig.msg\"> </label>\n </div>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n @for (btn of dialogConfig.buttons | keyvalue: keepOrder; track btn) {\n <fd-dialog-footer-button>\n <button\n fd-button\n fd-dialog-decisive-button\n [fdType]=\"\n btn.key === 'ok' || btn.key === 'yes'\n ? 'emphasized'\n : btn.key === 'no'\n ? 'standard'\n : 'transparent'\n \"\n [label]=\"btn.key + '' | titlecase | bbbTranslate\"\n (click)=\"onButton(btn, dialog, dialogConfig)\"\n ></button>\n </fd-dialog-footer-button>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n" }]
108
110
  }], ctorParameters: () => [{ type: i1.DialogService }, { type: i1.ContentDensityService }], propDecorators: { templateRef: [{
109
111
  type: ViewChild,
110
112
  args: ['templateRef']
@@ -114,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
114
116
  }], context: [{
115
117
  type: Input
116
118
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWwtbXNnLWJveC1hZGFwdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VsLW1zZy1ib3gtYWRhcHRlci91bC1tc2ctYm94LWFkYXB0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWwtbXNnLWJveC1hZGFwdGVyL3VsLW1zZy1ib3gtYWRhcHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7QUFrQi9ELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBS3ZELFlBQW9CLGNBQTZCLEVBQVUsc0JBQTZDO1FBQ3BHLEtBQUssRUFBRSxDQUFDO1FBRFEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBNkJ4RyxTQUFJLEdBQUcsQ0FBQyxNQUF3QixFQUFRLEVBQUU7WUFDdEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUN2QyxHQUFHLE1BQU07Z0JBQ1QsaUJBQWlCLEVBQUUsSUFBSTthQUMxQixDQUFDLENBQUM7WUFDSCxv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LE1BQU0sQ0FBQyxJQUFJO2dCQUN4QixPQUFPLGFBQWEsQ0FBQztZQUN6QixLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQzNCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUTtnQkFDNUIsT0FBTyxTQUFTLENBQUM7WUFDckIsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUN6QixPQUFPLE9BQU8sQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUtELGFBQWEsQ0FBQyxJQUFrQjtRQUM1QixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ1gsS0FBSyxJQUFJO2dCQUNMLE9BQU8sT0FBTyxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLEtBQUs7Z0JBQ04sT0FBTyxLQUFLLENBQUM7WUFDakIsS0FBSyxJQUFJO2dCQUNMLE9BQU8sS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBekdRLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHNUQ3ZCckMsMDBDQXNDQTs7MkZEZmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTtzSEFHckIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNGLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDWCxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBDb250ZW50RGVuc2l0eVNlcnZpY2UsIERpYWxvZ0NvbmZpZywgRGlhbG9nUmVmLCBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhcnNhQXBpIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuaW50ZXJmYWNlIE1lc3NhZ2VCb3hPYmplY3QgZXh0ZW5kcyBEaWFsb2dDb25maWcge1xyXG4gICAgc2NvcGU6IGFueTtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBkZWxheTogbnVtYmVyO1xyXG4gICAgbXNnOiBzdHJpbmc7XHJcbiAgICBidXR0b25zOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICAgIGljb246IHN0cmluZztcclxuICAgIGljb25UeXBlOiBzdHJpbmc7XHJcbiAgICBmbjogKGtleTogc3RyaW5nKSA9PiB2b2lkO1xyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWwtbXNnLWJveC1hZGFwdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91bC1tc2ctYm94LWFkYXB0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWwtbXNnLWJveC1hZGFwdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWxNc2dCb3hBZGFwdGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVJlZicpIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnd2FpdFJlZicpIHdhaXRSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBjb250ZXh0O1xyXG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBCYXJzYUFwaS5VbC5Nc2dCb3guQWRhcHRlci5vbih7XHJcbiAgICAgICAgICAgIFNob3c6IChtc2dCb3hEYXRhKSA9PiB0aGlzLnNob3cobXNnQm94RGF0YSksXHJcbiAgICAgICAgICAgIHdhaXQ6IChtc2csIHRpdGxlLCBtc2dCb3hEYXRhKSA9PiB0aGlzLndhaXQobXNnLCB0aXRsZSwgbXNnQm94RGF0YSksXHJcbiAgICAgICAgICAgIGhpZGU6ICgpID0+IHRoaXMuaGlkZSgpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSQgPSB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UuY29udGVudERlbnNpdHkuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuICAgIG9uQnV0dG9uKGJ0biwgZGlhbG9nOiBEaWFsb2dSZWYsIGRpYWxvZ0NvbmZpZzogTWVzc2FnZUJveE9iamVjdCk6IHZvaWQge1xyXG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xyXG4gICAgICAgIGRpYWxvZ0NvbmZpZy5mbi5jYWxsKHRoaXMsIGJ0bi5rZXkpO1xyXG4gICAgfVxyXG4gICAgb25DbG9zZShkaWFsb2csIGRpYWxvZ0NvbmZpZzogTWVzc2FnZUJveE9iamVjdCk6IHZvaWQge1xyXG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xyXG4gICAgICAgIGRpYWxvZ0NvbmZpZy5mbi5jYWxsKHRoaXMsICdjYW5jZWwnKTtcclxuICAgIH1cclxuICAgIHJldmVyc2VPYmoob2JqKTogYW55IHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKVxyXG4gICAgICAgICAgICAucmV2ZXJzZSgpXHJcbiAgICAgICAgICAgIC5yZWR1Y2UoKGEsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYVtrZXldID0gb2JqW2tleV07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYTtcclxuICAgICAgICAgICAgfSwge30pO1xyXG4gICAgfVxyXG4gICAgc2hvdyA9IChvYmplY3Q6IE1lc3NhZ2VCb3hPYmplY3QpOiB2b2lkID0+IHtcclxuICAgICAgICBvYmplY3QuaWNvblR5cGUgPSB0aGlzLmdldE1zZ1R5cGUob2JqZWN0Lmljb24pO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLnRlbXBsYXRlUmVmLCB7XHJcbiAgICAgICAgICAgIC4uLm9iamVjdCxcclxuICAgICAgICAgICAgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIHdhaXQgPSAoXHJcbiAgICAgICAgbXNnLFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIG9iamVjdDoge1xyXG4gICAgICAgICAgICBpbnRlcnZhbDogbnVtYmVyO1xyXG4gICAgICAgICAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgICAgICAgICBpbmNyZW1lbnQ6IG51bWJlcjtcclxuICAgICAgICAgICAgdGV4dDogc3RyaW5nO1xyXG4gICAgICAgICAgICBpY29uOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGljb25UeXBlOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHNjb3BlOiBhbnk7XHJcbiAgICAgICAgICAgIGZuOiAoKSA9PiB2b2lkO1xyXG4gICAgICAgIH1cclxuICAgICkgPT4ge1xyXG4gICAgICAgIG9iamVjdC5pY29uVHlwZSA9IHRoaXMuZ2V0TXNnVHlwZShvYmplY3QuaWNvbik7XHJcbiAgICAgICAgY29uc3Qgd2FpdERpYWxvZyA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLndhaXRSZWYsIHtcclxuICAgICAgICAgICAgLi4ub2JqZWN0LFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgbW9iaWxlOiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCFvYmplY3QuZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgb2YodHJ1ZSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLCBkZWxheShvYmplY3QuZHVyYXRpb24pKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB3YWl0RGlhbG9nLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIGhpZGUgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBnZXRNc2dUeXBlKGljb246IHN0cmluZyB8IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChpY29uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQmFyc2FBcGkuVWwuTXNnQm94LklORk86XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2luZm9ybWF0aW9uJztcclxuICAgICAgICAgICAgY2FzZSBCYXJzYUFwaS5VbC5Nc2dCb3guV0FSTklORzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgICAgICAgIGNhc2UgQmFyc2FBcGkuVWwuTXNnQm94LlFVRVNUSU9OOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcclxuICAgICAgICAgICAgY2FzZSBCYXJzYUFwaS5VbC5Nc2dCb3guRVJST1I6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcclxuICAgIH1cclxuICAgIGtlZXBPcmRlciA9IChhLCBiKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGE7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBnZXRCdG5DYXB0aW9uKG5hbWU6IHN0cmluZyB8IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChuYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ29rJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn2KrYp9uM24zYryc7XHJcbiAgICAgICAgICAgIGNhc2UgJ2NhbmNlbCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9in2YbYtdix2KfZgSc7XHJcbiAgICAgICAgICAgIGNhc2UgJ3llcyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9io2YTZhyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ25vJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn2K7bjNixJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjd2FpdFJlZj5cbiAgPGJzdS1tYXNrPjwvYnN1LW1hc2s+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICN0ZW1wbGF0ZVJlZj5cbiAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICA8aDEgZmQtdGl0bGU+XG4gICAgICAgIHt7IGRpYWxvZ0NvbmZpZy50aXRsZSB9fVxuICAgICAgPC9oMT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHkgc3R5bGU9XCJwYWRkaW5nOiAxNXB4OyBtYXgtd2lkdGg6IDQ4MHB4XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwibWluLWhlaWdodDogMTI1cHhcIj5cbiAgICAgICAgPGxhYmVsIGZkLWxhYmVsIFt0eXBlXT1cImRpYWxvZ0NvbmZpZy5pY29uVHlwZVwiIFtpbm5lckh0bWxdPVwiZGlhbG9nQ29uZmlnLm1zZ1wiPiA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgQGZvciAoYnRuIG9mIGRpYWxvZ0NvbmZpZy5idXR0b25zIHwga2V5dmFsdWU6IGtlZXBPcmRlcjsgdHJhY2sgYnRuKSB7XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmtleSA9PT0gJ29rJyB8fCBidG4ua2V5ID09PSAneWVzJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnZW1waGFzaXplZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYnRuLmtleSA9PT0gJ25vJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3RhbmRhcmQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCdcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiYnRuLmtleSArICcnIHwgdGl0bGVjYXNlIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkJ1dHRvbihidG4sIGRpYWxvZywgZGlhbG9nQ29uZmlnKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWwtbXNnLWJveC1hZGFwdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VsLW1zZy1ib3gtYWRhcHRlci91bC1tc2ctYm94LWFkYXB0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWwtbXNnLWJveC1hZGFwdGVyL3VsLW1zZy1ib3gtYWRhcHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBa0IvRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUt2RCxZQUFvQixjQUE2QixFQUFVLHNCQUE2QztRQUNwRyxLQUFLLEVBQUUsQ0FBQztRQURRLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQTZCeEcsU0FBSSxHQUFHLENBQUMsTUFBd0IsRUFBUSxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDdkMsR0FBRyxNQUFNO2dCQUNULGlCQUFpQixFQUFFLElBQUk7YUFDMUIsQ0FBQyxDQUFDO1lBQ0gs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QUMsSUFBa0I7UUFDekIsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNYLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFDeEIsT0FBTyxhQUFhLENBQUM7WUFDekIsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO2dCQUMzQixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVE7Z0JBQzVCLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDekIsT0FBTyxPQUFPLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFLRCxhQUFhLENBQUMsSUFBa0I7UUFDNUIsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNYLEtBQUssSUFBSTtnQkFDTCxPQUFPLE9BQU8sQ0FBQztZQUNuQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxRQUFRLENBQUM7WUFDcEIsS0FBSyxLQUFLO2dCQUNOLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLEtBQUssSUFBSTtnQkFDTCxPQUFPLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDOzhHQTFHUSx3QkFBd0I7a0dBQXhCLHdCQUF3QixzVEN2QnJDLHd1RkFxRUE7OzJGRDlDYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNO3NIQUdyQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0YsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNYLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIENvbnRlbnREZW5zaXR5U2VydmljZSwgRGlhbG9nQ29uZmlnLCBEaWFsb2dSZWYsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQmFyc2FBcGkgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5pbnRlcmZhY2UgTWVzc2FnZUJveE9iamVjdCBleHRlbmRzIERpYWxvZ0NvbmZpZyB7XHJcbiAgICBzY29wZTogYW55O1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGRlbGF5OiBudW1iZXI7XHJcbiAgICBtc2c6IHN0cmluZztcclxuICAgIGJ1dHRvbnM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgaWNvblR5cGU6IHN0cmluZztcclxuICAgIGZuOiAoa2V5OiBzdHJpbmcpID0+IHZvaWQ7XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11bC1tc2ctYm94LWFkYXB0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VsLW1zZy1ib3gtYWRhcHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91bC1tc2ctYm94LWFkYXB0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbE1zZ0JveEFkYXB0ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmJykgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCd3YWl0UmVmJykgd2FpdFJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ7XHJcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSwgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIEJhcnNhQXBpLlVsLk1zZ0JveC5BZGFwdGVyLm9uKHtcclxuICAgICAgICAgICAgU2hvdzogKG1zZ0JveERhdGEpID0+IHRoaXMuc2hvdyhtc2dCb3hEYXRhKSxcclxuICAgICAgICAgICAgd2FpdDogKG1zZywgdGl0bGUsIG1zZ0JveERhdGEpID0+IHRoaXMud2FpdChtc2csIHRpdGxlLCBtc2dCb3hEYXRhKSxcclxuICAgICAgICAgICAgaGlkZTogKCkgPT4gdGhpcy5oaWRlKClcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5JCA9IHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZS5jb250ZW50RGVuc2l0eS5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gICAgb25CdXR0b24oYnRuLCBkaWFsb2c6IERpYWxvZ1JlZiwgZGlhbG9nQ29uZmlnOiBNZXNzYWdlQm94T2JqZWN0KTogdm9pZCB7XHJcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XHJcbiAgICAgICAgZGlhbG9nQ29uZmlnLmZuLmNhbGwodGhpcywgYnRuLmtleSk7XHJcbiAgICB9XHJcbiAgICBvbkNsb3NlKGRpYWxvZywgZGlhbG9nQ29uZmlnOiBNZXNzYWdlQm94T2JqZWN0KTogdm9pZCB7XHJcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XHJcbiAgICAgICAgZGlhbG9nQ29uZmlnLmZuLmNhbGwodGhpcywgJ2NhbmNlbCcpO1xyXG4gICAgfVxyXG4gICAgcmV2ZXJzZU9iaihvYmopOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopXHJcbiAgICAgICAgICAgIC5yZXZlcnNlKClcclxuICAgICAgICAgICAgLnJlZHVjZSgoYSwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBhW2tleV0gPSBvYmpba2V5XTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhO1xyXG4gICAgICAgICAgICB9LCB7fSk7XHJcbiAgICB9XHJcbiAgICBzaG93ID0gKG9iamVjdDogTWVzc2FnZUJveE9iamVjdCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIG9iamVjdC5pY29uVHlwZSA9IHRoaXMuZ2V0TXNnVHlwZShvYmplY3QuaWNvbik7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMudGVtcGxhdGVSZWYsIHtcclxuICAgICAgICAgICAgLi4ub2JqZWN0LFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG4gICAgd2FpdCA9IChcclxuICAgICAgICBtc2csXHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgb2JqZWN0OiB7XHJcbiAgICAgICAgICAgIGludGVydmFsOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgICAgICAgICAgIGluY3JlbWVudDogbnVtYmVyO1xyXG4gICAgICAgICAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGljb246IHN0cmluZztcclxuICAgICAgICAgICAgaWNvblR5cGU6IHN0cmluZztcclxuICAgICAgICAgICAgc2NvcGU6IGFueTtcclxuICAgICAgICAgICAgZm46ICgpID0+IHZvaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgKSA9PiB7XHJcbiAgICAgICAgb2JqZWN0Lmljb25UeXBlID0gdGhpcy5nZXRNc2dUeXBlKG9iamVjdC5pY29uKTtcclxuICAgICAgICBjb25zdCB3YWl0RGlhbG9nID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKHRoaXMud2FpdFJlZiwge1xyXG4gICAgICAgICAgICBkYXRhOiB7IC4uLm9iamVjdCwgbXNnLCB0aXRsZSB9LFxyXG4gICAgICAgICAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgbW9iaWxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjb250YWluZXJDbGFzczogJ3h4eHh4J1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICghb2JqZWN0LmR1cmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9mKHRydWUpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgZGVsYXkob2JqZWN0LmR1cmF0aW9uKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICAgICAgd2FpdERpYWxvZy5jbG9zZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICBoaWRlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2UuZGlzbWlzc0FsbCgpO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG4gICAgZ2V0TXNnVHlwZShpY29uOiBzdHJpbmcgfCBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaCAoaWNvbikge1xyXG4gICAgICAgICAgICBjYXNlIEJhcnNhQXBpLlVsLk1zZ0JveC5JTkZPOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbmZvcm1hdGlvbic7XHJcbiAgICAgICAgICAgIGNhc2UgQmFyc2FBcGkuVWwuTXNnQm94LldBUk5JTkc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xyXG4gICAgICAgICAgICBjYXNlIEJhcnNhQXBpLlVsLk1zZ0JveC5RVUVTVElPTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZGVmYXVsdCc7XHJcbiAgICAgICAgICAgIGNhc2UgQmFyc2FBcGkuVWwuTXNnQm94LkVSUk9SOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnZGVmYXVsdCc7XHJcbiAgICB9XHJcbiAgICBrZWVwT3JkZXIgPSAoYSwgYikgPT4ge1xyXG4gICAgICAgIHJldHVybiBhO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG4gICAgZ2V0QnRuQ2FwdGlvbihuYW1lOiBzdHJpbmcgfCBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaCAobmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlICdvayc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9iq2KfbjNuM2K8nO1xyXG4gICAgICAgICAgICBjYXNlICdjYW5jZWwnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICfYp9mG2LXYsdin2YEnO1xyXG4gICAgICAgICAgICBjYXNlICd5ZXMnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICfYqNmE2YcnO1xyXG4gICAgICAgICAgICBjYXNlICdubyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9iu24zYsSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI3dhaXRSZWYgW2ZkRGlhbG9nVGVtcGxhdGVdIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHlcbiAgICAgICAgICAgIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1mbGV4IHR3LWZsZXgtY29sIHR3LWl0ZW1zLWNlbnRlciB0dy1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZihkaWFsb2cuZGF0YSAmJiBkaWFsb2cuZGF0YS50aXRsZSl7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgX25nY29udGVudC1uZy1jNjc4ODYzNzc4PVwiXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctZmxleC1jb2wgdHctanVzdGlmeS1zdGFydCB0dy1pdGVtcy1jZW50ZXIgdHctcC00XCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2MHB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGgzIGZkLXRpdGxlICpuZ0lmPVwiZGlhbG9nLmRhdGE/LnRpdGxlXCI+e3sgZGlhbG9nLmRhdGE/LnRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgICAgICA8ZmQtdGV4dCAqbmdJZj1cImRpYWxvZy5kYXRhPy5tc2dcIiBbdGV4dF09XCJkaWFsb2cuZGF0YT8ubXNnXCIgW3doaXRlc3BhY2VzXT1cInRydWVcIj48L2ZkLXRleHQ+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJzdS1tYXNrPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICA8YnN1LW1hc2s+PC9ic3UtbWFzaz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9mZC1kaWFsb2ctYm9keT5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjdGVtcGxhdGVSZWY+XG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCI+XG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICAgICAgPGgxIGZkLXRpdGxlPlxuICAgICAgICAgICAgICAgIHt7IGRpYWxvZ0NvbmZpZy50aXRsZSB9fVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuXG4gICAgICAgIDxmZC1kaWFsb2ctYm9keSBzdHlsZT1cInBhZGRpbmc6IDE1cHg7IG1heC13aWR0aDogNDgwcHhcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtaW4taGVpZ2h0OiAxMjVweFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmZC1sYWJlbCBbdHlwZV09XCJkaWFsb2dDb25maWcuaWNvblR5cGVcIiBbaW5uZXJIdG1sXT1cImRpYWxvZ0NvbmZpZy5tc2dcIj4gPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgQGZvciAoYnRuIG9mIGRpYWxvZ0NvbmZpZy5idXR0b25zIHwga2V5dmFsdWU6IGtlZXBPcmRlcjsgdHJhY2sgYnRuKSB7XG4gICAgICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmtleSA9PT0gJ29rJyB8fCBidG4ua2V5ID09PSAneWVzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2VtcGhhc2l6ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBidG4ua2V5ID09PSAnbm8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3RhbmRhcmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJidG4ua2V5ICsgJycgfCB0aXRsZWNhc2UgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CdXR0b24oYnRuLCBkaWFsb2csIGRpYWxvZ0NvbmZpZylcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICA8L2ZkLWRpYWxvZz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=