New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

console-gui-tools

Package Overview
Dependencies
Maintainers
1
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

console-gui-tools - npm Package Compare versions

Comparing version 1.3.2 to 1.4.0

5

dist/components/layout/DoubleLayout.d.ts
import { ForegroundColorName } from "chalk";
import { ConsoleManager, PageBuilder } from "../../ConsoleGui.js";
import { HEX, RGB } from "../Utils.js";
/**

@@ -8,3 +9,3 @@ * @description The type containing all the possible options for the DoubleLayout.

* @prop {boolean} [boxed] - If the layout should be boxed.
* @prop {ForegroundColorName | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {ForegroundColorName | HEX | RGB | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {"bold"} [boxStyle] - If the border of the box should be bold.

@@ -23,3 +24,3 @@ * @prop {string} [changeFocusKey] - The key that should be pressed to change the focus.

boxed?: boolean;
boxColor?: ForegroundColorName | "";
boxColor?: ForegroundColorName | HEX | RGB | "";
boxStyle?: "bold";

@@ -26,0 +27,0 @@ changeFocusKey: string;

import { ForegroundColorName } from "chalk";
import PageBuilder from "../PageBuilder.js";
import { HEX, RGB } from "../Utils.js";
import DoubleLayout from "./DoubleLayout.js";

@@ -11,3 +12,3 @@ import QuadLayout from "./QuadLayout.js";

* @prop {boolean} [boxed] - If the layout should be boxed.
* @prop {ForegroundColor | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {ForegroundColorName | HEX | RGB | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {"bold"} [boxStyle] - If the border of the box should be bold.

@@ -26,3 +27,3 @@ * @prop {"single" | "double" | "triple" | "quad"} [type] - The type of the layout.

boxed?: boolean;
boxColor?: ForegroundColorName | "";
boxColor?: ForegroundColorName | HEX | RGB | "";
boxStyle?: "bold";

@@ -29,0 +30,0 @@ changeFocusKey: string;

2

dist/components/layout/LayoutManager.js

@@ -224,2 +224,2 @@ import { ConsoleManager } from "../../ConsoleGui.js";

export default LayoutManager;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2xheW91dC9MYXlvdXRNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVwRCxPQUFPLFlBQXFDLE1BQU0sbUJBQW1CLENBQUE7QUFDckUsT0FBTyxVQUFpQyxNQUFNLGlCQUFpQixDQUFBO0FBQy9ELE9BQU8sWUFBcUMsTUFBTSxtQkFBbUIsQ0FBQTtBQThCckU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFTdEIsWUFBbUIsS0FBb0IsRUFBRSxPQUFzQjtRQUx4RCxVQUFLLEdBQW1DLEVBQUUsQ0FBQTtRQUN6QyxlQUFVLEdBQWEsRUFBRSxDQUFBO1FBdUVqQzs7Ozs7O1dBTUc7UUFDSyxtQkFBYyxHQUFHLENBQUMsQ0FBVSxFQUFxQixFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxZQUFZLFlBQVksQ0FBQTtRQUNwQyxDQUFDLENBQUE7UUEzRUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO1NBQ3ZCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtZQUNwQiw0RUFBNEU7WUFDNUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO1lBRzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1lBQ3RCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQzVCLENBQUMsQ0FBQyxDQUFBO1lBRUYsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFV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QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBaUIsQ0FBQyxDQUFBO1NBQzdDO0lBQ0wsQ0FBQztJQUVEOzs7O1FBSUk7SUFDRyxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUE7U0FDOUI7UUFDRCxPQUFPLENBQUMsQ0FBQTtJQUNaLENBQUM7SUFFRDs7OztRQUlJO0lBQ0csWUFBWTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksYUFBYSxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUN0QztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxRQUFnQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDdEM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxJQUFJO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0NBQ0o7QUFFRCxlQUFlLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcmVncm91bmRDb2xvck5hbWUgfSBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0IHsgQ29uc29sZU1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vQ29uc29sZUd1aS5qc1wiXG5pbXBvcnQgUGFnZUJ1aWxkZXIgZnJvbSBcIi4uL1BhZ2VCdWlsZGVyLmpzXCJcbmltcG9ydCBEb3VibGVMYXlvdXQsIHsgRG91YmxlTGF5b3V0T3B0aW9ucyB9IGZyb20gXCIuL0RvdWJsZUxheW91dC5qc1wiXG5pbXBvcnQgUXVhZExheW91dCwgeyBRdWFkTGF5b3V0T3B0aW9ucyB9IGZyb20gXCIuL1F1YWRMYXlvdXQuanNcIlxuaW1wb3J0IFNpbmdsZUxheW91dCwgeyBTaW5nbGVMYXlvdXRPcHRpb25zIH0gZnJvbSBcIi4vU2luZ2xlTGF5b3V0LmpzXCJcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgY29udGFpbmluZyBhbGwgdGhlIHBvc3NpYmxlIG9wdGlvbnMgZm9yIHRoZSBsYXlvdXQuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMYXlvdXRPcHRpb25zXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3Nob3dUaXRsZV0gLSBJZiB0aGUgdGl0bGUgc2hvdWxkIGJlIHNob3duLlxuICogQHByb3Age2Jvb2xlYW59IFtib3hlZF0gLSBJZiB0aGUgbGF5b3V0IHNob3VsZCBiZSBib3hlZC5cbiAqIEBwcm9wIHtGb3JlZ3JvdW5kQ29sb3IgfCBcIlwifSBbYm94Q29sb3JdIC0gVGhlIGNvbG9yIG9mIHRoZSBib3ggdGFrZW4gZnJvbSB0aGUgY2hhbGsgbGlicmFyeS5cbiAqIEBwcm9wIHtcImJvbGRcIn0gW2JveFN0eWxlXSAtIElmIHRoZSBib3JkZXIgb2YgdGhlIGJveCBzaG91bGQgYmUgYm9sZC5cbiAqIEBwcm9wIHtcInNpbmdsZVwiIHwgXCJkb3VibGVcIiB8IFwidHJpcGxlXCIgfCBcInF1YWRcIn0gW3R5cGVdIC0gVGhlIHR5cGUgb2YgdGhlIGxheW91dC5cbiAqIEBwcm9wIHtzdHJpbmd9IFtjaGFuZ2VGb2N1c0tleV0gLSBUaGUga2V5IHRoYXQgc2hvdWxkIGJlIHByZXNzZWQgdG8gY2hhbmdlIHRoZSBmb2N1cy5cbiAqIEBwcm9wIHtcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIn0gW2RpcmVjdGlvbl0gLSBUaGUgZGlyZWN0aW9uIG9mIHRoZSBsYXlvdXQuXG4gKiBAcHJvcCB7c3RyaW5nW119IFtwYWdlVGl0bGVzXSAtIFRoZSB0aXRsZSBvZiB0aGUgZmlyc3QgcGFnZS5cbiAqIEBwcm9wIHtbbnVtYmVyLCBudW1iZXJdIHwgW1tudW1iZXIsIG51bWJlcl1dfSBbcGFnZVJhdGlvXSAtIFRoZSByYXRpbyBvZiB0aGUgcGFnZXMuIChpbiBob3Jpem9udGFsIGRpcmVjdGlvbilcbiAqXG4gKiBAZXhwb3J0XG4gKiBAaW50ZXJmYWNlIExheW91dE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRPcHRpb25zIHtcbiAgICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIGJveGVkPzogYm9vbGVhbjtcbiAgICBib3hDb2xvcj86IEZvcmVncm91bmRDb2xvck5hbWUgfCBcIlwiOyAvLyBhZGQgY29sb3IgbGlzdCBmcm9tIGNoYWxrXG4gICAgYm94U3R5bGU/OiBcImJvbGRcIjtcbiAgICBjaGFuZ2VGb2N1c0tleTogc3RyaW5nO1xuICAgIHR5cGU6IFwic2luZ2xlXCIgfCBcImRvdWJsZVwiIHwgXCJ0cmlwbGVcIiB8IFwicXVhZFwiO1xuICAgIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xuICAgIHBhZ2VUaXRsZXM/OiBzdHJpbmdbXTtcbiAgICBwYWdlUmF0aW8/OiBbbnVtYmVyLCBudW1iZXJdIHwgW1tudW1iZXIsIG51bWJlcl1dO1xufVxuXG4vKipcbiAqIEBjbGFzcyBMYXlvdXRNYW5hZ2VyXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBjbGFzcyBpcyBhIGxheW91dCB0aGF0IGhhcyB0d28gcGFnZXMuXG4gKiBcbiAqICFbY2hhbmdlIHJhdGlvXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xNDkwNzk4Ny8xNzA5OTkzNDctODY4ZWFjN2ItNmJkZi00MTQ3LWJjYjAtYjc0NjUyODJlZDVmLmdpZilcbiAqIFxuICogQHBhcmFtIHtQYWdlQnVpbGRlcltdfSBwYWdlcyBUaGUgcGFnZXMgdGhhdCBzaG91bGQgYmUgc2hvd24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMgTGF5b3V0IG9wdGlvbnMuXG4gKiBAZXhhbXBsZSBjb25zdCBsYXlvdXQgPSBuZXcgTGF5b3V0TWFuYWdlcihbcGFnZTEsIHBhZ2UyXSwgcGFnZU9wdGlvbnMpO1xuICovXG5leHBvcnQgY2xhc3MgTGF5b3V0TWFuYWdlciB7XG4gICAgcHJpdmF0ZSBDTSE6IENvbnNvbGVNYW5hZ2VyXG4gICAgcHJpdmF0ZSBvcHRpb25zITogTGF5b3V0T3B0aW9uc1xuICAgIHByaXZhdGUgb3B0aW9uc1JlbGF0aXZlITogU2luZ2xlTGF5b3V0T3B0aW9ucyB8IERvdWJsZUxheW91dE9wdGlvbnMgfCBRdWFkTGF5b3V0T3B0aW9uc1xuICAgIHB1YmxpYyBwYWdlczogeyBba2V5OiBudW1iZXJdOiBQYWdlQnVpbGRlciB9ID0ge31cbiAgICBwcml2YXRlIHBhZ2VUaXRsZXM6IHN0cmluZ1tdID0gW11cbiAgICBwdWJsaWMgbGF5b3V0ITogU2luZ2xlTGF5b3V0IHwgRG91YmxlTGF5b3V0IHwgUXVhZExheW91dFxuICAgIHByaXZhdGUgaW5zdGFuY2UhOiBMYXlvdXRNYW5hZ2VyXG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGFnZXM6IFBhZ2VCdWlsZGVyW10sIG9wdGlvbnM6IExheW91dE9wdGlvbnMpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gdGhpc1xuICAgICAgICAgICAgLyoqIEBjb25zdCB7Q29uc29sZU1hbmFnZXJ9IENNIHRoZSBpbnN0YW5jZSBvZiBDb25zb2xlTWFuYWdlciAoc2luZ2xldG9uKSAqL1xuICAgICAgICAgICAgdGhpcy5DTSA9IG5ldyBDb25zb2xlTWFuYWdlcigpXG5cblxuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgICAgICAgICAgcGFnZXMuZm9yRWFjaCgocGFnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VzW2luZGV4XSA9IHBhZ2VcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIC8qKiBAY29uc3Qge3N0cmluZ30gcGFnZVRpdGxlIFRoZSBhcHBsaWNhdGlvbiB0aXRsZS4gKi9cbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlcyA9IHRoaXMub3B0aW9ucy5wYWdlVGl0bGVzIHx8IFt0aGlzLkNNLmFwcGxpY2F0aW9uVGl0bGVdXG5cbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5vcHRpb25zLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzaW5nbGVcIjpcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNSZWxhdGl2ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd1RpdGxlOiB0aGlzLm9wdGlvbnMuc2hvd1RpdGxlLFxuICAgICAgICAgICAgICAgICAgICBib3hlZDogdGhpcy5vcHRpb25zLmJveGVkLFxuICAgICAgICAgICAgICAgICAgICBib3hDb2xvcjogdGhpcy5vcHRpb25zLmJveENvbG9yLFxuICAgICAgICAgICAgICAgICAgICBib3hTdHlsZTogdGhpcy5vcHRpb25zLmJveFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IHRoaXMucGFnZVRpdGxlcyA/IHRoaXMucGFnZVRpdGxlc1swXSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgfSBhcyBTaW5nbGVMYXlvdXRPcHRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSBuZXcgU2luZ2xlTGF5b3V0KHRoaXMucGFnZXNbMF0sIHRoaXMub3B0aW9uc1JlbGF0aXZlKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlIFwiZG91YmxlXCI6XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zUmVsYXRpdmUgPSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dUaXRsZTogdGhpcy5vcHRpb25zLnNob3dUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgYm94ZWQ6IHRoaXMub3B0aW9ucy5ib3hlZCxcbiAgICAgICAgICAgICAgICAgICAgYm94Q29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgYm94U3R5bGU6IHRoaXMub3B0aW9ucy5ib3hTdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlRm9jdXNLZXk6IHRoaXMub3B0aW9ucy5jaGFuZ2VGb2N1c0tleSxcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLm9wdGlvbnMuZGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBwYWdlMVRpdGxlOiB0aGlzLnBhZ2VUaXRsZXMgPyB0aGlzLnBhZ2VUaXRsZXNbMF0gOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBwYWdlMlRpdGxlOiB0aGlzLnBhZ2VUaXRsZXMgPyB0aGlzLnBhZ2VUaXRsZXNbMV0gOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBwYWdlUmF0aW86IHRoaXMub3B0aW9ucy5wYWdlUmF0aW8sXG4gICAgICAgICAgICAgICAgfSBhcyBEb3VibGVMYXlvdXRPcHRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSBuZXcgRG91YmxlTGF5b3V0KHRoaXMucGFnZXNbMF0sIHRoaXMucGFnZXNbMV0sIHRoaXMub3B0aW9uc1JlbGF0aXZlIGFzIERvdWJsZUxheW91dE9wdGlvbnMpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgXCJ0cmlwbGVcIjpcblxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlIFwicXVhZFwiOlxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1JlbGF0aXZlID0ge1xuICAgICAgICAgICAgICAgICAgICBzaG93VGl0bGU6IHRoaXMub3B0aW9ucy5zaG93VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGJveGVkOiB0aGlzLm9wdGlvbnMuYm94ZWQsXG4gICAgICAgICAgICAgICAgICAgIGJveENvbG9yOiB0aGlzLm9wdGlvbnMuYm94Q29sb3IsXG4gICAgICAgICAgICAgICAgICAgIGJveFN0eWxlOiB0aGlzLm9wdGlvbnMuYm94U3R5bGUsXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZvY3VzS2V5OiB0aGlzLm9wdGlvbnMuY2hhbmdlRm9jdXNLZXksXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5vcHRpb25zLmRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgcGFnZTFUaXRsZTogdGhpcy5wYWdlVGl0bGVzID8gdGhpcy5wYWdlVGl0bGVzWzBdIDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcGFnZTJUaXRsZTogdGhpcy5wYWdlVGl0bGVzID8gdGhpcy5wYWdlVGl0bGVzWzFdIDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcGFnZTNUaXRsZTogdGhpcy5wYWdlVGl0bGVzID8gdGhpcy5wYWdlVGl0bGVzWzJdIDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcGFnZTRUaXRsZTogdGhpcy5wYWdlVGl0bGVzID8gdGhpcy5wYWdlVGl0bGVzWzNdIDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcGFnZVJhdGlvOiB0aGlzLm9wdGlvbnMucGFnZVJhdGlvLFxuICAgICAgICAgICAgICAgIH0gYXMgUXVhZExheW91dE9wdGlvbnNcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dCA9IG5ldyBRdWFkTGF5b3V0KHRoaXMucGFnZXNbMF0sIHRoaXMucGFnZXNbMV0sIHRoaXMucGFnZXNbMl0sIHRoaXMucGFnZXNbM10sIHRoaXMub3B0aW9uc1JlbGF0aXZlIGFzIFF1YWRMYXlvdXRPcHRpb25zKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNoZWNrIGlmIHRoZSBsYXlvdXQgaXMgYSBzaW5nbGUgbGF5b3V0IGJ5IGNoZWNraW5nIHRoZSB0eXBlIG9mIHRoZSBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0ge3Vua25vd259IHggLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIGxheW91dC5cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBJZiB0aGUgbGF5b3V0IGlzIGEgc2luZ2xlIGxheW91dC5cbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqIEBleGFtcGxlIGNvbnN0IGlzU2luZ2xlTGF5b3V0ID0gdGhpcy5pc1NpbmdsZUxheW91dChsYXlvdXQpXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc1NpbmdsZUxheW91dCA9ICh4OiB1bmtub3duKTogeCBpcyBTaW5nbGVMYXlvdXQgPT4ge1xuICAgICAgICByZXR1cm4geCBpbnN0YW5jZW9mIFNpbmdsZUxheW91dFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBsYXlvdXQgcGFnZXMuXG4gICAgICogQHBhcmFtIHtQYWdlQnVpbGRlcltdfSBwYWdlcyBUaGUgcGFnZXMgdGhhdCBzaG91bGQgYmUgc2hvd24uXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQudXBkYXRlUGFnZXMoW3BhZ2UxLCBwYWdlMl0pXG4gICAgICogQGV4YW1wbGUgbGF5b3V0LnVwZGF0ZVBhZ2VzKFtwYWdlMSwgcGFnZTIsIHBhZ2UzXSlcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZXMocGFnZXM6IFBhZ2VCdWlsZGVyW10pOiB2b2lkIHtcbiAgICAgICAgcGFnZXMuZm9yRWFjaCgocGFnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFnZXNbaW5kZXhdID0gcGFnZVxuICAgICAgICAgICAgaWYgKHRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0UGFnZShwYWdlKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dC5zZXRQYWdlKHBhZ2UsIGluZGV4KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBwYWdlIGNvbnRlbnQuXG4gICAgICogQHBhcmFtIHtQYWdlQnVpbGRlcn0gcGFnZSB0aGUgcGFnZSB0byBiZSBhZGRlZFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIHBhZ2VcbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IFBhZ2VCdWlsZGVyLCBpbmRleDogbnVtYmVyKTogdm9pZCB7IFxuICAgICAgICB0aGlzLnBhZ2VzW2luZGV4XSA9IHBhZ2VcbiAgICAgICAgaWYgKHRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXRQYWdlKHBhZ2UpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXRQYWdlKHBhZ2UsIGluZGV4KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byB1cGRhdGUgdGhlIHBhZ2UgdGl0bGUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIFRoZSB0aXRsZSBvZiB0aGUgcGFnZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBwYWdlLlxuICAgICAqIEBtZW1iZXJvZiBMYXlvdXRNYW5hZ2VyXG4gICAgICogQGV4YW1wbGUgbGF5b3V0LnNldFRpdGxlKFwiUGFnZSBUaXRsZVwiLCAxKVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogdm9pZCB7IFxuICAgICAgICB0aGlzLnBhZ2VUaXRsZXNbaW5kZXhdID0gdGl0bGVcbiAgICAgICAgaWYgKHRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXRUaXRsZSh0aXRsZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0LnNldFRpdGxlKHRpdGxlLCBpbmRleClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBwYWdlIHRpdGxlcy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSB0aXRsZXMgVGhlIHRpdGxlcyBvZiB0aGUgcGFnZXMuXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQuc2V0VGl0bGVzKFtcIlBhZ2UgVGl0bGUgMVwiLCBcIlBhZ2UgVGl0bGUgMlwiXSlcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VGl0bGVzKHRpdGxlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGVzID0gdGl0bGVzXG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0VGl0bGUodGl0bGVzWzBdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0VGl0bGVzKHRpdGxlcylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGxheW91dCBib3JkZXIuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBib3JkZXIgZW5hYmxlIG9yIGRpc2FibGUgdGhlIGJvcmRlclxuICAgICAqIEBtZW1iZXJvZiBMYXlvdXRNYW5hZ2VyXG4gICAgICovXG4gICAgcHVibGljIHNldEJvcmRlcihib3JkZXI6IGJvb2xlYW4pOiB2b2lkIHsgdGhpcy5vcHRpb25zLmJveGVkID0gYm9yZGVyIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY2hvb3NlIHRoZSBwYWdlIHRvIGJlIGhpZ2hsaWdodGVkLlxuICAgICAqIEBwYXJhbSB7MCB8IDEgfCAyIHwgM30gc2VsZWN0ZWQgMCBmb3IgcGFnZTEsIDEgZm9yIHBhZ2UyXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQ6IDAgfCAxIHwgMiB8IDMpOiB2b2lkIHsgXG4gICAgICAgIGlmICghdGhpcy5pc1NpbmdsZUxheW91dCh0aGlzLmxheW91dCkpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0LnNldFNlbGVjdGVkKHNlbGVjdGVkIGFzIDAgfCAxKSBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGdldCB0aGUgc2VsZWN0ZWQgcGFnZS5cbiAgICAgICogQHJldHVybnMgezAgfCAxIHwgMiB8IDN9IDAgZm9yIHBhZ2UxLCAxIGZvciBwYWdlMiwgMiBmb3IgcGFnZTMsIDMgZm9yIHBhZ2U0XG4gICAgICAqIEBtZW1iZXJvZiBMYXlvdXRNYW5hZ2VyXG4gICAgICAqL1xuICAgIHB1YmxpYyBnZXRTZWxlY3RlZCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXQuc2VsZWN0ZWRcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMFxuICAgIH1cblxuICAgIC8qKlxuICAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGdldCBzd2l0Y2ggdGhlIHNlbGVjdGVkIHBhZ2UuIElmIHRoZSBsYXlvdXQgaXMgYSBzaW5nbGUgbGF5b3V0LCBpdCB3aWxsIGRvIG5vdGhpbmcuXG4gICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAgKi9cbiAgICBwdWJsaWMgY2hhbmdlTGF5b3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5jaGFuZ2VMYXlvdXQoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBkZWNyZWFzZSB0aGUgcm93IHJhdGlvIGJldHdlZW4gdGhlIHBhZ2VzIGluIHRoZSBzZWxlY3RlZCByb3cuIFRoaXMgaXMgcHJvcGFnYXRlZCB0byB0aGUgbGF5b3V0IGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSB7cXVhbnRpdHl9IHF1YW50aXR5IFRoZSBhbW91bnQgb2YgYXNwZWN0IHJhdGlvIHRvIGJlIGRlY3JlYXNlZC5cbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqIEBleGFtcGxlIGxheW91dC5kZWNyZWFzZVJvd1JhdGlvKDAuMDEpXG4gICAgICovXG4gICAgcHVibGljIGRlY3JlYXNlUmF0aW8ocXVhbnRpdHk6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5kZWNyZWFzZVJhdGlvKHF1YW50aXR5KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbmNyZWFzZSB0aGUgcm93IHJhdGlvIGJldHdlZW4gdGhlIHBhZ2VzIGluIHRoZSBzZWxlY3RlZCByb3cuIFRoaXMgaXMgcHJvcGFnYXRlZCB0byB0aGUgbGF5b3V0IGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSB7cXVhbnRpdHl9IHF1YW50aXR5IFRoZSBhbW91bnQgb2YgYXNwZWN0IHJhdGlvIHRvIGJlIGluY3JlYXNlZC5cbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqIEBleGFtcGxlIGxheW91dC5pbmNyZWFzZVJvd1JhdGlvKDAuMDEpXG4gICAgICovXG4gICAgcHVibGljIGluY3JlYXNlUmF0aW8ocXVhbnRpdHk6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5pbmNyZWFzZVJhdGlvKHF1YW50aXR5KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBkcmF3IHRoZSBsYXlvdXQgdG8gdGhlIHNjcmVlbi5cbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBleGFtcGxlIGxheW91dC5kcmF3KClcbiAgICAgKi9cbiAgICBwdWJsaWMgZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXlvdXQuZHJhdygpXG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMYXlvdXRNYW5hZ2VyIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0TWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2xheW91dC9MYXlvdXRNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUdwRCxPQUFPLFlBQXFDLE1BQU0sbUJBQW1CLENBQUE7QUFDckUsT0FBTyxVQUFpQyxNQUFNLGlCQUFpQixDQUFBO0FBQy9ELE9BQU8sWUFBcUMsTUFBTSxtQkFBbUIsQ0FBQTtBQThCckU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFTdEIsWUFBbUIsS0FBb0IsRUFBRSxPQUFzQjtRQUx4RCxVQUFLLEdBQW1DLEVBQUUsQ0FBQTtRQUN6QyxlQUFVLEdBQWEsRUFBRSxDQUFBO1FBdUVqQzs7Ozs7O1dBTUc7UUFDSyxtQkFBYyxHQUFHLENBQUMsQ0FBVSxFQUFxQixFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxZQUFZLFlBQVksQ0FBQTtRQUNwQyxDQUFDLENBQUE7UUEzRUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO1NBQ3ZCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtZQUNwQiw0RUFBNEU7WUFDNUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO1lBRzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1lBQ3RCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQzVCLENBQUMsQ0FBQyxDQUFBO1lBRUYsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFV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QyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBaUIsQ0FBQyxDQUFBO1NBQzdDO0lBQ0wsQ0FBQztJQUVEOzs7O1FBSUk7SUFDRyxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUE7U0FDOUI7UUFDRCxPQUFPLENBQUMsQ0FBQTtJQUNaLENBQUM7SUFFRDs7OztRQUlJO0lBQ0csWUFBWTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksYUFBYSxDQUFDLFFBQWdCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUN0QztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGFBQWEsQ0FBQyxRQUFnQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7U0FDdEM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxJQUFJO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0NBQ0o7QUFFRCxlQUFlLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcmVncm91bmRDb2xvck5hbWUgfSBmcm9tIFwiY2hhbGtcIlxuaW1wb3J0IHsgQ29uc29sZU1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vQ29uc29sZUd1aS5qc1wiXG5pbXBvcnQgUGFnZUJ1aWxkZXIgZnJvbSBcIi4uL1BhZ2VCdWlsZGVyLmpzXCJcbmltcG9ydCB7IEhFWCwgUkdCIH0gZnJvbSBcIi4uL1V0aWxzLmpzXCJcbmltcG9ydCBEb3VibGVMYXlvdXQsIHsgRG91YmxlTGF5b3V0T3B0aW9ucyB9IGZyb20gXCIuL0RvdWJsZUxheW91dC5qc1wiXG5pbXBvcnQgUXVhZExheW91dCwgeyBRdWFkTGF5b3V0T3B0aW9ucyB9IGZyb20gXCIuL1F1YWRMYXlvdXQuanNcIlxuaW1wb3J0IFNpbmdsZUxheW91dCwgeyBTaW5nbGVMYXlvdXRPcHRpb25zIH0gZnJvbSBcIi4vU2luZ2xlTGF5b3V0LmpzXCJcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgY29udGFpbmluZyBhbGwgdGhlIHBvc3NpYmxlIG9wdGlvbnMgZm9yIHRoZSBsYXlvdXQuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMYXlvdXRPcHRpb25zXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3Nob3dUaXRsZV0gLSBJZiB0aGUgdGl0bGUgc2hvdWxkIGJlIHNob3duLlxuICogQHByb3Age2Jvb2xlYW59IFtib3hlZF0gLSBJZiB0aGUgbGF5b3V0IHNob3VsZCBiZSBib3hlZC5cbiAqIEBwcm9wIHtGb3JlZ3JvdW5kQ29sb3JOYW1lIHwgSEVYIHwgUkdCIHwgXCJcIn0gW2JveENvbG9yXSAtIFRoZSBjb2xvciBvZiB0aGUgYm94IHRha2VuIGZyb20gdGhlIGNoYWxrIGxpYnJhcnkuXG4gKiBAcHJvcCB7XCJib2xkXCJ9IFtib3hTdHlsZV0gLSBJZiB0aGUgYm9yZGVyIG9mIHRoZSBib3ggc2hvdWxkIGJlIGJvbGQuXG4gKiBAcHJvcCB7XCJzaW5nbGVcIiB8IFwiZG91YmxlXCIgfCBcInRyaXBsZVwiIHwgXCJxdWFkXCJ9IFt0eXBlXSAtIFRoZSB0eXBlIG9mIHRoZSBsYXlvdXQuXG4gKiBAcHJvcCB7c3RyaW5nfSBbY2hhbmdlRm9jdXNLZXldIC0gVGhlIGtleSB0aGF0IHNob3VsZCBiZSBwcmVzc2VkIHRvIGNoYW5nZSB0aGUgZm9jdXMuXG4gKiBAcHJvcCB7XCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCJ9IFtkaXJlY3Rpb25dIC0gVGhlIGRpcmVjdGlvbiBvZiB0aGUgbGF5b3V0LlxuICogQHByb3Age3N0cmluZ1tdfSBbcGFnZVRpdGxlc10gLSBUaGUgdGl0bGUgb2YgdGhlIGZpcnN0IHBhZ2UuXG4gKiBAcHJvcCB7W251bWJlciwgbnVtYmVyXSB8IFtbbnVtYmVyLCBudW1iZXJdXX0gW3BhZ2VSYXRpb10gLSBUaGUgcmF0aW8gb2YgdGhlIHBhZ2VzLiAoaW4gaG9yaXpvbnRhbCBkaXJlY3Rpb24pXG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBMYXlvdXRPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0T3B0aW9ucyB7XG4gICAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgICBib3hlZD86IGJvb2xlYW47XG4gICAgYm94Q29sb3I/OiBGb3JlZ3JvdW5kQ29sb3JOYW1lIHwgSEVYIHwgUkdCIHwgXCJcIjsgLy8gYWRkIGNvbG9yIGxpc3QgZnJvbSBjaGFsa1xuICAgIGJveFN0eWxlPzogXCJib2xkXCI7XG4gICAgY2hhbmdlRm9jdXNLZXk6IHN0cmluZztcbiAgICB0eXBlOiBcInNpbmdsZVwiIHwgXCJkb3VibGVcIiB8IFwidHJpcGxlXCIgfCBcInF1YWRcIjtcbiAgICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcbiAgICBwYWdlVGl0bGVzPzogc3RyaW5nW107XG4gICAgcGFnZVJhdGlvPzogW251bWJlciwgbnVtYmVyXSB8IFtbbnVtYmVyLCBudW1iZXJdXTtcbn1cblxuLyoqXG4gKiBAY2xhc3MgTGF5b3V0TWFuYWdlclxuICogQGRlc2NyaXB0aW9uIFRoaXMgY2xhc3MgaXMgYSBsYXlvdXQgdGhhdCBoYXMgdHdvIHBhZ2VzLlxuICogXG4gKiAhW2NoYW5nZSByYXRpb10oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTQ5MDc5ODcvMTcwOTk5MzQ3LTg2OGVhYzdiLTZiZGYtNDE0Ny1iY2IwLWI3NDY1MjgyZWQ1Zi5naWYpXG4gKiBcbiAqIEBwYXJhbSB7UGFnZUJ1aWxkZXJbXX0gcGFnZXMgVGhlIHBhZ2VzIHRoYXQgc2hvdWxkIGJlIHNob3duLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zIExheW91dCBvcHRpb25zLlxuICogQGV4YW1wbGUgY29uc3QgbGF5b3V0ID0gbmV3IExheW91dE1hbmFnZXIoW3BhZ2UxLCBwYWdlMl0sIHBhZ2VPcHRpb25zKTtcbiAqL1xuZXhwb3J0IGNsYXNzIExheW91dE1hbmFnZXIge1xuICAgIHByaXZhdGUgQ00hOiBDb25zb2xlTWFuYWdlclxuICAgIHByaXZhdGUgb3B0aW9ucyE6IExheW91dE9wdGlvbnNcbiAgICBwcml2YXRlIG9wdGlvbnNSZWxhdGl2ZSE6IFNpbmdsZUxheW91dE9wdGlvbnMgfCBEb3VibGVMYXlvdXRPcHRpb25zIHwgUXVhZExheW91dE9wdGlvbnNcbiAgICBwdWJsaWMgcGFnZXM6IHsgW2tleTogbnVtYmVyXTogUGFnZUJ1aWxkZXIgfSA9IHt9XG4gICAgcHJpdmF0ZSBwYWdlVGl0bGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgcHVibGljIGxheW91dCE6IFNpbmdsZUxheW91dCB8IERvdWJsZUxheW91dCB8IFF1YWRMYXlvdXRcbiAgICBwcml2YXRlIGluc3RhbmNlITogTGF5b3V0TWFuYWdlclxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhZ2VzOiBQYWdlQnVpbGRlcltdLCBvcHRpb25zOiBMYXlvdXRPcHRpb25zKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IHRoaXNcbiAgICAgICAgICAgIC8qKiBAY29uc3Qge0NvbnNvbGVNYW5hZ2VyfSBDTSB0aGUgaW5zdGFuY2Ugb2YgQ29uc29sZU1hbmFnZXIgKHNpbmdsZXRvbikgKi9cbiAgICAgICAgICAgIHRoaXMuQ00gPSBuZXcgQ29uc29sZU1hbmFnZXIoKVxuXG5cbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgICAgICAgIHBhZ2VzLmZvckVhY2goKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlc1tpbmRleF0gPSBwYWdlXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAvKiogQGNvbnN0IHtzdHJpbmd9IHBhZ2VUaXRsZSBUaGUgYXBwbGljYXRpb24gdGl0bGUuICovXG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZXMgPSB0aGlzLm9wdGlvbnMucGFnZVRpdGxlcyB8fCBbdGhpcy5DTS5hcHBsaWNhdGlvblRpdGxlXVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwic2luZ2xlXCI6XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zUmVsYXRpdmUgPSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dUaXRsZTogdGhpcy5vcHRpb25zLnNob3dUaXRsZSxcbiAgICAgICAgICAgICAgICAgICAgYm94ZWQ6IHRoaXMub3B0aW9ucy5ib3hlZCxcbiAgICAgICAgICAgICAgICAgICAgYm94Q29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgYm94U3R5bGU6IHRoaXMub3B0aW9ucy5ib3hTdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVRpdGxlOiB0aGlzLnBhZ2VUaXRsZXMgPyB0aGlzLnBhZ2VUaXRsZXNbMF0gOiBcIlwiLFxuICAgICAgICAgICAgICAgIH0gYXMgU2luZ2xlTGF5b3V0T3B0aW9uc1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gbmV3IFNpbmdsZUxheW91dCh0aGlzLnBhZ2VzWzBdLCB0aGlzLm9wdGlvbnNSZWxhdGl2ZSlcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSBcImRvdWJsZVwiOlxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1JlbGF0aXZlID0ge1xuICAgICAgICAgICAgICAgICAgICBzaG93VGl0bGU6IHRoaXMub3B0aW9ucy5zaG93VGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGJveGVkOiB0aGlzLm9wdGlvbnMuYm94ZWQsXG4gICAgICAgICAgICAgICAgICAgIGJveENvbG9yOiB0aGlzLm9wdGlvbnMuYm94Q29sb3IsXG4gICAgICAgICAgICAgICAgICAgIGJveFN0eWxlOiB0aGlzLm9wdGlvbnMuYm94U3R5bGUsXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZUZvY3VzS2V5OiB0aGlzLm9wdGlvbnMuY2hhbmdlRm9jdXNLZXksXG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5vcHRpb25zLmRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgcGFnZTFUaXRsZTogdGhpcy5wYWdlVGl0bGVzID8gdGhpcy5wYWdlVGl0bGVzWzBdIDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcGFnZTJUaXRsZTogdGhpcy5wYWdlVGl0bGVzID8gdGhpcy5wYWdlVGl0bGVzWzFdIDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgcGFnZVJhdGlvOiB0aGlzLm9wdGlvbnMucGFnZVJhdGlvLFxuICAgICAgICAgICAgICAgIH0gYXMgRG91YmxlTGF5b3V0T3B0aW9uc1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gbmV3IERvdWJsZUxheW91dCh0aGlzLnBhZ2VzWzBdLCB0aGlzLnBhZ2VzWzFdLCB0aGlzLm9wdGlvbnNSZWxhdGl2ZSBhcyBEb3VibGVMYXlvdXRPcHRpb25zKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlIFwidHJpcGxlXCI6XG5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSBcInF1YWRcIjpcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNSZWxhdGl2ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgc2hvd1RpdGxlOiB0aGlzLm9wdGlvbnMuc2hvd1RpdGxlLFxuICAgICAgICAgICAgICAgICAgICBib3hlZDogdGhpcy5vcHRpb25zLmJveGVkLFxuICAgICAgICAgICAgICAgICAgICBib3hDb2xvcjogdGhpcy5vcHRpb25zLmJveENvbG9yLFxuICAgICAgICAgICAgICAgICAgICBib3hTdHlsZTogdGhpcy5vcHRpb25zLmJveFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VGb2N1c0tleTogdGhpcy5vcHRpb25zLmNoYW5nZUZvY3VzS2V5LFxuICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMub3B0aW9ucy5kaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UxVGl0bGU6IHRoaXMucGFnZVRpdGxlcyA/IHRoaXMucGFnZVRpdGxlc1swXSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UyVGl0bGU6IHRoaXMucGFnZVRpdGxlcyA/IHRoaXMucGFnZVRpdGxlc1sxXSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UzVGl0bGU6IHRoaXMucGFnZVRpdGxlcyA/IHRoaXMucGFnZVRpdGxlc1syXSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2U0VGl0bGU6IHRoaXMucGFnZVRpdGxlcyA/IHRoaXMucGFnZVRpdGxlc1szXSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VSYXRpbzogdGhpcy5vcHRpb25zLnBhZ2VSYXRpbyxcbiAgICAgICAgICAgICAgICB9IGFzIFF1YWRMYXlvdXRPcHRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSBuZXcgUXVhZExheW91dCh0aGlzLnBhZ2VzWzBdLCB0aGlzLnBhZ2VzWzFdLCB0aGlzLnBhZ2VzWzJdLCB0aGlzLnBhZ2VzWzNdLCB0aGlzLm9wdGlvbnNSZWxhdGl2ZSBhcyBRdWFkTGF5b3V0T3B0aW9ucylcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjaGVjayBpZiB0aGUgbGF5b3V0IGlzIGEgc2luZ2xlIGxheW91dCBieSBjaGVja2luZyB0aGUgdHlwZSBvZiB0aGUgaW5zdGFuY2UuXG4gICAgICogQHBhcmFtIHt1bmtub3dufSB4IC0gVGhlIGluc3RhbmNlIG9mIHRoZSBsYXlvdXQuXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59IC0gSWYgdGhlIGxheW91dCBpcyBhIHNpbmdsZSBsYXlvdXQuXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKiBAZXhhbXBsZSBjb25zdCBpc1NpbmdsZUxheW91dCA9IHRoaXMuaXNTaW5nbGVMYXlvdXQobGF5b3V0KVxuICAgICAqL1xuICAgIHByaXZhdGUgaXNTaW5nbGVMYXlvdXQgPSAoeDogdW5rbm93bik6IHggaXMgU2luZ2xlTGF5b3V0ID0+IHtcbiAgICAgICAgcmV0dXJuIHggaW5zdGFuY2VvZiBTaW5nbGVMYXlvdXRcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgbGF5b3V0IHBhZ2VzLlxuICAgICAqIEBwYXJhbSB7UGFnZUJ1aWxkZXJbXX0gcGFnZXMgVGhlIHBhZ2VzIHRoYXQgc2hvdWxkIGJlIHNob3duLlxuICAgICAqIEBtZW1iZXJvZiBMYXlvdXRNYW5hZ2VyXG4gICAgICogQGV4YW1wbGUgbGF5b3V0LnVwZGF0ZVBhZ2VzKFtwYWdlMSwgcGFnZTJdKVxuICAgICAqIEBleGFtcGxlIGxheW91dC51cGRhdGVQYWdlcyhbcGFnZTEsIHBhZ2UyLCBwYWdlM10pXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VzKHBhZ2VzOiBQYWdlQnVpbGRlcltdKTogdm9pZCB7XG4gICAgICAgIHBhZ2VzLmZvckVhY2goKHBhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VzW2luZGV4XSA9IHBhZ2VcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0LnNldFBhZ2UocGFnZSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0UGFnZShwYWdlLCBpbmRleClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgcGFnZSBjb250ZW50LlxuICAgICAqIEBwYXJhbSB7UGFnZUJ1aWxkZXJ9IHBhZ2UgdGhlIHBhZ2UgdG8gYmUgYWRkZWRcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBwYWdlXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZShwYWdlOiBQYWdlQnVpbGRlciwgaW5kZXg6IG51bWJlcik6IHZvaWQgeyBcbiAgICAgICAgdGhpcy5wYWdlc1tpbmRleF0gPSBwYWdlXG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0UGFnZShwYWdlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0UGFnZShwYWdlLCBpbmRleClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBwYWdlIHRpdGxlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIHBhZ2UuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IFRoZSBpbmRleCBvZiB0aGUgcGFnZS5cbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqIEBleGFtcGxlIGxheW91dC5zZXRUaXRsZShcIlBhZ2UgVGl0bGVcIiwgMSlcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQgeyBcbiAgICAgICAgdGhpcy5wYWdlVGl0bGVzW2luZGV4XSA9IHRpdGxlXG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0VGl0bGUodGl0bGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXRUaXRsZSh0aXRsZSwgaW5kZXgpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHVwZGF0ZSB0aGUgcGFnZSB0aXRsZXMuXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gdGl0bGVzIFRoZSB0aXRsZXMgb2YgdGhlIHBhZ2VzLlxuICAgICAqIEBtZW1iZXJvZiBMYXlvdXRNYW5hZ2VyXG4gICAgICogQGV4YW1wbGUgbGF5b3V0LnNldFRpdGxlcyhbXCJQYWdlIFRpdGxlIDFcIiwgXCJQYWdlIFRpdGxlIDJcIl0pXG4gICAgICovXG4gICAgcHVibGljIHNldFRpdGxlcyh0aXRsZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlcyA9IHRpdGxlc1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZUxheW91dCh0aGlzLmxheW91dCkpIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0LnNldFRpdGxlKHRpdGxlc1swXSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0LnNldFRpdGxlcyh0aXRsZXMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBsYXlvdXQgYm9yZGVyLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gYm9yZGVyIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBib3JkZXJcbiAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRCb3JkZXIoYm9yZGVyOiBib29sZWFuKTogdm9pZCB7IHRoaXMub3B0aW9ucy5ib3hlZCA9IGJvcmRlciB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNob29zZSB0aGUgcGFnZSB0byBiZSBoaWdobGlnaHRlZC5cbiAgICAgKiBAcGFyYW0gezAgfCAxIHwgMiB8IDN9IHNlbGVjdGVkIDAgZm9yIHBhZ2UxLCAxIGZvciBwYWdlMlxuICAgICAqIEBtZW1iZXJvZiBMYXlvdXRNYW5hZ2VyXG4gICAgICovXG4gICAgcHVibGljIHNldFNlbGVjdGVkKHNlbGVjdGVkOiAwIHwgMSB8IDIgfCAzKTogdm9pZCB7IFxuICAgICAgICBpZiAoIXRoaXMuaXNTaW5nbGVMYXlvdXQodGhpcy5sYXlvdXQpKSB7XG4gICAgICAgICAgICB0aGlzLmxheW91dC5zZXRTZWxlY3RlZChzZWxlY3RlZCBhcyAwIHwgMSkgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBnZXQgdGhlIHNlbGVjdGVkIHBhZ2UuXG4gICAgICAqIEByZXR1cm5zIHswIHwgMSB8IDIgfCAzfSAwIGZvciBwYWdlMSwgMSBmb3IgcGFnZTIsIDIgZm9yIHBhZ2UzLCAzIGZvciBwYWdlNFxuICAgICAgKiBAbWVtYmVyb2YgTGF5b3V0TWFuYWdlclxuICAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U2VsZWN0ZWQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0LnNlbGVjdGVkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDBcbiAgICB9XG5cbiAgICAvKipcbiAgICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBnZXQgc3dpdGNoIHRoZSBzZWxlY3RlZCBwYWdlLiBJZiB0aGUgbGF5b3V0IGlzIGEgc2luZ2xlIGxheW91dCwgaXQgd2lsbCBkbyBub3RoaW5nLlxuICAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgICovXG4gICAgcHVibGljIGNoYW5nZUxheW91dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuY2hhbmdlTGF5b3V0KClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZGVjcmVhc2UgdGhlIHJvdyByYXRpbyBiZXR3ZWVuIHRoZSBwYWdlcyBpbiB0aGUgc2VsZWN0ZWQgcm93LiBUaGlzIGlzIHByb3BhZ2F0ZWQgdG8gdGhlIGxheW91dCBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0ge3F1YW50aXR5fSBxdWFudGl0eSBUaGUgYW1vdW50IG9mIGFzcGVjdCByYXRpbyB0byBiZSBkZWNyZWFzZWQuXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQuZGVjcmVhc2VSb3dSYXRpbygwLjAxKVxuICAgICAqL1xuICAgIHB1YmxpYyBkZWNyZWFzZVJhdGlvKHF1YW50aXR5OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuZGVjcmVhc2VSYXRpbyhxdWFudGl0eSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5jcmVhc2UgdGhlIHJvdyByYXRpbyBiZXR3ZWVuIHRoZSBwYWdlcyBpbiB0aGUgc2VsZWN0ZWQgcm93LiBUaGlzIGlzIHByb3BhZ2F0ZWQgdG8gdGhlIGxheW91dCBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0ge3F1YW50aXR5fSBxdWFudGl0eSBUaGUgYW1vdW50IG9mIGFzcGVjdCByYXRpbyB0byBiZSBpbmNyZWFzZWQuXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQuaW5jcmVhc2VSb3dSYXRpbygwLjAxKVxuICAgICAqL1xuICAgIHB1YmxpYyBpbmNyZWFzZVJhdGlvKHF1YW50aXR5OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2luZ2xlTGF5b3V0KHRoaXMubGF5b3V0KSkge1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQuaW5jcmVhc2VSYXRpbyhxdWFudGl0eSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZHJhdyB0aGUgbGF5b3V0IHRvIHRoZSBzY3JlZW4uXG4gICAgICogQG1lbWJlcm9mIExheW91dE1hbmFnZXJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQuZHJhdygpXG4gICAgICovXG4gICAgcHVibGljIGRyYXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGF5b3V0LmRyYXcoKVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0TWFuYWdlciJdfQ==
import { ForegroundColorName } from "chalk";
import { ConsoleManager, PageBuilder } from "../../ConsoleGui.js";
import { HEX, RGB } from "../Utils.js";
/**

@@ -8,3 +9,3 @@ * @description The type containing all the possible options for the QuadLayout.

* @prop {boolean} [boxed] - If the layout should be boxed.
* @prop {ForegroundColor | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {ForegroundColorName | HEX | RGB | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {"bold"} [boxStyle] - If the border of the box should be bold.

@@ -24,3 +25,3 @@ * @prop {string} [changeFocusKey] - The key that should be pressed to change the focus.

boxed?: boolean;
boxColor?: ForegroundColorName | "";
boxColor?: ForegroundColorName | HEX | RGB | "";
boxStyle?: "bold";

@@ -27,0 +28,0 @@ changeFocusKey: string;

import { ForegroundColorName } from "chalk";
import { ConsoleManager, PageBuilder } from "../../ConsoleGui.js";
import { HEX, RGB } from "../Utils.js";
/**

@@ -8,3 +9,3 @@ * @description The type containing all the possible options for the SingleLayout.

* @prop {boolean} [boxed] - If the layout should be boxed.
* @prop {ForegroundColor | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {ForegroundColorName | HEX | RGB | ""} [boxColor] - The color of the box taken from the chalk library.
* @prop {"bold"} [boxStyle] - If the border of the box should be bold.

@@ -19,3 +20,3 @@ * @prop {string} [pageTitle] - The title of the first page.

boxed?: boolean;
boxColor?: ForegroundColorName | "";
boxColor?: ForegroundColorName | HEX | RGB | "";
boxStyle?: "bold";

@@ -22,0 +23,0 @@ pageTitle?: string;

@@ -115,2 +115,2 @@ import { ConsoleManager } from "../../ConsoleGui.js";

export default SingleLayout;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xlTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbGF5b3V0L1NpbmdsZUxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0scUJBQXFCLENBQUE7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBaUIsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBc0IvRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQVFyQixZQUFtQixJQUFpQixFQUFFLE9BQTRCO1FBQzlELDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7UUFFOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFFaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBRTlELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUE7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsSUFBaUIsSUFBVSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQSxDQUFDLENBQUM7SUFFNUQ7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFDLEtBQWEsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFL0Q7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxNQUFlLElBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBLENBQUMsQ0FBQztJ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QUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDeEksSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSTtRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM5RSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsMEJBQTBCO1lBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsR0FBRyxZQUFZLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTthQUNuUztpQkFBTTtnQkFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7YUFDOVA7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDcE87YUFBTSxFQUFFLDZCQUE2QjtZQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7YUFDakg7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQztDQUNKO0FBRUQsZUFBZSxZQUFZLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JlZ3JvdW5kQ29sb3JOYW1lIH0gZnJvbSBcImNoYWxrXCJcbmltcG9ydCB7IENvbnNvbGVNYW5hZ2VyLCBQYWdlQnVpbGRlciB9IGZyb20gXCIuLi8uLi9Db25zb2xlR3VpLmpzXCJcbmltcG9ydCB7IGJveENoYXJzLCBTdHlsZWRFbGVtZW50LCB0cnVuY2F0ZSB9IGZyb20gXCIuLi9VdGlscy5qc1wiXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIGNvbnRhaW5pbmcgYWxsIHRoZSBwb3NzaWJsZSBvcHRpb25zIGZvciB0aGUgU2luZ2xlTGF5b3V0LlxuICogQHR5cGVkZWYge09iamVjdH0gU2luZ2xlTGF5b3V0T3B0aW9uc1xuICogQHByb3Age2Jvb2xlYW59IFtzaG93VGl0bGVdIC0gSWYgdGhlIHRpdGxlIHNob3VsZCBiZSBzaG93bi5cbiAqIEBwcm9wIHtib29sZWFufSBbYm94ZWRdIC0gSWYgdGhlIGxheW91dCBzaG91bGQgYmUgYm94ZWQuXG4gKiBAcHJvcCB7Rm9yZWdyb3VuZENvbG9yIHwgXCJcIn0gW2JveENvbG9yXSAtIFRoZSBjb2xvciBvZiB0aGUgYm94IHRha2VuIGZyb20gdGhlIGNoYWxrIGxpYnJhcnkuXG4gKiBAcHJvcCB7XCJib2xkXCJ9IFtib3hTdHlsZV0gLSBJZiB0aGUgYm9yZGVyIG9mIHRoZSBib3ggc2hvdWxkIGJlIGJvbGQuXG4gKiBAcHJvcCB7c3RyaW5nfSBbcGFnZVRpdGxlXSAtIFRoZSB0aXRsZSBvZiB0aGUgZmlyc3QgcGFnZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAaW50ZXJmYWNlIFNpbmdsZUxheW91dE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaW5nbGVMYXlvdXRPcHRpb25zIHtcbiAgICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIGJveGVkPzogYm9vbGVhbjtcbiAgICBib3hDb2xvcj86IEZvcmVncm91bmRDb2xvck5hbWUgfCBcIlwiOyAvLyBhZGQgY29sb3IgbGlzdCBmcm9tIGNoYWxrXG4gICAgYm94U3R5bGU/OiBcImJvbGRcIjtcbiAgICBwYWdlVGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGNsYXNzIFNpbmdsZUxheW91dFxuICogQGRlc2NyaXB0aW9uIFRoaXMgY2xhc3MgaXMgYSBsYXlvdXQgdGhhdCBoYXMgdHdvIHBhZ2VzLlxuICogXG4gKiAhW3NpbmdsZSBsYXlvdXRdKGh0dHBzOi8vdXNlci1pbWFnZXMuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzE0OTA3OTg3LzE3MDk5NzU2Ny1iMTI2MDk5Ni1jYzdlLTRjMjYtODM4OS0zOTUxOTMxM2YzZjYucG5nKVxuICogXG4gKiBAcGFyYW0ge1BhZ2VCdWlsZGVyfSBwYWdlIFRoZSBmaXJzdCBwYWdlLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zIExheW91dCBvcHRpb25zLlxuICogQGV4YW1wbGUgY29uc3QgbGF5b3V0ID0gbmV3IFNpbmdsZUxheW91dChwYWdlMSwgcGFnZTIsIHRydWUsIDApXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW5nbGVMYXlvdXQge1xuICAgIENNOiBDb25zb2xlTWFuYWdlclxuICAgIG9wdGlvbnM6IFNpbmdsZUxheW91dE9wdGlvbnNcbiAgICBwYWdlOiBQYWdlQnVpbGRlclxuICAgIGJveEJvbGQ6IGJvb2xlYW5cbiAgICBwYWdlVGl0bGU6IHN0cmluZ1xuICAgIGlzT2RkOiBib29sZWFuIHwgdW5kZWZpbmVkXG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGFnZTogUGFnZUJ1aWxkZXIsIG9wdGlvbnM6IFNpbmdsZUxheW91dE9wdGlvbnMpIHtcbiAgICAgICAgLyoqIEBjb25zdCB7Q29uc29sZU1hbmFnZXJ9IENNIHRoZSBpbnN0YW5jZSBvZiBDb25zb2xlTWFuYWdlciAoc2luZ2xldG9uKSAqL1xuICAgICAgICB0aGlzLkNNID0gbmV3IENvbnNvbGVNYW5hZ2VyKClcblxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gICAgICAgIHRoaXMucGFnZSA9IHBhZ2VcblxuICAgICAgICB0aGlzLmJveEJvbGQgPSB0aGlzLm9wdGlvbnMuYm94U3R5bGUgPT09IFwiYm9sZFwiID8gdHJ1ZSA6IGZhbHNlXG5cbiAgICAgICAgLyoqIEBjb25zdCB7c3RyaW5nfSBwYWdlVGl0bGUgVGhlIGFwcGxpY2F0aW9uIHRpdGxlLiAqL1xuICAgICAgICB0aGlzLnBhZ2VUaXRsZSA9IHRoaXMub3B0aW9ucy5wYWdlVGl0bGUgfHwgdGhpcy5DTS5hcHBsaWNhdGlvblRpdGxlXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBvdmVyd3JpdGUgdGhlIHBhZ2UgY29udGVudC5cbiAgICAgKiBAcGFyYW0ge1BhZ2VCdWlsZGVyfSBwYWdlIHRoZSBwYWdlIHRvIGJlIGFkZGVkXG4gICAgICogQG1lbWJlcm9mIFNpbmdsZUxheW91dFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IFBhZ2VCdWlsZGVyKTogdm9pZCB7IHRoaXMucGFnZSA9IHBhZ2UgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBzZXQgdGhlIHRpdGxlIG9mIHRoZSBsYXlvdXQuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlIHRoZSB0aXRsZSB0byBiZSBzZXRcbiAgICAgKiBAbWVtYmVyb2YgU2luZ2xlTGF5b3V0XG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICogQGV4YW1wbGUgbGF5b3V0LnNldFRpdGxlKFwiTXkgVGl0bGVcIilcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHZvaWQgeyB0aGlzLnBhZ2VUaXRsZSA9IHRpdGxlIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGxheW91dCBib3JkZXIuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBib3JkZXIgZW5hYmxlIG9yIGRpc2FibGUgdGhlIGJvcmRlclxuICAgICAqIEBtZW1iZXJvZiBTaW5nbGVMYXlvdXRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Qm9yZGVyKGJvcmRlcjogYm9vbGVhbik6IHZvaWQgeyB0aGlzLm9wdGlvbnMuYm94ZWQgPSBib3JkZXIgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBkcmF3IGEgc2luZ2xlIGxpbmUgb2YgdGhlIGxheW91dCB0byB0aGUgc2NyZWVuLiBJdCBhbHNvIHRyaW0gdGhlIGxpbmUgaWYgaXQgaXMgdG9vIGxvbmcuXG4gICAgICogQHBhcmFtIHtBcnJheTxTdHlsZWRFbGVtZW50Pn0gbGluZSB0aGUgbGluZSB0byBiZSBkcmF3blxuICAgICAqIEBtZW1iZXJvZiBTaW5nbGVMYXlvdXRcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKi9cbiAgICBwcml2YXRlIGRyYXdMaW5lKGxpbmU6IEFycmF5PFN0eWxlZEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJzaXplID0gdGhpcy5vcHRpb25zLmJveGVkID8gMiA6IDBcbiAgICAgICAgbGV0IHVuZm9ybWF0dGVkTGluZSA9IFwiXCJcbiAgICAgICAgbGV0IG5ld0xpbmUgPSBbLi4ubGluZV1cblxuICAgICAgICBsaW5lLmZvckVhY2goKGVsZW1lbnQ6IHsgdGV4dDogc3RyaW5nOyB9KSA9PiB7XG4gICAgICAgICAgICB1bmZvcm1hdHRlZExpbmUgKz0gZWxlbWVudC50ZXh0XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHVuZm9ybWF0dGVkTGluZS5sZW5ndGggPiB0aGlzLkNNLlNjcmVlbi53aWR0aCAtIGJzaXplKSB7IC8vIE5lZWQgdG8gdHJ1bmNhdGVcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IDJcbiAgICAgICAgICAgIG5ld0xpbmUgPSBbLi4uSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShsaW5lKSldIC8vIFNoYWxsb3cgY29weSBiZWNhdXNlIEkganVzdCB3YW50IHRvIG1vZGlmeSB0aGUgdmFsdWVzIGJ1dCBub3QgdGhlIG9yaWdpbmFsXG5cbiAgICAgICAgICAgIGxldCBkaWZmID0gdW5mb3JtYXR0ZWRMaW5lLmxlbmd0aCAtIHRoaXMuQ00uU2NyZWVuLndpZHRoICsgMVxuXG4gICAgICAgICAgICAvLyByZW1vdmUgdHJ1bmNhdGVkIHRleHRcbiAgICAgICAgICAgIGZvciAobGV0IGogPSBuZXdMaW5lLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0xpbmVbal0udGV4dC5sZW5ndGggPiBkaWZmICsgb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0xpbmVbal0udGV4dCA9IHRydW5jYXRlKG5ld0xpbmVbal0udGV4dCwgKG5ld0xpbmVbal0udGV4dC5sZW5ndGggLSBkaWZmKSAtIG9mZnNldCwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkaWZmIC09IG5ld0xpbmVbal0udGV4dC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgbmV3TGluZS5zcGxpY2UoaiwgMSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBVcGRhdGUgdW5mb3JtYXR0ZWQgbGluZVxuICAgICAgICAgICAgdW5mb3JtYXR0ZWRMaW5lID0gbmV3TGluZS5tYXAoKGVsZW1lbnQ6IHsgdGV4dDogc3RyaW5nOyB9KSA9PiBlbGVtZW50LnRleHQpLmpvaW4oXCJcIilcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJveGVkKSBuZXdMaW5lLnVuc2hpZnQoeyB0ZXh0OiBib3hDaGFyc1tcIm5vcm1hbFwiXS52ZXJ0aWNhbCwgc3R5bGU6IHsgY29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvciwgYm9sZDogdGhpcy5ib3hCb2xkIH0gfSlcbiAgICAgICAgaWYgKHVuZm9ybWF0dGVkTGluZS5sZW5ndGggPD0gdGhpcy5DTS5TY3JlZW4ud2lkdGggLSBic2l6ZSkge1xuICAgICAgICAgICAgbmV3TGluZS5wdXNoKHsgdGV4dDogYCR7XCIgXCIucmVwZWF0KCh0aGlzLkNNLlNjcmVlbi53aWR0aCAtIHVuZm9ybWF0dGVkTGluZS5sZW5ndGgpIC0gYnNpemUpfWAsIHN0eWxlOiB7IGNvbG9yOiBcIlwiIH0gfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmJveGVkKSBuZXdMaW5lLnB1c2goeyB0ZXh0OiBib3hDaGFyc1tcIm5vcm1hbFwiXS52ZXJ0aWNhbCwgc3R5bGU6IHsgY29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvciwgYm9sZDogdGhpcy5ib3hCb2xkIH0gfSlcbiAgICAgICAgdGhpcy5DTS5TY3JlZW4ud3JpdGUoLi4ubmV3TGluZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRyYXcgdGhlIGxheW91dCB0byB0aGUgc2NyZWVuLlxuICAgICAqIEBtZW1iZXJvZiBTaW5nbGVMYXlvdXRcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQuZHJhdygpXG4gICAgICovXG4gICAgcHVibGljIGRyYXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPZGQgPSB0aGlzLkNNLlNjcmVlbi53aWR0aCAlIDIgPT09IDFcbiAgICAgICAgY29uc3QgdHJpbW1lZFRpdGxlID0gdHJ1bmNhdGUodGhpcy5wYWdlVGl0bGUsIHRoaXMuQ00uU2NyZWVuLndpZHRoIC0gMiwgZmFsc2UpXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYm94ZWQpIHsgLy8gRHJhdyBwYWdlcyB3aXRoIGJvcmRlcnNcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5DTS5TY3JlZW4ud3JpdGUoeyB0ZXh0OiBgJHtib3hDaGFyc1tcIm5vcm1hbFwiXS50b3BMZWZ0fSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0uaG9yaXpvbnRhbH0ke3RyaW1tZWRUaXRsZX0ke2JveENoYXJzW1wibm9ybWFsXCJdLmhvcml6b250YWwucmVwZWF0KHRoaXMuQ00uU2NyZWVuLndpZHRoIC0gdHJpbW1lZFRpdGxlLmxlbmd0aCAtIDMpfSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0udG9wUmlnaHR9YCwgc3R5bGU6IHsgY29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvciwgYm9sZDogdGhpcy5ib3hCb2xkIH0gfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5DTS5TY3JlZW4ud3JpdGUoeyB0ZXh0OiBgJHtib3hDaGFyc1tcIm5vcm1hbFwiXS50b3BMZWZ0fSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0uaG9yaXpvbnRhbH0ke2JveENoYXJzW1wibm9ybWFsXCJdLmhvcml6b250YWwucmVwZWF0KHRoaXMuQ00uU2NyZWVuLndpZHRoIC0gMyl9JHtib3hDaGFyc1tcIm5vcm1hbFwiXS50b3BSaWdodH1gLCBzdHlsZTogeyBjb2xvcjogdGhpcy5vcHRpb25zLmJveENvbG9yLCBib2xkOiB0aGlzLmJveEJvbGQgfSB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wYWdlLmdldENvbnRlbnQoKS5mb3JFYWNoKChsaW5lOiBTdHlsZWRFbGVtZW50W10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXdMaW5lKGxpbmUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5DTS5TY3JlZW4ud3JpdGUoeyB0ZXh0OiBgJHtib3hDaGFyc1tcIm5vcm1hbFwiXS5ib3R0b21MZWZ0fSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0uaG9yaXpvbnRhbC5yZXBlYXQodGhpcy5DTS5TY3JlZW4ud2lkdGggLSAyKX0ke2JveENoYXJzW1wibm9ybWFsXCJdLmJvdHRvbVJpZ2h0fWAsIHN0eWxlOiB7IGNvbG9yOiB0aGlzLm9wdGlvbnMuYm94Q29sb3IsIGJvbGQ6IHRoaXMuYm94Qm9sZCB9IH0pXG4gICAgICAgIH0gZWxzZSB7IC8vIERyYXcgcGFnZXMgd2l0aG91dCBib3JkZXJzXG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNob3dUaXRsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuQ00uU2NyZWVuLndyaXRlKHsgdGV4dDogYCR7dHJpbW1lZFRpdGxlfWAsIHN0eWxlOiB7IGNvbG9yOiB0aGlzLm9wdGlvbnMuYm94Q29sb3IsIGJvbGQ6IHRoaXMuYm94Qm9sZCB9IH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBhZ2UuZ2V0Q29udGVudCgpLmZvckVhY2goKGxpbmU6IFN0eWxlZEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0xpbmUobGluZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNpbmdsZUxheW91dCJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xlTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbGF5b3V0L1NpbmdsZUxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0scUJBQXFCLENBQUE7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBMkIsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBc0J6RTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQVFyQixZQUFtQixJQUFpQixFQUFFLE9BQTRCO1FBQzlELDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7UUFFOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFFaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBRTlELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUE7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsSUFBaUIsSUFBVSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQSxDQUFDLENBQUM7SUFFNUQ7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFDLEtBQWEsSUFBVSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQSxDQUFDLENBQUM7SUFFL0Q7Ozs7T0FJRztJQUNJLFNBQVMsQ0FBQyxNQUFlLElBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBLENBQUMsQ0FBQztJ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QUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDeEksSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSTtRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM5RSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsMEJBQTBCO1lBQ2hELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsR0FBRyxZQUFZLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTthQUNuUztpQkFBTTtnQkFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7YUFDOVA7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDcE87YUFBTSxFQUFFLDZCQUE2QjtZQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUN4QixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7YUFDakg7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtTQUNMO0lBQ0wsQ0FBQztDQUNKO0FBRUQsZUFBZSxZQUFZLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JlZ3JvdW5kQ29sb3JOYW1lIH0gZnJvbSBcImNoYWxrXCJcbmltcG9ydCB7IENvbnNvbGVNYW5hZ2VyLCBQYWdlQnVpbGRlciB9IGZyb20gXCIuLi8uLi9Db25zb2xlR3VpLmpzXCJcbmltcG9ydCB7IGJveENoYXJzLCBIRVgsIFJHQiwgU3R5bGVkRWxlbWVudCwgdHJ1bmNhdGUgfSBmcm9tIFwiLi4vVXRpbHMuanNcIlxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBjb250YWluaW5nIGFsbCB0aGUgcG9zc2libGUgb3B0aW9ucyBmb3IgdGhlIFNpbmdsZUxheW91dC5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNpbmdsZUxheW91dE9wdGlvbnNcbiAqIEBwcm9wIHtib29sZWFufSBbc2hvd1RpdGxlXSAtIElmIHRoZSB0aXRsZSBzaG91bGQgYmUgc2hvd24uXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2JveGVkXSAtIElmIHRoZSBsYXlvdXQgc2hvdWxkIGJlIGJveGVkLlxuICogQHByb3Age0ZvcmVncm91bmRDb2xvck5hbWUgfCBIRVggfCBSR0IgfCBcIlwifSBbYm94Q29sb3JdIC0gVGhlIGNvbG9yIG9mIHRoZSBib3ggdGFrZW4gZnJvbSB0aGUgY2hhbGsgbGlicmFyeS5cbiAqIEBwcm9wIHtcImJvbGRcIn0gW2JveFN0eWxlXSAtIElmIHRoZSBib3JkZXIgb2YgdGhlIGJveCBzaG91bGQgYmUgYm9sZC5cbiAqIEBwcm9wIHtzdHJpbmd9IFtwYWdlVGl0bGVdIC0gVGhlIHRpdGxlIG9mIHRoZSBmaXJzdCBwYWdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBpbnRlcmZhY2UgU2luZ2xlTGF5b3V0T3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZUxheW91dE9wdGlvbnMge1xuICAgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgYm94ZWQ/OiBib29sZWFuO1xuICAgIGJveENvbG9yPzogRm9yZWdyb3VuZENvbG9yTmFtZSB8IEhFWCB8IFJHQiB8IFwiXCI7IC8vIGFkZCBjb2xvciBsaXN0IGZyb20gY2hhbGtcbiAgICBib3hTdHlsZT86IFwiYm9sZFwiO1xuICAgIHBhZ2VUaXRsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAY2xhc3MgU2luZ2xlTGF5b3V0XG4gKiBAZGVzY3JpcHRpb24gVGhpcyBjbGFzcyBpcyBhIGxheW91dCB0aGF0IGhhcyB0d28gcGFnZXMuXG4gKiBcbiAqICFbc2luZ2xlIGxheW91dF0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTQ5MDc5ODcvMTcwOTk3NTY3LWIxMjYwOTk2LWNjN2UtNGMyNi04Mzg5LTM5NTE5MzEzZjNmNi5wbmcpXG4gKiBcbiAqIEBwYXJhbSB7UGFnZUJ1aWxkZXJ9IHBhZ2UgVGhlIGZpcnN0IHBhZ2UuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMgTGF5b3V0IG9wdGlvbnMuXG4gKiBAZXhhbXBsZSBjb25zdCBsYXlvdXQgPSBuZXcgU2luZ2xlTGF5b3V0KHBhZ2UxLCBwYWdlMiwgdHJ1ZSwgMClcbiAqL1xuZXhwb3J0IGNsYXNzIFNpbmdsZUxheW91dCB7XG4gICAgQ006IENvbnNvbGVNYW5hZ2VyXG4gICAgb3B0aW9uczogU2luZ2xlTGF5b3V0T3B0aW9uc1xuICAgIHBhZ2U6IFBhZ2VCdWlsZGVyXG4gICAgYm94Qm9sZDogYm9vbGVhblxuICAgIHBhZ2VUaXRsZTogc3RyaW5nXG4gICAgaXNPZGQ6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYWdlOiBQYWdlQnVpbGRlciwgb3B0aW9uczogU2luZ2xlTGF5b3V0T3B0aW9ucykge1xuICAgICAgICAvKiogQGNvbnN0IHtDb25zb2xlTWFuYWdlcn0gQ00gdGhlIGluc3RhbmNlIG9mIENvbnNvbGVNYW5hZ2VyIChzaW5nbGV0b24pICovXG4gICAgICAgIHRoaXMuQ00gPSBuZXcgQ29uc29sZU1hbmFnZXIoKVxuXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZVxuXG4gICAgICAgIHRoaXMuYm94Qm9sZCA9IHRoaXMub3B0aW9ucy5ib3hTdHlsZSA9PT0gXCJib2xkXCIgPyB0cnVlIDogZmFsc2VcblxuICAgICAgICAvKiogQGNvbnN0IHtzdHJpbmd9IHBhZ2VUaXRsZSBUaGUgYXBwbGljYXRpb24gdGl0bGUuICovXG4gICAgICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5vcHRpb25zLnBhZ2VUaXRsZSB8fCB0aGlzLkNNLmFwcGxpY2F0aW9uVGl0bGVcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgcGFnZSBjb250ZW50LlxuICAgICAqIEBwYXJhbSB7UGFnZUJ1aWxkZXJ9IHBhZ2UgdGhlIHBhZ2UgdG8gYmUgYWRkZWRcbiAgICAgKiBAbWVtYmVyb2YgU2luZ2xlTGF5b3V0XG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2UocGFnZTogUGFnZUJ1aWxkZXIpOiB2b2lkIHsgdGhpcy5wYWdlID0gcGFnZSB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHNldCB0aGUgdGl0bGUgb2YgdGhlIGxheW91dC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUgdGhlIHRpdGxlIHRvIGJlIHNldFxuICAgICAqIEBtZW1iZXJvZiBTaW5nbGVMYXlvdXRcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKiBAZXhhbXBsZSBsYXlvdXQuc2V0VGl0bGUoXCJNeSBUaXRsZVwiKVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRUaXRsZSh0aXRsZTogc3RyaW5nKTogdm9pZCB7IHRoaXMucGFnZVRpdGxlID0gdGl0bGUgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgbGF5b3V0IGJvcmRlci5cbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGJvcmRlciBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYm9yZGVyXG4gICAgICogQG1lbWJlcm9mIFNpbmdsZUxheW91dFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRCb3JkZXIoYm9yZGVyOiBib29sZWFuKTogdm9pZCB7IHRoaXMub3B0aW9ucy5ib3hlZCA9IGJvcmRlciB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRyYXcgYSBzaW5nbGUgbGluZSBvZiB0aGUgbGF5b3V0IHRvIHRoZSBzY3JlZW4uIEl0IGFsc28gdHJpbSB0aGUgbGluZSBpZiBpdCBpcyB0b28gbG9uZy5cbiAgICAgKiBAcGFyYW0ge0FycmF5PFN0eWxlZEVsZW1lbnQ+fSBsaW5lIHRoZSBsaW5lIHRvIGJlIGRyYXduXG4gICAgICogQG1lbWJlcm9mIFNpbmdsZUxheW91dFxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqL1xuICAgIHByaXZhdGUgZHJhd0xpbmUobGluZTogQXJyYXk8U3R5bGVkRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnNpemUgPSB0aGlzLm9wdGlvbnMuYm94ZWQgPyAyIDogMFxuICAgICAgICBsZXQgdW5mb3JtYXR0ZWRMaW5lID0gXCJcIlxuICAgICAgICBsZXQgbmV3TGluZSA9IFsuLi5saW5lXVxuXG4gICAgICAgIGxpbmUuZm9yRWFjaCgoZWxlbWVudDogeyB0ZXh0OiBzdHJpbmc7IH0pID0+IHtcbiAgICAgICAgICAgIHVuZm9ybWF0dGVkTGluZSArPSBlbGVtZW50LnRleHRcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAodW5mb3JtYXR0ZWRMaW5lLmxlbmd0aCA+IHRoaXMuQ00uU2NyZWVuLndpZHRoIC0gYnNpemUpIHsgLy8gTmVlZCB0byB0cnVuY2F0ZVxuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gMlxuICAgICAgICAgICAgbmV3TGluZSA9IFsuLi5KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxpbmUpKV0gLy8gU2hhbGxvdyBjb3B5IGJlY2F1c2UgSSBqdXN0IHdhbnQgdG8gbW9kaWZ5IHRoZSB2YWx1ZXMgYnV0IG5vdCB0aGUgb3JpZ2luYWxcblxuICAgICAgICAgICAgbGV0IGRpZmYgPSB1bmZvcm1hdHRlZExpbmUubGVuZ3RoIC0gdGhpcy5DTS5TY3JlZW4ud2lkdGggKyAxXG5cbiAgICAgICAgICAgIC8vIHJlbW92ZSB0cnVuY2F0ZWQgdGV4dFxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IG5ld0xpbmUubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgICAgICBpZiAobmV3TGluZVtqXS50ZXh0Lmxlbmd0aCA+IGRpZmYgKyBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3TGluZVtqXS50ZXh0ID0gdHJ1bmNhdGUobmV3TGluZVtqXS50ZXh0LCAobmV3TGluZVtqXS50ZXh0Lmxlbmd0aCAtIGRpZmYpIC0gb2Zmc2V0LCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpZmYgLT0gbmV3TGluZVtqXS50ZXh0Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICBuZXdMaW5lLnNwbGljZShqLCAxKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB1bmZvcm1hdHRlZCBsaW5lXG4gICAgICAgICAgICB1bmZvcm1hdHRlZExpbmUgPSBuZXdMaW5lLm1hcCgoZWxlbWVudDogeyB0ZXh0OiBzdHJpbmc7IH0pID0+IGVsZW1lbnQudGV4dCkuam9pbihcIlwiKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYm94ZWQpIG5ld0xpbmUudW5zaGlmdCh7IHRleHQ6IGJveENoYXJzW1wibm9ybWFsXCJdLnZlcnRpY2FsLCBzdHlsZTogeyBjb2xvcjogdGhpcy5vcHRpb25zLmJveENvbG9yLCBib2xkOiB0aGlzLmJveEJvbGQgfSB9KVxuICAgICAgICBpZiAodW5mb3JtYXR0ZWRMaW5lLmxlbmd0aCA8PSB0aGlzLkNNLlNjcmVlbi53aWR0aCAtIGJzaXplKSB7XG4gICAgICAgICAgICBuZXdMaW5lLnB1c2goeyB0ZXh0OiBgJHtcIiBcIi5yZXBlYXQoKHRoaXMuQ00uU2NyZWVuLndpZHRoIC0gdW5mb3JtYXR0ZWRMaW5lLmxlbmd0aCkgLSBic2l6ZSl9YCwgc3R5bGU6IHsgY29sb3I6IFwiXCIgfSB9KVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYm94ZWQpIG5ld0xpbmUucHVzaCh7IHRleHQ6IGJveENoYXJzW1wibm9ybWFsXCJdLnZlcnRpY2FsLCBzdHlsZTogeyBjb2xvcjogdGhpcy5vcHRpb25zLmJveENvbG9yLCBib2xkOiB0aGlzLmJveEJvbGQgfSB9KVxuICAgICAgICB0aGlzLkNNLlNjcmVlbi53cml0ZSguLi5uZXdMaW5lKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZHJhdyB0aGUgbGF5b3V0IHRvIHRoZSBzY3JlZW4uXG4gICAgICogQG1lbWJlcm9mIFNpbmdsZUxheW91dFxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBleGFtcGxlIGxheW91dC5kcmF3KClcbiAgICAgKi9cbiAgICBwdWJsaWMgZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09kZCA9IHRoaXMuQ00uU2NyZWVuLndpZHRoICUgMiA9PT0gMVxuICAgICAgICBjb25zdCB0cmltbWVkVGl0bGUgPSB0cnVuY2F0ZSh0aGlzLnBhZ2VUaXRsZSwgdGhpcy5DTS5TY3JlZW4ud2lkdGggLSAyLCBmYWxzZSlcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5ib3hlZCkgeyAvLyBEcmF3IHBhZ2VzIHdpdGggYm9yZGVyc1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zaG93VGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLkNNLlNjcmVlbi53cml0ZSh7IHRleHQ6IGAke2JveENoYXJzW1wibm9ybWFsXCJdLnRvcExlZnR9JHtib3hDaGFyc1tcIm5vcm1hbFwiXS5ob3Jpem9udGFsfSR7dHJpbW1lZFRpdGxlfSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0uaG9yaXpvbnRhbC5yZXBlYXQodGhpcy5DTS5TY3JlZW4ud2lkdGggLSB0cmltbWVkVGl0bGUubGVuZ3RoIC0gMyl9JHtib3hDaGFyc1tcIm5vcm1hbFwiXS50b3BSaWdodH1gLCBzdHlsZTogeyBjb2xvcjogdGhpcy5vcHRpb25zLmJveENvbG9yLCBib2xkOiB0aGlzLmJveEJvbGQgfSB9KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLkNNLlNjcmVlbi53cml0ZSh7IHRleHQ6IGAke2JveENoYXJzW1wibm9ybWFsXCJdLnRvcExlZnR9JHtib3hDaGFyc1tcIm5vcm1hbFwiXS5ob3Jpem9udGFsfSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0uaG9yaXpvbnRhbC5yZXBlYXQodGhpcy5DTS5TY3JlZW4ud2lkdGggLSAzKX0ke2JveENoYXJzW1wibm9ybWFsXCJdLnRvcFJpZ2h0fWAsIHN0eWxlOiB7IGNvbG9yOiB0aGlzLm9wdGlvbnMuYm94Q29sb3IsIGJvbGQ6IHRoaXMuYm94Qm9sZCB9IH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBhZ2UuZ2V0Q29udGVudCgpLmZvckVhY2goKGxpbmU6IFN0eWxlZEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0xpbmUobGluZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLkNNLlNjcmVlbi53cml0ZSh7IHRleHQ6IGAke2JveENoYXJzW1wibm9ybWFsXCJdLmJvdHRvbUxlZnR9JHtib3hDaGFyc1tcIm5vcm1hbFwiXS5ob3Jpem9udGFsLnJlcGVhdCh0aGlzLkNNLlNjcmVlbi53aWR0aCAtIDIpfSR7Ym94Q2hhcnNbXCJub3JtYWxcIl0uYm90dG9tUmlnaHR9YCwgc3R5bGU6IHsgY29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvciwgYm9sZDogdGhpcy5ib3hCb2xkIH0gfSlcbiAgICAgICAgfSBlbHNlIHsgLy8gRHJhdyBwYWdlcyB3aXRob3V0IGJvcmRlcnNcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5DTS5TY3JlZW4ud3JpdGUoeyB0ZXh0OiBgJHt0cmltbWVkVGl0bGV9YCwgc3R5bGU6IHsgY29sb3I6IHRoaXMub3B0aW9ucy5ib3hDb2xvciwgYm9sZDogdGhpcy5ib3hCb2xkIH0gfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGFnZS5nZXRDb250ZW50KCkuZm9yRWFjaCgobGluZTogU3R5bGVkRWxlbWVudFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmF3TGluZShsaW5lKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2luZ2xlTGF5b3V0Il19
import { EventEmitter } from "events";
import chalk from "chalk";
chalk.level = 1;
chalk.level = 3;
/**

@@ -106,4 +106,34 @@ * @class Screen

row.styleIndex.forEach(style => {
const color = style.color ? chalk[style.color] : (_in) => _in;
const bg = style.bg ? chalk[style.bg] : (_in) => _in;
let color;
if (style.color) {
if (style.color[0] === "#") {
color = chalk.hex(style.color);
}
else if (style.color.includes("rgb")) {
const rgb = [...style.color.matchAll(/\d+/g)].map(x => x[0]);
color = chalk.rgb(Number(rgb[0]), Number(rgb[1]), Number(rgb[2]));
}
else {
color = chalk[style.color];
}
}
else {
color = (_in) => _in;
}
let bg;
if (style.bg) {
if (style.bg[0] === "#") {
bg = chalk.bgHex(style.bg);
}
else if (style.bg.includes("rgb")) {
const rgb = [...style.bg.matchAll(/\d+/g)].map(x => x[0]);
bg = chalk.bgRgb(Number(rgb[0]), Number(rgb[1]), Number(rgb[2]));
}
else {
bg = chalk[style.bg];
}
}
else {
bg = (_in) => _in;
}
const italic = style.italic ? chalk.italic : (_in) => _in;

@@ -209,2 +239,2 @@ const bold = style.bold ? chalk.bold : (_in) => _in;

export default Screen;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyZWVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyZWVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDckMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRXpCLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0FBMkJmOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxNQUFPLFNBQVEsWUFBWTtJQVFwQyxZQUFZLFNBQTZCO1FBQ3JDLEtBQUssRUFBRSxDQUFBO1FBSFgsYUFBUSxHQUFHLENBQUMsQ0FBQTtRQUlSLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFBO1FBRXpCLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFBO1FBRWxDLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFBO1FBRWhDLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUVoQixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLEdBQUcsSUFBcUI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNwQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7WUFDWixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxH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QUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDaEUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDbEYsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDL0UsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDNUUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDekUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDOUYsU0FBUyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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Q0FBQTtTQUNaO2FBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxDQUFDLENBQUE7U0FDWDthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUE7U0FDWDtJQUNMLENBQUM7Q0FDSjtBQUVELGVBQWUsTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSBcImV2ZW50c1wiXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCJcbmltcG9ydCB7IFN0eWxlZEVsZW1lbnQsIFN0eWxlT2JqZWN0IH0gZnJvbSBcIi4vVXRpbHMuanNcIlxuY2hhbGsubGV2ZWwgPSAxXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIGNvbnRhaW5pbmcgYWxsIHRoZSBwb3NzaWJsZSBzdHlsZXMgZm9yIHRoZSB0ZXh0IGFuZCB0aGUgaW5kZXggYXJyYXkuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdHlsZUluZGV4T2JqZWN0XG4gKiBAcHJvcCB7QXJyYXk8bnVtYmVyPn0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHN0eWxlIGluIHRoZSBzdHlsZSBhcnJheS5cbiAqIFxuICogQGludGVyZmFjZSBTdHlsZUluZGV4T2JqZWN0XG4gKiBAZXh0ZW5kcyB7U3R5bGVPYmplY3R9XG4gKi9cbmludGVyZmFjZSBTdHlsZUluZGV4T2JqZWN0IGV4dGVuZHMgU3R5bGVPYmplY3Qge1xuICAgIGluZGV4OiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBjb250YWluaW5nIGFsbCB0aGUgcG9zc2libGUgc3R5bGVzIGZvciB0aGUgdGV4dCBhbmQgdGhlIGluZGV4IGFycmF5IGFuZCB0aGUgdGV4dC5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0eWxlZEVsZW1lbnRXaXRoSW5kZXhcbiAqIEBwcm9wIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCBvZiB0aGUgc3R5bGVkIGVsZW1lbnQuXG4gKiBAcHJvcCB7U3R5bGVJbmRleE9iamVjdFtdfSBzdHlsZUluZGV4IC0gVGhlIHN0eWxlcyBhcnJheSB3aXRoIGluZGV4LlxuICogXG4gKiBAaW50ZXJmYWNlIFN0eWxlZEVsZW1lbnRXaXRoSW5kZXhcbiAqL1xuaW50ZXJmYWNlIFN0eWxlZEVsZW1lbnRXaXRoSW5kZXgge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBzdHlsZUluZGV4OiBTdHlsZUluZGV4T2JqZWN0W107XG59XG5cbi8qKlxuICogQGNsYXNzIFNjcmVlblxuICogQGRlc2NyaXB0aW9uIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBtYW5hZ2UgdGhlIHNjcmVlbiBidWZmZXIuXG4gKiBAcGFyYW0ge29iamVjdH0gVGVybWluYWwgLSBUaGUgdGVybWluYWwgb2JqZWN0IChwcm9jZXNzLnN0ZG91dCkuXG4gKiBAZXh0ZW5kcyBFdmVudEVtaXR0ZXJcbiAqIEBleGFtcGxlIGNvbnN0IHNjcmVlbiA9IG5ldyBTY3JlZW4ocHJvY2Vzcy5zdGRvdXQpXG4gKi9cbmV4cG9ydCBjbGFzcyBTY3JlZW4gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIFRlcm1pbmFsOiBOb2RlSlMuV3JpdGVTdHJlYW1cbiAgICB3aWR0aDogbnVtYmVyXG4gICAgaGVpZ2h0OiBudW1iZXJcbiAgICBidWZmZXI6IFN0eWxlZEVsZW1lbnRXaXRoSW5kZXhbXVxuICAgIGN1cnNvcjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9XG4gICAgY3VycmVudFkgPSAwXG5cbiAgICBjb25zdHJ1Y3RvcihfVGVybWluYWw6IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBzdXBlcigpXG4gICAgICAgIHRoaXMuVGVybWluYWwgPSBfVGVybWluYWxcblxuICAgICAgICAvKiogQGNvbnN0IHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBzY3JlZW4uICovXG4gICAgICAgIHRoaXMud2lkdGggPSB0aGlzLlRlcm1pbmFsLmNvbHVtbnNcblxuICAgICAgICAvKiogQGNvbnN0IHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHNjcmVlbi4gKi9cbiAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLlRlcm1pbmFsLnJvd3NcblxuICAgICAgICAvKiogQGNvbnN0IHtBcnJheX0gYnVmZmVyIC0gVGhlIHNjcmVlbiBidWZmZXIgb2JqZWN0LiAqL1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IFtdXG5cbiAgICAgICAgLyoqIEBjb25zdCB7b2JqZWN0fSBjdXJzb3IgLSBUaGUgY3Vyc29yIG9iamVjdC4gKi9cbiAgICAgICAgdGhpcy5jdXJzb3IgPSB7IHg6IDAsIHk6IDAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHdyaXRlIG9yIG92ZXJ3cml0ZSBhIHJvdyBpbiB0aGUgc2NyZWVuIGJ1ZmZlciBhdCBhIHNwZWNpZmljIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7YXJndW1lbnRzPG9iamVjdD59IGFyZ3MgLSBUaGUgcm93IHRvIHdyaXRlLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4ud3JpdGUoeyB0ZXh0OiAnSGVsbG8gV29ybGQnLCBjb2xvcjogJ3doaXRlJyB9KVxuICAgIHNjcmVlbi53cml0ZSh7IHRleHQ6ICdIZWxsbyBXb3JsZCcsIGNvbG9yOiAnd2hpdGUnIH0sIHsgdGV4dDogJ0hlbGxvIFdvcmxkJywgY29sb3I6ICd3aGl0ZScgfSlcbiAgICAgKi9cbiAgICB3cml0ZSguLi5hcmdzOiBTdHlsZWRFbGVtZW50W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50WSsrXG4gICAgICAgIGlmICh0aGlzLmN1cnNvci55IDwgdGhpcy5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gXCJcIlxuICAgICAgICAgICAgY29uc3QgbmV3U3R5bGVJbmRleCA9IFtdXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmcgPSBhcmdzW2ldXG4gICAgICAgICAgICAgICAgaWYgKGFyZy50ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHh0ID0gYXJnLnRleHQudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZTogU3R5bGVJbmRleE9iamVjdCA9IHsgLi4uYXJnLnN0eWxlLCBpbmRleDogW3Jvdy5sZW5ndGgsIHJvdy5sZW5ndGggKyB0eHQubGVuZ3RoXSB9XG4gICAgICAgICAgICAgICAgICAgIG5ld1N0eWxlSW5kZXgucHVzaChzdHlsZSlcbiAgICAgICAgICAgICAgICAgICAgcm93ICs9IHR4dFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZUluZGV4ID0gdGhpcy5idWZmZXJbdGhpcy5jdXJzb3IueV0uc3R5bGVJbmRleFxuXG4gICAgICAgICAgICAvLyBOb3cgcmVjYWxjdWxhdGUgdGhlIHN0eWxlSW5kZXggZm9yIHRoZSBjdXJyZW50IHJvdyBtaXhpbmcgdGhlIG9sZCBvbmUgd2l0aCB0aGUgbmV3IG9uZVxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN0eWxlSW5kZXggbWVyZ2luZyB0aGUgb2xkIG9uZSB3aXRoIHRoZSBuZXcgb25lXG4gICAgICAgICAgICBjb25zdCBtZXJnZWRTdHlsZUluZGV4ID0gdGhpcy5tZXJnZVN0eWxlcyhuZXdTdHlsZUluZGV4LCBjdXJyZW50U3R5bGVJbmRleCwgdGhpcy5jdXJzb3IueCwgcm93Lmxlbmd0aClcblxuICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5jdXJzb3IueV0uc3R5bGVJbmRleCA9IG1lcmdlZFN0eWxlSW5kZXhcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMuY3Vyc29yLnldLnRleHQgPSB0aGlzLnJlcGxhY2VBdCh0aGlzLmJ1ZmZlclt0aGlzLmN1cnNvci55XS50ZXh0LCB0aGlzLmN1cnNvci54LCByb3cpXG4gICAgICAgICAgICB0aGlzLmN1cnNvclRvKDAsIHRoaXMuY3Vyc29yLnkgKyAxKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gY2hhbmdlIHRoZSBjdXJzb3IgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4uY3Vyc29yVG8oMCwgMClcbiAgICAgKi9cbiAgICBjdXJzb3JUbyh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvci54ID0geFxuICAgICAgICB0aGlzLmN1cnNvci55ID0geVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGNoYW5nZSB0aGUgVGVybWluYWwgY3Vyc29yIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKiBAbWVtYmVyT2YgU2NyZWVuXG4gICAgICogQGV4YW1wbGUgc2NyZWVuLm1vdmVDdXJzb3IoMCwgMClcbiAgICAgKi9cbiAgICBtb3ZlQ3Vyc29yKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuVGVybWluYWwuY3Vyc29yVG8oeCwgeSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjbGVhciB0aGUgc2NyZWVuLiBJdCBmaWxscyB0aGUgc2NyZWVuIGJ1ZmZlciB3aXRoIGVtcHR5IHJvd3Mgd2l0aCB0aGUgc2l6ZSBvZiB0aGUgc2NyZWVuLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4uY2xlYXIoKVxuICAgICAqL1xuICAgIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3JUbygwLCAwKVxuICAgICAgICB0aGlzLndpZHRoID0gdGhpcy5UZXJtaW5hbC5jb2x1bW5zXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5UZXJtaW5hbC5yb3dzXG4gICAgICAgIHRoaXMuYnVmZmVyID0gW11cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRlcm1pbmFsLnJvd3M7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB7IHRleHQ6IFwiIFwiLnJlcGVhdCh0aGlzLlRlcm1pbmFsLmNvbHVtbnMpLCBzdHlsZUluZGV4OiBbeyBjb2xvcjogXCJncmF5XCIsIGJnOiBcIlwiLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFswLCB0aGlzLlRlcm1pbmFsLmNvbHVtbnNdIH1dIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHByaW50IHRoZSBzY3JlZW4gYnVmZmVyIHRvIHRoZSB0ZXJtaW5hbC4gSXQgYWxzbyBjb252ZXJ0cyB0aGUgc3R5bGVzIHRvIHRoZSB0ZXJtaW5hbCBmb3JtYXQgdXNpbmcgQ2hhbGsuXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICogQG1lbWJlck9mIFNjcmVlblxuICAgICAqIEBleGFtcGxlIHNjcmVlbi5wcmludCgpXG4gICAgICovXG4gICAgcHJpbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVmZmVyLmZvckVhY2goKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5UZXJtaW5hbC5jdXJzb3JUbygwLCBpKVxuICAgICAgICAgICAgbGV0IG91dFN0cmluZyA9IFwiXCJcblxuICAgICAgICAgICAgLy8gY29udmVydCBzdHlsZUluZGV4IHRvIGNoYWxrIGZ1bmN0aW9ucyBhbmQgYXBwbHkgdGhlbSB0byB0aGUgcm93IHRleHRcbiAgICAgICAgICAgIHJvdy5zdHlsZUluZGV4LmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gc3R5bGUuY29sb3IgPyBjaGFsa1tzdHlsZS5jb2xvcl0gOiAoX2luOiBzdHJpbmcpOiBzdHJpbmcgPT4gX2luXG4gICAgICAgICAgICAgICAgY29uc3QgYmcgPSBzdHlsZS5iZyA/IGNoYWxrW3N0eWxlLmJnXSA6IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICBjb25zdCBpdGFsaWMgPSBzdHlsZS5pdGFsaWMgPyBjaGFsay5pdGFsaWMgOiAoX2luOiBzdHJpbmcpOiBzdHJpbmcgPT4gX2luXG4gICAgICAgICAgICAgICAgY29uc3QgYm9sZCA9IHN0eWxlLmJvbGQgPyBjaGFsay5ib2xkIDogKF9pbjogc3RyaW5nKTogc3RyaW5nID0+IF9pblxuICAgICAgICAgICAgICAgIGNvbnN0IGRpbSA9IHN0eWxlLmRpbSA/IGNoYWxrLmRpbSA6IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICBjb25zdCB1bmRlcmxpbmUgPSBzdHlsZS51bmRlcmxpbmUgPyBjaGFsay51bmRlcmxpbmUgOiAoX2luOiBzdHJpbmcpOiBzdHJpbmcgPT4gX2luXG4gICAgICAgICAgICAgICAgY29uc3Qgb3ZlcmxpbmUgPSBzdHlsZS5vdmVybGluZSA/IGNoYWxrLm92ZXJsaW5lIDogKF9pbjogc3RyaW5nKTogc3RyaW5nID0+IF9pblxuICAgICAgICAgICAgICAgIGNvbnN0IGludmVyc2UgPSBzdHlsZS5pbnZlcnNlID8gY2hhbGsuaW52ZXJzZSA6IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICBjb25zdCBoaWRkZW4gPSBzdHlsZS5oaWRkZW4gPyBjaGFsay5oaWRkZW4gOiAoX2luOiBzdHJpbmcpOiBzdHJpbmcgPT4gX2luXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RyaWtldGhyb3VnaCA9IHN0eWxlLnN0cmlrZXRocm91Z2ggPyBjaGFsay5zdHJpa2V0aHJvdWdoIDogKF9pbjogc3RyaW5nKTogc3RyaW5nID0+IF9pblxuICAgICAgICAgICAgICAgIG91dFN0cmluZyArPSBjb2xvcihiZyhpdGFsaWMoYm9sZChkaW0odW5kZXJsaW5lKG92ZXJsaW5lKGludmVyc2UoaGlkZGVuKHN0cmlrZXRocm91Z2gocm93LnRleHQuc3Vic3RyaW5nKHN0eWxlLmluZGV4WzBdLCBzdHlsZS5pbmRleFsxXSkpKSkpKSkpKSkpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgdGhpcy5UZXJtaW5hbC53cml0ZShvdXRTdHJpbmcpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuVGVybWluYWwuY2xlYXJTY3JlZW5Eb3duKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBpbnNlcnQgYSBzdWJzdHJpbmcgaW50byBhIHN0cmluZyBhdCBhIHNwZWNpZmljIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIGluc2VydCBpbnRvLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIFRoZSBwb3NpdGlvbiB0byBpbnNlcnQgdGhlIHN1YnN0cmluZy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVwbGFjZW1lbnQgLSBUaGUgc3Vic3RyaW5nIHRvIGluc2VydC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4ucmVwbGFjZUF0KCdIZWxsbyBMdWNhJywgNiwgJ0VsaWEnKSAvLyByZXR1cm5zICdIZWxsbyBFbGlhJ1xuICAgICAqL1xuICAgIHJlcGxhY2VBdChzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlciwgcmVwbGFjZW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIGluZGV4KSArIHJlcGxhY2VtZW50ICsgc3RyLnN1YnN0cmluZyhpbmRleCArIHJlcGxhY2VtZW50Lmxlbmd0aClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBtZXJnZSB0d28gc3R5bGVJbmRleCBhcnJheXMgaW50byBvbmUuIEl0IGFsc28gcmVjYWxjdWxhdGVzIHRoZSBpbmRleGVzIGZvciB0aGUgbmV3IHJvdy5cbiAgICAgKiBAcGFyYW0ge0FycmF5PFN0eWxlSW5kZXhPYmplY3Q+fSBuZXdTdHlsZUluZGV4IC0gVGhlIG5ldyBzdHlsZUluZGV4IGFycmF5LlxuICAgICAqIEBwYXJhbSB7QXJyYXk8U3R5bGVJbmRleE9iamVjdD59IGN1cnJlbnRTdHlsZUluZGV4IC0gVGhlIGN1cnJlbnQgc3R5bGVJbmRleCBhcnJheS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRJbmRleCAtIFRoZSBzdGFydCBpbmRleCBvZiB0aGUgbmV3IHN0eWxlSW5kZXggYXJyYXkgKFVzdWFsbHkgdGhlIGN1cnNvci54KS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbmV3U2l6ZSAtIFRoZSBuZXcgc2l6ZSBvZiB0aGUgc3RyaW5nLlxuICAgICAqIEByZXR1cm5zIHtBcnJheTxTdHlsZUluZGV4T2JqZWN0Pn1cbiAgICAgKiBAbWVtYmVyT2YgU2NyZWVuXG4gICAgICogQGV4YW1wbGUgc2NyZWVuLm1lcmdlU3R5bGVzKFt7IGNvbG9yOiAncmVkJywgYmc6ICdibGFjaycsIGl0YWxpYzogZmFsc2UsIGJvbGQ6IGZhbHNlLCBpbmRleDogWzAsIDVdIH0sIHsgY29sb3I6ICd3aGl0ZScsIGJnOiAnYmxhY2snLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFs2LCAxMF0gfV0sIFt7IGNvbG9yOiAnbWFnZW50YScsIGJnOiAnYmxhY2snLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFswLCAzMF0gfV0sIDUsIDE1KVxuICAgICAqIHJldHVybnMgW3sgY29sb3I6ICdtYWdlbnRhJywgYmc6ICdibGFjaycsIGl0YWxpYzogZmFsc2UsIGJvbGQ6IGZhbHNlLCBpbmRleDogWzAsIDRdIH0sIHsgY29sb3I6ICdyZWQnLCBiZzogJ2JsYWNrJywgaXRhbGljOiBmYWxzZSwgYm9sZDogZmFsc2UsIGluZGV4OiBbNSwgMTBdIH0sIHsgY29sb3I6ICd3aGl0ZScsIGJnOiAnYmxhY2snLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFsxMSwgMTVdIH0sIHsgY29sb3I6ICdtYWdlbnRhJywgYmc6ICdibGFjaycsIGl0YWxpYzogZmFsc2UsIGJvbGQ6IGZhbHNlLCBpbmRleDogWzE2LCAzMF0gfV1cbiAgICAgKi9cbiAgICBtZXJnZVN0eWxlcyhuZXdTdHlsZUluZGV4OiBBcnJheTxTdHlsZUluZGV4T2JqZWN0PiwgY3VycmVudFN0eWxlSW5kZXg6IEFycmF5PFN0eWxlSW5kZXhPYmplY3Q+LCBzdGFydEluZGV4OiBudW1iZXIsIG5ld1NpemU6IG51bWJlcik6IEFycmF5PFN0eWxlSW5kZXhPYmplY3Q+IHtcbiAgICAgICAgY29uc3QgbmV3XyA9IFsuLi5uZXdTdHlsZUluZGV4XVxuICAgICAgICBjb25zdCBjdXJyZW50ID0gWy4uLmN1cnJlbnRTdHlsZUluZGV4XVxuICAgICAgICBjb25zdCBvZmZzZXQgPSBzdGFydEluZGV4XG4gICAgICAgIGNvbnN0IF9uZXdTaXplID0gbmV3U2l6ZVxuICAgICAgICBjb25zdCBtZXJnZWQ6IFN0eWxlSW5kZXhPYmplY3RbXSA9IFtdXG4gICAgICAgIGN1cnJlbnQuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICAgICAgICBpZiAoc3R5bGUuaW5kZXhbMF0gPCBvZmZzZXQgJiYgc3R5bGUuaW5kZXhbMV0gPCBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICBtZXJnZWQucHVzaChzdHlsZSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3R5bGUuaW5kZXhbMF0gPCBvZmZzZXQgJiYgc3R5bGUuaW5kZXhbMV0gPj0gb2Zmc2V0ICYmIHN0eWxlLmluZGV4WzFdIDw9IG9mZnNldCArIF9uZXdTaXplKSB7XG4gICAgICAgICAgICAgICAgbWVyZ2VkLnB1c2goeyAuLi5zdHlsZSwgaW5kZXg6IFtzdHlsZS5pbmRleFswXSwgb2Zmc2V0XSB9KVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZS5pbmRleFswXSA8IG9mZnNldCAmJiBzdHlsZS5pbmRleFsxXSA+IG9mZnNldCArIF9uZXdTaXplKSB7XG4gICAgICAgICAgICAgICAgbWVyZ2VkLnB1c2goeyAuLi5zdHlsZSwgaW5kZXg6IFtzdHlsZS5pbmRleFswXSwgb2Zmc2V0XSB9KVxuICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoKHsgLi4uc3R5bGUsIGluZGV4OiBbb2Zmc2V0ICsgX25ld1NpemUsIHN0eWxlLmluZGV4WzFdXSB9KVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZS5pbmRleFswXSA+PSBvZmZzZXQgJiYgc3R5bGUuaW5kZXhbMV0gPD0gb2Zmc2V0ICsgX25ld1NpemUpIHtcbiAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxlLmluZGV4WzBdID49IG9mZnNldCAmJiBzdHlsZS5pbmRleFswXSA8PSBvZmZzZXQgKyBfbmV3U2l6ZSAmJiBzdHlsZS5pbmRleFsxXSA+IG9mZnNldCArIF9uZXdTaXplKSB7XG4gICAgICAgICAgICAgICAgbWVyZ2VkLnB1c2goeyAuLi5zdHlsZSwgaW5kZXg6IFtvZmZzZXQgKyBfbmV3U2l6ZSwgc3R5bGUuaW5kZXhbMV1dIH0pXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxlLmluZGV4WzBdID4gb2Zmc2V0ICsgX25ld1NpemUgJiYgc3R5bGUuaW5kZXhbMV0gPiBvZmZzZXQgKyBfbmV3U2l6ZSkge1xuICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoKHN0eWxlKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5lbWl0KFwiZXJyb3JcIiwgbmV3IEVycm9yKFwibWVyZ2VTdHlsZXM6IFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblwiKSlcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBUaGVuIGFkZCB0aGUgbmV3IHN0eWxlIHRvIHRoZSBtZXJnZWQgYXJyYXlcbiAgICAgICAgbmV3Xy5mb3JFYWNoKG5ld1N0eWxlID0+IHtcbiAgICAgICAgICAgIG1lcmdlZC5wdXNoKHsgLi4ubmV3U3R5bGUsIGluZGV4OiBbbmV3U3R5bGUuaW5kZXhbMF0gKyBvZmZzZXQsIG5ld1N0eWxlLmluZGV4WzFdICsgb2Zmc2V0XSB9KVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNvcnQgdGhlIG1lcmdlZCBhcnJheSBieSBpbmRleFswXVxuICAgICAgICBtZXJnZWQuc29ydCh0aGlzLnNvcnRCeUluZGV4KVxuICAgICAgICByZXR1cm4gbWVyZ2VkXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gc29ydCBhbiBhcnJheSBvZiBzdHlsZUluZGV4IG9iamVjdHMgYnkgY2hpbGQgaW5kZXhbMF0uXG4gICAgICogQHBhcmFtIHtTdHlsZUluZGV4T2JqZWN0fSBhIC0gVGhlIGZpcnN0IG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEBwYXJhbSB7U3R5bGVJbmRleE9iamVjdH0gYiAtIFRoZSBzZWNvbmQgb2JqZWN0IHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMge251bWJlcn1cbiAgICAgKiBAbWVtYmVyT2YgU2NyZWVuXG4gICAgICogQGV4YW1wbGUgbWVyZ2VkLnNvcnQodGhpcy5zb3J0QnlJbmRleClcbiAgICAgKi9cbiAgICBzb3J0QnlJbmRleChhOiBTdHlsZUluZGV4T2JqZWN0LCBiOiBTdHlsZUluZGV4T2JqZWN0KTogbnVtYmVyIHtcbiAgICAgICAgaWYgKGEuaW5kZXhbMF0gPCBiLmluZGV4WzBdKSB7XG4gICAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfSBlbHNlIGlmIChhLmluZGV4WzBdID4gYi5pbmRleFswXSkge1xuICAgICAgICAgICAgcmV0dXJuIDFcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmVlbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyZWVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvU2NyZWVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDckMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFBO0FBRXpCLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0FBMkJmOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxNQUFPLFNBQVEsWUFBWTtJQVFwQyxZQUFZLFNBQTZCO1FBQ3JDLEtBQUssRUFBRSxDQUFBO1FBSFgsYUFBUSxHQUFHLENBQUMsQ0FBQTtRQUlSLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFBO1FBRXpCLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFBO1FBRWxDLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFBO1FBRWhDLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUVoQixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLEdBQUcsSUFBcUI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNwQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7WUFDWixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7WUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxH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RSxDQUFDLEdBQUcsQ0FBQTtnQkFDekUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDbkUsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDaEUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDbEYsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDL0UsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDNUUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDekUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQTtnQkFDOUYsU0FBUyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENB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Q0FBQyxDQUFBO1FBQzdCLE9BQU8sTUFBTSxDQUFBO0lBQ2pCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsV0FBVyxDQUFDLENBQW1CLEVBQUUsQ0FBbUI7UUFDaEQsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLENBQUMsQ0FBQTtTQUNaO2FBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxDQUFDLENBQUE7U0FDWDthQUFNO1lBQ0gsT0FBTyxDQUFDLENBQUE7U0FDWDtJQUNMLENBQUM7Q0FDSjtBQUVELGVBQWUsTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSBcImV2ZW50c1wiXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCJcbmltcG9ydCB7IFN0eWxlZEVsZW1lbnQsIFN0eWxlT2JqZWN0IH0gZnJvbSBcIi4vVXRpbHMuanNcIlxuY2hhbGsubGV2ZWwgPSAzXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIGNvbnRhaW5pbmcgYWxsIHRoZSBwb3NzaWJsZSBzdHlsZXMgZm9yIHRoZSB0ZXh0IGFuZCB0aGUgaW5kZXggYXJyYXkuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdHlsZUluZGV4T2JqZWN0XG4gKiBAcHJvcCB7QXJyYXk8bnVtYmVyPn0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIHN0eWxlIGluIHRoZSBzdHlsZSBhcnJheS5cbiAqIFxuICogQGludGVyZmFjZSBTdHlsZUluZGV4T2JqZWN0XG4gKiBAZXh0ZW5kcyB7U3R5bGVPYmplY3R9XG4gKi9cbmludGVyZmFjZSBTdHlsZUluZGV4T2JqZWN0IGV4dGVuZHMgU3R5bGVPYmplY3Qge1xuICAgIGluZGV4OiBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBjb250YWluaW5nIGFsbCB0aGUgcG9zc2libGUgc3R5bGVzIGZvciB0aGUgdGV4dCBhbmQgdGhlIGluZGV4IGFycmF5IGFuZCB0aGUgdGV4dC5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0eWxlZEVsZW1lbnRXaXRoSW5kZXhcbiAqIEBwcm9wIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCBvZiB0aGUgc3R5bGVkIGVsZW1lbnQuXG4gKiBAcHJvcCB7U3R5bGVJbmRleE9iamVjdFtdfSBzdHlsZUluZGV4IC0gVGhlIHN0eWxlcyBhcnJheSB3aXRoIGluZGV4LlxuICogXG4gKiBAaW50ZXJmYWNlIFN0eWxlZEVsZW1lbnRXaXRoSW5kZXhcbiAqL1xuaW50ZXJmYWNlIFN0eWxlZEVsZW1lbnRXaXRoSW5kZXgge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBzdHlsZUluZGV4OiBTdHlsZUluZGV4T2JqZWN0W107XG59XG5cbi8qKlxuICogQGNsYXNzIFNjcmVlblxuICogQGRlc2NyaXB0aW9uIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBtYW5hZ2UgdGhlIHNjcmVlbiBidWZmZXIuXG4gKiBAcGFyYW0ge29iamVjdH0gVGVybWluYWwgLSBUaGUgdGVybWluYWwgb2JqZWN0IChwcm9jZXNzLnN0ZG91dCkuXG4gKiBAZXh0ZW5kcyBFdmVudEVtaXR0ZXJcbiAqIEBleGFtcGxlIGNvbnN0IHNjcmVlbiA9IG5ldyBTY3JlZW4ocHJvY2Vzcy5zdGRvdXQpXG4gKi9cbmV4cG9ydCBjbGFzcyBTY3JlZW4gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIFRlcm1pbmFsOiBOb2RlSlMuV3JpdGVTdHJlYW1cbiAgICB3aWR0aDogbnVtYmVyXG4gICAgaGVpZ2h0OiBudW1iZXJcbiAgICBidWZmZXI6IFN0eWxlZEVsZW1lbnRXaXRoSW5kZXhbXVxuICAgIGN1cnNvcjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9XG4gICAgY3VycmVudFkgPSAwXG5cbiAgICBjb25zdHJ1Y3RvcihfVGVybWluYWw6IE5vZGVKUy5Xcml0ZVN0cmVhbSkge1xuICAgICAgICBzdXBlcigpXG4gICAgICAgIHRoaXMuVGVybWluYWwgPSBfVGVybWluYWxcblxuICAgICAgICAvKiogQGNvbnN0IHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBzY3JlZW4uICovXG4gICAgICAgIHRoaXMud2lkdGggPSB0aGlzLlRlcm1pbmFsLmNvbHVtbnNcblxuICAgICAgICAvKiogQGNvbnN0IHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHNjcmVlbi4gKi9cbiAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLlRlcm1pbmFsLnJvd3NcblxuICAgICAgICAvKiogQGNvbnN0IHtBcnJheX0gYnVmZmVyIC0gVGhlIHNjcmVlbiBidWZmZXIgb2JqZWN0LiAqL1xuICAgICAgICB0aGlzLmJ1ZmZlciA9IFtdXG5cbiAgICAgICAgLyoqIEBjb25zdCB7b2JqZWN0fSBjdXJzb3IgLSBUaGUgY3Vyc29yIG9iamVjdC4gKi9cbiAgICAgICAgdGhpcy5jdXJzb3IgPSB7IHg6IDAsIHk6IDAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHdyaXRlIG9yIG92ZXJ3cml0ZSBhIHJvdyBpbiB0aGUgc2NyZWVuIGJ1ZmZlciBhdCBhIHNwZWNpZmljIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7YXJndW1lbnRzPG9iamVjdD59IGFyZ3MgLSBUaGUgcm93IHRvIHdyaXRlLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4ud3JpdGUoeyB0ZXh0OiAnSGVsbG8gV29ybGQnLCBjb2xvcjogJ3doaXRlJyB9KVxuICAgIHNjcmVlbi53cml0ZSh7IHRleHQ6ICdIZWxsbyBXb3JsZCcsIGNvbG9yOiAnd2hpdGUnIH0sIHsgdGV4dDogJ0hlbGxvIFdvcmxkJywgY29sb3I6ICd3aGl0ZScgfSlcbiAgICAgKi9cbiAgICB3cml0ZSguLi5hcmdzOiBTdHlsZWRFbGVtZW50W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50WSsrXG4gICAgICAgIGlmICh0aGlzLmN1cnNvci55IDwgdGhpcy5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gXCJcIlxuICAgICAgICAgICAgY29uc3QgbmV3U3R5bGVJbmRleCA9IFtdXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmcgPSBhcmdzW2ldXG4gICAgICAgICAgICAgICAgaWYgKGFyZy50ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHh0ID0gYXJnLnRleHQudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHlsZTogU3R5bGVJbmRleE9iamVjdCA9IHsgLi4uYXJnLnN0eWxlLCBpbmRleDogW3Jvdy5sZW5ndGgsIHJvdy5sZW5ndGggKyB0eHQubGVuZ3RoXSB9XG4gICAgICAgICAgICAgICAgICAgIG5ld1N0eWxlSW5kZXgucHVzaChzdHlsZSlcbiAgICAgICAgICAgICAgICAgICAgcm93ICs9IHR4dFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZUluZGV4ID0gdGhpcy5idWZmZXJbdGhpcy5jdXJzb3IueV0uc3R5bGVJbmRleFxuXG4gICAgICAgICAgICAvLyBOb3cgcmVjYWxjdWxhdGUgdGhlIHN0eWxlSW5kZXggZm9yIHRoZSBjdXJyZW50IHJvdyBtaXhpbmcgdGhlIG9sZCBvbmUgd2l0aCB0aGUgbmV3IG9uZVxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHN0eWxlSW5kZXggbWVyZ2luZyB0aGUgb2xkIG9uZSB3aXRoIHRoZSBuZXcgb25lXG4gICAgICAgICAgICBjb25zdCBtZXJnZWRTdHlsZUluZGV4ID0gdGhpcy5tZXJnZVN0eWxlcyhuZXdTdHlsZUluZGV4LCBjdXJyZW50U3R5bGVJbmRleCwgdGhpcy5jdXJzb3IueCwgcm93Lmxlbmd0aClcblxuICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5jdXJzb3IueV0uc3R5bGVJbmRleCA9IG1lcmdlZFN0eWxlSW5kZXhcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMuY3Vyc29yLnldLnRleHQgPSB0aGlzLnJlcGxhY2VBdCh0aGlzLmJ1ZmZlclt0aGlzLmN1cnNvci55XS50ZXh0LCB0aGlzLmN1cnNvci54LCByb3cpXG4gICAgICAgICAgICB0aGlzLmN1cnNvclRvKDAsIHRoaXMuY3Vyc29yLnkgKyAxKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gY2hhbmdlIHRoZSBjdXJzb3IgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IHBvc2l0aW9uLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4uY3Vyc29yVG8oMCwgMClcbiAgICAgKi9cbiAgICBjdXJzb3JUbyh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvci54ID0geFxuICAgICAgICB0aGlzLmN1cnNvci55ID0geVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGNoYW5nZSB0aGUgVGVybWluYWwgY3Vyc29yIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICAgKiBAbWVtYmVyT2YgU2NyZWVuXG4gICAgICogQGV4YW1wbGUgc2NyZWVuLm1vdmVDdXJzb3IoMCwgMClcbiAgICAgKi9cbiAgICBtb3ZlQ3Vyc29yKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuVGVybWluYWwuY3Vyc29yVG8oeCwgeSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjbGVhciB0aGUgc2NyZWVuLiBJdCBmaWxscyB0aGUgc2NyZWVuIGJ1ZmZlciB3aXRoIGVtcHR5IHJvd3Mgd2l0aCB0aGUgc2l6ZSBvZiB0aGUgc2NyZWVuLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEBtZW1iZXJPZiBTY3JlZW5cbiAgICAgKiBAZXhhbXBsZSBzY3JlZW4uY2xlYXIoKVxuICAgICAqL1xuICAgIHVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3JUbygwLCAwKVxuICAgICAgICB0aGlzLndpZHRoID0gdGhpcy5UZXJtaW5hbC5jb2x1bW5zXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5UZXJtaW5hbC5yb3dzXG4gICAgICAgIHRoaXMuYnVmZmVyID0gW11cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLlRlcm1pbmFsLnJvd3M7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB7IHRleHQ6IFwiIFwiLnJlcGVhdCh0aGlzLlRlcm1pbmFsLmNvbHVtbnMpLCBzdHlsZUluZGV4OiBbeyBjb2xvcjogXCJncmF5XCIsIGJnOiBcIlwiLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFswLCB0aGlzLlRlcm1pbmFsLmNvbHVtbnNdIH1dIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHByaW50IHRoZSBzY3JlZW4gYnVmZmVyIHRvIHRoZSB0ZXJtaW5hbC4gSXQgYWxzbyBjb252ZXJ0cyB0aGUgc3R5bGVzIHRvIHRoZSB0ZXJtaW5hbCBmb3JtYXQgdXNpbmcgQ2hhbGsuXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICogQG1lbWJlck9mIFNjcmVlblxuICAgICAqIEBleGFtcGxlIHNjcmVlbi5wcmludCgpXG4gICAgICovXG4gICAgcHJpbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVmZmVyLmZvckVhY2goKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5UZXJtaW5hbC5jdXJzb3JUbygwLCBpKVxuICAgICAgICAgICAgbGV0IG91dFN0cmluZyA9IFwiXCJcblxuICAgICAgICAgICAgLy8gY29udmVydCBzdHlsZUluZGV4IHRvIGNoYWxrIGZ1bmN0aW9ucyBhbmQgYXBwbHkgdGhlbSB0byB0aGUgcm93IHRleHRcbiAgICAgICAgICAgIHJvdy5zdHlsZUluZGV4LmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb2xvclxuICAgICAgICAgICAgICAgIGlmIChzdHlsZS5jb2xvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUuY29sb3JbMF0gPT09IFwiI1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IGNoYWxrLmhleChzdHlsZS5jb2xvcilcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZS5jb2xvci5pbmNsdWRlcyhcInJnYlwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmdiID0gWy4uLnN0eWxlLmNvbG9yLm1hdGNoQWxsKC9cXGQrL2cpXS5tYXAoeCA9PiB4WzBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBjaGFsay5yZ2IoTnVtYmVyKHJnYlswXSksIE51bWJlcihyZ2JbMV0pLCBOdW1iZXIocmdiWzJdKSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gY2hhbGtbc3R5bGUuY29sb3JdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb2xvciA9IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGJnXG4gICAgICAgICAgICAgICAgaWYgKHN0eWxlLmJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHlsZS5iZ1swXSA9PT0gXCIjXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJnID0gY2hhbGsuYmdIZXgoc3R5bGUuYmcpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3R5bGUuYmcuaW5jbHVkZXMoXCJyZ2JcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJnYiA9IFsuLi5zdHlsZS5iZy5tYXRjaEFsbCgvXFxkKy9nKV0ubWFwKHggPT4geFswXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGJnID0gY2hhbGsuYmdSZ2IoTnVtYmVyKHJnYlswXSksIE51bWJlcihyZ2JbMV0pLCBOdW1iZXIocmdiWzJdKSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJnID0gY2hhbGtbc3R5bGUuYmddXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBiZyA9IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXRhbGljID0gc3R5bGUuaXRhbGljID8gY2hhbGsuaXRhbGljIDogKF9pbjogc3RyaW5nKTogc3RyaW5nID0+IF9pblxuICAgICAgICAgICAgICAgIGNvbnN0IGJvbGQgPSBzdHlsZS5ib2xkID8gY2hhbGsuYm9sZCA6IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICBjb25zdCBkaW0gPSBzdHlsZS5kaW0gPyBjaGFsay5kaW0gOiAoX2luOiBzdHJpbmcpOiBzdHJpbmcgPT4gX2luXG4gICAgICAgICAgICAgICAgY29uc3QgdW5kZXJsaW5lID0gc3R5bGUudW5kZXJsaW5lID8gY2hhbGsudW5kZXJsaW5lIDogKF9pbjogc3RyaW5nKTogc3RyaW5nID0+IF9pblxuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJsaW5lID0gc3R5bGUub3ZlcmxpbmUgPyBjaGFsay5vdmVybGluZSA6IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICBjb25zdCBpbnZlcnNlID0gc3R5bGUuaW52ZXJzZSA/IGNoYWxrLmludmVyc2UgOiAoX2luOiBzdHJpbmcpOiBzdHJpbmcgPT4gX2luXG4gICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuID0gc3R5bGUuaGlkZGVuID8gY2hhbGsuaGlkZGVuIDogKF9pbjogc3RyaW5nKTogc3RyaW5nID0+IF9pblxuICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlrZXRocm91Z2ggPSBzdHlsZS5zdHJpa2V0aHJvdWdoID8gY2hhbGsuc3RyaWtldGhyb3VnaCA6IChfaW46IHN0cmluZyk6IHN0cmluZyA9PiBfaW5cbiAgICAgICAgICAgICAgICBvdXRTdHJpbmcgKz0gY29sb3IoYmcoaXRhbGljKGJvbGQoZGltKHVuZGVybGluZShvdmVybGluZShpbnZlcnNlKGhpZGRlbihzdHJpa2V0aHJvdWdoKHJvdy50ZXh0LnN1YnN0cmluZyhzdHlsZS5pbmRleFswXSwgc3R5bGUuaW5kZXhbMV0pKSkpKSkpKSkpKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuVGVybWluYWwud3JpdGUob3V0U3RyaW5nKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLlRlcm1pbmFsLmNsZWFyU2NyZWVuRG93bigpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gaW5zZXJ0IGEgc3Vic3RyaW5nIGludG8gYSBzdHJpbmcgYXQgYSBzcGVjaWZpYyBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gVGhlIHN0cmluZyB0byBpbnNlcnQgaW50by5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBUaGUgcG9zaXRpb24gdG8gaW5zZXJ0IHRoZSBzdWJzdHJpbmcuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50IC0gVGhlIHN1YnN0cmluZyB0byBpbnNlcnQuXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKiBAbWVtYmVyT2YgU2NyZWVuXG4gICAgICogQGV4YW1wbGUgc2NyZWVuLnJlcGxhY2VBdCgnSGVsbG8gTHVjYScsIDYsICdFbGlhJykgLy8gcmV0dXJucyAnSGVsbG8gRWxpYSdcbiAgICAgKi9cbiAgICByZXBsYWNlQXQoc3RyOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIHJlcGxhY2VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3RyLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlbWVudCArIHN0ci5zdWJzdHJpbmcoaW5kZXggKyByZXBsYWNlbWVudC5sZW5ndGgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gbWVyZ2UgdHdvIHN0eWxlSW5kZXggYXJyYXlzIGludG8gb25lLiBJdCBhbHNvIHJlY2FsY3VsYXRlcyB0aGUgaW5kZXhlcyBmb3IgdGhlIG5ldyByb3cuXG4gICAgICogQHBhcmFtIHtBcnJheTxTdHlsZUluZGV4T2JqZWN0Pn0gbmV3U3R5bGVJbmRleCAtIFRoZSBuZXcgc3R5bGVJbmRleCBhcnJheS5cbiAgICAgKiBAcGFyYW0ge0FycmF5PFN0eWxlSW5kZXhPYmplY3Q+fSBjdXJyZW50U3R5bGVJbmRleCAtIFRoZSBjdXJyZW50IHN0eWxlSW5kZXggYXJyYXkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0SW5kZXggLSBUaGUgc3RhcnQgaW5kZXggb2YgdGhlIG5ldyBzdHlsZUluZGV4IGFycmF5IChVc3VhbGx5IHRoZSBjdXJzb3IueCkuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5ld1NpemUgLSBUaGUgbmV3IHNpemUgb2YgdGhlIHN0cmluZy5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXk8U3R5bGVJbmRleE9iamVjdD59XG4gICAgICogQG1lbWJlck9mIFNjcmVlblxuICAgICAqIEBleGFtcGxlIHNjcmVlbi5tZXJnZVN0eWxlcyhbeyBjb2xvcjogJ3JlZCcsIGJnOiAnYmxhY2snLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFswLCA1XSB9LCB7IGNvbG9yOiAnd2hpdGUnLCBiZzogJ2JsYWNrJywgaXRhbGljOiBmYWxzZSwgYm9sZDogZmFsc2UsIGluZGV4OiBbNiwgMTBdIH1dLCBbeyBjb2xvcjogJ21hZ2VudGEnLCBiZzogJ2JsYWNrJywgaXRhbGljOiBmYWxzZSwgYm9sZDogZmFsc2UsIGluZGV4OiBbMCwgMzBdIH1dLCA1LCAxNSlcbiAgICAgKiByZXR1cm5zIFt7IGNvbG9yOiAnbWFnZW50YScsIGJnOiAnYmxhY2snLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFswLCA0XSB9LCB7IGNvbG9yOiAncmVkJywgYmc6ICdibGFjaycsIGl0YWxpYzogZmFsc2UsIGJvbGQ6IGZhbHNlLCBpbmRleDogWzUsIDEwXSB9LCB7IGNvbG9yOiAnd2hpdGUnLCBiZzogJ2JsYWNrJywgaXRhbGljOiBmYWxzZSwgYm9sZDogZmFsc2UsIGluZGV4OiBbMTEsIDE1XSB9LCB7IGNvbG9yOiAnbWFnZW50YScsIGJnOiAnYmxhY2snLCBpdGFsaWM6IGZhbHNlLCBib2xkOiBmYWxzZSwgaW5kZXg6IFsxNiwgMzBdIH1dXG4gICAgICovXG4gICAgbWVyZ2VTdHlsZXMobmV3U3R5bGVJbmRleDogQXJyYXk8U3R5bGVJbmRleE9iamVjdD4sIGN1cnJlbnRTdHlsZUluZGV4OiBBcnJheTxTdHlsZUluZGV4T2JqZWN0Piwgc3RhcnRJbmRleDogbnVtYmVyLCBuZXdTaXplOiBudW1iZXIpOiBBcnJheTxTdHlsZUluZGV4T2JqZWN0PiB7XG4gICAgICAgIGNvbnN0IG5ld18gPSBbLi4ubmV3U3R5bGVJbmRleF1cbiAgICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5jdXJyZW50U3R5bGVJbmRleF1cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gc3RhcnRJbmRleFxuICAgICAgICBjb25zdCBfbmV3U2l6ZSA9IG5ld1NpemVcbiAgICAgICAgY29uc3QgbWVyZ2VkOiBTdHlsZUluZGV4T2JqZWN0W10gPSBbXVxuICAgICAgICBjdXJyZW50LmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgICAgICAgaWYgKHN0eWxlLmluZGV4WzBdIDwgb2Zmc2V0ICYmIHN0eWxlLmluZGV4WzFdIDwgb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgbWVyZ2VkLnB1c2goc3R5bGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxlLmluZGV4WzBdIDwgb2Zmc2V0ICYmIHN0eWxlLmluZGV4WzFdID49IG9mZnNldCAmJiBzdHlsZS5pbmRleFsxXSA8PSBvZmZzZXQgKyBfbmV3U2l6ZSkge1xuICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoKHsgLi4uc3R5bGUsIGluZGV4OiBbc3R5bGUuaW5kZXhbMF0sIG9mZnNldF0gfSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3R5bGUuaW5kZXhbMF0gPCBvZmZzZXQgJiYgc3R5bGUuaW5kZXhbMV0gPiBvZmZzZXQgKyBfbmV3U2l6ZSkge1xuICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoKHsgLi4uc3R5bGUsIGluZGV4OiBbc3R5bGUuaW5kZXhbMF0sIG9mZnNldF0gfSlcbiAgICAgICAgICAgICAgICBtZXJnZWQucHVzaCh7IC4uLnN0eWxlLCBpbmRleDogW29mZnNldCArIF9uZXdTaXplLCBzdHlsZS5pbmRleFsxXV0gfSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3R5bGUuaW5kZXhbMF0gPj0gb2Zmc2V0ICYmIHN0eWxlLmluZGV4WzFdIDw9IG9mZnNldCArIF9uZXdTaXplKSB7XG4gICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZ1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZS5pbmRleFswXSA+PSBvZmZzZXQgJiYgc3R5bGUuaW5kZXhbMF0gPD0gb2Zmc2V0ICsgX25ld1NpemUgJiYgc3R5bGUuaW5kZXhbMV0gPiBvZmZzZXQgKyBfbmV3U2l6ZSkge1xuICAgICAgICAgICAgICAgIG1lcmdlZC5wdXNoKHsgLi4uc3R5bGUsIGluZGV4OiBbb2Zmc2V0ICsgX25ld1NpemUsIHN0eWxlLmluZGV4WzFdXSB9KVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHlsZS5pbmRleFswXSA+IG9mZnNldCArIF9uZXdTaXplICYmIHN0eWxlLmluZGV4WzFdID4gb2Zmc2V0ICsgX25ld1NpemUpIHtcbiAgICAgICAgICAgICAgICBtZXJnZWQucHVzaChzdHlsZSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZW1pdChcImVycm9yXCIsIG5ldyBFcnJvcihcIm1lcmdlU3R5bGVzOiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW5cIikpXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gVGhlbiBhZGQgdGhlIG5ldyBzdHlsZSB0byB0aGUgbWVyZ2VkIGFycmF5XG4gICAgICAgIG5ld18uZm9yRWFjaChuZXdTdHlsZSA9PiB7XG4gICAgICAgICAgICBtZXJnZWQucHVzaCh7IC4uLm5ld1N0eWxlLCBpbmRleDogW25ld1N0eWxlLmluZGV4WzBdICsgb2Zmc2V0LCBuZXdTdHlsZS5pbmRleFsxXSArIG9mZnNldF0gfSlcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTb3J0IHRoZSBtZXJnZWQgYXJyYXkgYnkgaW5kZXhbMF1cbiAgICAgICAgbWVyZ2VkLnNvcnQodGhpcy5zb3J0QnlJbmRleClcbiAgICAgICAgcmV0dXJuIG1lcmdlZFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNvcnQgYW4gYXJyYXkgb2Ygc3R5bGVJbmRleCBvYmplY3RzIGJ5IGNoaWxkIGluZGV4WzBdLlxuICAgICAqIEBwYXJhbSB7U3R5bGVJbmRleE9iamVjdH0gYSAtIFRoZSBmaXJzdCBvYmplY3QgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0ge1N0eWxlSW5kZXhPYmplY3R9IGIgLSBUaGUgc2Vjb25kIG9iamVjdCB0byBjb21wYXJlLlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9XG4gICAgICogQG1lbWJlck9mIFNjcmVlblxuICAgICAqIEBleGFtcGxlIG1lcmdlZC5zb3J0KHRoaXMuc29ydEJ5SW5kZXgpXG4gICAgICovXG4gICAgc29ydEJ5SW5kZXgoYTogU3R5bGVJbmRleE9iamVjdCwgYjogU3R5bGVJbmRleE9iamVjdCk6IG51bWJlciB7XG4gICAgICAgIGlmIChhLmluZGV4WzBdIDwgYi5pbmRleFswXSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH0gZWxzZSBpZiAoYS5pbmRleFswXSA+IGIuaW5kZXhbMF0pIHtcbiAgICAgICAgICAgIHJldHVybiAxXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMFxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTY3JlZW4iXX0=
import { BackgroundColorName, ForegroundColorName } from "chalk";
export declare type HEX = `#${string}`;
export declare type RGB = `rgb(${number}, ${number}, ${number})` | `rgb(${number},${number},${number})`;
/**

@@ -6,4 +8,4 @@ * @description The type containing all the possible styles for the text.

* @typedef {Object} StyleObject
* @prop {chalk.ForegroundColorName | ""} [color] - The color of the text taken from the chalk library.
* @prop {chalk.BackgroundColorName | ""} [backgroundColor] - The background color of the text taken from the chalk library.
* @prop {chalk.ForegroundColorName | HEX | RGB | ""} [color] - The color of the text taken from the chalk library.
* @prop {chalk.BackgroundColorName | HEX | RGB | ""} [backgroundColor] - The background color of the text taken from the chalk library.
* @prop {boolean} [italic] - If the text is italic.

@@ -24,4 +26,4 @@ * @prop {boolean} [bold] - If the text is bold.

export interface StyleObject {
color?: ForegroundColorName | "";
bg?: BackgroundColorName | "";
color?: ForegroundColorName | HEX | RGB | "";
bg?: BackgroundColorName | HEX | RGB | "";
italic?: boolean;

@@ -57,4 +59,4 @@ bold?: boolean;

* @prop {string} text - The text of the styled text.
* @prop {chalk.ForegroundColorName | ""} [color] - The color of the text taken from the chalk library.
* @prop {chalk.BackgroundColorName | ""} [backgroundColor] - The background color of the text taken from the chalk library.
* @prop {chalk.ForegroundColorName | HEX | RGB | ""} [color] - The color of the text taken from the chalk library.
* @prop {chalk.BackgroundColorName | HEX | RGB | "" | ""} [backgroundColor] - The background color of the text taken from the chalk library.
* @prop {boolean} [italic] - If the text is italic.

@@ -76,4 +78,4 @@ * @prop {boolean} [bold] - If the text is bold.

text: string;
color?: ForegroundColorName | "";
bg?: BackgroundColorName | "";
color?: ForegroundColorName | HEX | RGB | "";
bg?: BackgroundColorName | HEX | RGB | "" | "";
italic?: boolean;

@@ -80,0 +82,0 @@ bold?: boolean;

@@ -59,2 +59,2 @@ // TODO: if there are more kind of drawing, add them here like theme, adding a sub array for each kind of drawing

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRkEsaUhBQWlIO0FBQ2pILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUNwQixNQUFNLEVBQUU7UUFDSixPQUFPLEVBQUUsR0FBRztRQUNaLFFBQVEsRUFBRSxHQUFHO1FBQ2IsVUFBVSxFQUFFLEdBQUc7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixVQUFVLEVBQUUsR0FBRztRQUNmLFFBQVEsRUFBRSxHQUFHO1FBQ2IsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsR0FBRztRQUNULEtBQUssRUFBRSxHQUFHO1FBQ1YsR0FBRyxFQUFFLEdBQUc7UUFDUixNQUFNLEVBQUUsR0FBRztLQUNkO0lBQ0QsUUFBUSxFQUFFO1FBQ04sT0FBTyxFQUFFLEdBQUc7UUFDWixRQUFRLEVBQUUsR0FBRztRQUNiLFVBQVUsRUFBRSxHQUFHO1FBQ2YsV0FBVyxFQUFFLEdBQUc7UUFDaEIsVUFBVSxFQUFFLEdBQUc7UUFDZixRQUFRLEVBQUUsR0FBRztRQUNiLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLEdBQUc7UUFDVCxLQUFLLEVBQUUsR0FBRztRQUNWLEdBQUcsRUFBRSxHQUFHO1FBQ1IsTUFBTSxFQUFFLEdBQUc7S0FDZDtJQUNELE9BQU8sRUFBRTtRQUNMLE9BQU8sRUFBRSxHQUFHO1FBQ1osUUFBUSxFQUFFLEdBQUc7UUFDYixVQUFVLEVBQUUsR0FBRztRQUNmLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLFVBQVUsRUFBRSxHQUFHO1FBQ2YsUUFBUSxFQUFFLEdBQUc7UUFDYixLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxHQUFHO1FBQ1QsS0FBSyxFQUFFLEdBQUc7UUFDVixHQUFHLEVBQUUsR0FBRztRQUNSLE1BQU0sRUFBRSxHQUFHO0tBQ2Q7Q0FDSixDQUFBO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsQ0FBUyxFQUFFLGVBQXdCO0lBQ3JFLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLEdBQUcsQ0FBQTtLQUFFO0lBQ25DLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLHFCQUFxQjtJQUMvRCxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFBO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWNrZ3JvdW5kQ29sb3JOYW1lLCBGb3JlZ3JvdW5kQ29sb3JOYW1lIH0gZnJvbSBcImNoYWxrXCJcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgY29udGFpbmluZyBhbGwgdGhlIHBvc3NpYmxlIHN0eWxlcyBmb3IgdGhlIHRleHQuXG4gKiBcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0eWxlT2JqZWN0XG4gKiBAcHJvcCB7Y2hhbGsuRm9yZWdyb3VuZENvbG9yTmFtZSB8IFwiXCJ9IFtjb2xvcl0gLSBUaGUgY29sb3Igb2YgdGhlIHRleHQgdGFrZW4gZnJvbSB0aGUgY2hhbGsgbGlicmFyeS5cbiAqIEBwcm9wIHtjaGFsay5CYWNrZ3JvdW5kQ29sb3JOYW1lIHwgXCJcIn0gW2JhY2tncm91bmRDb2xvcl0gLSBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdGV4dCB0YWtlbiBmcm9tIHRoZSBjaGFsayBsaWJyYXJ5LlxuICogQHByb3Age2Jvb2xlYW59IFtpdGFsaWNdIC0gSWYgdGhlIHRleHQgaXMgaXRhbGljLlxuICogQHByb3Age2Jvb2xlYW59IFtib2xkXSAtIElmIHRoZSB0ZXh0IGlzIGJvbGQuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2RpbV0gLSBJZiB0aGUgdGV4dCBpcyBkaW0uXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3VuZGVybGluZV0gLSBJZiB0aGUgdGV4dCBpcyB1bmRlcmxpbmVkLlxuICogQHByb3Age2Jvb2xlYW59IFtpbnZlcnNlXSAtIElmIHRoZSB0ZXh0IGlzIGludmVyc2UuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2hpZGRlbl0gLSBJZiB0aGUgdGV4dCBpcyBoaWRkZW4uXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3N0cmlrZXRocm91Z2hdIC0gSWYgdGhlIHRleHQgaXMgc3RyaWtldGhyb3VnaC5cbiAqIEBwcm9wIHtib29sZWFufSBbb3ZlcmxpbmVdIC0gSWYgdGhlIHRleHQgaXMgb3ZlcmxpbmVkLlxuICogXG4gKiBAZXhhbXBsZSBjb25zdCB0ZXh0U3R5bGUgPSB7IGNvbG9yOiBcInJlZFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwiYmx1ZVwiLCBib2xkOiB0cnVlLCBpdGFsaWM6IHRydWUgfVxuICpcbiAqIEBleHBvcnRcbiAqIEBpbnRlcmZhY2UgU3R5bGVPYmplY3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHlsZU9iamVjdCB7XG4gICAgY29sb3I/OiBGb3JlZ3JvdW5kQ29sb3JOYW1lIHwgXCJcIjtcbiAgICBiZz86IEJhY2tncm91bmRDb2xvck5hbWUgfCBcIlwiO1xuICAgIGl0YWxpYz86IGJvb2xlYW47XG4gICAgYm9sZD86IGJvb2xlYW47XG4gICAgZGltPzogYm9vbGVhbjtcbiAgICB1bmRlcmxpbmU/OiBib29sZWFuO1xuICAgIGludmVyc2U/OiBib29sZWFuO1xuICAgIGhpZGRlbj86IGJvb2xlYW47XG4gICAgc3RyaWtldGhyb3VnaD86IGJvb2xlYW47XG4gICAgb3ZlcmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgdHlwZSBvZiB0aGUgc2luZ2xlIHN0eWxlZCB0ZXh0LCBzdG9yZWQgaW4gYSBsaW5lIG9mIHRoZSBQYWdlQnVpbGRlci5cbiAqIFxuICogQHR5cGVkZWYge09iamVjdH0gU3R5bGVkRWxlbWVudFxuICogQHByb3Age3N0cmluZ30gdGV4dCAtIFRoZSB0ZXh0IG9mIHRoZSBzdHlsZWQgdGV4dC5cbiAqIEBwcm9wIHtTdHlsZU9iamVjdH0gc3R5bGUgLSBUaGUgc3R5bGUgb2YgdGhlIHN0eWxlZCB0ZXh0LlxuICogXG4gKiBAZXhhbXBsZSBjb25zdCBzdHlsZWRUZXh0ID0geyB0ZXh0OiBcIkhlbGxvXCIsIHN0eWxlOiB7IGNvbG9yOiBcInJlZFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwiYmx1ZVwiLCBib2xkOiB0cnVlLCBpdGFsaWM6IHRydWUgfSB9XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBTdHlsZWRFbGVtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVkRWxlbWVudCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIHN0eWxlOiBTdHlsZU9iamVjdDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgY29udGFpbmluZyBhbGwgdGhlIHBvc3NpYmxlIHN0eWxlcyBmb3IgdGhlIHRleHQgYW5kIHRoZSB0ZXh0IG9uIHRoZSBzYW1lIGxldmVsLiBJdCdzIHVzZWQgb24gdGhlIGhpZ2hlciBsZXZlbC5cbiAqIFxuICogQHR5cGVkZWYge09iamVjdH0gU2ltcGxpZmllZFN0eWxlZEVsZW1lbnRcbiAqIEBwcm9wIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCBvZiB0aGUgc3R5bGVkIHRleHQuXG4gKiBAcHJvcCB7Y2hhbGsuRm9yZWdyb3VuZENvbG9yTmFtZSB8IFwiXCJ9IFtjb2xvcl0gLSBUaGUgY29sb3Igb2YgdGhlIHRleHQgdGFrZW4gZnJvbSB0aGUgY2hhbGsgbGlicmFyeS5cbiAqIEBwcm9wIHtjaGFsay5CYWNrZ3JvdW5kQ29sb3JOYW1lIHwgXCJcIn0gW2JhY2tncm91bmRDb2xvcl0gLSBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdGV4dCB0YWtlbiBmcm9tIHRoZSBjaGFsayBsaWJyYXJ5LlxuICogQHByb3Age2Jvb2xlYW59IFtpdGFsaWNdIC0gSWYgdGhlIHRleHQgaXMgaXRhbGljLlxuICogQHByb3Age2Jvb2xlYW59IFtib2xkXSAtIElmIHRoZSB0ZXh0IGlzIGJvbGQuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2RpbV0gLSBJZiB0aGUgdGV4dCBpcyBkaW0uXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3VuZGVybGluZV0gLSBJZiB0aGUgdGV4dCBpcyB1bmRlcmxpbmVkLlxuICogQHByb3Age2Jvb2xlYW59IFtpbnZlcnNlXSAtIElmIHRoZSB0ZXh0IGlzIGludmVyc2UuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2hpZGRlbl0gLSBJZiB0aGUgdGV4dCBpcyBoaWRkZW4uXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW3N0cmlrZXRocm91Z2hdIC0gSWYgdGhlIHRleHQgaXMgc3RyaWtldGhyb3VnaC5cbiAqIEBwcm9wIHtib29sZWFufSBbb3ZlcmxpbmVdIC0gSWYgdGhlIHRleHQgaXMgb3ZlcmxpbmVkLlxuICogXG4gKiBAZXhhbXBsZSBjb25zdCB0ZXh0U3R5bGUgPSB7IGNvbG9yOiBcInJlZFwiLCBiYWNrZ3JvdW5kQ29sb3I6IFwiYmx1ZVwiLCBib2xkOiB0cnVlLCBpdGFsaWM6IHRydWUgfVxuICpcbiAqIEBleHBvcnRcbiAqIEBpbnRlcmZhY2UgU2ltcGxpZmllZFN0eWxlZEVsZW1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaW1wbGlmaWVkU3R5bGVkRWxlbWVudCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNvbG9yPzogRm9yZWdyb3VuZENvbG9yTmFtZSB8IFwiXCI7XG4gICAgYmc/OiBCYWNrZ3JvdW5kQ29sb3JOYW1lIHwgXCJcIjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIGRpbT86IGJvb2xlYW47XG4gICAgdW5kZXJsaW5lPzogYm9vbGVhbjtcbiAgICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xuICAgIG92ZXJsaW5lPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaGlzaWNhbFZhbHVlcyB7XG4gICAgeDogbnVtYmVyXG4gICAgeTogbnVtYmVyXG4gICAgd2lkdGg6IG51bWJlclxuICAgIGhlaWdodDogbnVtYmVyXG4gICAgaWQ/OiBudW1iZXJcbn1cblxuLy8gVE9ETzogaWYgdGhlcmUgYXJlIG1vcmUga2luZCBvZiBkcmF3aW5nLCBhZGQgdGhlbSBoZXJlIGxpa2UgdGhlbWUsIGFkZGluZyBhIHN1YiBhcnJheSBmb3IgZWFjaCBraW5kIG9mIGRyYXdpbmdcbmV4cG9ydCBjb25zdCBib3hDaGFycyA9IHtcbiAgICBub3JtYWw6IHtcbiAgICAgICAgdG9wTGVmdDogXCLilIxcIixcbiAgICAgICAgdG9wUmlnaHQ6IFwi4pSQXCIsXG4gICAgICAgIGJvdHRvbUxlZnQ6IFwi4pSUXCIsXG4gICAgICAgIGJvdHRvbVJpZ2h0OiBcIuKUmFwiLFxuICAgICAgICBob3Jpem9udGFsOiBcIuKUgFwiLFxuICAgICAgICB2ZXJ0aWNhbDogXCLilIJcIixcbiAgICAgICAgY3Jvc3M6IFwi4pS8XCIsXG4gICAgICAgIGxlZnQ6IFwi4pScXCIsXG4gICAgICAgIHJpZ2h0OiBcIuKUpFwiLFxuICAgICAgICB0b3A6IFwi4pSsXCIsXG4gICAgICAgIGJvdHRvbTogXCLilLRcIlxuICAgIH0sXG4gICAgc2VsZWN0ZWQ6IHtcbiAgICAgICAgdG9wTGVmdDogXCLilZRcIixcbiAgICAgICAgdG9wUmlnaHQ6IFwi4pWXXCIsXG4gICAgICAgIGJvdHRvbUxlZnQ6IFwi4pWaXCIsXG4gICAgICAgIGJvdHRvbVJpZ2h0OiBcIuKVnVwiLFxuICAgICAgICBob3Jpem9udGFsOiBcIuKVkFwiLFxuICAgICAgICB2ZXJ0aWNhbDogXCLilZFcIixcbiAgICAgICAgY3Jvc3M6IFwi4pWsXCIsXG4gICAgICAgIGxlZnQ6IFwi4pWgXCIsXG4gICAgICAgIHJpZ2h0OiBcIuKVo1wiLFxuICAgICAgICB0b3A6IFwi4pWmXCIsXG4gICAgICAgIGJvdHRvbTogXCLilalcIlxuICAgIH0sXG4gICAgaG92ZXJlZDoge1xuICAgICAgICB0b3BMZWZ0OiBcIuKVk1wiLFxuICAgICAgICB0b3BSaWdodDogXCLilZZcIixcbiAgICAgICAgYm90dG9tTGVmdDogXCLilZlcIixcbiAgICAgICAgYm90dG9tUmlnaHQ6IFwi4pWcXCIsXG4gICAgICAgIGhvcml6b250YWw6IFwi4pSAXCIsXG4gICAgICAgIHZlcnRpY2FsOiBcIuKUglwiLFxuICAgICAgICBjcm9zczogXCLilatcIixcbiAgICAgICAgbGVmdDogXCLilZ9cIixcbiAgICAgICAgcmlnaHQ6IFwi4pWiXCIsXG4gICAgICAgIHRvcDogXCLilaVcIixcbiAgICAgICAgYm90dG9tOiBcIuKVqFwiXG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdHJ1bmNhdGUgYSBzdHJpbmcgYWRkaW5nIC4uLiBhdCB0aGUgZW5kLlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gdHJ1bmNhdGUuXG4gKiBAcGFyYW0ge251bWJlcn0gbiAtIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBrZWVwLlxuICogQHBhcmFtIHtib29sZWFufSB1c2VXb3JkQm91bmRhcnkgLSBJZiB0cnVlLCB0aGUgdHJ1bmNhdGlvbiB3aWxsIGJlIGRvbmUgYXQgdGhlIGVuZCBvZiB0aGUgd29yZC5cbiAqIEBleGFtcGxlIENNLnRydW5jYXRlKFwiSGVsbG8gd29ybGRcIiwgNSwgdHJ1ZSkgLy8gXCJIZWxsby4uLlwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnVuY2F0ZShzdHI6IHN0cmluZywgbjogbnVtYmVyLCB1c2VXb3JkQm91bmRhcnk6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGlmIChzdHIubGVuZ3RoIDw9IG4pIHsgcmV0dXJuIHN0ciB9XG4gICAgY29uc3Qgc3ViU3RyaW5nID0gc3RyLnN1YnN0cmluZygwLCBuIC0gMSkgLy8gdGhlIG9yaWdpbmFsIGNoZWNrXG4gICAgcmV0dXJuICh1c2VXb3JkQm91bmRhcnkgP1xuICAgICAgICBzdWJTdHJpbmcuc3Vic3RyaW5nKDAsIHN1YlN0cmluZy5sYXN0SW5kZXhPZihcIiBcIikpIDpcbiAgICAgICAgc3ViU3RyaW5nKSArIFwi4oCmXCJcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9VdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrR0EsaUhBQWlIO0FBQ2pILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUNwQixNQUFNLEVBQUU7UUFDSixPQUFPLEVBQUUsR0FBRztRQUNaLFFBQVEsRUFBRSxHQUFHO1FBQ2IsVUFBVSxFQUFFLEdBQUc7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixVQUFVLEVBQUUsR0FBRztRQUNmLFFBQVEsRUFBRSxHQUFHO1FBQ2IsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsR0FBRztRQUNULEtBQUssRUFBRSxHQUFHO1FBQ1YsR0FBRyxFQUFFLEdBQUc7UUFDUixNQUFNLEVBQUUsR0FBRztLQUNkO0lBQ0QsUUFBUSxFQUFFO1FBQ04sT0FBTyxFQUFFLEdBQUc7UUFDWixRQUFRLEVBQUUsR0FBRztRQUNiLFVBQVUsRUFBRSxHQUFHO1FBQ2YsV0FBVyxFQUFFLEdBQUc7UUFDaEIsVUFBVSxFQUFFLEdBQUc7UUFDZixRQUFRLEVBQUUsR0FBRztRQUNiLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLEdBQUc7UUFDVCxLQUFLLEVBQUUsR0FBRztRQUNWLEdBQUcsRUFBRSxHQUFHO1FBQ1IsTUFBTSxFQUFFLEdBQUc7S0FDZDtJQUNELE9BQU8sRUFBRTtRQUNMLE9BQU8sRUFBRSxHQUFHO1FBQ1osUUFBUSxFQUFFLEdBQUc7UUFDYixVQUFVLEVBQUUsR0FBRztRQUNmLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLFVBQVUsRUFBRSxHQUFHO1FBQ2YsUUFBUSxFQUFFLEdBQUc7UUFDYixLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxHQUFHO1FBQ1QsS0FBSyxFQUFFLEdBQUc7UUFDVixHQUFHLEVBQUUsR0FBRztRQUNSLE1BQU0sRUFBRSxHQUFHO0tBQ2Q7Q0FDSixDQUFBO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsQ0FBUyxFQUFFLGVBQXdCO0lBQ3JFLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLEdBQUcsQ0FBQTtLQUFFO0lBQ25DLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLHFCQUFxQjtJQUMvRCxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFBO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWNrZ3JvdW5kQ29sb3JOYW1lLCBGb3JlZ3JvdW5kQ29sb3JOYW1lIH0gZnJvbSBcImNoYWxrXCJcblxuZXhwb3J0IHR5cGUgSEVYID0gYCMke3N0cmluZ31gO1xuZXhwb3J0IHR5cGUgUkdCID0gYHJnYigke251bWJlcn0sICR7bnVtYmVyfSwgJHtudW1iZXJ9KWAgfCBgcmdiKCR7bnVtYmVyfSwke251bWJlcn0sJHtudW1iZXJ9KWA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIGNvbnRhaW5pbmcgYWxsIHRoZSBwb3NzaWJsZSBzdHlsZXMgZm9yIHRoZSB0ZXh0LlxuICogXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdHlsZU9iamVjdFxuICogQHByb3Age2NoYWxrLkZvcmVncm91bmRDb2xvck5hbWUgfCBIRVggfCBSR0IgfCBcIlwifSBbY29sb3JdIC0gVGhlIGNvbG9yIG9mIHRoZSB0ZXh0IHRha2VuIGZyb20gdGhlIGNoYWxrIGxpYnJhcnkuXG4gKiBAcHJvcCB7Y2hhbGsuQmFja2dyb3VuZENvbG9yTmFtZSB8IEhFWCB8IFJHQiB8IFwiXCJ9IFtiYWNrZ3JvdW5kQ29sb3JdIC0gVGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRleHQgdGFrZW4gZnJvbSB0aGUgY2hhbGsgbGlicmFyeS5cbiAqIEBwcm9wIHtib29sZWFufSBbaXRhbGljXSAtIElmIHRoZSB0ZXh0IGlzIGl0YWxpYy5cbiAqIEBwcm9wIHtib29sZWFufSBbYm9sZF0gLSBJZiB0aGUgdGV4dCBpcyBib2xkLlxuICogQHByb3Age2Jvb2xlYW59IFtkaW1dIC0gSWYgdGhlIHRleHQgaXMgZGltLlxuICogQHByb3Age2Jvb2xlYW59IFt1bmRlcmxpbmVdIC0gSWYgdGhlIHRleHQgaXMgdW5kZXJsaW5lZC5cbiAqIEBwcm9wIHtib29sZWFufSBbaW52ZXJzZV0gLSBJZiB0aGUgdGV4dCBpcyBpbnZlcnNlLlxuICogQHByb3Age2Jvb2xlYW59IFtoaWRkZW5dIC0gSWYgdGhlIHRleHQgaXMgaGlkZGVuLlxuICogQHByb3Age2Jvb2xlYW59IFtzdHJpa2V0aHJvdWdoXSAtIElmIHRoZSB0ZXh0IGlzIHN0cmlrZXRocm91Z2guXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW292ZXJsaW5lXSAtIElmIHRoZSB0ZXh0IGlzIG92ZXJsaW5lZC5cbiAqIFxuICogQGV4YW1wbGUgY29uc3QgdGV4dFN0eWxlID0geyBjb2xvcjogXCJyZWRcIiwgYmFja2dyb3VuZENvbG9yOiBcImJsdWVcIiwgYm9sZDogdHJ1ZSwgaXRhbGljOiB0cnVlIH1cbiAqXG4gKiBAZXhwb3J0XG4gKiBAaW50ZXJmYWNlIFN0eWxlT2JqZWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVPYmplY3Qge1xuICAgIGNvbG9yPzogRm9yZWdyb3VuZENvbG9yTmFtZSB8IEhFWCB8IFJHQiB8IFwiXCI7XG4gICAgYmc/OiBCYWNrZ3JvdW5kQ29sb3JOYW1lIHwgSEVYIHwgUkdCIHwgXCJcIjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIGRpbT86IGJvb2xlYW47XG4gICAgdW5kZXJsaW5lPzogYm9vbGVhbjtcbiAgICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xuICAgIG92ZXJsaW5lPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlIHR5cGUgb2YgdGhlIHNpbmdsZSBzdHlsZWQgdGV4dCwgc3RvcmVkIGluIGEgbGluZSBvZiB0aGUgUGFnZUJ1aWxkZXIuXG4gKiBcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0eWxlZEVsZW1lbnRcbiAqIEBwcm9wIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCBvZiB0aGUgc3R5bGVkIHRleHQuXG4gKiBAcHJvcCB7U3R5bGVPYmplY3R9IHN0eWxlIC0gVGhlIHN0eWxlIG9mIHRoZSBzdHlsZWQgdGV4dC5cbiAqIFxuICogQGV4YW1wbGUgY29uc3Qgc3R5bGVkVGV4dCA9IHsgdGV4dDogXCJIZWxsb1wiLCBzdHlsZTogeyBjb2xvcjogXCJyZWRcIiwgYmFja2dyb3VuZENvbG9yOiBcImJsdWVcIiwgYm9sZDogdHJ1ZSwgaXRhbGljOiB0cnVlIH0gfVxuICpcbiAqIEBleHBvcnRcbiAqIEBpbnRlcmZhY2UgU3R5bGVkRWxlbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlZEVsZW1lbnQge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBzdHlsZTogU3R5bGVPYmplY3Q7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRoZSB0eXBlIGNvbnRhaW5pbmcgYWxsIHRoZSBwb3NzaWJsZSBzdHlsZXMgZm9yIHRoZSB0ZXh0IGFuZCB0aGUgdGV4dCBvbiB0aGUgc2FtZSBsZXZlbC4gSXQncyB1c2VkIG9uIHRoZSBoaWdoZXIgbGV2ZWwuXG4gKiBcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNpbXBsaWZpZWRTdHlsZWRFbGVtZW50XG4gKiBAcHJvcCB7c3RyaW5nfSB0ZXh0IC0gVGhlIHRleHQgb2YgdGhlIHN0eWxlZCB0ZXh0LlxuICogQHByb3Age2NoYWxrLkZvcmVncm91bmRDb2xvck5hbWUgfCBIRVggfCBSR0IgfCBcIlwifSBbY29sb3JdIC0gVGhlIGNvbG9yIG9mIHRoZSB0ZXh0IHRha2VuIGZyb20gdGhlIGNoYWxrIGxpYnJhcnkuXG4gKiBAcHJvcCB7Y2hhbGsuQmFja2dyb3VuZENvbG9yTmFtZSB8IEhFWCB8IFJHQiB8IFwiXCIgfCBcIlwifSBbYmFja2dyb3VuZENvbG9yXSAtIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0ZXh0IHRha2VuIGZyb20gdGhlIGNoYWxrIGxpYnJhcnkuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2l0YWxpY10gLSBJZiB0aGUgdGV4dCBpcyBpdGFsaWMuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2JvbGRdIC0gSWYgdGhlIHRleHQgaXMgYm9sZC5cbiAqIEBwcm9wIHtib29sZWFufSBbZGltXSAtIElmIHRoZSB0ZXh0IGlzIGRpbS5cbiAqIEBwcm9wIHtib29sZWFufSBbdW5kZXJsaW5lXSAtIElmIHRoZSB0ZXh0IGlzIHVuZGVybGluZWQuXG4gKiBAcHJvcCB7Ym9vbGVhbn0gW2ludmVyc2VdIC0gSWYgdGhlIHRleHQgaXMgaW52ZXJzZS5cbiAqIEBwcm9wIHtib29sZWFufSBbaGlkZGVuXSAtIElmIHRoZSB0ZXh0IGlzIGhpZGRlbi5cbiAqIEBwcm9wIHtib29sZWFufSBbc3RyaWtldGhyb3VnaF0gLSBJZiB0aGUgdGV4dCBpcyBzdHJpa2V0aHJvdWdoLlxuICogQHByb3Age2Jvb2xlYW59IFtvdmVybGluZV0gLSBJZiB0aGUgdGV4dCBpcyBvdmVybGluZWQuXG4gKiBcbiAqIEBleGFtcGxlIGNvbnN0IHRleHRTdHlsZSA9IHsgY29sb3I6IFwicmVkXCIsIGJhY2tncm91bmRDb2xvcjogXCJibHVlXCIsIGJvbGQ6IHRydWUsIGl0YWxpYzogdHJ1ZSB9XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBTaW1wbGlmaWVkU3R5bGVkRWxlbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsaWZpZWRTdHlsZWRFbGVtZW50IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgY29sb3I/OiBGb3JlZ3JvdW5kQ29sb3JOYW1lIHwgSEVYIHwgUkdCIHwgXCJcIjtcbiAgICBiZz86IEJhY2tncm91bmRDb2xvck5hbWUgfCBIRVggfCBSR0IgfCBcIlwiIHwgXCJcIjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIGRpbT86IGJvb2xlYW47XG4gICAgdW5kZXJsaW5lPzogYm9vbGVhbjtcbiAgICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xuICAgIG92ZXJsaW5lPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaGlzaWNhbFZhbHVlcyB7XG4gICAgeDogbnVtYmVyXG4gICAgeTogbnVtYmVyXG4gICAgd2lkdGg6IG51bWJlclxuICAgIGhlaWdodDogbnVtYmVyXG4gICAgaWQ/OiBudW1iZXJcbn1cblxuLy8gVE9ETzogaWYgdGhlcmUgYXJlIG1vcmUga2luZCBvZiBkcmF3aW5nLCBhZGQgdGhlbSBoZXJlIGxpa2UgdGhlbWUsIGFkZGluZyBhIHN1YiBhcnJheSBmb3IgZWFjaCBraW5kIG9mIGRyYXdpbmdcbmV4cG9ydCBjb25zdCBib3hDaGFycyA9IHtcbiAgICBub3JtYWw6IHtcbiAgICAgICAgdG9wTGVmdDogXCLilIxcIixcbiAgICAgICAgdG9wUmlnaHQ6IFwi4pSQXCIsXG4gICAgICAgIGJvdHRvbUxlZnQ6IFwi4pSUXCIsXG4gICAgICAgIGJvdHRvbVJpZ2h0OiBcIuKUmFwiLFxuICAgICAgICBob3Jpem9udGFsOiBcIuKUgFwiLFxuICAgICAgICB2ZXJ0aWNhbDogXCLilIJcIixcbiAgICAgICAgY3Jvc3M6IFwi4pS8XCIsXG4gICAgICAgIGxlZnQ6IFwi4pScXCIsXG4gICAgICAgIHJpZ2h0OiBcIuKUpFwiLFxuICAgICAgICB0b3A6IFwi4pSsXCIsXG4gICAgICAgIGJvdHRvbTogXCLilLRcIlxuICAgIH0sXG4gICAgc2VsZWN0ZWQ6IHtcbiAgICAgICAgdG9wTGVmdDogXCLilZRcIixcbiAgICAgICAgdG9wUmlnaHQ6IFwi4pWXXCIsXG4gICAgICAgIGJvdHRvbUxlZnQ6IFwi4pWaXCIsXG4gICAgICAgIGJvdHRvbVJpZ2h0OiBcIuKVnVwiLFxuICAgICAgICBob3Jpem9udGFsOiBcIuKVkFwiLFxuICAgICAgICB2ZXJ0aWNhbDogXCLilZFcIixcbiAgICAgICAgY3Jvc3M6IFwi4pWsXCIsXG4gICAgICAgIGxlZnQ6IFwi4pWgXCIsXG4gICAgICAgIHJpZ2h0OiBcIuKVo1wiLFxuICAgICAgICB0b3A6IFwi4pWmXCIsXG4gICAgICAgIGJvdHRvbTogXCLilalcIlxuICAgIH0sXG4gICAgaG92ZXJlZDoge1xuICAgICAgICB0b3BMZWZ0OiBcIuKVk1wiLFxuICAgICAgICB0b3BSaWdodDogXCLilZZcIixcbiAgICAgICAgYm90dG9tTGVmdDogXCLilZlcIixcbiAgICAgICAgYm90dG9tUmlnaHQ6IFwi4pWcXCIsXG4gICAgICAgIGhvcml6b250YWw6IFwi4pSAXCIsXG4gICAgICAgIHZlcnRpY2FsOiBcIuKUglwiLFxuICAgICAgICBjcm9zczogXCLilatcIixcbiAgICAgICAgbGVmdDogXCLilZ9cIixcbiAgICAgICAgcmlnaHQ6IFwi4pWiXCIsXG4gICAgICAgIHRvcDogXCLilaVcIixcbiAgICAgICAgYm90dG9tOiBcIuKVqFwiXG4gICAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdHJ1bmNhdGUgYSBzdHJpbmcgYWRkaW5nIC4uLiBhdCB0aGUgZW5kLlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gdHJ1bmNhdGUuXG4gKiBAcGFyYW0ge251bWJlcn0gbiAtIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBrZWVwLlxuICogQHBhcmFtIHtib29sZWFufSB1c2VXb3JkQm91bmRhcnkgLSBJZiB0cnVlLCB0aGUgdHJ1bmNhdGlvbiB3aWxsIGJlIGRvbmUgYXQgdGhlIGVuZCBvZiB0aGUgd29yZC5cbiAqIEBleGFtcGxlIENNLnRydW5jYXRlKFwiSGVsbG8gd29ybGRcIiwgNSwgdHJ1ZSkgLy8gXCJIZWxsby4uLlwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnVuY2F0ZShzdHI6IHN0cmluZywgbjogbnVtYmVyLCB1c2VXb3JkQm91bmRhcnk6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGlmIChzdHIubGVuZ3RoIDw9IG4pIHsgcmV0dXJuIHN0ciB9XG4gICAgY29uc3Qgc3ViU3RyaW5nID0gc3RyLnN1YnN0cmluZygwLCBuIC0gMSkgLy8gdGhlIG9yaWdpbmFsIGNoZWNrXG4gICAgcmV0dXJuICh1c2VXb3JkQm91bmRhcnkgP1xuICAgICAgICBzdWJTdHJpbmcuc3Vic3RyaW5nKDAsIHN1YlN0cmluZy5sYXN0SW5kZXhPZihcIiBcIikpIDpcbiAgICAgICAgc3ViU3RyaW5nKSArIFwi4oCmXCJcbn0iXX0=
import { BackgroundColorName, ForegroundColorName } from "chalk/source/vendor/ansi-styles/index.js";
import { HEX, RGB } from "../Utils.js";
import Control from "./Control.js";
export interface ButtonStyle {
background: BackgroundColorName;
borderColor: ForegroundColorName;
color: ForegroundColorName;
background: BackgroundColorName | HEX | RGB | "";
borderColor: ForegroundColorName | HEX | RGB | "";
color: ForegroundColorName | HEX | RGB | "";
bold?: boolean;

@@ -8,0 +9,0 @@ italic?: boolean;

@@ -143,2 +143,2 @@ import InPageWidgetBuilder from "../InPageWidgetBuilder.js";

export default Button;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvd2lkZ2V0cy9CdXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxtQkFBbUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNoRCxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFnQmxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxPQUFPLE1BQU8sU0FBUSxPQUFPO0lBWS9CLFlBQ0ksRUFBVSxFQUNWLElBQVksRUFDWixLQUFhLEVBQ2IsTUFBYyxFQUNkLENBQVMsRUFDVCxDQUFTLEVBQ1QsS0FBa0IsRUFDbEIsT0FBbUIsRUFDbkIsU0FBcUIsRUFDckIsT0FBTyxHQUFHLElBQUksRUFDZCxPQUFPLEdBQUcsSUFBSSxFQUNkLFNBQVMsR0FBRyxLQUFLO1FBRWpCLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUF6QmxFLFNBQUksR0FBRyxNQUFNLENBQUE7UUFDYixZQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ2QsVUFBSyxHQUFnQjtZQUN6QixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsT0FBTztZQUNwQixLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQTtRQUdPLFdBQU0sR0FBc0MsUUFBUSxDQUFBO1FBMkRyRCxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7WUFDbEMsSUFBSSxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUs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LE1BQU0sR0FBRyxTQUFTLENBQUE7b0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtpQkFDaEI7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNqQixDQUFDO0NBMERKO0FBRUQsZUFBZSxNQUFNLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWNrZ3JvdW5kQ29sb3JOYW1lLCBGb3JlZ3JvdW5kQ29sb3JOYW1lIH0gZnJvbSBcImNoYWxrL3NvdXJjZS92ZW5kb3IvYW5zaS1zdHlsZXMvaW5kZXguanNcIlxuaW1wb3J0IEluUGFnZVdpZGdldEJ1aWxkZXIgZnJvbSBcIi4uL0luUGFnZVdpZGdldEJ1aWxkZXIuanNcIlxuaW1wb3J0IHsgYm94Q2hhcnMsIHRydW5jYXRlIH0gZnJvbSBcIi4uL1V0aWxzLmpzXCJcbmltcG9ydCBDb250cm9sIGZyb20gXCIuL0NvbnRyb2wuanNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvblN0eWxlIHtcbiAgICBiYWNrZ3JvdW5kOiBCYWNrZ3JvdW5kQ29sb3JOYW1lO1xuICAgIGJvcmRlckNvbG9yOiBGb3JlZ3JvdW5kQ29sb3JOYW1lO1xuICAgIGNvbG9yOiBGb3JlZ3JvdW5kQ29sb3JOYW1lO1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIGl0YWxpYz86IGJvb2xlYW47XG4gICAgZGltPzogYm9vbGVhbjtcbiAgICB1bmRlcmxpbmU/OiBib29sZWFuO1xuICAgIGludmVyc2U/OiBib29sZWFuO1xuICAgIGhpZGRlbj86IGJvb2xlYW47XG4gICAgc3RyaWtldGhyb3VnaD86IGJvb2xlYW47XG4gICAgb3ZlcmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBjbGFzcyBCdXR0b25cbiAqIEBleHRlbmRzIENvbnRyb2xcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGNsYXNzIGlzIGFuIG92ZXJsb2FkIG9mIENvbnRyb2wgdGhhdCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGJ1dHRvbi4gXG4gKiBcbiAqICFbQnV0dG9uXShodHRwczovL3VzZXItaW1hZ2VzLmdpdGh1YnVzZXJjb250ZW50LmNvbS8xNDkwNzk4Ny8yMDI4NjY4MjQtMDQ3NTAzZmMtOWFmNi00OTkwLWFhOWEtNTdhM2Q2OTFmNmIwLmdpZilcbiAqIFxuICogRW1pdHMgdGhlIGZvbGxvd2luZyBldmVudHM6IFxuICogLSBcImNsaWNrXCIgd2hlbiB0aGUgdXNlciBjb25maXJtXG4gKiAtIFwicmVsZXNlXCIgd2hlbiB0aGUgdXNlciBjYW5jZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIFRoZSBpZCBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtCdXR0b25TdHlsZX0gc3R5bGUgLSBUbyBzZXQgdGhlIHN0eWxlIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHZpc2libGUgLSBJZiB0aGUgYnV0dG9uIGlzIHZpc2libGUuIERlZmF1bHQgaXMgdHJ1ZSAobWFrZSBpdCBoaWRlIHVzaW5nIGhpZGUoKSkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZWQgLSBJZiB0aGUgYnV0dG9uIGlzIGVuYWJsZWQuIERlZmF1bHQgaXMgdHJ1ZSAobWFrZSBpdCBkaXNhYmxlZCB1c2luZyBkaXNhYmxlKCkpLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gb25DbGljayAtIFRoZSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gb25SZWxlYXNlIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgYnV0dG9uIGlzIHJlbGVhc2VkLiBcbiAqIFxuICogQGV4YW1wbGUgYGBganNcbiAqIG5ldyBCdXR0b24oXCJidG5SdW5cIiwgXCJSdW4gbWUhXCIsIDEwLCAzLCAyMSwgMTgsIFxuICogICAgICB7IFxuICogICAgICAgICAgY29sb3I6IFwibWFnZW50YUJyaWdodFwiLCBcbiAqICAgICAgICAgIGJvbGQ6IHRydWUsIFxuICogICAgICAgICAgaXRhbGljOiB0cnVlLFxuICogICAgICAgICAgYm9yZGVyQ29sb3I6IFwiZ3JlZW5cIlxuICogICAgICB9LFxuICogICAgICAoKSA9PiB7XG4gKiAgICAgICAgICBHVUkubG9nKFwiQnV0dG9uIGNsaWNrZWQhXCIpXG4gKiAgICAgIH0pXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1dHRvbiBleHRlbmRzIENvbnRyb2wge1xuICAgIHByaXZhdGUgdGV4dCA9IFwiVEVYVFwiXG4gICAgcHJpdmF0ZSBlbmFibGVkID0gdHJ1ZVxuICAgIHByaXZhdGUgc3R5bGU6IEJ1dHRvblN0eWxlID0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBcImJnQmxhY2tcIixcbiAgICAgICAgYm9yZGVyQ29sb3I6IFwid2hpdGVcIixcbiAgICAgICAgY29sb3I6IFwid2hpdGVcIixcbiAgICAgICAgYm9sZDogdHJ1ZVxuICAgIH1cbiAgICBwdWJsaWMgb25DbGljazogKCkgPT4gdm9pZFxuICAgIHB1YmxpYyBvblJlbGVhc2U6ICgpID0+IHZvaWRcbiAgICBwcml2YXRlIHN0YXR1czogXCJub3JtYWxcIiB8IFwiaG92ZXJlZFwiIHwgXCJzZWxlY3RlZFwiID0gXCJub3JtYWxcIiBcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGlkOiBzdHJpbmcsIFxuICAgICAgICB0ZXh0OiBzdHJpbmcsIFxuICAgICAgICB3aWR0aDogbnVtYmVyLFxuICAgICAgICBoZWlnaHQ6IG51bWJlcixcbiAgICAgICAgeDogbnVtYmVyLFxuICAgICAgICB5OiBudW1iZXIsXG4gICAgICAgIHN0eWxlOiBCdXR0b25TdHlsZSxcbiAgICAgICAgb25DbGljazogKCkgPT4gdm9pZCxcbiAgICAgICAgb25SZWxlYXNlOiAoKSA9PiB2b2lkLFxuICAgICAgICB2aXNpYmxlID0gdHJ1ZSxcbiAgICAgICAgZW5hYmxlZCA9IHRydWUsXG4gICAgICAgIGRyYWdnYWJsZSA9IGZhbHNlKSBcbiAgICB7XG4gICAgICAgIHN1cGVyKGlkLCB2aXNpYmxlLCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSwgbmV3IEluUGFnZVdpZGdldEJ1aWxkZXIoKSlcbiAgICAgICAgdGhpcy50ZXh0ID0gdGV4dFxuICAgICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkXG4gICAgICAgIHRoaXMub25DbGljayA9IG9uQ2xpY2tcbiAgICAgICAgdGhpcy5vblJlbGVhc2UgPSBvblJlbGVhc2VcbiAgICAgICAgdGhpcy5zdHlsZSA9IHN0eWxlXG4gICAgICAgIHRoaXMuZHJhZ2dhYmxlID0gZHJhZ2dhYmxlXG5cbiAgICAgICAgdGhpcy5vbihcInJlbGF0aXZlTW91c2VcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50Lm5hbWUgPT09IFwiTU9VU0VfTEVGVF9CVVRUT05fUFJFU1NFRFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBcInNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub25DbGljaykgdGhpcy5vbkNsaWNrLmNhbGwodGhpcylcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoXCJjbGlja1wiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50Lm5hbWUgPT09IFwiTU9VU0VfTEVGVF9CVVRUT05fUkVMRUFTRURcIikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gXCJob3ZlcmVkXCJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub25SZWxlYXNlKSB0aGlzLm9uUmVsZWFzZS5jYWxsKHRoaXMpXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0KFwicmVsZWFzZVwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50Lm5hbWUgPT09IFwiTU9VU0VfUklHSFRfQlVUVE9OX1BSRVNTRURcIikge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdChcInJpZ2h0Q2xpY2tcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5uYW1lID09PSBcIk1PVVNFX1JJR0hUX0JVVFRPTl9SRUxFQVNFRFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0KFwicmlnaHRSZWxlYXNlXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXZlbnQubmFtZSA9PT0gXCJNT1VTRV9NT1RJT05cIikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gXCJub3JtYWxcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IFwiaG92ZXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMub24oXCJob3Zlck91dFwiLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9IFwibm9ybWFsXCJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKClcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy51cGRhdGUoKVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFic1ZhbCA9IHRoaXMuYWJzb2x1dGVWYWx1ZXNcbiAgICAgICAgbGV0IHRydW5jYXRlZFRleHQgPSB0cnVuY2F0ZSh0aGlzLnRleHQsIGFic1ZhbC53aWR0aCAtIDIsIGZhbHNlKVxuICAgICAgICBcbiAgICAgICAgLy8gYWRkIGEgd2hpdGUgc3BhY2UgdG8gdGhlIGVuZCBvZiB0aGUgdHJ1bmNhdGVkIHRleHQgaWYgdGhlIHN1bSBvZiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGFuZCB0aGUgd2lkdGggb2YgdGhlIGJ1dHRvbiBpcyBvZGRcbiAgICAgICAgaWYgKCh0cnVuY2F0ZWRUZXh0Lmxlbmd0aCArIChhYnNWYWwud2lkdGggLSAyKSkgJSAyID09PSAxKSB7XG4gICAgICAgICAgICB0cnVuY2F0ZWRUZXh0ICs9IFwiIFwiXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldENvbnRlbnQoKS5jbGVhcigpXG4gICAgICAgIHRoaXMuZ2V0Q29udGVudCgpLmFkZFJvdyh7IHRleHQ6IGAke2JveENoYXJzW3RoaXMuc3RhdHVzXS50b3BMZWZ0fSR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLmhvcml6b250YWwucmVwZWF0KGFic1ZhbC53aWR0aCAtIDIpfSR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLnRvcFJpZ2h0fWAsIGJnOiB0aGlzLnN0eWxlLmJhY2tncm91bmQsIGNvbG9yOiB0aGlzLnN0eWxlLmJvcmRlckNvbG9yLCBib2xkOiB0aGlzLnN0eWxlLmJvbGQgfSlcbiAgICAgICAgdGhpcy5nZXRDb250ZW50KCkuYWRkUm93KFxuICAgICAgICAgICAgeyBcbiAgICAgICAgICAgICAgICB0ZXh0OiBgJHtib3hDaGFyc1t0aGlzLnN0YXR1c10udmVydGljYWx9YCwgXG4gICAgICAgICAgICAgICAgYmc6IHRoaXMuc3R5bGUuYmFja2dyb3VuZCwgXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoaXMuc3R5bGUuYm9yZGVyQ29sb3IsIFxuICAgICAgICAgICAgICAgIGJvbGQ6IHRoaXMuc3R5bGUuYm9sZCBcbiAgICAgICAgICAgIH0sIFxuICAgICAgICAgICAgeyBcbiAgICAgICAgICAgICAgICB0ZXh0OiBgJHtcIiBcIi5yZXBlYXQoKChhYnNWYWwud2lkdGggLSAyKSAtIHRydW5jYXRlZFRleHQubGVuZ3RoKSAvIDIpfSR7dHJ1bmNhdGVkVGV4dH0ke1wiIFwiLnJlcGVhdCgoKGFic1ZhbC53aWR0aCAtIDIpIC0gdHJ1bmNhdGVkVGV4dC5sZW5ndGgpIC8gMil9YCxcbiAgICAgICAgICAgICAgICBiZzogdGhpcy5zdHlsZS5iYWNrZ3JvdW5kLCBcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5zdHlsZS5jb2xvciwgXG4gICAgICAgICAgICAgICAgYm9sZDogdGhpcy5zdHlsZS5ib2xkLFxuICAgICAgICAgICAgICAgIGl0YWxpYzogdGhpcy5zdHlsZS5pdGFsaWMsXG4gICAgICAgICAgICAgICAgZGltOiB0aGlzLnN0eWxlLmRpbSxcbiAgICAgICAgICAgICAgICB1bmRlcmxpbmU6IHRoaXMuc3R5bGUudW5kZXJsaW5lLFxuICAgICAgICAgICAgICAgIGludmVyc2U6IHRoaXMuc3R5bGUuaW52ZXJzZSxcbiAgICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuc3R5bGUuaGlkZGVuLFxuICAgICAgICAgICAgICAgIHN0cmlrZXRocm91Z2g6IHRoaXMuc3R5bGUuc3RyaWtldGhyb3VnaCxcbiAgICAgICAgICAgICAgICBvdmVybGluZTogdGhpcy5zdHlsZS5vdmVybGluZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgXG4gICAgICAgICAgICAgICAgdGV4dDogYCR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLnZlcnRpY2FsfWAsIFxuICAgICAgICAgICAgICAgIGJnOiB0aGlzLnN0eWxlLmJhY2tncm91bmQsIFxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLnN0eWxlLmJvcmRlckNvbG9yLCBcbiAgICAgICAgICAgICAgICBib2xkOiB0aGlzLnN0eWxlLmJvbGQgXG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICAgdGhpcy5nZXRDb250ZW50KCkuYWRkUm93KHsgdGV4dDogYCR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLmJvdHRvbUxlZnR9JHtib3hDaGFyc1t0aGlzLnN0YXR1c10uaG9yaXpvbnRhbC5yZXBlYXQoYWJzVmFsLndpZHRoIC0gMil9JHtib3hDaGFyc1t0aGlzLnN0YXR1c10uYm90dG9tUmlnaHR9YCwgYmc6IHRoaXMuc3R5bGUuYmFja2dyb3VuZCwgY29sb3I6IHRoaXMuc3R5bGUuYm9yZGVyQ29sb3IsIGJvbGQ6IHRoaXMuc3R5bGUuYm9sZCB9KVxuICAgICAgICB0aGlzLkNNLnJlZnJlc2goKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRUZXh0ID0gKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLnRleHQgPSB0ZXh0XG4gICAgICAgIHRoaXMudXBkYXRlKClcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U3R5bGUgPSAoc3R5bGU6IEJ1dHRvblN0eWxlKSA9PiB7XG4gICAgICAgIHRoaXMuc3R5bGUgPSBzdHlsZVxuICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgfVxuXG4gICAgcHVibGljIHNldEVuYWJsZWQgPSAoZW5hYmxlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkXG4gICAgICAgIHRoaXMudXBkYXRlKClcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvd2lkZ2V0cy9CdXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxtQkFBbUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFZLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxRCxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFnQmxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxPQUFPLE1BQU8sU0FBUSxPQUFPO0lBWS9CLFlBQ0ksRUFBVSxFQUNWLElBQVksRUFDWixLQUFhLEVBQ2IsTUFBYyxFQUNkLENBQVMsRUFDVCxDQUFTLEVBQ1QsS0FBa0IsRUFDbEIsT0FBbUIsRUFDbkIsU0FBcUIsRUFDckIsT0FBTyxHQUFHLElBQUksRUFDZCxPQUFPLEdBQUcsSUFBSSxFQUNkLFNBQVMsR0FBRyxLQUFLO1FBRWpCLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7UUF6QmxFLFNBQUksR0FBRyxNQUFNLENBQUE7UUFDYixZQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ2QsVUFBSyxHQUFnQjtZQUN6QixVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsT0FBTztZQUNwQixLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQTtRQUdPLFdBQU0sR0FBc0MsUUFBUSxDQUFBO1FBMkRyRCxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7WUFDbEMsSUFBSSxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUs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LE1BQU0sR0FBRyxTQUFTLENBQUE7b0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtpQkFDaEI7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNqQixDQUFDO0NBMERKO0FBRUQsZUFBZSxNQUFNLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWNrZ3JvdW5kQ29sb3JOYW1lLCBGb3JlZ3JvdW5kQ29sb3JOYW1lIH0gZnJvbSBcImNoYWxrL3NvdXJjZS92ZW5kb3IvYW5zaS1zdHlsZXMvaW5kZXguanNcIlxuaW1wb3J0IEluUGFnZVdpZGdldEJ1aWxkZXIgZnJvbSBcIi4uL0luUGFnZVdpZGdldEJ1aWxkZXIuanNcIlxuaW1wb3J0IHsgYm94Q2hhcnMsIEhFWCwgUkdCLCB0cnVuY2F0ZSB9IGZyb20gXCIuLi9VdGlscy5qc1wiXG5pbXBvcnQgQ29udHJvbCBmcm9tIFwiLi9Db250cm9sLmpzXCJcblxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25TdHlsZSB7XG4gICAgYmFja2dyb3VuZDogQmFja2dyb3VuZENvbG9yTmFtZSB8IEhFWCB8IFJHQiB8IFwiXCI7XG4gICAgYm9yZGVyQ29sb3I6IEZvcmVncm91bmRDb2xvck5hbWUgfCBIRVggfCBSR0IgfCBcIlwiO1xuICAgIGNvbG9yOiBGb3JlZ3JvdW5kQ29sb3JOYW1lIHwgSEVYIHwgUkdCIHwgXCJcIjtcbiAgICBib2xkPzogYm9vbGVhbjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGRpbT86IGJvb2xlYW47XG4gICAgdW5kZXJsaW5lPzogYm9vbGVhbjtcbiAgICBpbnZlcnNlPzogYm9vbGVhbjtcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xuICAgIG92ZXJsaW5lPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAY2xhc3MgQnV0dG9uXG4gKiBAZXh0ZW5kcyBDb250cm9sXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBjbGFzcyBpcyBhbiBvdmVybG9hZCBvZiBDb250cm9sIHRoYXQgaXMgdXNlZCB0byBjcmVhdGUgYSBidXR0b24uIFxuICogXG4gKiAhW0J1dHRvbl0oaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTQ5MDc5ODcvMjAyODY2ODI0LTA0NzUwM2ZjLTlhZjYtNDk5MC1hYTlhLTU3YTNkNjkxZjZiMC5naWYpXG4gKiBcbiAqIEVtaXRzIHRoZSBmb2xsb3dpbmcgZXZlbnRzOiBcbiAqIC0gXCJjbGlja1wiIHdoZW4gdGhlIHVzZXIgY29uZmlybVxuICogLSBcInJlbGVzZVwiIHdoZW4gdGhlIHVzZXIgY2FuY2VsXG4gKiBAcGFyYW0ge3N0cmluZ30gaWQgLSBUaGUgaWQgb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gVGhlIHRleHQgb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24gb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgcG9zaXRpb24gb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7QnV0dG9uU3R5bGV9IHN0eWxlIC0gVG8gc2V0IHRoZSBzdHlsZSBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtib29sZWFufSB2aXNpYmxlIC0gSWYgdGhlIGJ1dHRvbiBpcyB2aXNpYmxlLiBEZWZhdWx0IGlzIHRydWUgKG1ha2UgaXQgaGlkZSB1c2luZyBoaWRlKCkpLlxuICogQHBhcmFtIHtib29sZWFufSBlbmFibGVkIC0gSWYgdGhlIGJ1dHRvbiBpcyBlbmFibGVkLiBEZWZhdWx0IGlzIHRydWUgKG1ha2UgaXQgZGlzYWJsZWQgdXNpbmcgZGlzYWJsZSgpKS5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uQ2xpY2sgLSBUaGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uUmVsZWFzZSAtIFRoZSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gdGhlIGJ1dHRvbiBpcyByZWxlYXNlZC4gXG4gKiBcbiAqIEBleGFtcGxlIGBgYGpzXG4gKiBuZXcgQnV0dG9uKFwiYnRuUnVuXCIsIFwiUnVuIG1lIVwiLCAxMCwgMywgMjEsIDE4LCBcbiAqICAgICAgeyBcbiAqICAgICAgICAgIGNvbG9yOiBcIm1hZ2VudGFCcmlnaHRcIiwgXG4gKiAgICAgICAgICBib2xkOiB0cnVlLCBcbiAqICAgICAgICAgIGl0YWxpYzogdHJ1ZSxcbiAqICAgICAgICAgIGJvcmRlckNvbG9yOiBcImdyZWVuXCJcbiAqICAgICAgfSxcbiAqICAgICAgKCkgPT4ge1xuICogICAgICAgICAgR1VJLmxvZyhcIkJ1dHRvbiBjbGlja2VkIVwiKVxuICogICAgICB9KVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBCdXR0b24gZXh0ZW5kcyBDb250cm9sIHtcbiAgICBwcml2YXRlIHRleHQgPSBcIlRFWFRcIlxuICAgIHByaXZhdGUgZW5hYmxlZCA9IHRydWVcbiAgICBwcml2YXRlIHN0eWxlOiBCdXR0b25TdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogXCJiZ0JsYWNrXCIsXG4gICAgICAgIGJvcmRlckNvbG9yOiBcIndoaXRlXCIsXG4gICAgICAgIGNvbG9yOiBcIndoaXRlXCIsXG4gICAgICAgIGJvbGQ6IHRydWVcbiAgICB9XG4gICAgcHVibGljIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgICBwdWJsaWMgb25SZWxlYXNlOiAoKSA9PiB2b2lkXG4gICAgcHJpdmF0ZSBzdGF0dXM6IFwibm9ybWFsXCIgfCBcImhvdmVyZWRcIiB8IFwic2VsZWN0ZWRcIiA9IFwibm9ybWFsXCIgXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBpZDogc3RyaW5nLCBcbiAgICAgICAgdGV4dDogc3RyaW5nLCBcbiAgICAgICAgd2lkdGg6IG51bWJlcixcbiAgICAgICAgaGVpZ2h0OiBudW1iZXIsXG4gICAgICAgIHg6IG51bWJlcixcbiAgICAgICAgeTogbnVtYmVyLFxuICAgICAgICBzdHlsZTogQnV0dG9uU3R5bGUsXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHZvaWQsXG4gICAgICAgIG9uUmVsZWFzZTogKCkgPT4gdm9pZCxcbiAgICAgICAgdmlzaWJsZSA9IHRydWUsXG4gICAgICAgIGVuYWJsZWQgPSB0cnVlLFxuICAgICAgICBkcmFnZ2FibGUgPSBmYWxzZSkgXG4gICAge1xuICAgICAgICBzdXBlcihpZCwgdmlzaWJsZSwgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0sIG5ldyBJblBhZ2VXaWRnZXRCdWlsZGVyKCkpXG4gICAgICAgIHRoaXMudGV4dCA9IHRleHRcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZFxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSBvbkNsaWNrXG4gICAgICAgIHRoaXMub25SZWxlYXNlID0gb25SZWxlYXNlXG4gICAgICAgIHRoaXMuc3R5bGUgPSBzdHlsZVxuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IGRyYWdnYWJsZVxuXG4gICAgICAgIHRoaXMub24oXCJyZWxhdGl2ZU1vdXNlXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5uYW1lID09PSBcIk1PVVNFX0xFRlRfQlVUVE9OX1BSRVNTRURcIikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gXCJzZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uQ2xpY2spIHRoaXMub25DbGljay5jYWxsKHRoaXMpXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0KFwiY2xpY2tcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5uYW1lID09PSBcIk1PVVNFX0xFRlRfQlVUVE9OX1JFTEVBU0VEXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IFwiaG92ZXJlZFwiXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9uUmVsZWFzZSkgdGhpcy5vblJlbGVhc2UuY2FsbCh0aGlzKVxuICAgICAgICAgICAgICAgIHRoaXMuZW1pdChcInJlbGVhc2VcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5uYW1lID09PSBcIk1PVVNFX1JJR0hUX0JVVFRPTl9QUkVTU0VEXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoXCJyaWdodENsaWNrXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXZlbnQubmFtZSA9PT0gXCJNT1VTRV9SSUdIVF9CVVRUT05fUkVMRUFTRURcIikge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdChcInJpZ2h0UmVsZWFzZVwiKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50Lm5hbWUgPT09IFwiTU9VU0VfTU9USU9OXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IFwibm9ybWFsXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBcImhvdmVyZWRcIlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLm9uKFwiaG92ZXJPdXRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBcIm5vcm1hbFwiXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMudXBkYXRlKClcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBhYnNWYWwgPSB0aGlzLmFic29sdXRlVmFsdWVzXG4gICAgICAgIGxldCB0cnVuY2F0ZWRUZXh0ID0gdHJ1bmNhdGUodGhpcy50ZXh0LCBhYnNWYWwud2lkdGggLSAyLCBmYWxzZSlcbiAgICAgICAgXG4gICAgICAgIC8vIGFkZCBhIHdoaXRlIHNwYWNlIHRvIHRoZSBlbmQgb2YgdGhlIHRydW5jYXRlZCB0ZXh0IGlmIHRoZSBzdW0gb2YgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBhbmQgdGhlIHdpZHRoIG9mIHRoZSBidXR0b24gaXMgb2RkXG4gICAgICAgIGlmICgodHJ1bmNhdGVkVGV4dC5sZW5ndGggKyAoYWJzVmFsLndpZHRoIC0gMikpICUgMiA9PT0gMSkge1xuICAgICAgICAgICAgdHJ1bmNhdGVkVGV4dCArPSBcIiBcIlxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZXRDb250ZW50KCkuY2xlYXIoKVxuICAgICAgICB0aGlzLmdldENvbnRlbnQoKS5hZGRSb3coeyB0ZXh0OiBgJHtib3hDaGFyc1t0aGlzLnN0YXR1c10udG9wTGVmdH0ke2JveENoYXJzW3RoaXMuc3RhdHVzXS5ob3Jpem9udGFsLnJlcGVhdChhYnNWYWwud2lkdGggLSAyKX0ke2JveENoYXJzW3RoaXMuc3RhdHVzXS50b3BSaWdodH1gLCBiZzogdGhpcy5zdHlsZS5iYWNrZ3JvdW5kLCBjb2xvcjogdGhpcy5zdHlsZS5ib3JkZXJDb2xvciwgYm9sZDogdGhpcy5zdHlsZS5ib2xkIH0pXG4gICAgICAgIHRoaXMuZ2V0Q29udGVudCgpLmFkZFJvdyhcbiAgICAgICAgICAgIHsgXG4gICAgICAgICAgICAgICAgdGV4dDogYCR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLnZlcnRpY2FsfWAsIFxuICAgICAgICAgICAgICAgIGJnOiB0aGlzLnN0eWxlLmJhY2tncm91bmQsIFxuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLnN0eWxlLmJvcmRlckNvbG9yLCBcbiAgICAgICAgICAgICAgICBib2xkOiB0aGlzLnN0eWxlLmJvbGQgXG4gICAgICAgICAgICB9LCBcbiAgICAgICAgICAgIHsgXG4gICAgICAgICAgICAgICAgdGV4dDogYCR7XCIgXCIucmVwZWF0KCgoYWJzVmFsLndpZHRoIC0gMikgLSB0cnVuY2F0ZWRUZXh0Lmxlbmd0aCkgLyAyKX0ke3RydW5jYXRlZFRleHR9JHtcIiBcIi5yZXBlYXQoKChhYnNWYWwud2lkdGggLSAyKSAtIHRydW5jYXRlZFRleHQubGVuZ3RoKSAvIDIpfWAsXG4gICAgICAgICAgICAgICAgYmc6IHRoaXMuc3R5bGUuYmFja2dyb3VuZCwgXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoaXMuc3R5bGUuY29sb3IsIFxuICAgICAgICAgICAgICAgIGJvbGQ6IHRoaXMuc3R5bGUuYm9sZCxcbiAgICAgICAgICAgICAgICBpdGFsaWM6IHRoaXMuc3R5bGUuaXRhbGljLFxuICAgICAgICAgICAgICAgIGRpbTogdGhpcy5zdHlsZS5kaW0sXG4gICAgICAgICAgICAgICAgdW5kZXJsaW5lOiB0aGlzLnN0eWxlLnVuZGVybGluZSxcbiAgICAgICAgICAgICAgICBpbnZlcnNlOiB0aGlzLnN0eWxlLmludmVyc2UsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLnN0eWxlLmhpZGRlbixcbiAgICAgICAgICAgICAgICBzdHJpa2V0aHJvdWdoOiB0aGlzLnN0eWxlLnN0cmlrZXRocm91Z2gsXG4gICAgICAgICAgICAgICAgb3ZlcmxpbmU6IHRoaXMuc3R5bGUub3ZlcmxpbmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IFxuICAgICAgICAgICAgICAgIHRleHQ6IGAke2JveENoYXJzW3RoaXMuc3RhdHVzXS52ZXJ0aWNhbH1gLCBcbiAgICAgICAgICAgICAgICBiZzogdGhpcy5zdHlsZS5iYWNrZ3JvdW5kLCBcbiAgICAgICAgICAgICAgICBjb2xvcjogdGhpcy5zdHlsZS5ib3JkZXJDb2xvciwgXG4gICAgICAgICAgICAgICAgYm9sZDogdGhpcy5zdHlsZS5ib2xkIFxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIHRoaXMuZ2V0Q29udGVudCgpLmFkZFJvdyh7IHRleHQ6IGAke2JveENoYXJzW3RoaXMuc3RhdHVzXS5ib3R0b21MZWZ0fSR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLmhvcml6b250YWwucmVwZWF0KGFic1ZhbC53aWR0aCAtIDIpfSR7Ym94Q2hhcnNbdGhpcy5zdGF0dXNdLmJvdHRvbVJpZ2h0fWAsIGJnOiB0aGlzLnN0eWxlLmJhY2tncm91bmQsIGNvbG9yOiB0aGlzLnN0eWxlLmJvcmRlckNvbG9yLCBib2xkOiB0aGlzLnN0eWxlLmJvbGQgfSlcbiAgICAgICAgdGhpcy5DTS5yZWZyZXNoKClcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0VGV4dCA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy50ZXh0ID0gdGV4dFxuICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgfVxuXG4gICAgcHVibGljIHNldFN0eWxlID0gKHN0eWxlOiBCdXR0b25TdHlsZSkgPT4ge1xuICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGVcbiAgICAgICAgdGhpcy51cGRhdGUoKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRFbmFibGVkID0gKGVuYWJsZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZFxuICAgICAgICB0aGlzLnVwZGF0ZSgpXG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b24iXX0=
import { BackgroundColorName, ForegroundColorName } from "chalk";
import { HEX, RGB } from "../Utils.js";
import Control from "./Control.js";

@@ -333,6 +334,6 @@ declare const drawingChars: {

*
* @param {BackgroundColorName} background The background color of the progress bar
* @param {ForegroundColorName} borderColor The color of the border
* @param {ForegroundColorName} [textColor] The color of the text
* @param {ForegroundColorName} color The color of the progress bar
* @param {BackgroundColorName | HEX | RGB} background The background color of the progress bar
* @param {ForegroundColorName | HEX | RGB} borderColor The color of the border
* @param {ForegroundColorName | HEX | RGB} [textColor] The color of the text
* @param {ForegroundColorName | HEX | RGB} color The color of the progress bar
* @param {keyof typeof drawingChars} [theme] The theme to use for the progress bar

@@ -357,6 +358,6 @@ * @param {boolean} [boxed] Whether or not to draw a box around the progress bar

export interface ProgressStyle {
background: BackgroundColorName;
borderColor: ForegroundColorName;
textColor?: ForegroundColorName;
color: ForegroundColorName;
background: BackgroundColorName | HEX | RGB;
borderColor: ForegroundColorName | HEX | RGB;
textColor?: ForegroundColorName | HEX | RGB;
color: ForegroundColorName | HEX | RGB;
theme?: keyof typeof drawingChars;

@@ -363,0 +364,0 @@ boxed?: boolean;

{
"name": "console-gui-tools",
"version": "1.3.2",
"version": "1.4.0",
"description": "A simple library to draw option menu, text popup or other widgets and layout on a Node.js console.",

@@ -5,0 +5,0 @@ "main": "dist/ConsoleGui.js",

@@ -36,3 +36,5 @@ # console-gui-tools

## Options
<details>
<summary>OPTIONS</summary>
The library has a few options that can be set in the constructor.

@@ -74,6 +76,10 @@

Example of usage:
</details>
<details>
<summary>EXAMPLE OF USAGE:</summary>
```js
// Import module with ES6 syntax
import { ConsoleManager, OptionPopup, InputPopup, PageBuilder, ButtonPopup, ConfirmPopup } from '../src/ConsoleGui.js'
import { ConsoleManager, OptionPopup, InputPopup, PageBuilder, ButtonPopup, ConfirmPopup } from 'console-gui-tools'
const GUI = new ConsoleManager({

@@ -192,2 +198,4 @@ title: 'TCP Simulator', // Title of the console

</details>
## How to draw the application page?

@@ -212,3 +220,18 @@

### colors:
<details>
<summary>COLORS AND FORMATTERS</summary>
### HEX color (since 1.4.0)
```js
{ text: ` 'm'`, color: '#FF0000' }
```
### RGB color (since 1.4.0)
```js
{ text: ` 'm'`, color: 'rgb(255,0,0)' }
```
### Standard Chalk colors:
- black

@@ -231,3 +254,3 @@ - red

### Background colors ('bg')
### Standard Chalk Background colors ('bg')
- bgBlack

@@ -266,2 +289,4 @@ - bgRed

</details>
And so, we can add the PageBuilder to the first page

@@ -268,0 +293,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc