@firestitch/report 18.0.17 → 18.0.19
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.
- package/app/reports/data/report.data.d.ts +1 -0
- package/app/reports/dialogs/global-settings/components/semantic-database/semantic-database.component.d.ts +5 -3
- package/app/reports/export/report-export-collector.service.d.ts +1 -0
- package/app/reports/format.d.ts +1 -1
- package/app/reports/interfaces/report.interface.d.ts +8 -1
- package/app/reports/views/reports/fs-ai-reports.component.d.ts +2 -1
- package/esm2022/app/reports/components/component-kpi/component-kpi.component.mjs +2 -2
- package/esm2022/app/reports/data/report.data.mjs +11 -1
- package/esm2022/app/reports/dialogs/global-settings/components/semantic-database/semantic-database.component.mjs +11 -6
- package/esm2022/app/reports/export/report-export-collector.service.mjs +31 -11
- package/esm2022/app/reports/export/report-pdf.service.mjs +6 -5
- package/esm2022/app/reports/export/report-pptx.service.mjs +6 -5
- package/esm2022/app/reports/format.mjs +21 -6
- package/esm2022/app/reports/interfaces/report.interface.mjs +8 -1
- package/esm2022/app/reports/services/report-filter-state.service.mjs +17 -2
- package/esm2022/app/reports/views/report/fs-ai-report.component.mjs +2 -2
- package/esm2022/app/reports/views/report/report.component.mjs +2 -2
- package/esm2022/app/reports/views/reports/fs-ai-reports.component.mjs +34 -3
- package/fesm2022/{firestitch-report-echarts-F254vpF1.mjs → firestitch-report-echarts-CfwgLaOA.mjs} +2 -2
- package/fesm2022/{firestitch-report-echarts-F254vpF1.mjs.map → firestitch-report-echarts-CfwgLaOA.mjs.map} +1 -1
- package/fesm2022/{firestitch-report-firestitch-report-Dh8kteJk.mjs → firestitch-report-firestitch-report-_MCMM4XH.mjs} +144 -41
- package/fesm2022/firestitch-report-firestitch-report-_MCMM4XH.mjs.map +1 -0
- package/fesm2022/firestitch-report.mjs +1 -1
- package/package.json +1 -1
- package/fesm2022/firestitch-report-firestitch-report-Dh8kteJk.mjs.map +0 -1
|
@@ -4,6 +4,7 @@ import { catchError } from 'rxjs/operators';
|
|
|
4
4
|
import { format } from 'date-fns';
|
|
5
5
|
import { ReportData } from '../data/report.data';
|
|
6
6
|
import { FREQUENCY_OPTIONS, } from '../interfaces/report.interface';
|
|
7
|
+
import { loadGroupOptions, resolveOptionValues } from '../report-filter-items';
|
|
7
8
|
import { ReportFilterStateService } from '../services/report-filter-state.service';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
// Rows fetched for a list component's export table — enough to fill a
|
|
@@ -26,8 +27,10 @@ export class ReportExportCollectorService {
|
|
|
26
27
|
}
|
|
27
28
|
});
|
|
28
29
|
const all$ = requests.length ? forkJoin(requests) : of([]);
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
// The summary rides alongside the component data rather than being built at
|
|
31
|
+
// the end, because naming a select filter's values is itself a request.
|
|
32
|
+
return forkJoin({ collected: all$, filterSummary: this._filterSummary(report) })
|
|
33
|
+
.pipe(map(({ collected, filterSummary }) => {
|
|
31
34
|
const pages = report.pages.map((page) => ({ page, components: [] }));
|
|
32
35
|
collected.forEach((item, index) => {
|
|
33
36
|
pages[slots[index].pageIndex].components.push(item);
|
|
@@ -35,7 +38,7 @@ export class ReportExportCollectorService {
|
|
|
35
38
|
return {
|
|
36
39
|
report,
|
|
37
40
|
pages,
|
|
38
|
-
filterSummary
|
|
41
|
+
filterSummary,
|
|
39
42
|
};
|
|
40
43
|
}));
|
|
41
44
|
}
|
|
@@ -51,8 +54,12 @@ export class ReportExportCollectorService {
|
|
|
51
54
|
return this._reportData.componentData(report.id, component.id, filters, state)
|
|
52
55
|
.pipe(map((data) => ({ component, data })), catchError(() => of({ component, data: null })));
|
|
53
56
|
}
|
|
54
|
-
// "Report Period: Jun 12, 2025 – Jun 12, 2026", "Organization:
|
|
55
|
-
// line per filter group that has an active session value.
|
|
57
|
+
// "Report Period: Jun 12, 2025 – Jun 12, 2026", "Organization: Alnylam - AHP,
|
|
58
|
+
// Alnylam - PH1" — one line per filter group that has an active session value.
|
|
59
|
+
//
|
|
60
|
+
// A select group stores ids, so its line has to be named off the option list
|
|
61
|
+
// before it can be printed; a date or keyword group already holds its own
|
|
62
|
+
// display value and resolves synchronously.
|
|
56
63
|
_filterSummary(report) {
|
|
57
64
|
const lines = [];
|
|
58
65
|
for (const group of report.filterGroups ?? []) {
|
|
@@ -62,21 +69,34 @@ export class ReportExportCollectorService {
|
|
|
62
69
|
}
|
|
63
70
|
const label = group.label || 'Filter';
|
|
64
71
|
if (value.start || value.end) {
|
|
65
|
-
lines.push(`${label}: ${this._date(value.start)} – ${this._date(value.end)}`);
|
|
72
|
+
lines.push(of(`${label}: ${this._date(value.start)} – ${this._date(value.end)}`));
|
|
66
73
|
}
|
|
67
74
|
else if (value.values?.length) {
|
|
68
|
-
lines.push(
|
|
75
|
+
lines.push(this._selectLine(label, group, report.id, value.values));
|
|
69
76
|
}
|
|
70
77
|
else if (value.value?.trim()) {
|
|
71
|
-
lines.push(`${label}: "${value.value.trim()}"`);
|
|
78
|
+
lines.push(of(`${label}: "${value.value.trim()}"`));
|
|
72
79
|
}
|
|
73
80
|
}
|
|
74
81
|
const frequency = this._filterState.frequency();
|
|
75
82
|
if (frequency) {
|
|
76
83
|
const option = FREQUENCY_OPTIONS.find((item) => item.value === frequency);
|
|
77
|
-
lines.push(`Frequency: ${option?.name ?? frequency}`);
|
|
84
|
+
lines.push(of(`Frequency: ${option?.name ?? frequency}`));
|
|
78
85
|
}
|
|
79
|
-
return lines;
|
|
86
|
+
return lines.length ? forkJoin(lines) : of([]);
|
|
87
|
+
}
|
|
88
|
+
// One select group's line, with its stored ids resolved to the same names the
|
|
89
|
+
// on-screen chips show — a cover reading "Organization: 8774, 8777" tells the
|
|
90
|
+
// client nothing about what the report covers.
|
|
91
|
+
//
|
|
92
|
+
// Uses the report bar's own loader and resolver so the two can't drift, which
|
|
93
|
+
// also means a value whose entity was deleted keeps showing its raw id rather
|
|
94
|
+
// than dropping off the cover and silently understating the filter. A failed
|
|
95
|
+
// option fetch degrades the whole line to ids for the same reason: an export
|
|
96
|
+
// must never fail on a cosmetic lookup.
|
|
97
|
+
_selectLine(label, group, reportId, values) {
|
|
98
|
+
return resolveOptionValues(loadGroupOptions(group, this._reportData, reportId), values)
|
|
99
|
+
.pipe(map((resolved) => `${label}: ${resolved.map((item) => item.name).join(', ')}`), catchError(() => of(`${label}: ${values.map((item) => String(item)).join(', ')}`)));
|
|
80
100
|
}
|
|
81
101
|
_date(value) {
|
|
82
102
|
if (!value) {
|
|
@@ -91,4 +111,4 @@ export class ReportExportCollectorService {
|
|
|
91
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportExportCollectorService, decorators: [{
|
|
92
112
|
type: Injectable
|
|
93
113
|
}] });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWV4cG9ydC1jb2xsZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9leHBvcnQvcmVwb3J0LWV4cG9ydC1jb2xsZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFFTCxpQkFBaUIsR0FJbEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFvQm5GLHNFQUFzRTtBQUN0RSxrREFBa0Q7QUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFFN0IsOEVBQThFO0FBQzlFLHdFQUF3RTtBQUN4RSw0RUFBNEU7QUFDNUUsbUVBQW1FO0FBRW5FLE1BQU0sT0FBTyw0QkFBNEI7SUFFL0IsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxZQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFakQsT0FBTyxDQUFDLE1BQWM7UUFDM0IsTUFBTSxRQUFRLEdBQXFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBNEIsRUFBRSxDQUFDO1FBRTFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ3ZDLEtBQUssTUFBTSxT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RUFBRSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQXVDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDcEYsQ0FBQzt3R0EzRlUsNEJBQTRCOzRHQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgUmVwb3J0RGF0YSB9IGZyb20gJy4uL2RhdGEvcmVwb3J0LmRhdGEnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RGF0YSxcbiAgRlJFUVVFTkNZX09QVElPTlMsXG4gIFJlcG9ydCxcbiAgUmVwb3J0Q29tcG9uZW50LFxuICBSZXBvcnRQYWdlLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVwb3J0RmlsdGVyU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVwb3J0LWZpbHRlci1zdGF0ZS5zZXJ2aWNlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3RlZENvbXBvbmVudCB7XG4gIGNvbXBvbmVudDogUmVwb3J0Q29tcG9uZW50O1xuICBkYXRhOiBDb21wb25lbnREYXRhIHwgbnVsbDsgLy8gbnVsbCA9IGl0cyBxdWVyeSBmYWlsZWQ7IGV4cG9ydHMgc2hvdyBhIG5vdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0ZWRQYWdlIHtcbiAgcGFnZTogUmVwb3J0UGFnZTtcbiAgY29tcG9uZW50czogQ29sbGVjdGVkQ29tcG9uZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGVkUmVwb3J0IHtcbiAgcmVwb3J0OiBSZXBvcnQ7XG4gIHBhZ2VzOiBDb2xsZWN0ZWRQYWdlW107XG4gIC8vIEh1bWFuLXJlYWRhYmxlIGxpbmVzIGRlc2NyaWJpbmcgdGhlIGFjdGl2ZSBmaWx0ZXJzLCBmb3IgdGhlIHRpdGxlIHNsaWRlL3BhZ2UuXG4gIGZpbHRlclN1bW1hcnk6IHN0cmluZ1tdO1xufVxuXG4vLyBSb3dzIGZldGNoZWQgZm9yIGEgbGlzdCBjb21wb25lbnQncyBleHBvcnQgdGFibGUg4oCUIGVub3VnaCB0byBmaWxsIGFcbi8vIHNsaWRlL3BhZ2UgdGFibGU7IHRoZSBjYXAgbm90ZSBjb3ZlcnMgdGhlIHJlc3QuXG5jb25zdCBMSVNUX0VYUE9SVF9ST1dTID0gMTAwO1xuXG4vLyBHYXRoZXJzIGV2ZXJ5dGhpbmcgYW4gZXhwb3J0IG5lZWRzOiBldmVyeSBjb21wb25lbnQncyBkYXRhIGFjcm9zcyBBTEwgcGFnZXNcbi8vICh0aGUgY2FudmFzIG9ubHkgcmVuZGVycyB0aGUgYWN0aXZlIHBhZ2UsIHNvIGV4cG9ydHMgY2FuJ3Qgc2NyYXBlIHRoZVxuLy8gc2NyZWVuKSwgZmV0Y2hlZCBmcmVzaCB3aXRoIHRoZSB2aWV3ZXIncyBjdXJyZW50IGZpbHRlciBzdGF0ZS4gT25lIGZhaWxlZFxuLy8gY29tcG9uZW50IGRlZ3JhZGVzIHRvIGEgbm90ZSBpbiB0aGUgZGVjaywgbmV2ZXIgYSBmYWlsZWQgZXhwb3J0LlxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlcG9ydEV4cG9ydENvbGxlY3RvclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX3JlcG9ydERhdGEgPSBpbmplY3QoUmVwb3J0RGF0YSk7XG4gIHByaXZhdGUgX2ZpbHRlclN0YXRlID0gaW5qZWN0KFJlcG9ydEZpbHRlclN0YXRlU2VydmljZSk7XG5cbiAgcHVibGljIGNvbGxlY3QocmVwb3J0OiBSZXBvcnQpOiBPYnNlcnZhYmxlPENvbGxlY3RlZFJlcG9ydD4ge1xuICAgIGNvbnN0IHJlcXVlc3RzOiBPYnNlcnZhYmxlPENvbGxlY3RlZENvbXBvbmVudD5bXSA9IFtdO1xuICAgIGNvbnN0IHNsb3RzOiB7IHBhZ2VJbmRleDogbnVtYmVyIH1bXSA9IFtdO1xuXG4gICAgcmVwb3J0LnBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgcGFnZS5jb21wb25lbnRzKSB7XG4gICAgICAgIHNsb3RzLnB1c2goeyBwYWdlSW5kZXggfSk7XG4gICAgICAgIHJlcXVlc3RzLnB1c2godGhpcy5fY29tcG9uZW50RGF0YShyZXBvcnQsIGNvbXBvbmVudCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgYWxsJCA9IHJlcXVlc3RzLmxlbmd0aCA/IGZvcmtKb2luKHJlcXVlc3RzKSA6IG9mKFtdIGFzIENvbGxlY3RlZENvbXBvbmVudFtdKTtcblxuICAgIHJldHVybiBhbGwkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjb2xsZWN0ZWQpID0+IHtcbiAgICAgICAgICBjb25zdCBwYWdlczogQ29sbGVjdGVkUGFnZVtdID0gcmVwb3J0LnBhZ2VzLm1hcCgocGFnZSkgPT4gKHsgcGFnZSwgY29tcG9uZW50czogW10gfSkpO1xuICAgICAgICAgIGNvbGxlY3RlZC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcGFnZXNbc2xvdHNbaW5kZXhdLnBhZ2VJbmRleF0uY29tcG9uZW50cy5wdXNoKGl0ZW0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlcG9ydCxcbiAgICAgICAgICAgIHBhZ2VzLFxuICAgICAgICAgICAgZmlsdGVyU3VtbWFyeTogdGhpcy5fZmlsdGVyU3VtbWFyeShyZXBvcnQpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbXBvbmVudERhdGEocmVwb3J0OiBSZXBvcnQsIGNvbXBvbmVudDogUmVwb3J0Q29tcG9uZW50KTogT2JzZXJ2YWJsZTxDb2xsZWN0ZWRDb21wb25lbnQ+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5fZmlsdGVyU3RhdGUucmVzb2x2ZUZvckNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIC8vIEEgdGltZS1zZXJpZXMgY2hhcnQgY2FycmllcyB0aGUgdmlld2VyJ3MgRnJlcXVlbmN5IG92ZXJyaWRlIHNvIHRoZSBleHBvcnRcbiAgICAvLyByZS1idWNrZXRzIGV4YWN0bHkgYXMgdGhlIHNjcmVlbiBkb2VzOyBsaXN0cyBjYXJyeSB0aGVpciBleHBvcnQgcGFnaW5nLlxuICAgIGNvbnN0IGZyZXF1ZW5jeSA9IHRoaXMuX2ZpbHRlclN0YXRlLmZyZXF1ZW5jeSgpO1xuICAgIGNvbnN0IGlzVGltZVNlcmllcyA9IGNvbXBvbmVudC50eXBlID09PSAnY2hhcnQnICYmIGNvbXBvbmVudC5jb25maWc/LnhBeGlzPy5raW5kID09PSAndGltZSc7XG4gICAgY29uc3Qgc3RhdGUgPSBjb21wb25lbnQudHlwZSA9PT0gJ2xpc3QnXG4gICAgICA/IHsgcGFnZTogMSwgcGFnZVNpemU6IExJU1RfRVhQT1JUX1JPV1MgfVxuICAgICAgOiAoaXNUaW1lU2VyaWVzICYmIGZyZXF1ZW5jeSA/IHsgZnJlcXVlbmN5IH0gOiB7fSk7XG5cbiAgICByZXR1cm4gdGhpcy5fcmVwb3J0RGF0YS5jb21wb25lbnREYXRhKHJlcG9ydC5pZCwgY29tcG9uZW50LmlkLCBmaWx0ZXJzLCBzdGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGRhdGE6IENvbXBvbmVudERhdGEpID0+ICh7IGNvbXBvbmVudCwgZGF0YSB9KSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoeyBjb21wb25lbnQsIGRhdGE6IG51bGwgfSkpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8vIFwiUmVwb3J0IFBlcmlvZDogSnVuIDEyLCAyMDI1IOKAkyBKdW4gMTIsIDIwMjZcIiwgXCJPcmdhbml6YXRpb246IEEsIEJcIiDigJQgb25lXG4gIC8vIGxpbmUgcGVyIGZpbHRlciBncm91cCB0aGF0IGhhcyBhbiBhY3RpdmUgc2Vzc2lvbiB2YWx1ZS5cbiAgcHJpdmF0ZSBfZmlsdGVyU3VtbWFyeShyZXBvcnQ6IFJlcG9ydCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgcmVwb3J0LmZpbHRlckdyb3VwcyA/PyBbXSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLl9maWx0ZXJTdGF0ZS52YWx1ZShncm91cC5pZCk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYWJlbCA9IGdyb3VwLmxhYmVsIHx8ICdGaWx0ZXInO1xuXG4gICAgICBpZiAodmFsdWUuc3RhcnQgfHwgdmFsdWUuZW5kKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7bGFiZWx9OiAke3RoaXMuX2RhdGUodmFsdWUuc3RhcnQpfSDigJMgJHt0aGlzLl9kYXRlKHZhbHVlLmVuZCl9YCk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLnZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7bGFiZWx9OiAke3ZhbHVlLnZhbHVlcy5tYXAoKGl0ZW0pID0+IFN0cmluZyhpdGVtKSkuam9pbignLCAnKX1gKTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUudmFsdWU/LnRyaW0oKSkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke2xhYmVsfTogXCIke3ZhbHVlLnZhbHVlLnRyaW0oKX1cImApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZyZXF1ZW5jeSA9IHRoaXMuX2ZpbHRlclN0YXRlLmZyZXF1ZW5jeSgpO1xuICAgIGlmIChmcmVxdWVuY3kpIHtcbiAgICAgIGNvbnN0IG9wdGlvbiA9IEZSRVFVRU5DWV9PUFRJT05TLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IGZyZXF1ZW5jeSk7XG4gICAgICBsaW5lcy5wdXNoKGBGcmVxdWVuY3k6ICR7b3B0aW9uPy5uYW1lID8/IGZyZXF1ZW5jeX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBwcml2YXRlIF9kYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuICfigKYnO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGUgPSB2YWx1ZSBpbnN0YW5jZW9mIERhdGUgPyB2YWx1ZSA6IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgIHJldHVybiBOdW1iZXIuaXNOYU4oZGF0ZS5nZXRUaW1lKCkpID8gU3RyaW5nKHZhbHVlKSA6IGZvcm1hdChkYXRlLCAnTU1NIGQsIHl5eXknKTtcbiAgfVxufVxuIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWV4cG9ydC1jb2xsZWN0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9leHBvcnQvcmVwb3J0LWV4cG9ydC1jb2xsZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFFTCxpQkFBaUIsR0FLbEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFvQm5GLHNFQUFzRTtBQUN0RSxrREFBa0Q7QUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFFN0IsOEVBQThFO0FBQzlFLHdFQUF3RTtBQUN4RSw0RUFBNEU7QUFDNUUsbUVBQW1FO0FBRW5FLE1BQU0sT0FBTyw0QkFBNEI7SUFFL0IsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxZQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFakQsT0FBTyxDQUFDLE1BQWM7UUFDM0IsTUFBTSxRQUFRLEdBQXFDLEVBQUUsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBNEIsRUFBRSxDQUFDO1FBRTFDLE1BQU0sQ0FBQyxLQUFLLENBQUMs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QyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNuRixDQUFDO0lBQ04sQ0FBQztJQUVPLEtBQUssQ0FBQyxLQUF1QztRQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7d0dBdkhVLDRCQUE0Qjs0R0FBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luLCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IFJlcG9ydERhdGEgfSBmcm9tICcuLi9kYXRhL3JlcG9ydC5kYXRhJztcbmltcG9ydCB7XG4gIENvbXBvbmVudERhdGEsXG4gIEZSRVFVRU5DWV9PUFRJT05TLFxuICBSZXBvcnQsXG4gIFJlcG9ydENvbXBvbmVudCxcbiAgUmVwb3J0RmlsdGVyR3JvdXAsXG4gIFJlcG9ydFBhZ2UsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBsb2FkR3JvdXBPcHRpb25zLCByZXNvbHZlT3B0aW9uVmFsdWVzIH0gZnJvbSAnLi4vcmVwb3J0LWZpbHRlci1pdGVtcyc7XG5pbXBvcnQgeyBSZXBvcnRGaWx0ZXJTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBvcnQtZmlsdGVyLXN0YXRlLnNlcnZpY2UnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGVkQ29tcG9uZW50IHtcbiAgY29tcG9uZW50OiBSZXBvcnRDb21wb25lbnQ7XG4gIGRhdGE6IENvbXBvbmVudERhdGEgfCBudWxsOyAvLyBudWxsID0gaXRzIHF1ZXJ5IGZhaWxlZDsgZXhwb3J0cyBzaG93IGEgbm90ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3RlZFBhZ2Uge1xuICBwYWdlOiBSZXBvcnRQYWdlO1xuICBjb21wb25lbnRzOiBDb2xsZWN0ZWRDb21wb25lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0ZWRSZXBvcnQge1xuICByZXBvcnQ6IFJlcG9ydDtcbiAgcGFnZXM6IENvbGxlY3RlZFBhZ2VbXTtcbiAgLy8gSHVtYW4tcmVhZGFibGUgbGluZXMgZGVzY3JpYmluZyB0aGUgYWN0aXZlIGZpbHRlcnMsIGZvciB0aGUgdGl0bGUgc2xpZGUvcGFnZS5cbiAgZmlsdGVyU3VtbWFyeTogc3RyaW5nW107XG59XG5cbi8vIFJvd3MgZmV0Y2hlZCBmb3IgYSBsaXN0IGNvbXBvbmVudCdzIGV4cG9ydCB0YWJsZSDigJQgZW5vdWdoIHRvIGZpbGwgYVxuLy8gc2xpZGUvcGFnZSB0YWJsZTsgdGhlIGNhcCBub3RlIGNvdmVycyB0aGUgcmVzdC5cbmNvbnN0IExJU1RfRVhQT1JUX1JPV1MgPSAxMDA7XG5cbi8vIEdhdGhlcnMgZXZlcnl0aGluZyBhbiBleHBvcnQgbmVlZHM6IGV2ZXJ5IGNvbXBvbmVudCdzIGRhdGEgYWNyb3NzIEFMTCBwYWdlc1xuLy8gKHRoZSBjYW52YXMgb25seSByZW5kZXJzIHRoZSBhY3RpdmUgcGFnZSwgc28gZXhwb3J0cyBjYW4ndCBzY3JhcGUgdGhlXG4vLyBzY3JlZW4pLCBmZXRjaGVkIGZyZXNoIHdpdGggdGhlIHZpZXdlcidzIGN1cnJlbnQgZmlsdGVyIHN0YXRlLiBPbmUgZmFpbGVkXG4vLyBjb21wb25lbnQgZGVncmFkZXMgdG8gYSBub3RlIGluIHRoZSBkZWNrLCBuZXZlciBhIGZhaWxlZCBleHBvcnQuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVwb3J0RXhwb3J0Q29sbGVjdG9yU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfcmVwb3J0RGF0YSA9IGluamVjdChSZXBvcnREYXRhKTtcbiAgcHJpdmF0ZSBfZmlsdGVyU3RhdGUgPSBpbmplY3QoUmVwb3J0RmlsdGVyU3RhdGVTZXJ2aWNlKTtcblxuICBwdWJsaWMgY29sbGVjdChyZXBvcnQ6IFJlcG9ydCk6IE9ic2VydmFibGU8Q29sbGVjdGVkUmVwb3J0PiB7XG4gICAgY29uc3QgcmVxdWVzdHM6IE9ic2VydmFibGU8Q29sbGVjdGVkQ29tcG9uZW50PltdID0gW107XG4gICAgY29uc3Qgc2xvdHM6IHsgcGFnZUluZGV4OiBudW1iZXIgfVtdID0gW107XG5cbiAgICByZXBvcnQucGFnZXMuZm9yRWFjaCgocGFnZSwgcGFnZUluZGV4KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiBwYWdlLmNvbXBvbmVudHMpIHtcbiAgICAgICAgc2xvdHMucHVzaCh7IHBhZ2VJbmRleCB9KTtcbiAgICAgICAgcmVxdWVzdHMucHVzaCh0aGlzLl9jb21wb25lbnREYXRhKHJlcG9ydCwgY29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBhbGwkID0gcmVxdWVzdHMubGVuZ3RoID8gZm9ya0pvaW4ocmVxdWVzdHMpIDogb2YoW10gYXMgQ29sbGVjdGVkQ29tcG9uZW50W10pO1xuXG4gICAgLy8gVGhlIHN1bW1hcnkgcmlkZXMgYWxvbmdzaWRlIHRoZSBjb21wb25lbnQgZGF0YSByYXRoZXIgdGhhbiBiZWluZyBidWlsdCBhdFxuICAgIC8vIHRoZSBlbmQsIGJlY2F1c2UgbmFtaW5nIGEgc2VsZWN0IGZpbHRlcidzIHZhbHVlcyBpcyBpdHNlbGYgYSByZXF1ZXN0LlxuICAgIHJldHVybiBmb3JrSm9pbih7IGNvbGxlY3RlZDogYWxsJCwgZmlsdGVyU3VtbWFyeTogdGhpcy5fZmlsdGVyU3VtbWFyeShyZXBvcnQpIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGNvbGxlY3RlZCwgZmlsdGVyU3VtbWFyeSB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFnZXM6IENvbGxlY3RlZFBhZ2VbXSA9IHJlcG9ydC5wYWdlcy5tYXAoKHBhZ2UpID0+ICh7IHBhZ2UsIGNvbXBvbmVudHM6IFtdIH0pKTtcbiAgICAgICAgICBjb2xsZWN0ZWQuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHBhZ2VzW3Nsb3RzW2luZGV4XS5wYWdlSW5kZXhdLmNvbXBvbmVudHMucHVzaChpdGVtKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZXBvcnQsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIGZpbHRlclN1bW1hcnksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50RGF0YShyZXBvcnQ6IFJlcG9ydCwgY29tcG9uZW50OiBSZXBvcnRDb21wb25lbnQpOiBPYnNlcnZhYmxlPENvbGxlY3RlZENvbXBvbmVudD4ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLl9maWx0ZXJTdGF0ZS5yZXNvbHZlRm9yQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgLy8gQSB0aW1lLXNlcmllcyBjaGFydCBjYXJyaWVzIHRoZSB2aWV3ZXIncyBGcmVxdWVuY3kgb3ZlcnJpZGUgc28gdGhlIGV4cG9ydFxuICAgIC8vIHJlLWJ1Y2tldHMgZXhhY3RseSBhcyB0aGUgc2NyZWVuIGRvZXM7IGxpc3RzIGNhcnJ5IHRoZWlyIGV4cG9ydCBwYWdpbmcuXG4gICAgY29uc3QgZnJlcXVlbmN5ID0gdGhpcy5fZmlsdGVyU3RhdGUuZnJlcXVlbmN5KCk7XG4gICAgY29uc3QgaXNUaW1lU2VyaWVzID0gY29tcG9uZW50LnR5cGUgPT09ICdjaGFydCcgJiYgY29tcG9uZW50LmNvbmZpZz8ueEF4aXM/LmtpbmQgPT09ICd0aW1lJztcbiAgICBjb25zdCBzdGF0ZSA9IGNvbXBvbmVudC50eXBlID09PSAnbGlzdCdcbiAgICAgID8geyBwYWdlOiAxLCBwYWdlU2l6ZTogTElTVF9FWFBPUlRfUk9XUyB9XG4gICAgICA6IChpc1RpbWVTZXJpZXMgJiYgZnJlcXVlbmN5ID8geyBmcmVxdWVuY3kgfSA6IHt9KTtcblxuICAgIHJldHVybiB0aGlzLl9yZXBvcnREYXRhLmNvbXBvbmVudERhdGEocmVwb3J0LmlkLCBjb21wb25lbnQuaWQsIGZpbHRlcnMsIHN0YXRlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YTogQ29tcG9uZW50RGF0YSkgPT4gKHsgY29tcG9uZW50LCBkYXRhIH0pKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IGNvbXBvbmVudCwgZGF0YTogbnVsbCB9KSksXG4gICAgICApO1xuICB9XG5cbiAgLy8gXCJSZXBvcnQgUGVyaW9kOiBKdW4gMTIsIDIwMjUg4oCTIEp1biAxMiwgMjAyNlwiLCBcIk9yZ2FuaXphdGlvbjogQWxueWxhbSAtIEFIUCxcbiAgLy8gQWxueWxhbSAtIFBIMVwiIOKAlCBvbmUgbGluZSBwZXIgZmlsdGVyIGdyb3VwIHRoYXQgaGFzIGFuIGFjdGl2ZSBzZXNzaW9uIHZhbHVlLlxuICAvL1xuICAvLyBBIHNlbGVjdCBncm91cCBzdG9yZXMgaWRzLCBzbyBpdHMgbGluZSBoYXMgdG8gYmUgbmFtZWQgb2ZmIHRoZSBvcHRpb24gbGlzdFxuICAvLyBiZWZvcmUgaXQgY2FuIGJlIHByaW50ZWQ7IGEgZGF0ZSBvciBrZXl3b3JkIGdyb3VwIGFscmVhZHkgaG9sZHMgaXRzIG93blxuICAvLyBkaXNwbGF5IHZhbHVlIGFuZCByZXNvbHZlcyBzeW5jaHJvbm91c2x5LlxuICBwcml2YXRlIF9maWx0ZXJTdW1tYXJ5KHJlcG9ydDogUmVwb3J0KTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IGxpbmVzOiBPYnNlcnZhYmxlPHN0cmluZz5bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBncm91cCBvZiByZXBvcnQuZmlsdGVyR3JvdXBzID8/IFtdKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2ZpbHRlclN0YXRlLnZhbHVlKGdyb3VwLmlkKTtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxhYmVsID0gZ3JvdXAubGFiZWwgfHwgJ0ZpbHRlcic7XG5cbiAgICAgIGlmICh2YWx1ZS5zdGFydCB8fCB2YWx1ZS5lbmQpIHtcbiAgICAgICAgbGluZXMucHVzaChvZihgJHtsYWJlbH06ICR7dGhpcy5fZGF0ZSh2YWx1ZS5zdGFydCl9IOKAkyAke3RoaXMuX2RhdGUodmFsdWUuZW5kKX1gKSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLnZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGxpbmVzLnB1c2godGhpcy5fc2VsZWN0TGluZShsYWJlbCwgZ3JvdXAsIHJlcG9ydC5pZCwgdmFsdWUudmFsdWVzKSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLnZhbHVlPy50cmltKCkpIHtcbiAgICAgICAgbGluZXMucHVzaChvZihgJHtsYWJlbH06IFwiJHt2YWx1ZS52YWx1ZS50cmltKCl9XCJgKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZnJlcXVlbmN5ID0gdGhpcy5fZmlsdGVyU3RhdGUuZnJlcXVlbmN5KCk7XG4gICAgaWYgKGZyZXF1ZW5jeSkge1xuICAgICAgY29uc3Qgb3B0aW9uID0gRlJFUVVFTkNZX09QVElPTlMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gZnJlcXVlbmN5KTtcbiAgICAgIGxpbmVzLnB1c2gob2YoYEZyZXF1ZW5jeTogJHtvcHRpb24/Lm5hbWUgPz8gZnJlcXVlbmN5fWApKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGluZXMubGVuZ3RoID8gZm9ya0pvaW4obGluZXMpIDogb2YoW10pO1xuICB9XG5cbiAgLy8gT25lIHNlbGVjdCBncm91cCdzIGxpbmUsIHdpdGggaXRzIHN0b3JlZCBpZHMgcmVzb2x2ZWQgdG8gdGhlIHNhbWUgbmFtZXMgdGhlXG4gIC8vIG9uLXNjcmVlbiBjaGlwcyBzaG93IOKAlCBhIGNvdmVyIHJlYWRpbmcgXCJPcmdhbml6YXRpb246IDg3NzQsIDg3NzdcIiB0ZWxscyB0aGVcbiAgLy8gY2xpZW50IG5vdGhpbmcgYWJvdXQgd2hhdCB0aGUgcmVwb3J0IGNvdmVycy5cbiAgLy9cbiAgLy8gVXNlcyB0aGUgcmVwb3J0IGJhcidzIG93biBsb2FkZXIgYW5kIHJlc29sdmVyIHNvIHRoZSB0d28gY2FuJ3QgZHJpZnQsIHdoaWNoXG4gIC8vIGFsc28gbWVhbnMgYSB2YWx1ZSB3aG9zZSBlbnRpdHkgd2FzIGRlbGV0ZWQga2VlcHMgc2hvd2luZyBpdHMgcmF3IGlkIHJhdGhlclxuICAvLyB0aGFuIGRyb3BwaW5nIG9mZiB0aGUgY292ZXIgYW5kIHNpbGVudGx5IHVuZGVyc3RhdGluZyB0aGUgZmlsdGVyLiBBIGZhaWxlZFxuICAvLyBvcHRpb24gZmV0Y2ggZGVncmFkZXMgdGhlIHdob2xlIGxpbmUgdG8gaWRzIGZvciB0aGUgc2FtZSByZWFzb246IGFuIGV4cG9ydFxuICAvLyBtdXN0IG5ldmVyIGZhaWwgb24gYSBjb3NtZXRpYyBsb29rdXAuXG4gIHByaXZhdGUgX3NlbGVjdExpbmUoXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBncm91cDogUmVwb3J0RmlsdGVyR3JvdXAsXG4gICAgcmVwb3J0SWQ6IG51bWJlcixcbiAgICB2YWx1ZXM6IHVua25vd25bXSxcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gcmVzb2x2ZU9wdGlvblZhbHVlcyhsb2FkR3JvdXBPcHRpb25zKGdyb3VwLCB0aGlzLl9yZXBvcnREYXRhLCByZXBvcnRJZCksIHZhbHVlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc29sdmVkKSA9PiBgJHtsYWJlbH06ICR7cmVzb2x2ZWQubWFwKChpdGVtKSA9PiBpdGVtLm5hbWUpLmpvaW4oJywgJyl9YCksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoYCR7bGFiZWx9OiAke3ZhbHVlcy5tYXAoKGl0ZW0pID0+IFN0cmluZyhpdGVtKSkuam9pbignLCAnKX1gKSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiAn4oCmJztcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gdmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUgOiBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IFN0cmluZyh2YWx1ZSkgOiBmb3JtYXQoZGF0ZSwgJ01NTSBkLCB5eXl5Jyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -118,7 +118,7 @@ export class ReportPdfService {
|
|
|
118
118
|
const config = component.config;
|
|
119
119
|
const row = data.rows[0] ?? {};
|
|
120
120
|
const column = config.measure?.column ?? Object.keys(row)[0];
|
|
121
|
-
const value = formatMeasureValue(row[column], config.measure?.format);
|
|
121
|
+
const value = formatMeasureValue(row[column], config.measure?.format, config.measure?.precision);
|
|
122
122
|
doc.setFont('helvetica', 'bold');
|
|
123
123
|
doc.setFontSize(26);
|
|
124
124
|
doc.setTextColor('#1f2933');
|
|
@@ -130,6 +130,10 @@ export class ReportPdfService {
|
|
|
130
130
|
doc.text(config.measure.label, x + w / 2, y + h / 2 + 16, { align: 'center' });
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
+
// The exported cell must read like the on-screen cell: the SQL already
|
|
134
|
+
// carries the formatting, so the value goes out verbatim. A raw date is the
|
|
135
|
+
// one value the client renders (the column stays a RAW timestamp for the
|
|
136
|
+
// report timezone), and it is rendered here too.
|
|
133
137
|
_cell(value, columnFormat) {
|
|
134
138
|
if (value === null || value === undefined) {
|
|
135
139
|
return '';
|
|
@@ -138,9 +142,6 @@ export class ReportPdfService {
|
|
|
138
142
|
const date = new Date(String(value));
|
|
139
143
|
return Number.isNaN(date.getTime()) ? String(value) : format(date, 'MMM d, yyyy');
|
|
140
144
|
}
|
|
141
|
-
if (columnFormat === 'number') {
|
|
142
|
-
return formatMeasureValue(value, 'number');
|
|
143
|
-
}
|
|
144
145
|
return String(value);
|
|
145
146
|
}
|
|
146
147
|
_slug(name) {
|
|
@@ -152,4 +153,4 @@ export class ReportPdfService {
|
|
|
152
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportPdfService, decorators: [{
|
|
153
154
|
type: Injectable
|
|
154
155
|
}] });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBkZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2V4cG9ydC9yZXBvcnQtcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU8vQyxPQUFPLEVBQXFCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJckQsa0NBQWtDO0FBQ2xDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUVkLHdDQUF3QztBQUN4QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbkIsdUVBQXVFO0FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUV2Qiw4RUFBOEU7QUFDOUUsNkVBQTZFO0FBQzdFLDBFQUEwRTtBQUMxRSx3RUFBd0U7QUFDeEUsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUVoRixNQUFNLE9BQU8sZ0JBQWdCO0lBRXBCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBMEI7UUFDNUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUU1RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcs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Qjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBmb3JtYXRNZWFzdXJlVmFsdWUgfSBmcm9tICcuLi9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RGF0YSxcbiAgS3BpQ29uZmlnLFxuICBMaXN0Q29uZmlnLFxuICBSZXBvcnRDb21wb25lbnQsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7IC8vIENvbXBvbmVudERhdGEgdXNlZCBpbiBtZXRob2Qgc2lnbmF0dXJlcyBiZWxvd1xuaW1wb3J0IHsgQ29tcG9uZW50R2VvbWV0cnksIHBhZ2VHZW9tZXRyeSB9IGZyb20gJy4uL2xheW91dCc7XG5pbXBvcnQgeyByZW5kZXJDaGFydEltYWdlIH0gZnJvbSAnLi9vZmZzY3JlZW4tY2hhcnQnO1xuaW1wb3J0IHsgQ29sbGVjdGVkQ29tcG9uZW50LCBDb2xsZWN0ZWRSZXBvcnQgfSBmcm9tICcuL3JlcG9ydC1leHBvcnQtY29sbGVjdG9yLnNlcnZpY2UnO1xuXG5cbi8vIEluY2hlcyDihpIgcG9pbnRzICh0aGUgUERGIHVuaXQpLlxuY29uc3QgUFQgPSA3MjtcblxuLy8gQ29tcG9uZW50IHRpdGxlIHN0cmlwIGhlaWdodCwgcG9pbnRzLlxuY29uc3QgVElUTEVfSCA9IDE4O1xuLy8gQXBwcm94aW1hdGUgdGFibGUgcm93IGhlaWdodCwgcG9pbnRzIOKAlCBkcml2ZXMgdGhlIHJvd3MtdGhhdC1maXQgY2FwLlxuY29uc3QgVEFCTEVfUk9XX0ggPSAxNjtcblxuLy8gQnVpbGRzIHRoZSBQREYgY2xpZW50LXNpZGUgd2l0aCBqc3BkZi4gVGhlIHJlcG9ydCdzIHVuaXQgaXMgaW5jaGVzIGFuZCBQREZzXG4vLyBhcmUgcG9pbnRzIGF0IGV4YWN0bHkgNzIvaW5jaCwgc28gZWFjaCByZXBvcnQgcGFnZSBiZWNvbWVzIG9uZSBQREYgcGFnZSBvZlxuLy8gdGhlIGV4YWN0IHBoeXNpY2FsIHNpemUgYW5kIGNvbXBvbmVudHMgbGFuZCBhdCB0aGVpciBwcmVjaXNlIHBvc2l0aW9ucy5cbi8vIENoYXJ0cyBhcmUgcmVuZGVyZWQgdGhyb3VnaCBhbiBvZmZzY3JlZW4gRUNoYXJ0cyBpbnN0YW5jZSBhdCAzw5cgcGl4ZWxcbi8vIHJhdGlvIOKAlCBwaXhlbC1pZGVudGljYWwgdG8gdGhlIHNjcmVlbiwgY3Jpc3AgYXQgcHJpbnQgc2l6ZSDigJQgYW5kIHRhYmxlcyBhcmVcbi8vIGRyYXduIHdpdGgganNwZGYtYXV0b3RhYmxlLiBCb3RoIGxpYnJhcmllcyBsb2FkIGxhemlseSBpbnRvIHRoZWlyIG93biBjaHVua3MuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVwb3J0UGRmU2VydmljZSB7XG5cbiAgcHVibGljIGFzeW5jIGV4cG9ydChjb2xsZWN0ZWQ6IENvbGxlY3RlZFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsganNQREYgfSA9IGF3YWl0IGltcG9ydCgnanNwZGYnKTtcbiAgICBjb25zdCBhdXRvVGFibGUgPSAoYXdhaXQgaW1wb3J0KCdqc3BkZi1hdXRvdGFibGUnKSkuZGVmYXVsdDtcblxuICAgIGNvbnN0IHJlcG9ydCA9IGNvbGxlY3RlZC5yZXBvcnQ7XG4gICAgY29uc3QgcGFnZVcgPSByZXBvcnQucGFnZVdpZHRoICogUFQ7XG4gICAgY29uc3QgcGFnZUggPSByZXBvcnQucGFnZUhlaWdodCAqIFBUO1xuXG4gICAgY29uc3QgZG9jID0gbmV3IGpzUERGKHtcbiAgICAgIG9yaWVudGF0aW9uOiBwYWdlVyA+PSBwYWdlSCA/ICdsYW5kc2NhcGUnIDogJ3BvcnRyYWl0JyxcbiAgICAgIHVuaXQ6ICdwdCcsXG4gICAgICBmb3JtYXQ6IFtwYWdlVywgcGFnZUhdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdGl0bGVQYWdlKGRvYywgY29sbGVjdGVkLCBwYWdlVywgcGFnZUgpO1xuXG4gICAgZm9yIChjb25zdCBjb2xsZWN0ZWRQYWdlIG9mIGNvbGxlY3RlZC5wYWdlcykge1xuICAgICAgZG9jLmFkZFBhZ2UoW3BhZ2VXLCBwYWdlSF0sIHBhZ2VXID49IHBhZ2VIID8gJ2xhbmRzY2FwZScgOiAncG9ydHJhaXQnKTtcbiAgICAgIGNvbnN0IGdlb21ldHJ5ID0gcGFnZUdlb21ldHJ5KHJlcG9ydCwgY29sbGVjdGVkUGFnZS5wYWdlKTtcblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbGxlY3RlZFBhZ2UuY29tcG9uZW50cykge1xuICAgICAgICBhd2FpdCB0aGlzLl9yZW5kZXJDb21wb25lbnQoZG9jLCBhdXRvVGFibGUsIGl0ZW0sIGdlb21ldHJ5LmdldChpdGVtLmNvbXBvbmVudC5pZCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRvYy5zYXZlKGAke3RoaXMuX3NsdWcocmVwb3J0Lm5hbWUpfS5wZGZgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RpdGxlUGFnZShkb2M6IGFueSwgY29sbGVjdGVkOiBDb2xsZWN0ZWRSZXBvcnQsIHBhZ2VXOiBudW1iZXIsIHBhZ2VIOiBudW1iZXIpOiB2b2lkIHtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMjgpO1xuICAgIGRvYy5zZXRUZXh0Q29sb3IoJyMxZjI5MzMnKTtcbiAgICBkb2MudGV4dChjb2xsZWN0ZWQucmVwb3J0Lm5hbWUsIDQwLCBwYWdlSCAqIDAuMzUpO1xuXG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMTEpO1xuICAgIGRvYy5zZXRUZXh0Q29sb3IoJyM1MjYwNmQnKTtcblxuICAgIGNvbnN0IGxpbmVzID0gW1xuICAgICAgZm9ybWF0KG5ldyBEYXRlKCksICdNTU1NIGQsIHl5eXknKSxcbiAgICAgIC4uLmNvbGxlY3RlZC5maWx0ZXJTdW1tYXJ5LFxuICAgIF07XG4gICAgZG9jLnRleHQobGluZXMsIDQwLCBwYWdlSCAqIDAuMzUgKyAyNik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZW5kZXJDb21wb25lbnQoZG9jOiBhbnksIGF1dG9UYWJsZTogYW55LCBpdGVtOiBDb2xsZWN0ZWRDb21wb25lbnQsIGdlb21ldHJ5PzogQ29tcG9uZW50R2VvbWV0cnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBpdGVtLmNvbXBvbmVudDtcbiAgICAvLyBHZW9tZXRyeSBhcnJpdmVzIGluIGluY2hlcyAoZmxvdyBsYXlvdXQgcHJlLXJlc29sdmVkKTsgdGhlIFBERiBkcmF3cyBpblxuICAgIC8vIHBvaW50cy5cbiAgICBjb25zdCBpbmNoZXMgPSBnZW9tZXRyeSA/PyBjb21wb25lbnQ7XG4gICAgY29uc3QgeCA9IGluY2hlcy54ICogUFQ7XG4gICAgY29uc3QgeSA9IGluY2hlcy55ICogUFQ7XG4gICAgY29uc3QgdyA9IGluY2hlcy53ICogUFQ7XG4gICAgY29uc3QgaCA9IGluY2hlcy5oICogUFQ7XG5cbiAgICBpZiAoY29tcG9uZW50LnRpdGxlKSB7XG4gICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICAgIGRvYy5zZXRGb250U2l6ZSg5KTtcbiAgICAgIGRvYy5zZXRUZXh0Q29sb3IoJyMxZjI5MzMnKTtcbiAgICAgIGRvYy50ZXh0KGNvbXBvbmVudC50aXRsZSwgeCwgeSArIDEwLCB7IG1heFdpZHRoOiB3IH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHlZID0geSArIFRJVExFX0g7XG4gICAgY29uc3QgYm9keUggPSBNYXRoLm1heCgyMCwgaCAtIFRJVExFX0gpO1xuXG4gICAgaWYgKCFpdGVtLmRhdGEgfHwgIWl0ZW0uZGF0YS5yb3dzPy5sZW5ndGgpIHtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnaXRhbGljJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoOSk7XG4gICAgICBkb2Muc2V0VGV4dENvbG9yKCcjN2I4Nzk0Jyk7XG4gICAgICBkb2MudGV4dChpdGVtLmRhdGEgPyAnTm8gZGF0YScgOiAnRGF0YSB1bmF2YWlsYWJsZScsIHggKyB3IC8gMiwgYm9keVkgKyBib2R5SCAvIDIsIHsgYWxpZ246ICdjZW50ZXInIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xuICAgICAgY2FzZSAnY2hhcnQnOiB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gYXdhaXQgcmVuZGVyQ2hhcnRJbWFnZShjb21wb25lbnQsIGl0ZW0uZGF0YSwgdywgYm9keUgpO1xuICAgICAgICBkb2MuYWRkSW1hZ2UoaW1hZ2UsICdQTkcnLCB4LCBib2R5WSwgdywgYm9keUgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICB0aGlzLl9yZW5kZXJUYWJsZShkb2MsIGF1dG9UYWJsZSwgY29tcG9uZW50LCBpdGVtLmRhdGEsIHgsIGJvZHlZLCB3LCBib2R5SCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAna3BpJzpcbiAgICAgICAgdGhpcy5fcmVuZGVyS3BpKGRvYywgY29tcG9uZW50LCBpdGVtLmRhdGEsIHgsIGJvZHlZLCB3LCBib2R5SCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlclRhYmxlKFxuICAgIGRvYzogYW55LFxuICAgIGF1dG9UYWJsZTogYW55LFxuICAgIGNvbXBvbmVudDogUmVwb3J0Q29tcG9uZW50LFxuICAgIGRhdGE6IENvbXBvbmVudERhdGEsXG4gICAgeDogbnVtYmVyLCB5OiBudW1iZXIsIHc6IG51bWJlciwgaDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSBjb21wb25lbnQuY29uZmlnIGFzIExpc3RDb25maWc7XG4gICAgY29uc3QgY29sdW1ucyA9IGNvbmZpZy5jb2x1bW5zPy5sZW5ndGhcbiAgICAgID8gY29uZmlnLmNvbHVtbnNcbiAgICAgIDogZGF0YS5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoeyBjb2x1bW4sIGxhYmVsOiBjb2x1bW4gfSkpO1xuXG4gICAgY29uc3QgY2FwID0gTWF0aC5tYXgoMiwgTWF0aC5mbG9vcihoIC8gVEFCTEVfUk9XX0gpIC0gMSk7XG4gICAgY29uc3Qgcm93cyA9IGRhdGEucm93cy5zbGljZSgwLCBjYXApO1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IChkYXRhLnBhZ2luZz8udG90YWwgPz8gZGF0YS5yb3dzLmxlbmd0aCkgLSByb3dzLmxlbmd0aDtcblxuICAgIGNvbnN0IGJvZHkgPSByb3dzLm1hcCgocm93KSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB0aGlzLl9jZWxsKHJvd1tjb2x1bW4uY29sdW1uXSwgY29sdW1uLmZvcm1hdCkpKTtcblxuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBib2R5LnB1c2goW2DigKYgJHtyZW1haW5pbmd9IG1vcmUgcm93KHMpIOKAlCB1c2UgdGhlIGNvbXBvbmVudCdzIENTViBleHBvcnQgZm9yIHRoZSBmdWxsIGRhdGFzZXRgXSk7XG4gICAgfVxuXG4gICAgYXV0b1RhYmxlKGRvYywge1xuICAgICAgaGVhZDogW2NvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5sYWJlbCB8fCBjb2x1bW4uY29sdW1uKV0sXG4gICAgICBib2R5LFxuICAgICAgc3RhcnRZOiB5LFxuICAgICAgbWFyZ2luOiB7IGxlZnQ6IHggfSxcbiAgICAgIHRhYmxlV2lkdGg6IHcsXG4gICAgICBzdHlsZXM6IHsgZm9udFNpemU6IDgsIGNlbGxQYWRkaW5nOiAzLCB0ZXh0Q29sb3I6ICcjMWYyOTMzJyB9LFxuICAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6ICcjNGU3OWE3JywgdGV4dENvbG9yOiAnI2ZmZmZmZicsIGZvbnRTdHlsZTogJ2JvbGQnIH0sXG4gICAgICBhbHRlcm5hdGVSb3dTdHlsZXM6IHsgZmlsbENvbG9yOiAnI2Y1ZjdmYScgfSxcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJLcGkoXG4gICAgZG9jOiBhbnksXG4gICAgY29tcG9uZW50OiBSZXBvcnRDb21wb25lbnQsXG4gICAgZGF0YTogQ29tcG9uZW50RGF0YSxcbiAgICB4OiBudW1iZXIsIHk6IG51bWJlciwgdzogbnVtYmVyLCBoOiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbXBvbmVudC5jb25maWcgYXMgS3BpQ29uZmlnO1xuICAgIGNvbnN0IHJvdyA9IGRhdGEucm93c1swXSA/PyB7fTtcbiAgICBjb25zdCBjb2x1bW4gPSBjb25maWcubWVhc3VyZT8uY29sdW1uID8/IE9iamVjdC5rZXlzKHJvdylbMF07XG4gICAgY29uc3QgdmFsdWUgPSBmb3JtYXRNZWFzdXJlVmFsdWUocm93W2NvbHVtbl0sIGNvbmZpZy5tZWFzdXJlPy5mb3JtYXQpO1xuXG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XG4gICAgZG9jLnNldEZvbnRTaXplKDI2KTtcbiAgICBkb2Muc2V0VGV4dENvbG9yKCcjMWYyOTMzJyk7XG4gICAgZG9jLnRleHQodmFsdWUsIHggKyB3IC8gMiwgeSArIGggLyAyLCB7IGFsaWduOiAnY2VudGVyJyB9KTtcblxuICAgIGlmIChjb25maWcubWVhc3VyZT8ubGFiZWwpIHtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoOSk7XG4gICAgICBkb2Muc2V0VGV4dENvbG9yKCcjN2I4Nzk0Jyk7XG4gICAgICBkb2MudGV4dChjb25maWcubWVhc3VyZS5sYWJlbCwgeCArIHcgLyAyLCB5ICsgaCAvIDIgKyAxNiwgeyBhbGlnbjogJ2NlbnRlcicgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2VsbCh2YWx1ZTogdW5rbm93biwgY29sdW1uRm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW5Gb3JtYXQgPT09ICdkYXRlJykge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFN0cmluZyh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gTnVtYmVyLmlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IFN0cmluZyh2YWx1ZSkgOiBmb3JtYXQoZGF0ZSwgJ01NTSBkLCB5eXl5Jyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbkZvcm1hdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBmb3JtYXRNZWFzdXJlVmFsdWUodmFsdWUsICdudW1iZXInKTtcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NsdWcobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLSt8LSskL2csICcnKSB8fCAncmVwb3J0JztcbiAgfVxufVxuIl19
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBkZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2V4cG9ydC9yZXBvcnQtcGRmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU8vQyxPQUFPLEVBQXFCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJckQsa0NBQWtDO0FBQ2xDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUVkLHdDQUF3QztBQUN4QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbkIsdUVBQXVFO0FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUV2Qiw4RUFBOEU7QUFDOUUsNkVBQTZFO0FBQzdFLDBFQUEwRTtBQUMxRSx3RUFBd0U7QUFDeEUsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUVoRixNQUFNLE9BQU8sZ0JBQWdCO0lBRXBCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBMEI7UUFDNUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUU1RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcs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QUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBmb3JtYXRNZWFzdXJlVmFsdWUgfSBmcm9tICcuLi9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RGF0YSxcbiAgS3BpQ29uZmlnLFxuICBMaXN0Q29uZmlnLFxuICBSZXBvcnRDb21wb25lbnQsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LmludGVyZmFjZSc7IC8vIENvbXBvbmVudERhdGEgdXNlZCBpbiBtZXRob2Qgc2lnbmF0dXJlcyBiZWxvd1xuaW1wb3J0IHsgQ29tcG9uZW50R2VvbWV0cnksIHBhZ2VHZW9tZXRyeSB9IGZyb20gJy4uL2xheW91dCc7XG5pbXBvcnQgeyByZW5kZXJDaGFydEltYWdlIH0gZnJvbSAnLi9vZmZzY3JlZW4tY2hhcnQnO1xuaW1wb3J0IHsgQ29sbGVjdGVkQ29tcG9uZW50LCBDb2xsZWN0ZWRSZXBvcnQgfSBmcm9tICcuL3JlcG9ydC1leHBvcnQtY29sbGVjdG9yLnNlcnZpY2UnO1xuXG5cbi8vIEluY2hlcyDihpIgcG9pbnRzICh0aGUgUERGIHVuaXQpLlxuY29uc3QgUFQgPSA3MjtcblxuLy8gQ29tcG9uZW50IHRpdGxlIHN0cmlwIGhlaWdodCwgcG9pbnRzLlxuY29uc3QgVElUTEVfSCA9IDE4O1xuLy8gQXBwcm94aW1hdGUgdGFibGUgcm93IGhlaWdodCwgcG9pbnRzIOKAlCBkcml2ZXMgdGhlIHJvd3MtdGhhdC1maXQgY2FwLlxuY29uc3QgVEFCTEVfUk9XX0ggPSAxNjtcblxuLy8gQnVpbGRzIHRoZSBQREYgY2xpZW50LXNpZGUgd2l0aCBqc3BkZi4gVGhlIHJlcG9ydCdzIHVuaXQgaXMgaW5jaGVzIGFuZCBQREZzXG4vLyBhcmUgcG9pbnRzIGF0IGV4YWN0bHkgNzIvaW5jaCwgc28gZWFjaCByZXBvcnQgcGFnZSBiZWNvbWVzIG9uZSBQREYgcGFnZSBvZlxuLy8gdGhlIGV4YWN0IHBoeXNpY2FsIHNpemUgYW5kIGNvbXBvbmVudHMgbGFuZCBhdCB0aGVpciBwcmVjaXNlIHBvc2l0aW9ucy5cbi8vIENoYXJ0cyBhcmUgcmVuZGVyZWQgdGhyb3VnaCBhbiBvZmZzY3JlZW4gRUNoYXJ0cyBpbnN0YW5jZSBhdCAzw5cgcGl4ZWxcbi8vIHJhdGlvIOKAlCBwaXhlbC1pZGVudGljYWwgdG8gdGhlIHNjcmVlbiwgY3Jpc3AgYXQgcHJpbnQgc2l6ZSDigJQgYW5kIHRhYmxlcyBhcmVcbi8vIGRyYXduIHdpdGgganNwZGYtYXV0b3RhYmxlLiBCb3RoIGxpYnJhcmllcyBsb2FkIGxhemlseSBpbnRvIHRoZWlyIG93biBjaHVua3MuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVwb3J0UGRmU2VydmljZSB7XG5cbiAgcHVibGljIGFzeW5jIGV4cG9ydChjb2xsZWN0ZWQ6IENvbGxlY3RlZFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsganNQREYgfSA9IGF3YWl0IGltcG9ydCgnanNwZGYnKTtcbiAgICBjb25zdCBhdXRvVGFibGUgPSAoYXdhaXQgaW1wb3J0KCdqc3BkZi1hdXRvdGFibGUnKSkuZGVmYXVsdDtcblxuICAgIGNvbnN0IHJlcG9ydCA9IGNvbGxlY3RlZC5yZXBvcnQ7XG4gICAgY29uc3QgcGFnZVcgPSByZXBvcnQucGFnZVdpZHRoICogUFQ7XG4gICAgY29uc3QgcGFnZUggPSByZXBvcnQucGFnZUhlaWdodCAqIFBUO1xuXG4gICAgY29uc3QgZG9jID0gbmV3IGpzUERGKHtcbiAgICAgIG9yaWVudGF0aW9uOiBwYWdlVyA+PSBwYWdlSCA/ICdsYW5kc2NhcGUnIDogJ3BvcnRyYWl0JyxcbiAgICAgIHVuaXQ6ICdwdCcsXG4gICAgICBmb3JtYXQ6IFtwYWdlVywgcGFnZUhdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdGl0bGVQYWdlKGRvYywgY29sbGVjdGVkLCBwYWdlVywgcGFnZUgpO1xuXG4gICAgZm9yIChjb25zdCBjb2xsZWN0ZWRQYWdlIG9mIGNvbGxlY3RlZC5wYWdlcykge1xuICAgICAgZG9jLmFkZFBhZ2UoW3BhZ2VXLCBwYWdlSF0sIHBhZ2VXID49IHBhZ2VIID8gJ2xhbmRzY2FwZScgOiAncG9ydHJhaXQnKTtcbiAgICAgIGNvbnN0IGdlb21ldHJ5ID0gcGFnZUdlb21ldHJ5KHJlcG9ydCwgY29sbGVjdGVkUGFnZS5wYWdlKTtcblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbGxlY3RlZFBhZ2UuY29tcG9uZW50cykge1xuICAgICAgICBhd2FpdCB0aGlzLl9yZW5kZXJDb21wb25lbnQoZG9jLCBhdXRvVGFibGUsIGl0ZW0sIGdlb21ldHJ5LmdldChpdGVtLmNvbXBvbmVudC5pZCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRvYy5zYXZlKGAke3RoaXMuX3NsdWcocmVwb3J0Lm5hbWUpfS5wZGZgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RpdGxlUGFnZShkb2M6IGFueSwgY29sbGVjdGVkOiBDb2xsZWN0ZWRSZXBvcnQsIHBhZ2VXOiBudW1iZXIsIHBhZ2VIOiBudW1iZXIpOiB2b2lkIHtcbiAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMjgpO1xuICAgIGRvYy5zZXRUZXh0Q29sb3IoJyMxZjI5MzMnKTtcbiAgICBkb2MudGV4dChjb2xsZWN0ZWQucmVwb3J0Lm5hbWUsIDQwLCBwYWdlSCAqIDAuMzUpO1xuXG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdub3JtYWwnKTtcbiAgICBkb2Muc2V0Rm9udFNpemUoMTEpO1xuICAgIGRvYy5zZXRUZXh0Q29sb3IoJyM1MjYwNmQnKTtcblxuICAgIGNvbnN0IGxpbmVzID0gW1xuICAgICAgZm9ybWF0KG5ldyBEYXRlKCksICdNTU1NIGQsIHl5eXknKSxcbiAgICAgIC4uLmNvbGxlY3RlZC5maWx0ZXJTdW1tYXJ5LFxuICAgIF07XG4gICAgZG9jLnRleHQobGluZXMsIDQwLCBwYWdlSCAqIDAuMzUgKyAyNik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZW5kZXJDb21wb25lbnQoZG9jOiBhbnksIGF1dG9UYWJsZTogYW55LCBpdGVtOiBDb2xsZWN0ZWRDb21wb25lbnQsIGdlb21ldHJ5PzogQ29tcG9uZW50R2VvbWV0cnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBpdGVtLmNvbXBvbmVudDtcbiAgICAvLyBHZW9tZXRyeSBhcnJpdmVzIGluIGluY2hlcyAoZmxvdyBsYXlvdXQgcHJlLXJlc29sdmVkKTsgdGhlIFBERiBkcmF3cyBpblxuICAgIC8vIHBvaW50cy5cbiAgICBjb25zdCBpbmNoZXMgPSBnZW9tZXRyeSA/PyBjb21wb25lbnQ7XG4gICAgY29uc3QgeCA9IGluY2hlcy54ICogUFQ7XG4gICAgY29uc3QgeSA9IGluY2hlcy55ICogUFQ7XG4gICAgY29uc3QgdyA9IGluY2hlcy53ICogUFQ7XG4gICAgY29uc3QgaCA9IGluY2hlcy5oICogUFQ7XG5cbiAgICBpZiAoY29tcG9uZW50LnRpdGxlKSB7XG4gICAgICBkb2Muc2V0Rm9udCgnaGVsdmV0aWNhJywgJ2JvbGQnKTtcbiAgICAgIGRvYy5zZXRGb250U2l6ZSg5KTtcbiAgICAgIGRvYy5zZXRUZXh0Q29sb3IoJyMxZjI5MzMnKTtcbiAgICAgIGRvYy50ZXh0KGNvbXBvbmVudC50aXRsZSwgeCwgeSArIDEwLCB7IG1heFdpZHRoOiB3IH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHlZID0geSArIFRJVExFX0g7XG4gICAgY29uc3QgYm9keUggPSBNYXRoLm1heCgyMCwgaCAtIFRJVExFX0gpO1xuXG4gICAgaWYgKCFpdGVtLmRhdGEgfHwgIWl0ZW0uZGF0YS5yb3dzPy5sZW5ndGgpIHtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnaXRhbGljJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoOSk7XG4gICAgICBkb2Muc2V0VGV4dENvbG9yKCcjN2I4Nzk0Jyk7XG4gICAgICBkb2MudGV4dChpdGVtLmRhdGEgPyAnTm8gZGF0YScgOiAnRGF0YSB1bmF2YWlsYWJsZScsIHggKyB3IC8gMiwgYm9keVkgKyBib2R5SCAvIDIsIHsgYWxpZ246ICdjZW50ZXInIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xuICAgICAgY2FzZSAnY2hhcnQnOiB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gYXdhaXQgcmVuZGVyQ2hhcnRJbWFnZShjb21wb25lbnQsIGl0ZW0uZGF0YSwgdywgYm9keUgpO1xuICAgICAgICBkb2MuYWRkSW1hZ2UoaW1hZ2UsICdQTkcnLCB4LCBib2R5WSwgdywgYm9keUgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xpc3QnOlxuICAgICAgICB0aGlzLl9yZW5kZXJUYWJsZShkb2MsIGF1dG9UYWJsZSwgY29tcG9uZW50LCBpdGVtLmRhdGEsIHgsIGJvZHlZLCB3LCBib2R5SCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAna3BpJzpcbiAgICAgICAgdGhpcy5fcmVuZGVyS3BpKGRvYywgY29tcG9uZW50LCBpdGVtLmRhdGEsIHgsIGJvZHlZLCB3LCBib2R5SCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlclRhYmxlKFxuICAgIGRvYzogYW55LFxuICAgIGF1dG9UYWJsZTogYW55LFxuICAgIGNvbXBvbmVudDogUmVwb3J0Q29tcG9uZW50LFxuICAgIGRhdGE6IENvbXBvbmVudERhdGEsXG4gICAgeDogbnVtYmVyLCB5OiBudW1iZXIsIHc6IG51bWJlciwgaDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSBjb21wb25lbnQuY29uZmlnIGFzIExpc3RDb25maWc7XG4gICAgY29uc3QgY29sdW1ucyA9IGNvbmZpZy5jb2x1bW5zPy5sZW5ndGhcbiAgICAgID8gY29uZmlnLmNvbHVtbnNcbiAgICAgIDogZGF0YS5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoeyBjb2x1bW4sIGxhYmVsOiBjb2x1bW4gfSkpO1xuXG4gICAgY29uc3QgY2FwID0gTWF0aC5tYXgoMiwgTWF0aC5mbG9vcihoIC8gVEFCTEVfUk9XX0gpIC0gMSk7XG4gICAgY29uc3Qgcm93cyA9IGRhdGEucm93cy5zbGljZSgwLCBjYXApO1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IChkYXRhLnBhZ2luZz8udG90YWwgPz8gZGF0YS5yb3dzLmxlbmd0aCkgLSByb3dzLmxlbmd0aDtcblxuICAgIGNvbnN0IGJvZHkgPSByb3dzLm1hcCgocm93KSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB0aGlzLl9jZWxsKHJvd1tjb2x1bW4uY29sdW1uXSwgY29sdW1uLmZvcm1hdCkpKTtcblxuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBib2R5LnB1c2goW2DigKYgJHtyZW1haW5pbmd9IG1vcmUgcm93KHMpIOKAlCB1c2UgdGhlIGNvbXBvbmVudCdzIENTViBleHBvcnQgZm9yIHRoZSBmdWxsIGRhdGFzZXRgXSk7XG4gICAgfVxuXG4gICAgYXV0b1RhYmxlKGRvYywge1xuICAgICAgaGVhZDogW2NvbHVtbnMubWFwKChjb2x1bW4pID0+IGNvbHVtbi5sYWJlbCB8fCBjb2x1bW4uY29sdW1uKV0sXG4gICAgICBib2R5LFxuICAgICAgc3RhcnRZOiB5LFxuICAgICAgbWFyZ2luOiB7IGxlZnQ6IHggfSxcbiAgICAgIHRhYmxlV2lkdGg6IHcsXG4gICAgICBzdHlsZXM6IHsgZm9udFNpemU6IDgsIGNlbGxQYWRkaW5nOiAzLCB0ZXh0Q29sb3I6ICcjMWYyOTMzJyB9LFxuICAgICAgaGVhZFN0eWxlczogeyBmaWxsQ29sb3I6ICcjNGU3OWE3JywgdGV4dENvbG9yOiAnI2ZmZmZmZicsIGZvbnRTdHlsZTogJ2JvbGQnIH0sXG4gICAgICBhbHRlcm5hdGVSb3dTdHlsZXM6IHsgZmlsbENvbG9yOiAnI2Y1ZjdmYScgfSxcbiAgICAgIHRoZW1lOiAnZ3JpZCcsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJLcGkoXG4gICAgZG9jOiBhbnksXG4gICAgY29tcG9uZW50OiBSZXBvcnRDb21wb25lbnQsXG4gICAgZGF0YTogQ29tcG9uZW50RGF0YSxcbiAgICB4OiBudW1iZXIsIHk6IG51bWJlciwgdzogbnVtYmVyLCBoOiBudW1iZXIsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbXBvbmVudC5jb25maWcgYXMgS3BpQ29uZmlnO1xuICAgIGNvbnN0IHJvdyA9IGRhdGEucm93c1swXSA/PyB7fTtcbiAgICBjb25zdCBjb2x1bW4gPSBjb25maWcubWVhc3VyZT8uY29sdW1uID8/IE9iamVjdC5rZXlzKHJvdylbMF07XG4gICAgY29uc3QgdmFsdWUgPSBmb3JtYXRNZWFzdXJlVmFsdWUocm93W2NvbHVtbl0sIGNvbmZpZy5tZWFzdXJlPy5mb3JtYXQsIGNvbmZpZy5tZWFzdXJlPy5wcmVjaXNpb24pO1xuXG4gICAgZG9jLnNldEZvbnQoJ2hlbHZldGljYScsICdib2xkJyk7XG4gICAgZG9jLnNldEZvbnRTaXplKDI2KTtcbiAgICBkb2Muc2V0VGV4dENvbG9yKCcjMWYyOTMzJyk7XG4gICAgZG9jLnRleHQodmFsdWUsIHggKyB3IC8gMiwgeSArIGggLyAyLCB7IGFsaWduOiAnY2VudGVyJyB9KTtcblxuICAgIGlmIChjb25maWcubWVhc3VyZT8ubGFiZWwpIHtcbiAgICAgIGRvYy5zZXRGb250KCdoZWx2ZXRpY2EnLCAnbm9ybWFsJyk7XG4gICAgICBkb2Muc2V0Rm9udFNpemUoOSk7XG4gICAgICBkb2Muc2V0VGV4dENvbG9yKCcjN2I4Nzk0Jyk7XG4gICAgICBkb2MudGV4dChjb25maWcubWVhc3VyZS5sYWJlbCwgeCArIHcgLyAyLCB5ICsgaCAvIDIgKyAxNiwgeyBhbGlnbjogJ2NlbnRlcicgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIGV4cG9ydGVkIGNlbGwgbXVzdCByZWFkIGxpa2UgdGhlIG9uLXNjcmVlbiBjZWxsOiB0aGUgU1FMIGFscmVhZHlcbiAgLy8gY2FycmllcyB0aGUgZm9ybWF0dGluZywgc28gdGhlIHZhbHVlIGdvZXMgb3V0IHZlcmJhdGltLiBBIHJhdyBkYXRlIGlzIHRoZVxuICAvLyBvbmUgdmFsdWUgdGhlIGNsaWVudCByZW5kZXJzICh0aGUgY29sdW1uIHN0YXlzIGEgUkFXIHRpbWVzdGFtcCBmb3IgdGhlXG4gIC8vIHJlcG9ydCB0aW1lem9uZSksIGFuZCBpdCBpcyByZW5kZXJlZCBoZXJlIHRvby5cbiAgcHJpdmF0ZSBfY2VsbCh2YWx1ZTogdW5rbm93biwgY29sdW1uRm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmIChjb2x1bW5Gb3JtYXQgPT09ICdkYXRlJykge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFN0cmluZyh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gTnVtYmVyLmlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IFN0cmluZyh2YWx1ZSkgOiBmb3JtYXQoZGF0ZSwgJ01NTSBkLCB5eXl5Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9zbHVnKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJykucmVwbGFjZSgvXi0rfC0rJC9nLCAnJykgfHwgJ3JlcG9ydCc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -189,7 +189,7 @@ export class ReportPptxService {
|
|
|
189
189
|
const config = component.config;
|
|
190
190
|
const row = data.rows[0] ?? {};
|
|
191
191
|
const column = config.measure?.column ?? Object.keys(row)[0];
|
|
192
|
-
const value = formatMeasureValue(row[column], config.measure?.format);
|
|
192
|
+
const value = formatMeasureValue(row[column], config.measure?.format, config.measure?.precision);
|
|
193
193
|
slide.addText([
|
|
194
194
|
{ text: value, options: { fontSize: 28, bold: true, color: '1F2933', breakLine: true } },
|
|
195
195
|
{ text: config.measure?.label ?? '', options: { fontSize: 10, color: '7B8794' } },
|
|
@@ -199,6 +199,10 @@ export class ReportPptxService {
|
|
|
199
199
|
valign: 'middle',
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
|
+
// The exported cell must read like the on-screen cell: the SQL already
|
|
203
|
+
// carries the formatting, so the value goes out verbatim. A raw date is the
|
|
204
|
+
// one value the client renders (the column stays a RAW timestamp for the
|
|
205
|
+
// report timezone), and it is rendered here too.
|
|
202
206
|
_cell(value, columnFormat) {
|
|
203
207
|
if (value === null || value === undefined) {
|
|
204
208
|
return '';
|
|
@@ -207,9 +211,6 @@ export class ReportPptxService {
|
|
|
207
211
|
const date = new Date(String(value));
|
|
208
212
|
return Number.isNaN(date.getTime()) ? String(value) : format(date, 'MMM d, yyyy');
|
|
209
213
|
}
|
|
210
|
-
if (columnFormat === 'number') {
|
|
211
|
-
return formatMeasureValue(value, 'number');
|
|
212
|
-
}
|
|
213
214
|
return String(value);
|
|
214
215
|
}
|
|
215
216
|
_slug(name) {
|
|
@@ -221,4 +222,4 @@ export class ReportPptxService {
|
|
|
221
222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportPptxService, decorators: [{
|
|
222
223
|
type: Injectable
|
|
223
224
|
}] });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBwdHguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9leHBvcnQvcmVwb3J0LXBwdHguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUy9DLE9BQU8sRUFBcUIsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFJdkQscURBQXFEO0FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUNyQix1RUFBdUU7QUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBRXpCLDRFQUE0RTtBQUM1RSw2RUFBNkU7QUFDN0UsVUFBVTtBQUNWLE1BQU0sZUFBZSxHQUFrRDtJQUNyRSxHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxHQUFHO0lBQ1gsSUFBSSxFQUFFLEdBQUc7SUFDVCxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0NBQ1osQ0FBQztBQUVGLDJFQUEyRTtBQUMzRSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsbUVBQW1FO0FBRW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFFckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUEwQjtRQUM1QyxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FB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LElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFckMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUVELElBQUksWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8sS0FBSyxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUM1RixDQUFDO3dHQXBQVSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBmb3JtYXRNZWFzdXJlVmFsdWUgfSBmcm9tICcuLi9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgQ2hhcnRDb25maWcsXG4gIENvbXBvbmVudERhdGEsXG4gIExlZ2VuZFBvc2l0aW9uLFxuICBMaXN0Q29uZmlnLFxuICBLcGlDb25maWcsXG4gIFJlcG9ydENvbXBvbmVudCxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudEdlb21ldHJ5LCBwYWdlR2VvbWV0cnkgfSBmcm9tICcuLi9sYXlvdXQnO1xuaW1wb3J0IHsgZXh0cmFjdENoYXJ0U2VyaWVzLCBmb3JtYXRQZXJpb2RMYWJlbCwgaXNDb2xvckJ5LCByZXNvbHZlTGVnZW5kUG9zaXRpb24sIHNwYW5zTXVsdGlwbGVZZWFycyB9IGZyb20gJy4uL29wdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IFJFUE9SVF9DSEFSVF9DT0xPUlMgfSBmcm9tICcuLi90aGVtZS9wYWxldHRlJztcbmltcG9ydCB7IENvbGxlY3RlZENvbXBvbmVudCwgQ29sbGVjdGVkUmVwb3J0IH0gZnJvbSAnLi9yZXBvcnQtZXhwb3J0LWNvbGxlY3Rvci5zZXJ2aWNlJztcblxuXG4vLyBDb21wb25lbnQgdGl0bGUgc3RyaXAgaGVpZ2h0IG9uIHRoZSBzbGlkZSwgaW5jaGVzLlxuY29uc3QgVElUTEVfSCA9IDAuMjg7XG4vLyBBcHByb3hpbWF0ZSB0YWJsZSByb3cgaGVpZ2h0LCBpbmNoZXMg4oCUIGRyaXZlcyB0aGUgcm93cy10aGF0LWZpdCBjYXAuXG5jb25zdCBUQUJMRV9ST1dfSCA9IDAuMjY7XG5cbi8vIE91ciBsZWdlbmQgcG9zaXRpb25zIG1hcHBlZCB0byBwcHR4Z2VuanMncyBzaW5nbGUtbGV0dGVyIGxlZ2VuZFBvcyBjb2Rlcy5cbi8vICdoaWRkZW4nIGhhcyBubyBzbG90IOKAlCBzaG93TGVnZW5kIGlzIHR1cm5lZCBvZmYgaW5zdGVhZCDigJQgc28gaXQgZmFsbHMgYmFja1xuLy8gdG8gdG9wLlxuY29uc3QgUFBUWF9MRUdFTkRfUE9TOiBSZWNvcmQ8TGVnZW5kUG9zaXRpb24sICd0JyB8ICdiJyB8ICdsJyB8ICdyJz4gPSB7XG4gIHRvcDogJ3QnLFxuICBib3R0b206ICdiJyxcbiAgbGVmdDogJ2wnLFxuICByaWdodDogJ3InLFxuICBoaWRkZW46ICd0Jyxcbn07XG5cbi8vIEJ1aWxkcyB0aGUgUG93ZXJQb2ludCBkZWNrIGNsaWVudC1zaWRlIHdpdGggcHB0eGdlbmpzLiBDaGFydHMgYXJlIE5BVElWRVxuLy8gZWRpdGFibGUgUG93ZXJQb2ludCBjaGFydHMgKHNsaWRlLmFkZENoYXJ0IHdyaXRlcyByZWFsIGNoYXJ0IFhNTCB3aXRoIGFuXG4vLyBlbWJlZGRlZCBkYXRhIHdvcmtib29rIOKAlCBcIkVkaXQgRGF0YVwiIHdvcmtzKSwgbmV2ZXIgaW1hZ2VzLiBUaGUgcGFnZSBJUyB0aGVcbi8vIHNsaWRlOiB0aGUgcmVwb3J0J3MgdW5pdCBpcyBpbmNoZXMg4oCUIGV4YWN0bHkgUG93ZXJQb2ludCdzIHVuaXQg4oCUIHNvIHRoZVxuLy8gbGF5b3V0IGFuZCBldmVyeSBjb21wb25lbnQgcG9zaXRpb24gdHJhbnNmZXIgd2l0aCBubyBjb252ZXJzaW9uIGF0IGFsbC5cbi8vIHBwdHhnZW5qcyBpcyBsb2FkZWQgbGF6aWx5IHNvIGl0IGxpdmVzIGluIGl0cyBvd24gd2VicGFjayBjaHVuay5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXBvcnRQcHR4U2VydmljZSB7XG5cbiAgcHVibGljIGFzeW5jIGV4cG9ydChjb2xsZWN0ZWQ6IENvbGxlY3RlZFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IFBwdHhHZW5KUyA9IChhd2FpdCBpbXBvcnQoJ3BwdHhnZW5qcycpKS5kZWZhdWx0O1xuXG4gICAgY29uc3QgcmVwb3J0ID0gY29sbGVjdGVkLnJlcG9ydDtcbiAgICBjb25zdCBwYWdlVyA9IHJlcG9ydC5wYWdlV2lkdGg7XG4gICAgY29uc3QgcGFnZUggPSByZXBvcnQucGFnZUhlaWdodDtcblxuICAgIGNvbnN0IHBwdHggPSBuZXcgUHB0eEdlbkpTKCk7XG4gICAgcHB0eC5kZWZpbmVMYXlvdXQoeyBuYW1lOiAnUkVQT1JUJywgd2lkdGg6IHBhZ2VXLCBoZWlnaHQ6IHBhZ2VIIH0pO1xuICAgIHBwdHgubGF5b3V0ID0gJ1JFUE9SVCc7XG4gICAgcHB0eC50aXRsZSA9IHJlcG9ydC5uYW1lO1xuXG4gICAgdGhpcy5fdGl0bGVTbGlkZShwcHR4LCBjb2xsZWN0ZWQsIHBhZ2VXLCBwYWdlSCk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbGxlY3RlZFBhZ2Ugb2YgY29sbGVjdGVkLnBhZ2VzKSB7XG4gICAgICBjb25zdCBzbGlkZSA9IHBwdHguYWRkU2xpZGUoKTtcbiAgICAgIGNvbnN0IGdlb21ldHJ5ID0gcGFnZUdlb21ldHJ5KHJlcG9ydCwgY29sbGVjdGVkUGFnZS5wYWdlKTtcblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbGxlY3RlZFBhZ2UuY29tcG9uZW50cykge1xuICAgICAgICB0aGlzLl9yZW5kZXJDb21wb25lbnQocHB0eCwgc2xpZGUsIGl0ZW0sIGdlb21ldHJ5LmdldChpdGVtLmNvbXBvbmVudC5pZCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGF3YWl0IHBwdHgud3JpdGVGaWxlKHsgZmlsZU5hbWU6IGAke3RoaXMuX3NsdWcocmVwb3J0Lm5hbWUpfS5wcHR4YCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RpdGxlU2xpZGUocHB0eDogYW55LCBjb2xsZWN0ZWQ6IENvbGxlY3RlZFJlcG9ydCwgcGFnZVc6IG51bWJlciwgcGFnZUg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHNsaWRlID0gcHB0eC5hZGRTbGlkZSgpO1xuXG4gICAgc2xpZGUuYWRkVGV4dChjb2xsZWN0ZWQucmVwb3J0Lm5hbWUsIHtcbiAgICAgIHg6IDAuNSwgeTogcGFnZUggKiAwLjMsIHc6IHBhZ2VXIC0gMSwgaDogMC44LFxuICAgICAgZm9udFNpemU6IDMwLCBib2xkOiB0cnVlLCBjb2xvcjogJzFGMjkzMycsXG4gICAgfSk7XG5cbiAgICBjb25zdCBsaW5lcyA9IFtcbiAgICAgIGZvcm1hdChuZXcgRGF0ZSgpLCAnTU1NTSBkLCB5eXl5JyksXG4gICAgICAuLi5jb2xsZWN0ZWQuZmlsdGVyU3VtbWFyeSxcbiAgICBdO1xuXG4gICAgc2xpZGUuYWRkVGV4dChsaW5lcy5qb2luKCdcXG4nKSwge1xuICAgICAgeDogMC41LCB5OiBwYWdlSCAqIDAuMyArIDAuOSwgdzogcGFnZVcgLSAxLCBoOiBNYXRoLm1heCgwLjQsIGxpbmVzLmxlbmd0aCAqIDAuMjUpLFxuICAgICAgZm9udFNpemU6IDEyLCBjb2xvcjogJzUyNjA2RCcsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJDb21wb25lbnQocHB0eDogYW55LCBzbGlkZTogYW55LCBpdGVtOiBDb2xsZWN0ZWRDb21wb25lbnQsIGdlb21ldHJ5PzogQ29tcG9uZW50R2VvbWV0cnkpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBpdGVtLmNvbXBvbmVudDtcbiAgICAvLyBHZW9tZXRyeSBpcyBpbiBpbmNoZXMg4oCUIFBvd2VyUG9pbnQncyBuYXRpdmUgdW5pdCAoZmxvdyBsYXlvdXQgYXJyaXZlc1xuICAgIC8vIHByZS1yZXNvbHZlZCBpbnRvIHJvd3MgYnkgcGFnZUdlb21ldHJ5KS5cbiAgICBjb25zdCB7IHgsIHksIHcsIGggfSA9IGdlb21ldHJ5ID8/IGNvbXBvbmVudDtcblxuICAgIGlmIChjb21wb25lbnQudGl0bGUpIHtcbiAgICAgIHNsaWRlLmFkZFRleHQoY29tcG9uZW50LnRpdGxlLCB7XG4gICAgICAgIHgsIHksIHcsIGg6IFRJVExFX0gsXG4gICAgICAgIGZvbnRTaXplOiAxMCwgYm9sZDogdHJ1ZSwgY29sb3I6ICcxRjI5MzMnLCB2YWxpZ246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keVkgPSB5ICsgVElUTEVfSDtcbiAgICBjb25zdCBib2R5SCA9IE1hdGgubWF4KDAuMywgaCAtIFRJVExFX0gpO1xuXG4gICAgaWYgKCFpdGVtLmRhdGEgfHwgIWl0ZW0uZGF0YS5yb3dzPy5sZW5ndGgpIHtcbiAgICAgIHNsaWRlLmFkZFRleHQoaXRlbS5kYXRhID8gJ05vIGRhdGEnIDogJ0RhdGEgdW5hdmFpbGFibGUnLCB7XG4gICAgICAgIHgsIHk6IGJvZHlZLCB3LCBoOiBib2R5SCxcbiAgICAgICAgZm9udFNpemU6IDEwLCBpdGFsaWM6IHRydWUsIGNvbG9yOiAnN0I4Nzk0JywgYWxpZ246ICdjZW50ZXInLCB2YWxpZ246ICdtaWRkbGUnLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XG4gICAgICBjYXNlICdjaGFydCc6XG4gICAgICAgIHRoaXMuX3JlbmRlckNoYXJ0KHBwdHgsIHNsaWRlLCBjb21wb25lbnQsIGl0ZW0uZGF0YSwgeCwgYm9keVksIHcsIGJvZHlIKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgdGhpcy5fcmVuZGVyVGFibGUoc2xpZGUsIGNvbXBvbmVudCwgaXRlbS5kYXRhLCB4LCBib2R5WSwgdywgYm9keUgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2twaSc6XG4gICAgICAgIHRoaXMuX3JlbmRlcktwaShzbGlkZSwgY29tcG9uZW50LCBpdGVtLmRhdGEsIHgsIGJvZHlZLCB3LCBib2R5SCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckNoYXJ0KFxuICAgIHBwdHg6IGFueSxcbiAgICBzbGlkZTogYW55LFxuICAgIGNvbXBvbmVudDogUmVwb3J0Q29tcG9uZW50LFxuICAgIGRhdGE6IENvbXBvbmVudERhdGEsXG4gICAgeDogbnVtYmVyLCB5OiBudW1iZXIsIHc6IG51bWJlciwgaDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSBjb21wb25lbnQuY29uZmlnIGFzIENoYXJ0Q29uZmlnO1xuICAgIGNvbnN0IGNoYXJ0VHlwZSA9IGNvbmZpZy5jaGFydFR5cGUgPz8gJ2Jhcic7XG4gICAgY29uc3QgZXh0cmFjdGVkID0gZXh0cmFjdENoYXJ0U2VyaWVzKGNvbXBvbmVudCwgZGF0YSk7XG5cbiAgICBjb25zdCB0eXBlTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgYmFyOiBwcHR4LkNoYXJ0VHlwZS5iYXIsXG4gICAgICBsaW5lOiBwcHR4LkNoYXJ0VHlwZS5saW5lLFxuICAgICAgYXJlYTogcHB0eC5DaGFydFR5cGUuYXJlYSxcbiAgICAgIHBpZTogcHB0eC5DaGFydFR5cGUucGllLFxuICAgICAgZG9udXQ6IHBwdHguQ2hhcnRUeXBlLmRvdWdobnV0LFxuICAgIH07XG5cbiAgICBjb25zdCBwaWUgPSBjaGFydFR5cGUgPT09ICdwaWUnIHx8IGNoYXJ0VHlwZSA9PT0gJ2RvbnV0JztcbiAgICBjb25zdCBjb2xvckJ5ID0gaXNDb2xvckJ5KGNvbmZpZyk7XG5cbiAgICAvLyBDb21wYWN0IHBlcmlvZCBsYWJlbHMgbWF0Y2ggdGhlIG9uLXNjcmVlbiBheGlzICh5ZWFyIG9ubHkgd2hlbiB0aGUgZGF0YVxuICAgIC8vIHNwYW5zIHllYXJzKTsgUG93ZXJQb2ludCBjYW4ndCBkbyBhIHN0eWxlZCBzZWNvbmQgbGluZSwgc28gaXQncyBpbmxpbmUuXG4gICAgY29uc3QgZ3JhbnVsYXJpdHkgPSBkYXRhLmdyYW51bGFyaXR5O1xuICAgIGNvbnN0IGxhYmVscyA9IGdyYW51bGFyaXR5XG4gICAgICA/IGV4dHJhY3RlZC5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnkpID0+XG4gICAgICAgIGZvcm1hdFBlcmlvZExhYmVsKGNhdGVnb3J5LCBncmFudWxhcml0eSwgc3BhbnNNdWx0aXBsZVllYXJzKGV4dHJhY3RlZC5jYXRlZ29yaWVzKSkpXG4gICAgICA6IGV4dHJhY3RlZC5jYXRlZ29yaWVzO1xuXG4gICAgLy8gTmF0aXZlIGNoYXJ0IGRhdGE6IG9uZSBlbnRyeSBwZXIgc2VyaWVzIChwaWUgY2hhcnRzIHRha2UgZXhhY3RseSBvbmUpLlxuICAgIC8vIGNvbG9yQnkgZW1pdHMgb25lIHNlcmllcyBwZXIgY2F0ZWdvcnkgZm9yIHRoZSBvbi1zY3JlZW4gb3ZlcmxhcDsgUG93ZXJQb2ludFxuICAgIC8vIGhhcyBubyBlcXVpdmFsZW50IG92ZXJsYXAsIHNvIGNvbGxhcHNlIHRoZW0gYmFjayBpbnRvIGEgc2luZ2xlIHNlcmllcyAoZWFjaFxuICAgIC8vIGNhdGVnb3J5J3MgdmFsdWUgc2l0cyBhdCBpdHMgb3duIHNsb3QpIOKAlCBvbmUgZnVsbC13aWR0aCBiYXIgcGVyIGNhdGVnb3J5IOKAlFxuICAgIC8vIHJhdGhlciB0aGFuIGxldHRpbmcgUG93ZXJQb2ludCBjbHVzdGVyIHRoZW0gaW50byBzbGl2ZXJzLlxuICAgIGNvbnN0IGNoYXJ0RGF0YSA9IGNvbG9yQnlcbiAgICAgID8gW3tcbiAgICAgICAgbmFtZTogY29uZmlnLm1lYXN1cmVzPy5bMF0/LmxhYmVsID8/IGNvbmZpZy5jb2xvckJ5Py5sYWJlbCA/PyAnJyxcbiAgICAgICAgbGFiZWxzLFxuICAgICAgICB2YWx1ZXM6IGV4dHJhY3RlZC5jYXRlZ29yaWVzLm1hcCgoXywgaW5kZXgpID0+IGV4dHJhY3RlZC5zZXJpZXNbaW5kZXhdPy52YWx1ZXNbaW5kZXhdID8/IDApLFxuICAgICAgfV1cbiAgICAgIDogKHBpZSA/IGV4dHJhY3RlZC5zZXJpZXMuc2xpY2UoMCwgMSkgOiBleHRyYWN0ZWQuc2VyaWVzKVxuICAgICAgICAubWFwKChzZXJpZXMpID0+ICh7XG4gICAgICAgICAgbmFtZTogc2VyaWVzLm5hbWUsXG4gICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgIHZhbHVlczogc2VyaWVzLnZhbHVlcy5tYXAoKHZhbHVlKSA9PiB2YWx1ZSA/PyAwKSxcbiAgICAgICAgfSkpO1xuXG4gICAgLy8gQSBzaW5nbGUtc2VyaWVzIGNvbG9yQnkgY2hhcnQgY2FuJ3QgY2FycnkgYSBwZXItY2F0ZWdvcnkgbGVnZW5kIGluIGEgbmF0aXZlXG4gICAgLy8gUG93ZXJQb2ludCBiYXIgY2hhcnQ7IHRoZSBjYXRlZ29yeSBheGlzIGxhYmVscyBpZGVudGlmeSBlYWNoIGJhciBpbnN0ZWFkLlxuICAgIGNvbnN0IGxlZ2VuZFBvc2l0aW9uID0gY29sb3JCeVxuICAgICAgPyAnaGlkZGVuJ1xuICAgICAgOiByZXNvbHZlTGVnZW5kUG9zaXRpb24oY29uZmlnLCBleHRyYWN0ZWQuc2VyaWVzLmxlbmd0aCk7XG5cbiAgICBzbGlkZS5hZGRDaGFydCh0eXBlTWFwW2NoYXJ0VHlwZV0sIGNoYXJ0RGF0YSwge1xuICAgICAgeCwgeSwgdywgaCxcbiAgICAgIGNoYXJ0Q29sb3JzOiBSRVBPUlRfQ0hBUlRfQ09MT1JTLFxuICAgICAgc2hvd0xlZ2VuZDogbGVnZW5kUG9zaXRpb24gIT09ICdoaWRkZW4nLFxuICAgICAgbGVnZW5kUG9zOiBQUFRYX0xFR0VORF9QT1NbbGVnZW5kUG9zaXRpb25dLFxuICAgICAgbGVnZW5kRm9udFNpemU6IDksXG4gICAgICBiYXJEaXI6IGNvbmZpZy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2JhcicgOiAnY29sJyxcbiAgICAgIGJhckdyb3VwaW5nOiBjb25maWcuc3RhY2tlZCA/ICdzdGFja2VkJyA6ICdjbHVzdGVyZWQnLFxuICAgICAgaG9sZVNpemU6IGNoYXJ0VHlwZSA9PT0gJ2RvbnV0JyA/IDU1IDogdW5kZWZpbmVkLFxuICAgICAgY2F0QXhpc0xhYmVsRm9udFNpemU6IDksXG4gICAgICB2YWxBeGlzTGFiZWxGb250U2l6ZTogOSxcbiAgICAgIHNob3dDYXRBeGlzVGl0bGU6ICEhY29uZmlnLnhBeGlzPy5sYWJlbCxcbiAgICAgIGNhdEF4aXNUaXRsZTogY29uZmlnLnhBeGlzPy5sYWJlbCxcbiAgICAgIGNhdEF4aXNUaXRsZUZvbnRTaXplOiAxMCxcbiAgICAgIHNob3dWYWxBeGlzVGl0bGU6ICEhY29uZmlnLm1lYXN1cmVzPy5bMF0/LmxhYmVsICYmICFwaWUsXG4gICAgICB2YWxBeGlzVGl0bGU6IGNvbmZpZy5tZWFzdXJlcz8uWzBdPy5sYWJlbCxcbiAgICAgIHZhbEF4aXNUaXRsZUZvbnRTaXplOiAxMCxcbiAgICAgIGRhdGFCb3JkZXI6IHsgcHQ6IDAsIGNvbG9yOiAnRkZGRkZGJyB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyVGFibGUoXG4gICAgc2xpZGU6IGFueSxcbiAgICBjb21wb25lbnQ6IFJlcG9ydENvbXBvbmVudCxcbiAgICBkYXRhOiBDb21wb25lbnREYXRhLFxuICAgIHg6IG51bWJlciwgeTogbnVtYmVyLCB3OiBudW1iZXIsIGg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gY29tcG9uZW50LmNvbmZpZyBhcyBMaXN0Q29uZmlnO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBjb25maWcuY29sdW1ucz8ubGVuZ3RoXG4gICAgICA/IGNvbmZpZy5jb2x1bW5zXG4gICAgICA6IGRhdGEuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gKHsgY29sdW1uLCBsYWJlbDogY29sdW1uIH0pKTtcblxuICAgIGNvbnN0IGNhcCA9IE1hdGgubWF4KDIsIE1hdGguZmxvb3IoaCAvIFRBQkxFX1JPV19IKSAtIDEpO1xuICAgIGNvbnN0IHJvd3MgPSBkYXRhLnJvd3Muc2xpY2UoMCwgY2FwKTtcbiAgICBjb25zdCByZW1haW5pbmcgPSAoZGF0YS5wYWdpbmc/LnRvdGFsID8/IGRhdGEucm93cy5sZW5ndGgpIC0gcm93cy5sZW5ndGg7XG5cbiAgICBjb25zdCBoZWFkZXIgPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoe1xuICAgICAgdGV4dDogY29sdW1uLmxhYmVsIHx8IGNvbHVtbi5jb2x1bW4sXG4gICAgICBvcHRpb25zOiB7IGJvbGQ6IHRydWUsIGNvbG9yOiAnRkZGRkZGJywgZmlsbDogeyBjb2xvcjogJzRFNzlBNycgfSB9LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGJvZHkgPSByb3dzLm1hcCgocm93KSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoe1xuICAgICAgdGV4dDogdGhpcy5fY2VsbChyb3dbY29sdW1uLmNvbHVtbl0sIGNvbHVtbi5mb3JtYXQpLFxuICAgICAgb3B0aW9uczoge30sXG4gICAgfSkpKTtcblxuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBib2R5LnB1c2goW3tcbiAgICAgICAgdGV4dDogYOKApiAke3JlbWFpbmluZ30gbW9yZSByb3cocykg4oCUIHVzZSB0aGUgY29tcG9uZW50J3MgQ1NWIGV4cG9ydCBmb3IgdGhlIGZ1bGwgZGF0YXNldGAsXG4gICAgICAgIG9wdGlvbnM6IHsgY29sc3BhbjogY29sdW1ucy5sZW5ndGgsIGl0YWxpYzogdHJ1ZSwgY29sb3I6ICc3Qjg3OTQnIH0gYXMgYW55LFxuICAgICAgfV0pO1xuICAgIH1cblxuICAgIHNsaWRlLmFkZFRhYmxlKFtoZWFkZXIsIC4uLmJvZHldLCB7XG4gICAgICB4LCB5LCB3LFxuICAgICAgZm9udFNpemU6IDksXG4gICAgICBjb2xvcjogJzFGMjkzMycsXG4gICAgICBib3JkZXI6IHsgdHlwZTogJ3NvbGlkJywgcHQ6IDAuNSwgY29sb3I6ICdFNEU3RUInIH0sXG4gICAgICBhdXRvUGFnZTogZmFsc2UsXG4gICAgICByb3dIOiBUQUJMRV9ST1dfSCxcbiAgICAgIHZhbGlnbjogJ21pZGRsZScsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJLcGkoXG4gICAgc2xpZGU6IGFueSxcbiAgICBjb21wb25lbnQ6IFJlcG9ydENvbXBvbmVudCxcbiAgICBkYXRhOiBDb21wb25lbnREYXRhLFxuICAgIHg6IG51bWJlciwgeTogbnVtYmVyLCB3OiBudW1iZXIsIGg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gY29tcG9uZW50LmNvbmZpZyBhcyBLcGlDb25maWc7XG4gICAgY29uc3Qgcm93ID0gZGF0YS5yb3dzWzBdID8/IHt9O1xuICAgIGNvbnN0IGNvbHVtbiA9IGNvbmZpZy5tZWFzdXJlPy5jb2x1bW4gPz8gT2JqZWN0LmtleXMocm93KVswXTtcbiAgICBjb25zdCB2YWx1ZSA9IGZvcm1hdE1lYXN1cmVWYWx1ZShyb3dbY29sdW1uXSwgY29uZmlnLm1lYXN1cmU/LmZvcm1hdCk7XG5cbiAgICBzbGlkZS5hZGRUZXh0KFtcbiAgICAgIHsgdGV4dDogdmFsdWUsIG9wdGlvbnM6IHsgZm9udFNpemU6IDI4LCBib2xkOiB0cnVlLCBjb2xvcjogJzFGMjkzMycsIGJyZWFrTGluZTogdHJ1ZSB9IH0sXG4gICAgICB7IHRleHQ6IGNvbmZpZy5tZWFzdXJlPy5sYWJlbCA/PyAnJywgb3B0aW9uczogeyBmb250U2l6ZTogMTAsIGNvbG9yOiAnN0I4Nzk0JyB9IH0sXG4gICAgXSwge1xuICAgICAgeCwgeSwgdywgaCxcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcbiAgICAgIHZhbGlnbjogJ21pZGRsZScsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jZWxsKHZhbHVlOiB1bmtub3duLCBjb2x1bW5Gb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbkZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoU3RyaW5nKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiBOdW1iZXIuaXNOYU4oZGF0ZS5nZXRUaW1lKCkpID8gU3RyaW5nKHZhbHVlKSA6IGZvcm1hdChkYXRlLCAnTU1NIGQsIHl5eXknKTtcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uRm9ybWF0ID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGZvcm1hdE1lYXN1cmVWYWx1ZSh2YWx1ZSwgJ251bWJlcicpO1xuICAgIH1cblxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2x1ZyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBuYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpLnJlcGxhY2UoL14tK3wtKyQvZywgJycpIHx8ICdyZXBvcnQnO1xuICB9XG59XG4iXX0=
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXBwdHguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9leHBvcnQvcmVwb3J0LXBwdHguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUy9DLE9BQU8sRUFBcUIsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFJdkQscURBQXFEO0FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUNyQix1RUFBdUU7QUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBRXpCLDRFQUE0RTtBQUM1RSw2RUFBNkU7QUFDN0UsVUFBVTtBQUNWLE1BQU0sZUFBZSxHQUFrRDtJQUNyRSxHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxHQUFHO0lBQ1gsSUFBSSxFQUFFLEdBQUc7SUFDVCxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0NBQ1osQ0FBQztBQUVGLDJFQUEyRTtBQUMzRSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLDBFQUEwRTtBQUMxRSwwRUFBMEU7QUFDMUUsbUVBQW1FO0FBRW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFFckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUEwQjtRQUM1QyxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FB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RUFBdUU7SUFDdkUsNEVBQTRFO0lBQzVFLHlFQUF5RTtJQUN6RSxpREFBaUQ7SUFDekMsS0FBSyxDQUFDLEtBQWMsRUFBRSxZQUFxQjtRQUNqRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksWUFBWSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRXJDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8sS0FBSyxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQztJQUM1RixDQUFDO3dHQXBQVSxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBmb3JtYXRNZWFzdXJlVmFsdWUgfSBmcm9tICcuLi9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgQ2hhcnRDb25maWcsXG4gIENvbXBvbmVudERhdGEsXG4gIExlZ2VuZFBvc2l0aW9uLFxuICBMaXN0Q29uZmlnLFxuICBLcGlDb25maWcsXG4gIFJlcG9ydENvbXBvbmVudCxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbXBvbmVudEdlb21ldHJ5LCBwYWdlR2VvbWV0cnkgfSBmcm9tICcuLi9sYXlvdXQnO1xuaW1wb3J0IHsgZXh0cmFjdENoYXJ0U2VyaWVzLCBmb3JtYXRQZXJpb2RMYWJlbCwgaXNDb2xvckJ5LCByZXNvbHZlTGVnZW5kUG9zaXRpb24sIHNwYW5zTXVsdGlwbGVZZWFycyB9IGZyb20gJy4uL29wdGlvbi1idWlsZGVyJztcbmltcG9ydCB7IFJFUE9SVF9DSEFSVF9DT0xPUlMgfSBmcm9tICcuLi90aGVtZS9wYWxldHRlJztcbmltcG9ydCB7IENvbGxlY3RlZENvbXBvbmVudCwgQ29sbGVjdGVkUmVwb3J0IH0gZnJvbSAnLi9yZXBvcnQtZXhwb3J0LWNvbGxlY3Rvci5zZXJ2aWNlJztcblxuXG4vLyBDb21wb25lbnQgdGl0bGUgc3RyaXAgaGVpZ2h0IG9uIHRoZSBzbGlkZSwgaW5jaGVzLlxuY29uc3QgVElUTEVfSCA9IDAuMjg7XG4vLyBBcHByb3hpbWF0ZSB0YWJsZSByb3cgaGVpZ2h0LCBpbmNoZXMg4oCUIGRyaXZlcyB0aGUgcm93cy10aGF0LWZpdCBjYXAuXG5jb25zdCBUQUJMRV9ST1dfSCA9IDAuMjY7XG5cbi8vIE91ciBsZWdlbmQgcG9zaXRpb25zIG1hcHBlZCB0byBwcHR4Z2VuanMncyBzaW5nbGUtbGV0dGVyIGxlZ2VuZFBvcyBjb2Rlcy5cbi8vICdoaWRkZW4nIGhhcyBubyBzbG90IOKAlCBzaG93TGVnZW5kIGlzIHR1cm5lZCBvZmYgaW5zdGVhZCDigJQgc28gaXQgZmFsbHMgYmFja1xuLy8gdG8gdG9wLlxuY29uc3QgUFBUWF9MRUdFTkRfUE9TOiBSZWNvcmQ8TGVnZW5kUG9zaXRpb24sICd0JyB8ICdiJyB8ICdsJyB8ICdyJz4gPSB7XG4gIHRvcDogJ3QnLFxuICBib3R0b206ICdiJyxcbiAgbGVmdDogJ2wnLFxuICByaWdodDogJ3InLFxuICBoaWRkZW46ICd0Jyxcbn07XG5cbi8vIEJ1aWxkcyB0aGUgUG93ZXJQb2ludCBkZWNrIGNsaWVudC1zaWRlIHdpdGggcHB0eGdlbmpzLiBDaGFydHMgYXJlIE5BVElWRVxuLy8gZWRpdGFibGUgUG93ZXJQb2ludCBjaGFydHMgKHNsaWRlLmFkZENoYXJ0IHdyaXRlcyByZWFsIGNoYXJ0IFhNTCB3aXRoIGFuXG4vLyBlbWJlZGRlZCBkYXRhIHdvcmtib29rIOKAlCBcIkVkaXQgRGF0YVwiIHdvcmtzKSwgbmV2ZXIgaW1hZ2VzLiBUaGUgcGFnZSBJUyB0aGVcbi8vIHNsaWRlOiB0aGUgcmVwb3J0J3MgdW5pdCBpcyBpbmNoZXMg4oCUIGV4YWN0bHkgUG93ZXJQb2ludCdzIHVuaXQg4oCUIHNvIHRoZVxuLy8gbGF5b3V0IGFuZCBldmVyeSBjb21wb25lbnQgcG9zaXRpb24gdHJhbnNmZXIgd2l0aCBubyBjb252ZXJzaW9uIGF0IGFsbC5cbi8vIHBwdHhnZW5qcyBpcyBsb2FkZWQgbGF6aWx5IHNvIGl0IGxpdmVzIGluIGl0cyBvd24gd2VicGFjayBjaHVuay5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXBvcnRQcHR4U2VydmljZSB7XG5cbiAgcHVibGljIGFzeW5jIGV4cG9ydChjb2xsZWN0ZWQ6IENvbGxlY3RlZFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IFBwdHhHZW5KUyA9IChhd2FpdCBpbXBvcnQoJ3BwdHhnZW5qcycpKS5kZWZhdWx0O1xuXG4gICAgY29uc3QgcmVwb3J0ID0gY29sbGVjdGVkLnJlcG9ydDtcbiAgICBjb25zdCBwYWdlVyA9IHJlcG9ydC5wYWdlV2lkdGg7XG4gICAgY29uc3QgcGFnZUggPSByZXBvcnQucGFnZUhlaWdodDtcblxuICAgIGNvbnN0IHBwdHggPSBuZXcgUHB0eEdlbkpTKCk7XG4gICAgcHB0eC5kZWZpbmVMYXlvdXQoeyBuYW1lOiAnUkVQT1JUJywgd2lkdGg6IHBhZ2VXLCBoZWlnaHQ6IHBhZ2VIIH0pO1xuICAgIHBwdHgubGF5b3V0ID0gJ1JFUE9SVCc7XG4gICAgcHB0eC50aXRsZSA9IHJlcG9ydC5uYW1lO1xuXG4gICAgdGhpcy5fdGl0bGVTbGlkZShwcHR4LCBjb2xsZWN0ZWQsIHBhZ2VXLCBwYWdlSCk7XG5cbiAgICBmb3IgKGNvbnN0IGNvbGxlY3RlZFBhZ2Ugb2YgY29sbGVjdGVkLnBhZ2VzKSB7XG4gICAgICBjb25zdCBzbGlkZSA9IHBwdHguYWRkU2xpZGUoKTtcbiAgICAgIGNvbnN0IGdlb21ldHJ5ID0gcGFnZUdlb21ldHJ5KHJlcG9ydCwgY29sbGVjdGVkUGFnZS5wYWdlKTtcblxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbGxlY3RlZFBhZ2UuY29tcG9uZW50cykge1xuICAgICAgICB0aGlzLl9yZW5kZXJDb21wb25lbnQocHB0eCwgc2xpZGUsIGl0ZW0sIGdlb21ldHJ5LmdldChpdGVtLmNvbXBvbmVudC5pZCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGF3YWl0IHBwdHgud3JpdGVGaWxlKHsgZmlsZU5hbWU6IGAke3RoaXMuX3NsdWcocmVwb3J0Lm5hbWUpfS5wcHR4YCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3RpdGxlU2xpZGUocHB0eDogYW55LCBjb2xsZWN0ZWQ6IENvbGxlY3RlZFJlcG9ydCwgcGFnZVc6IG51bWJlciwgcGFnZUg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHNsaWRlID0gcHB0eC5hZGRTbGlkZSgpO1xuXG4gICAgc2xpZGUuYWRkVGV4dChjb2xsZWN0ZWQucmVwb3J0Lm5hbWUsIHtcbiAgICAgIHg6IDAuNSwgeTogcGFnZUggKiAwLjMsIHc6IHBhZ2VXIC0gMSwgaDogMC44LFxuICAgICAgZm9udFNpemU6IDMwLCBib2xkOiB0cnVlLCBjb2xvcjogJzFGMjkzMycsXG4gICAgfSk7XG5cbiAgICBjb25zdCBsaW5lcyA9IFtcbiAgICAgIGZvcm1hdChuZXcgRGF0ZSgpLCAnTU1NTSBkLCB5eXl5JyksXG4gICAgICAuLi5jb2xsZWN0ZWQuZmlsdGVyU3VtbWFyeSxcbiAgICBdO1xuXG4gICAgc2xpZGUuYWRkVGV4dChsaW5lcy5qb2luKCdcXG4nKSwge1xuICAgICAgeDogMC41LCB5OiBwYWdlSCAqIDAuMyArIDAuOSwgdzogcGFnZVcgLSAxLCBoOiBNYXRoLm1heCgwLjQsIGxpbmVzLmxlbmd0aCAqIDAuMjUpLFxuICAgICAgZm9udFNpemU6IDEyLCBjb2xvcjogJzUyNjA2RCcsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJDb21wb25lbnQocHB0eDogYW55LCBzbGlkZTogYW55LCBpdGVtOiBDb2xsZWN0ZWRDb21wb25lbnQsIGdlb21ldHJ5PzogQ29tcG9uZW50R2VvbWV0cnkpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBpdGVtLmNvbXBvbmVudDtcbiAgICAvLyBHZW9tZXRyeSBpcyBpbiBpbmNoZXMg4oCUIFBvd2VyUG9pbnQncyBuYXRpdmUgdW5pdCAoZmxvdyBsYXlvdXQgYXJyaXZlc1xuICAgIC8vIHByZS1yZXNvbHZlZCBpbnRvIHJvd3MgYnkgcGFnZUdlb21ldHJ5KS5cbiAgICBjb25zdCB7IHgsIHksIHcsIGggfSA9IGdlb21ldHJ5ID8/IGNvbXBvbmVudDtcblxuICAgIGlmIChjb21wb25lbnQudGl0bGUpIHtcbiAgICAgIHNsaWRlLmFkZFRleHQoY29tcG9uZW50LnRpdGxlLCB7XG4gICAgICAgIHgsIHksIHcsIGg6IFRJVExFX0gsXG4gICAgICAgIGZvbnRTaXplOiAxMCwgYm9sZDogdHJ1ZSwgY29sb3I6ICcxRjI5MzMnLCB2YWxpZ246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keVkgPSB5ICsgVElUTEVfSDtcbiAgICBjb25zdCBib2R5SCA9IE1hdGgubWF4KDAuMywgaCAtIFRJVExFX0gpO1xuXG4gICAgaWYgKCFpdGVtLmRhdGEgfHwgIWl0ZW0uZGF0YS5yb3dzPy5sZW5ndGgpIHtcbiAgICAgIHNsaWRlLmFkZFRleHQoaXRlbS5kYXRhID8gJ05vIGRhdGEnIDogJ0RhdGEgdW5hdmFpbGFibGUnLCB7XG4gICAgICAgIHgsIHk6IGJvZHlZLCB3LCBoOiBib2R5SCxcbiAgICAgICAgZm9udFNpemU6IDEwLCBpdGFsaWM6IHRydWUsIGNvbG9yOiAnN0I4Nzk0JywgYWxpZ246ICdjZW50ZXInLCB2YWxpZ246ICdtaWRkbGUnLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGNvbXBvbmVudC50eXBlKSB7XG4gICAgICBjYXNlICdjaGFydCc6XG4gICAgICAgIHRoaXMuX3JlbmRlckNoYXJ0KHBwdHgsIHNsaWRlLCBjb21wb25lbnQsIGl0ZW0uZGF0YSwgeCwgYm9keVksIHcsIGJvZHlIKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgdGhpcy5fcmVuZGVyVGFibGUoc2xpZGUsIGNvbXBvbmVudCwgaXRlbS5kYXRhLCB4LCBib2R5WSwgdywgYm9keUgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2twaSc6XG4gICAgICAgIHRoaXMuX3JlbmRlcktwaShzbGlkZSwgY29tcG9uZW50LCBpdGVtLmRhdGEsIHgsIGJvZHlZLCB3LCBib2R5SCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckNoYXJ0KFxuICAgIHBwdHg6IGFueSxcbiAgICBzbGlkZTogYW55LFxuICAgIGNvbXBvbmVudDogUmVwb3J0Q29tcG9uZW50LFxuICAgIGRhdGE6IENvbXBvbmVudERhdGEsXG4gICAgeDogbnVtYmVyLCB5OiBudW1iZXIsIHc6IG51bWJlciwgaDogbnVtYmVyLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb25maWcgPSBjb21wb25lbnQuY29uZmlnIGFzIENoYXJ0Q29uZmlnO1xuICAgIGNvbnN0IGNoYXJ0VHlwZSA9IGNvbmZpZy5jaGFydFR5cGUgPz8gJ2Jhcic7XG4gICAgY29uc3QgZXh0cmFjdGVkID0gZXh0cmFjdENoYXJ0U2VyaWVzKGNvbXBvbmVudCwgZGF0YSk7XG5cbiAgICBjb25zdCB0eXBlTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgYmFyOiBwcHR4LkNoYXJ0VHlwZS5iYXIsXG4gICAgICBsaW5lOiBwcHR4LkNoYXJ0VHlwZS5saW5lLFxuICAgICAgYXJlYTogcHB0eC5DaGFydFR5cGUuYXJlYSxcbiAgICAgIHBpZTogcHB0eC5DaGFydFR5cGUucGllLFxuICAgICAgZG9udXQ6IHBwdHguQ2hhcnRUeXBlLmRvdWdobnV0LFxuICAgIH07XG5cbiAgICBjb25zdCBwaWUgPSBjaGFydFR5cGUgPT09ICdwaWUnIHx8IGNoYXJ0VHlwZSA9PT0gJ2RvbnV0JztcbiAgICBjb25zdCBjb2xvckJ5ID0gaXNDb2xvckJ5KGNvbmZpZyk7XG5cbiAgICAvLyBDb21wYWN0IHBlcmlvZCBsYWJlbHMgbWF0Y2ggdGhlIG9uLXNjcmVlbiBheGlzICh5ZWFyIG9ubHkgd2hlbiB0aGUgZGF0YVxuICAgIC8vIHNwYW5zIHllYXJzKTsgUG93ZXJQb2ludCBjYW4ndCBkbyBhIHN0eWxlZCBzZWNvbmQgbGluZSwgc28gaXQncyBpbmxpbmUuXG4gICAgY29uc3QgZ3JhbnVsYXJpdHkgPSBkYXRhLmdyYW51bGFyaXR5O1xuICAgIGNvbnN0IGxhYmVscyA9IGdyYW51bGFyaXR5XG4gICAgICA/IGV4dHJhY3RlZC5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnkpID0+XG4gICAgICAgIGZvcm1hdFBlcmlvZExhYmVsKGNhdGVnb3J5LCBncmFudWxhcml0eSwgc3BhbnNNdWx0aXBsZVllYXJzKGV4dHJhY3RlZC5jYXRlZ29yaWVzKSkpXG4gICAgICA6IGV4dHJhY3RlZC5jYXRlZ29yaWVzO1xuXG4gICAgLy8gTmF0aXZlIGNoYXJ0IGRhdGE6IG9uZSBlbnRyeSBwZXIgc2VyaWVzIChwaWUgY2hhcnRzIHRha2UgZXhhY3RseSBvbmUpLlxuICAgIC8vIGNvbG9yQnkgZW1pdHMgb25lIHNlcmllcyBwZXIgY2F0ZWdvcnkgZm9yIHRoZSBvbi1zY3JlZW4gb3ZlcmxhcDsgUG93ZXJQb2ludFxuICAgIC8vIGhhcyBubyBlcXVpdmFsZW50IG92ZXJsYXAsIHNvIGNvbGxhcHNlIHRoZW0gYmFjayBpbnRvIGEgc2luZ2xlIHNlcmllcyAoZWFjaFxuICAgIC8vIGNhdGVnb3J5J3MgdmFsdWUgc2l0cyBhdCBpdHMgb3duIHNsb3QpIOKAlCBvbmUgZnVsbC13aWR0aCBiYXIgcGVyIGNhdGVnb3J5IOKAlFxuICAgIC8vIHJhdGhlciB0aGFuIGxldHRpbmcgUG93ZXJQb2ludCBjbHVzdGVyIHRoZW0gaW50byBzbGl2ZXJzLlxuICAgIGNvbnN0IGNoYXJ0RGF0YSA9IGNvbG9yQnlcbiAgICAgID8gW3tcbiAgICAgICAgbmFtZTogY29uZmlnLm1lYXN1cmVzPy5bMF0/LmxhYmVsID8/IGNvbmZpZy5jb2xvckJ5Py5sYWJlbCA/PyAnJyxcbiAgICAgICAgbGFiZWxzLFxuICAgICAgICB2YWx1ZXM6IGV4dHJhY3RlZC5jYXRlZ29yaWVzLm1hcCgoXywgaW5kZXgpID0+IGV4dHJhY3RlZC5zZXJpZXNbaW5kZXhdPy52YWx1ZXNbaW5kZXhdID8/IDApLFxuICAgICAgfV1cbiAgICAgIDogKHBpZSA/IGV4dHJhY3RlZC5zZXJpZXMuc2xpY2UoMCwgMSkgOiBleHRyYWN0ZWQuc2VyaWVzKVxuICAgICAgICAubWFwKChzZXJpZXMpID0+ICh7XG4gICAgICAgICAgbmFtZTogc2VyaWVzLm5hbWUsXG4gICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgIHZhbHVlczogc2VyaWVzLnZhbHVlcy5tYXAoKHZhbHVlKSA9PiB2YWx1ZSA/PyAwKSxcbiAgICAgICAgfSkpO1xuXG4gICAgLy8gQSBzaW5nbGUtc2VyaWVzIGNvbG9yQnkgY2hhcnQgY2FuJ3QgY2FycnkgYSBwZXItY2F0ZWdvcnkgbGVnZW5kIGluIGEgbmF0aXZlXG4gICAgLy8gUG93ZXJQb2ludCBiYXIgY2hhcnQ7IHRoZSBjYXRlZ29yeSBheGlzIGxhYmVscyBpZGVudGlmeSBlYWNoIGJhciBpbnN0ZWFkLlxuICAgIGNvbnN0IGxlZ2VuZFBvc2l0aW9uID0gY29sb3JCeVxuICAgICAgPyAnaGlkZGVuJ1xuICAgICAgOiByZXNvbHZlTGVnZW5kUG9zaXRpb24oY29uZmlnLCBleHRyYWN0ZWQuc2VyaWVzLmxlbmd0aCk7XG5cbiAgICBzbGlkZS5hZGRDaGFydCh0eXBlTWFwW2NoYXJ0VHlwZV0sIGNoYXJ0RGF0YSwge1xuICAgICAgeCwgeSwgdywgaCxcbiAgICAgIGNoYXJ0Q29sb3JzOiBSRVBPUlRfQ0hBUlRfQ09MT1JTLFxuICAgICAgc2hvd0xlZ2VuZDogbGVnZW5kUG9zaXRpb24gIT09ICdoaWRkZW4nLFxuICAgICAgbGVnZW5kUG9zOiBQUFRYX0xFR0VORF9QT1NbbGVnZW5kUG9zaXRpb25dLFxuICAgICAgbGVnZW5kRm9udFNpemU6IDksXG4gICAgICBiYXJEaXI6IGNvbmZpZy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2JhcicgOiAnY29sJyxcbiAgICAgIGJhckdyb3VwaW5nOiBjb25maWcuc3RhY2tlZCA/ICdzdGFja2VkJyA6ICdjbHVzdGVyZWQnLFxuICAgICAgaG9sZVNpemU6IGNoYXJ0VHlwZSA9PT0gJ2RvbnV0JyA/IDU1IDogdW5kZWZpbmVkLFxuICAgICAgY2F0QXhpc0xhYmVsRm9udFNpemU6IDksXG4gICAgICB2YWxBeGlzTGFiZWxGb250U2l6ZTogOSxcbiAgICAgIHNob3dDYXRBeGlzVGl0bGU6ICEhY29uZmlnLnhBeGlzPy5sYWJlbCxcbiAgICAgIGNhdEF4aXNUaXRsZTogY29uZmlnLnhBeGlzPy5sYWJlbCxcbiAgICAgIGNhdEF4aXNUaXRsZUZvbnRTaXplOiAxMCxcbiAgICAgIHNob3dWYWxBeGlzVGl0bGU6ICEhY29uZmlnLm1lYXN1cmVzPy5bMF0/LmxhYmVsICYmICFwaWUsXG4gICAgICB2YWxBeGlzVGl0bGU6IGNvbmZpZy5tZWFzdXJlcz8uWzBdPy5sYWJlbCxcbiAgICAgIHZhbEF4aXNUaXRsZUZvbnRTaXplOiAxMCxcbiAgICAgIGRhdGFCb3JkZXI6IHsgcHQ6IDAsIGNvbG9yOiAnRkZGRkZGJyB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyVGFibGUoXG4gICAgc2xpZGU6IGFueSxcbiAgICBjb21wb25lbnQ6IFJlcG9ydENvbXBvbmVudCxcbiAgICBkYXRhOiBDb21wb25lbnREYXRhLFxuICAgIHg6IG51bWJlciwgeTogbnVtYmVyLCB3OiBudW1iZXIsIGg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gY29tcG9uZW50LmNvbmZpZyBhcyBMaXN0Q29uZmlnO1xuICAgIGNvbnN0IGNvbHVtbnMgPSBjb25maWcuY29sdW1ucz8ubGVuZ3RoXG4gICAgICA/IGNvbmZpZy5jb2x1bW5zXG4gICAgICA6IGRhdGEuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gKHsgY29sdW1uLCBsYWJlbDogY29sdW1uIH0pKTtcblxuICAgIGNvbnN0IGNhcCA9IE1hdGgubWF4KDIsIE1hdGguZmxvb3IoaCAvIFRBQkxFX1JPV19IKSAtIDEpO1xuICAgIGNvbnN0IHJvd3MgPSBkYXRhLnJvd3Muc2xpY2UoMCwgY2FwKTtcbiAgICBjb25zdCByZW1haW5pbmcgPSAoZGF0YS5wYWdpbmc/LnRvdGFsID8/IGRhdGEucm93cy5sZW5ndGgpIC0gcm93cy5sZW5ndGg7XG5cbiAgICBjb25zdCBoZWFkZXIgPSBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoe1xuICAgICAgdGV4dDogY29sdW1uLmxhYmVsIHx8IGNvbHVtbi5jb2x1bW4sXG4gICAgICBvcHRpb25zOiB7IGJvbGQ6IHRydWUsIGNvbG9yOiAnRkZGRkZGJywgZmlsbDogeyBjb2xvcjogJzRFNzlBNycgfSB9LFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGJvZHkgPSByb3dzLm1hcCgocm93KSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoe1xuICAgICAgdGV4dDogdGhpcy5fY2VsbChyb3dbY29sdW1uLmNvbHVtbl0sIGNvbHVtbi5mb3JtYXQpLFxuICAgICAgb3B0aW9uczoge30sXG4gICAgfSkpKTtcblxuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBib2R5LnB1c2goW3tcbiAgICAgICAgdGV4dDogYOKApiAke3JlbWFpbmluZ30gbW9yZSByb3cocykg4oCUIHVzZSB0aGUgY29tcG9uZW50J3MgQ1NWIGV4cG9ydCBmb3IgdGhlIGZ1bGwgZGF0YXNldGAsXG4gICAgICAgIG9wdGlvbnM6IHsgY29sc3BhbjogY29sdW1ucy5sZW5ndGgsIGl0YWxpYzogdHJ1ZSwgY29sb3I6ICc3Qjg3OTQnIH0gYXMgYW55LFxuICAgICAgfV0pO1xuICAgIH1cblxuICAgIHNsaWRlLmFkZFRhYmxlKFtoZWFkZXIsIC4uLmJvZHldLCB7XG4gICAgICB4LCB5LCB3LFxuICAgICAgZm9udFNpemU6IDksXG4gICAgICBjb2xvcjogJzFGMjkzMycsXG4gICAgICBib3JkZXI6IHsgdHlwZTogJ3NvbGlkJywgcHQ6IDAuNSwgY29sb3I6ICdFNEU3RUInIH0sXG4gICAgICBhdXRvUGFnZTogZmFsc2UsXG4gICAgICByb3dIOiBUQUJMRV9ST1dfSCxcbiAgICAgIHZhbGlnbjogJ21pZGRsZScsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJLcGkoXG4gICAgc2xpZGU6IGFueSxcbiAgICBjb21wb25lbnQ6IFJlcG9ydENvbXBvbmVudCxcbiAgICBkYXRhOiBDb21wb25lbnREYXRhLFxuICAgIHg6IG51bWJlciwgeTogbnVtYmVyLCB3OiBudW1iZXIsIGg6IG51bWJlcixcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gY29tcG9uZW50LmNvbmZpZyBhcyBLcGlDb25maWc7XG4gICAgY29uc3Qgcm93ID0gZGF0YS5yb3dzWzBdID8/IHt9O1xuICAgIGNvbnN0IGNvbHVtbiA9IGNvbmZpZy5tZWFzdXJlPy5jb2x1bW4gPz8gT2JqZWN0LmtleXMocm93KVswXTtcbiAgICBjb25zdCB2YWx1ZSA9IGZvcm1hdE1lYXN1cmVWYWx1ZShyb3dbY29sdW1uXSwgY29uZmlnLm1lYXN1cmU/LmZvcm1hdCwgY29uZmlnLm1lYXN1cmU/LnByZWNpc2lvbik7XG5cbiAgICBzbGlkZS5hZGRUZXh0KFtcbiAgICAgIHsgdGV4dDogdmFsdWUsIG9wdGlvbnM6IHsgZm9udFNpemU6IDI4LCBib2xkOiB0cnVlLCBjb2xvcjogJzFGMjkzMycsIGJyZWFrTGluZTogdHJ1ZSB9IH0sXG4gICAgICB7IHRleHQ6IGNvbmZpZy5tZWFzdXJlPy5sYWJlbCA/PyAnJywgb3B0aW9uczogeyBmb250U2l6ZTogMTAsIGNvbG9yOiAnN0I4Nzk0JyB9IH0sXG4gICAgXSwge1xuICAgICAgeCwgeSwgdywgaCxcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcbiAgICAgIHZhbGlnbjogJ21pZGRsZScsXG4gICAgfSk7XG4gIH1cblxuICAvLyBUaGUgZXhwb3J0ZWQgY2VsbCBtdXN0IHJlYWQgbGlrZSB0aGUgb24tc2NyZWVuIGNlbGw6IHRoZSBTUUwgYWxyZWFkeVxuICAvLyBjYXJyaWVzIHRoZSBmb3JtYXR0aW5nLCBzbyB0aGUgdmFsdWUgZ29lcyBvdXQgdmVyYmF0aW0uIEEgcmF3IGRhdGUgaXMgdGhlXG4gIC8vIG9uZSB2YWx1ZSB0aGUgY2xpZW50IHJlbmRlcnMgKHRoZSBjb2x1bW4gc3RheXMgYSBSQVcgdGltZXN0YW1wIGZvciB0aGVcbiAgLy8gcmVwb3J0IHRpbWV6b25lKSwgYW5kIGl0IGlzIHJlbmRlcmVkIGhlcmUgdG9vLlxuICBwcml2YXRlIF9jZWxsKHZhbHVlOiB1bmtub3duLCBjb2x1bW5Gb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKGNvbHVtbkZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoU3RyaW5nKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiBOdW1iZXIuaXNOYU4oZGF0ZS5nZXRUaW1lKCkpID8gU3RyaW5nKHZhbHVlKSA6IGZvcm1hdChkYXRlLCAnTU1NIGQsIHl5eXknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NsdWcobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLSt8LSskL2csICcnKSB8fCAncmVwb3J0JztcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
// Measure-value formatting shared by the KPI renderer and the exports — the
|
|
2
|
-
// config's `format` (number | percent | currency)
|
|
3
|
-
// screen, in PowerPoint and in PDF.
|
|
4
|
-
|
|
2
|
+
// config's `format` (number | percent | currency) and `precision` mean the same
|
|
3
|
+
// thing on screen, in PowerPoint and in PDF.
|
|
4
|
+
// A bare `new Intl.NumberFormat()` defaults to maximumFractionDigits: 3, which
|
|
5
|
+
// is why an unconfigured percentage reads 38.298%. When the measure names a
|
|
6
|
+
// precision it is pinned as BOTH the minimum and the maximum, so a column of
|
|
7
|
+
// rates lines up instead of each value showing however many decimals it happens
|
|
8
|
+
// to need. Undefined leaves the locale default alone, so a report authored
|
|
9
|
+
// before precision existed renders exactly as it did.
|
|
10
|
+
function getFractionDigits(precision) {
|
|
11
|
+
return Number.isFinite(precision)
|
|
12
|
+
? { minimumFractionDigits: precision, maximumFractionDigits: precision }
|
|
13
|
+
: {};
|
|
14
|
+
}
|
|
15
|
+
export function formatMeasureValue(value, format, precision) {
|
|
5
16
|
if (value === null || value === undefined || value === '') {
|
|
6
17
|
return '—';
|
|
7
18
|
}
|
|
@@ -9,17 +20,21 @@ export function formatMeasureValue(value, format) {
|
|
|
9
20
|
if (!Number.isFinite(numeric)) {
|
|
10
21
|
return String(value);
|
|
11
22
|
}
|
|
23
|
+
const fractionDigits = getFractionDigits(precision);
|
|
12
24
|
switch (format) {
|
|
13
25
|
case 'percent':
|
|
14
|
-
return `${new Intl.NumberFormat().format(numeric)}%`;
|
|
26
|
+
return `${new Intl.NumberFormat(undefined, fractionDigits).format(numeric)}%`;
|
|
15
27
|
case 'currency':
|
|
16
28
|
return new Intl.NumberFormat(undefined, {
|
|
17
29
|
style: 'currency',
|
|
18
30
|
currency: 'USD',
|
|
31
|
+
// Whole dollars unless the measure asks for decimals — cents were
|
|
32
|
+
// unrepresentable before, because this was hardcoded to 0.
|
|
19
33
|
maximumFractionDigits: 0,
|
|
34
|
+
...fractionDigits,
|
|
20
35
|
}).format(numeric);
|
|
21
36
|
default:
|
|
22
|
-
return new Intl.NumberFormat().format(numeric);
|
|
37
|
+
return new Intl.NumberFormat(undefined, fractionDigits).format(numeric);
|
|
23
38
|
}
|
|
24
39
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9yZXBvcnRzL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFBNEU7QUFDNUUsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUU3QywrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDZFQUE2RTtBQUM3RSxnRkFBZ0Y7QUFDaEYsMkVBQTJFO0FBQzNFLHNEQUFzRDtBQUN0RCxTQUFTLGlCQUFpQixDQUFDLFNBQWtCO0lBQzNDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDL0IsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRTtRQUN4RSxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ1QsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFjLEVBQUUsTUFBZSxFQUFFLFNBQWtCO0lBQ3BGLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEQsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ2hGLEtBQUssVUFBVTtZQUNiLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtnQkFDdEMsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGtFQUFrRTtnQkFDbEUsMkRBQTJEO2dCQUMzRCxxQkFBcUIsRUFBRSxDQUFDO2dCQUN4QixHQUFHLGNBQWM7YUFDbEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQjtZQUNFLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUUsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBNZWFzdXJlLXZhbHVlIGZvcm1hdHRpbmcgc2hhcmVkIGJ5IHRoZSBLUEkgcmVuZGVyZXIgYW5kIHRoZSBleHBvcnRzIOKAlCB0aGVcbi8vIGNvbmZpZydzIGBmb3JtYXRgIChudW1iZXIgfCBwZXJjZW50IHwgY3VycmVuY3kpIGFuZCBgcHJlY2lzaW9uYCBtZWFuIHRoZSBzYW1lXG4vLyB0aGluZyBvbiBzY3JlZW4sIGluIFBvd2VyUG9pbnQgYW5kIGluIFBERi5cblxuLy8gQSBiYXJlIGBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKWAgZGVmYXVsdHMgdG8gbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAzLCB3aGljaFxuLy8gaXMgd2h5IGFuIHVuY29uZmlndXJlZCBwZXJjZW50YWdlIHJlYWRzIDM4LjI5OCUuIFdoZW4gdGhlIG1lYXN1cmUgbmFtZXMgYVxuLy8gcHJlY2lzaW9uIGl0IGlzIHBpbm5lZCBhcyBCT1RIIHRoZSBtaW5pbXVtIGFuZCB0aGUgbWF4aW11bSwgc28gYSBjb2x1bW4gb2Zcbi8vIHJhdGVzIGxpbmVzIHVwIGluc3RlYWQgb2YgZWFjaCB2YWx1ZSBzaG93aW5nIGhvd2V2ZXIgbWFueSBkZWNpbWFscyBpdCBoYXBwZW5zXG4vLyB0byBuZWVkLiBVbmRlZmluZWQgbGVhdmVzIHRoZSBsb2NhbGUgZGVmYXVsdCBhbG9uZSwgc28gYSByZXBvcnQgYXV0aG9yZWRcbi8vIGJlZm9yZSBwcmVjaXNpb24gZXhpc3RlZCByZW5kZXJzIGV4YWN0bHkgYXMgaXQgZGlkLlxuZnVuY3Rpb24gZ2V0RnJhY3Rpb25EaWdpdHMocHJlY2lzaW9uPzogbnVtYmVyKTogSW50bC5OdW1iZXJGb3JtYXRPcHRpb25zIHtcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwcmVjaXNpb24pXG4gICAgPyB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogcHJlY2lzaW9uLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHByZWNpc2lvbiB9XG4gICAgOiB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE1lYXN1cmVWYWx1ZSh2YWx1ZTogdW5rbm93biwgZm9ybWF0Pzogc3RyaW5nLCBwcmVjaXNpb24/OiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICByZXR1cm4gJ+KAlCc7XG4gIH1cblxuICBjb25zdCBudW1lcmljID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUobnVtZXJpYykpIHtcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0IGZyYWN0aW9uRGlnaXRzID0gZ2V0RnJhY3Rpb25EaWdpdHMocHJlY2lzaW9uKTtcblxuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgJ3BlcmNlbnQnOlxuICAgICAgcmV0dXJuIGAke25ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIGZyYWN0aW9uRGlnaXRzKS5mb3JtYXQobnVtZXJpYyl9JWA7XG4gICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIHtcbiAgICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXG4gICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgLy8gV2hvbGUgZG9sbGFycyB1bmxlc3MgdGhlIG1lYXN1cmUgYXNrcyBmb3IgZGVjaW1hbHMg4oCUIGNlbnRzIHdlcmVcbiAgICAgICAgLy8gdW5yZXByZXNlbnRhYmxlIGJlZm9yZSwgYmVjYXVzZSB0aGlzIHdhcyBoYXJkY29kZWQgdG8gMC5cbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwLFxuICAgICAgICAuLi5mcmFjdGlvbkRpZ2l0cyxcbiAgICAgIH0pLmZvcm1hdChudW1lcmljKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCh1bmRlZmluZWQsIGZyYWN0aW9uRGlnaXRzKS5mb3JtYXQobnVtZXJpYyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,4 +13,11 @@ export const FREQUENCY_OPTIONS = [
|
|
|
13
13
|
{ value: 'quarter', name: 'Quarter' },
|
|
14
14
|
{ value: 'year', name: 'Annually' },
|
|
15
15
|
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkVBQTZFO0FBQzdFLG1FQUFtRTtBQUNuRSwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLG1DQUFtQztBQXdGbkMsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSw2QkFBNkI7QUFDN0IsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWdEO0lBQzVFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO0lBQzdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQy9CLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO0lBQ2pDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3JDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0NBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgYXNzZW1ibGVkIHJlcG9ydCBzdHJ1Y3R1cmUgcmV0dXJuZWQgYnkgR0VUIC9hcGkvcmVwb3J0cy86aWQg4oCUIGNvbXBvc2VkXG4vLyBzZXJ2ZXItc2lkZSBmcm9tIHRoZSBub3JtYWxpemVkIHRhYmxlcyAocmVwb3J0cyDihpIgcmVwb3J0X3BhZ2VzIOKGklxuLy8gcmVwb3J0X2NvbXBvbmVudHMgKyByZXBvcnRfZmlsdGVycywgcGx1cyByZXBvcnRfZmlsdGVyX2dyb3VwcykuIEFsbCBrZXlzIGFyZVxuLy8gY2FtZWxDYXNlOyBjb21wb25lbnQgYGNvbmZpZ2AgaXMgdGhlIHN0YW5kYXJkIGZvcm1hdCB0aGUgcmVuZGVyZXIgbWFwcyB0b1xuLy8gRUNoYXJ0cyBvcHRpb25zIC8gRnNMaXN0IGNvbmZpZy5cblxuLy8gTGF5b3V0IG1vZGVzOiBGcmVlZm9ybSA9IGFic29sdXRlbHkgcG9zaXRpb25lZCBjb21wb25lbnRzIChkcmFnIGFueXdoZXJlKTtcbi8vIEZsb3cgPSBjb21wb25lbnRzIGZsb3cgbGlrZSByb3dzLCBlYWNoIHRha2luZyBmbG93V2lkdGggJSBvZiB0aGUgcGFnZSB3aWR0aC5cbmV4cG9ydCB0eXBlIFJlcG9ydExheW91dCA9ICdmcmVlZm9ybScgfCAnZmxvdyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0IHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBwYWdlU2l6ZTogJ3dpZGVzY3JlZW4nIHwgJ2xldHRlcic7XG4gIHBhZ2VPcmllbnRhdGlvbjogJ2xhbmRzY2FwZScgfCAncG9ydHJhaXQnO1xuICBsYXlvdXQ6IFJlcG9ydExheW91dDtcbiAgLy8gSUFOQSB0aW1lem9uZSAoZS5nLiBBbWVyaWNhL05ld19Zb3JrKSBhbmNob3JpbmcgZGF0ZSBmaWx0ZXJpbmcgKyBjaGFydCBkYXRlXG4gIC8vIGJ1Y2tldGluZy4gbnVsbCBmYWxscyBiYWNrIHRvIHRoZSBhY2NvdW50IHpvbmUgdGhlbiBVVEMgKHJlc29sdmVkIHNlcnZlci1zaWRlKS5cbiAgdGltZXpvbmU6IHN0cmluZyB8IG51bGw7XG4gIC8vIFJlcG9ydC1sZXZlbCBjb25maWc6IHR5cG9ncmFwaGljIHN0eWxlcywgZXRjLiAoY2FtZWxDYXNlIEpTT04gY29sdW1uKS5cbiAgY29uZmlnOiBSZXBvcnRDb25maWc7XG4gIC8vIENhbnZhcyBkaW1lbnNpb25zIGluIElOQ0hFUyAodGhlIHJlcG9ydCdzIG5hdGl2ZSB1bml0IOKAlCBQREZzIGFuZFxuICAvLyBQb3dlclBvaW50IGFyZSBpbmNoLWJhc2VkLCBzbyBleHBvcnRzIGFyZSBkaW1lbnNpb25hbGx5IGV4YWN0KS5cbiAgcGFnZVdpZHRoOiBudW1iZXI7XG4gIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgcGFnZXM6IFJlcG9ydFBhZ2VbXTtcbiAgZmlsdGVyR3JvdXBzOiBSZXBvcnRGaWx0ZXJHcm91cFtdO1xufVxuXG4vLyBSZXBvcnQtbGV2ZWwgc3R5bGluZy4gU2l6ZXMgYXJlIGluIFBPSU5UUyAoMS83MlwiKSDigJQgdGhlIHJlcG9ydCdzIHR5cG9ncmFwaHlcbi8vIG1hcHMgMToxIHRvIFBERiAoNzJwdC9pbikgYW5kIFBvd2VyUG9pbnQgKHBvaW50IGZvbnQgc2l6ZXMpLCBzbyBhIHBvaW50XG4vLyB2YWx1ZSBpcyBkaW1lbnNpb25hbGx5IGV4YWN0IG9uIHNjcmVlbiBhbmQgaW4gZXZlcnkgZXhwb3J0LlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRDb25maWcge1xuICBzdHlsZXM/OiBSZXBvcnRTdHlsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0U3R5bGVzIHtcbiAgaGVhZGluZz86IHsgc2l6ZT86IG51bWJlciB9O1xufVxuXG4vLyBDb250ZW50IHBhZGRpbmcgYXJvdW5kIGEgY29tcG9uZW50J3MgYm9keSwgaW4gSU5DSEVTICh0aGUgZ2VvbWV0cnkgdW5pdCkuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFBhZGRpbmcge1xuICB0b3A/OiBudW1iZXI7XG4gIHJpZ2h0PzogbnVtYmVyO1xuICBib3R0b20/OiBudW1iZXI7XG4gIGxlZnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0UGFnZSB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGNvbXBvbmVudHM6IFJlcG9ydENvbXBvbmVudFtdO1xufVxuXG5leHBvcnQgdHlwZSBSZXBvcnRDb21wb25lbnRUeXBlID0gJ2NoYXJ0JyB8ICdsaXN0JyB8ICdrcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydENvbXBvbmVudCB7XG4gIGlkOiBudW1iZXI7XG4gIHR5cGU6IFJlcG9ydENvbXBvbmVudFR5cGU7XG4gIHRpdGxlOiBzdHJpbmcgfCBudWxsO1xuICAvLyBHZW9tZXRyeSBpbiBJTkNIRVMuIEZyZWVmb3JtOiBhYnNvbHV0ZSBwb3NpdGlvbiBvbiB0aGUgcGFnZSBjYW52YXMuXG4gIC8vIEZsb3c6IG9ubHkgZmxvd1dpZHRoL29yZGVyIGFwcGx5OyB4L3kgYXJlIHJlbWVtYmVyZWQgZm9yIGEgc3dpdGNoIGJhY2sgdG9cbiAgLy8gZnJlZWZvcm0uXG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3OiBudW1iZXI7XG4gIGg6IG51bWJlcjtcbiAgLy8gSGVpZ2h0IG1vZGUsIERFUklWRUQgZnJvbSB0eXBlIHNlcnZlci1zaWRlIChub3Qgc3RvcmVkLCByZWFkLW9ubHkpOiBsaXN0c1xuICAvLyBhbmQgS1BJIHRpbGVzIGFyZSBhdXRvICh0aGUgYm94IHNpemVzIHRvIGl0cyBjb250ZW50LCBgaGAgaWdub3JlZCk7IGNoYXJ0c1xuICAvLyBhcmUgYWx3YXlzIGZpeGVkICh1c2UgYGhgKSBzbyB0aGV5IGZpdCB0aGUgYm94IGFuZCBuZXZlciBvdmVyZmxvdy5cbiAgYXV0b0hlaWdodDogYm9vbGVhbjtcbiAgLy8gRmxvdyBsYXlvdXQ6ICUgb2YgdGhlIHBhZ2UgY29udGVudCB3aWR0aCB0aGlzIGNvbXBvbmVudCB0YWtlcy5cbiAgZmxvd1dpZHRoOiBudW1iZXI7XG4gIC8vIEZsb3cgbGF5b3V0IG9yZGVyaW5nLlxuICBvcmRlcjogbnVtYmVyO1xuICBzcWw6IHN0cmluZyB8IG51bGw7XG4gIGNvbmZpZzogQ2hhcnRDb25maWcgJiBMaXN0Q29uZmlnICYgS3BpQ29uZmlnICYgQ29tcG9uZW50TGF5b3V0Q29uZmlnICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGZpbHRlcnM6IFJlcG9ydEZpbHRlcltdO1xufVxuXG4vLyBDcm9zcy10eXBlIGxheW91dC9zdHlsZSBrZXlzIGNhcnJpZWQgaW4gYSBjb21wb25lbnQncyBjb25maWcgKGFsb25nc2lkZSB0aGVcbi8vIHR5cGUtc3BlY2lmaWMgY2hhcnQvbGlzdC9rcGkga2V5cykuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudExheW91dENvbmZpZyB7XG4gIHBhZGRpbmc/OiBDb21wb25lbnRQYWRkaW5nO1xufVxuXG4vLyBXaGVyZSBhIGNoYXJ0J3MgbGVnZW5kIHNpdHMgcmVsYXRpdmUgdG8gdGhlIHBsb3QsIG9yICdoaWRkZW4nIHRvIGRyb3AgaXQuXG5leHBvcnQgdHlwZSBMZWdlbmRQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2hpZGRlbic7XG5cbmV4cG9ydCB0eXBlIENoYXJ0R3JhbnVsYXJpdHkgPSAnZGF5JyB8ICd3ZWVrJyB8ICdtb250aCcgfCAncXVhcnRlcicgfCAneWVhcic7XG5cbi8vIFRoZSBydW50aW1lIEZyZXF1ZW5jeSBjb250cm9sJ3MgY2hvaWNlcyDigJQgcmUtYnVja2V0cyBldmVyeSB0aW1lLXNlcmllcyBjaGFydFxuLy8gYXQgdmlldyB0aW1lLCBvdmVycmlkaW5nIGVhY2ggY2hhcnQncyBhdXRob3JlZCBncmFudWxhcml0eS4gJ3llYXInIHJlYWRzIGFzXG4vLyBcIkFubnVhbGx5XCIgaW4gdGhlIGNvbnRyb2wuXG5leHBvcnQgY29uc3QgRlJFUVVFTkNZX09QVElPTlM6IHsgdmFsdWU6IENoYXJ0R3JhbnVsYXJpdHk7IG5hbWU6IHN0cmluZyB9W10gPSBbXG4gIHsgdmFsdWU6ICdkYXknLCBuYW1lOiAnRGF5JyB9LFxuICB7IHZhbHVlOiAnd2VlaycsIG5hbWU6ICdXZWVrJyB9LFxuICB7IHZhbHVlOiAnbW9udGgnLCBuYW1lOiAnTW9udGgnIH0sXG4gIHsgdmFsdWU6ICdxdWFydGVyJywgbmFtZTogJ1F1YXJ0ZXInIH0sXG4gIHsgdmFsdWU6ICd5ZWFyJywgbmFtZTogJ0FubnVhbGx5JyB9LFxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFydENvbmZpZyB7XG4gIGNoYXJ0VHlwZT86ICdiYXInIHwgJ2xpbmUnIHwgJ2FyZWEnIHwgJ3BpZScgfCAnZG9udXQnO1xuICAvLyBGb3Iga2luZCAndGltZScsIHRoZSBzZXJ2ZXIgYnVja2V0cyB0aGUgcmF3IGRhdGV0aW1lIGNvbHVtbiB0byBgZ3JhbnVsYXJpdHlgXG4gIC8vIGluIHRoZSByZXBvcnQncyB0aW1lem9uZSAodGhlIFNRTCBleHBvc2VzIHRoZSByYXcgY29sdW1uLCB1bmJ1Y2tldGVkKS5cbiAgeEF4aXM/OiB7IGNvbHVtbjogc3RyaW5nOyBraW5kPzogJ2NhdGVnb3J5JyB8ICd0aW1lJzsgZ3JhbnVsYXJpdHk/OiBDaGFydEdyYW51bGFyaXR5OyBsYWJlbD86IHN0cmluZyB9O1xuICBtZWFzdXJlcz86IENoYXJ0TWVhc3VyZVtdO1xuICBzcGxpdEJ5PzogeyBjb2x1bW46IHN0cmluZzsgbGFiZWw/OiBzdHJpbmcgfTtcbiAgLy8gU2luZ2xlLWRpbWVuc2lvbiBiYXIgY2hhcnRzIG9ubHk6IGNvbG9yIGVhY2ggYmFyIGJ5IGl0cyBvd24gY2F0ZWdvcnkgYW5kXG4gIC8vIHNob3cgYSBsZWdlbmQsIFdJVEhPVVQgc3BsaXR0aW5nIGludG8gbXVsdGlwbGUgc2VyaWVzICh3aGljaCBzbGl2ZXJzIHRoZVxuICAvLyBiYXJzKS4gdjEgZXhwZWN0cyBjb2xvckJ5LmNvbHVtbiA9PT0geEF4aXMuY29sdW1uLiBJZ25vcmVkIHdoZW4gc3BsaXRCeSBpc1xuICAvLyBzZXQgb3IgdGhlIGNoYXJ0IGlzbid0IGEgYmFyIGNoYXJ0LlxuICBjb2xvckJ5PzogeyBjb2x1bW46IHN0cmluZzsgbGFiZWw/OiBzdHJpbmcgfTtcbiAgb3JpZW50YXRpb24/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnO1xuICBzdGFja2VkPzogYm9vbGVhbjtcbiAgbGVnZW5kPzogTGVnZW5kUG9zaXRpb247XG4gIHNvcnQ/OiBSZXBvcnRTb3J0O1xuICBsaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFydE1lYXN1cmUge1xuICBjb2x1bW46IHN0cmluZztcbiAgYWdncmVnYXRpb24/OiAnc3VtJyB8ICdjb3VudCcgfCAnYXZnJyB8ICdtaW4nIHwgJ21heCc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBmb3JtYXQ/OiAnbnVtYmVyJyB8ICdwZXJjZW50JyB8ICdjdXJyZW5jeSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdENvbmZpZyB7XG4gIGNvbHVtbnM/OiB7IGNvbHVtbjogc3RyaW5nOyBsYWJlbD86IHN0cmluZzsgZm9ybWF0PzogJ2RhdGUnIHwgJ251bWJlcicgfVtdO1xuICBzb3J0PzogUmVwb3J0U29ydDtcbiAgcGFnZVNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS3BpQ29uZmlnIHtcbiAgbWVhc3VyZT86IENoYXJ0TWVhc3VyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTb3J0IHtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgdHlwZSBSZXBvcnRGaWx0ZXJUeXBlID0gJ2RhdGVSYW5nZScgfCAnc2VsZWN0JyB8ICdrZXl3b3JkJztcblxuLy8gV2hlcmUgYSBmaWx0ZXIgZ3JvdXAncyBjb250cm9sIGlzIGV4cG9zZWQuIEEgZ3JvdXAgY2FuIGJlIHNob3duIG9uIGl0c1xuLy8gY29tcG9uZW50cywgaW4gdGhlIHJlcG9ydCBiYXIsIG9yIEJPVEggYXQgb25jZSAodGhlIHR3byBhcmUgaW5kZXBlbmRlbnRcbi8vIHRvZ2dsZXMgaW4gdGhlIFVJKTsgYSBjb2x1bW4gd2l0aCBuZWl0aGVyIGV4cG9zZWQgc2ltcGx5IGhhcyBubyBmaWx0ZXIuXG5leHBvcnQgdHlwZSBSZXBvcnRGaWx0ZXJMZXZlbCA9ICdjb21wb25lbnQnIHwgJ3JlcG9ydCcgfCAnYm90aCc7XG5cbi8vIE9uZSBmaWx0ZXJhYmxlIG91dHB1dCBjb2x1bW4gb2YgYSBjb21wb25lbnQncyBTUUwsIHdpdGggdGhlIGZpbHRlciBpbnRlcmZhY2Vcbi8vIElORkVSUkVEIGZyb20gaXRzIGRhdGEgKHRoZSBodW1hbiBuZXZlciBwaWNrcyB0aGUgaW50ZXJmYWNlIOKAlCBpdCBmb2xsb3dzIHRoZVxuLy8gY29sdW1uJ3MgdHlwZSkuIERyaXZlcyB0aGUgRmlsdGVycyB0YWIgbGlzdGluZy5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RmlsdGVyYWJsZUNvbHVtbiB7XG4gIGNvbHVtbjogc3RyaW5nO1xuICB0eXBlOiBSZXBvcnRGaWx0ZXJUeXBlO1xufVxuXG4vLyBHcm91bmQgdHJ1dGg6IG9uZSBmaWx0ZXJhYmxlIG91dHB1dCBjb2x1bW4gT04gb25lIGNvbXBvbmVudCdzIFNRTC4gQWx3YXlzIGFcbi8vIG1lbWJlciBvZiBhIGZpbHRlciBncm91cCDigJQgdGhlIHVuaXQgdGhhdCBsaW5rcyBlcXVpdmFsZW50IGZpbHRlcnMgYWNyb3NzXG4vLyBjb21wb25lbnRzIGFuZCBkZWNpZGVzIHdoZXJlIHRoZSBjb250cm9sIHJlbmRlcnMgKGNvbXBvbmVudCB2cyByZXBvcnQgYmFyKS5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RmlsdGVyIHtcbiAgaWQ6IG51bWJlcjtcbiAgY29tcG9uZW50SWQ6IG51bWJlcjtcbiAgZmlsdGVyR3JvdXBJZDogbnVtYmVyO1xuICBmaWx0ZXJDb2x1bW46IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZyB8IG51bGw7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGhhc09wdGlvbnM6IGJvb2xlYW47XG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8vIE9uZSBjaG9pY2UgaW4gYSBzZWxlY3QgZmlsdGVyJ3Mgb3B0aW9uIGxpc3QuIFRoZSB2YWx1ZSBpcyB3aGF0IHRoZSBmaWx0ZXJcbi8vIG1hdGNoZXMgb24gYW5kIGdldHMgc3RvcmVkIGluIGEgc2F2ZWQgZGVmYXVsdCDigJQgZm9yIGFuIGVudGl0eSB0aGF0IGlzIGl0c1xuLy8gc3RhYmxlIGlkLCBuZXZlciBpdHMgbmFtZSwgc28gcmVuYW1pbmcgdGhlIGVudGl0eSBtb3ZlcyB0aGUgbGFiZWwgd2l0aG91dFxuLy8gYnJlYWtpbmcgdGhlIGRlZmF1bHQuIFRoZSBsYWJlbCBpcyBvbmx5IGV2ZXIgd2hhdCB0aGUgdmlld2VyIHJlYWRzLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRGaWx0ZXJPcHRpb24ge1xuICB2YWx1ZTogdW5rbm93bjtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRGaWx0ZXJHcm91cCB7XG4gIGlkOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmcgfCBudWxsO1xuICB0eXBlOiBSZXBvcnRGaWx0ZXJUeXBlO1xuICBsZXZlbDogUmVwb3J0RmlsdGVyTGV2ZWw7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGNvbmZpZzogeyBkZWZhdWx0PzogRmlsdGVyR3JvdXBEZWZhdWx0IH0gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZmlsdGVyczogUmVwb3J0RmlsdGVyW107XG59XG5cbi8vIEEgZmlsdGVyIGdyb3VwJ3MgYXV0aG9yZWQgZGVmYXVsdCDigJQgdGhlIHZhbHVlIHRoYXQgc2VlZHMgdGhlIHJlcG9ydCBiYXIgb25cbi8vIGV2ZXJ5IG9wZW4uIFNoYXBlIGZvbGxvd3MgdGhlIGdyb3VwJ3MgdHlwZTogZGF0ZVJhbmdlIHVzZXMgc3RhcnQvZW5kIChhIGZpeGVkXG4vLyBjYWxlbmRhci1kYXkgcmFuZ2UpIG9yIGEgcmVsYXRpdmUgcHJlc2V0OyBzZWxlY3QgdXNlcyB2YWx1ZXM7IGtleXdvcmQgdXNlc1xuLy8gdmFsdWUuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdyb3VwRGVmYXVsdCB7XG4gIHJlbGF0aXZlPzogc3RyaW5nOyAvLyBkYXRlUmFuZ2UgcmVsYXRpdmUgcHJlc2V0LCBlLmcuIGxhc3QxMk1vbnRocywgeWVhclRvRGF0ZVxuICBzdGFydD86IHN0cmluZzsgLy8gZGF0ZVJhbmdlIGZpeGVkIHN0YXJ0ICh5eXl5LU1NLWRkKVxuICBlbmQ/OiBzdHJpbmc7IC8vIGRhdGVSYW5nZSBmaXhlZCBlbmQgKHl5eXktTU0tZGQpXG4gIHZhbHVlcz86IHVua25vd25bXTsgLy8gc2VsZWN0IGRlZmF1bHQgcGlja2VkIHZhbHVlc1xuICB2YWx1ZT86IHN0cmluZzsgLy8ga2V5d29yZCBkZWZhdWx0IHRleHRcbn1cblxuLy8gVGhlIHNlc3Npb24gdmFsdWUgb2YgYSBmaWx0ZXIgZ3JvdXAgKG5ldmVyIHBlcnNpc3RlZCk6IHNoYXBlIGRlcGVuZHMgb24gdGhlXG4vLyBncm91cCdzIHR5cGUuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdyb3VwVmFsdWUge1xuICBzdGFydD86IERhdGUgfCBzdHJpbmcgfCBudWxsOyAvLyBkYXRlUmFuZ2VcbiAgZW5kPzogRGF0ZSB8IHN0cmluZyB8IG51bGw7IC8vIGRhdGVSYW5nZVxuICB2YWx1ZXM/OiB1bmtub3duW107IC8vIHNlbGVjdFxuICB2YWx1ZT86IHN0cmluZzsgLy8ga2V5d29yZFxufVxuXG4vLyBPbmUgcmVzb2x2ZWQgZmlsdGVyIHNlbnQgd2l0aCBhIGNvbXBvbmVudCdzIGRhdGEgcmVxdWVzdC5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRGaWx0ZXJWYWx1ZSB7XG4gIGZpbHRlcklkOiBudW1iZXI7XG4gIHN0YXJ0Pzogc3RyaW5nO1xuICBlbmQ/OiBzdHJpbmc7XG4gIHZhbHVlcz86IHVua25vd25bXTtcbiAgdmFsdWU/OiBzdHJpbmc7XG59XG5cbi8vIFBlci1jb21wb25lbnQgaW50ZXJhY3Rpb24gc3RhdGUgc2VudCB3aXRoIHRoZSBkYXRhIHJlcXVlc3Q6IGxpc3RzIHNlbmRcbi8vIHNvcnQvcGFnaW5nOyB0aW1lLXNlcmllcyBjaGFydHMgc2VuZCB0aGUgdmlld2VyJ3MgY2hvc2VuIEZyZXF1ZW5jeSwgd2hpY2hcbi8vIG92ZXJyaWRlcyB0aGUgYXV0aG9yZWQgZ3JhbnVsYXJpdHkgZm9yIHRoYXQgcmVxdWVzdCBvbmx5LlxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnREYXRhU3RhdGUge1xuICBzb3J0PzogUmVwb3J0U29ydDtcbiAgcGFnZT86IG51bWJlcjtcbiAgcGFnZVNpemU/OiBudW1iZXI7XG4gIGZyZXF1ZW5jeT86IENoYXJ0R3JhbnVsYXJpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGF0YSB7XG4gIGNvbHVtbnM6IHN0cmluZ1tdO1xuICByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdO1xuICBwYWdpbmc/OiB7IHRvdGFsOiBudW1iZXI7IHBhZ2U6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9O1xuICB0cnVuY2F0ZWQ6IGJvb2xlYW47XG4gIC8vIFRoZSBlZmZlY3RpdmUgdGltZSBidWNrZXQgdGhlIHJvd3Mgd2VyZSBncm91cGVkIGludG8gKGFmdGVyIGFueSBGcmVxdWVuY3lcbiAgLy8gb3ZlcnJpZGUpLCBvciBudWxsIGZvciBhIG5vbi10aW1lIGF4aXMuIERyaXZlcyB0aGUgY29tcGFjdCB4LWF4aXMgbGFiZWxzLlxuICBncmFudWxhcml0eT86IENoYXJ0R3JhbnVsYXJpdHkgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydExpc3RJdGVtIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBtb2RpZnlEYXRlOiBzdHJpbmc7XG59XG5cbi8vIFRoZSBjaGF0IHR1cm4gZmxhZ3MgdGhpcyBjb250ZXh0J3MgYmFja2VuZCBhZGRzIChSZXBvcnRzXFxBaVZpZXcpLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRDaGF0UmVzcG9uc2Uge1xuICByZXBvcnRDaGFuZ2VkPzogYm9vbGVhbjtcbiAgcmVwb3J0UmVuYW1lZD86IGJvb2xlYW47XG59XG5cbi8vIE9uZSB2ZXJzaW9uIG9mIHRoZSBnbG9iYWwgQUkga25vd2xlZGdlIGRvY3VtZW50IOKAlCB0aGUgb3BlcmF0b3ItYXV0aG9yZWRcbi8vIG1hcmtkb3duIGFwcGVuZGVkIHRvIHRoZSByZXBvcnQgYWdlbnQncyBzeXN0ZW0gaW5zdHJ1Y3Rpb25zIG9uIGV2ZXJ5IHR1cm4uXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEluc3RydWN0aW9uIHtcbiAgaWQ6IG51bWJlcjtcbiAgY29udGVudDogc3RyaW5nO1xuICBjdXJyZW50OiBib29sZWFuO1xuICBjcmVhdGVEYXRlOiBEYXRlO1xuICBtb2RpZnlEYXRlOiBEYXRlO1xuICBhY2NvdW50SWQ6IG51bWJlciB8IG51bGw7XG4gIGFjY291bnROYW1lOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyBHRVQvUFVUIGluc3RydWN0aW9ucyBwYXlsb2FkOiB0aGUgY3VycmVudCB2ZXJzaW9uIChudWxsIHVudGlsIG9uZSBpc1xuLy8gYXV0aG9yZWQpIHBsdXMgdGhlIGZ1bGwgaGlzdG9yeSwgbmV3ZXN0IGZpcnN0LlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRJbnN0cnVjdGlvbnMge1xuICBpbnN0cnVjdGlvbnM6IFJlcG9ydEluc3RydWN0aW9uIHwgbnVsbDtcbiAgdmVyc2lvbnM6IFJlcG9ydEluc3RydWN0aW9uW107XG59XG5cbi8vIFRoZSBsYXRlc3Qgc2VtYW50aWMtZGF0YWJhc2UgYnVpbGQgKGFuIGZmX3Byb2Nlc3NlcyByb3cpIOKAlCBlbm91Z2ggZm9yIHRoZVxuLy8gc2V0dGluZ3MgZGlhbG9nIHRvIHNheSB3aGF0IHN0YXRlIHRoZSBidWlsZCBpcyBpbiBhbmQgd2hlbiBpdCBsYXN0IHJhbi5cbmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNCdWlsZCB7XG4gIGlkOiBudW1iZXI7XG4gIHN0YXRlOiBzdHJpbmc7XG4gIHBlcmNlbnQ6IG51bWJlciB8IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkdXJhdGlvbjogbnVtYmVyO1xuICBjcmVhdGVEYXRlOiBEYXRlO1xuICBzdGFydERhdGU6IERhdGU7XG4gIGVuZERhdGU6IERhdGU7XG59XG5cbi8vIEEgYnVpbGQgc3RhZ2UncyBzdGF0ZSBvbiB0aGUgZW50aXR5IHNjb3JlYm9hcmQ6ICdkb25lJyA9IGJ1aWx0LCAnbWlzc2luZycgPVxuLy8gc3RpbGwgbmVlZHMgYnVpbGRpbmcgKGEgbWlzc2luZyBzdGFnZSBpcyB1bmJ1aWx0IGNvbnRlbnQsIG5ldmVyIGFuIGVycm9yKS5cbmV4cG9ydCB0eXBlIFNlbWFudGljQnVpbGRTdGFnZSA9ICdkb25lJyB8ICdtaXNzaW5nJztcblxuLy8gT25lIGVudW0gY29sdW1uIG9mIGFuIGVudGl0eSwgd2l0aCB0aGUgYWxsb3dlZCB2YWx1ZXMgdGhlIGJ1aWxkIGlubGluZWQuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljQnVpbGRFbnVtIHtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIHZhbHVlczogc3RyaW5nW107XG59XG5cbi8vIE9uZSBlbnRpdHkgcm93IG9mIHRoZSBzY29yZWJvYXJkIChhbiBlbnRpdHkgPSBhIHRhYmxlICsgYSBtb2RlbCArIGFcbi8vIGhhbmRsZXIpOiBpdHMgdGFibGUvc2hhcGUgY291bnRzLCBpbmxpbmVkIGVudW0gdmFsdWVzLCBjb21wdXRlZCBmaWVsZHMsIGhvd1xuLy8gbWFueSBjb2RlIGZ1bmN0aW9ucyB3ZXJlIGNhY2hlZCAoc3BsaXQgbW9kZWwgdnMgaGFuZGxlciksIGFuZCB0aGUgcGVyLXN0YWdlXG4vLyBidWlsdC9taXNzaW5nIHN0YXRlLlxuLy9cbi8vIGBtb2RlbGAvYGhhbmRsZXJgIGFyZSB0aGUgY2xhc3NlcyB0aGUgZnVuY3Rpb25zIHdlcmUgcmVhZCBmcm9tIOKAlCB3aGF0IGFcbi8vIHJlYWRlciByZWNvZ25pemVzIHRoZSByb3cgYnksIHdoZXJlIGBrZXlgIGlzIHdoYXQgdGhlIHJlcG9ydCBBSSBhZGRyZXNzZXMgaXRcbi8vIGJ5IGluIGRlc2NyaWJlX2VudGl0eSAvIGNvbXBpbGVfcXVlcnkuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljQnVpbGRFbnRpdHkge1xuICBrZXk6IHN0cmluZztcbiAgdGFibGU6IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZyB8IG51bGw7XG4gIGhhbmRsZXI6IHN0cmluZyB8IG51bGw7XG4gIGNvbHVtbnM6IG51bWJlcjtcbiAgcmVsYXRpb25zaGlwczogbnVtYmVyO1xuICBlbnVtczogU2VtYW50aWNCdWlsZEVudW1bXTtcbiAgY29tcHV0ZWRGaWVsZHM6IHN0cmluZ1tdO1xuICBmdW5jdGlvbkNvdW50OiBudW1iZXI7XG4gIG1vZGVsRnVuY3Rpb25Db3VudDogbnVtYmVyO1xuICBoYW5kbGVyRnVuY3Rpb25Db3VudDogbnVtYmVyO1xuICBzdGFnZXM6IFJlY29yZDxzdHJpbmcsIFNlbWFudGljQnVpbGRTdGFnZT47XG59XG5cbi8vIE9uZSBzdGFuZGFsb25lIGNvZGUgY2xhc3MgdGhlIGJ1aWxkIHJlYWQ6IGRvbWFpbiBsb2dpYyB3aXRoIG5vIHRhYmxlIG9mIGl0c1xuLy8gb3duIChhIHN1bW1hcnkgbW9kZWwsIGEgY2FsY3VsYXRpb24gc2VydmljZSkuIFRoZSByZXBvcnQgQUkgcmVhZHMgaXRzIGNvZGVcbi8vIGV4YWN0bHkgbGlrZSBhbiBlbnRpdHkncywgYnV0IGl0IGNhbiBuZXZlciBiZSBxdWVyaWVkIOKAlCB0aGVyZSBpcyBub3RoaW5nIHRvXG4vLyBzZWxlY3QgZnJvbSDigJQgc28gaXQgY2FycmllcyBubyB0YWJsZSwgY29sdW1ucyBvciByZWxhdGlvbnNoaXBzLlxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0J1aWxkQ2xhc3Mge1xuICBrZXk6IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZyB8IG51bGw7XG4gIGZ1bmN0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuLy8gV2hhdCB0aGUgYnVpbGQgZGVjaWRlZCBhIHBoeXNpY2FsIHRhYmxlIGlzLiBFbnRpdHkgYW5kIGp1bmN0aW9uIGFyZSBib3RoXG4vLyByZWFjaGFibGUgYnkgdGhlIHJlcG9ydCBBSSDigJQgYW4gZW50aXR5IGRpcmVjdGx5LCBhIGp1bmN0aW9uIHRocm91Z2ggdGhlXG4vLyBtYW55LXRvLW1hbnkgaXQgYnJpZGdlcy4gRXhjbHVkZWQgaXMgbm90IHJlYWNoYWJsZSBhdCBhbGwuXG5leHBvcnQgdHlwZSBTZW1hbnRpY1RhYmxlQ2xhc3NpZmljYXRpb24gPSAnZW50aXR5JyB8ICdqdW5jdGlvbicgfCAnZXhjbHVkZWQnO1xuXG4vLyBPbmUgcGh5c2ljYWwgdGFibGUgYXMgdGhlIGJ1aWxkIGNsYXNzaWZpZWQgaXQuIGByZWFzb25gIGFuc3dlcnMgYSBzaW5nbGVcbi8vIHF1ZXN0aW9uIOKAlCB3aHkgY2FuJ3QgdGhlIHJlcG9ydCBBSSBzZWUgdGhpcyB0YWJsZT8g4oCUIGFuZCBpcyBudWxsIHdoZW4gaXQgY2FuLlxuLy8gQSBqdW5jdGlvbiB3aXRoIGEgcmVhc29uIGJyaWRnZWQgbm90aGluZywgc28gaXQgaXMganVzdCBhcyBpbnZpc2libGUgYXMgYW5cbi8vIGV4Y2x1ZGVkIHRhYmxlLlxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0J1aWxkVGFibGUge1xuICB0YWJsZTogc3RyaW5nO1xuICBjbGFzc2lmaWNhdGlvbjogU2VtYW50aWNUYWJsZUNsYXNzaWZpY2F0aW9uO1xuICBtb2RlbDogc3RyaW5nIHwgbnVsbDtcbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyBUaGUgYnVpbGQgc2NvcmVib2FyZCBzaGlwcGVkIGFsb25nc2lkZSB0aGUgYnVpbGQgc3RhdHVzOiB0aGUgc3VtbWFyeSBjb3VudHMsXG4vLyB0aGUgZnVsbCBicmVha2Rvd24gdGhlIHNldHRpbmdzIGRpYWxvZyBkcmlsbHMgaW50byDigJQgQk9USCBraW5kcyBvZiB1bml0IHRoZVxuLy8gYnVpbGQgY2FjaGVzLCB0YWJsZS1iYWNrZWQgZW50aXRpZXMgYW5kIHN0YW5kYWxvbmUgY29kZSBjbGFzc2VzIOKAlCBhbmQgdGhlXG4vLyBjYXRhbG9nIG9mIGV2ZXJ5IHRhYmxlIHRoZSBidWlsZCBzYXcsIHNvIHRoZSB0YWIgY2FuIHNob3cgd2hhdCB0aGUgcmVwb3J0IEFJXG4vLyBjYW4ndCBzZWUsIG5vdCBqdXN0IHdoYXQgaXQgY2FuLlxuLy9cbi8vIGBmdW5jdGlvbkNvdW50YCBzcGFucyBlbnRpdGllcyBhbmQgY2xhc3NlcyBhbGlrZTogaXQgaXMgdGhlIHNhbWUgdG90YWwgdGhlXG4vLyBidWlsZCBpdHNlbGYgcmVwb3J0cyB3aGVuIGl0IGZpbmlzaGVzLlxuLy9cbi8vIGB0YWJsZXNgIGlzIGVtcHR5IGZvciBhbiBhcnRpZmFjdCBidWlsdCBiZWZvcmUgdGhlIGNhdGFsb2cgZXhpc3RlZC4gUmVhZCB0aGF0XG4vLyBhcyBcIm5vIGNhdGFsb2dcIiwgbmV2ZXIgYXMgXCJub3RoaW5nIHdhcyBleGNsdWRlZFwiLlxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0J1aWxkRGV0YWlsIHtcbiAgZ2VuZXJhdGVkQXQ6IERhdGUgfCBudWxsO1xuICBlbnRpdHlDb3VudDogbnVtYmVyO1xuICBjbGFzc0NvdW50OiBudW1iZXI7XG4gIGZ1bmN0aW9uQ291bnQ6IG51bWJlcjtcbiAgZW50aXRpZXM6IFNlbWFudGljQnVpbGRFbnRpdHlbXTtcbiAgY2xhc3NlczogU2VtYW50aWNCdWlsZENsYXNzW107XG4gIHRhYmxlQ291bnQ6IG51bWJlcjtcbiAganVuY3Rpb25Db3VudDogbnVtYmVyO1xuICB1bmxpbmtlZEp1bmN0aW9uQ291bnQ6IG51bWJlcjtcbiAgZXhjbHVkZWRDb3VudDogbnVtYmVyO1xuICB0YWJsZXM6IFNlbWFudGljQnVpbGRUYWJsZVtdO1xufVxuXG4vLyBXaGljaCBjbGFzcyBhIGNhY2hlZCBmdW5jdGlvbiB3YXMgcmVhZCBmcm9tLiBBbiBlbnRpdHkncyBjYWNoZSBzcGxpdHMgaW50b1xuLy8gJ21vZGVsJyBhbmQgJ2hhbmRsZXInOyBhIHN0YW5kYWxvbmUgY29kZSBjbGFzcyBoYXMgb25lIGdyb3VwLCAnY2xhc3MnLlxuZXhwb3J0IHR5cGUgU2VtYW50aWNGdW5jdGlvblNvdXJjZSA9ICdtb2RlbCcgfCAnaGFuZGxlcicgfCAnY2xhc3MnO1xuXG4vLyBPbmUgQUktY2xhc3NpZmllZCBjb2RlIGZ1bmN0aW9uIGZyb20gYSBtb2RlbCwgaGFuZGxlciBvciBzdGFuZGFsb25lIGNsYXNzOlxuLy8gd2hhdCBraW5kIG9mIGxvZ2ljIGl0IGlzLCB3aGF0IGl0IGRvZXMsIGFuZCB3aGF0IGl0IHByb2R1Y2VzIOKAlCB0aGUgYnVpbGQnc1xuLy8gY2FjaGVkIFwid2hhdCB0aGUgY29kZSBkb2VzXCIga25vd2xlZGdlIHNob3duIGluIHRoZSBmdW5jdGlvbnMgZGlhbG9nLlxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0VudGl0eUZ1bmN0aW9uIHtcbiAgY2xhc3M6IHN0cmluZztcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBraW5kOiBzdHJpbmc7XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgcHJvZHVjZXM6IHN0cmluZztcbiAgc291cmNlOiBTZW1hbnRpY0Z1bmN0aW9uU291cmNlO1xufVxuXG4vLyBPbmUgZW50aXR5J3MgY2FjaGVkIGNvZGUtZnVuY3Rpb24ga25vd2xlZGdlLCBmZXRjaGVkIHdoZW4gYSBmdW5jdGlvbnMgZGlhbG9nXG4vLyBvcGVucyAodGhlIGZ1bGwgc2V0IGFjcm9zcyBhbGwgZW50aXRpZXMgaXMgdG9vIGJpZyB0byBzaGlwIHdpdGggdGhlXG4vLyBzY29yZWJvYXJkKS4gT25lIHBheWxvYWQgc2VydmVzIGJvdGggZGlhbG9ncyDigJQgY29uc3VtZXJzIGZpbHRlciBieSBzb3VyY2UuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljRW50aXR5RnVuY3Rpb25zIHtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIGdlbmVyYXRlZEF0OiBEYXRlIHwgbnVsbDtcbiAgbW9kZWxDbGFzczogc3RyaW5nIHwgbnVsbDtcbiAgaGFuZGxlckNsYXNzOiBzdHJpbmcgfCBudWxsO1xuICBmdW5jdGlvbnM6IFNlbWFudGljRW50aXR5RnVuY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0J1aWxkU3RhdHVzIHtcbiAgYnVpbGQ6IFNlbWFudGljQnVpbGQgfCBudWxsO1xuICBkZXRhaWw6IFNlbWFudGljQnVpbGREZXRhaWw7XG59XG5cbi8vIFRoZSByZXBvcnQgbW9kdWxlJ3MgR2VuZXJhbCBzZXR0aW5ncyAoYSBzbWFsbCBnbG9iYWwga2V5L3ZhbHVlIHN0b3JlLCB0aGVcbi8vIHJlcG9ydGluZyBjb3VudGVycGFydCBvZiB0aGUgYXBwLXdpZGUgc2V0dGluZ3MpLiBFYWNoIHZhbHVlIHNoaXBzIHdpdGggdGhlXG4vLyBzYWZlIGJhbmQgaXRzIGVkaXRvciBmaWVsZCBpcyBib3VuZGVkIHRvLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTZXR0aW5ncyB7XG4gIC8vIEhvdyBtYW55IHN1bW1hcnkgY2FsbHMgdGhlIHNlbWFudGljIGJ1aWxkIHJ1bnMgYXQgb25jZS5cbiAgc2VtYW50aWNCdWlsZENvbmN1cnJlbmN5OiBudW1iZXI7XG4gIHNlbWFudGljQnVpbGRDb25jdXJyZW5jeU1pbjogbnVtYmVyO1xuICBzZW1hbnRpY0J1aWxkQ29uY3VycmVuY3lNYXg6IG51bWJlcjtcbn1cbiJdfQ==
|
|
16
|
+
// Reports are soft-deletable: a deleted report leaves the listing but keeps its
|
|
17
|
+
// pages and components, and the listing's "Show Deleted" mode restores it.
|
|
18
|
+
export var ReportState;
|
|
19
|
+
(function (ReportState) {
|
|
20
|
+
ReportState["Active"] = "active";
|
|
21
|
+
ReportState["Deleted"] = "deleted";
|
|
22
|
+
})(ReportState || (ReportState = {}));
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvcmVwb3J0cy9pbnRlcmZhY2VzL3JlcG9ydC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkVBQTZFO0FBQzdFLG1FQUFtRTtBQUNuRSwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLG1DQUFtQztBQXdGbkMsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSw2QkFBNkI7QUFDN0IsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWdEO0lBQzVFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO0lBQzdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO0lBQy9CLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO0lBQ2pDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQ3JDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0NBQ3BDLENBQUM7QUEwS0YsZ0ZBQWdGO0FBQ2hGLDJFQUEyRTtBQUMzRSxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFpQixDQUFBO0lBQ2pCLGtDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBhc3NlbWJsZWQgcmVwb3J0IHN0cnVjdHVyZSByZXR1cm5lZCBieSBHRVQgL2FwaS9yZXBvcnRzLzppZCDigJQgY29tcG9zZWRcbi8vIHNlcnZlci1zaWRlIGZyb20gdGhlIG5vcm1hbGl6ZWQgdGFibGVzIChyZXBvcnRzIOKGkiByZXBvcnRfcGFnZXMg4oaSXG4vLyByZXBvcnRfY29tcG9uZW50cyArIHJlcG9ydF9maWx0ZXJzLCBwbHVzIHJlcG9ydF9maWx0ZXJfZ3JvdXBzKS4gQWxsIGtleXMgYXJlXG4vLyBjYW1lbENhc2U7IGNvbXBvbmVudCBgY29uZmlnYCBpcyB0aGUgc3RhbmRhcmQgZm9ybWF0IHRoZSByZW5kZXJlciBtYXBzIHRvXG4vLyBFQ2hhcnRzIG9wdGlvbnMgLyBGc0xpc3QgY29uZmlnLlxuXG4vLyBMYXlvdXQgbW9kZXM6IEZyZWVmb3JtID0gYWJzb2x1dGVseSBwb3NpdGlvbmVkIGNvbXBvbmVudHMgKGRyYWcgYW55d2hlcmUpO1xuLy8gRmxvdyA9IGNvbXBvbmVudHMgZmxvdyBsaWtlIHJvd3MsIGVhY2ggdGFraW5nIGZsb3dXaWR0aCAlIG9mIHRoZSBwYWdlIHdpZHRoLlxuZXhwb3J0IHR5cGUgUmVwb3J0TGF5b3V0ID0gJ2ZyZWVmb3JtJyB8ICdmbG93JztcblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnQge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHBhZ2VTaXplOiAnd2lkZXNjcmVlbicgfCAnbGV0dGVyJztcbiAgcGFnZU9yaWVudGF0aW9uOiAnbGFuZHNjYXBlJyB8ICdwb3J0cmFpdCc7XG4gIGxheW91dDogUmVwb3J0TGF5b3V0O1xuICAvLyBJQU5BIHRpbWV6b25lIChlLmcuIEFtZXJpY2EvTmV3X1lvcmspIGFuY2hvcmluZyBkYXRlIGZpbHRlcmluZyArIGNoYXJ0IGRhdGVcbiAgLy8gYnVja2V0aW5nLiBudWxsIGZhbGxzIGJhY2sgdG8gdGhlIGFjY291bnQgem9uZSB0aGVuIFVUQyAocmVzb2x2ZWQgc2VydmVyLXNpZGUpLlxuICB0aW1lem9uZTogc3RyaW5nIHwgbnVsbDtcbiAgLy8gUmVwb3J0LWxldmVsIGNvbmZpZzogdHlwb2dyYXBoaWMgc3R5bGVzLCBldGMuIChjYW1lbENhc2UgSlNPTiBjb2x1bW4pLlxuICBjb25maWc6IFJlcG9ydENvbmZpZztcbiAgLy8gQ2FudmFzIGRpbWVuc2lvbnMgaW4gSU5DSEVTICh0aGUgcmVwb3J0J3MgbmF0aXZlIHVuaXQg4oCUIFBERnMgYW5kXG4gIC8vIFBvd2VyUG9pbnQgYXJlIGluY2gtYmFzZWQsIHNvIGV4cG9ydHMgYXJlIGRpbWVuc2lvbmFsbHkgZXhhY3QpLlxuICBwYWdlV2lkdGg6IG51bWJlcjtcbiAgcGFnZUhlaWdodDogbnVtYmVyO1xuICBwYWdlczogUmVwb3J0UGFnZVtdO1xuICBmaWx0ZXJHcm91cHM6IFJlcG9ydEZpbHRlckdyb3VwW107XG59XG5cbi8vIFJlcG9ydC1sZXZlbCBzdHlsaW5nLiBTaXplcyBhcmUgaW4gUE9JTlRTICgxLzcyXCIpIOKAlCB0aGUgcmVwb3J0J3MgdHlwb2dyYXBoeVxuLy8gbWFwcyAxOjEgdG8gUERGICg3MnB0L2luKSBhbmQgUG93ZXJQb2ludCAocG9pbnQgZm9udCBzaXplcyksIHNvIGEgcG9pbnRcbi8vIHZhbHVlIGlzIGRpbWVuc2lvbmFsbHkgZXhhY3Qgb24gc2NyZWVuIGFuZCBpbiBldmVyeSBleHBvcnQuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydENvbmZpZyB7XG4gIHN0eWxlcz86IFJlcG9ydFN0eWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTdHlsZXMge1xuICBoZWFkaW5nPzogeyBzaXplPzogbnVtYmVyIH07XG59XG5cbi8vIENvbnRlbnQgcGFkZGluZyBhcm91bmQgYSBjb21wb25lbnQncyBib2R5LCBpbiBJTkNIRVMgKHRoZSBnZW9tZXRyeSB1bml0KS5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50UGFkZGluZyB7XG4gIHRvcD86IG51bWJlcjtcbiAgcmlnaHQ/OiBudW1iZXI7XG4gIGJvdHRvbT86IG51bWJlcjtcbiAgbGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRQYWdlIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgb3JkZXI6IG51bWJlcjtcbiAgY29tcG9uZW50czogUmVwb3J0Q29tcG9uZW50W107XG59XG5cbmV4cG9ydCB0eXBlIFJlcG9ydENvbXBvbmVudFR5cGUgPSAnY2hhcnQnIHwgJ2xpc3QnIHwgJ2twaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0Q29tcG9uZW50IHtcbiAgaWQ6IG51bWJlcjtcbiAgdHlwZTogUmVwb3J0Q29tcG9uZW50VHlwZTtcbiAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gIC8vIEdlb21ldHJ5IGluIElOQ0hFUy4gRnJlZWZvcm06IGFic29sdXRlIHBvc2l0aW9uIG9uIHRoZSBwYWdlIGNhbnZhcy5cbiAgLy8gRmxvdzogb25seSBmbG93V2lkdGgvb3JkZXIgYXBwbHk7IHgveSBhcmUgcmVtZW1iZXJlZCBmb3IgYSBzd2l0Y2ggYmFjayB0b1xuICAvLyBmcmVlZm9ybS5cbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHc6IG51bWJlcjtcbiAgaDogbnVtYmVyO1xuICAvLyBIZWlnaHQgbW9kZSwgREVSSVZFRCBmcm9tIHR5cGUgc2VydmVyLXNpZGUgKG5vdCBzdG9yZWQsIHJlYWQtb25seSk6IGxpc3RzXG4gIC8vIGFuZCBLUEkgdGlsZXMgYXJlIGF1dG8gKHRoZSBib3ggc2l6ZXMgdG8gaXRzIGNvbnRlbnQsIGBoYCBpZ25vcmVkKTsgY2hhcnRzXG4gIC8vIGFyZSBhbHdheXMgZml4ZWQgKHVzZSBgaGApIHNvIHRoZXkgZml0IHRoZSBib3ggYW5kIG5ldmVyIG92ZXJmbG93LlxuICBhdXRvSGVpZ2h0OiBib29sZWFuO1xuICAvLyBGbG93IGxheW91dDogJSBvZiB0aGUgcGFnZSBjb250ZW50IHdpZHRoIHRoaXMgY29tcG9uZW50IHRha2VzLlxuICBmbG93V2lkdGg6IG51bWJlcjtcbiAgLy8gRmxvdyBsYXlvdXQgb3JkZXJpbmcuXG4gIG9yZGVyOiBudW1iZXI7XG4gIHNxbDogc3RyaW5nIHwgbnVsbDtcbiAgY29uZmlnOiBDaGFydENvbmZpZyAmIExpc3RDb25maWcgJiBLcGlDb25maWcgJiBDb21wb25lbnRMYXlvdXRDb25maWcgJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZmlsdGVyczogUmVwb3J0RmlsdGVyW107XG59XG5cbi8vIENyb3NzLXR5cGUgbGF5b3V0L3N0eWxlIGtleXMgY2FycmllZCBpbiBhIGNvbXBvbmVudCdzIGNvbmZpZyAoYWxvbmdzaWRlIHRoZVxuLy8gdHlwZS1zcGVjaWZpYyBjaGFydC9saXN0L2twaSBrZXlzKS5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TGF5b3V0Q29uZmlnIHtcbiAgcGFkZGluZz86IENvbXBvbmVudFBhZGRpbmc7XG59XG5cbi8vIFdoZXJlIGEgY2hhcnQncyBsZWdlbmQgc2l0cyByZWxhdGl2ZSB0byB0aGUgcGxvdCwgb3IgJ2hpZGRlbicgdG8gZHJvcCBpdC5cbmV4cG9ydCB0eXBlIExlZ2VuZFBvc2l0aW9uID0gJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnaGlkZGVuJztcblxuZXhwb3J0IHR5cGUgQ2hhcnRHcmFudWxhcml0eSA9ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICdxdWFydGVyJyB8ICd5ZWFyJztcblxuLy8gVGhlIHJ1bnRpbWUgRnJlcXVlbmN5IGNvbnRyb2wncyBjaG9pY2VzIOKAlCByZS1idWNrZXRzIGV2ZXJ5IHRpbWUtc2VyaWVzIGNoYXJ0XG4vLyBhdCB2aWV3IHRpbWUsIG92ZXJyaWRpbmcgZWFjaCBjaGFydCdzIGF1dGhvcmVkIGdyYW51bGFyaXR5LiAneWVhcicgcmVhZHMgYXNcbi8vIFwiQW5udWFsbHlcIiBpbiB0aGUgY29udHJvbC5cbmV4cG9ydCBjb25zdCBGUkVRVUVOQ1lfT1BUSU9OUzogeyB2YWx1ZTogQ2hhcnRHcmFudWxhcml0eTsgbmFtZTogc3RyaW5nIH1bXSA9IFtcbiAgeyB2YWx1ZTogJ2RheScsIG5hbWU6ICdEYXknIH0sXG4gIHsgdmFsdWU6ICd3ZWVrJywgbmFtZTogJ1dlZWsnIH0sXG4gIHsgdmFsdWU6ICdtb250aCcsIG5hbWU6ICdNb250aCcgfSxcbiAgeyB2YWx1ZTogJ3F1YXJ0ZXInLCBuYW1lOiAnUXVhcnRlcicgfSxcbiAgeyB2YWx1ZTogJ3llYXInLCBuYW1lOiAnQW5udWFsbHknIH0sXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0Q29uZmlnIHtcbiAgY2hhcnRUeXBlPzogJ2JhcicgfCAnbGluZScgfCAnYXJlYScgfCAncGllJyB8ICdkb251dCc7XG4gIC8vIEZvciBraW5kICd0aW1lJywgdGhlIHNlcnZlciBidWNrZXRzIHRoZSByYXcgZGF0ZXRpbWUgY29sdW1uIHRvIGBncmFudWxhcml0eWBcbiAgLy8gaW4gdGhlIHJlcG9ydCdzIHRpbWV6b25lICh0aGUgU1FMIGV4cG9zZXMgdGhlIHJhdyBjb2x1bW4sIHVuYnVja2V0ZWQpLlxuICB4QXhpcz86IHsgY29sdW1uOiBzdHJpbmc7IGtpbmQ/OiAnY2F0ZWdvcnknIHwgJ3RpbWUnOyBncmFudWxhcml0eT86IENoYXJ0R3JhbnVsYXJpdHk7IGxhYmVsPzogc3RyaW5nIH07XG4gIG1lYXN1cmVzPzogQ2hhcnRNZWFzdXJlW107XG4gIHNwbGl0Qnk/OiB7IGNvbHVtbjogc3RyaW5nOyBsYWJlbD86IHN0cmluZyB9O1xuICAvLyBTaW5nbGUtZGltZW5zaW9uIGJhciBjaGFydHMgb25seTogY29sb3IgZWFjaCBiYXIgYnkgaXRzIG93biBjYXRlZ29yeSBhbmRcbiAgLy8gc2hvdyBhIGxlZ2VuZCwgV0lUSE9VVCBzcGxpdHRpbmcgaW50byBtdWx0aXBsZSBzZXJpZXMgKHdoaWNoIHNsaXZlcnMgdGhlXG4gIC8vIGJhcnMpLiB2MSBleHBlY3RzIGNvbG9yQnkuY29sdW1uID09PSB4QXhpcy5jb2x1bW4uIElnbm9yZWQgd2hlbiBzcGxpdEJ5IGlzXG4gIC8vIHNldCBvciB0aGUgY2hhcnQgaXNuJ3QgYSBiYXIgY2hhcnQuXG4gIGNvbG9yQnk/OiB7IGNvbHVtbjogc3RyaW5nOyBsYWJlbD86IHN0cmluZyB9O1xuICBvcmllbnRhdGlvbj86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCc7XG4gIHN0YWNrZWQ/OiBib29sZWFuO1xuICBsZWdlbmQ/OiBMZWdlbmRQb3NpdGlvbjtcbiAgc29ydD86IFJlcG9ydFNvcnQ7XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0TWVhc3VyZSB7XG4gIGNvbHVtbjogc3RyaW5nO1xuICBhZ2dyZWdhdGlvbj86ICdzdW0nIHwgJ2NvdW50JyB8ICdhdmcnIHwgJ21pbicgfCAnbWF4JztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8vIEFwcGxpZWQgdG8gYSBLUEkncyBzaW5nbGUgdmFsdWUgb25seSDigJQgaXQgaXMgYWdncmVnYXRlZCBzZXJ2ZXItc2lkZSBhZnRlclxuICAvLyB0aGUgU1FMIHJ1bnMsIHNvIHRoZSBTUUwgY2Fubm90IGZvcm1hdCBpdC4gQ2hhcnQgbWVhc3VyZXMgc3RheSBudW1lcmljLlxuICBmb3JtYXQ/OiAnbnVtYmVyJyB8ICdwZXJjZW50JyB8ICdjdXJyZW5jeSc7XG4gIC8vIEhvdyBtYW55IGRlY2ltYWwgcGxhY2VzIHRoZSB2YWx1ZSBpcyBzaG93biB0by4gRml4ZWQgcmF0aGVyIHRoYW4gbWF4aW11bTpcbiAgLy8gYSBjb2x1bW4gb2YgcmF0ZXMgaXMgdW5yZWFkYWJsZSB3aGVuIGVhY2ggb25lIHNob3dzIGEgZGlmZmVyZW50IG51bWJlciBvZlxuICAvLyBkZWNpbWFscy4gT21pdHRlZCBsZWF2ZXMgdGhlIGxvY2FsZSdzIG93biBkZWZhdWx0LCB3aGljaCBpcyB3aGF0IGV2ZXJ5XG4gIC8vIHJlcG9ydCBhdXRob3JlZCBiZWZvcmUgdGhpcyBkaWQuXG4gIC8vXG4gIC8vIEl0IGNhbm5vdCBiZSBhcHBsaWVkIGluIHRoZSBTUUw6IHRoZSB2YWx1ZSBpcyBhZ2dyZWdhdGVkIGFmdGVyIHRoZSByZXBvcnQnc1xuICAvLyBmaWx0ZXJzIHJ1biwgc28gcHJlLXJvdW5kaW5nIHdvdWxkIGJyZWFrIGxpdmUgcmUtZmlsdGVyaW5nIGJ5IGRhdGUgcmFuZ2Ugb3JcbiAgLy8gcGFydG5lci5cbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDb25maWcge1xuICAvLyBBIGxpc3QgY2VsbCByZW5kZXJzIHRoZSB2YWx1ZSB2ZXJiYXRpbTogcGVyY2VudCBzaWducywgY3VycmVuY3kgc3ltYm9scyxcbiAgLy8gdGhvdXNhbmRzIHNlcGFyYXRvcnMgYW5kIGRlY2ltYWwgcGxhY2VzIGFyZSBwcm9kdWNlZCBieSB0aGUgY29tcG9uZW50J3NcbiAgLy8gU1FMICh0aGUgYmFja2VuZCByZWplY3RzIGFueSBvdGhlciBgZm9ybWF0YCBoZXJlKS4gYGRhdGVgIGlzIHRoZSBleGNlcHRpb25cbiAgLy8g4oCUIGEgZGF0ZSBjb2x1bW4gc3RheXMgYSBSQVcgdGltZXN0YW1wIHNvIHRoZSByZXBvcnQgdGltZXpvbmUgYW5kIGl0c1xuICAvLyBkYXRlUmFuZ2UgZmlsdGVycyBrZWVwIHdvcmtpbmcsIGFuZCB0aGUgdmlld2VyIGxvY2FsaXNlcyBpdCBhdCByZW5kZXIuXG4gIC8vIEEgU1FMLWZvcm1hdHRlZCBjb2x1bW4gaXMgdGV4dCwgc28gaXQgbmFtZXMgYHNvcnRDb2x1bW5gOiB0aGUgcmF3IG51bWVyaWNcbiAgLy8gYWxpYXMgdGhlIHF1ZXJ5IGFsc28gb3V0cHV0cywgd2hpY2ggdGhlIHNlcnZlciBvcmRlcnMgYnkgaW5zdGVhZC5cbiAgY29sdW1ucz86IHsgY29sdW1uOiBzdHJpbmc7IGxhYmVsPzogc3RyaW5nOyBmb3JtYXQ/OiAnZGF0ZSc7IHNvcnRDb2x1bW4/OiBzdHJpbmcgfVtdO1xuICBzb3J0PzogUmVwb3J0U29ydDtcbiAgcGFnZVNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS3BpQ29uZmlnIHtcbiAgbWVhc3VyZT86IENoYXJ0TWVhc3VyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTb3J0IHtcbiAgY29sdW1uOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgdHlwZSBSZXBvcnRGaWx0ZXJUeXBlID0gJ2RhdGVSYW5nZScgfCAnc2VsZWN0JyB8ICdrZXl3b3JkJztcblxuLy8gV2hlcmUgYSBmaWx0ZXIgZ3JvdXAncyBjb250cm9sIGlzIGV4cG9zZWQuIEEgZ3JvdXAgY2FuIGJlIHNob3duIG9uIGl0c1xuLy8gY29tcG9uZW50cywgaW4gdGhlIHJlcG9ydCBiYXIsIG9yIEJPVEggYXQgb25jZSAodGhlIHR3byBhcmUgaW5kZXBlbmRlbnRcbi8vIHRvZ2dsZXMgaW4gdGhlIFVJKTsgYSBjb2x1bW4gd2l0aCBuZWl0aGVyIGV4cG9zZWQgc2ltcGx5IGhhcyBubyBmaWx0ZXIuXG5leHBvcnQgdHlwZSBSZXBvcnRGaWx0ZXJMZXZlbCA9ICdjb21wb25lbnQnIHwgJ3JlcG9ydCcgfCAnYm90aCc7XG5cbi8vIE9uZSBmaWx0ZXJhYmxlIG91dHB1dCBjb2x1bW4gb2YgYSBjb21wb25lbnQncyBTUUwsIHdpdGggdGhlIGZpbHRlciBpbnRlcmZhY2Vcbi8vIElORkVSUkVEIGZyb20gaXRzIGRhdGEgKHRoZSBodW1hbiBuZXZlciBwaWNrcyB0aGUgaW50ZXJmYWNlIOKAlCBpdCBmb2xsb3dzIHRoZVxuLy8gY29sdW1uJ3MgdHlwZSkuIERyaXZlcyB0aGUgRmlsdGVycyB0YWIgbGlzdGluZy5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RmlsdGVyYWJsZUNvbHVtbiB7XG4gIGNvbHVtbjogc3RyaW5nO1xuICB0eXBlOiBSZXBvcnRGaWx0ZXJUeXBlO1xufVxuXG4vLyBHcm91bmQgdHJ1dGg6IG9uZSBmaWx0ZXJhYmxlIG91dHB1dCBjb2x1bW4gT04gb25lIGNvbXBvbmVudCdzIFNRTC4gQWx3YXlzIGFcbi8vIG1lbWJlciBvZiBhIGZpbHRlciBncm91cCDigJQgdGhlIHVuaXQgdGhhdCBsaW5rcyBlcXVpdmFsZW50IGZpbHRlcnMgYWNyb3NzXG4vLyBjb21wb25lbnRzIGFuZCBkZWNpZGVzIHdoZXJlIHRoZSBjb250cm9sIHJlbmRlcnMgKGNvbXBvbmVudCB2cyByZXBvcnQgYmFyKS5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0RmlsdGVyIHtcbiAgaWQ6IG51bWJlcjtcbiAgY29tcG9uZW50SWQ6IG51bWJlcjtcbiAgZmlsdGVyR3JvdXBJZDogbnVtYmVyO1xuICBmaWx0ZXJDb2x1bW46IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZyB8IG51bGw7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGhhc09wdGlvbnM6IGJvb2xlYW47XG4gIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8vIE9uZSBjaG9pY2UgaW4gYSBzZWxlY3QgZmlsdGVyJ3Mgb3B0aW9uIGxpc3QuIFRoZSB2YWx1ZSBpcyB3aGF0IHRoZSBmaWx0ZXJcbi8vIG1hdGNoZXMgb24gYW5kIGdldHMgc3RvcmVkIGluIGEgc2F2ZWQgZGVmYXVsdCDigJQgZm9yIGFuIGVudGl0eSB0aGF0IGlzIGl0c1xuLy8gc3RhYmxlIGlkLCBuZXZlciBpdHMgbmFtZSwgc28gcmVuYW1pbmcgdGhlIGVudGl0eSBtb3ZlcyB0aGUgbGFiZWwgd2l0aG91dFxuLy8gYnJlYWtpbmcgdGhlIGRlZmF1bHQuIFRoZSBsYWJlbCBpcyBvbmx5IGV2ZXIgd2hhdCB0aGUgdmlld2VyIHJlYWRzLlxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRGaWx0ZXJPcHRpb24ge1xuICB2YWx1ZTogdW5rbm93bjtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRGaWx0ZXJHcm91cCB7XG4gIGlkOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmcgfCBudWxsO1xuICB0eXBlOiBSZXBvcnRGaWx0ZXJUeXBlO1xuICBsZXZlbDogUmVwb3J0RmlsdGVyTGV2ZWw7XG4gIG9yZGVyOiBudW1iZXI7XG4gIGNvbmZpZzogeyBkZWZhdWx0PzogRmlsdGVyR3JvdXBEZWZhdWx0IH0gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZmlsdGVyczogUmVwb3J0RmlsdGVyW107XG59XG5cbi8vIEEgZmlsdGVyIGdyb3VwJ3MgYXV0aG9yZWQgZGVmYXVsdCDigJQgdGhlIHZhbHVlIHRoYXQgc2VlZHMgdGhlIHJlcG9ydCBiYXIgb25cbi8vIGV2ZXJ5IG9wZW4uIFNoYXBlIGZvbGxvd3MgdGhlIGdyb3VwJ3MgdHlwZTogZGF0ZVJhbmdlIHVzZXMgc3RhcnQvZW5kIChhIGZpeGVkXG4vLyBjYWxlbmRhci1kYXkgcmFuZ2UpIG9yIGEgcmVsYXRpdmUgcHJlc2V0OyBzZWxlY3QgdXNlcyB2YWx1ZXM7IGtleXdvcmQgdXNlc1xuLy8gdmFsdWUuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdyb3VwRGVmYXVsdCB7XG4gIC8vIGRhdGVSYW5nZSByZWxhdGl2ZSBwcmVzZXQsIHJlc29sdmVkIGFnYWluc3QgXCJub3dcIiBvbiBldmVyeSBvcGVuLiBPbmUgb2Y6XG4gIC8vIHRoaXNXZWVrLCBsYXN0V2VlaywgbGFzdDdEYXlzLCBsYXN0MzBEYXlzLCBsYXN0M01vbnRocywgbGFzdDZNb250aHMsXG4gIC8vIGxhc3QxMk1vbnRocywgdGhpc01vbnRoLCB0aGlzUXVhcnRlciwgdGhpc1llYXIveWVhclRvRGF0ZS4gVGhlIHdlZWsgb25lc1xuICAvLyBhcmUgd2hvbGUgY2FsZW5kYXIgZGF5cywgU3VuZGF5IHRvIFNhdHVyZGF5LCBpbiB0aGUgcmVwb3J0J3MgdGltZXpvbmUuXG4gIHJlbGF0aXZlPzogc3RyaW5nO1xuICBzdGFydD86IHN0cmluZzsgLy8gZGF0ZVJhbmdlIGZpeGVkIHN0YXJ0ICh5eXl5LU1NLWRkKVxuICBlbmQ/OiBzdHJpbmc7IC8vIGRhdGVSYW5nZSBmaXhlZCBlbmQgKHl5eXktTU0tZGQpXG4gIHZhbHVlcz86IHVua25vd25bXTsgLy8gc2VsZWN0IGRlZmF1bHQgcGlja2VkIHZhbHVlc1xuICB2YWx1ZT86IHN0cmluZzsgLy8ga2V5d29yZCBkZWZhdWx0IHRleHRcbn1cblxuLy8gVGhlIHNlc3Npb24gdmFsdWUgb2YgYSBmaWx0ZXIgZ3JvdXAgKG5ldmVyIHBlcnNpc3RlZCk6IHNoYXBlIGRlcGVuZHMgb24gdGhlXG4vLyBncm91cCdzIHR5cGUuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckdyb3VwVmFsdWUge1xuICBzdGFydD86IERhdGUgfCBzdHJpbmcgfCBudWxsOyAvLyBkYXRlUmFuZ2VcbiAgZW5kPzogRGF0ZSB8IHN0cmluZyB8IG51bGw7IC8vIGRhdGVSYW5nZVxuICB2YWx1ZXM/OiB1bmtub3duW107IC8vIHNlbGVjdFxuICB2YWx1ZT86IHN0cmluZzsgLy8ga2V5d29yZFxufVxuXG4vLyBPbmUgcmVzb2x2ZWQgZmlsdGVyIHNlbnQgd2l0aCBhIGNvbXBvbmVudCdzIGRhdGEgcmVxdWVzdC5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRGaWx0ZXJWYWx1ZSB7XG4gIGZpbHRlcklkOiBudW1iZXI7XG4gIHN0YXJ0Pzogc3RyaW5nO1xuICBlbmQ/OiBzdHJpbmc7XG4gIHZhbHVlcz86IHVua25vd25bXTtcbiAgdmFsdWU/OiBzdHJpbmc7XG59XG5cbi8vIFBlci1jb21wb25lbnQgaW50ZXJhY3Rpb24gc3RhdGUgc2VudCB3aXRoIHRoZSBkYXRhIHJlcXVlc3Q6IGxpc3RzIHNlbmRcbi8vIHNvcnQvcGFnaW5nOyB0aW1lLXNlcmllcyBjaGFydHMgc2VuZCB0aGUgdmlld2VyJ3MgY2hvc2VuIEZyZXF1ZW5jeSwgd2hpY2hcbi8vIG92ZXJyaWRlcyB0aGUgYXV0aG9yZWQgZ3JhbnVsYXJpdHkgZm9yIHRoYXQgcmVxdWVzdCBvbmx5LlxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnREYXRhU3RhdGUge1xuICBzb3J0PzogUmVwb3J0U29ydDtcbiAgcGFnZT86IG51bWJlcjtcbiAgcGFnZVNpemU/OiBudW1iZXI7XG4gIGZyZXF1ZW5jeT86IENoYXJ0R3JhbnVsYXJpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGF0YSB7XG4gIGNvbHVtbnM6IHN0cmluZ1tdO1xuICByb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdO1xuICBwYWdpbmc/OiB7IHRvdGFsOiBudW1iZXI7IHBhZ2U6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9O1xuICB0cnVuY2F0ZWQ6IGJvb2xlYW47XG4gIC8vIFRoZSBlZmZlY3RpdmUgdGltZSBidWNrZXQgdGhlIHJvd3Mgd2VyZSBncm91cGVkIGludG8gKGFmdGVyIGFueSBGcmVxdWVuY3lcbiAgLy8gb3ZlcnJpZGUpLCBvciBudWxsIGZvciBhIG5vbi10aW1lIGF4aXMuIERyaXZlcyB0aGUgY29tcGFjdCB4LWF4aXMgbGFiZWxzLlxuICBncmFudWxhcml0eT86IENoYXJ0R3JhbnVsYXJpdHkgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydExpc3RJdGVtIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBtb2RpZnlEYXRlOiBzdHJpbmc7XG4gIHN0YXRlPzogUmVwb3J0U3RhdGU7XG59XG5cbi8vIFJlcG9ydHMgYXJlIHNvZnQtZGVsZXRhYmxlOiBhIGRlbGV0ZWQgcmVwb3J0IGxlYXZlcyB0aGUgbGlzdGluZyBidXQga2VlcHMgaXRzXG4vLyBwYWdlcyBhbmQgY29tcG9uZW50cywgYW5kIHRoZSBsaXN0aW5nJ3MgXCJTaG93IERlbGV0ZWRcIiBtb2RlIHJlc3RvcmVzIGl0LlxuZXhwb3J0IGVudW0gUmVwb3J0U3RhdGUge1xuICBBY3RpdmUgPSAnYWN0aXZlJyxcbiAgRGVsZXRlZCA9ICdkZWxldGVkJyxcbn1cblxuLy8gVGhlIGNoYXQgdHVybiBmbGFncyB0aGlzIGNvbnRleHQncyBiYWNrZW5kIGFkZHMgKFJlcG9ydHNcXEFpVmlldykuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydENoYXRSZXNwb25zZSB7XG4gIHJlcG9ydENoYW5nZWQ/OiBib29sZWFuO1xuICByZXBvcnRSZW5hbWVkPzogYm9vbGVhbjtcbn1cblxuLy8gT25lIHZlcnNpb24gb2YgdGhlIGdsb2JhbCBBSSBrbm93bGVkZ2UgZG9jdW1lbnQg4oCUIHRoZSBvcGVyYXRvci1hdXRob3JlZFxuLy8gbWFya2Rvd24gYXBwZW5kZWQgdG8gdGhlIHJlcG9ydCBhZ2VudCdzIHN5c3RlbSBpbnN0cnVjdGlvbnMgb24gZXZlcnkgdHVybi5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0SW5zdHJ1Y3Rpb24ge1xuICBpZDogbnVtYmVyO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGN1cnJlbnQ6IGJvb2xlYW47XG4gIGNyZWF0ZURhdGU6IERhdGU7XG4gIG1vZGlmeURhdGU6IERhdGU7XG4gIGFjY291bnRJZDogbnVtYmVyIHwgbnVsbDtcbiAgYWNjb3VudE5hbWU6IHN0cmluZyB8IG51bGw7XG59XG5cbi8vIEdFVC9QVVQgaW5zdHJ1Y3Rpb25zIHBheWxvYWQ6IHRoZSBjdXJyZW50IHZlcnNpb24gKG51bGwgdW50aWwgb25lIGlzXG4vLyBhdXRob3JlZCkgcGx1cyB0aGUgZnVsbCBoaXN0b3J5LCBuZXdlc3QgZmlyc3QuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEluc3RydWN0aW9ucyB7XG4gIGluc3RydWN0aW9uczogUmVwb3J0SW5zdHJ1Y3Rpb24gfCBudWxsO1xuICB2ZXJzaW9uczogUmVwb3J0SW5zdHJ1Y3Rpb25bXTtcbn1cblxuLy8gVGhlIGxhdGVzdCBzZW1hbnRpYy1kYXRhYmFzZSBidWlsZCAoYW4gZmZfcHJvY2Vzc2VzIHJvdykg4oCUIGVub3VnaCBmb3IgdGhlXG4vLyBzZXR0aW5ncyBkaWFsb2cgdG8gc2F5IHdoYXQgc3RhdGUgdGhlIGJ1aWxkIGlzIGluIGFuZCB3aGVuIGl0IGxhc3QgcmFuLlxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY0J1aWxkIHtcbiAgaWQ6IG51bWJlcjtcbiAgc3RhdGU6IHN0cmluZztcbiAgcGVyY2VudDogbnVtYmVyIHwgc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGR1cmF0aW9uOiBudW1iZXI7XG4gIGNyZWF0ZURhdGU6IERhdGU7XG4gIHN0YXJ0RGF0ZTogRGF0ZTtcbiAgZW5kRGF0ZTogRGF0ZTtcbn1cblxuLy8gQSBidWlsZCBzdGFnZSdzIHN0YXRlIG9uIHRoZSBlbnRpdHkgc2NvcmVib2FyZDogJ2RvbmUnID0gYnVpbHQsICdtaXNzaW5nJyA9XG4vLyBzdGlsbCBuZWVkcyBidWlsZGluZyAoYSBtaXNzaW5nIHN0YWdlIGlzIHVuYnVpbHQgY29udGVudCwgbmV2ZXIgYW4gZXJyb3IpLlxuZXhwb3J0IHR5cGUgU2VtYW50aWNCdWlsZFN0YWdlID0gJ2RvbmUnIHwgJ21pc3NpbmcnO1xuXG4vLyBPbmUgZW51bSBjb2x1bW4gb2YgYW4gZW50aXR5LCB3aXRoIHRoZSBhbGxvd2VkIHZhbHVlcyB0aGUgYnVpbGQgaW5saW5lZC5cbmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNCdWlsZEVudW0ge1xuICBjb2x1bW46IHN0cmluZztcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuLy8gT25lIGVudGl0eSByb3cgb2YgdGhlIHNjb3JlYm9hcmQgKGFuIGVudGl0eSA9IGEgdGFibGUgKyBhIG1vZGVsICsgYVxuLy8gaGFuZGxlcik6IGl0cyB0YWJsZS9zaGFwZSBjb3VudHMsIGlubGluZWQgZW51bSB2YWx1ZXMsIGNvbXB1dGVkIGZpZWxkcywgaG93XG4vLyBtYW55IGNvZGUgZnVuY3Rpb25zIHdlcmUgY2FjaGVkIChzcGxpdCBtb2RlbCB2cyBoYW5kbGVyKSwgYW5kIHRoZSBwZXItc3RhZ2Vcbi8vIGJ1aWx0L21pc3Npbmcgc3RhdGUuXG4vL1xuLy8gYG1vZGVsYC9gaGFuZGxlcmAgYXJlIHRoZSBjbGFzc2VzIHRoZSBmdW5jdGlvbnMgd2VyZSByZWFkIGZyb20g4oCUIHdoYXQgYVxuLy8gcmVhZGVyIHJlY29nbml6ZXMgdGhlIHJvdyBieSwgd2hlcmUgYGtleWAgaXMgd2hhdCB0aGUgcmVwb3J0IEFJIGFkZHJlc3NlcyBpdFxuLy8gYnkgaW4gZGVzY3JpYmVfZW50aXR5IC8gY29tcGlsZV9xdWVyeS5cbmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNCdWlsZEVudGl0eSB7XG4gIGtleTogc3RyaW5nO1xuICB0YWJsZTogc3RyaW5nO1xuICBtb2RlbDogc3RyaW5nIHwgbnVsbDtcbiAgaGFuZGxlcjogc3RyaW5nIHwgbnVsbDtcbiAgY29sdW1uczogbnVtYmVyO1xuICByZWxhdGlvbnNoaXBzOiBudW1iZXI7XG4gIGVudW1zOiBTZW1hbnRpY0J1aWxkRW51bVtdO1xuICBjb21wdXRlZEZpZWxkczogc3RyaW5nW107XG4gIGZ1bmN0aW9uQ291bnQ6IG51bWJlcjtcbiAgbW9kZWxGdW5jdGlvbkNvdW50OiBudW1iZXI7XG4gIGhhbmRsZXJGdW5jdGlvbkNvdW50OiBudW1iZXI7XG4gIHN0YWdlczogUmVjb3JkPHN0cmluZywgU2VtYW50aWNCdWlsZFN0YWdlPjtcbn1cblxuLy8gT25lIHN0YW5kYWxvbmUgY29kZSBjbGFzcyB0aGUgYnVpbGQgcmVhZDogZG9tYWluIGxvZ2ljIHdpdGggbm8gdGFibGUgb2YgaXRzXG4vLyBvd24gKGEgc3VtbWFyeSBtb2RlbCwgYSBjYWxjdWxhdGlvbiBzZXJ2aWNlKS4gVGhlIHJlcG9ydCBBSSByZWFkcyBpdHMgY29kZVxuLy8gZXhhY3RseSBsaWtlIGFuIGVudGl0eSdzLCBidXQgaXQgY2FuIG5ldmVyIGJlIHF1ZXJpZWQg4oCUIHRoZXJlIGlzIG5vdGhpbmcgdG9cbi8vIHNlbGVjdCBmcm9tIOKAlCBzbyBpdCBjYXJyaWVzIG5vIHRhYmxlLCBjb2x1bW5zIG9yIHJlbGF0aW9uc2hpcHMuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljQnVpbGRDbGFzcyB7XG4gIGtleTogc3RyaW5nO1xuICBtb2RlbDogc3RyaW5nIHwgbnVsbDtcbiAgZnVuY3Rpb25Db3VudDogbnVtYmVyO1xufVxuXG4vLyBXaGF0IHRoZSBidWlsZCBkZWNpZGVkIGEgcGh5c2ljYWwgdGFibGUgaXMuIEVudGl0eSBhbmQganVuY3Rpb24gYXJlIGJvdGhcbi8vIHJlYWNoYWJsZSBieSB0aGUgcmVwb3J0IEFJIOKAlCBhbiBlbnRpdHkgZGlyZWN0bHksIGEganVuY3Rpb24gdGhyb3VnaCB0aGVcbi8vIG1hbnktdG8tbWFueSBpdCBicmlkZ2VzLiBFeGNsdWRlZCBpcyBub3QgcmVhY2hhYmxlIGF0IGFsbC5cbmV4cG9ydCB0eXBlIFNlbWFudGljVGFibGVDbGFzc2lmaWNhdGlvbiA9ICdlbnRpdHknIHwgJ2p1bmN0aW9uJyB8ICdleGNsdWRlZCc7XG5cbi8vIE9uZSBwaHlzaWNhbCB0YWJsZSBhcyB0aGUgYnVpbGQgY2xhc3NpZmllZCBpdC4gYHJlYXNvbmAgYW5zd2VycyBhIHNpbmdsZVxuLy8gcXVlc3Rpb24g4oCUIHdoeSBjYW4ndCB0aGUgcmVwb3J0IEFJIHNlZSB0aGlzIHRhYmxlPyDigJQgYW5kIGlzIG51bGwgd2hlbiBpdCBjYW4uXG4vLyBBIGp1bmN0aW9uIHdpdGggYSByZWFzb24gYnJpZGdlZCBub3RoaW5nLCBzbyBpdCBpcyBqdXN0IGFzIGludmlzaWJsZSBhcyBhblxuLy8gZXhjbHVkZWQgdGFibGUuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljQnVpbGRUYWJsZSB7XG4gIHRhYmxlOiBzdHJpbmc7XG4gIGNsYXNzaWZpY2F0aW9uOiBTZW1hbnRpY1RhYmxlQ2xhc3NpZmljYXRpb247XG4gIG1vZGVsOiBzdHJpbmcgfCBudWxsO1xuICByZWFzb246IHN0cmluZyB8IG51bGw7XG59XG5cbi8vIFRoZSBidWlsZCBzY29yZWJvYXJkIHNoaXBwZWQgYWxvbmdzaWRlIHRoZSBidWlsZCBzdGF0dXM6IHRoZSBzdW1tYXJ5IGNvdW50cyxcbi8vIHRoZSBmdWxsIGJyZWFrZG93biB0aGUgc2V0dGluZ3MgZGlhbG9nIGRyaWxscyBpbnRvIOKAlCBCT1RIIGtpbmRzIG9mIHVuaXQgdGhlXG4vLyBidWlsZCBjYWNoZXMsIHRhYmxlLWJhY2tlZCBlbnRpdGllcyBhbmQgc3RhbmRhbG9uZSBjb2RlIGNsYXNzZXMg4oCUIGFuZCB0aGVcbi8vIGNhdGFsb2cgb2YgZXZlcnkgdGFibGUgdGhlIGJ1aWxkIHNhdywgc28gdGhlIHRhYiBjYW4gc2hvdyB3aGF0IHRoZSByZXBvcnQgQUlcbi8vIGNhbid0IHNlZSwgbm90IGp1c3Qgd2hhdCBpdCBjYW4uXG4vL1xuLy8gYGZ1bmN0aW9uQ291bnRgIHNwYW5zIGVudGl0aWVzIGFuZCBjbGFzc2VzIGFsaWtlOiBpdCBpcyB0aGUgc2FtZSB0b3RhbCB0aGVcbi8vIGJ1aWxkIGl0c2VsZiByZXBvcnRzIHdoZW4gaXQgZmluaXNoZXMuXG4vL1xuLy8gYHRhYmxlc2AgaXMgZW1wdHkgZm9yIGFuIGFydGlmYWN0IGJ1aWx0IGJlZm9yZSB0aGUgY2F0YWxvZyBleGlzdGVkLiBSZWFkIHRoYXRcbi8vIGFzIFwibm8gY2F0YWxvZ1wiLCBuZXZlciBhcyBcIm5vdGhpbmcgd2FzIGV4Y2x1ZGVkXCIuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljQnVpbGREZXRhaWwge1xuICBnZW5lcmF0ZWRBdDogRGF0ZSB8IG51bGw7XG4gIGVudGl0eUNvdW50OiBudW1iZXI7XG4gIGNsYXNzQ291bnQ6IG51bWJlcjtcbiAgZnVuY3Rpb25Db3VudDogbnVtYmVyO1xuICBlbnRpdGllczogU2VtYW50aWNCdWlsZEVudGl0eVtdO1xuICBjbGFzc2VzOiBTZW1hbnRpY0J1aWxkQ2xhc3NbXTtcbiAgdGFibGVDb3VudDogbnVtYmVyO1xuICBqdW5jdGlvbkNvdW50OiBudW1iZXI7XG4gIHVubGlua2VkSnVuY3Rpb25Db3VudDogbnVtYmVyO1xuICBleGNsdWRlZENvdW50OiBudW1iZXI7XG4gIHRhYmxlczogU2VtYW50aWNCdWlsZFRhYmxlW107XG59XG5cbi8vIFdoaWNoIGNsYXNzIGEgY2FjaGVkIGZ1bmN0aW9uIHdhcyByZWFkIGZyb20uIEFuIGVudGl0eSdzIGNhY2hlIHNwbGl0cyBpbnRvXG4vLyAnbW9kZWwnIGFuZCAnaGFuZGxlcic7IGEgc3RhbmRhbG9uZSBjb2RlIGNsYXNzIGhhcyBvbmUgZ3JvdXAsICdjbGFzcycuXG5leHBvcnQgdHlwZSBTZW1hbnRpY0Z1bmN0aW9uU291cmNlID0gJ21vZGVsJyB8ICdoYW5kbGVyJyB8ICdjbGFzcyc7XG5cbi8vIE9uZSBBSS1jbGFzc2lmaWVkIGNvZGUgZnVuY3Rpb24gZnJvbSBhIG1vZGVsLCBoYW5kbGVyIG9yIHN0YW5kYWxvbmUgY2xhc3M6XG4vLyB3aGF0IGtpbmQgb2YgbG9naWMgaXQgaXMsIHdoYXQgaXQgZG9lcywgYW5kIHdoYXQgaXQgcHJvZHVjZXMg4oCUIHRoZSBidWlsZCdzXG4vLyBjYWNoZWQgXCJ3aGF0IHRoZSBjb2RlIGRvZXNcIiBrbm93bGVkZ2Ugc2hvd24gaW4gdGhlIGZ1bmN0aW9ucyBkaWFsb2cuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljRW50aXR5RnVuY3Rpb24ge1xuICBjbGFzczogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gIGtpbmQ6IHN0cmluZztcbiAgc3VtbWFyeTogc3RyaW5nO1xuICBwcm9kdWNlczogc3RyaW5nO1xuICBzb3VyY2U6IFNlbWFudGljRnVuY3Rpb25Tb3VyY2U7XG59XG5cbi8vIE9uZSBlbnRpdHkncyBjYWNoZWQgY29kZS1mdW5jdGlvbiBrbm93bGVkZ2UsIGZldGNoZWQgd2hlbiBhIGZ1bmN0aW9ucyBkaWFsb2dcbi8vIG9wZW5zICh0aGUgZnVsbCBzZXQgYWNyb3NzIGFsbCBlbnRpdGllcyBpcyB0b28gYmlnIHRvIHNoaXAgd2l0aCB0aGVcbi8vIHNjb3JlYm9hcmQpLiBPbmUgcGF5bG9hZCBzZXJ2ZXMgYm90aCBkaWFsb2dzIOKAlCBjb25zdW1lcnMgZmlsdGVyIGJ5IHNvdXJjZS5cbmV4cG9ydCBpbnRlcmZhY2UgU2VtYW50aWNFbnRpdHlGdW5jdGlvbnMge1xuICBlbnRpdHk6IHN0cmluZztcbiAgZ2VuZXJhdGVkQXQ6IERhdGUgfCBudWxsO1xuICBtb2RlbENsYXNzOiBzdHJpbmcgfCBudWxsO1xuICBoYW5kbGVyQ2xhc3M6IHN0cmluZyB8IG51bGw7XG4gIGZ1bmN0aW9uczogU2VtYW50aWNFbnRpdHlGdW5jdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljQnVpbGRTdGF0dXMge1xuICBidWlsZDogU2VtYW50aWNCdWlsZCB8IG51bGw7XG4gIGRldGFpbDogU2VtYW50aWNCdWlsZERldGFpbDtcbn1cblxuLy8gVGhlIHJlcG9ydCBtb2R1bGUncyBHZW5lcmFsIHNldHRpbmdzIChhIHNtYWxsIGdsb2JhbCBrZXkvdmFsdWUgc3RvcmUsIHRoZVxuLy8gcmVwb3J0aW5nIGNvdW50ZXJwYXJ0IG9mIHRoZSBhcHAtd2lkZSBzZXR0aW5ncykuIEVhY2ggdmFsdWUgc2hpcHMgd2l0aCB0aGVcbi8vIHNhZmUgYmFuZCBpdHMgZWRpdG9yIGZpZWxkIGlzIGJvdW5kZWQgdG8uXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFNldHRpbmdzIHtcbiAgLy8gSG93IG1hbnkgc3VtbWFyeSBjYWxscyB0aGUgc2VtYW50aWMgYnVpbGQgcnVucyBhdCBvbmNlLlxuICBzZW1hbnRpY0J1aWxkQ29uY3VycmVuY3k6IG51bWJlcjtcbiAgc2VtYW50aWNCdWlsZENvbmN1cnJlbmN5TWluOiBudW1iZXI7XG4gIHNlbWFudGljQnVpbGRDb25jdXJyZW5jeU1heDogbnVtYmVyO1xufVxuIl19
|