@seniorsistemas/components-ai 1.0.0 → 1.0.1

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.
@@ -7,8 +7,8 @@ import { RadioButtonModule } from 'primeng/radiobutton';
7
7
  import { CheckboxModule } from 'primeng/checkbox';
8
8
  import { DividerModule } from 'primeng/divider';
9
9
  import * as XLSX from 'xlsx';
10
- import { jsPDF } from 'jspdf';
11
- import autoTable from 'jspdf-autotable';
10
+ import jsPDF from 'jspdf';
11
+ import 'jspdf-autotable';
12
12
  import { TranslatePipe } from '../../pipes/translate.pipe';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "../../services/translation.service";
@@ -156,7 +156,7 @@ export class ExportDialogComponent {
156
156
  });
157
157
  });
158
158
  // Tabela
159
- autoTable(doc, {
159
+ doc.autoTable({
160
160
  head: [headers],
161
161
  body: data,
162
162
  startY: 40,
@@ -208,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
208
208
  }], visibleChange: [{
209
209
  type: Output
210
210
  }] } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL2V4cG9ydC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy9leHBvcnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7QUF1QzNELE1BQU0sT0FBTyxxQkFBcUI7SUFvQlo7SUFuQlgsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixV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UzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsYUFBYTtxQkFDZDt1RkFLUSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFLSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5pbXBvcnQgeyBqc1BERiB9IGZyb20gJ2pzcGRmJztcbmltcG9ydCBhdXRvVGFibGUgZnJvbSAnanNwZGYtYXV0b3RhYmxlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5PcHRpb24ge1xuICBmaWVsZDogc3RyaW5nO1xuICBoZWFkZXI6IHN0cmluZztcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBFeHBvcnRGb3JtYXQge1xuICB2YWx1ZTogJ3hsc3gnIHwgJ3BkZic7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEV4cG9ydFNjb3BlIHtcbiAgdmFsdWU6ICdhbGwnIHwgJ3NlbGVjdGVkJztcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaWEtZXhwb3J0LWRpYWxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRGlhbG9nTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBSYWRpb0J1dHRvbk1vZHVsZSxcbiAgICBDaGVja2JveE1vZHVsZSxcbiAgICBEaXZpZGVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZVBpcGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZXhwb3J0LWRpYWxvZy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhbGxSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZFJlY29yZHM6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHN0YXR1c0xhYmVscz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIEBJbnB1dCgpIHRyYW5zbGF0aW9uUHJlZml4OiBzdHJpbmcgPSAnZGVzaWduLmNvbXBvbmVudHNfYWknO1xuICBASW5wdXQoKSBzZXQgYXZhaWxhYmxlQ29sdW1ucyhjb2x1bW5zOiBDb2x1bW5PcHRpb25bXSkge1xuICAgIGlmIChjb2x1bW5zICYmIGNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICB9XG4gIH1cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgZXhwb3J0Rm9ybWF0OiAneGxzeCcgfCAncGRmJyA9ICd4bHN4JztcbiAgZXhwb3J0U2NvcGU6ICdhbGwnIHwgJ3NlbGVjdGVkJyA9ICdhbGwnO1xuXG4gIGZvcm1hdHM6IEV4cG9ydEZvcm1hdFtdID0gW107XG4gIHNjb3BlczogRXhwb3J0U2NvcGVbXSA9IFtdO1xuICBjb2x1bW5zOiBDb2x1bW5PcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHtcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtYXRzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplU2NvcGVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtYXRzKCk7XG4gICAgdGhpcy5pbml0aWFsaXplU2NvcGVzKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtYXRzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybWF0cyA9IFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICd4bHN4JyxcbiAgICAgICAgbGFiZWw6ICdFeGNlbCcsXG4gICAgICAgIGljb246ICdwaS1maWxlLWV4Y2VsJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2V4Y2VsX2Rlc2NyaXB0aW9uJylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAncGRmJyxcbiAgICAgICAgbGFiZWw6ICdQREYnLFxuICAgICAgICBpY29uOiAncGktZmlsZS1wZGYnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfcGRmX2Rlc2NyaXB0aW9uJylcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU2NvcGVzKCk6IHZvaWQge1xuICAgIHRoaXMuc2NvcGVzID0gW1xuICAgICAge1xuICAgICAgICB2YWx1ZTogJ2FsbCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9hbGxfcmVjb3JkcycpLFxuICAgICAgICBpY29uOiAncGktbGlzdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9hbGxfcmVjb3Jkc19kZXNjcmlwdGlvbicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ3NlbGVjdGVkJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X3NlbGVjdGVkX3JlY29yZHMnKSxcbiAgICAgICAgaWNvbjogJ3BpLWNoZWNrLXNxdWFyZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9zZWxlY3RlZF9yZWNvcmRzX2Rlc2NyaXB0aW9uJylcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgZ2V0IHJlY29yZHNUb0V4cG9ydCgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0U2NvcGUgPT09ICdhbGwnID8gdGhpcy5hbGxSZWNvcmRzIDogdGhpcy5zZWxlY3RlZFJlY29yZHM7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRDb2x1bW5zQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLnNlbGVjdGVkKS5sZW5ndGg7XG4gIH1cblxuICBnZXQgY2FuRXhwb3J0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkQ29sdW1uc0NvdW50ID4gMCAmJiB0aGlzLnJlY29yZHNUb0V4cG9ydC5sZW5ndGggPiAwO1xuICB9XG5cbiAgb25IaWRlKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHNlbGVjdEFsbENvbHVtbnMoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zLmZvckVhY2goY29sID0+IGNvbC5zZWxlY3RlZCA9IHRydWUpO1xuICB9XG5cbiAgZGVzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiBjb2wuc2VsZWN0ZWQgPSBmYWxzZSk7XG4gIH1cblxuICBleHBvcnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhbkV4cG9ydCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuZXhwb3J0Rm9ybWF0ID09PSAneGxzeCcpIHtcbiAgICAgIHRoaXMuZXhwb3J0VG9FeGNlbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmV4cG9ydFRvUERGKCk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwb3J0VG9FeGNlbCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuc2VsZWN0ZWQpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJlY29yZHNUb0V4cG9ydC5tYXAocmVjb3JkID0+IHtcbiAgICAgIGNvbnN0IHJvdzogYW55ID0ge307XG4gICAgICBzZWxlY3RlZENvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICBpZiAoY29sLmZpZWxkID09PSAnc3RhdHVzJyAmJiByZWNvcmQuc3RhdHVzICYmIHRoaXMuc3RhdHVzTGFiZWxzKSB7XG4gICAgICAgICAgcm93W2NvbC5oZWFkZXJdID0gdGhpcy5zdGF0dXNMYWJlbHNbcmVjb3JkLnN0YXR1c107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcm93W2NvbC5oZWFkZXJdID0gcmVjb3JkW2NvbC5maWVsZF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJvdztcbiAgICB9KTtcblxuICAgIGNvbnN0IHdvcmtzaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChkYXRhKTtcbiAgICBjb25zdCB3b3JrYm9vayA9IFhMU1gudXRpbHMuYm9va19uZXcoKTtcbiAgICBYTFNYLnV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KHdvcmtib29rLCB3b3Jrc2hlZXQsIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2RhdGFfc2hlZXRfbmFtZScpKTtcblxuICAgIC8vIEFqdXN0YXIgbGFyZ3VyYSBkYXMgY29sdW5hc1xuICAgIGNvbnN0IG1heFdpZHRoID0gMzA7XG4gICAgY29uc3QgY29sV2lkdGhzID0gc2VsZWN0ZWRDb2x1bW5zLm1hcChjb2wgPT4gKHtcbiAgICAgIHdjaDogTWF0aC5taW4oY29sLmhlYWRlci5sZW5ndGggKyA1LCBtYXhXaWR0aClcbiAgICB9KSk7XG4gICAgd29ya3NoZWV0WychY29scyddID0gY29sV2lkdGhzO1xuXG4gICAgY29uc3QgZmlsZU5hbWUgPSBgZXhwb3J0LSR7bmV3IERhdGUoKS5nZXRUaW1lKCl9Lnhsc3hgO1xuICAgIFhMU1gud3JpdGVGaWxlKHdvcmtib29rLCBmaWxlTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGV4cG9ydFRvUERGKCk6IHZvaWQge1xuICAgIGNvbnN0IGRvYyA9IG5ldyBqc1BERigpO1xuICAgIGNvbnN0IHNlbGVjdGVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5zZWxlY3RlZCk7XG5cbiAgICAvLyBUw610dWxvXG4gICAgZG9jLnNldEZvbnRTaXplKDE4KTtcbiAgICBkb2Muc2V0VGV4dENvbG9yKDE4LCAxNjgsIDEzMyk7XG4gICAgZG9jLnRleHQodGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfcGRmX3RpdGxlJyksIDE0LCAyMCk7XG5cbiAgICAvLyBTdWJ0w610dWxvXG4gICAgZG9jLnNldEZvbnRTaXplKDEwKTtcbiAgICBkb2Muc2V0VGV4dENvbG9yKDEwMCk7XG4gICAgZG9jLnRleHQoYCR7dGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfZXhwb3J0ZWRfYXQnKX06ICR7bmV3IERhdGUoKS50b0xvY2FsZVN0cmluZygncHQtQlInKX1gLCAxNCwgMjgpO1xuICAgIGRvYy50ZXh0KGAke3RoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X3RvdGFsX3JlY29yZHMnKX06ICR7dGhpcy5yZWNvcmRzVG9FeHBvcnQubGVuZ3RofWAsIDE0LCAzNCk7XG5cbiAgICAvLyBQcmVwYXJhciBkYWRvc1xuICAgIGNvbnN0IGhlYWRlcnMgPSBzZWxlY3RlZENvbHVtbnMubWFwKGNvbCA9PiBjb2wuaGVhZGVyKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZWNvcmRzVG9FeHBvcnQubWFwKHJlY29yZCA9PiB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRDb2x1bW5zLm1hcChjb2wgPT4ge1xuICAgICAgICBpZiAoY29sLmZpZWxkID09PSAnc3RhdHVzJyAmJiByZWNvcmQuc3RhdHVzICYmIHRoaXMuc3RhdHVzTGFiZWxzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzTGFiZWxzW3JlY29yZC5zdGF0dXNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTdHJpbmcocmVjb3JkW2NvbC5maWVsZF0gfHwgJycpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBUYWJlbGFcbiAgICBhdXRvVGFibGUoZG9jLCB7XG4gICAgICBoZWFkOiBbaGVhZGVyc10sXG4gICAgICBib2R5OiBkYXRhLFxuICAgICAgc3RhcnRZOiA0MCxcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXG4gICAgICBoZWFkU3R5bGVzOiB7XG4gICAgICAgIGZpbGxDb2xvcjogWzE4LCAxNjgsIDEzM10sXG4gICAgICAgIHRleHRDb2xvcjogWzI1NSwgMjU1LCAyNTVdLFxuICAgICAgICBmb250U3R5bGU6ICdib2xkJyxcbiAgICAgICAgaGFsaWduOiAnY2VudGVyJ1xuICAgICAgfSxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBmb250U2l6ZTogOSxcbiAgICAgICAgY2VsbFBhZGRpbmc6IDNcbiAgICAgIH0sXG4gICAgICBhbHRlcm5hdGVSb3dTdHlsZXM6IHtcbiAgICAgICAgZmlsbENvbG9yOiBbMjQ4LCAyNTUsIDI1NF1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbGVOYW1lID0gYGV4cG9ydC0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfS5wZGZgO1xuICAgIGRvYy5zYXZlKGZpbGVOYW1lKTtcbiAgfVxufVxuIiwiPHAtZGlhbG9nXG4gIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG4gIChvbkhpZGUpPVwib25IaWRlKClcIlxuICBbbW9kYWxdPVwidHJ1ZVwiXG4gIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICBbcmVzaXphYmxlXT1cImZhbHNlXCJcbiAgW3N0eWxlXT1cInsgd2lkdGg6ICc3MDBweCcgfVwiXG4gIHN0eWxlQ2xhc3M9XCJleHBvcnQtZGlhbG9nXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taGVhZGVyXCI+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWRvd25sb2FkIGhlYWRlci1pY29uXCI+PC9pPlxuICAgICAgPHNwYW4+e3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9kYXRhX3RpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8ZGl2IGNsYXNzPVwiZXhwb3J0LWNvbnRlbnRcIj5cbiAgICA8IS0tIEZvcm1hdG8gZGUgRXhwb3J0YcOnw6NvIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJleHBvcnQtc2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZpbGVcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aDM+e3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9mb3JtYXRfdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1hdC1vcHRpb25zXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZm9ybWF0IG9mIGZvcm1hdHNcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybWF0LWNhcmRcIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJleHBvcnRGb3JtYXQgPT09IGZvcm1hdC52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4cG9ydEZvcm1hdCA9IGZvcm1hdC52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1yYWRpb1wiPlxuICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdC52YWx1ZVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZXhwb3J0Rm9ybWF0XCJcbiAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZm9ybWF0LnZhbHVlXCJcbiAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaWNvblwiIFtjbGFzcy5leGNlbF09XCJmb3JtYXQudmFsdWUgPT09ICd4bHN4J1wiIFtjbGFzcy5wZGZdPVwiZm9ybWF0LnZhbHVlID09PSAncGRmJ1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaVwiIFtuZ0NsYXNzXT1cImZvcm1hdC5pY29uXCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWluZm9cIj5cbiAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImZvcm1hdC52YWx1ZVwiIGNsYXNzPVwiY2FyZC1sYWJlbFwiPnt7IGZvcm1hdC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIj57eyBmb3JtYXQuZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVzY29wbyBkZSBFeHBvcnRhw6fDo28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImV4cG9ydC1zZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taWNvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZmlsdGVyXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGgzPnt7ICdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfc2NvcGVfdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNjb3BlLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBzY29wZSBvZiBzY29wZXNcIlxuICAgICAgICAgIGNsYXNzPVwic2NvcGUtY2FyZFwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImV4cG9ydFNjb3BlID09PSBzY29wZS52YWx1ZVwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInNjb3BlLnZhbHVlID09PSAnc2VsZWN0ZWQnICYmIHNlbGVjdGVkUmVjb3Jkcy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgIChjbGljayk9XCJzY29wZS52YWx1ZSA9PT0gJ3NlbGVjdGVkJyAmJiBzZWxlY3RlZFJlY29yZHMubGVuZ3RoID09PSAwID8gbnVsbCA6IGV4cG9ydFNjb3BlID0gc2NvcGUudmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtcmFkaW9cIj5cbiAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzY29wZS52YWx1ZVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZXhwb3J0U2NvcGVcIlxuICAgICAgICAgICAgICBbaW5wdXRJZF09XCJzY29wZS52YWx1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY29wZS52YWx1ZSA9PT0gJ3NlbGVjdGVkJyAmJiBzZWxlY3RlZFJlY29yZHMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaVwiIFtuZ0NsYXNzXT1cInNjb3BlLmljb25cIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaW5mb1wiPlxuICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwic2NvcGUudmFsdWVcIiBjbGFzcz1cImNhcmQtbGFiZWxcIj57eyBzY29wZS5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIj57eyBzY29wZS5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1jb3VudFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNpcmNsZS1maWxsXCI+PC9pPlxuICAgICAgICAgICAgICB7eyBzY29wZS52YWx1ZSA9PT0gJ2FsbCcgPyBhbGxSZWNvcmRzLmxlbmd0aCA6IHNlbGVjdGVkUmVjb3Jkcy5sZW5ndGggfX0ge3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9yZWNvcmRzX2NvdW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBTZWxlw6fDo28gZGUgQ29sdW5hcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZXhwb3J0LXNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pY29uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS10YWJsZVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxoMz57eyAnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2NvbHVtbnNfdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhY3Rpb24tbGlua1wiIChjbGljayk9XCJzZWxlY3RBbGxDb2x1bW5zKClcIj5cbiAgICAgICAgICAgIHt7ICdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfc2VsZWN0X2FsbF9jb2x1bW5zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+fDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFjdGlvbi1saW5rXCIgKGNsaWNrKT1cImRlc2VsZWN0QWxsQ29sdW1ucygpXCI+XG4gICAgICAgICAgICB7eyAnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2NsZWFyX3NlbGVjdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zLWdyaWRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiXG4gICAgICAgICAgY2xhc3M9XCJjb2x1bW4taXRlbVwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImNvbHVtbi5zZWxlY3RlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zZWxlY3RlZCA9ICFjb2x1bW4uc2VsZWN0ZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sdW1uLnNlbGVjdGVkXCJcbiAgICAgICAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaW5wdXRJZF09XCJjb2x1bW4uZmllbGRcIlxuICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29sdW1uLmZpZWxkXCIgY2xhc3M9XCJjb2x1bW4tbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGNvbHVtbi5oZWFkZXIgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnMtc3VtbWFyeVwiPlxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZENvbHVtbnNDb3VudCB9fSB7eyAnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2NvbHVtbnNfc3VtbWFyeScgfCB0cmFuc2xhdGUgfX0ge3sgY29sdW1ucy5sZW5ndGggfX0ge3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9jb2x1bW5zX3NlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgPHAtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmNhbmNlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgaWNvbj1cInBpIHBpLXRpbWVzXCJcbiAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcbiAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwib25IaWRlKClcIlxuICAgID48L3AtYnV0dG9uPlxuICAgIDxwLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cIidkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfYnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBpY29uPVwicGkgcGktZG93bmxvYWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5FeHBvcnRcIlxuICAgICAgKG9uQ2xpY2spPVwiZXhwb3J0KClcIlxuICAgID48L3AtYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLWRpYWxvZz5cbiJdfQ==
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtZGlhbG9nL2V4cG9ydC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0LWRpYWxvZy9leHBvcnQtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0FBdUMzRCxNQUFNLE9BQU8scUJBQXFCO0lBb0JaO0lBbkJYLE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsVUFBVSxHQUFVLEVBQUUsQ0FBQztJ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QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixhQUFhO3FCQUNkO3VGQUtRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQUtJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NoZWNrYm94JztcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpdmlkZXInO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uT3B0aW9uIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgRXhwb3J0Rm9ybWF0IHtcbiAgdmFsdWU6ICd4bHN4JyB8ICdwZGYnO1xuICBsYWJlbDogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBFeHBvcnRTY29wZSB7XG4gIHZhbHVlOiAnYWxsJyB8ICdzZWxlY3RlZCc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2lhLWV4cG9ydC1kaWFsb2cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgRGl2aWRlck1vZHVsZSxcbiAgICBUcmFuc2xhdGVQaXBlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBvcnQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2V4cG9ydC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWxsUmVjb3JkczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzdGF0dXNMYWJlbHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoKSB0cmFuc2xhdGlvblByZWZpeDogc3RyaW5nID0gJ2Rlc2lnbi5jb21wb25lbnRzX2FpJztcbiAgQElucHV0KCkgc2V0IGF2YWlsYWJsZUNvbHVtbnMoY29sdW1uczogQ29sdW1uT3B0aW9uW10pIHtcbiAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGV4cG9ydEZvcm1hdDogJ3hsc3gnIHwgJ3BkZicgPSAneGxzeCc7XG4gIGV4cG9ydFNjb3BlOiAnYWxsJyB8ICdzZWxlY3RlZCcgPSAnYWxsJztcblxuICBmb3JtYXRzOiBFeHBvcnRGb3JtYXRbXSA9IFtdO1xuICBzY29wZXM6IEV4cG9ydFNjb3BlW10gPSBbXTtcbiAgY29sdW1uczogQ29sdW1uT3B0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybWF0cygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVNjb3BlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybWF0cygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVNjb3BlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybWF0cygpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1hdHMgPSBbXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiAneGxzeCcsXG4gICAgICAgIGxhYmVsOiAnRXhjZWwnLFxuICAgICAgICBpY29uOiAncGktZmlsZS1leGNlbCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9leGNlbF9kZXNjcmlwdGlvbicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB2YWx1ZTogJ3BkZicsXG4gICAgICAgIGxhYmVsOiAnUERGJyxcbiAgICAgICAgaWNvbjogJ3BpLWZpbGUtcGRmJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X3BkZl9kZXNjcmlwdGlvbicpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVNjb3BlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNjb3BlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdhbGwnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfYWxsX3JlY29yZHMnKSxcbiAgICAgICAgaWNvbjogJ3BpLWxpc3QnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfYWxsX3JlY29yZHNfZGVzY3JpcHRpb24nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6ICdzZWxlY3RlZCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9zZWxlY3RlZF9yZWNvcmRzJyksXG4gICAgICAgIGljb246ICdwaS1jaGVjay1zcXVhcmUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfc2VsZWN0ZWRfcmVjb3Jkc19kZXNjcmlwdGlvbicpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGdldCByZWNvcmRzVG9FeHBvcnQoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLmV4cG9ydFNjb3BlID09PSAnYWxsJyA/IHRoaXMuYWxsUmVjb3JkcyA6IHRoaXMuc2VsZWN0ZWRSZWNvcmRzO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkQ29sdW1uc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5maWx0ZXIoY29sID0+IGNvbC5zZWxlY3RlZCkubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IGNhbkV4cG9ydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENvbHVtbnNDb3VudCA+IDAgJiYgdGhpcy5yZWNvcmRzVG9FeHBvcnQubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG9uSGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiBjb2wuc2VsZWN0ZWQgPSB0cnVlKTtcbiAgfVxuXG4gIGRlc2VsZWN0QWxsQ29sdW1ucygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4gY29sLnNlbGVjdGVkID0gZmFsc2UpO1xuICB9XG5cbiAgZXhwb3J0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5FeHBvcnQpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmV4cG9ydEZvcm1hdCA9PT0gJ3hsc3gnKSB7XG4gICAgICB0aGlzLmV4cG9ydFRvRXhjZWwoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBvcnRUb1BERigpO1xuICAgIH1cblxuICAgIHRoaXMub25IaWRlKCk7XG4gIH1cblxuICBwcml2YXRlIGV4cG9ydFRvRXhjZWwoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLnNlbGVjdGVkKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yZWNvcmRzVG9FeHBvcnQubWFwKHJlY29yZCA9PiB7XG4gICAgICBjb25zdCByb3c6IGFueSA9IHt9O1xuICAgICAgc2VsZWN0ZWRDb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgaWYgKGNvbC5maWVsZCA9PT0gJ3N0YXR1cycgJiYgcmVjb3JkLnN0YXR1cyAmJiB0aGlzLnN0YXR1c0xhYmVscykge1xuICAgICAgICAgIHJvd1tjb2wuaGVhZGVyXSA9IHRoaXMuc3RhdHVzTGFiZWxzW3JlY29yZC5zdGF0dXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJvd1tjb2wuaGVhZGVyXSA9IHJlY29yZFtjb2wuZmllbGRdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByb3c7XG4gICAgfSk7XG5cbiAgICBjb25zdCB3b3Jrc2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoZGF0YSk7XG4gICAgY29uc3Qgd29ya2Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3b3JrYm9vaywgd29ya3NoZWV0LCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9kYXRhX3NoZWV0X25hbWUnKSk7XG5cbiAgICAvLyBBanVzdGFyIGxhcmd1cmEgZGFzIGNvbHVuYXNcbiAgICBjb25zdCBtYXhXaWR0aCA9IDMwO1xuICAgIGNvbnN0IGNvbFdpZHRocyA9IHNlbGVjdGVkQ29sdW1ucy5tYXAoY29sID0+ICh7XG4gICAgICB3Y2g6IE1hdGgubWluKGNvbC5oZWFkZXIubGVuZ3RoICsgNSwgbWF4V2lkdGgpXG4gICAgfSkpO1xuICAgIHdvcmtzaGVldFsnIWNvbHMnXSA9IGNvbFdpZHRocztcblxuICAgIGNvbnN0IGZpbGVOYW1lID0gYGV4cG9ydC0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfS54bHN4YDtcbiAgICBYTFNYLndyaXRlRmlsZSh3b3JrYm9vaywgZmlsZU5hbWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHBvcnRUb1BERigpOiB2b2lkIHtcbiAgICBjb25zdCBkb2MgPSBuZXcganNQREYoKTtcbiAgICBjb25zdCBzZWxlY3RlZENvbHVtbnMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuc2VsZWN0ZWQpO1xuXG4gICAgLy8gVMOtdHVsb1xuICAgIGRvYy5zZXRGb250U2l6ZSgxOCk7XG4gICAgZG9jLnNldFRleHRDb2xvcigxOCwgMTY4LCAxMzMpO1xuICAgIGRvYy50ZXh0KHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X3BkZl90aXRsZScpLCAxNCwgMjApO1xuXG4gICAgLy8gU3VidMOtdHVsb1xuICAgIGRvYy5zZXRGb250U2l6ZSgxMCk7XG4gICAgZG9jLnNldFRleHRDb2xvcigxMDApO1xuICAgIGRvYy50ZXh0KGAke3RoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2V4cG9ydGVkX2F0Jyl9OiAke25ldyBEYXRlKCkudG9Mb2NhbGVTdHJpbmcoJ3B0LUJSJyl9YCwgMTQsIDI4KTtcbiAgICBkb2MudGV4dChgJHt0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF90b3RhbF9yZWNvcmRzJyl9OiAke3RoaXMucmVjb3Jkc1RvRXhwb3J0Lmxlbmd0aH1gLCAxNCwgMzQpO1xuXG4gICAgLy8gUHJlcGFyYXIgZGFkb3NcbiAgICBjb25zdCBoZWFkZXJzID0gc2VsZWN0ZWRDb2x1bW5zLm1hcChjb2wgPT4gY29sLmhlYWRlcik7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmVjb3Jkc1RvRXhwb3J0Lm1hcChyZWNvcmQgPT4ge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkQ29sdW1ucy5tYXAoY29sID0+IHtcbiAgICAgICAgaWYgKGNvbC5maWVsZCA9PT0gJ3N0YXR1cycgJiYgcmVjb3JkLnN0YXR1cyAmJiB0aGlzLnN0YXR1c0xhYmVscykge1xuICAgICAgICAgIHJldHVybiB0aGlzLnN0YXR1c0xhYmVsc1tyZWNvcmQuc3RhdHVzXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RyaW5nKHJlY29yZFtjb2wuZmllbGRdIHx8ICcnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gVGFiZWxhXG4gICAgKGRvYyBhcyBhbnkpLmF1dG9UYWJsZSh7XG4gICAgICBoZWFkOiBbaGVhZGVyc10sXG4gICAgICBib2R5OiBkYXRhLFxuICAgICAgc3RhcnRZOiA0MCxcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXG4gICAgICBoZWFkU3R5bGVzOiB7XG4gICAgICAgIGZpbGxDb2xvcjogWzE4LCAxNjgsIDEzM10sXG4gICAgICAgIHRleHRDb2xvcjogWzI1NSwgMjU1LCAyNTVdLFxuICAgICAgICBmb250U3R5bGU6ICdib2xkJyxcbiAgICAgICAgaGFsaWduOiAnY2VudGVyJ1xuICAgICAgfSxcbiAgICAgIHN0eWxlczoge1xuICAgICAgICBmb250U2l6ZTogOSxcbiAgICAgICAgY2VsbFBhZGRpbmc6IDNcbiAgICAgIH0sXG4gICAgICBhbHRlcm5hdGVSb3dTdHlsZXM6IHtcbiAgICAgICAgZmlsbENvbG9yOiBbMjQ4LCAyNTUsIDI1NF1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbGVOYW1lID0gYGV4cG9ydC0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfS5wZGZgO1xuICAgIGRvYy5zYXZlKGZpbGVOYW1lKTtcbiAgfVxufVxuIiwiPHAtZGlhbG9nXG4gIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG4gIChvbkhpZGUpPVwib25IaWRlKClcIlxuICBbbW9kYWxdPVwidHJ1ZVwiXG4gIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICBbcmVzaXphYmxlXT1cImZhbHNlXCJcbiAgW3N0eWxlXT1cInsgd2lkdGg6ICc3MDBweCcgfVwiXG4gIHN0eWxlQ2xhc3M9XCJleHBvcnQtZGlhbG9nXCJcbj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taGVhZGVyXCI+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWRvd25sb2FkIGhlYWRlci1pY29uXCI+PC9pPlxuICAgICAgPHNwYW4+e3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9kYXRhX3RpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8ZGl2IGNsYXNzPVwiZXhwb3J0LWNvbnRlbnRcIj5cbiAgICA8IS0tIEZvcm1hdG8gZGUgRXhwb3J0YcOnw6NvIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJleHBvcnQtc2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZpbGVcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aDM+e3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9mb3JtYXRfdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm1hdC1vcHRpb25zXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZm9ybWF0IG9mIGZvcm1hdHNcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybWF0LWNhcmRcIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJleHBvcnRGb3JtYXQgPT09IGZvcm1hdC52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImV4cG9ydEZvcm1hdCA9IGZvcm1hdC52YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1yYWRpb1wiPlxuICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdC52YWx1ZVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZXhwb3J0Rm9ybWF0XCJcbiAgICAgICAgICAgICAgW2lucHV0SWRdPVwiZm9ybWF0LnZhbHVlXCJcbiAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaWNvblwiIFtjbGFzcy5leGNlbF09XCJmb3JtYXQudmFsdWUgPT09ICd4bHN4J1wiIFtjbGFzcy5wZGZdPVwiZm9ybWF0LnZhbHVlID09PSAncGRmJ1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaVwiIFtuZ0NsYXNzXT1cImZvcm1hdC5pY29uXCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWluZm9cIj5cbiAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImZvcm1hdC52YWx1ZVwiIGNsYXNzPVwiY2FyZC1sYWJlbFwiPnt7IGZvcm1hdC5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIj57eyBmb3JtYXQuZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVzY29wbyBkZSBFeHBvcnRhw6fDo28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImV4cG9ydC1zZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taWNvblwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZmlsdGVyXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGgzPnt7ICdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfc2NvcGVfdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNjb3BlLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBzY29wZSBvZiBzY29wZXNcIlxuICAgICAgICAgIGNsYXNzPVwic2NvcGUtY2FyZFwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImV4cG9ydFNjb3BlID09PSBzY29wZS52YWx1ZVwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInNjb3BlLnZhbHVlID09PSAnc2VsZWN0ZWQnICYmIHNlbGVjdGVkUmVjb3Jkcy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgIChjbGljayk9XCJzY29wZS52YWx1ZSA9PT0gJ3NlbGVjdGVkJyAmJiBzZWxlY3RlZFJlY29yZHMubGVuZ3RoID09PSAwID8gbnVsbCA6IGV4cG9ydFNjb3BlID0gc2NvcGUudmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtcmFkaW9cIj5cbiAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzY29wZS52YWx1ZVwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZXhwb3J0U2NvcGVcIlxuICAgICAgICAgICAgICBbaW5wdXRJZF09XCJzY29wZS52YWx1ZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY29wZS52YWx1ZSA9PT0gJ3NlbGVjdGVkJyAmJiBzZWxlY3RlZFJlY29yZHMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaVwiIFtuZ0NsYXNzXT1cInNjb3BlLmljb25cIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaW5mb1wiPlxuICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwic2NvcGUudmFsdWVcIiBjbGFzcz1cImNhcmQtbGFiZWxcIj57eyBzY29wZS5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIj57eyBzY29wZS5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1jb3VudFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNpcmNsZS1maWxsXCI+PC9pPlxuICAgICAgICAgICAgICB7eyBzY29wZS52YWx1ZSA9PT0gJ2FsbCcgPyBhbGxSZWNvcmRzLmxlbmd0aCA6IHNlbGVjdGVkUmVjb3Jkcy5sZW5ndGggfX0ge3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9yZWNvcmRzX2NvdW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBTZWxlw6fDo28gZGUgQ29sdW5hcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZXhwb3J0LXNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pY29uXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS10YWJsZVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxoMz57eyAnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2NvbHVtbnNfdGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhY3Rpb24tbGlua1wiIChjbGljayk9XCJzZWxlY3RBbGxDb2x1bW5zKClcIj5cbiAgICAgICAgICAgIHt7ICdkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfc2VsZWN0X2FsbF9jb2x1bW5zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCI+fDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImFjdGlvbi1saW5rXCIgKGNsaWNrKT1cImRlc2VsZWN0QWxsQ29sdW1ucygpXCI+XG4gICAgICAgICAgICB7eyAnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2NsZWFyX3NlbGVjdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zLWdyaWRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiXG4gICAgICAgICAgY2xhc3M9XCJjb2x1bW4taXRlbVwiXG4gICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImNvbHVtbi5zZWxlY3RlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cImNvbHVtbi5zZWxlY3RlZCA9ICFjb2x1bW4uc2VsZWN0ZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sdW1uLnNlbGVjdGVkXCJcbiAgICAgICAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaW5wdXRJZF09XCJjb2x1bW4uZmllbGRcIlxuICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29sdW1uLmZpZWxkXCIgY2xhc3M9XCJjb2x1bW4tbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGNvbHVtbi5oZWFkZXIgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnMtc3VtbWFyeVwiPlxuICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZENvbHVtbnNDb3VudCB9fSB7eyAnZGVzaWduLmNvbXBvbmVudHNfYWkuZXhwb3J0X2NvbHVtbnNfc3VtbWFyeScgfCB0cmFuc2xhdGUgfX0ge3sgY29sdW1ucy5sZW5ndGggfX0ge3sgJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmV4cG9ydF9jb2x1bW5zX3NlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XG4gICAgPHAtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmNhbmNlbCcgfCB0cmFuc2xhdGVcIlxuICAgICAgaWNvbj1cInBpIHBpLXRpbWVzXCJcbiAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcbiAgICAgIFt0ZXh0XT1cInRydWVcIlxuICAgICAgKG9uQ2xpY2spPVwib25IaWRlKClcIlxuICAgID48L3AtYnV0dG9uPlxuICAgIDxwLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cIidkZXNpZ24uY29tcG9uZW50c19haS5leHBvcnRfYnV0dG9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBpY29uPVwicGkgcGktZG93bmxvYWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5FeHBvcnRcIlxuICAgICAgKG9uQ2xpY2spPVwiZXhwb3J0KClcIlxuICAgID48L3AtYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLWRpYWxvZz5cbiJdfQ==
@@ -1,4 +1,7 @@
1
1
  {
2
+ "design.components_ai.error": "Oops, something went wrong",
3
+ "design.components_ai.server_error": "Server Error",
4
+ "design.components_ai.server_error_message": "A server error occurred. Please try again later.",
2
5
  "design.components_ai.bulk_delete_title": "Bulk Delete",
3
6
  "design.components_ai.bulk_delete_warning": "You are about to delete <strong>{{count}}</strong> record(s).",
4
7
  "design.components_ai.bulk_delete_description": "This action cannot be undone. Records will be deleted one by one.",
@@ -41,7 +44,6 @@
41
44
  "design.components_ai.close": "Close",
42
45
  "design.components_ai.filter_search_placeholder": "Search by {{label}}",
43
46
  "design.components_ai.filter_select_placeholder": "Select {{label}}",
44
- "design.components_ai.error": "Error",
45
47
  "design.components_ai.success": "Success",
46
48
  "design.components_ai.load_error": "Error loading {{entityType}}",
47
49
  "design.components_ai.confirm_delete": "Confirm Deletion",
@@ -1,4 +1,7 @@
1
1
  {
2
+ "design.components_ai.error": "Ups, algo salió mal",
3
+ "design.components_ai.server_error": "Error del Servidor",
4
+ "design.components_ai.server_error_message": "Ocurrió un error en el servidor. Inténtelo de nuevo más tarde.",
2
5
  "design.components_ai.bulk_delete_title": "Eliminación Masiva",
3
6
  "design.components_ai.bulk_delete_warning": "Está a punto de eliminar <strong>{{count}}</strong> registro(s).",
4
7
  "design.components_ai.bulk_delete_description": "Esta acción no se puede deshacer. Los registros se eliminarán uno por uno.",
@@ -41,7 +44,6 @@
41
44
  "design.components_ai.close": "Cerrar",
42
45
  "design.components_ai.filter_search_placeholder": "Buscar por {{label}}",
43
46
  "design.components_ai.filter_select_placeholder": "Seleccione {{label}}",
44
- "design.components_ai.error": "Error",
45
47
  "design.components_ai.success": "Éxito",
46
48
  "design.components_ai.load_error": "Error al cargar {{entityType}}",
47
49
  "design.components_ai.confirm_delete": "Confirmar Eliminación",
@@ -1,4 +1,7 @@
1
1
  {
2
+ "design.components_ai.error": "Ops, algo deu errado",
3
+ "design.components_ai.server_error": "Erro no Servidor",
4
+ "design.components_ai.server_error_message": "Ocorreu um erro no servidor. Tente novamente mais tarde.",
2
5
  "design.components_ai.bulk_delete_title": "Exclusão em Massa",
3
6
  "design.components_ai.bulk_delete_warning": "Você está prestes a excluir <strong>{{count}}</strong> registro(s).",
4
7
  "design.components_ai.bulk_delete_description": "Esta ação não pode ser desfeita. Os registros serão excluídos um por vez.",
@@ -41,7 +44,6 @@
41
44
  "design.components_ai.close": "Fechar",
42
45
  "design.components_ai.filter_search_placeholder": "Pesquisar por {{label}}",
43
46
  "design.components_ai.filter_select_placeholder": "Selecione {{label}}",
44
- "design.components_ai.error": "Erro",
45
47
  "design.components_ai.success": "Sucesso",
46
48
  "design.components_ai.load_error": "Erro ao carregar {{entityType}}",
47
49
  "design.components_ai.confirm_delete": "Confirmar Exclusão",
@@ -55,7 +55,7 @@ export const apiInterceptor = (req, next) => {
55
55
  const errorMessage = extractErrorMessage(error);
56
56
  messageService.add({
57
57
  severity: 'error',
58
- summary: translationService.translate('common.error') || 'Erro',
58
+ summary: translationService.translate('design.components_ai.error') || 'Erro',
59
59
  detail: errorMessage,
60
60
  life: 5000
61
61
  });
@@ -64,11 +64,10 @@ export const apiInterceptor = (req, next) => {
64
64
  // Handle 5xx errors
65
65
  else if (error.status >= 500) {
66
66
  if (messageService && translationService) {
67
- const errorMessage = extractErrorMessage(error);
68
67
  messageService.add({
69
68
  severity: 'error',
70
- summary: translationService.translate('common.server_error') || 'Erro no Servidor',
71
- detail: errorMessage || translationService.translate('common.server_error_message') || 'Ocorreu um erro no servidor. Tente novamente mais tarde.',
69
+ summary: translationService.translate('design.components_ai.server_error') || 'Erro no Servidor',
70
+ detail: translationService.translate('design.components_ai.server_error_message') || 'Ocorreu um erro no servidor. Tente novamente mais tarde.',
72
71
  life: 5000
73
72
  });
74
73
  }
@@ -120,4 +119,4 @@ function extractErrorMessage(error) {
120
119
  // Fallback to error.message or statusText
121
120
  return error.message || error.statusText || 'Erro desconhecido';
122
121
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBc0IsQ0FBQyxHQUF5QixFQUFFLElBQW1CLEVBQUUsRUFBRTtJQUNsRyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWxDLGlEQUFpRDtJQUNqRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUU1QyxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFFdEIsMkNBQTJDO0lBQzNDLElBQUksV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pELFdBQVcsR0FBRyxXQUFX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QUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdGLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxPQUFPLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yRm4sIEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlckZuLCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgYXBpSW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pID0+IHtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIFxuICAvLyBHZXQgdGhlIGFjY2VzcyB0b2tlbiwgdG9rZW4gdHlwZSwgYW5kIGJhc2UgVVJMXG4gIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgY29uc3QgdG9rZW5UeXBlID0gYXV0aFNlcnZpY2UuZ2V0VG9rZW5UeXBlKCk7XG4gIGNvbnN0IGJhc2VVcmwgPSBhdXRoU2VydmljZS5nZXRBcGlCYXNlVXJsKCk7XG4gIFxuICBsZXQgbW9kaWZpZWRSZXEgPSByZXE7XG5cbiAgLy8gQWRkIEF1dGhvcml6YXRpb24gaGVhZGVyIGlmIHRva2VuIGV4aXN0c1xuICBpZiAoYWNjZXNzVG9rZW4gJiYgdG9rZW5UeXBlKSB7XG4gICAgY29uc3QgYXV0aEhlYWRlciA9IGAke3Rva2VuVHlwZX0gJHthY2Nlc3NUb2tlbn1gO1xuICAgIG1vZGlmaWVkUmVxID0gbW9kaWZpZWRSZXEuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBhdXRoSGVhZGVyXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBQcmVwZW5kIGJhc2UgVVJMIGlmIGl0IGV4aXN0cyBhbmQgdGhlIHJlcXVlc3QgVVJMIGlzIHJlbGF0aXZlXG4gIGlmIChiYXNlVXJsICYmICFpc0Fic29sdXRlVXJsKG1vZGlmaWVkUmVxLnVybCkpIHtcbiAgICBjb25zdCBmdWxsVXJsID0gY29tYmluZVVybHMoYmFzZVVybCwgbW9kaWZpZWRSZXEudXJsKTtcbiAgICBtb2RpZmllZFJlcSA9IG1vZGlmaWVkUmVxLmNsb25lKHtcbiAgICAgIHVybDogZnVsbFVybFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG5leHQobW9kaWZpZWRSZXEpLnBpcGUoXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAvLyBUcnkgdG8gZ2V0IE1lc3NhZ2VTZXJ2aWNlIGFuZCBUcmFuc2xhdGlvblNlcnZpY2VcbiAgICAgIGxldCBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UgfCBudWxsID0gbnVsbDtcbiAgICAgIGxldCB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSB8IG51bGwgPSBudWxsO1xuICAgICAgXG4gICAgICB0cnkge1xuICAgICAgICBtZXNzYWdlU2VydmljZSA9IGluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSk7XG4gICAgICAgIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ01lc3NhZ2VTZXJ2aWNlIG9yIFRyYW5zbGF0aW9uU2VydmljZSBub3QgYXZhaWxhYmxlJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSA0MDEgVW5hdXRob3JpemVkIGVycm9yc1xuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qgcm91dGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFsnL2ZvcmJpZGRlbiddKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybignUm91dGVyIG5vdCBhdmFpbGFibGUgZm9yIG5hdmlnYXRpb24gb24gNDAxIGVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEhhbmRsZSA0eHggZXJyb3JzIChleGNlcHQgNDAxKVxuICAgICAgZWxzZSBpZiAoZXJyb3Iuc3RhdHVzID49IDQwMCAmJiBlcnJvci5zdGF0dXMgPCA1MDApIHtcbiAgICAgICAgaWYgKG1lc3NhZ2VTZXJ2aWNlICYmIHRyYW5zbGF0aW9uU2VydmljZSkge1xuICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGV4dHJhY3RFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgIG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2NvbW1vbi5lcnJvcicpIHx8ICdFcnJvJyxcbiAgICAgICAgICAgIGRldGFpbDogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgbGlmZTogNTAwMFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBIYW5kbGUgNXh4IGVycm9yc1xuICAgICAgZWxzZSBpZiAoZXJyb3Iuc3RhdHVzID49IDUwMCkge1xuICAgICAgICBpZiAobWVzc2FnZVNlcnZpY2UgJiYgdHJhbnNsYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXh0cmFjdEVycm9yTWVzc2FnZShlcnJvcik7XG4gICAgICAgICAgbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZSgnY29tbW9uLnNlcnZlcl9lcnJvcicpIHx8ICdFcnJvIG5vIFNlcnZpZG9yJyxcbiAgICAgICAgICAgIGRldGFpbDogZXJyb3JNZXNzYWdlIHx8IHRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2NvbW1vbi5zZXJ2ZXJfZXJyb3JfbWVzc2FnZScpIHx8ICdPY29ycmV1IHVtIGVycm8gbm8gc2Vydmlkb3IuIFRlbnRlIG5vdmFtZW50ZSBtYWlzIHRhcmRlLicsXG4gICAgICAgICAgICBsaWZlOiA1MDAwXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gUmUtdGhyb3cgdGhlIGVycm9yIHNvIG90aGVyIGVycm9yIGhhbmRsZXJzIGNhbiBwcm9jZXNzIGl0XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgfSlcbiAgKTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgVVJMIGlzIGFic29sdXRlXG4gKi9cbmZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1cmwpO1xufVxuXG4vKipcbiAqIENvbWJpbmUgYmFzZSBVUkwgd2l0aCByZWxhdGl2ZSBVUkxcbiAqL1xuZnVuY3Rpb24gY29tYmluZVVybHMoYmFzZVVybDogc3RyaW5nLCByZWxhdGl2ZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGZyb20gYmFzZSBVUkxcbiAgY29uc3QgY2xlYW5CYXNlVXJsID0gYmFzZVVybC5yZXBsYWNlKC9cXC8kLywgJycpO1xuICBcbiAgLy8gUmVtb3ZlIGxlYWRpbmcgc2xhc2ggZnJvbSByZWxhdGl2ZSBVUkxcbiAgY29uc3QgY2xlYW5SZWxhdGl2ZVVybCA9IHJlbGF0aXZlVXJsLnJlcGxhY2UoL15cXC8vLCAnJyk7XG4gIFxuICByZXR1cm4gYCR7Y2xlYW5CYXNlVXJsfS8ke2NsZWFuUmVsYXRpdmVVcmx9YDtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IGVycm9yIG1lc3NhZ2UgZnJvbSBIdHRwRXJyb3JSZXNwb25zZVxuICogU3VwcG9ydHMgbXVsdGlwbGUgZXJyb3IgcmVzcG9uc2UgZm9ybWF0c1xuICovXG5mdW5jdGlvbiBleHRyYWN0RXJyb3JNZXNzYWdlKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IHN0cmluZyB7XG4gIC8vIENoZWNrIGlmIGVycm9yLmVycm9yIGV4aXN0cyBhbmQgaGFzIGEgbWVzc2FnZSBwcm9wZXJ0eVxuICBpZiAoZXJyb3IuZXJyb3IgJiYgdHlwZW9mIGVycm9yLmVycm9yID09PSAnb2JqZWN0Jykge1xuICAgIC8vIEZvcm1hdDogeyBtZXNzYWdlOiBcIi4uLlwiLCBlcnJvckNvZGU6IFwiLi4uXCIsIHJlYXNvbjogXCIuLi5cIiwgZG9tYWluOiBcIi4uLlwiLCBzZXJ2aWNlOiBcIi4uLlwiIH1cbiAgICBpZiAoZXJyb3IuZXJyb3IubWVzc2FnZSkge1xuICAgICAgcmV0dXJuIGVycm9yLmVycm9yLm1lc3NhZ2U7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvcm1hdDogeyBlcnJvcjogXCIuLi5cIiwgZXJyb3JfZGVzY3JpcHRpb246IFwiLi4uXCIgfVxuICAgIGlmIChlcnJvci5lcnJvci5lcnJvcl9kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIGVycm9yLmVycm9yLmVycm9yX2Rlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb3JtYXQ6IHsgZGV0YWlsOiBcIi4uLlwiIH1cbiAgICBpZiAoZXJyb3IuZXJyb3IuZGV0YWlsKSB7XG4gICAgICByZXR1cm4gZXJyb3IuZXJyb3IuZGV0YWlsO1xuICAgIH1cbiAgICBcbiAgICAvLyBGb3JtYXQ6IHsgZXJyb3JzOiBbLi4uXSB9XG4gICAgaWYgKGVycm9yLmVycm9yLmVycm9ycyAmJiBBcnJheS5pc0FycmF5KGVycm9yLmVycm9yLmVycm9ycykgJiYgZXJyb3IuZXJyb3IuZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBlcnJvci5lcnJvci5lcnJvcnMubWFwKChlOiBhbnkpID0+IGUubWVzc2FnZSB8fCBlKS5qb2luKCcsICcpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gRmFsbGJhY2sgdG8gZXJyb3IubWVzc2FnZSBvciBzdGF0dXNUZXh0XG4gIHJldHVybiBlcnJvci5tZXNzYWdlIHx8IGVycm9yLnN0YXR1c1RleHQgfHwgJ0Vycm8gZGVzY29uaGVjaWRvJztcbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBc0IsQ0FBQyxHQUF5QixFQUFFLElBQW1CLEVBQUUsRUFBRTtJQUNsRyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWxDLGlEQUFpRDtJQUNqRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUU1QyxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFFdEIsMkNBQTJDO0lBQzNDLElBQUksV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLEdBQUcsU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2pELFdBQVcsR0FBRyxXQUFX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LENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdGLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxPQUFPLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxtQkFBbUIsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yRm4sIEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlckZuLCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgYXBpSW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pID0+IHtcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIFxuICAvLyBHZXQgdGhlIGFjY2VzcyB0b2tlbiwgdG9rZW4gdHlwZSwgYW5kIGJhc2UgVVJMXG4gIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgY29uc3QgdG9rZW5UeXBlID0gYXV0aFNlcnZpY2UuZ2V0VG9rZW5UeXBlKCk7XG4gIGNvbnN0IGJhc2VVcmwgPSBhdXRoU2VydmljZS5nZXRBcGlCYXNlVXJsKCk7XG4gIFxuICBsZXQgbW9kaWZpZWRSZXEgPSByZXE7XG5cbiAgLy8gQWRkIEF1dGhvcml6YXRpb24gaGVhZGVyIGlmIHRva2VuIGV4aXN0c1xuICBpZiAoYWNjZXNzVG9rZW4gJiYgdG9rZW5UeXBlKSB7XG4gICAgY29uc3QgYXV0aEhlYWRlciA9IGAke3Rva2VuVHlwZX0gJHthY2Nlc3NUb2tlbn1gO1xuICAgIG1vZGlmaWVkUmVxID0gbW9kaWZpZWRSZXEuY2xvbmUoe1xuICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBhdXRoSGVhZGVyXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBQcmVwZW5kIGJhc2UgVVJMIGlmIGl0IGV4aXN0cyBhbmQgdGhlIHJlcXVlc3QgVVJMIGlzIHJlbGF0aXZlXG4gIGlmIChiYXNlVXJsICYmICFpc0Fic29sdXRlVXJsKG1vZGlmaWVkUmVxLnVybCkpIHtcbiAgICBjb25zdCBmdWxsVXJsID0gY29tYmluZVVybHMoYmFzZVVybCwgbW9kaWZpZWRSZXEudXJsKTtcbiAgICBtb2RpZmllZFJlcSA9IG1vZGlmaWVkUmVxLmNsb25lKHtcbiAgICAgIHVybDogZnVsbFVybFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG5leHQobW9kaWZpZWRSZXEpLnBpcGUoXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAvLyBUcnkgdG8gZ2V0IE1lc3NhZ2VTZXJ2aWNlIGFuZCBUcmFuc2xhdGlvblNlcnZpY2VcbiAgICAgIGxldCBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UgfCBudWxsID0gbnVsbDtcbiAgICAgIGxldCB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSB8IG51bGwgPSBudWxsO1xuICAgICAgXG4gICAgICB0cnkge1xuICAgICAgICBtZXNzYWdlU2VydmljZSA9IGluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSk7XG4gICAgICAgIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ01lc3NhZ2VTZXJ2aWNlIG9yIFRyYW5zbGF0aW9uU2VydmljZSBub3QgYXZhaWxhYmxlJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSA0MDEgVW5hdXRob3JpemVkIGVycm9yc1xuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3Qgcm91dGVyID0gaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFsnL2ZvcmJpZGRlbiddKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybignUm91dGVyIG5vdCBhdmFpbGFibGUgZm9yIG5hdmlnYXRpb24gb24gNDAxIGVycm9yJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEhhbmRsZSA0eHggZXJyb3JzIChleGNlcHQgNDAxKVxuICAgICAgZWxzZSBpZiAoZXJyb3Iuc3RhdHVzID49IDQwMCAmJiBlcnJvci5zdGF0dXMgPCA1MDApIHtcbiAgICAgICAgaWYgKG1lc3NhZ2VTZXJ2aWNlICYmIHRyYW5zbGF0aW9uU2VydmljZSkge1xuICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGV4dHJhY3RFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgIG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLmVycm9yJykgfHwgJ0Vycm8nLFxuICAgICAgICAgICAgZGV0YWlsOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBsaWZlOiA1MDAwXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEhhbmRsZSA1eHggZXJyb3JzXG4gICAgICBlbHNlIGlmIChlcnJvci5zdGF0dXMgPj0gNTAwKSB7XG4gICAgICAgIGlmIChtZXNzYWdlU2VydmljZSAmJiB0cmFuc2xhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICBtZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdkZXNpZ24uY29tcG9uZW50c19haS5zZXJ2ZXJfZXJyb3InKSB8fCAnRXJybyBubyBTZXJ2aWRvcicsXG4gICAgICAgICAgICBkZXRhaWw6IHRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Rlc2lnbi5jb21wb25lbnRzX2FpLnNlcnZlcl9lcnJvcl9tZXNzYWdlJykgfHwgJ09jb3JyZXUgdW0gZXJybyBubyBzZXJ2aWRvci4gVGVudGUgbm92YW1lbnRlIG1haXMgdGFyZGUuJyxcbiAgICAgICAgICAgIGxpZmU6IDUwMDBcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBSZS10aHJvdyB0aGUgZXJyb3Igc28gb3RoZXIgZXJyb3IgaGFuZGxlcnMgY2FuIHByb2Nlc3MgaXRcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICB9KVxuICApO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBVUkwgaXMgYWJzb2x1dGVcbiAqL1xuZnVuY3Rpb24gaXNBYnNvbHV0ZVVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL15odHRwcz86XFwvXFwvLy50ZXN0KHVybCk7XG59XG5cbi8qKlxuICogQ29tYmluZSBiYXNlIFVSTCB3aXRoIHJlbGF0aXZlIFVSTFxuICovXG5mdW5jdGlvbiBjb21iaW5lVXJscyhiYXNlVXJsOiBzdHJpbmcsIHJlbGF0aXZlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2ggZnJvbSBiYXNlIFVSTFxuICBjb25zdCBjbGVhbkJhc2VVcmwgPSBiYXNlVXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gIFxuICAvLyBSZW1vdmUgbGVhZGluZyBzbGFzaCBmcm9tIHJlbGF0aXZlIFVSTFxuICBjb25zdCBjbGVhblJlbGF0aXZlVXJsID0gcmVsYXRpdmVVcmwucmVwbGFjZSgvXlxcLy8sICcnKTtcbiAgXG4gIHJldHVybiBgJHtjbGVhbkJhc2VVcmx9LyR7Y2xlYW5SZWxhdGl2ZVVybH1gO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgZXJyb3IgbWVzc2FnZSBmcm9tIEh0dHBFcnJvclJlc3BvbnNlXG4gKiBTdXBwb3J0cyBtdWx0aXBsZSBlcnJvciByZXNwb25zZSBmb3JtYXRzXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFcnJvck1lc3NhZ2UoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogc3RyaW5nIHtcbiAgLy8gQ2hlY2sgaWYgZXJyb3IuZXJyb3IgZXhpc3RzIGFuZCBoYXMgYSBtZXNzYWdlIHByb3BlcnR5XG4gIGlmIChlcnJvci5lcnJvciAmJiB0eXBlb2YgZXJyb3IuZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgLy8gRm9ybWF0OiB7IG1lc3NhZ2U6IFwiLi4uXCIsIGVycm9yQ29kZTogXCIuLi5cIiwgcmVhc29uOiBcIi4uLlwiLCBkb21haW46IFwiLi4uXCIsIHNlcnZpY2U6IFwiLi4uXCIgfVxuICAgIGlmIChlcnJvci5lcnJvci5tZXNzYWdlKSB7XG4gICAgICByZXR1cm4gZXJyb3IuZXJyb3IubWVzc2FnZTtcbiAgICB9XG4gICAgXG4gICAgLy8gRm9ybWF0OiB7IGVycm9yOiBcIi4uLlwiLCBlcnJvcl9kZXNjcmlwdGlvbjogXCIuLi5cIiB9XG4gICAgaWYgKGVycm9yLmVycm9yLmVycm9yX2Rlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gZXJyb3IuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb247XG4gICAgfVxuICAgIFxuICAgIC8vIEZvcm1hdDogeyBkZXRhaWw6IFwiLi4uXCIgfVxuICAgIGlmIChlcnJvci5lcnJvci5kZXRhaWwpIHtcbiAgICAgIHJldHVybiBlcnJvci5lcnJvci5kZXRhaWw7XG4gICAgfVxuICAgIFxuICAgIC8vIEZvcm1hdDogeyBlcnJvcnM6IFsuLi5dIH1cbiAgICBpZiAoZXJyb3IuZXJyb3IuZXJyb3JzICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZXJyb3IuZXJyb3JzKSAmJiBlcnJvci5lcnJvci5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGVycm9yLmVycm9yLmVycm9ycy5tYXAoKGU6IGFueSkgPT4gZS5tZXNzYWdlIHx8IGUpLmpvaW4oJywgJyk7XG4gICAgfVxuICB9XG4gIFxuICAvLyBGYWxsYmFjayB0byBlcnJvci5tZXNzYWdlIG9yIHN0YXR1c1RleHRcbiAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgZXJyb3Iuc3RhdHVzVGV4dCB8fCAnRXJybyBkZXNjb25oZWNpZG8nO1xufVxuIl19
@@ -79,48 +79,13 @@ export class EntityService {
79
79
  }
80
80
  /**
81
81
  * Default error handler
82
+ * Note: This just logs the error and re-throws the original HttpErrorResponse
83
+ * so that the HTTP interceptor can handle it properly (show toast, etc.)
82
84
  */
83
85
  handleError = (error) => {
84
- let errorMessage = 'An error occurred';
85
- if (this.translationService) {
86
- errorMessage = this.translationService.translate('error.generic');
87
- }
88
- if (error.status) {
89
- switch (error.status) {
90
- case 401:
91
- errorMessage = this.translationService
92
- ? this.translationService.translate('error.unauthorized')
93
- : 'Unauthorized';
94
- break;
95
- case 403:
96
- errorMessage = this.translationService
97
- ? this.translationService.translate('error.forbidden')
98
- : 'Forbidden';
99
- break;
100
- case 404:
101
- errorMessage = this.translationService
102
- ? this.translationService.translate('error.not_found')
103
- : 'Not found';
104
- break;
105
- case 500:
106
- errorMessage = this.translationService
107
- ? this.translationService.translate('error.server_error')
108
- : 'Server error';
109
- break;
110
- default:
111
- if (error.error && error.error.message) {
112
- errorMessage = error.error.message;
113
- }
114
- else if (error.statusText) {
115
- errorMessage = error.statusText;
116
- }
117
- }
118
- }
119
- else if (error.message) {
120
- errorMessage = error.message;
121
- }
122
86
  console.error('EntityService Error:', error);
123
- return throwError(() => new Error(errorMessage));
87
+ // Re-throw the original error so the interceptor can handle it
88
+ return throwError(() => error);
124
89
  };
125
90
  /**
126
91
  * List entities with pagination, sorting, and filtering
@@ -205,4 +170,4 @@ export class EntityService {
205
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityService, decorators: [{
206
171
  type: Injectable
207
172
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined }] });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvc2VydmljZXMvZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUF1Q2pELE1BQU0sT0FBZ0IsYUFBYTtJQU1yQjtJQUNBO0lBSkYsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUVsQyxZQUNZLElBQWdCLEVBQ2hCLGtCQUF1QztRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFFakQseURBQXlEO1FBQ3pELDZEQUE2RDtJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ08sa0JBQWtCLENBQUMsVUFBc0I7UUFDakQsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsYUFBYSxHQUFHLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENB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bXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRNZXRhIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjsgLy8gMSBmb3IgYXNjLCAtMSBmb3IgZGVzY1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RQYXJhbXMge1xuICBwYWdlPzogbnVtYmVyO1xuICBzaXplPzogbnVtYmVyO1xuICBzb3J0PzogU29ydE1ldGFbXTtcbiAgZmlsdGVyUXVlcnk/OiBzdHJpbmc7XG4gIGRpc3BsYXlGaWVsZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb2R5UGFyYW1zIHtcbiAgb2Zmc2V0PzogbnVtYmVyO1xuICBzaXplPzogbnVtYmVyO1xuICBvcmRlckJ5Pzogc3RyaW5nO1xuICBmaWx0ZXI/OiBzdHJpbmc7XG4gIGRpc3BsYXlmaWVsZHM/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5TGlzdFJlc3BvbnNlPFQ+IHtcbiAgY29udGVudHM6IFRbXTtcbiAgdG90YWxFbGVtZW50czogbnVtYmVyO1xuICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG4gIG51bWJlcj86IG51bWJlcjtcbiAgZmlyc3Q/OiBib29sZWFuO1xuICBsYXN0PzogYm9vbGVhbjtcbn1cblxuLy8gSW50ZXJmYWNlIHBhcmEgbyBzZXJ2acOnbyBkZSB0cmFkdcOnw6NvIChkdWNrIHR5cGluZylcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25TZXJ2aWNlIHtcbiAgdHJhbnNsYXRlKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlTZXJ2aWNlPFQ+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVudGl0eVVybDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aW9uc1VybDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcXVlcmllc1VybDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0aW9uU2VydmljZT86IFRyYW5zbGF0aW9uU2VydmljZVxuICApIHtcbiAgICAvLyBJbml0aWFsaXplIHF1ZXJpZXNVcmwgaW4gbmdPbkluaXQgb3IgYSBzZXBhcmF0ZSBtZXRob2RcbiAgICAvLyBzaW5jZSBhYnN0cmFjdCBwcm9wZXJ0aWVzIGNhbid0IGJlIGFjY2Vzc2VkIGluIGNvbnN0cnVjdG9yXG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgc2VydmljZSAtIGNhbGwgdGhpcyBhZnRlciBzZXR0aW5nIGFjdGlvbnNVcmxcbiAgICovXG4gIHByb3RlY3RlZCBpbml0aWFsaXplU2VydmljZSgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJpZXNVcmwgPSB0aGlzLmFjdGlvbnNVcmwucmVwbGFjZSgnYWN0aW9ucycsICdxdWVyaWVzJyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBMaXN0UGFyYW1zIHRvIEh0dHBQYXJhbXMgZm9yIEdFVCByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldExpc3RRdWVyeVBhcmFtcyhsaXN0UGFyYW1zOiBMaXN0UGFyYW1zKTogSHR0cFBhcmFtcyB7XG4gICAgY29uc3QgeyBwYWdlID0gMCwgc2l6ZSA9IDEwLCBzb3J0ID0gW10sIGZpbHRlclF1ZXJ5ID0gJycsIGRpc3BsYXlGaWVsZHMgPSBbXSB9ID0gbGlzdFBhcmFtcztcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzaXplJywgU3RyaW5nKHNpemUpKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvZmZzZXQnLCBTdHJpbmcocGFnZSkpO1xuICAgIFxuICAgIGlmIChzb3J0ICYmIHNvcnQubGVuZ3RoKSB7XG4gICAgICBjb25zdCBvcmRlckJ5ID0gc29ydFxuICAgICAgICAubWFwKChzKSA9PiB7XG4gICAgICAgICAgbGV0IG9yZGVyID0gJyc7XG4gICAgICAgICAgaWYgKHMub3JkZXIgPT09IDEpIG9yZGVyID0gJyBhc2MnO1xuICAgICAgICAgIGVsc2UgaWYgKHMub3JkZXIgPT09IC0xKSBvcmRlciA9ICcgZGVzYyc7XG4gICAgICAgICAgcmV0dXJuIGAke3MuZmllbGR9JHtvcmRlcn1gO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbignLCAnKTtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ29yZGVyYnknLCBvcmRlckJ5KTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyUXVlcnkpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2ZpbHRlcicsIGZpbHRlclF1ZXJ5KTtcbiAgICB9XG5cbiAgICBpZiAoZGlzcGxheUZpZWxkcyAmJiBkaXNwbGF5RmllbGRzLmxlbmd0aCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnZGlzcGxheWZpZWxkcycsIGRpc3BsYXlGaWVsZHMuam9pbignLCcpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgTGlzdFBhcmFtcyB0byBib2R5IHBhcmFtZXRlcnMgZm9yIFBPU1QgcmVxdWVzdHNcbiAgICovXG4gIHByb3RlY3RlZCBnZXRCb2R5UGFyYW1zKGxpc3RQYXJhbXM6IExpc3RQYXJhbXMpOiBCb2R5UGFyYW1zIHtcbiAgICBjb25zdCB7IHBhZ2UgPSAwLCBzaXplID0gMTAsIHNvcnQgPSBbXSwgZmlsdGVyUXVlcnkgPSAnJywgZGlzcGxheUZpZWxkcyA9IFtdIH0gPSBsaXN0UGFyYW1zO1xuICAgIGNvbnN0IGJvZHlQYXJhbXM6IEJvZHlQYXJhbXMgPSB7fTtcblxuICAgIGJvZHlQYXJhbXMuc2l6ZSA9IHNpemU7XG4gICAgYm9keVBhcmFtcy5vZmZzZXQgPSBwYWdlO1xuXG4gICAgaWYgKHNvcnQgJiYgc29ydC5sZW5ndGgpIHtcbiAgICAgIGJvZHlQYXJhbXMub3JkZXJCeSA9IHNvcnRcbiAgICAgICAgLm1hcCgocykgPT4ge1xuICAgICAgICAgIGxldCBvcmRlciA9ICcnO1xuICAgICAgICAgIGlmIChzLm9yZGVyID09PSAxKSBvcmRlciA9ICcgYXNjJztcbiAgICAgICAgICBlbHNlIGlmIChzLm9yZGVyID09PSAtMSkgb3JkZXIgPSAnIGRlc2MnO1xuICAgICAgICAgIHJldHVybiBgJHtzLmZpZWxkfSR7b3JkZXJ9YDtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICBib2R5UGFyYW1zLmZpbHRlciA9IGZpbHRlclF1ZXJ5O1xuICAgIH1cblxuICAgIGlmIChkaXNwbGF5RmllbGRzICYmIGRpc3BsYXlGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBib2R5UGFyYW1zLmRpc3BsYXlmaWVsZHMgPSBkaXNwbGF5RmllbGRzLmpvaW4oJywnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keVBhcmFtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGVycm9yIGhhbmRsZXJcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVFcnJvciA9IChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxuZXZlcj4gPT4ge1xuICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnQW4gZXJyb3Igb2NjdXJyZWQnO1xuICAgIFxuICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uU2VydmljZSkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlKCdlcnJvci5nZW5lcmljJyk7XG4gICAgfVxuICAgIFxuICAgIGlmIChlcnJvci5zdGF0dXMpIHtcbiAgICAgIHN3aXRjaCAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgNDAxOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlIFxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Vycm9yLnVuYXV0aG9yaXplZCcpXG4gICAgICAgICAgICA6ICdVbmF1dGhvcml6ZWQnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZVxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Vycm9yLmZvcmJpZGRlbicpXG4gICAgICAgICAgICA6ICdGb3JiaWRkZW4nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQwNDpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZVxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Vycm9yLm5vdF9mb3VuZCcpXG4gICAgICAgICAgICA6ICdOb3QgZm91bmQnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZVxuICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGUoJ2Vycm9yLnNlcnZlcl9lcnJvcicpXG4gICAgICAgICAgICA6ICdTZXJ2ZXIgZXJyb3InO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3Iuc3RhdHVzVGV4dCkge1xuICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3Iuc3RhdHVzVGV4dDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlcnJvci5tZXNzYWdlKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJ0VudGl0eVNlcnZpY2UgRXJyb3I6JywgZXJyb3IpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpKTtcbiAgfTtcblxuICAvKipcbiAgICogTGlzdCBlbnRpdGllcyB3aXRoIHBhZ2luYXRpb24sIHNvcnRpbmcsIGFuZCBmaWx0ZXJpbmdcbiAgICovXG4gIGxpc3QobGlzdFBhcmFtczogTGlzdFBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxFbnRpdHlMaXN0UmVzcG9uc2U8VD4+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldExpc3RRdWVyeVBhcmFtcyhsaXN0UGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFbnRpdHlMaXN0UmVzcG9uc2U8VD4+KHRoaXMuZW50aXR5VXJsLCB7IHBhcmFtcyB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGVudGl0eSBieSBJRFxuICAgKi9cbiAgZ2V0KGlkOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPihgJHt0aGlzLmVudGl0eVVybH0vJHtpZH1gKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBlbnRpdHlcbiAgICovXG4gIGluc2VydChlbnRpdHk6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5lbnRpdHlVcmwsIGVudGl0eSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBleGlzdGluZyBlbnRpdHlcbiAgICovXG4gIHVwZGF0ZShpZDogYW55LCBlbnRpdHk6IFQpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihgJHt0aGlzLmVudGl0eVVybH0vJHtpZH1gLCBlbnRpdHkpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZW50aXR5IGJ5IElEXG4gICAqL1xuICBkZWxldGUoaWQ6IGFueSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KGAke3RoaXMuZW50aXR5VXJsfS8ke2lkfWAsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgY3VzdG9tIGZpbHRlciBhY3Rpb25cbiAgICovXG4gIGxpc3RDdXN0b21GaWx0ZXIobGlzdFBhcmFtczogTGlzdFBhcmFtcywgYWN0aW9uOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVudGl0eUxpc3RSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IGJvZHlQYXJhbXMgPSB0aGlzLmdldEJvZHlQYXJhbXMobGlzdFBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEVudGl0eUxpc3RSZXNwb25zZTxUPj4oYCR7dGhpcy5hY3Rpb25zVXJsfS8ke2FjdGlvbn1gLCBib2R5UGFyYW1zKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBjdXN0b20gcXVlcnlcbiAgICovXG4gIGV4ZWN1dGVRdWVyeShxdWVyeU5hbWU6IHN0cmluZywgcGFyYW1zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy5xdWVyaWVzVXJsfS8ke3F1ZXJ5TmFtZX1gLCBwYXJhbXMpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGN1c3RvbSBhY3Rpb25cbiAgICovXG4gIGV4ZWN1dGVBY3Rpb24oYWN0aW9uTmFtZTogc3RyaW5nLCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFjdGlvbnNVcmx9LyR7YWN0aW9uTmFtZX1gLCBwYXJhbXMpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBlbnRpdHkgZXhpc3RzIGJ5IElEXG4gICAqL1xuICBleGlzdHMoaWQ6IGFueSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuaGVhZChgJHt0aGlzLmVudGl0eVVybH0vJHtpZH1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICAgIHJldHVybiBbZmFsc2VdO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1bGsgZGVsZXRlIGVudGl0aWVzXG4gICAqL1xuICBidWxrRGVsZXRlKGlkczogYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4oYCR7dGhpcy5hY3Rpb25zVXJsfS9idWxrRGVsZXRlYCwgeyBpZHMgfSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvc2VydmljZXMvZW50aXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUF1Q2pELE1BQU0sT0FBZ0IsYUFBYTtJQU1yQjtJQUNBO0lBSkYsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUVsQyxZQUNZLElBQWdCLEVBQ2hCLGtCQUF1QztRQUR2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUI7UUFFakQseURBQXlEO1FBQ3pELDZEQUE2RDtJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ08sa0JBQWtCLENBQUMsVUFBc0I7UUFDakQsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsYUFBYSxHQUFHLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM1RixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENB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UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUUsQ0FBQzthQUM3QyxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNmLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxHQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQzthQUMzRixJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM3QixDQUFDO0lBQ04sQ0FBQzt3R0E5TG1CLGFBQWE7NEdBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydE1ldGEge1xuICBmaWVsZDogc3RyaW5nO1xuICBvcmRlcjogbnVtYmVyOyAvLyAxIGZvciBhc2MsIC0xIGZvciBkZXNjXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFBhcmFtcyB7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG4gIHNvcnQ/OiBTb3J0TWV0YVtdO1xuICBmaWx0ZXJRdWVyeT86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvZHlQYXJhbXMge1xuICBvZmZzZXQ/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG4gIG9yZGVyQnk/OiBzdHJpbmc7XG4gIGZpbHRlcj86IHN0cmluZztcbiAgZGlzcGxheWZpZWxkcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlMaXN0UmVzcG9uc2U8VD4ge1xuICBjb250ZW50czogVFtdO1xuICB0b3RhbEVsZW1lbnRzOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgc2l6ZT86IG51bWJlcjtcbiAgbnVtYmVyPzogbnVtYmVyO1xuICBmaXJzdD86IGJvb2xlYW47XG4gIGxhc3Q/OiBib29sZWFuO1xufVxuXG4vLyBJbnRlcmZhY2UgcGFyYSBvIHNlcnZpw6dvIGRlIHRyYWR1w6fDo28gKGR1Y2sgdHlwaW5nKVxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2xhdGlvblNlcnZpY2Uge1xuICB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eVNlcnZpY2U8VD4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW50aXR5VXJsOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhY3Rpb25zVXJsOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBxdWVyaWVzVXJsOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRpb25TZXJ2aWNlPzogVHJhbnNsYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIC8vIEluaXRpYWxpemUgcXVlcmllc1VybCBpbiBuZ09uSW5pdCBvciBhIHNlcGFyYXRlIG1ldGhvZFxuICAgIC8vIHNpbmNlIGFic3RyYWN0IHByb3BlcnRpZXMgY2FuJ3QgYmUgYWNjZXNzZWQgaW4gY29uc3RydWN0b3JcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBzZXJ2aWNlIC0gY2FsbCB0aGlzIGFmdGVyIHNldHRpbmcgYWN0aW9uc1VybFxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRpYWxpemVTZXJ2aWNlKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcmllc1VybCA9IHRoaXMuYWN0aW9uc1VybC5yZXBsYWNlKCdhY3Rpb25zJywgJ3F1ZXJpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IExpc3RQYXJhbXMgdG8gSHR0cFBhcmFtcyBmb3IgR0VUIHJlcXVlc3RzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0TGlzdFF1ZXJ5UGFyYW1zKGxpc3RQYXJhbXM6IExpc3RQYXJhbXMpOiBIdHRwUGFyYW1zIHtcbiAgICBjb25zdCB7IHBhZ2UgPSAwLCBzaXplID0gMTAsIHNvcnQgPSBbXSwgZmlsdGVyUXVlcnkgPSAnJywgZGlzcGxheUZpZWxkcyA9IFtdIH0gPSBsaXN0UGFyYW1zO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIFxuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NpemUnLCBTdHJpbmcoc2l6ZSkpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ29mZnNldCcsIFN0cmluZyhwYWdlKSk7XG4gICAgXG4gICAgaWYgKHNvcnQgJiYgc29ydC5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9yZGVyQnkgPSBzb3J0XG4gICAgICAgIC5tYXAoKHMpID0+IHtcbiAgICAgICAgICBsZXQgb3JkZXIgPSAnJztcbiAgICAgICAgICBpZiAocy5vcmRlciA9PT0gMSkgb3JkZXIgPSAnIGFzYyc7XG4gICAgICAgICAgZWxzZSBpZiAocy5vcmRlciA9PT0gLTEpIG9yZGVyID0gJyBkZXNjJztcbiAgICAgICAgICByZXR1cm4gYCR7cy5maWVsZH0ke29yZGVyfWA7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXJieScsIG9yZGVyQnkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnZmlsdGVyJywgZmlsdGVyUXVlcnkpO1xuICAgIH1cblxuICAgIGlmIChkaXNwbGF5RmllbGRzICYmIGRpc3BsYXlGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdkaXNwbGF5ZmllbGRzJywgZGlzcGxheUZpZWxkcy5qb2luKCcsJykpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBMaXN0UGFyYW1zIHRvIGJvZHkgcGFyYW1ldGVycyBmb3IgUE9TVCByZXF1ZXN0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEJvZHlQYXJhbXMobGlzdFBhcmFtczogTGlzdFBhcmFtcyk6IEJvZHlQYXJhbXMge1xuICAgIGNvbnN0IHsgcGFnZSA9IDAsIHNpemUgPSAxMCwgc29ydCA9IFtdLCBmaWx0ZXJRdWVyeSA9ICcnLCBkaXNwbGF5RmllbGRzID0gW10gfSA9IGxpc3RQYXJhbXM7XG4gICAgY29uc3QgYm9keVBhcmFtczogQm9keVBhcmFtcyA9IHt9O1xuXG4gICAgYm9keVBhcmFtcy5zaXplID0gc2l6ZTtcbiAgICBib2R5UGFyYW1zLm9mZnNldCA9IHBhZ2U7XG5cbiAgICBpZiAoc29ydCAmJiBzb3J0Lmxlbmd0aCkge1xuICAgICAgYm9keVBhcmFtcy5vcmRlckJ5ID0gc29ydFxuICAgICAgICAubWFwKChzKSA9PiB7XG4gICAgICAgICAgbGV0IG9yZGVyID0gJyc7XG4gICAgICAgICAgaWYgKHMub3JkZXIgPT09IDEpIG9yZGVyID0gJyBhc2MnO1xuICAgICAgICAgIGVsc2UgaWYgKHMub3JkZXIgPT09IC0xKSBvcmRlciA9ICcgZGVzYyc7XG4gICAgICAgICAgcmV0dXJuIGAke3MuZmllbGR9JHtvcmRlcn1gO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbignLCAnKTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyUXVlcnkpIHtcbiAgICAgIGJvZHlQYXJhbXMuZmlsdGVyID0gZmlsdGVyUXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKGRpc3BsYXlGaWVsZHMgJiYgZGlzcGxheUZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIGJvZHlQYXJhbXMuZGlzcGxheWZpZWxkcyA9IGRpc3BsYXlGaWVsZHMuam9pbignLCcpO1xuICAgIH1cblxuICAgIHJldHVybiBib2R5UGFyYW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgZXJyb3IgaGFuZGxlclxuICAgKiBOb3RlOiBUaGlzIGp1c3QgbG9ncyB0aGUgZXJyb3IgYW5kIHJlLXRocm93cyB0aGUgb3JpZ2luYWwgSHR0cEVycm9yUmVzcG9uc2VcbiAgICogc28gdGhhdCB0aGUgSFRUUCBpbnRlcmNlcHRvciBjYW4gaGFuZGxlIGl0IHByb3Blcmx5IChzaG93IHRvYXN0LCBldGMuKVxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUVycm9yID0gKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPG5ldmVyPiA9PiB7XG4gICAgY29uc29sZS5lcnJvcignRW50aXR5U2VydmljZSBFcnJvcjonLCBlcnJvcik7XG4gICAgLy8gUmUtdGhyb3cgdGhlIG9yaWdpbmFsIGVycm9yIHNvIHRoZSBpbnRlcmNlcHRvciBjYW4gaGFuZGxlIGl0XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMaXN0IGVudGl0aWVzIHdpdGggcGFnaW5hdGlvbiwgc29ydGluZywgYW5kIGZpbHRlcmluZ1xuICAgKi9cbiAgbGlzdChsaXN0UGFyYW1zOiBMaXN0UGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPEVudGl0eUxpc3RSZXNwb25zZTxUPj4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0TGlzdFF1ZXJ5UGFyYW1zKGxpc3RQYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVudGl0eUxpc3RSZXNwb25zZTxUPj4odGhpcy5lbnRpdHlVcmwsIHsgcGFyYW1zIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZW50aXR5IGJ5IElEXG4gICAqL1xuICBnZXQoaWQ6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuZW50aXR5VXJsfS8ke2lkfWApXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbmV3IGVudGl0eVxuICAgKi9cbiAgaW5zZXJ0KGVudGl0eTogVCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmVudGl0eVVybCwgZW50aXR5KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGV4aXN0aW5nIGVudGl0eVxuICAgKi9cbiAgdXBkYXRlKGlkOiBhbnksIGVudGl0eTogVCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KGAke3RoaXMuZW50aXR5VXJsfS8ke2lkfWAsIGVudGl0eSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBlbnRpdHkgYnkgSURcbiAgICovXG4gIGRlbGV0ZShpZDogYW55KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4oYCR7dGhpcy5lbnRpdHlVcmx9LyR7aWR9YCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBjdXN0b20gZmlsdGVyIGFjdGlvblxuICAgKi9cbiAgbGlzdEN1c3RvbUZpbHRlcihsaXN0UGFyYW1zOiBMaXN0UGFyYW1zLCBhY3Rpb246IHN0cmluZyk6IE9ic2VydmFibGU8RW50aXR5TGlzdFJlc3BvbnNlPFQ+PiB7XG4gICAgY29uc3QgYm9keVBhcmFtcyA9IHRoaXMuZ2V0Qm9keVBhcmFtcyhsaXN0UGFyYW1zKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RW50aXR5TGlzdFJlc3BvbnNlPFQ+PihgJHt0aGlzLmFjdGlvbnNVcmx9LyR7YWN0aW9ufWAsIGJvZHlQYXJhbXMpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGN1c3RvbSBxdWVyeVxuICAgKi9cbiAgZXhlY3V0ZVF1ZXJ5KHF1ZXJ5TmFtZTogc3RyaW5nLCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnF1ZXJpZXNVcmx9LyR7cXVlcnlOYW1lfWAsIHBhcmFtcylcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgY3VzdG9tIGFjdGlvblxuICAgKi9cbiAgZXhlY3V0ZUFjdGlvbihhY3Rpb25OYW1lOiBzdHJpbmcsIHBhcmFtczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMuYWN0aW9uc1VybH0vJHthY3Rpb25OYW1lfWAsIHBhcmFtcylcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGVudGl0eSBleGlzdHMgYnkgSURcbiAgICovXG4gIGV4aXN0cyhpZDogYW55KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5oZWFkKGAke3RoaXMuZW50aXR5VXJsfS8ke2lkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgcmV0dXJuIFtmYWxzZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnVsayBkZWxldGUgZW50aXRpZXNcbiAgICovXG4gIGJ1bGtEZWxldGUoaWRzOiBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPihgJHt0aGlzLmFjdGlvbnNVcmx9L2J1bGtEZWxldGVgLCB7IGlkcyB9LCB7IG9ic2VydmU6ICdyZXNwb25zZScgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -18,8 +18,8 @@ import * as i8 from 'primeng/checkbox';
18
18
  import { CheckboxModule } from 'primeng/checkbox';
19
19
  import { DividerModule } from 'primeng/divider';
20
20
  import * as XLSX from 'xlsx';
21
- import { jsPDF } from 'jspdf';
22
- import autoTable from 'jspdf-autotable';
21
+ import jsPDF from 'jspdf';
22
+ import 'jspdf-autotable';
23
23
  import * as i2$2 from 'primeng/api';
24
24
  import { ConfirmationService, MessageService } from 'primeng/api';
25
25
  import * as i5 from 'primeng/progressbar';
@@ -146,48 +146,13 @@ class EntityService {
146
146
  }
147
147
  /**
148
148
  * Default error handler
149
+ * Note: This just logs the error and re-throws the original HttpErrorResponse
150
+ * so that the HTTP interceptor can handle it properly (show toast, etc.)
149
151
  */
150
152
  handleError = (error) => {
151
- let errorMessage = 'An error occurred';
152
- if (this.translationService) {
153
- errorMessage = this.translationService.translate('error.generic');
154
- }
155
- if (error.status) {
156
- switch (error.status) {
157
- case 401:
158
- errorMessage = this.translationService
159
- ? this.translationService.translate('error.unauthorized')
160
- : 'Unauthorized';
161
- break;
162
- case 403:
163
- errorMessage = this.translationService
164
- ? this.translationService.translate('error.forbidden')
165
- : 'Forbidden';
166
- break;
167
- case 404:
168
- errorMessage = this.translationService
169
- ? this.translationService.translate('error.not_found')
170
- : 'Not found';
171
- break;
172
- case 500:
173
- errorMessage = this.translationService
174
- ? this.translationService.translate('error.server_error')
175
- : 'Server error';
176
- break;
177
- default:
178
- if (error.error && error.error.message) {
179
- errorMessage = error.error.message;
180
- }
181
- else if (error.statusText) {
182
- errorMessage = error.statusText;
183
- }
184
- }
185
- }
186
- else if (error.message) {
187
- errorMessage = error.message;
188
- }
189
153
  console.error('EntityService Error:', error);
190
- return throwError(() => new Error(errorMessage));
154
+ // Re-throw the original error so the interceptor can handle it
155
+ return throwError(() => error);
191
156
  };
192
157
  /**
193
158
  * List entities with pagination, sorting, and filtering
@@ -1059,6 +1024,9 @@ function getLanguageInfo(code) {
1059
1024
  }
1060
1025
 
1061
1026
  var translationsPtBR = {
1027
+ "design.components_ai.error": "Ops, algo deu errado",
1028
+ "design.components_ai.server_error": "Erro no Servidor",
1029
+ "design.components_ai.server_error_message": "Ocorreu um erro no servidor. Tente novamente mais tarde.",
1062
1030
  "design.components_ai.bulk_delete_title": "Exclusão em Massa",
1063
1031
  "design.components_ai.bulk_delete_warning": "Você está prestes a excluir <strong>{{count}}</strong> registro(s).",
1064
1032
  "design.components_ai.bulk_delete_description": "Esta ação não pode ser desfeita. Os registros serão excluídos um por vez.",
@@ -1101,7 +1069,6 @@ var translationsPtBR = {
1101
1069
  "design.components_ai.close": "Fechar",
1102
1070
  "design.components_ai.filter_search_placeholder": "Pesquisar por {{label}}",
1103
1071
  "design.components_ai.filter_select_placeholder": "Selecione {{label}}",
1104
- "design.components_ai.error": "Erro",
1105
1072
  "design.components_ai.success": "Sucesso",
1106
1073
  "design.components_ai.load_error": "Erro ao carregar {{entityType}}",
1107
1074
  "design.components_ai.confirm_delete": "Confirmar Exclusão",
@@ -1113,6 +1080,9 @@ var translationsPtBR = {
1113
1080
  };
1114
1081
 
1115
1082
  var translationsEnUS = {
1083
+ "design.components_ai.error": "Oops, something went wrong",
1084
+ "design.components_ai.server_error": "Server Error",
1085
+ "design.components_ai.server_error_message": "A server error occurred. Please try again later.",
1116
1086
  "design.components_ai.bulk_delete_title": "Bulk Delete",
1117
1087
  "design.components_ai.bulk_delete_warning": "You are about to delete <strong>{{count}}</strong> record(s).",
1118
1088
  "design.components_ai.bulk_delete_description": "This action cannot be undone. Records will be deleted one by one.",
@@ -1155,7 +1125,6 @@ var translationsEnUS = {
1155
1125
  "design.components_ai.close": "Close",
1156
1126
  "design.components_ai.filter_search_placeholder": "Search by {{label}}",
1157
1127
  "design.components_ai.filter_select_placeholder": "Select {{label}}",
1158
- "design.components_ai.error": "Error",
1159
1128
  "design.components_ai.success": "Success",
1160
1129
  "design.components_ai.load_error": "Error loading {{entityType}}",
1161
1130
  "design.components_ai.confirm_delete": "Confirm Deletion",
@@ -1167,6 +1136,9 @@ var translationsEnUS = {
1167
1136
  };
1168
1137
 
1169
1138
  var translationsEsES = {
1139
+ "design.components_ai.error": "Ups, algo salió mal",
1140
+ "design.components_ai.server_error": "Error del Servidor",
1141
+ "design.components_ai.server_error_message": "Ocurrió un error en el servidor. Inténtelo de nuevo más tarde.",
1170
1142
  "design.components_ai.bulk_delete_title": "Eliminación Masiva",
1171
1143
  "design.components_ai.bulk_delete_warning": "Está a punto de eliminar <strong>{{count}}</strong> registro(s).",
1172
1144
  "design.components_ai.bulk_delete_description": "Esta acción no se puede deshacer. Los registros se eliminarán uno por uno.",
@@ -1209,7 +1181,6 @@ var translationsEsES = {
1209
1181
  "design.components_ai.close": "Cerrar",
1210
1182
  "design.components_ai.filter_search_placeholder": "Buscar por {{label}}",
1211
1183
  "design.components_ai.filter_select_placeholder": "Seleccione {{label}}",
1212
- "design.components_ai.error": "Error",
1213
1184
  "design.components_ai.success": "Éxito",
1214
1185
  "design.components_ai.load_error": "Error al cargar {{entityType}}",
1215
1186
  "design.components_ai.confirm_delete": "Confirmar Eliminación",
@@ -1704,7 +1675,7 @@ class ExportDialogComponent {
1704
1675
  });
1705
1676
  });
1706
1677
  // Tabela
1707
- autoTable(doc, {
1678
+ doc.autoTable({
1708
1679
  head: [headers],
1709
1680
  body: data,
1710
1681
  startY: 40,
@@ -4618,7 +4589,7 @@ const apiInterceptor = (req, next) => {
4618
4589
  const errorMessage = extractErrorMessage(error);
4619
4590
  messageService.add({
4620
4591
  severity: 'error',
4621
- summary: translationService.translate('common.error') || 'Erro',
4592
+ summary: translationService.translate('design.components_ai.error') || 'Erro',
4622
4593
  detail: errorMessage,
4623
4594
  life: 5000
4624
4595
  });
@@ -4627,11 +4598,10 @@ const apiInterceptor = (req, next) => {
4627
4598
  // Handle 5xx errors
4628
4599
  else if (error.status >= 500) {
4629
4600
  if (messageService && translationService) {
4630
- const errorMessage = extractErrorMessage(error);
4631
4601
  messageService.add({
4632
4602
  severity: 'error',
4633
- summary: translationService.translate('common.server_error') || 'Erro no Servidor',
4634
- detail: errorMessage || translationService.translate('common.server_error_message') || 'Ocorreu um erro no servidor. Tente novamente mais tarde.',
4603
+ summary: translationService.translate('design.components_ai.server_error') || 'Erro no Servidor',
4604
+ detail: translationService.translate('design.components_ai.server_error_message') || 'Ocorreu um erro no servidor. Tente novamente mais tarde.',
4635
4605
  life: 5000
4636
4606
  });
4637
4607
  }