ps-toolkit-ui 1.8.78 → 1.8.79

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.
@@ -18,9 +18,7 @@ export class FormSelectComponent {
18
18
  }
19
19
  else {
20
20
  if (v != null) {
21
- for (const t of v) {
22
- this.selectOption(t.toString(), isEdit);
23
- }
21
+ this.setValue(v.map(String));
24
22
  }
25
23
  }
26
24
  };
@@ -70,6 +68,18 @@ export class FormSelectComponent {
70
68
  HelperClass.setBarcodeReader(this.inp);
71
69
  }
72
70
  }
71
+ setValue(ids, rows = this.inp.options) {
72
+ for (const r of rows) {
73
+ r.selected = ids.includes(r.value);
74
+ if (this.inp.onlyChild) {
75
+ if (r.selected) {
76
+ this.checkParent(r.parent);
77
+ }
78
+ }
79
+ this.setValue(ids, r.options);
80
+ }
81
+ return true;
82
+ }
73
83
  loadOptions() {
74
84
  const v = this.inp.search.replace(/^_+|_+$/g, '');
75
85
  if (v) {
@@ -392,4 +402,4 @@ FormSelectComponent.propDecorators = {
392
402
  inputOptionsDiv: [{ type: ViewChild, args: ['inputOptionsDiv',] }],
393
403
  inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
394
404
  };
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7SUF3V2YsQ0FBQztJQXZXQyxJQUFJLElBQUksS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBS2xELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsRUFBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxD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QkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUNsSCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksWUFBWSxHQUFHLENBQUMsRUFBQztZQUMvQixPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0Q7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7WUFuWEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHd3REFBMkM7O2FBRTVDOzs7MEJBRUUsTUFBTTtrQkFFTixLQUFLO3FCQUVMLEtBQUs7dUJBSUwsU0FBUyxTQUFDLFVBQVU7d0JBQ3BCLFNBQVMsU0FBQyxXQUFXOzhCQUNyQixTQUFTLFNBQUMsaUJBQWlCO3lCQUMzQixTQUFTLFNBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIE9wdGlvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQElucHV0KClcclxuICBpbkZvcm06IGJvb2xlYW47XHJcbiAgY1NlYXJjaCA9ICcnO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRPcHRpb25zRGl2JykgaW5wdXRPcHRpb25zRGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYsIGlzRWRpdCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih2ID09IG51bGwgPyBudWxsIDogdi50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICAgIGZvciAoY29uc3QgdCBvZiB2KXtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odC50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmlucC5kZWZhdWx0ICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucC5zZXRTZWFyY2ggPSAocykgPT4ge1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSBzO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgKCghdGhpcy5pbnAubXVsdGlwbGUgJiYgKCh0aGlzLmlucC5hZGROZXcgJiYgIXRoaXMuaW5wLnNlYXJjaCkgfHwgKCF0aGlzLmlucC5hZGROZXcgJiYgIXRoaXMuaW5wLnZhbHVlKSkpIHx8XHJcbiAgICAgICAgKHRoaXMuaW5wLm11bHRpcGxlICYmIHRoaXMuZ2V0U2VsZWN0ZWQoKS5sZW5ndGggPT09IDApKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKCF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgdHJ1ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMuZm9yRWFjaCh4ID0+IHRoaXMudW5DaGVjayh4KSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlbCAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKXtcclxuICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCBkID0ge307XHJcbiAgICAgIGRbdGhpcy5pbnAubmFtZV0gPSB0aGlzLmlucC5hZGROZXcgPyB0aGlzLmlucC5zZWFyY2ggOiB0aGlzLmlucC52YWx1ZTtcclxuICAgICAgZFt0aGlzLmlucC5uYW1lICsgJ05hbWUnXSA9IHRoaXMuaW5wLnNlYXJjaDtcclxuICAgICAgcmV0dXJuICF0aGlzLmlucC5tdWx0aXBsZSA/IGQgOiB0aGlzLmdldFNlbGVjdGVkKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXNPdXQgPSAoKSA9PiB7XHJcbiAgICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuYmx1cigpO1xyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmlucC5oYXNCYXJjb2RlUmVhZGVyKXtcclxuICAgICAgSGVscGVyQ2xhc3Muc2V0QmFyY29kZVJlYWRlcih0aGlzLmlucCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGxvYWRPcHRpb25zKCk6IHZvaWR7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnAuc2VhcmNoLnJlcGxhY2UoL15fK3xfKyQvZywgJycpO1xyXG4gICAgaWYgKHYpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKHRoaXMuaW5wLnVybC5yZXBsYWNlKCd7fScsIHYpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5PcHRpb25zKCk6IHZvaWR7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uRm9jdXNPdXQoKTogdm9pZHtcclxuICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgfVxyXG4gIGNsb3NlT3B0aW9ucygpOiBib29sZWFue1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygndG9wJyk7XHJcbiAgICAgIHRoaXMucmVtb3ZlSG92ZXIoKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnZhbHVlID09PSBudWxsKXtcclxuICAgICAgICBpZiAoIXRoaXMuaW5wLmFkZE5ldyl7XHJcbiAgICAgICAgICB0aGlzLmlucC5zZWFyY2ggPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAxKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBzZXRQb3NpdGlvbigpOiB2b2lke1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IG9mZnNldE9mQm90dG9tID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5ib3R0b207XHJcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIGlmIChvZmZzZXRPZkJvdHRvbSA8IGhlaWdodCl7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5hZGRDbGFzcygndG9wJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCd0b3AnKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3B0aW9ucyhyID0gdGhpcy5pbnAub3B0aW9ucyk6IHZvaWR7XHJcbiAgICByLm1hcCgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE9wdGlvbnMoeC5vcHRpb25zKTtcclxuICAgICAgeC5zaG93ID0gKHRoaXMuaW5wLnZhbHVlICE9PSBudWxsIHx8IHRoaXMuaW5wLnNlYXJjaCA9PT0gJycgfHwgeC5uYW1lLmluY2x1ZGVzKHRoaXMuaW5wLnNlYXJjaCkgfHxcclxuICAgICAgICAgIHgudmFsdWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fCB4Lm9wdGlvbnMuZmlsdGVyKG8gPT4gby5zaG93KS5sZW5ndGggPiAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY0koZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMyl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKCQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuaXMoJzpmb2N1cycpKXtcclxuICAgICAgICBjb25zdCBoID0gdGhpcy5nZXRTZWxlY3RlZEhvdmVyKCk7XHJcbiAgICAgICAgaWYgKCFoKXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24oaCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSA0MCl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckRvd24oKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyVXAoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlT3B0aW9uKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLm11bHRpcGxlICYmICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5vcHRpb24nKS5oYXNDbGFzcygnb3B0aW9uJykpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgfVxyXG4gIG9uS2V5VXAoZSk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5jU2VhcmNoICE9PSBlLnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmNTZWFyY2ggPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3Qpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMucmVtb3ZlSG92ZXIoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZSBpZiAoZS50YXJnZXQudmFsdWUpe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE9wdGlvbih2LCBpc0VkaXQgPSBmYWxzZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCB2YSA9IHRoaXMuZ2V0VmFsdWUodik7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLnRvZ2dsZSh2YSk7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAuc2VhcmNoID0gdmEgPyAoKCh0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoICYmIHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3QpIHx8IHZhLnNlYXJjaCkgPyB2YS5zZWFyY2ggOiB2YS5uYW1lKSA6ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmNTZWFyY2ggPSB0aGlzLmlucC5zZWFyY2g7XHJcbiAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmlucCwgaXNFZGl0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucC5yZWwpe1xyXG4gICAgICB0aGlzLmlucC5yZWwudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC5yZWwuc2VhcmNoID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIGlmICh2ICE9PSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwudXJsID0gdGhpcy5pbnAucmVsVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5pbnAudmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucC5yZWwudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLmxvYWQoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuaW5wLnJlbC51cmwgKz0gJ197fSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRWRpdCAmJiAhdGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLmNJKCdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlKG9wOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgaWYgKG9wLnNlbGVjdGVkKXtcclxuICAgICAgdGhpcy51bkNoZWNrKG9wKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrUGFyZW50KG9wLnBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9wKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuVHJlZSl7XHJcbiAgICAgICAgdGhpcy5jaGVja1BhcmVudChvcC5wYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmlucC5vbmx5Q2hpbGQpIHtcclxuICAgICAgdGhpcy5jaGVja0NoaWxkcmVuKGMpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pbnAub25seUNoaWxkKSB7XHJcbiAgICAgIGMub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICAgIHRoaXMudW5DaGVjayhjaCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKG86IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIG8ub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrKGNoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4gIXguc2VsZWN0ZWQpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4geC5zZWxlY3RlZCB8fCB4LnNlbGVjdGVkID09IG51bGwpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgY0koaTogc3RyaW5nKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoaSk7XHJcbiAgICAgIGlmICghdGhpcy5pbkZvcm0pe1xyXG4gICAgICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuYmx1cigpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgIH0sIDIwKTtcclxuICB9XHJcbiAgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5nZXRUaXRsZSh0aGlzLmlucCk7XHJcbiAgfVxyXG4gIGdldFRpdGxlKG9zKTogc3RyaW5ne1xyXG4gICAgZm9yIChjb25zdCBzIG9mIG9zLm9wdGlvbnMpe1xyXG4gICAgICBpZiAocy52YWx1ZSA9PT0gdGhpcy5pbnAudmFsdWUudG9TdHJpbmcoKSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wLmwocy5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ID0gdGhpcy5nZXRUaXRsZShzKTtcclxuICAgICAgaWYgKHYgIT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZChvcHRzOiBPcHRpb25DbGFzc1tdPSB0aGlzLmlucC5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCAmJiAoIXRoaXMuaW5wLm9ubHlDaGlsZCB8fCBmLm9wdGlvbnMubGVuZ3RoID09PSAwKSl7XHJcbiAgICAgICAgbC5wdXNoKGYudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJzID0gdGhpcy5nZXRTZWxlY3RlZChmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIG9uQ2xpY2tCdXR0b24oKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLm9uQ2xpY2tCdXR0b24odGhpcy5pbnApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsZXQgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgICBvcHRpb24gPSBvcHRpb24gIT09IG51bGwgPyBvcHRpb24gOiB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLnNlbGVjdGVkJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKG9wdGlvbiA9PT0gbnVsbCl7XHJcbiAgICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gb3B0aW9uLm9mZnNldFRvcCAtIG9wdGlvbi5jbGllbnRIZWlnaHQgKiAyO1xyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG4gIHJlbW92ZUhvdmVyKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLmhvdmVyJyk7XHJcbiAgICBpZiAob3B0aW9uICE9PSBudWxsKXtcclxuICAgICAgb3B0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2hvdmVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkSG92ZXIoKTogYW55e1xyXG4gICAgY29uc3Qgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgaWYgKG9wdGlvbiA9PT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdGlvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdmFsdWUnKTtcclxuICB9XHJcbiAgc2V0SG92ZXJVcCgpOiB2b2lke1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBsZXQgaCA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKSk7XHJcbiAgICBjb25zdCBzID0gW10uaW5kZXhPZi5jYWxsKG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKSwgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpKTtcclxuICAgIGggPSBoID49IDAgPyBoIDogcztcclxuICAgIGlmIChoID4gMCkge1xyXG4gICAgICB0aGlzLnJlbW92ZUhvdmVyKCk7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKVtoIC0gMV0uY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICB9XHJcbiAgc2V0SG92ZXJEb3duKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGNvdW50T3B0aW9ucyA9IG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKS5sZW5ndGg7XHJcbiAgICBsZXQgaCA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKSk7XHJcbiAgICBjb25zdCBzID0gW10uaW5kZXhPZi5jYWxsKG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKSwgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpKTtcclxuICAgIGggPSBoID49IDAgPyBoIDogcztcclxuICAgIGlmIChoID09PSAtMSAmJiBjb3VudE9wdGlvbnMgPiAwKXtcclxuICAgICAgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbicpLmNsYXNzTGlzdC5hZGQoJ2hvdmVyJyk7XHJcbiAgICB9IGVsc2UgaWYgKGggPj0gMCAmJiBoIDwgY291bnRPcHRpb25zIC0gMSkge1xyXG4gICAgICB0aGlzLnJlbW92ZUhvdmVyKCk7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKVtoICsgMV0uY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICB9XHJcbn1cclxuIl19
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFrWGYsQ0FBQztJQWpYQyxJQUFJLElBQUksS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBS2xELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsRUFBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzVEO2lCQUFJO2dCQUNILElBQUksQ0FBQyxJQUFJLElBQUksRUFBQztvQkFDWixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtRQUNILENBQUMsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFDO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBQztnQkFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDM0M7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7YUFDM0I7WUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsRUFBQztnQkFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDdEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckQsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQztZQUM1QixXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUNELFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTztRQUNuQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBQztZQUNuQixDQUFDLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBQztvQkFDYixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDNUI7YUFDRjtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVc7UUFDVCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxFQUFDO1lBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlDO2FBQUk7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELFlBQVk7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLElBQUksRUFBQztnQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDO29CQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7aUJBQ3RCO2dCQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGtCQUFrQixFQUFDO29CQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7aUJBQ3ZCO3FCQUFJO29CQUNILElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDbkI7YUFDRjtRQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVc7UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDL0QsSUFBSSxjQUFjLEdBQUcsTUFBTSxFQUFDO1lBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRDthQUFJO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQzdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO2dCQUMzRixDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQztRQUNULE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDZCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDO2FBQ0ksSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFDO1lBQ25CLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBQztnQkFDL0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxDQUFDLEVBQUM7b0JBQ0wsT0FBTztpQkFDUjtnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RCO2lCQUFJO2dCQUNILElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDaEI7U0FDRjthQUNJLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBQztZQUNuQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO2FBQ0ksSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFDO1lBQ25CLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBQ0QsWUFBWSxDQUFDLENBQUM7UUFDWixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBQztZQUN6RSxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1AsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFDO2dCQUNyQyxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO2dCQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsWUFBWSxFQUFDO2dCQUMzQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkI7aUJBQUssSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO2lCQUFJO2dCQUNILElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzthQUN2QjtTQUNGO0lBQ0gsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLEtBQUs7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBQztZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUN0QjthQUFJO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNySjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUM7WUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUM7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakUsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGtCQUFrQixFQUFFO29CQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDckI7cUJBQUk7b0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQztpQkFDM0I7YUFDRjtTQUNGO1FBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO1lBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLEVBQWU7UUFDcEIsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFDO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQjtTQUNGO2FBQUk7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFDO2dCQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQztJQUNELEtBQUssQ0FBQyxDQUFjO1FBQ2xCLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBYztRQUNwQixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBYztRQUMxQixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFDLENBQWM7UUFDeEIsSUFBSSxDQUFDLEVBQUM7WUFDSixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDaEQsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDbkI7aUJBQUk7Z0JBQ0gsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDbkI7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsQ0FBYztRQUMxQixJQUFJLENBQUMsRUFBQztZQUNKLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDckUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDbkI7aUJBQUk7Z0JBQ0gsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDcEI7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBUztRQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQztnQkFDZixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN4QztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksRUFBQztZQUN6QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEVBQUU7UUFDVCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUM7WUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFDO2dCQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQjtZQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFDO2dCQUNaLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBbUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFDO1lBQ0osT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDO1lBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsRUFBQztnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXFCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTztRQUMvQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBQztZQUNuQixJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFDO2dCQUNoRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNqQjtZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsY0FBYztRQUNaLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNuRixNQUFNLEdBQUcsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM3RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztZQUNqRCxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixPQUFPO2FBQ1I7WUFDRCxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUNELFdBQVc7UUFDVCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRixJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUM7WUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckYsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELFVBQVU7UUFDUixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDN0csTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ2xILENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxZQUFZO1FBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDN0csTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ2xILENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFDO1lBQy9CLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3RDthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxHQUFHLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OztZQTdYRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0Isd3dEQUEyQzs7YUFFNUM7OzswQkFFRSxNQUFNO2tCQUVOLEtBQUs7cUJBRUwsS0FBSzt1QkFJTCxTQUFTLFNBQUMsVUFBVTt3QkFDcEIsU0FBUyxTQUFDLFdBQVc7OEJBQ3JCLFNBQVMsU0FBQyxpQkFBaUI7eUJBQzNCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzcywgT3B0aW9uQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnNlbGVjdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBASW5wdXQoKVxyXG4gIGluRm9ybTogYm9vbGVhbjtcclxuICBjU2VhcmNoID0gJyc7XHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZSB7IHJldHVybiBJbnB1dFR5cGU7IH1cclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0QmFzZScpIGlucHV0QmFzZTogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dE9wdGlvbnNEaXYnKSBpbnB1dE9wdGlvbnNEaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRMYWJlbCcpIGlucHV0TGFiZWw6IEVsZW1lbnRSZWY7XHJcbiAgbmdPbkluaXQoKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKXtcclxuICAgICAgdGhpcy5pbnAubG9hZCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodiwgaXNFZGl0KSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHYgPT0gbnVsbCA/IG51bGwgOiB2LnRvU3RyaW5nKCksIGlzRWRpdCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmICh2ICE9IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZSh2Lm1hcChTdHJpbmcpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5pbnAuZGVmYXVsdCAhPSBudWxsKXtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnAuc2V0U2VhcmNoID0gKHMpID0+IHtcclxuICAgICAgdGhpcy5pbnAuc2VhcmNoID0gcztcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9ICgpID0+IHtcclxuICAgICAgdGhpcy5vcGVuT3B0aW9ucygpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmICgoIXRoaXMuaW5wLm11bHRpcGxlICYmICgodGhpcy5pbnAuYWRkTmV3ICYmICF0aGlzLmlucC5zZWFyY2gpIHx8ICghdGhpcy5pbnAuYWRkTmV3ICYmICF0aGlzLmlucC52YWx1ZSkpKSB8fFxyXG4gICAgICAgICh0aGlzLmlucC5tdWx0aXBsZSAmJiB0aGlzLmdldFNlbGVjdGVkKCkubGVuZ3RoID09PSAwKSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICghdGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICAgIHRoaXMuaW5wLnNldFZhbHVlKHRoaXMuaW5wLmRlZmF1bHQsIHRydWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlucC5vcHRpb25zLmZvckVhY2goeCA9PiB0aGlzLnVuQ2hlY2soeCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZWwgIT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZCA9IHt9O1xyXG4gICAgICBkW3RoaXMuaW5wLm5hbWVdID0gdGhpcy5pbnAuYWRkTmV3ID8gdGhpcy5pbnAuc2VhcmNoIDogdGhpcy5pbnAudmFsdWU7XHJcbiAgICAgIGRbdGhpcy5pbnAubmFtZSArICdOYW1lJ10gPSB0aGlzLmlucC5zZWFyY2g7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbnAubXVsdGlwbGUgPyBkIDogdGhpcy5nZXRTZWxlY3RlZCgpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzT3V0ID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5pbnAuaGFzQmFyY29kZVJlYWRlcil7XHJcbiAgICAgIEhlbHBlckNsYXNzLnNldEJhcmNvZGVSZWFkZXIodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRWYWx1ZShpZHMsIHJvd3MgPSB0aGlzLmlucC5vcHRpb25zKTogYm9vbGVhbntcclxuICAgIGZvciAoY29uc3QgciBvZiByb3dzKXtcclxuICAgICAgci5zZWxlY3RlZCA9IGlkcy5pbmNsdWRlcyhyLnZhbHVlKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgaWYgKHIuc2VsZWN0ZWQpe1xyXG4gICAgICAgICAgdGhpcy5jaGVja1BhcmVudChyLnBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0VmFsdWUoaWRzLCByLm9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGxvYWRPcHRpb25zKCk6IHZvaWR7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnAuc2VhcmNoLnJlcGxhY2UoL15fK3xfKyQvZywgJycpO1xyXG4gICAgaWYgKHYpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKHRoaXMuaW5wLnVybC5yZXBsYWNlKCd7fScsIHYpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5PcHRpb25zKCk6IHZvaWR7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uRm9jdXNPdXQoKTogdm9pZHtcclxuICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgfVxyXG4gIGNsb3NlT3B0aW9ucygpOiBib29sZWFue1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygndG9wJyk7XHJcbiAgICAgIHRoaXMucmVtb3ZlSG92ZXIoKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnZhbHVlID09PSBudWxsKXtcclxuICAgICAgICBpZiAoIXRoaXMuaW5wLmFkZE5ldyl7XHJcbiAgICAgICAgICB0aGlzLmlucC5zZWFyY2ggPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAxKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBzZXRQb3NpdGlvbigpOiB2b2lke1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IG9mZnNldE9mQm90dG9tID0gd2luZG93LmlubmVySGVpZ2h0IC0gcmVjdC5ib3R0b207XHJcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIGlmIChvZmZzZXRPZkJvdHRvbSA8IGhlaWdodCl7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5hZGRDbGFzcygndG9wJyk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCd0b3AnKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3B0aW9ucyhyID0gdGhpcy5pbnAub3B0aW9ucyk6IHZvaWR7XHJcbiAgICByLm1hcCgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnNldE9wdGlvbnMoeC5vcHRpb25zKTtcclxuICAgICAgeC5zaG93ID0gKHRoaXMuaW5wLnZhbHVlICE9PSBudWxsIHx8IHRoaXMuaW5wLnNlYXJjaCA9PT0gJycgfHwgeC5uYW1lLmluY2x1ZGVzKHRoaXMuaW5wLnNlYXJjaCkgfHxcclxuICAgICAgICAgIHgudmFsdWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fCB4Lm9wdGlvbnMuZmlsdGVyKG8gPT4gby5zaG93KS5sZW5ndGggPiAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY0koZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSAxMyl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKCQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuaXMoJzpmb2N1cycpKXtcclxuICAgICAgICBjb25zdCBoID0gdGhpcy5nZXRTZWxlY3RlZEhvdmVyKCk7XHJcbiAgICAgICAgaWYgKCFoKXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24oaCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjb2RlID09PSA0MCl7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckRvd24oKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyVXAoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlT3B0aW9uKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLm11bHRpcGxlICYmICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5vcHRpb24nKS5oYXNDbGFzcygnb3B0aW9uJykpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgfVxyXG4gIG9uS2V5VXAoZSk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5jU2VhcmNoICE9PSBlLnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmNTZWFyY2ggPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3Qpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMucmVtb3ZlSG92ZXIoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZSBpZiAoZS50YXJnZXQudmFsdWUpe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE9wdGlvbih2LCBpc0VkaXQgPSBmYWxzZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCB2YSA9IHRoaXMuZ2V0VmFsdWUodik7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLnRvZ2dsZSh2YSk7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAuc2VhcmNoID0gdmEgPyAoKCh0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoICYmIHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3QpIHx8IHZhLnNlYXJjaCkgPyB2YS5zZWFyY2ggOiB2YS5uYW1lKSA6ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLmNTZWFyY2ggPSB0aGlzLmlucC5zZWFyY2g7XHJcbiAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmlucCwgaXNFZGl0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlucC5yZWwpe1xyXG4gICAgICB0aGlzLmlucC5yZWwudmFsdWUgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC5yZWwuc2VhcmNoID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIGlmICh2ICE9PSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwudXJsID0gdGhpcy5pbnAucmVsVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5pbnAudmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucC5yZWwudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLmxvYWQoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuaW5wLnJlbC51cmwgKz0gJ197fSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRWRpdCAmJiAhdGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLmNJKCdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlKG9wOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgaWYgKG9wLnNlbGVjdGVkKXtcclxuICAgICAgdGhpcy51bkNoZWNrKG9wKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrUGFyZW50KG9wLnBhcmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9wKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm9ubHlDaGlsZCAmJiB0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuVHJlZSl7XHJcbiAgICAgICAgdGhpcy5jaGVja1BhcmVudChvcC5wYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmlucC5vbmx5Q2hpbGQpIHtcclxuICAgICAgdGhpcy5jaGVja0NoaWxkcmVuKGMpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pbnAub25seUNoaWxkKSB7XHJcbiAgICAgIGMub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICAgIHRoaXMudW5DaGVjayhjaCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKG86IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIG8ub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrKGNoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4gIXguc2VsZWN0ZWQpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4geC5zZWxlY3RlZCB8fCB4LnNlbGVjdGVkID09IG51bGwpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgY0koaTogc3RyaW5nKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoaSk7XHJcbiAgICAgIGlmICghdGhpcy5pbkZvcm0pe1xyXG4gICAgICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuYmx1cigpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgIH0sIDIwKTtcclxuICB9XHJcbiAgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5nZXRUaXRsZSh0aGlzLmlucCk7XHJcbiAgfVxyXG4gIGdldFRpdGxlKG9zKTogc3RyaW5ne1xyXG4gICAgZm9yIChjb25zdCBzIG9mIG9zLm9wdGlvbnMpe1xyXG4gICAgICBpZiAocy52YWx1ZSA9PT0gdGhpcy5pbnAudmFsdWUudG9TdHJpbmcoKSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wLmwocy5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ID0gdGhpcy5nZXRUaXRsZShzKTtcclxuICAgICAgaWYgKHYgIT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZChvcHRzOiBPcHRpb25DbGFzc1tdPSB0aGlzLmlucC5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCAmJiAoIXRoaXMuaW5wLm9ubHlDaGlsZCB8fCBmLm9wdGlvbnMubGVuZ3RoID09PSAwKSl7XHJcbiAgICAgICAgbC5wdXNoKGYudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJzID0gdGhpcy5nZXRTZWxlY3RlZChmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIG9uQ2xpY2tCdXR0b24oKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLm9uQ2xpY2tCdXR0b24odGhpcy5pbnApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBsZXQgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgICBvcHRpb24gPSBvcHRpb24gIT09IG51bGwgPyBvcHRpb24gOiB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLnNlbGVjdGVkJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKG9wdGlvbiA9PT0gbnVsbCl7XHJcbiAgICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gMDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gb3B0aW9uLm9mZnNldFRvcCAtIG9wdGlvbi5jbGllbnRIZWlnaHQgKiAyO1xyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG4gIHJlbW92ZUhvdmVyKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vcHRpb24tY29uLmhvdmVyJyk7XHJcbiAgICBpZiAob3B0aW9uICE9PSBudWxsKXtcclxuICAgICAgb3B0aW9uLmNsYXNzTGlzdC5yZW1vdmUoJ2hvdmVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkSG92ZXIoKTogYW55e1xyXG4gICAgY29uc3Qgb3B0aW9uID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5ob3ZlcicpO1xyXG4gICAgaWYgKG9wdGlvbiA9PT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdGlvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdmFsdWUnKTtcclxuICB9XHJcbiAgc2V0SG92ZXJVcCgpOiB2b2lke1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBsZXQgaCA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKSk7XHJcbiAgICBjb25zdCBzID0gW10uaW5kZXhPZi5jYWxsKG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKSwgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpKTtcclxuICAgIGggPSBoID49IDAgPyBoIDogcztcclxuICAgIGlmIChoID4gMCkge1xyXG4gICAgICB0aGlzLnJlbW92ZUhvdmVyKCk7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKVtoIC0gMV0uY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICB9XHJcbiAgc2V0SG92ZXJEb3duKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGNvdW50T3B0aW9ucyA9IG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKS5sZW5ndGg7XHJcbiAgICBsZXQgaCA9IFtdLmluZGV4T2YuY2FsbChvcHRpb25zLnF1ZXJ5U2VsZWN0b3JBbGwoJy5vcHRpb24tY29uJyksIG9wdGlvbnMucXVlcnlTZWxlY3RvcignLm9wdGlvbi1jb24uaG92ZXInKSk7XHJcbiAgICBjb25zdCBzID0gW10uaW5kZXhPZi5jYWxsKG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKSwgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbi5zZWxlY3RlZCcpKTtcclxuICAgIGggPSBoID49IDAgPyBoIDogcztcclxuICAgIGlmIChoID09PSAtMSAmJiBjb3VudE9wdGlvbnMgPiAwKXtcclxuICAgICAgb3B0aW9ucy5xdWVyeVNlbGVjdG9yKCcub3B0aW9uLWNvbicpLmNsYXNzTGlzdC5hZGQoJ2hvdmVyJyk7XHJcbiAgICB9IGVsc2UgaWYgKGggPj0gMCAmJiBoIDwgY291bnRPcHRpb25zIC0gMSkge1xyXG4gICAgICB0aGlzLnJlbW92ZUhvdmVyKCk7XHJcbiAgICAgIG9wdGlvbnMucXVlcnlTZWxlY3RvckFsbCgnLm9wdGlvbi1jb24nKVtoICsgMV0uY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -4551,9 +4551,7 @@ class FormSelectComponent {
4551
4551
  }
4552
4552
  else {
4553
4553
  if (v != null) {
4554
- for (const t of v) {
4555
- this.selectOption(t.toString(), isEdit);
4556
- }
4554
+ this.setValue(v.map(String));
4557
4555
  }
4558
4556
  }
4559
4557
  };
@@ -4603,6 +4601,18 @@ class FormSelectComponent {
4603
4601
  HelperClass.setBarcodeReader(this.inp);
4604
4602
  }
4605
4603
  }
4604
+ setValue(ids, rows = this.inp.options) {
4605
+ for (const r of rows) {
4606
+ r.selected = ids.includes(r.value);
4607
+ if (this.inp.onlyChild) {
4608
+ if (r.selected) {
4609
+ this.checkParent(r.parent);
4610
+ }
4611
+ }
4612
+ this.setValue(ids, r.options);
4613
+ }
4614
+ return true;
4615
+ }
4606
4616
  loadOptions() {
4607
4617
  const v = this.inp.search.replace(/^_+|_+$/g, '');
4608
4618
  if (v) {