bways-report 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/esm2022/lib/core/config/bways-report-config.mjs +3 -1
  2. package/esm2022/lib/core/models/index.mjs +1 -1
  3. package/esm2022/lib/core/models/report-api-endpoint.model.mjs +8 -0
  4. package/esm2022/lib/core/models/report-component.model.mjs +1 -1
  5. package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
  6. package/esm2022/lib/core/services/index.mjs +2 -1
  7. package/esm2022/lib/core/services/report-api-execution.service.mjs +188 -0
  8. package/esm2022/lib/core/services/report-data-discovery.service.mjs +76 -4
  9. package/esm2022/lib/data-access/adapters/endpoint-datasource.adapter.mjs +24 -1
  10. package/esm2022/lib/data-access/adapters/endpoint-lookup.adapter.mjs +24 -2
  11. package/esm2022/lib/data-access/adapters/endpoint-tokens.mjs +1 -1
  12. package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +26 -3
  13. package/esm2022/lib/data-access/contracts/lookup.contract.mjs +1 -1
  14. package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +536 -6
  15. package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +31 -3
  16. package/esm2022/lib/features/designer/components/dialogs/report-saved-dialog.component.mjs +2 -2
  17. package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +3 -3
  18. package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +3 -3
  19. package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +131 -3
  20. package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +3 -3
  21. package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +128 -28
  22. package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +3 -3
  23. package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +3 -3
  24. package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +3 -3
  25. package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +19 -10
  26. package/esm2022/lib/features/designer/designer.component.mjs +16 -15
  27. package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +2 -1
  28. package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
  29. package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +23 -4
  30. package/esm2022/lib/features/runtime/report-execution.service.mjs +21 -4
  31. package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +51 -10
  32. package/esm2022/lib/features/runtime/report-runtime.component.mjs +16 -2
  33. package/esm2022/lib/features/runtime/rpt-report.component.mjs +2 -2
  34. package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +16 -7
  35. package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +41 -1
  36. package/esm2022/lib/primitives/components/index.mjs +2 -1
  37. package/esm2022/lib/primitives/components/radio/rpt-radio.component.mjs +428 -0
  38. package/esm2022/lib/primitives/register-builtins.mjs +51 -2
  39. package/esm2022/lib/provide-reporting.mjs +3 -1
  40. package/fesm2022/bways-report.mjs +1956 -240
  41. package/fesm2022/bways-report.mjs.map +1 -1
  42. package/lib/core/config/bways-report-config.d.ts +13 -0
  43. package/lib/core/models/index.d.ts +2 -1
  44. package/lib/core/models/report-api-endpoint.model.d.ts +30 -0
  45. package/lib/core/models/report-component.model.d.ts +16 -4
  46. package/lib/core/models/report-datasource.model.d.ts +16 -2
  47. package/lib/core/services/index.d.ts +1 -0
  48. package/lib/core/services/report-api-execution.service.d.ts +41 -0
  49. package/lib/core/services/report-data-discovery.service.d.ts +23 -1
  50. package/lib/data-access/adapters/endpoint-datasource.adapter.d.ts +2 -0
  51. package/lib/data-access/adapters/endpoint-lookup.adapter.d.ts +1 -0
  52. package/lib/data-access/adapters/endpoint-tokens.d.ts +3 -0
  53. package/lib/data-access/adapters/http-lookup.adapter.d.ts +2 -1
  54. package/lib/data-access/contracts/lookup.contract.d.ts +3 -0
  55. package/lib/features/designer/components/component-palette/component-palette.component.d.ts +16 -0
  56. package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +17 -0
  57. package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +19 -7
  58. package/lib/features/designer/components/property-editor/property-editor.component.d.ts +1 -1
  59. package/lib/features/designer/designer.component.d.ts +1 -0
  60. package/lib/features/runtime/report-execution.service.d.ts +1 -0
  61. package/lib/features/runtime/report-grid-bridge.component.d.ts +3 -1
  62. package/lib/features/runtime/report-runtime.component.d.ts +13 -1
  63. package/lib/primitives/components/index.d.ts +2 -0
  64. package/lib/primitives/components/radio/rpt-radio.component.d.ts +77 -0
  65. package/package.json +1 -1
@@ -4,6 +4,7 @@ import { catchError, map } from 'rxjs/operators';
4
4
  import { ReportSchemaDiscoveryAdapter, } from '../../data-access/contracts/schema-discovery.contract';
5
5
  import { ReportLookupAdapter } from '../../data-access/contracts/lookup.contract';
6
6
  import { ReportSessionContextService } from './report-session-context.service';
7
+ import { ReportApiExecutionService } from './report-api-execution.service';
7
8
  import { resolveParameterMappings } from '../utils/report-parameter.util';
8
9
  import { humanizeIdentifier } from '../utils/identifier-humanizer';
9
10
  import * as i0 from "@angular/core";
@@ -21,6 +22,7 @@ export class ReportDataDiscoveryService {
21
22
  discoveryAdapter = inject(ReportSchemaDiscoveryAdapter, { optional: true });
22
23
  lookupAdapter = inject(ReportLookupAdapter, { optional: true });
23
24
  sessionService = inject(ReportSessionContextService, { optional: true });
25
+ apiExecutionService = inject(ReportApiExecutionService, { optional: true });
24
26
  /**
25
27
  * Retrieves all database tables, views, and stored procedures.
26
28
  */
@@ -50,12 +52,17 @@ export class ReportDataDiscoveryService {
50
52
  * 1. Attempts static schema discovery via ReportSchemaDiscoveryAdapter.
51
53
  * 2. If static discovery returns 0 columns or throws an error (e.g. SQL Error 11526 with #temp tables),
52
54
  * automatically runs dynamic sample query via ReportLookupAdapter using resolved parameters.
55
+ * 3. For REST APIs, executes a dynamic test sample and extracts columns from the result array.
53
56
  */
54
- autoDetectColumns(entityName, entityType = 'stored_procedure', mappings = {}, schema = 'dbo') {
57
+ autoDetectColumns(entityName, entityType = 'stored_procedure', mappings = {}, schema = 'dbo', apiOptions) {
55
58
  if (!entityName) {
56
59
  return of([]);
57
60
  }
58
- // Try static discovery first
61
+ // Direct API Column Discovery
62
+ if (entityType === 'api') {
63
+ return this.autoDetectApiColumns(entityName, apiOptions?.dataPath, mappings, apiOptions);
64
+ }
65
+ // Try static discovery first for database entities
59
66
  if (this.discoveryAdapter) {
60
67
  return this.discoveryAdapter.getColumns(entityName, schema, entityType).pipe(map((cols) => {
61
68
  if (cols && cols.length > 0) {
@@ -69,6 +76,71 @@ export class ReportDataDiscoveryService {
69
76
  }
70
77
  return this.fallbackDynamicDetection(entityName, entityType, mappings, schema);
71
78
  }
79
+ /**
80
+ * Executes a sample API call and infers grid column definitions from the response records.
81
+ */
82
+ autoDetectApiColumns(urlOrOptions, dataPathOrParams, params = {}, options) {
83
+ if (!this.apiExecutionService) {
84
+ return of([]);
85
+ }
86
+ let url;
87
+ let dataPath;
88
+ let mergedParams = params;
89
+ let mergedOptions = options;
90
+ if (typeof urlOrOptions === 'object' && urlOrOptions !== null) {
91
+ url = urlOrOptions.url || urlOrOptions.endpoint || '';
92
+ dataPath = urlOrOptions.dataPath;
93
+ mergedOptions = {
94
+ method: urlOrOptions.method,
95
+ headers: urlOrOptions.headers,
96
+ useProxy: urlOrOptions.useProxy,
97
+ };
98
+ if (typeof dataPathOrParams === 'object' && dataPathOrParams !== null) {
99
+ mergedParams = dataPathOrParams;
100
+ }
101
+ }
102
+ else {
103
+ url = urlOrOptions;
104
+ dataPath = typeof dataPathOrParams === 'string' ? dataPathOrParams : undefined;
105
+ }
106
+ return this.apiExecutionService
107
+ .executeApi({
108
+ endpoint: url,
109
+ dataPath,
110
+ method: mergedOptions?.method,
111
+ headers: mergedOptions?.headers,
112
+ useProxy: mergedOptions?.useProxy,
113
+ }, mergedParams)
114
+ .pipe(map((rows) => {
115
+ if (rows && rows.length > 0 && typeof rows[0] === 'object' && rows[0] !== null) {
116
+ const firstRow = rows[0];
117
+ const keys = Object.keys(firstRow);
118
+ return keys.map((key) => {
119
+ const val = firstRow[key];
120
+ let type = 'string';
121
+ if (typeof val === 'number')
122
+ type = 'number';
123
+ else if (typeof val === 'boolean')
124
+ type = 'boolean';
125
+ else if (typeof val === 'string' && /^\d{4}-\d{2}-\d{2}/.test(val))
126
+ type = 'date';
127
+ return {
128
+ field: key,
129
+ label: humanizeIdentifier(key),
130
+ dataType: type,
131
+ visible: true,
132
+ sortable: true,
133
+ align: (type === 'number' ? 'right' : 'left'),
134
+ };
135
+ });
136
+ }
137
+ return [];
138
+ }), catchError((err) => {
139
+ console.warn(`[ReportDataDiscoveryService] API column detection failed for ${url}:`, err);
140
+ const msg = err?.error?.message || err?.message || 'API query failed';
141
+ return throwError(() => new Error(msg));
142
+ }));
143
+ }
72
144
  mapStaticColumnsToGrid(cols) {
73
145
  return cols.map((c) => ({
74
146
  field: c.field,
@@ -97,7 +169,7 @@ export class ReportDataDiscoveryService {
97
169
  .pipe(map((items) => {
98
170
  if (items && items.length > 0 && items[0].raw) {
99
171
  const sampleRow = items[0].raw;
100
- const keys = Object.keys(sampleRow);
172
+ const keys = Object.keys(sampleRow).filter((k) => k.trim().length > 0);
101
173
  if (keys.length > 0) {
102
174
  return keys.map((key) => {
103
175
  const val = sampleRow[key];
@@ -135,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
135
207
  type: Injectable,
136
208
  args: [{ providedIn: 'root' }]
137
209
  }] });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGEtZGlzY292ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1kYXRhLWRpc2NvdmVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUtMLDRCQUE0QixHQUM3QixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUVuRTs7Ozs7Ozs7O0dBU0c7QUFFSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3BCLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLGFBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxjQUFjLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUY7O09BRUc7SUFDSCxXQUFXLENBQUMsS0FBNEI7UUFDdEMsSUFBSSxDQUFDLElBQUks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MEJBQTBCLGNBRGIsTUFBTTs7NEZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBEYXRhYmFzZUVudGl0eU1ldGFkYXRhLFxuICBEYXRhYmFzZUVudGl0eVR5cGUsXG4gIEVudGl0eUNvbHVtbk1ldGFkYXRhLFxuICBQcm9jZWR1cmVQYXJhbWV0ZXJNZXRhZGF0YSxcbiAgUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlcixcbn0gZnJvbSAnLi4vLi4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL3NjaGVtYS1kaXNjb3ZlcnkuY29udHJhY3QnO1xuaW1wb3J0IHsgUmVwb3J0TG9va3VwQWRhcHRlciB9IGZyb20gJy4uLy4uL2RhdGEtYWNjZXNzL2NvbnRyYWN0cy9sb29rdXAuY29udHJhY3QnO1xuaW1wb3J0IHsgUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9yZXBvcnQtc2Vzc2lvbi1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRlZmluaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvcmVwb3J0LWdyaWQubW9kZWwnO1xuaW1wb3J0IHsgRHJvcGRvd25Tb3VyY2VUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHsgcmVzb2x2ZVBhcmFtZXRlck1hcHBpbmdzIH0gZnJvbSAnLi4vdXRpbHMvcmVwb3J0LXBhcmFtZXRlci51dGlsJztcbmltcG9ydCB7IGh1bWFuaXplSWRlbnRpZmllciB9IGZyb20gJy4uL3V0aWxzL2lkZW50aWZpZXItaHVtYW5pemVyJztcblxuLyoqXG4gKiBDZW50cmFsaXplZCBzZXJ2aWNlIGZvciBkaXNjb3ZlcmluZyBkYXRhYmFzZSBzY2hlbWEgZW50aXRpZXMsIHBhcmFtZXRlcnMsXG4gKiBhbmQgY29sdW1uIGRlZmluaXRpb25zLlxuICpcbiAqIFByb3ZpZGVzIGEgdW5pZmllZCBzdGF0aWMgKyBkeW5hbWljIGRldGVjdGlvbiBwaXBlbGluZTpcbiAqIElmIHN0YXRpYyBzY2hlbWEgbWV0YWRhdGEgZGlzY292ZXJ5IGZhaWxzIChlLmcuIFNRTCBTZXJ2ZXIgc3RvcmVkIHByb2NlZHVyZXNcbiAqIHVzaW5nICN0ZW1wIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSBhbmFseXplZCBzdGF0aWNhbGx5KSwgaXQgYXV0b21hdGljYWxseVxuICogZmFsbHMgYmFjayB0byBleGVjdXRpbmcgYSBzYWZlIGR5bmFtaWMgc2FtcGxlIHF1ZXJ5IHdpdGggdGhlIGFjdGl2ZSBwYXJhbWV0ZXJcbiAqIHZhbHVlcyBhbmQgZXh0cmFjdGluZyBjb2x1bW4gZGVmaW5pdGlvbnMgZnJvbSB0aGUgcmVzdWx0IGRhdGFzZXQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUmVwb3J0RGF0YURpc2NvdmVyeVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc2NvdmVyeUFkYXB0ZXIgPSBpbmplY3QoUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlciwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb29rdXBBZGFwdGVyID0gaW5qZWN0KFJlcG9ydExvb2t1cEFkYXB0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIGRhdGFiYXNlIHRhYmxlcywgdmlld3MsIGFuZCBzdG9yZWQgcHJvY2VkdXJlcy5cbiAgICovXG4gIGdldEVudGl0aWVzKHR5cGVzPzogRGF0YWJhc2VFbnRpdHlUeXBlW10pOiBPYnNlcnZhYmxlPERhdGFiYXNlRW50aXR5TWV0YWRhdGFbXT4ge1xuICAgIGlmICghdGhpcy5kaXNjb3ZlcnlBZGFwdGVyKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kaXNjb3ZlcnlBZGFwdGVyLmdldEVudGl0aWVzKHR5cGVzKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUud2FybignW1JlcG9ydERhdGFEaXNjb3ZlcnlTZXJ2aWNlXSBGYWlsZWQgdG8gZ2V0IGVudGl0aWVzOicsIGVycik7XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHN0b3JlZCBwcm9jZWR1cmUgcGFyYW1ldGVyIG1ldGFkYXRhLlxuICAgKi9cbiAgZ2V0UGFyYW1ldGVycyhwcm9jZWR1cmVOYW1lOiBzdHJpbmcsIHNjaGVtYSA9ICdkYm8nKTogT2JzZXJ2YWJsZTxQcm9jZWR1cmVQYXJhbWV0ZXJNZXRhZGF0YVtdPiB7XG4gICAgaWYgKCFwcm9jZWR1cmVOYW1lIHx8ICF0aGlzLmRpc2NvdmVyeUFkYXB0ZXIpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpc2NvdmVyeUFkYXB0ZXIuZ2V0UGFyYW1ldGVycyhwcm9jZWR1cmVOYW1lLCBzY2hlbWEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKGBbUmVwb3J0RGF0YURpc2NvdmVyeVNlcnZpY2VdIEZhaWxlZCB0byBnZXQgcGFyYW1ldGVycyBmb3IgJHtwcm9jZWR1cmVOYW1lfTpgLCBlcnIpO1xuICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuaWZpZWQgY29sdW1uIGRldGVjdGlvbjpcbiAgICogMS4gQXR0ZW1wdHMgc3RhdGljIHNjaGVtYSBkaXNjb3ZlcnkgdmlhIFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIuXG4gICAqIDIuIElmIHN0YXRpYyBkaXNjb3ZlcnkgcmV0dXJucyAwIGNvbHVtbnMgb3IgdGhyb3dzIGFuIGVycm9yIChlLmcuIFNRTCBFcnJvciAxMTUyNiB3aXRoICN0ZW1wIHRhYmxlcyksXG4gICAqICAgIGF1dG9tYXRpY2FsbHkgcnVucyBkeW5hbWljIHNhbXBsZSBxdWVyeSB2aWEgUmVwb3J0TG9va3VwQWRhcHRlciB1c2luZyByZXNvbHZlZCBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgYXV0b0RldGVjdENvbHVtbnMoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGVudGl0eVR5cGU6ICd0YWJsZScgfCAnc3RvcmVkX3Byb2NlZHVyZScgPSAnc3RvcmVkX3Byb2NlZHVyZScsXG4gICAgbWFwcGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30sXG4gICAgc2NoZW1hID0gJ2RibydcbiAgKTogT2JzZXJ2YWJsZTxHcmlkQ29sdW1uRGVmaW5pdGlvbltdPiB7XG4gICAgaWYgKCFlbnRpdHlOYW1lKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cblxuICAgIC8vIFRyeSBzdGF0aWMgZGlzY292ZXJ5IGZpcnN0XG4gICAgaWYgKHRoaXMuZGlzY292ZXJ5QWRhcHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzY292ZXJ5QWRhcHRlci5nZXRDb2x1bW5zKGVudGl0eU5hbWUsIHNjaGVtYSwgZW50aXR5VHlwZSkucGlwZShcbiAgICAgICAgbWFwKChjb2xzKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbHMgJiYgY29scy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBTdGF0aWNDb2x1bW5zVG9HcmlkKGNvbHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NUQVRJQ19FTVBUWScpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgLy8gRmFsbGJhY2sgdG8gZHluYW1pYyBleGVjdXRpb25cbiAgICAgICAgICByZXR1cm4gdGhpcy5mYWxsYmFja0R5bmFtaWNEZXRlY3Rpb24oZW50aXR5TmFtZSwgZW50aXR5VHlwZSwgbWFwcGluZ3MsIHNjaGVtYSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZhbGxiYWNrRHluYW1pY0RldGVjdGlvbihlbnRpdHlOYW1lLCBlbnRpdHlUeXBlLCBtYXBwaW5ncywgc2NoZW1hKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU3RhdGljQ29sdW1uc1RvR3JpZChjb2xzOiBFbnRpdHlDb2x1bW5NZXRhZGF0YVtdKTogR3JpZENvbHVtbkRlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIGNvbHMubWFwKChjKSA9PiAoe1xuICAgICAgZmllbGQ6IGMuZmllbGQsXG4gICAgICBsYWJlbDogaHVtYW5pemVJZGVudGlmaWVyKGMubGFiZWwgfHwgYy5maWVsZCksXG4gICAgICBkYXRhVHlwZTogKGMuZGF0YVR5cGUgYXMgYW55KSB8fCAnc3RyaW5nJyxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgIGFsaWduOiBjLmRhdGFUeXBlID09PSAnbnVtYmVyJyA/ICdyaWdodCcgOiAnbGVmdCcsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmYWxsYmFja0R5bmFtaWNEZXRlY3Rpb24oXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIHNvdXJjZVR5cGU6ICd0YWJsZScgfCAnc3RvcmVkX3Byb2NlZHVyZScsXG4gICAgbWFwcGluZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHNjaGVtYSA9ICdkYm8nXG4gICk6IE9ic2VydmFibGU8R3JpZENvbHVtbkRlZmluaXRpb25bXT4ge1xuICAgIGlmICghdGhpcy5sb29rdXBBZGFwdGVyKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cblxuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25TZXJ2aWNlPy5nZXRDdXJyZW50U2Vzc2lvbkNvbnRleHQoKSA/PyB7fTtcbiAgICBjb25zdCByZXNvbHZlZFBhcmFtcyA9IHJlc29sdmVQYXJhbWV0ZXJNYXBwaW5ncyhtYXBwaW5ncyBhcyBhbnksIHNlc3Npb24sIHt9KTtcblxuICAgIHJldHVybiB0aGlzLmxvb2t1cEFkYXB0ZXJcbiAgICAgIC5mZXRjaE9wdGlvbnMoe1xuICAgICAgICBzb3VyY2VUeXBlOiAoc291cmNlVHlwZSA9PT0gJ3N0b3JlZF9wcm9jZWR1cmUnID8gJ3Byb2NlZHVyZScgOiBzb3VyY2VUeXBlKSBhcyBEcm9wZG93blNvdXJjZVR5cGUsXG4gICAgICAgIGVudGl0eU5hbWUsXG4gICAgICAgIHNjaGVtYSxcbiAgICAgICAgdmFsdWVGaWVsZDogJycsXG4gICAgICAgIGRpc3BsYXlGaWVsZDogJycsXG4gICAgICAgIHBhcmFtZXRlcnM6IHJlc29sdmVkUGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDAgJiYgaXRlbXNbMF0ucmF3KSB7XG4gICAgICAgICAgICBjb25zdCBzYW1wbGVSb3cgPSBpdGVtc1swXS5yYXcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc2FtcGxlUm93KTtcbiAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGtleXMubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBzYW1wbGVSb3dba2V5XTtcbiAgICAgICAgICAgICAgICBsZXQgdHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJyA9ICdzdHJpbmcnO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykgdHlwZSA9ICdudW1iZXInO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdib29sZWFuJykgdHlwZSA9ICdib29sZWFuJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9Ly50ZXN0KHZhbCkpIHR5cGUgPSAnZGF0ZSc7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBodW1hbml6ZUlkZW50aWZpZXIoa2V5KSxcbiAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiB0eXBlLFxuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWxpZ246ICh0eXBlID09PSAnbnVtYmVyJyA/ICdyaWdodCcgOiAnbGVmdCcpIGFzICdyaWdodCcgfCAnbGVmdCcsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgW1JlcG9ydERhdGFEaXNjb3ZlcnlTZXJ2aWNlXSBEeW5hbWljIHNhbXBsZSBkZXRlY3Rpb24gZmFpbGVkIGZvciAke2VudGl0eU5hbWV9OmAsIGVycik7XG4gICAgICAgICAgY29uc3QgZXJyb3JNc2cgPVxuICAgICAgICAgICAgZXJyPy5lcnJvcj8ubWVzc2FnZSB8fFxuICAgICAgICAgICAgZXJyPy5tZXNzYWdlIHx8XG4gICAgICAgICAgICBgRGF0YWJhc2UgcXVlcnkgZmFpbGVkIGZvciAke2VudGl0eU5hbWV9LmA7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycm9yTXNnKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGEtZGlzY292ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1kYXRhLWRpc2NvdmVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUtMLDRCQUE0QixHQUM3QixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUVuRTs7Ozs7Ozs7O0dBU0c7QUFFSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3BCLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLGFBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRSxjQUFjLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekUsbUJB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cmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIERhdGFiYXNlRW50aXR5TWV0YWRhdGEsXG4gIERhdGFiYXNlRW50aXR5VHlwZSxcbiAgRW50aXR5Q29sdW1uTWV0YWRhdGEsXG4gIFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhLFxuICBSZXBvcnRTY2hlbWFEaXNjb3ZlcnlBZGFwdGVyLFxufSBmcm9tICcuLi8uLi9kYXRhLWFjY2Vzcy9jb250cmFjdHMvc2NoZW1hLWRpc2NvdmVyeS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRMb29rdXBBZGFwdGVyIH0gZnJvbSAnLi4vLi4vZGF0YS1hY2Nlc3MvY29udHJhY3RzL2xvb2t1cC5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9yZXBvcnQtYXBpLWV4ZWN1dGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRDb2x1bW5EZWZpbml0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3JlcG9ydC1ncmlkLm1vZGVsJztcbmltcG9ydCB7IERyb3Bkb3duU291cmNlVHlwZSB9IGZyb20gJy4uL21vZGVscy9yZXBvcnQtY29tcG9uZW50Lm1vZGVsJztcbmltcG9ydCB7IHJlc29sdmVQYXJhbWV0ZXJNYXBwaW5ncyB9IGZyb20gJy4uL3V0aWxzL3JlcG9ydC1wYXJhbWV0ZXIudXRpbCc7XG5pbXBvcnQgeyBodW1hbml6ZUlkZW50aWZpZXIgfSBmcm9tICcuLi91dGlscy9pZGVudGlmaWVyLWh1bWFuaXplcic7XG5cbi8qKlxuICogQ2VudHJhbGl6ZWQgc2VydmljZSBmb3IgZGlzY292ZXJpbmcgZGF0YWJhc2Ugc2NoZW1hIGVudGl0aWVzLCBwYXJhbWV0ZXJzLFxuICogYW5kIGNvbHVtbiBkZWZpbml0aW9ucy5cbiAqXG4gKiBQcm92aWRlcyBhIHVuaWZpZWQgc3RhdGljICsgZHluYW1pYyBkZXRlY3Rpb24gcGlwZWxpbmU6XG4gKiBJZiBzdGF0aWMgc2NoZW1hIG1ldGFkYXRhIGRpc2NvdmVyeSBmYWlscyAoZS5nLiBTUUwgU2VydmVyIHN0b3JlZCBwcm9jZWR1cmVzXG4gKiB1c2luZyAjdGVtcCB0YWJsZXMgdGhhdCBjYW5ub3QgYmUgYW5hbHl6ZWQgc3RhdGljYWxseSksIGl0IGF1dG9tYXRpY2FsbHlcbiAqIGZhbGxzIGJhY2sgdG8gZXhlY3V0aW5nIGEgc2FmZSBkeW5hbWljIHNhbXBsZSBxdWVyeSB3aXRoIHRoZSBhY3RpdmUgcGFyYW1ldGVyXG4gKiB2YWx1ZXMgYW5kIGV4dHJhY3RpbmcgY29sdW1uIGRlZmluaXRpb25zIGZyb20gdGhlIHJlc3VsdCBkYXRhc2V0LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlcG9ydERhdGFEaXNjb3ZlcnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaXNjb3ZlcnlBZGFwdGVyID0gaW5qZWN0KFJlcG9ydFNjaGVtYURpc2NvdmVyeUFkYXB0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9va3VwQWRhcHRlciA9IGluamVjdChSZXBvcnRMb29rdXBBZGFwdGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlFeGVjdXRpb25TZXJ2aWNlID0gaW5qZWN0KFJlcG9ydEFwaUV4ZWN1dGlvblNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbGwgZGF0YWJhc2UgdGFibGVzLCB2aWV3cywgYW5kIHN0b3JlZCBwcm9jZWR1cmVzLlxuICAgKi9cbiAgZ2V0RW50aXRpZXModHlwZXM/OiBEYXRhYmFzZUVudGl0eVR5cGVbXSk6IE9ic2VydmFibGU8RGF0YWJhc2VFbnRpdHlNZXRhZGF0YVtdPiB7XG4gICAgaWYgKCF0aGlzLmRpc2NvdmVyeUFkYXB0ZXIpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpc2NvdmVyeUFkYXB0ZXIuZ2V0RW50aXRpZXModHlwZXMpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdbUmVwb3J0RGF0YURpc2NvdmVyeVNlcnZpY2VdIEZhaWxlZCB0byBnZXQgZW50aXRpZXM6JywgZXJyKTtcbiAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgc3RvcmVkIHByb2NlZHVyZSBwYXJhbWV0ZXIgbWV0YWRhdGEuXG4gICAqL1xuICBnZXRQYXJhbWV0ZXJzKHByb2NlZHVyZU5hbWU6IHN0cmluZywgc2NoZW1hID0gJ2RibycpOiBPYnNlcnZhYmxlPFByb2NlZHVyZVBhcmFtZXRlck1ldGFkYXRhW10+IHtcbiAgICBpZiAoIXByb2NlZHVyZU5hbWUgfHwgIXRoaXMuZGlzY292ZXJ5QWRhcHRlcikge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGlzY292ZXJ5QWRhcHRlci5nZXRQYXJhbWV0ZXJzKHByb2NlZHVyZU5hbWUsIHNjaGVtYSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oYFtSZXBvcnREYXRhRGlzY292ZXJ5U2VydmljZV0gRmFpbGVkIHRvIGdldCBwYXJhbWV0ZXJzIGZvciAke3Byb2NlZHVyZU5hbWV9OmAsIGVycik7XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5pZmllZCBjb2x1bW4gZGV0ZWN0aW9uOlxuICAgKiAxLiBBdHRlbXB0cyBzdGF0aWMgc2NoZW1hIGRpc2NvdmVyeSB2aWEgUmVwb3J0U2NoZW1hRGlzY292ZXJ5QWRhcHRlci5cbiAgICogMi4gSWYgc3RhdGljIGRpc2NvdmVyeSByZXR1cm5zIDAgY29sdW1ucyBvciB0aHJvd3MgYW4gZXJyb3IgKGUuZy4gU1FMIEVycm9yIDExNTI2IHdpdGggI3RlbXAgdGFibGVzKSxcbiAgICogICAgYXV0b21hdGljYWxseSBydW5zIGR5bmFtaWMgc2FtcGxlIHF1ZXJ5IHZpYSBSZXBvcnRMb29rdXBBZGFwdGVyIHVzaW5nIHJlc29sdmVkIHBhcmFtZXRlcnMuXG4gICAqIDMuIEZvciBSRVNUIEFQSXMsIGV4ZWN1dGVzIGEgZHluYW1pYyB0ZXN0IHNhbXBsZSBhbmQgZXh0cmFjdHMgY29sdW1ucyBmcm9tIHRoZSByZXN1bHQgYXJyYXkuXG4gICAqL1xuICBhdXRvRGV0ZWN0Q29sdW1ucyhcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgZW50aXR5VHlwZTogJ3RhYmxlJyB8ICdzdG9yZWRfcHJvY2VkdXJlJyB8ICdhcGknID0gJ3N0b3JlZF9wcm9jZWR1cmUnLFxuICAgIG1hcHBpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICAgIHNjaGVtYSA9ICdkYm8nLFxuICAgIGFwaU9wdGlvbnM/OiB7IGRhdGFQYXRoPzogc3RyaW5nOyBtZXRob2Q/OiBzdHJpbmc7IGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyB1c2VQcm94eT86IGJvb2xlYW4gfVxuICApOiBPYnNlcnZhYmxlPEdyaWRDb2x1bW5EZWZpbml0aW9uW10+IHtcbiAgICBpZiAoIWVudGl0eU5hbWUpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgLy8gRGlyZWN0IEFQSSBDb2x1bW4gRGlzY292ZXJ5XG4gICAgaWYgKGVudGl0eVR5cGUgPT09ICdhcGknKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdXRvRGV0ZWN0QXBpQ29sdW1ucyhlbnRpdHlOYW1lLCBhcGlPcHRpb25zPy5kYXRhUGF0aCwgbWFwcGluZ3MsIGFwaU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIFRyeSBzdGF0aWMgZGlzY292ZXJ5IGZpcnN0IGZvciBkYXRhYmFzZSBlbnRpdGllc1xuICAgIGlmICh0aGlzLmRpc2NvdmVyeUFkYXB0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2NvdmVyeUFkYXB0ZXIuZ2V0Q29sdW1ucyhlbnRpdHlOYW1lLCBzY2hlbWEsIGVudGl0eVR5cGUpLnBpcGUoXG4gICAgICAgIG1hcCgoY29scykgPT4ge1xuICAgICAgICAgIGlmIChjb2xzICYmIGNvbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwU3RhdGljQ29sdW1uc1RvR3JpZChjb2xzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTVEFUSUNfRU1QVFknKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIGR5bmFtaWMgZXhlY3V0aW9uXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmFsbGJhY2tEeW5hbWljRGV0ZWN0aW9uKGVudGl0eU5hbWUsIGVudGl0eVR5cGUsIG1hcHBpbmdzLCBzY2hlbWEpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mYWxsYmFja0R5bmFtaWNEZXRlY3Rpb24oZW50aXR5TmFtZSwgZW50aXR5VHlwZSwgbWFwcGluZ3MsIHNjaGVtYSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBzYW1wbGUgQVBJIGNhbGwgYW5kIGluZmVycyBncmlkIGNvbHVtbiBkZWZpbml0aW9ucyBmcm9tIHRoZSByZXNwb25zZSByZWNvcmRzLlxuICAgKi9cbiAgYXV0b0RldGVjdEFwaUNvbHVtbnMoXG4gICAgdXJsT3JPcHRpb25zOiBzdHJpbmcgfCB7IGVuZHBvaW50Pzogc3RyaW5nOyB1cmw/OiBzdHJpbmc7IG1ldGhvZD86IHN0cmluZzsgZGF0YVBhdGg/OiBzdHJpbmc7IGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyB1c2VQcm94eT86IGJvb2xlYW4gfSxcbiAgICBkYXRhUGF0aE9yUGFyYW1zPzogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICAgIG9wdGlvbnM/OiB7IG1ldGhvZD86IHN0cmluZzsgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IHVzZVByb3h5PzogYm9vbGVhbiB9XG4gICk6IE9ic2VydmFibGU8R3JpZENvbHVtbkRlZmluaXRpb25bXT4ge1xuICAgIGlmICghdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cblxuICAgIGxldCB1cmw6IHN0cmluZztcbiAgICBsZXQgZGF0YVBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBsZXQgbWVyZ2VkUGFyYW1zID0gcGFyYW1zO1xuICAgIGxldCBtZXJnZWRPcHRpb25zID0gb3B0aW9ucztcblxuICAgIGlmICh0eXBlb2YgdXJsT3JPcHRpb25zID09PSAnb2JqZWN0JyAmJiB1cmxPck9wdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIHVybCA9IHVybE9yT3B0aW9ucy51cmwgfHwgdXJsT3JPcHRpb25zLmVuZHBvaW50IHx8ICcnO1xuICAgICAgZGF0YVBhdGggPSB1cmxPck9wdGlvbnMuZGF0YVBhdGg7XG4gICAgICBtZXJnZWRPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6IHVybE9yT3B0aW9ucy5tZXRob2QsXG4gICAgICAgIGhlYWRlcnM6IHVybE9yT3B0aW9ucy5oZWFkZXJzLFxuICAgICAgICB1c2VQcm94eTogdXJsT3JPcHRpb25zLnVzZVByb3h5LFxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgZGF0YVBhdGhPclBhcmFtcyA9PT0gJ29iamVjdCcgJiYgZGF0YVBhdGhPclBhcmFtcyAhPT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRQYXJhbXMgPSBkYXRhUGF0aE9yUGFyYW1zO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgPSB1cmxPck9wdGlvbnM7XG4gICAgICBkYXRhUGF0aCA9IHR5cGVvZiBkYXRhUGF0aE9yUGFyYW1zID09PSAnc3RyaW5nJyA/IGRhdGFQYXRoT3JQYXJhbXMgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXBpRXhlY3V0aW9uU2VydmljZVxuICAgICAgLmV4ZWN1dGVBcGkoXG4gICAgICAgIHtcbiAgICAgICAgICBlbmRwb2ludDogdXJsLFxuICAgICAgICAgIGRhdGFQYXRoLFxuICAgICAgICAgIG1ldGhvZDogbWVyZ2VkT3B0aW9ucz8ubWV0aG9kLFxuICAgICAgICAgIGhlYWRlcnM6IG1lcmdlZE9wdGlvbnM/LmhlYWRlcnMsXG4gICAgICAgICAgdXNlUHJveHk6IG1lcmdlZE9wdGlvbnM/LnVzZVByb3h5LFxuICAgICAgICB9LFxuICAgICAgICBtZXJnZWRQYXJhbXNcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJvd3MpID0+IHtcbiAgICAgICAgICBpZiAocm93cyAmJiByb3dzLmxlbmd0aCA+IDAgJiYgdHlwZW9mIHJvd3NbMF0gPT09ICdvYmplY3QnICYmIHJvd3NbMF0gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0Um93ID0gcm93c1swXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmaXJzdFJvdyk7XG4gICAgICAgICAgICByZXR1cm4ga2V5cy5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2YWwgPSBmaXJzdFJvd1trZXldO1xuICAgICAgICAgICAgICBsZXQgdHlwZTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJyA9ICdzdHJpbmcnO1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHR5cGUgPSAnbnVtYmVyJztcbiAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2Jvb2xlYW4nKSB0eXBlID0gJ2Jvb2xlYW4nO1xuICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9Ly50ZXN0KHZhbCkpIHR5cGUgPSAnZGF0ZSc7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgICAgIGxhYmVsOiBodW1hbml6ZUlkZW50aWZpZXIoa2V5KSxcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsaWduOiAodHlwZSA9PT0gJ251bWJlcicgPyAncmlnaHQnIDogJ2xlZnQnKSBhcyAncmlnaHQnIHwgJ2xlZnQnLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgW1JlcG9ydERhdGFEaXNjb3ZlcnlTZXJ2aWNlXSBBUEkgY29sdW1uIGRldGVjdGlvbiBmYWlsZWQgZm9yICR7dXJsfTpgLCBlcnIpO1xuICAgICAgICAgIGNvbnN0IG1zZyA9IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyPy5tZXNzYWdlIHx8ICdBUEkgcXVlcnkgZmFpbGVkJztcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IobXNnKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBTdGF0aWNDb2x1bW5zVG9HcmlkKGNvbHM6IEVudGl0eUNvbHVtbk1ldGFkYXRhW10pOiBHcmlkQ29sdW1uRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gY29scy5tYXAoKGMpID0+ICh7XG4gICAgICBmaWVsZDogYy5maWVsZCxcbiAgICAgIGxhYmVsOiBodW1hbml6ZUlkZW50aWZpZXIoYy5sYWJlbCB8fCBjLmZpZWxkKSxcbiAgICAgIGRhdGFUeXBlOiAoYy5kYXRhVHlwZSBhcyBhbnkpIHx8ICdzdHJpbmcnLFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgYWxpZ246IGMuZGF0YVR5cGUgPT09ICdudW1iZXInID8gJ3JpZ2h0JyA6ICdsZWZ0JyxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGZhbGxiYWNrRHluYW1pY0RldGVjdGlvbihcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlVHlwZTogJ3RhYmxlJyB8ICdzdG9yZWRfcHJvY2VkdXJlJyxcbiAgICBtYXBwaW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgc2NoZW1hID0gJ2RibydcbiAgKTogT2JzZXJ2YWJsZTxHcmlkQ29sdW1uRGVmaW5pdGlvbltdPiB7XG4gICAgaWYgKCF0aGlzLmxvb2t1cEFkYXB0ZXIpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvblNlcnZpY2U/LmdldEN1cnJlbnRTZXNzaW9uQ29udGV4dCgpID8/IHt9O1xuICAgIGNvbnN0IHJlc29sdmVkUGFyYW1zID0gcmVzb2x2ZVBhcmFtZXRlck1hcHBpbmdzKG1hcHBpbmdzIGFzIGFueSwgc2Vzc2lvbiwge30pO1xuXG4gICAgcmV0dXJuIHRoaXMubG9va3VwQWRhcHRlclxuICAgICAgLmZldGNoT3B0aW9ucyh7XG4gICAgICAgIHNvdXJjZVR5cGU6IChzb3VyY2VUeXBlID09PSAnc3RvcmVkX3Byb2NlZHVyZScgPyAncHJvY2VkdXJlJyA6IHNvdXJjZVR5cGUpIGFzIERyb3Bkb3duU291cmNlVHlwZSxcbiAgICAgICAgZW50aXR5TmFtZSxcbiAgICAgICAgc2NoZW1hLFxuICAgICAgICB2YWx1ZUZpZWxkOiAnJyxcbiAgICAgICAgZGlzcGxheUZpZWxkOiAnJyxcbiAgICAgICAgcGFyYW1ldGVyczogcmVzb2x2ZWRQYXJhbXMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCAmJiBpdGVtc1swXS5yYXcpIHtcbiAgICAgICAgICAgIGNvbnN0IHNhbXBsZVJvdyA9IGl0ZW1zWzBdLnJhdyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzYW1wbGVSb3cpLmZpbHRlcigoaykgPT4gay50cmltKCkubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBrZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gc2FtcGxlUm93W2tleV07XG4gICAgICAgICAgICAgICAgbGV0IHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgfCAnYm9vbGVhbicgPSAnc3RyaW5nJztcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHR5cGUgPSAnbnVtYmVyJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnYm9vbGVhbicpIHR5cGUgPSAnYm9vbGVhbic7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgL15cXGR7NH0tXFxkezJ9LVxcZHsyfS8udGVzdCh2YWwpKSB0eXBlID0gJ2RhdGUnO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBrZXksXG4gICAgICAgICAgICAgICAgICBsYWJlbDogaHVtYW5pemVJZGVudGlmaWVyKGtleSksXG4gICAgICAgICAgICAgICAgICBkYXRhVHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFsaWduOiAodHlwZSA9PT0gJ251bWJlcicgPyAncmlnaHQnIDogJ2xlZnQnKSBhcyAncmlnaHQnIHwgJ2xlZnQnLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFtSZXBvcnREYXRhRGlzY292ZXJ5U2VydmljZV0gRHluYW1pYyBzYW1wbGUgZGV0ZWN0aW9uIGZhaWxlZCBmb3IgJHtlbnRpdHlOYW1lfTpgLCBlcnIpO1xuICAgICAgICAgIGNvbnN0IGVycm9yTXNnID1cbiAgICAgICAgICAgIGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICAgIGVycj8ubWVzc2FnZSB8fFxuICAgICAgICAgICAgYERhdGFiYXNlIHF1ZXJ5IGZhaWxlZCBmb3IgJHtlbnRpdHlOYW1lfS5gO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvck1zZykpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -10,6 +10,7 @@ import { throwError } from 'rxjs';
10
10
  import { catchError, map } from 'rxjs/operators';
11
11
  import { ReportDataSourceAdapter } from '../contracts/data-source.contract';
12
12
  import { ReportSessionContextService } from '../../core/services/report-session-context.service';
13
+ import { ReportApiExecutionService } from '../../core/services/report-api-execution.service';
13
14
  import { extractRowArray } from '../../core/utils/data-normalization.util';
14
15
  import { BWAYS_REPORT_ENDPOINTS } from './endpoint-tokens';
15
16
  import * as i0 from "@angular/core";
@@ -17,7 +18,18 @@ export class EndpointDataSourceAdapter extends ReportDataSourceAdapter {
17
18
  http = inject(HttpClient);
18
19
  endpoints = inject(BWAYS_REPORT_ENDPOINTS);
19
20
  sessionService = inject(ReportSessionContextService, { optional: true });
21
+ apiExecutionService = inject(ReportApiExecutionService, { optional: true });
20
22
  execute(dataSource, parameters) {
23
+ if (this.isApiSource(dataSource) && this.apiExecutionService) {
24
+ return this.apiExecutionService.executeApi({
25
+ endpoint: dataSource.endpoint || dataSource.name,
26
+ method: dataSource.method,
27
+ dataPath: dataSource.dataPath,
28
+ headers: dataSource.headers,
29
+ useProxy: dataSource.useProxy,
30
+ bodyTemplate: dataSource.bodyTemplate,
31
+ }, parameters);
32
+ }
21
33
  const session = this.sessionService?.sessionContext() ?? {};
22
34
  let headers = new HttpHeaders();
23
35
  if (session['companyId'] !== undefined && session['companyId'] !== null) {
@@ -60,10 +72,21 @@ export class EndpointDataSourceAdapter extends ReportDataSourceAdapter {
60
72
  return 'procedure';
61
73
  return 'table';
62
74
  }
75
+ isApiSource(ds) {
76
+ if (ds.type === 'api')
77
+ return true;
78
+ const ep = (ds.endpoint || ds.name || '').trim();
79
+ if (ep.startsWith('http://') || ep.startsWith('https://'))
80
+ return true;
81
+ if (ds.type !== 'table' && ds.type !== 'view' && ds.type !== 'stored_procedure' && ep.startsWith('/')) {
82
+ return true;
83
+ }
84
+ return false;
85
+ }
63
86
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EndpointDataSourceAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
64
87
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EndpointDataSourceAdapter });
65
88
  }
66
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EndpointDataSourceAdapter, decorators: [{
67
90
  type: Injectable
68
91
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtZGF0YXNvdXJjZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvYWRhcHRlcnMvZW5kcG9pbnQtZGF0YXNvdXJjZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQWUzRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsdUJBQXVCO0lBQ25ELElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzNDLGNBQWMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxRixPQUFPLENBQ0wsVUFBc0MsRUFDdEMsVUFBbUM7UUFFbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFNUQsSUFBSSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hFLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0RSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJO1lBQ0osSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLElBQUk7WUFDNUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLElBQUksS0FBSztZQUNsQyxVQUFVLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRTtZQUM3QixVQUFVLEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksVUFBVSxDQUFDLElBQUk7Z0JBQ3BDLElBQUksRUFBRSxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQztnQkFDOUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLElBQUk7Z0JBQzVDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUs7YUFDbkM7WUFDRCxjQUFjLEVBQUUsT0FBTztTQUN4QixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBVSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUNuRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDNUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQztZQUM3RSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUFDLEVBQThCO1FBQ2hELElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxrQkFBa0I7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUN6RCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFDdkQsSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU07WUFBRSxPQUFPLE9BQU8sQ0FBQztRQUM5RCwyREFBMkQ7UUFDM0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFDMUUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzt3R0FyRFUseUJBQXlCOzRHQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVuZHBvaW50LWJhc2VkIGRhdGEgc291cmNlIGFkYXB0ZXIuXG4gKlxuICogQ2FsbHMgdGhlIGBleGVjdXRlRW5kcG9pbnRgIGRpcmVjdGx5IHdpdGggYSBub3JtYWxpemVkIHBheWxvYWQuXG4gKiBSZXBsYWNlcyB0aGUgYGFwaUJhc2VVcmwgKyAvZXhlY3V0ZWAgcGF0dGVybi5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXIgfSBmcm9tICcuLi9jb250cmFjdHMvZGF0YS1zb3VyY2UuY29udHJhY3QnO1xuaW1wb3J0IHsgUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBleHRyYWN0Um93QXJyYXkgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2RhdGEtbm9ybWFsaXphdGlvbi51dGlsJztcbmltcG9ydCB7IEJXQVlTX1JFUE9SVF9FTkRQT0lOVFMgfSBmcm9tICcuL2VuZHBvaW50LXRva2Vucyc7XG5cbi8qKlxuICogUmVxdWVzdCBwYXlsb2FkIGZvciB0aGUgc2ltcGxpZmllZCBleGVjdXRlIGVuZHBvaW50LlxuICovXG5pbnRlcmZhY2UgRW5kcG9pbnRFeGVjdXRlUGF5bG9hZCB7XG4gIGtpbmQ6ICdwcm9jZWR1cmUnIHwgJ3RhYmxlJztcbiAgbmFtZTogc3RyaW5nO1xuICBzY2hlbWE6IHN0cmluZztcbiAgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbiAgdG9wPzogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW5kcG9pbnREYXRhU291cmNlQWRhcHRlciBleHRlbmRzIFJlcG9ydERhdGFTb3VyY2VBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50cyA9IGluamVjdChCV0FZU19SRVBPUlRfRU5EUE9JTlRTKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU2VydmljZSA9IGluamVjdChSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgZXhlY3V0ZShcbiAgICBkYXRhU291cmNlOiBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbixcbiAgICBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25TZXJ2aWNlPy5zZXNzaW9uQ29udGV4dCgpID8/IHt9O1xuXG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBpZiAoc2Vzc2lvblsnY29tcGFueUlkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydjb21wYW55SWQnXSAhPT0gbnVsbCkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdYLUNvbXBhbnktSWQnLCBTdHJpbmcoc2Vzc2lvblsnY29tcGFueUlkJ10pKTtcbiAgICB9XG4gICAgaWYgKHNlc3Npb25bJ2JyYW5jaElkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydicmFuY2hJZCddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtQnJhbmNoLUlkJywgU3RyaW5nKHNlc3Npb25bJ2JyYW5jaElkJ10pKTtcbiAgICB9XG5cbiAgICBjb25zdCBraW5kID0gdGhpcy5yZXNvbHZlS2luZChkYXRhU291cmNlKTtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAga2luZCxcbiAgICAgIG5hbWU6IGRhdGFTb3VyY2UuZW5kcG9pbnQgfHwgZGF0YVNvdXJjZS5uYW1lLFxuICAgICAgc2NoZW1hOiBkYXRhU291cmNlLnNjaGVtYSA/PyAnZGJvJyxcbiAgICAgIHBhcmFtZXRlcnM6IHsgLi4ucGFyYW1ldGVycyB9LFxuICAgICAgZGF0YVNvdXJjZToge1xuICAgICAgICBpZDogZGF0YVNvdXJjZS5pZCB8fCBkYXRhU291cmNlLm5hbWUsXG4gICAgICAgIHR5cGU6IGtpbmQgPT09ICdwcm9jZWR1cmUnID8gJ3N0b3JlZF9wcm9jZWR1cmUnIDogKGRhdGFTb3VyY2UudHlwZSB8fCAndGFibGUnKSxcbiAgICAgICAgbmFtZTogZGF0YVNvdXJjZS5lbmRwb2ludCB8fCBkYXRhU291cmNlLm5hbWUsXG4gICAgICAgIHNjaGVtYTogZGF0YVNvdXJjZS5zY2hlbWEgPz8gJ2RibycsXG4gICAgICB9LFxuICAgICAgc2Vzc2lvbkNvbnRleHQ6IHNlc3Npb24sXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHVua25vd24+KHRoaXMuZW5kcG9pbnRzLmV4ZWN1dGVFbmRwb2ludCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gZXh0cmFjdFJvd0FycmF5KHJlc3BvbnNlKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1zZyA9IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyPy5tZXNzYWdlIHx8ICdSZXBvcnQgZXhlY3V0aW9uIGZhaWxlZCc7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKEFycmF5LmlzQXJyYXkobXNnKSA/IG1zZy5qb2luKCcsICcpIDogbXNnKSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlS2luZChkczogUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24pOiAncHJvY2VkdXJlJyB8ICd0YWJsZScge1xuICAgIGlmIChkcy5tZXRob2QgPT09ICdTVE9SRURfUFJPQ0VEVVJFJykgcmV0dXJuICdwcm9jZWR1cmUnO1xuICAgIGlmIChkcy50eXBlID09PSAnc3RvcmVkX3Byb2NlZHVyZScpIHJldHVybiAncHJvY2VkdXJlJztcbiAgICBpZiAoZHMudHlwZSA9PT0gJ3RhYmxlJyB8fCBkcy50eXBlID09PSAndmlldycpIHJldHVybiAndGFibGUnO1xuICAgIC8vIEhldXJpc3RpYzogbmFtZXMgc3RhcnRpbmcgd2l0aCB1c3BfIC8gc3BfIGFyZSBwcm9jZWR1cmVzXG4gICAgY29uc3QgbmFtZSA9IChkcy5lbmRwb2ludCB8fCBkcy5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoJ3VzcF8nKSB8fCBuYW1lLnN0YXJ0c1dpdGgoJ3NwXycpKSByZXR1cm4gJ3Byb2NlZHVyZSc7XG4gICAgcmV0dXJuICd0YWJsZSc7XG4gIH1cbn1cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtZGF0YXNvdXJjZS5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvYWRhcHRlcnMvZW5kcG9pbnQtZGF0YXNvdXJjZS5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDakcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQWUzRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsdUJBQXVCO0lBQ25ELElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzNDLGNBQWMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RSxtQkFBbUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENB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QUFDLElBQUksS0FBSyxrQkFBa0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEcsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQTlFVSx5QkFBeUI7NEdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW5kcG9pbnQtYmFzZWQgZGF0YSBzb3VyY2UgYWRhcHRlci5cbiAqXG4gKiBDYWxscyB0aGUgYGV4ZWN1dGVFbmRwb2ludGAgZGlyZWN0bHkgd2l0aCBhIG5vcm1hbGl6ZWQgcGF5bG9hZC5cbiAqIFJlcGxhY2VzIHRoZSBgYXBpQmFzZVVybCArIC9leGVjdXRlYCBwYXR0ZXJuLlxuICovXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB9IGZyb20gJy4uL2NvbnRyYWN0cy9kYXRhLXNvdXJjZS5jb250cmFjdCc7XG5pbXBvcnQgeyBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1kYXRhc291cmNlLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9ydEFwaUV4ZWN1dGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1hcGktZXhlY3V0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZXh0cmFjdFJvd0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9kYXRhLW5vcm1hbGl6YXRpb24udXRpbCc7XG5pbXBvcnQgeyBCV0FZU19SRVBPUlRfRU5EUE9JTlRTIH0gZnJvbSAnLi9lbmRwb2ludC10b2tlbnMnO1xuXG4vKipcbiAqIFJlcXVlc3QgcGF5bG9hZCBmb3IgdGhlIHNpbXBsaWZpZWQgZXhlY3V0ZSBlbmRwb2ludC5cbiAqL1xuaW50ZXJmYWNlIEVuZHBvaW50RXhlY3V0ZVBheWxvYWQge1xuICBraW5kOiAncHJvY2VkdXJlJyB8ICd0YWJsZSc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2NoZW1hOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb2x1bW5zPzogc3RyaW5nW107XG4gIHRvcD86IG51bWJlcjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVuZHBvaW50RGF0YVNvdXJjZUFkYXB0ZXIgZXh0ZW5kcyBSZXBvcnREYXRhU291cmNlQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludHMgPSBpbmplY3QoQldBWVNfUkVQT1JUX0VORFBPSU5UUyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwaUV4ZWN1dGlvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBleGVjdXRlKFxuICAgIGRhdGFTb3VyY2U6IFJlcG9ydERhdGFTb3VyY2VEZWZpbml0aW9uLFxuICAgIHBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgaWYgKHRoaXMuaXNBcGlTb3VyY2UoZGF0YVNvdXJjZSkgJiYgdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlLmV4ZWN1dGVBcGkoXG4gICAgICAgIHtcbiAgICAgICAgICBlbmRwb2ludDogZGF0YVNvdXJjZS5lbmRwb2ludCB8fCBkYXRhU291cmNlLm5hbWUsXG4gICAgICAgICAgbWV0aG9kOiBkYXRhU291cmNlLm1ldGhvZCBhcyBhbnksXG4gICAgICAgICAgZGF0YVBhdGg6IGRhdGFTb3VyY2UuZGF0YVBhdGgsXG4gICAgICAgICAgaGVhZGVyczogZGF0YVNvdXJjZS5oZWFkZXJzLFxuICAgICAgICAgIHVzZVByb3h5OiBkYXRhU291cmNlLnVzZVByb3h5LFxuICAgICAgICAgIGJvZHlUZW1wbGF0ZTogZGF0YVNvdXJjZS5ib2R5VGVtcGxhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIHBhcmFtZXRlcnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvblNlcnZpY2U/LnNlc3Npb25Db250ZXh0KCkgPz8ge307XG5cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGlmIChzZXNzaW9uWydjb21wYW55SWQnXSAhPT0gdW5kZWZpbmVkICYmIHNlc3Npb25bJ2NvbXBhbnlJZCddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtQ29tcGFueS1JZCcsIFN0cmluZyhzZXNzaW9uWydjb21wYW55SWQnXSkpO1xuICAgIH1cbiAgICBpZiAoc2Vzc2lvblsnYnJhbmNoSWQnXSAhPT0gdW5kZWZpbmVkICYmIHNlc3Npb25bJ2JyYW5jaElkJ10gIT09IG51bGwpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnWC1CcmFuY2gtSWQnLCBTdHJpbmcoc2Vzc2lvblsnYnJhbmNoSWQnXSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGtpbmQgPSB0aGlzLnJlc29sdmVLaW5kKGRhdGFTb3VyY2UpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBraW5kLFxuICAgICAgbmFtZTogZGF0YVNvdXJjZS5lbmRwb2ludCB8fCBkYXRhU291cmNlLm5hbWUsXG4gICAgICBzY2hlbWE6IGRhdGFTb3VyY2Uuc2NoZW1hID8/ICdkYm8nLFxuICAgICAgcGFyYW1ldGVyczogeyAuLi5wYXJhbWV0ZXJzIH0sXG4gICAgICBkYXRhU291cmNlOiB7XG4gICAgICAgIGlkOiBkYXRhU291cmNlLmlkIHx8IGRhdGFTb3VyY2UubmFtZSxcbiAgICAgICAgdHlwZToga2luZCA9PT0gJ3Byb2NlZHVyZScgPyAnc3RvcmVkX3Byb2NlZHVyZScgOiAoZGF0YVNvdXJjZS50eXBlIHx8ICd0YWJsZScpLFxuICAgICAgICBuYW1lOiBkYXRhU291cmNlLmVuZHBvaW50IHx8IGRhdGFTb3VyY2UubmFtZSxcbiAgICAgICAgc2NoZW1hOiBkYXRhU291cmNlLnNjaGVtYSA/PyAnZGJvJyxcbiAgICAgIH0sXG4gICAgICBzZXNzaW9uQ29udGV4dDogc2Vzc2lvbixcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8dW5rbm93bj4odGhpcy5lbmRwb2ludHMuZXhlY3V0ZUVuZHBvaW50LCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiBleHRyYWN0Um93QXJyYXkocmVzcG9uc2UpKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgbXNnID0gZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ1JlcG9ydCBleGVjdXRpb24gZmFpbGVkJztcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoQXJyYXkuaXNBcnJheShtc2cpID8gbXNnLmpvaW4oJywgJykgOiBtc2cpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVLaW5kKGRzOiBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbik6ICdwcm9jZWR1cmUnIHwgJ3RhYmxlJyB7XG4gICAgaWYgKGRzLm1ldGhvZCA9PT0gJ1NUT1JFRF9QUk9DRURVUkUnKSByZXR1cm4gJ3Byb2NlZHVyZSc7XG4gICAgaWYgKGRzLnR5cGUgPT09ICdzdG9yZWRfcHJvY2VkdXJlJykgcmV0dXJuICdwcm9jZWR1cmUnO1xuICAgIGlmIChkcy50eXBlID09PSAndGFibGUnIHx8IGRzLnR5cGUgPT09ICd2aWV3JykgcmV0dXJuICd0YWJsZSc7XG4gICAgLy8gSGV1cmlzdGljOiBuYW1lcyBzdGFydGluZyB3aXRoIHVzcF8gLyBzcF8gYXJlIHByb2NlZHVyZXNcbiAgICBjb25zdCBuYW1lID0gKGRzLmVuZHBvaW50IHx8IGRzLm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgndXNwXycpIHx8IG5hbWUuc3RhcnRzV2l0aCgnc3BfJykpIHJldHVybiAncHJvY2VkdXJlJztcbiAgICByZXR1cm4gJ3RhYmxlJztcbiAgfVxuXG4gIHByaXZhdGUgaXNBcGlTb3VyY2UoZHM6IFJlcG9ydERhdGFTb3VyY2VEZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgaWYgKGRzLnR5cGUgPT09ICdhcGknKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBlcCA9IChkcy5lbmRwb2ludCB8fCBkcy5uYW1lIHx8ICcnKS50cmltKCk7XG4gICAgaWYgKGVwLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fCBlcC5zdGFydHNXaXRoKCdodHRwczovLycpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZHMudHlwZSAhPT0gJ3RhYmxlJyAmJiBkcy50eXBlICE9PSAndmlldycgJiYgZHMudHlwZSAhPT0gJ3N0b3JlZF9wcm9jZWR1cmUnICYmIGVwLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -11,6 +11,7 @@ import { of, throwError } from 'rxjs';
11
11
  import { catchError, finalize, map, shareReplay, tap } from 'rxjs/operators';
12
12
  import { ReportLookupAdapter, } from '../contracts/lookup.contract';
13
13
  import { ReportSessionContextService } from '../../core/services/report-session-context.service';
14
+ import { ReportApiExecutionService } from '../../core/services/report-api-execution.service';
14
15
  import { extractLookupOptionItem, extractRowArray } from '../../core/utils/data-normalization.util';
15
16
  import { BWAYS_REPORT_ENDPOINTS } from './endpoint-tokens';
16
17
  import * as i0 from "@angular/core";
@@ -18,6 +19,7 @@ export class EndpointLookupAdapter extends ReportLookupAdapter {
18
19
  http = inject(HttpClient);
19
20
  endpoints = inject(BWAYS_REPORT_ENDPOINTS);
20
21
  sessionService = inject(ReportSessionContextService, { optional: true });
22
+ apiExecutionService = inject(ReportApiExecutionService, { optional: true });
21
23
  cache = new Map();
22
24
  inFlight = new Map();
23
25
  fetchOptions(request) {
@@ -31,6 +33,26 @@ export class EndpointLookupAdapter extends ReportLookupAdapter {
31
33
  if (running) {
32
34
  return running;
33
35
  }
36
+ // Handle API-based dropdown lookups
37
+ if ((request.sourceType === 'api' || request.apiEndpoint) && this.apiExecutionService) {
38
+ const endpointUrl = request.apiEndpoint || request.entityName || '';
39
+ const obs$ = this.apiExecutionService
40
+ .executeApi({
41
+ endpoint: endpointUrl,
42
+ dataPath: request.dataPath,
43
+ useProxy: request.useProxy,
44
+ }, request.parameters, request.filter)
45
+ .pipe(map((items) => items.map((r) => extractLookupOptionItem(r, request.valueField, request.displayField))), tap((items) => {
46
+ if (items.length > 0) {
47
+ this.cache.set(cacheKey, {
48
+ expiresAt: Date.now() + 600_000,
49
+ data: items,
50
+ });
51
+ }
52
+ }), finalize(() => this.inFlight.delete(cacheKey)), shareReplay(1));
53
+ this.inFlight.set(cacheKey, obs$);
54
+ return obs$;
55
+ }
34
56
  const session = this.sessionService?.sessionContext() ?? {};
35
57
  let headers = new HttpHeaders();
36
58
  if (session['companyId'] !== undefined && session['companyId'] !== null) {
@@ -87,7 +109,7 @@ export class EndpointLookupAdapter extends ReportLookupAdapter {
87
109
  return obs$;
88
110
  }
89
111
  generateCacheKey(req) {
90
- return `${req.sourceType}:${req.entityName}:${req.valueField}:${req.displayField}:${JSON.stringify(req.filter ?? {})}:${JSON.stringify(req.parameters ?? {})}`;
112
+ return `${req.sourceType}:${req.entityName || req.apiEndpoint}:${req.valueField}:${req.displayField}:${req.dataPath ?? ''}:${JSON.stringify(req.filter ?? {})}:${JSON.stringify(req.parameters ?? {})}`;
91
113
  }
92
114
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EndpointLookupAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
93
115
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EndpointLookupAdapter });
@@ -95,4 +117,4 @@ export class EndpointLookupAdapter extends ReportLookupAdapter {
95
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EndpointLookupAdapter, decorators: [{
96
118
  type: Injectable
97
119
  }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtbG9va3VwLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9lbmRwb2ludC1sb29rdXAuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUdMLG1CQUFtQixHQUNwQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQUMzQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLFNBQVMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMzQyxjQUFjLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0lBQ3RDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBMEMsQ0FBQztJQUU5RSxZQUFZLENBQUMsT0FBMkI7UUFDdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV2QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3RFLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1FBQ2xGLE1BQU0sT0FBTyxHQUFHO1lBQ2QseURBQXlEO1lBQ3pELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDcEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3ZGLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUs7WUFDL0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtZQUNsQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksR0FBRztZQUUzQixxQ0FBcUM7WUFDckMsSUFBSTtZQUNKLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDOUIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNuRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxHQUFHO1lBRXpCLDJFQUEyRTtZQUMzRSxVQUFVLEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksV0FBVztnQkFDckMsSUFBSSxFQUFFLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUN6RCxJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFO2dCQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLO2FBQ2hDO1lBQ0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRTtZQUNwQyxjQUFjLEVBQUUsT0FBTztTQUN4QixDQUFDO1FBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDbkIsSUFBSSxDQUFVLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUM5QyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FDN0IsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUNyRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtvQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPO29CQUMvQixJQUFJLEVBQUUsS0FBSztpQkFDWixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztZQUMzRSxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO1FBRUosSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEdBQXVCO1FBQzlDLE9BQU8sR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNqSyxDQUFDO3dHQTdGVSxxQkFBcUI7NEdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW5kcG9pbnQtYmFzZWQgbG9va3VwIGFkYXB0ZXIuXG4gKlxuICogUmV1c2VzIHRoZSBgZXhlY3V0ZUVuZHBvaW50YCB0byBmZXRjaCBkcm9wZG93biBvcHRpb24gcm93cy5cbiAqIE5vIHNlcGFyYXRlIGxvb2t1cCBlbmRwb2ludCBpcyBuZWVkZWQg4oCUIHdlIGp1c3QgUE9TVCB0byB0aGVcbiAqIHNhbWUgZXhlY3V0ZSBlbmRwb2ludCB3aXRoIHRoZSB0YWJsZS9TUCB0aGF0IGJhY2tzIHRoZSBkcm9wZG93bi5cbiAqL1xuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBMb29rdXBPcHRpb25JdGVtLFxuICBMb29rdXBRdWVyeVJlcXVlc3QsXG4gIFJlcG9ydExvb2t1cEFkYXB0ZXIsXG59IGZyb20gJy4uL2NvbnRyYWN0cy9sb29rdXAuY29udHJhY3QnO1xuaW1wb3J0IHsgUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9yZXBvcnQtc2Vzc2lvbi1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0sIGV4dHJhY3RSb3dBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZGF0YS1ub3JtYWxpemF0aW9uLnV0aWwnO1xuaW1wb3J0IHsgQldBWVNfUkVQT1JUX0VORFBPSU5UUyB9IGZyb20gJy4vZW5kcG9pbnQtdG9rZW5zJztcblxuaW50ZXJmYWNlIENhY2hlRW50cnkge1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgZGF0YTogTG9va3VwT3B0aW9uSXRlbVtdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW5kcG9pbnRMb29rdXBBZGFwdGVyIGV4dGVuZHMgUmVwb3J0TG9va3VwQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludHMgPSBpbmplY3QoQldBWVNfUkVQT1JUX0VORFBPSU5UUyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVFbnRyeT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbkZsaWdodCA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPExvb2t1cE9wdGlvbkl0ZW1bXT4+KCk7XG5cbiAgZmV0Y2hPcHRpb25zKHJlcXVlc3Q6IExvb2t1cFF1ZXJ5UmVxdWVzdCk6IE9ic2VydmFibGU8TG9va3VwT3B0aW9uSXRlbVtdPiB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSB0aGlzLmdlbmVyYXRlQ2FjaGVLZXkocmVxdWVzdCk7XG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5jYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cbiAgICBpZiAoY2FjaGVkICYmIGNhY2hlZC5leHBpcmVzQXQgPiBub3cpIHtcbiAgICAgIHJldHVybiBvZihjYWNoZWQuZGF0YSk7XG4gICAgfVxuXG4gICAgY29uc3QgcnVubmluZyA9IHRoaXMuaW5GbGlnaHQuZ2V0KGNhY2hlS2V5KTtcbiAgICBpZiAocnVubmluZykge1xuICAgICAgcmV0dXJuIHJ1bm5pbmc7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvblNlcnZpY2U/LnNlc3Npb25Db250ZXh0KCkgPz8ge307XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBpZiAoc2Vzc2lvblsnY29tcGFueUlkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydjb21wYW55SWQnXSAhPT0gbnVsbCkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdYLUNvbXBhbnktSWQnLCBTdHJpbmcoc2Vzc2lvblsnY29tcGFueUlkJ10pKTtcbiAgICB9XG4gICAgaWYgKHNlc3Npb25bJ2JyYW5jaElkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydicmFuY2hJZCddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtQnJhbmNoLUlkJywgU3RyaW5nKHNlc3Npb25bJ2JyYW5jaElkJ10pKTtcbiAgICB9XG5cbiAgICBjb25zdCBraW5kID0gcmVxdWVzdC5zb3VyY2VUeXBlID09PSAncHJvY2VkdXJlJyA/ICdwcm9jZWR1cmUnIDogJ3RhYmxlJztcbiAgICBjb25zdCB0YXJnZXRVcmwgPSB0aGlzLmVuZHBvaW50cy5sb29rdXBFbmRwb2ludCB8fCB0aGlzLmVuZHBvaW50cy5leGVjdXRlRW5kcG9pbnQ7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIC8vIExvb2t1cCBjb250cmFjdCBmaWVsZHMgKHVzZWQgYnkgL2FwaS9yZXBvcnRpbmcvbG9va3VwKVxuICAgICAgZW50aXR5TmFtZTogcmVxdWVzdC5lbnRpdHlOYW1lID8/ICcnLFxuICAgICAgc291cmNlVHlwZTogcmVxdWVzdC5zb3VyY2VUeXBlID8/IChraW5kID09PSAncHJvY2VkdXJlJyA/ICdzdG9yZWRfcHJvY2VkdXJlJyA6ICd0YWJsZScpLFxuICAgICAgc2NoZW1hOiByZXF1ZXN0LnNjaGVtYSA/PyAnZGJvJyxcbiAgICAgIHZhbHVlRmllbGQ6IHJlcXVlc3QudmFsdWVGaWVsZCxcbiAgICAgIGRpc3BsYXlGaWVsZDogcmVxdWVzdC5kaXNwbGF5RmllbGQsXG4gICAgICBmaWx0ZXI6IHJlcXVlc3QuZmlsdGVyLFxuICAgICAgbGltaXQ6IHJlcXVlc3QubGltaXQgPz8gNTAwLFxuXG4gICAgICAvLyBFeGVjdXRlIHNpbXBsaWZpZWQgY29udHJhY3QgZmllbGRzXG4gICAgICBraW5kLFxuICAgICAgbmFtZTogcmVxdWVzdC5lbnRpdHlOYW1lID8/ICcnLFxuICAgICAgY29sdW1uczogW3JlcXVlc3QudmFsdWVGaWVsZCwgcmVxdWVzdC5kaXNwbGF5RmllbGRdLmZpbHRlcihCb29sZWFuKSxcbiAgICAgIHRvcDogcmVxdWVzdC5saW1pdCA/PyA1MDAsXG5cbiAgICAgIC8vIEV4ZWN1dGUgcmljaCBjb250cmFjdCBmaWVsZHMgKHByZXZlbnRzIFwiZGF0YVNvdXJjZSBzaG91bGQgbm90IGJlIGVtcHR5XCIpXG4gICAgICBkYXRhU291cmNlOiB7XG4gICAgICAgIGlkOiByZXF1ZXN0LmVudGl0eU5hbWUgPz8gJ2RzLWxvb2t1cCcsXG4gICAgICAgIHR5cGU6IGtpbmQgPT09ICdwcm9jZWR1cmUnID8gJ3N0b3JlZF9wcm9jZWR1cmUnIDogJ3RhYmxlJyxcbiAgICAgICAgbmFtZTogcmVxdWVzdC5lbnRpdHlOYW1lID8/ICcnLFxuICAgICAgICBzY2hlbWE6IHJlcXVlc3Quc2NoZW1hID8/ICdkYm8nLFxuICAgICAgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHJlcXVlc3QucGFyYW1ldGVycyA/PyB7fSxcbiAgICAgIHNlc3Npb25Db250ZXh0OiBzZXNzaW9uLFxuICAgIH07XG5cbiAgICBjb25zdCBvYnMkID0gdGhpcy5odHRwXG4gICAgICAucG9zdDx1bmtub3duPih0YXJnZXRVcmwsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCByYXdJdGVtcyA9IGV4dHJhY3RSb3dBcnJheShyZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJhd0l0ZW1zLm1hcCgocjogYW55KSA9PlxuICAgICAgICAgICAgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0ociwgcmVxdWVzdC52YWx1ZUZpZWxkLCByZXF1ZXN0LmRpc3BsYXlGaWVsZClcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKChpdGVtcykgPT4ge1xuICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldChjYWNoZUtleSwge1xuICAgICAgICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyA2MDBfMDAwLFxuICAgICAgICAgICAgICBkYXRhOiBpdGVtcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1zZyA9IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyPy5tZXNzYWdlIHx8ICdMb29rdXAgcmVxdWVzdCBmYWlsZWQnO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihBcnJheS5pc0FycmF5KG1zZykgPyBtc2cuam9pbignLCAnKSA6IG1zZykpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW5GbGlnaHQuZGVsZXRlKGNhY2hlS2V5KTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICAgICk7XG5cbiAgICB0aGlzLmluRmxpZ2h0LnNldChjYWNoZUtleSwgb2JzJCk7XG4gICAgcmV0dXJuIG9icyQ7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FjaGVLZXkocmVxOiBMb29rdXBRdWVyeVJlcXVlc3QpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtyZXEuc291cmNlVHlwZX06JHtyZXEuZW50aXR5TmFtZX06JHtyZXEudmFsdWVGaWVsZH06JHtyZXEuZGlzcGxheUZpZWxkfToke0pTT04uc3RyaW5naWZ5KHJlcS5maWx0ZXIgPz8ge30pfToke0pTT04uc3RyaW5naWZ5KHJlcS5wYXJhbWV0ZXJzID8/IHt9KX1gO1xuICB9XG59XG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtbG9va3VwLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9kYXRhLWFjY2Vzcy9hZGFwdGVycy9lbmRwb2ludC1sb29rdXAuYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUdMLG1CQUFtQixHQUNwQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQUMzQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLFNBQVMsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMzQyxjQUFjLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekUsbUJBQW1CLEdBQUcsTUFB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RGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVuZHBvaW50LWJhc2VkIGxvb2t1cCBhZGFwdGVyLlxuICpcbiAqIFJldXNlcyB0aGUgYGV4ZWN1dGVFbmRwb2ludGAgdG8gZmV0Y2ggZHJvcGRvd24gb3B0aW9uIHJvd3MuXG4gKiBObyBzZXBhcmF0ZSBsb29rdXAgZW5kcG9pbnQgaXMgbmVlZGVkIOKAlCB3ZSBqdXN0IFBPU1QgdG8gdGhlXG4gKiBzYW1lIGV4ZWN1dGUgZW5kcG9pbnQgd2l0aCB0aGUgdGFibGUvU1AgdGhhdCBiYWNrcyB0aGUgZHJvcGRvd24uXG4gKi9cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgbWFwLCBzaGFyZVJlcGxheSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgTG9va3VwT3B0aW9uSXRlbSxcbiAgTG9va3VwUXVlcnlSZXF1ZXN0LFxuICBSZXBvcnRMb29rdXBBZGFwdGVyLFxufSBmcm9tICcuLi9jb250cmFjdHMvbG9va3VwLmNvbnRyYWN0JztcbmltcG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcG9ydEFwaUV4ZWN1dGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3JlcG9ydC1hcGktZXhlY3V0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0sIGV4dHJhY3RSb3dBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZGF0YS1ub3JtYWxpemF0aW9uLnV0aWwnO1xuaW1wb3J0IHsgQldBWVNfUkVQT1JUX0VORFBPSU5UUyB9IGZyb20gJy4vZW5kcG9pbnQtdG9rZW5zJztcblxuaW50ZXJmYWNlIENhY2hlRW50cnkge1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgZGF0YTogTG9va3VwT3B0aW9uSXRlbVtdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW5kcG9pbnRMb29rdXBBZGFwdGVyIGV4dGVuZHMgUmVwb3J0TG9va3VwQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludHMgPSBpbmplY3QoQldBWVNfUkVQT1JUX0VORFBPSU5UUyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwaUV4ZWN1dGlvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlRW50cnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5GbGlnaHQgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxMb29rdXBPcHRpb25JdGVtW10+PigpO1xuXG4gIGZldGNoT3B0aW9ucyhyZXF1ZXN0OiBMb29rdXBRdWVyeVJlcXVlc3QpOiBPYnNlcnZhYmxlPExvb2t1cE9wdGlvbkl0ZW1bXT4ge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gdGhpcy5nZW5lcmF0ZUNhY2hlS2V5KHJlcXVlc3QpO1xuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuY2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gICAgaWYgKGNhY2hlZCAmJiBjYWNoZWQuZXhwaXJlc0F0ID4gbm93KSB7XG4gICAgICByZXR1cm4gb2YoY2FjaGVkLmRhdGEpO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bm5pbmcgPSB0aGlzLmluRmxpZ2h0LmdldChjYWNoZUtleSk7XG4gICAgaWYgKHJ1bm5pbmcpIHtcbiAgICAgIHJldHVybiBydW5uaW5nO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBBUEktYmFzZWQgZHJvcGRvd24gbG9va3Vwc1xuICAgIGlmICgocmVxdWVzdC5zb3VyY2VUeXBlID09PSAnYXBpJyB8fCByZXF1ZXN0LmFwaUVuZHBvaW50KSAmJiB0aGlzLmFwaUV4ZWN1dGlvblNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGVuZHBvaW50VXJsID0gcmVxdWVzdC5hcGlFbmRwb2ludCB8fCByZXF1ZXN0LmVudGl0eU5hbWUgfHwgJyc7XG4gICAgICBjb25zdCBvYnMkID0gdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlXG4gICAgICAgIC5leGVjdXRlQXBpKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludFVybCxcbiAgICAgICAgICAgIGRhdGFQYXRoOiByZXF1ZXN0LmRhdGFQYXRoLFxuICAgICAgICAgICAgdXNlUHJveHk6IHJlcXVlc3QudXNlUHJveHksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1ZXN0LnBhcmFtZXRlcnMgYXMgYW55LFxuICAgICAgICAgIHJlcXVlc3QuZmlsdGVyIGFzIGFueVxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoaXRlbXMpID0+XG4gICAgICAgICAgICBpdGVtcy5tYXAoKHI6IGFueSkgPT5cbiAgICAgICAgICAgICAgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0ociwgcmVxdWVzdC52YWx1ZUZpZWxkLCByZXF1ZXN0LmRpc3BsYXlGaWVsZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIHRhcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgNjAwXzAwMCxcbiAgICAgICAgICAgICAgICBkYXRhOiBpdGVtcyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pbkZsaWdodC5kZWxldGUoY2FjaGVLZXkpKSxcbiAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuXG4gICAgICB0aGlzLmluRmxpZ2h0LnNldChjYWNoZUtleSwgb2JzJCk7XG4gICAgICByZXR1cm4gb2JzJDtcbiAgICB9XG5cbiAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5zZXNzaW9uU2VydmljZT8uc2Vzc2lvbkNvbnRleHQoKSA/PyB7fTtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGlmIChzZXNzaW9uWydjb21wYW55SWQnXSAhPT0gdW5kZWZpbmVkICYmIHNlc3Npb25bJ2NvbXBhbnlJZCddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtQ29tcGFueS1JZCcsIFN0cmluZyhzZXNzaW9uWydjb21wYW55SWQnXSkpO1xuICAgIH1cbiAgICBpZiAoc2Vzc2lvblsnYnJhbmNoSWQnXSAhPT0gdW5kZWZpbmVkICYmIHNlc3Npb25bJ2JyYW5jaElkJ10gIT09IG51bGwpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnWC1CcmFuY2gtSWQnLCBTdHJpbmcoc2Vzc2lvblsnYnJhbmNoSWQnXSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGtpbmQgPSByZXF1ZXN0LnNvdXJjZVR5cGUgPT09ICdwcm9jZWR1cmUnID8gJ3Byb2NlZHVyZScgOiAndGFibGUnO1xuICAgIGNvbnN0IHRhcmdldFVybCA9IHRoaXMuZW5kcG9pbnRzLmxvb2t1cEVuZHBvaW50IHx8IHRoaXMuZW5kcG9pbnRzLmV4ZWN1dGVFbmRwb2ludDtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgLy8gTG9va3VwIGNvbnRyYWN0IGZpZWxkcyAodXNlZCBieSAvYXBpL3JlcG9ydGluZy9sb29rdXApXG4gICAgICBlbnRpdHlOYW1lOiByZXF1ZXN0LmVudGl0eU5hbWUgPz8gJycsXG4gICAgICBzb3VyY2VUeXBlOiByZXF1ZXN0LnNvdXJjZVR5cGUgPz8gKGtpbmQgPT09ICdwcm9jZWR1cmUnID8gJ3N0b3JlZF9wcm9jZWR1cmUnIDogJ3RhYmxlJyksXG4gICAgICBzY2hlbWE6IHJlcXVlc3Quc2NoZW1hID8/ICdkYm8nLFxuICAgICAgdmFsdWVGaWVsZDogcmVxdWVzdC52YWx1ZUZpZWxkLFxuICAgICAgZGlzcGxheUZpZWxkOiByZXF1ZXN0LmRpc3BsYXlGaWVsZCxcbiAgICAgIGZpbHRlcjogcmVxdWVzdC5maWx0ZXIsXG4gICAgICBsaW1pdDogcmVxdWVzdC5saW1pdCA/PyA1MDAsXG5cbiAgICAgIC8vIEV4ZWN1dGUgc2ltcGxpZmllZCBjb250cmFjdCBmaWVsZHNcbiAgICAgIGtpbmQsXG4gICAgICBuYW1lOiByZXF1ZXN0LmVudGl0eU5hbWUgPz8gJycsXG4gICAgICBjb2x1bW5zOiBbcmVxdWVzdC52YWx1ZUZpZWxkLCByZXF1ZXN0LmRpc3BsYXlGaWVsZF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgdG9wOiByZXF1ZXN0LmxpbWl0ID8/IDUwMCxcblxuICAgICAgLy8gRXhlY3V0ZSByaWNoIGNvbnRyYWN0IGZpZWxkcyAocHJldmVudHMgXCJkYXRhU291cmNlIHNob3VsZCBub3QgYmUgZW1wdHlcIilcbiAgICAgIGRhdGFTb3VyY2U6IHtcbiAgICAgICAgaWQ6IHJlcXVlc3QuZW50aXR5TmFtZSA/PyAnZHMtbG9va3VwJyxcbiAgICAgICAgdHlwZToga2luZCA9PT0gJ3Byb2NlZHVyZScgPyAnc3RvcmVkX3Byb2NlZHVyZScgOiAndGFibGUnLFxuICAgICAgICBuYW1lOiByZXF1ZXN0LmVudGl0eU5hbWUgPz8gJycsXG4gICAgICAgIHNjaGVtYTogcmVxdWVzdC5zY2hlbWEgPz8gJ2RibycsXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczogcmVxdWVzdC5wYXJhbWV0ZXJzID8/IHt9LFxuICAgICAgc2Vzc2lvbkNvbnRleHQ6IHNlc3Npb24sXG4gICAgfTtcblxuICAgIGNvbnN0IG9icyQgPSB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHVua25vd24+KHRhcmdldFVybCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJhd0l0ZW1zID0gZXh0cmFjdFJvd0FycmF5KHJlc3BvbnNlKTtcbiAgICAgICAgICByZXR1cm4gcmF3SXRlbXMubWFwKChyOiBhbnkpID0+XG4gICAgICAgICAgICBleHRyYWN0TG9va3VwT3B0aW9uSXRlbShyLCByZXF1ZXN0LnZhbHVlRmllbGQsIHJlcXVlc3QuZGlzcGxheUZpZWxkKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIDYwMF8wMDAsXG4gICAgICAgICAgICAgIGRhdGE6IGl0ZW1zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgbXNnID0gZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ0xvb2t1cCByZXF1ZXN0IGZhaWxlZCc7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKEFycmF5LmlzQXJyYXkobXNnKSA/IG1zZy5qb2luKCcsICcpIDogbXNnKSk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbkZsaWdodC5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgKTtcblxuICAgIHRoaXMuaW5GbGlnaHQuc2V0KGNhY2hlS2V5LCBvYnMkKTtcbiAgICByZXR1cm4gb2JzJDtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDYWNoZUtleShyZXE6IExvb2t1cFF1ZXJ5UmVxdWVzdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3JlcS5zb3VyY2VUeXBlfToke3JlcS5lbnRpdHlOYW1lIHx8IHJlcS5hcGlFbmRwb2ludH06JHtyZXEudmFsdWVGaWVsZH06JHtyZXEuZGlzcGxheUZpZWxkfToke3JlcS5kYXRhUGF0aCA/PyAnJ306JHtKU09OLnN0cmluZ2lmeShyZXEuZmlsdGVyID8/IHt9KX06JHtKU09OLnN0cmluZ2lmeShyZXEucGFyYW1ldGVycyA/PyB7fSl9YDtcbiAgfVxufVxuIl19
@@ -9,4 +9,4 @@ import { InjectionToken } from '@angular/core';
9
9
  * Injection token for the endpoint URLs.
10
10
  */
11
11
  export const BWAYS_REPORT_ENDPOINTS = new InjectionToken('BWAYS_REPORT_ENDPOINTS');
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtdG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvYWRhcHRlcnMvZW5kcG9pbnQtdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWEvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW5qZWN0aW9uIHRva2VucyBmb3IgdGhlIGVuZHBvaW50LWJhc2VkIGFkYXB0ZXIgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBXaGVuIHRoZSBkZXZlbG9wZXIgdXNlcyBgQndheXNSZXBvcnRDb25maWdgIChzaW1wbGUgY29uZmlnKSwgdGhlc2UgdG9rZW5zXG4gKiBhcmUgcG9wdWxhdGVkIHdpdGggdGhlIGVuZHBvaW50IFVSTHMgc28gYWRhcHRlcnMgY2FuIGluamVjdCB0aGVtLlxuICovXG5cbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRW5kcG9pbnQgVVJMcyB1c2VkIGJ5IHRoZSBlbmRwb2ludC1iYXNlZCBhZGFwdGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCd2F5c1JlcG9ydEVuZHBvaW50cyB7XG4gIHNwRW5kcG9pbnQ6IHN0cmluZztcbiAgdGFibGVzRW5kcG9pbnQ6IHN0cmluZztcbiAgZXhlY3V0ZUVuZHBvaW50OiBzdHJpbmc7XG4gIGxvb2t1cEVuZHBvaW50Pzogc3RyaW5nIHwgbnVsbDtcbiAgcmVwb3J0c0VuZHBvaW50OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgdGhlIGVuZHBvaW50IFVSTHMuXG4gKi9cbmV4cG9ydCBjb25zdCBCV0FZU19SRVBPUlRfRU5EUE9JTlRTID0gbmV3IEluamVjdGlvblRva2VuPEJ3YXlzUmVwb3J0RW5kcG9pbnRzPihcbiAgJ0JXQVlTX1JFUE9SVF9FTkRQT0lOVFMnXG4pO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQtdG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvYWRhcHRlcnMvZW5kcG9pbnQtdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdCL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsd0JBQXdCLENBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEluamVjdGlvbiB0b2tlbnMgZm9yIHRoZSBlbmRwb2ludC1iYXNlZCBhZGFwdGVyIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogV2hlbiB0aGUgZGV2ZWxvcGVyIHVzZXMgYEJ3YXlzUmVwb3J0Q29uZmlnYCAoc2ltcGxlIGNvbmZpZyksIHRoZXNlIHRva2Vuc1xuICogYXJlIHBvcHVsYXRlZCB3aXRoIHRoZSBlbmRwb2ludCBVUkxzIHNvIGFkYXB0ZXJzIGNhbiBpbmplY3QgdGhlbS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwb3J0QXBpRW5kcG9pbnREZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvcmVwb3J0LWFwaS1lbmRwb2ludC5tb2RlbCc7XG5cbi8qKlxuICogRW5kcG9pbnQgVVJMcyB1c2VkIGJ5IHRoZSBlbmRwb2ludC1iYXNlZCBhZGFwdGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCd2F5c1JlcG9ydEVuZHBvaW50cyB7XG4gIHNwRW5kcG9pbnQ6IHN0cmluZztcbiAgdGFibGVzRW5kcG9pbnQ6IHN0cmluZztcbiAgZXhlY3V0ZUVuZHBvaW50OiBzdHJpbmc7XG4gIGxvb2t1cEVuZHBvaW50Pzogc3RyaW5nIHwgbnVsbDtcbiAgcmVwb3J0c0VuZHBvaW50OiBzdHJpbmcgfCBudWxsO1xuICBhcGlzRW5kcG9pbnQ/OiBzdHJpbmcgfCBudWxsO1xuICBhcGlFbmRwb2ludHM/OiBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb25bXTtcbn1cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIHRoZSBlbmRwb2ludCBVUkxzLlxuICovXG5leHBvcnQgY29uc3QgQldBWVNfUkVQT1JUX0VORFBPSU5UUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCd2F5c1JlcG9ydEVuZHBvaW50cz4oXG4gICdCV0FZU19SRVBPUlRfRU5EUE9JTlRTJ1xuKTtcbiJdfQ==
@@ -5,16 +5,18 @@ import { catchError, finalize, map, shareReplay, tap } from 'rxjs/operators';
5
5
  import { ReportLookupAdapter, } from '../contracts/lookup.contract';
6
6
  import { REPORTING_CONFIG } from '../../core/tokens/reporting-config.token';
7
7
  import { ReportSessionContextService } from '../../core/services/report-session-context.service';
8
+ import { ReportApiExecutionService } from '../../core/services/report-api-execution.service';
8
9
  import { extractLookupOptionItem, extractRowArray } from '../../core/utils/data-normalization.util';
9
10
  import * as i0 from "@angular/core";
10
11
  /**
11
- * Built-in HTTP adapter for fetching dropdown options from backend database tables and SPs.
12
+ * Built-in HTTP adapter for fetching dropdown options from backend database tables, SPs, and REST APIs.
12
13
  * Includes in-memory caching with TTL, in-flight request deduplication, and fallback mock data.
13
14
  */
14
15
  export class HttpReportLookupAdapter extends ReportLookupAdapter {
15
16
  http = inject(HttpClient, { optional: true });
16
17
  config = inject(REPORTING_CONFIG, { optional: true });
17
18
  sessionService = inject(ReportSessionContextService, { optional: true });
19
+ apiExecutionService = inject(ReportApiExecutionService, { optional: true });
18
20
  cache = new Map();
19
21
  inFlight = new Map();
20
22
  mockDataStore = {
@@ -67,6 +69,27 @@ export class HttpReportLookupAdapter extends ReportLookupAdapter {
67
69
  if (running) {
68
70
  return running;
69
71
  }
72
+ // Handle API-based dropdown lookups
73
+ if ((request.sourceType === 'api' || request.apiEndpoint) && this.apiExecutionService) {
74
+ const endpointUrl = request.apiEndpoint || request.entityName || '';
75
+ const obs$ = this.apiExecutionService
76
+ .executeApi({
77
+ endpoint: endpointUrl,
78
+ dataPath: request.dataPath,
79
+ useProxy: request.useProxy,
80
+ }, request.parameters, request.filter)
81
+ .pipe(map((items) => items.map((r) => extractLookupOptionItem(r, request.valueField, request.displayField))), tap((items) => {
82
+ if (items.length > 0)
83
+ this.setCache(cacheKey, items, 600);
84
+ }), catchError((err) => {
85
+ const msg = err?.error?.message || err?.message || 'API lookup request failed';
86
+ return throwError(() => new Error(Array.isArray(msg) ? msg.join(', ') : msg));
87
+ }), finalize(() => {
88
+ this.inFlight.delete(cacheKey);
89
+ }), shareReplay({ bufferSize: 1, refCount: true }));
90
+ this.inFlight.set(cacheKey, obs$);
91
+ return obs$;
92
+ }
70
93
  const baseUrl = this.config?.apiBaseUrl;
71
94
  if (baseUrl && this.http) {
72
95
  const session = this.sessionService?.sessionContext() ?? {};
@@ -104,7 +127,7 @@ export class HttpReportLookupAdapter extends ReportLookupAdapter {
104
127
  });
105
128
  }
106
129
  generateCacheKey(req) {
107
- return `${req.sourceType}:${req.entityName}:${req.valueField}:${req.displayField}:${JSON.stringify(req.filter ?? {})}:${JSON.stringify(req.parameters ?? {})}`;
130
+ return `${req.sourceType}:${req.entityName || req.apiEndpoint}:${req.valueField}:${req.displayField}:${req.dataPath ?? ''}:${JSON.stringify(req.filter ?? {})}:${JSON.stringify(req.parameters ?? {})}`;
108
131
  }
109
132
  resolveMockOptions(req) {
110
133
  const entity = req.entityName || '';
@@ -119,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
119
142
  }] });
120
143
  /** Convenience alias */
121
144
  export const HttpLookupAdapter = HttpReportLookupAdapter;
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1sb29rdXAuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2h0dHAtbG9va3VwLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFHTCxtQkFBbUIsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBT3BHOzs7R0FHRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDN0MsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEQsY0FBYyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXpFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUN0QyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQTBDLENBQUM7SUFFN0QsYUFBYSxHQUFzRDtRQUNsRixTQUFTLEVBQUU7WUFDVCxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNsRixFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNuRixFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNsRixFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUN0RixFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUNuRixFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUNuRjtRQUNELFFBQVEsRUFBRTtZQUNSLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRTtZQUNuRixFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7WUFDdkUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFO1lBQzNFLEVBQUUsUUFB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Q2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxHQUFHLElBQUk7WUFDekMsSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxHQUF1QjtRQUM5QyxPQUFPLEdBQUcsR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDakssQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQXVCO1FBQ2hELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQzVCLHVCQUF1QixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7d0dBeEhVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQTRIWCx3QkFBd0I7QUFDeEIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBMb29rdXBPcHRpb25JdGVtLFxuICBMb29rdXBRdWVyeVJlcXVlc3QsXG4gIFJlcG9ydExvb2t1cEFkYXB0ZXIsXG59IGZyb20gJy4uL2NvbnRyYWN0cy9sb29rdXAuY29udHJhY3QnO1xuaW1wb3J0IHsgUkVQT1JUSU5HX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvdG9rZW5zL3JlcG9ydGluZy1jb25maWcudG9rZW4nO1xuaW1wb3J0IHsgUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9yZXBvcnQtc2Vzc2lvbi1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0sIGV4dHJhY3RSb3dBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvZGF0YS1ub3JtYWxpemF0aW9uLnV0aWwnO1xuXG5pbnRlcmZhY2UgQ2FjaGVFbnRyeSB7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xuICBkYXRhOiBMb29rdXBPcHRpb25JdGVtW107XG59XG5cbi8qKlxuICogQnVpbHQtaW4gSFRUUCBhZGFwdGVyIGZvciBmZXRjaGluZyBkcm9wZG93biBvcHRpb25zIGZyb20gYmFja2VuZCBkYXRhYmFzZSB0YWJsZXMgYW5kIFNQcy5cbiAqIEluY2x1ZGVzIGluLW1lbW9yeSBjYWNoaW5nIHdpdGggVFRMLCBpbi1mbGlnaHQgcmVxdWVzdCBkZWR1cGxpY2F0aW9uLCBhbmQgZmFsbGJhY2sgbW9jayBkYXRhLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cFJlcG9ydExvb2t1cEFkYXB0ZXIgZXh0ZW5kcyBSZXBvcnRMb29rdXBBZGFwdGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KFJFUE9SVElOR19DT05GSUcsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVFbnRyeT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbkZsaWdodCA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPExvb2t1cE9wdGlvbkl0ZW1bXT4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrRGF0YVN0b3JlOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IFtrZXk6IHN0cmluZ106IHVua25vd24gfT4+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBjdXN0b21lcklkOiAxMDEsIGN1c3RvbWVyTmFtZTogJ0FjbWUgQ29ycG9yYXRpb24nLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTAyLCBjdXN0b21lck5hbWU6ICdHbG9iZXggSW5kdXN0cmllcycsIGJyYW5jaElkOiAyLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDMsIGN1c3RvbWVyTmFtZTogJ0luaXRlY2ggU29mdHdhcmUnLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTA0LCBjdXN0b21lck5hbWU6ICdVbWJyZWxsYSBDb3Jwb3JhdGlvbicsIGJyYW5jaElkOiAzLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDUsIGN1c3RvbWVyTmFtZTogJ1dheW5lIEVudGVycHJpc2VzJywgYnJhbmNoSWQ6IDIsIGlzQWN0aXZlOiB0cnVlIH0sXG4gICAgICB7IGN1c3RvbWVySWQ6IDEwNiwgY3VzdG9tZXJOYW1lOiAnU3RhcmsgSW5kdXN0cmllcycsIGJyYW5jaElkOiAxLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgQnJhbmNoZXM6IFtcbiAgICAgIHsgYnJhbmNoSWQ6IDEsIGJyYW5jaE5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRIChOZXcgWW9yayknLCByZWdpb246ICdOb3J0aCBBbWVyaWNhJyB9LFxuICAgICAgeyBicmFuY2hJZDogMiwgYnJhbmNoTmFtZTogJ0VNRUEgRGl2aXNpb24gKExvbmRvbiknLCByZWdpb246ICdFdXJvcGUnIH0sXG4gICAgICB7IGJyYW5jaElkOiAzLCBicmFuY2hOYW1lOiAnQVBBQyBIdWIgKFNpbmdhcG9yZSknLCByZWdpb246ICdBc2lhIFBhY2lmaWMnIH0sXG4gICAgICB7IGJyYW5jaElkOiA0LCBicmFuY2hOYW1lOiAnTEFUQU0gT2ZmaWNlIChTw6NvIFBhdWxvKScsIHJlZ2lvbjogJ0xhdGluIEFtZXJpY2EnIH0sXG4gICAgXSxcbiAgICBQcm9kdWN0czogW1xuICAgICAgeyBwcm9kdWN0SWQ6IDEsIHByb2R1Y3ROYW1lOiAnRW50ZXJwcmlzZSBFUlAgU3VpdGUnLCBjYXRlZ29yeTogJ1NvZnR3YXJlJywgdW5pdFByaWNlOiAyNDAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMiwgcHJvZHVjdE5hbWU6ICdDbG91ZCBBbmFseXRpY3MgUHJvJywgY2F0ZWdvcnk6ICdTYWFTJywgdW5pdFByaWNlOiAxMjAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMywgcHJvZHVjdE5hbWU6ICdTZWN1cml0eSBTaGllbGQgRW5kcG9pbnQnLCBjYXRlZ29yeTogJ1NlY3VyaXR5JywgdW5pdFByaWNlOiA4NTAgfSxcbiAgICAgIHsgcHJvZHVjdElkOiA0LCBwcm9kdWN0TmFtZTogJ0RlZGljYXRlZCBBUEkgR2F0ZXdheScsIGNhdGVnb3J5OiAnSW5mcmFzdHJ1Y3R1cmUnLCB1bml0UHJpY2U6IDMxMDAgfSxcbiAgICBdLFxuICAgIFBheW1lbnRNZXRob2RzOiBbXG4gICAgICB7IGNvZGU6ICdCQU5LX1RSQU5TRkVSJywgdGl0bGU6ICdEaXJlY3QgQmFuayBXaXJlJyB9LFxuICAgICAgeyBjb2RlOiAnQ1JFRElUX0NBUkQnLCB0aXRsZTogJ0NvcnBvcmF0ZSBDcmVkaXQgQ2FyZCcgfSxcbiAgICAgIHsgY29kZTogJ1BBWVBBTCcsIHRpdGxlOiAnUGF5UGFsIENvcnBvcmF0ZScgfSxcbiAgICAgIHsgY29kZTogJ05FVF8zMCcsIHRpdGxlOiAnTmV0IDMwIEludm9pY2luZycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRDdXN0b21lckxpc3Q6IFtcbiAgICAgIHsgaWQ6IDEwMSwgbmFtZTogJ0FjbWUgQ29ycG9yYXRpb24gKFNQKScsIGJyYW5jaElkOiAxLCBicmFuY2g6ICdOQScgfSxcbiAgICAgIHsgaWQ6IDEwMiwgbmFtZTogJ0dsb2JleCBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMiwgYnJhbmNoOiAnRU1FQScgfSxcbiAgICAgIHsgaWQ6IDEwNSwgbmFtZTogJ1dheW5lIEVudGVycHJpc2VzIChTUCknLCBicmFuY2hJZDogMSwgYnJhbmNoOiAnTkEnIH0sXG4gICAgICB7IGlkOiAxMDYsIG5hbWU6ICdTdGFyayBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMywgYnJhbmNoOiAnQVBBQycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgaWQ6IDEsIG5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRJyB9LFxuICAgICAgeyBpZDogMiwgbmFtZTogJ0VNRUEgRGl2aXNpb24nIH0sXG4gICAgICB7IGlkOiAzLCBuYW1lOiAnQVBBQyBIdWInIH0sXG4gICAgXSxcbiAgfTtcblxuICBmZXRjaE9wdGlvbnMocmVxdWVzdDogTG9va3VwUXVlcnlSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMb29rdXBPcHRpb25JdGVtW10+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KTtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGlmIChjYWNoZWQgJiYgY2FjaGVkLmV4cGlyZXNBdCA+IG5vdykge1xuICAgICAgcmV0dXJuIG9mKGNhY2hlZC5kYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBydW5uaW5nID0gdGhpcy5pbkZsaWdodC5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChydW5uaW5nKSB7XG4gICAgICByZXR1cm4gcnVubmluZztcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5zZXNzaW9uU2VydmljZT8uc2Vzc2lvbkNvbnRleHQoKSA/PyB7fTtcbiAgICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICBpZiAoc2Vzc2lvblsnY29tcGFueUlkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydjb21wYW55SWQnXSAhPT0gbnVsbCkge1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtQ29tcGFueS1JZCcsIFN0cmluZyhzZXNzaW9uWydjb21wYW55SWQnXSkpO1xuICAgICAgfVxuICAgICAgaWYgKHNlc3Npb25bJ2JyYW5jaElkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydicmFuY2hJZCddICE9PSBudWxsKSB7XG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnWC1CcmFuY2gtSWQnLCBTdHJpbmcoc2Vzc2lvblsnYnJhbmNoSWQnXSkpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvYnMkID0gdGhpcy5odHRwLnBvc3Q8dW5rbm93bj4oYCR7YmFzZVVybH0vbG9va3VwYCwgcmVxdWVzdCwgeyBoZWFkZXJzIH0pLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCByYXdJdGVtcyA9IGV4dHJhY3RSb3dBcnJheShyZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJhd0l0ZW1zLm1hcCgocjogYW55KSA9PlxuICAgICAgICAgICAgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0ociwgcmVxdWVzdC52YWx1ZUZpZWxkLCByZXF1ZXN0LmRpc3BsYXlGaWVsZClcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKChpdGVtcykgPT4ge1xuICAgICAgICAgIC8vIE5ldmVyIGNhY2hlIGVtcHR5IHJlc3VsdHM6IHBhcmFtZXRlcnMgbWF5IHNpbXBseSBub3QgaGF2ZSBiZWVuIGZpbGxlZCB5ZXQuXG4gICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHRoaXMuc2V0Q2FjaGUoY2FjaGVLZXksIGl0ZW1zLCA2MDApO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgbXNnID0gZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ0xvb2t1cCByZXF1ZXN0IGZhaWxlZCc7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKEFycmF5LmlzQXJyYXkobXNnKSA/IG1zZy5qb2luKCcsICcpIDogbXNnKSk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbkZsaWdodC5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgKTtcblxuICAgICAgdGhpcy5pbkZsaWdodC5zZXQoY2FjaGVLZXksIG9icyQpO1xuICAgICAgcmV0dXJuIG9icyQ7XG4gICAgfVxuXG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnJlc29sdmVNb2NrT3B0aW9ucyhyZXF1ZXN0KTtcbiAgICB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBmYWxsYmFjaywgNjAwKTtcbiAgICByZXR1cm4gb2YoZmFsbGJhY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDYWNoZShrZXk6IHN0cmluZywgZGF0YTogTG9va3VwT3B0aW9uSXRlbVtdLCB0dGxTZWNvbmRzID0gNjAwKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5zZXQoa2V5LCB7XG4gICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyB0dGxTZWNvbmRzICogMTAwMCxcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FjaGVLZXkocmVxOiBMb29rdXBRdWVyeVJlcXVlc3QpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtyZXEuc291cmNlVHlwZX06JHtyZXEuZW50aXR5TmFtZX06JHtyZXEudmFsdWVGaWVsZH06JHtyZXEuZGlzcGxheUZpZWxkfToke0pTT04uc3RyaW5naWZ5KHJlcS5maWx0ZXIgPz8ge30pfToke0pTT04uc3RyaW5naWZ5KHJlcS5wYXJhbWV0ZXJzID8/IHt9KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlTW9ja09wdGlvbnMocmVxOiBMb29rdXBRdWVyeVJlcXVlc3QpOiBMb29rdXBPcHRpb25JdGVtW10ge1xuICAgIGNvbnN0IGVudGl0eSA9IHJlcS5lbnRpdHlOYW1lIHx8ICcnO1xuICAgIGNvbnN0IHJlY29yZHMgPSB0aGlzLm1vY2tEYXRhU3RvcmVbZW50aXR5XSA/PyBbXTtcbiAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHI6IGFueSkgPT5cbiAgICAgIGV4dHJhY3RMb29rdXBPcHRpb25JdGVtKHIsIHJlcS52YWx1ZUZpZWxkLCByZXEuZGlzcGxheUZpZWxkKVxuICAgICk7XG4gIH1cbn1cblxuLyoqIENvbnZlbmllbmNlIGFsaWFzICovXG5leHBvcnQgY29uc3QgSHR0cExvb2t1cEFkYXB0ZXIgPSBIdHRwUmVwb3J0TG9va3VwQWRhcHRlcjtcbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1sb29rdXAuYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2h0dHAtbG9va3VwLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFHTCxtQkFBbUIsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBT3BHOzs7R0FHRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDN0MsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEQsY0FBYyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSxFQUFFLFFB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QUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQzVCLHVCQUF1QixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FDN0QsQ0FBQztJQUNKLENBQUM7d0dBN0pVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQWlLWCx3QkFBd0I7QUFDeEIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBtYXAsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBMb29rdXBPcHRpb25JdGVtLFxuICBMb29rdXBRdWVyeVJlcXVlc3QsXG4gIFJlcG9ydExvb2t1cEFkYXB0ZXIsXG59IGZyb20gJy4uL2NvbnRyYWN0cy9sb29rdXAuY29udHJhY3QnO1xuaW1wb3J0IHsgUkVQT1JUSU5HX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvdG9rZW5zL3JlcG9ydGluZy1jb25maWcudG9rZW4nO1xuaW1wb3J0IHsgUmVwb3J0U2Vzc2lvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9yZXBvcnQtc2Vzc2lvbi1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBleHRyYWN0TG9va3VwT3B0aW9uSXRlbSwgZXh0cmFjdFJvd0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9kYXRhLW5vcm1hbGl6YXRpb24udXRpbCc7XG5cbmludGVyZmFjZSBDYWNoZUVudHJ5IHtcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIGRhdGE6IExvb2t1cE9wdGlvbkl0ZW1bXTtcbn1cblxuLyoqXG4gKiBCdWlsdC1pbiBIVFRQIGFkYXB0ZXIgZm9yIGZldGNoaW5nIGRyb3Bkb3duIG9wdGlvbnMgZnJvbSBiYWNrZW5kIGRhdGFiYXNlIHRhYmxlcywgU1BzLCBhbmQgUkVTVCBBUElzLlxuICogSW5jbHVkZXMgaW4tbWVtb3J5IGNhY2hpbmcgd2l0aCBUVEwsIGluLWZsaWdodCByZXF1ZXN0IGRlZHVwbGljYXRpb24sIGFuZCBmYWxsYmFjayBtb2NrIGRhdGEuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwUmVwb3J0TG9va3VwQWRhcHRlciBleHRlbmRzIFJlcG9ydExvb2t1cEFkYXB0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoUkVQT1JUSU5HX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU2VydmljZSA9IGluamVjdChSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpRXhlY3V0aW9uU2VydmljZSA9IGluamVjdChSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVFbnRyeT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbkZsaWdodCA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPExvb2t1cE9wdGlvbkl0ZW1bXT4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb2NrRGF0YVN0b3JlOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IFtrZXk6IHN0cmluZ106IHVua25vd24gfT4+ID0ge1xuICAgIEN1c3RvbWVyczogW1xuICAgICAgeyBjdXN0b21lcklkOiAxMDEsIGN1c3RvbWVyTmFtZTogJ0FjbWUgQ29ycG9yYXRpb24nLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTAyLCBjdXN0b21lck5hbWU6ICdHbG9iZXggSW5kdXN0cmllcycsIGJyYW5jaElkOiAyLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDMsIGN1c3RvbWVyTmFtZTogJ0luaXRlY2ggU29mdHdhcmUnLCBicmFuY2hJZDogMSwgaXNBY3RpdmU6IHRydWUgfSxcbiAgICAgIHsgY3VzdG9tZXJJZDogMTA0LCBjdXN0b21lck5hbWU6ICdVbWJyZWxsYSBDb3Jwb3JhdGlvbicsIGJyYW5jaElkOiAzLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgICAgeyBjdXN0b21lcklkOiAxMDUsIGN1c3RvbWVyTmFtZTogJ1dheW5lIEVudGVycHJpc2VzJywgYnJhbmNoSWQ6IDIsIGlzQWN0aXZlOiB0cnVlIH0sXG4gICAgICB7IGN1c3RvbWVySWQ6IDEwNiwgY3VzdG9tZXJOYW1lOiAnU3RhcmsgSW5kdXN0cmllcycsIGJyYW5jaElkOiAxLCBpc0FjdGl2ZTogdHJ1ZSB9LFxuICAgIF0sXG4gICAgQnJhbmNoZXM6IFtcbiAgICAgIHsgYnJhbmNoSWQ6IDEsIGJyYW5jaE5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRIChOZXcgWW9yayknLCByZWdpb246ICdOb3J0aCBBbWVyaWNhJyB9LFxuICAgICAgeyBicmFuY2hJZDogMiwgYnJhbmNoTmFtZTogJ0VNRUEgRGl2aXNpb24gKExvbmRvbiknLCByZWdpb246ICdFdXJvcGUnIH0sXG4gICAgICB7IGJyYW5jaElkOiAzLCBicmFuY2hOYW1lOiAnQVBBQyBIdWIgKFNpbmdhcG9yZSknLCByZWdpb246ICdBc2lhIFBhY2lmaWMnIH0sXG4gICAgICB7IGJyYW5jaElkOiA0LCBicmFuY2hOYW1lOiAnTEFUQU0gT2ZmaWNlIChTw6NvIFBhdWxvKScsIHJlZ2lvbjogJ0xhdGluIEFtZXJpY2EnIH0sXG4gICAgXSxcbiAgICBQcm9kdWN0czogW1xuICAgICAgeyBwcm9kdWN0SWQ6IDEsIHByb2R1Y3ROYW1lOiAnRW50ZXJwcmlzZSBFUlAgU3VpdGUnLCBjYXRlZ29yeTogJ1NvZnR3YXJlJywgdW5pdFByaWNlOiAyNDAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMiwgcHJvZHVjdE5hbWU6ICdDbG91ZCBBbmFseXRpY3MgUHJvJywgY2F0ZWdvcnk6ICdTYWFTJywgdW5pdFByaWNlOiAxMjAwIH0sXG4gICAgICB7IHByb2R1Y3RJZDogMywgcHJvZHVjdE5hbWU6ICdTZWN1cml0eSBTaGllbGQgRW5kcG9pbnQnLCBjYXRlZ29yeTogJ1NlY3VyaXR5JywgdW5pdFByaWNlOiA4NTAgfSxcbiAgICAgIHsgcHJvZHVjdElkOiA0LCBwcm9kdWN0TmFtZTogJ0RlZGljYXRlZCBBUEkgR2F0ZXdheScsIGNhdGVnb3J5OiAnSW5mcmFzdHJ1Y3R1cmUnLCB1bml0UHJpY2U6IDMxMDAgfSxcbiAgICBdLFxuICAgIFBheW1lbnRNZXRob2RzOiBbXG4gICAgICB7IGNvZGU6ICdCQU5LX1RSQU5TRkVSJywgdGl0bGU6ICdEaXJlY3QgQmFuayBXaXJlJyB9LFxuICAgICAgeyBjb2RlOiAnQ1JFRElUX0NBUkQnLCB0aXRsZTogJ0NvcnBvcmF0ZSBDcmVkaXQgQ2FyZCcgfSxcbiAgICAgIHsgY29kZTogJ1BBWVBBTCcsIHRpdGxlOiAnUGF5UGFsIENvcnBvcmF0ZScgfSxcbiAgICAgIHsgY29kZTogJ05FVF8zMCcsIHRpdGxlOiAnTmV0IDMwIEludm9pY2luZycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRDdXN0b21lckxpc3Q6IFtcbiAgICAgIHsgaWQ6IDEwMSwgbmFtZTogJ0FjbWUgQ29ycG9yYXRpb24gKFNQKScsIGJyYW5jaElkOiAxLCBicmFuY2g6ICdOQScgfSxcbiAgICAgIHsgaWQ6IDEwMiwgbmFtZTogJ0dsb2JleCBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMiwgYnJhbmNoOiAnRU1FQScgfSxcbiAgICAgIHsgaWQ6IDEwNSwgbmFtZTogJ1dheW5lIEVudGVycHJpc2VzIChTUCknLCBicmFuY2hJZDogMSwgYnJhbmNoOiAnTkEnIH0sXG4gICAgICB7IGlkOiAxMDYsIG5hbWU6ICdTdGFyayBJbmR1c3RyaWVzIChTUCknLCBicmFuY2hJZDogMywgYnJhbmNoOiAnQVBBQycgfSxcbiAgICBdLFxuICAgIHVzcF9HZXRCcmFuY2hMb29rdXA6IFtcbiAgICAgIHsgaWQ6IDEsIG5hbWU6ICdOb3J0aCBBbWVyaWNhIEhRJyB9LFxuICAgICAgeyBpZDogMiwgbmFtZTogJ0VNRUEgRGl2aXNpb24nIH0sXG4gICAgICB7IGlkOiAzLCBuYW1lOiAnQVBBQyBIdWInIH0sXG4gICAgXSxcbiAgfTtcblxuICBmZXRjaE9wdGlvbnMocmVxdWVzdDogTG9va3VwUXVlcnlSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMb29rdXBPcHRpb25JdGVtW10+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KTtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGlmIChjYWNoZWQgJiYgY2FjaGVkLmV4cGlyZXNBdCA+IG5vdykge1xuICAgICAgcmV0dXJuIG9mKGNhY2hlZC5kYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdCBydW5uaW5nID0gdGhpcy5pbkZsaWdodC5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChydW5uaW5nKSB7XG4gICAgICByZXR1cm4gcnVubmluZztcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgQVBJLWJhc2VkIGRyb3Bkb3duIGxvb2t1cHNcbiAgICBpZiAoKHJlcXVlc3Quc291cmNlVHlwZSA9PT0gJ2FwaScgfHwgcmVxdWVzdC5hcGlFbmRwb2ludCkgJiYgdGhpcy5hcGlFeGVjdXRpb25TZXJ2aWNlKSB7XG4gICAgICBjb25zdCBlbmRwb2ludFVybCA9IHJlcXVlc3QuYXBpRW5kcG9pbnQgfHwgcmVxdWVzdC5lbnRpdHlOYW1lIHx8ICcnO1xuICAgICAgY29uc3Qgb2JzJCA9IHRoaXMuYXBpRXhlY3V0aW9uU2VydmljZVxuICAgICAgICAuZXhlY3V0ZUFwaShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnRVcmwsXG4gICAgICAgICAgICBkYXRhUGF0aDogcmVxdWVzdC5kYXRhUGF0aCxcbiAgICAgICAgICAgIHVzZVByb3h5OiByZXF1ZXN0LnVzZVByb3h5LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWVzdC5wYXJhbWV0ZXJzIGFzIGFueSxcbiAgICAgICAgICByZXF1ZXN0LmZpbHRlciBhcyBhbnlcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGl0ZW1zKSA9PlxuICAgICAgICAgICAgaXRlbXMubWFwKChyOiBhbnkpID0+XG4gICAgICAgICAgICAgIGV4dHJhY3RMb29rdXBPcHRpb25JdGVtKHIsIHJlcXVlc3QudmFsdWVGaWVsZCwgcmVxdWVzdC5kaXNwbGF5RmllbGQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0YXAoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkgdGhpcy5zZXRDYWNoZShjYWNoZUtleSwgaXRlbXMsIDYwMCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtc2cgPSBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVycj8ubWVzc2FnZSB8fCAnQVBJIGxvb2t1cCByZXF1ZXN0IGZhaWxlZCc7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoQXJyYXkuaXNBcnJheShtc2cpID8gbXNnLmpvaW4oJywgJykgOiBtc2cpKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluRmxpZ2h0LmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgICApO1xuXG4gICAgICB0aGlzLmluRmxpZ2h0LnNldChjYWNoZUtleSwgb2JzJCk7XG4gICAgICByZXR1cm4gb2JzJDtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWc/LmFwaUJhc2VVcmw7XG4gICAgaWYgKGJhc2VVcmwgJiYgdGhpcy5odHRwKSB7XG4gICAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5zZXNzaW9uU2VydmljZT8uc2Vzc2lvbkNvbnRleHQoKSA/PyB7fTtcbiAgICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICBpZiAoc2Vzc2lvblsnY29tcGFueUlkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydjb21wYW55SWQnXSAhPT0gbnVsbCkge1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtQ29tcGFueS1JZCcsIFN0cmluZyhzZXNzaW9uWydjb21wYW55SWQnXSkpO1xuICAgICAgfVxuICAgICAgaWYgKHNlc3Npb25bJ2JyYW5jaElkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uWydicmFuY2hJZCddICE9PSBudWxsKSB7XG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnWC1CcmFuY2gtSWQnLCBTdHJpbmcoc2Vzc2lvblsnYnJhbmNoSWQnXSkpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvYnMkID0gdGhpcy5odHRwLnBvc3Q8dW5rbm93bj4oYCR7YmFzZVVybH0vbG9va3VwYCwgcmVxdWVzdCwgeyBoZWFkZXJzIH0pLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCByYXdJdGVtcyA9IGV4dHJhY3RSb3dBcnJheShyZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuIHJhd0l0ZW1zLm1hcCgocjogYW55KSA9PlxuICAgICAgICAgICAgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0ociwgcmVxdWVzdC52YWx1ZUZpZWxkLCByZXF1ZXN0LmRpc3BsYXlGaWVsZClcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKChpdGVtcykgPT4ge1xuICAgICAgICAgIC8vIE5ldmVyIGNhY2hlIGVtcHR5IHJlc3VsdHM6IHBhcmFtZXRlcnMgbWF5IHNpbXBseSBub3QgaGF2ZSBiZWVuIGZpbGxlZCB5ZXQuXG4gICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHRoaXMuc2V0Q2FjaGUoY2FjaGVLZXksIGl0ZW1zLCA2MDApO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgY29uc3QgbXNnID0gZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ0xvb2t1cCByZXF1ZXN0IGZhaWxlZCc7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKEFycmF5LmlzQXJyYXkobXNnKSA/IG1zZy5qb2luKCcsICcpIDogbXNnKSk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbkZsaWdodC5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgKTtcblxuICAgICAgdGhpcy5pbkZsaWdodC5zZXQoY2FjaGVLZXksIG9icyQpO1xuICAgICAgcmV0dXJuIG9icyQ7XG4gICAgfVxuXG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLnJlc29sdmVNb2NrT3B0aW9ucyhyZXF1ZXN0KTtcbiAgICB0aGlzLnNldENhY2hlKGNhY2hlS2V5LCBmYWxsYmFjaywgNjAwKTtcbiAgICByZXR1cm4gb2YoZmFsbGJhY2spO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDYWNoZShrZXk6IHN0cmluZywgZGF0YTogTG9va3VwT3B0aW9uSXRlbVtdLCB0dGxTZWNvbmRzID0gNjAwKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5zZXQoa2V5LCB7XG4gICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyB0dGxTZWNvbmRzICogMTAwMCxcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FjaGVLZXkocmVxOiBMb29rdXBRdWVyeVJlcXVlc3QpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtyZXEuc291cmNlVHlwZX06JHtyZXEuZW50aXR5TmFtZSB8fCByZXEuYXBpRW5kcG9pbnR9OiR7cmVxLnZhbHVlRmllbGR9OiR7cmVxLmRpc3BsYXlGaWVsZH06JHtyZXEuZGF0YVBhdGggPz8gJyd9OiR7SlNPTi5zdHJpbmdpZnkocmVxLmZpbHRlciA/PyB7fSl9OiR7SlNPTi5zdHJpbmdpZnkocmVxLnBhcmFtZXRlcnMgPz8ge30pfWA7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVNb2NrT3B0aW9ucyhyZXE6IExvb2t1cFF1ZXJ5UmVxdWVzdCk6IExvb2t1cE9wdGlvbkl0ZW1bXSB7XG4gICAgY29uc3QgZW50aXR5ID0gcmVxLmVudGl0eU5hbWUgfHwgJyc7XG4gICAgY29uc3QgcmVjb3JkcyA9IHRoaXMubW9ja0RhdGFTdG9yZVtlbnRpdHldID8/IFtdO1xuICAgIHJldHVybiByZWNvcmRzLm1hcCgocjogYW55KSA9PlxuICAgICAgZXh0cmFjdExvb2t1cE9wdGlvbkl0ZW0ociwgcmVxLnZhbHVlRmllbGQsIHJlcS5kaXNwbGF5RmllbGQpXG4gICAgKTtcbiAgfVxufVxuXG4vKiogQ29udmVuaWVuY2UgYWxpYXMgKi9cbmV4cG9ydCBjb25zdCBIdHRwTG9va3VwQWRhcHRlciA9IEh0dHBSZXBvcnRMb29rdXBBZGFwdGVyO1xuIl19
@@ -3,4 +3,4 @@
3
3
  */
4
4
  export class ReportLookupAdapter {
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvY29udHJhY3RzL2xvb2t1cC5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQkE7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtDQUt4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERyb3Bkb3duU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuXG4vKipcbiAqIFJlcXVlc3QgcGF5bG9hZCBmb3IgcXVlcnlpbmcgbG9va3VwIGRhdGEgZnJvbSB0aGUgaG9zdCBiYWNrZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwUXVlcnlSZXF1ZXN0IHtcbiAgc291cmNlVHlwZTogRHJvcGRvd25Tb3VyY2VUeXBlO1xuICBlbnRpdHlOYW1lPzogc3RyaW5nO1xuICBzY2hlbWE/OiBzdHJpbmc7XG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcbiAgZmlsdGVyPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbGltaXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9ybWFsaXplZCBvcHRpb24gaXRlbSBmb3IgZHJvcGRvd25zIGFuZCBzZWxlY3RvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb29rdXBPcHRpb25JdGVtIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgbGFiZWw6IHN0cmluZztcbiAgcmF3PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQWJzdHJhY3QgY29udHJhY3QgZm9yIGZldGNoaW5nIGR5bmFtaWMgbG9va3VwL29wdGlvbiBkYXRhIGZvciByZXBvcnQgZHJvcGRvd24gY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlcG9ydExvb2t1cEFkYXB0ZXIge1xuICAvKipcbiAgICogRmV0Y2hlcyBkcm9wZG93biBvcHRpb24gcm93cyBmcm9tIGRhdGFiYXNlIHRhYmxlIG9yIHN0b3JlZCBwcm9jZWR1cmUuXG4gICAqL1xuICBhYnN0cmFjdCBmZXRjaE9wdGlvbnMocmVxdWVzdDogTG9va3VwUXVlcnlSZXF1ZXN0KTogT2JzZXJ2YWJsZTxMb29rdXBPcHRpb25JdGVtW10+O1xufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYndheXMtcmVwb3J0L3NyYy9saWIvZGF0YS1hY2Nlc3MvY29udHJhY3RzL2xvb2t1cC5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2QkE7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG1CQUFtQjtDQUt4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERyb3Bkb3duU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwnO1xuXG4vKipcbiAqIFJlcXVlc3QgcGF5bG9hZCBmb3IgcXVlcnlpbmcgbG9va3VwIGRhdGEgZnJvbSB0aGUgaG9zdCBiYWNrZW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwUXVlcnlSZXF1ZXN0IHtcbiAgc291cmNlVHlwZTogRHJvcGRvd25Tb3VyY2VUeXBlO1xuICBlbnRpdHlOYW1lPzogc3RyaW5nO1xuICBzY2hlbWE/OiBzdHJpbmc7XG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcbiAgZmlsdGVyPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIGFwaUVuZHBvaW50Pzogc3RyaW5nO1xuICBkYXRhUGF0aD86IHN0cmluZztcbiAgdXNlUHJveHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZWQgb3B0aW9uIGl0ZW0gZm9yIGRyb3Bkb3ducyBhbmQgc2VsZWN0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwT3B0aW9uSXRlbSB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHJhdz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGNvbnRyYWN0IGZvciBmZXRjaGluZyBkeW5hbWljIGxvb2t1cC9vcHRpb24gZGF0YSBmb3IgcmVwb3J0IGRyb3Bkb3duIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXBvcnRMb29rdXBBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEZldGNoZXMgZHJvcGRvd24gb3B0aW9uIHJvd3MgZnJvbSBkYXRhYmFzZSB0YWJsZSBvciBzdG9yZWQgcHJvY2VkdXJlLlxuICAgKi9cbiAgYWJzdHJhY3QgZmV0Y2hPcHRpb25zKHJlcXVlc3Q6IExvb2t1cFF1ZXJ5UmVxdWVzdCk6IE9ic2VydmFibGU8TG9va3VwT3B0aW9uSXRlbVtdPjtcbn1cbiJdfQ==