geni-bioinfo 0.1.4 → 0.1.5
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/dist/commands/costs.d.ts +2 -0
- package/dist/commands/costs.js +111 -0
- package/dist/commands/workflow-version.d.ts +2 -0
- package/dist/commands/workflow-version.js +17 -0
- package/dist/format.d.ts +3 -0
- package/dist/format.js +21 -2
- package/dist/index.js +5 -3
- package/package.json +1 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.costsCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const auth_1 = require("../auth");
|
|
6
|
+
const format_js_1 = require("../format.js");
|
|
7
|
+
const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
8
|
+
function parseDate(value) {
|
|
9
|
+
if (!DATE_RE.test(value))
|
|
10
|
+
throw new Error(`Expected YYYY-MM-DD, got "${value}"`);
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
function addCommonOptions(cmd) {
|
|
14
|
+
return cmd
|
|
15
|
+
.option('--start-date <YYYY-MM-DD>', 'Start date (UTC, inclusive)', parseDate)
|
|
16
|
+
.option('--end-date <YYYY-MM-DD>', 'End date (UTC, inclusive)', parseDate)
|
|
17
|
+
.option('--submission-status <status>', 'Filter by submission status (e.g. SUCCEEDED, FAILED, RUNNING)');
|
|
18
|
+
}
|
|
19
|
+
function buildParams(opts) {
|
|
20
|
+
const params = new URLSearchParams();
|
|
21
|
+
if (opts.startDate)
|
|
22
|
+
params.set('from', `${opts.startDate}T00:00:00.000Z`);
|
|
23
|
+
if (opts.endDate) {
|
|
24
|
+
const d = new Date(`${opts.endDate}T00:00:00.000Z`);
|
|
25
|
+
d.setUTCDate(d.getUTCDate() + 1);
|
|
26
|
+
params.set('to', d.toISOString());
|
|
27
|
+
}
|
|
28
|
+
if (opts.submissionStatus)
|
|
29
|
+
params.set('submissionStatus', opts.submissionStatus);
|
|
30
|
+
return params;
|
|
31
|
+
}
|
|
32
|
+
function qs(params) {
|
|
33
|
+
const s = params.toString();
|
|
34
|
+
return s ? `?${s}` : '';
|
|
35
|
+
}
|
|
36
|
+
exports.costsCommand = new commander_1.Command('costs')
|
|
37
|
+
.description('View cost analytics');
|
|
38
|
+
addCommonOptions(exports.costsCommand
|
|
39
|
+
.command('summary')
|
|
40
|
+
.description('Overall cost totals for the tenant')
|
|
41
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
42
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/summary${qs(buildParams(opts))}`));
|
|
43
|
+
(0, format_js_1.formatOutput)(data, opts.format, format_js_1.analyticsSummaryColumns);
|
|
44
|
+
});
|
|
45
|
+
addCommonOptions(exports.costsCommand
|
|
46
|
+
.command('submission')
|
|
47
|
+
.description('Per-submission cost breakdown')
|
|
48
|
+
.argument('[ids...]', 'Filter by submission IDs')
|
|
49
|
+
.option('--limit <n>', 'Max results (1–200)', '50')
|
|
50
|
+
.option('--offset <n>', 'Pagination offset', '0')
|
|
51
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (ids, opts) => {
|
|
52
|
+
const params = buildParams(opts);
|
|
53
|
+
ids.forEach(id => params.append('id', id));
|
|
54
|
+
params.set('limit', opts.limit);
|
|
55
|
+
params.set('offset', opts.offset);
|
|
56
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/submission${qs(params)}`));
|
|
57
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.analyticsBySubmissionColumns);
|
|
58
|
+
});
|
|
59
|
+
addCommonOptions(exports.costsCommand
|
|
60
|
+
.command('environment')
|
|
61
|
+
.description('Cost grouped by environment')
|
|
62
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
63
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/environment${qs(buildParams(opts))}`));
|
|
64
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.analyticsByEnvironmentColumns);
|
|
65
|
+
});
|
|
66
|
+
addCommonOptions(exports.costsCommand
|
|
67
|
+
.command('queue')
|
|
68
|
+
.description('Cost grouped by queue')
|
|
69
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
70
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/queue${qs(buildParams(opts))}`));
|
|
71
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.analyticsByQueueColumns);
|
|
72
|
+
});
|
|
73
|
+
addCommonOptions(exports.costsCommand
|
|
74
|
+
.command('instance-type')
|
|
75
|
+
.description('Cost grouped by EC2 instance type and market type')
|
|
76
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
77
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/instance-type${qs(buildParams(opts))}`));
|
|
78
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.analyticsByInstanceTypeColumns);
|
|
79
|
+
});
|
|
80
|
+
addCommonOptions(exports.costsCommand
|
|
81
|
+
.command('engine')
|
|
82
|
+
.description('Cost grouped by engine')
|
|
83
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
84
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/engine${qs(buildParams(opts))}`));
|
|
85
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.costsByEngineColumns);
|
|
86
|
+
});
|
|
87
|
+
addCommonOptions(exports.costsCommand
|
|
88
|
+
.command('execution-mode')
|
|
89
|
+
.description('Cost grouped by execution mode (spot / on-demand)')
|
|
90
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
91
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/execution-mode${qs(buildParams(opts))}`));
|
|
92
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.costsByExecutionModeColumns);
|
|
93
|
+
});
|
|
94
|
+
addCommonOptions(exports.costsCommand
|
|
95
|
+
.command('over-time')
|
|
96
|
+
.description('Cost bucketed by time period')
|
|
97
|
+
.addOption(new commander_1.Option('--interval <interval>', 'Time bucket size').choices(['day', 'week', 'month']).default('day'))
|
|
98
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (opts) => {
|
|
99
|
+
const params = buildParams(opts);
|
|
100
|
+
params.set('interval', opts.interval);
|
|
101
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/over-time${qs(params)}`));
|
|
102
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.analyticsOverTimeColumns);
|
|
103
|
+
});
|
|
104
|
+
exports.costsCommand
|
|
105
|
+
.command('sync')
|
|
106
|
+
.description('Trigger a CUR actual-cost sync')
|
|
107
|
+
.action(async () => {
|
|
108
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/costs/sync'), { method: 'POST' });
|
|
109
|
+
console.log(`Sync job enqueued: ${data.jobId}`);
|
|
110
|
+
});
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY29zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLGtDQUEyQztBQUMzQyw0Q0FXcUI7QUFRckIsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUE7QUFFckMsU0FBUyxTQUFTLENBQUMsS0FBYTtJQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2hGLE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsR0FBWTtJQUNwQyxPQUFPLEdBQUc7U0FDUCxNQUFNLENBQUMsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsU0FBUyxDQUFDO1NBQzdFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLENBQUM7U0FDekUsTUFBTSxDQUFDLDhCQUE4QixFQUFFLCtEQUErRCxDQUFDLENBQUE7QUFDNUcsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQWM7SUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtJQUVwQyxJQUFJLElBQUksQ0FBQyxTQUFTO1FBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXpFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNoQyxNQUFNLENBQUMsR0FBRyxD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QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsZ0JBQVMsRUFBQyxJQUFBLGFBQU0sRUFBQyxhQUFhLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBc0IsQ0FBQTtJQUM1RixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUNqRCxDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQsIE9wdGlvbiB9IGZyb20gJ2NvbW1hbmRlcidcbmltcG9ydCB7IGFwaVVybCwgZmV0Y2hKc29uIH0gZnJvbSAnLi4vYXV0aCdcbmltcG9ydCB7XG4gIGZvcm1hdE91dHB1dCxcbiAgYW5hbHl0aWNzU3VtbWFyeUNvbHVtbnMsXG4gIGFuYWx5dGljc0J5U3VibWlzc2lvbkNvbHVtbnMsXG4gIGFuYWx5dGljc0J5RW52aXJvbm1lbnRDb2x1bW5zLFxuICBhbmFseXRpY3NCeVF1ZXVlQ29sdW1ucyxcbiAgYW5hbHl0aWNzQnlJbnN0YW5jZVR5cGVDb2x1bW5zLFxuICBhbmFseXRpY3NPdmVyVGltZUNvbHVtbnMsXG4gIGNvc3RzQnlFbmdpbmVDb2x1bW5zLFxuICBjb3N0c0J5RXhlY3V0aW9uTW9kZUNvbHVtbnMsXG4gIHR5cGUgT3V0cHV0Rm9ybWF0LFxufSBmcm9tICcuLi9mb3JtYXQuanMnXG5cbnR5cGUgQmFzZU9wdHMgPSB7XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1xuICBlbmREYXRlPzogc3RyaW5nXG4gIHN1Ym1pc3Npb25TdGF0dXM/OiBzdHJpbmdcbn1cblxuY29uc3QgREFURV9SRSA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kL1xuXG5mdW5jdGlvbiBwYXJzZURhdGUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghREFURV9SRS50ZXN0KHZhbHVlKSkgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZWVlZLU1NLURELCBnb3QgXCIke3ZhbHVlfVwiYClcbiAgcmV0dXJuIHZhbHVlXG59XG5cbmZ1bmN0aW9uIGFkZENvbW1vbk9wdGlvbnMoY21kOiBDb21tYW5kKTogQ29tbWFuZCB7XG4gIHJldHVybiBjbWRcbiAgICAub3B0aW9uKCctLXN0YXJ0LWRhdGUgPFlZWVktTU0tREQ+JywgJ1N0YXJ0IGRhdGUgKFVUQywgaW5jbHVzaXZlKScsIHBhcnNlRGF0ZSlcbiAgICAub3B0aW9uKCctLWVuZC1kYXRlIDxZWVlZLU1NLUREPicsICdFbmQgZGF0ZSAoVVRDLCBpbmNsdXNpdmUpJywgcGFyc2VEYXRlKVxuICAgIC5vcHRpb24oJy0tc3VibWlzc2lvbi1zdGF0dXMgPHN0YXR1cz4nLCAnRmlsdGVyIGJ5IHN1Ym1pc3Npb24gc3RhdHVzIChlLmcuIFNVQ0NFRURFRCwgRkFJTEVELCBSVU5OSU5HKScpXG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKG9wdHM6IEJhc2VPcHRzKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG5cbiAgaWYgKG9wdHMuc3RhcnREYXRlKSBwYXJhbXMuc2V0KCdmcm9tJywgYCR7b3B0cy5zdGFydERhdGV9VDAwOjAwOjAwLjAwMFpgKVxuXG4gIGlmIChvcHRzLmVuZERhdGUpIHtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoYCR7b3B0cy5lbmREYXRlfVQwMDowMDowMC4wMDBaYClcbiAgICBkLnNldFVUQ0RhdGUoZC5nZXRVVENEYXRlKCkgKyAxKVxuICAgIHBhcmFtcy5zZXQoJ3RvJywgZC50b0lTT1N0cmluZygpKVxuICB9XG5cbiAgaWYgKG9wdHMuc3VibWlzc2lvblN0YXR1cykgcGFyYW1zLnNldCgnc3VibWlzc2lvblN0YXR1cycsIG9wdHMuc3VibWlzc2lvblN0YXR1cylcbiAgcmV0dXJuIHBhcmFtc1xufVxuXG5mdW5jdGlvbiBxcyhwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHMgPSBwYXJhbXMudG9TdHJpbmcoKVxuICByZXR1cm4gcyA/IGA/JHtzfWAgOiAnJ1xufVxuXG5leHBvcnQgY29uc3QgY29zdHNDb21tYW5kID0gbmV3IENvbW1hbmQoJ2Nvc3RzJylcbiAgLmRlc2NyaXB0aW9uKCdWaWV3IGNvc3QgYW5hbHl0aWNzJylcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3N1bW1hcnknKVxuICAgIC5kZXNjcmlwdGlvbignT3ZlcmFsbCBjb3N0IHRvdGFscyBmb3IgdGhlIHRlbmFudCcpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9zdW1tYXJ5JHtxcyhidWlsZFBhcmFtcyhvcHRzKSl9YCkpXG4gIGZvcm1hdE91dHB1dChkYXRhLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzU3VtbWFyeUNvbHVtbnMpXG59KVxuXG5hZGRDb21tb25PcHRpb25zKFxuICBjb3N0c0NvbW1hbmRcbiAgICAuY29tbWFuZCgnc3VibWlzc2lvbicpXG4gICAgLmRlc2NyaXB0aW9uKCdQZXItc3VibWlzc2lvbiBjb3N0IGJyZWFrZG93bicpXG4gICAgLmFyZ3VtZW50KCdbaWRzLi4uXScsICdGaWx0ZXIgYnkgc3VibWlzc2lvbiBJRHMnKVxuICAgIC5vcHRpb24oJy0tbGltaXQgPG4+JywgJ01heCByZXN1bHRzICgx4oCTMjAwKScsICc1MCcpXG4gICAgLm9wdGlvbignLS1vZmZzZXQgPG4+JywgJ1BhZ2luYXRpb24gb2Zmc2V0JywgJzAnKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKGlkczogc3RyaW5nW10sIG9wdHM6IEJhc2VPcHRzICYgeyBsaW1pdDogc3RyaW5nOyBvZmZzZXQ6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBidWlsZFBhcmFtcyhvcHRzKVxuICBpZHMuZm9yRWFjaChpZCA9PiBwYXJhbXMuYXBwZW5kKCdpZCcsIGlkKSlcbiAgcGFyYW1zLnNldCgnbGltaXQnLCBvcHRzLmxpbWl0KVxuICBwYXJhbXMuc2V0KCdvZmZzZXQnLCBvcHRzLm9mZnNldClcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9zdWJtaXNzaW9uJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzQnlTdWJtaXNzaW9uQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdlbnZpcm9ubWVudCcpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgZW52aXJvbm1lbnQnKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvZW52aXJvbm1lbnQke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGFuYWx5dGljc0J5RW52aXJvbm1lbnRDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3F1ZXVlJylcbiAgICAuZGVzY3JpcHRpb24oJ0Nvc3QgZ3JvdXBlZCBieSBxdWV1ZScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9xdWV1ZSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzQnlRdWV1ZUNvbHVtbnMpXG59KVxuXG5hZGRDb21tb25PcHRpb25zKFxuICBjb3N0c0NvbW1hbmRcbiAgICAuY29tbWFuZCgnaW5zdGFuY2UtdHlwZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgRUMyIGluc3RhbmNlIHR5cGUgYW5kIG1hcmtldCB0eXBlJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2Nvc3RzL2luc3RhbmNlLXR5cGUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGFuYWx5dGljc0J5SW5zdGFuY2VUeXBlQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdlbmdpbmUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29zdCBncm91cGVkIGJ5IGVuZ2luZScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9lbmdpbmUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGNvc3RzQnlFbmdpbmVDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ2V4ZWN1dGlvbi1tb2RlJylcbiAgICAuZGVzY3JpcHRpb24oJ0Nvc3QgZ3JvdXBlZCBieSBleGVjdXRpb24gbW9kZSAoc3BvdCAvIG9uLWRlbWFuZCknKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvZXhlY3V0aW9uLW1vZGUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGNvc3RzQnlFeGVjdXRpb25Nb2RlQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdvdmVyLXRpbWUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29zdCBidWNrZXRlZCBieSB0aW1lIHBlcmlvZCcpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWludGVydmFsIDxpbnRlcnZhbD4nLCAnVGltZSBidWNrZXQgc2l6ZScpLmNob2ljZXMoWydkYXknLCAnd2VlaycsICdtb250aCddKS5kZWZhdWx0KCdkYXknKSlcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHsgaW50ZXJ2YWw6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBidWlsZFBhcmFtcyhvcHRzKVxuICBwYXJhbXMuc2V0KCdpbnRlcnZhbCcsIG9wdHMuaW50ZXJ2YWwpXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvb3Zlci10aW1lJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzT3ZlclRpbWVDb2x1bW5zKVxufSlcblxuY29zdHNDb21tYW5kXG4gIC5jb21tYW5kKCdzeW5jJylcbiAgLmRlc2NyaXB0aW9uKCdUcmlnZ2VyIGEgQ1VSIGFjdHVhbC1jb3N0IHN5bmMnKVxuICAuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybCgnL2Nvc3RzL3N5bmMnKSwgeyBtZXRob2Q6ICdQT1NUJyB9KSBhcyB7IGpvYklkOiBzdHJpbmcgfVxuICAgIGNvbnNvbGUubG9nKGBTeW5jIGpvYiBlbnF1ZXVlZDogJHtkYXRhLmpvYklkfWApXG4gIH0pXG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.workflowVersionCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const auth_1 = require("../auth");
|
|
6
|
+
const format_js_1 = require("../format.js");
|
|
7
|
+
exports.workflowVersionCommand = new commander_1.Command('workflow-version')
|
|
8
|
+
.description('Manage workflow versions');
|
|
9
|
+
exports.workflowVersionCommand
|
|
10
|
+
.command('list <workflow-name>')
|
|
11
|
+
.description('List all versions of a workflow')
|
|
12
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
13
|
+
.action(async (workflowName, opts) => {
|
|
14
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/workflows/${workflowName}/versions`));
|
|
15
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.workflowVersionColumns);
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy93b3JrZmxvdy12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUEyQztBQUMzQyxrQ0FBMkM7QUFDM0MsNENBQXNGO0FBRXpFLFFBQUEsc0JBQXNCLEdBQUcsSUFBSSxtQkFBTyxDQUFDLGtCQUFrQixDQUFDO0tBQ2xFLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO0FBRTFDLDhCQUFzQjtLQUNuQixPQUFPLENBQUMsc0JBQXNCLENBQUM7S0FDL0IsV0FBVyxDQUFDLGlDQUFpQyxDQUFDO0tBQzlDLFNBQVMsQ0FBQyxJQUFJLGtCQUFNLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5RyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQW9CLEVBQUUsSUFBOEIsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxnQkFBUyxFQUFDLElBQUEsYUFBTSxFQUFDLGNBQWMsWUFBWSxXQUFXLENBQUMsQ0FBeUIsQ0FBQTtJQUNuRyxJQUFBLHdCQUFZLEVBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGtDQUFzQixDQUFDLENBQUE7QUFDL0YsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBPcHRpb24gfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgeyBhcGlVcmwsIGZldGNoSnNvbiB9IGZyb20gJy4uL2F1dGgnXG5pbXBvcnQgeyBmb3JtYXRPdXRwdXQsIHdvcmtmbG93VmVyc2lvbkNvbHVtbnMsIHR5cGUgT3V0cHV0Rm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0LmpzJ1xuXG5leHBvcnQgY29uc3Qgd29ya2Zsb3dWZXJzaW9uQ29tbWFuZCA9IG5ldyBDb21tYW5kKCd3b3JrZmxvdy12ZXJzaW9uJylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2Ugd29ya2Zsb3cgdmVyc2lvbnMnKVxuXG53b3JrZmxvd1ZlcnNpb25Db21tYW5kXG4gIC5jb21tYW5kKCdsaXN0IDx3b3JrZmxvdy1uYW1lPicpXG4gIC5kZXNjcmlwdGlvbignTGlzdCBhbGwgdmVyc2lvbnMgb2YgYSB3b3JrZmxvdycpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jICh3b3JrZmxvd05hbWU6IHN0cmluZywgb3B0czogeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC93b3JrZmxvd3MvJHt3b3JrZmxvd05hbWV9L3ZlcnNpb25zYCkpIGFzIHsgaXRlbXM6IHVua25vd25bXSB9XG4gICAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIHdvcmtmbG93VmVyc2lvbkNvbHVtbnMpXG4gIH0pXG4iXX0=
|
package/dist/format.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ interface ColumnDef {
|
|
|
6
6
|
}
|
|
7
7
|
export declare function formatOutput(data: unknown, format: OutputFormat, columns: ColumnDef[]): void;
|
|
8
8
|
export declare const workflowColumns: ColumnDef[];
|
|
9
|
+
export declare const workflowVersionColumns: ColumnDef[];
|
|
9
10
|
export declare const submissionColumns: ColumnDef[];
|
|
10
11
|
export declare const environmentColumns: ColumnDef[];
|
|
11
12
|
export declare const queueColumns: ColumnDef[];
|
|
@@ -26,4 +27,6 @@ export declare const analyticsByEnvironmentColumns: ColumnDef[];
|
|
|
26
27
|
export declare const analyticsByQueueColumns: ColumnDef[];
|
|
27
28
|
export declare const analyticsByInstanceTypeColumns: ColumnDef[];
|
|
28
29
|
export declare const analyticsOverTimeColumns: ColumnDef[];
|
|
30
|
+
export declare const costsByEngineColumns: ColumnDef[];
|
|
31
|
+
export declare const costsByExecutionModeColumns: ColumnDef[];
|
|
29
32
|
export {};
|
package/dist/format.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.analyticsOverTimeColumns = exports.analyticsByInstanceTypeColumns = exports.analyticsByQueueColumns = exports.analyticsByEnvironmentColumns = exports.analyticsBySubmissionColumns = exports.analyticsSummaryColumns = exports.tenantColumns = exports.pluginColumns = exports.imageColumns = exports.activityLogColumns = exports.instanceColumns = exports.registryColumns = exports.taskLogColumns = exports.submissionLogColumns = exports.taskColumns = exports.storageColumns = exports.engineColumns = exports.queueColumns = exports.environmentColumns = exports.submissionColumns = exports.workflowColumns = void 0;
|
|
6
|
+
exports.costsByExecutionModeColumns = exports.costsByEngineColumns = exports.analyticsOverTimeColumns = exports.analyticsByInstanceTypeColumns = exports.analyticsByQueueColumns = exports.analyticsByEnvironmentColumns = exports.analyticsBySubmissionColumns = exports.analyticsSummaryColumns = exports.tenantColumns = exports.pluginColumns = exports.imageColumns = exports.activityLogColumns = exports.instanceColumns = exports.registryColumns = exports.taskLogColumns = exports.submissionLogColumns = exports.taskColumns = exports.storageColumns = exports.engineColumns = exports.queueColumns = exports.environmentColumns = exports.submissionColumns = exports.workflowVersionColumns = exports.workflowColumns = void 0;
|
|
7
7
|
exports.formatDateTime = formatDateTime;
|
|
8
8
|
exports.formatOutput = formatOutput;
|
|
9
9
|
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
@@ -53,6 +53,12 @@ exports.workflowColumns = [
|
|
|
53
53
|
{ header: 'Latest', value: r => r.latest },
|
|
54
54
|
{ header: 'Created At', value: r => formatDateTime(r.createdAt) },
|
|
55
55
|
];
|
|
56
|
+
exports.workflowVersionColumns = [
|
|
57
|
+
{ header: 'Version', value: r => r.version },
|
|
58
|
+
{ header: 'File Type', value: r => r.fileType },
|
|
59
|
+
{ header: 'Latest', value: r => r.latest },
|
|
60
|
+
{ header: 'Created At', value: r => formatDateTime(r.createdAt) },
|
|
61
|
+
];
|
|
56
62
|
exports.submissionColumns = [
|
|
57
63
|
{ header: 'ID', value: r => r.submissionId },
|
|
58
64
|
{ header: 'Status', value: r => r.status },
|
|
@@ -222,4 +228,17 @@ exports.analyticsOverTimeColumns = [
|
|
|
222
228
|
{ header: 'Actual Total ($)', value: r => r.actualTotalCost },
|
|
223
229
|
{ header: 'Instances', value: r => r.instanceCount },
|
|
224
230
|
];
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSx3Q0FNQztBQWtCRCxvQ0FvQkM7QUE5Q0QsNERBQThCO0FBRTlCLFNBQWdCLGNBQWMsQ0FBQyxLQUFjO0lBQzNDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDckUsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUM5SSxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsRUFBVztJQUNqQyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVELE1BQU0s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RSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDNUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7Q0FDbEUsQ0FBQTtBQUVZLFFBQUEsaUJBQWlCLEdBQWdCO0lBQzVDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQzVDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQ2hFLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ2xELEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFO0lBQ3BELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFL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QUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUNuRCxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtDQUNsRSxDQUFBO0FBRVksUUFBQSxXQUFXLEdBQWdCO0lBQ3RDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO0lBQ3pDLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQzdDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQ2hFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFD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TUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFHLENBQUMsQ0FBQyxTQUFxQyxFQUFFLElBQWdDLEVBQUUsS0FBSyxJQUFLLENBQUMsQ0FBQyxTQUFxQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQ25MLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQ25ELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO0NBQ2xFLENBQUE7QUFFWSxRQUFBLFlBQVksR0FBZ0I7SUFDdkMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDbEMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7SUFDcEMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDbkQsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Q0FDaEUsQ0FBQTtBQUVZLFFBQUEsYUFBYSxHQUFnQjtJQUN4QyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNsQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtJQUN0QyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtJQUN0QyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQyxDQUFDLFdBQThDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxhQUFhLEVBQUU7SUFDakgsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7SUFDbkQsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7Q0FDbEUsQ0FBQTtBQUVZLFFBQUEsYUFBYSxHQUFnQjtJQUN4QyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNsQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtJQUN0QyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRTtJQUN2RCxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtDQUNsRSxDQUFBO0FBRVksUUFBQSx1QkFBdUIsR0FBZ0I7SUFDbEQsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixFQUFFO0lBQ3pFLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUU7SUFDL0QsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRTtJQUMvRCxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7SUFDOUQsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtJQUM3RCxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUNwRCxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtDQUN6RCxDQUFBO0FBRVksUUFBQSw0QkFBNEIsR0FBZ0I7SUFDdkQsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUU7SUFDdkQsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRTtJQUNwRCxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7SUFDOUQsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtJQUM3RCxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtDQUNyRCxDQUFBO0FBRVksUUFBQSw2QkFBNkIsR0FBZ0I7SUFDeEQsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUN6RCxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtJQUNqRCxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7SUFDOUQsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtJQUM3RCxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtDQUNyRCxDQUFBO0FBRVksUUFBQSx1QkFBdUIsR0FBZ0I7SUFDbEQsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDN0MsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7SUFDM0MsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO0lBQzlELEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7SUFDN0QsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUU7Q0FDckQsQ0FBQTtBQUVZLFFBQUEsOEJBQThCLEdBQWdCO0lBQ3pELEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzlDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtJQUM5RCxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFO0lBQzdELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0NBQ3JELENBQUE7QUFFWSxRQUFBLHdCQUF3QixHQUFnQjtJQUNuRCxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7SUFDOUQsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtJQUM3RCxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtDQUNyRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRhYmxlIGZyb20gJ2NsaS10YWJsZTMnXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlVGltZSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykgcmV0dXJuICcnO1xuICBjb25zdCBkID0gbmV3IERhdGUoU3RyaW5nKHZhbHVlKSk7XG4gIGlmIChpc05hTihkLmdldFRpbWUoKSkpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBTdHJpbmcobikucGFkU3RhcnQoMiwgJzAnKTtcbiAgcmV0dXJuIGAke2QuZ2V0RnVsbFllYXIoKX0tJHtwYWQoZC5nZXRNb250aCgpICsgMSl9LSR7cGFkKGQuZ2V0RGF0ZSgpKX0gJHtwYWQoZC5nZXRIb3VycygpKX06JHtwYWQoZC5nZXRNaW51dGVzKCkpfToke3BhZChkLmdldFNlY29uZHMoKSl9YDtcbn1cblxuZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24obXM6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAobXMgPT09IG51bGwgfHwgbXMgPT09IHVuZGVmaW5lZCB8fCBtcyA9PT0gJycpIHJldHVybiAnJztcbiAgY29uc3QgdG90YWxTZWMgPSBNYXRoLmZsb29yKE51bWJlcihtcykgLyAxMDAwKTtcbiAgY29uc3QgaCA9IE1hdGguZmxvb3IodG90YWxTZWMgLyAzNjAwKTtcbiAgY29uc3QgbSA9IE1hdGguZmxvb3IoKHRvdGFsU2VjICUgMzYwMCkgLyA2MCk7XG4gIGNvbnN0IHMgPSB0b3RhbFNlYyAlIDYwO1xuICByZXR1cm4gYCR7U3RyaW5nKGgpLnBhZFN0YXJ0KDIsICcwJyl9OiR7U3RyaW5nKG0pLnBhZFN0YXJ0KDIsICcwJyl9OiR7U3RyaW5nKHMpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbn1cblxuZXhwb3J0IHR5cGUgT3V0cHV0Rm9ybWF0ID0gJ3RhYmxlJyB8ICdqc29uJyB8ICdjc3YnXG5cbmludGVyZmFjZSBDb2x1bW5EZWYge1xuICBoZWFkZXI6IHN0cmluZ1xuICB2YWx1ZTogKGl0ZW06IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB1bmtub3duXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRPdXRwdXQoZGF0YTogdW5rbm93biwgZm9ybWF0OiBPdXRwdXRGb3JtYXQsIGNvbHVtbnM6IENvbHVtbkRlZltdKTogdm9pZCB7XG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cbiAgY29uc3QgaGVhZGVycyA9IGNvbHVtbnMubWFwKGMgPT4gYy5oZWFkZXIpXG4gIGNvbnN0IHJvd3MgPSBpdGVtcy5tYXAoaXRlbSA9PlxuICAgIGNvbHVtbnMubWFwKGMgPT4ge1xuICAgICAgY29uc3QgdmFsID0gYy52YWx1ZShpdGVtIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbClcbiAgICB9KVxuICApXG5cbiAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpXG4gIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnY3N2Jykge1xuICAgIGNvbnNvbGUubG9nKGhlYWRlcnMuam9pbignLCcpKVxuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4gY29uc29sZS5sb2cocm93Lm1hcCh2ID0+IGBcIiR7di5yZXBsYWNlKC9cIi9nLCAnXCJcIicpfVwiYCkuam9pbignLCcpKSlcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7IGhlYWQ6IGhlYWRlcnMgfSlcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHRhYmxlLnB1c2gocm93KSlcbiAgICBjb25zb2xlLmxvZyh0YWJsZS50b1N0cmluZygpKVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB3b3JrZmxvd0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdWZXJzaW9uJywgdmFsdWU6IHIgPT4gci52ZXJzaW9uIH0sXG4gIHsgaGVhZGVyOiAnRW5naW5lJywgdmFsdWU6IHIgPT4gci5lbmdpbmUgfSxcbiAgeyBoZWFkZXI6ICdGaWxlIFR5cGUnLCB2YWx1ZTogciA9PiByLmZpbGVUeXBlIH0sXG4gIHsgaGVhZGVyOiAnTGF0ZXN0JywgdmFsdWU6IHIgPT4gci5sYXRlc3QgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBzdWJtaXNzaW9uQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnRHVyYXRpb24nLCB2YWx1ZTogciA9PiBmb3JtYXREdXJhdGlvbihyLmR1cmF0aW9uTXMpIH0sXG4gIHsgaGVhZGVyOiAnV29ya2Zsb3cnLCB2YWx1ZTogciA9PiByLndvcmtmbG93TmFtZSB9LFxuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLndvcmtmbG93VmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZScsIHZhbHVlOiByID0+IChyLmVuZ2luZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW5naW5lSWQgfSxcbiAgeyBoZWFkZXI6ICdRdWV1ZScsIHZhbHVlOiByID0+IChyLnF1ZXVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5xdWV1ZUlkIH0sXG4gIHsgaGVhZGVyOiAnT3V0cHV0JywgdmFsdWU6IHIgPT4gci5vdXRwdXQgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudENvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdDbG91ZCBJRCcsIHZhbHVlOiByID0+IHIuY2xvdWRJZCB9LFxuICB7IGhlYWRlcjogJ1JlZ2lvbicsIHZhbHVlOiByID0+IHIuY2xvdWRSZWdpb24gfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHF1ZXVlQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdNb2RlJywgdmFsdWU6IHIgPT4gci5leGVjdXRpb25Nb2RlIH0sXG4gIHsgaGVhZGVyOiAnTWF4IHZDUFVzJywgdmFsdWU6IHIgPT4gci5tYXh2Q3B1cyB9LFxuICB7IGhlYWRlcjogJ1N0b3JhZ2UgR0InLCB2YWx1ZTogciA9PiByLnN0b3JhZ2VTaXplR2IgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGVuZ2luZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiByID0+IChyLmVudmlyb25tZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnRW5naW5lJywgdmFsdWU6IHIgPT4gci5lbmdpbmUgfSxcbiAgeyBoZWFkZXI6ICdFbmdpbmUgVmVyc2lvbicsIHZhbHVlOiByID0+IHIuZW5naW5lVmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3Qgc3RvcmFnZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiByID0+IChyLmVudmlyb25tZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnUGVybWlzc2lvbiBNb2RlJywgdmFsdWU6IHIgPT4gci5wZXJtaXNzaW9uTW9kZSB9LFxuICB7IGhlYWRlcjogJ0J1Y2tldCBOYW1lJywgdmFsdWU6IHIgPT4gci5idWNrZXROYW1lIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCB0YXNrQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnSm9iIElEJywgdmFsdWU6IHIgPT4gci5qb2JJZCB9LFxuICB7IGhlYWRlcjogJ1N1Ym1pc3Npb24gSUQnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ0pvYiBOYW1lJywgdmFsdWU6IHIgPT4gci5qb2JOYW1lIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMgUmVhc29uJywgdmFsdWU6IHIgPT4gci5zdGF0dXNSZWFzb24gfSxcbiAgeyBoZWFkZXI6ICdEdXJhdGlvbicsIHZhbHVlOiByID0+IGZvcm1hdER1cmF0aW9uKHIuZHVyYXRpb25NcykgfSxcbiAgeyBoZWFkZXI6ICdFeGl0IENvZGUnLCB2YWx1ZTogciA9PiByLmV4aXRDb2RlIH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2UgVHlwZScsIHZhbHVlOiByID0+IChyLmluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lmluc3RhbmNlVHlwZSA/PyBudWxsIH0sXG4gIHsgaGVhZGVyOiAnU3RhcnRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuc3RhcnRlZEF0KSB9LFxuICB7IGhlYWRlcjogJ1N0b3BwZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLnN0b3BwZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHN1Ym1pc3Npb25Mb2dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdUaW1lc3RhbXAnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLnRpbWVzdGFtcCkgfSxcbiAgeyBoZWFkZXI6ICdNZXNzYWdlJywgdmFsdWU6IHIgPT4gci5tZXNzYWdlIH0sXG5dXG5cbmV4cG9ydCBjb25zdCB0YXNrTG9nQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSm9iIE5hbWUnLCB2YWx1ZTogciA9PiByLmpvYk5hbWUgfSxcbiAgeyBoZWFkZXI6ICdUaW1lc3RhbXAnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLnRpbWVzdGFtcCkgfSxcbiAgeyBoZWFkZXI6ICdNZXNzYWdlJywgdmFsdWU6IHIgPT4gci5tZXNzYWdlIH0sXG5dXG5cbmV4cG9ydCBjb25zdCByZWdpc3RyeUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdNdXRhYmlsaXR5JywgdmFsdWU6IHIgPT4gci5pbWFnZVRhZ011dGFiaWxpdHkgfSxcbiAgeyBoZWFkZXI6ICdSZXBvc2l0b3J5IFVSSScsIHZhbHVlOiByID0+IHIucmVwb3NpdG9yeVVyaSB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgaW5zdGFuY2VDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdFQzIgSW5zdGFuY2UnLCB2YWx1ZTogciA9PiByLmVjMkluc3RhbmNlSWQgfSxcbiAgeyBoZWFkZXI6ICdUeXBlJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdNYXJrZXQnLCB2YWx1ZTogciA9PiByLm1hcmtldFR5cGUgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0R1cmF0aW9uJywgdmFsdWU6IHIgPT4gZm9ybWF0RHVyYXRpb24oci5kdXJhdGlvbk1zKSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gSW5zdGFuY2UgKCQpJywgdmFsdWU6IHIgPT4gci5lc3RpbWF0ZWRJbnN0YW5jZUNvc3QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIEVCUyAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZEVic0Nvc3QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIuZXN0aW1hdGVkVG90YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIEluc3RhbmNlICgkKScsIHZhbHVlOiByID0+IHIuYWN0dWFsSW5zdGFuY2VDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIEVCUyAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbEVic0Nvc3QgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gci5hY3R1YWxUb3RhbENvc3QgfSxcbiAgeyBoZWFkZXI6ICdMYXVuY2ggVGltZScsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIubGF1bmNoVGltZSkgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCBJRCcsIHZhbHVlOiByID0+IHIuZW52aXJvbm1lbnRJZCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYWN0aXZpdHlMb2dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdVc2VyJywgdmFsdWU6IHIgPT4gKChyLnByaW5jaXBhbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LnVzZXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5lbWFpbCA/PyAoci5wcmluY2lwYWwgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5pZCA/PyByLnByaW5jaXBhbElkIH0sXG4gIHsgaGVhZGVyOiAnQWN0aW9uJywgdmFsdWU6IHIgPT4gci5hY3Rpb24gfSxcbiAgeyBoZWFkZXI6ICdFbnRpdHkgVHlwZScsIHZhbHVlOiByID0+IHIuZW50aXR5VHlwZSB9LFxuICB7IGhlYWRlcjogJ0VudGl0eSBJRCcsIHZhbHVlOiByID0+IHIuZW50aXR5SWQgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBpbWFnZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ1RhZycsIHZhbHVlOiByID0+IHIudGFnIH0sXG4gIHsgaGVhZGVyOiAnRGlnZXN0JywgdmFsdWU6IHIgPT4gci5kaWdlc3QgfSxcbiAgeyBoZWFkZXI6ICdTaXplIChieXRlcyknLCB2YWx1ZTogciA9PiByLnNpemVCeXRlcyB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnSW1hZ2UgVVJJJywgdmFsdWU6IHIgPT4gci5pbWFnZVVyaSB9LFxuICB7IGhlYWRlcjogJ1B1c2hlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIucHVzaGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBwbHVnaW5Db2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnVHlwZScsIHZhbHVlOiByID0+IHIudHlwZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0xCIEROUycsIHZhbHVlOiByID0+IHIubG9hZEJhbGFuY2VyRG5zIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgdGVuYW50Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0NvbnRhY3QgRW1haWwnLCB2YWx1ZTogciA9PiByLmNvbnRhY3RFbWFpbCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzU3VtbWFyeUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0VzdC4gSW5zdGFuY2UgKCQpJywgdmFsdWU6IHIgPT4gci50b3RhbEVzdGltYXRlZEluc3RhbmNlQ29zdCB9LFxuICB7IGhlYWRlcjogJ0VzdC4gRUJTICgkKScsIHZhbHVlOiByID0+IHIudG90YWxFc3RpbWF0ZWRFYnNDb3N0IH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBFQ1MgKCQpJywgdmFsdWU6IHIgPT4gci50b3RhbEVzdGltYXRlZEVjc0Nvc3QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIudG90YWxFc3RpbWF0ZWRDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIudG90YWxBY3R1YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG4gIHsgaGVhZGVyOiAnU3VibWlzc2lvbnMnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25Db3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlTdWJtaXNzaW9uQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnU3VibWlzc2lvbiBJRCcsIHZhbHVlOiByID0+IHIuc3VibWlzc2lvbklkIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdWJtaXNzaW9uU3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlFbnZpcm9ubWVudENvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50IElEJywgdmFsdWU6IHIgPT4gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIuZW52aXJvbm1lbnROYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlRdWV1ZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1F1ZXVlIElEJywgdmFsdWU6IHIgPT4gci5xdWV1ZUlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIucXVldWVOYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlJbnN0YW5jZVR5cGVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZSBUeXBlJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdNYXJrZXQnLCB2YWx1ZTogciA9PiByLm1hcmtldFR5cGUgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIuZXN0aW1hdGVkVG90YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIuYWN0dWFsVG90YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NPdmVyVGltZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1BlcmlvZCcsIHZhbHVlOiByID0+IHIucGVyaW9kIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuIl19
|
|
231
|
+
exports.costsByEngineColumns = [
|
|
232
|
+
{ header: 'Engine ID', value: r => r.engineId },
|
|
233
|
+
{ header: 'Name', value: r => r.engineName },
|
|
234
|
+
{ header: 'Est. Total ($)', value: r => r.estimatedTotalCost },
|
|
235
|
+
{ header: 'Actual Total ($)', value: r => r.actualTotalCost },
|
|
236
|
+
{ header: 'Instances', value: r => r.instanceCount },
|
|
237
|
+
];
|
|
238
|
+
exports.costsByExecutionModeColumns = [
|
|
239
|
+
{ header: 'Execution Mode', value: r => r.executionMode },
|
|
240
|
+
{ header: 'Est. Total ($)', value: r => r.estimatedTotalCost },
|
|
241
|
+
{ header: 'Actual Total ($)', value: r => r.actualTotalCost },
|
|
242
|
+
{ header: 'Instances', value: r => r.instanceCount },
|
|
243
|
+
];
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSx3Q0FNQztBQWtCRCxvQ0FvQkM7QUE5Q0QsNERBQThCO0FBRTlCLFNBQWdCLGNBQWMsQ0FBQyxLQUFjO0lBQzNDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDckUsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUM5SSxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsRUFBVztJQUNqQyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVELE1BQU0s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Q0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtJQUN0QyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUM3QyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtDQUNsRSxDQUFBO0FBRVksUUFBQSxZQUFZLEdBQWdCO0lBQ3ZDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO0lBQ3RDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsV0FBOEMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUNqSCxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENB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QUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFO0lBQ3BDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO0lBQ25ELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0NBQ2hFLENBQUE7QUFFWSxRQUFBLGFBQWEsR0FBZ0I7SUFDeEMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDbEMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7SUFDdEMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7SUFDdEMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUMsQ0FBQyxXQUE4QyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFO0lBQ2pILEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFO0lBQ25ELEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO0NBQ2xFLENBQUE7QUFFWSxRQUFBLGFBQWEsR0FBZ0I7SUFDeEMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDbEMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7SUFDdEMsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUU7SUFDdkQsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUU7Q0FDbEUsQ0FBQTtBQUVZLFFBQUEsdUJBQXVCLEdBQWdCO0lBQ2xELEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsRUFBRTtJQUN6RSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFO0lBQy9ELEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUU7SUFDL0QsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO0lBQzlELEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7SUFDN0QsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUU7SUFDcEQsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7Q0FDekQsQ0FBQTtBQUVZLFFBQUEsNEJBQTRCLEdBQWdCO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUU7SUFDcEQsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO0lBQzlELEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7SUFDN0QsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENB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QUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzVDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtJQUM5RCxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFO0lBQzdELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0NBQ3JELENBQUE7QUFFWSxRQUFBLDJCQUEyQixHQUFnQjtJQUN0RCxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0lBQ3pELEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTtJQUM5RCxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFO0lBQzdELEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0NBQ3JELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGFibGUgZnJvbSAnY2xpLXRhYmxlMydcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVUaW1lKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gJyc7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZShTdHJpbmcodmFsdWUpKTtcbiAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIGNvbnN0IHBhZCA9IChuOiBudW1iZXIpID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICByZXR1cm4gYCR7ZC5nZXRGdWxsWWVhcigpfS0ke3BhZChkLmdldE1vbnRoKCkgKyAxKX0tJHtwYWQoZC5nZXREYXRlKCkpfSAke3BhZChkLmdldEhvdXJzKCkpfToke3BhZChkLmdldE1pbnV0ZXMoKSl9OiR7cGFkKGQuZ2V0U2Vjb25kcygpKX1gO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREdXJhdGlvbihtczogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmIChtcyA9PT0gbnVsbCB8fCBtcyA9PT0gdW5kZWZpbmVkIHx8IG1zID09PSAnJykgcmV0dXJuICcnO1xuICBjb25zdCB0b3RhbFNlYyA9IE1hdGguZmxvb3IoTnVtYmVyKG1zKSAvIDEwMDApO1xuICBjb25zdCBoID0gTWF0aC5mbG9vcih0b3RhbFNlYyAvIDM2MDApO1xuICBjb25zdCBtID0gTWF0aC5mbG9vcigodG90YWxTZWMgJSAzNjAwKSAvIDYwKTtcbiAgY29uc3QgcyA9IHRvdGFsU2VjICUgNjA7XG4gIHJldHVybiBgJHtTdHJpbmcoaCkucGFkU3RhcnQoMiwgJzAnKX06JHtTdHJpbmcobSkucGFkU3RhcnQoMiwgJzAnKX06JHtTdHJpbmcocykucGFkU3RhcnQoMiwgJzAnKX1gO1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXRGb3JtYXQgPSAndGFibGUnIHwgJ2pzb24nIHwgJ2NzdidcblxuaW50ZXJmYWNlIENvbHVtbkRlZiB7XG4gIGhlYWRlcjogc3RyaW5nXG4gIHZhbHVlOiAoaXRlbTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHVua25vd25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE91dHB1dChkYXRhOiB1bmtub3duLCBmb3JtYXQ6IE91dHB1dEZvcm1hdCwgY29sdW1uczogQ29sdW1uRGVmW10pOiB2b2lkIHtcbiAgY29uc3QgaXRlbXMgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXVxuICBjb25zdCBoZWFkZXJzID0gY29sdW1ucy5tYXAoYyA9PiBjLmhlYWRlcilcbiAgY29uc3Qgcm93cyA9IGl0ZW1zLm1hcChpdGVtID0+XG4gICAgY29sdW1ucy5tYXAoYyA9PiB7XG4gICAgICBjb25zdCB2YWwgPSBjLnZhbHVlKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgICByZXR1cm4gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsKVxuICAgIH0pXG4gIClcblxuICBpZiAoZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSlcbiAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdjc3YnKSB7XG4gICAgY29uc29sZS5sb2coaGVhZGVycy5qb2luKCcsJykpXG4gICAgcm93cy5mb3JFYWNoKHJvdyA9PiBjb25zb2xlLmxvZyhyb3cubWFwKHYgPT4gYFwiJHt2LnJlcGxhY2UoL1wiL2csICdcIlwiJyl9XCJgKS5qb2luKCcsJykpKVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHsgaGVhZDogaGVhZGVycyB9KVxuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4gdGFibGUucHVzaChyb3cpKVxuICAgIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdvcmtmbG93Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLnZlcnNpb24gfSxcbiAgeyBoZWFkZXI6ICdFbmdpbmUnLCB2YWx1ZTogciA9PiByLmVuZ2luZSB9LFxuICB7IGhlYWRlcjogJ0ZpbGUgVHlwZScsIHZhbHVlOiByID0+IHIuZmlsZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdMYXRlc3QnLCB2YWx1ZTogciA9PiByLmxhdGVzdCB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHdvcmtmbG93VmVyc2lvbkNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLnZlcnNpb24gfSxcbiAgeyBoZWFkZXI6ICdGaWxlIFR5cGUnLCB2YWx1ZTogciA9PiByLmZpbGVUeXBlIH0sXG4gIHsgaGVhZGVyOiAnTGF0ZXN0JywgdmFsdWU6IHIgPT4gci5sYXRlc3QgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBzdWJtaXNzaW9uQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnRHVyYXRpb24nLCB2YWx1ZTogciA9PiBmb3JtYXREdXJhdGlvbihyLmR1cmF0aW9uTXMpIH0sXG4gIHsgaGVhZGVyOiAnV29ya2Zsb3cnLCB2YWx1ZTogciA9PiByLndvcmtmbG93TmFtZSB9LFxuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLndvcmtmbG93VmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZScsIHZhbHVlOiByID0+IChyLmVuZ2luZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW5naW5lSWQgfSxcbiAgeyBoZWFkZXI6ICdRdWV1ZScsIHZhbHVlOiByID0+IChyLnF1ZXVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5xdWV1ZUlkIH0sXG4gIHsgaGVhZGVyOiAnT3V0cHV0JywgdmFsdWU6IHIgPT4gci5vdXRwdXQgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudENvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdDbG91ZCBJRCcsIHZhbHVlOiByID0+IHIuY2xvdWRJZCB9LFxuICB7IGhlYWRlcjogJ1JlZ2lvbicsIHZhbHVlOiByID0+IHIuY2xvdWRSZWdpb24gfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHF1ZXVlQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdNb2RlJywgdmFsdWU6IHIgPT4gci5leGVjdXRpb25Nb2RlIH0sXG4gIHsgaGVhZGVyOiAnTWF4IHZDUFVzJywgdmFsdWU6IHIgPT4gci5tYXh2Q3B1cyB9LFxuICB7IGhlYWRlcjogJ1N0b3JhZ2UgR0InLCB2YWx1ZTogciA9PiByLnN0b3JhZ2VTaXplR2IgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGVuZ2luZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiByID0+IChyLmVudmlyb25tZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnRW5naW5lJywgdmFsdWU6IHIgPT4gci5lbmdpbmUgfSxcbiAgeyBoZWFkZXI6ICdFbmdpbmUgVmVyc2lvbicsIHZhbHVlOiByID0+IHIuZW5naW5lVmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3Qgc3RvcmFnZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiByID0+IChyLmVudmlyb25tZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnUGVybWlzc2lvbiBNb2RlJywgdmFsdWU6IHIgPT4gci5wZXJtaXNzaW9uTW9kZSB9LFxuICB7IGhlYWRlcjogJ0J1Y2tldCBOYW1lJywgdmFsdWU6IHIgPT4gci5idWNrZXROYW1lIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCB0YXNrQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnSm9iIElEJywgdmFsdWU6IHIgPT4gci5qb2JJZCB9LFxuICB7IGhlYWRlcjogJ1N1Ym1pc3Npb24gSUQnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ0pvYiBOYW1lJywgdmFsdWU6IHIgPT4gci5qb2JOYW1lIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMgUmVhc29uJywgdmFsdWU6IHIgPT4gci5zdGF0dXNSZWFzb24gfSxcbiAgeyBoZWFkZXI6ICdEdXJhdGlvbicsIHZhbHVlOiByID0+IGZvcm1hdER1cmF0aW9uKHIuZHVyYXRpb25NcykgfSxcbiAgeyBoZWFkZXI6ICdFeGl0IENvZGUnLCB2YWx1ZTogciA9PiByLmV4aXRDb2RlIH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2UgVHlwZScsIHZhbHVlOiByID0+IChyLmluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lmluc3RhbmNlVHlwZSA/PyBudWxsIH0sXG4gIHsgaGVhZGVyOiAnU3RhcnRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuc3RhcnRlZEF0KSB9LFxuICB7IGhlYWRlcjogJ1N0b3BwZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLnN0b3BwZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHN1Ym1pc3Npb25Mb2dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdUaW1lc3RhbXAnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLnRpbWVzdGFtcCkgfSxcbiAgeyBoZWFkZXI6ICdNZXNzYWdlJywgdmFsdWU6IHIgPT4gci5tZXNzYWdlIH0sXG5dXG5cbmV4cG9ydCBjb25zdCB0YXNrTG9nQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSm9iIE5hbWUnLCB2YWx1ZTogciA9PiByLmpvYk5hbWUgfSxcbiAgeyBoZWFkZXI6ICdUaW1lc3RhbXAnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLnRpbWVzdGFtcCkgfSxcbiAgeyBoZWFkZXI6ICdNZXNzYWdlJywgdmFsdWU6IHIgPT4gci5tZXNzYWdlIH0sXG5dXG5cbmV4cG9ydCBjb25zdCByZWdpc3RyeUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdNdXRhYmlsaXR5JywgdmFsdWU6IHIgPT4gci5pbWFnZVRhZ011dGFiaWxpdHkgfSxcbiAgeyBoZWFkZXI6ICdSZXBvc2l0b3J5IFVSSScsIHZhbHVlOiByID0+IHIucmVwb3NpdG9yeVVyaSB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgaW5zdGFuY2VDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdFQzIgSW5zdGFuY2UnLCB2YWx1ZTogciA9PiByLmVjMkluc3RhbmNlSWQgfSxcbiAgeyBoZWFkZXI6ICdUeXBlJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdNYXJrZXQnLCB2YWx1ZTogciA9PiByLm1hcmtldFR5cGUgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0R1cmF0aW9uJywgdmFsdWU6IHIgPT4gZm9ybWF0RHVyYXRpb24oci5kdXJhdGlvbk1zKSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gSW5zdGFuY2UgKCQpJywgdmFsdWU6IHIgPT4gci5lc3RpbWF0ZWRJbnN0YW5jZUNvc3QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIEVCUyAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZEVic0Nvc3QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIuZXN0aW1hdGVkVG90YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIEluc3RhbmNlICgkKScsIHZhbHVlOiByID0+IHIuYWN0dWFsSW5zdGFuY2VDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIEVCUyAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbEVic0Nvc3QgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gci5hY3R1YWxUb3RhbENvc3QgfSxcbiAgeyBoZWFkZXI6ICdMYXVuY2ggVGltZScsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIubGF1bmNoVGltZSkgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCBJRCcsIHZhbHVlOiByID0+IHIuZW52aXJvbm1lbnRJZCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYWN0aXZpdHlMb2dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdVc2VyJywgdmFsdWU6IHIgPT4gKChyLnByaW5jaXBhbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LnVzZXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5lbWFpbCA/PyAoci5wcmluY2lwYWwgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5pZCA/PyByLnByaW5jaXBhbElkIH0sXG4gIHsgaGVhZGVyOiAnQWN0aW9uJywgdmFsdWU6IHIgPT4gci5hY3Rpb24gfSxcbiAgeyBoZWFkZXI6ICdFbnRpdHkgVHlwZScsIHZhbHVlOiByID0+IHIuZW50aXR5VHlwZSB9LFxuICB7IGhlYWRlcjogJ0VudGl0eSBJRCcsIHZhbHVlOiByID0+IHIuZW50aXR5SWQgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBpbWFnZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ1RhZycsIHZhbHVlOiByID0+IHIudGFnIH0sXG4gIHsgaGVhZGVyOiAnRGlnZXN0JywgdmFsdWU6IHIgPT4gci5kaWdlc3QgfSxcbiAgeyBoZWFkZXI6ICdTaXplIChieXRlcyknLCB2YWx1ZTogciA9PiByLnNpemVCeXRlcyB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnSW1hZ2UgVVJJJywgdmFsdWU6IHIgPT4gci5pbWFnZVVyaSB9LFxuICB7IGhlYWRlcjogJ1B1c2hlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIucHVzaGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBwbHVnaW5Db2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnVHlwZScsIHZhbHVlOiByID0+IHIudHlwZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0xCIEROUycsIHZhbHVlOiByID0+IHIubG9hZEJhbGFuY2VyRG5zIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgdGVuYW50Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0NvbnRhY3QgRW1haWwnLCB2YWx1ZTogciA9PiByLmNvbnRhY3RFbWFpbCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzU3VtbWFyeUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0VzdC4gSW5zdGFuY2UgKCQpJywgdmFsdWU6IHIgPT4gci50b3RhbEVzdGltYXRlZEluc3RhbmNlQ29zdCB9LFxuICB7IGhlYWRlcjogJ0VzdC4gRUJTICgkKScsIHZhbHVlOiByID0+IHIudG90YWxFc3RpbWF0ZWRFYnNDb3N0IH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBFQ1MgKCQpJywgdmFsdWU6IHIgPT4gci50b3RhbEVzdGltYXRlZEVjc0Nvc3QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIudG90YWxFc3RpbWF0ZWRDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIudG90YWxBY3R1YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG4gIHsgaGVhZGVyOiAnU3VibWlzc2lvbnMnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25Db3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlTdWJtaXNzaW9uQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnU3VibWlzc2lvbiBJRCcsIHZhbHVlOiByID0+IHIuc3VibWlzc2lvbklkIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdWJtaXNzaW9uU3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlFbnZpcm9ubWVudENvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50IElEJywgdmFsdWU6IHIgPT4gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIuZW52aXJvbm1lbnROYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlRdWV1ZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1F1ZXVlIElEJywgdmFsdWU6IHIgPT4gci5xdWV1ZUlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIucXVldWVOYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlJbnN0YW5jZVR5cGVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZSBUeXBlJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdNYXJrZXQnLCB2YWx1ZTogciA9PiByLm1hcmtldFR5cGUgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIuZXN0aW1hdGVkVG90YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IHIuYWN0dWFsVG90YWxDb3N0IH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NPdmVyVGltZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1BlcmlvZCcsIHZhbHVlOiByID0+IHIucGVyaW9kIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgY29zdHNCeUVuZ2luZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0VuZ2luZSBJRCcsIHZhbHVlOiByID0+IHIuZW5naW5lSWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5lbmdpbmVOYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmVzdGltYXRlZFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiByLmFjdHVhbFRvdGFsQ29zdCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgY29zdHNCeUV4ZWN1dGlvbk1vZGVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdFeGVjdXRpb24gTW9kZScsIHZhbHVlOiByID0+IHIuZXhlY3V0aW9uTW9kZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gci5lc3RpbWF0ZWRUb3RhbENvc3QgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gci5hY3R1YWxUb3RhbENvc3QgfSxcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZXMnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlQ291bnQgfSxcbl1cbiJdfQ==
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ const commander_1 = require("commander");
|
|
|
5
5
|
const auth_1 = require("./commands/auth");
|
|
6
6
|
const user_1 = require("./commands/user");
|
|
7
7
|
const workflow_1 = require("./commands/workflow");
|
|
8
|
+
const workflow_version_1 = require("./commands/workflow-version");
|
|
8
9
|
const submission_1 = require("./commands/submission");
|
|
9
10
|
const queue_1 = require("./commands/queue");
|
|
10
11
|
const environment_1 = require("./commands/environment");
|
|
@@ -20,7 +21,7 @@ const activity_log_1 = require("./commands/activity-log");
|
|
|
20
21
|
const api_token_1 = require("./commands/api-token");
|
|
21
22
|
const tenant_1 = require("./commands/tenant");
|
|
22
23
|
const plugin_1 = require("./commands/plugin");
|
|
23
|
-
const
|
|
24
|
+
const costs_1 = require("./commands/costs");
|
|
24
25
|
const errors_1 = require("./errors");
|
|
25
26
|
const program = new commander_1.Command();
|
|
26
27
|
program
|
|
@@ -39,6 +40,7 @@ program.hook('preAction', () => {
|
|
|
39
40
|
program.addCommand(auth_1.authCommand);
|
|
40
41
|
program.addCommand(user_1.userCommand);
|
|
41
42
|
program.addCommand(workflow_1.workflowCommand);
|
|
43
|
+
program.addCommand(workflow_version_1.workflowVersionCommand);
|
|
42
44
|
program.addCommand(submission_1.submissionCommand);
|
|
43
45
|
program.addCommand(queue_1.queueCommand);
|
|
44
46
|
program.addCommand(environment_1.environmentCommand);
|
|
@@ -55,7 +57,7 @@ program.addCommand(activity_log_1.activityLogCommand);
|
|
|
55
57
|
program.addCommand(api_token_1.apiTokenCommand);
|
|
56
58
|
program.addCommand(tenant_1.tenantCommand);
|
|
57
59
|
program.addCommand(plugin_1.pluginCommand);
|
|
58
|
-
program.addCommand(
|
|
60
|
+
program.addCommand(costs_1.costsCommand);
|
|
59
61
|
applyHelpOnNoArgs(program);
|
|
60
62
|
applyExitOverride(program);
|
|
61
63
|
async function main() {
|
|
@@ -90,4 +92,4 @@ function applyExitOverride(command) {
|
|
|
90
92
|
command.exitOverride();
|
|
91
93
|
command.commands.forEach(applyExitOverride);
|
|
92
94
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQW1DO0FBQ25DLDBDQUE2QztBQUM3QywwQ0FBNkM7QUFDN0Msa0RBQXFEO0FBQ3JELGtFQUFvRTtBQUNwRSxzREFBeUQ7QUFDekQsNENBQStDO0FBQy9DLHdEQUEyRDtBQUMzRCw4Q0FBaUQ7QUFDakQsNENBQStDO0FBQy9DLGdEQUFtRDtBQUNuRCwwQ0FBNkM7QUFDN0Msd0NBQXFFO0FBQ3JFLGtEQUFxRDtBQUNyRCw0Q0FBK0M7QUFDL0Msa0RBQXFEO0FBQ3JELDBEQUE0RDtBQUM1RCxvREFBc0Q7QUFDdEQsOENBQWlEO0FBQ2pELDhDQUFpRDtBQUNqRCw0Q0FBK0M7QUFDL0MscUNBQW9GO0FBRXBGLE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQU8sRUFBRSxDQUFBO0FBRTdCLE9BQU87S0FDSixJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ1osV0FBVyxDQUFDLGlDQUFpQyxDQUFDO0tBQzlDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDaEIsTUFBTSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQztLQUM3QyxNQUFNLENBQUMscUJBQXFCLEVBQUUsd0RBQXdELENBQUM7S0FDdkYsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7QUFFM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO0lBQzdCLE1BQU0sS0FBSyxHQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQTRCLENBQUMsUUFBUSxDQUFBO0lBQ2hFLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7SUFDcEMsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBVyxD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QUMsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDaEQsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgeyBhdXRoQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvYXV0aCdcbmltcG9ydCB7IHVzZXJDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy91c2VyJ1xuaW1wb3J0IHsgd29ya2Zsb3dDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy93b3JrZmxvdydcbmltcG9ydCB7IHdvcmtmbG93VmVyc2lvbkNvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL3dvcmtmbG93LXZlcnNpb24nXG5pbXBvcnQgeyBzdWJtaXNzaW9uQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvc3VibWlzc2lvbidcbmltcG9ydCB7IHF1ZXVlQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvcXVldWUnXG5pbXBvcnQgeyBlbnZpcm9ubWVudENvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2Vudmlyb25tZW50J1xuaW1wb3J0IHsgZW5naW5lQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvZW5naW5lJ1xuaW1wb3J0IHsgc2V0dXBDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9zZXR1cCdcbmltcG9ydCB7IHN0b3JhZ2VDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9zdG9yYWdlJ1xuaW1wb3J0IHsgdGFza0NvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL3Rhc2snXG5pbXBvcnQgeyBzdWJtaXNzaW9uTG9nQ29tbWFuZCwgdGFza0xvZ0NvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2xvZydcbmltcG9ydCB7IHJlZ2lzdHJ5Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvcmVnaXN0cnknXG5pbXBvcnQgeyBpbWFnZUNvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2ltYWdlJ1xuaW1wb3J0IHsgaW5zdGFuY2VDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9pbnN0YW5jZSdcbmltcG9ydCB7IGFjdGl2aXR5TG9nQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvYWN0aXZpdHktbG9nJ1xuaW1wb3J0IHsgYXBpVG9rZW5Db21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9hcGktdG9rZW4nXG5pbXBvcnQgeyB0ZW5hbnRDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy90ZW5hbnQnXG5pbXBvcnQgeyBwbHVnaW5Db21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9wbHVnaW4nXG5pbXBvcnQgeyBjb3N0c0NvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2Nvc3RzJ1xuaW1wb3J0IHsgaXNEZWJ1Z0VuYWJsZWQsIHByaW50Q2xpRXJyb3IsIHRvQ2xpRXJyb3IsIHdhbnRzSnNvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnXG5cbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpXG5cbnByb2dyYW1cbiAgLm5hbWUoJ2dlbmknKVxuICAuZGVzY3JpcHRpb24oJ0dlbmkgV29ya2Zsb3dzIOKAlCBCaW9pbmZvcm1hdGljcycpXG4gIC52ZXJzaW9uKCcwLjEuMycpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnU2hvdyBkZWJ1ZyBlcnJvciBkZXRhaWxzJylcbiAgLm9wdGlvbignLS1hcGktdG9rZW4gPHRva2VuPicsICdBdXRoZW50aWNhdGUgd2l0aCBhbiBBUEkgdG9rZW4gKHNldHMgWC1BUEktS2V5IGhlYWRlciknKVxuICAuY29uZmlndXJlT3V0cHV0KHsgd3JpdGVFcnI6ICgpID0+IHsgfSB9KVxuXG5wcm9ncmFtLmhvb2soJ3ByZUFjdGlvbicsICgpID0+IHtcbiAgY29uc3QgdG9rZW4gPSAocHJvZ3JhbS5vcHRzKCkgYXMgeyBhcGlUb2tlbj86IHN0cmluZyB9KS5hcGlUb2tlblxuICBpZiAodG9rZW4pIHtcbiAgICBwcm9jZXNzLmVudi5HRU5JX0FQSV9UT0tFTiA9IHRva2VuXG4gIH1cbn0pXG5cbnByb2dyYW0uYWRkQ29tbWFuZChhdXRoQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZCh1c2VyQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZCh3b3JrZmxvd0NvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQod29ya2Zsb3dWZXJzaW9uQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChzdWJtaXNzaW9uQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChxdWV1ZUNvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQoZW52aXJvbm1lbnRDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKGVuZ2luZUNvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQoc2V0dXBDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHN0b3JhZ2VDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHRhc2tDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHN1Ym1pc3Npb25Mb2dDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHRhc2tMb2dDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHJlZ2lzdHJ5Q29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChpbWFnZUNvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQoaW5zdGFuY2VDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKGFjdGl2aXR5TG9nQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChhcGlUb2tlbkNvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQodGVuYW50Q29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChwbHVnaW5Db21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKGNvc3RzQ29tbWFuZClcblxuYXBwbHlIZWxwT25Ob0FyZ3MocHJvZ3JhbSlcbmFwcGx5RXhpdE92ZXJyaWRlKHByb2dyYW0pXG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcHJvZ3JhbS5wYXJzZUFzeW5jKHByb2Nlc3MuYXJndilcbiAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgY29uc3QgbWF5YmVDb21tYW5kZXIgPSBlcnIgYXMgeyBjb2RlPzogc3RyaW5nOyBleGl0Q29kZT86IG51bWJlciB9XG4gICAgY29uc3QgY29tbWFuZGVyRGlzcGxheUNvZGUgPSBtYXliZUNvbW1hbmRlci5jb2RlXG4gICAgaWYgKFxuICAgICAgY29tbWFuZGVyRGlzcGxheUNvZGUgPT09ICdjb21tYW5kZXIuaGVscCcgfHxcbiAgICAgIGNvbW1hbmRlckRpc3BsYXlDb2RlID09PSAnY29tbWFuZGVyLmhlbHBEaXNwbGF5ZWQnIHx8XG4gICAgICBjb21tYW5kZXJEaXNwbGF5Q29kZSA9PT0gJ2NvbW1hbmRlci52ZXJzaW9uJ1xuICAgICkge1xuICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgfVxuICAgIGNvbnN0IGNsaUVycm9yID0gdG9DbGlFcnJvcihlcnIpXG4gICAgcHJpbnRDbGlFcnJvcihjbGlFcnJvciwge1xuICAgICAganNvbjogd2FudHNKc29uRXJyb3IocHJvY2Vzcy5hcmd2KSxcbiAgICAgIGRlYnVnOiBpc0RlYnVnRW5hYmxlZChwcm9jZXNzLmFyZ3YpLFxuICAgIH0pXG4gICAgcHJvY2Vzcy5leGl0KGNsaUVycm9yLmV4aXRDb2RlKVxuICB9XG59XG5cbnZvaWQgbWFpbigpXG5cbmZ1bmN0aW9uIGFwcGx5SGVscE9uTm9BcmdzKGNvbW1hbmQ6IENvbW1hbmQpOiB2b2lkIHtcbiAgaWYgKGNvbW1hbmQuY29tbWFuZHMubGVuZ3RoID4gMCAmJiAhKGNvbW1hbmQgYXMgdW5rbm93biBhcyB7IF9hY3Rpb25IYW5kbGVyOiB1bmtub3duIH0pLl9hY3Rpb25IYW5kbGVyKSB7XG4gICAgY29tbWFuZC5hY3Rpb24oKCkgPT4gY29tbWFuZC5oZWxwKCkpXG4gIH1cbiAgY29tbWFuZC5jb21tYW5kcy5mb3JFYWNoKGFwcGx5SGVscE9uTm9BcmdzKVxufVxuXG5mdW5jdGlvbiBhcHBseUV4aXRPdmVycmlkZShjb21tYW5kOiBDb21tYW5kKTogdm9pZCB7XG4gIGNvbW1hbmQuY29uZmlndXJlT3V0cHV0KHsgd3JpdGVFcnI6ICgpID0+IHsgfSB9KVxuICBjb21tYW5kLmV4aXRPdmVycmlkZSgpXG4gIGNvbW1hbmQuY29tbWFuZHMuZm9yRWFjaChhcHBseUV4aXRPdmVycmlkZSlcbn1cbiJdfQ==
|