{"version":3,"file":"createVisualizationColors.cjs","sources":["../../../src/themes/createVisualizationColors.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { FALLBACK_COLOR } from '../types/fieldColor';\n\nimport { ThemeColors } from './createColors';\n\n/**\n * @alpha\n */\nexport interface ThemeVisualizationColors {\n  /** Only for internal use by color schemes */\n  palette: string[];\n  /** Lookup the real color given the name */\n  getColorByName: (color: string) => string;\n  /** Colors organized by hue */\n  hues: ThemeVizHue[];\n}\n\n/**\n * @alpha\n */\nexport interface ThemeVizColor<T extends ThemeVizColorName> {\n  color: string;\n  name: ThemeVizColorShadeName<T>;\n  aliases?: string[];\n  primary?: boolean;\n}\n\ntype ThemeVizColorName = 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple';\n\nconst createShadeSchema = <T>(color: T extends ThemeVizColorName ? T : never) =>\n  z.enum([`super-light-${color}`, `light-${color}`, color, `semi-dark-${color}`, `dark-${color}`]);\n\ntype ThemeVizColorShadeName<T extends ThemeVizColorName> = z.infer<ReturnType<typeof createShadeSchema<T>>>;\n\nconst createHueSchema = <T>(color: T extends ThemeVizColorName ? T : never) =>\n  z.object({\n    name: z.literal(color),\n    shades: z.array(\n      z.object({\n        color: z.string(),\n        name: createShadeSchema(color),\n        aliases: z.array(z.string()).optional(),\n        primary: z.boolean().optional(),\n      })\n    ),\n  });\n\nconst ThemeVizHueSchema = z.union([\n  createHueSchema('red'),\n  createHueSchema('orange'),\n  createHueSchema('yellow'),\n  createHueSchema('green'),\n  createHueSchema('blue'),\n  createHueSchema('purple'),\n]);\n\n/**\n * @alpha\n */\nexport type ThemeVizHue = z.infer<typeof ThemeVizHueSchema>;\n\nexport const ThemeVisualizationColorsInputSchema = z.object({\n  hues: z.array(ThemeVizHueSchema).optional(),\n  palette: z.array(z.string()).optional(),\n});\n\nexport type ThemeVisualizationColorsInput = z.infer<typeof ThemeVisualizationColorsInputSchema>;\n\n/**\n * @internal\n */\nexport function createVisualizationColors(\n  colors: ThemeColors,\n  options: ThemeVisualizationColorsInput = {}\n): ThemeVisualizationColors {\n  const baseHues = colors.mode === 'light' ? getLightHues() : getDarkHues();\n  const { palette = getClassicPalette(), hues: hueOverrides = [] } = options;\n\n  const hues = [...baseHues];\n  // override hues with user provided\n  for (const hueOverride of hueOverrides) {\n    const existingHue = hues.find((hue) => hue.name === hueOverride.name);\n    if (existingHue) {\n      for (const shadeOverride of hueOverride.shades) {\n        const existingShade = existingHue.shades.find((shade) => shade.name === shadeOverride.name);\n        if (existingShade) {\n          existingShade.color = shadeOverride.color;\n        }\n      }\n    }\n  }\n\n  const byNameIndex: Record<string, string> = {};\n\n  for (const hue of hues) {\n    for (const shade of hue.shades) {\n      byNameIndex[shade.name] = shade.color;\n      if (shade.aliases) {\n        for (const alias of shade.aliases) {\n          byNameIndex[alias] = shade.color;\n        }\n      }\n    }\n  }\n\n  // special colors\n  byNameIndex['transparent'] = colors.mode === 'light' ? 'rgba(255, 255, 255, 0)' : 'rgba(0,0,0,0)';\n  byNameIndex['panel-bg'] = colors.background.primary;\n  byNameIndex['text'] = colors.text.primary;\n\n  const getColorByName = (colorName: string) => {\n    if (!colorName) {\n      return FALLBACK_COLOR;\n    }\n\n    const realColor = byNameIndex[colorName];\n    if (realColor) {\n      return realColor;\n    }\n\n    if (colorName[0] === '#') {\n      return colorName;\n    }\n\n    if (colorName.indexOf('rgb') > -1) {\n      return colorName;\n    }\n\n    const nativeColor = nativeColorNames[colorName.toLowerCase()];\n    if (nativeColor) {\n      byNameIndex[colorName] = nativeColor;\n      return nativeColor;\n    }\n\n    return colorName;\n  };\n\n  return {\n    hues,\n    palette,\n    getColorByName,\n  };\n}\n\nfunction getDarkHues(): ThemeVizHue[] {\n  return [\n    {\n      name: 'red',\n      shades: [\n        { color: '#FFA6B0', name: 'super-light-red' },\n        { color: '#FF7383', name: 'light-red' },\n        { color: '#F2495C', name: 'red', primary: true },\n        { color: '#E02F44', name: 'semi-dark-red' },\n        { color: '#C4162A', name: 'dark-red' },\n      ],\n    },\n    {\n      name: 'orange',\n      shades: [\n        { color: '#FFCB7D', name: 'super-light-orange', aliases: [] },\n        { color: '#FFB357', name: 'light-orange', aliases: [] },\n        { color: '#FF9830', name: 'orange', aliases: [], primary: true },\n        { color: '#FF780A', name: 'semi-dark-orange', aliases: [] },\n        { color: '#FA6400', name: 'dark-orange', aliases: [] },\n      ],\n    },\n    {\n      name: 'yellow',\n      shades: [\n        { color: '#FFF899', name: 'super-light-yellow', aliases: [] },\n        { color: '#FFEE52', name: 'light-yellow', aliases: [] },\n        { color: '#FADE2A', name: 'yellow', aliases: [], primary: true },\n        { color: '#F2CC0C', name: 'semi-dark-yellow', aliases: [] },\n        { color: '#E0B400', name: 'dark-yellow', aliases: [] },\n      ],\n    },\n    {\n      name: 'green',\n      shades: [\n        { color: '#C8F2C2', name: 'super-light-green', aliases: [] },\n        { color: '#96D98D', name: 'light-green', aliases: [] },\n        { color: '#73BF69', name: 'green', aliases: [], primary: true },\n        { color: '#56A64B', name: 'semi-dark-green', aliases: [] },\n        { color: '#37872D', name: 'dark-green', aliases: [] },\n      ],\n    },\n    {\n      name: 'blue',\n      shades: [\n        { color: '#C0D8FF', name: 'super-light-blue', aliases: [] },\n        { color: '#8AB8FF', name: 'light-blue', aliases: [] },\n        { color: '#5794F2', name: 'blue', aliases: [], primary: true },\n        { color: '#3274D9', name: 'semi-dark-blue', aliases: [] },\n        { color: '#1F60C4', name: 'dark-blue', aliases: [] },\n      ],\n    },\n    {\n      name: 'purple',\n      shades: [\n        { color: '#DEB6F2', name: 'super-light-purple', aliases: [] },\n        { color: '#CA95E5', name: 'light-purple', aliases: [] },\n        { color: '#B877D9', name: 'purple', aliases: [], primary: true },\n        { color: '#A352CC', name: 'semi-dark-purple', aliases: [] },\n        { color: '#8F3BB8', name: 'dark-purple', aliases: [] },\n      ],\n    },\n  ];\n}\n\nfunction getLightHues(): ThemeVizHue[] {\n  return [\n    {\n      name: 'red',\n      shades: [\n        { color: '#FF7383', name: 'super-light-red' },\n        { color: '#F2495C', name: 'light-red' },\n        { color: '#E02F44', name: 'red', primary: true },\n        { color: '#C4162A', name: 'semi-dark-red' },\n        { color: '#AD0317', name: 'dark-red' },\n      ],\n    },\n    {\n      name: 'orange',\n      shades: [\n        { color: '#FFB357', name: 'super-light-orange', aliases: [] },\n        { color: '#FF9830', name: 'light-orange', aliases: [] },\n        { color: '#FF780A', name: 'orange', aliases: [], primary: true },\n        { color: '#FA6400', name: 'semi-dark-orange', aliases: [] },\n        { color: '#E55400', name: 'dark-orange', aliases: [] },\n      ],\n    },\n    {\n      name: 'yellow',\n      shades: [\n        { color: '#FFEE52', name: 'super-light-yellow', aliases: [] },\n        { color: '#FADE2A', name: 'light-yellow', aliases: [] },\n        { color: '#F2CC0C', name: 'yellow', aliases: [], primary: true },\n        { color: '#E0B400', name: 'semi-dark-yellow', aliases: [] },\n        { color: '#CC9D00', name: 'dark-yellow', aliases: [] },\n      ],\n    },\n    {\n      name: 'green',\n      shades: [\n        { color: '#96D98D', name: 'super-light-green', aliases: [] },\n        { color: '#73BF69', name: 'light-green', aliases: [] },\n        { color: '#56A64B', name: 'green', aliases: [], primary: true },\n        { color: '#37872D', name: 'semi-dark-green', aliases: [] },\n        { color: '#19730E', name: 'dark-green', aliases: [] },\n      ],\n    },\n    {\n      name: 'blue',\n      shades: [\n        { color: '#8AB8FF', name: 'super-light-blue', aliases: [] },\n        { color: '#5794F2', name: 'light-blue', aliases: [] },\n        { color: '#3274D9', name: 'blue', aliases: [], primary: true },\n        { color: '#1F60C4', name: 'semi-dark-blue', aliases: [] },\n        { color: '#1250B0', name: 'dark-blue', aliases: [] },\n      ],\n    },\n    {\n      name: 'purple',\n      shades: [\n        { color: '#CA95E5', name: 'super-light-purple', aliases: [] },\n        { color: '#B877D9', name: 'light-purple', aliases: [] },\n        { color: '#A352CC', name: 'purple', aliases: [], primary: true },\n        { color: '#8F3BB8', name: 'semi-dark-purple', aliases: [] },\n        { color: '#7C2EA3', name: 'dark-purple', aliases: [] },\n      ],\n    },\n  ];\n}\n\nfunction getClassicPalette() {\n  // Todo replace these with named colors (as many as possible)\n\n  return [\n    'green',\n    'semi-dark-yellow',\n    'blue',\n    'orange',\n    'red',\n    'purple',\n    'dark-green',\n    'dark-yellow',\n    'dark-blue',\n    'dark-orange',\n    'dark-red',\n    'dark-purple',\n    'super-light-green',\n    'super-light-yellow',\n    'super-light-blue',\n    'super-light-orange',\n    'super-light-red',\n    'super-light-purple',\n    '#447EBC',\n    '#C15C17',\n    '#890F02',\n    '#0A437C',\n    '#6D1F62',\n    '#584477',\n    '#B7DBAB',\n    '#F4D598',\n    '#70DBED',\n    '#F9BA8F',\n    '#F29191',\n    '#82B5D8',\n    '#E5A8E2',\n    '#AEA2E0',\n    '#629E51',\n    '#E5AC0E',\n    '#64B0C8',\n    '#E0752D',\n    '#BF1B00',\n    '#0A50A1',\n    '#962D82',\n    '#614D93',\n    '#9AC48A',\n    '#F2C96D',\n    '#65C5DB',\n    '#F9934E',\n    '#EA6460',\n    '#5195CE',\n    '#D683CE',\n    '#806EB7',\n    '#3F6833',\n    '#967302',\n    '#2F575E',\n    '#99440A',\n    '#58140C',\n    '#052B51',\n    '#511749',\n    '#3F2B5B',\n    '#E0F9D7',\n    '#FCEACA',\n    '#CFFAFF',\n    '#F9E2D2',\n    '#FCE2DE',\n    '#BADFF4',\n    '#F9D9F9',\n    '#DEDAF7',\n  ];\n}\n\n// Old hues\n// function getDarkHues(): ThemeVizHue[] {\n//     return [\n//       {\n//         name: 'red',\n//         shades: [\n//           { name: 'red1', color: '#FFC2D4', aliases: ['super-light-red'] },\n//           { name: 'red2', color: '#FFA8C2', aliases: ['light-red'] },\n//           { name: 'red3', color: '#FF85A9', aliases: ['red'], primary: true },\n//           { name: 'red4', color: '#FF5286', aliases: ['semi-dark-red'] },\n//           { name: 'red5', color: '#E0226E', aliases: ['dark-red'] },\n//         ],\n//       },\n//       {\n//         name: 'orange',\n//         shades: [\n//           { name: 'orange1', color: '#FFC0AD', aliases: ['super-light-orange'] },\n//           { name: 'orange2', color: '#FFA98F', aliases: ['light-orange'] },\n//           { name: 'orange3', color: '#FF825C', aliases: ['orange'], primary: true },\n//           { name: 'orange4', color: '#FF5F2E', aliases: ['semi-dark-orange'] },\n//           { name: 'orange5', color: '#E73903', aliases: ['dark-orange'] },\n//         ],\n//       },\n//       {\n//         name: 'yellow',\n//         shades: [\n//           { name: 'yellow1', color: '#FFE68F', aliases: ['super-light-yellow'] },\n//           { name: 'yellow2', color: '#FAD34A', aliases: ['light-yellow'] },\n//           { name: 'yellow3', color: '#ECBB09', aliases: ['yellow'], primary: true },\n//           { name: 'yellow4', color: '#CFA302', aliases: ['semi-dark-yellow'] },\n//           { name: 'yellow5', color: '#AD8800', aliases: ['dark-yellow'] },\n//         ],\n//       },\n//       {\n//         name: 'green',\n//         shades: [\n//           { name: 'green1', color: '#93ECCB', aliases: ['super-light-green'] },\n//           { name: 'green2', color: '#65DCB1', aliases: ['light-green'] },\n//           { name: 'green3', color: '#2DC88F', aliases: ['green'], primary: true },\n//           { name: 'green4', color: '#25A777', aliases: ['semi-dark-green'] },\n//           { name: 'green5', color: '#1B855E', aliases: ['dark-green'] },\n//         ],\n//       },\n//       {\n//         name: 'teal',\n//         shades: [\n//           { name: 'teal1', color: '#73E7F7' },\n//           { name: 'teal2', color: '#2BD6EE' },\n//           { name: 'teal3', color: '#11BDD4', primary: true },\n//           { name: 'teal4', color: '#0EA0B4' },\n//           { name: 'teal5', color: '#077D8D' },\n//         ],\n//       },\n//       {\n//         name: 'blue',\n//         shades: [\n//           { name: 'blue1', color: '#C2D7FF', aliases: ['super-light-blue'] },\n//           { name: 'blue2', color: '#A3C2FF', aliases: ['light-blue'] },\n//           { name: 'blue3', color: '#83ACFC', aliases: ['blue'], primary: true },\n//           { name: 'blue4', color: '#5D8FEF', aliases: ['semi-dark-blue'] },\n//           { name: 'blue5', color: '#3871DC', aliases: ['dark-blue'] },\n//         ],\n//       },\n//       {\n//         name: 'violet',\n//         shades: [\n//           { name: 'violet1', color: '#DACCFF' },\n//           { name: 'violet2', color: '#C7B2FF' },\n//           { name: 'violet3', color: '#B094FF', primary: true },\n//           { name: 'violet4', color: '#9271EF' },\n//           { name: 'violet5', color: '#7E63CA' },\n//         ],\n//       },\n//       {\n//         name: 'purple',\n//         shades: [\n//           { name: 'purple1', color: '#FFBDFF', aliases: ['super-light-purple'] },\n//           { name: 'purple2', color: '#F5A3F5', aliases: ['light-purple'] },\n//           { name: 'purple3', color: '#E48BE4', aliases: ['purple'], primary: true },\n//           { name: 'purple4', color: '#CA68CA', aliases: ['semi-dark-purple'] },\n//           { name: 'purple5', color: '#B545B5', aliases: ['dark-purple'] },\n//         ],\n//       },\n//     ];\n//   }\n\nconst nativeColorNames: Record<string, string> = {\n  aliceblue: '#f0f8ff',\n  antiquewhite: '#faebd7',\n  aqua: '#00ffff',\n  aquamarine: '#7fffd4',\n  azure: '#f0ffff',\n  beige: '#f5f5dc',\n  bisque: '#ffe4c4',\n  black: '#000000',\n  blanchedalmond: '#ffebcd',\n  blue: '#0000ff',\n  blueviolet: '#8a2be2',\n  brown: '#a52a2a',\n  burlywood: '#deb887',\n  cadetblue: '#5f9ea0',\n  chartreuse: '#7fff00',\n  chocolate: '#d2691e',\n  coral: '#ff7f50',\n  cornflowerblue: '#6495ed',\n  cornsilk: '#fff8dc',\n  crimson: '#dc143c',\n  cyan: '#00ffff',\n  darkblue: '#00008b',\n  darkcyan: '#008b8b',\n  darkgoldenrod: '#b8860b',\n  darkgray: '#a9a9a9',\n  darkgreen: '#006400',\n  darkkhaki: '#bdb76b',\n  darkmagenta: '#8b008b',\n  darkolivegreen: '#556b2f',\n  darkorange: '#ff8c00',\n  darkorchid: '#9932cc',\n  darkred: '#8b0000',\n  darksalmon: '#e9967a',\n  darkseagreen: '#8fbc8f',\n  darkslateblue: '#483d8b',\n  darkslategray: '#2f4f4f',\n  darkturquoise: '#00ced1',\n  darkviolet: '#9400d3',\n  deeppink: '#ff1493',\n  deepskyblue: '#00bfff',\n  dimgray: '#696969',\n  dodgerblue: '#1e90ff',\n  firebrick: '#b22222',\n  floralwhite: '#fffaf0',\n  forestgreen: '#228b22',\n  fuchsia: '#ff00ff',\n  gainsboro: '#dcdcdc',\n  ghostwhite: '#f8f8ff',\n  gold: '#ffd700',\n  goldenrod: '#daa520',\n  gray: '#808080',\n  green: '#008000',\n  greenyellow: '#adff2f',\n  honeydew: '#f0fff0',\n  hotpink: '#ff69b4',\n  'indianred ': '#cd5c5c',\n  indigo: '#4b0082',\n  ivory: '#fffff0',\n  khaki: '#f0e68c',\n  lavender: '#e6e6fa',\n  lavenderblush: '#fff0f5',\n  lawngreen: '#7cfc00',\n  lemonchiffon: '#fffacd',\n  lightblue: '#add8e6',\n  lightcoral: '#f08080',\n  lightcyan: '#e0ffff',\n  lightgoldenrodyellow: '#fafad2',\n  lightgrey: '#d3d3d3',\n  lightgreen: '#90ee90',\n  lightpink: '#ffb6c1',\n  lightsalmon: '#ffa07a',\n  lightseagreen: '#20b2aa',\n  lightskyblue: '#87cefa',\n  lightslategray: '#778899',\n  lightsteelblue: '#b0c4de',\n  lightyellow: '#ffffe0',\n  lime: '#00ff00',\n  limegreen: '#32cd32',\n  linen: '#faf0e6',\n  magenta: '#ff00ff',\n  maroon: '#800000',\n  mediumaquamarine: '#66cdaa',\n  mediumblue: '#0000cd',\n  mediumorchid: '#ba55d3',\n  mediumpurple: '#9370d8',\n  mediumseagreen: '#3cb371',\n  mediumslateblue: '#7b68ee',\n  mediumspringgreen: '#00fa9a',\n  mediumturquoise: '#48d1cc',\n  mediumvioletred: '#c71585',\n  midnightblue: '#191970',\n  mintcream: '#f5fffa',\n  mistyrose: '#ffe4e1',\n  moccasin: '#ffe4b5',\n  navajowhite: '#ffdead',\n  navy: '#000080',\n  oldlace: '#fdf5e6',\n  olive: '#808000',\n  olivedrab: '#6b8e23',\n  orange: '#ffa500',\n  orangered: '#ff4500',\n  orchid: '#da70d6',\n  palegoldenrod: '#eee8aa',\n  palegreen: '#98fb98',\n  paleturquoise: '#afeeee',\n  palevioletred: '#d87093',\n  papayawhip: '#ffefd5',\n  peachpuff: '#ffdab9',\n  peru: '#cd853f',\n  pink: '#ffc0cb',\n  plum: '#dda0dd',\n  powderblue: '#b0e0e6',\n  purple: '#800080',\n  rebeccapurple: '#663399',\n  red: '#ff0000',\n  rosybrown: '#bc8f8f',\n  royalblue: '#4169e1',\n  saddlebrown: '#8b4513',\n  salmon: '#fa8072',\n  sandybrown: '#f4a460',\n  seagreen: '#2e8b57',\n  seashell: '#fff5ee',\n  sienna: '#a0522d',\n  silver: '#c0c0c0',\n  skyblue: '#87ceeb',\n  slateblue: '#6a5acd',\n  slategray: '#708090',\n  snow: '#fffafa',\n  springgreen: '#00ff7f',\n  steelblue: '#4682b4',\n  tan: '#d2b48c',\n  teal: '#008080',\n  thistle: '#d8bfd8',\n  tomato: '#ff6347',\n  turquoise: '#40e0d0',\n  violet: '#ee82ee',\n  wheat: '#f5deb3',\n  white: '#ffffff',\n  whitesmoke: '#f5f5f5',\n  yellow: '#ffff00',\n  yellowgreen: '#9acd32',\n};\n"],"names":["z","FALLBACK_COLOR"],"mappings":";;;;;;;;AA8BA,MAAM,oBAAoB,CAAI,KAAA,KAC5BA,IAAE,IAAA,CAAK,CAAC,eAAe,KAAK,CAAA,CAAA,EAAI,SAAS,KAAK,CAAA,CAAA,EAAI,OAAO,CAAA,UAAA,EAAa,KAAK,IAAI,CAAA,KAAA,EAAQ,KAAK,EAAE,CAAC,CAAA;AAIjG,MAAM,eAAA,GAAkB,CAAI,KAAA,KAC1BA,GAAA,CAAE,MAAA,CAAO;AAAA,EACP,IAAA,EAAMA,GAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACrB,QAAQA,GAAA,CAAE,KAAA;AAAA,IACRA,IAAE,MAAA,CAAO;AAAA,MACP,KAAA,EAAOA,IAAE,MAAA,EAAO;AAAA,MAChB,IAAA,EAAM,kBAAkB,KAAK,CAAA;AAAA,MAC7B,SAASA,GAAA,CAAE,KAAA,CAAMA,IAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,MACtC,OAAA,EAASA,GAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,KAC/B;AAAA;AAEL,CAAC,CAAA;AAEH,MAAM,iBAAA,GAAoBA,IAAE,KAAA,CAAM;AAAA,EAChC,gBAAgB,KAAK,CAAA;AAAA,EACrB,gBAAgB,QAAQ,CAAA;AAAA,EACxB,gBAAgB,QAAQ,CAAA;AAAA,EACxB,gBAAgB,OAAO,CAAA;AAAA,EACvB,gBAAgB,MAAM,CAAA;AAAA,EACtB,gBAAgB,QAAQ;AAC1B,CAAC,CAAA;AAOM,MAAM,mCAAA,GAAsCA,IAAE,MAAA,CAAO;AAAA,EAC1D,IAAA,EAAMA,GAAA,CAAE,KAAA,CAAM,iBAAiB,EAAE,QAAA,EAAS;AAAA,EAC1C,SAASA,GAAA,CAAE,KAAA,CAAMA,IAAE,MAAA,EAAQ,EAAE,QAAA;AAC/B,CAAC;AAOM,SAAS,yBAAA,CACd,MAAA,EACA,OAAA,GAAyC,EAAC,EAChB;AAC1B,EAAA,MAAM,WAAW,MAAA,CAAO,IAAA,KAAS,OAAA,GAAU,YAAA,KAAiB,WAAA,EAAY;AACxE,EAAA,MAAM,EAAE,UAAU,iBAAA,EAAkB,EAAG,MAAM,YAAA,GAAe,IAAG,GAAI,OAAA;AAEnE,EAAA,MAAM,IAAA,GAAO,CAAC,GAAG,QAAQ,CAAA;AAEzB,EAAA,KAAA,MAAW,eAAe,YAAA,EAAc;AACtC,IAAA,MAAM,WAAA,GAAc,KAAK,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,IAAA,KAAS,YAAY,IAAI,CAAA;AACpE,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,KAAA,MAAW,aAAA,IAAiB,YAAY,MAAA,EAAQ;AAC9C,QAAA,MAAM,aAAA,GAAgB,YAAY,MAAA,CAAO,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,IAAA,KAAS,aAAA,CAAc,IAAI,CAAA;AAC1F,QAAA,IAAI,aAAA,EAAe;AACjB,UAAA,aAAA,CAAc,QAAQ,aAAA,CAAc,KAAA;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,cAAsC,EAAC;AAE7C,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,KAAA,MAAW,KAAA,IAAS,IAAI,MAAA,EAAQ;AAC9B,MAAA,WAAA,CAAY,KAAA,CAAM,IAAI,CAAA,GAAI,KAAA,CAAM,KAAA;AAChC,MAAA,IAAI,MAAM,OAAA,EAAS;AACjB,QAAA,KAAA,MAAW,KAAA,IAAS,MAAM,OAAA,EAAS;AACjC,UAAA,WAAA,CAAY,KAAK,IAAI,KAAA,CAAM,KAAA;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,EAAA,WAAA,CAAY,aAAa,CAAA,GAAI,MAAA,CAAO,IAAA,KAAS,UAAU,wBAAA,GAA2B,eAAA;AAClF,EAAA,WAAA,CAAY,UAAU,CAAA,GAAI,MAAA,CAAO,UAAA,CAAW,OAAA;AAC5C,EAAA,WAAA,CAAY,MAAM,CAAA,GAAI,MAAA,CAAO,IAAA,CAAK,OAAA;AAElC,EAAA,MAAM,cAAA,GAAiB,CAAC,SAAA,KAAsB;AAC5C,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,OAAOC,yBAAA;AAAA,IACT;AAEA,IAAA,MAAM,SAAA,GAAY,YAAY,SAAS,CAAA;AACvC,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,IAAI,SAAA,CAAU,CAAC,CAAA,KAAM,GAAA,EAAK;AACxB,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,IAAI,SAAA,CAAU,OAAA,CAAQ,KAAK,CAAA,GAAI,CAAA,CAAA,EAAI;AACjC,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,MAAM,WAAA,GAAc,gBAAA,CAAiB,SAAA,CAAU,WAAA,EAAa,CAAA;AAC5D,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,WAAA,CAAY,SAAS,CAAA,GAAI,WAAA;AACzB,MAAA,OAAO,WAAA;AAAA,IACT;AAEA,IAAA,OAAO,SAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,SAAS,WAAA,GAA6B;AACpC,EAAA,OAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,KAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,iBAAA,EAAkB;AAAA,QAC5C,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,WAAA,EAAY;AAAA,QACtC,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,SAAS,IAAA,EAAK;AAAA,QAC/C,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,eAAA,EAAgB;AAAA,QAC1C,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,UAAA;AAAW;AACvC,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAsB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC5D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAE;AAAA,QACtD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,UAAU,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC/D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC;AAAE;AACvD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAsB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC5D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAE;AAAA,QACtD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,UAAU,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC/D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC;AAAE;AACvD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,mBAAA,EAAqB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC3D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC,EAAE;AAAA,QACrD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,SAAS,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC9D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,iBAAA,EAAmB,OAAA,EAAS,EAAC,EAAE;AAAA,QACzD,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,YAAA,EAAc,OAAA,EAAS,EAAC;AAAE;AACtD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,YAAA,EAAc,OAAA,EAAS,EAAC,EAAE;AAAA,QACpD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,QAAQ,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC7D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,gBAAA,EAAkB,OAAA,EAAS,EAAC,EAAE;AAAA,QACxD,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,WAAA,EAAa,OAAA,EAAS,EAAC;AAAE;AACrD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAsB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC5D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAE;AAAA,QACtD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,UAAU,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC/D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC;AAAE;AACvD;AACF,GACF;AACF;AAEA,SAAS,YAAA,GAA8B;AACrC,EAAA,OAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,KAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,iBAAA,EAAkB;AAAA,QAC5C,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,WAAA,EAAY;AAAA,QACtC,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,SAAS,IAAA,EAAK;AAAA,QAC/C,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,eAAA,EAAgB;AAAA,QAC1C,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAM,UAAA;AAAW;AACvC,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAsB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC5D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAE;AAAA,QACtD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,UAAU,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC/D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC;AAAE;AACvD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAsB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC5D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAE;AAAA,QACtD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,UAAU,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC/D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC;AAAE;AACvD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,OAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,mBAAA,EAAqB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC3D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC,EAAE;AAAA,QACrD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,SAAS,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC9D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,iBAAA,EAAmB,OAAA,EAAS,EAAC,EAAE;AAAA,QACzD,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,YAAA,EAAc,OAAA,EAAS,EAAC;AAAE;AACtD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,MAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,YAAA,EAAc,OAAA,EAAS,EAAC,EAAE;AAAA,QACpD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,QAAQ,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC7D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,gBAAA,EAAkB,OAAA,EAAS,EAAC,EAAE;AAAA,QACxD,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,WAAA,EAAa,OAAA,EAAS,EAAC;AAAE;AACrD,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,oBAAA,EAAsB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC5D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAE;AAAA,QACtD,EAAE,OAAO,SAAA,EAAW,IAAA,EAAM,UAAU,OAAA,EAAS,EAAC,EAAG,OAAA,EAAS,IAAA,EAAK;AAAA,QAC/D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,kBAAA,EAAoB,OAAA,EAAS,EAAC,EAAE;AAAA,QAC1D,EAAE,KAAA,EAAO,SAAA,EAAW,MAAM,aAAA,EAAe,OAAA,EAAS,EAAC;AAAE;AACvD;AACF,GACF;AACF;AAEA,SAAS,iBAAA,GAAoB;AAG3B,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,kBAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,mBAAA;AAAA,IACA,oBAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,iBAAA;AAAA,IACA,oBAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AACF;AAwFA,MAAM,gBAAA,GAA2C;AAAA,EAC/C,SAAA,EAAW,SAAA;AAAA,EACX,YAAA,EAAc,SAAA;AAAA,EACd,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,cAAA,EAAgB,SAAA;AAAA,EAChB,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO,SAAA;AAAA,EACP,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,UAAA,EAAY,SAAA;AAAA,EACZ,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,SAAA;AAAA,EACP,cAAA,EAAgB,SAAA;AAAA,EAChB,QAAA,EAAU,SAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,IAAA,EAAM,SAAA;AAAA,EACN,QAAA,EAAU,SAAA;AAAA,EACV,QAAA,EAAU,SAAA;AAAA,EACV,aAAA,EAAe,SAAA;AAAA,EACf,QAAA,EAAU,SAAA;AAAA,EACV,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,cAAA,EAAgB,SAAA;AAAA,EAChB,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,UAAA,EAAY,SAAA;AAAA,EACZ,YAAA,EAAc,SAAA;AAAA,EACd,aAAA,EAAe,SAAA;AAAA,EACf,aAAA,EAAe,SAAA;AAAA,EACf,aAAA,EAAe,SAAA;AAAA,EACf,UAAA,EAAY,SAAA;AAAA,EACZ,QAAA,EAAU,SAAA;AAAA,EACV,WAAA,EAAa,SAAA;AAAA,EACb,OAAA,EAAS,SAAA;AAAA,EACT,UAAA,EAAY,SAAA;AAAA,EACZ,SAAA,EAAW,SAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EAAa,SAAA;AAAA,EACb,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,SAAA;AAAA,EACX,UAAA,EAAY,SAAA;AAAA,EACZ,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,SAAA;AAAA,EACX,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,SAAA;AAAA,EACP,WAAA,EAAa,SAAA;AAAA,EACb,QAAA,EAAU,SAAA;AAAA,EACV,OAAA,EAAS,SAAA;AAAA,EACT,YAAA,EAAc,SAAA;AAAA,EACd,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,QAAA,EAAU,SAAA;AAAA,EACV,aAAA,EAAe,SAAA;AAAA,EACf,SAAA,EAAW,SAAA;AAAA,EACX,YAAA,EAAc,SAAA;AAAA,EACd,SAAA,EAAW,SAAA;AAAA,EACX,UAAA,EAAY,SAAA;AAAA,EACZ,SAAA,EAAW,SAAA;AAAA,EACX,oBAAA,EAAsB,SAAA;AAAA,EACtB,SAAA,EAAW,SAAA;AAAA,EACX,UAAA,EAAY,SAAA;AAAA,EACZ,SAAA,EAAW,SAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,aAAA,EAAe,SAAA;AAAA,EACf,YAAA,EAAc,SAAA;AAAA,EACd,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAChB,WAAA,EAAa,SAAA;AAAA,EACb,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,SAAA;AAAA,EACX,KAAA,EAAO,SAAA;AAAA,EACP,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,gBAAA,EAAkB,SAAA;AAAA,EAClB,UAAA,EAAY,SAAA;AAAA,EACZ,YAAA,EAAc,SAAA;AAAA,EACd,YAAA,EAAc,SAAA;AAAA,EACd,cAAA,EAAgB,SAAA;AAAA,EAChB,eAAA,EAAiB,SAAA;AAAA,EACjB,iBAAA,EAAmB,SAAA;AAAA,EACnB,eAAA,EAAiB,SAAA;AAAA,EACjB,eAAA,EAAiB,SAAA;AAAA,EACjB,YAAA,EAAc,SAAA;AAAA,EACd,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,QAAA,EAAU,SAAA;AAAA,EACV,WAAA,EAAa,SAAA;AAAA,EACb,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO,SAAA;AAAA,EACP,SAAA,EAAW,SAAA;AAAA,EACX,MAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAW,SAAA;AAAA,EACX,MAAA,EAAQ,SAAA;AAAA,EACR,aAAA,EAAe,SAAA;AAAA,EACf,SAAA,EAAW,SAAA;AAAA,EACX,aAAA,EAAe,SAAA;AAAA,EACf,aAAA,EAAe,SAAA;AAAA,EACf,UAAA,EAAY,SAAA;AAAA,EACZ,SAAA,EAAW,SAAA;AAAA,EACX,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,UAAA,EAAY,SAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,aAAA,EAAe,SAAA;AAAA,EACf,GAAA,EAAK,SAAA;AAAA,EACL,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,QAAA,EAAU,SAAA;AAAA,EACV,QAAA,EAAU,SAAA;AAAA,EACV,MAAA,EAAQ,SAAA;AAAA,EACR,MAAA,EAAQ,SAAA;AAAA,EACR,OAAA,EAAS,SAAA;AAAA,EACT,SAAA,EAAW,SAAA;AAAA,EACX,SAAA,EAAW,SAAA;AAAA,EACX,IAAA,EAAM,SAAA;AAAA,EACN,WAAA,EAAa,SAAA;AAAA,EACb,SAAA,EAAW,SAAA;AAAA,EACX,GAAA,EAAK,SAAA;AAAA,EACL,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,SAAA,EAAW,SAAA;AAAA,EACX,MAAA,EAAQ,SAAA;AAAA,EACR,KAAA,EAAO,SAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,UAAA,EAAY,SAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,WAAA,EAAa;AACf,CAAA;;;;;"}