{"version":3,"file":"vipstorage-material-color-picker.mjs","sources":["../../../../projects/color-picker/src/lib/helpers/color-helpers.ts","../../../../projects/color-picker/src/lib/models/color.model.ts","../../../../projects/color-picker/src/lib/components/color-canvas/base-color-canvas.ts","../../../../projects/color-picker/src/lib/components/color-canvas/color-slider/color-slider.component.ts","../../../../projects/color-picker/src/lib/components/color-canvas/color-slider/color-slider.component.html","../../../../projects/color-picker/src/lib/directives/numeric-color-input.directive.ts","../../../../projects/color-picker/src/lib/components/color-canvas/color-canvas.component.ts","../../../../projects/color-picker/src/lib/components/color-canvas/color-canvas.component.html","../../../../projects/color-picker/src/lib/components/color-collection/color-collection.component.ts","../../../../projects/color-picker/src/lib/components/color-collection/color-collection.component.html","../../../../projects/color-picker/src/lib/components/color-palette/color-palette.component.ts","../../../../projects/color-picker/src/lib/components/color-palette/color-palette.component.html","../../../../projects/color-picker/src/lib/services/color-adapter.ts","../../../../projects/color-picker/src/lib/services/color-formats.ts","../../../../projects/color-picker/src/lib/components/color-picker/color-picker.component.ts","../../../../projects/color-picker/src/lib/components/color-picker/color-picker-content.component.html","../../../../projects/color-picker/src/lib/components/color-picker/color-input.component.ts","../../../../projects/color-picker/src/lib/components/color-toggle/color-toggle.component.ts","../../../../projects/color-picker/src/lib/components/color-toggle/color-toggle.component.html","../../../../projects/color-picker/src/lib/color-picker.module.ts","../../../../projects/color-picker/src/public-api.ts","../../../../projects/color-picker/src/vipstorage-material-color-picker.ts"],"sourcesContent":["\nconst trimLeft = /^\\s+/;\nconst trimRight = /\\s+$/;\nconst tinyCounter = 0;\nconst mathRound = Math.round;\nconst mathMin = Math.min;\nconst mathMax = Math.max;\nconst mathRandom = Math.random;\n\nexport const NUMERIC_REGEX = /[^0-9]/g;\nexport const MAX_RGB = 255;\nexport const MIN_RGB = 0;\n\n\n/** List basic colors */\nexport const BASIC_COLORS = [\"#ffffff\", \"#ffff00\", \"#ff00ff\", \"#ff0000\",\n    \"#c0c0c0\", \"#808080\", \"#808000\", \"#800080\",\n    \"#800000\", \"#00ffff\", \"#00ff00\", \"#008080\",\n    \"#008000\", \"#0000ff\", \"#000080\", \"#000000\"\n];\n\n/**\n * Get color at position\n * @param ctx \n * @param x \n * @param y \n */\nexport function getColorAtPosition(ctx: CanvasRenderingContext2D, x: number, y: number): { r: number, g: number, b: number } {\n    const imageData: Uint8ClampedArray = ctx.getImageData(x, y, 1, 1).data;\n    return { r: imageData[0], g: imageData[1], b: imageData[2] };\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nexport function rgbaToHex(r: number, g: number, b: number, a: number, allow4Char?: boolean): string {\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16)),\n        pad2(convertDecimalToHex(a))\n    ];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// Force a hex value to have 2 characters\nexport function pad2(c): string {\n    return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Converts a decimal to a hex value\nexport function convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n    return (parseIntFromHex(h) / 255);\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nexport function rgbToHex(r: number, g: number, b: number, allow3Char?: boolean) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening parent\nconst CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\nconst CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\nconst CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\nconst PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nconst PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\nexport const matchers = {\n    CSS_UNIT: new RegExp(CSS_UNIT),\n    rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n    rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n    hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n    hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n    hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n    hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n    hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n    hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n};\n\n// `stringInputToObject`\n// Permissive string parsing.  Take in a number of formats, and output an object\n// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nexport function stringInputToObject(color: string): { r: number, g: number, b: number, a: number } {\n\n    color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    let match;\n    let obj;\n    if ((match = matchers.rgb.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: 1 };\n    }\n    if ((match = matchers.rgba.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n\n    if ((match = matchers.hex8.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n        };\n    }\n    if ((match = matchers.hex6.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: 1\n        };\n    }\n    if ((match = matchers.hex4.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: convertHexToDecimal(match[4] + '' + match[4]),\n        };\n    }\n    if ((match = matchers.hex3.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: 1\n        };\n    }\n\n    return null;\n}\n\nexport function createMissingDateImplError(provider: string) {\n    return Error(\n        `NgxMatColorPicker: No provider found for ${provider}. You must define MAT_COLOR_FORMATS in your module`);\n}","import { MAX_RGB, rgbaToHex, rgbToHex } from '../helpers';\nimport { ColorInputFormat } from './color-input-format';\n\nexport class Color {\n\n    public r: number;\n    public g: number;\n    public b: number;\n    public a: number;\n    public roundA: number;\n\n    public hex: string;\n    public rgba: string;\n\n    constructor(_r: number, _g: number, _b: number, _a?: number) {\n        this.r = _r > MAX_RGB ? MAX_RGB : _r;\n        this.g = _g > MAX_RGB ? MAX_RGB : _g;\n        this.b = _b > MAX_RGB ? MAX_RGB : _b;\n        if (_a != null) {\n            this.a = _a > 1 ? 1 : _a;\n        } else {\n            this.a = 1;\n        }\n        this.roundA = Math.round(this.a);\n        this.hex = rgbToHex(this.r, this.g, this.b);\n        this.rgba = this.toRgba();\n    }\n\n    public toHex(allow3Char?: boolean, ): string {\n        return rgbToHex(this.r, this.g, this.b, allow3Char);\n    }\n\n    public toRgba(): string {\n        return `rgba(${this.r},${this.g},${this.b},${this.a})`;\n    }\n\n    public toHexString(allow3Char?: boolean): string {\n        return '#' + this.toHex(allow3Char);\n    }\n\n    public toRgbString(): string {\n        return (this.a === 1) ?\n            \"rgb(\" + Math.round(this.r) + \", \" + Math.round(this.g) + \", \" + Math.round(this.b) + \")\" :\n            \"rgba(\" + Math.round(this.r) + \", \" + Math.round(this.g) + \", \" + Math.round(this.b) + \", \" + this.roundA + \")\";\n    }\n\n    public toHex8(allow4Char): string {\n        return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n    }\n\n    public toHex8String(allow4Char?: boolean): string {\n        return '#' + this.toHex8(allow4Char);\n    }\n\n    public toString(format: ColorInputFormat): string {\n        let formatSet = !!format;\n\n        let formattedString;\n        let hasAlpha = this.a < 1 && this.a >= 0;\n        let needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\"\n            || format === \"hex3\" || format === \"hex4\" || format === \"hex8\");\n\n        if (needsAlphaFormat) {\n            return this.toRgbString();\n        }\n        if (format === \"rgb\") {\n            formattedString = this.toRgbString();\n        }\n        if (format === \"hex\" || format === \"hex6\") {\n            formattedString = this.toHexString();\n        }\n        if (format === \"hex3\") {\n            formattedString = this.toHexString(true);\n        }\n        if (format === \"hex4\") {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === \"hex8\") {\n            formattedString = this.toHex8String();\n        }\n\n        return formattedString || this.toHexString();\n    }\n\n}","import { AfterViewInit, Directive, EventEmitter, Input, NgZone, OnDestroy, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { Color } from '../../models';\n\n@Directive({\n\n})\nexport abstract class NgxMatBaseColorCanvas implements OnDestroy, AfterViewInit {\n\n\t@Output() colorChanged: EventEmitter<Color> = new EventEmitter<Color>();\n\t@Input() color: Color;\n\t@Input() theme: ThemePalette;\n\n\tcanvas: HTMLCanvasElement;\n\n\telementId: string;\n\n\tctx: CanvasRenderingContext2D;\n\twidth: number;\n\theight: number;\n\n\tx: number = 0;\n\ty: number = 0;\n\n\tdrag = false;\n\n\tprotected _destroyed: Subject<void> = new Subject<void>();\n\n\tconstructor(protected zone: NgZone, elementId: string) {\n\t\tthis.elementId = elementId;\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed.next();\n\t\tthis._destroyed.complete();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.canvas = <HTMLCanvasElement>document.getElementById(this.elementId);\n\t\tthis.ctx = this.canvas.getContext('2d');\n\t\tthis.width = this.canvas.width;\n\t\tthis.height = this.canvas.height;\n\t\tthis.draw();\n\t}\n\n\tprotected draw() {\n\t\tthis.ctx.clearRect(0, 0, this.width, this.height);\n\t\tthis.ctx.rect(0, 0, this.width, this.height);\n\t\tthis.fillGradient();\n\t\tif (this.y != 0) {\n\t\t\tthis.redrawIndicator(this.x, this.y);\n\t\t}\n\t}\n\n\n\tpublic onMousedown(e: MouseEvent) {\n\t\tthis.drag = true;\n\t\tthis.changeColor(e);\n\n\t\tthis.zone.runOutsideAngular(() => {\n\t\t\tthis.canvas.addEventListener('mousemove', this.onMousemove.bind(this));\n\t\t})\n\t}\n\n\tpublic onMousemove(e: MouseEvent) {\n\t\tif (this.drag) {\n\t\t\tthis.zone.run(() => {\n\t\t\t\tthis.changeColor(e);\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic onMouseup(e: MouseEvent) {\n\t\tthis.drag = false;\n\t\tthis.canvas.removeEventListener('mousemove', this.onMousemove);\n\t}\n\n\tpublic emitChange(color: Color) {\n\t\tthis.colorChanged.emit(color);\n\t}\n\n\tabstract changeColor(e: MouseEvent): void;\n\tabstract fillGradient(): void;\n\tabstract redrawIndicator(x: number, y: number): void;\n\n}\n","import { Component, OnInit, Output, EventEmitter, NgZone } from '@angular/core';\nimport { Color } from '../../../models';\nimport { getColorAtPosition } from '../../../helpers';\nimport { NgxMatBaseColorCanvas } from '../base-color-canvas';\n\n@Component({\n  selector: 'ngx-mat-color-slider',\n  templateUrl: './color-slider.component.html',\n  styleUrls: ['./color-slider.component.scss']\n})\nexport class NgxMatColorSliderComponent extends NgxMatBaseColorCanvas implements OnInit {\n\n  constructor(protected zone: NgZone) {\n    super(zone,'color-strip');\n  }\n\n  ngOnInit() {\n\n  }\n\n  ngAfterViewInit(): void {\n    super.ngAfterViewInit();\n  }\n\n  public fillGradient() {\n    const grd = this.ctx.createLinearGradient(0, 0, 0, this.height);\n    grd.addColorStop(0, 'rgba(255, 0, 0, 1)');\n    grd.addColorStop(0.17, 'rgba(255, 255, 0, 1)');\n    grd.addColorStop(0.34, 'rgba(0, 255, 0, 1)');\n    grd.addColorStop(0.51, 'rgba(0, 255, 255, 1)');\n    grd.addColorStop(0.68, 'rgba(0, 0, 255, 1)');\n    grd.addColorStop(0.85, 'rgba(255, 0, 255, 1)');\n    grd.addColorStop(1, 'rgba(255, 0, 0, 1)');\n\n    this.ctx.fillStyle = grd;\n    this.ctx.fill();\n  }\n\n  public redrawIndicator(x: number, y: number) {\n    this.ctx.beginPath();\n    this.ctx.strokeStyle = 'white';\n    this.ctx.lineWidth = 2;\n    this.ctx.arc(7.5, y, 7.5, 0, 2 * Math.PI, false);\n    this.ctx.stroke();\n    this.ctx.closePath();\n  }\n\n  public changeColor(e: MouseEvent) {\n    this.x = e.offsetX;\n    this.y = e.offsetY;\n    this.draw();\n    const { r, g, b } = getColorAtPosition(this.ctx, e.offsetX, e.offsetY);\n    this.emitChange(new Color(r, g, b));\n  }\n\n\n}\n","<canvas id=\"color-strip\" class=\"zone-strip\" (mousedown)=\"onMousedown($event)\" (mouseup)=\"onMouseup($event)\"\n width=\"15\" height=\"234\"></canvas>","import { Directive, HostListener } from '@angular/core';\nimport { NUMERIC_REGEX } from '../helpers';\n\n@Directive({\n  selector: '[ngxMatNumericColorInput]'\n})\nexport class NumericColorInputDirective {\n\n  constructor() { }\n\n  @HostListener('input', ['$event'])\n  onInput($event: any) {\n    this._formatInput($event.target);\n  }\n\n  /**\n* Format input\n* @param input \n*/\n  private _formatInput(input: any) {\n    let val = Number(input.value.replace(NUMERIC_REGEX, ''));\n    val = isNaN(val) ? 0 : val;\n    input.value = val;\n  }\n\n}\n","import { AfterViewInit, Component, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { merge } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { getColorAtPosition, matchers, stringInputToObject } from '../../helpers';\nimport { Color } from '../../models';\nimport { NgxMatBaseColorCanvas } from './base-color-canvas';\n\nconst RADIUS_NOB = 5;\n\n@Component({\n  selector: 'ngx-mat-color-canvas',\n  templateUrl: './color-canvas.component.html',\n  styleUrls: ['./color-canvas.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    'class': 'ngx-mat-color-canvas'\n  }\n})\nexport class NgxMatColorCanvasComponent extends NgxMatBaseColorCanvas\n  implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n\n  private _baseColor: Color;\n\n  get rCtrl(): AbstractControl {\n    return this.formGroup.get('r');\n  }\n\n  get gCtrl(): AbstractControl {\n    return this.formGroup.get('g');\n  }\n\n  get bCtrl(): AbstractControl {\n    return this.formGroup.get('b');\n  }\n\n  get aCtrl(): AbstractControl {\n    return this.formGroup.get('a');\n  }\n\n  get hexCtrl(): AbstractControl {\n    return this.formGroup.get('hex');\n  }\n\n  _resetBaseColor = true;\n\n  formGroup: FormGroup;\n\n  rgba: string;\n\n  constructor(protected zone: NgZone) {\n    super(zone, 'color-block');\n    this.formGroup = new FormGroup({\n      r: new FormControl(null, [Validators.required]),\n      g: new FormControl(null, [Validators.required]),\n      b: new FormControl(null, [Validators.required]),\n      a: new FormControl(null, [Validators.required]),\n      hex: new FormControl(null, [Validators.required, Validators.pattern(matchers.hex6)]),\n    });\n  }\n\n  ngOnInit() {\n\n    const rgbaCtrl$ = merge(this.rCtrl.valueChanges, this.gCtrl.valueChanges,\n      this.bCtrl.valueChanges, this.aCtrl.valueChanges);\n    rgbaCtrl$.pipe(takeUntil(this._destroyed), debounceTime(400))\n      .subscribe(_ => {\n        const color = new Color(Number(this.rCtrl.value),\n          Number(this.gCtrl.value), Number(this.bCtrl.value), Number(this.aCtrl.value));\n        this.emitChange(color);\n      });\n\n    const hexCtrl$ = this.hexCtrl.valueChanges;\n    hexCtrl$.pipe(takeUntil(this._destroyed), debounceTime(400), distinctUntilChanged())\n      .subscribe(hex => {\n        const obj = stringInputToObject(hex);\n        if (obj != null) {\n          const color = new Color(obj.r, obj.g, obj.b, obj.a);\n          this.emitChange(color);\n        }\n      })\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.color && changes.color.currentValue) {\n      this.updateForm(changes.color.currentValue);\n      if (this._resetBaseColor) {\n        this._baseColor = changes.color.currentValue;\n      }\n\n      this._resetBaseColor = true;\n\n      if (!changes.color.firstChange) {\n        this.draw();\n      }\n    }\n  }\n\n  private updateForm(val: Color): void {\n    const config = { emitEvent: false };\n    this.rCtrl.setValue(val.r, config);\n    this.gCtrl.setValue(val.g, config);\n    this.bCtrl.setValue(val.b, config);\n    this.aCtrl.setValue(val.a, config);\n    this.hexCtrl.setValue(val.hex, config);\n  }\n\n  public redrawIndicator(x: number, y: number) {\n    this.ctx.beginPath();\n    this.ctx.strokeStyle = 'white';\n    this.ctx.arc(x, y, RADIUS_NOB, 0, 2 * Math.PI, false);\n    this.ctx.stroke();\n    this.ctx.closePath();\n  }\n\n  public fillGradient() {\n    this.ctx.fillStyle = this._baseColor ? this._baseColor.rgba : 'rgba(255,255,255,1)';\n    this.ctx.fillRect(0, 0, this.width, this.height);\n\n    const grdWhite = this.ctx.createLinearGradient(0, 0, this.width, 0);\n    grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n    grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n    this.ctx.fillStyle = grdWhite;\n    this.ctx.fillRect(0, 0, this.width, this.height);\n\n    const grdBlack = this.ctx.createLinearGradient(0, 0, 0, this.height);\n    grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n    grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n    this.ctx.fillStyle = grdBlack;\n    this.ctx.fillRect(0, 0, this.width, this.height);\n  }\n\n  public onSliderColorChanged(c: Color) {\n    this._baseColor = c;\n    this.color = c;\n    this.fillGradient();\n    this.emitChange(c);\n  }\n\n  public changeColor(e: MouseEvent): void {\n    this.x = e.offsetX;\n    this.y = e.offsetY;\n    this._resetBaseColor = false;\n    this.draw();\n    const { r, g, b } = getColorAtPosition(this.ctx, e.offsetX, e.offsetY);\n    this.emitChange(new Color(r, g, b));\n  }\n\n}\n","<form [formGroup]=\"formGroup\">\n    <div class=\"color-canvas-row\">\n        <div class=\"zone-canvas\">\n            <canvas id=\"color-block\" class=\"zone-block\" (mousedown)=\"onMousedown($event)\" (mouseup)=\"onMouseup($event)\"\n                width=\"200\" height=\"235\"></canvas>\n            <ngx-mat-color-slider (colorChanged)=\"onSliderColorChanged($event)\"></ngx-mat-color-slider>\n        </div>\n\n        <div class=\"zone-inputs\">\n            <mat-form-field [color]=\"theme\">\n                <mat-label>R</mat-label>\n                <input matInput formControlName=\"r\" ngxMatNumericColorInput autocomplete=\"off\">\n            </mat-form-field>\n\n            <mat-form-field [color]=\"theme\">\n                <mat-label>G</mat-label>\n                <input matInput formControlName=\"g\" ngxMatNumericColorInput autocomplete=\"off\">\n            </mat-form-field>\n\n            <mat-form-field [color]=\"theme\">\n                <mat-label>B</mat-label>\n                <input matInput formControlName=\"b\" ngxMatNumericColorInput autocomplete=\"off\">\n            </mat-form-field>\n        </div>\n    </div>\n\n    <div class=\"color-canvas-row\">\n        <button mat-mini-fab [style.background-color]=\"color?.rgba || 'transparent'\" class=\"preview\"></button>\n        <mat-form-field [color]=\"theme\">\n            <mat-label>HEX6</mat-label>\n            <mat-label matPrefix class=\"symbol\">#&nbsp;</mat-label>\n            <input matInput formControlName=\"hex\" autocomplete=\"off\">\n        </mat-form-field>\n        <mat-form-field class=\"input-opacity\" [color]=\"theme\">\n            <mat-label>A</mat-label>\n            <input matInput formControlName=\"a\" type=\"number\" min=\"0\" max=\"1\" step=\"0.1\" autocomplete=\"off\">\n        </mat-form-field>\n    </div>\n</form>","import { Component, EventEmitter, OnInit, Output, ViewEncapsulation, Input } from '@angular/core';\nimport { Color } from '../../models';\nimport { BASIC_COLORS, stringInputToObject } from '../../helpers';\n\n@Component({\n  selector: 'ngx-mat-color-collection',\n  templateUrl: './color-collection.component.html',\n  styleUrls: ['./color-collection.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    'class': 'ngx-mat-color-collection'\n  }\n})\nexport class NgxMatColorCollectionComponent implements OnInit {\n\n  @Output() colorChanged: EventEmitter<Color> = new EventEmitter<Color>();\n\n  @Input()\n  set color(c: Color) {\n    if (c) {\n      this.selectedColor = c.toHexString();\n    }\n  }\n\n  selectedColor: string;\n\n  colors1: string[] = BASIC_COLORS.slice(0, 8);\n  colors2: string[] = BASIC_COLORS.slice(8, 16);\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n  select(hex: string) {\n    this.selectedColor = hex;\n    const { r, g, b, a } = stringInputToObject(hex);\n    this.colorChanged.emit(new Color(r, g, b, a));\n  }\n\n}\n","<div class=\"color-collection-row\">\n  <button *ngFor=\"let c of colors1\" mat-mini-fab [style.background-color]=\"c\" class=\"btn-color\"\n    (click)=\"select(c)\" [ngClass]=\"{'active': selectedColor === c}\" [disableRipple]=\"true\">\n  </button>\n</div>\n<div class=\"color-collection-row\">\n  <button *ngFor=\"let c of colors2\" mat-mini-fab [style.background-color]=\"c\" class=\"btn-color\"\n    (click)=\"select(c)\" [ngClass]=\"{'active': selectedColor === c}\" [disableRipple]=\"true\">\n  </button>\n</div>","import { Component, OnInit, ViewEncapsulation, Output, EventEmitter, Input } from '@angular/core';\nimport { Color } from '../../models';\nimport { ThemePalette } from '@angular/material/core';\n\n@Component({\n  selector: 'ngx-mat-color-palette',\n  templateUrl: 'color-palette.component.html',\n  styleUrls: ['color-palette.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    'class': 'ngx-mat-color-palette'\n  }\n})\nexport class NgxMatColorPaletteComponent implements OnInit {\n\n  @Output() colorChanged: EventEmitter<Color> = new EventEmitter<Color>();\n\n  @Input() color: Color;\n  @Input() theme: ThemePalette;\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n  public handleColorChanged(color: Color) {\n    this.colorChanged.emit(color);\n  }\n\n}\n","<ngx-mat-color-canvas (colorChanged)=\"handleColorChanged($event)\" [color]=\"color\"\n  [theme]=\"theme\"></ngx-mat-color-canvas>\n\n<ngx-mat-color-collection (colorChanged)=\"handleColorChanged($event)\" [color]=\"color\">\n</ngx-mat-color-collection>","import { Injectable } from '@angular/core';\nimport { stringInputToObject } from '../helpers';\nimport { Color, ColorInputFormat } from '../models';\n\n@Injectable()\nexport class ColorAdapter {\n\n  constructor() { }\n\n  sameColor(a: Color, b: Color) {\n    if (a == null && b == null) return true;\n    if (a != null && b != null) return a.rgba === b.rgba;\n    return false;\n  }\n\n  format(c: Color, format: ColorInputFormat): string {\n    return c.toString(format);\n  }\n\n  parse(value: string): Color | null {\n    const obj = stringInputToObject(value);\n    if (obj) {\n      return new Color(obj.r, obj.g, obj.b, obj.a);\n    }\n    return null;\n  }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { ColorInputFormat } from '../models';\n\nexport type MatColorFormats = {\n    display: {\n        colorInput: ColorInputFormat;\n    }\n}\n\nexport const NGX_MAT_COLOR_FORMATS: MatColorFormats = {\n    display: {\n        colorInput: 'hex'\n    }\n}\n\nexport const MAT_COLOR_FORMATS = new InjectionToken<MatColorFormats>('mat-color-formats');\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayRef, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ComponentRef, ElementRef, EventEmitter, Inject, InjectionToken, Input, NgZone, OnDestroy, OnInit, Optional, Output, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CanColor, ThemePalette, mixinColor } from '@angular/material/core';\nimport { matDatepickerAnimations } from '@angular/material/datepicker';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Color } from '../../models';\nimport { ColorAdapter } from '../../services';\nimport { NgxMatColorPaletteComponent } from '../color-palette/color-palette.component';\nimport { NgxMatColorPickerInput } from './color-input.component';\n\n/** Injection token that determines the scroll handling while the calendar is open. */\nexport const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY =\n  new InjectionToken<() => ScrollStrategy>('ngx-mat-colorpicker-scroll-strategy');\n\n\nexport function NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy {\n  return () => overlay.scrollStrategies.reposition();\n}\n\n\nexport const NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n  provide: NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY,\n  deps: [Overlay],\n  useFactory: NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY,\n};\n\nconst _MatColorpickerContentBase = mixinColor(\n  class {\n    constructor(public _elementRef: ElementRef) { }\n  },\n);\n\n\n@Component({\n  selector: 'ngx-mat-color-picker-content',\n  templateUrl: './color-picker-content.component.html',\n  styleUrls: ['color-picker-content.component.scss'],\n  host: {\n    'class': 'ngx-mat-colorpicker-content',\n    '[@transformPanel]': '\"enter\"',\n    '[class.ngx-mat-colorpicker-content-touch]': 'picker.touchUi',\n  },\n  animations: [\n    matDatepickerAnimations.transformPanel,\n    matDatepickerAnimations.fadeInCalendar,\n  ],\n  exportAs: 'ngxMatColorPickerContent',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  inputs: ['color']\n})\nexport class NgxMatColorPickerContentComponent extends _MatColorpickerContentBase\n  implements CanColor {\n\n  /** Reference to the internal calendar component. */\n  @ViewChild(NgxMatColorPaletteComponent) _palette: NgxMatColorPaletteComponent;\n\n  picker: NgxMatColorPickerComponent;\n  _isAbove: boolean;\n\n  constructor(elementRef: ElementRef) {\n    super(elementRef);\n  }\n\n}\n\n@Component({\n  selector: 'ngx-mat-color-picker',\n  template: '',\n  exportAs: 'ngxMatColorPicker',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class NgxMatColorPickerComponent implements OnInit, OnDestroy, CanColor {\n\n  private _scrollStrategy: () => ScrollStrategy;\n\n  /** Emits when the datepicker has been opened. */\n  @Output('opened') openedStream: EventEmitter<void> = new EventEmitter<void>();\n\n  /** Emits when the datepicker has been closed. */\n  @Output('closed') closedStream: EventEmitter<void> = new EventEmitter<void>();\n\n  @Input() get disabled() {\n    return this._disabled === undefined && this._pickerInput ?\n      this._pickerInput.disabled : !!this._disabled;\n  }\n  set disabled(value: boolean) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this._disabled) {\n      this._disabled = newValue;\n      this._disabledChange.next(newValue);\n    }\n  }\n  private _disabled: boolean;\n\n  @Input()\n  get touchUi(): boolean { return this._touchUi; }\n  set touchUi(value: boolean) {\n    this._touchUi = coerceBooleanProperty(value);\n  }\n  private _touchUi = false;\n\n  /** Whether the calendar is open. */\n  @Input()\n  get opened(): boolean { return this._opened; }\n  set opened(value: boolean) { value ? this.open() : this.close(); }\n  private _opened = false;\n\n  /** Default Color palette to use on the datepicker's calendar. */\n  @Input()\n  get defaultColor(): ThemePalette {\n    return this._defaultColor;\n  }\n  set defaultColor(value: ThemePalette) {\n    this._defaultColor = value;\n  }\n  _defaultColor: ThemePalette = 'primary';\n\n  /** Color palette to use on the datepicker's calendar. */\n  @Input()\n  get color(): ThemePalette {\n    return this._color ||\n      (this._pickerInput ? this._pickerInput.getThemePalette() : undefined);\n  }\n  set color(value: ThemePalette) {\n    this._color = value;\n  }\n  _color: ThemePalette;\n\n\n  /** The currently selected date. */\n  get _selected(): Color { return this._validSelected; }\n  set _selected(value: Color) { this._validSelected = value; }\n  private _validSelected: Color = null;\n\n\n  _pickerInput: NgxMatColorPickerInput;\n  /** A reference to the overlay when the picker is opened as a popup. */\n  _popupRef: OverlayRef;\n\n  /** A reference to the dialog when the picker is opened as a dialog. */\n  private _dialogRef: MatDialogRef<NgxMatColorPickerContentComponent> | null;\n  /** Reference to the component instantiated in popup mode. */\n  private _popupComponentRef: ComponentRef<NgxMatColorPickerContentComponent> | null;\n  /** A portal containing the content for this picker. */\n  private _portal: ComponentPortal<NgxMatColorPickerContentComponent>;\n\n  /** Emits when the datepicker is disabled. */\n  readonly _disabledChange = new Subject<boolean>();\n\n  /** The element that was focused before the datepicker was opened. */\n  private _focusedElementBeforeOpen: HTMLElement | null = null;\n\n  /** Subscription to value changes in the associated input element. */\n  private _inputSubscription = Subscription.EMPTY;\n\n  /** Emits new selected date when selected date changes. */\n  readonly _selectedChanged = new Subject<Color>();\n\n  constructor(private _dialog: MatDialog,\n    private _overlay: Overlay,\n    private _zone: NgZone,\n    private _adapter: ColorAdapter,\n    @Optional() private _dir: Directionality,\n    @Inject(NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY) scrollStrategy: any,\n    @Optional() @Inject(DOCUMENT) private _document: any,\n    private _viewContainerRef: ViewContainerRef) {\n    this._scrollStrategy = scrollStrategy;\n  }\n\n  ngOnInit() {\n  }\n\n  ngOnDestroy() {\n    this.close();\n    this._inputSubscription.unsubscribe();\n    this._disabledChange.complete();\n\n    if (this._popupRef) {\n      this._popupRef.dispose();\n      this._popupComponentRef = null;\n    }\n  }\n\n\n  /** Selects the given date */\n  select(nextVal: Color): void {\n    let oldValue = this._selected;\n    this._selected = nextVal;\n    if (!this._adapter.sameColor(oldValue, this._selected)) {\n      this._selectedChanged.next(nextVal);\n    }\n  }\n\n\n  /**\n * Register an input with this datepicker.\n * @param input The datepicker input to register with this datepicker.\n */\n  registerInput(input: NgxMatColorPickerInput): void {\n    if (this._pickerInput) {\n      throw Error('A ColorPicker can only be associated with a single input.');\n    }\n    this._pickerInput = input;\n    this._inputSubscription =\n      this._pickerInput._valueChange.subscribe((value: Color) => this._selected = value);\n  }\n\n  public open(): void {\n    if (this._opened || this.disabled) {\n      return;\n    }\n    if (!this._pickerInput) {\n      throw Error('Attempted to open an ColorPicker with no associated input.');\n    }\n\n    if (this._document) {\n      this._focusedElementBeforeOpen = this._document.activeElement;\n    }\n\n    this.touchUi ? this._openAsDialog() : this._openAsPopup();\n    this._opened = true;\n    this.openedStream.emit();\n  }\n\n  /** Open the calendar as a dialog. */\n  private _openAsDialog(): void {\n\n    if (this._dialogRef) {\n      this._dialogRef.close();\n    }\n\n    this._dialogRef = this._dialog.open<NgxMatColorPickerContentComponent>(NgxMatColorPickerContentComponent, {\n      direction: this._dir ? this._dir.value : 'ltr',\n      viewContainerRef: this._viewContainerRef,\n      panelClass: 'ngx-mat-colorpicker-dialog',\n    });\n\n    this._dialogRef.afterClosed().subscribe(() => this.close());\n    this._dialogRef.componentInstance.picker = this;\n    this._setColor();\n  }\n\n  /** Open the calendar as a popup. */\n  private _openAsPopup(): void {\n\n    if (!this._portal) {\n      this._portal = new ComponentPortal<NgxMatColorPickerContentComponent>(NgxMatColorPickerContentComponent,\n        this._viewContainerRef);\n    }\n\n    if (!this._popupRef) {\n      this._createPopup();\n    }\n\n    if (!this._popupRef.hasAttached()) {\n      this._popupComponentRef = this._popupRef.attach(this._portal);\n      this._popupComponentRef.instance.picker = this;\n      this._setColor();\n\n      // Update the position once the calendar has rendered.\n      this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n        this._popupRef.updatePosition();\n      });\n    }\n  }\n\n  /** Create the popup. */\n  private _createPopup(): void {\n    const overlayConfig = new OverlayConfig({\n      positionStrategy: this._createPopupPositionStrategy(),\n      hasBackdrop: true,\n      backdropClass: 'mat-overlay-transparent-backdrop',\n      direction: this._dir,\n      scrollStrategy: this._scrollStrategy(),\n      panelClass: 'mat-colorpicker-popup',\n    });\n\n    this._popupRef = this._overlay.create(overlayConfig);\n    this._popupRef.overlayElement.setAttribute('role', 'dialog');\n\n    merge(\n      this._popupRef.backdropClick(),\n      this._popupRef.detachments(),\n      this._popupRef.keydownEvents().pipe(filter(event => {\n        // Closing on alt + up is only valid when there's an input associated with the datepicker.\n        return event.keyCode === ESCAPE ||\n          (this._pickerInput && event.altKey && event.keyCode === UP_ARROW);\n      }))\n    ).subscribe(event => {\n      if (event) {\n        event.preventDefault();\n      }\n\n      this.close();\n    });\n  }\n\n\n  close(): void {\n    if (!this._opened) {\n      return;\n    }\n    if (this._popupRef && this._popupRef.hasAttached()) {\n      this._popupRef.detach();\n    }\n    if (this._dialogRef) {\n      this._dialogRef.close();\n      this._dialogRef = null;\n    }\n    if (this._portal && this._portal.isAttached) {\n      this._portal.detach();\n    }\n\n    const completeClose = () => {\n      // The `_opened` could've been reset already if\n      // we got two events in quick succession.\n      if (this._opened) {\n        this._opened = false;\n        this.closedStream.emit();\n        this._focusedElementBeforeOpen = null;\n      }\n    };\n\n    if (this._focusedElementBeforeOpen &&\n      typeof this._focusedElementBeforeOpen.focus === 'function') {\n      // Because IE moves focus asynchronously, we can't count on it being restored before we've\n      // marked the datepicker as closed. If the event fires out of sequence and the element that\n      // we're refocusing opens the datepicker on focus, the user could be stuck with not being\n      // able to close the calendar at all. We work around it by making the logic, that marks\n      // the datepicker as closed, async as well.\n      this._focusedElementBeforeOpen.focus();\n      setTimeout(completeClose);\n    } else {\n      completeClose();\n    }\n  }\n\n  /** Passes the current theme color along to the calendar overlay. */\n  private _setColor(): void {\n    const color = this.color;\n    if (this._popupComponentRef) {\n      this._popupComponentRef.instance.color = color;\n    }\n    if (this._dialogRef) {\n      this._dialogRef.componentInstance.color = color;\n    }\n  }\n\n  /** Create the popup PositionStrategy. */\n  private _createPopupPositionStrategy(): PositionStrategy {\n    return this._overlay.position()\n      .flexibleConnectedTo(this._pickerInput.getConnectedOverlayOrigin())\n      .withTransformOriginOn('.ngx-mat-colorpicker-content')\n      .withFlexibleDimensions(false)\n      .withViewportMargin(8)\n      .withLockedPosition()\n      .withPositions([\n        {\n          originX: 'start',\n          originY: 'bottom',\n          overlayX: 'start',\n          overlayY: 'top'\n        },\n        {\n          originX: 'start',\n          originY: 'top',\n          overlayX: 'start',\n          overlayY: 'bottom'\n        },\n        {\n          originX: 'end',\n          originY: 'bottom',\n          overlayX: 'end',\n          overlayY: 'top'\n        },\n        {\n          originX: 'end',\n          originY: 'top',\n          overlayX: 'end',\n          overlayY: 'bottom'\n        }\n      ]);\n  }\n\n\n}\n","<ngx-mat-color-palette (colorChanged)=\"picker.select($event)\" \n[color]=\"picker._selected\"\n[theme]=\"color\"></ngx-mat-color-palette>","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { Directive, ElementRef, EventEmitter, forwardRef, Inject, Input, OnDestroy, OnInit, Optional, Output } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\nimport { Subscription } from 'rxjs';\nimport { createMissingDateImplError } from '../../helpers';\nimport { Color } from '../../models';\nimport { ColorAdapter, MAT_COLOR_FORMATS, MatColorFormats } from '../../services';\nimport { NgxMatColorPickerComponent } from './color-picker.component';\n\nexport class NgxMatColorPickerInputEvent {\n  /** The new value for the target colorpicker input. */\n  value: Color | null;\n\n  constructor(\n    /** Reference to the colorpicker input component that emitted the event. */\n    public target: NgxMatColorPickerInput,\n    /** Reference to the native input element associated with the colorpicker input. */\n    public targetElement: HTMLElement) {\n    this.value = this.target.value;\n  }\n}\n\n\nexport const MAT_COLORPICKER_VALUE_ACCESSOR: any = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NgxMatColorPickerInput),\n  multi: true\n};\n\n\nexport const MAT_COLORPICKER_VALIDATORS: any = {\n  provide: NG_VALIDATORS,\n  useExisting: forwardRef(() => NgxMatColorPickerInput),\n  multi: true\n};\n\n@Directive({\n  selector: 'input[ngxMatColorPicker]',\n  providers: [\n    MAT_COLORPICKER_VALUE_ACCESSOR,\n    MAT_COLORPICKER_VALIDATORS,\n    { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: NgxMatColorPickerInput },\n  ],\n  host: {\n    '[attr.aria-haspopup]': '_picker ? \"dialog\" : null',\n    '[attr.aria-owns]': '(_picker?.opened && _picker.id) || null',\n    '[disabled]': 'disabled',\n    '(input)': '_onInput($event.target.value)',\n    '(change)': '_onChange()',\n    '(blur)': '_onBlur()',\n    '(keydown)': '_onKeydown($event)',\n  },\n  exportAs: 'ngxMatColorPickerInput',\n})\nexport class NgxMatColorPickerInput implements ControlValueAccessor, OnInit, OnDestroy, Validator {\n\n  @Input()\n  set ngxMatColorPicker(value: NgxMatColorPickerComponent) {\n    if (!value) {\n      return;\n    }\n\n    this._picker = value;\n    this._picker.registerInput(this);\n    this._pickerSubscription.unsubscribe();\n\n    this._pickerSubscription = this._picker._selectedChanged.subscribe((selected: Color) => {\n      this.value = selected;\n      this._cvaOnChange(selected);\n      this._onTouched();\n      this.colorInput.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n      this.colorChange.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n    });\n  }\n  _picker: NgxMatColorPickerComponent;\n\n  /** Whether the colorpicker-input is disabled. */\n  @Input()\n  get disabled(): boolean { return !!this._disabled; }\n  set disabled(value: boolean) {\n    const newValue = coerceBooleanProperty(value);\n    const element = this._elementRef.nativeElement;\n\n    if (this._disabled !== newValue) {\n      this._disabled = newValue;\n      this._disabledChange.emit(newValue);\n    }\n\n    // We need to null check the `blur` method, because it's undefined during SSR.\n    if (newValue && element.blur) {\n      // Normally, native input elements automatically blur if they turn disabled. This behavior\n      // is problematic, because it would mean that it triggers another change detection cycle,\n      // which then causes a changed after checked error if the input element was focused before.\n      element.blur();\n    }\n  }\n  private _disabled: boolean;\n\n  /** The value of the input. */\n  @Input()\n  get value(): Color | null { return this._value; }\n  set value(value: Color | null) {\n    const oldValue = this.value;\n    this._value = value;\n    this._formatValue(value);\n\n    if (!this._adapter.sameColor(oldValue, value)) {\n      this._valueChange.emit(value);\n    }\n\n  }\n  private _value: Color | null;\n\n  /** Emits when a `change` event is fired on this `<input>`. */\n  @Output() readonly colorChange: EventEmitter<NgxMatColorPickerInputEvent> =\n    new EventEmitter<NgxMatColorPickerInputEvent>();\n\n  /** Emits when an `input` event is fired on this `<input>`. */\n  @Output() readonly colorInput: EventEmitter<NgxMatColorPickerInputEvent> =\n    new EventEmitter<NgxMatColorPickerInputEvent>();\n\n  /** Emits when the disabled state has changed */\n  _disabledChange = new EventEmitter<boolean>();\n\n  /** Emits when the value changes (either due to user input or programmatic change). */\n  _valueChange = new EventEmitter<Color>();\n\n  _onTouched = () => { };\n\n  private _cvaOnChange: (value: any) => void = () => { };\n\n  private _validatorOnChange = () => { };\n\n  private _pickerSubscription = Subscription.EMPTY;\n\n  /** The combined form control validator for this input. */\n  private _validator: ValidatorFn | null =\n    Validators.compose([]);\n\n  /** Whether the last value set on the input was valid. */\n  private _lastValueValid = false;\n\n  constructor(private _elementRef: ElementRef<HTMLInputElement>,\n    @Optional() private _formField: MatFormField,\n    @Optional() @Inject(MAT_COLOR_FORMATS) private _colorFormats: MatColorFormats,\n    private _adapter: ColorAdapter) {\n    if (!this._colorFormats) {\n      throw createMissingDateImplError('MAT_COLOR_FORMATS');\n    }\n  }\n\n  /** Returns the palette used by the input's form field, if any. */\n  public getThemePalette(): ThemePalette {\n    return this._formField ? this._formField.color : undefined;\n  }\n\n\n  registerOnValidatorChange(fn: () => void): void {\n    this._validatorOnChange = fn;\n  }\n\n\n  validate(c: AbstractControl): ValidationErrors | null {\n    return this._validator ? this._validator(c) : null;\n  }\n\n  /**\n   * @deprecated\n   * @breaking-change 8.0.0 Use `getConnectedOverlayOrigin` instead\n   */\n  getPopupConnectionElementRef(): ElementRef {\n    return this.getConnectedOverlayOrigin();\n  }\n\n  /**\n  * Gets the element that the colorpicker popup should be connected to.\n  * @return The element to connect the popup to.\n  */\n  getConnectedOverlayOrigin(): ElementRef {\n    return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;\n  }\n\n\n  ngOnInit() {\n  }\n\n  ngOnDestroy(): void {\n    this._pickerSubscription.unsubscribe();\n    this._valueChange.complete();\n    this._disabledChange.complete();\n  }\n\n  // Implemented as part of ControlValueAccessor.\n  writeValue(value: Color): void {\n    this.value = value;\n  }\n\n  // Implemented as part of ControlValueAccessor.\n  registerOnChange(fn: (value: any) => void): void {\n    this._cvaOnChange = fn;\n  }\n\n  // Implemented as part of ControlValueAccessor.\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  // Implemented as part of ControlValueAccessor.\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  _onChange() {\n    this.colorChange.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n  }\n\n  _onKeydown(event: KeyboardEvent) {\n    const isAltDownArrow = event.altKey && event.keyCode === DOWN_ARROW;\n\n    if (this._picker && isAltDownArrow && !this._elementRef.nativeElement.readOnly) {\n      this._picker.open();\n      event.preventDefault();\n    }\n  }\n\n  /** Handles blur events on the input. */\n  _onBlur() {\n    // Reformat the input only if we have a valid value.\n    if (this.value) {\n      this._formatValue(this.value);\n    }\n\n    this._onTouched();\n  }\n\n  /** Formats a value and sets it on the input element. */\n  private _formatValue(value: Color | null) {\n    this._elementRef.nativeElement.value = value ? this._adapter.format(value, this._colorFormats.display.colorInput) : '';\n  }\n\n  _onInput(value: string) {\n    const lastValueWasValid = this._lastValueValid;\n    const nextValue = this._adapter.parse(value);\n\n    if (!this._adapter.sameColor(nextValue, this._value)) {\n      this._value = nextValue;\n      this._cvaOnChange(nextValue);\n      this._valueChange.emit(nextValue);\n      this.colorInput.emit(new NgxMatColorPickerInputEvent(this, this._elementRef.nativeElement));\n    } else if (lastValueWasValid !== this._lastValueValid) {\n      this._validatorOnChange();\n    }\n  }\n\n}\n\n\n","import {\n  AfterContentInit, ChangeDetectorRef, Component, ContentChild, Directive, Input, OnChanges, OnDestroy,\n  OnInit, SimpleChanges, ViewChild, ViewEncapsulation\n} from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport { Subscription, merge, of } from 'rxjs';\nimport { NgxMatColorPickerComponent } from '../color-picker/color-picker.component';\n\n@Directive({\n  selector: '[ngxMatColorpickerToggleIcon]',\n})\nexport class NgxMatColorpickerToggleIcon { }\n\n@Component({\n  selector: 'ngx-mat-color-toggle',\n  templateUrl: './color-toggle.component.html',\n  styleUrls: ['./color-toggle.component.scss'],\n  host: {\n    'class': 'ngx-mat-color-toggle',\n    // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n    // consumer may have provided, while still being able to receive focus.\n    '[attr.tabindex]': '-1',\n    '[class.ngx-mat-color-toggle-active]': 'picker && picker.opened',\n    '[class.mat-accent]': 'picker && picker.color === \"accent\"',\n    '[class.mat-warn]': 'picker && picker.color === \"warn\"',\n    '(focus)': '_button.focus()',\n  },\n  exportAs: 'ngxMatColorPickerToggle',\n  encapsulation: ViewEncapsulation.None\n})\nexport class NgxMatColorToggleComponent implements OnInit, AfterContentInit, OnChanges, OnDestroy {\n\n  private _stateChanges = Subscription.EMPTY;\n\n  @Input('for') picker: NgxMatColorPickerComponent;\n  @Input() tabIndex: number;\n\n  @Input() get disabled(): boolean {\n    if (this._disabled == null && this.picker) {\n      return this.picker.disabled;\n    }\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n  }\n  private _disabled: boolean;\n\n  /** Whether ripples on the toggle should be disabled. */\n  @Input() disableRipple: boolean;\n\n  /** Custom icon set by the consumer. */\n  @ContentChild(NgxMatColorpickerToggleIcon) _customIcon: NgxMatColorpickerToggleIcon;\n\n  @ViewChild('button') _button: MatButton;\n\n  constructor(private _cd: ChangeDetectorRef) { }\n\n  ngOnInit() {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['picker']) {\n      this._watchStateChanges();\n    }\n  }\n\n  ngOnDestroy() {\n    this._stateChanges.unsubscribe();\n  }\n\n  ngAfterContentInit() {\n    this._watchStateChanges();\n  }\n\n  public open(event: Event): void {\n    if (this.picker && !this.disabled) {\n      this.picker.open();\n      event.stopPropagation();\n    }\n  }\n\n  private _watchStateChanges() {\n    const disabled$ = this.picker ? this.picker._disabledChange : of(false);\n    const inputDisabled$ = this.picker && this.picker._pickerInput ?\n      this.picker._pickerInput._disabledChange : of(false);\n\n    const pickerToggled$ = this.picker ?\n      merge(this.picker.openedStream, this.picker.closedStream) : of(false);\n    this._stateChanges.unsubscribe();\n\n    this._stateChanges = merge(disabled$, inputDisabled$, pickerToggled$).subscribe(() => this._cd.markForCheck());\n  }\n\n}\n","<button #button mat-icon-button type=\"button\" [attr.aria-haspopup]=\"picker ? 'dialog' : null\"\n  [attr.tabindex]=\"disabled ? -1 : tabIndex\" [disabled]=\"disabled\" (click)=\"open($event)\"\n  [disableRipple]=\"disableRipple\">\n\n  <mat-icon *ngIf=\"!_customIcon\" [style.color]=\"picker?._selected?.rgba\">\n    palette\n  </mat-icon>\n\n  <ng-content select=\"[ngxMatColorpickerToggleIcon]\"></ng-content>\n\n</button>","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport {\n  NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n  NgxMatColorCanvasComponent,\n  NgxMatColorCollectionComponent,\n  NgxMatColorPaletteComponent,\n  NgxMatColorPickerComponent,\n  NgxMatColorPickerContentComponent,\n  NgxMatColorPickerInput, NgxMatColorSliderComponent,\n  NgxMatColorToggleComponent,\n  NgxMatColorpickerToggleIcon\n} from './components';\nimport { NumericColorInputDirective } from './directives';\nimport { ColorAdapter } from './services';\n\n@NgModule({\n  declarations: [\n    NgxMatColorPaletteComponent,\n    NgxMatColorCanvasComponent,\n    NgxMatColorCollectionComponent,\n    NgxMatColorSliderComponent,\n    NumericColorInputDirective,\n    NgxMatColorPickerContentComponent,\n    NgxMatColorPickerComponent,\n    NgxMatColorToggleComponent,\n    NgxMatColorpickerToggleIcon,\n    NgxMatColorPickerInput\n  ],\n  imports: [\n    CommonModule,\n    MatInputModule,\n    MatButtonModule,\n    MatCardModule,\n    MatRadioModule,\n    FormsModule,\n    ReactiveFormsModule,\n    MatDialogModule,\n    PortalModule,\n    MatIconModule\n  ],\n  exports: [\n    NgxMatColorToggleComponent,\n    NgxMatColorPickerInput,\n    NgxMatColorPickerComponent,\n    NgxMatColorpickerToggleIcon\n  ],\n  providers: [\n    ColorAdapter,\n    NGX_MAT_COLOR_PICKER_SCROLL_STRATEGY_FACTORY_PROVIDER\n  ]\n})\nexport class NgxMatColorPickerModule { }\n","/*\n * Public API Surface of color-picker\n */\n\nexport * from './lib/color-picker.module';\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/helpers';\nexport * from './lib/models';\nexport * from './lib/services';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i5.NgxMatColorSliderComponent","i6.NumericColorInputDirective","i1","i2","i1.NgxMatColorCanvasComponent","i2.NgxMatColorCollectionComponent","i1.NgxMatColorPaletteComponent","i4.ColorAdapter","i2.ColorAdapter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AACzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;AAExB,MAAM,aAAa,GAAG,UAAU;AAChC,MAAM,OAAO,GAAG,IAAI;AACpB,MAAM,OAAO,GAAG,EAAE;AAGzB;AACa,MAAA,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AACnE,IAAA,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AAC1C,IAAA,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;AAC1C,IAAA,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;EAC5C;AAEF;;;;;AAKG;SACa,kBAAkB,CAAC,GAA6B,EAAE,CAAS,EAAE,CAAS,EAAA;AAClF,IAAA,MAAM,SAAS,GAAsB,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;AACA;AACA;AACA;AACM,SAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,UAAoB,EAAA;AACtF,IAAA,IAAI,GAAG,GAAG;QACN,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;;AAGF,IAAA,IAAI,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAC5K,QAAA,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpF,KAAA;AAED,IAAA,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;AACM,SAAU,IAAI,CAAC,CAAC,EAAA;AAClB,IAAA,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;AACM,SAAU,mBAAmB,CAAC,CAAC,EAAA;AACjC,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;AACA,SAAS,mBAAmB,CAAC,CAAC,EAAA;IAC1B,QAAQ,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACtC,CAAC;AAED;AACA,SAAS,eAAe,CAAC,GAAG,EAAA;AACxB,IAAA,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;AACA;AACA;AACA;AACM,SAAU,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,UAAoB,EAAA;AAE1E,IAAA,IAAI,GAAG,GAAG;QACN,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KAClC,CAAC;;AAGF,IAAA,IAAI,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACpI,QAAA,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjE,KAAA;AAED,IAAA,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED;AACA;AACA;AACA,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,GAAG,CAAC;AAClE,MAAM,iBAAiB,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AACrH,MAAM,iBAAiB,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElI,MAAA,QAAQ,GAAG;AACpB,IAAA,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC;AAC9B,IAAA,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC1C,IAAA,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC;AAC5C,IAAA,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC1C,IAAA,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC;AAC5C,IAAA,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC;AAC1C,IAAA,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC;AAC5C,IAAA,IAAI,EAAE,sDAAsD;AAC5D,IAAA,IAAI,EAAE,sDAAsD;AAC5D,IAAA,IAAI,EAAE,sEAAsE;AAC5E,IAAA,IAAI,EAAE,sEAAsE;EAC9E;AAEF;AACA;AACA;AACM,SAAU,mBAAmB,CAAC,KAAa,EAAA;AAE7C,IAAA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;;;;;AAMzE,IAAA,IAAI,KAAK,CAAC;AACV,IAAA,IAAI,GAAG,CAAC;AACR,IAAA,KAAK,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACpC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1D,KAAA;AACD,IAAA,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;AACrC,QAAA,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACjE,KAAA;AAED,IAAA,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACrC,OAAO;AACH,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACnC,CAAC;AACL,KAAA;AACD,IAAA,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACrC,OAAO;AACH,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,EAAE,CAAC;SACP,CAAC;AACL,KAAA;AACD,IAAA,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACrC,OAAO;AACH,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SACnD,CAAC;AACL,KAAA;AACD,IAAA,KAAK,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;QACrC,OAAO;AACH,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,CAAC,EAAE,CAAC;SACP,CAAC;AACL,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAEK,SAAU,0BAA0B,CAAC,QAAgB,EAAA;AACvD,IAAA,OAAO,KAAK,CACR,CAAA,yCAAA,EAA4C,QAAQ,CAAA,kDAAA,CAAoD,CAAC,CAAC;AAClH;;MC3Ka,KAAK,CAAA;AAWd,IAAA,WAAA,CAAY,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAW,EAAA;AACvD,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;QACrC,IAAI,EAAE,IAAI,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,SAAA;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;KAC7B;AAEM,IAAA,KAAK,CAAC,UAAoB,EAAA;AAC7B,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KACvD;IAEM,MAAM,GAAA;AACT,QAAA,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,CAAC,GAAG,CAAC;KAC1D;AAEM,IAAA,WAAW,CAAC,UAAoB,EAAA;QACnC,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KACvC;IAEM,WAAW,GAAA;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AAChB,YAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACzF,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACvH;AAEM,IAAA,MAAM,CAAC,UAAU,EAAA;QACpB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KAChE;AAEM,IAAA,YAAY,CAAC,UAAoB,EAAA;QACpC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACxC;AAEM,IAAA,QAAQ,CAAC,MAAwB,EAAA;AACpC,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;AAEzB,QAAA,IAAI,eAAe,CAAC;AACpB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,gBAAgB,GAAG,CAAC,SAAS,IAAI,QAAQ,KAAK,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;eAChF,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC;AAEpE,QAAA,IAAI,gBAAgB,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC7B,SAAA;QACD,IAAI,MAAM,KAAK,KAAK,EAAE;AAClB,YAAA,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACxC,SAAA;AACD,QAAA,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE;AACvC,YAAA,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACxC,SAAA;QACD,IAAI,MAAM,KAAK,MAAM,EAAE;AACnB,YAAA,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAA;QACD,IAAI,MAAM,KAAK,MAAM,EAAE;AACnB,YAAA,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC7C,SAAA;QACD,IAAI,MAAM,KAAK,MAAM,EAAE;AACnB,YAAA,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;KAChD;AAEJ;;MC5EqB,qBAAqB,CAAA;IAqB1C,WAAsB,CAAA,IAAY,EAAE,SAAiB,EAAA;QAA/B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AAnBxB,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,YAAY,EAAS,CAAC;QAYxE,IAAC,CAAA,CAAA,GAAW,CAAC,CAAC;QACd,IAAC,CAAA,CAAA,GAAW,CAAC,CAAC;QAEd,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAEH,QAAA,IAAA,CAAA,UAAU,GAAkB,IAAI,OAAO,EAAQ,CAAC;AAGzD,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC3B;IAED,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAED,eAAe,GAAA;QACd,IAAI,CAAC,MAAM,GAAsB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;KACZ;IAES,IAAI,GAAA;AACb,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,SAAA;KACD;AAGM,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEpB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,SAAC,CAAC,CAAA;KACF;AAEM,IAAA,WAAW,CAAC,CAAa,EAAA;QAC/B,IAAI,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AAClB,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACrB,aAAC,CAAC,CAAA;AACF,SAAA;KACD;AAEM,IAAA,SAAS,CAAC,CAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/D;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;iIAxEoB,qBAAqB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAArB,qBAAqB,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAH1C,SAAS;mBAAC,EAEV,CAAA;gGAGU,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;ACFD,MAAO,0BAA2B,SAAQ,qBAAqB,CAAA;AAEnE,IAAA,WAAA,CAAsB,IAAY,EAAA;AAChC,QAAA,KAAK,CAAC,IAAI,EAAC,aAAa,CAAC,CAAC;QADN,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;KAEjC;IAED,QAAQ,GAAA;KAEP;IAED,eAAe,GAAA;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;IAEM,YAAY,GAAA;AACjB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChE,QAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAC1C,QAAA,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAC/C,QAAA,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAC7C,QAAA,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAC/C,QAAA,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAC7C,QAAA,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAC/C,QAAA,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAE1C,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;KACjB;IAEM,eAAe,CAAC,CAAS,EAAE,CAAS,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;KACtB;AAEM,IAAA,WAAW,CAAC,CAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACnB,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACrC;iIA3CU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,mFCVvC,6JACkC,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDSrB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,6JAAA,EAAA,CAAA;;;MEArB,0BAA0B,CAAA;AAErC,IAAA,WAAA,GAAA,GAAiB;AAGjB,IAAA,OAAO,CAAC,MAAW,EAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAClC;AAED;;;AAGA;AACQ,IAAA,YAAY,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,QAAA,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3B,QAAA,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;KACnB;iIAjBU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAA1B,0BAA0B,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACtC,iBAAA,CAAA;wDAMC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACFnC,MAAM,UAAU,GAAG,CAAC,CAAC;AAWf,MAAO,0BAA2B,SAAQ,qBAAqB,CAAA;AAKnE,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAChC;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAChC;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAChC;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAChC;AAED,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAClC;AAQD,IAAA,WAAA,CAAsB,IAAY,EAAA;AAChC,QAAA,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QADP,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QANlC,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAQrB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC7B,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC/C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AAEN,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EACtE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACpD,QAAA,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;aAC1D,SAAS,CAAC,CAAC,IAAG;AACb,YAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AAEL,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC3C,QAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC;aACjF,SAAS,CAAC,GAAG,IAAG;AACf,YAAA,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAA;KACL;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;YAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;AAC9C,aAAA;AAED,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAE5B,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,aAAA;AACF,SAAA;KACF;AAEO,IAAA,UAAU,CAAC,GAAU,EAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;KACxC;IAEM,eAAe,CAAC,CAAS,EAAE,CAAS,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;KACtB;IAEM,YAAY,GAAA;QACjB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,qBAAqB,CAAC;AACpF,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAEjD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpE,QAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAChD,QAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAEjD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACrE,QAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAC1C,QAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAClD;AAEM,IAAA,oBAAoB,CAAC,CAAQ,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACpB;AAEM,IAAA,WAAW,CAAC,CAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACnB,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACrC;iIA/HU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,0JCnBvC,ozDAsCO,EAAA,MAAA,EAAA,CAAA,kpDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDnBM,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBATtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGjB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,sBAAsB;AAChC,qBAAA,EAAA,QAAA,EAAA,ozDAAA,EAAA,MAAA,EAAA,CAAA,kpDAAA,CAAA,EAAA,CAAA;;;MEJU,8BAA8B,CAAA;IAIzC,IACI,KAAK,CAAC,CAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACtC,SAAA;KACF;AAOD,IAAA,WAAA,GAAA;AAdU,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,YAAY,EAAS,CAAC;QAWxE,IAAO,CAAA,OAAA,GAAa,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAO,CAAA,OAAA,GAAa,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAE7B;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AACzB,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/C;iIAzBU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,6LCb3C,0gBASM,EAAA,MAAA,EAAA,CAAA,wXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDIO,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAT1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGrB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,0BAA0B;AACpC,qBAAA,EAAA,QAAA,EAAA,0gBAAA,EAAA,MAAA,EAAA,CAAA,wXAAA,CAAA,EAAA,CAAA;wDAIS,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAGH,KAAK,EAAA,CAAA;sBADR,KAAK;;;MEJK,2BAA2B,CAAA;AAOtC,IAAA,WAAA,GAAA;AALU,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,YAAY,EAAS,CAAC;KAKvD;IAEjB,QAAQ,GAAA;KACP;AAEM,IAAA,kBAAkB,CAAC,KAAY,EAAA;AACpC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;iIAdU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,uMCbxC,+PAI2B,EAAA,MAAA,EAAA,CAAA,iUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDSd,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGlB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,uBAAuB;AACjC,qBAAA,EAAA,QAAA,EAAA,+PAAA,EAAA,MAAA,EAAA,CAAA,iUAAA,CAAA,EAAA,CAAA;wDAIS,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEbK,YAAY,CAAA;AAEvB,IAAA,WAAA,GAAA,GAAiB;IAEjB,SAAS,CAAC,CAAQ,EAAE,CAAQ,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAAE,YAAA,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AACrD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,MAAM,CAAC,CAAQ,EAAE,MAAwB,EAAA;AACvC,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC3B;AAED,IAAA,KAAK,CAAC,KAAa,EAAA;AACjB,QAAA,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;iIApBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;qIAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;;ACKE,MAAA,qBAAqB,GAAoB;AAClD,IAAA,OAAO,EAAE;AACL,QAAA,UAAU,EAAE,KAAK;AACpB,KAAA;EACJ;MAEY,iBAAiB,GAAG,IAAI,cAAc,CAAkB,mBAAmB;;ACExF;MACa,oCAAoC,GAC/C,IAAI,cAAc,CAAuB,qCAAqC,EAAE;AAG5E,SAAU,4CAA4C,CAAC,OAAgB,EAAA;IAC3E,OAAO,MAAM,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;AACrD,CAAC;AAGY,MAAA,qDAAqD,GAAG;AACnE,IAAA,OAAO,EAAE,oCAAoC;IAC7C,IAAI,EAAE,CAAC,OAAO,CAAC;AACf,IAAA,UAAU,EAAE,4CAA4C;EACxD;AAEF,MAAM,0BAA0B,GAAG,UAAU,CAC3C,MAAA;AACE,IAAA,WAAA,CAAmB,WAAuB,EAAA;QAAvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;KAAK;AAChD,CAAA,CACF,CAAC;AAqBI,MAAO,iCAAkC,SAAQ,0BAA0B,CAAA;AAS/E,IAAA,WAAA,CAAY,UAAsB,EAAA;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC;KACnB;iIAXU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,EAIjC,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,yCAAA,EAAA,gBAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,2BAA2B,EC9DxC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4IAEwC,ED+C1B,MAAA,EAAA,CAAA,isBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;AACV,YAAA,uBAAuB,CAAC,cAAc;AACtC,YAAA,uBAAuB,CAAC,cAAc;AACvC,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAMU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAlB7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAGlC,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,6BAA6B;AACtC,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,2CAA2C,EAAE,gBAAgB;qBAC9D,EACW,UAAA,EAAA;AACV,wBAAA,uBAAuB,CAAC,cAAc;AACtC,wBAAA,uBAAuB,CAAC,cAAc;AACvC,qBAAA,EAAA,QAAA,EACS,0BAA0B,EAAA,aAAA,EACrB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EACvC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,4IAAA,EAAA,MAAA,EAAA,CAAA,isBAAA,CAAA,EAAA,CAAA;+EAMuB,QAAQ,EAAA,CAAA;sBAA/C,SAAS;uBAAC,2BAA2B,CAAA;;MAkB3B,0BAA0B,CAAA;AAUrC,IAAA,IAAa,QAAQ,GAAA;QACnB,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY;AACtD,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KACjD;IACD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAE9C,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,SAAA;KACF;IAGD,IACI,OAAO,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE;IAChD,IAAI,OAAO,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC9C;;IAID,IACI,MAAM,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE;IAC9C,IAAI,MAAM,CAAC,KAAc,EAAA,EAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;;AAIlE,IAAA,IACI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IACD,IAAI,YAAY,CAAC,KAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;;AAID,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;AAChB,aAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC;KACzE;IACD,IAAI,KAAK,CAAC,KAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;;IAKD,IAAI,SAAS,KAAY,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE;IACtD,IAAI,SAAS,CAAC,KAAY,EAAI,EAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE;AA2B5D,IAAA,WAAA,CAAoB,OAAkB,EAC5B,QAAiB,EACjB,KAAa,EACb,QAAsB,EACV,IAAoB,EACM,cAAmB,EAC3B,SAAc,EAC5C,iBAAmC,EAAA;QAPzB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;QAC5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QACb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAc;QACV,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAgB;QAEF,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;QAC5C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;;AA1F3B,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAQ,CAAC;;AAG5D,QAAA,IAAA,CAAA,YAAY,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAqBtE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAMjB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAUxB,IAAa,CAAA,aAAA,GAAiB,SAAS,CAAC;QAiBhC,IAAc,CAAA,cAAA,GAAU,IAAI,CAAC;;AAe5B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAW,CAAC;;QAG1C,IAAyB,CAAA,yBAAA,GAAuB,IAAI,CAAC;;AAGrD,QAAA,IAAA,CAAA,kBAAkB,GAAG,YAAY,CAAC,KAAK,CAAC;;AAGvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAS,CAAC;AAU/C,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;KACvC;IAED,QAAQ,GAAA;KACP;IAED,WAAW,GAAA;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChC,SAAA;KACF;;AAID,IAAA,MAAM,CAAC,OAAc,EAAA;AACnB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,SAAA;KACF;AAGD;;;AAGC;AACD,IAAA,aAAa,CAAC,KAA6B,EAAA;QACzC,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;AAC1E,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAY,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;KACtF;IAEM,IAAI,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAC3E,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AAC/D,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;;IAGO,aAAa,GAAA;QAEnB,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACzB,SAAA;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAoC,iCAAiC,EAAE;AACxG,YAAA,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK;YAC9C,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;AACxC,YAAA,UAAU,EAAE,4BAA4B;AACzC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;IAGO,YAAY,GAAA;AAElB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAoC,iCAAiC,EACrG,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;AACjC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;;AAGjB,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9D,gBAAA,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;AAClC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;;IAGO,YAAY,GAAA;AAClB,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;AACtC,YAAA,gBAAgB,EAAE,IAAI,CAAC,4BAA4B,EAAE;AACrD,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;YACjD,SAAS,EAAE,IAAI,CAAC,IAAI;AACpB,YAAA,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE;AACtC,YAAA,UAAU,EAAE,uBAAuB;AACpC,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7D,QAAA,KAAK,CACH,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAC9B,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAC5B,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAG;;AAEjD,YAAA,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM;AAC7B,iBAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;SACrE,CAAC,CAAC,CACJ,CAAC,SAAS,CAAC,KAAK,IAAG;AAClB,YAAA,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,aAAA;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,SAAC,CAAC,CAAC;KACJ;IAGD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;AACR,SAAA;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;AAClD,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;AACzB,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,SAAA;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC3C,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACvB,SAAA;QAED,MAAM,aAAa,GAAG,MAAK;;;YAGzB,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,gBAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AACvC,aAAA;AACH,SAAC,CAAC;QAEF,IAAI,IAAI,CAAC,yBAAyB;AAChC,YAAA,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,KAAK,UAAU,EAAE;;;;;;AAM5D,YAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;YACvC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,aAAa,EAAE,CAAC;AACjB,SAAA;KACF;;IAGO,SAAS,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;AAChD,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;AACjD,SAAA;KACF;;IAGO,4BAA4B,GAAA;AAClC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5B,aAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC;aAClE,qBAAqB,CAAC,8BAA8B,CAAC;aACrD,sBAAsB,CAAC,KAAK,CAAC;aAC7B,kBAAkB,CAAC,CAAC,CAAC;AACrB,aAAA,kBAAkB,EAAE;AACpB,aAAA,aAAa,CAAC;AACb,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACF,SAAA,CAAC,CAAC;KACN;iIAxTU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EA6F3B,oCAAoC,EAAA,EAAA,EAAA,KAAA,EACxB,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9FnB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,gRAL3B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA,CAAA;;0BA6FI,QAAQ;;0BACR,MAAM;2BAAC,oCAAoC,CAAA;;0BAC3C,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;wEAzFZ,YAAY,EAAA,CAAA;sBAA7B,MAAM;uBAAC,QAAQ,CAAA;gBAGE,YAAY,EAAA,CAAA;sBAA7B,MAAM;uBAAC,QAAQ,CAAA;gBAEH,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAeF,OAAO,EAAA,CAAA;sBADV,KAAK;gBASF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAOF,YAAY,EAAA,CAAA;sBADf,KAAK;gBAWF,KAAK,EAAA,CAAA;sBADR,KAAK;;;MEnHK,2BAA2B,CAAA;AAItC,IAAA,WAAA;;IAES,MAA8B;;IAE9B,aAA0B,EAAA;QAF1B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAwB;QAE9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAa;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAChC;AACF,CAAA;AAGY,MAAA,8BAA8B,GAAQ;AACjD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,IAAA,KAAK,EAAE,IAAI;EACX;AAGW,MAAA,0BAA0B,GAAQ;AAC7C,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,IAAA,KAAK,EAAE,IAAI;EACX;MAoBW,sBAAsB,CAAA;IAEjC,IACI,iBAAiB,CAAC,KAAiC,EAAA;QACrD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;AAEvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAe,KAAI;AACrF,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/F,SAAC,CAAC,CAAC;KACJ;;IAID,IACI,QAAQ,GAAc,EAAA,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IACpD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAE/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,SAAA;;AAGD,QAAA,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;;;;YAI5B,OAAO,CAAC,IAAI,EAAE,CAAC;AAChB,SAAA;KACF;;IAID,IACI,KAAK,KAAmB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;IACjD,IAAI,KAAK,CAAC,KAAmB,EAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;KAEF;AAgCD,IAAA,WAAA,CAAoB,WAAyC,EACvC,UAAwB,EACG,aAA8B,EACrE,QAAsB,EAAA;QAHZ,IAAW,CAAA,WAAA,GAAX,WAAW,CAA8B;QACvC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAc;QACG,IAAa,CAAA,aAAA,GAAb,aAAa,CAAiB;QACrE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAc;;AA/Bb,QAAA,IAAA,CAAA,WAAW,GAC5B,IAAI,YAAY,EAA+B,CAAC;;AAG/B,QAAA,IAAA,CAAA,UAAU,GAC3B,IAAI,YAAY,EAA+B,CAAC;;AAGlD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;;AAG9C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAS,CAAC;AAEzC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,GAAI,CAAC;AAEf,QAAA,IAAA,CAAA,YAAY,GAAyB,MAAK,GAAI,CAAC;AAE/C,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAK,GAAI,CAAC;AAE/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAC;;AAGzC,QAAA,IAAA,CAAA,UAAU,GAChB,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;;QAGjB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAM9B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,MAAM,0BAA0B,CAAC,mBAAmB,CAAC,CAAC;AACvD,SAAA;KACF;;IAGM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;KAC5D;AAGD,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;KAC9B;AAGD,IAAA,QAAQ,CAAC,CAAkB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACpD;AAED;;;AAGG;IACH,4BAA4B,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC;KACzC;AAED;;;AAGE;IACF,yBAAyB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KACzF;IAGD,QAAQ,GAAA;KACP;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;KACjC;;AAGD,IAAA,UAAU,CAAC,KAAY,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;;AAGD,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;;AAGD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;KAC9F;AAED,IAAA,UAAU,CAAC,KAAoB,EAAA;QAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC;AAEpE,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9E,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;;IAGD,OAAO,GAAA;;QAEL,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;AAGO,IAAA,YAAY,CAAC,KAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;KACxH;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAE7C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7F,SAAA;AAAM,aAAA,IAAI,iBAAiB,KAAK,IAAI,CAAC,eAAe,EAAE;YACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;KACF;AAtMU,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,wFA0FX,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1F5B,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAhBtB,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,gBAAA,EAAA,yCAAA,EAAA,UAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,8BAA8B;YAC9B,0BAA0B;AAC1B,YAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AAC3E,SAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAYU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAlBlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,SAAS,EAAE;wBACT,8BAA8B;wBAC9B,0BAA0B;AAC1B,wBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,wBAAwB,EAAE;AAC3E,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,2BAA2B;AACnD,wBAAA,kBAAkB,EAAE,yCAAyC;AAC7D,wBAAA,YAAY,EAAE,UAAU;AACxB,wBAAA,SAAS,EAAE,+BAA+B;AAC1C,wBAAA,UAAU,EAAE,aAAa;AACzB,wBAAA,QAAQ,EAAE,WAAW;AACrB,wBAAA,WAAW,EAAE,oBAAoB;AAClC,qBAAA;AACD,oBAAA,QAAQ,EAAE,wBAAwB;AACnC,iBAAA,CAAA;;0BA0FI,QAAQ;;0BACR,QAAQ;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;iEAvFnC,iBAAiB,EAAA,CAAA;sBADpB,KAAK;gBAsBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAuBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAea,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBAIY,UAAU,EAAA,CAAA;sBAA5B,MAAM;;;MC/GI,2BAA2B,CAAA;iIAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAA3B,2BAA2B,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AAC1C,iBAAA,CAAA;;MAoBY,0BAA0B,CAAA;AAOrC,IAAA,IAAa,QAAQ,GAAA;QACnB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACzC,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC7B,SAAA;KACF;IACD,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;AAWD,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAvBlC,QAAA,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;KAuBI;IAE/C,QAAQ,GAAA;KACP;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KAClC;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;AAEM,IAAA,IAAI,CAAC,KAAY,EAAA;QACtB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,SAAA;KACF;IAEO,kBAAkB,GAAA;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxE,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;AAC5D,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAEvD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM;YAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAEjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;KAChH;iIA7DU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;qHAA1B,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,mCAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,qCAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqBvB,2BAA2B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnD3C,4aAUS,EAAA,MAAA,EAAA,CAAA,qrBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDoBI,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAjBtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAG1B,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,sBAAsB;;;AAG/B,wBAAA,iBAAiB,EAAE,IAAI;AACvB,wBAAA,qCAAqC,EAAE,yBAAyB;AAChE,wBAAA,oBAAoB,EAAE,qCAAqC;AAC3D,wBAAA,kBAAkB,EAAE,mCAAmC;AACvD,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA,EAAA,QAAA,EACS,yBAAyB,EAAA,aAAA,EACpB,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4aAAA,EAAA,MAAA,EAAA,CAAA,qrBAAA,CAAA,EAAA,CAAA;sFAMvB,MAAM,EAAA,CAAA;sBAAnB,KAAK;uBAAC,KAAK,CAAA;gBACH,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAWG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGqC,WAAW,EAAA,CAAA;sBAArD,YAAY;uBAAC,2BAA2B,CAAA;gBAEpB,OAAO,EAAA,CAAA;sBAA3B,SAAS;uBAAC,QAAQ,CAAA;;;MEOR,uBAAuB,CAAA;iIAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAlChC,2BAA2B;YAC3B,0BAA0B;YAC1B,8BAA8B;YAC9B,0BAA0B;YAC1B,0BAA0B;YAC1B,iCAAiC;YACjC,0BAA0B;YAC1B,0BAA0B;YAC1B,2BAA2B;AAC3B,YAAA,sBAAsB,aAGtB,YAAY;YACZ,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,YAAY;AACZ,YAAA,aAAa,aAGb,0BAA0B;YAC1B,sBAAsB;YACtB,0BAA0B;YAC1B,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAOlB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EALvB,SAAA,EAAA;YACT,YAAY;YACZ,qDAAqD;AACtD,SAAA,EAAA,OAAA,EAAA,CApBC,YAAY;YACZ,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,WAAW;YACX,mBAAmB;YACnB,eAAe;YACf,YAAY;YACZ,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAaJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBApCnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,2BAA2B;wBAC3B,0BAA0B;wBAC1B,8BAA8B;wBAC9B,0BAA0B;wBAC1B,0BAA0B;wBAC1B,iCAAiC;wBACjC,0BAA0B;wBAC1B,0BAA0B;wBAC1B,2BAA2B;wBAC3B,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,WAAW;wBACX,mBAAmB;wBACnB,eAAe;wBACf,YAAY;wBACZ,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,sBAAsB;wBACtB,0BAA0B;wBAC1B,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,YAAY;wBACZ,qDAAqD;AACtD,qBAAA;AACF,iBAAA,CAAA;;;AC3DD;;AAEG;;ACFH;;AAEG;;;;"}