@iplab/ngx-color-picker
Version:
> Pure Angular color picker library.
1 lines • 214 kB
Source Map (JSON)
{"version":3,"file":"iplab-ngx-color-picker.mjs","sources":["../../../projects/iplab/ngx-color-picker/src/lib/helpers/base-color.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/cmyk.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/hsla.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/hsva.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/rgba.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/colors-table.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/color.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/base.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/saturation/saturation.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/saturation/saturation.component.html","../../../projects/iplab/ngx-color-picker/src/lib/services/color-picker.service.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/indicator/indicator.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/indicator/indicator.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/hue/hue.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/hue/hue.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/alpha/alpha.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/alpha/alpha.component.html","../../../projects/iplab/ngx-color-picker/src/lib/directives/color-picker-input.directive.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/inputs/rgba-input/rgba-input.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/inputs/rgba-input/rgba-input.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/inputs/hsla-input/hsla-input.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/inputs/hsla-input/hsla-input.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/inputs/hex-input/hex-input.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/inputs/hex-input/hex-input.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/color-preset-sublist/color-preset-sublist.animation.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/color-preset/color-preset.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/pipes/reverse.pipe.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/color-preset-sublist/color-preset-sublist.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/color-preset-sublist/color-preset-sublist.component.html","../../../projects/iplab/ngx-color-picker/src/lib/pipes/chunks.pipe.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/color-presets/color-presets.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/parts/color-presets/color-presets.component.html","../../../projects/iplab/ngx-color-picker/src/lib/helpers/control.class.ts","../../../projects/iplab/ngx-color-picker/src/lib/helpers/helper.functions.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/chrome-picker/chrome-picker.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/chrome-picker/chrome-picker.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/sketch-picker/sketch-picker.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/sketch-picker/sketch-picker.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/compact-picker/compact-picker.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/compact-picker/compact-picker.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/github-picker/github-picker.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/github-picker/github-picker.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/swatches-picker/swatches-picker.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/swatches-picker/swatches-picker.component.html","../../../projects/iplab/ngx-color-picker/src/lib/components/ip-picker/ip-picker.component.ts","../../../projects/iplab/ngx-color-picker/src/lib/components/ip-picker/ip-picker.component.html","../../../projects/iplab/ngx-color-picker/src/lib/color-picker.module.ts","../../../projects/iplab/ngx-color-picker/src/iplab-ngx-color-picker.ts"],"sourcesContent":["\r\n\r\nexport abstract class BaseColor {\r\n public abstract toString(showAlpha?: boolean): string;\r\n public abstract equal(color: BaseColor): boolean;\r\n\r\n protected round(value: number, decimals: number = 2): number {\r\n const factor = Math.pow(10, decimals);\r\n return Math.round(value * factor) / factor;\r\n }\r\n}\r\n","import { BaseColor } from './base-color.class';\r\n\r\n/**\r\n * CMYK color space\r\n *\r\n * Cyan = ranges from 0 to 100%\r\n * Magenta = ranges from 0 to 100%\r\n * Yellow = ranges from 0 to 100%\r\n * blacK = ranges from 0 to 100%\r\n */\r\nexport class Cmyk extends BaseColor {\r\n\r\n constructor(public cyan: number, public magenta: number, public yellow: number, public black: number) {\r\n super();\r\n }\r\n\r\n public toString(): string {\r\n return `cmyk(${this.getCyan()}%, ${this.getMagenta()}%, ${this.getYellow()}%, ${this.getBlack()}%)`;\r\n }\r\n\r\n public getCyan() {\r\n return Math.round(this.cyan);\r\n }\r\n\r\n public getMagenta() {\r\n return Math.round(this.magenta);\r\n }\r\n\r\n public getYellow() {\r\n return Math.round(this.yellow);\r\n }\r\n\r\n public getBlack() {\r\n return Math.round(this.black);\r\n }\r\n\r\n public equal(color: Cmyk): boolean {\r\n if (this === color) {\r\n return true;\r\n }\r\n return this.cyan === color.cyan\r\n && this.magenta === color.magenta\r\n && this.yellow === color.yellow\r\n && this.black === color.black;\r\n }\r\n}\r\n","import { BaseColor } from './base-color.class';\r\n\r\n/**\r\n * HSL and HSI are the same\r\n * \r\n * Hue = ranges from 0 to 360°\r\n * Saturation = ranges from 0 to 100%\r\n * Lightness or Intensity = ranges from 0 to 100%\r\n * Alpha = range from 0-1\r\n */\r\nexport class Hsla extends BaseColor {\r\n\r\n constructor(public hue: number, public saturation: number, public lightness: number, public alpha: number) {\r\n super();\r\n }\r\n\r\n public toString(showAlphaChannel: boolean = true): string {\r\n return showAlphaChannel\r\n ? `hsla(${this.getHue()}, ${this.getSaturation()}%, ${this.getLightness()}%, ${this.getAlpha(true)})`\r\n : `hsl(${this.getHue()}, ${this.getSaturation()}%, ${this.getLightness()}%)`;\r\n }\r\n\r\n public getHue() {\r\n return Math.round(this.hue);\r\n }\r\n\r\n public getSaturation() {\r\n return Math.round(this.saturation);\r\n }\r\n\r\n public getLightness() {\r\n return Math.round(this.lightness);\r\n }\r\n\r\n public getAlpha(round: boolean = false): number {\r\n if (round != false) {\r\n return this.round(this.getAlpha());\r\n }\r\n return this.alpha;\r\n }\r\n\r\n public equal(color: Hsla): boolean {\r\n if (this === color) {\r\n return true;\r\n }\r\n return this.hue === color.hue\r\n && this.saturation === color.saturation\r\n && this.lightness === color.lightness\r\n && this.alpha === color.alpha;\r\n }\r\n}\r\n","import { BaseColor } from './base-color.class';\r\n\r\n/**\r\n * HSB and HSV are the same\r\n *\r\n * Hue = ranges from 0 to 360°\r\n * Saturation = ranges from 0 to 100%\r\n * Brightness or Value = ranges from 0 to 100%\r\n * Alpha = range from 0-1\r\n */\r\nexport class Hsva extends BaseColor {\r\n\r\n constructor(public hue: number, public saturation: number, public value: number, public alpha: number) {\r\n super();\r\n }\r\n\r\n public toString(showAlphaChannel: boolean = true): string {\r\n return showAlphaChannel ? `hsva(${this.getHue()}, ${this.getSaturation()}%, ${this.getValue()}%, ${this.getAlpha(true)})`\r\n : `hsv(${this.getHue()}, ${this.getSaturation()}%, ${this.getValue()}%)`;\r\n }\r\n\r\n public getHue() {\r\n return Math.round(this.hue);\r\n }\r\n\r\n public getSaturation() {\r\n return Math.round(this.saturation);\r\n }\r\n\r\n public getValue() {\r\n return Math.round(this.value);\r\n }\r\n\r\n public getAlpha(round: boolean = false): number {\r\n if (round != false) {\r\n return this.round(this.getAlpha());\r\n }\r\n return this.alpha;\r\n }\r\n\r\n public equal(color: Hsva): boolean {\r\n if (this === color) {\r\n return true;\r\n }\r\n return this.hue === color.hue\r\n && this.saturation === color.saturation\r\n && this.value === color.value\r\n && this.alpha === color.alpha;\r\n }\r\n}\r\n","import { BaseColor } from './base-color.class';\r\n\r\n/**\r\n * RGB (Red Green Blue)\r\n *\r\n * Red = ranges from 0-255\r\n * Green = ranges from 0-255\r\n * Blue = ranges from 0-255\r\n * Alpha = range from 0-1\r\n */\r\nexport class Rgba extends BaseColor {\r\n\r\n constructor(public red: number, public green: number, public blue: number, public alpha: number) {\r\n super();\r\n }\r\n\r\n public toString(showAlphaChannel: boolean = true): string {\r\n return showAlphaChannel\r\n ? `rgba(${this.getRed()}, ${this.getGreen()}, ${this.getBlue()}, ${this.getAlpha(true)})`\r\n : `rgb(${this.getRed()}, ${this.getGreen()}, ${this.getBlue()})`;\r\n }\r\n\r\n public getRed(): number {\r\n return Math.round(this.red);\r\n }\r\n\r\n public getGreen(): number {\r\n return Math.round(this.green);\r\n }\r\n\r\n public getBlue(): number {\r\n return Math.round(this.blue);\r\n }\r\n\r\n public getAlpha(round: boolean = false): number {\r\n if (round != false) {\r\n return this.round(this.getAlpha());\r\n }\r\n return this.alpha;\r\n }\r\n\r\n public equal(color: Rgba): boolean {\r\n if (this === color) {\r\n return true;\r\n }\r\n return this.red === color.red\r\n && this.green === color.green\r\n && this.blue === color.blue\r\n && this.alpha === color.alpha;\r\n }\r\n}\r\n","import { Rgba } from './rgba.class';\r\n\r\n/**\r\n * http://www.w3.org/TR/css3-color/\r\n */\r\nexport class ColorsTable {\r\n public static transparent = new Rgba(0, 0, 0, 0);\r\n public static aliceblue = new Rgba(240, 248, 255, 1);\r\n public static antiquewhite = new Rgba(250, 235, 215, 1);\r\n public static aqua = new Rgba(0, 255, 255, 1);\r\n public static aquamarine = new Rgba(127, 255, 212, 1);\r\n public static azure = new Rgba(240, 255, 255, 1);\r\n public static beige = new Rgba(245, 245, 220, 1);\r\n public static bisque = new Rgba(255, 228, 196, 1);\r\n public static black = new Rgba(0, 0, 0, 1);\r\n public static blanchedalmond = new Rgba(255, 235, 205, 1);\r\n public static blue = new Rgba(0, 0, 255, 1);\r\n public static blueviolet = new Rgba(138, 43, 226, 1);\r\n public static brown = new Rgba(165, 42, 42, 1);\r\n public static burlywood = new Rgba(222, 184, 135, 1);\r\n public static cadetblue = new Rgba(95, 158, 160, 1);\r\n public static chartreuse = new Rgba(127, 255, 0, 1);\r\n public static chocolate = new Rgba(210, 105, 30, 1);\r\n public static coral = new Rgba(255, 127, 80, 1);\r\n public static cornflowerblue = new Rgba(100, 149, 237, 1);\r\n public static cornsilk = new Rgba(255, 248, 220, 1);\r\n public static crimson = new Rgba(220, 20, 60, 1);\r\n public static cyan = new Rgba(0, 255, 255, 1);\r\n public static darkblue = new Rgba(0, 0, 139, 1);\r\n public static darkcyan = new Rgba(0, 139, 139, 1);\r\n public static darkgoldenrod = new Rgba(184, 134, 11, 1);\r\n public static darkgray = new Rgba(169, 169, 169, 1);\r\n public static darkgreen = new Rgba(0, 100, 0, 1);\r\n public static darkgrey = ColorsTable.darkgray;\r\n public static darkkhaki = new Rgba(189, 183, 107, 1);\r\n public static darkmagenta = new Rgba(139, 0, 139, 1);\r\n public static darkolivegreen = new Rgba(85, 107, 47, 1);\r\n public static darkorange = new Rgba(255, 140, 0, 1);\r\n public static darkorchid = new Rgba(153, 50, 204, 1);\r\n public static darkred = new Rgba(139, 0, 0, 1);\r\n public static darksalmon = new Rgba(233, 150, 122, 1);\r\n public static darkseagreen = new Rgba(143, 188, 143, 1);\r\n public static darkslateblue = new Rgba(72, 61, 139, 1);\r\n public static darkslategray = new Rgba(47, 79, 79, 1);\r\n public static darkslategrey = ColorsTable.darkslategray;\r\n public static darkturquoise = new Rgba(0, 206, 209, 1);\r\n public static darkviolet = new Rgba(148, 0, 211, 1);\r\n public static deeppink = new Rgba(255, 20, 147, 1);\r\n public static deepskyblue = new Rgba(0, 191, 255, 1);\r\n public static dimgray = new Rgba(105, 105, 105, 1);\r\n public static dimgrey = ColorsTable.dimgray;\r\n public static dodgerblue = new Rgba(30, 144, 255, 1);\r\n public static firebrick = new Rgba(178, 34, 34, 1);\r\n public static floralwhite = new Rgba(255, 250, 240, 1);\r\n public static forestgreen = new Rgba(34, 139, 34, 1);\r\n public static fuchsia = new Rgba(255, 0, 255, 1);\r\n public static gainsboro = new Rgba(220, 220, 220, 1);\r\n public static ghostwhite = new Rgba(248, 248, 255, 1);\r\n public static gold = new Rgba(255, 215, 0, 1);\r\n public static goldenrod = new Rgba(218, 165, 32, 1);\r\n public static gray = new Rgba(128, 128, 128, 1);\r\n public static grey = ColorsTable.gray;\r\n public static green = new Rgba(0, 128, 0, 1);\r\n public static greenyellow = new Rgba(173, 255, 47, 1);\r\n public static honeydew = new Rgba(240, 255, 240, 1);\r\n public static hotpink = new Rgba(255, 105, 180, 1);\r\n public static indianred = new Rgba(205, 92, 92, 1);\r\n public static indigo = new Rgba(75, 0, 130, 1);\r\n public static ivory = new Rgba(255, 255, 240, 1);\r\n public static khaki = new Rgba(240, 230, 140, 1);\r\n public static lavender = new Rgba(230, 230, 250, 1);\r\n public static lavenderblush = new Rgba(255, 240, 245, 1);\r\n public static lawngreen = new Rgba(124, 252, 0, 1);\r\n public static lemonchiffon = new Rgba(255, 250, 205, 1);\r\n public static lightblue = new Rgba(173, 216, 230, 1);\r\n public static lightcoral = new Rgba(240, 128, 128, 1);\r\n public static lightcyan = new Rgba(224, 255, 255, 1);\r\n public static lightgoldenrodyellow = new Rgba(250, 250, 210, 1);\r\n public static lightgray = new Rgba(211, 211, 211, 1);\r\n public static lightgreen = new Rgba(144, 238, 144, 1);\r\n public static lightgrey = ColorsTable.lightgray;\r\n public static lightpink = new Rgba(255, 182, 193, 1);\r\n public static lightsalmon = new Rgba(255, 160, 122, 1);\r\n public static lightseagreen = new Rgba(32, 178, 170, 1);\r\n public static lightskyblue = new Rgba(135, 206, 250, 1);\r\n public static lightslategray = new Rgba(119, 136, 153, 1);\r\n public static lightslategrey = ColorsTable.lightslategray;\r\n public static lightsteelblue = new Rgba(176, 196, 222, 1);\r\n public static lightyellow = new Rgba(255, 255, 224, 1);\r\n public static lime = new Rgba(0, 255, 0, 1);\r\n public static limegreen = new Rgba(50, 205, 50, 1);\r\n public static linen = new Rgba(250, 240, 230, 1);\r\n public static magenta = new Rgba(255, 0, 255, 1);\r\n public static maroon = new Rgba(128, 0, 0, 1);\r\n public static mediumaquamarine = new Rgba(102, 205, 170, 1);\r\n public static mediumblue = new Rgba(0, 0, 205, 1);\r\n public static mediumorchid = new Rgba(186, 85, 211, 1);\r\n public static mediumpurple = new Rgba(147, 112, 219, 1);\r\n public static mediumseagreen = new Rgba(60, 179, 113, 1);\r\n public static mediumslateblue = new Rgba(123, 104, 238, 1);\r\n public static mediumspringgreen = new Rgba(0, 250, 154, 1);\r\n public static mediumturquoise = new Rgba(72, 209, 204, 1);\r\n public static mediumvioletred = new Rgba(199, 21, 133, 1);\r\n public static midnightblue = new Rgba(25, 25, 112, 1);\r\n public static mintcream = new Rgba(245, 255, 250, 1);\r\n public static mistyrose = new Rgba(255, 228, 225, 1);\r\n public static moccasin = new Rgba(255, 228, 181, 1);\r\n public static navajowhite = new Rgba(255, 222, 173, 1);\r\n public static navy = new Rgba(0, 0, 128, 1);\r\n public static oldlace = new Rgba(253, 245, 230, 1);\r\n public static olive = new Rgba(128, 128, 0, 1);\r\n public static olivedrab = new Rgba(107, 142, 35, 1);\r\n public static orange = new Rgba(255, 165, 0, 1);\r\n public static orangered = new Rgba(255, 69, 0, 1);\r\n public static orchid = new Rgba(218, 112, 214, 1);\r\n public static palegoldenrod = new Rgba(238, 232, 170, 1);\r\n public static palegreen = new Rgba(152, 251, 152, 1);\r\n public static paleturquoise = new Rgba(175, 238, 238, 1);\r\n public static palevioletred = new Rgba(219, 112, 147, 1);\r\n public static papayawhip = new Rgba(255, 239, 213, 1);\r\n public static peachpuff = new Rgba(255, 218, 185, 1);\r\n public static peru = new Rgba(205, 133, 63, 1);\r\n public static pink = new Rgba(255, 192, 203, 1);\r\n public static plum = new Rgba(221, 160, 221, 1);\r\n public static powderblue = new Rgba(176, 224, 230, 1);\r\n public static purple = new Rgba(128, 0, 128, 1);\r\n public static red = new Rgba(255, 0, 0, 1);\r\n public static rosybrown = new Rgba(188, 143, 143, 1);\r\n public static royalblue = new Rgba(65, 105, 225, 1);\r\n public static saddlebrown = new Rgba(139, 69, 19, 1);\r\n public static salmon = new Rgba(250, 128, 114, 1);\r\n public static sandybrown = new Rgba(244, 164, 96, 1);\r\n public static seagreen = new Rgba(46, 139, 87, 1);\r\n public static seashell = new Rgba(255, 245, 238, 1);\r\n public static sienna = new Rgba(160, 82, 45, 1);\r\n public static silver = new Rgba(192, 192, 192, 1);\r\n public static skyblue = new Rgba(135, 206, 235, 1);\r\n public static slateblue = new Rgba(106, 90, 205, 1);\r\n public static slategray = new Rgba(112, 128, 144, 1);\r\n public static slategrey = ColorsTable.slategray;\r\n public static snow = new Rgba(255, 250, 250, 1);\r\n public static springgreen = new Rgba(0, 255, 127, 1);\r\n public static steelblue = new Rgba(70, 130, 180, 1);\r\n public static tan = new Rgba(210, 180, 140, 1);\r\n public static teal = new Rgba(0, 128, 128, 1);\r\n public static thistle = new Rgba(216, 191, 216, 1);\r\n public static tomato = new Rgba(255, 99, 71, 1);\r\n public static turquoise = new Rgba(64, 224, 208, 1);\r\n public static violet = new Rgba(238, 130, 238, 1);\r\n public static wheat = new Rgba(245, 222, 179, 1);\r\n public static white = new Rgba(255, 255, 255, 1);\r\n public static whitesmoke = new Rgba(245, 245, 245, 1);\r\n public static yellow = new Rgba(255, 255, 0, 1);\r\n public static yellowgreen = new Rgba(154, 205, 50, 1);\r\n}\r\n","import { Cmyk } from './cmyk.class';\r\nimport { Hsla } from './hsla.class';\r\nimport { Hsva } from './hsva.class';\r\nimport { Rgba } from './rgba.class';\r\nimport { ColorsTable } from './colors-table.class';\r\n\r\nexport type ColorString = string;\r\n\r\nexport class Color {\r\n\r\n /**\r\n * base color used to calculate other\r\n * default color\r\n * rgb(255, 0, 0)\r\n * hsl(0, 100%, 50%)\r\n * #ff0000\r\n */\r\n private hsva: Hsva = new Hsva(0, 1, 1, 1);\r\n // private rgba: Rgba = new Rgba(255, 0, 0, 1);\r\n\r\n constructor(colorString?: ColorString) {\r\n if (colorString) {\r\n this.stringToColor(colorString);\r\n }\r\n }\r\n\r\n public static from(color: ColorString | Color | Hsva | Rgba | Hsla): Color {\r\n if (typeof color === 'string') {\r\n return new Color(color);\r\n } else if (color instanceof Color) {\r\n return color.clone();\r\n } else if (color instanceof Rgba) {\r\n return new Color().setRgba(color.red, color.green, color.blue, color.alpha);\r\n } else if (color instanceof Hsva) {\r\n return new Color().setHsva(color.hue, color.saturation, color.value, color.alpha);\r\n } else if (color instanceof Hsla) {\r\n return new Color().setHsla(color.hue, color.saturation, color.lightness, color.alpha);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * make from existing color new color object\r\n */\r\n public clone(): Color {\r\n return Color.from(this.getRgba());\r\n }\r\n\r\n /**\r\n * define Color from hex, rgb, rgba, hsl, hsla or cmyk string\r\n */\r\n public setFromString(color: ColorString): this {\r\n return this.stringToColor(color);\r\n }\r\n\r\n /**\r\n * define Color from HSV values\r\n */\r\n public setHsva(hue: number = null, saturation: number = 100, brightness: number = 100, alpha: number = 1): this {\r\n if (hue != null) {\r\n this.hsva.hue = hue;\r\n }\r\n\r\n if (saturation != null) {\r\n this.hsva.saturation = saturation;\r\n }\r\n\r\n if (brightness != null) {\r\n this.hsva.value = brightness;\r\n }\r\n\r\n if (alpha != null) {\r\n alpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;\r\n this.hsva.alpha = alpha;\r\n }\r\n\r\n // this.rgba = this.hsvaToRgba(this.hsva);\r\n return this;\r\n }\r\n\r\n /**\r\n * define Color from RGBa\r\n */\r\n public setRgba(red: number = null, green: number = null, blue: number = null, alpha: number = 1): this {\r\n if (alpha != null) {\r\n alpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;\r\n }\r\n this.hsva = this.rgbaToHsva(new Rgba(red, green, blue, alpha));\r\n return this;\r\n }\r\n\r\n /**\r\n * define Color from HSLa\r\n */\r\n public setHsla(hue: number, saturation: number, lightness: number, alpha: number = 1): this {\r\n if (alpha != null) {\r\n alpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;\r\n }\r\n\r\n const hsla = new Hsla(hue, saturation, lightness, alpha);\r\n this.hsva = this.hslaToHsva(hsla);\r\n return this;\r\n }\r\n\r\n /**\r\n * return hexadecimal value formatted as '#341d2a' or '#341d2aFF' if alhpa channel is enabled\r\n */\r\n public toHexString(alpha: boolean = false): ColorString {\r\n const rgba = this.getRgba();\r\n let hex = '#' + ((1 << 24) | (rgba.getRed() << 16) | (rgba.getGreen() << 8) | rgba.getBlue()).toString(16).substring(1);\r\n if (alpha) {\r\n hex += ((1 << 8) | Math.round(rgba.alpha * 255)).toString(16).substring(1);\r\n }\r\n return hex.toUpperCase();\r\n }\r\n\r\n /**\r\n * return rgba string formatted as rgba(52, 29, 42, 1)\r\n */\r\n public toRgbaString(): ColorString {\r\n return this.getRgba().toString();\r\n }\r\n\r\n /**\r\n * return rgb string formatted as rgb(52, 29, 42)\r\n */\r\n public toRgbString(): ColorString {\r\n return this.getRgba().toString(false);\r\n }\r\n\r\n /**\r\n * return hsla string formatted as hsla(327, 29%, 16%, 1)\r\n */\r\n public toHslaString(): ColorString {\r\n return this.getHsla().toString();\r\n }\r\n\r\n /**\r\n * return hsl string formatted as hsl(327, 29%, 16%)\r\n */\r\n public toHslString(): ColorString {\r\n return this.getHsla().toString(false);\r\n }\r\n\r\n /**\r\n * return hsva string formatted as hsva(327, 29%, 16%, 100%)\r\n */\r\n public toHsvaString(): ColorString {\r\n return this.getHsva().toString();\r\n }\r\n\r\n /**\r\n * return hsv string formatted as hsv(327, 29%, 16%)\r\n */\r\n public toHsvString(): ColorString {\r\n return this.getHsva().toString(false);\r\n }\r\n\r\n /**\r\n * return Cmyk string formatted as cmyk(100%, 100%, 100%, 100%)\r\n */\r\n public toCmykString(): ColorString {\r\n return this.getCmyk().toString();\r\n }\r\n\r\n public getHsva(): Hsva {\r\n return new Hsva(this.hsva.hue, this.hsva.saturation, this.hsva.value, this.hsva.alpha);\r\n }\r\n\r\n public getRgba(): Rgba {\r\n return this.hsvaToRgba(this.getHsva());\r\n }\r\n\r\n public getHsla(): Hsla {\r\n return this.rgbaToHsla(this.getRgba());\r\n }\r\n\r\n public getCmyk(): Cmyk {\r\n return this.rgbaToCmyk(this.getRgba());\r\n }\r\n\r\n public equal(color: Color): boolean {\r\n return this.hsva.equal(color.getHsva());\r\n }\r\n\r\n private hsvaToHsla(color: Hsva): Hsla {\r\n const hue = color.hue;\r\n const s = color.saturation / 100;\r\n const v = color.value / 100;\r\n const lightness = ((2 - s) * color.value) / 2;\r\n const saturation = (s * v) / ((lightness <= 1) ? lightness : 2 - lightness) || 0;\r\n\r\n return new Hsla(hue, lightness * 100, saturation * 100, color.alpha);\r\n }\r\n\r\n private hslaToHsva(color: Hsla): Hsva {\r\n const hue = color.hue;\r\n const l = (color.lightness / 100) * 2;\r\n const s = (color.saturation / 100) * (l <= 1 ? l : 2 - l);\r\n const value = (l + s) / 2;\r\n const saturation = (2 * s) / (l + s) || 0;\r\n\r\n return new Hsva(hue, saturation, value, color.alpha);\r\n }\r\n\r\n private rgbaToHsva(color: Rgba): Hsva {\r\n const red = color.red / 255;\r\n const green = color.green / 255;\r\n const blue = color.blue / 255;\r\n const alpha = color.alpha;\r\n\r\n const Cmax = Math.max(red, green, blue);\r\n const Cmin = Math.min(red, green, blue);\r\n const delta = Cmax - Cmin;\r\n\r\n let hue = 0;\r\n let saturation: number = Cmax === 0 ? 0 : delta / Cmax;\r\n let brightness: number = Cmax;\r\n\r\n if (Cmax !== Cmin) {\r\n switch (Cmax) {\r\n case red:\r\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\r\n break;\r\n case green:\r\n hue = 2 + (blue - red) / delta;\r\n break;\r\n case blue:\r\n hue = 4 + (red - green) / delta;\r\n break;\r\n }\r\n hue /= 6;\r\n }\r\n\r\n hue = hue * 360;\r\n saturation = saturation * 100;\r\n brightness = brightness * 100;\r\n\r\n return new Hsva(hue, saturation, brightness, alpha);\r\n }\r\n\r\n private hsvaToRgba(color: Hsva): Rgba {\r\n let red = 1;\r\n let green = 0;\r\n let blue = 0;\r\n const saturation = color.saturation / 100;\r\n const brightness = color.value / 100;\r\n const alpha = color.alpha;\r\n const hex = color.hue / 60;\r\n\r\n const primary = Math.floor(hex);\r\n const secoundary = hex - primary;\r\n const a = (1 - saturation) * brightness;\r\n const b = (1 - (saturation * secoundary)) * brightness;\r\n const c = (1 - (saturation * (1 - secoundary))) * brightness;\r\n\r\n switch (primary) {\r\n case 6:\r\n case 0: red = brightness; green = c; blue = a; break;\r\n case 1: red = b; green = brightness; blue = a; break;\r\n case 2: red = a; green = brightness; blue = c; break;\r\n case 3: red = a; green = b; blue = brightness; break;\r\n case 4: red = c; green = a; blue = brightness; break;\r\n case 5: red = brightness; green = a; blue = b; break;\r\n }\r\n\r\n red = red * 255;\r\n green = green * 255;\r\n blue = blue * 255;\r\n\r\n return new Rgba(red, green, blue, alpha);\r\n }\r\n\r\n private rgbaToHsla(color: Rgba): Hsla {\r\n // based on CamanJS\r\n const red = color.red / 255;\r\n const green = color.green / 255;\r\n const blue = color.blue / 255;\r\n const alpha = color.alpha;\r\n\r\n const max = Math.max(red, green, blue);\r\n const min = Math.min(red, green, blue);\r\n\r\n let hue = 0;\r\n let saturation = 0;\r\n let luminance = (max + min) / 2;\r\n const delta = max - min;\r\n\r\n if (max !== min) {\r\n saturation = luminance > 0.5 ? delta / (2.0 - max - min) : delta / (max + min);\r\n switch (max) {\r\n case red:\r\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\r\n break;\r\n case green:\r\n hue = (blue - red) / delta + 2;\r\n break;\r\n case blue:\r\n hue = (red - green) / delta + 4;\r\n break;\r\n }\r\n\r\n hue /= 6;\r\n }\r\n\r\n hue = hue * 360;\r\n saturation = saturation * 100;\r\n luminance = luminance * 100;\r\n\r\n return new Hsla(hue, saturation, luminance, alpha);\r\n }\r\n\r\n /**\r\n * convert rgb color from HSLa\r\n *\r\n * hue = 0 => 360\r\n * saturation = 0 => 1\r\n * lightness = 0 => 1\r\n */\r\n private hslaToRgba(color: Hsla): Rgba {\r\n const hue = color.hue / 360;\r\n const saturation = color.saturation / 100;\r\n const lightness = color.lightness / 100;\r\n const alpha = color.alpha;\r\n\r\n let red = lightness;\r\n let green = lightness;\r\n let blue = lightness;\r\n\r\n if (saturation !== 0) {\r\n const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - (lightness * saturation);\r\n const p = 2 * lightness - q;\r\n\r\n red = this.hueToRgb(p, q, hue + (1 / 3));\r\n green = this.hueToRgb(p, q, hue);\r\n blue = this.hueToRgb(p, q, hue - (1 / 3));\r\n }\r\n\r\n red = red * 255;\r\n green = green * 255;\r\n blue = blue * 255;\r\n\r\n return new Rgba(red, green, blue, alpha);\r\n }\r\n\r\n private hueToRgb(p, q, t): number {\r\n // based on CamanJS\r\n if (t < 0) { t += 1; }\r\n if (t > 1) { t -= 1; }\r\n if (t < 1 / 6) { return p + (q - p) * 6 * t; }\r\n if (t < 1 / 2) { return q; }\r\n if (t < 2 / 3) { return p + (q - p) * (2 / 3 - t) * 6; }\r\n return p;\r\n }\r\n\r\n /**\r\n * The Red, Green, Blue values are given in the range of 0..255,\r\n *\r\n * the red color(R) is calculated from the cyan(C) and black(K) colors,\r\n * the green color(G) is calculated from the magenta(M) and black(K) colors,\r\n * The blue color(B) is calculated from the yellow(Y) and black(K) colors.\r\n *\r\n * Below is the formula of CMYK to RGB convertion\r\n *\r\n * Red = 255 × 1 - min( (1 - Cyan ÷ 100) × (1 - Black) )\r\n * Green = 255 × 1 - min(1 - Magenta ÷ 100) × (1 - Black)\r\n * Blue = 255 × 1 - min(1 - Yellow ÷ 100) × (1 - Black)\r\n */\r\n private cmykToRgba(color: Cmyk): Rgba {\r\n const black = color.black / 100;\r\n const cyan = color.cyan / 100;\r\n const magenta = color.magenta / 100;\r\n const yellow = color.yellow / 100;\r\n\r\n let red = Math.min(1, (1 - cyan) * (1 - black));\r\n let green = Math.min(1, (1 - magenta) * (1 - black));\r\n let blue = Math.min(1, (1 - yellow) * (1 - black));\r\n\r\n red = red * 255;\r\n green = green * 255;\r\n blue = blue * 255;\r\n\r\n return new Rgba(red, green, blue, 1);\r\n }\r\n\r\n /**\r\n * The max number of R, G, B values are 255, first of all, we divided them by 255 to become the number\r\n * of 0~1, this ratio will be used in the calculation.\r\n * Rc = R ÷ 255\r\n * Gc = G ÷ 255\r\n * Bc = B ÷ 255\r\n * The black key(K) color could be many result, when we assume a black key value,\r\n * the other three colors(cyan, magenta, yellow) can be calculated.\r\n * we can calculate it from the red, green and blue colors, the max number of black key should be :\r\n * K = 1 - min(Rc, Gc, Bc);\r\n *\r\n * or we can assume we run out of the black ink, need use the remaining other three color inks to finish the printing job.\r\n * K = 0;\r\n *\r\n * The cyan color(C) is calculated from the red and black colors:\r\n * C = (1 - Rc - K) ÷ (1 - K)\r\n *\r\n * The magenta color (M) is calculated from the green and black colors:\r\n * M = (1 - Gr - K) ÷ (1 - K)\r\n *\r\n * The yellow color(Y) is calculated from the blue and black colors:\r\n * Y = (1 - Bc - K) ÷ ( 1 - K)\r\n */\r\n private rgbaToCmyk(color: Rgba): Cmyk {\r\n const red = color.red / 255;\r\n const green = color.green / 255;\r\n const blue = color.blue / 255;\r\n\r\n let cyan = 1 - red;\r\n let magenta = 1 - green;\r\n let yellow = 1 - blue;\r\n let black = Math.min(cyan, magenta, yellow);\r\n\r\n if (black === 1) {\r\n return new Cmyk(0, 0, 0, 100);\r\n }\r\n\r\n cyan = (cyan - black) / (1 - black);\r\n magenta = (magenta - black) / (1 - black);\r\n yellow = (yellow - black) / (1 - black);\r\n\r\n black = black * 100;\r\n cyan = cyan * 100;\r\n magenta = magenta * 100;\r\n yellow = yellow * 100;\r\n\r\n return new Cmyk(cyan, magenta, yellow, black);\r\n }\r\n\r\n private roundNumber(n: number): number {\r\n return Math.round(n * 100) / 100;\r\n }\r\n\r\n private stringToColor(colorString: ColorString): this {\r\n const str = colorString.replace(/ /g, '').toLowerCase();\r\n /**\r\n * try to find color by name in table\r\n */\r\n let rgba: Rgba = ColorsTable[str] || null;\r\n\r\n /**\r\n * hex find\r\n */\r\n if (str[0] === '#') {\r\n let hex = str.substr(1);\r\n const length = hex.length;\r\n let a = 1;\r\n let hexArray = [];\r\n\r\n if (length === 3) {\r\n hexArray = hex.split('').map((value) => value + value);\r\n } else if (length === 6) {\r\n hexArray = hex.match(/.{2}/g);\r\n } else if (length === 8) {\r\n const alpha = hex.substr(-2);\r\n hex = hex.substr(0, length - 2);\r\n a = parseInt(alpha || 'FF', 16) / 255;\r\n hexArray = hex.match(/.{2}/g);\r\n }\r\n\r\n if (hexArray.length === 3) {\r\n rgba = new Rgba(parseInt(hexArray[0], 16), parseInt(hexArray[1], 16), parseInt(hexArray[2], 16), a);\r\n }\r\n }\r\n\r\n const OpenParenthesis = str.indexOf('(');\r\n const CloseParenthesis = str.indexOf(')');\r\n\r\n if (OpenParenthesis !== -1 && CloseParenthesis + 1 === str.length) {\r\n const colorTypeName = str.substr(0, OpenParenthesis);\r\n const params = str.substr(OpenParenthesis + 1, CloseParenthesis - (OpenParenthesis + 1)).split(',');\r\n let alpha = 1;\r\n\r\n switch (colorTypeName) {\r\n case 'rgba':\r\n alpha = parseFloat(params.pop());\r\n // Fall through.\r\n case 'rgb':\r\n rgba = new Rgba(parseInt(params[0], 10), parseInt(params[1], 10), parseInt(params[2], 10), alpha);\r\n break;\r\n case 'hsla':\r\n alpha = parseFloat(params.pop());\r\n case 'hsl':\r\n const hsla = new Hsla(parseInt(params[0], 10), parseInt(params[1], 10), parseInt(params[2], 10), alpha);\r\n rgba = this.hslaToRgba(hsla);\r\n break;\r\n case 'cmyk':\r\n const cmyk = new Cmyk(\r\n parseInt(params[0], 10),\r\n parseInt(params[1], 10),\r\n parseInt(params[2], 10),\r\n parseInt(params[3], 10));\r\n rgba = this.cmykToRgba(cmyk);\r\n break;\r\n }\r\n }\r\n\r\n if (rgba) {\r\n this.hsva = this.rgbaToHsva(rgba);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { ElementRef, OnDestroy, Directive, inject } from '@angular/core';\r\nimport { fromEvent, merge, Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class BaseComponent implements OnDestroy {\r\n\r\n private readonly subscriptions: Subscription[] = [];\r\n private window: any = { pageXOffset: 0, pageYOffset: 0 };\r\n private readonly requestAnimationFrame;\r\n\r\n private mouseup = new Subject<void>();\r\n\r\n private readonly document = inject(DOCUMENT);\r\n\r\n protected readonly elementRef: ElementRef = inject(ElementRef);\r\n\r\n constructor() {\r\n this.window = document.defaultView;\r\n this.requestAnimationFrame = this.getRequestAnimationFrame();\r\n this.addEventListeners();\r\n }\r\n\r\n protected abstract movePointer(coordinates: { x: number; y: number; height: number; width: number; }): void;\r\n\r\n private addEventListeners(): void {\r\n this.subscriptions.push(\r\n merge(\r\n fromEvent(this.elementRef.nativeElement, 'touchstart', { passive: true, capture: true }),\r\n fromEvent(this.elementRef.nativeElement, 'mousedown', { capture: true })\r\n )\r\n .subscribe((e: TouchEvent | MouseEvent) => this.onEventChange(e))\r\n );\r\n }\r\n\r\n private onEventChange(event: MouseEvent | TouchEvent): void {\r\n this.calculate(event);\r\n\r\n merge(\r\n fromEvent(this.document, 'mouseup', { capture: true }),\r\n fromEvent(this.document, 'touchend', { capture: true })\r\n )\r\n .pipe(takeUntil(this.mouseup))\r\n .subscribe(() => this.mouseup.next());\r\n\r\n merge(\r\n fromEvent(this.document, 'mousemove', { capture: true }),\r\n fromEvent(this.document, 'touchmove', { passive: true, capture: true })\r\n )\r\n .pipe(takeUntil(this.mouseup))\r\n .subscribe((e: MouseEvent | TouchEvent) => this.calculate(e));\r\n }\r\n\r\n private calculateCoordinates(event: MouseEvent | TouchEvent): void {\r\n const { width: elWidth, height: elHeight, top: elTop, left: elLeft } = this.elementRef.nativeElement.getBoundingClientRect();\r\n\r\n const pageX = typeof (event as MouseEvent).pageX === 'number'\r\n ? (event as MouseEvent).pageX : (event as TouchEvent).touches[0].pageX;\r\n const pageY = typeof (event as MouseEvent).pageY === 'number'\r\n ? (event as MouseEvent).pageY : (event as TouchEvent).touches[0].pageY;\r\n\r\n const x = Math.max(0, Math.min(pageX - (elLeft + this.window.pageXOffset), elWidth));\r\n const y = Math.max(0, Math.min(pageY - (elTop + this.window.pageYOffset), elHeight));\r\n\r\n this.movePointer({ x, y, height: elHeight, width: elWidth });\r\n }\r\n\r\n private calculate(event: MouseEvent | TouchEvent): void {\r\n event.stopPropagation();\r\n if (!event.type.includes('touch')) {\r\n event.preventDefault();\r\n }\r\n if (!this.requestAnimationFrame) {\r\n return this.calculateCoordinates(event);\r\n }\r\n\r\n this.requestAnimationFrame.call(this.window, () => this.calculateCoordinates(event));\r\n }\r\n\r\n private getRequestAnimationFrame(): () => void {\r\n return this.window.requestAnimationFrame ||\r\n this.window.webkitRequestAnimationFrame ||\r\n this.window.mozRequestAnimationFrame ||\r\n this.window.oRequestAnimationFrame ||\r\n this.window.msRequestAnimationFrame;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.mouseup.next();\r\n this.mouseup.complete();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n effect,\r\n model,\r\n ModelSignal,\r\n viewChild,\r\n Signal\r\n} from '@angular/core';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { BaseComponent } from './../base.component';\r\n\r\n\r\n@Component({\r\n selector: `saturation-component`,\r\n templateUrl: `./saturation.component.html`,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n './saturation.component.scss'\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class SaturationComponent extends BaseComponent {\r\n\r\n public color: ModelSignal<Color> = model.required<Color>();\r\n\r\n public readonly pointer: Signal<ElementRef> = viewChild.required<ElementRef>('pointer');\r\n\r\n constructor(private readonly renderer: Renderer2) {\r\n super();\r\n\r\n /**\r\n * color can be changed through inputs\r\n * and then we need to move pointer\r\n */\r\n effect(() => {\r\n const hsva = this.color().getHsva();\r\n this.changePointerPosition(hsva.saturation, hsva.value);\r\n // background update\r\n this.updateBackgroundColor();\r\n })\r\n }\r\n\r\n protected movePointer({ x, y, height, width }): void {\r\n const saturation = (x * 100) / width;\r\n let bright = -((y * 100) / height) + 100;\r\n\r\n /**\r\n * prevent cursor jumping\r\n * when value is rgb(0,0,0) \r\n */\r\n if (saturation > 10) {\r\n bright = bright < 1 ? 1 : bright;\r\n }\r\n\r\n this.changePointerPosition(saturation, bright);\r\n const color = this.color().getHsva();\r\n const newColor = new Color().setHsva(color.hue, saturation, bright, color.alpha);\r\n this.color.set(newColor);\r\n }\r\n\r\n private updateBackgroundColor(): void {\r\n let backgroundColor = null;\r\n if (this.color()) {\r\n const currentColor = this.color().getHsva();\r\n backgroundColor = new Color().setHsva(currentColor.hue, 100, 100).toRgbString();\r\n }\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'backgroundColor', backgroundColor);\r\n }\r\n\r\n private changePointerPosition(x: number, y: number): void {\r\n const pointer = this.pointer();\r\n this.renderer.setStyle(pointer.nativeElement, 'top', `${100 - y}%`);\r\n this.renderer.setStyle(pointer.nativeElement, 'left', `${x}%`);\r\n }\r\n}\r\n","<div #pointer class=\"pointer\"></div>","import { Injectable, InjectionToken } from \"@angular/core\";\r\n\r\n\r\nexport interface IColorPickerConfig {\r\n indicatorTitle: string;\r\n presetsTitle: string;\r\n}\r\n\r\nexport const COLOR_PICKER_CONFIG = new InjectionToken<IColorPickerConfig>('COLOR_PICKER_CONFIG', { providedIn: 'root', factory: () => new ColorPickerConfig() });\r\n\r\n@Injectable({ providedIn: 'root', useExisting: COLOR_PICKER_CONFIG })\r\nexport class ColorPickerConfig implements IColorPickerConfig {\r\n public indicatorTitle: string = 'Copy color to clipboard';\r\n public presetsTitle: string = '{0}. Long-click to show alternate shades.';\r\n}\r\n\r\n","import { Component, Renderer2, ElementRef, ChangeDetectionStrategy, Inject, OnInit, InputSignal, input, effect, viewChild, Signal } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { ColorPickerConfig } from './../../../services/color-picker.service';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: `indicator-component`,\r\n templateUrl: `./indicator.component.html`,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n `./indicator.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class IndicatorComponent implements OnInit {\r\n\r\n public color: InputSignal<Color> = input.required<Color>();\r\n\r\n public colorType: InputSignal<'rgba' | 'hex' | 'hsla'> = input<'rgba' | 'hex' | 'hsla'>('rgba');\r\n\r\n public readonly backgroundColorEl: Signal<ElementRef<HTMLDivElement>> = viewChild.required<ElementRef<HTMLDivElement>>('backgroundColorEl')\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private readonly pickerConfig: ColorPickerConfig,\r\n private readonly renderer: Renderer2,\r\n private readonly elementRef: ElementRef,\r\n @Inject(DOCUMENT) private readonly document) {\r\n this.renderTitle();\r\n\r\n effect(() => {\r\n this.renderBackgroundColor();\r\n })\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.subscriptions.push(\r\n fromEvent(this.elementRef.nativeElement, 'click').subscribe(() => this.onClick())\r\n );\r\n }\r\n\r\n private renderTitle(): void {\r\n this.renderer.setAttribute(this.elementRef.nativeElement, 'title', this.pickerConfig?.indicatorTitle || '');\r\n }\r\n\r\n private renderBackgroundColor(): void {\r\n if (!this.backgroundColorEl()) {\r\n return;\r\n }\r\n this.renderer.setStyle(this.backgroundColorEl().nativeElement, 'backgroundColor', this.color().toRgbaString());\r\n }\r\n\r\n private onClick() {\r\n const input = this.renderer.createElement('input');\r\n this.renderer.setStyle(input, 'position', 'absolute');\r\n this.renderer.setStyle(input, 'top', '-100%');\r\n this.renderer.setStyle(input, 'left', '-100%');\r\n\r\n switch (this.colorType()) {\r\n case 'hsla':\r\n input.value = this.color().toHslaString();\r\n break;\r\n case 'hex':\r\n input.value = this.color().toHexString(this.color().getRgba().alpha < 1);\r\n break;\r\n default:\r\n input.value = this.color().toRgbaString();\r\n }\r\n\r\n this.renderer.appendChild(this.elementRef.nativeElement, input);\r\n input.select();\r\n this.document.execCommand('copy');\r\n this.renderer.removeChild(this.elementRef.nativeElement, input);\r\n }\r\n}\r\n","<div #backgroundColorEl>\r\n <svg viewBox=\"0 0 48 48\">\r\n <path d=\"M0 0h48v48h-48z\" fill=\"none\"/>\r\n <path d=\"M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z\"/>\r\n </svg>\r\n</div>","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n booleanAttribute,\r\n InputSignal,\r\n input,\r\n effect,\r\n model,\r\n ModelSignal,\r\n viewChild,\r\n Signal\r\n} from '@angular/core';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { BaseComponent } from './../base.component';\r\n\r\n@Component({\r\n selector: `hue-component`,\r\n templateUrl: `./hue.component.html`,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n `./hue.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class HueComponent extends BaseComponent {\r\n\r\n public color: ModelSignal<Color> = model.required<Color>();\r\n\r\n public isVertical: InputSignal<boolean> = input<boolean, boolean>(false, { alias: 'vertical', transform: booleanAttribute });\r\n\r\n public readonly pointer: Signal<ElementRef> = viewChild.required<ElementRef>('pointer');\r\n\r\n constructor(private readonly renderer: Renderer2) {\r\n super();\r\n\r\n effect(() => {\r\n const hsva = this.color().getHsva();\r\n this.changePointerPosition(hsva.hue);\r\n })\r\n }\r\n\r\n protected movePointer({ x, y, height, width }): void {\r\n const hue = this.isVertical() ? (y / height) * 359 : (x / width) * 359;\r\n this.changePointerPosition(hue);\r\n\r\n const currentColor = this.color().getHsva();\r\n const newHueColor = new Color().setHsva(hue, currentColor.saturation, currentColor.value, currentColor.alpha);\r\n this.color.set(newHueColor);\r\n }\r\n\r\n /**\r\n * hue value is in range from 0 to 360°\r\n */\r\n private changePointerPosition(hue: number): void {\r\n const x = (hue / 360) * 100;\r\n const orientation = this.isVertical() ? 'top' : 'left';\r\n this.renderer.setStyle(this.pointer().nativeElement, orientation, `${x}%`);\r\n }\r\n}","<div #pointer class=\"pointer\"></div>","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ViewChild,\r\n Renderer2,\r\n booleanAttribute,\r\n input,\r\n output,\r\n InputSignal,\r\n OutputEmitterRef,\r\n effect\r\n} from '@angular/core';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { BaseComponent } from './../base.component';\r\n\r\n@Component({\r\n selector: `alpha-component`,\r\n templateUrl: `./alpha.component.html`,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n `./alpha.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class AlphaComponent extends BaseComponent {\r\n\r\n public color: InputSignal<Color> = input.required<Color>();\r\n\r\n public colorChange: OutputEmitterRef<Color> = output<Color>();\r\n\r\n public isVertical: InputSignal<boolean> = input<boolean, boolean>(false, { alias: 'vertical', transform: booleanAttribute });\r\n\r\n @ViewChild('pointer', { static: true })\r\n public pointer: ElementRef;\r\n\r\n constructor(private readonly renderer: Renderer2) {\r\n super();\r\n\r\n /**\r\n * color can be changed through inputs\r\n * and then we need to move pointer\r\n */\r\n effect(() => {\r\n const hsva = this.color().getHsva();\r\n this.changePointerPosition(hsva.alpha);\r\n })\r\n }\r\n\r\n protected movePointer({ x, y, height, width }): void {\r\n const alpha = this.isVertical() ? y / height : x / width;\r\n this.changePointerPosition(alpha);\r\n\r\n const hsva = this.color().getHsva();\r\n const newColor = new Color().setHsva(hsva.hue, hsva.saturation, hsva.value, alpha);\r\n this.colorChange.emit(newColor);\r\n }\r\n\r\n /**\r\n * hue value is in range from 0 to 360°\r\n */\r\n private changePointerPosition(alpha: number): void {\r\n const x = alpha * 100;\r\n const orientation = this.isVertical() ? 'top' : 'left';\r\n this.renderer.setStyle(this.pointer.nativeElement, orientation, `${x}%`);\r\n }\r\n\r\n public get gradient(): string {\r\n const rgba = this.color().getRgba();\r\n const orientation = this.isVertical() ? 'bottom' : 'right';\r\n return `linear-gradient(to ${orientation}, rgba(${rgba.red}, ${rgba.green}, ${rgba.blue}, 0) 0%, rgb(${rgba.red}, ${rgba.green}, ${rgba.blue}) 100%)`;\r\n }\r\n\r\n}","<div #pointer class=\"pointer\"></div>\r\n<div class=\"gradient-color\" [style.background]=\"gradient\"></div>","import { Directive, Input, Output, EventEmitter, HostListener, input, InputSignal, OutputEmitterRef, output, numberAttribute, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[inputChange]',\r\n standalone: true\r\n})\r\nexport class ColorPickerInputDirective {\r\n\r\n public min: InputSignal<number> = input<number, number>(0, { transform: numberAttribute });\r\n\r\n public max: InputSignal<number> = input<number, number>(255, { transform: numberAttribute });\r\n\r\n public inputChange: OutputEmitterRef<number> = output<number>();\r\n\r\n @HostListener('input', ['$event'])\r\n public inputChanges(event: any): void {\r\n const element = event.target as HTMLInputElement || event.srcElement as HTMLInputElement;\r\n const value = element.value;\r\n\r\n const numeric = parseFloat(value);\r\n if (!isNaN(numeric) && numeric >= this.min() && numeric <= this.max()) {\r\n this.inputChange.emit(numeric);\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, booleanAttribute, InputSignal, input, model, ModelSignal } from '@angular/core';\r\nimport { Color } from './../../../../helpers/color.class';\r\nimport { ColorPickerInputDirective } from '../../../../directives/color-picker-input.directive';\r\n\r\n\r\n@Component({\r\n selector: `rgba-input-component`,\r\n templateUrl: `./rgba-input.component.html`,\r\n styleUrls: [\r\n `./../../base.style.scss`,\r\n `./../input.component.scss`,\r\n `./rgba-input.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ColorPickerInputDirective]\r\n})\r\nexport class RgbaComponent {\r\n\r\n public color: ModelSignal<Color> = model.required<Color>();\r\n\r\n public labelVisible: InputSignal<boolean> = input<boolean, boolean>(false, { alias: 'label', transform: booleanAttribute });\r\n\r\n public isAlphaVisible: InputSignal<boolean> = input<boolean, boolean>(true, { alias: 'alpha', transform: booleanAttribute });\r\n\r\n public get value() {\r\n return this.color()?.getRgba();\r\n }\r\n\r\n public onInputChange(newValue: number, color: 'R' | 'G' | 'B' | 'A') {\r\n const value = this.value;\r\n const red = color === 'R' ? newValue : value.red;\r\n const green = color === 'G' ? newValue : value.green;\r\n const blue = color === 'B' ? newValue : value.blue;\r\n const alpha = color === 'A' ? newValue : value.alpha;\r\n\r\n const newColor = new Color().setRgba(red, green, blue, alpha);\r\n this.color.set(newColor);\r\n }\r\n}\r\n","<div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]*\" min=\"0\" max=\"255\" [value]=\"value?.getRed().toString()\" (inputChange)=\"onInputChange($event, 'R')\" />\r\n @if (labelVisible()) {\r\n <span>R</span>\r\n }\r\n</div>\r\n<div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]*\" min=\"0\" max=\"255\" [value]=\"value?.getGreen().toString()\" (inputChange)=\"onInputChange($event, 'G')\" />\r\n @if (labelVisible()) {\r\n <span>G</span>\r\n }\r\n</div>\r\n<div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]*\" min=\"0\" max=\"255\" [value]=\"value?.getBlue().toString()\" (inputChange)=\"onInputChange($event, 'B')\" />\r\n @if (labelVisible()) {\r\n <span>B</span>\r\n }\r\n</div>\r\n@if (isAlphaVisible()) {\r\n <div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" [value]=\"value?.getAlpha(true).toString()\" (inputChange)=\"onInputChange($event, 'A')\" />\r\n @if (labelVisible()) {\r\n <span>A</span>\r\n }\r\n </div>\r\n}","import { Component, ChangeDetectionStrategy, booleanAttribute, InputSignal, input, model, ModelSignal } from '@angular/core';\r\nimport { Color } from './../../../../helpers/color.class';\r\nimport { ColorPickerInputDirective } from '../../../../directives/color-picker-input.directive';\r\n\r\n\r\n@Component({\r\n selector: `hsla-input-component`,\r\n templateUrl: `./hsla-input.component.html`,\r\n styleUrls: [\r\n `./../../base.style.scss`,\r\n `./../input.component.scss`,\r\n `./hsla-input.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ColorPickerInputDirective]\r\n})\r\nexport class HslaComponent {\r\n\r\n public color: ModelSignal<Color> = model.required<Color>();\r\n\r\n public labelVisible: InputSignal<boolean> = input<boolean, boolean>(false, { alias: 'label', transform: booleanAttribute });\r\n\r\n public isAlphaVisible: InputSignal<boolean> = input<boolean, boolean>(true, { alias: 'alpha', transform: booleanAttribute });\r\n\r\n public get value() {\r\n return this.color()?.getHsla();\r\n }\r\n\r\n public onInputChange(newValue: number, color: 'H' | 'S' | 'L' | 'A') {\r\n const value = this.value;\r\n const hue = color === 'H' ? newValue : value.hue;\r\n const saturation = color === 'S' ? newValue : value.saturation;\r\n const lightness = color === 'L' ? newValue : value.lightness;\r\n const alpha = color === 'A' ? newValue : value.alpha;\r\n\r\n const newColor = new Color().setHsla(hue, saturation, lightness, alpha);\r\n this.color.set(newColor);\r\n }\r\n}\r\n","<div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]*\" min=\"0\" max=\"360\" [value]=\"value?.getHue().toString()\" (inputChange)=\"onInputChange($event, 'H')\" />\r\n @if (labelVisible()) {\r\n <span>H</span>\r\n }\r\n</div>\r\n<div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [value]=\"value?.getSaturation() + '%'\" (inputChange)=\"onInputChange($event, 'S')\" />\r\n @if (labelVisible()) {\r\n <span>S</span>\r\n }\r\n</div>\r\n<div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]*\" min=\"0\" max=\"100\" [value]=\"value?.getLightness() + '%'\" (inputChange)=\"onInputChange($event, 'L')\" />\r\n @if (labelVisible()) {\r\n <span>L</span>\r\n }\r\n</div>\r\n@if (isAlphaVisible()) {\r\n <div class=\"column\">\r\n <input type=\"text\" pattern=\"[0-9]+([\\.,][0-9]{1,2})?\" min=\"0\" max=\"1\" [value]=\"value?.getAlpha(true).toString()\" (inputChange)=\"onInputChange($event, 'A')\" />\r\n @if (labelVisible()) {\r\n <span>A</span>\r\n }\r\n </div>\r\n}","import { Component, ChangeDetectionStrategy, booleanAttribute, InputSignal, input, model, ModelSignal } from '@angular/core';\r\nimport { Color } from '../../../../helpers/color.class';\r\n\r\n\r\n@Component({\r\n selector: `hex-input-component`,\r\n templateUrl: `./hex-input.component.html`,\r\n styleUrls: [\r\n `./../../base.style.scss`,\r\n `./../input.component.scss`,\r\n `./hex-input.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class HexComponent {\r\n\r\n public color: ModelSignal<Color> = model.required<Color>();\r\n\r\n public labelVisible: InputSignal<boolean> = input<boolean, boolean>(false, { alias: 'label', transform: booleanAttribute });\r\n\r\n public prefixValue: InputSignal<string> = input<string>('', { alias: 'prefix' });\r\n\r\n public get value() {\r\n return this.prefixValue() + (this.color() ? this.color().toHexString(this.color().getRgba().alpha < 1).replace('#', '') : '');\r\n }\r\n\r\n public onInputChange(event: KeyboardEvent, inputValue: string): void {\r\n const value = inputValue.toLowerCase().replace('#', '');\r\n\r\n if (\r\n ((event.keyCode === 13 || event.key.toLowerCase() === 'enter') && value.length === 3)\r\n || value.length === 6 || value.length === 8) {\r\n const hex = parseInt(value, 16);\r\n const hexStr = hex.toString(16);\r\n\r\n /**\r\n * if value is valid\r\n * change color else do nothing\r\n * after parsing number leading 0 is removed,\r\n * compare length and add leading 0 before comparing two values\r\n */\r\n if (hexStr.padStart(value.length, '0') === value && this.value !== value) {\r\n const newColor = new Color(`#${value}`);\r\n this.color.set(newColor);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"column\">\r\n <input #elRef type=\"text\" [value]=\"value\" (keyup)=\"onInputChange($event, elRef.value)\" />\r\n @if (labelVisible()) {\r\n <span>HEX</span>\r\n }\r\n</div>","import {\r\n trigger, stagger, query,\r\n transition, animate, style, state\r\n} from '@angular/animations';\r\n\r\n\r\nexport const OpacityAnimation = trigger('opacityAnimation', [\r\n state('true', style({ opacity: 1 })),\r\n transition('void => *', [\r\n style({ opacity: 0 }),\r\n animate('.08s ease-in')\r\n ])\r\n])\r\n\r\n\r\nexport const ListAnimation = trigger('listAnimation', [\r\n transition('* => up', [\r\n query(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n stagger(-10, [\r\n animate('.08s', style({ opacity: 1, height: '*' }))\r\n ])\r\n ], { optional: true })\r\n ]),\r\n transition('* => right', [\r\n query(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n stagger(-10, [\r\n animate('.08s', style({ opacity: 1, height: '*' }))\r\n ])\r\n ], { optional: true })\r\n ]),\r\n transition('* => down', [\r\n query(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n stagger(10, [\r\n animate('.08s', style({ opacity: 1, height: '*' }))\r\n ])\r\n ], { optional: true })\r\n ]),\r\n transition('* => left', [\r\n query(':enter', [\r\n style({ opacity: 0, height: 0 }),\r\n stagger(10, [\r\n animate('.08s', style({ opacity: 1, height: '*' }))\r\n ])\r\n ], { optional: true })\r\n ])\r\n])","import {\r\n Component,\r\n HostBinding,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n ElementRef,\r\n booleanAttribute,\r\n input,\r\n InputSignal,\r\n effect,\r\n Renderer2,\r\n output,\r\n OutputEmitterRef\r\n} from '@angular/core';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { Subject, of, fromEvent, Subscription, merge } from 'rxjs';\r\nimport { takeUntil, delay, map } from 'rxjs/operators';\r\nimport { ColorPickerConfig } from './../../../services/color-picker.service';\r\n\r\n@Component({\r\n selector: `color-preset`,\r\n template: ``,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n `./color-preset.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true\r\n})\r\nexport class ColorPresetComponent implements OnDestroy {\r\n\r\n public activeColor: InputSignal<Color> = input.required<Color>();\r\n\r\n public color: InputSignal<Color> = input.required<Color>();\r\n\r\n public showDepthText: InputSignal<boolean> = input<boolean, boolean>(false, { alias: 'show-depth-title', transform: booleanAttribute });\r\n\r\n public selectionChange: OutputEmitterRef<Color> = output<Color>();\r\n\r\n public longPress: OutputEmitterRef<boolean> = output<boolean>();\r\n\r\n private mouseup = new Subject<void>();\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private readonly pickerConfig: ColorPickerConfig,\r\n private readonly elementRef: ElementRef,\r\n private readonly renderer: Renderer2) {\r\n this.addEventListeners();\r\n\r\n effect(() => {\r\n this.updateBackground();\r\n this.updateTitleAttr();\r\n })\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.mouseup.next();\r\n this.mouseup.complete();\r\n this.removeEventListeners();\r\n }\r\n\r\n @HostBinding('class.selected')\r\n public get className(): boolean {\r\n return this.activeColor() ? this.color().toRgbaString() === this.activeColor().toRgbaString() : false;\r\n }\r\n\r\n private updateBackground(): void {\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'backgroundColor', this.color().toRgbaString());\r\n }\r\n\r\n private updateTitleAttr(): void {\r\n this.renderer.setAttribute(this.elementRef.nativeElement, 'title', this.getTitle());\r\n }\r\n\r\n private getTitle() {\r\n const color = this.color() ? this.color().toHexString() : '';\r\n\r\n if (this.showDepthText()) {\r\n return (this.pickerConfig?.presetsTitle || '').replace(/\\{\\s*(.+?)\\s*\\}/g, (match, firstMatch) => color);\r\n }\r\n return color;\r\n }\r\n\r\n private addEventListeners(): void {\r\n this.subscriptions.push(\r\n merge(\r\n fromEvent(this.elementRef.nativeElement, 'mouseup'),\r\n fromEvent(this.elementRef.nativeElement, 'touchend')\r\n )\r\n .subscribe(() => this.onTouchEnd())\r\n );\r\n\r\n this.subscriptions.push(\r\n merge(\r\n fromEvent(this.elementRef.nativeElement, 'mousedown'),\r\n fromEvent(this.elementRef.nativeElement, 'touchstart', { passive: true })\r\n )\r\n .subscribe((e: MouseEvent | TouchEvent) => this.onTouch(e))\r\n );\r\n }\r\n\r\n private removeEventListeners(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n\r\n private onTouch(event: MouseEvent | TouchEvent): void {\r\n of(event)\r\n .pipe(\r\n map((e: MouseEvent | TouchEvent) => e.timeStamp || new Date().getTime()),\r\n delay(350),\r\n takeUntil(this.mouseup)\r\n )\r\n .subscribe(() => this.longPress.emit(true));\r\n\r\n this.selectionChange.emit(this.color());\r\n }\r\n\r\n private onTouchEnd(): void {\r\n this.mouseup.next();\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'reverse',\r\n standalone: true\r\n})\r\nexport class ReversePipe implements PipeTransform {\r\n transform(arr: Array<any>, isReversed: boolean = true) {\r\n if (isReversed) {\r\n return arr.slice().reverse();\r\n }\r\n\r\n return arr;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Inject,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n HostBinding,\r\n InputSignal,\r\n input,\r\n OutputEmitterRef,\r\n output\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { OpacityAnimation, ListAnimation } from './color-preset-sublist.animation';\r\nimport { fromEvent, merge, Subscription } from 'rxjs';\r\nimport { ColorPresetComponent } from './../color-preset/color-preset.component';\r\nimport { ReversePipe } from './../../../pipes/reverse.pipe';\r\n\r\n@Component({\r\n selector: `color-preset-sublist`,\r\n templateUrl: `./color-preset-sublist.component.html`,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n `./color-preset-sublist.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ColorPresetComponent, ReversePipe],\r\n animations: [OpacityAnimation, ListAnimation]\r\n})\r\nexport class ColorPresetSublist implements OnDestroy {\r\n\r\n public list: InputSignal<Array<Color>> = input.required<Array<Color>>();\r\n\r\n public activeColor: InputSignal<Color> = input.required<Color>();\r\n\r\n public direction: InputSignal<'down' | 'up' | 'left' | 'right'> = input<'down' | 'up' | 'left' | 'right'>('up');\r\n\r\n public selectionChange: OutputEmitterRef<Color> = output<Color>();\r\n\r\n public showChildren: boolean = false;\r\n\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private readonly document,\r\n private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.removeListeners();\r\n this.cdr.detach();\r\n }\r\n\r\n @HostBinding('className')\r\n public get className(): string {\r\n return `direction-${this.direction()}`;\r\n }\r\n\r\n /**\r\n * emit color change\r\n */\r\n public onSelectionChange(color: Color): void {\r\n this.selectionChange.emit(color);\r\n }\r\n\r\n public onLongPress(): void {\r\n this.showChildren = true;\r\n this.listenDocumentEvents();\r\n }\r\n\r\n private removeListeners(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n\r\n private listenDocumentEvents(): void {\r\n this.subscriptions.push(\r\n merge(\r\n fromEvent(this.document, 'mousedown'),\r\n fromEvent(this.document, 'touchstart', { passive: true })\r\n )\r\n .subscribe(() => this.closeList())\r\n );\r\n }\r\n\r\n private closeList(): void {\r\n if (this.showChildren) {\r\n this.showChildren = false;\r\n this.cdr.markForCheck();\r\n this.removeListeners();\r\n }\r\n }\r\n}","<color-preset [show-depth-title]=\"list().length > 1\" [color]=\"list()[0]\" [activeColor]=\"activeColor()\" (longPress)=\"onLongPress()\" (selectionChange)=\"onSelectionChange($event)\" />\r\n<div class=\"reflection\" [style.backgroundColor]=\"list()[0].toRgbaString()\"></div>\r\n<div class=\"reflection\" [style.backgroundColor]=\"list()[0].toRgbaString()\"></div>\r\n\r\n@if (showChildren) {\r\n <div class=\"sublist\" [@opacityAnimation]=\"showChildren\" [@listAnimation]=\"direction\">\r\n @for(preset of list() | reverse : (direction() == 'up' || direction() == 'right'); track preset) {\r\n <color-preset \r\n [color]=\"preset\"\r\n [activeColor]=\"activeColor()\"\r\n (selectionChange)=\"onSelectionChange($event)\" />\r\n }\r\n </div>\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'chunks',\r\n standalone: true\r\n})\r\nexport class ChunksPipe implements PipeTransform {\r\n transform(arr: any, chunkSize: number) {\r\n return arr.reduce((prev, cur, i) => (i % chunkSize) ? prev : prev.concat([arr.slice(i, i + chunkSize)]), []);\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, InputSignal, input, numberAttribute, model, ModelSignal } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { Color } from './../../../helpers/color.class';\r\nimport { ColorPresetSublist } from './../color-preset-sublist/color-preset-sublist.component';\r\nimport { ColorPresetComponent } from './../color-preset/color-preset.component';\r\nimport { ChunksPipe } from './../../../pipes/chunks.pipe';\r\n\r\n@Component({\r\n selector: `color-presets-component`,\r\n templateUrl: `./color-presets.component.html`,\r\n styleUrls: [\r\n `./../base.style.scss`,\r\n `./color-presets.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ColorPresetComponent, ColorPresetSublist, NgClass, ChunksPipe]\r\n})\r\nexport class ColorPresetsComponent {\r\n\r\n public columns: InputSignal<number> = input<number, number>(8, { transform: numberAttribute });\r\n\r\n public colorPresets: InputSignal<Array<Array<Color> | Color>> = input.required<Array<Array<Color> | Color>>();\r\n\r\n public color: ModelSignal<Color> = model.required<Color>();\r\n\r\n public direction: InputSignal<'down' | 'up' | 'left' | 'right'> = input<'down' | 'up' | 'left' | 'right'>('up');\r\n\r\n public onSelectionChange(color: Color): void {\r\n const selectedRgbaColor = color.getRgba();\r\n\r\n const newColor = new Color()\r\n .setRgba(selectedRgbaColor.red, selectedRgbaColor.green, selectedRgbaColor.blue, selectedRgbaColor.alpha);\r\n this.color.set(newColor);\r\n }\r\n\r\n public isList(colorPreset: Array<Array<Color> | Color>): boolean {\r\n return Array.isArray(colorPreset);\r\n }\r\n}","@for (chunk of colorPresets() | chunks: columns(); track chunk; let firstRow = $first; let lastRow = $last) {\r\n <div class=\"presets-row\" [ngClass]=\"{ 'first': firstRow, 'last': lastRow }\">\r\n\r\n @for (preset of chunk; track preset; let firstColumn = $first; let lastColumn = $last;) {\r\n @if (isList(preset)) {\r\n <color-preset-sublist \r\n [list]=\"preset\" \r\n [direction]=\"direction()\"\r\n [activeColor]=\"color()\"\r\n [ngClass]=\"{ 'first': firstColumn, 'last': lastColumn }\"\r\n (selectionChange)=\"onSelectionChange($event)\" />\r\n } @else {\r\n <color-preset \r\n [ngClass]=\"{ 'first': firstColumn, 'last': lastColumn }\"\r\n [color]=\"preset\" \r\n [activeColor]=\"color()\" \r\n (selectionChange)=\"onSelectionChange($event)\" />\r\n }\r\n }\r\n </div>\r\n}","import { Color, ColorString } from './color.class';\r\nimport { Subject, BehaviorSubject } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { Rgba } from './rgba.class';\r\nimport { Hsla } from './hsla.class';\r\nimport { Hsva } from './hsva.class';\r\n\r\nexport enum ColorType {\r\n hex = 'hex',\r\n hexa = 'hexa',\r\n rgba = 'rgba',\r\n rgb = 'rgb',\r\n hsla = 'hsla',\r\n hsl = 'hsl',\r\n cmyk = 'cmyk'\r\n}\r\n\r\nexport class ColorPickerControl {\r\n\r\n private modelValue: Color = null;\r\n private initValue: Color = null;\r\n private readonly valueChanged: Subject<Color> = new Subject();\r\n\r\n public readonly presetsVisibilityChanges: BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n public initType: ColorType = null;\r\n public readonly alphaChannelVisibilityChanges: BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n public readonly valueChanges = this.valueChanged.asObservable().pipe(distinctUntilChanged((x, y) => x.toRgbaString() == y.toRgbaString()));\r\n\r\n private colorPresets: Array<Array<Color> | Color> = [];\r\n\r\n constructor() {\r\n const color = Color.from(new Rgba(255, 0, 0, 1));\r\n this.setValue(color);\r\n }\r\n\r\n public setValueFrom(color: ColorString | Color | Rgba | Hsla | Hsva): this {\r\n const newColor = Color.from(color);\r\n if (!this.initValue) {\r\n this.initValue = Color.from(color);\r\n }\r\n\r\n if (typeof color === 'string' && !this.initType) {\r\n this.initType = this.finOutInputType(color);\r\n }\r\n this.setValue(newColor);\r\n return this;\r\n }\r\n\r\n public get value(): Color {\r\n return this.modelValue;\r\n }\r\n\r\n /**\r\n * @internal\r\n * used for two-way data binding\r\n */\r\n public set value(value: Color) {\r\n this.setValue(value);\r\n }\r\n\r\n /**\r\n * reset color to initial\r\n */\r\n public reset(): this {\r\n const color = !this.initValue ?\r\n Color.from(new Rgba(255, 0, 0, 1)) :\r\n this.initValue.clone();\r\n this.setValue(color);\r\n return this;\r\n }\r\n\r\n public isAlphaChannelEnabled(): boolean {\r\n return this.alphaChannelVisibilityChanges.value;\r\n }\r\n\r\n public showAlphaChannel(): this {\r\n this.alphaChannelVisibilityChanges.next(true);\r\n return this;\r\n }\r\n\r\n public hideAlphaChannel(): this {\r\n this.alphaChannelVisibilityChanges.next(false);\r\n return this;\r\n }\r\n\r\n public getColorType(colorString: ColorString): ColorType {\r\n return this.finOutInputType(colorString);\r\n }\r\n\r\n public setColorPresets(colorPresets: Array<Array<ColorString> | ColorString>): this {\r\n this.colorPresets = this.setPresets(colorPresets);\r\n return this;\r\n }\r\n\r\n public get presets() {\r\n return this.colorPresets;\r\n }\r\n\r\n public hasPresets(): boolean {\r\n return this.colorPresets.length > 0;\r\n }\r\n\r\n public isPresetVisible(): boolean {\r\n return this.presetsVisibilityChanges.value;\r\n }\r\n\r\n public showPresets(): this {\r\n this.presetsVisibilityChanges.next(true);\r\n return this;\r\n }\r\n\r\n public hidePresets(): this {\r\n this.presetsVisibilityChanges.next(false);\r\n return this;\r\n }\r\n\r\n private setValue(value: Color): this {\r\n this.modelValue = value;\r\n this.valueChanged.next(value);\r\n return this;\r\n }\r\n\r\n private finOutInputType(colorString: ColorString): ColorType {\r\n const str = colorString.replace(/ /g, '').toLowerCase();\r\n if (str[0] === '#') {\r\n if (str.length > 7) {\r\n return ColorType.hexa;\r\n }\r\n return ColorType.hex;\r\n }\r\n\r\n const OpenParenthesis = str.indexOf('(');\r\n const colorTypeName = str.substr(0, OpenParenthesis);\r\n switch (colorTypeName) {\r\n case ColorType.rgba:\r\n return ColorType.rgba;\r\n case ColorType.rgb:\r\n return ColorType.rgb;\r\n case ColorType.hsla:\r\n return ColorType.hsla;\r\n case ColorType.hsl:\r\n return ColorType.hsl;\r\n case ColorType.cmyk:\r\n return ColorType.cmyk;\r\n }\r\n return null;\r\n }\r\n\r\n private setPresets(colorPresets: Array<Array<ColorString> | ColorString>): Array<Color> {\r\n const presets = [];\r\n\r\n for (const color of colorPresets) {\r\n if (Array.isArray(color)) {\r\n presets.push(this.setPresets(color));\r\n } else {\r\n presets.push(new Color(color));\r\n }\r\n }\r\n return presets;\r\n }\r\n}\r\n","import { Color, ColorString } from './color.class';\r\nimport { ColorType } from './control.class';\r\n\r\n\r\nexport function getValueByType(color: Color, type: ColorType): string {\r\n switch (type) {\r\n case ColorType.hex:\r\n return color.toHexString();\r\n case ColorType.hexa:\r\n return color.toHexString(true);\r\n case ColorType.rgb:\r\n return color.toRgbString();\r\n case ColorType.rgba:\r\n return color.toRgbaString();\r\n case ColorType.hsl:\r\n return color.toHslString();\r\n case ColorType.hsla:\r\n return color.toHslaString();\r\n default:\r\n return color.toRgbaString();\r\n }\r\n}\r\n\r\nexport function isColorEqual(first: Color, second: Color): boolean;\r\nexport function isColorEqual(first: ColorString, second: ColorString): boolean;\r\nexport function isColorEqual(first: Color | ColorString, second: Color | ColorString): boolean {\r\n if (first instanceof Color && second instanceof Color) {\r\n return first.equal(second);\r\n }\r\n return first === second;\r\n}","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n model,\r\n ModelSignal,\r\n input,\r\n InputSignal,\r\n SimpleChanges,\r\n OnChanges\r\n} from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ColorPickerControl } from './../../helpers/control.class';\r\nimport { getValueByType, isColorEqual } from './../../helpers/helper.functions';\r\nimport { Subscription } from 'rxjs';\r\nimport { SaturationComponent } from './../parts/saturation/saturation.component';\r\nimport { IndicatorComponent } from './../parts/indicator/indicator.component';\r\nimport { HueComponent } from './../parts/hue/hue.component';\r\nimport { AlphaComponent } from './../parts/alpha/alpha.component';\r\nimport { RgbaComponent } from './../parts/inputs/rgba-input/rgba-input.component';\r\nimport { HslaComponent } from './../parts/inputs/hsla-input/hsla-input.component';\r\nimport { HexComponent } from './../parts/inputs/hex-input/hex-input.component';\r\nimport { ColorPresetsComponent } from '../parts/color-presets/color-presets.component';\r\nimport { ColorString } from '../../helpers/color.class';\r\n\r\n\r\n@Component({\r\n selector: `chrome-picker`,\r\n templateUrl: `./chrome-picker.component.html`,\r\n styleUrls: [\r\n `./../parts/base.style.scss`,\r\n `./chrome-picker.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n SaturationComponent,\r\n IndicatorComponent,\r\n HueComponent,\r\n AlphaComponent,\r\n RgbaComponent,\r\n HslaComponent,\r\n HexComponent,\r\n ColorPresetsComponent,\r\n AsyncPipe\r\n ]\r\n})\r\nexport class ChromePickerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public selectedPresentation: number = 0;\r\n public presentations = ['rgba', 'hsla', 'hex'];\r\n\r\n public color: ModelSignal<ColorString> = model<ColorString>();\r\n\r\n public control: InputSignal<ColorPickerControl> = input<ColorPickerControl>(new ColorPickerControl());\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n constructor(private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.color()) {\r\n this.control().setValueFrom(this.color());\r\n }\r\n\r\n /**\r\n * set color presets\r\n * defined by this chrome color picker component\r\n */\r\n if (!this.control().hasPresets()) {\r\n this.control()\r\n .setColorPresets([\r\n ['#f44336', '#ffebee', '#ffcdd2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E53935', '#D32F2F', '#C62828', '#B71C1C'],\r\n ['#E91E63', '#fce4ec', '#f8bbd0', '#f48fb1', '#f06292', '#ec407a', '#e91e63', '#d81b60', '#c2185b', '#ad1457', '#880e4f'],\r\n ['#9C27B0', '#F3e5f5', '#e1bee7', '#ce93d8', '#ba68c8', '#ab47bc', '#9c27b0', '#8e24aa', '#7b1fa2', '#6a1b9a', '#4a148c'],\r\n ['#673AB7', '#ede7f6', '#d1c4e9', '#b39ddb', '#9575cd', '#7e57c2', '#673ab7', '#5e35b1', '#512da8', '#4527a0', '#311b92'],\r\n ['#3F51B5', '#e8eaf6', '#c5cae9', '#9fa8da', '#7986cb', '#5c6bc0', '#3f51b5', '#3949ab', '#303f9f', '#283593', '#1a237e'],\r\n ['#2196F3', '#e3f2fd', '#bbdefb', '#90caf9', '#64b5f6', '#42a5f5', '#2196f3', '#1e88e5', '#1976d2', '#1565c0', '#0D47a1'],\r\n ['#03A9F4', '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b'],\r\n ['#00BCD4', '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064'],\r\n ['#009688', '#E0F2f1', '#b2dfdb', '#80cbc4', '#4db6ac', '#26a69a', '#009688', '#00897b', '#00796b', '#00695c', '#004d40'],\r\n ['#4CAF50', '#e8f5e9', '#c8e6c9', '#a5d6a7', '#81c784', '#66bb6a', '#4caf50', '#43a047', '#388e3c', '#2e7d32', '#1b5e20'],\r\n ['#8BC34A', '#f1f8e9', '#dcedc8', '#c5e1a5', '#aed581', '#9ccc65', '#8bc34a', '#7cb342', '#689f38', '#558b2f', '#33691e'],\r\n ['#cddc39', '#f9fbe7', '#f0f4c3', '#e6ee9c', '#dce775', '#d4e157', '#c0dc39', '#c0ca33', '#afb42b', '#9e9d24', '#827717'],\r\n ['#ffeb3b', '#fffde7', '#fff9c4', '#fff59d', '#fff176', '#ffee58', '#ffeb3b', '#fdd835', '#fbc02d', '#f9a825', '#f57f17'],\r\n ['#ffc107', '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00'],\r\n ['#ff9800', '#fff3e0', '#ffe0b2', '#ffcc80', '#ffb74d', '#ffa726', '#ff9800', '#fb8c00', '#f57c00', '#ef6c00', '#e65100'],\r\n ['#ff5722', '#fbe9e7', '#ffccbc', '#ffab91', '#ff8a65', '#ff7043', '#ff5722', '#f4511e', '#e64a19', '#d84315', '#bf360c'],\r\n ['#795548', '#efebe9', '#d7ccc8', '#bcaaa4', '#a1887f', '#8d6e63', '#795548', '#6d4c41', '#5d4037', '#4e342e', '#3e2723'],\r\n ['#9e9e9e', '#fafafa', '#f5f5f5', '#eee', '#e0e0e0', '#bdbdbd', '#9e9e9e', '#757575', '#616161', '#424242', '#212121'],\r\n ['#607d8b', '#eceff1', '#cfd8dc', '#b0bec5', '#90a4ae', '#78909c', '#60708b', '#546e7a', '#455a64', '#37474f', '#263238']\r\n ]);\r\n }\r\n\r\n this.subscriptions.push(\r\n this.control().valueChanges.subscribe((value) => {\r\n this.color.set(getValueByType(value, this.control().initType));\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n /**\r\n * trigger only if color binding is changed\r\n */\r\n const color = this.color();\r\n const control = this.control();\r\n if (color && control && !isColorEqual(getValueByType(control.value, control.initType), color)) {\r\n control.setValueFrom(color);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.cdr.detach();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n\r\n public changePresentation(): void {\r\n this.selectedPresentation =\r\n this.selectedPresentation === this.presentations.length - 1 ? 0 : this.selectedPresentation + 1;\r\n }\r\n\r\n}\r\n","<ng-content select=\"[before]\"></ng-content>\r\n\r\n<saturation-component [(color)]=\"control().value\"></saturation-component>\r\n\r\n<div class=\"controls\">\r\n <div class=\"controls-row hue-alpha\">\r\n <div class=\"column\">\r\n <indicator-component [colorType]=\"presentations[selectedPresentation]\" [color]=\"control().value\" />\r\n </div>\r\n <div class=\"column\">\r\n <hue-component [(color)]=\"control().value\" />\r\n @if (control().alphaChannelVisibilityChanges | async) {\r\n <alpha-component [(color)]=\"control().value\" />\r\n }\r\n </div>\r\n </div>\r\n <div class=\"controls-row presentation\">\r\n <div class=\"column\">\r\n @switch (presentations[selectedPresentation]) {\r\n @case('rgba') {\r\n <rgba-input-component [alpha]=\"control().alphaChannelVisibilityChanges | async\" label [(color)]=\"control().value\" />\r\n }\r\n @case ('hsla') {\r\n <hsla-input-component [alpha]=\"control().alphaChannelVisibilityChanges | async\" label [(color)]=\"control().value\" />\r\n }\r\n @case('hex') {\r\n <hex-input-component label prefix=\"#\" [(color)]=\"control().value\" />\r\n }\r\n }\r\n </div>\r\n <div class=\"column type-column\">\r\n <span class=\"type-btn\" (click)=\"changePresentation()\"></span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n@if (control().presetsVisibilityChanges | async) {\r\n <color-presets-component [(color)]=\"control().value\" [colorPresets]=\"control().presets\" />\r\n}\r\n\r\n<ng-content></ng-content>","import {\r\n Component,\r\n OnInit,\r\n SimpleChanges,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n ModelSignal,\r\n model,\r\n input,\r\n InputSignal,\r\n} from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ColorString } from './../../helpers/color.class';\r\nimport { ColorPickerControl } from './../../helpers/control.class';\r\nimport { getValueByType, isColorEqual } from './../../helpers/helper.functions';\r\nimport { Subscription } from 'rxjs';\r\nimport { SaturationComponent } from './../parts/saturation/saturation.component';\r\nimport { IndicatorComponent } from './../parts/indicator/indicator.component';\r\nimport { HueComponent } from './../parts/hue/hue.component';\r\nimport { AlphaComponent } from './../parts/alpha/alpha.component';\r\nimport { RgbaComponent } from './../parts/inputs/rgba-input/rgba-input.component';\r\nimport { HexComponent } from './../parts/inputs/hex-input/hex-input.component';\r\nimport { ColorPresetsComponent } from '../parts/color-presets/color-presets.component';\r\n\r\n@Component({\r\n selector: `sketch-picker`,\r\n templateUrl: `./sketch-picker.component.html`,\r\n styleUrls: [\r\n `./../parts/base.style.scss`,\r\n `./sketch-picker.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n SaturationComponent,\r\n IndicatorComponent,\r\n HueComponent,\r\n AlphaComponent,\r\n HexComponent,\r\n RgbaComponent,\r\n ColorPresetsComponent,\r\n AsyncPipe\r\n ]\r\n})\r\nexport class SketchPickerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public color: ModelSignal<ColorString> = model<ColorString>();\r\n\r\n public control: InputSignal<ColorPickerControl> = input<ColorPickerControl>(new ColorPickerControl());\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n constructor(private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.color()) {\r\n this.control().setValueFrom(this.color());\r\n }\r\n\r\n if (!this.control().hasPresets()) {\r\n /**\r\n * set color presets\r\n * defined by sketch color picker component\r\n */\r\n this.control()\r\n .setColorPresets([\r\n '#d0041b', '#8b572a', '#f5a623', '#f8e71c', '#7ed321', '#417506', '#bd10e0', '#9013fe',\r\n '#4a90e2', '#50e3c2', '#b8e986', '#030303', '#4a4a4a', '#9b9b9b', '#fff'\r\n ]);\r\n }\r\n\r\n this.subscriptions.push(\r\n this.control().valueChanges.subscribe((value) => {\r\n this.color.set(getValueByType(value, this.control().initType));\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n /**\r\n * trigger only if color binding is changed\r\n */\r\n const color = this.color();\r\n const control = this.control();\r\n if (color && control && !isColorEqual(getValueByType(control.value, control.initType), color)) {\r\n control.setValueFrom(color);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.cdr.detach();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n}\r\n","<ng-content select=\"[before]\"></ng-content>\r\n\r\n<saturation-component [(color)]=\"control().value\" />\r\n\r\n<div class=\"controls\">\r\n <div class=\"controls-row hue-alpha\">\r\n <div class=\"column\">\r\n <hue-component [(color)]=\"control().value\" />\r\n @if (control().alphaChannelVisibilityChanges | async) {\r\n <alpha-component [(color)]=\"control().value\" />\r\n }\r\n </div>\r\n <div class=\"column indicator-column\">\r\n <indicator-component colorType=\"rgba\" [color]=\"control().value\" />\r\n </div>\r\n </div>\r\n <div class=\"controls-row presentation\">\r\n <div class=\"column\">\r\n <hex-input-component label [(color)]=\"control().value\" />\r\n </div>\r\n <div class=\"column\">\r\n <rgba-input-component [alpha]=\"control().alphaChannelVisibilityChanges | async\" label [(color)]=\"control().value\" />\r\n </div>\r\n </div>\r\n</div>\r\n\r\n@if (control().presetsVisibilityChanges | async) {\r\n <color-presets-component [(color)]=\"control().value\" [colorPresets]=\"control().presets\" />\r\n}\r\n\r\n<ng-content></ng-content>","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n model,\r\n ModelSignal,\r\n InputSignal,\r\n input,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ColorPickerControl } from './../../helpers/control.class';\r\nimport { getValueByType, isColorEqual } from './../../helpers/helper.functions';\r\nimport { Subscription } from 'rxjs';\r\nimport { SaturationComponent } from './../parts/saturation/saturation.component';\r\nimport { IndicatorComponent } from './../parts/indicator/indicator.component';\r\nimport { HueComponent } from './../parts/hue/hue.component';\r\nimport { HexComponent } from './../parts/inputs/hex-input/hex-input.component';\r\nimport { ColorPresetsComponent } from '../parts/color-presets/color-presets.component';\r\nimport { ColorString } from '../../helpers/color.class';\r\n\r\n@Component({\r\n selector: `compact-picker`,\r\n templateUrl: `./compact-picker.component.html`,\r\n styleUrls: [\r\n `./../parts/base.style.scss`,\r\n `./compact-picker.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n SaturationComponent,\r\n IndicatorComponent,\r\n HueComponent,\r\n ColorPresetsComponent,\r\n HexComponent,\r\n AsyncPipe\r\n ]\r\n})\r\nexport class CompactPickerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public color: ModelSignal<ColorString> = model<ColorString>();\r\n\r\n public control: InputSignal<ColorPickerControl> = input<ColorPickerControl>(new ColorPickerControl());\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n constructor(private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.color()) {\r\n this.control().setValueFrom(this.color());\r\n }\r\n\r\n /**\r\n * set color presets\r\n * defined by compact color picker component\r\n */\r\n if (!this.control().hasPresets()) {\r\n this.control()\r\n .setColorPresets([\r\n '#6da6e8', '#74c283', '#f9d948', '#f5943f', '#f66c6c', '#ef8ab8', '#696cd4', '#6c6c6c', '#f6f5f5'\r\n ]);\r\n }\r\n\r\n this.subscriptions.push(\r\n this.control().valueChanges.subscribe((value) => {\r\n this.color.set(getValueByType(value, this.control().initType));\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n /**\r\n * trigger only if color binding is changed\r\n */\r\n const color = this.color();\r\n const control = this.control();\r\n if (color && control && !isColorEqual(getValueByType(control.value, control.initType), color)) {\r\n control.setValueFrom(color);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.cdr.detach();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n}","<ng-content select=\"[before]\"></ng-content>\r\n\r\n@if (control().presetsVisibilityChanges | async) {\r\n <color-presets-component \r\n direction=\"down\"\r\n [columns]=\"9\" \r\n [(color)]=\"control().value\" \r\n [colorPresets]=\"control().presets\" />\r\n}\r\n\r\n<div class=\"controls\">\r\n <div class=\"controls-row saturation-hue\">\r\n <div class=\"column\">\r\n <saturation-component [(color)]=\"control().value\" />\r\n </div>\r\n <div class=\"column hue-column\">\r\n <hue-component vertical [(color)]=\"control().value\" />\r\n </div>\r\n </div>\r\n <div class=\"controls-row presentation\">\r\n <div class=\"column\">\r\n <svg class=\"pencil\" viewBox=\"0 0 1024 1024\">\r\n <path d=\"M639.77,121.045l-48.598,84.2l112.215,64.8l48.6-84.205L639.77,121.045z M558.773,261.354\r\n L315.78,682.206l112.215,64.795L670.99,326.15L558.773,261.354z M690.816,75.691l74.922,43.286\r\n c41.682,24.045,55.52,76.564,31.725,117.784l-37.967,65.68l-32.398,56.11L451.706,835.594L282.452,947.303\r\n c-40.961,27.004-70.24,9.027-67.329-38.894l12.149-202.411l275.395-477.041l32.398-56.11l37.883-65.686\r\n C596.824,65.946,649.473,51.857,690.816,75.691z M274.689,883.015l120.908-79.818l-112.218-64.8L274.689,883.015z\"/>\r\n </svg>\r\n <hex-input-component prefix=\"#\" [(color)]=\"control().value\" />\r\n </div>\r\n <div class=\"column\">\r\n <indicator-component colorType=\"hex\" [color]=\"control().value\" />\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-content></ng-content>","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n HostBinding,\r\n model,\r\n ModelSignal,\r\n InputSignal,\r\n input,\r\n SimpleChanges,\r\n OnChanges,\r\n} from '@angular/core';\r\nimport { ColorString } from './../../helpers/color.class';\r\nimport { ColorPickerControl } from './../../helpers/control.class';\r\nimport { getValueByType, isColorEqual } from './../../helpers/helper.functions';\r\nimport { Subscription } from 'rxjs';\r\nimport { ColorPresetsComponent } from '../parts/color-presets/color-presets.component';\r\n\r\n\r\nexport function columnAttribute(value: string | number | null | undefined): number | 'auto' {\r\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value))\r\n ? Number(value)\r\n : 'auto';\r\n}\r\n\r\n@Component({\r\n selector: `github-picker`,\r\n templateUrl: `./github-picker.component.html`,\r\n styleUrls: [\r\n `./../parts/base.style.scss`,\r\n `./github-picker.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n ColorPresetsComponent\r\n ]\r\n})\r\nexport class GithubPickerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public color: ModelSignal<ColorString> = model<ColorString>();\r\n\r\n public control: InputSignal<ColorPickerControl> = input<ColorPickerControl>(new ColorPickerControl());\r\n\r\n public columns: InputSignal<'auto' | number> = input<'auto' | number, 'auto' | number>(8, { transform: columnAttribute });\r\n\r\n @HostBinding('style.width')\r\n public get width() {\r\n return this.columns() === 'auto' ? `auto` : `${25 * (this.columns() as number) + 12}px`;\r\n }\r\n\r\n public get columnsCount() {\r\n return this.columns() === 'auto' ? this.control().presets.length : this.columns();\r\n }\r\n \r\n private subscriptions: Array<Subscription> = [];\r\n\r\n constructor(private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.color()) {\r\n this.control().setValueFrom(this.color());\r\n }\r\n\r\n if (!this.control().hasPresets()) {\r\n /**\r\n * set color presets\r\n * defined by github color picker component\r\n */\r\n this.control()\r\n .setColorPresets([\r\n '#b80000', '#db3e00', '#fccb00', '#008b02', '#006b76', '#1273de', '#004dcf', '#5300eb',\r\n '#eb9694', '#fad0c3', '#fef3bd', '#c1e1c5', '#bedadc', '#c4def6', '#bed3f3', '#d4c4fb'\r\n ]);\r\n }\r\n\r\n this.subscriptions.push(\r\n this.control().valueChanges.subscribe((value) => {\r\n this.color.set(getValueByType(value, this.control().initType));\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n /**\r\n * trigger only if color binding is changed\r\n */\r\n const color = this.color();\r\n const control = this.control();\r\n if (color && control && !isColorEqual(getValueByType(control.value, control.initType), color)) {\r\n control.setValueFrom(color);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.cdr.detach();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n}\r\n","<ng-content select=\"[before]\"></ng-content>\r\n\r\n<color-presets-component \r\n direction=\"down\"\r\n [columns]=\"columnsCount\"\r\n [(color)]=\"control().value\" \r\n [colorPresets]=\"control().presets\" />\r\n\r\n<ng-content></ng-content>","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n ModelSignal,\r\n model,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { ColorString } from './../../helpers/color.class';\r\nimport { ColorPickerControl } from './../../helpers/control.class';\r\nimport { getValueByType, isColorEqual } from './../../helpers/helper.functions';\r\nimport { Subscription } from 'rxjs';\r\nimport { ColorPresetsComponent } from '../parts/color-presets/color-presets.component';\r\n\r\n@Component({\r\n selector: `swatches-picker`,\r\n templateUrl: `./swatches-picker.component.html`,\r\n styleUrls: [\r\n `./../parts/base.style.scss`,\r\n `./swatches-picker.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n ColorPresetsComponent\r\n ]\r\n})\r\nexport class SwatchesPickerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public color: ModelSignal<ColorString> = model<ColorString>();\r\n\r\n public control: ColorPickerControl = new ColorPickerControl();\r\n public childControl: ColorPickerControl = new ColorPickerControl();\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n private mapColors = {\r\n '#E6315B': [\r\n '#fc8da7', '#fa7d9a', '#f56484', '#f04a71', '#e82c58', '#e31746', '#de0235',\r\n '#d60234', '#d10232', '#c70230', '#b8022c', '#ab0229', '#9c0225', '#8f0122',\r\n '#8c0122', '#82011f', '#78011b', '#690117', '#5c0012', '#4f0010', '#42000c'\r\n ],\r\n '#793183': [\r\n '#ef8dfc', '#eb7dfa', '#e664f5', '#dc4af0', '#d22ce8', '#cb17e3', '#c402de',\r\n '#c002d9', '#bb02d4', '#b002c7', '#a202b8', '#9702ab', '#8a029c', '#7e018f',\r\n '#7a018a', '#730182', '#6c0178', '#5e0169', '#54015c', '#49014f', '#3d0142'\r\n ],\r\n '#009DE7': [\r\n '#8dd9fc', '#7dd2fa', '#64c7f5', '#4abbf0', '#2cade8', '#17a2e3', '#0298de',\r\n '#0295d9', '#0291d4', '#0289c7', '#027eb8', '#0275ab', '#026b9c', '#01628f',\r\n '#015f8a', '#015982', '#015278', '#014869', '#013f5c', '#01364f', '#012e42'\r\n ],\r\n '#00B59C': [\r\n '#8dfeea', '#7dfbe4', '#63f4db', '#4befd2', '#2de7c6', '#16e2be', '#03deb7',\r\n '#01ddb6', '#01d4ae', '#01c7a4', '#01b897', '#01aa8b', '#019b80', '#019076',\r\n '#018c73', '#01836c', '#017763', '#016857', '#005c4e', '#005044', '#004239'\r\n ],\r\n '#FFCE00': [\r\n '#fce68d', '#fae17d', '#f5da64', '#f0cf4a', '#e8c22c', '#e5bc17', '#deb202',\r\n '#deb100', '#d4aa02', '#c7a002', '#b89302', '#ab8902', '#9c7d02', '#8f7301',\r\n '#8c7001', '#826801', '#786201', '#695601', '#5c4b00', '#4f4100', '#423700'\r\n ],\r\n '#FF4A21': [\r\n '#fca28d', '#fa947d', '#f57f64', '#f0694a', '#e84f2c', '#e33c17', '#de2a02',\r\n '#d92a02', '#d42902', '#c72602', '#b82302', '#ab2102', '#9c1e02', '#8f1b01',\r\n '#8a1a01', '#821901', '#781701', '#691300', '#5c1100', '#4f0e00', '#420c00'\r\n ],\r\n '#D6D5D6': [\r\n '#fff', '#f2f2f2', '#e5e5e5', '#d9d9d9', '#cccccc', '#bfbfbf', '#b3b3b3',\r\n '#a6a6a6', '#999999', '#8c8c8c', '#808080', '#737373', '#666666', '#595959',\r\n '#4d4d4d', '#424242', '#363636', '#262626', '#1a1a1a', '#0f0f0f', '#000'\r\n ]\r\n };\r\n\r\n constructor(private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.color()) {\r\n this.childControl.setValueFrom(this.color());\r\n } else {\r\n this.control.setValueFrom('#E6315B');\r\n }\r\n\r\n /**\r\n * set color presets\r\n * defined by swatches color picker component\r\n */\r\n this.control.setColorPresets([\r\n '#e6315b', '#793183', '#009de7', '#00b59c', '#ffce00', '#ff4a21', '#d6d5d6'\r\n ]);\r\n\r\n /**\r\n * initially open first group\r\n */\r\n this.childControl.setColorPresets(this.mapColors['#E6315B']);\r\n\r\n this.subscriptions.push(\r\n this.childControl.valueChanges.subscribe((value) => {\r\n this.color.set(getValueByType(value, this.childControl.initType));\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.control.valueChanges.subscribe((value) => {\r\n const presets = this.mapColors[value.toHexString()];\r\n if (presets) {\r\n this.childControl.setColorPresets(presets);\r\n }\r\n this.color.set(getValueByType(this.childControl.value, this.childControl.initType));\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n /**\r\n * trigger only if color binding is changed\r\n */\r\n const color = this.color();\r\n const control = this.control;\r\n\r\n if (color && control && !isColorEqual(getValueByType(control.value, control.initType), color)) {\r\n this.childControl.setValueFrom(color);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.cdr.detach();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n}\r\n","<ng-content select=\"[before]\"></ng-content>\r\n\r\n<color-presets-component \r\n [columns]=\"7\"\r\n direction=\"down\"\r\n [(color)]=\"control.value\" \r\n [colorPresets]=\"control.presets\" />\r\n\r\n@if(childControl.presets.length) {\r\n <color-presets-component\r\n class=\"child-list\"\r\n [columns]=\"7\"\r\n direction=\"down\"\r\n [(color)]=\"childControl.value\" \r\n [colorPresets]=\"childControl.presets\" />\r\n}\r\n\r\n<ng-content></ng-content>","import {\r\n Component,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n ModelSignal,\r\n model,\r\n InputSignal,\r\n input,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { ColorString } from './../../helpers/color.class';\r\nimport { ColorPickerControl } from './../../helpers/control.class';\r\nimport { getValueByType, isColorEqual } from './../../helpers/helper.functions';\r\nimport { Subscription } from 'rxjs';\r\nimport { SaturationComponent } from './../parts/saturation/saturation.component';\r\nimport { IndicatorComponent } from './../parts/indicator/indicator.component';\r\nimport { HueComponent } from './../parts/hue/hue.component';\r\nimport { AlphaComponent } from './../parts/alpha/alpha.component';\r\nimport { HexComponent } from './../parts/inputs/hex-input/hex-input.component';\r\nimport { ColorPresetsComponent } from '../parts/color-presets/color-presets.component';\r\n\r\n@Component({\r\n selector: `ip-picker`,\r\n templateUrl: `./ip-picker.component.html`,\r\n styleUrls: [\r\n `./../parts/base.style.scss`,\r\n `./ip-picker.component.scss`\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n SaturationComponent,\r\n IndicatorComponent,\r\n HueComponent,\r\n AlphaComponent,\r\n ColorPresetsComponent,\r\n HexComponent,\r\n AsyncPipe\r\n ]\r\n})\r\nexport class IpPickerComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n public color: ModelSignal<ColorString> = model<ColorString>();\r\n\r\n public control: InputSignal<ColorPickerControl> = input<ColorPickerControl>(new ColorPickerControl());\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n constructor(private readonly cdr: ChangeDetectorRef) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n /**\r\n * set color presets\r\n * defined by this chrome color picker component\r\n */\r\n if (!this.control().hasPresets()) {\r\n this.control()\r\n .setColorPresets([\r\n ['#f44336', '#ffebee', '#ffcdd2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E53935', '#D32F2F', '#C62828', '#B71C1C'],\r\n ['#E91E63', '#fce4ec', '#f8bbd0', '#f48fb1', '#f06292', '#ec407a', '#e91e63', '#d81b60', '#c2185b', '#ad1457', '#880e4f'],\r\n ['#9C27B0', '#F3e5f5', '#e1bee7', '#ce93d8', '#ba68c8', '#ab47bc', '#9c27b0', '#8e24aa', '#7b1fa2', '#6a1b9a', '#4a148c'],\r\n ['#673AB7', '#ede7f6', '#d1c4e9', '#b39ddb', '#9575cd', '#7e57c2', '#673ab7', '#5e35b1', '#512da8', '#4527a0', '#311b92'],\r\n ['#3F51B5', '#e8eaf6', '#c5cae9', '#9fa8da', '#7986cb', '#5c6bc0', '#3f51b5', '#3949ab', '#303f9f', '#283593', '#1a237e'],\r\n ['#2196F3', '#e3f2fd', '#bbdefb', '#90caf9', '#64b5f6', '#42a5f5', '#2196f3', '#1e88e5', '#1976d2', '#1565c0', '#0D47a1'],\r\n ['#03A9F4', '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b'],\r\n ['#00BCD4', '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064'],\r\n ['#009688', '#E0F2f1', '#b2dfdb', '#80cbc4', '#4db6ac', '#26a69a', '#009688', '#00897b', '#00796b', '#00695c', '#004d40'],\r\n ['#4CAF50', '#e8f5e9', '#c8e6c9', '#a5d6a7', '#81c784', '#66bb6a', '#4caf50', '#43a047', '#388e3c', '#2e7d32', '#1b5e20'],\r\n ['#8BC34A', '#f1f8e9', '#dcedc8', '#c5e1a5', '#aed581', '#9ccc65', '#8bc34a', '#7cb342', '#689f38', '#558b2f', '#33691e'],\r\n ['#cddc39', '#f9fbe7', '#f0f4c3', '#e6ee9c', '#dce775', '#d4e157', '#c0dc39', '#c0ca33', '#afb42b', '#9e9d24', '#827717'],\r\n ['#ffeb3b', '#fffde7', '#fff9c4', '#fff59d', '#fff176', '#ffee58', '#ffeb3b', '#fdd835', '#fbc02d', '#f9a825', '#f57f17'],\r\n ['#ffc107', '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00'],\r\n ['#ff9800', '#fff3e0', '#ffe0b2', '#ffcc80', '#ffb74d', '#ffa726', '#ff9800', '#fb8c00', '#f57c00', '#ef6c00', '#e65100'],\r\n ['#ff5722', '#fbe9e7', '#ffccbc', '#ffab91', '#ff8a65', '#ff7043', '#ff5722', '#f4511e', '#e64a19', '#d84315', '#bf360c'],\r\n ['#795548', '#efebe9', '#d7ccc8', '#bcaaa4', '#a1887f', '#8d6e63', '#795548', '#6d4c41', '#5d4037', '#4e342e', '#3e2723'],\r\n ['#9e9e9e', '#fafafa', '#f5f5f5', '#eee', '#e0e0e0', '#bdbdbd', '#9e9e9e', '#757575', '#616161', '#424242', '#212121'],\r\n ['#607d8b', '#eceff1', '#cfd8dc', '#b0bec5', '#90a4ae', '#78909c', '#60708b', '#546e7a', '#455a64', '#37474f', '#263238']\r\n ]);\r\n }\r\n\r\n this.subscriptions.push(\r\n this.control().valueChanges.subscribe((value) => {\r\n this.color.set(getValueByType(value, this.control().initType));\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n /**\r\n * trigger only if color binding is changed\r\n */\r\n const color = this.color();\r\n const control = this.control();\r\n if (color && control && !isColorEqual(getValueByType(control.value, control.initType), color)) {\r\n control.setValueFrom(color);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n\r\n}","<div class=\"controls\">\r\n <div class=\"controls-row presentation\">\r\n <indicator-component colorType=\"hex\" [color]=\"control().value\" />\r\n <hex-input-component [(color)]=\"control().value\" />\r\n </div>\r\n\r\n <div class=\"controls-row saturation-hue-alpha\">\r\n <div class=\"column\">\r\n <saturation-component [(color)]=\"control().value\" />\r\n <alpha-component [(color)]=\"control().value\" />\r\n </div>\r\n <div class=\"column hue-column\">\r\n <hue-component vertical [(color)]=\"control().value\" />\r\n </div>\r\n </div>\r\n</div>\r\n\r\n@if (control().presetsVisibilityChanges | async) {\r\n <color-presets-component \r\n [columns]=\"8\" \r\n [(color)]=\"control().value\" \r\n [colorPresets]=\"control().presets\" />\r\n}\r\n","/*\r\n * ngx-color-picker\r\n *\r\n * By Ivan Pintar, http://www.pintar-ivan.com\r\n * Licensed under the MIT License\r\n * See https://github.com/pIvan/ngx-color-picker/blob/master/README.md\r\n */\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n/**\r\n * parts\r\n */\r\nimport { SaturationComponent } from './components/parts/saturation/saturation.component';\r\nimport { IndicatorComponent } from './components/parts/indicator/indicator.component';\r\nimport { HueComponent } from './components/parts/hue/hue.component';\r\nimport { AlphaComponent } from './components/parts/alpha/alpha.component';\r\nimport { RgbaComponent } from './components/parts/inputs/rgba-input/rgba-input.component';\r\nimport { HslaComponent } from './components/parts/inputs/hsla-input/hsla-input.component';\r\nimport { HexComponent } from './components/parts/inputs/hex-input/hex-input.component';\r\nimport { ColorPresetsComponent } from './components/parts/color-presets/color-presets.component';\r\nimport { ColorPresetComponent } from './components/parts/color-preset/color-preset.component';\r\nimport { ColorPresetSublist } from './components/parts/color-preset-sublist/color-preset-sublist.component';\r\n\r\nexport { SaturationComponent } from './components/parts/saturation/saturation.component';\r\nexport { IndicatorComponent } from './components/parts/indicator/indicator.component';\r\nexport { HueComponent } from './components/parts/hue/hue.component';\r\nexport { AlphaComponent } from './components/parts/alpha/alpha.component';\r\nexport { RgbaComponent } from './components/parts/inputs/rgba-input/rgba-input.component';\r\nexport { HslaComponent } from './components/parts/inputs/hsla-input/hsla-input.component';\r\nexport { HexComponent } from './components/parts/inputs/hex-input/hex-input.component';\r\nexport { ColorPresetsComponent } from './components/parts/color-presets/color-presets.component';\r\nexport { ColorPresetComponent } from './components/parts/color-preset/color-preset.component';\r\nexport { ColorPresetSublist } from './components/parts/color-preset-sublist/color-preset-sublist.component';\r\n/**\r\n * directives\r\n */\r\nimport { ColorPickerInputDirective } from './directives/color-picker-input.directive';\r\n\r\n/**\r\n * pipes\r\n */\r\nimport { ChunksPipe } from './pipes/chunks.pipe';\r\nimport { ReversePipe } from './pipes/reverse.pipe';\r\n\r\n/**\r\n * pickers\r\n */\r\nimport { ChromePickerComponent } from './components/chrome-picker/chrome-picker.component';\r\nimport { SketchPickerComponent } from './components/sketch-picker/sketch-picker.component';\r\nimport { CompactPickerComponent } from './components/compact-picker/compact-picker.component';\r\nimport { GithubPickerComponent } from './components/github-picker/github-picker.component';\r\nimport { SwatchesPickerComponent } from './components/swatches-picker/swatches-picker.component';\r\nimport { IpPickerComponent } from './components/ip-picker/ip-picker.component';\r\n\r\nexport { ChromePickerComponent } from './components/chrome-picker/chrome-picker.component';\r\nexport { SketchPickerComponent } from './components/sketch-picker/sketch-picker.component';\r\nexport { CompactPickerComponent } from './components/compact-picker/compact-picker.component';\r\nexport { GithubPickerComponent } from './components/github-picker/github-picker.component';\r\nexport { SwatchesPickerComponent } from './components/swatches-picker/swatches-picker.component';\r\nexport { IpPickerComponent } from './components/ip-picker/ip-picker.component';\r\n\r\n/**\r\n * services\r\n */\r\nimport { COLOR_PICKER_CONFIG, ColorPickerConfig, IColorPickerConfig } from './services/color-picker.service';\r\n\r\n/**\r\n * exports\r\n */\r\nexport { Color } from './helpers/color.class';\r\nexport { ColorPickerControl, ColorType } from './helpers/control.class';\r\nexport { ColorsTable } from './helpers/colors-table.class';\r\nexport { getValueByType } from './helpers/helper.functions';\r\nexport { IColorPickerConfig, COLOR_PICKER_CONFIG, ColorPickerConfig } from './services/color-picker.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SaturationComponent,\r\n IndicatorComponent,\r\n HueComponent,\r\n AlphaComponent,\r\n\r\n RgbaComponent,\r\n HslaComponent,\r\n HexComponent,\r\n\r\n ColorPresetsComponent,\r\n ColorPresetComponent,\r\n ColorPresetSublist,\r\n\r\n ColorPickerInputDirective,\r\n ChunksPipe,\r\n ReversePipe,\r\n /**\r\n * prepared components\r\n */\r\n ChromePickerComponent,\r\n SketchPickerComponent,\r\n SwatchesPickerComponent,\r\n GithubPickerComponent,\r\n CompactPickerComponent,\r\n IpPickerComponent\r\n ],\r\n exports: [\r\n SaturationComponent,\r\n IndicatorComponent,\r\n HueComponent,\r\n AlphaComponent,\r\n\r\n RgbaComponent,\r\n HslaComponent,\r\n HexComponent,\r\n\r\n ColorPresetsComponent,\r\n\r\n ChromePickerComponent,\r\n SketchPickerComponent,\r\n SwatchesPickerComponent,\r\n GithubPickerComponent,\r\n CompactPickerComponent,\r\n IpPickerComponent\r\n ]\r\n})\r\nexport class ColorPickerModule {\r\n\r\n public static forRoot<T extends IColorPickerConfig>(configuration?: T): ModuleWithProviders<ColorPickerModule> {\r\n return {\r\n ngModule: ColorPickerModule,\r\n providers: [\r\n { provide: COLOR_PICKER_CONFIG, useValue: configuration || new ColorPickerConfig() }\r\n ]\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ColorPickerConfig"],"mappings":";;;;;;;MAEsB,SAAS,CAAA;AAIjB,IAAA,KAAK,CAAC,KAAa,EAAE,QAAA,GAAmB,CAAC,EAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM;;AAEjD;;ACRD;;;;;;;AAOG;AACG,MAAO,IAAK,SAAQ,SAAS,CAAA;AAE/B,IAAA,WAAA,CAAmB,IAAY,EAAS,OAAe,EAAS,MAAc,EAAS,KAAa,EAAA;AAChG,QAAA,KAAK,EAAE;QADQ,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAiB,IAAO,CAAA,OAAA,GAAP,OAAO;QAAiB,IAAM,CAAA,MAAA,GAAN,MAAM;QAAiB,IAAK,CAAA,KAAA,GAAL,KAAK;;IAIrF,QAAQ,GAAA;QACX,OAAO,CAAA,KAAA,EAAQ,IAAI,CAAC,OAAO,EAAE,CAAM,GAAA,EAAA,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA,GAAA,EAAM,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,CAAI;;IAGhG,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGzB,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;IAG5B,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;IAG3B,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG1B,IAAA,KAAK,CAAC,KAAW,EAAA;AACpB,QAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAChB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AACpB,eAAA,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;AACvB,eAAA,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;AACtB,eAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;;AAExC;;AC3CD;;;;;;;AAOG;AACG,MAAO,IAAK,SAAQ,SAAS,CAAA;AAE/B,IAAA,WAAA,CAAmB,GAAW,EAAS,UAAkB,EAAS,SAAiB,EAAS,KAAa,EAAA;AACrG,QAAA,KAAK,EAAE;QADQ,IAAG,CAAA,GAAA,GAAH,GAAG;QAAiB,IAAU,CAAA,UAAA,GAAV,UAAU;QAAiB,IAAS,CAAA,SAAA,GAAT,SAAS;QAAiB,IAAK,CAAA,KAAA,GAAL,KAAK;;IAI1F,QAAQ,CAAC,mBAA4B,IAAI,EAAA;AAC5C,QAAA,OAAO;cACD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAM,GAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAG,CAAA;AACrG,cAAE,CAAO,IAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,aAAa,EAAE,CAAM,GAAA,EAAA,IAAI,CAAC,YAAY,EAAE,IAAI;;IAG7E,MAAM,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;IAGxB,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;IAG/B,YAAY,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;IAG9B,QAAQ,CAAC,QAAiB,KAAK,EAAA;AAClC,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;QAEtC,OAAO,IAAI,CAAC,KAAK;;AAGd,IAAA,KAAK,CAAC,KAAW,EAAA;AACpB,QAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAChB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;AACnB,eAAA,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;AAC1B,eAAA,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;AACzB,eAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;;AAExC;;AChDD;;;;;;;AAOG;AACG,MAAO,IAAK,SAAQ,SAAS,CAAA;AAE/B,IAAA,WAAA,CAAmB,GAAW,EAAS,UAAkB,EAAS,KAAa,EAAS,KAAa,EAAA;AACjG,QAAA,KAAK,EAAE;QADQ,IAAG,CAAA,GAAA,GAAH,GAAG;QAAiB,IAAU,CAAA,UAAA,GAAV,UAAU;QAAiB,IAAK,CAAA,KAAA,GAAL,KAAK;QAAiB,IAAK,CAAA,KAAA,GAAL,KAAK;;IAItF,QAAQ,CAAC,mBAA4B,IAAI,EAAA;QAC5C,OAAO,gBAAgB,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,MAAM,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,aAAa,EAAE,CAAM,GAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,CAAA,GAAA,EAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAG,CAAA;AACrH,cAAE,CAAO,IAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,aAAa,EAAE,CAAM,GAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,IAAI;;IAGzE,MAAM,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;IAGxB,aAAa,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;IAG/B,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG1B,QAAQ,CAAC,QAAiB,KAAK,EAAA;AAClC,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;QAEtC,OAAO,IAAI,CAAC,KAAK;;AAGd,IAAA,KAAK,CAAC,KAAW,EAAA;AACpB,QAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAChB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;AACnB,eAAA,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;AAC1B,eAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;AACrB,eAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;;AAExC;;AC/CD;;;;;;;AAOG;AACG,MAAO,IAAK,SAAQ,SAAS,CAAA;AAE/B,IAAA,WAAA,CAAmB,GAAW,EAAS,KAAa,EAAS,IAAY,EAAS,KAAa,EAAA;AAC3F,QAAA,KAAK,EAAE;QADQ,IAAG,CAAA,GAAA,GAAH,GAAG;QAAiB,IAAK,CAAA,KAAA,GAAL,KAAK;QAAiB,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAiB,IAAK,CAAA,KAAA,GAAL,KAAK;;IAIhF,QAAQ,CAAC,mBAA4B,IAAI,EAAA;AAC5C,QAAA,OAAO;cACD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAG,CAAA;AACzF,cAAE,CAAO,IAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,QAAQ,EAAE,CAAK,EAAA,EAAA,IAAI,CAAC,OAAO,EAAE,GAAG;;IAGjE,MAAM,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;IAGxB,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG1B,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGzB,QAAQ,CAAC,QAAiB,KAAK,EAAA;AAClC,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;;QAEtC,OAAO,IAAI,CAAC,KAAK;;AAGd,IAAA,KAAK,CAAC,KAAW,EAAA;AACpB,QAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAChB,YAAA,OAAO,IAAI;;AAEf,QAAA,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC;AACnB,eAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;AACrB,eAAA,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;AACpB,eAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;;AAExC;;AChDD;;AAEG;MACU,WAAW,CAAA;AACN,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AAChC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAC9B,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AACxB,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClD,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,IAAA,SAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,IAAA,SAAA,IAAA,CAAA,cAAc,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAA,SAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACzC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAA,SAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACjC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjC,IAAA,SAAA,IAAA,CAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC,IAAA,SAAA,IAAA,CAAA,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACtC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACpC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,IAAA,SAAA,IAAA,CAAA,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACxC,IAAA,SAAA,IAAA,CAAA,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;;;MCjJ7C,KAAK,CAAA;;AAYd,IAAA,WAAA,CAAY,WAAyB,EAAA;AAVrC;;;;;;AAMG;AACK,QAAA,IAAA,CAAA,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAIrC,IAAI,WAAW,EAAE;AACb,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;;;IAIhC,OAAO,IAAI,CAAC,KAA+C,EAAA;AAC9D,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;;AACpB,aAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC/B,YAAA,OAAO,KAAK,CAAC,KAAK,EAAE;;AACjB,aAAA,IAAI,KAAK,YAAY,IAAI,EAAE;YAC9B,OAAO,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;;AACxE,aAAA,IAAI,KAAK,YAAY,IAAI,EAAE;YAC9B,OAAO,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;;AAC9E,aAAA,IAAI,KAAK,YAAY,IAAI,EAAE;YAC9B,OAAO,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;;AAGzF,QAAA,OAAO,IAAI;;AAGf;;AAEG;IACI,KAAK,GAAA;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAGrC;;AAEG;AACI,IAAA,aAAa,CAAC,KAAkB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;;AAGpC;;AAEG;IACI,OAAO,CAAC,GAAc,GAAA,IAAI,EAAE,UAAA,GAAqB,GAAG,EAAE,UAAqB,GAAA,GAAG,EAAE,KAAA,GAAgB,CAAC,EAAA;AACpG,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG;;AAGvB,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU;;AAGrC,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU;;AAGhC,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAC7C,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAI3B,QAAA,OAAO,IAAI;;AAGf;;AAEG;IACI,OAAO,CAAC,GAAc,GAAA,IAAI,EAAE,KAAA,GAAgB,IAAI,EAAE,IAAe,GAAA,IAAI,EAAE,KAAA,GAAgB,CAAC,EAAA;AAC3F,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;;AAEjD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9D,QAAA,OAAO,IAAI;;AAGf;;AAEG;IACI,OAAO,CAAC,GAAW,EAAE,UAAkB,EAAE,SAAiB,EAAE,QAAgB,CAAC,EAAA;AAChF,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;;AAGjD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACjC,QAAA,OAAO,IAAI;;AAGf;;AAEG;IACI,WAAW,CAAC,QAAiB,KAAK,EAAA;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;QAC3B,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACvH,IAAI,KAAK,EAAE;AACP,YAAA,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;AAE9E,QAAA,OAAO,GAAG,CAAC,WAAW,EAAE;;AAG5B;;AAEG;IACI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;;AAGpC;;AAEG;IACI,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGzC;;AAEG;IACI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;;AAGpC;;AAEG;IACI,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGzC;;AAEG;IACI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;;AAGpC;;AAEG;IACI,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGzC;;AAEG;IACI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;;IAG7B,OAAO,GAAA;QACV,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGnF,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;IAGnC,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;IAGnC,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAGnC,IAAA,KAAK,CAAC,KAAY,EAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;;AAGnC,IAAA,UAAU,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACrB,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,GAAG;AAChC,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC3B,QAAA,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;QAC7C,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;AAEhF,QAAA,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,UAAU,GAAG,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;;AAGhE,IAAA,UAAU,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;QACrB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAA,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAEzC,QAAA,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;;AAGhD,IAAA,UAAU,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG;AAC3B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC/B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG;AAC7B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AAEzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI;QAEzB,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,IAAI,UAAU,GAAW,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI;QACtD,IAAI,UAAU,GAAW,IAAI;AAE7B,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,QAAQ,IAAI;AACR,gBAAA,KAAK,GAAG;oBACJ,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrD;AACJ,gBAAA,KAAK,KAAK;oBACN,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK;oBAC9B;AACJ,gBAAA,KAAK,IAAI;oBACL,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK;oBAC/B;;YAER,GAAG,IAAI,CAAC;;AAGZ,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG;AACf,QAAA,UAAU,GAAG,UAAU,GAAG,GAAG;AAC7B,QAAA,UAAU,GAAG,UAAU,GAAG,GAAG;QAE7B,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC;;AAG/C,IAAA,UAAU,CAAC,KAAW,EAAA;QAC1B,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,KAAK,GAAG,CAAC;QACb,IAAI,IAAI,GAAG,CAAC;AACZ,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,GAAG;AACzC,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AACpC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AACzB,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG,GAAG,GAAG,OAAO;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,IAAI,UAAU;AACvC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,UAAU;AACtD,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,UAAU;QAE5D,QAAQ,OAAO;AACX,YAAA,KAAK,CAAC;AACN,YAAA,KAAK,CAAC;gBAAE,GAAG,GAAG,UAAU;gBAAE,KAAK,GAAG,CAAC;gBAAE,IAAI,GAAG,CAAC;gBAAE;AAC/C,YAAA,KAAK,CAAC;gBAAE,GAAG,GAAG,CAAC;gBAAE,KAAK,GAAG,UAAU;gBAAE,IAAI,GAAG,CAAC;gBAAE;AAC/C,YAAA,KAAK,CAAC;gBAAE,GAAG,GAAG,CAAC;gBAAE,KAAK,GAAG,UAAU;gBAAE,IAAI,GAAG,CAAC;gBAAE;AAC/C,YAAA,KAAK,CAAC;gBAAE,GAAG,GAAG,CAAC;gBAAE,KAAK,GAAG,CAAC;gBAAE,IAAI,GAAG,UAAU;gBAAE;AAC/C,YAAA,KAAK,CAAC;gBAAE,GAAG,GAAG,CAAC;gBAAE,KAAK,GAAG,CAAC;gBAAE,IAAI,GAAG,UAAU;gBAAE;AAC/C,YAAA,KAAK,CAAC;gBAAE,GAAG,GAAG,UAAU;gBAAE,KAAK,GAAG,CAAC;gBAAE,IAAI,GAAG,CAAC;gBAAE;;AAGnD,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG;AACf,QAAA,KAAK,GAAG,KAAK,GAAG,GAAG;AACnB,QAAA,IAAI,GAAG,IAAI,GAAG,GAAG;QAEjB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;;AAGpC,IAAA,UAAU,CAAC,KAAW,EAAA;;AAE1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG;AAC3B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC/B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG;AAC7B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AAEzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC;QAEtC,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,UAAU,GAAG,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AAC/B,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG;AAEvB,QAAA,IAAI,GAAG,KAAK,GAAG,EAAE;YACb,UAAU,GAAG,SAAS,GAAG,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC;YAC9E,QAAQ,GAAG;AACP,gBAAA,KAAK,GAAG;oBACJ,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrD;AACJ,gBAAA,KAAK,KAAK;oBACN,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC;oBAC9B;AACJ,gBAAA,KAAK,IAAI;oBACL,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC;oBAC/B;;YAGR,GAAG,IAAI,CAAC;;AAGZ,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG;AACf,QAAA,UAAU,GAAG,UAAU,GAAG,GAAG;AAC7B,QAAA,SAAS,GAAG,SAAS,GAAG,GAAG;QAE3B,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC;;AAGtD;;;;;;AAMG;AACK,IAAA,UAAU,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG;AAC3B,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,GAAG;AACzC,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG;AACvC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;QAEzB,IAAI,GAAG,GAAG,SAAS;QACnB,IAAI,KAAK,GAAG,SAAS;QACrB,IAAI,IAAI,GAAG,SAAS;AAEpB,QAAA,IAAI,UAAU,KAAK,CAAC,EAAE;YAClB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU,IAAI,SAAS,GAAG,UAAU,CAAC;AAC5G,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC;AAE3B,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAChC,YAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;AAG7C,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG;AACf,QAAA,KAAK,GAAG,KAAK,GAAG,GAAG;AACnB,QAAA,IAAI,GAAG,IAAI,GAAG,GAAG;QAEjB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;;AAGpC,IAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA;;AAEpB,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,CAAC,IAAI,CAAC;;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,CAAC,IAAI,CAAC;;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;;AAC3C,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAAE,YAAA,OAAO,CAAC;;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAAE,YAAA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;;AACrD,QAAA,OAAO,CAAC;;AAGZ;;;;;;;;;;;;AAYG;AACK,IAAA,UAAU,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC/B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG;AAC7B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG;AACnC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG;QAEjC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QACpD,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAElD,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG;AACf,QAAA,KAAK,GAAG,KAAK,GAAG,GAAG;AACnB,QAAA,IAAI,GAAG,IAAI,GAAG,GAAG;QAEjB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAGxC;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACK,IAAA,UAAU,CAAC,KAAW,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG;AAC3B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG;AAC/B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG;AAE7B,QAAA,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG;AAClB,QAAA,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK;AACvB,QAAA,IAAI,MAAM,GAAG,CAAC,GAAG,IAAI;AACrB,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AAE3C,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;;AAGjC,QAAA,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC;AACnC,QAAA,OAAO,GAAG,CAAC,OAAO,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC;AACzC,QAAA,MAAM,GAAG,CAAC,MAAM,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC;AAEvC,QAAA,KAAK,GAAG,KAAK,GAAG,GAAG;AACnB,QAAA,IAAI,GAAG,IAAI,GAAG,GAAG;AACjB,QAAA,OAAO,GAAG,OAAO,GAAG,GAAG;AACvB,QAAA,MAAM,GAAG,MAAM,GAAG,GAAG;QAErB,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;;AAGzC,IAAA,WAAW,CAAC,CAAS,EAAA;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;;AAG5B,IAAA,aAAa,CAAC,WAAwB,EAAA;AAC1C,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AACvD;;AAEG;QACH,IAAI,IAAI,GAAS,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI;AAEzC;;AAEG;AACH,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAChB,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACvB,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM;YACzB,IAAI,CAAC,GAAG,CAAC;YACT,IAAI,QAAQ,GAAG,EAAE;AAEjB,YAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AACd,gBAAA,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC;;AACnD,iBAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AACrB,gBAAA,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;;AAC1B,iBAAA,IAAI,MAAM,KAAK,CAAC,EAAE;gBACrB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;gBAC/B,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG;AACrC,gBAAA,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;;AAGjC,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;;;QAI3G,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACxC,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AAEzC,QAAA,IAAI,eAAe,KAAK,CAAC,CAAC,IAAI,gBAAgB,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE;YAC/D,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC;YACpD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,gBAAgB,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YACnG,IAAI,KAAK,GAAG,CAAC;YAEb,QAAQ,aAAa;AACjB,gBAAA,KAAK,MAAM;oBACP,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;;AAEpC,gBAAA,KAAK,KAAK;AACN,oBAAA,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;oBACjG;AACJ,gBAAA,KAAK,MAAM;oBACP,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACpC,gBAAA,KAAK,KAAK;AACN,oBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;AACvG,oBAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC5B;AACJ,gBAAA,KAAK,MAAM;oBACP,MAAM,IAAI,GAAG,IAAI,IAAI,CACjB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EACvB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5B,oBAAA,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC5B;;;QAIZ,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;AAGrC,QAAA,OAAO,IAAI;;AAGlB;;MCxfqB,aAAa,CAAA;AAY/B,IAAA,WAAA,GAAA;QAViB,IAAa,CAAA,aAAA,GAAmB,EAAE;QAC3C,IAAM,CAAA,MAAA,GAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;AAGhD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAQ;AAEpB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAEzB,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC;AAG1D,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW;AAClC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE;QAC5D,IAAI,CAAC,iBAAiB,EAAE;;IAKpB,iBAAiB,GAAA;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACxF,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE3E,aAAA,SAAS,CAAC,CAAC,CAA0B,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACpE;;AAGG,IAAA,aAAa,CAAC,KAA8B,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAErB,QAAA,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACtD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE1D,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;aAC5B,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAErC,QAAA,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EACxD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE1E,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,aAAA,SAAS,CAAC,CAAC,CAA0B,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;AAGzD,IAAA,oBAAoB,CAAC,KAA8B,EAAA;QACvD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAE5H,QAAA,MAAM,KAAK,GAAG,OAAQ,KAAoB,CAAC,KAAK,KAAK;AACrC,cAAG,KAAoB,CAAC,KAAK,GAAI,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AACtF,QAAA,MAAM,KAAK,GAAG,OAAS,KAAoB,CAAC,KAAK,KAAK;AACtC,cAAG,KAAoB,CAAC,KAAK,GAAI,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;QAEtF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QACpF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AAEpF,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;;AAGxD,IAAA,SAAS,CAAC,KAA8B,EAAA;QAC5C,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC/B,KAAK,CAAC,cAAc,EAAE;;AAE1B,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;;AAG3C,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;;IAGhF,wBAAwB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB;YACpC,IAAI,CAAC,MAAM,CAAC,2BAA2B;YACvC,IAAI,CAAC,MAAM,CAAC,wBAAwB;YACpC,IAAI,CAAC,MAAM,CAAC,sBAAsB;AAClC,YAAA,IAAI,CAAC,MAAM,CAAC,uBAAuB;;IAGpC,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;;8GAtFf,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACoBK,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAMlD,IAAA,WAAA,CAA6B,QAAmB,EAAA;AAC5C,QAAA,KAAK,EAAE;QADkB,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAJ9B,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAE1C,QAAA,IAAA,CAAA,OAAO,GAAuB,SAAS,CAAC,QAAQ,CAAa,SAAS,CAAC;AAKnF;;;AAGG;QACH,MAAM,CAAC,MAAK;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;YACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;;YAEvD,IAAI,CAAC,qBAAqB,EAAE;AAChC,SAAC,CAAC;;IAGI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA;QACzC,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK;AACpC,QAAA,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG;AAExC;;;AAGG;AACH,QAAA,IAAI,UAAU,GAAG,EAAE,EAAE;AACjB,YAAA,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM;;AAGpC,QAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QACpC,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;AAChF,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;;IAGpB,qBAAqB,GAAA;QACzB,IAAI,eAAe,GAAG,IAAI;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;AAC3C,YAAA,eAAe,GAAG,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE;;AAEnF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,iBAAiB,EAAE,eAAe,CAAC;;IAGrF,qBAAqB,CAAC,CAAS,EAAE,CAAS,EAAA;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,CAAG,EAAA,GAAG,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,CAAA,EAAG,CAAC,CAAA,CAAA,CAAG,CAAC;;8GAnDzD,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,iYCzBhC,wCAAoC,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,mvgBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDyBvB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAsB,EAMf,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,mvgBAAA,CAAA,EAAA;;;AEfP,MAAA,mBAAmB,GAAG,IAAI,cAAc,CAAqB,qBAAqB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAE,EAAE;MAGlJ,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAEW,IAAc,CAAA,cAAA,GAAW,yBAAyB;QAClD,IAAY,CAAA,YAAA,GAAW,2CAA2C;AAC5E;8GAHY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjB,iBAAiB,EAAA,UAAA,EADJ,MAAM,EAAA,WAAA,EAAe,mBAAmB,EAAA,CAAA,CAAA;;2FACrD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE;;;MCOvD,kBAAkB,CAAA;AAU3B,IAAA,WAAA,CACqB,YAA+B,EAC/B,QAAmB,EACnB,UAAsB,EACJ,QAAQ,EAAA;QAH1B,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAU,CAAA,UAAA,GAAV,UAAU;QACQ,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAZxC,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,SAAS,GAAyC,KAAK,CAA0B,MAAM,CAAC;AAE/E,QAAA,IAAA,CAAA,iBAAiB,GAAuC,SAAS,CAAC,QAAQ,CAA6B,mBAAmB,CAAC;QAEnI,IAAa,CAAA,aAAA,GAAmB,EAAE;QAOlC,IAAI,CAAC,WAAW,EAAE;QAElB,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,qBAAqB,EAAE;AAChC,SAAC,CAAC;;IAGH,QAAQ,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CACpF;;IAGG,WAAW,GAAA;QACf,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,IAAI,EAAE,CAAC;;IAGvG,qBAAqB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC3B;;QAEJ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC;;IAG1G,OAAO,GAAA;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAE9C,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACpB,YAAA,KAAK,MAAM;gBACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE;gBACzC;AACJ,YAAA,KAAK,KAAK;gBACN,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxE;AACJ,YAAA;gBACI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE;;AAGjD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC;QAC/D,KAAK,CAAC,MAAM,EAAE;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC;;AA3D1D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,mGAcf,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAdX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,8dCjB/B,kUAKM,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,gzBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDYO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAqB,EAMd,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,kUAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,gzBAAA,CAAA,EAAA;;0BAgBX,MAAM;2BAAC,QAAQ;;;AEJlB,MAAO,YAAa,SAAQ,aAAa,CAAA;AAQ3C,IAAA,WAAA,CAA6B,QAAmB,EAAA;AAC5C,QAAA,KAAK,EAAE;QADkB,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAN9B,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,UAAU,GAAyB,KAAK,CAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAE5G,QAAA,IAAA,CAAA,OAAO,GAAuB,SAAS,CAAC,QAAQ,CAAa,SAAS,CAAC;QAKnF,MAAM,CAAC,MAAK;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,SAAC,CAAC;;IAGI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG;AACtE,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;QAE/B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QAC3C,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AAC7G,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;;AAG/B;;AAEG;AACK,IAAA,qBAAqB,CAAC,GAAW,EAAA;QACrC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG;AAC3B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,MAAM;AACtD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;;8GAhCrE,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,+fC3BzB,wCAAoC,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,sgJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FD2BvB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAVxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAe,EAMR,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,sgJAAA,CAAA,EAAA;;;AECd,MAAO,cAAe,SAAQ,aAAa,CAAA;AAW7C,IAAA,WAAA,CAA6B,QAAmB,EAAA;AAC5C,QAAA,KAAK,EAAE;QADkB,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAT9B,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;QAEnD,IAAW,CAAA,WAAA,GAA4B,MAAM,EAAS;AAEtD,QAAA,IAAA,CAAA,UAAU,GAAyB,KAAK,CAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAQxH;;;AAGG;QACH,MAAM,CAAC,MAAK;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,SAAC,CAAC;;IAGI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA;AACzC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK;AACxD,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AAClF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAGnC;;AAEG;AACK,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACvC,QAAA,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG;AACrB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,MAAM;AACtD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;;AAG5E,IAAA,IAAW,QAAQ,GAAA;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;AACnC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,GAAG,OAAO;QAC1D,OAAO,CAAA,mBAAA,EAAsB,WAAW,CAAA,OAAA,EAAU,IAAI,CAAC,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAA,aAAA,EAAgB,IAAI,CAAC,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAA,OAAA,CAAS;;8GA7ChJ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,qgBC1B3B,gHACgE,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6nBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDyBnD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAiB,EAMV,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6nBAAA,CAAA,EAAA;8EAWT,OAAO,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME3B7B,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;QAMW,IAAG,CAAA,GAAA,GAAwB,KAAK,CAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAEnF,IAAG,CAAA,GAAA,GAAwB,KAAK,CAAiB,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAErF,IAAW,CAAA,WAAA,GAA6B,MAAM,EAAU;AAYlE;AATU,IAAA,YAAY,CAAC,KAAU,EAAA;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,MAA0B,IAAI,KAAK,CAAC,UAA8B;AACxF,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAE3B,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;AACnE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;;8GAf7B,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAUU,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MCCxB,aAAa,CAAA;AAX1B,IAAA,WAAA,GAAA;AAaW,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,YAAY,GAAyB,KAAK,CAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEpH,QAAA,IAAA,CAAA,cAAc,GAAyB,KAAK,CAAmB,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAgB/H;AAdG,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE;;IAG3B,aAAa,CAAC,QAAgB,EAAE,KAA4B,EAAA;AAC/D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG;AAChD,QAAA,MAAM,KAAK,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK;AACpD,QAAA,MAAM,IAAI,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,IAAI;AAClD,QAAA,MAAM,KAAK,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK;AAEpD,QAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;;8GApBnB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB1B,qlCAyBC,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6SAAA,EAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDXa,yBAAyB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAsB,mBAOf,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,yBAAyB,CAAC,EAAA,QAAA,EAAA,qlCAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6SAAA,CAAA,EAAA;;;MEE3B,aAAa,CAAA;AAX1B,IAAA,WAAA,GAAA;AAaW,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,YAAY,GAAyB,KAAK,CAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEpH,QAAA,IAAA,CAAA,cAAc,GAAyB,KAAK,CAAmB,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAgB/H;AAdG,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE;;IAG3B,aAAa,CAAC,QAAgB,EAAE,KAA4B,EAAA;AAC/D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG;AAChD,QAAA,MAAM,UAAU,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,UAAU;AAC9D,QAAA,MAAM,SAAS,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,SAAS;AAC5D,QAAA,MAAM,KAAK,GAAG,KAAK,KAAK,GAAG,GAAG,QAAQ,GAAG,KAAK,CAAC,KAAK;AAEpD,QAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC;AACvE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;;8GApBnB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB1B,qlCAyBC,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6SAAA,EAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDXa,yBAAyB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAsB,mBAOf,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,yBAAyB,CAAC,EAAA,QAAA,EAAA,qlCAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6SAAA,CAAA,EAAA;;;MEC3B,YAAY,CAAA;AAXzB,IAAA,WAAA,GAAA;AAaW,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,YAAY,GAAyB,KAAK,CAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAEpH,IAAW,CAAA,WAAA,GAAwB,KAAK,CAAS,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AA2BnF;AAzBG,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;;IAG1H,aAAa,CAAC,KAAoB,EAAE,UAAkB,EAAA;AACzD,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEvD,IACA,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;eACjF,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;AAE/B;;;;;AAKG;AACH,YAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBACtE,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,CAAI,CAAA,EAAA,KAAK,CAAE,CAAA,CAAC;AACvC,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;;;;8GA7B3B,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,ggBCfzB,4MAKM,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6SAAA,EAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDUO,YAAY,EAAA,UAAA,EAAA,CAAA;kBAXxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAqB,EAOd,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,4MAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,6SAAA,CAAA,EAAA;;;AEPb,MAAM,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,EAAE;IACxD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACpC,UAAU,CAAC,WAAW,EAAE;AACpB,QAAA,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,cAAc;KACzB;AACJ,CAAA,CAAC;AAGK,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE;IAClD,UAAU,CAAC,SAAS,EAAE;QAClB,KAAK,CAAC,QAAQ,EAAE;YACZ,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC,EAAE,EAAE;AACT,gBAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;aACrD;AACJ,SAAA,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxB,CAAC;IACF,UAAU,CAAC,YAAY,EAAE;QACrB,KAAK,CAAC,QAAQ,EAAE;YACZ,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC,EAAE,EAAE;AACT,gBAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;aACrD;AACJ,SAAA,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxB,CAAC;IACF,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,QAAQ,EAAE;YACZ,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,EAAE,EAAE;AACR,gBAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;aACrD;AACJ,SAAA,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxB,CAAC;IACF,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,QAAQ,EAAE;YACZ,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,EAAE,EAAE;AACR,gBAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;aACrD;AACJ,SAAA,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxB;AACJ,CAAA,CAAC;;MCnBW,oBAAoB,CAAA;AAgB7B,IAAA,WAAA,CACqB,YAA+B,EAC/B,UAAsB,EACtB,QAAmB,EAAA;QAFnB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAjBtB,QAAA,IAAA,CAAA,WAAW,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEzD,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,aAAa,GAAyB,KAAK,CAAmB,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAEhI,IAAe,CAAA,eAAA,GAA4B,MAAM,EAAS;QAE1D,IAAS,CAAA,SAAA,GAA8B,MAAM,EAAW;AAEvD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAQ;QAE7B,IAAa,CAAA,aAAA,GAAmB,EAAE;QAMtC,IAAI,CAAC,iBAAiB,EAAE;QAExB,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,eAAe,EAAE;AAC1B,SAAC,CAAC;;IAGC,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;QACvB,IAAI,CAAC,oBAAoB,EAAE;;AAG/B,IAAA,IACW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK;;IAGjG,gBAAgB,GAAA;QACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC;;IAGjG,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;;IAG/E,QAAQ,GAAA;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;AAE5D,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,CAAC;;AAE5G,QAAA,OAAO,KAAK;;IAGR,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,EACnD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;aAEvD,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CACtC;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,EACrD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE5E,aAAA,SAAS,CAAC,CAAC,CAA0B,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC9D;;IAGG,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;;AAGzB,IAAA,OAAO,CAAC,KAA8B,EAAA;QAC1C,EAAE,CAAC,KAAK;AACH,aAAA,IAAI,CACD,GAAG,CAAC,CAAC,CAA0B,KAAK,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EACxE,KAAK,CAAC,GAAG,CAAC,EACV,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAE1B,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;IAGnC,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;8GA5Fd,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,8mBARnB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,0GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAc,YACd,CAAE,CAAA,EAAA,eAAA,EAKK,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,0GAAA,CAAA,EAAA;oIAqCL,SAAS,EAAA,CAAA;sBADnB,WAAW;uBAAC,gBAAgB;;;MCxDpB,WAAW,CAAA;AACpB,IAAA,SAAS,CAAC,GAAe,EAAE,UAAA,GAAsB,IAAI,EAAA;QACjD,IAAI,UAAU,EAAE;AACZ,YAAA,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;;AAGhC,QAAA,OAAO,GAAG;;8GANL,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCwBY,kBAAkB,CAAA;IAc3B,WACuC,CAAA,QAAQ,EAC1B,GAAsB,EAAA;QADJ,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAC1B,IAAG,CAAA,GAAA,GAAH,GAAG;AAdjB,QAAA,IAAA,CAAA,IAAI,GAA8B,KAAK,CAAC,QAAQ,EAAgB;AAEhE,QAAA,IAAA,CAAA,WAAW,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEzD,QAAA,IAAA,CAAA,SAAS,GAAkD,KAAK,CAAmC,IAAI,CAAC;QAExG,IAAe,CAAA,eAAA,GAA4B,MAAM,EAAS;QAE1D,IAAY,CAAA,YAAA,GAAY,KAAK;QAE5B,IAAa,CAAA,aAAA,GAAmB,EAAE;;IAOnC,WAAW,GAAA;QACd,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;;AAGrB,IAAA,IACW,SAAS,GAAA;AAChB,QAAA,OAAO,aAAa,IAAI,CAAC,SAAS,EAAE,EAAE;;AAG1C;;AAEG;AACI,IAAA,iBAAiB,CAAC,KAAY,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG7B,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,oBAAoB,EAAE;;IAGvB,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;;IAGzB,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EACrC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAE5D,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CACrC;;IAGG,SAAS,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACvB,IAAI,CAAC,eAAe,EAAE;;;AA5DrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAef,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAfX,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9B/B,2yBAaC,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,iqBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDca,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,UAAA,EAC/B,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAsB,EAMf,eAAA,EAAA,uBAAuB,CAAC,MAAM,WACtC,CAAC,oBAAoB,EAAE,WAAW,CAAC,EAChC,UAAA,EAAA,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,2yBAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,iqBAAA,CAAA,EAAA;;0BAiBxC,MAAM;2BAAC,QAAQ;yEAUT,SAAS,EAAA,CAAA;sBADnB,WAAW;uBAAC,WAAW;;;ME/Cf,UAAU,CAAA;IACnB,SAAS,CAAC,GAAQ,EAAE,SAAiB,EAAA;QACjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;8GAFvG,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCWY,qBAAqB,CAAA;AAVlC,IAAA,WAAA,GAAA;QAYW,IAAO,CAAA,OAAA,GAAwB,KAAK,CAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAEvF,QAAA,IAAA,CAAA,YAAY,GAA6C,KAAK,CAAC,QAAQ,EAA+B;AAEtG,QAAA,IAAA,CAAA,KAAK,GAAuB,KAAK,CAAC,QAAQ,EAAS;AAEnD,QAAA,IAAA,CAAA,SAAS,GAAkD,KAAK,CAAmC,IAAI,CAAC;AAalH;AAXU,IAAA,iBAAiB,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,EAAE;AAEzC,QAAA,MAAM,QAAQ,GAAG,IAAI,KAAK;AACrB,aAAA,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC;AAC7G,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;;AAGrB,IAAA,MAAM,CAAC,WAAwC,EAAA;AAClD,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;;8GAnB5B,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBlC,u/BAoBC,EDLa,MAAA,EAAA,CAAA,8HAAA,EAAA,gLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,0JAAE,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE9D,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAyB,EAMlB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,u/BAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,gLAAA,CAAA,EAAA;;;IERhE;AAAZ,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACjB,CAAC,EARW,SAAS,KAAT,SAAS,GAQpB,EAAA,CAAA,CAAA;MAEY,kBAAkB,CAAA;AAa3B,IAAA,WAAA,GAAA;QAXQ,IAAU,CAAA,UAAA,GAAU,IAAI;QACxB,IAAS,CAAA,SAAA,GAAU,IAAI;AACd,QAAA,IAAA,CAAA,YAAY,GAAmB,IAAI,OAAO,EAAE;AAE7C,QAAA,IAAA,CAAA,wBAAwB,GAA6B,IAAI,eAAe,CAAC,IAAI,CAAC;QACvF,IAAQ,CAAA,QAAA,GAAc,IAAI;AACjB,QAAA,IAAA,CAAA,6BAA6B,GAA6B,IAAI,eAAe,CAAC,IAAI,CAAC;AACnF,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;QAElI,IAAY,CAAA,YAAA,GAAgC,EAAE;AAGlD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGjB,IAAA,YAAY,CAAC,KAA+C,EAAA;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;QAGtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;;AAE/C,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACvB,QAAA,OAAO,IAAI;;AAGf,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU;;AAG1B;;;AAGG;IACH,IAAW,KAAK,CAAC,KAAY,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGxB;;AAEG;IACI,KAAK,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS;AACzB,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,OAAO,IAAI;;IAGR,qBAAqB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,KAAK;;IAG5C,gBAAgB,GAAA;AACnB,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,QAAA,OAAO,IAAI;;IAGR,gBAAgB,GAAA;AACnB,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9C,QAAA,OAAO,IAAI;;AAGR,IAAA,YAAY,CAAC,WAAwB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;;AAGrC,IAAA,eAAe,CAAC,YAAqD,EAAA;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AACjD,QAAA,OAAO,IAAI;;AAGf,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY;;IAGrB,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;;IAGhC,eAAe,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK;;IAGvC,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,QAAA,OAAO,IAAI;;IAGR,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;AACzC,QAAA,OAAO,IAAI;;AAGP,IAAA,QAAQ,CAAC,KAAY,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAA,OAAO,IAAI;;AAGP,IAAA,eAAe,CAAC,WAAwB,EAAA;AAC5C,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AACvD,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAChB,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChB,OAAO,SAAS,CAAC,IAAI;;YAEzB,OAAO,SAAS,CAAC,GAAG;;QAGxB,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACxC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC;QACpD,QAAQ,aAAa;YACjB,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,SAAS,CAAC,IAAI;YACzB,KAAK,SAAS,CAAC,GAAG;gBACd,OAAO,SAAS,CAAC,GAAG;YACxB,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,SAAS,CAAC,IAAI;YACzB,KAAK,SAAS,CAAC,GAAG;gBACd,OAAO,SAAS,CAAC,GAAG;YACxB,KAAK,SAAS,CAAC,IAAI;gBACf,OAAO,SAAS,CAAC,IAAI;;AAE7B,QAAA,OAAO,IAAI;;AAGP,IAAA,UAAU,CAAC,YAAqD,EAAA;QACpE,MAAM,OAAO,GAAG,EAAE;AAElB,QAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;AAC9B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;;iBACjC;gBACH,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;;;AAGtC,QAAA,OAAO,OAAO;;AAErB;;AC5Je,SAAA,cAAc,CAAC,KAAY,EAAE,IAAe,EAAA;IACxD,QAAQ,IAAI;QACR,KAAK,SAAS,CAAC,GAAG;AACd,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE;QAC9B,KAAK,SAAS,CAAC,IAAI;AACf,YAAA,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,KAAK,SAAS,CAAC,GAAG;AACd,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE;QAC9B,KAAK,SAAS,CAAC,IAAI;AACf,YAAA,OAAO,KAAK,CAAC,YAAY,EAAE;QAC/B,KAAK,SAAS,CAAC,GAAG;AACd,YAAA,OAAO,KAAK,CAAC,WAAW,EAAE;QAC9B,KAAK,SAAS,CAAC,IAAI;AACf,YAAA,OAAO,KAAK,CAAC,YAAY,EAAE;AAC/B,QAAA;AACI,YAAA,OAAO,KAAK,CAAC,YAAY,EAAE;;AAEvC;AAIgB,SAAA,YAAY,CAAC,KAA0B,EAAE,MAA2B,EAAA;IAChF,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,YAAY,KAAK,EAAE;AACnD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;;IAE9B,OAAO,KAAK,KAAK,MAAM;AAC3B;;MCkBa,qBAAqB,CAAA;AAW9B,IAAA,WAAA,CAA6B,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG;QATzB,IAAoB,CAAA,oBAAA,GAAW,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;QAEvC,IAAK,CAAA,KAAA,GAA6B,KAAK,EAAe;AAEtD,QAAA,IAAA,CAAA,OAAO,GAAoC,KAAK,CAAqB,IAAI,kBAAkB,EAAE,CAAC;QAE7F,IAAa,CAAA,aAAA,GAAwB,EAAE;;IAKxC,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;AAG7C;;;AAGG;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE;YAC9B,IAAI,CAAC,OAAO;AACP,iBAAA,eAAe,CAAC;gBACb,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CA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AE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;gBACtH,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AAC3H,aAAA,CAAC;;AAGV,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC5C,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC9D,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;SAC3B,CAAC,CACL;;AAGE,IAAA,WAAW,CAAC,OAAsB,EAAA;AACrC;;AAEG;AACH,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,KAAK,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE;AAC3F,YAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;;;IAI5B,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;;8GA9DxB,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EC3C9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+1BAuBA,EDWQ,MAAA,EAAA,CAAA,8HAAA,EAAA,skEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,8GACnB,kBAAkB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,cAAc,EACd,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,2HACZ,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGJ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlB7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAW,EAMJ,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACL,mBAAmB;wBACnB,kBAAkB;wBAClB,YAAY;wBACZ,cAAc;wBACd,qBAAqB;wBACrB,YAAY;wBACZ;AACH,qBAAA,EAAA,QAAA,EAAA,+1BAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,EAAA,skEAAA,CAAA,EAAA;;;AEzCL;;;;;;AAMG;MAuHU,iBAAiB,CAAA;IAEnB,OAAO,OAAO,CAA+B,aAAiB,EAAA;QACjE,OAAO;AACH,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,IAAI,IAAI,iBAAiB,EAAE;AACrF;SACJ;;8GARI,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YA/CtB,YAAY;YACZ,mBAAmB;YACnB,kBAAkB;YAClB,YAAY;YACZ,cAAc;YAEd,aAAa;YACb,aAAa;YACb,YAAY;YAEZ,qBAAqB;YACrB,oBAAoB;YACpB,kBAAkB;YAElB,yBAAyB;YACzB,UAAU;YACV,WAAW;AACX;;AAEG;YACH,qBAAqB;YACrB,qBAAqB;YACrB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;AACtB,YAAA,iBAAiB,aAGjB,mBAAmB;YACnB,kBAAkB;YAClB,YAAY;YACZ,cAAc;YAEd,aAAa;YACb,aAAa;YACb,YAAY;YAEZ,qBAAqB;YAErB,qBAAqB;YACrB,qBAAqB;YACrB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YA/CtB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FA+CP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjD7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,mBAAmB;wBACnB,kBAAkB;wBAClB,YAAY;wBACZ,cAAc;wBAEd,aAAa;wBACb,aAAa;wBACb,YAAY;wBAEZ,qBAAqB;wBACrB,oBAAoB;wBACpB,kBAAkB;wBAElB,yBAAyB;wBACzB,UAAU;wBACV,WAAW;AACX;;AAEG;wBACH,qBAAqB;wBACrB,qBAAqB;wBACrB,uBAAuB;wBACvB,qBAAqB;wBACrB,sBAAsB;wBACtB;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,kBAAkB;wBAClB,YAAY;wBACZ,cAAc;wBAEd,aAAa;wBACb,aAAa;wBACb,YAAY;wBAEZ,qBAAqB;wBAErB,qBAAqB;wBACrB,qBAAqB;wBACrB,uBAAuB;wBACvB,qBAAqB;wBACrB,sBAAsB;wBACtB;AACH;AACJ,iBAAA;;;AC5HD;;AAEG;;;;"}