barsa-sap-ui 1.0.304 → 1.0.306

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.
@@ -24,19 +24,28 @@ export class BarsaTableHeaderComponent extends BaseComponent {
24
24
  }
25
25
  ngOnInit() {
26
26
  super.ngOnInit();
27
- this.startIndex = this.rowIndicator ? 1 : 0;
28
27
  this._prepareColumnsWidth(this.tableWidth, this.columns);
29
28
  }
30
29
  ngOnChanges(changes) {
31
30
  super.ngOnChanges(changes);
32
- const { columns, inlineEditMode } = changes;
31
+ const { columns, inlineEditMode, rowIndicator } = changes;
32
+ let needChanges = false;
33
33
  if (columns && !columns.firstChange) {
34
34
  this._prepareColumnsWidth(this.tableWidth, columns.currentValue);
35
- this._cdr.detectChanges();
35
+ needChanges = true;
36
36
  }
37
37
  if (inlineEditMode && !inlineEditMode.firstChange) {
38
38
  this._prepareColumnsWidth(this.tableWidth, this.columns);
39
+ needChanges = true;
39
40
  }
41
+ if (rowIndicator) {
42
+ this._setStartIndex(rowIndicator.currentValue);
43
+ needChanges = true;
44
+ }
45
+ needChanges && this._cdr.detectChanges();
46
+ }
47
+ _setStartIndex(rowIndicator) {
48
+ this.startIndex = rowIndicator ? 1 : 0;
40
49
  }
41
50
  _prepareColumnsWidth(val, columns) {
42
51
  const sum = columns.map((column) => column.Width).reduce((val2, column) => val2 + column, 0);
@@ -126,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
126
135
  }], filter: [{
127
136
  type: Output
128
137
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFvQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBMkJ4RDs7T0FFRztJQUNILFlBQW9CLElBQXVCO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBRFEsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFsQmxDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQU9sQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7SUFVeEQsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzVDLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRTtZQUMvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0lBQ1Msb0JBQW9CLENBQUMsR0FBVyxFQUFFLE9BQTJCO1FBQ25FLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEIsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxDQUFDLE9BQU8sQ0FDWCxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FDbEcsQ0FBQztZQUNGLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7U0FDNUM7YUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7U0FDaEQ7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQU87UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELGVBQWUsQ0FBQyxNQUF3QixFQUFFLElBQUk7UUFDMUMsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBd0IsRUFBRSxJQUFJO1FBQzNDLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUF3QixFQUFFLElBQUk7UUFDbkMsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQWEsRUFBRSxNQUF3QjtRQUNsRCxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztzSEExRlEseUJBQXlCOzBHQUF6Qix5QkFBeUIsK3ZCQ2xCdEMsdXRLQXFHQTsyRkRuRmEseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNJLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTt3R0FHdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVOLFdBQVc7c0JBRFYsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSW5wdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgUmVwb3J0Vmlld0NvbHVtbiB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpVGFibGVWaWV3U2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9ncmlkLXZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBhbGxDaGVja2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzQ2hlY2tMaXN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBmaXRXaWR0aDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb250ZXh0TWVudUl0ZW1zOiBhbnlbXTtcbiAgICBASW5wdXQoKSBjYW5WaWV3OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dEZXRhaWxzSW5Sb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB2aWV3U2V0dGluZzogVWlUYWJsZVZpZXdTZXR0aW5nO1xuICAgIEBJbnB1dCgpIHRhYmxlV2lkdGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSByZXNpemVkQnlVc2VyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVSZXNwb25zaXZlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBAT3V0cHV0KClcbiAgICBhbGxDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBzb3J0RGVzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydFZpZXdDb2x1bW4+KCk7XG5cbiAgICBjb2x1bW5zU21hbGxlclRoYW5UYWJsZVdpZHRoOiBib29sZWFuO1xuICAgIGNvbHVtbnNXaWR0aDogbnVtYmVyO1xuICAgIHN0YXJ0SW5kZXg6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuc3RhcnRJbmRleCA9IHRoaXMucm93SW5kaWNhdG9yID8gMSA6IDA7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVDb2x1bW5zV2lkdGgodGhpcy50YWJsZVdpZHRoLCB0aGlzLmNvbHVtbnMpO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGNvbHVtbnMsIGlubGluZUVkaXRNb2RlIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoY29sdW1ucyAmJiAhY29sdW1ucy5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIGNvbHVtbnMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlubGluZUVkaXRNb2RlICYmICFpbmxpbmVFZGl0TW9kZS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIHRoaXMuY29sdW1ucyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9wcmVwYXJlQ29sdW1uc1dpZHRoKHZhbDogbnVtYmVyLCBjb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3VtID0gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLldpZHRoKS5yZWR1Y2UoKHZhbDIsIGNvbHVtbikgPT4gdmFsMiArIGNvbHVtbiwgMCk7XG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiAoY29sdW1uLiRXaWR0aDIgPSBjb2x1bW4uJFdpZHRoKSk7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZWRCeVVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbHVtbnNXaWR0aCA9IHN1bTtcbiAgICAgICAgaWYgKHN1bSA+IHZhbCAmJiB2YWwgPiAwKSB7XG4gICAgICAgICAgICBjb2x1bW5zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgKGNvbHVtbikgPT4gKGNvbHVtbi4kV2lkdGgyID0gdGhpcy5pbmxpbmVFZGl0TW9kZSA/ICcyMTBweCcgOiAoY29sdW1uLldpZHRoICogMTAwKSAvIHZhbCArICclJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnNTbWFsbGVyVGhhblRhYmxlV2lkdGggPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHN1bSArIDEwIDwgdmFsKSB7XG4gICAgICAgICAgICBjb2x1bW5zW2NvbHVtbnMubGVuZ3RoIC0gMV0uJFdpZHRoMiA9ICcxMDAlJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkFsbENoZWNrYm94KGNoZWNrZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbGxDaGVja2JveC5lbWl0KGNoZWNrZWQpO1xuICAgIH1cbiAgICBvblNvcnRBc2NlbmRpbmcoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBtZW51KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICBtZW51LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zb3J0QXNjZW5kaW5nLmVtaXQoY29sdW1uKTtcbiAgICB9XG5cbiAgICBvblNvcnREZXNjZW5kaW5nKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xuICAgIH1cblxuICAgIG9uRmlsdGVyKGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbiwgbWVudSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudSkge1xuICAgICAgICAgICAgbWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcbiAgICB9XG59XG4iLCI8dGhlYWRcbiAgICBmZC10YWJsZS1oZWFkZXJcbiAgICBbY2xhc3MuaW5saW5lLWVkaXRdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgIFtjbGFzcy5zbWFsbENvbHVtbnNdPVwiY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aFwiXG4gICAgW2F0dHIuY29sdW1uc1dpZHRoXT1cImNvbHVtbnNXaWR0aFwiXG4gICAgW2F0dHIudGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbj5cbiAgICA8dHIgZmQtdGFibGUtcm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVIZWFkZXJcIj5cbiAgICAgICAgICAgIDx0aCAqbmdJZj1cInJvd0luZGljYXRvclwiIGZkLXRhYmxlLWNlbGwgZmQtdGFibGUtc3RhdHVzLWluZGljYXRvcj48L3RoPlxuICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgKm5nSWY9XCJpc0NoZWNrTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYWxsQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhbGxDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25BbGxDaGVja2JveCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCAqbmdJZj1cIiFpc0NoZWNrTGlzdFwiIGNsYXNzPVwic2luZ2xlLXNlbGVjdFwiPjwvdGg+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0OyB0cmFja0J5OiBfdHJhY2tCeUNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXJ0SW5kZXggPD0gaVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2x1bW5JbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLkZpZWxkVHlwZUlkID09PSAzOCA/ICc0MHB4JyA6IGNvbHVtbi4kV2lkdGgyXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJpbmxpbmVFZGl0TW9kZSA/ICcyMTBweCcgOiBsYXN0ID8gJzEwMCUnIDogJ2F1dG8nXCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uUmVzaXplclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVJlc3BvbnNpdmVdPVwiZGlzYWJsZVJlc3BvbnNpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbdGFibGVXaWR0aF09XCJ0YWJsZVdpZHRoXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNXaWR0aF09XCJjb2x1bW5zV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW5OYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi4kQ1NTQ2xhc3NOYW1lICsgJyBjb2x1bW5fXycgKyBjb2x1bW4uQ2FwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNwbGF5SWNvbl09XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXIgI21lbnU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRmllbGRUeXBlSWQgMzggbWVhbnMgaXQgaXMgYXV0byByb3cgbnVtYmVyIGZpZWxkLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY29sdW1uLkljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gPT09ICdJbWFnZScgfHwgY29sdW1uLkZpZWxkVHlwZUlkID09PSA0MlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uRXh0cmE/Lkljb25EaXNwbGF5VHlwZUVudW0gIT09ICdJbWFnZScgJiYgY29sdW1uLkZpZWxkVHlwZUlkICE9PSAzOFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGNvbHVtbi5DYXB0aW9uIHwgYmJiVHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgZmQtbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Tb3J0QXNjZW5kaW5nKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwic29ydC1hc2NlbmRpbmdcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgKCdTb3J0JyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX0ge3sgJ0FzY2VuZGluZycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uU29ydERlc2NlbmRpbmcoY29sdW1uLCBtZW51KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJzb3J0LWRlc2NlbmRpbmdcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgKCdTb3J0JyB8IGJiYlRyYW5zbGF0ZSkgKyAnICcgfX0ge3sgJ0Rlc2NlbmRpbmcnIHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaSBmZC1saXN0LWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRmlsdGVyKGNvbHVtbiwgbWVudSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtbWVudS1hZGRvbiBwb3NpdGlvbj1cImJlZm9yZVwiIGdseXBoPVwiZmlsdGVyXCI+PC9mZC1tZW51LWFkZG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgJ0ZpbHRlcicgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0TWVudUl0ZW1zICYmIGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID4gMCAmJiAhaW5saW5lRWRpdE1vZGVcIj5cbiAgICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC1jb250ZXh0LW1lbnVcIlxuICAgICAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgICAgIFtmaXRDb250ZW50XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51ID8gJzEwMCUnIDogY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAxID8gJzQwcHgnIDogJzEwMHB4J1wiXG4gICAgICAgICAgICAgICAgPjwvdGg+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWhlYWRlciBjb2wtZGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEyMHB4XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgIWlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC12aWV3XCJcbiAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogNDBweFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WaWV3ICYmICFpbmxpbmVFZGl0TW9kZSAmJiAhaGlkZU9wZW5JY29uXCJcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RyPlxuPC90aGVhZD5cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWhlYWRlci9iYXJzYS10YWJsZS1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtaGVhZGVyL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFvQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBU3ZFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxhQUFhO0lBMkJ4RDs7T0FFRztJQUNILFlBQW9CLElBQXVCO1FBQ3ZDLEtBQUssRUFBRSxDQUFDO1FBRFEsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFsQmxDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQU9sQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7SUFVeEQsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdB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RyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBJbnB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgVWlUYWJsZVZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLXRhYmxlLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXRhYmxlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyc2EtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FUYWJsZUhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGFsbENoZWNrZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNDaGVja0xpc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xuICAgIEBJbnB1dCgpIGZpdFdpZHRoOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRleHRNZW51SXRlbXM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGNhblZpZXc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGFzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZU9wZW5JY29uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXRNb2RlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nOiBVaVRhYmxlVmlld1NldHRpbmc7XG4gICAgQElucHV0KCkgdGFibGVXaWR0aDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHJlc2l6ZWRCeVVzZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGlzYWJsZVJlc3BvbnNpdmU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcm93SW5kaWNhdG9yOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKVxuICAgIGFsbENoZWNrYm94ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBzb3J0QXNjZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNvcnREZXNjZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3J0Vmlld0NvbHVtbj4oKTtcblxuICAgIGNvbHVtbnNTbWFsbGVyVGhhblRhYmxlV2lkdGg6IGJvb2xlYW47XG4gICAgY29sdW1uc1dpZHRoOiBudW1iZXI7XG4gICAgc3RhcnRJbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fcHJlcGFyZUNvbHVtbnNXaWR0aCh0aGlzLnRhYmxlV2lkdGgsIHRoaXMuY29sdW1ucyk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgaW5saW5lRWRpdE1vZGUsIHJvd0luZGljYXRvciB9ID0gY2hhbmdlcztcbiAgICAgICAgbGV0IG5lZWRDaGFuZ2VzID0gZmFsc2U7XG4gICAgICAgIGlmIChjb2x1bW5zICYmICFjb2x1bW5zLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlQ29sdW1uc1dpZHRoKHRoaXMudGFibGVXaWR0aCwgY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmxpbmVFZGl0TW9kZSAmJiAhaW5saW5lRWRpdE1vZGUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVDb2x1bW5zV2lkdGgodGhpcy50YWJsZVdpZHRoLCB0aGlzLmNvbHVtbnMpO1xuICAgICAgICAgICAgbmVlZENoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3dJbmRpY2F0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFN0YXJ0SW5kZXgocm93SW5kaWNhdG9yLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICBuZWVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbmVlZENoYW5nZXMgJiYgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3NldFN0YXJ0SW5kZXgocm93SW5kaWNhdG9yOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RhcnRJbmRleCA9IHJvd0luZGljYXRvciA/IDEgOiAwO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3ByZXBhcmVDb2x1bW5zV2lkdGgodmFsOiBudW1iZXIsIGNvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdW0gPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uV2lkdGgpLnJlZHVjZSgodmFsMiwgY29sdW1uKSA9PiB2YWwyICsgY29sdW1uLCAwKTtcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IChjb2x1bW4uJFdpZHRoMiA9IGNvbHVtbi4kV2lkdGgpKTtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplZEJ5VXNlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29sdW1uc1dpZHRoID0gc3VtO1xuICAgICAgICBpZiAoc3VtID4gdmFsICYmIHZhbCA+IDApIHtcbiAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiAoY29sdW1uLiRXaWR0aDIgPSB0aGlzLmlubGluZUVkaXRNb2RlID8gJzIxMHB4JyA6IChjb2x1bW4uV2lkdGggKiAxMDApIC8gdmFsICsgJyUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uc1NtYWxsZXJUaGFuVGFibGVXaWR0aCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoc3VtICsgMTAgPCB2YWwpIHtcbiAgICAgICAgICAgIGNvbHVtbnNbY29sdW1ucy5sZW5ndGggLSAxXS4kV2lkdGgyID0gJzEwMCUnO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uQWxsQ2hlY2tib3goY2hlY2tlZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFsbENoZWNrYm94LmVtaXQoY2hlY2tlZCk7XG4gICAgfVxuICAgIG9uU29ydEFzY2VuZGluZyhjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4sIG1lbnUpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnUpIHtcbiAgICAgICAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRBc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xuICAgIH1cblxuICAgIG9uU29ydERlc2NlbmRpbmcoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBtZW51KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICBtZW51LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuXG4gICAgb25GaWx0ZXIoY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBtZW51KTogdm9pZCB7XG4gICAgICAgIGlmIChtZW51KSB7XG4gICAgICAgICAgICBtZW51LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXIuZW1pdChjb2x1bW4pO1xuICAgIH1cbiAgICBfdHJhY2tCeUNvbHVtbihpbmRleDogbnVtYmVyLCBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7Y29sdW1uLk5hbWV9JHtpbmRleH1gO1xuICAgIH1cbn1cbiIsIjx0aGVhZFxuICAgIGZkLXRhYmxlLWhlYWRlclxuICAgIFtjbGFzcy5pbmxpbmUtZWRpdF09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgW2NsYXNzLnNtYWxsQ29sdW1uc109XCJjb2x1bW5zU21hbGxlclRoYW5UYWJsZVdpZHRoXCJcbiAgICBbYXR0ci5jb2x1bW5zV2lkdGhdPVwiY29sdW1uc1dpZHRoXCJcbiAgICBbYXR0ci50YWJsZVdpZHRoXT1cInRhYmxlV2lkdGhcIlxuPlxuICAgIDx0ciBmZC10YWJsZS1yb3c+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZUhlYWRlclwiPlxuICAgICAgICAgICAgPHRoICpuZ0lmPVwicm93SW5kaWNhdG9yXCIgZmQtdGFibGUtY2VsbCBmZC10YWJsZS1zdGF0dXMtaW5kaWNhdG9yPjwvdGg+XG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCAqbmdJZj1cImlzQ2hlY2tMaXN0XCI+XG4gICAgICAgICAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhbGxDaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFsbENoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkFsbENoZWNrYm94KCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiIWlzQ2hlY2tMaXN0XCIgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCI+PC90aD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3Q7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhcnRJbmRleCA8PSBpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4uRmllbGRUeXBlSWQgPT09IDM4ID8gJzQwcHgnIDogY29sdW1uLiRXaWR0aDJcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImlubGluZUVkaXRNb2RlID8gJzIxMHB4JyA6IGxhc3QgPyAnMTAwJScgOiAnYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5SZXNpemVyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUmVzcG9uc2l2ZV09XCJkaXNhYmxlUmVzcG9uc2l2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJsZVdpZHRoXT1cInRhYmxlV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICBbY29sdW1uc1dpZHRoXT1cImNvbHVtbnNXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29sdW1uLiRDU1NDbGFzc05hbWUgKyAnIGNvbHVtbl9fJyArIGNvbHVtbi5DYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc3BsYXlJY29uXT1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3ZlciAjbWVudT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGaWVsZFR5cGVJZCAzOCBtZWFucyBpdCBpcyBhdXRvIHJvdyBudW1iZXIgZmllbGQtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJjb2x1bW4uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSA9PT0gJ0ltYWdlJyB8fCBjb2x1bW4uRmllbGRUeXBlSWQgPT09IDQyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5FeHRyYT8uSWNvbkRpc3BsYXlUeXBlRW51bSAhPT0gJ0ltYWdlJyAmJiBjb2x1bW4uRmllbGRUeXBlSWQgIT09IDM4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoY29sdW1uLkNhcHRpb24gfCBiYmJUcmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIChjbGljayk9XCJvblNvcnRBc2NlbmRpbmcoY29sdW1uLCBtZW51KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJzb3J0LWFzY2VuZGluZ1wiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAoJ1NvcnQnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fSB7eyAnQXNjZW5kaW5nJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25Tb3J0RGVzY2VuZGluZyhjb2x1bW4sIG1lbnUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLW1lbnUtYWRkb24gcG9zaXRpb249XCJiZWZvcmVcIiBnbHlwaD1cInNvcnQtZGVzY2VuZGluZ1wiPjwvZmQtbWVudS1hZGRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyAoJ1NvcnQnIHwgYmJiVHJhbnNsYXRlKSArICcgJyB9fSB7eyAnRGVzY2VuZGluZycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpIGZkLWxpc3QtaXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGZkLWxpc3QtbGluayAoY2xpY2spPVwib25GaWx0ZXIoY29sdW1uLCBtZW51KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1tZW51LWFkZG9uIHBvc2l0aW9uPVwiYmVmb3JlXCIgZ2x5cGg9XCJmaWx0ZXJcIj48L2ZkLW1lbnUtYWRkb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyAnRmlsdGVyJyB8IGJiYlRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHRNZW51SXRlbXMgJiYgY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPiAwICYmICFpbmxpbmVFZGl0TW9kZVwiPlxuICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1oZWFkZXIgY29sLWNvbnRleHQtbWVudVwiXG4gICAgICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnUgPyAnMTAwJScgOiBjb250ZXh0TWVudUl0ZW1zLmxlbmd0aCA+IDEgPyAnNDBweCcgOiAnMTAwcHgnXCJcbiAgICAgICAgICAgICAgICA+PC90aD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtaGVhZGVyIGNvbC1kZXRhaWxzXCJcbiAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTIwcHhcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0RldGFpbHNJblJvdyAmJiAhaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICAgICAgPjwvdGg+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1oZWFkZXIgY29sLXZpZXdcIlxuICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiA0MHB4XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNhblZpZXcgJiYgIWlubGluZUVkaXRNb2RlICYmICFoaWRlT3Blbkljb25cIlxuICAgICAgICAgICAgPjwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG48L3RoZWFkPlxuIl19
@@ -21,13 +21,13 @@ export class ListItemComponent extends BaseViewItemPropsComponent {
21
21
  }
22
22
  }
23
23
  ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n\n <button\n *ngIf=\"canView\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host .display ::ng-deep .fd-list__secondary{align-items:center;justify-content:stretch;display:flex}:host .display bsu-ulv-context-menu{margin:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary] ,[fdListSecondary]" }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i7.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i8.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "rtl", "deviceName", "deviceSize"] }, { kind: "directive", type: i9.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i10.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ListItemComponent, selector: "bsu-list-item", inputs: { setting: "setting", isDisplayType: "isDisplayType" }, usesInheritance: true, ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n\n <button\n *ngIf=\"canView\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host .display ::ng-deep .fd-list__secondary{align-items:center;justify-content:stretch;display:flex}:host .display bsu-ulv-context-menu{margin:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i6.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i6.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i6.ListSecondaryDirective, selector: "[fd-list-secondary] ,[fdListSecondary]" }, { kind: "directive", type: i6.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i6.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated"] }, { kind: "directive", type: i6.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i6.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i6.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i7.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i8.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "rtl", "deviceName", "deviceSize"] }, { kind: "directive", type: i9.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i10.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ListItemComponent, decorators: [{
26
26
  type: Component,
27
- args: [{ selector: 'bsu-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n\n <button\n *ngIf=\"canView\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host .display ::ng-deep .fd-list__secondary{align-items:center;justify-content:stretch;display:flex}:host .display bsu-ulv-context-menu{margin:auto}\n"] }]
27
+ args: [{ selector: 'bsu-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngTemplateOutlet=\"isDisplayType ? displayTemplate : standardTemplate; context: { $implicit: mo }\"\n></ng-container>\n<ng-template #standardTemplate let-mo>\n <li\n fd-list-item\n class=\"standard-list-row\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n [class.selected]=\"isChecked === true\"\n [selected]=\"isChecked === true\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n >\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n\n <span fd-list-thumbnail *ngIf=\"setting.IconFont || setting.AvatarField\">\n <fd-avatar\n alterIcon=\"alt|content|backup|default-icon\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n [circle]=\"true\"\n [image]=\"\n setting.AvatarField\n ? (mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId)\n : ''\n \"\n [size]=\"avatarSize\"\n [transparent]=\"true\"\n [glyph]=\"\n setting.IconFont ??\n (mo.$State === 'New' && !isChecked ? 'favorite' : inlineEditMode && isChecked ? 'edit' : '')\n \"\n >\n </fd-avatar>\n </span>\n <div fd-list-content>\n <div fd-list-byline [twoCol]=\"true\">\n <div fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats,\n index: 0\n }\n \"\n ></ng-container>\n </div>\n <div fd-list-byline [style.padding-left]=\"canView && deviceName === 'desktop' ? '.9rem' : '0'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.StatusField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <div fd-list-byline>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n layout94: layout$ | async,\n mo: mo,\n conditionalFormats: conditionalFormats\n }\n \"\n ></ng-container>\n </div>\n </div>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n\n <button\n *ngIf=\"canView\"\n (click)=\"onRowClick()\"\n fdType=\"transparent\"\n [glyph]=\"navigationArrow\"\n fd-button\n ></button>\n </a>\n </li>\n</ng-template>\n<ng-template #displayTemplate let-mo>\n <li\n class=\"display\"\n fd-list-item\n [interactive]=\"false\"\n *ngIf=\"!mo.parent || mo.parent?.expanded\"\n (dblclick)=\"onRowClick()\"\n (click)=\"onRowCheck()\"\n [style.padding-right]=\"'calc( 1rem + ' + mo.level * 12 + 'px' + ' )'\"\n >\n <a\n fd-list-link\n [attr.rtl]=\"rtl\"\n class=\"li-link\"\n style=\"cursor: default\"\n [class.checklist]=\"isCheckList\"\n #aEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"aEl\"\n style=\"column-gap: 3px\"\n >\n <img\n *ngIf=\"setting.AvatarField\"\n [src]=\"mo[setting.AvatarField.Name]?.FileId | picFieldSrc: 'ID':setting.AvatarField.FieldDefId\"\n style=\"width: 24px; height: 24px\"\n />\n <i\n fd-list-icon\n *ngIf=\"setting.IconFont\"\n [glyph]=\"setting.IconFont\"\n [style.color]=\"setting.IconColor ? setting.IconColor : null\"\n >\n </i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></i>\n <i fd-list-icon *ngIf=\"!setting.IconFont && inlineEditMode && isChecked\" glyph=\"edit\"></i>\n <fd-checkbox\n *ngIf=\"isCheckList\"\n [name]=\"mo.$Caption\"\n [ngModel]=\"isChecked\"\n (change)=\"onRowCheck2($event)\"\n ></fd-checkbox>\n <span fd-list-title>\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.TitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: 0\n }\n \"\n ></ng-container>\n </span>\n <span fd-list-secondary [dir]=\"rtl ? 'ltr' : 'rtl'\">\n <ng-container\n *ngTemplateOutlet=\"\n renderColumn;\n context: {\n $implicit: setting.SubtitleField,\n conditionalFormats: conditionalFormats,\n layout94: layout$ | async,\n mo: mo,\n index: index\n }\n \"\n ></ng-container>\n <bsu-ulv-context-menu\n [menuItems]=\"contextMenuItems\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [mo]=\"mo\"\n (commandClick)=\"onUlvCommand()\"\n ></bsu-ulv-context-menu>\n <button\n *ngIf=\"canView\"\n fd-button\n (click)=\"onRowClick()\"\n [glyph]=\"navigationArrow\"\n fdType=\"transparent\"\n ></button>\n </span>\n </a>\n </li>\n</ng-template>\n<ng-template\n #renderColumn\n let-column\n let-mo=\"mo\"\n let-conditionalFormats=\"conditionalFormats\"\n let-index=\"index\"\n let-layout94=\"layout94\"\n>\n <ng-container *ngIf=\"column\">\n <div\n #divEl\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"divEl\"\n [dbName]=\"column.Name\"\n >\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"inlineEditMode && allowInlineEdit\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"onEditFormPanelSave($event)\"\n (keyup.esc)=\"onEditFormPanelCancel($event)\"\n (keydown.Tab)=\"onTabKeyDown($event, index)\"\n [formLayoutShowLabel]=\"true\"\n ></bsu-column-renderer>\n </div>\n </ng-container>\n</ng-template>\n", styles: [":host .display ::ng-deep .fd-list__secondary{align-items:center;justify-content:stretch;display:flex}:host .display bsu-ulv-context-menu{margin:auto}\n"] }]
28
28
  }], propDecorators: { setting: [{
29
29
  type: Input
30
30
  }], isDisplayType: [{
31
31
  type: Input
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUzdHLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwwQkFBMEI7SUFJN0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDdkIsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN4QyxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDO1FBQ1Qsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7OEdBYlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsNElDWDlCLHluU0F3T0E7MkZEN05hLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBQcmV2ZW50RGVmYXVsRXZlbnQsIGVudW1WYWx1ZVRvU3RyaW5nU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUxpc3RWaWV3U2V0dGluZztcbiAgICBASW5wdXQoKSBpc0Rpc3BsYXlUeXBlOiBib29sZWFuO1xuICAgIGF2YXRhclNpemU6IFNpemU7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuYXZhdGFyU2l6ZSA9IGVudW1WYWx1ZVRvU3RyaW5nU2l6ZShcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5BdmF0YXJTaXplLFxuICAgICAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnID8gJ3MnIDogJ20nXG4gICAgICAgICkgYXMgU2l6ZTtcbiAgICB9XG4gICAgb25Sb3dDaGVjazIoZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNEaXNwbGF5VHlwZSA/IGRpc3BsYXlUZW1wbGF0ZSA6IHN0YW5kYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtbyB9XCJcbj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRUZW1wbGF0ZSBsZXQtbW8+XG4gICAgPGxpXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBjbGFzcz1cInN0YW5kYXJkLWxpc3Qtcm93XCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwiJ2NhbGMoIDFyZW0gKyAnICsgbW8ubGV2ZWwgKiAxMiArICdweCcgKyAnICknXCJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzQ2hlY2tlZCA9PT0gdHJ1ZVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJpc0NoZWNrZWQgPT09IHRydWVcIlxuICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbYXR0ci5ydGxdPVwicnRsXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGktbGlua1wiXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tsaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICNhRWxcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbaG9zdEVsXT1cImFFbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm1vLiRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Sb3dDaGVjazIoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cblxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aHVtYm5haWwgKm5nSWY9XCJzZXR0aW5nLkljb25Gb250IHx8IHNldHRpbmcuQXZhdGFyRmllbGRcIj5cbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0dGluZy5JY29uQ29sb3IgPyBzZXR0aW5nLkljb25Db2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhckZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobW9bc2V0dGluZy5BdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6c2V0dGluZy5BdmF0YXJGaWVsZC5GaWVsZERlZklkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiYXZhdGFyU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuSWNvbkZvbnQgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgIChtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWQgPyAnZmF2b3JpdGUnIDogaW5saW5lRWRpdE1vZGUgJiYgaXNDaGVja2VkID8gJ2VkaXQnIDogJycpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZmQtYXZhdGFyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZSBbdHdvQ29sXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlRpdGxlRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxGb3JtYXRzOiBjb25kaXRpb25hbEZvcm1hdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJjYW5WaWV3ICYmIGRldmljZU5hbWUgPT09ICdkZXNrdG9wJyA/ICcuOXJlbScgOiAnMCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdGF0dXNGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJzdS11bHYtY29udGV4dC1tZW51XG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgPjwvYnN1LXVsdi1jb250ZXh0LW1lbnU+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImNhblZpZXdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkaXNwbGF5VGVtcGxhdGUgbGV0LW1vPlxuICAgIDxsaVxuICAgICAgICBjbGFzcz1cImRpc3BsYXlcIlxuICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgW2ludGVyYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgICAgKm5nSWY9XCIhbW8ucGFyZW50IHx8IG1vLnBhcmVudD8uZXhwYW5kZWRcIlxuICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cIidjYWxjKCAxcmVtICsgJyArIG1vLmxldmVsICogMTIgKyAncHgnICsgJyApJ1wiXG4gICAgPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbYXR0ci5ydGxdPVwicnRsXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGktbGlua1wiXG4gICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogZGVmYXVsdFwiXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tsaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICNhRWxcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbaG9zdEVsXT1cImFFbFwiXG4gICAgICAgICAgICBzdHlsZT1cImNvbHVtbi1nYXA6IDNweFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNldHRpbmcuQXZhdGFyRmllbGRcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwibW9bc2V0dGluZy5BdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6c2V0dGluZy5BdmF0YXJGaWVsZC5GaWVsZERlZklkXCJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHhcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgZmQtbGlzdC1pY29uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLkljb25Gb250XCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwic2V0dGluZy5JY29uRm9udFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInNldHRpbmcuSWNvbkNvbG9yID8gc2V0dGluZy5JY29uQ29sb3IgOiBudWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvaT5cbiAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiAqbmdJZj1cIiFzZXR0aW5nLkljb25Gb250ICYmIG1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZFwiIGdseXBoPVwiZmF2b3JpdGVcIj48L2k+XG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gKm5nSWY9XCIhc2V0dGluZy5JY29uRm9udCAmJiBpbmxpbmVFZGl0TW9kZSAmJiBpc0NoZWNrZWRcIiBnbHlwaD1cImVkaXRcIj48L2k+XG4gICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJtby4kQ2FwdGlvblwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUm93Q2hlY2syKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmQtY2hlY2tib3g+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuVGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogMFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3Qtc2Vjb25kYXJ5IFtkaXJdPVwicnRsID8gJ2x0cicgOiAncnRsJ1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuU3VidGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPGJzdS11bHYtY29udGV4dC1tZW51XG4gICAgICAgICAgICAgICAgICAgIFttZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudV09XCJkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgICAgIChjb21tYW5kQ2xpY2spPVwib25VbHZDb21tYW5kKClcIlxuICAgICAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYW5WaWV3XCJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICAgI3JlbmRlckNvbHVtblxuICAgIGxldC1jb2x1bW5cbiAgICBsZXQtbW89XCJtb1wiXG4gICAgbGV0LWNvbmRpdGlvbmFsRm9ybWF0cz1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgbGV0LWluZGV4PVwiaW5kZXhcIlxuICAgIGxldC1sYXlvdXQ5ND1cImxheW91dDk0XCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNkaXZFbFxuICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgIFtob3N0RWxdPVwiZGl2RWxcIlxuICAgICAgICAgICAgW2RiTmFtZV09XCJjb2x1bW4uTmFtZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxic3UtY29sdW1uLXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgW2VkaXRNb2RlXT1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdFwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NvbnRyb2xVaV09XCJjb2x1bW4uQ2FwdGlvbiB8IGNvbnRyb2xVaTogbGF5b3V0OTRcIlxuICAgICAgICAgICAgICAgIChrZXl1cC5jb250cm9sLmVudGVyKT1cIm9uRWRpdEZvcm1QYW5lbFNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cIm9uVGFiS2V5RG93bigkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1MYXlvdXRTaG93TGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9ic3UtY29sdW1uLXJlbmRlcmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUzdHLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSwwQkFBMEI7SUFJN0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDdkIsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN4QyxDQUFDO0lBQ2QsQ0FBQztJQUNELFdBQVcsQ0FBQyxDQUFDO1FBQ1Qsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7OEdBYlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsNElDWDlCLHFxU0F5T0E7MkZEOU5hLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBQcmV2ZW50RGVmYXVsRXZlbnQsIGVudW1WYWx1ZVRvU3RyaW5nU2l6ZSB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVpTGlzdFZpZXdTZXR0aW5nIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtdmlldyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzZXR0aW5nOiBVaUxpc3RWaWV3U2V0dGluZztcbiAgICBASW5wdXQoKSBpc0Rpc3BsYXlUeXBlOiBib29sZWFuO1xuICAgIGF2YXRhclNpemU6IFNpemU7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuYXZhdGFyU2l6ZSA9IGVudW1WYWx1ZVRvU3RyaW5nU2l6ZShcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5BdmF0YXJTaXplLFxuICAgICAgICAgICAgdGhpcy5jb250ZW50RGVuc2l0eSA9PT0gJ2NvbXBhY3QnID8gJ3MnIDogJ20nXG4gICAgICAgICkgYXMgU2l6ZTtcbiAgICB9XG4gICAgb25Sb3dDaGVjazIoZSk6IHZvaWQge1xuICAgICAgICBQcmV2ZW50RGVmYXVsRXZlbnQoZSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNEaXNwbGF5VHlwZSA/IGRpc3BsYXlUZW1wbGF0ZSA6IHN0YW5kYXJkVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBtbyB9XCJcbj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRUZW1wbGF0ZSBsZXQtbW8+XG4gICAgPGxpXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBjbGFzcz1cInN0YW5kYXJkLWxpc3Qtcm93XCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwiJ2NhbGMoIDFyZW0gKyAnICsgbW8ubGV2ZWwgKiAxMiArICdweCcgKyAnICknXCJcbiAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzQ2hlY2tlZCA9PT0gdHJ1ZVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJpc0NoZWNrZWQgPT09IHRydWVcIlxuICAgICAgICAoZGJsY2xpY2spPVwib25Sb3dDbGljaygpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgPlxuICAgICAgICA8YVxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbYXR0ci5ydGxdPVwicnRsXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGktbGlua1wiXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tsaXN0XT1cImlzQ2hlY2tMaXN0XCJcbiAgICAgICAgICAgICNhRWxcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbaG9zdEVsXT1cImFFbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm1vLiRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Sb3dDaGVjazIoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cblxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aHVtYm5haWwgKm5nSWY9XCJzZXR0aW5nLkljb25Gb250IHx8IHNldHRpbmcuQXZhdGFyRmllbGRcIj5cbiAgICAgICAgICAgICAgICA8ZmQtYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0dGluZy5JY29uQ29sb3IgPyBzZXR0aW5nLkljb25Db2xvciA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbY2lyY2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaW1hZ2VdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nLkF2YXRhckZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAobW9bc2V0dGluZy5BdmF0YXJGaWVsZC5OYW1lXT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6c2V0dGluZy5BdmF0YXJGaWVsZC5GaWVsZERlZklkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiYXZhdGFyU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5JY29uRm9udCA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgKG1vLiRTdGF0ZSA9PT0gJ05ldycgJiYgIWlzQ2hlY2tlZCA/ICdmYXZvcml0ZScgOiBpbmxpbmVFZGl0TW9kZSAmJiBpc0NoZWNrZWQgPyAnZWRpdCcgOiAnJylcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1hdmF0YXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lIFt0d29Db2xdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNldHRpbmcuVGl0bGVGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEZvcm1hdHM6IGNvbmRpdGlvbmFsRm9ybWF0cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZSBbc3R5bGUucGFkZGluZy1sZWZ0XT1cImNhblZpZXcgJiYgZGV2aWNlTmFtZSA9PT0gJ2Rlc2t0b3AnID8gJy45cmVtJyA6ICcwJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBzZXR0aW5nLlN0YXR1c0ZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWxpc3QtYnlsaW5lPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdWJ0aXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbbWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICA+PC9ic3UtdWx2LWNvbnRleHQtbWVudT5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FuVmlld1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Rpc3BsYXlUZW1wbGF0ZSBsZXQtbW8+XG4gICAgPGxpXG4gICAgICAgIGNsYXNzPVwiZGlzcGxheVwiXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBbaW50ZXJhY3RpdmVdPVwiZmFsc2VcIlxuICAgICAgICAqbmdJZj1cIiFtby5wYXJlbnQgfHwgbW8ucGFyZW50Py5leHBhbmRlZFwiXG4gICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwiJ2NhbGMoIDFyZW0gKyAnICsgbW8ubGV2ZWwgKiAxMiArICdweCcgKyAnICknXCJcbiAgICA+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFthdHRyLnJ0bF09XCJydGxcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaS1saW5rXCJcbiAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBkZWZhdWx0XCJcbiAgICAgICAgICAgIFtjbGFzcy5jaGVja2xpc3RdPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgI2FFbFxuICAgICAgICAgICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgIFtob3N0RWxdPVwiYUVsXCJcbiAgICAgICAgICAgIHN0eWxlPVwiY29sdW1uLWdhcDogM3B4XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5BdmF0YXJGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJtb1tzZXR0aW5nLkF2YXRhckZpZWxkLk5hbWVdPy5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpzZXR0aW5nLkF2YXRhckZpZWxkLkZpZWxkRGVmSWRcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0cHg7IGhlaWdodDogMjRweFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBmZC1saXN0LWljb25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNldHRpbmcuSWNvbkZvbnRcIlxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJzZXR0aW5nLkljb25Gb250XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0dGluZy5JY29uQ29sb3IgPyBzZXR0aW5nLkljb25Db2xvciA6IG51bGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uICpuZ0lmPVwiIXNldHRpbmcuSWNvbkZvbnQgJiYgbW8uJFN0YXRlID09PSAnTmV3JyAmJiAhaXNDaGVja2VkXCIgZ2x5cGg9XCJmYXZvcml0ZVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiAqbmdJZj1cIiFzZXR0aW5nLkljb25Gb250ICYmIGlubGluZUVkaXRNb2RlICYmIGlzQ2hlY2tlZFwiIGdseXBoPVwiZWRpdFwiPjwvaT5cbiAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm1vLiRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Sb3dDaGVjazIoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5UaXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiAwXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1zZWNvbmRhcnkgW2Rpcl09XCJydGwgPyAnbHRyJyA6ICdydGwnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2V0dGluZy5TdWJ0aXRsZUZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRm9ybWF0czogY29uZGl0aW9uYWxGb3JtYXRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XT1cImRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnN1LXVsdi1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNhblZpZXdcIlxuICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJuYXZpZ2F0aW9uQXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjcmVuZGVyQ29sdW1uXG4gICAgbGV0LWNvbHVtblxuICAgIGxldC1tbz1cIm1vXCJcbiAgICBsZXQtY29uZGl0aW9uYWxGb3JtYXRzPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBsZXQtaW5kZXg9XCJpbmRleFwiXG4gICAgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2RpdkVsXG4gICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJkaXZFbFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbY29udHJvbFVpXT1cImNvbHVtbi5DYXB0aW9uIHwgY29udHJvbFVpOiBsYXlvdXQ5NFwiXG4gICAgICAgICAgICAgICAgKGtleXVwLmNvbnRyb2wuZW50ZXIpPVwib25FZGl0Rm9ybVBhbmVsU2F2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXAuZXNjKT1cIm9uRWRpdEZvcm1QYW5lbENhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5UYWIpPVwib25UYWJLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbZm9ybUxheW91dFNob3dMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2JzdS1jb2x1bW4tcmVuZGVyZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==