Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@uiw/color-convert

Package Overview
Dependencies
Maintainers
1
Versions
82
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uiw/color-convert - npm Package Compare versions

Comparing version 0.0.7 to 0.0.8

lib/cjs/getContrastingColor.d.ts

3

lib/cjs/index.d.ts
export * from './utils';
export * from './getContrastingColor';
export declare type ObjectColor = RgbColor | HslColor | HsvColor | RgbaColor | HslaColor | HsvaColor;

@@ -10,2 +11,4 @@ export declare type ColorResult = {

hsva: HsvaColor;
hex: string;
hexa: string;
};

@@ -12,0 +15,0 @@ export interface HsvColor {

@@ -55,2 +55,16 @@ "use strict";

});
var _getContrastingColor = require("./getContrastingColor");
Object.keys(_getContrastingColor).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _getContrastingColor[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _getContrastingColor[key];
}
});
});
var RGB_MAX = 255;

@@ -449,5 +463,8 @@ var HUE_MAX = 360;

var hsva;
var hex;
var hexa;
if (typeof str === 'string' && (0, _utils.validHex)(str)) {
hsva = hexToHsva(str);
hex = str;
} else if (typeof str !== 'string') {

@@ -461,2 +478,4 @@ hsva = str;

rgba = hsvaToRgba(hsva);
hexa = rgbaToHexa(rgba);
hex = hsvaToHex(hsva);
hsl = hslaToHsl(hsla);

@@ -472,3 +491,5 @@ rgb = rgbaToRgb(rgba);

hsla: hsla,
hsva: hsva
hsva: hsva,
hex: hex,
hexa: hexa
};

@@ -478,2 +499,2 @@ };

exports.color = color;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJSR0JfTUFYIiwiSFVFX01BWCIsIlNWX01BWCIsInJnYmFUb0hzdmEiLCJyIiwiZyIsImIiLCJhIiwibWF4IiwiTWF0aCIsImRlbHRhIiwibWluIiwiaGgiLCJoIiwicyIsInYiLCJoc3ZhVG9Ic2xTdHJpbmciLCJoc3ZhIiwiaHN2YVRvSHNsYSIsImwiLCJoc3ZhVG9Ic3ZTdHJpbmciLCJoc3ZhVG9Ic3ZhU3RyaW5nIiwiaHN2YVRvSHNsYVN0cmluZyIsImhzbGFTdHJpbmdUb0hzdmEiLCJoc2xTdHJpbmciLCJtYXRjaGVyIiwibWF0Y2giLCJleGVjIiwiaHNsYVRvSHN2YSIsInBhcnNlSHVlIiwiTnVtYmVyIiwidW5kZWZpbmVkIiwiaHNsU3RyaW5nVG9Ic3ZhIiwiaHN2YVN0cmluZ1RvSHN2YSIsImhzdlN0cmluZyIsImFuZ2xlVW5pdHMiLCJncmFkIiwidHVybiIsInJhZCIsIlBJIiwidmFsdWUiLCJ1bml0IiwiaHN2U3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZ1RvSHN2YSIsInJnYmFTdHJpbmciLCJyZ2JTdHJpbmdUb0hzdmEiLCJyZ2JhVG9IZXgiLCJiaW4iLCJBcnJheSIsImxlbmd0aCIsImpvaW4iLCJ0b1N0cmluZyIsInJnYmFUb0hleGEiLCJhbHBoYSIsInNsaWNlIiwiaGV4VG9Ic3ZhIiwiaGV4IiwiaGV4VG9SZ2JhIiwiaHRlbXAiLCJyZXBsYWNlIiwidGVzdCIsImNoYXJBdCIsInJlZyIsIlJlZ0V4cCIsIm1hcCIsInBhcnNlSW50IiwiaHN2YVRvUmdiYSIsIl9oIiwiX3MiLCJfdiIsImhpIiwiZmxvb3IiLCJmIiwiX3AiLCJfcSIsIl90IiwicmdiYSIsInJvdW5kIiwiaHN2YVRvUmdiU3RyaW5nIiwiaHN2YVRvUmdiYVN0cmluZyIsInJnYmFUb1JnYiIsImhzbGFUb0hzbCIsImhzdmFUb0hleCIsImhzdmFUb0hzdiIsImNvbG9yIiwic3RyIiwicmdiIiwiaHNsIiwiaHN2IiwiaHNs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SGV4IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBSR0JfTUFYID0gMjU1O1xuY29uc3QgSFVFX01BWCA9IDM2MDtcbmNvbnN0IFNWX01BWCA9IDEwMDtcblxuZXhwb3J0IHR5cGUgT2JqZWN0Q29sb3IgPSBSZ2JDb2xvciB8IEhzbENvbG9yIHwgSHN2Q29sb3IgfCBSZ2JhQ29sb3IgfCBIc2xhQ29sb3IgfCBIc3ZhQ29sb3I7XG5leHBvcnQgdHlwZSBDb2xvclJlc3VsdCA9IHtcbiAgcmdiOiBSZ2JDb2xvcjtcbiAgaHNsOiBIc2xDb2xvcjtcbiAgaHN2OiBIc3ZDb2xvcjtcbiAgcmdiYTogUmdiYUNvbG9yO1xuICBoc2xhOiBIc2xhQ29sb3I7XG4gIGhzdmE6IEhzdmFDb2xvcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHN2Q29sb3Ige1xuICBoOiBudW1iZXI7XG4gIHM6IG51bWJlcjtcbiAgdjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhzdmFDb2xvciBleHRlbmRzIEhzdkNvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJnYkNvbG9yIHtcbiAgcjogbnVtYmVyO1xuICBnOiBudW1iZXI7XG4gIGI6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmdiYUNvbG9yIGV4dGVuZHMgUmdiQ29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5cbi8qKlxuICogYGBganNcbiAqIHJnYmFUb0hzdmEoeyByOiAyNTUsIGc6IDI1NSwgYjogMjU1LCBhOiAxIH0pIC8vPT4geyBoOiAwLCBzOiAwLCB2OiAxMDAsIGE6IDEgfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCByZ2JhVG9Ic3ZhID0gKHsgciwgZywgYiwgYSB9OiBSZ2JhQ29sb3IpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgY29uc3QgZGVsdGEgPSBtYXggLSBNYXRoLm1pbihyLCBnLCBiKTtcblxuICAvLyBwcmV0dGllci1pZ25vcmVcbiAgY29uc3QgaGggPSBkZWx0YVxuICAgID8gbWF4ID09PSByXG4gICAgICA/IChnIC0gYikgLyBkZWx0YVxuICAgICAgOiBtYXggPT09IGdcbiAgICAgICAgPyAyICsgKGIgLSByKSAvIGRlbHRhXG4gICAgICAgIDogNCArIChyIC0gZykgLyBkZWx0YVxuICAgIDogMDtcblxuICByZXR1cm4ge1xuICAgIGg6IDYwICogKGhoIDwgMCA/IGhoICsgNiA6IGhoKSxcbiAgICBzOiBtYXggPyAoZGVsdGEgLyBtYXgpICogU1ZfTUFYIDogMCxcbiAgICB2OiAobWF4IC8gUkdCX01BWCkgKiBTVl9NQVgsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICByZXR1cm4gYGhzbCgke2h9LCAke3N9JSwgJHtsfSUpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3ZTdHJpbmcgPSAoeyBoLCBzLCB2IH06IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBgaHN2KCR7aH0sICR7c30lLCAke3Z9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdmFTdHJpbmcgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBgaHN2YSgke2h9LCAke3N9JSwgJHt2fSUsICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xhU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgaCwgcywgbCwgYSB9ID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgcmV0dXJuIGBoc2xhKCR7aH0sICR7c30lLCAke2x9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbGFTdHJpbmdUb0hzdmEgPSAoaHNsU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvaHNsYT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoZGVnfHJhZHxncmFkfHR1cm4pP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKGhzbFN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiBoc2xhVG9Ic3ZhKHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgbDogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyAxMDAgOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsU3RyaW5nVG9Ic3ZhID0gaHNsYVN0cmluZ1RvSHN2YTtcblxuZXhwb3J0IGNvbnN0IGhzbGFUb0hzdmEgPSAoeyBoLCBzLCBsLCBhIH06IEhzbGFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIHMgKj0gKGwgPCA1MCA/IGwgOiBTVl9NQVggLSBsKSAvIFNWX01BWDtcblxuICByZXR1cm4ge1xuICAgIGg6IGgsXG4gICAgczogcyA+IDAgPyAoKDIgKiBzKSAvIChsICsgcykpICogU1ZfTUFYIDogMCxcbiAgICB2OiBsICsgcyxcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIc2xDb2xvciB7XG4gIGg6IG51bWJlcjtcbiAgczogbnVtYmVyO1xuICBsOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhzbGFDb2xvciBleHRlbmRzIEhzbENvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IEhzbGFDb2xvciA9PiB7XG4gIGNvbnN0IGhoID0gKCgyMDAgLSBzKSAqIHYpIC8gU1ZfTUFYO1xuXG4gIHJldHVybiB7XG4gICAgaCxcbiAgICBzOiBoaCA+IDAgJiYgaGggPCAyMDAgPyAoKHMgKiB2KSAvIFNWX01BWCAvIChoaCA8PSBTVl9NQVggPyBoaCA6IDIwMCAtIGhoKSkgKiBTVl9NQVggOiAwLFxuICAgIGw6IGhoIC8gMixcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFTdHJpbmdUb0hzdmEgPSAoaHN2U3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvaHN2YT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoZGVnfHJhZHxncmFkfHR1cm4pP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKGhzdlN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiB7XG4gICAgaDogcGFyc2VIdWUobWF0Y2hbMV0sIG1hdGNoWzJdKSxcbiAgICBzOiBOdW1iZXIobWF0Y2hbM10pLFxuICAgIHY6IE51bWJlcihtYXRjaFs0XSksXG4gICAgYTogbWF0Y2hbNV0gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gU1ZfTUFYIDogMSksXG4gIH07XG59O1xuXG4vKipcbiAqIFZhbGlkIENTUyA8YW5nbGU+IHVuaXRzLlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2FuZ2xlXG4gKi9cbmNvbnN0IGFuZ2xlVW5pdHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gIGdyYWQ6IEhVRV9NQVggLyA0MDAsXG4gIHR1cm46IEhVRV9NQVgsXG4gIHJhZDogSFVFX01BWCAvIChNYXRoLlBJICogMiksXG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VIdWUgPSAodmFsdWU6IHN0cmluZywgdW5pdCA9ICdkZWcnKTogbnVtYmVyID0+IHtcbiAgcmV0dXJuIE51bWJlcih2YWx1ZSkgKiAoYW5nbGVVbml0c1t1bml0XSB8fCAxKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZTdHJpbmdUb0hzdmEgPSBoc3ZhU3RyaW5nVG9Ic3ZhO1xuZXhwb3J0IGNvbnN0IHJnYmFTdHJpbmdUb0hzdmEgPSAocmdiYVN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL3JnYmE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKCUpP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspKCUpP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspKCUpPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhyZ2JhU3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIHJnYmFUb0hzdmEoe1xuICAgIHI6IE51bWJlcihtYXRjaFsxXSkgLyAobWF0Y2hbMl0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgZzogTnVtYmVyKG1hdGNoWzNdKSAvIChtYXRjaFs0XSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBiOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGE6IG1hdGNoWzddID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzddKSAvIChtYXRjaFs4XSA/IFNWX01BWCA6IDEpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JTdHJpbmdUb0hzdmEgPSByZ2JhU3RyaW5nVG9Ic3ZhO1xuXG4vKiogQ29udmVydHMgYW4gUkdCQSBjb2xvciBwbHVzIGFscGhhIHRyYW5zcGFyZW5jeSB0byBoZXggKi9cbmV4cG9ydCBjb25zdCByZ2JhVG9IZXggPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGxldCBiaW4gPSAociA8PCAxNikgfCAoZyA8PCA4KSB8IGI7XG4gIHJldHVybiBgIyR7KChoKSA9PiBuZXcgQXJyYXkoNyAtIGgubGVuZ3RoKS5qb2luKCcwJykgKyBoKShiaW4udG9TdHJpbmcoMTYpKX1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb0hleGEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFscGhhID0gYSAmJiAoKGEgKiAyNTUpIHwgKDEgPDwgOCkpLnRvU3RyaW5nKDE2KS5zbGljZSgxKTtcbiAgcmV0dXJuIGAke3JnYmFUb0hleCh7IHIsIGcsIGIsIGEgfSl9JHthbHBoYSA/IGFscGhhIDogJyd9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBoZXhUb0hzdmEgPSAoaGV4OiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4gcmdiYVRvSHN2YShoZXhUb1JnYmEoaGV4KSk7XG5leHBvcnQgY29uc3QgaGV4VG9SZ2JhID0gKGhleDogc3RyaW5nKTogUmdiYUNvbG9yID0+IHtcbiAgY29uc3QgaHRlbXAgPSBoZXgucmVwbGFjZSgnIycsICcnKTtcbiAgaWYgKC9eIy8udGVzdChoZXgpICYmIGh0ZW1wLmxlbmd0aCA9PT0gMykge1xuICAgIGhleCA9IGAjJHtodGVtcC5jaGFyQXQoMCl9JHtodGVtcC5jaGFyQXQoMCl9JHtodGVtcC5jaGFyQXQoMSl9JHtodGVtcC5jaGFyQXQoMSl9JHtodGVtcC5jaGFyQXQoMil9JHtodGVtcC5jaGFyQXQoMil9YDtcbiAgfVxuICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKGBbQS1aYS16MC05XXske2hleC5sZW5ndGggPCA2ID8gJzEnIDogJzInfX1gLCAnZycpO1xuICBjb25zdCBbciwgZywgYiwgYV0gPSBoZXgubWF0Y2gocmVnKSEubWFwKCh2KSA9PiBwYXJzZUludCh2LCAxNikpO1xuICByZXR1cm4ge1xuICAgIHIsXG4gICAgZyxcbiAgICBiLFxuICAgIGE6IGEgPyBhIC8gUkdCX01BWCA6IDEsXG4gIH07XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIEhTVkEgdG8gUkdCQS4gQmFzZWQgb24gZm9ybXVsYSBmcm9tIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9hbmRfSFNWXG4gKiBAcGFyYW0gY29sb3IgSFNWQSBjb2xvciBhcyBhbiBhcnJheSBbMC0zNjAsIDAtMSwgMC0xLCAwLTFdXG4gKi9cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JhID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBSZ2JhQ29sb3IgPT4ge1xuICBsZXQgX2ggPSBoIC8gNjAsXG4gICAgX3MgPSBzIC8gU1ZfTUFYLFxuICAgIF92ID0gdiAvIFNWX01BWCxcbiAgICBoaSA9IE1hdGguZmxvb3IoX2gpICUgNjtcblxuICBsZXQgZiA9IF9oIC0gTWF0aC5mbG9vcihfaCksXG4gICAgX3AgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zKSxcbiAgICBfcSA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MgKiBmKSxcbiAgICBfdCA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MgKiAoMSAtIGYpKTtcbiAgX3YgKj0gUkdCX01BWDtcbiAgY29uc3QgcmdiYSA9IHt9IGFzIFJnYmFDb2xvcjtcbiAgc3dpdGNoIChoaSkge1xuICAgIGNhc2UgMDpcbiAgICAgIHJnYmEuciA9IF92O1xuICAgICAgcmdiYS5nID0gX3Q7XG4gICAgICByZ2JhLmIgPSBfcDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIHJnYmEuciA9IF9xO1xuICAgICAgcmdiYS5nID0gX3Y7XG4gICAgICByZ2JhLmIgPSBfcDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHJnYmEuciA9IF9wO1xuICAgICAgcmdiYS5nID0gX3Y7XG4gICAgICByZ2JhLmIgPSBfdDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHJnYmEuciA9IF9wO1xuICAgICAgcmdiYS5nID0gX3E7XG4gICAgICByZ2JhLmIgPSBfdjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIHJnYmEuciA9IF90O1xuICAgICAgcmdiYS5nID0gX3A7XG4gICAgICByZ2JhLmIgPSBfdjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIHJnYmEuciA9IF92O1xuICAgICAgcmdiYS5nID0gX3A7XG4gICAgICByZ2JhLmIgPSBfcTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJnYmEuciA9IE1hdGgucm91bmQocmdiYS5yKTtcbiAgcmdiYS5nID0gTWF0aC5yb3VuZChyZ2JhLmcpO1xuICByZ2JhLmIgPSBNYXRoLnJvdW5kKHJnYmEuYik7XG4gIHJldHVybiB7IC4uLnJnYmEsIGEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyByLCBnLCBiIH0gPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICByZXR1cm4gYHJnYigke3J9LCAke2d9LCAke2J9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiYVN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHIsIGcsIGIsIGEgfSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiYVRvUmdiID0gKHsgciwgZywgYiB9OiBSZ2JhQ29sb3IpOiBSZ2JDb2xvciA9PiAoeyByLCBnLCBiIH0pO1xuZXhwb3J0IGNvbnN0IGhzbGFUb0hzbCA9ICh7IGgsIHMsIGwgfTogSHNsYUNvbG9yKTogSHNsQ29sb3IgPT4gKHsgaCwgcywgbCB9KTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9IZXggPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHJnYmFUb0hleChoc3ZhVG9SZ2JhKGhzdmEpKTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3YgPSAoeyBoLCBzLCB2IH06IEhzdmFDb2xvcik6IEhzdkNvbG9yID0+ICh7IGgsIHMsIHYgfSk7XG5cbmV4cG9ydCBjb25zdCBjb2xvciA9IChzdHI6IHN0cmluZyB8IEhzdmFDb2xvcik6IENvbG9yUmVzdWx0ID0+IHtcbiAgbGV0IHJnYiE6IFJnYkNvbG9yO1xuICBsZXQgaHNsITogSHNsQ29sb3I7XG4gIGxldCBoc3YhOiBIc3ZDb2xvcjtcbiAgbGV0IHJnYmEhOiBSZ2JhQ29sb3I7XG4gIGxldCBoc2xhITogSHNsYUNvbG9yO1xuICBsZXQgaHN2YSE6IEhzdmFDb2xvcjtcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHZhbGlkSGV4KHN0cikpIHtcbiAgICBoc3ZhID0gaGV4VG9Ic3ZhKHN0cik7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICBoc3ZhID0gc3RyO1xuICB9XG4gIGlmIChoc3ZhKSB7XG4gICAgaHN2ID0gaHN2YVRvSHN2KGhzdmEpO1xuICAgIGhzbGEgPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICAgIHJnYmEgPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICAgIGhzbCA9IGhzbGFUb0hzbChoc2xhKTtcbiAgICByZ2IgPSByZ2JhVG9SZ2IocmdiYSk7XG4gIH1cbiAgcmV0dXJuIHsgcmdiLCBoc2wsIGhzdiwgcmdiYSwgaHNsYSwgaHN2YSB9O1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJSR0JfTUFYIiwiSFVFX01BWCIsIlNWX01BWCIsInJnYmFUb0hzdmEiLCJyIiwiZyIsImIiLCJhIiwibWF4IiwiTWF0aCIsImRlbHRhIiwibWluIiwiaGgiLCJoIiwicyIsInYiLCJoc3ZhVG9Ic2xTdHJpbmciLCJoc3ZhIiwiaHN2YVRvSHNsYSIsImwiLCJoc3ZhVG9Ic3ZTdHJpbmciLCJoc3ZhVG9Ic3ZhU3RyaW5nIiwiaHN2YVRvSHNsYVN0cmluZyIsImhzbGFTdHJpbmdUb0hzdmEiLCJoc2xTdHJpbmciLCJtYXRjaGVyIiwibWF0Y2giLCJleGVjIiwiaHNsYVRvSHN2YSIsInBhcnNlSHVlIiwiTnVtYmVyIiwidW5kZWZpbmVkIiwiaHNsU3RyaW5nVG9Ic3ZhIiwiaHN2YVN0cmluZ1RvSHN2YSIsImhzdlN0cmluZyIsImFuZ2xlVW5pdHMiLCJncmFkIiwidHVybiIsInJhZCIsIlBJIiwidmFsdWUiLCJ1bml0IiwiaHN2U3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZ1RvSHN2YSIsInJnYmFTdHJpbmciLCJyZ2JTdHJpbmdUb0hzdmEiLCJyZ2JhVG9IZXgiLCJiaW4iLCJBcnJheSIsImxlbmd0aCIsImpvaW4iLCJ0b1N0cmluZyIsInJnYmFUb0hleGEiLCJhbHBoYSIsInNsaWNlIiwiaGV4VG9Ic3ZhIiwiaGV4IiwiaGV4VG9SZ2JhIiwiaHRlbXAiLCJyZXBsYWNlIiwidGVzdCIsImNoYXJBdCIsInJlZyIsIlJlZ0V4cCIsIm1hcCIsInBhcnNlSW50IiwiaHN2YVRvUmdiYSIsIl9oIiwiX3MiLCJfdiIsImhpIiwiZmxvb3IiLCJmIiwiX3AiLCJfcSIsIl90IiwicmdiYSIsInJvdW5kIiwiaHN2YVRvUmdiU3RyaW5nIiwiaHN2YVRvUmdiYVN0cmluZyIsInJnYmFUb1JnYiIsImhzbGFUb0hzbCIsImhzdmFUb0hleCIsImhzdmFUb0hzdiIsImNvbG9yIiwic3RyIiwicmdiIiwiaHNsIiwiaHN2IiwiaHNs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TztBQUFFVSxJQUFBQSxHQUFHLEVBQUhBLEdBQUY7QUFBT0MsSUFBQUEsR0FBRyxFQUFIQSxHQUFQO0FBQVlDLElBQUFBLEdBQUcsRUFBSEEsR0FBWjtBQUFpQlosSUFBQUEsSUFBSSxFQUFKQSxJQUFqQjtBQUF1QmEsSUFBQUEsSUFBSSxFQUFKQSxJQUF2QjtBQUE2QnhFLElBQUFBLElBQUksRUFBSkEsSUFBN0I7QUFBbUN1QyxJQUFBQSxHQUFHLEVBQUhBLEdBQW5DO0FBQXdDa0MsSUFBQUEsSUFBSSxFQUFKQTtBQUF4QyxHQUFQO0FBQ0QsQ0F6Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2YWxpZEhleCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0Q29udHJhc3RpbmdDb2xvcic7XG5cbmNvbnN0IFJHQl9NQVggPSAyNTU7XG5jb25zdCBIVUVfTUFYID0gMzYwO1xuY29uc3QgU1ZfTUFYID0gMTAwO1xuXG5leHBvcnQgdHlwZSBPYmplY3RDb2xvciA9IFJnYkNvbG9yIHwgSHNsQ29sb3IgfCBIc3ZDb2xvciB8IFJnYmFDb2xvciB8IEhzbGFDb2xvciB8IEhzdmFDb2xvcjtcbmV4cG9ydCB0eXBlIENvbG9yUmVzdWx0ID0ge1xuICByZ2I6IFJnYkNvbG9yO1xuICBoc2w6IEhzbENvbG9yO1xuICBoc3Y6IEhzdkNvbG9yO1xuICByZ2JhOiBSZ2JhQ29sb3I7XG4gIGhzbGE6IEhzbGFDb2xvcjtcbiAgaHN2YTogSHN2YUNvbG9yO1xuICBoZXg6IHN0cmluZztcbiAgaGV4YTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIc3ZDb2xvciB7XG4gIGg6IG51bWJlcjtcbiAgczogbnVtYmVyO1xuICB2OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHN2YUNvbG9yIGV4dGVuZHMgSHN2Q29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmdiQ29sb3Ige1xuICByOiBudW1iZXI7XG4gIGc6IG51bWJlcjtcbiAgYjogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZ2JhQ29sb3IgZXh0ZW5kcyBSZ2JDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBgYGBqc1xuICogcmdiYVRvSHN2YSh7IHI6IDI1NSwgZzogMjU1LCBiOiAyNTUsIGE6IDEgfSkgLy89PiB7IGg6IDAsIHM6IDAsIHY6IDEwMCwgYTogMSB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHJnYmFUb0hzdmEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBkZWx0YSA9IG1heCAtIE1hdGgubWluKHIsIGcsIGIpO1xuXG4gIC8vIHByZXR0aWVyLWlnbm9yZVxuICBjb25zdCBoaCA9IGRlbHRhXG4gICAgPyBtYXggPT09IHJcbiAgICAgID8gKGcgLSBiKSAvIGRlbHRhXG4gICAgICA6IG1heCA9PT0gZ1xuICAgICAgICA/IDIgKyAoYiAtIHIpIC8gZGVsdGFcbiAgICAgICAgOiA0ICsgKHIgLSBnKSAvIGRlbHRhXG4gICAgOiAwO1xuXG4gIHJldHVybiB7XG4gICAgaDogNjAgKiAoaGggPCAwID8gaGggKyA2IDogaGgpLFxuICAgIHM6IG1heCA/IChkZWx0YSAvIG1heCkgKiBTVl9NQVggOiAwLFxuICAgIHY6IChtYXggLyBSR0JfTUFYKSAqIFNWX01BWCxcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbFN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGgsIHMsIGwgfSA9IGhzdmFUb0hzbGEoaHN2YSk7XG4gIHJldHVybiBgaHNsKCR7aH0sICR7c30lLCAke2x9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdlN0cmluZyA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3YoJHtofSwgJHtzfSUsICR7dn0lKWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHN2YVN0cmluZyA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3ZhKCR7aH0sICR7c30lLCAke3Z9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsLCBhIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICByZXR1cm4gYGhzbGEoJHtofSwgJHtzfSUsICR7bH0lLCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsYVN0cmluZ1RvSHN2YSA9IChoc2xTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9oc2xhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKShkZWd8cmFkfGdyYWR8dHVybik/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMoaHNsU3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIGhzbGFUb0hzdmEoe1xuICAgIGg6IHBhcnNlSHVlKG1hdGNoWzFdLCBtYXRjaFsyXSksXG4gICAgczogTnVtYmVyKG1hdGNoWzNdKSxcbiAgICBsOiBOdW1iZXIobWF0Y2hbNF0pLFxuICAgIGE6IG1hdGNoWzVdID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IDEwMCA6IDEpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xTdHJpbmdUb0hzdmEgPSBoc2xhU3RyaW5nVG9Ic3ZhO1xuXG5leHBvcnQgY29uc3QgaHNsYVRvSHN2YSA9ICh7IGgsIHMsIGwsIGEgfTogSHNsYUNvbG9yKTogSHN2YUNvbG9yID0+IHtcbiAgcyAqPSAobCA8IDUwID8gbCA6IFNWX01BWCAtIGwpIC8gU1ZfTUFYO1xuXG4gIHJldHVybiB7XG4gICAgaDogaCxcbiAgICBzOiBzID4gMCA/ICgoMiAqIHMpIC8gKGwgKyBzKSkgKiBTVl9NQVggOiAwLFxuICAgIHY6IGwgKyBzLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhzbENvbG9yIHtcbiAgaDogbnVtYmVyO1xuICBzOiBudW1iZXI7XG4gIGw6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSHNsYUNvbG9yIGV4dGVuZHMgSHNsQ29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5leHBvcnQgY29uc3QgaHN2YVRvSHNsYSA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogSHNsYUNvbG9yID0+IHtcbiAgY29uc3QgaGggPSAoKDIwMCAtIHMpICogdikgLyBTVl9NQVg7XG5cbiAgcmV0dXJuIHtcbiAgICBoLFxuICAgIHM6IGhoID4gMCAmJiBoaCA8IDIwMCA/ICgocyAqIHYpIC8gU1ZfTUFYIC8gKGhoIDw9IFNWX01BWCA/IGhoIDogMjAwIC0gaGgpKSAqIFNWX01BWCA6IDAsXG4gICAgbDogaGggLyAyLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVN0cmluZ1RvSHN2YSA9IChoc3ZTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9oc3ZhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKShkZWd8cmFkfGdyYWR8dHVybik/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMoaHN2U3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgdjogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyBTVl9NQVggOiAxKSxcbiAgfTtcbn07XG5cbi8qKlxuICogVmFsaWQgQ1NTIDxhbmdsZT4gdW5pdHMuXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvYW5nbGVcbiAqL1xuY29uc3QgYW5nbGVVbml0czogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgZ3JhZDogSFVFX01BWCAvIDQwMCxcbiAgdHVybjogSFVFX01BWCxcbiAgcmFkOiBIVUVfTUFYIC8gKE1hdGguUEkgKiAyKSxcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUh1ZSA9ICh2YWx1ZTogc3RyaW5nLCB1bml0ID0gJ2RlZycpOiBudW1iZXIgPT4ge1xuICByZXR1cm4gTnVtYmVyKHZhbHVlKSAqIChhbmdsZVVuaXRzW3VuaXRdIHx8IDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdlN0cmluZ1RvSHN2YSA9IGhzdmFTdHJpbmdUb0hzdmE7XG5leHBvcnQgY29uc3QgcmdiYVN0cmluZ1RvSHN2YSA9IChyZ2JhU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvcmdiYT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoJSk/WyxcXHNdKygtP1xcZCpcXC4/XFxkKykoJSk/WyxcXHNdKygtP1xcZCpcXC4/XFxkKykoJSk/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKHJnYmFTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gcmdiYVRvSHN2YSh7XG4gICAgcjogTnVtYmVyKG1hdGNoWzFdKSAvIChtYXRjaFsyXSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBnOiBOdW1iZXIobWF0Y2hbM10pIC8gKG1hdGNoWzRdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGI6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgYTogbWF0Y2hbN10gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbN10pIC8gKG1hdGNoWzhdID8gU1ZfTUFYIDogMSksXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYlN0cmluZ1RvSHN2YSA9IHJnYmFTdHJpbmdUb0hzdmE7XG5cbi8qKiBDb252ZXJ0cyBhbiBSR0JBIGNvbG9yIHBsdXMgYWxwaGEgdHJhbnNwYXJlbmN5IHRvIGhleCAqL1xuZXhwb3J0IGNvbnN0IHJnYmFUb0hleCA9ICh7IHIsIGcsIGIgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgbGV0IGJpbiA9IChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYjtcbiAgcmV0dXJuIGAjJHsoKGgpID0+IG5ldyBBcnJheSg3IC0gaC5sZW5ndGgpLmpvaW4oJzAnKSArIGgpKGJpbi50b1N0cmluZygxNikpfWA7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiYVRvSGV4YSA9ICh7IHIsIGcsIGIsIGEgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYWxwaGEgPSBhICYmICgoYSAqIDI1NSkgfCAoMSA8PCA4KSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpO1xuICByZXR1cm4gYCR7cmdiYVRvSGV4KHsgciwgZywgYiwgYSB9KX0ke2FscGhhID8gYWxwaGEgOiAnJ31gO1xufTtcblxuZXhwb3J0IGNvbnN0IGhleFRvSHN2YSA9IChoZXg6IHN0cmluZyk6IEhzdmFDb2xvciA9PiByZ2JhVG9Ic3ZhKGhleFRvUmdiYShoZXgpKTtcbmV4cG9ydCBjb25zdCBoZXhUb1JnYmEgPSAoaGV4OiBzdHJpbmcpOiBSZ2JhQ29sb3IgPT4ge1xuICBjb25zdCBodGVtcCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuICBpZiAoL14jLy50ZXN0KGhleCkgJiYgaHRlbXAubGVuZ3RoID09PSAzKSB7XG4gICAgaGV4ID0gYCMke2h0ZW1wLmNoYXJBdCgwKX0ke2h0ZW1wLmNoYXJBdCgwKX0ke2h0ZW1wLmNoYXJBdCgxKX0ke2h0ZW1wLmNoYXJBdCgxKX0ke2h0ZW1wLmNoYXJBdCgyKX0ke2h0ZW1wLmNoYXJBdCgyKX1gO1xuICB9XG4gIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYFtBLVphLXowLTldeyR7aGV4Lmxlbmd0aCA8IDYgPyAnMScgOiAnMid9fWAsICdnJyk7XG4gIGNvbnN0IFtyLCBnLCBiLCBhXSA9IGhleC5tYXRjaChyZWcpIS5tYXAoKHYpID0+IHBhcnNlSW50KHYsIDE2KSk7XG4gIHJldHVybiB7XG4gICAgcixcbiAgICBnLFxuICAgIGIsXG4gICAgYTogYSA/IGEgLyBSR0JfTUFYIDogMSxcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgSFNWQSB0byBSR0JBLiBCYXNlZCBvbiBmb3JtdWxhIGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFNMX2FuZF9IU1ZcbiAqIEBwYXJhbSBjb2xvciBIU1ZBIGNvbG9yIGFzIGFuIGFycmF5IFswLTM2MCwgMC0xLCAwLTEsIDAtMV1cbiAqL1xuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IFJnYmFDb2xvciA9PiB7XG4gIGxldCBfaCA9IGggLyA2MCxcbiAgICBfcyA9IHMgLyBTVl9NQVgsXG4gICAgX3YgPSB2IC8gU1ZfTUFYLFxuICAgIGhpID0gTWF0aC5mbG9vcihfaCkgJSA2O1xuXG4gIGxldCBmID0gX2ggLSBNYXRoLmZsb29yKF9oKSxcbiAgICBfcCA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MpLFxuICAgIF9xID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyAqIGYpLFxuICAgIF90ID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyAqICgxIC0gZikpO1xuICBfdiAqPSBSR0JfTUFYO1xuICBjb25zdCByZ2JhID0ge30gYXMgUmdiYUNvbG9yO1xuICBzd2l0Y2ggKGhpKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmdiYS5yID0gX3Y7XG4gICAgICByZ2JhLmcgPSBfdDtcbiAgICAgIHJnYmEuYiA9IF9wO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxOlxuICAgICAgcmdiYS5yID0gX3E7XG4gICAgICByZ2JhLmcgPSBfdjtcbiAgICAgIHJnYmEuYiA9IF9wO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgcmdiYS5yID0gX3A7XG4gICAgICByZ2JhLmcgPSBfdjtcbiAgICAgIHJnYmEuYiA9IF90O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgcmdiYS5yID0gX3A7XG4gICAgICByZ2JhLmcgPSBfcTtcbiAgICAgIHJnYmEuYiA9IF92O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgcmdiYS5yID0gX3Q7XG4gICAgICByZ2JhLmcgPSBfcDtcbiAgICAgIHJnYmEuYiA9IF92O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA1OlxuICAgICAgcmdiYS5yID0gX3Y7XG4gICAgICByZ2JhLmcgPSBfcDtcbiAgICAgIHJnYmEuYiA9IF9xO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgcmdiYS5yID0gTWF0aC5yb3VuZChyZ2JhLnIpO1xuICByZ2JhLmcgPSBNYXRoLnJvdW5kKHJnYmEuZyk7XG4gIHJnYmEuYiA9IE1hdGgucm91bmQocmdiYS5iKTtcbiAgcmV0dXJuIHsgLi4ucmdiYSwgYSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYlN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHIsIGcsIGIgfSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JhU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgciwgZywgYiwgYSB9ID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JhVG9SZ2IgPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IFJnYkNvbG9yID0+ICh7IHIsIGcsIGIgfSk7XG5leHBvcnQgY29uc3QgaHNsYVRvSHNsID0gKHsgaCwgcywgbCB9OiBIc2xhQ29sb3IpOiBIc2xDb2xvciA9PiAoeyBoLCBzLCBsIH0pO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hleCA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4gcmdiYVRvSGV4KGhzdmFUb1JnYmEoaHN2YSkpO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdiA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogSHN2Q29sb3IgPT4gKHsgaCwgcywgdiB9KTtcblxuZXhwb3J0IGNvbnN0IGNvbG9yID0gKHN0cjogc3RyaW5nIHwgSHN2YUNvbG9yKTogQ29sb3JSZXN1bHQgPT4ge1xuICBsZXQgcmdiITogUmdiQ29sb3I7XG4gIGxldCBoc2whOiBIc2xDb2xvcjtcbiAgbGV0IGhzdiE6IEhzdkNvbG9yO1xuICBsZXQgcmdiYSE6IFJnYmFDb2xvcjtcbiAgbGV0IGhzbGEhOiBIc2xhQ29sb3I7XG4gIGxldCBoc3ZhITogSHN2YUNvbG9yO1xuICBsZXQgaGV4ITogc3RyaW5nO1xuICBsZXQgaGV4YSE6IHN0cmluZztcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHZhbGlkSGV4KHN0cikpIHtcbiAgICBoc3ZhID0gaGV4VG9Ic3ZhKHN0cik7XG4gICAgaGV4ID0gc3RyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgaHN2YSA9IHN0cjtcbiAgfVxuICBpZiAoaHN2YSkge1xuICAgIGhzdiA9IGhzdmFUb0hzdihoc3ZhKTtcbiAgICBoc2xhID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgICByZ2JhID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgICBoZXhhID0gcmdiYVRvSGV4YShyZ2JhKTtcbiAgICBoZXggPSBoc3ZhVG9IZXgoaHN2YSk7XG4gICAgaHNsID0gaHNsYVRvSHNsKGhzbGEpO1xuICAgIHJnYiA9IHJnYmFUb1JnYihyZ2JhKTtcbiAgfVxuICByZXR1cm4geyByZ2IsIGhzbCwgaHN2LCByZ2JhLCBoc2xhLCBoc3ZhLCBoZXgsIGhleGEgfTtcbn07XG4iXX0=
export * from './utils';
export * from './getContrastingColor';
export declare type ObjectColor = RgbColor | HslColor | HsvColor | RgbaColor | HslaColor | HsvaColor;

@@ -10,2 +11,4 @@ export declare type ColorResult = {

hsva: HsvaColor;
hex: string;
hexa: string;
};

@@ -12,0 +15,0 @@ export interface HsvColor {

@@ -5,2 +5,3 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";

export * from './utils';
export * from './getContrastingColor';
var RGB_MAX = 255;

@@ -330,5 +331,8 @@ var HUE_MAX = 360;

var hsva;
var hex;
var hexa;
if (typeof str === 'string' && validHex(str)) {
hsva = hexToHsva(str);
hex = str;
} else if (typeof str !== 'string') {

@@ -342,2 +346,4 @@ hsva = str;

rgba = hsvaToRgba(hsva);
hexa = rgbaToHexa(rgba);
hex = hsvaToHex(hsva);
hsl = hslaToHsl(hsla);

@@ -353,5 +359,7 @@ rgb = rgbaToRgb(rgba);

hsla: hsla,
hsva: hsva
hsva: hsva,
hex: hex,
hexa: hexa
};
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJ2YWxpZEhleCIsIlJHQl9NQVgiLCJIVUVfTUFYIiwiU1ZfTUFYIiwicmdiYVRvSHN2YSIsInIiLCJnIiwiYiIsImEiLCJtYXgiLCJNYXRoIiwiZGVsdGEiLCJtaW4iLCJoaCIsImgiLCJzIiwidiIsImhzdmFUb0hzbFN0cmluZyIsImhzdmEiLCJoc3ZhVG9Ic2xhIiwibCIsImhzdmFUb0hzdlN0cmluZyIsImhzdmFUb0hzdmFTdHJpbmciLCJoc3ZhVG9Ic2xhU3RyaW5nIiwiaHNsYVN0cmluZ1RvSHN2YSIsImhzbFN0cmluZyIsIm1hdGNoZXIiLCJtYXRjaCIsImV4ZWMiLCJoc2xhVG9Ic3ZhIiwicGFyc2VIdWUiLCJOdW1iZXIiLCJ1bmRlZmluZWQiLCJoc2xTdHJpbmdUb0hzdmEiLCJoc3ZhU3RyaW5nVG9Ic3ZhIiwiaHN2U3RyaW5nIiwiYW5nbGVVbml0cyIsImdyYWQiLCJ0dXJuIiwicmFkIiwiUEkiLCJ2YWx1ZSIsInVuaXQiLCJoc3ZTdHJpbmdUb0hzdmEiLCJyZ2JhU3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZyIsInJnYlN0cmluZ1RvSHN2YSIsInJnYmFUb0hleCIsImJpbiIsIkFycmF5IiwibGVuZ3RoIiwiam9pbiIsInRvU3RyaW5nIiwicmdiYVRvSGV4YSIsImFscGhhIiwic2xpY2UiLCJoZXhUb0hzdmEiLCJoZXgiLCJoZXhUb1JnYmEiLCJodGVtcCIsInJlcGxhY2UiLCJ0ZXN0IiwiY2hhckF0IiwicmVnIiwiUmVnRXhwIiwibWFwIiwicGFyc2VJbnQiLCJoc3ZhVG9SZ2JhIiwiX2giLCJfcyIsIl92IiwiaGkiLCJmbG9vciIsImYiLCJfcCIsIl9xIiwiX3QiLCJyZ2JhIiwicm91bmQiLCJoc3ZhVG9SZ2JTdHJpbmciLCJoc3ZhVG9SZ2JhU3RyaW5nIiwicmdiYVRvUmdiIiwiaHNsYVRvSHNsIiwiaHN2YVRvSGV4IiwiaHN2YVRvSHN2IiwiY29sb3IiLCJzdHIiLCJyZ2IiLCJoc2wi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dGVudCI6WyJpbXBvcnQgeyB2YWxpZEhleCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgUkdCX01BWCA9IDI1NTtcbmNvbnN0IEhVRV9NQVggPSAzNjA7XG5jb25zdCBTVl9NQVggPSAxMDA7XG5cbmV4cG9ydCB0eXBlIE9iamVjdENvbG9yID0gUmdiQ29sb3IgfCBIc2xDb2xvciB8IEhzdkNvbG9yIHwgUmdiYUNvbG9yIHwgSHNsYUNvbG9yIHwgSHN2YUNvbG9yO1xuZXhwb3J0IHR5cGUgQ29sb3JSZXN1bHQgPSB7XG4gIHJnYjogUmdiQ29sb3I7XG4gIGhzbDogSHNsQ29sb3I7XG4gIGhzdjogSHN2Q29sb3I7XG4gIHJnYmE6IFJnYmFDb2xvcjtcbiAgaHNsYTogSHNsYUNvbG9yO1xuICBoc3ZhOiBIc3ZhQ29sb3I7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhzdkNvbG9yIHtcbiAgaDogbnVtYmVyO1xuICBzOiBudW1iZXI7XG4gIHY6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIc3ZhQ29sb3IgZXh0ZW5kcyBIc3ZDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZ2JDb2xvciB7XG4gIHI6IG51bWJlcjtcbiAgZzogbnVtYmVyO1xuICBiOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJnYmFDb2xvciBleHRlbmRzIFJnYkNvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuXG4vKipcbiAqIGBgYGpzXG4gKiByZ2JhVG9Ic3ZhKHsgcjogMjU1LCBnOiAyNTUsIGI6IDI1NSwgYTogMSB9KSAvLz0+IHsgaDogMCwgczogMCwgdjogMTAwLCBhOiAxIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgcmdiYVRvSHN2YSA9ICh7IHIsIGcsIGIsIGEgfTogUmdiYUNvbG9yKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IGRlbHRhID0gbWF4IC0gTWF0aC5taW4ociwgZywgYik7XG5cbiAgLy8gcHJldHRpZXItaWdub3JlXG4gIGNvbnN0IGhoID0gZGVsdGFcbiAgICA/IG1heCA9PT0gclxuICAgICAgPyAoZyAtIGIpIC8gZGVsdGFcbiAgICAgIDogbWF4ID09PSBnXG4gICAgICAgID8gMiArIChiIC0gcikgLyBkZWx0YVxuICAgICAgICA6IDQgKyAociAtIGcpIC8gZGVsdGFcbiAgICA6IDA7XG5cbiAgcmV0dXJuIHtcbiAgICBoOiA2MCAqIChoaCA8IDAgPyBoaCArIDYgOiBoaCksXG4gICAgczogbWF4ID8gKGRlbHRhIC8gbWF4KSAqIFNWX01BWCA6IDAsXG4gICAgdjogKG1heCAvIFJHQl9NQVgpICogU1ZfTUFYLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHNsU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgaCwgcywgbCB9ID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHN2U3RyaW5nID0gKHsgaCwgcywgdiB9OiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gYGhzdigke2h9LCAke3N9JSwgJHt2fSUpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3ZhU3RyaW5nID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gYGhzdmEoJHtofSwgJHtzfSUsICR7dn0lLCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHNsYVN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGgsIHMsIGwsIGEgfSA9IGhzdmFUb0hzbGEoaHN2YSk7XG4gIHJldHVybiBgaHNsYSgke2h9LCAke3N9JSwgJHtsfSUsICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xhU3RyaW5nVG9Ic3ZhID0gKGhzbFN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL2hzbGE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKGRlZ3xyYWR8Z3JhZHx0dXJuKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhoc2xTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gaHNsYVRvSHN2YSh7XG4gICAgaDogcGFyc2VIdWUobWF0Y2hbMV0sIG1hdGNoWzJdKSxcbiAgICBzOiBOdW1iZXIobWF0Y2hbM10pLFxuICAgIGw6IE51bWJlcihtYXRjaFs0XSksXG4gICAgYTogbWF0Y2hbNV0gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gMTAwIDogMSksXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbFN0cmluZ1RvSHN2YSA9IGhzbGFTdHJpbmdUb0hzdmE7XG5cbmV4cG9ydCBjb25zdCBoc2xhVG9Ic3ZhID0gKHsgaCwgcywgbCwgYSB9OiBIc2xhQ29sb3IpOiBIc3ZhQ29sb3IgPT4ge1xuICBzICo9IChsIDwgNTAgPyBsIDogU1ZfTUFYIC0gbCkgLyBTVl9NQVg7XG5cbiAgcmV0dXJuIHtcbiAgICBoOiBoLFxuICAgIHM6IHMgPiAwID8gKCgyICogcykgLyAobCArIHMpKSAqIFNWX01BWCA6IDAsXG4gICAgdjogbCArIHMsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHNsQ29sb3Ige1xuICBoOiBudW1iZXI7XG4gIHM6IG51bWJlcjtcbiAgbDogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBIc2xhQ29sb3IgZXh0ZW5kcyBIc2xDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xhID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBIc2xhQ29sb3IgPT4ge1xuICBjb25zdCBoaCA9ICgoMjAwIC0gcykgKiB2KSAvIFNWX01BWDtcblxuICByZXR1cm4ge1xuICAgIGgsXG4gICAgczogaGggPiAwICYmIGhoIDwgMjAwID8gKChzICogdikgLyBTVl9NQVggLyAoaGggPD0gU1ZfTUFYID8gaGggOiAyMDAgLSBoaCkpICogU1ZfTUFYIDogMCxcbiAgICBsOiBoaCAvIDIsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhU3RyaW5nVG9Ic3ZhID0gKGhzdlN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL2hzdmE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKGRlZ3xyYWR8Z3JhZHx0dXJuKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhoc3ZTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4ge1xuICAgIGg6IHBhcnNlSHVlKG1hdGNoWzFdLCBtYXRjaFsyXSksXG4gICAgczogTnVtYmVyKG1hdGNoWzNdKSxcbiAgICB2OiBOdW1iZXIobWF0Y2hbNF0pLFxuICAgIGE6IG1hdGNoWzVdID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IFNWX01BWCA6IDEpLFxuICB9O1xufTtcblxuLyoqXG4gKiBWYWxpZCBDU1MgPGFuZ2xlPiB1bml0cy5cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9hbmdsZVxuICovXG5jb25zdCBhbmdsZVVuaXRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xuICBncmFkOiBIVUVfTUFYIC8gNDAwLFxuICB0dXJuOiBIVUVfTUFYLFxuICByYWQ6IEhVRV9NQVggLyAoTWF0aC5QSSAqIDIpLFxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlSHVlID0gKHZhbHVlOiBzdHJpbmcsIHVuaXQgPSAnZGVnJyk6IG51bWJlciA9PiB7XG4gIHJldHVybiBOdW1iZXIodmFsdWUpICogKGFuZ2xlVW5pdHNbdW5pdF0gfHwgMSk7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2U3RyaW5nVG9Ic3ZhID0gaHN2YVN0cmluZ1RvSHN2YTtcbmV4cG9ydCBjb25zdCByZ2JhU3RyaW5nVG9Ic3ZhID0gKHJnYmFTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9yZ2JhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKSglKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSglKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSglKT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMocmdiYVN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiByZ2JhVG9Ic3ZhKHtcbiAgICByOiBOdW1iZXIobWF0Y2hbMV0pIC8gKG1hdGNoWzJdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGc6IE51bWJlcihtYXRjaFszXSkgLyAobWF0Y2hbNF0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgYjogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBhOiBtYXRjaFs3XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs3XSkgLyAobWF0Y2hbOF0gPyBTVl9NQVggOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiU3RyaW5nVG9Ic3ZhID0gcmdiYVN0cmluZ1RvSHN2YTtcblxuLyoqIENvbnZlcnRzIGFuIFJHQkEgY29sb3IgcGx1cyBhbHBoYSB0cmFuc3BhcmVuY3kgdG8gaGV4ICovXG5leHBvcnQgY29uc3QgcmdiYVRvSGV4ID0gKHsgciwgZywgYiB9OiBSZ2JhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBsZXQgYmluID0gKHIgPDwgMTYpIHwgKGcgPDwgOCkgfCBiO1xuICByZXR1cm4gYCMkeygoaCkgPT4gbmV3IEFycmF5KDcgLSBoLmxlbmd0aCkuam9pbignMCcpICsgaCkoYmluLnRvU3RyaW5nKDE2KSl9YDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JhVG9IZXhhID0gKHsgciwgZywgYiwgYSB9OiBSZ2JhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBhbHBoYSA9IGEgJiYgKChhICogMjU1KSB8ICgxIDw8IDgpKS50b1N0cmluZygxNikuc2xpY2UoMSk7XG4gIHJldHVybiBgJHtyZ2JhVG9IZXgoeyByLCBnLCBiLCBhIH0pfSR7YWxwaGEgPyBhbHBoYSA6ICcnfWA7XG59O1xuXG5leHBvcnQgY29uc3QgaGV4VG9Ic3ZhID0gKGhleDogc3RyaW5nKTogSHN2YUNvbG9yID0+IHJnYmFUb0hzdmEoaGV4VG9SZ2JhKGhleCkpO1xuZXhwb3J0IGNvbnN0IGhleFRvUmdiYSA9IChoZXg6IHN0cmluZyk6IFJnYmFDb2xvciA9PiB7XG4gIGNvbnN0IGh0ZW1wID0gaGV4LnJlcGxhY2UoJyMnLCAnJyk7XG4gIGlmICgvXiMvLnRlc3QoaGV4KSAmJiBodGVtcC5sZW5ndGggPT09IDMpIHtcbiAgICBoZXggPSBgIyR7aHRlbXAuY2hhckF0KDApfSR7aHRlbXAuY2hhckF0KDApfSR7aHRlbXAuY2hhckF0KDEpfSR7aHRlbXAuY2hhckF0KDEpfSR7aHRlbXAuY2hhckF0KDIpfSR7aHRlbXAuY2hhckF0KDIpfWA7XG4gIH1cbiAgY29uc3QgcmVnID0gbmV3IFJlZ0V4cChgW0EtWmEtejAtOV17JHtoZXgubGVuZ3RoIDwgNiA/ICcxJyA6ICcyJ319YCwgJ2cnKTtcbiAgY29uc3QgW3IsIGcsIGIsIGFdID0gaGV4Lm1hdGNoKHJlZykhLm1hcCgodikgPT4gcGFyc2VJbnQodiwgMTYpKTtcbiAgcmV0dXJuIHtcbiAgICByLFxuICAgIGcsXG4gICAgYixcbiAgICBhOiBhID8gYSAvIFJHQl9NQVggOiAxLFxuICB9O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBIU1ZBIHRvIFJHQkEuIEJhc2VkIG9uIGZvcm11bGEgZnJvbSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IU0xfYW5kX0hTVlxuICogQHBhcmFtIGNvbG9yIEhTVkEgY29sb3IgYXMgYW4gYXJyYXkgWzAtMzYwLCAwLTEsIDAtMSwgMC0xXVxuICovXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiYSA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogUmdiYUNvbG9yID0+IHtcbiAgbGV0IF9oID0gaCAvIDYwLFxuICAgIF9zID0gcyAvIFNWX01BWCxcbiAgICBfdiA9IHYgLyBTVl9NQVgsXG4gICAgaGkgPSBNYXRoLmZsb29yKF9oKSAlIDY7XG5cbiAgbGV0IGYgPSBfaCAtIE1hdGguZmxvb3IoX2gpLFxuICAgIF9wID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyksXG4gICAgX3EgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zICogZiksXG4gICAgX3QgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zICogKDEgLSBmKSk7XG4gIF92ICo9IFJHQl9NQVg7XG4gIGNvbnN0IHJnYmEgPSB7fSBhcyBSZ2JhQ29sb3I7XG4gIHN3aXRjaCAoaGkpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZ2JhLnIgPSBfdjtcbiAgICAgIHJnYmEuZyA9IF90O1xuICAgICAgcmdiYS5iID0gX3A7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDE6XG4gICAgICByZ2JhLnIgPSBfcTtcbiAgICAgIHJnYmEuZyA9IF92O1xuICAgICAgcmdiYS5iID0gX3A7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICByZ2JhLnIgPSBfcDtcbiAgICAgIHJnYmEuZyA9IF92O1xuICAgICAgcmdiYS5iID0gX3Q7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICByZ2JhLnIgPSBfcDtcbiAgICAgIHJnYmEuZyA9IF9xO1xuICAgICAgcmdiYS5iID0gX3Y7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDQ6XG4gICAgICByZ2JhLnIgPSBfdDtcbiAgICAgIHJnYmEuZyA9IF9wO1xuICAgICAgcmdiYS5iID0gX3Y7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDU6XG4gICAgICByZ2JhLnIgPSBfdjtcbiAgICAgIHJnYmEuZyA9IF9wO1xuICAgICAgcmdiYS5iID0gX3E7XG4gICAgICBicmVhaztcbiAgfVxuICByZ2JhLnIgPSBNYXRoLnJvdW5kKHJnYmEucik7XG4gIHJnYmEuZyA9IE1hdGgucm91bmQocmdiYS5nKTtcbiAgcmdiYS5iID0gTWF0aC5yb3VuZChyZ2JhLmIpO1xuICByZXR1cm4geyAuLi5yZ2JhLCBhIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgciwgZywgYiB9ID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgcmV0dXJuIGByZ2IoJHtyfSwgJHtnfSwgJHtifSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyByLCBnLCBiLCBhIH0gPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb1JnYiA9ICh7IHIsIGcsIGIgfTogUmdiYUNvbG9yKTogUmdiQ29sb3IgPT4gKHsgciwgZywgYiB9KTtcbmV4cG9ydCBjb25zdCBoc2xhVG9Ic2wgPSAoeyBoLCBzLCBsIH06IEhzbGFDb2xvcik6IEhzbENvbG9yID0+ICh7IGgsIHMsIGwgfSk7XG5leHBvcnQgY29uc3QgaHN2YVRvSGV4ID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiByZ2JhVG9IZXgoaHN2YVRvUmdiYShoc3ZhKSk7XG5leHBvcnQgY29uc3QgaHN2YVRvSHN2ID0gKHsgaCwgcywgdiB9OiBIc3ZhQ29sb3IpOiBIc3ZDb2xvciA9PiAoeyBoLCBzLCB2IH0pO1xuXG5leHBvcnQgY29uc3QgY29sb3IgPSAoc3RyOiBzdHJpbmcgfCBIc3ZhQ29sb3IpOiBDb2xvclJlc3VsdCA9PiB7XG4gIGxldCByZ2IhOiBSZ2JDb2xvcjtcbiAgbGV0IGhzbCE6IEhzbENvbG9yO1xuICBsZXQgaHN2ITogSHN2Q29sb3I7XG4gIGxldCByZ2JhITogUmdiYUNvbG9yO1xuICBsZXQgaHNsYSE6IEhzbGFDb2xvcjtcbiAgbGV0IGhzdmEhOiBIc3ZhQ29sb3I7XG4gIGlmICh0eXBlb2Ygc3RyID09PSAnc3RyaW5nJyAmJiB2YWxpZEhleChzdHIpKSB7XG4gICAgaHN2YSA9IGhleFRvSHN2YShzdHIpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgaHN2YSA9IHN0cjtcbiAgfVxuICBpZiAoaHN2YSkge1xuICAgIGhzdiA9IGhzdmFUb0hzdihoc3ZhKTtcbiAgICBoc2xhID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgICByZ2JhID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgICBoc2wgPSBoc2xhVG9Ic2woaHNsYSk7XG4gICAgcmdiID0gcmdiYVRvUmdiKHJnYmEpO1xuICB9XG4gIHJldHVybiB7IHJnYiwgaHNsLCBoc3YsIHJnYmEsIGhzbGEsIGhzdmEgfTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJ2YWxpZEhleCIsIlJHQl9NQVgiLCJIVUVfTUFYIiwiU1ZfTUFYIiwicmdiYVRvSHN2YSIsInIiLCJnIiwiYiIsImEiLCJtYXgiLCJNYXRoIiwiZGVsdGEiLCJtaW4iLCJoaCIsImgiLCJzIiwidiIsImhzdmFUb0hzbFN0cmluZyIsImhzdmEiLCJoc3ZhVG9Ic2xhIiwibCIsImhzdmFUb0hzdlN0cmluZyIsImhzdmFUb0hzdmFTdHJpbmciLCJoc3ZhVG9Ic2xhU3RyaW5nIiwiaHNsYVN0cmluZ1RvSHN2YSIsImhzbFN0cmluZyIsIm1hdGNoZXIiLCJtYXRjaCIsImV4ZWMiLCJoc2xhVG9Ic3ZhIiwicGFyc2VIdWUiLCJOdW1iZXIiLCJ1bmRlZmluZWQiLCJoc2xTdHJpbmdUb0hzdmEiLCJoc3ZhU3RyaW5nVG9Ic3ZhIiwiaHN2U3RyaW5nIiwiYW5nbGVVbml0cyIsImdyYWQiLCJ0dXJuIiwicmFkIiwiUEkiLCJ2YWx1ZSIsInVuaXQiLCJoc3ZTdHJpbmdUb0hzdmEiLCJyZ2JhU3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZyIsInJnYlN0cmluZ1RvSHN2YSIsInJnYmFUb0hleCIsImJpbiIsIkFycmF5IiwibGVuZ3RoIiwiam9pbiIsInRvU3RyaW5nIiwicmdiYVRvSGV4YSIsImFscGhhIiwic2xpY2UiLCJoZXhUb0hzdmEiLCJoZXgiLCJoZXhUb1JnYmEiLCJodGVtcCIsInJlcGxhY2UiLCJ0ZXN0IiwiY2hhckF0IiwicmVnIiwiUmVnRXhwIiwibWFwIiwicGFyc2VJbnQiLCJoc3ZhVG9SZ2JhIiwiX2giLCJfcyIsIl92IiwiaGkiLCJmbG9vciIsImYiLCJfcCIsIl9xIiwiX3QiLCJyZ2JhIiwicm91bmQiLCJoc3ZhVG9SZ2JTdHJpbmciLCJoc3ZhVG9SZ2JhU3RyaW5nIiwicmdiYVRvUmdiIiwiaHNsYVRvSHNsIiwiaHN2YVRvSGV4IiwiaHN2YVRvSHN2IiwiY29sb3IiLCJzdHIiLCJyZ2IiLCJoc2wi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LEdBQUY7QUFBT0MsSUFBQUEsR0FBRyxFQUFIQSxHQUFQO0FBQVlDLElBQUFBLEdBQUcsRUFBSEEsR0FBWjtBQUFpQlosSUFBQUEsSUFBSSxFQUFKQSxJQUFqQjtBQUF1QmEsSUFBQUEsSUFBSSxFQUFKQSxJQUF2QjtBQUE2QnhFLElBQUFBLElBQUksRUFBSkEsSUFBN0I7QUFBbUN1QyxJQUFBQSxHQUFHLEVBQUhBLEdBQW5DO0FBQXdDa0MsSUFBQUEsSUFBSSxFQUFKQTtBQUF4QyxHQUFQO0FBQ0QsQ0F6Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2YWxpZEhleCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0Q29udHJhc3RpbmdDb2xvcic7XG5cbmNvbnN0IFJHQl9NQVggPSAyNTU7XG5jb25zdCBIVUVfTUFYID0gMzYwO1xuY29uc3QgU1ZfTUFYID0gMTAwO1xuXG5leHBvcnQgdHlwZSBPYmplY3RDb2xvciA9IFJnYkNvbG9yIHwgSHNsQ29sb3IgfCBIc3ZDb2xvciB8IFJnYmFDb2xvciB8IEhzbGFDb2xvciB8IEhzdmFDb2xvcjtcbmV4cG9ydCB0eXBlIENvbG9yUmVzdWx0ID0ge1xuICByZ2I6IFJnYkNvbG9yO1xuICBoc2w6IEhzbENvbG9yO1xuICBoc3Y6IEhzdkNvbG9yO1xuICByZ2JhOiBSZ2JhQ29sb3I7XG4gIGhzbGE6IEhzbGFDb2xvcjtcbiAgaHN2YTogSHN2YUNvbG9yO1xuICBoZXg6IHN0cmluZztcbiAgaGV4YTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIc3ZDb2xvciB7XG4gIGg6IG51bWJlcjtcbiAgczogbnVtYmVyO1xuICB2OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHN2YUNvbG9yIGV4dGVuZHMgSHN2Q29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmdiQ29sb3Ige1xuICByOiBudW1iZXI7XG4gIGc6IG51bWJlcjtcbiAgYjogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZ2JhQ29sb3IgZXh0ZW5kcyBSZ2JDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBgYGBqc1xuICogcmdiYVRvSHN2YSh7IHI6IDI1NSwgZzogMjU1LCBiOiAyNTUsIGE6IDEgfSkgLy89PiB7IGg6IDAsIHM6IDAsIHY6IDEwMCwgYTogMSB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHJnYmFUb0hzdmEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBkZWx0YSA9IG1heCAtIE1hdGgubWluKHIsIGcsIGIpO1xuXG4gIC8vIHByZXR0aWVyLWlnbm9yZVxuICBjb25zdCBoaCA9IGRlbHRhXG4gICAgPyBtYXggPT09IHJcbiAgICAgID8gKGcgLSBiKSAvIGRlbHRhXG4gICAgICA6IG1heCA9PT0gZ1xuICAgICAgICA/IDIgKyAoYiAtIHIpIC8gZGVsdGFcbiAgICAgICAgOiA0ICsgKHIgLSBnKSAvIGRlbHRhXG4gICAgOiAwO1xuXG4gIHJldHVybiB7XG4gICAgaDogNjAgKiAoaGggPCAwID8gaGggKyA2IDogaGgpLFxuICAgIHM6IG1heCA/IChkZWx0YSAvIG1heCkgKiBTVl9NQVggOiAwLFxuICAgIHY6IChtYXggLyBSR0JfTUFYKSAqIFNWX01BWCxcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbFN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGgsIHMsIGwgfSA9IGhzdmFUb0hzbGEoaHN2YSk7XG4gIHJldHVybiBgaHNsKCR7aH0sICR7c30lLCAke2x9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdlN0cmluZyA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3YoJHtofSwgJHtzfSUsICR7dn0lKWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHN2YVN0cmluZyA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3ZhKCR7aH0sICR7c30lLCAke3Z9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsLCBhIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICByZXR1cm4gYGhzbGEoJHtofSwgJHtzfSUsICR7bH0lLCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsYVN0cmluZ1RvSHN2YSA9IChoc2xTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9oc2xhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKShkZWd8cmFkfGdyYWR8dHVybik/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMoaHNsU3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIGhzbGFUb0hzdmEoe1xuICAgIGg6IHBhcnNlSHVlKG1hdGNoWzFdLCBtYXRjaFsyXSksXG4gICAgczogTnVtYmVyKG1hdGNoWzNdKSxcbiAgICBsOiBOdW1iZXIobWF0Y2hbNF0pLFxuICAgIGE6IG1hdGNoWzVdID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IDEwMCA6IDEpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xTdHJpbmdUb0hzdmEgPSBoc2xhU3RyaW5nVG9Ic3ZhO1xuXG5leHBvcnQgY29uc3QgaHNsYVRvSHN2YSA9ICh7IGgsIHMsIGwsIGEgfTogSHNsYUNvbG9yKTogSHN2YUNvbG9yID0+IHtcbiAgcyAqPSAobCA8IDUwID8gbCA6IFNWX01BWCAtIGwpIC8gU1ZfTUFYO1xuXG4gIHJldHVybiB7XG4gICAgaDogaCxcbiAgICBzOiBzID4gMCA/ICgoMiAqIHMpIC8gKGwgKyBzKSkgKiBTVl9NQVggOiAwLFxuICAgIHY6IGwgKyBzLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhzbENvbG9yIHtcbiAgaDogbnVtYmVyO1xuICBzOiBudW1iZXI7XG4gIGw6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSHNsYUNvbG9yIGV4dGVuZHMgSHNsQ29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5leHBvcnQgY29uc3QgaHN2YVRvSHNsYSA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogSHNsYUNvbG9yID0+IHtcbiAgY29uc3QgaGggPSAoKDIwMCAtIHMpICogdikgLyBTVl9NQVg7XG5cbiAgcmV0dXJuIHtcbiAgICBoLFxuICAgIHM6IGhoID4gMCAmJiBoaCA8IDIwMCA/ICgocyAqIHYpIC8gU1ZfTUFYIC8gKGhoIDw9IFNWX01BWCA/IGhoIDogMjAwIC0gaGgpKSAqIFNWX01BWCA6IDAsXG4gICAgbDogaGggLyAyLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVN0cmluZ1RvSHN2YSA9IChoc3ZTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9oc3ZhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKShkZWd8cmFkfGdyYWR8dHVybik/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMoaHN2U3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgdjogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyBTVl9NQVggOiAxKSxcbiAgfTtcbn07XG5cbi8qKlxuICogVmFsaWQgQ1NTIDxhbmdsZT4gdW5pdHMuXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvYW5nbGVcbiAqL1xuY29uc3QgYW5nbGVVbml0czogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgZ3JhZDogSFVFX01BWCAvIDQwMCxcbiAgdHVybjogSFVFX01BWCxcbiAgcmFkOiBIVUVfTUFYIC8gKE1hdGguUEkgKiAyKSxcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUh1ZSA9ICh2YWx1ZTogc3RyaW5nLCB1bml0ID0gJ2RlZycpOiBudW1iZXIgPT4ge1xuICByZXR1cm4gTnVtYmVyKHZhbHVlKSAqIChhbmdsZVVuaXRzW3VuaXRdIHx8IDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdlN0cmluZ1RvSHN2YSA9IGhzdmFTdHJpbmdUb0hzdmE7XG5leHBvcnQgY29uc3QgcmdiYVN0cmluZ1RvSHN2YSA9IChyZ2JhU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvcmdiYT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoJSk/WyxcXHNdKygtP1xcZCpcXC4/XFxkKykoJSk/WyxcXHNdKygtP1xcZCpcXC4/XFxkKykoJSk/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKHJnYmFTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gcmdiYVRvSHN2YSh7XG4gICAgcjogTnVtYmVyKG1hdGNoWzFdKSAvIChtYXRjaFsyXSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBnOiBOdW1iZXIobWF0Y2hbM10pIC8gKG1hdGNoWzRdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGI6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgYTogbWF0Y2hbN10gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbN10pIC8gKG1hdGNoWzhdID8gU1ZfTUFYIDogMSksXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYlN0cmluZ1RvSHN2YSA9IHJnYmFTdHJpbmdUb0hzdmE7XG5cbi8qKiBDb252ZXJ0cyBhbiBSR0JBIGNvbG9yIHBsdXMgYWxwaGEgdHJhbnNwYXJlbmN5IHRvIGhleCAqL1xuZXhwb3J0IGNvbnN0IHJnYmFUb0hleCA9ICh7IHIsIGcsIGIgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgbGV0IGJpbiA9IChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYjtcbiAgcmV0dXJuIGAjJHsoKGgpID0+IG5ldyBBcnJheSg3IC0gaC5sZW5ndGgpLmpvaW4oJzAnKSArIGgpKGJpbi50b1N0cmluZygxNikpfWA7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiYVRvSGV4YSA9ICh7IHIsIGcsIGIsIGEgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYWxwaGEgPSBhICYmICgoYSAqIDI1NSkgfCAoMSA8PCA4KSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpO1xuICByZXR1cm4gYCR7cmdiYVRvSGV4KHsgciwgZywgYiwgYSB9KX0ke2FscGhhID8gYWxwaGEgOiAnJ31gO1xufTtcblxuZXhwb3J0IGNvbnN0IGhleFRvSHN2YSA9IChoZXg6IHN0cmluZyk6IEhzdmFDb2xvciA9PiByZ2JhVG9Ic3ZhKGhleFRvUmdiYShoZXgpKTtcbmV4cG9ydCBjb25zdCBoZXhUb1JnYmEgPSAoaGV4OiBzdHJpbmcpOiBSZ2JhQ29sb3IgPT4ge1xuICBjb25zdCBodGVtcCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuICBpZiAoL14jLy50ZXN0KGhleCkgJiYgaHRlbXAubGVuZ3RoID09PSAzKSB7XG4gICAgaGV4ID0gYCMke2h0ZW1wLmNoYXJBdCgwKX0ke2h0ZW1wLmNoYXJBdCgwKX0ke2h0ZW1wLmNoYXJBdCgxKX0ke2h0ZW1wLmNoYXJBdCgxKX0ke2h0ZW1wLmNoYXJBdCgyKX0ke2h0ZW1wLmNoYXJBdCgyKX1gO1xuICB9XG4gIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYFtBLVphLXowLTldeyR7aGV4Lmxlbmd0aCA8IDYgPyAnMScgOiAnMid9fWAsICdnJyk7XG4gIGNvbnN0IFtyLCBnLCBiLCBhXSA9IGhleC5tYXRjaChyZWcpIS5tYXAoKHYpID0+IHBhcnNlSW50KHYsIDE2KSk7XG4gIHJldHVybiB7XG4gICAgcixcbiAgICBnLFxuICAgIGIsXG4gICAgYTogYSA/IGEgLyBSR0JfTUFYIDogMSxcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgSFNWQSB0byBSR0JBLiBCYXNlZCBvbiBmb3JtdWxhIGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFNMX2FuZF9IU1ZcbiAqIEBwYXJhbSBjb2xvciBIU1ZBIGNvbG9yIGFzIGFuIGFycmF5IFswLTM2MCwgMC0xLCAwLTEsIDAtMV1cbiAqL1xuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IFJnYmFDb2xvciA9PiB7XG4gIGxldCBfaCA9IGggLyA2MCxcbiAgICBfcyA9IHMgLyBTVl9NQVgsXG4gICAgX3YgPSB2IC8gU1ZfTUFYLFxuICAgIGhpID0gTWF0aC5mbG9vcihfaCkgJSA2O1xuXG4gIGxldCBmID0gX2ggLSBNYXRoLmZsb29yKF9oKSxcbiAgICBfcCA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MpLFxuICAgIF9xID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyAqIGYpLFxuICAgIF90ID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyAqICgxIC0gZikpO1xuICBfdiAqPSBSR0JfTUFYO1xuICBjb25zdCByZ2JhID0ge30gYXMgUmdiYUNvbG9yO1xuICBzd2l0Y2ggKGhpKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmdiYS5yID0gX3Y7XG4gICAgICByZ2JhLmcgPSBfdDtcbiAgICAgIHJnYmEuYiA9IF9wO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxOlxuICAgICAgcmdiYS5yID0gX3E7XG4gICAgICByZ2JhLmcgPSBfdjtcbiAgICAgIHJnYmEuYiA9IF9wO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgcmdiYS5yID0gX3A7XG4gICAgICByZ2JhLmcgPSBfdjtcbiAgICAgIHJnYmEuYiA9IF90O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgcmdiYS5yID0gX3A7XG4gICAgICByZ2JhLmcgPSBfcTtcbiAgICAgIHJnYmEuYiA9IF92O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgcmdiYS5yID0gX3Q7XG4gICAgICByZ2JhLmcgPSBfcDtcbiAgICAgIHJnYmEuYiA9IF92O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA1OlxuICAgICAgcmdiYS5yID0gX3Y7XG4gICAgICByZ2JhLmcgPSBfcDtcbiAgICAgIHJnYmEuYiA9IF9xO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgcmdiYS5yID0gTWF0aC5yb3VuZChyZ2JhLnIpO1xuICByZ2JhLmcgPSBNYXRoLnJvdW5kKHJnYmEuZyk7XG4gIHJnYmEuYiA9IE1hdGgucm91bmQocmdiYS5iKTtcbiAgcmV0dXJuIHsgLi4ucmdiYSwgYSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYlN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHIsIGcsIGIgfSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JhU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgciwgZywgYiwgYSB9ID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JhVG9SZ2IgPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IFJnYkNvbG9yID0+ICh7IHIsIGcsIGIgfSk7XG5leHBvcnQgY29uc3QgaHNsYVRvSHNsID0gKHsgaCwgcywgbCB9OiBIc2xhQ29sb3IpOiBIc2xDb2xvciA9PiAoeyBoLCBzLCBsIH0pO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hleCA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4gcmdiYVRvSGV4KGhzdmFUb1JnYmEoaHN2YSkpO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdiA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogSHN2Q29sb3IgPT4gKHsgaCwgcywgdiB9KTtcblxuZXhwb3J0IGNvbnN0IGNvbG9yID0gKHN0cjogc3RyaW5nIHwgSHN2YUNvbG9yKTogQ29sb3JSZXN1bHQgPT4ge1xuICBsZXQgcmdiITogUmdiQ29sb3I7XG4gIGxldCBoc2whOiBIc2xDb2xvcjtcbiAgbGV0IGhzdiE6IEhzdkNvbG9yO1xuICBsZXQgcmdiYSE6IFJnYmFDb2xvcjtcbiAgbGV0IGhzbGEhOiBIc2xhQ29sb3I7XG4gIGxldCBoc3ZhITogSHN2YUNvbG9yO1xuICBsZXQgaGV4ITogc3RyaW5nO1xuICBsZXQgaGV4YSE6IHN0cmluZztcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHZhbGlkSGV4KHN0cikpIHtcbiAgICBoc3ZhID0gaGV4VG9Ic3ZhKHN0cik7XG4gICAgaGV4ID0gc3RyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgaHN2YSA9IHN0cjtcbiAgfVxuICBpZiAoaHN2YSkge1xuICAgIGhzdiA9IGhzdmFUb0hzdihoc3ZhKTtcbiAgICBoc2xhID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgICByZ2JhID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgICBoZXhhID0gcmdiYVRvSGV4YShyZ2JhKTtcbiAgICBoZXggPSBoc3ZhVG9IZXgoaHN2YSk7XG4gICAgaHNsID0gaHNsYVRvSHNsKGhzbGEpO1xuICAgIHJnYiA9IHJnYmFUb1JnYihyZ2JhKTtcbiAgfVxuICByZXR1cm4geyByZ2IsIGhzbCwgaHN2LCByZ2JhLCBoc2xhLCBoc3ZhLCBoZXgsIGhleGEgfTtcbn07XG4iXX0=

2

package.json
{
"name": "@uiw/color-convert",
"version": "0.0.7",
"version": "0.0.8",
"description": "Color Convert",

@@ -5,0 +5,0 @@ "author": "Kenny Wong <wowohoo@qq.com>",

Color Convert
===
[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@uiw/color-convert)](https://bundlephobia.com/package/@uiw/color-convert) [![npm version](https://img.shields.io/npm/v/@uiw/color-convert.svg)](https://www.npmjs.com/package/@uiw/color-convert)
[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@uiw/color-convert)](https://bundlephobia.com/package/@uiw/color-convert) [![npm version](https://img.shields.io/npm/v/@uiw/color-convert.svg)](https://www.npmjs.com/package/@uiw/color-convert) [![Open in unpkg](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/color-convert/file/README.md)

@@ -6,0 +6,0 @@ ## Install

import { validHex } from './utils';
export * from './utils';
export * from './getContrastingColor';

@@ -17,2 +18,4 @@ const RGB_MAX = 255;

hsva: HsvaColor;
hex: string;
hexa: string;
};

@@ -280,4 +283,7 @@

let hsva!: HsvaColor;
let hex!: string;
let hexa!: string;
if (typeof str === 'string' && validHex(str)) {
hsva = hexToHsva(str);
hex = str;
} else if (typeof str !== 'string') {

@@ -290,6 +296,8 @@ hsva = str;

rgba = hsvaToRgba(hsva);
hexa = rgbaToHexa(rgba);
hex = hsvaToHex(hsva);
hsl = hslaToHsl(hsla);
rgb = rgbaToRgb(rgba);
}
return { rgb, hsl, hsv, rgba, hsla, hsva };
return { rgb, hsl, hsv, rgba, hsla, hsva, hex, hexa };
};
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