@sendly/cli 3.36.0 → 3.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +204 -1
- package/dist/commands/10dlc/assignments/list.d.ts +10 -0
- package/dist/commands/10dlc/assignments/list.js +67 -0
- package/dist/commands/10dlc/brands/create.d.ts +25 -0
- package/dist/commands/10dlc/brands/create.js +89 -0
- package/dist/commands/10dlc/brands/get.d.ts +13 -0
- package/dist/commands/10dlc/brands/get.js +63 -0
- package/dist/commands/10dlc/brands/list.d.ts +10 -0
- package/dist/commands/10dlc/brands/list.js +63 -0
- package/dist/commands/10dlc/campaigns/assign.d.ts +14 -0
- package/dist/commands/10dlc/campaigns/assign.js +64 -0
- package/dist/commands/10dlc/campaigns/create.d.ts +24 -0
- package/dist/commands/10dlc/campaigns/create.js +118 -0
- package/dist/commands/10dlc/campaigns/get.d.ts +13 -0
- package/dist/commands/10dlc/campaigns/get.js +84 -0
- package/dist/commands/10dlc/campaigns/list.d.ts +10 -0
- package/dist/commands/10dlc/campaigns/list.js +70 -0
- package/dist/commands/10dlc/qualify.d.ts +14 -0
- package/dist/commands/10dlc/qualify.js +56 -0
- package/dist/commands/keys/rotate.js +7 -12
- package/dist/commands/links/create.d.ts +24 -0
- package/dist/commands/links/create.js +71 -0
- package/dist/commands/links/disable.d.ts +21 -0
- package/dist/commands/links/disable.js +55 -0
- package/dist/commands/links/list.d.ts +19 -0
- package/dist/commands/links/list.js +85 -0
- package/dist/commands/numbers/buy.js +15 -1
- package/dist/commands/numbers/get.d.ts +20 -0
- package/dist/commands/numbers/get.js +52 -0
- package/dist/commands/numbers/list.js +18 -1
- package/dist/commands/numbers/release.d.ts +23 -0
- package/dist/commands/numbers/release.js +67 -0
- package/dist/commands/numbers/update.d.ts +25 -0
- package/dist/commands/numbers/update.js +70 -0
- package/dist/commands/sms/group.d.ts +25 -0
- package/dist/commands/sms/group.js +164 -0
- package/dist/commands/sms/upload-media.d.ts +1 -1
- package/dist/commands/sms/upload-media.js +4 -4
- package/dist/commands/templates/enhance.js +3 -3
- package/dist/commands/upgrade.d.ts +1 -16
- package/dist/commands/upgrade.js +131 -38
- package/dist/commands/webhooks/listen.js +2 -2
- package/oclif.manifest.json +3862 -2864
- package/package.json +16 -1
package/dist/commands/upgrade.js
CHANGED
|
@@ -1,67 +1,160 @@
|
|
|
1
1
|
import { Command, Flags } from "@oclif/core";
|
|
2
2
|
import { spawn } from "node:child_process";
|
|
3
3
|
import { detectInstallPath, upgradeCommandFor, } from "../lib/detect-install-path.js";
|
|
4
|
-
import { success, error, info } from "../lib/output.js";
|
|
4
|
+
import { colors, success, error, info, spinner, divider, } from "../lib/output.js";
|
|
5
5
|
/**
|
|
6
|
-
* `sendly upgrade` — bring the CLI up to the latest version
|
|
6
|
+
* `sendly upgrade` — bring the CLI up to the latest version with a guided,
|
|
7
|
+
* animated flow: an animated version check, a `vCURRENT → vLATEST` diff, and a
|
|
8
|
+
* success panel. The noisy package-manager output is hidden behind a spinner
|
|
9
|
+
* for Homebrew (which never needs sudo); for npm we keep inherited stdio so an
|
|
10
|
+
* auth/sudo prompt can never hang invisibly behind a spinner.
|
|
7
11
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* path is unknown we print both options for the user to pick.
|
|
12
|
+
* `--check` is a dry-run: it shows the detected install method and the command
|
|
13
|
+
* that would run, without changing anything.
|
|
11
14
|
*
|
|
12
|
-
* The
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* The unattended in-band update banner that prompts users to run this
|
|
17
|
-
* comes from the `@oclif/plugin-warn-if-update-available` plugin wired
|
|
18
|
-
* in package.json; this command is the companion action for that
|
|
19
|
-
* banner.
|
|
15
|
+
* The unattended banner that nudges users to run this comes from the
|
|
16
|
+
* `@oclif/plugin-warn-if-update-available` plugin wired in package.json; this
|
|
17
|
+
* command is the companion action for that banner.
|
|
20
18
|
*/
|
|
19
|
+
const REGISTRY_URL = "https://registry.npmjs.org/@sendly/cli";
|
|
20
|
+
const CHANGELOG_URL = "https://sendly.live/docs/changelog";
|
|
21
|
+
function bumpType(from, to) {
|
|
22
|
+
const a = from.split(".").map((n) => parseInt(n, 10));
|
|
23
|
+
const b = to.split(".").map((n) => parseInt(n, 10));
|
|
24
|
+
if (a.length < 3 || b.length < 3 || [...a, ...b].some(Number.isNaN))
|
|
25
|
+
return "";
|
|
26
|
+
if (b[0] > a[0])
|
|
27
|
+
return "major";
|
|
28
|
+
if (b[1] > a[1])
|
|
29
|
+
return "minor";
|
|
30
|
+
if (b[2] > a[2])
|
|
31
|
+
return "patch";
|
|
32
|
+
return "";
|
|
33
|
+
}
|
|
34
|
+
async function fetchLatest() {
|
|
35
|
+
try {
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const timer = setTimeout(() => controller.abort(), 4000);
|
|
38
|
+
const res = await fetch(REGISTRY_URL, {
|
|
39
|
+
headers: { accept: "application/vnd.npm.install-v1+json" },
|
|
40
|
+
signal: controller.signal,
|
|
41
|
+
});
|
|
42
|
+
clearTimeout(timer);
|
|
43
|
+
if (!res.ok)
|
|
44
|
+
return null;
|
|
45
|
+
const body = (await res.json());
|
|
46
|
+
return body["dist-tags"]?.latest ?? null;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function runCaptured(command) {
|
|
53
|
+
return new Promise((resolve) => {
|
|
54
|
+
const [bin, ...args] = command.split(" ");
|
|
55
|
+
const child = spawn(bin, args, { stdio: ["ignore", "pipe", "pipe"] });
|
|
56
|
+
let output = "";
|
|
57
|
+
child.stdout?.on("data", (d) => (output += d.toString()));
|
|
58
|
+
child.stderr?.on("data", (d) => (output += d.toString()));
|
|
59
|
+
child.on("error", (err) => resolve({ code: 1, output: err.message }));
|
|
60
|
+
child.on("exit", (code) => resolve({ code: code ?? 1, output }));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function runInherited(command) {
|
|
64
|
+
return new Promise((resolve) => {
|
|
65
|
+
const [bin, ...args] = command.split(" ");
|
|
66
|
+
const child = spawn(bin, args, { stdio: "inherit" });
|
|
67
|
+
child.on("error", () => resolve(1));
|
|
68
|
+
child.on("exit", (code) => resolve(code ?? 1));
|
|
69
|
+
});
|
|
70
|
+
}
|
|
21
71
|
export default class Upgrade extends Command {
|
|
22
|
-
static description = "Upgrade Sendly CLI to the latest version
|
|
72
|
+
static description = "Upgrade the Sendly CLI to the latest version with a guided, animated flow.";
|
|
23
73
|
static examples = [
|
|
24
74
|
"<%= config.bin %> upgrade",
|
|
25
75
|
"<%= config.bin %> upgrade --check",
|
|
26
76
|
];
|
|
27
77
|
static flags = {
|
|
28
78
|
check: Flags.boolean({
|
|
29
|
-
description: "
|
|
79
|
+
description: "Show what would happen without changing anything",
|
|
30
80
|
default: false,
|
|
31
81
|
}),
|
|
32
82
|
};
|
|
33
83
|
async run() {
|
|
34
84
|
const { flags } = await this.parse(Upgrade);
|
|
85
|
+
const current = this.config.version;
|
|
86
|
+
divider();
|
|
87
|
+
console.log(` ${colors.highlight("⚡ Sendly CLI")} ${colors.dim("upgrade")}`);
|
|
88
|
+
divider();
|
|
89
|
+
const spin = spinner("Checking for the latest version...").start();
|
|
90
|
+
const latest = await fetchLatest();
|
|
91
|
+
if (latest && latest === current) {
|
|
92
|
+
spin.succeed(`You're on the latest version ${colors.success.bold("v" + current)}`);
|
|
93
|
+
divider();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (latest) {
|
|
97
|
+
const kind = bumpType(current, latest);
|
|
98
|
+
spin.succeed(`Update available${kind ? " " + colors.dim(`(${kind})`) : ""}`);
|
|
99
|
+
console.log(` ${colors.dim("v" + current)} ${colors.primary("→")} ${colors.success.bold("v" + latest)}`);
|
|
100
|
+
divider();
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
spin.succeed("Ready to upgrade");
|
|
104
|
+
}
|
|
35
105
|
const installPath = detectInstallPath();
|
|
36
106
|
const command = upgradeCommandFor(installPath);
|
|
37
107
|
if (installPath === "unknown") {
|
|
38
|
-
info("Can't detect how
|
|
39
|
-
"
|
|
40
|
-
"
|
|
108
|
+
info("Can't detect how the CLI was installed. Run whichever matches:\n" +
|
|
109
|
+
` ${colors.code("brew upgrade sendly")} ${colors.dim("(Homebrew)")}\n` +
|
|
110
|
+
` ${colors.code("npm install -g @sendly/cli@latest")} ${colors.dim("(npm)")}`);
|
|
41
111
|
return;
|
|
42
112
|
}
|
|
43
113
|
if (flags.check) {
|
|
44
|
-
info(`
|
|
114
|
+
info(`Install method: ${colors.bold(installPath)}\n` +
|
|
115
|
+
`Would run: ${colors.code(command)}`);
|
|
45
116
|
return;
|
|
46
117
|
}
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
118
|
+
const via = installPath === "homebrew" ? "Homebrew" : "npm";
|
|
119
|
+
const target = latest ? ` to ${colors.success("v" + latest)}` : "";
|
|
120
|
+
if (installPath === "homebrew") {
|
|
121
|
+
// Homebrew never needs sudo, so it's safe to hide its output behind a
|
|
122
|
+
// spinner for a clean, animated upgrade.
|
|
123
|
+
const upSpin = spinner(`Upgrading via ${via}${target}...`).start();
|
|
124
|
+
const { code, output } = await runCaptured(command);
|
|
125
|
+
if (code === 0) {
|
|
126
|
+
upSpin.stop();
|
|
127
|
+
this.renderSuccess(via, latest);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
upSpin.fail(`Upgrade failed via ${via}`);
|
|
131
|
+
const tail = output.trim().split("\n").slice(-6).join("\n");
|
|
132
|
+
if (tail)
|
|
133
|
+
console.log(colors.dim(tail));
|
|
134
|
+
error(`Try running it yourself: ${colors.code(command)}`);
|
|
135
|
+
}
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// npm: keep inherited stdio so any auth/sudo prompt stays visible.
|
|
139
|
+
info(`Upgrading via ${via}${target}`);
|
|
140
|
+
console.log(colors.dim(` ${command}`));
|
|
141
|
+
divider();
|
|
142
|
+
const code = await runInherited(command);
|
|
143
|
+
if (code === 0) {
|
|
144
|
+
this.renderSuccess(via, latest);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
error(`Upgrade command exited with code ${code}. Try running it yourself: ${colors.code(command)}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
renderSuccess(via, latest) {
|
|
151
|
+
success(latest
|
|
152
|
+
? `Upgraded to ${colors.success.bold("v" + latest)} via ${via}`
|
|
153
|
+
: `Upgrade complete via ${via}`);
|
|
154
|
+
divider();
|
|
155
|
+
info(`What's new: ${colors.code(CHANGELOG_URL)}`);
|
|
156
|
+
info("Run `sendly --version` to confirm.");
|
|
157
|
+
divider();
|
|
65
158
|
}
|
|
66
159
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy91cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUNsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBUSxTQUFRLE9BQU87SUFDMUMsTUFBTSxDQUFDLFdBQVcsR0FDaEIseUdBQXlHLENBQUM7SUFFNUcsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQiwyQkFBMkI7UUFDM0IsbUNBQW1DO0tBQ3BDLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkIsV0FBVyxFQUNULHNFQUFzRTtZQUN4RSxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUNGLDZFQUE2RTtnQkFDM0UscUNBQXFDO2dCQUNyQyxpREFBaUQsQ0FDcEQsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUNGLDBCQUEwQixXQUFXLGdCQUFnQixPQUFPLEVBQUUsQ0FDL0QsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixXQUFXLEtBQUssT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVqRCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN4QixJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQ0wsc0VBQXNFLENBQ3ZFLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLEtBQUssQ0FDSCxvQ0FBb0MsSUFBSSxtQkFBbUIsT0FBTyxjQUFjLENBQ2pGLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDeEIsS0FBSyxDQUNILHNDQUFzQyxHQUFHLENBQUMsT0FBTyxtQkFBbUIsT0FBTyxjQUFjLENBQzFGLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQsIEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBzcGF3biB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7XG4gIGRldGVjdEluc3RhbGxQYXRoLFxuICB1cGdyYWRlQ29tbWFuZEZvcixcbn0gZnJvbSBcIi4uL2xpYi9kZXRlY3QtaW5zdGFsbC1wYXRoLmpzXCI7XG5pbXBvcnQgeyBzdWNjZXNzLCBlcnJvciwgaW5mbyB9IGZyb20gXCIuLi9saWIvb3V0cHV0LmpzXCI7XG5cbi8qKlxuICogYHNlbmRseSB1cGdyYWRlYCDigJQgYnJpbmcgdGhlIENMSSB1cCB0byB0aGUgbGF0ZXN0IHZlcnNpb24uXG4gKlxuICogRGV0ZWN0cyB0aGUgaW5zdGFsbCBwYXRoIChIb21lYnJldyB2cyBucG0tZ2xvYmFsIHZzIHVua25vd24pIGFuZFxuICogZXhlY3V0ZXMgdGhlIG1hdGNoaW5nIHBhY2thZ2UtbWFuYWdlciB1cGdyYWRlIGNvbW1hbmQuIElmIHRoZSBpbnN0YWxsXG4gKiBwYXRoIGlzIHVua25vd24gd2UgcHJpbnQgYm90aCBvcHRpb25zIGZvciB0aGUgdXNlciB0byBwaWNrLlxuICpcbiAqIFRoZSBgLS1jaGVja2AgZmxhZyBkb2VzIGEgZHJ5LXJ1bjogcHJpbnRzIHdoYXQgd291bGQgaGFwcGVuIHdpdGhvdXRcbiAqIGV4ZWN1dGluZyBhbnl0aGluZy4gVXNlZnVsIGluIHJlc3RyaWN0ZWQgc2hlbGxzIHdoZXJlIHdlIGRvbid0IHdhbnRcbiAqIHRvIHRyaWdnZXIgYSBicmV3L25wbSBydW4gYWNjaWRlbnRhbGx5LlxuICpcbiAqIFRoZSB1bmF0dGVuZGVkIGluLWJhbmQgdXBkYXRlIGJhbm5lciB0aGF0IHByb21wdHMgdXNlcnMgdG8gcnVuIHRoaXNcbiAqIGNvbWVzIGZyb20gdGhlIGBAb2NsaWYvcGx1Z2luLXdhcm4taWYtdXBkYXRlLWF2YWlsYWJsZWAgcGx1Z2luIHdpcmVkXG4gKiBpbiBwYWNrYWdlLmpzb247IHRoaXMgY29tbWFuZCBpcyB0aGUgY29tcGFuaW9uIGFjdGlvbiBmb3IgdGhhdFxuICogYmFubmVyLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVcGdyYWRlIGV4dGVuZHMgQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJVcGdyYWRlIFNlbmRseSBDTEkgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIHVzaW5nIHRoZSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBpbnN0YWxsZWQgaXQgKEhvbWVicmV3IG9yIG5wbSkuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdXBncmFkZVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdXBncmFkZSAtLWNoZWNrXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIGNoZWNrOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlByaW50IHRoZSB1cGdyYWRlIGNvbW1hbmQgZm9yIHlvdXIgaW5zdGFsbCBwYXRoIHdpdGhvdXQgZXhlY3V0aW5nIGl0XCIsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShVcGdyYWRlKTtcblxuICAgIGNvbnN0IGluc3RhbGxQYXRoID0gZGV0ZWN0SW5zdGFsbFBhdGgoKTtcbiAgICBjb25zdCBjb21tYW5kID0gdXBncmFkZUNvbW1hbmRGb3IoaW5zdGFsbFBhdGgpO1xuXG4gICAgaWYgKGluc3RhbGxQYXRoID09PSBcInVua25vd25cIikge1xuICAgICAgaW5mbyhcbiAgICAgICAgXCJDYW4ndCBkZXRlY3QgaG93IHlvdSBpbnN0YWxsZWQgdGhlIFNlbmRseSBDTEkuIFBpY2sgdGhlIG1hdGNoaW5nIGNvbW1hbmQ6XFxuXCIgK1xuICAgICAgICAgIFwiICDigKIgSG9tZWJyZXc6IGJyZXcgdXBncmFkZSBzZW5kbHlcXG5cIiArXG4gICAgICAgICAgXCIgIOKAoiBucG06ICAgICAgbnBtIGluc3RhbGwgLWcgQHNlbmRseS9jbGlAbGF0ZXN0XCIsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChmbGFncy5jaGVjaykge1xuICAgICAgaW5mbyhcbiAgICAgICAgYERldGVjdGVkIGluc3RhbGwgcGF0aDogJHtpbnN0YWxsUGF0aH1cXG5Xb3VsZCBydW46ICR7Y29tbWFuZH1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpbmZvKGBVcGdyYWRpbmcgdmlhICR7aW5zdGFsbFBhdGh9OiAke2NvbW1hbmR9YCk7XG5cbiAgICBjb25zdCBbYmluLCAuLi5hcmdzXSA9IGNvbW1hbmQuc3BsaXQoXCIgXCIpO1xuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24oYmluLCBhcmdzLCB7IHN0ZGlvOiBcImluaGVyaXRcIiB9KTtcblxuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICBjaGlsZC5vbihcImV4aXRcIiwgKGNvZGUpID0+IHtcbiAgICAgICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgICAgICBzdWNjZXNzKFxuICAgICAgICAgICAgXCJVcGdyYWRlIGNvbXBsZXRlLiBSdW4gYHNlbmRseSAtLXZlcnNpb25gIHRvIGNvbmZpcm0gdGhlIG5ldyB2ZXJzaW9uLlwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IoXG4gICAgICAgICAgICBgVXBncmFkZSBjb21tYW5kIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfS4gVHJ5IHJ1bm5pbmcgXFxgJHtjb21tYW5kfVxcYCBtYW51YWxseS5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgICBjaGlsZC5vbihcImVycm9yXCIsIChlcnIpID0+IHtcbiAgICAgICAgZXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBleGVjdXRlIHVwZ3JhZGUgY29tbWFuZDogJHtlcnIubWVzc2FnZX0uIFRyeSBydW5uaW5nIFxcYCR7Y29tbWFuZH1cXGAgbWFudWFsbHkuYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy91cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUNsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxNQUFNLEVBQ04sT0FBTyxFQUNQLEtBQUssRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLE9BQU8sR0FDUixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxNQUFNLFlBQVksR0FBRyx3Q0FBd0MsQ0FBQztBQUM5RCxNQUFNLGFBQWEsR0FBRyxvQ0FBb0MsQ0FBQztBQUUzRCxTQUFTLFFBQVEsQ0FBQyxJQUFZLEVBQUUsRUFBVTtJQUN4QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMvRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBQ2hDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUNoQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVztJQUN4QixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQ3BDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxxQ0FBcUMsRUFBRTtZQUMxRCxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBRTdCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLE9BQWU7SUFFZixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE9BQWU7SUFDbkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQzdCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMs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QUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUU7WUFDL0QsQ0FBQyxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FDbEMsQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDO1FBQ1YsSUFBSSxDQUFDLGVBQWUsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDM0MsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCwgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IHNwYXduIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHtcbiAgZGV0ZWN0SW5zdGFsbFBhdGgsXG4gIHVwZ3JhZGVDb21tYW5kRm9yLFxufSBmcm9tIFwiLi4vbGliL2RldGVjdC1pbnN0YWxsLXBhdGguanNcIjtcbmltcG9ydCB7XG4gIGNvbG9ycyxcbiAgc3VjY2VzcyxcbiAgZXJyb3IsXG4gIGluZm8sXG4gIHNwaW5uZXIsXG4gIGRpdmlkZXIsXG59IGZyb20gXCIuLi9saWIvb3V0cHV0LmpzXCI7XG5cbi8qKlxuICogYHNlbmRseSB1cGdyYWRlYCDigJQgYnJpbmcgdGhlIENMSSB1cCB0byB0aGUgbGF0ZXN0IHZlcnNpb24gd2l0aCBhIGd1aWRlZCxcbiAqIGFuaW1hdGVkIGZsb3c6IGFuIGFuaW1hdGVkIHZlcnNpb24gY2hlY2ssIGEgYHZDVVJSRU5UIOKGkiB2TEFURVNUYCBkaWZmLCBhbmQgYVxuICogc3VjY2VzcyBwYW5lbC4gVGhlIG5vaXN5IHBhY2thZ2UtbWFuYWdlciBvdXRwdXQgaXMgaGlkZGVuIGJlaGluZCBhIHNwaW5uZXJcbiAqIGZvciBIb21lYnJldyAod2hpY2ggbmV2ZXIgbmVlZHMgc3Vkbyk7IGZvciBucG0gd2Uga2VlcCBpbmhlcml0ZWQgc3RkaW8gc28gYW5cbiAqIGF1dGgvc3VkbyBwcm9tcHQgY2FuIG5ldmVyIGhhbmcgaW52aXNpYmx5IGJlaGluZCBhIHNwaW5uZXIuXG4gKlxuICogYC0tY2hlY2tgIGlzIGEgZHJ5LXJ1bjogaXQgc2hvd3MgdGhlIGRldGVjdGVkIGluc3RhbGwgbWV0aG9kIGFuZCB0aGUgY29tbWFuZFxuICogdGhhdCB3b3VsZCBydW4sIHdpdGhvdXQgY2hhbmdpbmcgYW55dGhpbmcuXG4gKlxuICogVGhlIHVuYXR0ZW5kZWQgYmFubmVyIHRoYXQgbnVkZ2VzIHVzZXJzIHRvIHJ1biB0aGlzIGNvbWVzIGZyb20gdGhlXG4gKiBgQG9jbGlmL3BsdWdpbi13YXJuLWlmLXVwZGF0ZS1hdmFpbGFibGVgIHBsdWdpbiB3aXJlZCBpbiBwYWNrYWdlLmpzb247IHRoaXNcbiAqIGNvbW1hbmQgaXMgdGhlIGNvbXBhbmlvbiBhY3Rpb24gZm9yIHRoYXQgYmFubmVyLlxuICovXG5cbmNvbnN0IFJFR0lTVFJZX1VSTCA9IFwiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHNlbmRseS9jbGlcIjtcbmNvbnN0IENIQU5HRUxPR19VUkwgPSBcImh0dHBzOi8vc2VuZGx5LmxpdmUvZG9jcy9jaGFuZ2Vsb2dcIjtcblxuZnVuY3Rpb24gYnVtcFR5cGUoZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKTogXCJtYWpvclwiIHwgXCJtaW5vclwiIHwgXCJwYXRjaFwiIHwgXCJcIiB7XG4gIGNvbnN0IGEgPSBmcm9tLnNwbGl0KFwiLlwiKS5tYXAoKG4pID0+IHBhcnNlSW50KG4sIDEwKSk7XG4gIGNvbnN0IGIgPSB0by5zcGxpdChcIi5cIikubWFwKChuKSA9PiBwYXJzZUludChuLCAxMCkpO1xuICBpZiAoYS5sZW5ndGggPCAzIHx8IGIubGVuZ3RoIDwgMyB8fCBbLi4uYSwgLi4uYl0uc29tZShOdW1iZXIuaXNOYU4pKSByZXR1cm4gXCJcIjtcbiAgaWYgKGJbMF0gPiBhWzBdKSByZXR1cm4gXCJtYWpvclwiO1xuICBpZiAoYlsxXSA+IGFbMV0pIHJldHVybiBcIm1pbm9yXCI7XG4gIGlmIChiWzJdID4gYVsyXSkgcmV0dXJuIFwicGF0Y2hcIjtcbiAgcmV0dXJuIFwiXCI7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoTGF0ZXN0KCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICB0cnkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgNDAwMCk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goUkVHSVNUUllfVVJMLCB7XG4gICAgICBoZWFkZXJzOiB7IGFjY2VwdDogXCJhcHBsaWNhdGlvbi92bmQubnBtLmluc3RhbGwtdjEranNvblwiIH0sXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgaWYgKCFyZXMub2spIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGJvZHkgPSAoYXdhaXQgcmVzLmpzb24oKSkgYXMge1xuICAgICAgXCJkaXN0LXRhZ3NcIj86IHsgbGF0ZXN0Pzogc3RyaW5nIH07XG4gICAgfTtcbiAgICByZXR1cm4gYm9keVtcImRpc3QtdGFnc1wiXT8ubGF0ZXN0ID8/IG51bGw7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bkNhcHR1cmVkKFxuICBjb21tYW5kOiBzdHJpbmcsXG4pOiBQcm9taXNlPHsgY29kZTogbnVtYmVyOyBvdXRwdXQ6IHN0cmluZyB9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IFtiaW4sIC4uLmFyZ3NdID0gY29tbWFuZC5zcGxpdChcIiBcIik7XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bihiaW4sIGFyZ3MsIHsgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdIH0pO1xuICAgIGxldCBvdXRwdXQgPSBcIlwiO1xuICAgIGNoaWxkLnN0ZG91dD8ub24oXCJkYXRhXCIsIChkKSA9PiAob3V0cHV0ICs9IGQudG9TdHJpbmcoKSkpO1xuICAgIGNoaWxkLnN0ZGVycj8ub24oXCJkYXRhXCIsIChkKSA9PiAob3V0cHV0ICs9IGQudG9TdHJpbmcoKSkpO1xuICAgIGNoaWxkLm9uKFwiZXJyb3JcIiwgKGVycikgPT4gcmVzb2x2ZSh7IGNvZGU6IDEsIG91dHB1dDogZXJyLm1lc3NhZ2UgfSkpO1xuICAgIGNoaWxkLm9uKFwiZXhpdFwiLCAoY29kZSkgPT4gcmVzb2x2ZSh7IGNvZGU6IGNvZGUgPz8gMSwgb3V0cHV0IH0pKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJ1bkluaGVyaXRlZChjb21tYW5kOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBjb25zdCBbYmluLCAuLi5hcmdzXSA9IGNvbW1hbmQuc3BsaXQoXCIgXCIpO1xuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24oYmluLCBhcmdzLCB7IHN0ZGlvOiBcImluaGVyaXRcIiB9KTtcbiAgICBjaGlsZC5vbihcImVycm9yXCIsICgpID0+IHJlc29sdmUoMSkpO1xuICAgIGNoaWxkLm9uKFwiZXhpdFwiLCAoY29kZSkgPT4gcmVzb2x2ZShjb2RlID8/IDEpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwZ3JhZGUgZXh0ZW5kcyBDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIlVwZ3JhZGUgdGhlIFNlbmRseSBDTEkgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIHdpdGggYSBndWlkZWQsIGFuaW1hdGVkIGZsb3cuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdXBncmFkZVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gdXBncmFkZSAtLWNoZWNrXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIGNoZWNrOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNob3cgd2hhdCB3b3VsZCBoYXBwZW4gd2l0aG91dCBjaGFuZ2luZyBhbnl0aGluZ1wiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoVXBncmFkZSk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY29uZmlnLnZlcnNpb247XG5cbiAgICBkaXZpZGVyKCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgICAke2NvbG9ycy5oaWdobGlnaHQoXCLimqEgU2VuZGx5IENMSVwiKX0gICR7Y29sb3JzLmRpbShcInVwZ3JhZGVcIil9YCxcbiAgICApO1xuICAgIGRpdmlkZXIoKTtcblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiQ2hlY2tpbmcgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbi4uLlwiKS5zdGFydCgpO1xuICAgIGNvbnN0IGxhdGVzdCA9IGF3YWl0IGZldGNoTGF0ZXN0KCk7XG5cbiAgICBpZiAobGF0ZXN0ICYmIGxhdGVzdCA9PT0gY3VycmVudCkge1xuICAgICAgc3Bpbi5zdWNjZWVkKFxuICAgICAgICBgWW91J3JlIG9uIHRoZSBsYXRlc3QgdmVyc2lvbiAke2NvbG9ycy5zdWNjZXNzLmJvbGQoXCJ2XCIgKyBjdXJyZW50KX1gLFxuICAgICAgKTtcbiAgICAgIGRpdmlkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobGF0ZXN0KSB7XG4gICAgICBjb25zdCBraW5kID0gYnVtcFR5cGUoY3VycmVudCwgbGF0ZXN0KTtcbiAgICAgIHNwaW4uc3VjY2VlZChcbiAgICAgICAgYFVwZGF0ZSBhdmFpbGFibGUke2tpbmQgPyBcIiBcIiArIGNvbG9ycy5kaW0oYCgke2tpbmR9KWApIDogXCJcIn1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICAke2NvbG9ycy5kaW0oXCJ2XCIgKyBjdXJyZW50KX0gICR7Y29sb3JzLnByaW1hcnkoXCLihpJcIil9ICAke2NvbG9ycy5zdWNjZXNzLmJvbGQoXCJ2XCIgKyBsYXRlc3QpfWAsXG4gICAgICApO1xuICAgICAgZGl2aWRlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGluLnN1Y2NlZWQoXCJSZWFkeSB0byB1cGdyYWRlXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbGxQYXRoID0gZGV0ZWN0SW5zdGFsbFBhdGgoKTtcbiAgICBjb25zdCBjb21tYW5kID0gdXBncmFkZUNvbW1hbmRGb3IoaW5zdGFsbFBhdGgpO1xuXG4gICAgaWYgKGluc3RhbGxQYXRoID09PSBcInVua25vd25cIikge1xuICAgICAgaW5mbyhcbiAgICAgICAgXCJDYW4ndCBkZXRlY3QgaG93IHRoZSBDTEkgd2FzIGluc3RhbGxlZC4gUnVuIHdoaWNoZXZlciBtYXRjaGVzOlxcblwiICtcbiAgICAgICAgICBgICAke2NvbG9ycy5jb2RlKFwiYnJldyB1cGdyYWRlIHNlbmRseVwiKX0gICAgICAgICAgICAgICAgJHtjb2xvcnMuZGltKFwiKEhvbWVicmV3KVwiKX1cXG5gICtcbiAgICAgICAgICBgICAke2NvbG9ycy5jb2RlKFwibnBtIGluc3RhbGwgLWcgQHNlbmRseS9jbGlAbGF0ZXN0XCIpfSAgJHtjb2xvcnMuZGltKFwiKG5wbSlcIil9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZsYWdzLmNoZWNrKSB7XG4gICAgICBpbmZvKFxuICAgICAgICBgSW5zdGFsbCBtZXRob2Q6ICR7Y29sb3JzLmJvbGQoaW5zdGFsbFBhdGgpfVxcbmAgK1xuICAgICAgICAgIGBXb3VsZCBydW46ICAgICAgJHtjb2xvcnMuY29kZShjb21tYW5kKX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2aWEgPSBpbnN0YWxsUGF0aCA9PT0gXCJob21lYnJld1wiID8gXCJIb21lYnJld1wiIDogXCJucG1cIjtcbiAgICBjb25zdCB0YXJnZXQgPSBsYXRlc3QgPyBgIHRvICR7Y29sb3JzLnN1Y2Nlc3MoXCJ2XCIgKyBsYXRlc3QpfWAgOiBcIlwiO1xuXG4gICAgaWYgKGluc3RhbGxQYXRoID09PSBcImhvbWVicmV3XCIpIHtcbiAgICAgIC8vIEhvbWVicmV3IG5ldmVyIG5lZWRzIHN1ZG8sIHNvIGl0J3Mgc2FmZSB0byBoaWRlIGl0cyBvdXRwdXQgYmVoaW5kIGFcbiAgICAgIC8vIHNwaW5uZXIgZm9yIGEgY2xlYW4sIGFuaW1hdGVkIHVwZ3JhZGUuXG4gICAgICBjb25zdCB1cFNwaW4gPSBzcGlubmVyKGBVcGdyYWRpbmcgdmlhICR7dmlhfSR7dGFyZ2V0fS4uLmApLnN0YXJ0KCk7XG4gICAgICBjb25zdCB7IGNvZGUsIG91dHB1dCB9ID0gYXdhaXQgcnVuQ2FwdHVyZWQoY29tbWFuZCk7XG4gICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICB1cFNwaW4uc3RvcCgpO1xuICAgICAgICB0aGlzLnJlbmRlclN1Y2Nlc3ModmlhLCBsYXRlc3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBTcGluLmZhaWwoYFVwZ3JhZGUgZmFpbGVkIHZpYSAke3ZpYX1gKTtcbiAgICAgICAgY29uc3QgdGFpbCA9IG91dHB1dC50cmltKCkuc3BsaXQoXCJcXG5cIikuc2xpY2UoLTYpLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIGlmICh0YWlsKSBjb25zb2xlLmxvZyhjb2xvcnMuZGltKHRhaWwpKTtcbiAgICAgICAgZXJyb3IoYFRyeSBydW5uaW5nIGl0IHlvdXJzZWxmOiAke2NvbG9ycy5jb2RlKGNvbW1hbmQpfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG5wbToga2VlcCBpbmhlcml0ZWQgc3RkaW8gc28gYW55IGF1dGgvc3VkbyBwcm9tcHQgc3RheXMgdmlzaWJsZS5cbiAgICBpbmZvKGBVcGdyYWRpbmcgdmlhICR7dmlhfSR7dGFyZ2V0fWApO1xuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oYCAgJHtjb21tYW5kfWApKTtcbiAgICBkaXZpZGVyKCk7XG4gICAgY29uc3QgY29kZSA9IGF3YWl0IHJ1bkluaGVyaXRlZChjb21tYW5kKTtcbiAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgdGhpcy5yZW5kZXJTdWNjZXNzKHZpYSwgbGF0ZXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IoXG4gICAgICAgIGBVcGdyYWRlIGNvbW1hbmQgZXhpdGVkIHdpdGggY29kZSAke2NvZGV9LiBUcnkgcnVubmluZyBpdCB5b3Vyc2VsZjogJHtjb2xvcnMuY29kZShjb21tYW5kKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclN1Y2Nlc3ModmlhOiBzdHJpbmcsIGxhdGVzdDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHN1Y2Nlc3MoXG4gICAgICBsYXRlc3RcbiAgICAgICAgPyBgVXBncmFkZWQgdG8gJHtjb2xvcnMuc3VjY2Vzcy5ib2xkKFwidlwiICsgbGF0ZXN0KX0gdmlhICR7dmlhfWBcbiAgICAgICAgOiBgVXBncmFkZSBjb21wbGV0ZSB2aWEgJHt2aWF9YCxcbiAgICApO1xuICAgIGRpdmlkZXIoKTtcbiAgICBpbmZvKGBXaGF0J3MgbmV3OiAke2NvbG9ycy5jb2RlKENIQU5HRUxPR19VUkwpfWApO1xuICAgIGluZm8oXCJSdW4gYHNlbmRseSAtLXZlcnNpb25gIHRvIGNvbmZpcm0uXCIpO1xuICAgIGRpdmlkZXIoKTtcbiAgfVxufVxuIl19
|
|
@@ -21,7 +21,7 @@ export default class WebhooksListen extends AuthenticatedCommand {
|
|
|
21
21
|
events: Flags.string({
|
|
22
22
|
char: "e",
|
|
23
23
|
description: "Comma-separated list of events to listen for. Default subscribes to all message.* and contact.* / contacts.* events so nothing is missed during local dev.",
|
|
24
|
-
default: "message.sent,message.delivered,message.failed,message.bounced,message.retrying,message.received,message.opt_out,message.opt_in,contact.auto_flagged,contact.marked_valid,contacts.lookup_completed,contacts.bulk_marked_valid",
|
|
24
|
+
default: "message.sent,message.delivered,message.failed,message.bounced,message.retrying,message.received,message.opt_out,message.opt_in,contact.auto_flagged,contact.marked_valid,contacts.lookup_completed,contacts.bulk_marked_valid,brand.verified,brand.failed,campaign.approved,campaign.rejected,campaign.suspended,assignment.confirmed,assignment.failed,port.completed,port_out.requested,port_out.completed,port_out.rejected,port_out.cancelled,number.activated,number.failed,number.requirements_required,number.released",
|
|
25
25
|
}),
|
|
26
26
|
};
|
|
27
27
|
ws = null;
|
|
@@ -208,4 +208,4 @@ export default class WebhooksListen extends AuthenticatedCommand {
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2xpc3Rlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQStCdEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlIQUFpSCxDQUFDO0lBRXBILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUNBQW1DO1FBQ25DLDJFQUEyRTtRQUMzRSw2RUFBNkU7S0FDOUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUNULDRKQUE0SjtZQUM5SixPQUFPLEVBQ0wsK05BQStOO1NBQ2xPLENBQUM7S0FDSCxDQUFDO0lBRU0sRUFBRSxHQUFxQixJQUFJLENBQUM7SUFDNUIsU0FBUyxHQUFrQixJQUFJLENB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TSxHQUFHLENBQzNFLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixRQUFRLENBQUMsTUFBTSxHQUFHLENBQzdELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsbUJBQW9CLEdBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQztnQkFDSCxNQUFNLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1Asd0JBQXdCO1lBQzFCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBpbmZvLFxuICB3YXJuLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBnZXRDb25maWdWYWx1ZSB9IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5pbXBvcnQgV2ViU29ja2V0IGZyb20gXCJ3c1wiO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG5pbnRlcmZhY2UgV2ViaG9va0V2ZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBhcGlfdmVyc2lvbjogc3RyaW5nO1xuICBjcmVhdGVkOiBudW1iZXI7XG4gIGxpdmVtb2RlOiBib29sZWFuO1xuICBkYXRhOiB7XG4gICAgb2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFdlYlNvY2tldE1lc3NhZ2Uge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IG51bWJlcjtcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBldmVudD86IFdlYmhvb2tFdmVudDtcbiAgc2Vzc2lvbklkPzogc3RyaW5nO1xuICBldmVudHM/OiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIExpc3RlblN0YXJ0UmVzcG9uc2Uge1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgd3NUb2tlbjogc3RyaW5nO1xuICBzZWNyZXQ6IHN0cmluZztcbiAgd3NVcmw6IHN0cmluZztcbiAgZXZlbnRzOiBzdHJpbmdbXTtcbiAgZm9yd2FyZFVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXZWJob29rc0xpc3RlbiBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkxpc3RlbiBmb3Igd2ViaG9va3MgbG9jYWxseS4gUmVjZWl2ZXMgZXZlbnRzIGluIHJlYWwtdGltZSB2aWEgV2ViU29ja2V0IGFuZCBmb3J3YXJkcyB0aGVtIHRvIHlvdXIgbG9jYWwgc2VydmVyLlwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlblwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuIC0tZm9yd2FyZCBodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9va1wiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gd2ViaG9va3MgbGlzdGVuIC0tZXZlbnRzIG1lc3NhZ2UuZGVsaXZlcmVkLG1lc3NhZ2UuZmFpbGVkXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICBmb3J3YXJkOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJmXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMb2NhbCBVUkwgdG8gZm9yd2FyZCBldmVudHMgdG9cIixcbiAgICAgIGRlZmF1bHQ6IFwiaHR0cDovL2xvY2FsaG9zdDozMDAwL3dlYmhvb2tcIixcbiAgICB9KSxcbiAgICBldmVudHM6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImVcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGV2ZW50cyB0byBsaXN0ZW4gZm9yLiBEZWZhdWx0IHN1YnNjcmliZXMgdG8gYWxsIG1lc3NhZ2UuKiBhbmQgY29udGFjdC4qIC8gY29udGFjdHMuKiBldmVudHMgc28gbm90aGluZyBpcyBtaXNzZWQgZHVyaW5nIGxvY2FsIGRldi5cIixcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIFwibWVzc2FnZS5zZW50LG1lc3NhZ2UuZGVsaXZlcmVkLG1lc3NhZ2UuZmFpbGVkLG1lc3NhZ2UuYm91bmNlZCxtZXNzYWdlLnJldHJ5aW5nLG1lc3NhZ2UucmVjZWl2ZWQsbWVzc2FnZS5vcHRfb3V0LG1lc3NhZ2Uub3B0X2luLGNvbnRhY3QuYXV0b19mbGFnZ2VkLGNvbnRhY3QubWFya2VkX3ZhbGlkLGNvbnRhY3RzLmxvb2t1cF9jb21wbGV0ZWQsY29udGFjdHMuYnVsa19tYXJrZWRfdmFsaWRcIixcbiAgICB9KSxcbiAgfTtcblxuICBwcml2YXRlIHdzOiBXZWJTb2NrZXQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZXNzaW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNlY3JldDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoV2ViaG9va3NMaXN0ZW4pO1xuXG4gICAgdHJ5IHtcbiAgICAgIG5ldyBVUkwoZmxhZ3MuZm9yd2FyZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVycm9yKGBJbnZhbGlkIGZvcndhcmQgVVJMOiAke2ZsYWdzLmZvcndhcmR9LiBNdXN0IGJlIGEgdmFsaWQgVVJMIChlLmcuLCBodHRwOi8vbG9jYWxob3N0OjMwMDAvd2ViaG9vaykuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnRzID0gZmxhZ3MuZXZlbnRzLnNwbGl0KFwiLFwiKS5tYXAoKGUpID0+IGUudHJpbSgpKTtcblxuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiU3RhcnRpbmcgd2ViaG9vayBsaXN0ZW5lci4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxMaXN0ZW5TdGFydFJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL2NsaS9saXN0ZW4vc3RhcnRcIixcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50cyxcbiAgICAgICAgICBmb3J3YXJkVXJsOiBmbGFncy5mb3J3YXJkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXNzaW9uSWQgPSByZXNwb25zZS5zZXNzaW9uSWQ7XG4gICAgICB0aGlzLnNlY3JldCA9IHJlc3BvbnNlLnNlY3JldDtcblxuICAgICAgc3Bpbi5zdWNjZWVkKFwiTGlzdGVuZXIgcmVnaXN0ZXJlZFwiKTtcblxuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGNvbG9ycy5wcmltYXJ5KFwiV2ViaG9vayBsaXN0ZW5lciByZWFkeSFcIikpKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYCAgJHtjb2xvcnMuZGltKFwiRm9yd2FyZGluZyB0bzpcIil9ICR7Y29sb3JzLmNvZGUoZmxhZ3MuZm9yd2FyZCl9YCxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJFdmVudHM6XCIpfSAgICAgICAgJHtldmVudHMuam9pbihcIiwgXCIpfWApO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcIldlYmhvb2sgU2VjcmV0OlwiKX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLnByaW1hcnkocmVzcG9uc2Uuc2VjcmV0KX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcIlVzZSB0aGlzIHNlY3JldCB0byB2ZXJpZnkgd2ViaG9vayBzaWduYXR1cmVzIGluIHlvdXIgYXBwLlwiKSxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgICBjb25zdCBzcGluMiA9IHNwaW5uZXIoXCJDb25uZWN0aW5nIHRvIFNlbmRseS4uLlwiKTtcbiAgICAgIHNwaW4yLnN0YXJ0KCk7XG5cbiAgICAgIGF3YWl0IHRoaXMuY29ubmVjdFdlYlNvY2tldChyZXNwb25zZS53c1VybCwgZmxhZ3MuZm9yd2FyZCk7XG5cbiAgICAgIHNwaW4yLnN1Y2NlZWQoXCJDb25uZWN0ZWRcIik7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoXCJXYWl0aW5nIGZvciBldmVudHMuLi4gKEN0cmwrQyB0byBxdWl0KVwiKSk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwi4pSAXCIucmVwZWF0KDYwKSkpO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3QgY2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgaW5mbyhcIlNodXR0aW5nIGRvd24uLi5cIik7XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYW51cCgpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgICB9O1xuXG4gICAgICBwcm9jZXNzLm9uKFwiU0lHSU5UXCIsIGNsZWFudXApO1xuICAgICAgcHJvY2Vzcy5vbihcIlNJR1RFUk1cIiwgY2xlYW51cCk7XG5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKCgpID0+IHt9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uZmFpbChcIkZhaWxlZCB0byBzdGFydCBsaXN0ZW5lclwiKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3RXZWJTb2NrZXQod3NVcmw6IHN0cmluZywgZm9yd2FyZFVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMud3MgPSBuZXcgV2ViU29ja2V0KHdzVXJsKTtcblxuICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiV2ViU29ja2V0IGNvbm5lY3Rpb24gdGltZW91dFwiKSk7XG4gICAgICB9LCAzMDAwMCk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJvcGVuXCIsICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMud3Mub24oXCJtZXNzYWdlXCIsIGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZTogV2ViU29ja2V0TWVzc2FnZSA9IEpTT04ucGFyc2UoZGF0YS50b1N0cmluZygpKTtcblxuICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFwiY2xpX2Nvbm5lY3RlZFwiKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gXCJ3ZWJob29rX2V2ZW50XCIgJiYgbWVzc2FnZS5ldmVudCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFdmVudChtZXNzYWdlLCBmb3J3YXJkVXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcGFyc2UgV2ViU29ja2V0IG1lc3NhZ2U6XCIsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiY2xvc2VcIiwgKGNvZGUsIHJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoY29kZSAhPT0gMTAwMCkge1xuICAgICAgICAgIHdhcm4oYFdlYlNvY2tldCBkaXNjb25uZWN0ZWQ6ICR7cmVhc29uIHx8IGNvZGV9YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgIGVycm9yKGBXZWJTb2NrZXQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUV2ZW50KFxuICAgIG1lc3NhZ2U6IFdlYlNvY2tldE1lc3NhZ2UsXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBldmVudCA9IG1lc3NhZ2UuZXZlbnQhO1xuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG1lc3NhZ2UudGltZXN0YW1wITtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBtZXNzYWdlLnNpZ25hdHVyZSE7XG5cbiAgICB0aGlzLmRpc3BsYXlFdmVudChldmVudCk7XG5cbiAgICBpZiAodGhpcy52ZXJpZnlTaWduYXR1cmUoZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKSkge1xuICAgICAgYXdhaXQgdGhpcy5mb3J3YXJkRXZlbnQoZm9yd2FyZFVybCwgZXZlbnQsIHRpbWVzdGFtcCwgc2lnbmF0dXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IFNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkYCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmVyaWZ5U2lnbmF0dXJlKFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5zZWNyZXQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShldmVudCk7XG4gICAgY29uc3Qgc2lnbmVkUGF5bG9hZCA9IGAke3RpbWVzdGFtcH0uJHtwYXlsb2FkfWA7XG4gICAgY29uc3QgZXhwZWN0ZWRTaWduYXR1cmUgPSBgc2hhMjU2PSR7Y3J5cHRvXG4gICAgICAuY3JlYXRlSG1hYyhcInNoYTI1NlwiLCB0aGlzLnNlY3JldClcbiAgICAgIC51cGRhdGUoc2lnbmVkUGF5bG9hZCwgXCJ1dGY4XCIpXG4gICAgICAuZGlnZXN0KFwiaGV4XCIpfWA7XG5cbiAgICByZXR1cm4gc2lnbmF0dXJlID09PSBleHBlY3RlZFNpZ25hdHVyZTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheUV2ZW50KGV2ZW50OiBXZWJob29rRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZShldmVudC5jcmVhdGVkICogMTAwMCkudG9Mb2NhbGVUaW1lU3RyaW5nKCk7XG4gICAgY29uc3QgZXZlbnRUeXBlID0gZXZlbnQudHlwZTtcblxuICAgIGxldCBzdGF0dXNDb2xvciA9IGNvbG9ycy5pbmZvO1xuICAgIGlmIChldmVudFR5cGUuaW5jbHVkZXMoXCJkZWxpdmVyZWRcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLnN1Y2Nlc3M7XG4gICAgaWYgKGV2ZW50VHlwZS5pbmNsdWRlcyhcImZhaWxlZFwiKSB8fCBldmVudFR5cGUuaW5jbHVkZXMoXCJib3VuY2VkXCIpKSBzdGF0dXNDb2xvciA9IGNvbG9ycy5lcnJvcjtcbiAgICBpZiAoZXZlbnRUeXBlLmluY2x1ZGVzKFwicmV0cnlpbmdcIikpIHN0YXR1c0NvbG9yID0gY29sb3JzLndhcm5pbmc7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGAke2NvbG9ycy5kaW0odGltZXN0YW1wKX0gJHtzdGF0dXNDb2xvcihcIuKGklwiKX0gJHtjb2xvcnMuYm9sZChldmVudFR5cGUpfWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhPy5vYmplY3Q7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VJZCA9IGRhdGEuaWQgYXMgc3RyaW5nO1xuICAgICAgY29uc3QgdG8gPSBkYXRhLnRvIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IGJhdGNoSWQgPSAoZGF0YSBhcyBhbnkpLmJhdGNoX2lkIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChtZXNzYWdlSWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiaWQ6XCIpfSAke21lc3NhZ2VJZH1gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0bykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJ0bzpcIil9ICR7dG99YCk7XG4gICAgICB9XG4gICAgICBpZiAoYmF0Y2hJZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJiYXRjaDpcIil9ICR7YmF0Y2hJZH1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZvcndhcmRFdmVudChcbiAgICBmb3J3YXJkVXJsOiBzdHJpbmcsXG4gICAgZXZlbnQ6IFdlYmhvb2tFdmVudCxcbiAgICB0aW1lc3RhbXA6IG51bWJlcixcbiAgICBzaWduYXR1cmU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShldmVudCk7XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZm9yd2FyZFVybCwge1xuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgXCJYLVNlbmRseS1TaWduYXR1cmVcIjogc2lnbmF0dXJlLFxuICAgICAgICAgIFwiWC1TZW5kbHktVGltZXN0YW1wXCI6IHRpbWVzdGFtcC50b1N0cmluZygpLFxuICAgICAgICAgIFwiWC1TZW5kbHktRXZlbnRcIjogZXZlbnQudHlwZSxcbiAgICAgICAgICBcIlgtU2VuZGx5LUV2ZW50LUlkXCI6IGV2ZW50LmlkLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBwYXlsb2FkLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgICAke2NvbG9ycy5zdWNjZXNzKFwi4pyTXCIpfSBGb3J3YXJkZWQgdG8gJHtmb3J3YXJkVXJsfSAoJHtyZXNwb25zZS5zdGF0dXN9KWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgICAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gRm9yd2FyZCBmYWlsZWQgKCR7cmVzcG9uc2Uuc3RhdHVzfSlgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGAgICR7Y29sb3JzLmVycm9yKFwi4pyXXCIpfSBGb3J3YXJkIGVycm9yOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsZWFudXAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMud3MpIHtcbiAgICAgIHRoaXMud3MuY2xvc2UoMTAwMCwgXCJDbGllbnQgc2h1dGRvd25cIik7XG4gICAgICB0aGlzLndzID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZXNzaW9uSWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGFwaUNsaWVudC5kZWxldGUoYC9hcGkvY2xpL2xpc3Rlbi9zdG9wLyR7dGhpcy5zZXNzaW9uSWR9YCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIGNsZWFudXAgZXJyb3JzXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3dlYmhvb2tzL2xpc3Rlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsS0FBSyxFQUNMLElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sU0FBUyxNQUFNLElBQUksQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQztBQStCdEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBQzlELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGlIQUFpSCxDQUFDO0lBRXBILE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsbUNBQW1DO1FBQ25DLDJFQUEyRTtRQUMzRSw2RUFBNkU7S0FDOUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDcEIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsZ0NBQWdDO1lBQzdDLE9BQU8sRUFBRSwrQkFBK0I7U0FDekMsQ0FBQztRQUNGLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25CLElBQUksRUFBRSxHQUFHO1lBQ1QsV0FBVyxFQUNULDRKQUE0SjtZQUM5SixPQUFPLEVBQ0wsK2ZBQStmO1NBQ2xnQixDQUFDO0tBQ0gsQ0FBQztJQUVNLEVBQUUsR0FBcUIsSUFBSSxDQUFDO0lBQzVCLFNBQVMsR0FBa0IsSUFBSSxD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QU0sR0FBRyxDQUMzRSxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUM3RCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG1CQUFvQixHQUFhLENBQUMsT0FBTyxFQUFFLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTztRQUNuQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLHdCQUF3QjtZQUMxQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQge1xuICBzdWNjZXNzLFxuICBlcnJvcixcbiAgaW5mbyxcbiAgd2FybixcbiAgY29sb3JzLFxuICBzcGlubmVyLFxufSBmcm9tIFwiLi4vLi4vbGliL291dHB1dC5qc1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnVmFsdWUgfSBmcm9tIFwiLi4vLi4vbGliL2NvbmZpZy5qc1wiO1xuaW1wb3J0IFdlYlNvY2tldCBmcm9tIFwid3NcIjtcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuaW50ZXJmYWNlIFdlYmhvb2tFdmVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgYXBpX3ZlcnNpb246IHN0cmluZztcbiAgY3JlYXRlZDogbnVtYmVyO1xuICBsaXZlbW9kZTogYm9vbGVhbjtcbiAgZGF0YToge1xuICAgIG9iamVjdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH07XG59XG5cbmludGVyZmFjZSBXZWJTb2NrZXRNZXNzYWdlIHtcbiAgdHlwZTogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBudW1iZXI7XG4gIHNpZ25hdHVyZT86IHN0cmluZztcbiAgZXZlbnQ/OiBXZWJob29rRXZlbnQ7XG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgZXZlbnRzPzogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBMaXN0ZW5TdGFydFJlc3BvbnNlIHtcbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIHdzVG9rZW46IHN0cmluZztcbiAgc2VjcmV0OiBzdHJpbmc7XG4gIHdzVXJsOiBzdHJpbmc7XG4gIGV2ZW50czogc3RyaW5nW107XG4gIGZvcndhcmRVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2ViaG9va3NMaXN0ZW4gZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJMaXN0ZW4gZm9yIHdlYmhvb2tzIGxvY2FsbHkuIFJlY2VpdmVzIGV2ZW50cyBpbiByZWFsLXRpbWUgdmlhIFdlYlNvY2tldCBhbmQgZm9yd2FyZHMgdGhlbSB0byB5b3VyIGxvY2FsIHNlcnZlci5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiB3ZWJob29rcyBsaXN0ZW5cIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlbiAtLWZvcndhcmQgaHR0cDovL2xvY2FsaG9zdDozMDAwL3dlYmhvb2tcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHdlYmhvb2tzIGxpc3RlbiAtLWV2ZW50cyBtZXNzYWdlLmRlbGl2ZXJlZCxtZXNzYWdlLmZhaWxlZFwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgZm9yd2FyZDogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiZlwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTG9jYWwgVVJMIHRvIGZvcndhcmQgZXZlbnRzIHRvXCIsXG4gICAgICBkZWZhdWx0OiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC93ZWJob29rXCIsXG4gICAgfSksXG4gICAgZXZlbnRzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJlXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBldmVudHMgdG8gbGlzdGVuIGZvci4gRGVmYXVsdCBzdWJzY3JpYmVzIHRvIGFsbCBtZXNzYWdlLiogYW5kIGNvbnRhY3QuKiAvIGNvbnRhY3RzLiogZXZlbnRzIHNvIG5vdGhpbmcgaXMgbWlzc2VkIGR1cmluZyBsb2NhbCBkZXYuXCIsXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBcIm1lc3NhZ2Uuc2VudCxtZXNzYWdlLmRlbGl2ZXJlZCxtZXNzYWdlLmZhaWxlZCxtZXNzYWdlLmJvdW5jZWQsbWVzc2FnZS5yZXRyeWluZyxtZXNzYWdlLnJlY2VpdmVkLG1lc3NhZ2Uub3B0X291dCxtZXNzYWdlLm9wdF9pbixjb250YWN0LmF1dG9fZmxhZ2dlZCxjb250YWN0Lm1hcmtlZF92YWxpZCxjb250YWN0cy5sb29rdXBfY29tcGxldGVkLGNvbnRhY3RzLmJ1bGtfbWFya2VkX3ZhbGlkLGJyYW5kLnZlcmlmaWVkLGJyYW5kLmZhaWxlZCxjYW1wYWlnbi5hcHByb3ZlZCxjYW1wYWlnbi5yZWplY3RlZCxjYW1wYWlnbi5zdXNwZW5kZWQsYXNzaWdubWVudC5jb25maXJtZWQsYXNzaWdubWVudC5mYWlsZWQscG9ydC5jb21wbGV0ZWQscG9ydF9vdXQucmVxdWVzdGVkLHBvcnRfb3V0LmNvbXBsZXRlZCxwb3J0X291dC5yZWplY3RlZCxwb3J0X291dC5jYW5jZWxsZWQsbnVtYmVyLmFjdGl2YXRlZCxudW1iZXIuZmFpbGVkLG51bWJlci5yZXF1aXJlbWVudHNfcmVxdWlyZWQsbnVtYmVyLnJlbGVhc2VkXCIsXG4gICAgfSksXG4gIH07XG5cbiAgcHJpdmF0ZSB3czogV2ViU29ja2V0IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2Vzc2lvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzZWNyZXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKFdlYmhvb2tzTGlzdGVuKTtcblxuICAgIHRyeSB7XG4gICAgICBuZXcgVVJMKGZsYWdzLmZvcndhcmQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5lcnJvcihgSW52YWxpZCBmb3J3YXJkIFVSTDogJHtmbGFncy5mb3J3YXJkfS4gTXVzdCBiZSBhIHZhbGlkIFVSTCAoZS5nLiwgaHR0cDovL2xvY2FsaG9zdDozMDAwL3dlYmhvb2spLmApO1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IGZsYWdzLmV2ZW50cy5zcGxpdChcIixcIikubWFwKChlKSA9PiBlLnRyaW0oKSk7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIlN0YXJ0aW5nIHdlYmhvb2sgbGlzdGVuZXIuLi5cIik7XG4gICAgc3Bpbi5zdGFydCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8TGlzdGVuU3RhcnRSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS9jbGkvbGlzdGVuL3N0YXJ0XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudHMsXG4gICAgICAgICAgZm9yd2FyZFVybDogZmxhZ3MuZm9yd2FyZCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuc2Vzc2lvbklkID0gcmVzcG9uc2Uuc2Vzc2lvbklkO1xuICAgICAgdGhpcy5zZWNyZXQgPSByZXNwb25zZS5zZWNyZXQ7XG5cbiAgICAgIHNwaW4uc3VjY2VlZChcIkxpc3RlbmVyIHJlZ2lzdGVyZWRcIik7XG5cbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChjb2xvcnMucHJpbWFyeShcIldlYmhvb2sgbGlzdGVuZXIgcmVhZHkhXCIpKSk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGAgICR7Y29sb3JzLmRpbShcIkZvcndhcmRpbmcgdG86XCIpfSAke2NvbG9ycy5jb2RlKGZsYWdzLmZvcndhcmQpfWAsXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiRXZlbnRzOlwiKX0gICAgICAgICR7ZXZlbnRzLmpvaW4oXCIsIFwiKX1gKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oXCJXZWJob29rIFNlY3JldDpcIil9YCk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5wcmltYXJ5KHJlc3BvbnNlLnNlY3JldCl9YCk7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNvbG9ycy5kaW0oXCJVc2UgdGhpcyBzZWNyZXQgdG8gdmVyaWZ5IHdlYmhvb2sgc2lnbmF0dXJlcyBpbiB5b3VyIGFwcC5cIiksXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coKTtcblxuICAgICAgY29uc3Qgc3BpbjIgPSBzcGlubmVyKFwiQ29ubmVjdGluZyB0byBTZW5kbHkuLi5cIik7XG4gICAgICBzcGluMi5zdGFydCgpO1xuXG4gICAgICBhd2FpdCB0aGlzLmNvbm5lY3RXZWJTb2NrZXQocmVzcG9uc2Uud3NVcmwsIGZsYWdzLmZvcndhcmQpO1xuXG4gICAgICBzcGluMi5zdWNjZWVkKFwiQ29ubmVjdGVkXCIpO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKFwiV2FpdGluZyBmb3IgZXZlbnRzLi4uIChDdHJsK0MgdG8gcXVpdClcIikpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIuKUgFwiLnJlcGVhdCg2MCkpKTtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICAgIGNvbnN0IGNsZWFudXAgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIGluZm8oXCJTaHV0dGluZyBkb3duLi4uXCIpO1xuICAgICAgICBhd2FpdCB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgICAgfTtcblxuICAgICAgcHJvY2Vzcy5vbihcIlNJR0lOVFwiLCBjbGVhbnVwKTtcbiAgICAgIHByb2Nlc3Mub24oXCJTSUdURVJNXCIsIGNsZWFudXApO1xuXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzcGluLmZhaWwoXCJGYWlsZWQgdG8gc3RhcnQgbGlzdGVuZXJcIik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb25uZWN0V2ViU29ja2V0KHdzVXJsOiBzdHJpbmcsIGZvcndhcmRVcmw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLndzID0gbmV3IFdlYlNvY2tldCh3c1VybCk7XG5cbiAgICAgIGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIldlYlNvY2tldCBjb25uZWN0aW9uIHRpbWVvdXRcIikpO1xuICAgICAgfSwgMzAwMDApO1xuXG4gICAgICB0aGlzLndzLm9uKFwib3BlblwiLCAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLndzLm9uKFwibWVzc2FnZVwiLCBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2U6IFdlYlNvY2tldE1lc3NhZ2UgPSBKU09OLnBhcnNlKGRhdGEudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSBcImNsaV9jb25uZWN0ZWRcIikge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IFwid2ViaG9va19ldmVudFwiICYmIG1lc3NhZ2UuZXZlbnQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRXZlbnQobWVzc2FnZSwgZm9yd2FyZFVybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHBhcnNlIFdlYlNvY2tldCBtZXNzYWdlOlwiLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy53cy5vbihcImNsb3NlXCIsIChjb2RlLCByZWFzb24pID0+IHtcbiAgICAgICAgaWYgKGNvZGUgIT09IDEwMDApIHtcbiAgICAgICAgICB3YXJuKGBXZWJTb2NrZXQgZGlzY29ubmVjdGVkOiAke3JlYXNvbiB8fCBjb2RlfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy53cy5vbihcImVycm9yXCIsIChlcnIpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICBlcnJvcihgV2ViU29ja2V0IGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVFdmVudChcbiAgICBtZXNzYWdlOiBXZWJTb2NrZXRNZXNzYWdlLFxuICAgIGZvcndhcmRVcmw6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZXZlbnQgPSBtZXNzYWdlLmV2ZW50ITtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBtZXNzYWdlLnRpbWVzdGFtcCE7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gbWVzc2FnZS5zaWduYXR1cmUhO1xuXG4gICAgdGhpcy5kaXNwbGF5RXZlbnQoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMudmVyaWZ5U2lnbmF0dXJlKGV2ZW50LCB0aW1lc3RhbXAsIHNpZ25hdHVyZSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuZm9yd2FyZEV2ZW50KGZvcndhcmRVcmwsIGV2ZW50LCB0aW1lc3RhbXAsIHNpZ25hdHVyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmVycm9yKFwi4pyXXCIpfSBTaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxlZGApO1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeVNpZ25hdHVyZShcbiAgICBldmVudDogV2ViaG9va0V2ZW50LFxuICAgIHRpbWVzdGFtcDogbnVtYmVyLFxuICAgIHNpZ25hdHVyZTogc3RyaW5nLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2VjcmV0KSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoZXZlbnQpO1xuICAgIGNvbnN0IHNpZ25lZFBheWxvYWQgPSBgJHt0aW1lc3RhbXB9LiR7cGF5bG9hZH1gO1xuICAgIGNvbnN0IGV4cGVjdGVkU2lnbmF0dXJlID0gYHNoYTI1Nj0ke2NyeXB0b1xuICAgICAgLmNyZWF0ZUhtYWMoXCJzaGEyNTZcIiwgdGhpcy5zZWNyZXQpXG4gICAgICAudXBkYXRlKHNpZ25lZFBheWxvYWQsIFwidXRmOFwiKVxuICAgICAgLmRpZ2VzdChcImhleFwiKX1gO1xuXG4gICAgcmV0dXJuIHNpZ25hdHVyZSA9PT0gZXhwZWN0ZWRTaWduYXR1cmU7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlFdmVudChldmVudDogV2ViaG9va0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gbmV3IERhdGUoZXZlbnQuY3JlYXRlZCAqIDEwMDApLnRvTG9jYWxlVGltZVN0cmluZygpO1xuICAgIGNvbnN0IGV2ZW50VHlwZSA9IGV2ZW50LnR5cGU7XG5cbiAgICBsZXQgc3RhdHVzQ29sb3IgPSBjb2xvcnMuaW5mbztcbiAgICBpZiAoZXZlbnRUeXBlLmluY2x1ZGVzKFwiZGVsaXZlcmVkXCIpKSBzdGF0dXNDb2xvciA9IGNvbG9ycy5zdWNjZXNzO1xuICAgIGlmIChldmVudFR5cGUuaW5jbHVkZXMoXCJmYWlsZWRcIikgfHwgZXZlbnRUeXBlLmluY2x1ZGVzKFwiYm91bmNlZFwiKSkgc3RhdHVzQ29sb3IgPSBjb2xvcnMuZXJyb3I7XG4gICAgaWYgKGV2ZW50VHlwZS5pbmNsdWRlcyhcInJldHJ5aW5nXCIpKSBzdGF0dXNDb2xvciA9IGNvbG9ycy53YXJuaW5nO1xuXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgJHtjb2xvcnMuZGltKHRpbWVzdGFtcCl9ICR7c3RhdHVzQ29sb3IoXCLihpJcIil9ICR7Y29sb3JzLmJvbGQoZXZlbnRUeXBlKX1gLFxuICAgICk7XG5cbiAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YT8ub2JqZWN0O1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBjb25zdCBtZXNzYWdlSWQgPSBkYXRhLmlkIGFzIHN0cmluZztcbiAgICAgIGNvbnN0IHRvID0gZGF0YS50byBhcyBzdHJpbmc7XG4gICAgICBjb25zdCBiYXRjaElkID0gKGRhdGEgYXMgYW55KS5iYXRjaF9pZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y29sb3JzLmRpbShcImlkOlwiKX0gJHttZXNzYWdlSWR9YCk7XG4gICAgICB9XG4gICAgICBpZiAodG8pIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwidG86XCIpfSAke3RvfWApO1xuICAgICAgfVxuICAgICAgaWYgKGJhdGNoSWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKFwiYmF0Y2g6XCIpfSAke2JhdGNoSWR9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmb3J3YXJkRXZlbnQoXG4gICAgZm9yd2FyZFVybDogc3RyaW5nLFxuICAgIGV2ZW50OiBXZWJob29rRXZlbnQsXG4gICAgdGltZXN0YW1wOiBudW1iZXIsXG4gICAgc2lnbmF0dXJlOiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoZXZlbnQpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGZvcndhcmRVcmwsIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIFwiWC1TZW5kbHktU2lnbmF0dXJlXCI6IHNpZ25hdHVyZSxcbiAgICAgICAgICBcIlgtU2VuZGx5LVRpbWVzdGFtcFwiOiB0aW1lc3RhbXAudG9TdHJpbmcoKSxcbiAgICAgICAgICBcIlgtU2VuZGx5LUV2ZW50XCI6IGV2ZW50LnR5cGUsXG4gICAgICAgICAgXCJYLVNlbmRseS1FdmVudC1JZFwiOiBldmVudC5pZCxcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogcGF5bG9hZCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgJHtjb2xvcnMuc3VjY2VzcyhcIuKck1wiKX0gRm9yd2FyZGVkIHRvICR7Zm9yd2FyZFVybH0gKCR7cmVzcG9uc2Uuc3RhdHVzfSlgLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYCAgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9IEZvcndhcmQgZmFpbGVkICgke3Jlc3BvbnNlLnN0YXR1c30pYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgICAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gRm9yd2FyZCBlcnJvcjogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhbnVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLndzKSB7XG4gICAgICB0aGlzLndzLmNsb3NlKDEwMDAsIFwiQ2xpZW50IHNodXRkb3duXCIpO1xuICAgICAgdGhpcy53cyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2Vzc2lvbklkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBhcGlDbGllbnQuZGVsZXRlKGAvYXBpL2NsaS9saXN0ZW4vc3RvcC8ke3RoaXMuc2Vzc2lvbklkfWApO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElnbm9yZSBjbGVhbnVwIGVycm9yc1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|