axidio-styleguide-library1-v2 0.4.79 → 0.4.80

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.
@@ -231,6 +231,9 @@ export class AxTableComponent {
231
231
  // if (this.tableData.metaData.isAllAlignedToRight) {
232
232
  // return 'textalign-right';
233
233
  // }
234
+ if (this.isColumnNumeric(value)) {
235
+ return 'textalign-right';
236
+ }
234
237
  if (value === null || value === undefined) {
235
238
  return 'textalign-left';
236
239
  }
@@ -246,6 +249,18 @@ export class AxTableComponent {
246
249
  ? 'textalign-right last-column-color'
247
250
  : 'textalign-left';
248
251
  }
252
+ isColumnNumeric(header) {
253
+ return this.currentList.some(row => {
254
+ const value = row[header];
255
+ if (value === null || value === undefined)
256
+ return false;
257
+ const str = String(value).trim();
258
+ // numeric values like 1, 23, 93.55
259
+ if (!isNaN(Number(str)))
260
+ return true;
261
+ return false;
262
+ });
263
+ }
249
264
  shouldShowPagination() {
250
265
  return !this.tableData?.metaData?.isPaginationHidden;
251
266
  }
@@ -262,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
262
277
  }], clickEvent: [{
263
278
  type: Output
264
279
  }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQTZCMUMsTUFBTSxPQUFPLGdCQUFnQjtJQTZCM0I7UUExQlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFFZixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFrQixLQUFLLENBQUM7UUFDckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQix1QkFB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QztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0Qyw0REFBNEQ7UUFDNUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZ0NBQWdDLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJGLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8saUJBQWlCLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDNUMsQ0FBQyxDQUFDLG1DQUFtQztZQUNyQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFDdkIsQ0FBQztJQUVHLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUM7SUFDdkQsQ0FBQzsrR0F6VFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IscUxDOUI3QixtK0hBaUZNOzs0RkRuRE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGNBQWM7d0RBS2YsU0FBUztzQkFBakIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IENoYXJ0SGVscGVyIGZyb20gJy4uL2NoYXJ0LWhlbHBlcic7XHJcblxyXG5pbnRlcmZhY2UgVGFibGVNZXRhRGF0YSB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaXNQYWdpbmF0aW9uSGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0hlYWRlclZpc2libGU/OiBib29sZWFuO1xyXG4gIGlzU2VhcmNoSGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0hlYWRlckFsaWduZWRUb0NlbnRlcj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJTb3J0SGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0ZpcnN0Q29sdW1uSGVhZGVySGlkZGVuPzogYm9vbGVhbjtcclxuICBpc0FsbEFsaWduZWRUb1JpZ2h0PzogYm9vbGVhbjtcclxuICBoYXNEcmlsbERvd24/OiBib29sZWFuO1xyXG4gIGhlYWRlckNvbG9yPzogc3RyaW5nO1xyXG4gIGhlYWRlclRleHRDb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFRhYmxlRGF0YSB7XHJcbiAgZGF0YTogYW55W107XHJcbiAgbWV0YURhdGE6IFRhYmxlTWV0YURhdGE7XHJcbiAgaGlnaGxpZ2h0ZWRUZXh0cz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG50eXBlIFNvcnREaXJlY3Rpb24gPSAnYXNjJyB8ICdkZXNjJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWF4LXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXgtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F4LXRhYmxlLmNvbXBvbmVudC5sZXNzJywgJy4uL2NvbW1vbi1zdHlsZXMubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXhUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdGFibGVEYXRhITogVGFibGVEYXRhO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvbjogYW55O1xyXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGlzSGVhZGVyVmlzaWJsZSA9IHRydWU7XHJcbiAgaXNVc2VyU29ydCA9IGZhbHNlO1xyXG5cclxuICB0YWJsZUhlYWRMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGl0ZW1MaXN0OiBhbnlbXSA9IFtdO1xyXG4gIG1hc3Rlckxpc3Q6IGFueVtdID0gW107XHJcbiAgY3VycmVudExpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIHJlYWRvbmx5IERFRkFVTFRfUEFHRV9TSVpFID0gMTA7XHJcbiAgcmVhZG9ubHkgTUFYX1BBR0VTX1RPX1NIT1cgPSA1O1xyXG4gIFxyXG4gIGN1cnJlbnRQYWdlID0gMTtcclxuICBwYWdlU2l6ZSA9IHRoaXMuREVGQVVMVF9QQUdFX1NJWkU7XHJcbiAgdG90YWxJdGVtcyA9IDA7XHJcbiAgdG90YWxQYWdlcyA9IDE7XHJcbiAgZ29Ub1BhZ2VOdW1iZXIgPSAxO1xyXG4gIHBhZ2VzVG9TaG93OiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2FzYyc7XHJcbiAgc29ydENvbHVtbiA9ICcnO1xyXG5cclxuICBjaGFydENvbmZpZ3VyYXRpb246IGFueSA9IHt9O1xyXG4gIGRlZmF1bHRDb25maWd1cmF0aW9uOiBhbnkgPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplQ29tcG9uZW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHRyYWN0VGFibGVIZWFkZXJzKCk7XHJcbiAgICB0aGlzLm1lcmdlQ29uZmlndXJhdGlvbnMoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcclxuICAgIHRoaXMudXBkYXRlSGVhZGVyVmlzaWJpbGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0VGFibGVIZWFkZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudGFibGVIZWFkTGlzdCA9IE9iamVjdC5rZXlzKHRoaXMudGFibGVEYXRhLmRhdGFbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3VyYXRpb25zKCk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbikge1xyXG4gICAgICB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbltrZXldID0gQ2hhcnRIZWxwZXIuZ2V0VmFsdWVCeUNvbmZpZ3VyYXRpb25UeXBlKFxyXG4gICAgICAgIGtleSxcclxuICAgICAgICB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uLFxyXG4gICAgICAgIHRoaXMuY3VzdG9tQ2hhcnRDb25maWd1cmF0aW9uXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVEYXRhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXN0ZXJMaXN0ID0gWy4uLnRoaXMudGFibGVEYXRhLmRhdGFdO1xyXG4gICAgdGhpcy5pdGVtTGlzdCA9IFsuLi50aGlzLm1hc3Rlckxpc3RdO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG5cclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc1BhZ2luYXRpb25IaWRkZW4pIHtcclxuICAgICAgdGhpcy5jdXJyZW50TGlzdCA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUhlYWRlclZpc2liaWxpdHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJWaXNpYmxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSB0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclZpc2libGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRQYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgdGhpcy5wYWdlU2l6ZTtcclxuICAgIHRoaXMuY3VycmVudExpc3QgPSB0aGlzLml0ZW1MaXN0LnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlVG90YWxQYWdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMgLyB0aGlzLnBhZ2VTaXplKTtcclxuICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZVBhZ2VzVG9TaG93KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlc1RvU2hvdyA9IFtdO1xyXG4gICAgXHJcbiAgICBsZXQgc3RhcnRQYWdlID0gTWF0aC5tYXgoXHJcbiAgICAgIDEsXHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgLSBNYXRoLmZsb29yKHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cgLyAyKVxyXG4gICAgKTtcclxuICAgIGxldCBlbmRQYWdlID0gTWF0aC5taW4oXHJcbiAgICAgIHRoaXMudG90YWxQYWdlcyxcclxuICAgICAgc3RhcnRQYWdlICsgdGhpcy5NQVhfUEFHRVNfVE9fU0hPVyAtIDFcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGVuZFBhZ2UgLSBzdGFydFBhZ2UgKyAxIDwgdGhpcy5NQVhfUEFHRVNfVE9fU0hPVykge1xyXG4gICAgICBzdGFydFBhZ2UgPSBNYXRoLm1heCgxLCBlbmRQYWdlIC0gdGhpcy5NQVhfUEFHRVNfVE9fU0hPVyArIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSBzdGFydFBhZ2U7IGkgPD0gZW5kUGFnZTsgaSsrKSB7XHJcbiAgICAgIHRoaXMucGFnZXNUb1Nob3cucHVzaChpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25QYWdpbmF0aW9uQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuICB9XHJcblxyXG4gIGdvVG9GaXJzdFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9QcmV2aW91c1BhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZS0tO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub05leHRQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSsrO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub0xhc3RQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgIT09IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAocGFnZSA+PSAxICYmIHBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzICYmIHBhZ2UgIT09IHRoaXMuY3VycmVudFBhZ2UpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvU3BlY2lmaWNQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhZ2VOdW0gPSBwYXJzZUludCh0aGlzLmdvVG9QYWdlTnVtYmVyLnRvU3RyaW5nKCksIDEwKTtcclxuXHJcbiAgICBpZiAoaXNOYU4ocGFnZU51bSkgfHwgcGFnZU51bSA8IDEpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IDE7XHJcbiAgICB9IGVsc2UgaWYgKHBhZ2VOdW0gPiB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMudG90YWxQYWdlcztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5nb1RvUGFnZU51bWJlcjtcclxuICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBzb3J0QnlDb2x1bW4oY29sdW1uSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGNvbHVtbklkID09PSAndmlld0RldGFpbHMnIHx8IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc1VzZXJTb3J0ID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAoY29sdW1uSWQgIT09IHRoaXMuc29ydENvbHVtbikge1xyXG4gICAgICB0aGlzLnNvcnRDb2x1bW4gPSBjb2x1bW5JZDtcclxuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gJ2FzYyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYyc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wZXJmb3JtU29ydChjb2x1bW5JZCk7XHJcbiAgICB0aGlzLnJlc2V0UGFnaW5hdGlvbkFmdGVyU29ydCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwZXJmb3JtU29ydChjb2x1bW5JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgY29uc3QgY29tcGFyaXNvbiA9IHRoaXMuY29tcGFyZVZhbHVlcyhhW2NvbHVtbklkXSwgYltjb2x1bW5JZF0pO1xyXG4gICAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/IGNvbXBhcmlzb24gOiAtY29tcGFyaXNvbjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wYXJlVmFsdWVzKHYxOiBhbnksIHYyOiBhbnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbnVtMSA9IHBhcnNlRmxvYXQodjEpO1xyXG4gICAgY29uc3QgbnVtMiA9IHBhcnNlRmxvYXQodjIpO1xyXG5cclxuICAgIGlmICghaXNOYU4obnVtMSkgJiYgIWlzTmFOKG51bTIpKSB7XHJcbiAgICAgIHJldHVybiBudW0xIC0gbnVtMjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdjEgPCB2MiA/IC0xIDogdjEgPiB2MiA/IDEgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldFBhZ2luYXRpb25BZnRlclNvcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChjb2x1bW5JZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29sdW1uID09PSBjb2x1bW5JZDtcclxuICB9XHJcblxyXG4gIGdldFNvcnREaXJlY3Rpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gJ2Fycm93LXVwJyA6ICdhcnJvdy1kb3duJztcclxuICB9XHJcblxyXG4gIG9uRW50ZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcclxuICAgIFxyXG4gICAgdGhpcy5pdGVtTGlzdCA9IHRoaXMuZmlsdGVySXRlbXMoc2VhcmNoVGV4dCk7XHJcbiAgICB0aGlzLnJlc2V0UGFnaW5hdGlvbkFmdGVyU2VhcmNoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbHRlckl0ZW1zKHNlYXJjaFRleHQ6IHN0cmluZyk6IGFueVtdIHtcclxuICAgIGlmICghc2VhcmNoVGV4dCkge1xyXG4gICAgICByZXR1cm4gWy4uLnRoaXMubWFzdGVyTGlzdF07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbG93ZXJTZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLm1hc3Rlckxpc3QuZmlsdGVyKGl0ZW0gPT4gXHJcbiAgICAgIHRoaXMudGFibGVIZWFkTGlzdC5zb21lKGhlYWRlciA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtW2hlYWRlcl07XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBcclxuICAgICAgICBjb25zdCBzZWFyY2hhYmxlU3RyaW5nID0gU3RyaW5nKHZhbHVlKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIHJldHVybiBzZWFyY2hhYmxlU3RyaW5nLmluY2x1ZGVzKGxvd2VyU2VhcmNoVGV4dCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldFBhZ2luYXRpb25BZnRlclNlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkdGhCeUlkKGNvbHVtbklkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgcmV0dXJuICcxMCUnOyAvLyBvciAnODBweCcgZm9yIGZpeGVkIHdpZHRoXHJcbiAgfVxyXG4gIFxyXG4gICAgaWYgKHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGggPT09IDMpIHtcclxuICAgICAgcmV0dXJuIGluZGV4ID09PSAxID8gJzYwJScgOiAnMjAlJztcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uc3Qgd2lkdGggPSAxMDAgLyB0aGlzLnRhYmxlSGVhZExpc3QubGVuZ3RoO1xyXG4gICAgcmV0dXJuIGAke3dpZHRofSVgO1xyXG4gIH1cclxuXHJcbiAgcHJldmVudE5lZ2F0aXZlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnZhbGlkS2V5cyA9IFsnLScsICcrJywgJ2UnLCAnRSddO1xyXG4gICAgaWYgKGludmFsaWRLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlTnVtYmVySW5wdXQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNoYXJDb2RlID0gZXZlbnQud2hpY2ggfHwgZXZlbnQua2V5Q29kZTtcclxuICAgIGlmIChjaGFyQ29kZSA+IDMxICYmIChjaGFyQ29kZSA8IDQ4IHx8IGNoYXJDb2RlID4gNTcpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2soZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdChkYXRhKTtcclxuICB9XHJcbmdldENlbGxBbGlnbm1lbnQodmFsdWU6IGFueSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgLy8gSWYgYWxsIGNvbHVtbnMgc2hvdWxkIGJlIHJpZ2h0IGFsaWduZWQgZ2xvYmFsbHlcclxuICAvLyBpZiAodGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNBbGxBbGlnbmVkVG9SaWdodCkge1xyXG4gIC8vICAgcmV0dXJuICd0ZXh0YWxpZ24tcmlnaHQnO1xyXG4gIC8vIH1cclxuXHJcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiAndGV4dGFsaWduLWxlZnQnO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc3RyVmFsdWUgPSBTdHJpbmcodmFsdWUpLnRyaW0oKTtcclxuXHJcbiAgLy8gRGV0ZWN0IG51bWVyaWMsIGRhdGUsIG9yIGFscGhhbnVtZXJpYyBlbmRpbmcgd2l0aCBudW1iZXJzXHJcbiAgY29uc3QgaXNOdW1iZXIgPSAhaXNOYU4oTnVtYmVyKHN0clZhbHVlKSk7XHJcbiAgY29uc3QgaXNEYXRlID0gIWlzTmFOKERhdGUucGFyc2Uoc3RyVmFsdWUpKTtcclxuICBjb25zdCBpc0FscGhhTnVtZXJpY1dpdGhUcmFpbGluZ051bWJlciA9IC9eW0EtWmEtel0qXFxkK1tBLVphLXowLTldKiQvLnRlc3Qoc3RyVmFsdWUpO1xyXG5cclxuICBpZiAoaXNOdW1iZXIgfHwgaXNEYXRlKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaW5kZXggPT09IHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGggLSAxXHJcbiAgICA/ICd0ZXh0YWxpZ24tcmlnaHQgbGFzdC1jb2x1bW4tY29sb3InXHJcbiAgICA6ICd0ZXh0YWxpZ24tbGVmdCc7XHJcbn1cclxuXHJcbiAgICBzaG91bGRTaG93UGFnaW5hdGlvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy50YWJsZURhdGE/Lm1ldGFEYXRhPy5pc1BhZ2luYXRpb25IaWRkZW47XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgPGxpYi1oZWFkZXItYWx0IFt0aXRsZV09XCJ0YWJsZURhdGEubWV0YURhdGEudGl0bGVcIiAqbmdJZj1cIiFpc0hlYWRlclZpc2libGVcIj48L2xpYi1oZWFkZXItYWx0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiF0YWJsZURhdGEubWV0YURhdGEuaXNTZWFyY2hIaWRkZW5cIlxyXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY3VzdG9tLWlucHV0IG1lZGl1bS1mb250LXNpemUgdGV4dGJveC1heC1jb21tb25cIiBpZD1cImV4YW1wbGVJbnB1dEVtYWlsMVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBwbGFjZWhvbGRlcj1cIiAgU2VhcmNoICBcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWxIZWxwXCIgKGtleXVwKT1cIm9uRW50ZXIoJGV2ZW50KVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBvcHVwLWJvZHktZm9yLXNjcm9sbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSBib3JkZXJcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXIgYWxpZ24tbWlkZGxlIG1iLTBcIj5cclxuICAgICAgICA8dGhlYWQgY2xhc3M9XCJ0YWJsZS1kYXJrXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkTGlzdDsgaW5kZXggYXMgaVwiICBbbmdDbGFzc109XCJnZXRDZWxsQWxpZ25tZW50KGhlYWRlcixpKVwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlckNvbG9yXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlclRleHRDb2xvclwiIChjbGljayk9XCJzb3J0QnlDb2x1bW4oaGVhZGVyKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCF0YWJsZURhdGEubWV0YURhdGEuaXNGaXJzdENvbHVtbkhlYWRlckhpZGRlbiAmJiBpID09IDApIHx8IGkgPiAwXHJcbiAgICAgICAgICAgIFwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgICAgICA/ICdjdXJzb3ItcG9pbnRlcidcclxuICAgICAgICAgICAgICAgIDogJ2N1cnNvci1kZWZhdWx0J1xyXG4gICAgICAgICAgICBcIj57eyBoZWFkZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoIWlzVXNlclNvcnQgfHwgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGhlYWRlcikpICYmXHJcbiAgICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW5cclxuICAgICAgICAgICAgXCIgY2xhc3M9XCJzb3J0LWljb25zIGZhXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgIWlzVXNlclNvcnRcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQnXHJcbiAgICAgICAgICAgICAgICA6IHNvcnREaXJlY3Rpb24gPT0gJ2FzYydcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQtYXNjJ1xyXG4gICAgICAgICAgICAgICAgOiAnZmEtc29ydC1kZXNjJ1xyXG4gICAgICAgICAgICBcIj48L2k+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgY3VycmVudExpc3RcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgIHRhYmxlRGF0YT8uaGlnaGxpZ2h0ZWRUZXh0cz8uaW5jbHVkZXMoc3RvcmVbdGFibGVIZWFkTGlzdFswXV0pXHJcbiAgICAgICAgICAgID8gJ2ZvbnQtd2VpZ2h0LWJvbGQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIj5cclxuICAgICAgICAgICAgPHRkIChjbGljayk9XCJoYW5kbGVDbGljayhzdG9yZSlcIiBjbGFzcz1cInRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDZWxsQWxpZ25tZW50KHN0b3JlW2hlYWRlcl0sIGkpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY3Vyc29yXT1cIlxyXG4gICAgICAgICAgICB0YWJsZURhdGEubWV0YURhdGEuaGFzRHJpbGxEb3duID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXHJcbiAgICAgICAgICBcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBzdG9yZVtoZWFkZXJdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1iYXIgbXQtMFwiICpuZ0lmPVwic2hvdWxkU2hvd1BhZ2luYXRpb24oKVwiPlxyXG4gICAgICA8c3Bhbj5HbyBUbzwvc3Bhbj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cInBhZ2UtaW5wdXRcIiBtaW49XCIxXCIgW21heF09XCJ0b3RhbFBhZ2VzXCIgKGtleXVwLmVudGVyKT1cImdvVG9TcGVjaWZpY1BhZ2UoKVwiIFsobmdNb2RlbCldPVwiZ29Ub1BhZ2VOdW1iZXJcIlxyXG4gICAgICAgIChrZXlwcmVzcyk9XCJwcmV2ZW50TmVnYXRpdmUoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuXHJcbiAgICAgIDxzcGFuPiB7eyAoY3VycmVudExpc3QubGVuZ3RoID4gMCA/ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgMSkgOiAwKSB9fSAtXHJcbiAgICAgICAge3sgKChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyBjdXJyZW50TGlzdC5sZW5ndGgpIH19IG9mXHJcbiAgICAgICAge3sgdG90YWxJdGVtcyB8IG51bWJlciB9fTwvc3Bhbj5cclxuXHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCIgKGNsaWNrKT1cImdvVG9GaXJzdFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIkZpcnN0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tZG91YmxlLWxlZnRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJQcmV2aW91cyBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWxlZnRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIk5leHQgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1yaWdodFwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSB0b3RhbFBhZ2VzXCIgKGNsaWNrKT1cImdvVG9MYXN0UGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiTGFzdCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWRvdWJsZS1yaWdodFwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQTZCMUMsTUFBTSxPQUFPLGdCQUFnQjtJQTZCM0I7UUExQlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFFZixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFrQixLQUFLLENBQUM7UUFDckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQix1QkFB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QUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0csb0JBQW9CO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQztJQUN2RCxDQUFDOytHQTVVVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQixxTEM5QjdCLG0rSEFpRk07OzRGRG5ETyxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzt3REFLZixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgQ2hhcnRIZWxwZXIgZnJvbSAnLi4vY2hhcnQtaGVscGVyJztcclxuXHJcbmludGVyZmFjZSBUYWJsZU1ldGFEYXRhIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBpc1BhZ2luYXRpb25IaWRkZW4/OiBib29sZWFuO1xyXG4gIGlzSGVhZGVyVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgaXNTZWFyY2hIaWRkZW4/OiBib29sZWFuO1xyXG4gIGlzSGVhZGVyQWxpZ25lZFRvQ2VudGVyPzogYm9vbGVhbjtcclxuICBpc0hlYWRlclNvcnRIaWRkZW4/OiBib29sZWFuO1xyXG4gIGlzRmlyc3RDb2x1bW5IZWFkZXJIaWRkZW4/OiBib29sZWFuO1xyXG4gIGlzQWxsQWxpZ25lZFRvUmlnaHQ/OiBib29sZWFuO1xyXG4gIGhhc0RyaWxsRG93bj86IGJvb2xlYW47XHJcbiAgaGVhZGVyQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGVhZGVyVGV4dENvbG9yPzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgVGFibGVEYXRhIHtcclxuICBkYXRhOiBhbnlbXTtcclxuICBtZXRhRGF0YTogVGFibGVNZXRhRGF0YTtcclxuICBoaWdobGlnaHRlZFRleHRzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbnR5cGUgU29ydERpcmVjdGlvbiA9ICdhc2MnIHwgJ2Rlc2MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXgtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9heC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXgtdGFibGUuY29tcG9uZW50Lmxlc3MnLCAnLi4vY29tbW9uLXN0eWxlcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBeFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB0YWJsZURhdGEhOiBUYWJsZURhdGE7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2hhcnRDb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgaXNIZWFkZXJWaXNpYmxlID0gdHJ1ZTtcclxuICBpc1VzZXJTb3J0ID0gZmFsc2U7XHJcblxyXG4gIHRhYmxlSGVhZExpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgaXRlbUxpc3Q6IGFueVtdID0gW107XHJcbiAgbWFzdGVyTGlzdDogYW55W10gPSBbXTtcclxuICBjdXJyZW50TGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgcmVhZG9ubHkgREVGQVVMVF9QQUdFX1NJWkUgPSAxMDtcclxuICByZWFkb25seSBNQVhfUEFHRVNfVE9fU0hPVyA9IDU7XHJcbiAgXHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHBhZ2VTaXplID0gdGhpcy5ERUZBVUxUX1BBR0VfU0laRTtcclxuICB0b3RhbEl0ZW1zID0gMDtcclxuICB0b3RhbFBhZ2VzID0gMTtcclxuICBnb1RvUGFnZU51bWJlciA9IDE7XHJcbiAgcGFnZXNUb1Nob3c6IG51bWJlcltdID0gW107XHJcblxyXG4gIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICBzb3J0Q29sdW1uID0gJyc7XHJcblxyXG4gIGNoYXJ0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcbiAgZGVmYXVsdENvbmZpZ3VyYXRpb246IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4dHJhY3RUYWJsZUhlYWRlcnMoKTtcclxuICAgIHRoaXMubWVyZ2VDb25maWd1cmF0aW9ucygpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xyXG4gICAgdGhpcy51cGRhdGVIZWFkZXJWaXNpYmlsaXR5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RUYWJsZUhlYWRlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWJsZURhdGE/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50YWJsZUhlYWRMaXN0ID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZGF0YVswXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1lcmdlQ29uZmlndXJhdGlvbnMoKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRlZmF1bHRDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhcnRDb25maWd1cmF0aW9uW2tleV0gPSBDaGFydEhlbHBlci5nZXRWYWx1ZUJ5Q29uZmlndXJhdGlvblR5cGUoXHJcbiAgICAgICAga2V5LFxyXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgdGhpcy5jdXN0b21DaGFydENvbmZpZ3VyYXRpb25cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hc3Rlckxpc3QgPSBbLi4udGhpcy50YWJsZURhdGEuZGF0YV07XHJcbiAgICB0aGlzLml0ZW1MaXN0ID0gWy4uLnRoaXMubWFzdGVyTGlzdF07XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzUGFnaW5hdGlvbkhpZGRlbikge1xyXG4gICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSGVhZGVyVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclZpc2libGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFBhZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnZVNpemU7XHJcbiAgICBjb25zdCBlbmRJbmRleCA9IHN0YXJ0SW5kZXggKyB0aGlzLnBhZ2VTaXplO1xyXG4gICAgdGhpcy5jdXJyZW50TGlzdCA9IHRoaXMuaXRlbUxpc3Quc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVUb3RhbFBhZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3RhbFBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMucGFnZVNpemUpO1xyXG4gICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlUGFnZXNUb1Nob3coKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VzVG9TaG93ID0gW107XHJcbiAgICBcclxuICAgIGxldCBzdGFydFBhZ2UgPSBNYXRoLm1heChcclxuICAgICAgMSxcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSAtIE1hdGguZmxvb3IodGhpcy5NQVhfUEFHRVNfVE9fU0hPVyAvIDIpXHJcbiAgICApO1xyXG4gICAgbGV0IGVuZFBhZ2UgPSBNYXRoLm1pbihcclxuICAgICAgdGhpcy50b3RhbFBhZ2VzLFxyXG4gICAgICBzdGFydFBhZ2UgKyB0aGlzLk1BWF9QQUdFU19UT19TSE9XIC0gMVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZW5kUGFnZSAtIHN0YXJ0UGFnZSArIDEgPCB0aGlzLk1BWF9QQUdFU19UT19TSE9XKSB7XHJcbiAgICAgIHN0YXJ0UGFnZSA9IE1hdGgubWF4KDEsIGVuZFBhZ2UgLSB0aGlzLk1BWF9QQUdFU19UT19TSE9XICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0UGFnZTsgaSA8PSBlbmRQYWdlOyBpKyspIHtcclxuICAgICAgdGhpcy5wYWdlc1RvU2hvdy5wdXNoKGkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblBhZ2luYXRpb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0ZpcnN0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlICE9PSAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlLS07XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvTmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA8IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlKys7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvTGFzdFBhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSAhPT0gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChwYWdlID49IDEgJiYgcGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMgJiYgcGFnZSAhPT0gdGhpcy5jdXJyZW50UGFnZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9TcGVjaWZpY1BhZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5nb1RvUGFnZU51bWJlciA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFnZU51bSA9IHBhcnNlSW50KHRoaXMuZ29Ub1BhZ2VOdW1iZXIudG9TdHJpbmcoKSwgMTApO1xyXG5cclxuICAgIGlmIChpc05hTihwYWdlTnVtKSB8fCBwYWdlTnVtIDwgMSkge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gMTtcclxuICAgIH0gZWxzZSBpZiAocGFnZU51bSA+IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmdvVG9QYWdlTnVtYmVyO1xyXG4gICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHNvcnRCeUNvbHVtbihjb2x1bW5JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoY29sdW1uSWQgPT09ICd2aWV3RGV0YWlscycgfHwgdGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzVXNlclNvcnQgPSB0cnVlO1xyXG5cclxuICAgIGlmIChjb2x1bW5JZCAhPT0gdGhpcy5zb3J0Q29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc29ydENvbHVtbiA9IGNvbHVtbklkO1xyXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBlcmZvcm1Tb3J0KGNvbHVtbklkKTtcclxuICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uQWZ0ZXJTb3J0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBlcmZvcm1Tb3J0KGNvbHVtbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbUxpc3Quc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCBjb21wYXJpc29uID0gdGhpcy5jb21wYXJlVmFsdWVzKGFbY29sdW1uSWRdLCBiW2NvbHVtbklkXSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24gPT09ICdhc2MnID8gY29tcGFyaXNvbiA6IC1jb21wYXJpc29uO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXBhcmVWYWx1ZXModjE6IGFueSwgdjI6IGFueSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBudW0xID0gcGFyc2VGbG9hdCh2MSk7XHJcbiAgICBjb25zdCBudW0yID0gcGFyc2VGbG9hdCh2Mik7XHJcblxyXG4gICAgaWYgKCFpc05hTihudW0xKSAmJiAhaXNOYU4obnVtMikpIHtcclxuICAgICAgcmV0dXJuIG51bTEgLSBudW0yO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2MSA8IHYyID8gLTEgOiB2MSA+IHYyID8gMSA6IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFnaW5hdGlvbkFmdGVyU29ydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRvdGFsUGFnZXMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYWdlc1RvU2hvdygpO1xyXG4gICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnRDb2x1bW4gPT09IGNvbHVtbklkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U29ydERpcmVjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnYXJyb3ctdXAnIDogJ2Fycm93LWRvd24nO1xyXG4gIH1cclxuXHJcbiAgb25FbnRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xyXG4gICAgXHJcbiAgICB0aGlzLml0ZW1MaXN0ID0gdGhpcy5maWx0ZXJJdGVtcyhzZWFyY2hUZXh0KTtcclxuICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uQWZ0ZXJTZWFyY2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVySXRlbXMoc2VhcmNoVGV4dDogc3RyaW5nKTogYW55W10ge1xyXG4gICAgaWYgKCFzZWFyY2hUZXh0KSB7XHJcbiAgICAgIHJldHVybiBbLi4udGhpcy5tYXN0ZXJMaXN0XTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsb3dlclNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMubWFzdGVyTGlzdC5maWx0ZXIoaXRlbSA9PiBcclxuICAgICAgdGhpcy50YWJsZUhlYWRMaXN0LnNvbWUoaGVhZGVyID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1baGVhZGVyXTtcclxuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IHNlYXJjaGFibGVTdHJpbmcgPSBTdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIHNlYXJjaGFibGVTdHJpbmcuaW5jbHVkZXMobG93ZXJTZWFyY2hUZXh0KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0UGFnaW5hdGlvbkFmdGVyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRXaWR0aEJ5SWQoY29sdW1uSWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICByZXR1cm4gJzEwJSc7IC8vIG9yICc4MHB4JyBmb3IgZml4ZWQgd2lkdGhcclxuICB9XHJcbiAgXHJcbiAgICBpZiAodGhpcy50YWJsZUhlYWRMaXN0Lmxlbmd0aCA9PT0gMykge1xyXG4gICAgICByZXR1cm4gaW5kZXggPT09IDEgPyAnNjAlJyA6ICcyMCUnO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCB3aWR0aCA9IDEwMCAvIHRoaXMudGFibGVIZWFkTGlzdC5sZW5ndGg7XHJcbiAgICByZXR1cm4gYCR7d2lkdGh9JWA7XHJcbiAgfVxyXG5cclxuICBwcmV2ZW50TmVnYXRpdmUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGludmFsaWRLZXlzID0gWyctJywgJysnLCAnZScsICdFJ107XHJcbiAgICBpZiAoaW52YWxpZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVOdW1iZXJJbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC53aGljaCB8fCBldmVudC5rZXlDb2RlO1xyXG4gICAgaWYgKGNoYXJDb2RlID4gMzEgJiYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGljayhkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuZ2V0Q2VsbEFsaWdubWVudCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAvLyBJZiBhbGwgY29sdW1ucyBzaG91bGQgYmUgcmlnaHQgYWxpZ25lZCBnbG9iYWxseVxyXG4gIC8vIGlmICh0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0FsbEFsaWduZWRUb1JpZ2h0KSB7XHJcbiAgLy8gICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgLy8gfVxyXG5cclxuICBpZiAodGhpcy5pc0NvbHVtbk51bWVyaWModmFsdWUpKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1yaWdodCc7XHJcbiAgfVxyXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1sZWZ0JztcclxuICB9XHJcbiAgIFxyXG5cclxuICBjb25zdCBzdHJWYWx1ZSA9IFN0cmluZyh2YWx1ZSkudHJpbSgpO1xyXG5cclxuICAvLyBEZXRlY3QgbnVtZXJpYywgZGF0ZSwgb3IgYWxwaGFudW1lcmljIGVuZGluZyB3aXRoIG51bWJlcnNcclxuICBjb25zdCBpc051bWJlciA9ICFpc05hTihOdW1iZXIoc3RyVmFsdWUpKTtcclxuICBjb25zdCBpc0RhdGUgPSAhaXNOYU4oRGF0ZS5wYXJzZShzdHJWYWx1ZSkpO1xyXG4gIGNvbnN0IGlzQWxwaGFOdW1lcmljV2l0aFRyYWlsaW5nTnVtYmVyID0gL15bQS1aYS16XSpcXGQrW0EtWmEtejAtOV0qJC8udGVzdChzdHJWYWx1ZSk7XHJcblxyXG4gIGlmIChpc051bWJlciB8fCBpc0RhdGUpIHtcclxuICAgIHJldHVybiAndGV4dGFsaWduLXJpZ2h0JztcclxuICB9XHJcblxyXG4gIHJldHVybiBpbmRleCA9PT0gdGhpcy50YWJsZUhlYWRMaXN0Lmxlbmd0aCAtIDFcclxuICAgID8gJ3RleHRhbGlnbi1yaWdodCBsYXN0LWNvbHVtbi1jb2xvcidcclxuICAgIDogJ3RleHRhbGlnbi1sZWZ0JztcclxufVxyXG5pc0NvbHVtbk51bWVyaWMoaGVhZGVyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdC5zb21lKHJvdyA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHJvd1toZWFkZXJdO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgY29uc3Qgc3RyID0gU3RyaW5nKHZhbHVlKS50cmltKCk7XHJcblxyXG4gICAgLy8gbnVtZXJpYyB2YWx1ZXMgbGlrZSAxLCAyMywgOTMuNTVcclxuICAgIGlmICghaXNOYU4oTnVtYmVyKHN0cikpKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG4gICAgc2hvdWxkU2hvd1BhZ2luYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMudGFibGVEYXRhPy5tZXRhRGF0YT8uaXNQYWdpbmF0aW9uSGlkZGVuO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgIDxsaWItaGVhZGVyLWFsdCBbdGl0bGVdPVwidGFibGVEYXRhLm1ldGFEYXRhLnRpdGxlXCIgKm5nSWY9XCIhaXNIZWFkZXJWaXNpYmxlXCI+PC9saWItaGVhZGVyLWFsdD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhdGFibGVEYXRhLm1ldGFEYXRhLmlzU2VhcmNoSGlkZGVuXCJcclxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1c3RvbS1pbnB1dCBtZWRpdW0tZm9udC1zaXplIHRleHRib3gtYXgtY29tbW9uXCIgaWQ9XCJleGFtcGxlSW5wdXRFbWFpbDFcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgcGxhY2Vob2xkZXI9XCIgIFNlYXJjaCAgXCIgYXJpYS1kZXNjcmliZWRieT1cImVtYWlsSGVscFwiIChrZXl1cCk9XCJvbkVudGVyKCRldmVudClcIiAvPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJwb3B1cC1ib2R5LWZvci1zY3JvbGxcIj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgYm9yZGVyXCI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIGFsaWduLW1pZGRsZSBtYi0wXCI+XHJcbiAgICAgICAgPHRoZWFkIGNsYXNzPVwidGFibGUtZGFya1wiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIiAgW25nQ2xhc3NdPVwiZ2V0Q2VsbEFsaWdubWVudChoZWFkZXIsaSlcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJDb2xvclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJUZXh0Q29sb3JcIiAoY2xpY2spPVwic29ydEJ5Q29sdW1uKGhlYWRlcilcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICghdGFibGVEYXRhLm1ldGFEYXRhLmlzRmlyc3RDb2x1bW5IZWFkZXJIaWRkZW4gJiYgaSA9PSAwKSB8fCBpID4gMFxyXG4gICAgICAgICAgICBcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAhdGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlblxyXG4gICAgICAgICAgICAgICAgPyAnY3Vyc29yLXBvaW50ZXInXHJcbiAgICAgICAgICAgICAgICA6ICdjdXJzb3ItZGVmYXVsdCdcclxuICAgICAgICAgICAgXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCFpc1VzZXJTb3J0IHx8IGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChoZWFkZXIpKSAmJlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgIFwiIGNsYXNzPVwic29ydC1pY29ucyBmYVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICFpc1VzZXJTb3J0XHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0J1xyXG4gICAgICAgICAgICAgICAgOiBzb3J0RGlyZWN0aW9uID09ICdhc2MnXHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0LWFzYydcclxuICAgICAgICAgICAgICAgIDogJ2ZhLXNvcnQtZGVzYydcclxuICAgICAgICAgICAgXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGN1cnJlbnRMaXN0XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICB0YWJsZURhdGE/LmhpZ2hsaWdodGVkVGV4dHM/LmluY2x1ZGVzKHN0b3JlW3RhYmxlSGVhZExpc3RbMF1dKVxyXG4gICAgICAgICAgICA/ICdmb250LXdlaWdodC1ib2xkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgICAgIDx0ZCAoY2xpY2spPVwiaGFuZGxlQ2xpY2soc3RvcmUpXCIgY2xhc3M9XCJ0YWJsZS1jZWxsXCIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRMaXN0OyBpbmRleCBhcyBpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBcclxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Q2VsbEFsaWdubWVudChzdG9yZVtoZWFkZXJdLCBpKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJcclxuICAgICAgICAgICAgdGFibGVEYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93biA/ICdwb2ludGVyJyA6ICdkZWZhdWx0J1xyXG4gICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgc3RvcmVbaGVhZGVyXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24tYmFyIG10LTBcIiAqbmdJZj1cInNob3VsZFNob3dQYWdpbmF0aW9uKClcIj5cclxuICAgICAgPHNwYW4+R28gVG88L3NwYW4+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJwYWdlLWlucHV0XCIgbWluPVwiMVwiIFttYXhdPVwidG90YWxQYWdlc1wiIChrZXl1cC5lbnRlcik9XCJnb1RvU3BlY2lmaWNQYWdlKClcIiBbKG5nTW9kZWwpXT1cImdvVG9QYWdlTnVtYmVyXCJcclxuICAgICAgICAoa2V5cHJlc3MpPVwicHJldmVudE5lZ2F0aXZlKCRldmVudClcIlxyXG4gICAgICA+XHJcblxyXG4gICAgICA8c3Bhbj4ge3sgKGN1cnJlbnRMaXN0Lmxlbmd0aCA+IDAgPyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIDEpIDogMCkgfX0gLVxyXG4gICAgICAgIHt7ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgY3VycmVudExpc3QubGVuZ3RoKSB9fSBvZlxyXG4gICAgICAgIHt7IHRvdGFsSXRlbXMgfCBudW1iZXIgfX08L3NwYW4+XHJcblxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJGaXJzdCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWRvdWJsZS1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiUHJldmlvdXMgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJOZXh0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJnb1RvTGFzdFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIkxhc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -4554,6 +4554,9 @@ class AxTableComponent {
4554
4554
  // if (this.tableData.metaData.isAllAlignedToRight) {
4555
4555
  // return 'textalign-right';
4556
4556
  // }
4557
+ if (this.isColumnNumeric(value)) {
4558
+ return 'textalign-right';
4559
+ }
4557
4560
  if (value === null || value === undefined) {
4558
4561
  return 'textalign-left';
4559
4562
  }
@@ -4569,6 +4572,18 @@ class AxTableComponent {
4569
4572
  ? 'textalign-right last-column-color'
4570
4573
  : 'textalign-left';
4571
4574
  }
4575
+ isColumnNumeric(header) {
4576
+ return this.currentList.some(row => {
4577
+ const value = row[header];
4578
+ if (value === null || value === undefined)
4579
+ return false;
4580
+ const str = String(value).trim();
4581
+ // numeric values like 1, 23, 93.55
4582
+ if (!isNaN(Number(str)))
4583
+ return true;
4584
+ return false;
4585
+ });
4586
+ }
4572
4587
  shouldShowPagination() {
4573
4588
  return !this.tableData?.metaData?.isPaginationHidden;
4574
4589
  }