tnx-shared 5.1.233 → 5.1.237

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.
Files changed (33) hide show
  1. package/bundles/tnx-shared.umd.js +154 -23
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/components/autocomplete-picker/autocomplete-picker.component.d.ts +7 -1
  6. package/components/autocomplete-picker/autocomplete-picker.component.d.ts.map +1 -1
  7. package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts +1 -0
  8. package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts.map +1 -1
  9. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +10 -5
  10. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
  11. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts +1 -0
  12. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts.map +1 -1
  13. package/components/user-picker/user-picker.component.d.ts +8 -1
  14. package/components/user-picker/user-picker.component.d.ts.map +1 -1
  15. package/components/workflow/models/models.d.ts +3 -0
  16. package/components/workflow/models/models.d.ts.map +1 -1
  17. package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts.map +1 -1
  18. package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +2 -2
  19. package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts.map +1 -1
  20. package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +36 -3
  21. package/esm2015/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.js +3 -2
  22. package/esm2015/components/crud/crud-form/crud-form.component.js +2 -2
  23. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +41 -15
  24. package/esm2015/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.js +2 -2
  25. package/esm2015/components/user-picker/user-picker-box/user-picker-box.component.js +3 -2
  26. package/esm2015/components/user-picker/user-picker.component.js +39 -4
  27. package/esm2015/components/workflow/models/models.js +1 -1
  28. package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js +5 -2
  29. package/esm2015/components/workflow/process-workflow-target/process-workflow-target.component.js +13 -2
  30. package/fesm2015/tnx-shared.js +133 -23
  31. package/fesm2015/tnx-shared.js.map +1 -1
  32. package/package.json +2 -2
  33. package/tnx-shared.metadata.json +1 -1
@@ -14,6 +14,15 @@ export class EntityPickerSelectedComponent extends DataListBase {
14
14
  this.onUnPick = new EventEmitter();
15
15
  this.onUnPickAll = new EventEmitter();
16
16
  this.onUnPickSelected = new EventEmitter();
17
+ this.itemCanDeletes = [];
18
+ }
19
+ set readOnlyValues(value) {
20
+ this._readOnlyValues = value;
21
+ this.updateFuncCheckReadOnlyItem();
22
+ this.updateReadOnlyItem();
23
+ }
24
+ get readOnlyValues() {
25
+ return this._readOnlyValues;
17
26
  }
18
27
  set selectedValue(value) {
19
28
  this._selectedValue = value;
@@ -37,12 +46,18 @@ export class EntityPickerSelectedComponent extends DataListBase {
37
46
  this.setting.cols = [...this.parentSetting.cols.map(p => (Object.assign({}, p)))];
38
47
  this.setting.columnSetting = this.parentSetting.columnSetting;
39
48
  this.setting.fieldSearchText = this.parentSetting.fieldSearchText;
40
- if (this.readOnlyValues) {
41
- this.funcCheckReadonlyItem = this._funcCheckReadonlyItem;
42
- }
49
+ this.updateFuncCheckReadOnlyItem();
43
50
  super.ngOnInit();
44
51
  }
45
- _funcCheckReadonlyItem(item) {
52
+ updateFuncCheckReadOnlyItem() {
53
+ if (this.readOnlyValues && this.readOnlyValues.length) {
54
+ this.funcCheckReadOnlyItem = this._funcCheckReadOnlyItem;
55
+ }
56
+ else {
57
+ this.funcCheckReadOnlyItem = (item) => { };
58
+ }
59
+ }
60
+ _funcCheckReadOnlyItem(item) {
46
61
  if (this.readOnlyValues.some(q => q == item[this.control.valueField])) {
47
62
  item.hiddenCheckBox = true;
48
63
  item.hiddenDelete = true;
@@ -83,20 +98,22 @@ export class EntityPickerSelectedComponent extends DataListBase {
83
98
  yield appendDefaultFilter(gridInfo.filters, this.control.defaultFilters);
84
99
  });
85
100
  }
86
- unPickEntity(data) {
87
- this.onUnPick.emit(data);
88
- }
89
- unPickAll() {
90
- this.onUnPickAll.emit(this.model.dataSource);
91
- }
92
- unPickSelected(data) {
93
- this.onUnPickSelected.emit(data);
101
+ updateReadOnlyItem() {
102
+ if (this.model.dataSource) {
103
+ this.model.dataSource.forEach(item => {
104
+ this.funcCheckReadOnlyItem(item);
105
+ });
106
+ }
94
107
  }
95
108
  beforeRenderDataSource(data) {
96
109
  return __awaiter(this, void 0, void 0, function* () {
110
+ this.itemCanDeletes = [];
97
111
  data.forEach(item => {
98
- this.funcCheckReadonlyItem(item);
112
+ this.funcCheckReadOnlyItem(item);
99
113
  item._dropdownvalue = this.control.valueField;
114
+ if (!item.hiddenCheckBox) {
115
+ this.itemCanDeletes.push(item);
116
+ }
100
117
  });
101
118
  });
102
119
  }
@@ -107,6 +124,15 @@ export class EntityPickerSelectedComponent extends DataListBase {
107
124
  }
108
125
  });
109
126
  }
127
+ unPickEntity(data) {
128
+ this.onUnPick.emit(data);
129
+ }
130
+ unPickAll() {
131
+ this.onUnPickAll.emit(this.itemCanDeletes);
132
+ }
133
+ unPickSelected(data) {
134
+ this.onUnPickSelected.emit(data);
135
+ }
110
136
  cancel() {
111
137
  }
112
138
  onUnselectPickerUser($event) {
@@ -122,7 +148,7 @@ EntityPickerSelectedComponent.decorators = [
122
148
  { type: Component, args: [{
123
149
  // tslint:disable-next-line: component-selector
124
150
  selector: 'app-entity-picker-selected',
125
- template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [showScrollHorizontal]=\"true\"\r\n (onContentInit)=\"onContentInit.emit($event)\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n\r\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\r\n <button *ngIf=\"!model.dataSource.length && setting.hiddenAdvanceSearch\" pButton\r\n style=\"visibility: hidden\"></button>\r\n <button *ngIf=\"model.dataSource.length > 0\" type=\"button\" pButton pRipple\r\n label=\"B\u1ECF t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-left\"\r\n class=\"p-button-text p-button-danger\" (click)=\"unPickAll()\"></button>\r\n <button *ngIf=\"selectedItems.length > 0\" type=\"button\" pButton pRipple\r\n label=\"B\u1ECF m\u1EE5c \u0111\u00E3 ch\u1ECDn ({{selectedItems.length}})\" icon=\"pi pi-angle-left\"\r\n class=\"p-button-text p-button-danger\" (click)=\"unPickSelected(selectedItems)\"></button>\r\n </ng-template>\r\n\r\n <ng-template let-crudList=\"crudList\" #function let-rowData=\"rowData\">\r\n <button *ngIf=\"!rowData.hiddenDelete\" pButton type=\"button\"\r\n class=\"link-or-action p-button-danger p-button-text p-button-rounded\" icon=\"pi pi-times\"\r\n pTooltip=\"B\u1ECF ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\" (click)=\"unPickEntity(rowData)\"></button>\r\n </ng-template>\r\n\r\n</crud-list>",
151
+ template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [showScrollHorizontal]=\"true\"\r\n (onContentInit)=\"onContentInit.emit($event)\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\r\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\r\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\r\n\r\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\r\n <button *ngIf=\"!model.dataSource.length && setting.hiddenAdvanceSearch\" pButton\r\n style=\"visibility: hidden\"></button>\r\n <button *ngIf=\"itemCanDeletes.length\" type=\"button\" pButton pRipple\r\n label=\"B\u1ECF t\u1EA5t c\u1EA3 ({{itemCanDeletes.length}})\" icon=\"pi pi-angle-double-left\"\r\n class=\"p-button-text p-button-danger\" (click)=\"unPickAll()\"></button>\r\n <button *ngIf=\"selectedItems.length > 0\" type=\"button\" pButton pRipple\r\n label=\"B\u1ECF m\u1EE5c \u0111\u00E3 ch\u1ECDn ({{selectedItems.length}})\" icon=\"pi pi-angle-left\"\r\n class=\"p-button-text p-button-danger\" (click)=\"unPickSelected(selectedItems)\"></button>\r\n </ng-template>\r\n\r\n <ng-template let-crudList=\"crudList\" #function let-rowData=\"rowData\">\r\n <button *ngIf=\"!rowData.hiddenDelete\" pButton type=\"button\"\r\n class=\"link-or-action p-button-danger p-button-text p-button-rounded\" icon=\"pi pi-times\"\r\n pTooltip=\"B\u1ECF ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\" (click)=\"unPickEntity(rowData)\"></button>\r\n </ng-template>\r\n\r\n</crud-list>",
126
152
  providers: [ComponentContextService],
127
153
  styles: ["::ng-deep app-entity-picker-selected .custom-card{padding:.5em .5em 0!important}"]
128
154
  },] }
@@ -142,4 +168,4 @@ EntityPickerSelectedComponent.propDecorators = {
142
168
  onUnPickAll: [{ type: Output }],
143
169
  onUnPickSelected: [{ type: Output }]
144
170
  };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1zZWxlY3RlZC9lbnRpdHktcGlja2VyLXNlbGVjdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBU3RFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxZQUFZO0lBbUIzRCxZQUNjLGlCQUFtQyxFQUM3QyxTQUFtQjtRQUVuQixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFIUCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBUHZDLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGdCQUFXLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQscUJBQWdCLEdB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IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBhcHBlbmREZWZhdWx0RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgQ3J1ZExpc3RTZXR0aW5nLCBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hLCBIZWlnaHRUeXBlLCBPcGVyYXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBBZHZhbmNlRGF0YUVudGl0eVBpY2tlciB9IGZyb20gJy4uLy4uLy4uL21vZGVsL2FkdmFuY2UtZGF0YSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ2FwcC1lbnRpdHktcGlja2VyLXNlbGVjdGVkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktcGlja2VyLXNlbGVjdGVkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2VudGl0eS1waWNrZXItc2VsZWN0ZWQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgcGFyZW50U2V0dGluZzogQ3J1ZExpc3RTZXR0aW5nO1xyXG4gICAgQElucHV0KCkgYWR2YW5jZURhdGE6IEFkdmFuY2VEYXRhRW50aXR5UGlja2VyO1xyXG4gICAgQElucHV0KCkgY29udHJvbDogRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYTtcclxuICAgIEBJbnB1dCgpIHJlYWRPbmx5VmFsdWVzOiBzdHJpbmdbXTtcclxuICAgIF9zZWxlY3RlZFZhbHVlOiBhbnk7XHJcbiAgICBfdmFsdWU6IGFueTtcclxuICAgIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBvbkNvbnRlbnRJbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvblVuUGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25VblBpY2tBbGw6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25VblBpY2tTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBmdW5jQ2hlY2tSZWFkb25seUl0ZW06IChpdGVtOiBhbnkpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZERldGFpbEZyb21RdWVyeVBhcmFtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBsdXNVcmwgPSB0aGlzLmNvbnRyb2wucGx1c1VybDtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLmNvbnRyb2wuYmFzZVNlcnZpY2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnBhZ2VTZXR0aW5nLnBhZ2VTaXplID0gdGhpcy5jb250cm9sLnBhZ2VTaXplID8/IDMwO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5DaGVja2JveCA9ICF0aGlzLmNvbnRyb2wubXVsdGlwbGU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhlaWdodFR5cGUgPSBIZWlnaHRUeXBlLmN1c3RvbTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuc2hvd0VkaXRMaW5rID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNldHRpbmdLZXkgPSAnZW50aXR5UGlja2VyU2VsZWN0ZWQnO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5BZHZhbmNlU2VhcmNoID0gdGhpcy5wYXJlbnRTZXR0aW5nLmhpZGRlbkFkdmFuY2VTZWFyY2g7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdXb3JrZmxvdyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlblNldHRpbmdQZXJtaXNzaW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcudGl0bGUgPSAnRGFuaCBzw6FjaCBjw6FjIG3hu6VjIMSRw6MgY2jhu41uJztcclxuICAgICAgICB0aGlzLnNldHRpbmcuY29scyA9IFsuLi50aGlzLnBhcmVudFNldHRpbmcuY29scy5tYXAocCA9PiAoeyAuLi5wIH0pKV07XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHVtblNldHRpbmcgPSB0aGlzLnBhcmVudFNldHRpbmcuY29sdW1uU2V0dGluZztcclxuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gdGhpcy5wYXJlbnRTZXR0aW5nLmZpZWxkU2VhcmNoVGV4dDtcclxuICAgICAgICBpZiAodGhpcy5yZWFkT25seVZhbHVlcykge1xyXG4gICAgICAgICAgICB0aGlzLmZ1bmNDaGVja1JlYWRvbmx5SXRlbSA9IHRoaXMuX2Z1bmNDaGVja1JlYWRvbmx5SXRlbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBfZnVuY0NoZWNrUmVhZG9ubHlJdGVtKGl0ZW06IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5VmFsdWVzLnNvbWUocSA9PiBxID09IGl0ZW1bdGhpcy5jb250cm9sLnZhbHVlRmllbGRdKSkge1xyXG4gICAgICAgICAgICBpdGVtLmhpZGRlbkNoZWNrQm94ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaXRlbS5oaWRkZW5EZWxldGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRWYWx1ZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRWYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wubXVsdGlwbGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fc2VsZWN0ZWRWYWx1ZS5tYXAoaXRlbSA9PiBpdGVtW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3NlbGVjdGVkVmFsdWVbdGhpcy5jb250cm9sLnZhbHVlRmllbGRdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeUdyaWRJbmZvKGdyaWRJbmZvOiBHcmlkSW5mbykge1xyXG4gICAgICAgIGdyaWRJbmZvLmZpZWxkcyA9IHRoaXMuYWR2YW5jZURhdGEuZmllbGRzO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl92YWx1ZSAhPSBudWxsICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGdyaWRJbmZvLmZpbHRlcnMucHVzaCh0aGlzLm5ld0ZpbHRlcih0aGlzLmNvbnRyb2wudmFsdWVGaWVsZCwgT3BlcmF0b3IuaW4sIHRoaXMuX3ZhbHVlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl92YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLmluLCB0aGlzLl92YWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhd2FpdCBhcHBlbmREZWZhdWx0RmlsdGVyKGdyaWRJbmZvLmZpbHRlcnMsIHRoaXMuY29udHJvbC5kZWZhdWx0RmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgdW5QaWNrRW50aXR5KGRhdGEpIHtcclxuICAgICAgICB0aGlzLm9uVW5QaWNrLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdW5QaWNrQWxsKCkge1xyXG4gICAgICAgIHRoaXMub25VblBpY2tBbGwuZW1pdCh0aGlzLm1vZGVsLmRhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHVuUGlja1NlbGVjdGVkKGRhdGEpIHtcclxuICAgICAgICB0aGlzLm9uVW5QaWNrU2VsZWN0ZWQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGEpIHtcclxuICAgICAgICBkYXRhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZnVuY0NoZWNrUmVhZG9ubHlJdGVtKGl0ZW0pO1xyXG4gICAgICAgICAgICBpdGVtLl9kcm9wZG93bnZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlRmllbGQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgYWZ0ZXJHZXREYXRhKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhUGlja2VkKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29udHJvbC5hZnRlckdldERhdGFQaWNrZWQodGhpcy5tb2RlbC5kYXRhU291cmNlLCB0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgfVxyXG5cclxuICAgIG9uVW5zZWxlY3RQaWNrZXJVc2VyKCRldmVudCkge1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0UGlja2VyVXNlcigkZXZlbnQpIHtcclxuICAgIH1cclxuXHJcbiAgICBvblRvcGJhclNlYXJjaENsaWNrKCkge1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyRmlsdGVyKGV2dCkge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItZGlhbG9nL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci1zZWxlY3RlZC9lbnRpdHktcGlja2VyLXNlbGVjdGVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBU3RFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxZQUFZO0lBNEIzRCxZQUNjLGlCQUFtQyxFQUM3QyxTQUFtQjtRQUVuQixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFIUCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBUnZDLGtCQUFhLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGdCQUFXLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQscUJBQWdCLEdB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VUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ3RFO1FBQ0wsQ0FBQztLQUFBO0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNO0lBQ04sQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQU07SUFDM0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQU07SUFDekIsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQUc7SUFDZixDQUFDOzs7WUF0S0osU0FBUyxTQUFDO2dCQUNQLCtDQUErQztnQkFDL0MsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsOHNEQUFzRDtnQkFFdEQsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUFkUSxnQkFBZ0I7WUFEUyxRQUFROzs7NEJBaUJyQyxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFFTCxLQUFLOzRCQVVMLEtBQUs7NEJBTUwsTUFBTTt1QkFDTixNQUFNOzBCQUNOLE1BQU07K0JBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgYXBwZW5kRGVmYXVsdEZpbHRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFMaXN0QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWxpc3QtYmFzZSc7XHJcbmltcG9ydCB7IENydWRMaXN0U2V0dGluZywgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSwgSGVpZ2h0VHlwZSwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgR3JpZEluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgQWR2YW5jZURhdGFFbnRpdHlQaWNrZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9hZHZhbmNlLWRhdGEnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGNvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdhcHAtZW50aXR5LXBpY2tlci1zZWxlY3RlZCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LXBpY2tlci1zZWxlY3RlZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9lbnRpdHktcGlja2VyLXNlbGVjdGVkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHBhcmVudFNldHRpbmc6IENydWRMaXN0U2V0dGluZztcclxuICAgIEBJbnB1dCgpIGFkdmFuY2VEYXRhOiBBZHZhbmNlRGF0YUVudGl0eVBpY2tlcjtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWE7XHJcbiAgICBfcmVhZE9ubHlWYWx1ZXM6IHN0cmluZ1tdO1xyXG4gICAgQElucHV0KCkgc2V0IHJlYWRPbmx5VmFsdWVzKHZhbHVlOiBzdHJpbmdbXSkge1xyXG4gICAgICAgIHRoaXMuX3JlYWRPbmx5VmFsdWVzID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGdW5jQ2hlY2tSZWFkT25seUl0ZW0oKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVJlYWRPbmx5SXRlbSgpO1xyXG4gICAgfVxyXG4gICAgZ2V0IHJlYWRPbmx5VmFsdWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkT25seVZhbHVlcztcclxuICAgIH1cclxuICAgIF9zZWxlY3RlZFZhbHVlOiBhbnk7XHJcbiAgICBfdmFsdWU6IGFueTtcclxuICAgIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBvbkNvbnRlbnRJbml0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvblVuUGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25VblBpY2tBbGw6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25VblBpY2tTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBmdW5jQ2hlY2tSZWFkT25seUl0ZW06IChpdGVtOiBhbnkpID0+IHZvaWQ7XHJcbiAgICBpdGVtQ2FuRGVsZXRlczogYW55W10gPSBbXTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGV0YWlsRnJvbVF1ZXJ5UGFyYW0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucGx1c1VybCA9IHRoaXMuY29udHJvbC5wbHVzVXJsO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuY29udHJvbC5iYXNlU2VydmljZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcucGFnZVNldHRpbmcucGFnZVNpemUgPSB0aGlzLmNvbnRyb2wucGFnZVNpemUgPz8gMzA7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkNoZWNrYm94ID0gIXRoaXMuY29udHJvbC5tdWx0aXBsZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGVpZ2h0VHlwZSA9IEhlaWdodFR5cGUuY3VzdG9tO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zaG93RWRpdExpbmsgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuc2V0dGluZ0tleSA9ICdlbnRpdHlQaWNrZXJTZWxlY3RlZCc7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkFkdmFuY2VTZWFyY2ggPSB0aGlzLnBhcmVudFNldHRpbmcuaGlkZGVuQWR2YW5jZVNlYXJjaDtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1dvcmtmbG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy50aXRsZSA9ICdEYW5oIHPDoWNoIGPDoWMgbeG7pWMgxJHDoyBjaOG7jW4nO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5jb2xzID0gWy4uLnRoaXMucGFyZW50U2V0dGluZy5jb2xzLm1hcChwID0+ICh7IC4uLnAgfSkpXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuY29sdW1uU2V0dGluZyA9IHRoaXMucGFyZW50U2V0dGluZy5jb2x1bW5TZXR0aW5nO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSB0aGlzLnBhcmVudFNldHRpbmcuZmllbGRTZWFyY2hUZXh0O1xyXG4gICAgICAgIHRoaXMudXBkYXRlRnVuY0NoZWNrUmVhZE9ubHlJdGVtKCk7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVGdW5jQ2hlY2tSZWFkT25seUl0ZW0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHlWYWx1ZXMgJiYgdGhpcy5yZWFkT25seVZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5mdW5jQ2hlY2tSZWFkT25seUl0ZW0gPSB0aGlzLl9mdW5jQ2hlY2tSZWFkT25seUl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZ1bmNDaGVja1JlYWRPbmx5SXRlbSA9IChpdGVtOiBhbnkpID0+IHsgfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgX2Z1bmNDaGVja1JlYWRPbmx5SXRlbShpdGVtOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5yZWFkT25seVZhbHVlcy5zb21lKHEgPT4gcSA9PSBpdGVtW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXSkpIHtcclxuICAgICAgICAgICAgaXRlbS5oaWRkZW5DaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuRGVsZXRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VmFsdWUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250cm9sLm11bHRpcGxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3NlbGVjdGVkVmFsdWUubWFwKGl0ZW0gPT4gaXRlbVt0aGlzLmNvbnRyb2wudmFsdWVGaWVsZF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9zZWxlY3RlZFZhbHVlW3RoaXMuY29udHJvbC52YWx1ZUZpZWxkXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBtb2RpZnlHcmlkSW5mbyhncmlkSW5mbzogR3JpZEluZm8pIHtcclxuICAgICAgICBncmlkSW5mby5maWVsZHMgPSB0aGlzLmFkdmFuY2VEYXRhLmZpZWxkcztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbC5tdWx0aXBsZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsdWUgIT0gbnVsbCAmJiB0aGlzLl92YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2godGhpcy5uZXdGaWx0ZXIodGhpcy5jb250cm9sLnZhbHVlRmllbGQsIE9wZXJhdG9yLmluLCB0aGlzLl92YWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKHRoaXMubmV3RmlsdGVyKHRoaXMuY29udHJvbC52YWx1ZUZpZWxkLCBPcGVyYXRvci5pbiwgdGhpcy5fdmFsdWUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgYXBwZW5kRGVmYXVsdEZpbHRlcihncmlkSW5mby5maWx0ZXJzLCB0aGlzLmNvbnRyb2wuZGVmYXVsdEZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVJlYWRPbmx5SXRlbSgpIHtcclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5kYXRhU291cmNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwuZGF0YVNvdXJjZS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mdW5jQ2hlY2tSZWFkT25seUl0ZW0oaXRlbSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGEpIHtcclxuICAgICAgICB0aGlzLml0ZW1DYW5EZWxldGVzID0gW107XHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZ1bmNDaGVja1JlYWRPbmx5SXRlbShpdGVtKTtcclxuICAgICAgICAgICAgaXRlbS5fZHJvcGRvd252YWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZUZpZWxkO1xyXG4gICAgICAgICAgICBpZiAoIWl0ZW0uaGlkZGVuQ2hlY2tCb3gpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUNhbkRlbGV0ZXMucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGFmdGVyR2V0RGF0YSgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLmFmdGVyR2V0RGF0YVBpY2tlZCkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbnRyb2wuYWZ0ZXJHZXREYXRhUGlja2VkKHRoaXMubW9kZWwuZGF0YVNvdXJjZSwgdGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVuUGlja0VudGl0eShkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5vblVuUGljay5lbWl0KGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHVuUGlja0FsbCgpIHtcclxuICAgICAgICB0aGlzLm9uVW5QaWNrQWxsLmVtaXQodGhpcy5pdGVtQ2FuRGVsZXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdW5QaWNrU2VsZWN0ZWQoZGF0YSkge1xyXG4gICAgICAgIHRoaXMub25VblBpY2tTZWxlY3RlZC5lbWl0KGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgIH1cclxuXHJcbiAgICBvblVuc2VsZWN0UGlja2VyVXNlcigkZXZlbnQpIHtcclxuICAgIH1cclxuXHJcbiAgICBvblNlbGVjdFBpY2tlclVzZXIoJGV2ZW50KSB7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ub3BiYXJTZWFyY2hDbGljaygpIHtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhckZpbHRlcihldnQpIHtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -93,7 +93,7 @@ export class StateMachinesConnectionMetadataComponent extends DataFormBase {
93
93
  mdWidth: 5
94
94
  }),
95
95
  new CheckBoxListControlSchema({
96
- label: 'Cho sửa gợi ý',
96
+ label: 'Cho sửa gợi ý nhóm theo dõi (dữ liệu lấy từ bước trước)',
97
97
  field: 'targetsAllowModify',
98
98
  mdWidth: 12,
99
99
  dataSource: DataSourceTargetType
@@ -192,4 +192,4 @@ StateMachinesConnectionMetadataComponent.propDecorators = {
192
192
  viewOnly: [{ type: Input }],
193
193
  onRemove: [{ type: Output }]
194
194
  };
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3N0YXRlbWFjaGluZXMvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1tZXRhZGF0YS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQTZCLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQzVJLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtJQUNyQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtJQUNsQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtJQUNuQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtJQUNuQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRTtJQUMvQixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRTtJQUN2QyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtJQUNqQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFO0NBQzNDLENBQUM7QUFRRixNQUFNLE9BQU8sd0NBQXlDLFNBQVEsWUFBWTtJQW1DdEUsWUFDSSxRQUFrQixFQUNWLGVBQWdDO1FBRXhDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZSLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQTVCbEMsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2hFLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsZUFBVSxHQUFHO1lBQ1QsUUFBUSxFQUFFLEVBQUU7WUFDWixXQUFXLEVBQUUsRUFBRTtTQUNsQixDQUFDO1FBRUYsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixnQkFBVyxHQUFVO1lBQ2pCO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUscUJBQXFCO2FBQy9CO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxhQUFhO2dCQUNuQixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsTUFBTSxFQUFFLElBQUk7YUFDZjtTQUNKLENBQUM7UUFPRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBcUI7WUFDcEMsSUFBSSxpQkFBaUIsQ0FBQztnQkFDbEIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxXQUFXO2dCQUNsQixZQUFZLEVBQUUsQ0FBQztnQkFDZixPQUFPLEVBQUUsQ0FBQzthQUNiLENBQUM7WUFDRixJQUFJLHFCQUFxQixDQUFDO2dCQUN0QixLQUFLLEVBQUUsY0FBYztnQkFDckIsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRSxDQUFDO2FBQ2IsQ0FBQztZQUNGLElBQUkscUJBQXFCLENBQUM7Z0JBQ3RCLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxZQUFZO2dCQUNuQixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQyxVQUFVLEVBQUU7b0JBQ1IsR0FBRyxjQUFjO2lCQUNwQjtnQkFDRCxVQUFVLEVBQUUseUJBQXlCO2dCQUNyQyxTQUFTLEVBQUUsS0FBSztnQkFDaEIsWUFBWSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ3ZDLG9CQUFvQixFQUFFLElBQUksQ0FBQyw0QkFBNEI7YUFDMUQsQ0FBQztZQUNGLElBQUksaUJBQWlCLENBQUM7Z0JBQ2xCLEtBQUssRUFBRSxjQUFjO2dCQUNyQixLQUFLLEVBQUUsTUFBTTtnQkFDYixVQUFVLEVBQUUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNsQyxRQUFRLEVBQUUsSUFBSTtnQkFDZCxPQUFPLEVBQUUsQ0FBQzthQUNiLENBQUM7WUFDRixJQUFJLGlCQUFpQixDQUFDO2dCQUNsQixLQUFLLEVBQUUsZUFBZTtnQkFDdEIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLENBQUM7YUFDYixDQUFDO1lBQ0YsSUFBSSx5QkFBeUIsQ0FBQztnQkFDMUIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEtBQUssRUFBRSxvQkFBb0I7Z0JBQzNCLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFVBQVUsRUFBRSxvQkFBb0I7YUFDbkMsQ0FBQztTQUNMLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDMUI7YUFDSTtZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVLLGlCQUFpQixDQUFDLEdBQWM7O1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNqQixxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsOERBQThEO2dCQUM5RCxtRkFBbUY7Z0JBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtvQkFDdEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2lCQUMvQjtnQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ2xDO2lCQUNJO2dCQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDM0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQztLQUFBO0lBRUssWUFBWTs7WUFDZCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU07dUJBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUNwRDtvQkFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7d0JBQ2QsU0FBUztxQkFDWjtvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxDQUFDO29CQUM3RyxPQUFPLEtBQUssQ0FBQztpQkFDaEI7YUFDSjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtJQUVLLGdCQUFnQjs7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwQyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQsSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFO2dCQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLE9BQU87YUFDVjtZQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQztLQUFBO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxrQ0FBa0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNsSCxJQUFJLEVBQUUsRUFBRTtvQkFDSixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0I7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQ0k7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzs7O1lBM0tKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsbUNBQW1DO2dCQUM3QyxvbkVBQWlFO2dCQUVqRSxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7YUFDdkM7OztZQTNCaUMsUUFBUTtZQUtqQyxlQUFlOzs7eUJBd0JuQixTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTsyQkFDekMsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7bUNBQzNDLFNBQVMsU0FBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7MkNBQ2xELFNBQVMsU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7OEJBQzFELEtBQUs7bUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFVwcGVyQ29ycmVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2NvcnJlY3RvcnMnO1xyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQgeyBDaGVja2JveENvbnRyb2xTY2hlbWEsIENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEsIERyb3Bkb3duQ29udHJvbFNjaGVtYSwgRXZlbnREYXRhLCBGb3JtU2NoZW1hQmFzZSwgTWFza0NvbnRyb2xTY2hlbWEsIFRleHRDb250cm9sU2NoZW1hIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IE5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlVGFyZ2V0VHlwZSB9IGZyb20gJy4uL21vZGVscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTdGF0ZU1hY2hpbmVzQ29ubmVjdGlvblJlY2VpdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1yZWNlaXZlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGF0ZU1hY2hpbmVzQ29ubmVjdGlvblNlbmRlckNvbXBvbmVudCB9IGZyb20gJy4uL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1zZW5kZXIvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXNlbmRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBzZXRNZXRhZGF0YUNvbm5lY3Rpb24gfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZGF0YVNvdXJjZUljb24gPSBbXHJcbiAgICB7IGlkOiAncmVwbGF5JywgdGVuOiAncGkgcGktcmVwbGF5JyB9LFxyXG4gICAgeyBpZDogJ3NoYXJlJywgdGVuOiAncGkgcGktc2VuZCcgfSxcclxuICAgIHsgaWQ6ICdjaGVjaycsIHRlbjogJ3BpIHBpLWNoZWNrJyB9LFxyXG4gICAgeyBpZDogJ3RpbWVzJywgdGVuOiAncGkgcGktdGltZXMnIH0sXHJcbiAgICB7IGlkOiAnYmFuJywgdGVuOiAncGkgcGktYmFuJyB9LFxyXG4gICAgeyBpZDogJ2ZvcndhcmQnLCB0ZW46ICdwaSBwaS1mb3J3YXJkJyB9LFxyXG4gICAgeyBpZDogJ2xpbmsnLCB0ZW46ICdwaSBwaS1saW5rJyB9LFxyXG4gICAgeyBpZDogJ2NvbW1lbnQnLCB0ZW46ICdwaSBwaS1jb21tZW50cycgfVxyXG5dO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1tZXRhZGF0YScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1tZXRhZGF0YS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGF0ZU1hY2hpbmVzQ29ubmVjdGlvbk1ldGFkYXRhQ29tcG9uZW50IGV4dGVuZHMgRGF0YUZvcm1CYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3NlbmRlckZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VuZGVyRm9ybTogU3RhdGVNYWNoaW5lc0Nvbm5lY3Rpb25TZW5kZXJDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdyZWNlaXZlckZvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgcmVjZWl2ZXJGb3JtOiBTdGF0ZU1hY2hpbmVzQ29ubmVjdGlvblJlY2VpdmVyQ29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVEcm9wZG93bkljb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSB0ZW1wbGF0ZURyb3Bkb3duSWNvbjogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlRHJvcGRvd25JY29uU2VsZWN0ZWQnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0ZW1wbGF0ZURyb3Bkb3duSWNvblNlbGVjdGVkOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQElucHV0KCkgZGVzaWduZXJDb250ZXh0OiBDb21wb25lbnRDb250ZXh0U2VydmljZTtcclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIG1hY2hpbmVzRGF0YTogYW55O1xyXG4gICAgQElucHV0KCkgdmlld09ubHk6IGJvb2xlYW47XHJcbiAgICBAT3V0cHV0KCkgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBzb3VyY2U6IGFueTtcclxuXHJcbiAgICBpc0Zvcm1BZGQgPSB0cnVlO1xyXG4gICAgY29udGFpbmVySWQ6IHN0cmluZztcclxuICAgIGhlaWdodERlc2lnbmVyOiBudW1iZXI7XHJcbiAgICBkYXRhRGVzaWduID0ge1xyXG4gICAgICAgIG1hY2hpbmVzOiBbXSxcclxuICAgICAgICBjb25uZWN0aW9uczogW11cclxuICAgIH07XHJcblxyXG4gICAgZm9ybVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBtYWluVGFiRGF0YTogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnc2VuZGVyJyxcclxuICAgICAgICAgICAgaWNvbjogJ3BpIHBpLXRhZ3MnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ1Bow6JuIHF1eeG7gW4gdGhhbyB0w6FjJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAncmVjZWl2ZXInLFxyXG4gICAgICAgICAgICBpY29uOiAncGkgcGktdXNlcnMnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ05nxrDhu51pIG5o4bqtbicsXHJcbiAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICB0aGlzLmF1dG9HZXREZXRhaWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmF1dG9TYXZlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lcklkID0gdGhpcy5fY29tbW9uU2VydmljZS5ndWlkKCk7XHJcbiAgICAgICAgdGhpcy5kb05vdENoZWNrQmFzZVNlcnZpY2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSA8Rm9ybVNjaGVtYUJhc2VbXT5bXHJcbiAgICAgICAgICAgIG5ldyBNYXNrQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3NvVGh1VHUnLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdT4buRIHRo4bupIHThu7EnLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAxLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENoZWNrYm94Q29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ03hu58gaOG7mXAgdGhv4bqhaScsXHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ29wZW5Qb3B1cCcsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDJcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBEcm9wZG93bkNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpY29uJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQmnhu4N1IHTGsOG7o25nJyxcclxuICAgICAgICAgICAgICAgIGZ1bGxMYWJlbDogJ0Jp4buDdSB0xrDhu6NuZycsXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDEsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzkwcHgnLFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhU291cmNlSWNvblswXS5pZCxcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcclxuICAgICAgICAgICAgICAgICAgICAuLi5kYXRhU291cmNlSWNvblxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdfX3dvcmtmbG93LXNldHRpbmctaWNvbicsXHJcbiAgICAgICAgICAgICAgICBzaG93Q2xlYXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVJdGVtOiB0aGlzLnRlbXBsYXRlRHJvcGRvd25JY29uLFxyXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVTZWxlY3RlZEl0ZW06IHRoaXMudGVtcGxhdGVEcm9wZG93bkljb25TZWxlY3RlZFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IFRleHRDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnTcOjIGjDoG5oIMSR4buZbmcnLFxyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjb2RlJyxcclxuICAgICAgICAgICAgICAgIGNvcnJlY3RvcnM6IFtuZXcgVXBwZXJDb3JyZWN0b3IoKV0sXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgVGV4dENvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdUw6puIGjDoG5oIMSR4buZbmcnLFxyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogNVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdDaG8gc+G7rWEgZ+G7o2kgw70nLFxyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd0YXJnZXRzQWxsb3dNb2RpZnknLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTIsXHJcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlOiBEYXRhU291cmNlVGFyZ2V0VHlwZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmVkaXRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0Zvcm1BZGQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNGb3JtQWRkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNGb3JtQWRkKSB7XHJcbiAgICAgICAgICAgIHNldE1ldGFkYXRhQ29ubmVjdGlvbihldnQubW9kZWwsIHRoaXMuZGF0YSk7XHJcbiAgICAgICAgICAgIC8vIFNldCBs4bqhaSBnacOhIHRy4buLIGPhu6dhIG9wZW5Qb3B1cCB2w6wgxJHDonkgbMOgIHRodeG7mWMgdMOtbmggbeG7m2kgdGjDqm1cclxuICAgICAgICAgICAgLy8gQ8OhYyBj4bqldSBow6xuaCB3b3JrZmxvdyDEkWFuZyBrIGPDsyBz4bq1biB2YWx1ZSBuw6puIHPhur0gayBwYXNzIMSRxrDhu6NjIHJlcXVpcmUgY+G7p2EgY29udHJvbFxyXG4gICAgICAgICAgICBpZiAoIWV2dC5tb2RlbC5vcGVuUG9wdXApIHtcclxuICAgICAgICAgICAgICAgIGV2dC5tb2RlbC5vcGVuUG9wdXAgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHRoaXMuZGF0YS5zb3VyY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBldnQubW9kZWwuaWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcclxuICAgICAgICAgICAgZXZ0Lm1vZGVsLm9wZW5Qb3B1cCA9IHRydWU7XHJcbiAgICAgICAgICAgIGV2dC5tb2RlbC5kYXRhID0ge307XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHZhbGlkYXRlRm9ybSgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbm4gb2YgdGhpcy5tYWNoaW5lc0RhdGEuY29ubmVjdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKGNvbm4uc291cmNlID09IHRoaXMuc291cmNlXHJcbiAgICAgICAgICAgICAgICAmJiBjb25uLmNvZGUudG9VcHBlckNhc2UoKSA9PSB0aGlzLm1vZGVsLmRhdGEuY29kZVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb25uLmVkaXRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKGBNw6MgaMOgbmggxJHhu5luZyBcIiR7dGhpcy5tb2RlbC5kYXRhLmNvZGV9XCIgxJHDoyB04buTbiB04bqhaSwgdnVpIGzDsm5nIMSR4bq3dCBtw6Mga2jDoWMhYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaGFuZGxlTWFudWFsU2F2ZSgpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZGF0YSA9IHt9O1xyXG4gICAgICAgIGNvbnN0IGRhdGFQbHVzID0gdGhpcy5tb2RlbC5kYXRhLmRhdGE7XHJcbiAgICAgICAgY29uc3QgZGF0YVNlbmRlciA9IHRoaXMuc2VuZGVyRm9ybS5nZXRNb2RlbERhdGEoKTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFQbHVzLCBkYXRhU2VuZGVyKTtcclxuICAgICAgICBjb25zdCBkYXRhUmVjZWl2ZXIgPSBhd2FpdCB0aGlzLnJlY2VpdmVyRm9ybS5nZXRNb2RlbERhdGEoKTtcclxuICAgICAgICBpZiAoZGF0YVJlY2VpdmVyID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhUGx1cywgZGF0YVJlY2VpdmVyKTtcclxuICAgICAgICB0aGlzLm9uU2F2ZWQuZW1pdCh0aGlzLm1vZGVsLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZShldnQpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhLmNvZGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWVyU2VydmljZS5zaG93Q29uZmlybShgQuG6oW4gY8OzIGNo4bqvYyBtdeG7kW4geMOzYSDEkcaw4budbmcgbuG7kWkgJHt0aGlzLmRhdGEuY29kZX0gLSAke3RoaXMuZGF0YS5uYW1lfT9gKS50aGVuKChycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2FuY2VsKGV2dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KGV2dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2FuY2VsKGV2dCk7XHJcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdChldnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3N0YXRlbWFjaGluZXMvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhL3N0YXRlbWFjaGluZXMtY29ubmVjdGlvbi1tZXRhZGF0YS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQTZCLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQzVJLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtJ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QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs4QkFDMUQsS0FBSzttQkFDTCxLQUFLOzJCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXBwZXJDb3JyZWN0b3IgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvY29ycmVjdG9ycyc7XHJcbmltcG9ydCB7IERhdGFGb3JtQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWZvcm0tYmFzZSc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29udHJvbFNjaGVtYSwgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSwgRHJvcGRvd25Db250cm9sU2NoZW1hLCBFdmVudERhdGEsIEZvcm1TY2hlbWFCYXNlLCBNYXNrQ29udHJvbFNjaGVtYSwgVGV4dENvbnRyb2xTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VUYXJnZXRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFN0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJDb21wb25lbnQgfSBmcm9tICcuLi9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tcmVjZWl2ZXIvc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXJlY2VpdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN0YXRlTWFjaGluZXNDb25uZWN0aW9uU2VuZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLXNlbmRlci9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tc2VuZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHNldE1ldGFkYXRhQ29ubmVjdGlvbiB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBkYXRhU291cmNlSWNvbiA9IFtcclxuICAgIHsgaWQ6ICdyZXBsYXknLCB0ZW46ICdwaSBwaS1yZXBsYXknIH0sXHJcbiAgICB7IGlkOiAnc2hhcmUnLCB0ZW46ICdwaSBwaS1zZW5kJyB9LFxyXG4gICAgeyBpZDogJ2NoZWNrJywgdGVuOiAncGkgcGktY2hlY2snIH0sXHJcbiAgICB7IGlkOiAndGltZXMnLCB0ZW46ICdwaSBwaS10aW1lcycgfSxcclxuICAgIHsgaWQ6ICdiYW4nLCB0ZW46ICdwaSBwaS1iYW4nIH0sXHJcbiAgICB7IGlkOiAnZm9yd2FyZCcsIHRlbjogJ3BpIHBpLWZvcndhcmQnIH0sXHJcbiAgICB7IGlkOiAnbGluaycsIHRlbjogJ3BpIHBpLWxpbmsnIH0sXHJcbiAgICB7IGlkOiAnY29tbWVudCcsIHRlbjogJ3BpIHBpLWNvbW1lbnRzJyB9XHJcbl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGF0ZW1hY2hpbmVzLWNvbm5lY3Rpb24tbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhdGVtYWNoaW5lcy1jb25uZWN0aW9uLW1ldGFkYXRhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXRlTWFjaGluZXNDb25uZWN0aW9uTWV0YWRhdGFDb21wb25lbnQgZXh0ZW5kcyBEYXRhRm9ybUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnc2VuZGVyRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSBzZW5kZXJGb3JtOiBTdGF0ZU1hY2hpbmVzQ29ubmVjdGlvblNlbmRlckNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ3JlY2VpdmVyRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSByZWNlaXZlckZvcm06IFN0YXRlTWFjaGluZXNDb25uZWN0aW9uUmVjZWl2ZXJDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZURyb3Bkb3duSWNvbicsIHsgc3RhdGljOiB0cnVlIH0pIHRlbXBsYXRlRHJvcGRvd25JY29uOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVEcm9wZG93bkljb25TZWxlY3RlZCcsIHsgc3RhdGljOiB0cnVlIH0pIHRlbXBsYXRlRHJvcGRvd25JY29uU2VsZWN0ZWQ6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBkZXNpZ25lckNvbnRleHQ6IENvbXBvbmVudENvbnRleHRTZXJ2aWNlO1xyXG4gICAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gICAgQElucHV0KCkgbWFjaGluZXNEYXRhOiBhbnk7XHJcbiAgICBASW5wdXQoKSB2aWV3T25seTogYm9vbGVhbjtcclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIHNvdXJjZTogYW55O1xyXG5cclxuICAgIGlzRm9ybUFkZCA9IHRydWU7XHJcbiAgICBjb250YWluZXJJZDogc3RyaW5nO1xyXG4gICAgaGVpZ2h0RGVzaWduZXI6IG51bWJlcjtcclxuICAgIGRhdGFEZXNpZ24gPSB7XHJcbiAgICAgICAgbWFjaGluZXM6IFtdLFxyXG4gICAgICAgIGNvbm5lY3Rpb25zOiBbXVxyXG4gICAgfTtcclxuXHJcbiAgICBmb3JtUmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG1haW5UYWJEYXRhOiBhbnlbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICdzZW5kZXInLFxyXG4gICAgICAgICAgICBpY29uOiAncGkgcGktdGFncycsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnUGjDom4gcXV54buBbiB0aGFvIHTDoWMnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvZGU6ICdyZWNlaXZlcicsXHJcbiAgICAgICAgICAgIGljb246ICdwaSBwaS11c2VycycsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnTmfGsOG7nWkgbmjhuq1uJyxcclxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuYXV0b0dldERldGFpbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYXV0b1NhdmUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVySWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcclxuICAgICAgICB0aGlzLmRvTm90Q2hlY2tCYXNlU2VydmljZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYSA9IDxGb3JtU2NoZW1hQmFzZVtdPltcclxuICAgICAgICAgICAgbmV3IE1hc2tDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc29UaHVUdScsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1Phu5EgdGjhu6kgdOG7sScsXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IDEsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ2hlY2tib3hDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnTeG7nyBo4buZcCB0aG/huqFpJyxcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnb3BlblBvcHVwJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMlxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IERyb3Bkb3duQ29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2ljb24nLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdCaeG7g3UgdMaw4bujbmcnLFxyXG4gICAgICAgICAgICAgICAgZnVsbExhYmVsOiAnQmnhu4N1IHTGsOG7o25nJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMSxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnOTBweCcsXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRhdGFTb3VyY2VJY29uWzBdLmlkLFxyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogW1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLmRhdGFTb3VyY2VJY29uXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgcGFuZWxDbGFzczogJ19fd29ya2Zsb3ctc2V0dGluZy1pY29uJyxcclxuICAgICAgICAgICAgICAgIHNob3dDbGVhcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZUl0ZW06IHRoaXMudGVtcGxhdGVEcm9wZG93bkljb24sXHJcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbTogdGhpcy50ZW1wbGF0ZURyb3Bkb3duSWNvblNlbGVjdGVkXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgVGV4dENvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdNw6MgaMOgbmggxJHhu5luZycsXHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2NvZGUnLFxyXG4gICAgICAgICAgICAgICAgY29ycmVjdG9yczogW25ldyBVcHBlckNvcnJlY3RvcigpXSxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBUZXh0Q29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1TDqm4gaMOgbmggxJHhu5luZycsXHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25hbWUnLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiA1XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSh7XHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0NobyBz4butYSBn4bujaSDDvSBuaMOzbSB0aGVvIGTDtWkgKGThu68gbGnhu4d1IGzhuqV5IHThu6sgYsaw4bubYyB0csaw4bubYyknLFxyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICd0YXJnZXRzQWxsb3dNb2RpZnknLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTIsXHJcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlOiBEYXRhU291cmNlVGFyZ2V0VHlwZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmVkaXRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0Zvcm1BZGQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNGb3JtQWRkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNGb3JtQWRkKSB7XHJcbiAgICAgICAgICAgIHNldE1ldGFkYXRhQ29ubmVjdGlvbihldnQubW9kZWwsIHRoaXMuZGF0YSk7XHJcbiAgICAgICAgICAgIC8vIFNldCBs4bqhaSBnacOhIHRy4buLIGPhu6dhIG9wZW5Qb3B1cCB2w6wgxJHDonkgbMOgIHRodeG7mWMgdMOtbmggbeG7m2kgdGjDqm1cclxuICAgICAgICAgICAgLy8gQ8OhYyBj4bqldSBow6xuaCB3b3JrZmxvdyDEkWFuZyBrIGPDsyBz4bq1biB2YWx1ZSBuw6puIHPhur0gayBwYXNzIMSRxrDhu6NjIHJlcXVpcmUgY+G7p2EgY29udHJvbFxyXG4gICAgICAgICAgICBpZiAoIWV2dC5tb2RlbC5vcGVuUG9wdXApIHtcclxuICAgICAgICAgICAgICAgIGV2dC5tb2RlbC5vcGVuUG9wdXAgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHRoaXMuZGF0YS5zb3VyY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBldnQubW9kZWwuaWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcclxuICAgICAgICAgICAgZXZ0Lm1vZGVsLm9wZW5Qb3B1cCA9IHRydWU7XHJcbiAgICAgICAgICAgIGV2dC5tb2RlbC5kYXRhID0ge307XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHZhbGlkYXRlRm9ybSgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbm4gb2YgdGhpcy5tYWNoaW5lc0RhdGEuY29ubmVjdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKGNvbm4uc291cmNlID09IHRoaXMuc291cmNlXHJcbiAgICAgICAgICAgICAgICAmJiBjb25uLmNvZGUudG9VcHBlckNhc2UoKSA9PSB0aGlzLm1vZGVsLmRhdGEuY29kZVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb25uLmVkaXRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKGBNw6MgaMOgbmggxJHhu5luZyBcIiR7dGhpcy5tb2RlbC5kYXRhLmNvZGV9XCIgxJHDoyB04buTbiB04bqhaSwgdnVpIGzDsm5nIMSR4bq3dCBtw6Mga2jDoWMhYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaGFuZGxlTWFudWFsU2F2ZSgpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZGF0YSA9IHt9O1xyXG4gICAgICAgIGNvbnN0IGRhdGFQbHVzID0gdGhpcy5tb2RlbC5kYXRhLmRhdGE7XHJcbiAgICAgICAgY29uc3QgZGF0YVNlbmRlciA9IHRoaXMuc2VuZGVyRm9ybS5nZXRNb2RlbERhdGEoKTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKGRhdGFQbHVzLCBkYXRhU2VuZGVyKTtcclxuICAgICAgICBjb25zdCBkYXRhUmVjZWl2ZXIgPSBhd2FpdCB0aGlzLnJlY2VpdmVyRm9ybS5nZXRNb2RlbERhdGEoKTtcclxuICAgICAgICBpZiAoZGF0YVJlY2VpdmVyID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zdWJtaXR0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhUGx1cywgZGF0YVJlY2VpdmVyKTtcclxuICAgICAgICB0aGlzLm9uU2F2ZWQuZW1pdCh0aGlzLm1vZGVsLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZShldnQpIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhLmNvZGUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWVyU2VydmljZS5zaG93Q29uZmlybShgQuG6oW4gY8OzIGNo4bqvYyBtdeG7kW4geMOzYSDEkcaw4budbmcgbuG7kWkgJHt0aGlzLmRhdGEuY29kZX0gLSAke3RoaXMuZGF0YS5uYW1lfT9gKS50aGVuKChycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2FuY2VsKGV2dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KGV2dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2FuY2VsKGV2dCk7XHJcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdChldnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -173,7 +173,7 @@ export class UserPickerBoxComponent extends ComponentBase {
173
173
  UserPickerBoxComponent.decorators = [
174
174
  { type: Component, args: [{
175
175
  selector: 'user-picker-box',
176
- template: "<div class=\"p-grid p-m-0 tn-l-user-picker-box\">\r\n <as-split [unit]=\"'pixel'\">\r\n <as-split-area [size]=\"330\">\r\n <tn-custom-scrollbar>\r\n <p-tree [style]=\"{'width': '100%'}\" styleClass=\"tn-tree-beauty tree-organization-picker\"\r\n [value]=\"rootTreeNode\" filterPlaceholder=\"T\u00ECm \u0111\u01A1n v\u1ECB / ph\u00F2ng ban\" selectionMode=\"single\"\r\n [filter]=\"true\" [(selection)]=\"selectedTreeNode\" (onNodeExpand)=\"onNodeExpand($event)\"\r\n (onNodeSelect)=\"nodeSelect($event)\" [emptyMessage]=\"'Kh\u00F4ng t\u00ECm th\u1EA5y k\u1EBFt qu\u1EA3'\">\r\n <ng-template let-node pTemplate=\"default\">\r\n <span id=\"{{node.data}}\" class=\"custom-node\">{{node.label}}</span>\r\n </ng-template>\r\n </p-tree>\r\n </tn-custom-scrollbar>\r\n </as-split-area>\r\n <as-split-area [size]=\"'*'\">\r\n <entity-picker-box #entityPickerBox [control]=\"control\" [parentSetting]=\"parentSetting\"\r\n [advanceData]=\"advanceData\" [selectedValue]=\"selectedValue\" (onChanged)=\"handleChangedEntity($event)\"\r\n (onSelect)=\"handleSelectEntity($event)\" (onUnSelect)=\"handleUnSelectEntity($event)\"\r\n (onDone)=\"handleDone($event)\" (onRowSelect)=\"handleRowSelect($event)\">\r\n </entity-picker-box>\r\n </as-split-area>\r\n </as-split>\r\n</div>\r\n<ng-template #buttonTemplate>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn'\"\r\n (click)=\"handleSelect($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"handleCancelDialog($event)\"></button>\r\n</ng-template>",
176
+ template: "<div class=\"p-grid p-m-0 tn-l-user-picker-box\">\r\n <as-split [unit]=\"'pixel'\">\r\n <as-split-area [size]=\"330\">\r\n <tn-custom-scrollbar>\r\n <p-tree [style]=\"{'width': '100%'}\" styleClass=\"tn-tree-beauty tree-organization-picker\"\r\n [value]=\"rootTreeNode\" filterPlaceholder=\"T\u00ECm \u0111\u01A1n v\u1ECB / ph\u00F2ng ban\" selectionMode=\"single\"\r\n [filter]=\"true\" [(selection)]=\"selectedTreeNode\" (onNodeExpand)=\"onNodeExpand($event)\"\r\n (onNodeSelect)=\"nodeSelect($event)\" [emptyMessage]=\"'Kh\u00F4ng t\u00ECm th\u1EA5y k\u1EBFt qu\u1EA3'\">\r\n <ng-template let-node pTemplate=\"default\">\r\n <span id=\"{{node.data}}\" class=\"custom-node\">{{node.label}}</span>\r\n </ng-template>\r\n </p-tree>\r\n </tn-custom-scrollbar>\r\n </as-split-area>\r\n <as-split-area [size]=\"'*'\">\r\n <entity-picker-box #entityPickerBox [control]=\"control\" [parentSetting]=\"parentSetting\"\r\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\r\n (onChanged)=\"handleChangedEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\r\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleDone($event)\"\r\n (onRowSelect)=\"handleRowSelect($event)\">\r\n </entity-picker-box>\r\n </as-split-area>\r\n </as-split>\r\n</div>\r\n<ng-template #buttonTemplate>\r\n <button type=\"button\" pButton icon=\"pi pi-save\" class=\"p-button-text\" [label]=\"'Ch\u1ECDn'\"\r\n (click)=\"handleSelect($event)\"></button>\r\n <button type=\"button\" pButton icon=\"pi pi-replay\" class=\"p-button-text p-button-secondary\"\r\n [label]=\"'FORM.CANCEL' | translate\" preventTab (click)=\"handleCancelDialog($event)\"></button>\r\n</ng-template>",
177
177
  providers: [ComponentContextService],
178
178
  styles: [".action-btn{background-color:#fff;border:1px solid #0a89bf;color:#0a89bf;cursor:pointer;font-size:16px;margin:4px 2px;text-align:center;width:40px}.content-all{display:flex;flex-direction:column}.content-top{flex-grow:1}.content-bottom,.content-top{overflow:hidden;padding:5px 0}.content-bottom{border-top:1px solid #ddd;flex:0 0 50%}.tn-l-button-group{padding-bottom:1em}.tn-l-button-group-picker{background:#fff;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:10}.tn-l-user-picker-box{height:100%}.tn-l-left-sidebar-wrapper{border-right:1px solid #aaa;height:100%}.tn-l-left-sidebar-area{height:100%}.tn-l-right-content-wrapper{height:100%;padding-bottom:0;padding-top:0}@media (max-width:640px){.entityPicker{height:auto}.tn-l-search-button-group{padding-bottom:1em}.tn-l-button-group-picker{left:auto;padding-bottom:5px;position:static;top:auto;transform:none}.tn-l-left-sidebar-wrapper{border-bottom:1px solid #aaa;border-right:unset;height:calc(100vh - 300px)}}::ng-deep .user-picker-box-dialog .p-dialog-content{overflow:hidden;padding:0}::ng-deep .user-picker-box-dialog .p-tree{border:none;padding:0}::ng-deep .user-picker-box-dialog .p-tree-wrapper{padding:.5rem}::ng-deep .user-picker-box-dialog .p-tree .p-tree-filter-container{background-color:#fff;margin-bottom:0;padding:.5em;position:-webkit-sticky;position:sticky;top:0;z-index:4}::ng-deep .user-picker-box-dialog .p-tree-empty-message{padding:.5rem}::ng-deep .user-picker-box-dialog .p-tree .p-tree-filter-container .p-tree-filter-icon{right:1em}::ng-deep .user-picker-box-dialog .ps__rail-y{z-index:10}@media (max-width:640px){::ng-deep .user-picker-box-dialog .p-dialog-content{overflow:auto}::ng-deep .user-picker-box-dialog .tn-dialog-scrollbar>div{min-height:100%!important}::ng-deep .user-picker-box-dialog .tn-l-right-content-wrapper{padding:0}}"]
179
179
  },] }
@@ -195,6 +195,7 @@ UserPickerBoxComponent.propDecorators = {
195
195
  width: [{ type: Input }],
196
196
  height: [{ type: Input }],
197
197
  selectedValue: [{ type: Input }],
198
+ readOnlyValues: [{ type: Input }],
198
199
  entityPickerBox: [{ type: ViewChild, args: ['entityPickerBox',] }],
199
200
  onRowSelect: [{ type: Output }],
200
201
  onChanged: [{ type: Output }],
@@ -202,4 +203,4 @@ UserPickerBoxComponent.propDecorators = {
202
203
  onUnSelect: [{ type: Output }],
203
204
  onDone: [{ type: Output }]
204
205
  };
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3VzZXItcGlja2VyL3VzZXItcGlja2VyLWJveC91c2VyLXBpY2tlci1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVFqRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQTJDckQsWUFDYyxjQUE2QixFQUN2QyxTQUFtQixFQUNULG9CQUF5QyxFQUN6QyxtQkFBMkM7UUFFckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FB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U0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHE3REFBK0M7Z0JBRS9DLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDOzthQUN2Qzs7O1lBWFEsYUFBYTtZQVBZLFFBQVE7WUFNakMsbUJBQW1CO1lBS25CLHNCQUFzQjs7O3VCQVUxQixLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsS0FBSzs2QkFDTCxLQUFLOzRCQUVMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzhCQUVMLFNBQVMsU0FBQyxpQkFBaUI7MEJBRTNCLE1BQU07d0JBQ04sTUFBTTt1QkFDTixNQUFNO3lCQUNOLE1BQU07cUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0SXRlbSwgVHJlZU5vZGUgfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2NvbXBvbmVudC1iYXNlJztcclxuaW1wb3J0IHsgQ3J1ZExpc3RTZXR0aW5nLCBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hLCBPcGVyYXRvciwgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJWNVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91c2VyLXY1LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcHBlbmREZWZhdWx0RmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29tbW9uJztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWJveC9lbnRpdHktcGlja2VyLWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZHZhbmNlRGF0YUVudGl0eVBpY2tlciB9IGZyb20gJy4uLy4uL2VudGl0eS1waWNrZXIvbW9kZWwvYWR2YW5jZS1kYXRhJztcclxuaW1wb3J0IHsgQ29DYXVUb0NodWNUZXN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2V0ZXN0L2NvY2F1dG9jaHVjLXRlc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndXNlci1waWNrZXItYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXBpY2tlci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1waWNrZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyUGlja2VyQm94Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBlbmFibGVDYWNoaW5nID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xTZXR0aW5nOiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYTtcclxuXHJcbiAgICBASW5wdXQoKSBwYXJlbnRTZXR0aW5nOiBDcnVkTGlzdFNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBhZHZhbmNlRGF0YTogQWR2YW5jZURhdGFFbnRpdHlQaWNrZXI7XHJcbiAgICBASW5wdXQoKSBjb250cm9sOiBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hO1xyXG4gICAgQElucHV0KCkgd2lkdGggPSAxMTcwO1xyXG4gICAgQElucHV0KCkgaGVpZ2h0ID0gOTAwO1xyXG4gICAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdlbnRpdHlQaWNrZXJCb3gnKSBlbnRpdHlQaWNrZXJCb3g6IEVudGl0eVBpY2tlckJveENvbXBvbmVudDtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25Sb3dTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uVW5TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIG9uRG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcmVhZG9ubHkgU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfTkFNRSA9ICd1c2VyX3BpY2tlcl9zdG9yYWdlX25hbWUnO1xyXG4gICAgcmVhZG9ubHkgU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfSURfVVNFUiA9ICd1c2VyX3BpY2tlcl9zdG9yYWdlX2lkX3VzZXInO1xyXG4gICAgcmVhZG9ubHkgU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfU0VBUkNIX0tFWSA9ICd1c2VyX3BpY2tlcl9zdG9yYWdlX3NlYXJjaF9rZXknO1xyXG4gICAgcmVhZG9ubHkgU1RPUkFHRV9LRVlfVVNFUl9QSUNLRVJfTk9ERV9TRUxFQ1RFRCA9ICd1c2VyX3BpY2tlcl9zdG9yYWdlX25vZGUnO1xyXG5cclxuICAgIHJvb3RUcmVlTm9kZTogVHJlZU5vZGVbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICAgICAgZGF0YTogJy0xJyxcclxuICAgICAgICAgICAgZXhwYW5kZWRJY29uOiAncGkgcGktZm9sZGVyLW9wZW4nLFxyXG4gICAgICAgICAgICBjb2xsYXBzZWRJY29uOiAncGkgcGktZm9sZGVyJyxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdXHJcbiAgICAgICAgfV07XHJcblxyXG4gICAgaXNGaXJzdExvYWQgPSB0cnVlO1xyXG4gICAgcm9vdEZpbHRlcjogYW55ID0ge307XHJcblxyXG4gICAgc2VsZWN0ZWRUcmVlTm9kZTogYW55O1xyXG4gICAgdHJlZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHNlbGVjdGVkTm9kZURhdGE6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX3VzZXJWNVNlcnZpY2U6IFVzZXJWNVNlcnZpY2UsXHJcbiAgICAgICAgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgX29yZ2FuaXphdGlvblNlcnZpY2U6IE9yZ2FuaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9jb0NhdVRvQ2h1Y1NlcnZpY2U6IENvQ2F1VG9DaHVjVGVzdFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnBsdXNVcmwgPSAnRm9yVXNlclBpY2tlcic7XHJcbiAgICAgICAgdGhpcy5pbml0VHJlZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVNlbGVjdChldmVudCkge1xyXG4gICAgICAgIHRoaXMub25TZWxlY3QuZW1pdChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQ2FuY2VsRGlhbG9nKGV2ZW50KSB7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ob2RlRXhwYW5kKGV2ZW50KSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5vZGVTZWxlY3QoZXZlbnQpIHtcclxuICAgICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQub3JpZ2luYWxFdmVudC50YXJnZXQ7XHJcbiAgICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2N1c3RvbS1ub2RlJykpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVEYXRhID0gdGFyZ2V0LmlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJy5jdXN0b20tbm9kZScpO1xyXG4gICAgICAgICAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSB0YXJnZXQuaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSBldmVudC5ub2RlLmRhdGE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5TVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9OT0RFX1NFTEVDVEVELCB0aGlzLnNlbGVjdGVkTm9kZURhdGEpO1xyXG4gICAgICAgIHRoaXMucm9vdEZpbHRlci5wYXJlbnRJZCA9IG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICBmaWVsZDogJ2lkUGF0aE9yZ2FuaXphdGlvbicsXHJcbiAgICAgICAgICAgIG9wZXJhdG9yOiBPcGVyYXRvci5jb250YWluLFxyXG4gICAgICAgICAgICB2YWx1ZTogYDske3RoaXMuc2VsZWN0ZWROb2RlRGF0YX07YFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5maWx0ZXJXaGlsZVByb2Nlc3MgPSBbXHJcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdpZERvblZpJywgT3BlcmF0b3IuZXF1YWwsIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSlcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLmVudGl0eVBpY2tlckJveC5kYXRhQ29tcG9uZW50Ll90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcclxuICAgICAgICAvLyB0aGlzLmVudGl0eVBpY2tlckJveC5zZWxlY3RlZENvbXBvbmVudC5fdHJpZ2dlclByb2Nlc3NEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdFRyZWUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbFNldHRpbmcubGF6eUxvYWRPcmdhbml6YXRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgcnMgPSBhd2FpdCB0aGlzLl9vcmdhbml6YXRpb25TZXJ2aWNlLmdldE9yZ2FuaXphdGlvbkJ5UGFyZW50SWQodGhpcy5fY29tbW9uU2VydmljZS5ndWlkRW1wdHkoKSk7XHJcbiAgICAgICAgICAgIHRoaXMucm9vdFRyZWVOb2RlID0gcnMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkVHJlZSh0aGlzLnJvb3RUcmVlTm9kZVswXSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBjb25zdCBycyA9IGF3YWl0IHRoaXMuX2NvQ2F1VG9DaHVjU2VydmljZS5nZXRCeVBhcmVudElkKHRoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZEVtcHR5KCkpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJvb3RUcmVlTm9kZSA9IHJzLmRhdGE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMubG9hZFRyZWUodGhpcy5yb290VHJlZU5vZGVbMF0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkVHJlZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZFRyZWUoZXZlbnQ6IGFueSwgaXNSb290Pykge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xTZXR0aW5nLmxhenlMb2FkT3JnYW5pemF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29yZ2FuaXphdGlvblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uQnlQYXJlbnRJZChldmVudC5kYXRhKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5jaGlsZHJlbiA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5jaGlsZHJlbiAmJiBldmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQubGVhZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiByZXN1bHQuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXIgaXRlbSA9IHJlc3VsdC5kYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaXRlbS5sZWFmID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaXRlbS5sZWFmID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGM/cCBuaD90IEFQSVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGF0YVtrZXldLmxlYWYgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaXNSb290KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuZXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29yZ2FuaXphdGlvblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uVHJlZSh0aGlzLmNvbnRyb2xTZXR0aW5nLnBhcmVudE9yZ0NvZGUpLnRoZW4oYXN5bmMgcmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm9vdFRyZWVOb2RlID0gcmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3RUcmVlTm9kZVswXS5leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVMb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250cm9sU2V0dGluZy5wYXJlbnRPcmdDb2RlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdEZpbHRlci5wYXJlbnRJZCA9IG5ldyBGaWx0ZXIoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2lkUGF0aE9yZ2FuaXphdGlvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBPcGVyYXRvci5jb250YWluLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYDske3RoaXMucm9vdFRyZWVOb2RlWzBdLmRhdGF9O2BcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlyc3RMb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBtb2RpZnlGaWx0ZXIoZmlsdGVycykge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMucm9vdEZpbHRlcikuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMucm9vdEZpbHRlcltpdGVtXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYXdhaXQgYXBwZW5kRGVmYXVsdEZpbHRlcihmaWx0ZXJzLCB0aGlzLmNvbnRyb2xTZXR0aW5nLmRlZmF1bHRGaWx0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RVc2VyKHVzZXIpIHtcclxuICAgICAgICBjb25zdCBsYWJlbCA9IHVzZXIuZW1haWwgPyBgJHt1c2VyLmZ1bGxOYW1lTmV3fSAoJHt1c2VyLmVtYWlsfSlgIDogYCR7dXNlci5mdWxsTmFtZU5ld31gO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVXNlciA9IDxTZWxlY3RJdGVtPntcclxuICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgICAgICAgdmFsdWU6IHVzZXIuaW5zdGFuY2VJZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMub25TZWxlY3QuZW1pdChzZWxlY3RlZFVzZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVJvd1NlbGVjdChldnQpIHtcclxuICAgICAgICB0aGlzLm9uUm93U2VsZWN0LmVtaXQoZXZ0KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVTZWxlY3RFbnRpdHkoZXZ0KSB7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGV2dCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlVW5TZWxlY3RFbnRpdHkoZXZ0KSB7XHJcbiAgICAgICAgdGhpcy5vblVuU2VsZWN0LmVtaXQoZXZ0KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVDaGFuZ2VkRW50aXR5KGRhdGEpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlZC5lbWl0KGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZURvbmUoZXZ0KSB7XHJcbiAgICAgICAgdGhpcy5vbkRvbmUuZW1pdChldnQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3VzZXItcGlja2VyL3VzZXItcGlja2VyLWJveC91c2VyLXBpY2tlci1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVFqRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQTRDckQsWUFDYyxjQUE2QixFQUN2QyxTQUFtQixFQUNULG9CQUF5QyxFQUN6QyxtQkFBMkM7UUFFckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FB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U0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLDQrREFBK0M7Z0JBRS9DLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDOzthQUN2Qzs7O1lBWFEsYUFBYTtZQVBZLFFBQVE7WUFNakMsbUJBQW1CO1lBS25CLHNCQUFzQjs7O3VCQVUxQixLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsS0FBSzs2QkFDTCxLQUFLOzRCQUVMLEtBQUs7MEJBQ0wsS0FBSztzQkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzZCQUNMLEtBQUs7OEJBRUwsU0FBUyxTQUFDLGlCQUFpQjswQkFFM0IsTUFBTTt3QkFDTixNQUFNO3VCQUNOLE1BQU07eUJBQ04sTUFBTTtxQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZWxlY3RJdGVtLCBUcmVlTm9kZSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBDcnVkTGlzdFNldHRpbmcsIEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEsIE9wZXJhdG9yLCBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZ2FuaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclY1U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXItdjUuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwcGVuZERlZmF1bHRGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb21tb24nO1xyXG5pbXBvcnQgeyBFbnRpdHlQaWNrZXJCb3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXItYm94L2VudGl0eS1waWNrZXItYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkdmFuY2VEYXRhRW50aXR5UGlja2VyIH0gZnJvbSAnLi4vLi4vZW50aXR5LXBpY2tlci9tb2RlbC9hZHZhbmNlLWRhdGEnO1xyXG5pbXBvcnQgeyBDb0NhdVRvQ2h1Y1Rlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXRlc3QvY29jYXV0b2NodWMtdGVzdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd1c2VyLXBpY2tlci1ib3gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItcGlja2VyLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91c2VyLXBpY2tlci1ib3guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJQaWNrZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZUNhY2hpbmcgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgY29udHJvbFNldHRpbmc6IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhcmVudFNldHRpbmc6IENydWRMaXN0U2V0dGluZztcclxuICAgIEBJbnB1dCgpIGFkdmFuY2VEYXRhOiBBZHZhbmNlRGF0YUVudGl0eVBpY2tlcjtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWE7XHJcbiAgICBASW5wdXQoKSB3aWR0aCA9IDExNzA7XHJcbiAgICBASW5wdXQoKSBoZWlnaHQgPSA5MDA7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlO1xyXG4gICAgQElucHV0KCkgcmVhZE9ubHlWYWx1ZXM6IHN0cmluZ1tdO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2VudGl0eVBpY2tlckJveCcpIGVudGl0eVBpY2tlckJveDogRW50aXR5UGlja2VyQm94Q29tcG9uZW50O1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblJvd1NlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25VblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgb25Eb25lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICByZWFkb25seSBTVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9OQU1FID0gJ3VzZXJfcGlja2VyX3N0b3JhZ2VfbmFtZSc7XHJcbiAgICByZWFkb25seSBTVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9JRF9VU0VSID0gJ3VzZXJfcGlja2VyX3N0b3JhZ2VfaWRfdXNlcic7XHJcbiAgICByZWFkb25seSBTVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9TRUFSQ0hfS0VZID0gJ3VzZXJfcGlja2VyX3N0b3JhZ2Vfc2VhcmNoX2tleSc7XHJcbiAgICByZWFkb25seSBTVE9SQUdFX0tFWV9VU0VSX1BJQ0tFUl9OT0RFX1NFTEVDVEVEID0gJ3VzZXJfcGlja2VyX3N0b3JhZ2Vfbm9kZSc7XHJcblxyXG4gICAgcm9vdFRyZWVOb2RlOiBUcmVlTm9kZVtdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgICAgICBkYXRhOiAnLTEnLFxyXG4gICAgICAgICAgICBleHBhbmRlZEljb246ICdwaSBwaS1mb2xkZXItb3BlbicsXHJcbiAgICAgICAgICAgIGNvbGxhcHNlZEljb246ICdwaSBwaS1mb2xkZXInLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogW11cclxuICAgICAgICB9XTtcclxuXHJcbiAgICBpc0ZpcnN0TG9hZCA9IHRydWU7XHJcbiAgICByb290RmlsdGVyOiBhbnkgPSB7fTtcclxuXHJcbiAgICBzZWxlY3RlZFRyZWVOb2RlOiBhbnk7XHJcbiAgICB0cmVlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgc2VsZWN0ZWROb2RlRGF0YTogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfdXNlclY1U2VydmljZTogVXNlclY1U2VydmljZSxcclxuICAgICAgICBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCBfb3JnYW5pemF0aW9uU2VydmljZTogT3JnYW5pemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2NvQ2F1VG9DaHVjU2VydmljZTogQ29DYXVUb0NodWNUZXN0U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wucGx1c1VybCA9ICdGb3JVc2VyUGlja2VyJztcclxuICAgICAgICB0aGlzLmluaXRUcmVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlU2VsZWN0KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVDYW5jZWxEaWFsb2coZXZlbnQpIHtcclxuICAgIH1cclxuXHJcbiAgICBvbk5vZGVFeHBhbmQoZXZlbnQpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbm9kZVNlbGVjdChldmVudCkge1xyXG4gICAgICAgIGxldCB0YXJnZXQgPSBldmVudC5vcmlnaW5hbEV2ZW50LnRhcmdldDtcclxuICAgICAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY3VzdG9tLW5vZGUnKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZURhdGEgPSB0YXJnZXQuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQucXVlcnlTZWxlY3RvcignLmN1c3RvbS1ub2RlJyk7XHJcbiAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSA9IHRhcmdldC5pZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSA9IGV2ZW50Lm5vZGUuZGF0YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05PREVfU0VMRUNURUQsIHRoaXMuc2VsZWN0ZWROb2RlRGF0YSk7XHJcbiAgICAgICAgdGhpcy5yb290RmlsdGVyLnBhcmVudElkID0gbmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgIGZpZWxkOiAnaWRQYXRoT3JnYW5pemF0aW9uJyxcclxuICAgICAgICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yLmNvbnRhaW4sXHJcbiAgICAgICAgICAgIHZhbHVlOiBgOyR7dGhpcy5zZWxlY3RlZE5vZGVEYXRhfTtgXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLmZpbHRlcldoaWxlUHJvY2VzcyA9IFtcclxuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ2lkRG9uVmknLCBPcGVyYXRvci5lcXVhbCwgdGhpcy5zZWxlY3RlZE5vZGVEYXRhKVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuZW50aXR5UGlja2VyQm94LmRhdGFDb21wb25lbnQuX3RyaWdnZXJQcm9jZXNzRGF0YSgpO1xyXG4gICAgICAgIC8vIHRoaXMuZW50aXR5UGlja2VyQm94LnNlbGVjdGVkQ29tcG9uZW50Ll90cmlnZ2VyUHJvY2Vzc0RhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0VHJlZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sU2V0dGluZy5sYXp5TG9hZE9yZ2FuaXphdGlvbikge1xyXG4gICAgICAgICAgICBjb25zdCBycyA9IGF3YWl0IHRoaXMuX29yZ2FuaXphdGlvblNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uQnlQYXJlbnRJZCh0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWRFbXB0eSgpKTtcclxuICAgICAgICAgICAgdGhpcy5yb290VHJlZU5vZGUgPSBycy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRUcmVlKHRoaXMucm9vdFRyZWVOb2RlWzBdLCB0cnVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGNvbnN0IHJzID0gYXdhaXQgdGhpcy5fY29DYXVUb0NodWNTZXJ2aWNlLmdldEJ5UGFyZW50SWQodGhpcy5fY29tbW9uU2VydmljZS5ndWlkRW1wdHkoKSk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucm9vdFRyZWVOb2RlID0gcnMuZGF0YTtcclxuICAgICAgICAgICAgLy8gdGhpcy5sb2FkVHJlZSh0aGlzLnJvb3RUcmVlTm9kZVswXSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRUcmVlKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsb2FkVHJlZShldmVudDogYW55LCBpc1Jvb3Q/KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbFNldHRpbmcubGF6eUxvYWRPcmdhbml6YXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5fb3JnYW5pemF0aW9uU2VydmljZS5nZXRPcmdhbml6YXRpb25CeVBhcmVudElkKGV2ZW50LmRhdGEpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmNoaWxkcmVuID0gcmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmNoaWxkcmVuICYmIGV2ZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5sZWFmID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlc3VsdC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBpdGVtID0gcmVzdWx0LmRhdGFba2V5XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBpdGVtLmxlYWYgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBpdGVtLmxlYWYgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogYz9wIG5oP3QgQVBJXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5kYXRhW2tleV0ubGVhZiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpc1Jvb3QpIHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fb3JnYW5pemF0aW9uU2VydmljZS5nZXRPcmdhbml6YXRpb25UcmVlKHRoaXMuY29udHJvbFNldHRpbmcucGFyZW50T3JnQ29kZSkudGhlbihhc3luYyByZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb290VHJlZU5vZGUgPSByZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm9vdFRyZWVOb2RlWzBdLmV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJlZUxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2xTZXR0aW5nLnBhcmVudE9yZ0NvZGUpIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb290RmlsdGVyLnBhcmVudElkID0gbmV3IEZpbHRlcih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnaWRQYXRoT3JnYW5pemF0aW9uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yLmNvbnRhaW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBgOyR7dGhpcy5yb290VHJlZU5vZGVbMF0uZGF0YX07YFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGaXJzdExvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG1vZGlmeUZpbHRlcihmaWx0ZXJzKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5yb290RmlsdGVyKS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5yb290RmlsdGVyW2l0ZW1dKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBhd2FpdCBhcHBlbmREZWZhdWx0RmlsdGVyKGZpbHRlcnMsIHRoaXMuY29udHJvbFNldHRpbmcuZGVmYXVsdEZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFVzZXIodXNlcikge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdXNlci5lbWFpbCA/IGAke3VzZXIuZnVsbE5hbWVOZXd9ICgke3VzZXIuZW1haWx9KWAgOiBgJHt1c2VyLmZ1bGxOYW1lTmV3fWA7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRVc2VyID0gPFNlbGVjdEl0ZW0+e1xyXG4gICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICAgICAgICB2YWx1ZTogdXNlci5pbnN0YW5jZUlkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KHNlbGVjdGVkVXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlUm93U2VsZWN0KGV2dCkge1xyXG4gICAgICAgIHRoaXMub25Sb3dTZWxlY3QuZW1pdChldnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZVNlbGVjdEVudGl0eShldnQpIHtcclxuICAgICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZXZ0KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVVblNlbGVjdEVudGl0eShldnQpIHtcclxuICAgICAgICB0aGlzLm9uVW5TZWxlY3QuZW1pdChldnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUNoYW5nZWRFbnRpdHkoZGF0YSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRG9uZShldnQpIHtcclxuICAgICAgICB0aGlzLm9uRG9uZS5lbWl0KGV2dCk7XHJcbiAgICB9XHJcbn1cclxuIl19