textlane 0.2.1 → 0.5.0
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/build/actions/addon/resolve.d.ts +1 -0
- package/build/actions/addon/resolve.js +3 -2
- package/build/actions/libc/detect.d.ts +5 -0
- package/build/actions/libc/detect.js +11 -0
- package/build/actions/run/finish.d.ts +1 -1
- package/build/actions/run/finish.js +7 -3
- package/build/generated/html.d.ts +35 -2
- package/build/generated/html.js +1 -1
- package/build/generated/md.d.ts +64 -3
- package/build/generated/md.js +21 -3
- package/build/generated/nl.d.ts +3 -2
- package/build/generated/nl.js +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.js +6 -1
- package/build/models/addon.d.ts +30 -15
- package/build/models/addon.js +1 -1
- package/build/models/file.d.ts +3 -2
- package/build/models/file.js +1 -1
- package/build/models/plugin.d.ts +7 -0
- package/build/models/plugin.js +1 -1
- package/build/models/processor.d.ts +11 -7
- package/build/models/processor.js +54 -25
- package/build/settings.d.ts +3 -1
- package/build/settings.js +14 -3
- package/package.json +15 -7
- package/skills/textlane-usage/SKILL.md +16 -4
|
@@ -4,7 +4,8 @@ export function resolveAddon(props) {
|
|
|
4
4
|
const override = props.env[ADDON_ENV];
|
|
5
5
|
if (override)
|
|
6
6
|
return override;
|
|
7
|
-
const
|
|
7
|
+
const suffix = props.libc === "musl" ? "-musl" : "";
|
|
8
|
+
const key = `${props.platform}-${props.arch}${suffix}`;
|
|
8
9
|
const platform = PLATFORMS[key];
|
|
9
10
|
if (!platform) {
|
|
10
11
|
const supported = Object.keys(PLATFORMS).join(", ");
|
|
@@ -19,4 +20,4 @@ export function resolveAddon(props) {
|
|
|
19
20
|
`--no-optional / --omit=optional so the addon for ${key} comes along.`);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FjdGlvbnMvYWRkb24vcmVzb2x2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV0RSwyRkFBMkY7QUFDM0YsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQU01QjtJQUNDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDckMsSUFBSSxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUE7SUFFN0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ25ELE1BQU0sR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFBO0lBQ3RELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsWUFBWSxxQkFBcUIsR0FBRyxnQkFBZ0IsU0FBUyxJQUFJO1lBQ2xFLE9BQU8sU0FBUyxrREFBa0QsQ0FDckUsQ0FBQTtJQUNILENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsUUFBUSxDQUFDLFdBQVcsZ0NBQWdDLFlBQVksV0FBVztZQUM1RSxvREFBb0QsR0FBRyxlQUFlLENBQ3pFLENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFERE9OX0VOViwgUEFDS0FHRV9OQU1FLCBQTEFURk9STVMgfSBmcm9tIFwiLi4vLi4vc2V0dGluZ3MudHNcIlxuXG4vKiogRmluZCB0aGUgdGV4dGxhbmUgYWRkb246IHRoZSBlbnYgb3ZlcnJpZGUgZmlyc3QsIGVsc2UgdGhlIG1hdGNoaW5nIHBsYXRmb3JtIHBhY2thZ2UuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFkZG9uKHByb3BzOiB7XG4gIHBsYXRmb3JtOiBzdHJpbmdcbiAgYXJjaDogc3RyaW5nXG4gIGxpYmM6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD5cbiAgcmVzb2x2ZVBhY2thZ2U6IChzcGVjaWZpZXI6IHN0cmluZykgPT4gc3RyaW5nXG59KSB7XG4gIGNvbnN0IG92ZXJyaWRlID0gcHJvcHMuZW52W0FERE9OX0VOVl1cbiAgaWYgKG92ZXJyaWRlKSByZXR1cm4gb3ZlcnJpZGVcblxuICBjb25zdCBzdWZmaXggPSBwcm9wcy5saWJjID09PSBcIm11c2xcIiA/IFwiLW11c2xcIiA6IFwiXCJcbiAgY29uc3Qga2V5ID0gYCR7cHJvcHMucGxhdGZvcm19LSR7cHJvcHMuYXJjaH0ke3N1ZmZpeH1gXG4gIGNvbnN0IHBsYXRmb3JtID0gUExBVEZPUk1TW2tleV1cbiAgaWYgKCFwbGF0Zm9ybSkge1xuICAgIGNvbnN0IHN1cHBvcnRlZCA9IE9iamVjdC5rZXlzKFBMQVRGT1JNUykuam9pbihcIiwgXCIpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7UEFDS0FHRV9OQU1FfSBoYXMgbm8gYWRkb24gZm9yICR7a2V5fTsgc3VwcG9ydGVkOiAke3N1cHBvcnRlZH0uIGAgK1xuICAgICAgICBgU2V0ICR7QURET05fRU5WfSB0byBhbiBhZGRvbiBidWlsdCB3aXRoIGNhcmdvIHRvIGxvYWQgaXQgYW55d2F5LmAsXG4gICAgKVxuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIHByb3BzLnJlc29sdmVQYWNrYWdlKGAke3BsYXRmb3JtLnBhY2thZ2VOYW1lfS8ke3BsYXRmb3JtLmFkZG9ufWApXG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke3BsYXRmb3JtLnBhY2thZ2VOYW1lfSBpcyBub3QgaW5zdGFsbGVkLiBSZWluc3RhbGwgJHtQQUNLQUdFX05BTUV9IHdpdGhvdXQgYCArXG4gICAgICAgIGAtLW5vLW9wdGlvbmFsIC8gLS1vbWl0PW9wdGlvbmFsIHNvIHRoZSBhZGRvbiBmb3IgJHtrZXl9IGNvbWVzIGFsb25nLmAsXG4gICAgKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** The C library Node runs on under Linux: glibc when its report names a glibc, else musl. */
|
|
2
|
+
export function detectLibc(props) {
|
|
3
|
+
if (props.platform !== "linux")
|
|
4
|
+
return undefined;
|
|
5
|
+
const report = props.report();
|
|
6
|
+
const header = "header" in report ? report.header : undefined;
|
|
7
|
+
if (typeof header !== "object" || header === null)
|
|
8
|
+
return "glibc";
|
|
9
|
+
return "glibcVersionRuntime" in header && header.glibcVersionRuntime ? "glibc" : "musl";
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWN0aW9ucy9saWJjL2RldGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RkFBOEY7QUFDOUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFpRDtJQUMxRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssT0FBTztRQUFFLE9BQU8sU0FBUyxDQUFBO0lBQ2hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUM3QixNQUFNLE1BQU0sR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDN0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUk7UUFBRSxPQUFPLE9BQU8sQ0FBQTtJQUNqRSxPQUFPLHFCQUFxQixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ3pGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIEMgbGlicmFyeSBOb2RlIHJ1bnMgb24gdW5kZXIgTGludXg6IGdsaWJjIHdoZW4gaXRzIHJlcG9ydCBuYW1lcyBhIGdsaWJjLCBlbHNlIG11c2wuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0TGliYyhwcm9wczogeyBwbGF0Zm9ybTogc3RyaW5nOyByZXBvcnQ6ICgpID0+IG9iamVjdCB9KSB7XG4gIGlmIChwcm9wcy5wbGF0Zm9ybSAhPT0gXCJsaW51eFwiKSByZXR1cm4gdW5kZWZpbmVkXG4gIGNvbnN0IHJlcG9ydCA9IHByb3BzLnJlcG9ydCgpXG4gIGNvbnN0IGhlYWRlciA9IFwiaGVhZGVyXCIgaW4gcmVwb3J0ID8gcmVwb3J0LmhlYWRlciA6IHVuZGVmaW5lZFxuICBpZiAodHlwZW9mIGhlYWRlciAhPT0gXCJvYmplY3RcIiB8fCBoZWFkZXIgPT09IG51bGwpIHJldHVybiBcImdsaWJjXCJcbiAgcmV0dXJuIFwiZ2xpYmNWZXJzaW9uUnVudGltZVwiIGluIGhlYWRlciAmJiBoZWFkZXIuZ2xpYmNWZXJzaW9uUnVudGltZSA/IFwiZ2xpYmNcIiA6IFwibXVzbFwiXG59XG4iXX0=
|
|
@@ -4,7 +4,7 @@ import type { Host } from "../../models/host.ts";
|
|
|
4
4
|
/** Run the host plugins a native run pauses at until it finishes; under `sync`, a plugin
|
|
5
5
|
* finishing later fails with `async-in-sync`, as an asynchronous native stage does. */
|
|
6
6
|
export declare function finishRun(props: {
|
|
7
|
-
run: NativeRun
|
|
7
|
+
run: NativeRun;
|
|
8
8
|
hosts: Map<number, Host>;
|
|
9
9
|
file: HostFile;
|
|
10
10
|
sync: boolean;
|
|
@@ -6,7 +6,7 @@ export function finishRun(props) {
|
|
|
6
6
|
let sent = props.file.messages.length;
|
|
7
7
|
while (props.run.hosts().length > 0) {
|
|
8
8
|
mirrorMessages();
|
|
9
|
-
const tree = runHosts(props, props.run.hosts(), props.run.tree());
|
|
9
|
+
const tree = runHosts(props, props.run.hosts(), readTree(props.run.tree()));
|
|
10
10
|
if (isThenable(tree)) {
|
|
11
11
|
if (props.sync)
|
|
12
12
|
throw asyncError(props.call);
|
|
@@ -26,7 +26,7 @@ export function finishRun(props) {
|
|
|
26
26
|
sent = props.file.messages.length;
|
|
27
27
|
}
|
|
28
28
|
function resume(tree) {
|
|
29
|
-
props.run.resume(tree, props.file.messages.slice(sent).map(message => message.toJSON()));
|
|
29
|
+
props.run.resume(JSON.stringify(tree), props.file.messages.slice(sent).map(message => message.toJSON()));
|
|
30
30
|
sent = props.file.messages.length;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -45,8 +45,12 @@ function runHosts(props, ids, tree) {
|
|
|
45
45
|
}
|
|
46
46
|
return tree;
|
|
47
47
|
}
|
|
48
|
+
function readTree(text) {
|
|
49
|
+
const tree = JSON.parse(text);
|
|
50
|
+
return tree;
|
|
51
|
+
}
|
|
48
52
|
function asyncError(call) {
|
|
49
53
|
const message = `\`${call}Sync\` finished async. Use \`${call}\` instead`;
|
|
50
54
|
return Object.assign(new Error(message), { code: "async-in-sync" });
|
|
51
55
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluaXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYWN0aW9ucy9ydW4vZmluaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV0RDt1RkFDdUY7QUFDdkYsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQU16QjtJQUNDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQTtJQUNyQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BDLGNBQWMsRUFBRSxDQUFBO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDM0UsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLEtBQUssQ0FBQyxJQUFJO2dCQUFFLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM1QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ1osT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDekIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUVELHdGQUF3RjtJQUN4RixTQUFTLGNBQWM7UUFDckIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdkUsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzdFLENBQUM7UUFDRCxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFBO0lBQ25DLENBQUM7SUFFRCxTQUFTLE1BQU0sQ0FBQyxJQUFVO1FBQ3hCLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ3BCLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FDakUsQ0FBQTtRQUNELElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUE7SUFDbkMsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FDZixLQUFnRixFQUNoRixHQUFhLEVBQ2IsSUFBVTtJQUVWLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUE7UUFDcEQsSUFBSSxDQUFDLFdBQVc7WUFBRSxTQUFRO1FBQzFCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ2hFLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxNQUFNLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDNUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFDRCxJQUFJLEdBQUcsTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDNUIsTUFBTSxJQUFJLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFZO0lBQzlCLE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxnQ0FBZ0MsSUFBSSxZQUFZLENBQUE7SUFDekUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUE7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmF0aXZlUnVuIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hZGRvbi50c1wiXG5pbXBvcnQgdHlwZSB7IE5vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ZpbGUudHNcIlxuaW1wb3J0IHsgdHlwZSBIb3N0RmlsZSwgSG9zdE1lc3NhZ2UgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3ZmaWxlLnRzXCJcbmltcG9ydCB0eXBlIHsgSG9zdCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvaG9zdC50c1wiXG5pbXBvcnQgeyBjYWxsSG9zdCwgaXNUaGVuYWJsZSB9IGZyb20gXCIuLi9ob3N0L2NhbGwudHNcIlxuXG4vKiogUnVuIHRoZSBob3N0IHBsdWdpbnMgYSBuYXRpdmUgcnVuIHBhdXNlcyBhdCB1bnRpbCBpdCBmaW5pc2hlczsgdW5kZXIgYHN5bmNgLCBhIHBsdWdpblxuICogZmluaXNoaW5nIGxhdGVyIGZhaWxzIHdpdGggYGFzeW5jLWluLXN5bmNgLCBhcyBhbiBhc3luY2hyb25vdXMgbmF0aXZlIHN0YWdlIGRvZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluaXNoUnVuKHByb3BzOiB7XG4gIHJ1bjogTmF0aXZlUnVuXG4gIGhvc3RzOiBNYXA8bnVtYmVyLCBIb3N0PlxuICBmaWxlOiBIb3N0RmlsZVxuICBzeW5jOiBib29sZWFuXG4gIGNhbGw6IFwicnVuXCIgfCBcInByb2Nlc3NcIlxufSk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IHNlbnQgPSBwcm9wcy5maWxlLm1lc3NhZ2VzLmxlbmd0aFxuICB3aGlsZSAocHJvcHMucnVuLmhvc3RzKCkubGVuZ3RoID4gMCkge1xuICAgIG1pcnJvck1lc3NhZ2VzKClcbiAgICBjb25zdCB0cmVlID0gcnVuSG9zdHMocHJvcHMsIHByb3BzLnJ1bi5ob3N0cygpLCByZWFkVHJlZShwcm9wcy5ydW4udHJlZSgpKSlcbiAgICBpZiAoaXNUaGVuYWJsZSh0cmVlKSkge1xuICAgICAgaWYgKHByb3BzLnN5bmMpIHRocm93IGFzeW5jRXJyb3IocHJvcHMuY2FsbClcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJlZSkudGhlbih0cmVlID0+IHtcbiAgICAgICAgcmVzdW1lKHRyZWUpXG4gICAgICAgIHJldHVybiBmaW5pc2hSdW4ocHJvcHMpXG4gICAgICB9KVxuICAgIH1cbiAgICByZXN1bWUodHJlZSlcbiAgfVxuXG4gIC8vIGZpbGUubWVzc2FnZXMgZm9sbG93cyB0aGUgcnVuJ3M6IHdoYXQgbmF0aXZlIHN0YWdlcyByZXBvcnRlZCBzaW5jZSwgdGhlbiB0aGUgcGx1Z2lucydcbiAgZnVuY3Rpb24gbWlycm9yTWVzc2FnZXMoKSB7XG4gICAgY29uc3QgcmVwb3J0ZWQgPSBwcm9wcy5ydW4ubWVzc2FnZXMoKS5zbGljZShwcm9wcy5maWxlLm1lc3NhZ2VzLmxlbmd0aClcbiAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgcmVwb3J0ZWQpIHtcbiAgICAgIHByb3BzLmZpbGUubWVzc2FnZXMucHVzaChIb3N0TWVzc2FnZS5mcm9tTWVzc2FnZShtZXNzYWdlLCBwcm9wcy5maWxlLnBhdGgpKVxuICAgIH1cbiAgICBzZW50ID0gcHJvcHMuZmlsZS5tZXNzYWdlcy5sZW5ndGhcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlc3VtZSh0cmVlOiBOb2RlKSB7XG4gICAgcHJvcHMucnVuLnJlc3VtZShcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRyZWUpLFxuICAgICAgcHJvcHMuZmlsZS5tZXNzYWdlcy5zbGljZShzZW50KS5tYXAobWVzc2FnZSA9PiBtZXNzYWdlLnRvSlNPTigpKSxcbiAgICApXG4gICAgc2VudCA9IHByb3BzLmZpbGUubWVzc2FnZXMubGVuZ3RoXG4gIH1cbn1cblxuZnVuY3Rpb24gcnVuSG9zdHMoXG4gIHByb3BzOiB7IGhvc3RzOiBNYXA8bnVtYmVyLCBIb3N0PjsgZmlsZTogSG9zdEZpbGU7IHN5bmM6IGJvb2xlYW47IGNhbGw6IHN0cmluZyB9LFxuICBpZHM6IG51bWJlcltdLFxuICB0cmVlOiBOb2RlLFxuKTogTm9kZSB8IFByb21pc2VMaWtlPE5vZGU+IHtcbiAgZm9yIChjb25zdCBbaW5kZXgsIGlkXSBvZiBpZHMuZW50cmllcygpKSB7XG4gICAgY29uc3QgdHJhbnNmb3JtZXIgPSBwcm9wcy5ob3N0cy5nZXQoaWQpPy50cmFuc2Zvcm1lclxuICAgIGlmICghdHJhbnNmb3JtZXIpIGNvbnRpbnVlXG4gICAgY29uc3QgcmVzdWx0ID0gY2FsbEhvc3QoeyB0cmFuc2Zvcm1lciwgdHJlZSwgZmlsZTogcHJvcHMuZmlsZSB9KVxuICAgIGlmIChpc1RoZW5hYmxlKHJlc3VsdCkpIHtcbiAgICAgIGlmIChwcm9wcy5zeW5jKSB0aHJvdyBhc3luY0Vycm9yKHByb3BzLmNhbGwpXG4gICAgICByZXR1cm4gcmVzdWx0LnRoZW4odHJlZSA9PiBydW5Ib3N0cyhwcm9wcywgaWRzLnNsaWNlKGluZGV4ICsgMSksIHRyZWUpKVxuICAgIH1cbiAgICB0cmVlID0gcmVzdWx0XG4gIH1cbiAgcmV0dXJuIHRyZWVcbn1cblxuZnVuY3Rpb24gcmVhZFRyZWUodGV4dDogc3RyaW5nKSB7XG4gIGNvbnN0IHRyZWU6IE5vZGUgPSBKU09OLnBhcnNlKHRleHQpXG4gIHJldHVybiB0cmVlXG59XG5cbmZ1bmN0aW9uIGFzeW5jRXJyb3IoY2FsbDogc3RyaW5nKSB7XG4gIGNvbnN0IG1lc3NhZ2UgPSBgXFxgJHtjYWxsfVN5bmNcXGAgZmluaXNoZWQgYXN5bmMuIFVzZSBcXGAke2NhbGx9XFxgIGluc3RlYWRgXG4gIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihtZXNzYWdlKSwgeyBjb2RlOiBcImFzeW5jLWluLXN5bmNcIiB9KVxufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Root } from "hast";
|
|
2
|
+
import type { Parser, Plugin } from "../models/plugin.ts";
|
|
2
3
|
/** `html.parse`: HTML into hast; options named as rehype-parse names them. */
|
|
3
4
|
export interface ParseOptions {
|
|
4
5
|
/** Parse a fragment, as in a `template`, rather than a whole document. @default false */
|
|
@@ -23,9 +24,18 @@ export interface FormatOptions {
|
|
|
23
24
|
indent?: Indent | null;
|
|
24
25
|
/** Indent the first level, usually `<html>`'s `head` and `body`; `true` when left out. */
|
|
25
26
|
indentInitial?: boolean | null;
|
|
27
|
+
/** Only collapse whitespace, as rehype-minify-whitespace does, adding no line endings or indentation; `{ newlines: true }` collapses a run holding a line ending to it. */
|
|
28
|
+
minify?: Minify | null;
|
|
26
29
|
}
|
|
27
30
|
/** One level of indentation. */
|
|
28
31
|
export type Indent = number | string;
|
|
32
|
+
/** `html.format`'s `minify`: on, or on with rehype-minify-whitespace's options. */
|
|
33
|
+
export type Minify = boolean | MinifyOptions;
|
|
34
|
+
/** rehype-minify-whitespace's options. */
|
|
35
|
+
export interface MinifyOptions {
|
|
36
|
+
/** Collapse a run of whitespace holding a line ending to a line ending, not a space. @default false */
|
|
37
|
+
newlines?: boolean;
|
|
38
|
+
}
|
|
29
39
|
/** `html.sanitize`: keep only what a schema allows; options: hast-util-sanitize's schema, where a field left out keeps the default schema's, which is GitHub's. */
|
|
30
40
|
export interface SanitizeOptions {
|
|
31
41
|
/** Keep comments. */
|
|
@@ -57,7 +67,30 @@ export type Primitive = boolean | number | string;
|
|
|
57
67
|
export interface SlugOptions {
|
|
58
68
|
/** Put before each id. @default "" */
|
|
59
69
|
prefix?: string;
|
|
70
|
+
/** Link each heading with an `id` to itself, as rehype-autolink-headings does: `true`, or its options. */
|
|
71
|
+
autolink?: Autolink | null;
|
|
72
|
+
}
|
|
73
|
+
/** `html.slug`'s `autolink`: on, or on with rehype-autolink-headings' options. */
|
|
74
|
+
export type Autolink = boolean | AutolinkOptions;
|
|
75
|
+
/** rehype-autolink-headings' options, JSON values only. */
|
|
76
|
+
export interface AutolinkOptions {
|
|
77
|
+
/** Where the link goes: in the heading first or last, around its content, or before or after it. */
|
|
78
|
+
behavior?: AutolinkBehavior;
|
|
79
|
+
/** The link's properties, as hast names them; `ariaHidden` and `tabIndex: -1` for `prepend` and `append` when left out. */
|
|
80
|
+
properties?: Record<string, unknown> | null;
|
|
81
|
+
/** hast content of the link, one node or a list; `<span class="icon icon-link">` when left out, except for `wrap`, which appends it to the heading's content. */
|
|
82
|
+
content?: unknown;
|
|
83
|
+
/** A hast element wrapping the heading and its link, for `before` and `after`. */
|
|
84
|
+
group?: unknown;
|
|
85
|
+
/** Properties set on each linked heading. */
|
|
86
|
+
headingProperties?: Record<string, unknown> | null;
|
|
87
|
+
/** The tag names of the headings to link; every heading when left out. */
|
|
88
|
+
test?: TagNames | null;
|
|
60
89
|
}
|
|
90
|
+
/** Where `autolink` puts each heading's link. */
|
|
91
|
+
export type AutolinkBehavior = "prepend" | "append" | "wrap" | "before" | "after";
|
|
92
|
+
/** One tag name or several. */
|
|
93
|
+
export type TagNames = string | string[];
|
|
61
94
|
/** `html.externalLinks`: `rel`, `target` and more on links to other sites, as rehype-external-links adds them; options named as it names them, JSON values only. */
|
|
62
95
|
export interface ExternalLinksOptions {
|
|
63
96
|
/** The `target` of each external link, such as `_blank`. */
|
|
@@ -233,7 +266,7 @@ export interface StringifyOptions {
|
|
|
233
266
|
voids?: string[] | null;
|
|
234
267
|
}
|
|
235
268
|
/** The `html.parse` plugin. */
|
|
236
|
-
export declare function parse(options?: ParseOptions): Plugin<"html.parse", ParseOptions>;
|
|
269
|
+
export declare function parse(options?: ParseOptions): Plugin<"html.parse", ParseOptions> & Parser<Root>;
|
|
237
270
|
/** The `html.raw` plugin. */
|
|
238
271
|
export declare function raw(options?: RawOptions): Plugin<"html.raw", RawOptions>;
|
|
239
272
|
/** The `html.format` plugin. */
|
package/build/generated/html.js
CHANGED
|
@@ -73,4 +73,4 @@ export function stringify(options) {
|
|
|
73
73
|
return { name: "html.stringify" };
|
|
74
74
|
return { name: "html.stringify", options };
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2dlbmVyYXRlZC9odG1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQXFPL0UsK0JBQStCO0FBQy9CLE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBc0I7SUFDMUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUE7SUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDeEMsQ0FBQztBQUVELDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCxnQ0FBZ0M7QUFDaEMsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUF1QjtJQUM1QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQTtJQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN6QyxDQUFDO0FBRUQsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUE7SUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsSUFBSSxDQUFDLE9BQXFCO0lBQ3hDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3ZDLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE4QjtJQUMxRCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFBO0lBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDaEQsQ0FBQztBQUVELHNDQUFzQztBQUN0QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUE7QUFDdEMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQTJCO0lBQ3BELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsbUNBQW1DO0FBQ25DLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQTtJQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzVDLENBQUM7QUFFRCwrQkFBK0I7QUFDL0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQTtJQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsb0NBQW9DO0FBQ3BDLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBMkI7SUFDcEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQTtJQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzdDLENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCO0lBQ2xELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGBwbnBtIGdlbmVyYXRlOmJpbmRpbmdzYCBmcm9tIHRoZSBjcmF0ZSdzIHBsdWdpbnM7IGRvIG5vdCBlZGl0LlxuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gXCIuLi9tb2RlbHMvcGx1Z2luLnRzXCJcblxuLyoqIGBodG1sLnBhcnNlYDogSFRNTCBpbnRvIGhhc3Q7IG9wdGlvbnMgbmFtZWQgYXMgcmVoeXBlLXBhcnNlIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlT3B0aW9ucyB7XG4gIC8qKiBQYXJzZSBhIGZyYWdtZW50LCBhcyBpbiBhIGB0ZW1wbGF0ZWAsIHJhdGhlciB0aGFuIGEgd2hvbGUgZG9jdW1lbnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGZyYWdtZW50PzogYm9vbGVhblxuICAvKiogUmVwb3J0IHBhcnNlIGVycm9ycyBhcyBtZXNzYWdlcyBvbiB0aGUgZmlsZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZW1pdFBhcnNlRXJyb3JzPzogYm9vbGVhblxuICAvKiogQWRkIHRoZSBwb3NpdGlvbnMgb2Ygb3BlbmluZyBhbmQgY2xvc2luZyB0YWdzIGFuZCBhdHRyaWJ1dGVzIHRvIGVsZW1lbnRzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB2ZXJib3NlPzogYm9vbGVhblxufVxuXG4vKiogYGh0bWwucmF3YDogcmVwYXJzZSByYXcgSFRNTCBhbmQgZml4IG5lc3RpbmcgdGhyb3VnaCB0aGUgSFRNTCBwYXJzZXI7IG9wdGlvbnMgbmFtZWQgYXMgaGFzdC11dGlsLXJhdyBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYXdPcHRpb25zIHtcbiAgLyoqIE5vZGUgdHlwZXMsIHVua25vd24gdG8gaGFzdCwgdG8gY29weSB0aHJvdWdoIGFzIHRoZXkgYXJlOyB0aGVpciBjaGlsZHJlbiBhcmUgcmVwYXJzZWQgb24gdGhlaXIgb3duLiBAZGVmYXVsdCBbXSAqL1xuICBwYXNzVGhyb3VnaD86IHN0cmluZ1tdXG4gIC8qKiBFc2NhcGUgdGhlIG9wZW5pbmcgYDxgIG9mIHRoZSB0YWdzIEdGTSdzIHRhZ2ZpbHRlciBkaXNhbGxvd3MgaW4gcmF3IG5vZGVzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0YWdmaWx0ZXI/OiBib29sZWFuXG59XG5cbi8qKiBgaHRtbC5mb3JtYXRgOiBpbmRlbnQgYW5kIGNvbGxhcHNlIHdoaXRlc3BhY2UgZm9yIHJlYWRhYmxlIEhUTUw7IG9wdGlvbnMgbmFtZWQgYXMgaGFzdC11dGlsLWZvcm1hdCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRPcHRpb25zIHtcbiAgLyoqIFRhZyBuYW1lcyBvZiBlbGVtZW50cyB0byBwdXQgYSBibGFuayBsaW5lIGJldHdlZW4sIHdoZW4gYm90aCBhcmUgb25lLiBAZGVmYXVsdCBbXSAqL1xuICBibGFua3M/OiBzdHJpbmdbXVxuICAvKiogT25lIGxldmVsIG9mIGluZGVudGF0aW9uOiBhIG51bWJlciBvZiBzcGFjZXMgb3IgdGhlIHRleHQgaXRzZWxmOyB0d28gc3BhY2VzIHdoZW4gbGVmdCBvdXQuICovXG4gIGluZGVudD86IEluZGVudCB8IG51bGxcbiAgLyoqIEluZGVudCB0aGUgZmlyc3QgbGV2ZWwsIHVzdWFsbHkgYDxodG1sPmAncyBgaGVhZGAgYW5kIGBib2R5YDsgYHRydWVgIHdoZW4gbGVmdCBvdXQuICovXG4gIGluZGVudEluaXRpYWw/OiBib29sZWFuIHwgbnVsbFxufVxuXG4vKiogT25lIGxldmVsIG9mIGluZGVudGF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgSW5kZW50ID0gbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgaHRtbC5zYW5pdGl6ZWA6IGtlZXAgb25seSB3aGF0IGEgc2NoZW1hIGFsbG93czsgb3B0aW9uczogaGFzdC11dGlsLXNhbml0aXplJ3Mgc2NoZW1hLCB3aGVyZSBhIGZpZWxkIGxlZnQgb3V0IGtlZXBzIHRoZSBkZWZhdWx0IHNjaGVtYSdzLCB3aGljaCBpcyBHaXRIdWIncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FuaXRpemVPcHRpb25zIHtcbiAgLyoqIEtlZXAgY29tbWVudHMuICovXG4gIGFsbG93Q29tbWVudHM/OiBib29sZWFuIHwgbnVsbFxuICAvKiogS2VlcCBkb2N0eXBlcy4gKi9cbiAgYWxsb3dEb2N0eXBlcz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBFbGVtZW50cyBhbGxvd2VkIG9ubHkgaW5zaWRlIG9uZSBvZiB0aGVzZSBhbmNlc3RvcnMsIGJ5IHRhZyBuYW1lLiAqL1xuICBhbmNlc3RvcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCBudWxsXG4gIC8qKiBQcm9wZXJ0aWVzIGFsbG93ZWQgcGVyIHRhZyBuYW1lLCBgKmAgZm9yIGV2ZXJ5IGVsZW1lbnQ7IGEgbGlzdCBuYW1lcyBhIHByb3BlcnR5IGFuZCB0aGUgdmFsdWVzIGl0IG1heSBoYXZlLiAqL1xuICBhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgQXR0cmlidXRlRGVmaW5pdGlvbltdPiB8IG51bGxcbiAgLyoqIFByb3BlcnRpZXMgd2hvc2UgdmFsdWVzIGdldCBgY2xvYmJlcl9wcmVmaXhgLCBzbyB0aGV5IGNhbm5vdCBjbG9iYmVyIGdsb2JhbHMuICovXG4gIGNsb2JiZXI/OiBzdHJpbmdbXSB8IG51bGxcbiAgLyoqIFRoZSBwcmVmaXggb2YgY2xvYmJlcmVkIHZhbHVlcy4gKi9cbiAgY2xvYmJlclByZWZpeD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFVSTCBwcm9wZXJ0aWVzIGFuZCB0aGUgcHJvdG9jb2xzIHRoZXkgbWF5IHVzZS4gKi9cbiAgcHJvdG9jb2xzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgbnVsbFxuICAvKiogUHJvcGVydGllcyBzZXQgb24gZWxlbWVudHMgd2hhdGV2ZXIgdGhleSBoYWQsIGJ5IHRhZyBuYW1lLiAqL1xuICByZXF1aXJlZD86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZT4+IHwgbnVsbFxuICAvKiogRWxlbWVudHMgZHJvcHBlZCB3aXRoIHRoZWlyIGNvbnRlbnQgcmF0aGVyIHRoYW4gdW53cmFwcGVkLiAqL1xuICBzdHJpcD86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogVGhlIGVsZW1lbnRzIGtlcHQuICovXG4gIHRhZ05hbWVzPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBBIHByb3BlcnR5IGEgc2FuaXRpemUgc2NoZW1hIGFsbG93czogYnkgbmFtZSwgb3IgYSBuYW1lIGFuZCBpdHMgYWxsb3dlZCB2YWx1ZXMuICovXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVEZWZpbml0aW9uID0gc3RyaW5nIHwgUHJpbWl0aXZlW11cblxuLyoqIEEgcHJpbWl0aXZlIHByb3BlcnR5IHZhbHVlLiAqL1xuZXhwb3J0IHR5cGUgUHJpbWl0aXZlID0gYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZ1xuXG4vKiogYGh0bWwuc2x1Z2A6IGlkcyBvbiBoZWFkaW5ncywgZnJvbSB0aGVpciB0ZXh0OyBvcHRpb25zIG5hbWVkIGFzIHJlaHlwZS1zbHVnIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFNsdWdPcHRpb25zIHtcbiAgLyoqIFB1dCBiZWZvcmUgZWFjaCBpZC4gQGRlZmF1bHQgXCJcIiAqL1xuICBwcmVmaXg/OiBzdHJpbmdcbn1cblxuLyoqIGBodG1sLmV4dGVybmFsTGlua3NgOiBgcmVsYCwgYHRhcmdldGAgYW5kIG1vcmUgb24gbGlua3MgdG8gb3RoZXIgc2l0ZXMsIGFzIHJlaHlwZS1leHRlcm5hbC1saW5rcyBhZGRzIHRoZW07IG9wdGlvbnMgbmFtZWQgYXMgaXQgbmFtZXMgdGhlbSwgSlNPTiB2YWx1ZXMgb25seS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxMaW5rc09wdGlvbnMge1xuICAvKiogVGhlIGB0YXJnZXRgIG9mIGVhY2ggZXh0ZXJuYWwgbGluaywgc3VjaCBhcyBgX2JsYW5rYC4gKi9cbiAgdGFyZ2V0Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGByZWxgIG9mIGVhY2ggZXh0ZXJuYWwgbGluazogYSBsaXN0LCBvciB0b2tlbnMgc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlOyBgbm9mb2xsb3dgIHdoZW4gbGVmdCBvdXQgb3IgZW1wdHksIG5vbmUgZm9yIGFuIGVtcHR5IGxpc3QuICovXG4gIHJlbD86IFRva2VucyB8IG51bGxcbiAgLyoqIFRoZSBwcm90b2NvbHMgb2YgYWJzb2x1dGUgVVJMcyB0aGF0IGNvdW50IGFzIGV4dGVybmFsOyBgaHR0cGAgYW5kIGBodHRwc2Agd2hlbiBsZWZ0IG91dC4gQSBwcm90b2NvbC1yZWxhdGl2ZSBgLy/igKZgIFVSTCBhbHdheXMgY291bnRzLiAqL1xuICBwcm90b2NvbHM/OiBzdHJpbmdbXSB8IG51bGxcbiAgLyoqIE1vcmUgcHJvcGVydGllcyBmb3IgZWFjaCBleHRlcm5hbCBsaW5rLCBhcyBoYXN0IG5hbWVzIHRoZW0uICovXG4gIHByb3BlcnRpZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbiAgLyoqIGhhc3QgY29udGVudCBhcHBlbmRlZCB0byBlYWNoIGV4dGVybmFsIGxpbmsgaW4gYSBgPHNwYW4+YDogb25lIG5vZGUgb3IgYSBsaXN0LiAqL1xuICBjb250ZW50PzogdW5rbm93blxuICAvKiogVGhlIHByb3BlcnRpZXMgb2YgdGhhdCBgPHNwYW4+YC4gKi9cbiAgY29udGVudFByb3BlcnRpZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbn1cblxuLyoqIFRva2VuczogYSBsaXN0LCBvciBvbmUgc3RyaW5nIG9mIHRoZW0gc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlLiAqL1xuZXhwb3J0IHR5cGUgVG9rZW5zID0gc3RyaW5nIHwgc3RyaW5nW11cblxuLyoqIGBodG1sLmV4dHJhY3RUb2NgOiB0aGUgaGVhZGluZ3MsIG5lc3RlZCBieSByYW5rLCBhcyB0aGUgZmlsZSdzIGBkYXRhLnRvY2AsIGFzIEBzdGVmYW5wcm9ic3QvcmVoeXBlLWV4dHJhY3QtdG9jIHN0b3JlcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0VG9jT3B0aW9ucyB7XG4gIC8qKiBBdHRyaWJ1dGVzLCBzdWNoIGFzIGBkYXRhLXRvYy1oaWRkZW5gLCB0aGF0IGtlZXAgYSBoZWFkaW5nIG91dCBvZiB0aGUgdGFibGUgb2YgY29udGVudHM7IHdoYXQgd291bGQgbmVzdCB1bmRlciBpdCBuZXN0cyB1bmRlciB0aGUgaGVhZGluZyBiZWZvcmUuIEBkZWZhdWx0IFtdICovXG4gIHNraXA/OiBzdHJpbmdbXVxufVxuXG4vKiogYGh0bWwuaGlnaGxpZ2h0YDogY29kZSBibG9ja3MgY29sb3JlZCBhcyBTaGlraSBjb2xvcnMgdGhlbSwgbmF0aXZlbHkgYnkgZ2lhbGxvOyBvcHRpb25zIG5hbWVkIGFzIEBzaGlraWpzL3JlaHlwZSBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaWdobGlnaHRPcHRpb25zIHtcbiAgLyoqIFRoZSB0aGVtZSBvZiBlYWNoIGNvbG9yIG1vZGUsIGBsaWdodGAgZmlyc3QsIGFzIGB7XCJsaWdodFwiOiDigKYsIFwiZGFya1wiOiDigKZ9YC4gKi9cbiAgdGhlbWVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsXG4gIC8qKiBUaGUgb25lIHRoZW1lLCB3aGVuIGB0aGVtZXNgIGlzIG5vdCBnaXZlbi4gKi9cbiAgdGhlbWU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgbGFuZ3VhZ2Ugb2YgYSBibG9jayB0aGF0IG5hbWVzIG5vbmU7IHN1Y2ggYSBibG9jayBpcyBsZWZ0IGFsb25lIHdpdGhvdXQgaXQuICovXG4gIGRlZmF1bHRMYW5ndWFnZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBsYW5ndWFnZSBvZiBhIGJsb2NrIG5hbWluZyBvbmUgU2hpa2kgZG9lcyBub3Qga25vdzsgbGVmdCBhbG9uZSB3aXRob3V0IGl0LiAqL1xuICBmYWxsYmFja0xhbmd1YWdlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogQ29sb3JzIHRvIHJlcGxhY2UsIGJ5IHRoZWlyIGxvd2VyY2FzZSBzcGVsbGluZzogYSBjb2xvciBmb3IgZXZlcnkgdGhlbWUsIG9yIGEgdGhlbWUncyBuYW1lIHRvIGEgbWFwIG9mIGl0cyBvd24uICovXG4gIGNvbG9yUmVwbGFjZW1lbnRzPzogUmVjb3JkPHN0cmluZywgQ29sb3JSZXBsYWNlbWVudD5cbiAgLyoqIEFkZCBgbGFuZ3VhZ2UtPG5hbWU+YCB0byBlYWNoIGhpZ2hsaWdodGVkIGA8Y29kZT5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhZGRMYW5ndWFnZUNsYXNzPzogYm9vbGVhblxuICAvKiogSGlnaGxpZ2h0IGlubGluZSBjb2RlIHRvbywgYnkgaG93IGl0IG5hbWVzIGl0cyBsYW5ndWFnZTogYHRhaWxpbmctY3VybHktY29sb25gIHJlYWRzIGBgIGBhKCl7OmpzfWAgYGAuICovXG4gIGlubGluZT86IElubGluZUNvZGUgfCBudWxsXG4gIC8qKiBUaGUgYDxwcmU+YCBwcm9wZXJ0eSB0aGF0IGdldHMgYSBibG9jaydzIG1ldGEsIHRoZSB0ZXh0IGFmdGVyIGl0cyBsYW5ndWFnZTsgdGhlIEpTT04gc3RhbmQtaW4gZm9yIGBwYXJzZU1ldGFTdHJpbmc6IG1ldGEgPT4gKHsgW25hbWVdOiBtZXRhIH0pYC4gKi9cbiAgbWV0YVByb3BlcnR5Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIHRyYW5zZm9ybWVycyBvZiBAc2hpa2lqcy90cmFuc2Zvcm1lcnMgdG8gcnVuLCBpbiBvcmRlciwgYnkgbmFtZSBvciB3aXRoIG9wdGlvbnMuICovXG4gIHRyYW5zZm9ybWVycz86IEhpZ2hsaWdodFRyYW5zZm9ybWVyW11cbiAgLyoqIExpbmVzIGF0IGxlYXN0IHRoaXMgbG9uZywgaW4gVVRGLTE2IHVuaXRzLCBhcmUgbGVmdCBvbmUgcGxhaW4gdG9rZW4gYXMgU2hpa2kncyBvd24gb3B0aW9uIGxlYXZlcyB0aGVtOyAyLDAwMCB3aGVuIGxlZnQgb3V0LCB3aGVyZSBTaGlraSBoYXMgbm8gbGltaXQsIHNpbmNlIGEgZ3JhbW1hcidzIHRpbWUgZ3Jvd3Mgd2l0aCB0aGUgc3F1YXJlIG9mIGEgbGluZSdzIGxlbmd0aC4gYDBgIGxpZnRzIGl0LiAqL1xuICB0b2tlbml6ZU1heExpbmVMZW5ndGg/OiBudW1iZXIgfCBudWxsXG59XG5cbi8qKiBBIHJlcGxhY2VtZW50IGNvbG9yLCBvciBhIHRoZW1lJ3Mgb3duIHJlcGxhY2VtZW50cy4gKi9cbmV4cG9ydCB0eXBlIENvbG9yUmVwbGFjZW1lbnQgPSBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG5cbi8qKiBIb3cgaW5saW5lIGNvZGUgbmFtZXMgaXRzIGxhbmd1YWdlLiAqL1xuZXhwb3J0IHR5cGUgSW5saW5lQ29kZSA9IFwidGFpbGluZy1jdXJseS1jb2xvblwiXG5cbi8qKiBBIHRyYW5zZm9ybWVyIG9mIEBzaGlraWpzL3RyYW5zZm9ybWVyczogaXRzIG5hbWUgYWxvbmUsIG9yIGl0cyBuYW1lIGFuZCBvcHRpb25zLiAqL1xuZXhwb3J0IHR5cGUgSGlnaGxpZ2h0VHJhbnNmb3JtZXIgPSBUcmFuc2Zvcm1lck5hbWUgfCBDb25maWd1cmVkVHJhbnNmb3JtZXJcblxuLyoqIFRoZSB0cmFuc2Zvcm1lcnMgYGh0bWwuaGlnaGxpZ2h0YCBydW5zIG5hdGl2ZWx5LiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNmb3JtZXJOYW1lID0gXCJub3RhdGlvbkRpZmZcIiB8IFwibm90YXRpb25Gb2N1c1wiIHwgXCJub3RhdGlvbkhpZ2hsaWdodFwiIHwgXCJub3RhdGlvbkVycm9yTGV2ZWxcIiB8IFwibWV0YUhpZ2hsaWdodFwiIHwgXCJtZXRhV29yZEhpZ2hsaWdodFwiIHwgXCJyZW5kZXJMaW5lTnVtYmVyXCJcblxuLyoqIEEgdHJhbnNmb3JtZXIgd2l0aCBpdHMgb3B0aW9ucywgYXMgQHNoaWtpanMvdHJhbnNmb3JtZXJzIG5hbWVzIHRoZW0uICovXG5leHBvcnQgdHlwZSBDb25maWd1cmVkVHJhbnNmb3JtZXIgPSB7IG5hbWU6IFwibm90YXRpb25EaWZmXCI7IGNsYXNzTGluZUFkZD86IENsYXNzZXMgfCBudWxsOyBjbGFzc0xpbmVSZW1vdmU/OiBDbGFzc2VzIHwgbnVsbDsgY2xhc3NBY3RpdmVQcmU/OiBDbGFzc2VzIHwgbnVsbDsgY2xhc3NBY3RpdmVDb2RlPzogQ2xhc3NlcyB8IG51bGwgfSB8IHsgbmFtZTogXCJub3RhdGlvbkZvY3VzXCI7IGNsYXNzQWN0aXZlTGluZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm5vdGF0aW9uSGlnaGxpZ2h0XCI7IGNsYXNzQWN0aXZlTGluZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm5vdGF0aW9uRXJyb3JMZXZlbFwiOyBjbGFzc01hcD86IFJlY29yZDxzdHJpbmcsIENsYXNzZXM+IHwgbnVsbDsgY2xhc3NBY3RpdmVQcmU/OiBDbGFzc2VzIHwgbnVsbDsgY2xhc3NBY3RpdmVDb2RlPzogQ2xhc3NlcyB8IG51bGwgfSB8IHsgbmFtZTogXCJtZXRhSGlnaGxpZ2h0XCI7IGNsYXNzTmFtZT86IENsYXNzZXMgfCBudWxsOyB6ZXJvSW5kZXhlZD86IGJvb2xlYW4gfSB8IHsgbmFtZTogXCJtZXRhV29yZEhpZ2hsaWdodFwiOyBjbGFzc05hbWU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcInJlbmRlckxpbmVOdW1iZXJcIjsgY2xhc3NMaW5lTnVtYmVyPzogQ2xhc3NlcyB8IG51bGw7IHN0YXJ0PzogbnVtYmVyIHwgbnVsbCB9XG5cbi8qKiBDbGFzcyBuYW1lczogYSBsaXN0LCBvciBvbmUgc3RyaW5nIG9mIHRoZW0gc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlLiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3NlcyA9IHN0cmluZyB8IHN0cmluZ1tdXG5cbi8qKiBgaHRtbC5rYXRleGA6IG1hdGggcmVuZGVyZWQgYXMgcmVoeXBlLWthdGV4IHJlbmRlcnMgaXQsIG5hdGl2ZWx5IGJ5IGthdGV4LXJzOyBvcHRpb25zIG5hbWVkIGFzIEthVGVYIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEthdGV4T3B0aW9ucyB7XG4gIC8qKiBUaGUgbWFya3VwIHRvIHdyaXRlLCBib3RoIEhUTUwgYW5kIE1hdGhNTCBieSBkZWZhdWx0LiAqL1xuICBvdXRwdXQ/OiBLYXRleE91dHB1dCB8IG51bGxcbiAgLyoqIFB1dCBlcXVhdGlvbiBudW1iZXJzIG9uIHRoZSBsZWZ0LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBsZXFubz86IGJvb2xlYW5cbiAgLyoqIEFsaWduIGRpc3BsYXkgbWF0aCB0byB0aGUgbGVmdCBpbnN0ZWFkIG9mIGNlbnRlcmluZyBpdC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZmxlcW4/OiBib29sZWFuXG4gIC8qKiBUaGUgY29sb3Igb2YgbWF0aCB0aGF0IGZhaWxzIHRvIHJlbmRlciwgYCNjYzAwMDBgIGJ5IGRlZmF1bHQuICovXG4gIGVycm9yQ29sb3I/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBNYWNyb3MgYnkgbmFtZSwgZWFjaCB0byB0aGUgVGVYIGl0IGV4cGFuZHMgdG8sIGFzIGB7XCJcXFxcUlJcIjogXCJcXFxcbWF0aGJie1J9XCJ9YC4gQGRlZmF1bHQge30gKi9cbiAgbWFjcm9zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAvKiogVGhlIHRoaW5uZXN0IGEgcnVsZSwgc3VjaCBhcyBhIGZyYWN0aW9uIGxpbmUsIGlzIGRyYXduLCBpbiBlbXMuICovXG4gIG1pblJ1bGVUaGlja25lc3M/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBMZXQgYFxcY29sb3JgIGNvbG9yIHRoZSB0ZXh0IGFmdGVyIGl0LCBhcyBMYVRlWCBkb2VzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjb2xvcklzVGV4dENvbG9yPzogYm9vbGVhblxuICAvKiogV2hhdCB0byBkbyB3aXRoIGlucHV0IExhVGVYIHdvdWxkIHJlamVjdDogYHRydWVgIG9yIGBcImVycm9yXCJgIGZhaWxzIGl0LCBgXCJ3YXJuXCJgIHByaW50cyBhIHdhcm5pbmcsIGBmYWxzZWAgb3IgYFwiaWdub3JlXCJgICh0aGUgZGVmYXVsdCkgYWNjZXB0cyBpdC4gKi9cbiAgc3RyaWN0PzogS2F0ZXhTdHJpY3QgfCBudWxsXG4gIC8qKiBBbGxvdyBjb21tYW5kcyB0aGF0IGNhbiBydW4gdW50cnVzdGVkIGlucHV0LCBzdWNoIGFzIGBcXGhyZWZgIGFuZCBgXFxpbmNsdWRlZ3JhcGhpY3NgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0cnVzdD86IGJvb2xlYW5cbiAgLyoqIFRoZSBsYXJnZXN0IGEgdXNlci1naXZlbiBzaXplIG1heSBiZSwgaW4gZW1zLiAqL1xuICBtYXhTaXplPzogbnVtYmVyIHwgbnVsbFxuICAvKiogSG93IG1hbnkgbWFjcm8gZXhwYW5zaW9ucyBvbmUgZm9ybXVsYSBtYXkgdGFrZSwgMTAwMCBieSBkZWZhdWx0LiAqL1xuICBtYXhFeHBhbmQ/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBMZXQgZGVmaW5pdGlvbnMgc3VjaCBhcyBgXFxkZWZgIGxhc3QgcGFzdCB0aGUgZm9ybXVsYSB0aGV5IGFyZSBpbi4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZ2xvYmFsR3JvdXA/OiBib29sZWFuXG59XG5cbi8qKiBUaGUgbWFya3VwIEthVGVYIHdyaXRlcy4gKi9cbmV4cG9ydCB0eXBlIEthdGV4T3V0cHV0ID0gXCJodG1sXCIgfCBcIm1hdGhtbFwiIHwgXCJodG1sQW5kTWF0aG1sXCJcblxuLyoqIEhvdyBzdHJpY3RseSBLYVRlWCBob2xkcyBpbnB1dCB0byBMYVRlWC4gKi9cbmV4cG9ydCB0eXBlIEthdGV4U3RyaWN0ID0gYm9vbGVhbiB8IEthdGV4U3RyaWN0TW9kZVxuXG4vKiogT25lIGxldmVsIG9mIEthVGVYJ3Mgc3RyaWN0bmVzcy4gKi9cbmV4cG9ydCB0eXBlIEthdGV4U3RyaWN0TW9kZSA9IFwiaWdub3JlXCIgfCBcIndhcm5cIiB8IFwiZXJyb3JcIlxuXG4vKiogYGh0bWwudG9NYXJrZG93bmA6IGhhc3QgaW50byBtZGFzdDsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtdG8tbWRhc3QgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9NYXJrZG93bk9wdGlvbnMge1xuICAvKiogV3JhcCBhbGwgcGhyYXNpbmcgY29udGVudCBvZiB0aGUgcm9vdCBpbiBwYXJhZ3JhcGhzLCBhcyBmb3IgYSB3aG9sZSBkb2N1bWVudC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZG9jdW1lbnQ/OiBib29sZWFuXG4gIC8qKiBDb2xsYXBzZSB3aGl0ZXNwYWNlIGhvbGRpbmcgYSBsaW5lIGVuZGluZyB0byB0aGF0IGxpbmUgZW5kaW5nIGluc3RlYWQgb2YgYSBzcGFjZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgbmV3bGluZXM/OiBib29sZWFuXG4gIC8qKiBUaGUgdGV4dCBvZiBhIGNoZWNrZWQgY2hlY2tib3ggb3IgcmFkaW8sIGBbeF1gIGJ5IGRlZmF1bHQuICovXG4gIGNoZWNrZWQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdGV4dCBvZiBhbiB1bmNoZWNrZWQgY2hlY2tib3ggb3IgcmFkaW8sIGBbIF1gIGJ5IGRlZmF1bHQuICovXG4gIHVuY2hlY2tlZD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBxdW90ZXMgYDxxPmAgdXNlcywgYW4gb3BlbmluZyBhbmQgY2xvc2luZyBjaGFyYWN0ZXIgZWFjaCwgYWx0ZXJuYXRpbmcgYnkgaG93IGRlZXAgaXQgbmVzdHM7IGBcImAgYnkgZGVmYXVsdC4gKi9cbiAgcXVvdGVzPzogc3RyaW5nW10gfCBudWxsXG59XG5cbi8qKiBgaHRtbC5zdHJpbmdpZnlgOiBoYXN0IGludG8gSFRNTDsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtdG8taHRtbCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdpZnlPcHRpb25zIHtcbiAgLyoqIFdyaXRlIHJhdyBub2RlcyBhcyB0aGV5IGFyZSBpbnN0ZWFkIG9mIGVzY2FwaW5nIHRoZW0uIEBkZWZhdWx0IGZhbHNlICovXG4gIGFsbG93RGFuZ2Vyb3VzSHRtbD86IGJvb2xlYW5cbiAgLyoqIExlYXZlIGNoYXJhY3RlcnMgdGhhdCBhcmUgb25seSBkYW5nZXJvdXMgaW4gc29tZSBjb250ZXh0cywgc3VjaCBhcyBgYCBgIGBgLCBhcyB0aGV5IGFyZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzPzogYm9vbGVhblxuICAvKiogTGVhdmUgY2hhcmFjdGVycyBhcyB0aGV5IGFyZSB3aGVyZSBicm93c2VycyBhY2NlcHQgdGhlbSB0aG91Z2ggdGhlIHNwZWMgZG9lcyBub3QuIEBkZWZhdWx0IGZhbHNlICovXG4gIGFsbG93UGFyc2VFcnJvcnM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBjb21tZW50cyBhcyBib2d1cyBjb21tZW50cywgYDw/YT5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBib2d1c0NvbW1lbnRzPzogYm9vbGVhblxuICAvKiogQ2xvc2UgZW1wdHkgZm9yZWlnbiBlbGVtZW50cywgYDxhIC8+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgY2xvc2VFbXB0eUVsZW1lbnRzPzogYm9vbGVhblxuICAvKiogQ2xvc2Ugdm9pZCBlbGVtZW50cywgYDxiciAvPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIGNsb3NlU2VsZkNsb3Npbmc/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBlbXB0eSBhdHRyaWJ1dGVzIGFzIGJhcmUgbmFtZXMsIGBhYCByYXRoZXIgdGhhbiBgYT1cIlwiYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgY29sbGFwc2VFbXB0eUF0dHJpYnV0ZXM/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBvdXQgdGFncyB0aGUgSFRNTCBzcGVjIGxldHMgYSBwYXJzZXIgaW1wbHkuIEBkZWZhdWx0IGZhbHNlICovXG4gIG9taXRPcHRpb25hbFRhZ3M/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBhdHRyaWJ1dGUgdmFsdWVzIHVucXVvdGVkIHdoZXJlIHRoYXQgaXMgc2FmZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgcHJlZmVyVW5xdW90ZWQ/OiBib29sZWFuXG4gIC8qKiBUaGUgcXVvdGUgYXR0cmlidXRlIHZhbHVlcyBhcmUgd3JhcHBlZCBpbjogYFwiYCBvciBgJ2AuICovXG4gIHF1b3RlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVXNlIHRoZSBvdGhlciBxdW90ZSB3aGVuIHRoZSB2YWx1ZSBob2xkcyBtb3JlIG9mIHRoZSBwcmVmZXJyZWQgb25lLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBxdW90ZVNtYXJ0PzogYm9vbGVhblxuICAvKiogVGhlIHNwYWNlIHRoZSB0cmVlIGlzIGluOiBgaHRtbGAgb3IgYHN2Z2AuICovXG4gIHNwYWNlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogTGVhdmUgb3V0IHRoZSBzcGFjZSBiZXR3ZWVuIHF1b3RlZCBhdHRyaWJ1dGVzLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodEF0dHJpYnV0ZXM/OiBib29sZWFuXG4gIC8qKiBKb2luIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXMgd2l0aCBgLGAgcmF0aGVyIHRoYW4gYCwgYC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdGlnaHRDb21tYVNlcGFyYXRlZExpc3RzPzogYm9vbGVhblxuICAvKiogV3JpdGUgYDwhZG9jdHlwZWh0bWw+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdGlnaHREb2N0eXBlPzogYm9vbGVhblxuICAvKiogTGVhdmUgb3V0IHRoZSBzcGFjZSBiZWZvcmUgYC8+YCB3aGVuIHRoZSBhdHRyaWJ1dGVzIGFsbG93LiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodFNlbGZDbG9zaW5nPzogYm9vbGVhblxuICAvKiogV3JpdGUgYDwhRE9DVFlQRSBodG1sPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIHVwcGVyRG9jdHlwZT86IGJvb2xlYW5cbiAgLyoqIFRoZSB0YWcgbmFtZXMgb2Ygdm9pZCBlbGVtZW50cywgd2hpY2ggaGF2ZSBubyBjbG9zaW5nIHRhZy4gKi9cbiAgdm9pZHM/OiBzdHJpbmdbXSB8IG51bGxcbn1cblxuLyoqIFRoZSBgaHRtbC5wYXJzZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKG9wdGlvbnM/OiBQYXJzZU9wdGlvbnMpOiBQbHVnaW48XCJodG1sLnBhcnNlXCIsIFBhcnNlT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwucGFyc2VcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5wYXJzZVwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5yYXdgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXcob3B0aW9ucz86IFJhd09wdGlvbnMpOiBQbHVnaW48XCJodG1sLnJhd1wiLCBSYXdPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5yYXdcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5yYXdcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuZm9ybWF0YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0KG9wdGlvbnM/OiBGb3JtYXRPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5mb3JtYXRcIiwgRm9ybWF0T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuZm9ybWF0XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuZm9ybWF0XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnNhbml0aXplYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemUob3B0aW9ucz86IFNhbml0aXplT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuc2FuaXRpemVcIiwgU2FuaXRpemVPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5zYW5pdGl6ZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnNhbml0aXplXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnNsdWdgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbHVnKG9wdGlvbnM/OiBTbHVnT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuc2x1Z1wiLCBTbHVnT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuc2x1Z1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnNsdWdcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuZXh0ZXJuYWxMaW5rc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVybmFsTGlua3Mob3B0aW9ucz86IEV4dGVybmFsTGlua3NPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5leHRlcm5hbExpbmtzXCIsIEV4dGVybmFsTGlua3NPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5leHRlcm5hbExpbmtzXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuZXh0ZXJuYWxMaW5rc1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC51bndyYXBJbWFnZXNgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBJbWFnZXMoKTogUGx1Z2luPFwiaHRtbC51bndyYXBJbWFnZXNcIj4ge1xuICByZXR1cm4geyBuYW1lOiBcImh0bWwudW53cmFwSW1hZ2VzXCIgfVxufVxuXG4vKiogVGhlIGBodG1sLmV4dHJhY3RUb2NgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VG9jKG9wdGlvbnM/OiBFeHRyYWN0VG9jT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuZXh0cmFjdFRvY1wiLCBFeHRyYWN0VG9jT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuZXh0cmFjdFRvY1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLmV4dHJhY3RUb2NcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuaGlnaGxpZ2h0YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gaGlnaGxpZ2h0KG9wdGlvbnM/OiBIaWdobGlnaHRPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5oaWdobGlnaHRcIiwgSGlnaGxpZ2h0T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuaGlnaGxpZ2h0XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuaGlnaGxpZ2h0XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLmthdGV4YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24ga2F0ZXgob3B0aW9ucz86IEthdGV4T3B0aW9ucyk6IFBsdWdpbjxcImh0bWwua2F0ZXhcIiwgS2F0ZXhPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5rYXRleFwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLmthdGV4XCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnRvTWFya2Rvd25gIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b01hcmtkb3duKG9wdGlvbnM/OiBUb01hcmtkb3duT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwudG9NYXJrZG93blwiLCBUb01hcmtkb3duT3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwudG9NYXJrZG93blwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnRvTWFya2Rvd25cIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwudG9OYXR1cmFsTGFuZ3VhZ2VgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b05hdHVyYWxMYW5ndWFnZSgpOiBQbHVnaW48XCJodG1sLnRvTmF0dXJhbExhbmd1YWdlXCI+IHtcbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnRvTmF0dXJhbExhbmd1YWdlXCIgfVxufVxuXG4vKiogVGhlIGBodG1sLnN0cmluZ2lmeWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeShvcHRpb25zPzogU3RyaW5naWZ5T3B0aW9ucyk6IFBsdWdpbjxcImh0bWwuc3RyaW5naWZ5XCIsIFN0cmluZ2lmeU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLnN0cmluZ2lmeVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnN0cmluZ2lmeVwiLCBvcHRpb25zIH1cbn1cbiJdfQ==
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2dlbmVyYXRlZC9odG1sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQTRRL0UsK0JBQStCO0FBQy9CLE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBc0I7SUFDMUMsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUE7SUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDeEMsQ0FBQztBQUVELDZCQUE2QjtBQUM3QixNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQW9CO0lBQ3RDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3RDLENBQUM7QUFFRCxnQ0FBZ0M7QUFDaEMsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUF1QjtJQUM1QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQTtJQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN6QyxDQUFDO0FBRUQsa0NBQWtDO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLENBQUMsT0FBeUI7SUFDaEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUE7SUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsSUFBSSxDQUFDLE9BQXFCO0lBQ3hDLElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQ3ZDLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE4QjtJQUMxRCxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFBO0lBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDaEQsQ0FBQztBQUVELHNDQUFzQztBQUN0QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUE7QUFDdEMsQ0FBQztBQUVELG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQTJCO0lBQ3BELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUE7SUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsbUNBQW1DO0FBQ25DLE1BQU0sVUFBVSxTQUFTLENBQUMsT0FBMEI7SUFDbEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQTtJQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzVDLENBQUM7QUFFRCwrQkFBK0I7QUFDL0IsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFzQjtJQUMxQyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQTtJQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN4QyxDQUFDO0FBRUQsb0NBQW9DO0FBQ3BDLE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBMkI7SUFDcEQsSUFBSSxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQTtJQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFBO0FBQzdDLENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLENBQUE7QUFDM0MsQ0FBQztBQUVELG1DQUFtQztBQUNuQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQTBCO0lBQ2xELElBQUksT0FBTyxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUE7SUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2VuZXJhdGVkIGJ5IGBwbnBtIGdlbmVyYXRlOmJpbmRpbmdzYCBmcm9tIHRoZSBjcmF0ZSdzIHBsdWdpbnM7IGRvIG5vdCBlZGl0LlxuXG5pbXBvcnQgdHlwZSB7IFJvb3QgfSBmcm9tIFwiaGFzdFwiXG5pbXBvcnQgdHlwZSB7IFBhcnNlciwgUGx1Z2luIH0gZnJvbSBcIi4uL21vZGVscy9wbHVnaW4udHNcIlxuXG4vKiogYGh0bWwucGFyc2VgOiBIVE1MIGludG8gaGFzdDsgb3B0aW9ucyBuYW1lZCBhcyByZWh5cGUtcGFyc2UgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VPcHRpb25zIHtcbiAgLyoqIFBhcnNlIGEgZnJhZ21lbnQsIGFzIGluIGEgYHRlbXBsYXRlYCwgcmF0aGVyIHRoYW4gYSB3aG9sZSBkb2N1bWVudC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZnJhZ21lbnQ/OiBib29sZWFuXG4gIC8qKiBSZXBvcnQgcGFyc2UgZXJyb3JzIGFzIG1lc3NhZ2VzIG9uIHRoZSBmaWxlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBlbWl0UGFyc2VFcnJvcnM/OiBib29sZWFuXG4gIC8qKiBBZGQgdGhlIHBvc2l0aW9ucyBvZiBvcGVuaW5nIGFuZCBjbG9zaW5nIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgdG8gZWxlbWVudHMuIEBkZWZhdWx0IGZhbHNlICovXG4gIHZlcmJvc2U/OiBib29sZWFuXG59XG5cbi8qKiBgaHRtbC5yYXdgOiByZXBhcnNlIHJhdyBIVE1MIGFuZCBmaXggbmVzdGluZyB0aHJvdWdoIHRoZSBIVE1MIHBhcnNlcjsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtcmF3IG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFJhd09wdGlvbnMge1xuICAvKiogTm9kZSB0eXBlcywgdW5rbm93biB0byBoYXN0LCB0byBjb3B5IHRocm91Z2ggYXMgdGhleSBhcmU7IHRoZWlyIGNoaWxkcmVuIGFyZSByZXBhcnNlZCBvbiB0aGVpciBvd24uIEBkZWZhdWx0IFtdICovXG4gIHBhc3NUaHJvdWdoPzogc3RyaW5nW11cbiAgLyoqIEVzY2FwZSB0aGUgb3BlbmluZyBgPGAgb2YgdGhlIHRhZ3MgR0ZNJ3MgdGFnZmlsdGVyIGRpc2FsbG93cyBpbiByYXcgbm9kZXMuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRhZ2ZpbHRlcj86IGJvb2xlYW5cbn1cblxuLyoqIGBodG1sLmZvcm1hdGA6IGluZGVudCBhbmQgY29sbGFwc2Ugd2hpdGVzcGFjZSBmb3IgcmVhZGFibGUgSFRNTDsgb3B0aW9ucyBuYW1lZCBhcyBoYXN0LXV0aWwtZm9ybWF0IG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdE9wdGlvbnMge1xuICAvKiogVGFnIG5hbWVzIG9mIGVsZW1lbnRzIHRvIHB1dCBhIGJsYW5rIGxpbmUgYmV0d2Vlbiwgd2hlbiBib3RoIGFyZSBvbmUuIEBkZWZhdWx0IFtdICovXG4gIGJsYW5rcz86IHN0cmluZ1tdXG4gIC8qKiBPbmUgbGV2ZWwgb2YgaW5kZW50YXRpb246IGEgbnVtYmVyIG9mIHNwYWNlcyBvciB0aGUgdGV4dCBpdHNlbGY7IHR3byBzcGFjZXMgd2hlbiBsZWZ0IG91dC4gKi9cbiAgaW5kZW50PzogSW5kZW50IHwgbnVsbFxuICAvKiogSW5kZW50IHRoZSBmaXJzdCBsZXZlbCwgdXN1YWxseSBgPGh0bWw+YCdzIGBoZWFkYCBhbmQgYGJvZHlgOyBgdHJ1ZWAgd2hlbiBsZWZ0IG91dC4gKi9cbiAgaW5kZW50SW5pdGlhbD86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBPbmx5IGNvbGxhcHNlIHdoaXRlc3BhY2UsIGFzIHJlaHlwZS1taW5pZnktd2hpdGVzcGFjZSBkb2VzLCBhZGRpbmcgbm8gbGluZSBlbmRpbmdzIG9yIGluZGVudGF0aW9uOyBgeyBuZXdsaW5lczogdHJ1ZSB9YCBjb2xsYXBzZXMgYSBydW4gaG9sZGluZyBhIGxpbmUgZW5kaW5nIHRvIGl0LiAqL1xuICBtaW5pZnk/OiBNaW5pZnkgfCBudWxsXG59XG5cbi8qKiBPbmUgbGV2ZWwgb2YgaW5kZW50YXRpb24uICovXG5leHBvcnQgdHlwZSBJbmRlbnQgPSBudW1iZXIgfCBzdHJpbmdcblxuLyoqIGBodG1sLmZvcm1hdGAncyBgbWluaWZ5YDogb24sIG9yIG9uIHdpdGggcmVoeXBlLW1pbmlmeS13aGl0ZXNwYWNlJ3Mgb3B0aW9ucy4gKi9cbmV4cG9ydCB0eXBlIE1pbmlmeSA9IGJvb2xlYW4gfCBNaW5pZnlPcHRpb25zXG5cbi8qKiByZWh5cGUtbWluaWZ5LXdoaXRlc3BhY2UncyBvcHRpb25zLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaW5pZnlPcHRpb25zIHtcbiAgLyoqIENvbGxhcHNlIGEgcnVuIG9mIHdoaXRlc3BhY2UgaG9sZGluZyBhIGxpbmUgZW5kaW5nIHRvIGEgbGluZSBlbmRpbmcsIG5vdCBhIHNwYWNlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBuZXdsaW5lcz86IGJvb2xlYW5cbn1cblxuLyoqIGBodG1sLnNhbml0aXplYDoga2VlcCBvbmx5IHdoYXQgYSBzY2hlbWEgYWxsb3dzOyBvcHRpb25zOiBoYXN0LXV0aWwtc2FuaXRpemUncyBzY2hlbWEsIHdoZXJlIGEgZmllbGQgbGVmdCBvdXQga2VlcHMgdGhlIGRlZmF1bHQgc2NoZW1hJ3MsIHdoaWNoIGlzIEdpdEh1YidzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW5pdGl6ZU9wdGlvbnMge1xuICAvKiogS2VlcCBjb21tZW50cy4gKi9cbiAgYWxsb3dDb21tZW50cz86IGJvb2xlYW4gfCBudWxsXG4gIC8qKiBLZWVwIGRvY3R5cGVzLiAqL1xuICBhbGxvd0RvY3R5cGVzPzogYm9vbGVhbiB8IG51bGxcbiAgLyoqIEVsZW1lbnRzIGFsbG93ZWQgb25seSBpbnNpZGUgb25lIG9mIHRoZXNlIGFuY2VzdG9ycywgYnkgdGFnIG5hbWUuICovXG4gIGFuY2VzdG9ycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IG51bGxcbiAgLyoqIFByb3BlcnRpZXMgYWxsb3dlZCBwZXIgdGFnIG5hbWUsIGAqYCBmb3IgZXZlcnkgZWxlbWVudDsgYSBsaXN0IG5hbWVzIGEgcHJvcGVydHkgYW5kIHRoZSB2YWx1ZXMgaXQgbWF5IGhhdmUuICovXG4gIGF0dHJpYnV0ZXM/OiBSZWNvcmQ8c3RyaW5nLCBBdHRyaWJ1dGVEZWZpbml0aW9uW10+IHwgbnVsbFxuICAvKiogUHJvcGVydGllcyB3aG9zZSB2YWx1ZXMgZ2V0IGBjbG9iYmVyX3ByZWZpeGAsIHNvIHRoZXkgY2Fubm90IGNsb2JiZXIgZ2xvYmFscy4gKi9cbiAgY2xvYmJlcj86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogVGhlIHByZWZpeCBvZiBjbG9iYmVyZWQgdmFsdWVzLiAqL1xuICBjbG9iYmVyUHJlZml4Pzogc3RyaW5nIHwgbnVsbFxuICAvKiogVVJMIHByb3BlcnRpZXMgYW5kIHRoZSBwcm90b2NvbHMgdGhleSBtYXkgdXNlLiAqL1xuICBwcm90b2NvbHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCBudWxsXG4gIC8qKiBQcm9wZXJ0aWVzIHNldCBvbiBlbGVtZW50cyB3aGF0ZXZlciB0aGV5IGhhZCwgYnkgdGFnIG5hbWUuICovXG4gIHJlcXVpcmVkPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlPj4gfCBudWxsXG4gIC8qKiBFbGVtZW50cyBkcm9wcGVkIHdpdGggdGhlaXIgY29udGVudCByYXRoZXIgdGhhbiB1bndyYXBwZWQuICovXG4gIHN0cmlwPzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBUaGUgZWxlbWVudHMga2VwdC4gKi9cbiAgdGFnTmFtZXM/OiBzdHJpbmdbXSB8IG51bGxcbn1cblxuLyoqIEEgcHJvcGVydHkgYSBzYW5pdGl6ZSBzY2hlbWEgYWxsb3dzOiBieSBuYW1lLCBvciBhIG5hbWUgYW5kIGl0cyBhbGxvd2VkIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZURlZmluaXRpb24gPSBzdHJpbmcgfCBQcmltaXRpdmVbXVxuXG4vKiogQSBwcmltaXRpdmUgcHJvcGVydHkgdmFsdWUuICovXG5leHBvcnQgdHlwZSBQcmltaXRpdmUgPSBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nXG5cbi8qKiBgaHRtbC5zbHVnYDogaWRzIG9uIGhlYWRpbmdzLCBmcm9tIHRoZWlyIHRleHQ7IG9wdGlvbnMgbmFtZWQgYXMgcmVoeXBlLXNsdWcgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2x1Z09wdGlvbnMge1xuICAvKiogUHV0IGJlZm9yZSBlYWNoIGlkLiBAZGVmYXVsdCBcIlwiICovXG4gIHByZWZpeD86IHN0cmluZ1xuICAvKiogTGluayBlYWNoIGhlYWRpbmcgd2l0aCBhbiBgaWRgIHRvIGl0c2VsZiwgYXMgcmVoeXBlLWF1dG9saW5rLWhlYWRpbmdzIGRvZXM6IGB0cnVlYCwgb3IgaXRzIG9wdGlvbnMuICovXG4gIGF1dG9saW5rPzogQXV0b2xpbmsgfCBudWxsXG59XG5cbi8qKiBgaHRtbC5zbHVnYCdzIGBhdXRvbGlua2A6IG9uLCBvciBvbiB3aXRoIHJlaHlwZS1hdXRvbGluay1oZWFkaW5ncycgb3B0aW9ucy4gKi9cbmV4cG9ydCB0eXBlIEF1dG9saW5rID0gYm9vbGVhbiB8IEF1dG9saW5rT3B0aW9uc1xuXG4vKiogcmVoeXBlLWF1dG9saW5rLWhlYWRpbmdzJyBvcHRpb25zLCBKU09OIHZhbHVlcyBvbmx5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbGlua09wdGlvbnMge1xuICAvKiogV2hlcmUgdGhlIGxpbmsgZ29lczogaW4gdGhlIGhlYWRpbmcgZmlyc3Qgb3IgbGFzdCwgYXJvdW5kIGl0cyBjb250ZW50LCBvciBiZWZvcmUgb3IgYWZ0ZXIgaXQuICovXG4gIGJlaGF2aW9yPzogQXV0b2xpbmtCZWhhdmlvclxuICAvKiogVGhlIGxpbmsncyBwcm9wZXJ0aWVzLCBhcyBoYXN0IG5hbWVzIHRoZW07IGBhcmlhSGlkZGVuYCBhbmQgYHRhYkluZGV4OiAtMWAgZm9yIGBwcmVwZW5kYCBhbmQgYGFwcGVuZGAgd2hlbiBsZWZ0IG91dC4gKi9cbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxuICAvKiogaGFzdCBjb250ZW50IG9mIHRoZSBsaW5rLCBvbmUgbm9kZSBvciBhIGxpc3Q7IGA8c3BhbiBjbGFzcz1cImljb24gaWNvbi1saW5rXCI+YCB3aGVuIGxlZnQgb3V0LCBleGNlcHQgZm9yIGB3cmFwYCwgd2hpY2ggYXBwZW5kcyBpdCB0byB0aGUgaGVhZGluZydzIGNvbnRlbnQuICovXG4gIGNvbnRlbnQ/OiB1bmtub3duXG4gIC8qKiBBIGhhc3QgZWxlbWVudCB3cmFwcGluZyB0aGUgaGVhZGluZyBhbmQgaXRzIGxpbmssIGZvciBgYmVmb3JlYCBhbmQgYGFmdGVyYC4gKi9cbiAgZ3JvdXA/OiB1bmtub3duXG4gIC8qKiBQcm9wZXJ0aWVzIHNldCBvbiBlYWNoIGxpbmtlZCBoZWFkaW5nLiAqL1xuICBoZWFkaW5nUHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxuICAvKiogVGhlIHRhZyBuYW1lcyBvZiB0aGUgaGVhZGluZ3MgdG8gbGluazsgZXZlcnkgaGVhZGluZyB3aGVuIGxlZnQgb3V0LiAqL1xuICB0ZXN0PzogVGFnTmFtZXMgfCBudWxsXG59XG5cbi8qKiBXaGVyZSBgYXV0b2xpbmtgIHB1dHMgZWFjaCBoZWFkaW5nJ3MgbGluay4gKi9cbmV4cG9ydCB0eXBlIEF1dG9saW5rQmVoYXZpb3IgPSBcInByZXBlbmRcIiB8IFwiYXBwZW5kXCIgfCBcIndyYXBcIiB8IFwiYmVmb3JlXCIgfCBcImFmdGVyXCJcblxuLyoqIE9uZSB0YWcgbmFtZSBvciBzZXZlcmFsLiAqL1xuZXhwb3J0IHR5cGUgVGFnTmFtZXMgPSBzdHJpbmcgfCBzdHJpbmdbXVxuXG4vKiogYGh0bWwuZXh0ZXJuYWxMaW5rc2A6IGByZWxgLCBgdGFyZ2V0YCBhbmQgbW9yZSBvbiBsaW5rcyB0byBvdGhlciBzaXRlcywgYXMgcmVoeXBlLWV4dGVybmFsLWxpbmtzIGFkZHMgdGhlbTsgb3B0aW9ucyBuYW1lZCBhcyBpdCBuYW1lcyB0aGVtLCBKU09OIHZhbHVlcyBvbmx5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbExpbmtzT3B0aW9ucyB7XG4gIC8qKiBUaGUgYHRhcmdldGAgb2YgZWFjaCBleHRlcm5hbCBsaW5rLCBzdWNoIGFzIGBfYmxhbmtgLiAqL1xuICB0YXJnZXQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgYHJlbGAgb2YgZWFjaCBleHRlcm5hbCBsaW5rOiBhIGxpc3QsIG9yIHRva2VucyBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2U7IGBub2ZvbGxvd2Agd2hlbiBsZWZ0IG91dCBvciBlbXB0eSwgbm9uZSBmb3IgYW4gZW1wdHkgbGlzdC4gKi9cbiAgcmVsPzogVG9rZW5zIHwgbnVsbFxuICAvKiogVGhlIHByb3RvY29scyBvZiBhYnNvbHV0ZSBVUkxzIHRoYXQgY291bnQgYXMgZXh0ZXJuYWw7IGBodHRwYCBhbmQgYGh0dHBzYCB3aGVuIGxlZnQgb3V0LiBBIHByb3RvY29sLXJlbGF0aXZlIGAvL+KApmAgVVJMIGFsd2F5cyBjb3VudHMuICovXG4gIHByb3RvY29scz86IHN0cmluZ1tdIHwgbnVsbFxuICAvKiogTW9yZSBwcm9wZXJ0aWVzIGZvciBlYWNoIGV4dGVybmFsIGxpbmssIGFzIGhhc3QgbmFtZXMgdGhlbS4gKi9cbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxuICAvKiogaGFzdCBjb250ZW50IGFwcGVuZGVkIHRvIGVhY2ggZXh0ZXJuYWwgbGluayBpbiBhIGA8c3Bhbj5gOiBvbmUgbm9kZSBvciBhIGxpc3QuICovXG4gIGNvbnRlbnQ/OiB1bmtub3duXG4gIC8qKiBUaGUgcHJvcGVydGllcyBvZiB0aGF0IGA8c3Bhbj5gLiAqL1xuICBjb250ZW50UHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxufVxuXG4vKiogVG9rZW5zOiBhIGxpc3QsIG9yIG9uZSBzdHJpbmcgb2YgdGhlbSBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UuICovXG5leHBvcnQgdHlwZSBUb2tlbnMgPSBzdHJpbmcgfCBzdHJpbmdbXVxuXG4vKiogYGh0bWwuZXh0cmFjdFRvY2A6IHRoZSBoZWFkaW5ncywgbmVzdGVkIGJ5IHJhbmssIGFzIHRoZSBmaWxlJ3MgYGRhdGEudG9jYCwgYXMgQHN0ZWZhbnByb2JzdC9yZWh5cGUtZXh0cmFjdC10b2Mgc3RvcmVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RUb2NPcHRpb25zIHtcbiAgLyoqIEF0dHJpYnV0ZXMsIHN1Y2ggYXMgYGRhdGEtdG9jLWhpZGRlbmAsIHRoYXQga2VlcCBhIGhlYWRpbmcgb3V0IG9mIHRoZSB0YWJsZSBvZiBjb250ZW50czsgd2hhdCB3b3VsZCBuZXN0IHVuZGVyIGl0IG5lc3RzIHVuZGVyIHRoZSBoZWFkaW5nIGJlZm9yZS4gQGRlZmF1bHQgW10gKi9cbiAgc2tpcD86IHN0cmluZ1tdXG59XG5cbi8qKiBgaHRtbC5oaWdobGlnaHRgOiBjb2RlIGJsb2NrcyBjb2xvcmVkIGFzIFNoaWtpIGNvbG9ycyB0aGVtLCBuYXRpdmVseSBieSBnaWFsbG87IG9wdGlvbnMgbmFtZWQgYXMgQHNoaWtpanMvcmVoeXBlIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZ2hsaWdodE9wdGlvbnMge1xuICAvKiogVGhlIHRoZW1lIG9mIGVhY2ggY29sb3IgbW9kZSwgYGxpZ2h0YCBmaXJzdCwgYXMgYHtcImxpZ2h0XCI6IOKApiwgXCJkYXJrXCI6IOKApn1gLiAqL1xuICB0aGVtZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbiAgLyoqIFRoZSBvbmUgdGhlbWUsIHdoZW4gYHRoZW1lc2AgaXMgbm90IGdpdmVuLiAqL1xuICB0aGVtZT86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSBsYW5ndWFnZSBvZiBhIGJsb2NrIHRoYXQgbmFtZXMgbm9uZTsgc3VjaCBhIGJsb2NrIGlzIGxlZnQgYWxvbmUgd2l0aG91dCBpdC4gKi9cbiAgZGVmYXVsdExhbmd1YWdlPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIGxhbmd1YWdlIG9mIGEgYmxvY2sgbmFtaW5nIG9uZSBTaGlraSBkb2VzIG5vdCBrbm93OyBsZWZ0IGFsb25lIHdpdGhvdXQgaXQuICovXG4gIGZhbGxiYWNrTGFuZ3VhZ2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBDb2xvcnMgdG8gcmVwbGFjZSwgYnkgdGhlaXIgbG93ZXJjYXNlIHNwZWxsaW5nOiBhIGNvbG9yIGZvciBldmVyeSB0aGVtZSwgb3IgYSB0aGVtZSdzIG5hbWUgdG8gYSBtYXAgb2YgaXRzIG93bi4gKi9cbiAgY29sb3JSZXBsYWNlbWVudHM/OiBSZWNvcmQ8c3RyaW5nLCBDb2xvclJlcGxhY2VtZW50PlxuICAvKiogQWRkIGBsYW5ndWFnZS08bmFtZT5gIHRvIGVhY2ggaGlnaGxpZ2h0ZWQgYDxjb2RlPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIGFkZExhbmd1YWdlQ2xhc3M/OiBib29sZWFuXG4gIC8qKiBIaWdobGlnaHQgaW5saW5lIGNvZGUgdG9vLCBieSBob3cgaXQgbmFtZXMgaXRzIGxhbmd1YWdlOiBgdGFpbGluZy1jdXJseS1jb2xvbmAgcmVhZHMgYGAgYGEoKXs6anN9YCBgYC4gKi9cbiAgaW5saW5lPzogSW5saW5lQ29kZSB8IG51bGxcbiAgLyoqIFRoZSBgPHByZT5gIHByb3BlcnR5IHRoYXQgZ2V0cyBhIGJsb2NrJ3MgbWV0YSwgdGhlIHRleHQgYWZ0ZXIgaXRzIGxhbmd1YWdlOyB0aGUgSlNPTiBzdGFuZC1pbiBmb3IgYHBhcnNlTWV0YVN0cmluZzogbWV0YSA9PiAoeyBbbmFtZV06IG1ldGEgfSlgLiAqL1xuICBtZXRhUHJvcGVydHk/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBUaGUgdHJhbnNmb3JtZXJzIG9mIEBzaGlraWpzL3RyYW5zZm9ybWVycyB0byBydW4sIGluIG9yZGVyLCBieSBuYW1lIG9yIHdpdGggb3B0aW9ucy4gKi9cbiAgdHJhbnNmb3JtZXJzPzogSGlnaGxpZ2h0VHJhbnNmb3JtZXJbXVxuICAvKiogTGluZXMgYXQgbGVhc3QgdGhpcyBsb25nLCBpbiBVVEYtMTYgdW5pdHMsIGFyZSBsZWZ0IG9uZSBwbGFpbiB0b2tlbiBhcyBTaGlraSdzIG93biBvcHRpb24gbGVhdmVzIHRoZW07IDIsMDAwIHdoZW4gbGVmdCBvdXQsIHdoZXJlIFNoaWtpIGhhcyBubyBsaW1pdCwgc2luY2UgYSBncmFtbWFyJ3MgdGltZSBncm93cyB3aXRoIHRoZSBzcXVhcmUgb2YgYSBsaW5lJ3MgbGVuZ3RoLiBgMGAgbGlmdHMgaXQuICovXG4gIHRva2VuaXplTWF4TGluZUxlbmd0aD86IG51bWJlciB8IG51bGxcbn1cblxuLyoqIEEgcmVwbGFjZW1lbnQgY29sb3IsIG9yIGEgdGhlbWUncyBvd24gcmVwbGFjZW1lbnRzLiAqL1xuZXhwb3J0IHR5cGUgQ29sb3JSZXBsYWNlbWVudCA9IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cblxuLyoqIEhvdyBpbmxpbmUgY29kZSBuYW1lcyBpdHMgbGFuZ3VhZ2UuICovXG5leHBvcnQgdHlwZSBJbmxpbmVDb2RlID0gXCJ0YWlsaW5nLWN1cmx5LWNvbG9uXCJcblxuLyoqIEEgdHJhbnNmb3JtZXIgb2YgQHNoaWtpanMvdHJhbnNmb3JtZXJzOiBpdHMgbmFtZSBhbG9uZSwgb3IgaXRzIG5hbWUgYW5kIG9wdGlvbnMuICovXG5leHBvcnQgdHlwZSBIaWdobGlnaHRUcmFuc2Zvcm1lciA9IFRyYW5zZm9ybWVyTmFtZSB8IENvbmZpZ3VyZWRUcmFuc2Zvcm1lclxuXG4vKiogVGhlIHRyYW5zZm9ybWVycyBgaHRtbC5oaWdobGlnaHRgIHJ1bnMgbmF0aXZlbHkuICovXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1lck5hbWUgPSBcIm5vdGF0aW9uRGlmZlwiIHwgXCJub3RhdGlvbkZvY3VzXCIgfCBcIm5vdGF0aW9uSGlnaGxpZ2h0XCIgfCBcIm5vdGF0aW9uRXJyb3JMZXZlbFwiIHwgXCJtZXRhSGlnaGxpZ2h0XCIgfCBcIm1ldGFXb3JkSGlnaGxpZ2h0XCIgfCBcInJlbmRlckxpbmVOdW1iZXJcIlxuXG4vKiogQSB0cmFuc2Zvcm1lciB3aXRoIGl0cyBvcHRpb25zLCBhcyBAc2hpa2lqcy90cmFuc2Zvcm1lcnMgbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZ3VyZWRUcmFuc2Zvcm1lciA9IHsgbmFtZTogXCJub3RhdGlvbkRpZmZcIjsgY2xhc3NMaW5lQWRkPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzTGluZVJlbW92ZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm5vdGF0aW9uRm9jdXNcIjsgY2xhc3NBY3RpdmVMaW5lPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlUHJlPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlQ29kZT86IENsYXNzZXMgfCBudWxsIH0gfCB7IG5hbWU6IFwibm90YXRpb25IaWdobGlnaHRcIjsgY2xhc3NBY3RpdmVMaW5lPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlUHJlPzogQ2xhc3NlcyB8IG51bGw7IGNsYXNzQWN0aXZlQ29kZT86IENsYXNzZXMgfCBudWxsIH0gfCB7IG5hbWU6IFwibm90YXRpb25FcnJvckxldmVsXCI7IGNsYXNzTWFwPzogUmVjb3JkPHN0cmluZywgQ2xhc3Nlcz4gfCBudWxsOyBjbGFzc0FjdGl2ZVByZT86IENsYXNzZXMgfCBudWxsOyBjbGFzc0FjdGl2ZUNvZGU/OiBDbGFzc2VzIHwgbnVsbCB9IHwgeyBuYW1lOiBcIm1ldGFIaWdobGlnaHRcIjsgY2xhc3NOYW1lPzogQ2xhc3NlcyB8IG51bGw7IHplcm9JbmRleGVkPzogYm9vbGVhbiB9IHwgeyBuYW1lOiBcIm1ldGFXb3JkSGlnaGxpZ2h0XCI7IGNsYXNzTmFtZT86IENsYXNzZXMgfCBudWxsIH0gfCB7IG5hbWU6IFwicmVuZGVyTGluZU51bWJlclwiOyBjbGFzc0xpbmVOdW1iZXI/OiBDbGFzc2VzIHwgbnVsbDsgc3RhcnQ/OiBudW1iZXIgfCBudWxsIH1cblxuLyoqIENsYXNzIG5hbWVzOiBhIGxpc3QsIG9yIG9uZSBzdHJpbmcgb2YgdGhlbSBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UuICovXG5leHBvcnQgdHlwZSBDbGFzc2VzID0gc3RyaW5nIHwgc3RyaW5nW11cblxuLyoqIGBodG1sLmthdGV4YDogbWF0aCByZW5kZXJlZCBhcyByZWh5cGUta2F0ZXggcmVuZGVycyBpdCwgbmF0aXZlbHkgYnkga2F0ZXgtcnM7IG9wdGlvbnMgbmFtZWQgYXMgS2FUZVggbmFtZXMgdGhlbS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2F0ZXhPcHRpb25zIHtcbiAgLyoqIFRoZSBtYXJrdXAgdG8gd3JpdGUsIGJvdGggSFRNTCBhbmQgTWF0aE1MIGJ5IGRlZmF1bHQuICovXG4gIG91dHB1dD86IEthdGV4T3V0cHV0IHwgbnVsbFxuICAvKiogUHV0IGVxdWF0aW9uIG51bWJlcnMgb24gdGhlIGxlZnQuIEBkZWZhdWx0IGZhbHNlICovXG4gIGxlcW5vPzogYm9vbGVhblxuICAvKiogQWxpZ24gZGlzcGxheSBtYXRoIHRvIHRoZSBsZWZ0IGluc3RlYWQgb2YgY2VudGVyaW5nIGl0LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBmbGVxbj86IGJvb2xlYW5cbiAgLyoqIFRoZSBjb2xvciBvZiBtYXRoIHRoYXQgZmFpbHMgdG8gcmVuZGVyLCBgI2NjMDAwMGAgYnkgZGVmYXVsdC4gKi9cbiAgZXJyb3JDb2xvcj86IHN0cmluZyB8IG51bGxcbiAgLyoqIE1hY3JvcyBieSBuYW1lLCBlYWNoIHRvIHRoZSBUZVggaXQgZXhwYW5kcyB0bywgYXMgYHtcIlxcXFxSUlwiOiBcIlxcXFxtYXRoYmJ7Un1cIn1gLiBAZGVmYXVsdCB7fSAqL1xuICBtYWNyb3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBUaGUgdGhpbm5lc3QgYSBydWxlLCBzdWNoIGFzIGEgZnJhY3Rpb24gbGluZSwgaXMgZHJhd24sIGluIGVtcy4gKi9cbiAgbWluUnVsZVRoaWNrbmVzcz86IG51bWJlciB8IG51bGxcbiAgLyoqIExldCBgXFxjb2xvcmAgY29sb3IgdGhlIHRleHQgYWZ0ZXIgaXQsIGFzIExhVGVYIGRvZXMuIEBkZWZhdWx0IGZhbHNlICovXG4gIGNvbG9ySXNUZXh0Q29sb3I/OiBib29sZWFuXG4gIC8qKiBXaGF0IHRvIGRvIHdpdGggaW5wdXQgTGFUZVggd291bGQgcmVqZWN0OiBgdHJ1ZWAgb3IgYFwiZXJyb3JcImAgZmFpbHMgaXQsIGBcIndhcm5cImAgcHJpbnRzIGEgd2FybmluZywgYGZhbHNlYCBvciBgXCJpZ25vcmVcImAgKHRoZSBkZWZhdWx0KSBhY2NlcHRzIGl0LiAqL1xuICBzdHJpY3Q/OiBLYXRleFN0cmljdCB8IG51bGxcbiAgLyoqIEFsbG93IGNvbW1hbmRzIHRoYXQgY2FuIHJ1biB1bnRydXN0ZWQgaW5wdXQsIHN1Y2ggYXMgYFxcaHJlZmAgYW5kIGBcXGluY2x1ZGVncmFwaGljc2AuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRydXN0PzogYm9vbGVhblxuICAvKiogVGhlIGxhcmdlc3QgYSB1c2VyLWdpdmVuIHNpemUgbWF5IGJlLCBpbiBlbXMuICovXG4gIG1heFNpemU/OiBudW1iZXIgfCBudWxsXG4gIC8qKiBIb3cgbWFueSBtYWNybyBleHBhbnNpb25zIG9uZSBmb3JtdWxhIG1heSB0YWtlLCAxMDAwIGJ5IGRlZmF1bHQuICovXG4gIG1heEV4cGFuZD86IG51bWJlciB8IG51bGxcbiAgLyoqIExldCBkZWZpbml0aW9ucyBzdWNoIGFzIGBcXGRlZmAgbGFzdCBwYXN0IHRoZSBmb3JtdWxhIHRoZXkgYXJlIGluLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBnbG9iYWxHcm91cD86IGJvb2xlYW5cbn1cblxuLyoqIFRoZSBtYXJrdXAgS2FUZVggd3JpdGVzLiAqL1xuZXhwb3J0IHR5cGUgS2F0ZXhPdXRwdXQgPSBcImh0bWxcIiB8IFwibWF0aG1sXCIgfCBcImh0bWxBbmRNYXRobWxcIlxuXG4vKiogSG93IHN0cmljdGx5IEthVGVYIGhvbGRzIGlucHV0IHRvIExhVGVYLiAqL1xuZXhwb3J0IHR5cGUgS2F0ZXhTdHJpY3QgPSBib29sZWFuIHwgS2F0ZXhTdHJpY3RNb2RlXG5cbi8qKiBPbmUgbGV2ZWwgb2YgS2FUZVgncyBzdHJpY3RuZXNzLiAqL1xuZXhwb3J0IHR5cGUgS2F0ZXhTdHJpY3RNb2RlID0gXCJpZ25vcmVcIiB8IFwid2FyblwiIHwgXCJlcnJvclwiXG5cbi8qKiBgaHRtbC50b01hcmtkb3duYDogaGFzdCBpbnRvIG1kYXN0OyBvcHRpb25zIG5hbWVkIGFzIGhhc3QtdXRpbC10by1tZGFzdCBuYW1lcyB0aGVtLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb01hcmtkb3duT3B0aW9ucyB7XG4gIC8qKiBXcmFwIGFsbCBwaHJhc2luZyBjb250ZW50IG9mIHRoZSByb290IGluIHBhcmFncmFwaHMsIGFzIGZvciBhIHdob2xlIGRvY3VtZW50LiBAZGVmYXVsdCBmYWxzZSAqL1xuICBkb2N1bWVudD86IGJvb2xlYW5cbiAgLyoqIENvbGxhcHNlIHdoaXRlc3BhY2UgaG9sZGluZyBhIGxpbmUgZW5kaW5nIHRvIHRoYXQgbGluZSBlbmRpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBuZXdsaW5lcz86IGJvb2xlYW5cbiAgLyoqIFRoZSB0ZXh0IG9mIGEgY2hlY2tlZCBjaGVja2JveCBvciByYWRpbywgYFt4XWAgYnkgZGVmYXVsdC4gKi9cbiAgY2hlY2tlZD86IHN0cmluZyB8IG51bGxcbiAgLyoqIFRoZSB0ZXh0IG9mIGFuIHVuY2hlY2tlZCBjaGVja2JveCBvciByYWRpbywgYFsgXWAgYnkgZGVmYXVsdC4gKi9cbiAgdW5jaGVja2VkPzogc3RyaW5nIHwgbnVsbFxuICAvKiogVGhlIHF1b3RlcyBgPHE+YCB1c2VzLCBhbiBvcGVuaW5nIGFuZCBjbG9zaW5nIGNoYXJhY3RlciBlYWNoLCBhbHRlcm5hdGluZyBieSBob3cgZGVlcCBpdCBuZXN0czsgYFwiYCBieSBkZWZhdWx0LiAqL1xuICBxdW90ZXM/OiBzdHJpbmdbXSB8IG51bGxcbn1cblxuLyoqIGBodG1sLnN0cmluZ2lmeWA6IGhhc3QgaW50byBIVE1MOyBvcHRpb25zIG5hbWVkIGFzIGhhc3QtdXRpbC10by1odG1sIG5hbWVzIHRoZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ2lmeU9wdGlvbnMge1xuICAvKiogV3JpdGUgcmF3IG5vZGVzIGFzIHRoZXkgYXJlIGluc3RlYWQgb2YgZXNjYXBpbmcgdGhlbS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dEYW5nZXJvdXNIdG1sPzogYm9vbGVhblxuICAvKiogTGVhdmUgY2hhcmFjdGVycyB0aGF0IGFyZSBvbmx5IGRhbmdlcm91cyBpbiBzb21lIGNvbnRleHRzLCBzdWNoIGFzIGBgIGAgYGAsIGFzIHRoZXkgYXJlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBhbGxvd0Rhbmdlcm91c0NoYXJhY3RlcnM/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBjaGFyYWN0ZXJzIGFzIHRoZXkgYXJlIHdoZXJlIGJyb3dzZXJzIGFjY2VwdCB0aGVtIHRob3VnaCB0aGUgc3BlYyBkb2VzIG5vdC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgYWxsb3dQYXJzZUVycm9ycz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGNvbW1lbnRzIGFzIGJvZ3VzIGNvbW1lbnRzLCBgPD9hPmAuIEBkZWZhdWx0IGZhbHNlICovXG4gIGJvZ3VzQ29tbWVudHM/OiBib29sZWFuXG4gIC8qKiBDbG9zZSBlbXB0eSBmb3JlaWduIGVsZW1lbnRzLCBgPGEgLz5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjbG9zZUVtcHR5RWxlbWVudHM/OiBib29sZWFuXG4gIC8qKiBDbG9zZSB2b2lkIGVsZW1lbnRzLCBgPGJyIC8+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgY2xvc2VTZWxmQ2xvc2luZz86IGJvb2xlYW5cbiAgLyoqIFdyaXRlIGVtcHR5IGF0dHJpYnV0ZXMgYXMgYmFyZSBuYW1lcywgYGFgIHJhdGhlciB0aGFuIGBhPVwiXCJgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBjb2xsYXBzZUVtcHR5QXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIExlYXZlIG91dCB0YWdzIHRoZSBIVE1MIHNwZWMgbGV0cyBhIHBhcnNlciBpbXBseS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgb21pdE9wdGlvbmFsVGFncz86IGJvb2xlYW5cbiAgLyoqIExlYXZlIGF0dHJpYnV0ZSB2YWx1ZXMgdW5xdW90ZWQgd2hlcmUgdGhhdCBpcyBzYWZlLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBwcmVmZXJVbnF1b3RlZD86IGJvb2xlYW5cbiAgLyoqIFRoZSBxdW90ZSBhdHRyaWJ1dGUgdmFsdWVzIGFyZSB3cmFwcGVkIGluOiBgXCJgIG9yIGAnYC4gKi9cbiAgcXVvdGU/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBVc2UgdGhlIG90aGVyIHF1b3RlIHdoZW4gdGhlIHZhbHVlIGhvbGRzIG1vcmUgb2YgdGhlIHByZWZlcnJlZCBvbmUuIEBkZWZhdWx0IGZhbHNlICovXG4gIHF1b3RlU21hcnQ/OiBib29sZWFuXG4gIC8qKiBUaGUgc3BhY2UgdGhlIHRyZWUgaXMgaW46IGBodG1sYCBvciBgc3ZnYC4gKi9cbiAgc3BhY2U/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBMZWF2ZSBvdXQgdGhlIHNwYWNlIGJldHdlZW4gcXVvdGVkIGF0dHJpYnV0ZXMuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRpZ2h0QXR0cmlidXRlcz86IGJvb2xlYW5cbiAgLyoqIEpvaW4gY29tbWEtc2VwYXJhdGVkIHZhbHVlcyB3aXRoIGAsYCByYXRoZXIgdGhhbiBgLCBgLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodENvbW1hU2VwYXJhdGVkTGlzdHM/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBgPCFkb2N0eXBlaHRtbD5gLiBAZGVmYXVsdCBmYWxzZSAqL1xuICB0aWdodERvY3R5cGU/OiBib29sZWFuXG4gIC8qKiBMZWF2ZSBvdXQgdGhlIHNwYWNlIGJlZm9yZSBgLz5gIHdoZW4gdGhlIGF0dHJpYnV0ZXMgYWxsb3cuIEBkZWZhdWx0IGZhbHNlICovXG4gIHRpZ2h0U2VsZkNsb3Npbmc/OiBib29sZWFuXG4gIC8qKiBXcml0ZSBgPCFET0NUWVBFIGh0bWw+YC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgdXBwZXJEb2N0eXBlPzogYm9vbGVhblxuICAvKiogVGhlIHRhZyBuYW1lcyBvZiB2b2lkIGVsZW1lbnRzLCB3aGljaCBoYXZlIG5vIGNsb3NpbmcgdGFnLiAqL1xuICB2b2lkcz86IHN0cmluZ1tdIHwgbnVsbFxufVxuXG4vKiogVGhlIGBodG1sLnBhcnNlYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2Uob3B0aW9ucz86IFBhcnNlT3B0aW9ucyk6IFBsdWdpbjxcImh0bWwucGFyc2VcIiwgUGFyc2VPcHRpb25zPiAmIFBhcnNlcjxSb290PiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5wYXJzZVwiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnBhcnNlXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnJhd2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhdyhvcHRpb25zPzogUmF3T3B0aW9ucyk6IFBsdWdpbjxcImh0bWwucmF3XCIsIFJhd09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLnJhd1wiIH1cbiAgcmV0dXJuIHsgbmFtZTogXCJodG1sLnJhd1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5mb3JtYXRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXQob3B0aW9ucz86IEZvcm1hdE9wdGlvbnMpOiBQbHVnaW48XCJodG1sLmZvcm1hdFwiLCBGb3JtYXRPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5mb3JtYXRcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5mb3JtYXRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuc2FuaXRpemVgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZShvcHRpb25zPzogU2FuaXRpemVPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5zYW5pdGl6ZVwiLCBTYW5pdGl6ZU9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLnNhbml0aXplXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuc2FuaXRpemVcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwuc2x1Z2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsdWcob3B0aW9ucz86IFNsdWdPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5zbHVnXCIsIFNsdWdPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5zbHVnXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuc2x1Z1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5leHRlcm5hbExpbmtzYCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gZXh0ZXJuYWxMaW5rcyhvcHRpb25zPzogRXh0ZXJuYWxMaW5rc09wdGlvbnMpOiBQbHVnaW48XCJodG1sLmV4dGVybmFsTGlua3NcIiwgRXh0ZXJuYWxMaW5rc09wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLmV4dGVybmFsTGlua3NcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5leHRlcm5hbExpbmtzXCIsIG9wdGlvbnMgfVxufVxuXG4vKiogVGhlIGBodG1sLnVud3JhcEltYWdlc2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcEltYWdlcygpOiBQbHVnaW48XCJodG1sLnVud3JhcEltYWdlc1wiPiB7XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC51bndyYXBJbWFnZXNcIiB9XG59XG5cbi8qKiBUaGUgYGh0bWwuZXh0cmFjdFRvY2AgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RUb2Mob3B0aW9ucz86IEV4dHJhY3RUb2NPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5leHRyYWN0VG9jXCIsIEV4dHJhY3RUb2NPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5leHRyYWN0VG9jXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuZXh0cmFjdFRvY1wiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC5oaWdobGlnaHRgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWdobGlnaHQob3B0aW9ucz86IEhpZ2hsaWdodE9wdGlvbnMpOiBQbHVnaW48XCJodG1sLmhpZ2hsaWdodFwiLCBIaWdobGlnaHRPcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC5oaWdobGlnaHRcIiB9XG4gIHJldHVybiB7IG5hbWU6IFwiaHRtbC5oaWdobGlnaHRcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwua2F0ZXhgIHBsdWdpbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrYXRleChvcHRpb25zPzogS2F0ZXhPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5rYXRleFwiLCBLYXRleE9wdGlvbnM+IHtcbiAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgbmFtZTogXCJodG1sLmthdGV4XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwua2F0ZXhcIiwgb3B0aW9ucyB9XG59XG5cbi8qKiBUaGUgYGh0bWwudG9NYXJrZG93bmAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTWFya2Rvd24ob3B0aW9ucz86IFRvTWFya2Rvd25PcHRpb25zKTogUGx1Z2luPFwiaHRtbC50b01hcmtkb3duXCIsIFRvTWFya2Rvd25PcHRpb25zPiB7XG4gIGlmIChvcHRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7IG5hbWU6IFwiaHRtbC50b01hcmtkb3duXCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwudG9NYXJrZG93blwiLCBvcHRpb25zIH1cbn1cblxuLyoqIFRoZSBgaHRtbC50b05hdHVyYWxMYW5ndWFnZWAgcGx1Z2luLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmF0dXJhbExhbmd1YWdlKCk6IFBsdWdpbjxcImh0bWwudG9OYXR1cmFsTGFuZ3VhZ2VcIj4ge1xuICByZXR1cm4geyBuYW1lOiBcImh0bWwudG9OYXR1cmFsTGFuZ3VhZ2VcIiB9XG59XG5cbi8qKiBUaGUgYGh0bWwuc3RyaW5naWZ5YCBwbHVnaW4uICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KG9wdGlvbnM/OiBTdHJpbmdpZnlPcHRpb25zKTogUGx1Z2luPFwiaHRtbC5zdHJpbmdpZnlcIiwgU3RyaW5naWZ5T3B0aW9ucz4ge1xuICBpZiAob3B0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4geyBuYW1lOiBcImh0bWwuc3RyaW5naWZ5XCIgfVxuICByZXR1cm4geyBuYW1lOiBcImh0bWwuc3RyaW5naWZ5XCIsIG9wdGlvbnMgfVxufVxuIl19
|
package/build/generated/md.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Root } from "mdast";
|
|
2
|
+
import type { Parser, Plugin } from "../models/plugin.ts";
|
|
2
3
|
/** `md.parse`: Markdown into mdast. */
|
|
3
4
|
export type ParseOptions = Record<string, unknown>;
|
|
4
5
|
/** `md.directive`: generic directives, `:a`, `::b` and `:::c`, read by `md.parse` and written by `md.stringify`; options named as mdast-util-directive's serializer names them. */
|
|
@@ -24,6 +25,19 @@ export interface GfmOptions {
|
|
|
24
25
|
tablePipeAlign?: boolean;
|
|
25
26
|
/** Write a footnote definition's first line blank when it holds flow content. @default false */
|
|
26
27
|
firstLineBlank?: boolean;
|
|
28
|
+
/** Render GitHub alerts, a block quote opening with `[!NOTE]`, as GitHub does, as remark-github-blockquote-alert does: `true`, or its options. */
|
|
29
|
+
alerts?: Alerts | null;
|
|
30
|
+
}
|
|
31
|
+
/** `md.gfm`'s `alerts`: on, or on with remark-github-blockquote-alert's options. */
|
|
32
|
+
export type Alerts = boolean | AlertsOptions;
|
|
33
|
+
/** remark-github-blockquote-alert's options. */
|
|
34
|
+
export interface AlertsOptions {
|
|
35
|
+
/** Read a title after the type, `[!NOTE/Read this]`, in place of the type's name. @default false */
|
|
36
|
+
legacyTitle?: boolean;
|
|
37
|
+
/** The tag name of the alert's element. @default "div" */
|
|
38
|
+
tagName?: string;
|
|
39
|
+
/** More classes for the alert's element, separated by spaces. @default "" */
|
|
40
|
+
classNames?: string;
|
|
27
41
|
}
|
|
28
42
|
/** `md.math`: math syntax, `$$` blocks and `$` text, read by `md.parse` and written by `md.stringify`; options named as remark-math names them. */
|
|
29
43
|
export interface MathOptions {
|
|
@@ -66,6 +80,38 @@ export interface FrontmatterSettings {
|
|
|
66
80
|
/** Remove the YAML frontmatter a document starts with from the tree. */
|
|
67
81
|
strip?: boolean;
|
|
68
82
|
}
|
|
83
|
+
/** `md.gemoji`: gemoji shortcodes, `:smile:`, into emoji, as remark-gemoji does; its options are remark-emoji's. */
|
|
84
|
+
export interface GemojiOptions {
|
|
85
|
+
/** Also turn emoticons such as `:)` and `:-(` into emoji, as remark-emoji does. @default false */
|
|
86
|
+
emoticon?: boolean;
|
|
87
|
+
/** Wrap each emoji in `<span role="img" aria-label="…">`, labelled with its name. @default false */
|
|
88
|
+
accessible?: boolean;
|
|
89
|
+
/** Put a space after each emoji. @default false */
|
|
90
|
+
padSpaceAfter?: boolean;
|
|
91
|
+
}
|
|
92
|
+
/** `md.smartypants`: straight quotes, dashes, dots and backticks in Markdown text into typographic ones, as remark-smartypants does; options as retext-smartypants takes them. */
|
|
93
|
+
export interface SmartypantsOptions {
|
|
94
|
+
/** Turn double backticks and double straight single quotes into double quotes; `all` turns single ones into single quotes too. */
|
|
95
|
+
backticks?: Backticks;
|
|
96
|
+
/** The closing quotes to use: `”` and `’` by default. */
|
|
97
|
+
closingQuotes?: QuoteCharacters | null;
|
|
98
|
+
/** Turn two dashes into an em dash; `oldschool` and `inverted` treat three too. */
|
|
99
|
+
dashes?: Dashes;
|
|
100
|
+
/** Turn three dots into an ellipsis, with spaces between them or without. */
|
|
101
|
+
ellipses?: Ellipses;
|
|
102
|
+
/** The opening quotes to use: `“` and `‘` by default. */
|
|
103
|
+
openingQuotes?: QuoteCharacters | null;
|
|
104
|
+
/** Turn straight quotes into smart ones. @default true */
|
|
105
|
+
quotes?: boolean | null;
|
|
106
|
+
}
|
|
107
|
+
export type Backticks = boolean | "all";
|
|
108
|
+
/** The quote characters to use for double and single quotes. */
|
|
109
|
+
export interface QuoteCharacters {
|
|
110
|
+
double: string;
|
|
111
|
+
single: string;
|
|
112
|
+
}
|
|
113
|
+
export type Dashes = boolean | "oldschool" | "inverted";
|
|
114
|
+
export type Ellipses = boolean | "spaced" | "unspaced";
|
|
69
115
|
/** `md.component`: directives, GitHub alerts and other nodes into MDX JSX elements, the components an MDX runtime renders, by declarative rules. */
|
|
70
116
|
export interface ComponentOptions {
|
|
71
117
|
/** Rules for directives; the first that matches a directive converts it. */
|
|
@@ -208,6 +254,13 @@ export interface PathRewriteOptions {
|
|
|
208
254
|
export type UrlNode = "image" | "link" | "definition";
|
|
209
255
|
/** How a link to a Markdown file becomes a URL. */
|
|
210
256
|
export type MarkdownLinks = "keep" | "directory" | "html";
|
|
257
|
+
/** `md.shiftHeading`: every heading's depth moved by `shift` and kept within 1 to 6, as rehype-shift-heading moves hast's, after the document's title is dropped when asked. */
|
|
258
|
+
export interface ShiftHeadingOptions {
|
|
259
|
+
/** The levels added to each heading's depth: `-1` makes an h2 an h1, `1` an h1 an h2. @default 0 */
|
|
260
|
+
shift?: number;
|
|
261
|
+
/** Drop the document's first node when it is an h1, looking past frontmatter and ESM. @default false */
|
|
262
|
+
dropTitle?: boolean;
|
|
263
|
+
}
|
|
211
264
|
/** `md.strip`: mdast down to its text, as strip-markdown does: code, HTML, tables and the like dropped, headings made paragraphs, formatting unwrapped. */
|
|
212
265
|
export interface StripOptions {
|
|
213
266
|
/** Node types to leave as they are, such as `inlineCode`. @default [] */
|
|
@@ -302,6 +355,8 @@ export interface UnsafePattern {
|
|
|
302
355
|
export interface ToHtmlOptions {
|
|
303
356
|
/** Keep raw HTML in the tree instead of dropping it. @default false */
|
|
304
357
|
allowDangerousHtml?: boolean;
|
|
358
|
+
/** Turn each line ending in text into a `<br>`, as remark-breaks does. @default false */
|
|
359
|
+
breaks?: boolean;
|
|
305
360
|
/** What footnote `id`s start with, so they cannot clobber the page's; `user-content-` when unset. */
|
|
306
361
|
clobberPrefix?: string | null;
|
|
307
362
|
/** The text of each footnote's back reference; `↩`, numbered from the second, when unset. */
|
|
@@ -332,7 +387,7 @@ export interface ToNaturalLanguageOptions {
|
|
|
332
387
|
source?: string[];
|
|
333
388
|
}
|
|
334
389
|
/** The `md.parse` plugin. */
|
|
335
|
-
export declare function parse(options?: ParseOptions): Plugin<"md.parse", ParseOptions>;
|
|
390
|
+
export declare function parse(options?: ParseOptions): Plugin<"md.parse", ParseOptions> & Parser<Root>;
|
|
336
391
|
/** The `md.directive` plugin. */
|
|
337
392
|
export declare function directive(options?: DirectiveOptions): Plugin<"md.directive", DirectiveOptions>;
|
|
338
393
|
/** The `md.gfm` plugin. */
|
|
@@ -345,8 +400,12 @@ export declare function math(options?: MathOptions): Plugin<"md.math", MathOptio
|
|
|
345
400
|
export declare function mdx(options?: MdxOptions): Plugin<"md.mdx", MdxOptions>;
|
|
346
401
|
/** The `md.frontmatter` plugin. */
|
|
347
402
|
export declare function frontmatter(options?: FrontmatterOptions): Plugin<"md.frontmatter", FrontmatterOptions>;
|
|
403
|
+
/** The `md.cjkFriendly` plugin. */
|
|
404
|
+
export declare function cjkFriendly(): Plugin<"md.cjkFriendly">;
|
|
348
405
|
/** The `md.gemoji` plugin. */
|
|
349
|
-
export declare function gemoji(): Plugin<"md.gemoji">;
|
|
406
|
+
export declare function gemoji(options?: GemojiOptions): Plugin<"md.gemoji", GemojiOptions>;
|
|
407
|
+
/** The `md.smartypants` plugin. */
|
|
408
|
+
export declare function smartypants(options?: SmartypantsOptions): Plugin<"md.smartypants", SmartypantsOptions>;
|
|
350
409
|
/** The `md.component` plugin. */
|
|
351
410
|
export declare function component(options?: ComponentOptions): Plugin<"md.component", ComponentOptions>;
|
|
352
411
|
/** The `md.packageCommand` plugin. */
|
|
@@ -355,6 +414,8 @@ export declare function packageCommand(options?: PackageCommandOptions): Plugin<
|
|
|
355
414
|
export declare function headingId(options?: HeadingIdOptions): Plugin<"md.headingId", HeadingIdOptions>;
|
|
356
415
|
/** The `md.pathRewrite` plugin. */
|
|
357
416
|
export declare function pathRewrite(options?: PathRewriteOptions): Plugin<"md.pathRewrite", PathRewriteOptions>;
|
|
417
|
+
/** The `md.shiftHeading` plugin. */
|
|
418
|
+
export declare function shiftHeading(options?: ShiftHeadingOptions): Plugin<"md.shiftHeading", ShiftHeadingOptions>;
|
|
358
419
|
/** The `md.strip` plugin. */
|
|
359
420
|
export declare function strip(options?: StripOptions): Plugin<"md.strip", StripOptions>;
|
|
360
421
|
/** The `md.toc` plugin. */
|