{"version":3,"file":"index.cjs","sources":["../src/functions.ts"],"sourcesContent":["import tailwindMapperData from \"../tailwindMapper.json\";\nimport {\n  CSSVariables,\n  ColorCode,\n  ColorData,\n  ColorFormat,\n  ColorSearchResult,\n  MapperStats,\n  TailwindColor,\n  TailwindConfig,\n  TailwindMapper,\n  TailwindShade,\n} from \"./types\";\n\nconst tailwindMapper: TailwindMapper =\n  tailwindMapperData as unknown as TailwindMapper;\n\n// Constants\nconst VALID_COLORS: readonly TailwindColor[] = [\n  \"red\",\n  \"orange\",\n  \"amber\",\n  \"yellow\",\n  \"lime\",\n  \"green\",\n  \"emerald\",\n  \"teal\",\n  \"cyan\",\n  \"sky\",\n  \"blue\",\n  \"indigo\",\n  \"violet\",\n  \"purple\",\n  \"fuchsia\",\n  \"pink\",\n  \"rose\",\n  \"slate\",\n  \"gray\",\n  \"zinc\",\n  \"neutral\",\n  \"stone\",\n] as const;\n\nconst VALID_SHADES: readonly TailwindShade[] = [\n  50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950,\n] as const;\n\nconst VALID_FORMATS: readonly ColorFormat[] = [\n  \"hex\",\n  \"rgb\",\n  \"hsl\",\n  \"oklch\",\n  \"rawrgb\",\n  \"raw_rgb\",\n  \"rawhsl\",\n  \"raw_hsl\",\n  \"rawoklch\",\n  \"raw_oklch\",\n  \"all\",\n] as const;\n\n// Validation functions\nfunction isValidColor(colorName: string): colorName is TailwindColor {\n  return VALID_COLORS.includes(colorName as TailwindColor);\n}\n\nfunction isValidShade(shade: number): shade is TailwindShade {\n  return VALID_SHADES.includes(shade as TailwindShade);\n}\n\nfunction isValidFormat(format: string): format is ColorFormat {\n  return VALID_FORMATS.includes(format.toLowerCase() as ColorFormat);\n}\n\nfunction normalizeColorCode(colorName: string, colorCode: ColorCode): string {\n  if (typeof colorCode === \"number\") {\n    if (!isValidShade(colorCode)) {\n      throw new Error(\n        `Invalid shade: ${colorCode}. Valid shades are: ${VALID_SHADES.join(\n          \", \"\n        )}`\n      );\n    }\n    return `${colorName}-${colorCode}`;\n  }\n\n  // If it's already a string, validate it matches the expected format\n  if (colorCode.includes(\"-\")) {\n    // It's already in format \"red-500\"\n    return colorCode;\n  } else {\n    // It's just the number as string \"500\"\n    const shadeNum = parseInt(colorCode, 10);\n    if (isNaN(shadeNum) || !isValidShade(shadeNum)) {\n      throw new Error(\n        `Invalid shade: ${colorCode}. Valid shades are: ${VALID_SHADES.join(\n          \", \"\n        )}`\n      );\n    }\n    return `${colorName}-${shadeNum}`;\n  }\n}\n\n// Main function to get color value in specified format\nexport function getColor(\n  colorName: string,\n  colorCode: ColorCode,\n  format: ColorFormat = \"hex\"\n): string | [number, number, number] | ColorData {\n  // Validate inputs\n  if (!isValidColor(colorName)) {\n    throw new Error(\n      `Invalid color: \"${colorName}\". Valid colors are: ${VALID_COLORS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  if (!isValidFormat(format)) {\n    throw new Error(\n      `Invalid format: \"${format}\". Valid formats are: ${VALID_FORMATS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  const normalizedColorCode = normalizeColorCode(colorName, colorCode);\n\n  if (!tailwindMapper[colorName]) {\n    throw new Error(`Color \"${colorName}\" not found in mapper`);\n  }\n\n  if (!tailwindMapper[colorName][normalizedColorCode]) {\n    throw new Error(\n      `Color code \"${normalizedColorCode}\" not found for color \"${colorName}\"`\n    );\n  }\n\n  const colorData = tailwindMapper[colorName][normalizedColorCode];\n\n  switch (format.toLowerCase()) {\n    case \"hex\":\n      return colorData.hex;\n    case \"rgb\":\n      return colorData.rgb;\n    case \"hsl\":\n      return colorData.hsl;\n    case \"oklch\":\n      return colorData.oklch;\n    case \"rawrgb\":\n    case \"raw_rgb\":\n      return colorData.rawRgb;\n    case \"rawhsl\":\n    case \"raw_hsl\":\n      return colorData.rawHsl;\n    case \"rawoklch\":\n    case \"raw_oklch\":\n      return colorData.rawOklch;\n    case \"all\":\n      return colorData;\n    default:\n      throw new Error(\n        `Unsupported format: ${format}. Supported formats: ${VALID_FORMATS.join(\n          \", \"\n        )}`\n      );\n  }\n}\n\n// Get all shades for a specific color\nexport function getColorShades(\n  colorName: string,\n  format: ColorFormat = \"hex\"\n): Record<string, string | [number, number, number] | ColorData> {\n  if (!isValidColor(colorName)) {\n    throw new Error(\n      `Invalid color: \"${colorName}\". Valid colors are: ${VALID_COLORS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  if (!isValidFormat(format)) {\n    throw new Error(\n      `Invalid format: \"${format}\". Valid formats are: ${VALID_FORMATS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  if (!tailwindMapper[colorName]) {\n    throw new Error(`Color \"${colorName}\" not found in mapper`);\n  }\n\n  const shades: Record<string, string | [number, number, number] | ColorData> =\n    {};\n\n  for (const [shadeCode, colorData] of Object.entries(\n    tailwindMapper[colorName]\n  )) {\n    switch (format.toLowerCase()) {\n      case \"hex\":\n        shades[shadeCode] = colorData.hex;\n        break;\n      case \"rgb\":\n        shades[shadeCode] = colorData.rgb;\n        break;\n      case \"hsl\":\n        shades[shadeCode] = colorData.hsl;\n        break;\n      case \"oklch\":\n        shades[shadeCode] = colorData.oklch;\n        break;\n      case \"rawrgb\":\n      case \"raw_rgb\":\n        shades[shadeCode] = colorData.rawRgb;\n        break;\n      case \"rawhsl\":\n      case \"raw_hsl\":\n        shades[shadeCode] = colorData.rawHsl;\n        break;\n      case \"rawoklch\":\n      case \"raw_oklch\":\n        shades[shadeCode] = colorData.rawOklch;\n        break;\n      case \"all\":\n        shades[shadeCode] = colorData;\n        break;\n      default:\n        throw new Error(`Unsupported format: ${format}`);\n    }\n  }\n\n  return shades;\n}\n\n// Get all colors in a specific format\nexport function getAllColors(\n  format: ColorFormat = \"hex\"\n): Record<\n  string,\n  Record<string, string | [number, number, number] | ColorData>\n> {\n  if (!isValidFormat(format)) {\n    throw new Error(\n      `Invalid format: \"${format}\". Valid formats are: ${VALID_FORMATS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  const allColors: Record<\n    string,\n    Record<string, string | [number, number, number] | ColorData>\n  > = {};\n\n  for (const [colorName, colorShades] of Object.entries(tailwindMapper)) {\n    allColors[colorName] = getColorShades(colorName, format);\n  }\n\n  return allColors;\n}\n\n// Get available color names\nexport function getAvailableColors(): string[] {\n  return Object.keys(tailwindMapper);\n}\n\n// Get available shades for a specific color\nexport function getAvailableShades(colorName: string): string[] {\n  if (!isValidColor(colorName)) {\n    throw new Error(\n      `Invalid color: \"${colorName}\". Valid colors are: ${VALID_COLORS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  if (!tailwindMapper[colorName]) {\n    throw new Error(`Color \"${colorName}\" not found in mapper`);\n  }\n\n  return Object.keys(tailwindMapper[colorName]);\n}\n\n// Check if a color exists\nexport function colorExists(\n  colorName: string,\n  colorCode: ColorCode | null = null\n): boolean {\n  if (!isValidColor(colorName)) {\n    return false;\n  }\n\n  if (!tailwindMapper[colorName]) {\n    return false;\n  }\n\n  if (colorCode === null) {\n    return true;\n  }\n\n  const normalizedColorCode = normalizeColorCode(colorName, colorCode);\n  return tailwindMapper[colorName][normalizedColorCode] !== undefined;\n}\n\n// Get color data in all formats\nexport function getColorData(\n  colorName: string,\n  colorCode: ColorCode\n): ColorData {\n  if (!isValidColor(colorName)) {\n    throw new Error(\n      `Invalid color: \"${colorName}\". Valid colors are: ${VALID_COLORS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  const normalizedColorCode = normalizeColorCode(colorName, colorCode);\n\n  if (!tailwindMapper[colorName]) {\n    throw new Error(`Color \"${colorName}\" not found in mapper`);\n  }\n\n  if (!tailwindMapper[colorName][normalizedColorCode]) {\n    throw new Error(\n      `Color code \"${normalizedColorCode}\" not found for color \"${colorName}\"`\n    );\n  }\n\n  return tailwindMapper[colorName][normalizedColorCode];\n}\n\n// Convert between formats (using the raw values)\nexport function convertColor(\n  colorName: string,\n  colorCode: ColorCode,\n  fromFormat: ColorFormat,\n  toFormat: ColorFormat\n): string | [number, number, number] | ColorData {\n  if (!isValidFormat(fromFormat) || !isValidFormat(toFormat)) {\n    throw new Error(\n      `Invalid format. Valid formats are: ${VALID_FORMATS.join(\", \")}`\n    );\n  }\n\n  const colorData = getColorData(colorName, colorCode);\n\n  const formatMap: Record<\n    string,\n    string | [number, number, number] | ColorData\n  > = {\n    hex: colorData.hex,\n    rgb: colorData.rgb,\n    hsl: colorData.hsl,\n    oklch: colorData.oklch,\n    rawrgb: colorData.rawRgb,\n    rawhsl: colorData.rawHsl,\n    rawoklch: colorData.rawOklch,\n  };\n\n  if (!formatMap[toFormat.toLowerCase()]) {\n    throw new Error(`Unsupported target format: ${toFormat}`);\n  }\n\n  return formatMap[toFormat.toLowerCase()];\n}\n\n// Search for colors by hex value (fuzzy search)\nexport function findColorByHex(\n  hexValue: string,\n  exact: boolean = false\n): ColorSearchResult[] {\n  const results: ColorSearchResult[] = [];\n\n  for (const [colorName, colorShades] of Object.entries(tailwindMapper)) {\n    for (const [shadeCode, colorData] of Object.entries(colorShades)) {\n      if (exact) {\n        if (colorData.hex.toLowerCase() === hexValue.toLowerCase()) {\n          results.push({\n            colorName,\n            shadeCode,\n            colorData,\n          });\n        }\n      } else {\n        if (colorData.hex.toLowerCase().includes(hexValue.toLowerCase())) {\n          results.push({\n            colorName,\n            shadeCode,\n            colorData,\n          });\n        }\n      }\n    }\n  }\n\n  return results;\n}\n\n// Get color palette for a specific color (all shades)\nexport function getColorPalette(colorName: string): Record<string, ColorData> {\n  return getColorShades(colorName, \"all\") as Record<string, ColorData>;\n}\n\n// Generate CSS custom properties for a color\nexport function generateCSSVariables(\n  colorName: string,\n  prefix: string = \"\"\n): CSSVariables {\n  if (!isValidColor(colorName)) {\n    throw new Error(\n      `Invalid color: \"${colorName}\". Valid colors are: ${VALID_COLORS.join(\n        \", \"\n      )}`\n    );\n  }\n\n  const shades = getColorShades(colorName, \"all\") as Record<string, ColorData>;\n  const cssVars: CSSVariables = {};\n\n  for (const [shadeCode, colorData] of Object.entries(shades)) {\n    const varName = prefix ? `${prefix}-${shadeCode}` : shadeCode;\n    cssVars[`--${varName}-hex`] = colorData.hex;\n    cssVars[`--${varName}-rgb`] = colorData.rgb;\n    cssVars[`--${varName}-hsl`] = colorData.hsl;\n    cssVars[`--${varName}-oklch`] = colorData.oklch;\n  }\n\n  return cssVars;\n}\n\n// Generate Tailwind CSS config object\nexport function generateTailwindConfig(): TailwindConfig {\n  const config: TailwindConfig = {};\n\n  for (const [colorName, colorShades] of Object.entries(tailwindMapper)) {\n    config[colorName] = {};\n    for (const [shadeCode, colorData] of Object.entries(colorShades)) {\n      const shade = shadeCode.split(\"-\")[1]; // Extract just the number\n      config[colorName][shade] = colorData.hex;\n    }\n  }\n\n  return config;\n}\n\n// Get statistics about the mapper\nexport function getMapperStats(): MapperStats {\n  const stats: MapperStats = {\n    totalColors: 0,\n    totalShades: 0,\n    colors: {},\n  };\n\n  for (const [colorName, colorShades] of Object.entries(tailwindMapper)) {\n    stats.totalColors++;\n    const shadeCount = Object.keys(colorShades).length;\n    stats.totalShades += shadeCount;\n    stats.colors[colorName] = shadeCount;\n  }\n\n  return stats;\n}\n\n// Export constants for external use\nexport { VALID_COLORS, VALID_FORMATS, VALID_SHADES };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}