use super::super::Color;

#[cfg(not(feature = "TRUE_COLORS"))]
const COLOR_TO_PIXEL: [u32; 16] = [
    0x000000, // Black
    0x000080, // DarkBlue
    0x008000, // DarkGreen
    0x008080, // Teal
    0x800000, // DarkRed
    0x800080, // Purple
    0x808000, // Brown
    0xC0C0C0, // LightGray
    0x808080, // LightGray
    0x0000FF, // Blue
    0x00FF00, // Green
    0x00FFFF, // Aqua
    0xFF0000, // Red
    0xFF00FF, // Pink
    0xFFFF00, // Yellow
    0xFFFFFF, // White
];

static COLORMAP_4096_QUANTIZATION: [Color; 4096] = [
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::Black,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::DarkBlue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Blue,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::DarkGreen,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Teal,
    Color::Teal,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Aqua,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Aqua,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Aqua,
    Color::Aqua,
    Color::Aqua,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Blue,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Green,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::DarkRed,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Magenta,
    Color::Magenta,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Olive,
    Color::Gray,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Pink,
    Color::Pink,
    Color::Pink,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Red,
    Color::Gray,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Gray,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Yellow,
    Color::Silver,
    Color::Silver,
    Color::Silver,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
    Color::White,
];

/// A pixel in the image.
///
/// The pixel is a combination of red, green, and blue components, and an alpha component.
/// The alpha component is the opacity of the pixel, and is used to determine how much of the pixel's color should be blended with the background.
/// The red, green, and blue components are the color of the pixel.
///
/// The pixel is used to represent a single pixel in the image.
#[derive(Copy, Clone, Debug, PartialEq, Default)]
pub struct Pixel {
    pub red: u8,
    pub green: u8,
    pub blue: u8,
    pub alpha: u8,
}
impl Pixel {
    /// Create a new pixel with the given red, green, and blue components, and an alpha component.
    ///
    /// The alpha component is the opacity of the pixel, and is used to determine how much of the pixel's color should be blended with the background.
    /// The red, green, and blue components are the color of the pixel.
    ///
    /// The pixel is used to represent a single pixel in the image.
    pub fn new(red: u8, green: u8, blue: u8, alpha: u8) -> Self {
        Pixel { red, green, blue, alpha }
    }

    /// Create a new pixel with the given red, green, and blue components.
    ///
    /// The alpha component is set to 255, which means the pixel is fully opaque.
    pub fn with_rgb(red: u8, green: u8, blue: u8) -> Self {
        Pixel {
            red,
            green,
            blue,
            alpha: u8::MAX,
        }
    }
    #[cfg(not(feature = "TRUE_COLORS"))]
    pub fn with_color(color: Color) -> Self {
        let idx = color as u8;
        if idx >= 16 {
            Pixel {
                red: 0,
                green: 0,
                blue: 0,
                alpha: 0,
            }
        } else {
            let u = COLOR_TO_PIXEL[idx as usize];
            Pixel {
                red: ((u >> 16) & 0xFF) as u8,
                green: ((u >> 8) & 0xFF) as u8,
                blue: ((u & 0xFF) as u8),
                alpha: 255,
            }
        }
    }
    #[cfg(feature = "TRUE_COLORS")]
    pub fn with_color(color: Color) -> Self {
        match color {
            Color::Black => Pixel::with_rgb(0, 0, 0),
            Color::DarkBlue => Pixel::with_rgb(0x00, 0x00, 0x80),
            Color::DarkGreen => Pixel::with_rgb(0x00, 0x80, 0x00),
            Color::Teal => Pixel::with_rgb(0x00, 0x80, 0x80),
            Color::DarkRed => Pixel::with_rgb(0x80, 0x00, 0x00),
            Color::Magenta => Pixel::with_rgb(0x80, 0x00, 0x80),
            Color::Olive => Pixel::with_rgb(0x80, 0x80, 0x00),
            Color::Silver => Pixel::with_rgb(0xC0, 0xC0, 0xC0),
            Color::Gray => Pixel::with_rgb(0x80, 0x80, 0x80),
            Color::Blue => Pixel::with_rgb(0x00, 0x00, 0xFF),
            Color::Green => Pixel::with_rgb(0x00, 0xFF, 0x00),
            Color::Aqua => Pixel::with_rgb(0x00, 0xFF, 0xFF),
            Color::Red => Pixel::with_rgb(0xFF, 0x00, 0x00),
            Color::Pink => Pixel::with_rgb(0xFF, 0x00, 0xFF),
            Color::Yellow => Pixel::with_rgb(0xFF, 0xFF, 0x00),
            Color::White => Pixel::with_rgb(0xFF, 0xFF, 0xFF),
            Color::Transparent => Pixel::new(0, 0, 0, 0),
            Color::RGB(r, g, b) => Pixel::with_rgb(r, g, b),
        }
    }
    #[inline(always)]
    pub(super) fn blend_alpha(&self) -> (u8, u8, u8) {
        if self.alpha == u8::MAX {
            (self.red, self.green, self.blue)
        } else {
            let alpha = self.alpha as u16;
            (
                ((self.red as u16 * alpha) / 255) as u8,
                ((self.green as u16 * alpha) / 255) as u8,
                ((self.blue as u16 * alpha) / 255) as u8,
            )
        }
    }
    #[inline(always)]
    pub(super) fn luminance(&self) -> u8 {
        let (r, g, b) = self.blend_alpha();
        ((13933u32 * r as u32 + 46871 * g as u32 + 4742 * b as u32) >> 16) as u8
    }
    pub(super) fn as_color16(&self) -> Color {
        let (r, g, b) = self.blend_alpha();
        let index = (((r / 17) as usize) << 8) + (((g / 17) as usize) << 4) + (b / 17) as usize;
        COLORMAP_4096_QUANTIZATION[index]
    }
    #[inline(always)]
    pub(super) fn as_blackwhite(&self, thredshold: u8) -> Color {
        if self.luminance() < thredshold {
            Color::Black
        } else {
            Color::White
        }
    }
    #[inline(always)]
    pub(super) fn as_grayscale4(&self) -> Color {
        let l = self.luminance();
        match l {
            0..=63 => Color::Black,
            64..=127 => Color::Gray,
            128..=192 => Color::Silver,
            _ => Color::White,
        }
    }

    #[cfg(feature = "TRUE_COLORS")]
    #[inline(always)]
    pub(super) fn as_rgb_color(&self) -> Color {
        Color::from_rgb(self.red, self.green, self.blue)
    }
    #[cfg(feature = "TRUE_COLORS")]
    #[inline(always)]
    pub(super) fn as_grayscale(&self) -> Color {
        let l = self.luminance();
        Color::RGB(l, l, l)
    }
}
impl From<u32> for Pixel {
    fn from(value: u32) -> Self {
        Self {
            blue: (value & 0xFF) as u8,
            green: ((value >> 8) & 0xFF) as u8,
            red: ((value >> 16) & 0xFF) as u8,
            alpha: ((value >> 24) & 0xFF) as u8,
        }
    }
}
