3 # © Copyright 2021-2022, Scott Gasch
5 """A bunch of color names mapped into RGB tuples and some methods for
6 setting the text color, background, etc... using ANSI escape
7 sequences. See: https://en.wikipedia.org/wiki/ANSI_escape_code.
16 from abc import abstractmethod
17 from typing import Any, Callable, Dict, Iterable, Literal, Optional, Tuple
19 from overrides import overrides
21 from pyutils import logging_utils, string_utils
23 logger = logging.getLogger(__name__)
26 COLOR_NAMES_TO_RGB: Dict[str, Tuple[int, int, int]] = {
27 "abbey": (0x4C, 0x4F, 0x56),
28 "acadia": (0x1B, 0x14, 0x04),
29 "acapulco": (0x7C, 0xB0, 0xA1),
30 "aero blue": (0xC9, 0xFF, 0xE5),
31 "affair": (0x71, 0x46, 0x93),
32 "akaroa": (0xD4, 0xC4, 0xA8),
33 "alabaster": (0xFA, 0xFA, 0xFA),
34 "albescent white": (0xF5, 0xE9, 0xD3),
35 "algae green": (0x93, 0xDF, 0xB8),
36 "alice blue": (0xF0, 0xF8, 0xFF),
37 "alizarin crimson": (0xE3, 0x26, 0x36),
38 "allports": (0x00, 0x76, 0xA3),
39 "almond frost": (0x90, 0x7B, 0x71),
40 "almond": (0xEE, 0xD9, 0xC4),
41 "alpine": (0xAF, 0x8F, 0x2C),
42 "alto": (0xDB, 0xDB, 0xDB),
43 "aluminium": (0xA9, 0xAC, 0xB6),
44 "amaranth": (0xE5, 0x2B, 0x50),
45 "amazon": (0x3B, 0x7A, 0x57),
46 "amber": (0xFF, 0xBF, 0x00),
47 "americano": (0x87, 0x75, 0x6E),
48 "amethyst smoke": (0xA3, 0x97, 0xB4),
49 "amethyst": (0x99, 0x66, 0xCC),
50 "amour": (0xF9, 0xEA, 0xF3),
51 "amulet": (0x7B, 0x9F, 0x80),
52 "anakiwa": (0x9D, 0xE5, 0xFF),
53 "antique brass": (0xC8, 0x8A, 0x65),
54 "antique bronze": (0x70, 0x4A, 0x07),
55 "antique white": (0xFA, 0xEB, 0xD7),
56 "anzac": (0xE0, 0xB6, 0x46),
57 "apache": (0xDF, 0xBE, 0x6F),
58 "apple blossom": (0xAF, 0x4D, 0x43),
59 "apple green": (0xE2, 0xF3, 0xEC),
60 "apple": (0x4F, 0xA8, 0x3D),
61 "apricot peach": (0xFB, 0xCE, 0xB1),
62 "apricot white": (0xFF, 0xFE, 0xEC),
63 "apricot": (0xEB, 0x93, 0x73),
64 "aqua deep": (0x01, 0x4B, 0x43),
65 "aqua forest": (0x5F, 0xA7, 0x77),
66 "aqua haze": (0xED, 0xF5, 0xF5),
67 "aqua island": (0xA1, 0xDA, 0xD7),
68 "aqua spring": (0xEA, 0xF9, 0xF5),
69 "aqua squeeze": (0xE8, 0xF5, 0xF2),
70 "aqua": (0x00, 0xFF, 0xFF),
71 "aquamarine blue": (0x71, 0xD9, 0xE2),
72 "aquamarine": (0x7F, 0xFF, 0xD4),
73 "arapawa": (0x11, 0x0C, 0x6C),
74 "armadillo": (0x43, 0x3E, 0x37),
75 "arrowtown": (0x94, 0x87, 0x71),
76 "ash": (0xC6, 0xC3, 0xB5),
77 "asparagus": (0x7B, 0xA0, 0x5B),
78 "asphalt": (0x13, 0x0A, 0x06),
79 "astra": (0xFA, 0xEA, 0xB9),
80 "astral": (0x32, 0x7D, 0xA0),
81 "astronaut blue": (0x01, 0x3E, 0x62),
82 "astronaut": (0x28, 0x3A, 0x77),
83 "athens gray": (0xEE, 0xF0, 0xF3),
84 "aths special": (0xEC, 0xEB, 0xCE),
85 "atlantis": (0x97, 0xCD, 0x2D),
86 "atoll": (0x0A, 0x6F, 0x75),
87 "atomic tangerine": (0xFF, 0x99, 0x66),
88 "au chico": (0x97, 0x60, 0x5D),
89 "aubergine": (0x3B, 0x09, 0x10),
90 "australian mint": (0xF5, 0xFF, 0xBE),
91 "avocado": (0x88, 0x8D, 0x65),
92 "axolotl": (0x4E, 0x66, 0x49),
93 "azalea": (0xF7, 0xC8, 0xDA),
94 "aztec": (0x0D, 0x1C, 0x19),
95 "azure radiance": (0x00, 0x7F, 0xFF),
96 "azure": (0xF0, 0xFF, 0xFF),
97 "baby blue": (0xE0, 0xFF, 0xFF),
98 "backup.house": (175, 95, 0),
99 "bahama blue": (0x02, 0x63, 0x95),
100 "bahia": (0xA5, 0xCB, 0x0C),
101 "baja white": (0xFF, 0xF8, 0xD1),
102 "bali hai": (0x85, 0x9F, 0xAF),
103 "baltic sea": (0x2A, 0x26, 0x30),
104 "bamboo": (0xDA, 0x63, 0x04),
105 "banana mania": (0xFB, 0xE7, 0xB2),
106 "bandicoot": (0x85, 0x84, 0x70),
107 "barberry": (0xDE, 0xD7, 0x17),
108 "barley corn": (0xA6, 0x8B, 0x5B),
109 "barley white": (0xFF, 0xF4, 0xCE),
110 "barossa": (0x44, 0x01, 0x2D),
111 "bastille": (0x29, 0x21, 0x30),
112 "battleship gray": (0x82, 0x8F, 0x72),
113 "bay leaf": (0x7D, 0xA9, 0x8D),
114 "bay of many": (0x27, 0x3A, 0x81),
115 "bazaar": (0x98, 0x77, 0x7B),
116 "bean ": (0x3D, 0x0C, 0x02),
117 "beauty bush": (0xEE, 0xC1, 0xBE),
118 "beaver": (0x92, 0x6F, 0x5B),
119 "beeswax": (0xFE, 0xF2, 0xC7),
120 "beige": (0xF5, 0xF5, 0xDC),
121 "bermuda gray": (0x6B, 0x8B, 0xA2),
122 "bermuda": (0x7D, 0xD8, 0xC6),
123 "beryl green": (0xDE, 0xE5, 0xC0),
124 "bianca": (0xFC, 0xFB, 0xF3),
125 "big stone": (0x16, 0x2A, 0x40),
126 "bilbao": (0x32, 0x7C, 0x14),
127 "biloba flower": (0xB2, 0xA1, 0xEA),
128 "birch": (0x37, 0x30, 0x21),
129 "bird flower": (0xD4, 0xCD, 0x16),
130 "biscay": (0x1B, 0x31, 0x62),
131 "bismark": (0x49, 0x71, 0x83),
132 "bison hide": (0xC1, 0xB7, 0xA4),
133 "bisque": (0xFF, 0xE4, 0xC4),
134 "bistre": (0x3D, 0x2B, 0x1F),
135 "bitter lemon": (0xCA, 0xE0, 0x0D),
136 "bitter": (0x86, 0x89, 0x74),
137 "bittersweet": (0xFE, 0x6F, 0x5E),
138 "bizarre": (0xEE, 0xDE, 0xDA),
139 "black bean": (0x08, 0x19, 0x10),
140 "black forest": (0x0B, 0x13, 0x04),
141 "black haze": (0xF6, 0xF7, 0xF7),
142 "black marlin": (0x3E, 0x2C, 0x1C),
143 "black olive": (0x24, 0x2E, 0x16),
144 "black pearl": (0x04, 0x13, 0x22),
145 "black rock": (0x0D, 0x03, 0x32),
146 "black rose": (0x67, 0x03, 0x2D),
147 "black russian": (0x0A, 0x00, 0x1C),
148 "black squeeze": (0xF2, 0xFA, 0xFA),
149 "black white": (0xFF, 0xFE, 0xF6),
150 "black": (0x00, 0x00, 0x00),
151 "blackberry": (0x4D, 0x01, 0x35),
152 "blackcurrant": (0x32, 0x29, 0x3A),
153 "blanched almond": (0xFF, 0xEB, 0xCD),
154 "blaze orange": (0xFF, 0x66, 0x00),
155 "bleach white": (0xFE, 0xF3, 0xD8),
156 "bleached cedar": (0x2C, 0x21, 0x33),
157 "blizzard blue": (0xA3, 0xE3, 0xED),
158 "blossom": (0xDC, 0xB4, 0xBC),
159 "blue bayoux": (0x49, 0x66, 0x79),
160 "blue bell": (0x99, 0x99, 0xCC),
161 "blue chalk": (0xF1, 0xE9, 0xFF),
162 "blue charcoal": (0x01, 0x0D, 0x1A),
163 "blue chill": (0x0C, 0x89, 0x90),
164 "blue diamond": (0x38, 0x04, 0x74),
165 "blue dianne": (0x20, 0x48, 0x52),
166 "blue gem": (0x2C, 0x0E, 0x8C),
167 "blue haze": (0xBF, 0xBE, 0xD8),
168 "blue lagoon": (0x01, 0x79, 0x87),
169 "blue marguerite": (0x76, 0x66, 0xC6),
170 "blue ribbon": (0x00, 0x66, 0xFF),
171 "blue romance": (0xD2, 0xF6, 0xDE),
172 "blue smoke": (0x74, 0x88, 0x81),
173 "blue stone": (0x01, 0x61, 0x62),
174 "blue violet": (0x8A, 0x2B, 0xE2),
175 "blue whale": (0x04, 0x2E, 0x4C),
176 "blue zodiac": (0x13, 0x26, 0x4D),
177 "blue": (0x00, 0x00, 0xFF),
178 "blumine": (0x18, 0x58, 0x7A),
179 "blush pink": (0xFF, 0x6F, 0xFF),
180 "blush": (0xB4, 0x46, 0x68),
181 "bombay": (0xAF, 0xB1, 0xB8),
182 "bon jour": (0xE5, 0xE0, 0xE1),
183 "bondi blue": (0x00, 0x95, 0xB6),
184 "bone": (0xE4, 0xD1, 0xC0),
185 "bordeaux": (0x5C, 0x01, 0x20),
186 "bossanova": (0x4E, 0x2A, 0x5A),
187 "boston blue": (0x3B, 0x91, 0xB4),
188 "botticelli": (0xC7, 0xDD, 0xE5),
189 "bottle green": (0x09, 0x36, 0x24),
190 "boulder": (0x7A, 0x7A, 0x7A),
191 "bouquet": (0xAE, 0x80, 0x9E),
192 "bourbon": (0xBA, 0x6F, 0x1E),
193 "bracken": (0x4A, 0x2A, 0x04),
194 "brandy punch": (0xCD, 0x84, 0x29),
195 "brandy rose": (0xBB, 0x89, 0x83),
196 "brandy": (0xDE, 0xC1, 0x96),
197 "breaker bay": (0x5D, 0xA1, 0x9F),
198 "brick red": (0xC6, 0x2D, 0x42),
199 "bridal heath": (0xFF, 0xFA, 0xF4),
200 "bridesmaid": (0xFE, 0xF0, 0xEC),
201 "bright gray": (0x3C, 0x41, 0x51),
202 "bright green": (0x66, 0xFF, 0x00),
203 "bright red": (0xB1, 0x00, 0x00),
204 "bright sun": (0xFE, 0xD3, 0x3C),
205 "bright turquoise": (0x08, 0xE8, 0xDE),
206 "brilliant rose": (0xF6, 0x53, 0xA6),
207 "brink pink": (0xFB, 0x60, 0x7F),
208 "bronco": (0xAB, 0xA1, 0x96),
209 "bronze olive": (0x4E, 0x42, 0x0C),
210 "bronze": (0x3F, 0x21, 0x09),
211 "bronzetone": (0x4D, 0x40, 0x0F),
212 "broom": (0xFF, 0xEC, 0x13),
213 "brown bramble": (0x59, 0x28, 0x04),
214 "brown derby": (0x49, 0x26, 0x15),
215 "brown pod": (0x40, 0x18, 0x01),
216 "brown rust": (0xAF, 0x59, 0x3E),
217 "brown tumbleweed": (0x37, 0x29, 0x0E),
218 "brown": (0x96, 0x4B, 0x00),
219 "bubbles": (0xE7, 0xFE, 0xFF),
220 "buccaneer": (0x62, 0x2F, 0x30),
221 "bud": (0xA8, 0xAE, 0x9C),
222 "buddha gold": (0xC1, 0xA0, 0x04),
223 "buff": (0xF0, 0xDC, 0x82),
224 "bulgarian rose": (0x48, 0x06, 0x07),
225 "bull shot": (0x86, 0x4D, 0x1E),
226 "bunker": (0x0D, 0x11, 0x17),
227 "bunting": (0x15, 0x1F, 0x4C),
228 "burgundy": (0x90, 0x00, 0x20),
229 "burlywood": (0xDE, 0xB8, 0x87),
230 "burnham": (0x00, 0x2E, 0x20),
231 "burning orange": (0xFF, 0x70, 0x34),
232 "burning sand": (0xD9, 0x93, 0x76),
233 "burnt maroon": (0x42, 0x03, 0x03),
234 "burnt orange": (0xCC, 0x55, 0x00),
235 "burnt sienna": (0xE9, 0x74, 0x51),
236 "burnt umber": (0x8A, 0x33, 0x24),
237 "bush": (0x0D, 0x2E, 0x1C),
238 "buttercup": (0xF3, 0xAD, 0x16),
239 "buttered rum": (0xA1, 0x75, 0x0D),
240 "butterfly bush": (0x62, 0x4E, 0x9A),
241 "buttermilk": (0xFF, 0xF1, 0xB5),
242 "buttery white": (0xFF, 0xFC, 0xEA),
243 "cab sav": (0x4D, 0x0A, 0x18),
244 "cabaret": (0xD9, 0x49, 0x72),
245 "cabbage pont": (0x3F, 0x4C, 0x3A),
246 "cactus": (0x58, 0x71, 0x56),
247 "cadet blue": (0x5F, 0x9E, 0xA0),
248 "cadillac": (0xB0, 0x4C, 0x6A),
249 "cafe royale": (0x6F, 0x44, 0x0C),
250 "calico": (0xE0, 0xC0, 0x95),
251 "california": (0xFE, 0x9D, 0x04),
252 "calypso": (0x31, 0x72, 0x8D),
253 "camarone": (0x00, 0x58, 0x1A),
254 "camelot": (0x89, 0x34, 0x56),
255 "cameo": (0xD9, 0xB9, 0x9B),
256 "camouflage green": (0x78, 0x86, 0x6B),
257 "camouflage": (0x3C, 0x39, 0x10),
258 "can can": (0xD5, 0x91, 0xA4),
259 "canary": (0xF3, 0xFB, 0x62),
260 "candlelight": (0xFC, 0xD9, 0x17),
261 "candy corn": (0xFB, 0xEC, 0x5D),
262 "cannon black": (0x25, 0x17, 0x06),
263 "cannon pink": (0x89, 0x43, 0x67),
264 "cape cod": (0x3C, 0x44, 0x43),
265 "cape honey": (0xFE, 0xE5, 0xAC),
266 "cape palliser": (0xA2, 0x66, 0x45),
267 "caper": (0xDC, 0xED, 0xB4),
268 "caramel": (0xFF, 0xDD, 0xAF),
269 "cararra": (0xEE, 0xEE, 0xE8),
270 "cardin green": (0x01, 0x36, 0x1C),
271 "cardinal pink": (0x8C, 0x05, 0x5E),
272 "cardinal": (0xC4, 0x1E, 0x3A),
273 "careys pink": (0xD2, 0x9E, 0xAA),
274 "caribbean green": (0x00, 0xCC, 0x99),
275 "carissma": (0xEA, 0x88, 0xA8),
276 "carla": (0xF3, 0xFF, 0xD8),
277 "carmine": (0x96, 0x00, 0x18),
278 "carnaby tan": (0x5C, 0x2E, 0x01),
279 "carnation pink": (0xFF, 0xA6, 0xC9),
280 "carnation": (0xF9, 0x5A, 0x61),
281 "carousel pink": (0xF9, 0xE0, 0xED),
282 "carrot orange": (0xED, 0x91, 0x21),
283 "casablanca": (0xF8, 0xB8, 0x53),
284 "casal": (0x2F, 0x61, 0x68),
285 "cascade": (0x8B, 0xA9, 0xA5),
286 "cashmere": (0xE6, 0xBE, 0xA5),
287 "casper": (0xAD, 0xBE, 0xD1),
288 "castro": (0x52, 0x00, 0x1F),
289 "catalina blue": (0x06, 0x2A, 0x78),
290 "catskill white": (0xEE, 0xF6, 0xF7),
291 "cavern pink": (0xE3, 0xBE, 0xBE),
292 "cedar wood finish": (0x71, 0x1A, 0x00),
293 "cedar": (0x3E, 0x1C, 0x14),
294 "celadon": (0xAC, 0xE1, 0xAF),
295 "celery": (0xB8, 0xC2, 0x5D),
296 "celeste": (0xD1, 0xD2, 0xCA),
297 "cello": (0x1E, 0x38, 0x5B),
298 "celtic": (0x16, 0x32, 0x22),
299 "cement": (0x8D, 0x76, 0x62),
300 "ceramic": (0xFC, 0xFF, 0xF9),
301 "cerise red": (0xDE, 0x31, 0x63),
302 "cerise": (0xDA, 0x32, 0x87),
303 "cerulean blue": (0x2A, 0x52, 0xBE),
304 "cerulean": (0x02, 0xA4, 0xD3),
305 "chablis": (0xFF, 0xF4, 0xF3),
306 "chalet green": (0x51, 0x6E, 0x3D),
307 "chalky": (0xEE, 0xD7, 0x94),
308 "chambray": (0x35, 0x4E, 0x8C),
309 "chamois": (0xED, 0xDC, 0xB1),
310 "champagne": (0xFA, 0xEC, 0xCC),
311 "chantilly": (0xF8, 0xC3, 0xDF),
312 "charade": (0x29, 0x29, 0x37),
313 "chardon": (0xFF, 0xF3, 0xF1),
314 "chardonnay": (0xFF, 0xCD, 0x8C),
315 "charlotte": (0xBA, 0xEE, 0xF9),
316 "charm": (0xD4, 0x74, 0x94),
317 "chartreuse yellow": (0xDF, 0xFF, 0x00),
318 "chartreuse": (0x7F, 0xFF, 0x00),
319 "chateau green": (0x40, 0xA8, 0x60),
320 "chatelle": (0xBD, 0xB3, 0xC7),
321 "chathams blue": (0x17, 0x55, 0x79),
322 "cheetah.house": (95, 0x00, 0x00),
323 "chelsea cucumber": (0x83, 0xAA, 0x5D),
324 "chelsea gem": (0x9E, 0x53, 0x02),
325 "chenin": (0xDF, 0xCD, 0x6F),
326 "cherokee": (0xFC, 0xDA, 0x98),
327 "cherry pie": (0x2A, 0x03, 0x59),
328 "cherrywood": (0x65, 0x1A, 0x14),
329 "cherub": (0xF8, 0xD9, 0xE9),
330 "chestnut rose": (0xCD, 0x5C, 0x5C),
331 "chestnut": (0xB9, 0x4E, 0x48),
332 "chetwode blue": (0x85, 0x81, 0xD9),
333 "chicago": (0x5D, 0x5C, 0x58),
334 "chiffon": (0xF1, 0xFF, 0xC8),
335 "chilean fire": (0xF7, 0x77, 0x03),
336 "chilean heath": (0xFF, 0xFD, 0xE6),
337 "china ivory": (0xFC, 0xFF, 0xE7),
338 "chino": (0xCE, 0xC7, 0xA7),
339 "chinook": (0xA8, 0xE3, 0xBD),
340 "chocolate": (0x37, 0x02, 0x02),
341 "christalle": (0x33, 0x03, 0x6B),
342 "christi": (0x67, 0xA7, 0x12),
343 "christine": (0xE7, 0x73, 0x0A),
344 "chrome white": (0xE8, 0xF1, 0xD4),
345 "cinder": (0x0E, 0x0E, 0x18),
346 "cinderella": (0xFD, 0xE1, 0xDC),
347 "cinnabar": (0xE3, 0x42, 0x34),
348 "cinnamon": (0x7B, 0x3F, 0x00),
349 "cioccolato": (0x55, 0x28, 0x0C),
350 "citrine white": (0xFA, 0xF7, 0xD6),
351 "citron": (0x9E, 0xA9, 0x1F),
352 "citrus": (0xA1, 0xC5, 0x0A),
353 "clairvoyant": (0x48, 0x06, 0x56),
354 "clam shell": (0xD4, 0xB6, 0xAF),
355 "claret": (0x7F, 0x17, 0x34),
356 "classic rose": (0xFB, 0xCC, 0xE7),
357 "clay ash": (0xBD, 0xC8, 0xB3),
358 "clay creek": (0x8A, 0x83, 0x60),
359 "clear day": (0xE9, 0xFF, 0xFD),
360 "clementine": (0xE9, 0x6E, 0x00),
361 "clinker": (0x37, 0x1D, 0x09),
362 "cloud burst": (0x20, 0x2E, 0x54),
363 "cloud": (0xC7, 0xC4, 0xBF),
364 "cloudy": (0xAC, 0xA5, 0x9F),
365 "clover": (0x38, 0x49, 0x10),
366 "cobalt": (0x00, 0x47, 0xAB),
367 "cocoa bean": (0x48, 0x1C, 0x1C),
368 "cocoa brown": (0x30, 0x1F, 0x1E),
369 "coconut cream": (0xF8, 0xF7, 0xDC),
370 "cod gray": (0x0B, 0x0B, 0x0B),
371 "coffee bean": (0x2A, 0x14, 0x0E),
372 "coffee": (0x70, 0x65, 0x55),
373 "cognac": (0x9F, 0x38, 0x1D),
374 "cola": (0x3F, 0x25, 0x00),
375 "cold purple": (0xAB, 0xA0, 0xD9),
376 "cold turkey": (0xCE, 0xBA, 0xBA),
377 "colonial white": (0xFF, 0xED, 0xBC),
378 "comet": (0x5C, 0x5D, 0x75),
379 "como": (0x51, 0x7C, 0x66),
380 "conch": (0xC9, 0xD9, 0xD2),
381 "concord": (0x7C, 0x7B, 0x7A),
382 "concrete": (0xF2, 0xF2, 0xF2),
383 "confetti": (0xE9, 0xD7, 0x5A),
384 "congo brown": (0x59, 0x37, 0x37),
385 "congress blue": (0x02, 0x47, 0x8E),
386 "conifer": (0xAC, 0xDD, 0x4D),
387 "contessa": (0xC6, 0x72, 0x6B),
388 "copper canyon": (0x7E, 0x3A, 0x15),
389 "copper rose": (0x99, 0x66, 0x66),
390 "copper rust": (0x94, 0x47, 0x47),
391 "copper": (0xB8, 0x73, 0x33),
392 "copperfield": (0xDA, 0x8A, 0x67),
393 "coral red": (0xFF, 0x40, 0x40),
394 "coral reef": (0xC7, 0xBC, 0xA2),
395 "coral tree": (0xA8, 0x6B, 0x6B),
396 "coral": (0xFF, 0x7F, 0x50),
397 "corduroy": (0x60, 0x6E, 0x68),
398 "coriander": (0xC4, 0xD0, 0xB0),
399 "cork": (0x40, 0x29, 0x1D),
400 "corn field": (0xF8, 0xFA, 0xCD),
401 "corn harvest": (0x8B, 0x6B, 0x0B),
402 "corn silk": (0xFF, 0xF8, 0xDC),
403 "corn": (0xE7, 0xBF, 0x05),
404 "cornflower blue": (0x64, 0x95, 0xED),
405 "cornflower lilac": (0xFF, 0xB0, 0xAC),
406 "cornflower": (0x93, 0xCC, 0xEA),
407 "corvette": (0xFA, 0xD3, 0xA2),
408 "cosmic": (0x76, 0x39, 0x5D),
409 "cosmos": (0xFF, 0xD8, 0xD9),
410 "costa del sol": (0x61, 0x5D, 0x30),
411 "cotton candy": (0xFF, 0xB7, 0xD5),
412 "cotton seed": (0xC2, 0xBD, 0xB6),
413 "county green": (0x01, 0x37, 0x1A),
414 "cowboy": (0x4D, 0x28, 0x2D),
415 "crail": (0xB9, 0x51, 0x40),
416 "cranberry": (0xDB, 0x50, 0x79),
417 "crater brown": (0x46, 0x24, 0x25),
418 "cream brulee": (0xFF, 0xE5, 0xA0),
419 "cream can": (0xF5, 0xC8, 0x5C),
420 "cream": (0xFF, 0xFD, 0xD0),
421 "creole": (0x1E, 0x0F, 0x04),
422 "crete": (0x73, 0x78, 0x29),
423 "crimson": (0xDC, 0x14, 0x3C),
424 "crocodile": (0x73, 0x6D, 0x58),
425 "crown of thorns": (0x77, 0x1F, 0x1F),
426 "crowshead": (0x1C, 0x12, 0x08),
427 "cruise": (0xB5, 0xEC, 0xDF),
428 "crusoe": (0x00, 0x48, 0x16),
429 "crusta": (0xFD, 0x7B, 0x33),
430 "cumin": (0x92, 0x43, 0x21),
431 "cumulus": (0xFD, 0xFF, 0xD5),
432 "cupid": (0xFB, 0xBE, 0xDA),
433 "curious blue": (0x25, 0x96, 0xD1),
434 "cutty sark": (0x50, 0x76, 0x72),
435 "cyan": (0x00, 0xFF, 0xFF),
436 "cyprus": (0x00, 0x3E, 0x40),
437 "daintree": (0x01, 0x27, 0x31),
438 "dairy cream": (0xF9, 0xE4, 0xBC),
439 "daisy bush": (0x4F, 0x23, 0x98),
440 "dallas": (0x6E, 0x4B, 0x26),
441 "dandelion": (0xFE, 0xD8, 0x5D),
442 "danube": (0x60, 0x93, 0xD1),
443 "dark blue": (0x00, 0x00, 0x8B),
444 "dark burgundy": (0x77, 0x0F, 0x05),
445 "dark cyan": (0x00, 0x8B, 0x8B),
446 "dark ebony": (0x3C, 0x20, 0x05),
447 "dark fern": (0x0A, 0x48, 0x0D),
448 "dark goldenrod": (0xB8, 0x86, 0x0B),
449 "dark gray": (0xA9, 0xA9, 0xA9),
450 "dark green": (0x18, 0x2D, 0x09),
451 "dark magenta": (0xAF, 0x00, 0xAF),
452 "dark olive green": (0x55, 0x6B, 0x2F),
453 "dark orange": (0xFF, 0x8C, 0x00),
454 "dark orchid": (0x99, 0x32, 0xCC),
455 "dark purple": (0x36, 0x00, 0x79),
456 "dark red": (0x64, 0x00, 0x00),
457 "dark salmon": (0xE9, 0x96, 0x7A),
458 "dark sea green": (0x8F, 0xBC, 0x8F),
459 "dark slate gray": (0x2F, 0x4F, 0x4F),
460 "dark tan": (0x66, 0x10, 0x10),
461 "dark turquoise": (0x00, 0xCE, 0xD1),
462 "dark violet": (0x94, 0x00, 0xD3),
463 "dawn pink": (0xF3, 0xE9, 0xE5),
464 "dawn": (0xA6, 0xA2, 0x9A),
465 "de york": (0x7A, 0xC4, 0x88),
466 "deco": (0xD2, 0xDA, 0x97),
467 "deep blue": (0x22, 0x08, 0x78),
468 "deep blush": (0xE4, 0x76, 0x98),
469 "deep bronze": (0x4A, 0x30, 0x04),
470 "deep cerulean": (0x00, 0x7B, 0xA7),
471 "deep cove": (0x05, 0x10, 0x40),
472 "deep fir": (0x00, 0x29, 0x00),
473 "deep forest green": (0x18, 0x2D, 0x09),
474 "deep koamaru": (0x1B, 0x12, 0x7B),
475 "deep oak": (0x41, 0x20, 0x10),
476 "deep pink": (0xFF, 0x14, 0x93),
477 "deep sapphire": (0x08, 0x25, 0x67),
478 "deep sea green": (0x09, 0x58, 0x59),
479 "deep sea": (0x01, 0x82, 0x6B),
480 "deep sky blue": (0x00, 0xBF, 0xFF),
481 "deep teal": (0x00, 0x35, 0x32),
482 "del rio": (0xB0, 0x9A, 0x95),
483 "dell": (0x39, 0x64, 0x13),
484 "delta": (0xA4, 0xA4, 0x9D),
485 "deluge": (0x75, 0x63, 0xA8),
486 "denim": (0x15, 0x60, 0xBD),
487 "derby": (0xFF, 0xEE, 0xD8),
488 "desert sand": (0xED, 0xC9, 0xAF),
489 "desert storm": (0xF8, 0xF8, 0xF7),
490 "desert": (0xAE, 0x60, 0x20),
491 "dew": (0xEA, 0xFF, 0xFE),
492 "di serria": (0xDB, 0x99, 0x5E),
493 "diesel": (0x13, 0x00, 0x00),
494 "dim gray": (0x69, 0x69, 0x69),
495 "dingley": (0x5D, 0x77, 0x47),
496 "disco": (0x87, 0x15, 0x50),
497 "dixie": (0xE2, 0x94, 0x18),
498 "dodger blue": (0x1E, 0x90, 0xFF),
499 "dolly": (0xF9, 0xFF, 0x8B),
500 "dolphin": (0x64, 0x60, 0x77),
501 "domino": (0x8E, 0x77, 0x5E),
502 "don juan": (0x5D, 0x4C, 0x51),
503 "donkey brown": (0xA6, 0x92, 0x79),
504 "dorado": (0x6B, 0x57, 0x55),
505 "double colonial white": (0xEE, 0xE3, 0xAD),
506 "double pearl lusta": (0xFC, 0xF4, 0xD0),
507 "double spanish white": (0xE6, 0xD7, 0xB9),
508 "dove gray": (0x6D, 0x6C, 0x6C),
509 "downriver": (0x09, 0x22, 0x56),
510 "downy": (0x6F, 0xD0, 0xC5),
511 "driftwood": (0xAF, 0x87, 0x51),
512 "drover": (0xFD, 0xF7, 0xAD),
513 "dull lavender": (0xA8, 0x99, 0xE6),
514 "dune": (0x38, 0x35, 0x33),
515 "dust storm": (0xE5, 0xCC, 0xC9),
516 "dusty gray": (0xA8, 0x98, 0x9B),
517 "eagle": (0xB6, 0xBA, 0xA4),
518 "earls green": (0xC9, 0xB9, 0x3B),
519 "early dawn": (0xFF, 0xF9, 0xE6),
520 "east bay": (0x41, 0x4C, 0x7D),
521 "east side": (0xAC, 0x91, 0xCE),
522 "eastern blue": (0x1E, 0x9A, 0xB0),
523 "ebb": (0xE9, 0xE3, 0xE3),
524 "ebony clay": (0x26, 0x28, 0x3B),
525 "ebony": (0x0C, 0x0B, 0x1D),
526 "eclipse": (0x31, 0x1C, 0x17),
527 "ecru white": (0xF5, 0xF3, 0xE5),
528 "ecstasy": (0xFA, 0x78, 0x14),
529 "eden": (0x10, 0x58, 0x52),
530 "edgewater": (0xC8, 0xE3, 0xD7),
531 "edward": (0xA2, 0xAE, 0xAB),
532 "egg sour": (0xFF, 0xF4, 0xDD),
533 "egg white": (0xFF, 0xEF, 0xC1),
534 "eggplant": (0x61, 0x40, 0x51),
535 "el paso": (0x1E, 0x17, 0x08),
536 "el salva": (0x8F, 0x3E, 0x33),
537 "electric lime": (0xCC, 0xFF, 0x00),
538 "electric violet": (0x8B, 0x00, 0xFF),
539 "elephant": (0x12, 0x34, 0x47),
540 "elf green": (0x08, 0x83, 0x70),
541 "elm": (0x1C, 0x7C, 0x7D),
542 "emerald": (0x50, 0xC8, 0x78),
543 "eminence": (0x6C, 0x30, 0x82),
544 "emperor": (0x51, 0x46, 0x49),
545 "empress": (0x81, 0x73, 0x77),
546 "endeavour": (0x00, 0x56, 0xA7),
547 "energy yellow": (0xF8, 0xDD, 0x5C),
548 "english holly": (0x02, 0x2D, 0x15),
549 "english walnut": (0x3E, 0x2B, 0x23),
550 "envy": (0x8B, 0xA6, 0x90),
551 "equator": (0xE1, 0xBC, 0x64),
552 "espresso": (0x61, 0x27, 0x18),
553 "eternity": (0x21, 0x1A, 0x0E),
554 "eucalyptus": (0x27, 0x8A, 0x5B),
555 "eunry": (0xCF, 0xA3, 0x9D),
556 "evening sea": (0x02, 0x4E, 0x46),
557 "everglade": (0x1C, 0x40, 0x2E),
558 "faded jade": (0x42, 0x79, 0x77),
559 "fair pink": (0xFF, 0xEF, 0xEC),
560 "falcon": (0x7F, 0x62, 0x6D),
561 "fall green": (0xEC, 0xEB, 0xBD),
562 "falu red": (0x80, 0x18, 0x18),
563 "fantasy": (0xFA, 0xF3, 0xF0),
564 "fedora": (0x79, 0x6A, 0x78),
565 "feijoa": (0x9F, 0xDD, 0x8C),
566 "fern frond": (0x65, 0x72, 0x20),
567 "fern green": (0x4F, 0x79, 0x42),
568 "fern": (0x63, 0xB7, 0x6C),
569 "ferra": (0x70, 0x4F, 0x50),
570 "festival": (0xFB, 0xE9, 0x6C),
571 "feta": (0xF0, 0xFC, 0xEA),
572 "fiery orange": (0xB3, 0x52, 0x13),
573 "finch": (0x62, 0x66, 0x49),
574 "finlandia": (0x55, 0x6D, 0x56),
575 "finn": (0x69, 0x2D, 0x54),
576 "fiord": (0x40, 0x51, 0x69),
577 "fire brick": (0xB2, 0x22, 0x22),
578 "fire bush": (0xE8, 0x99, 0x28),
579 "fire": (0xAA, 0x42, 0x03),
580 "firefly": (0x0E, 0x2A, 0x30),
581 "flame pea": (0xDA, 0x5B, 0x38),
582 "flamenco": (0xFF, 0x7D, 0x07),
583 "flamingo": (0xF2, 0x55, 0x2A),
584 "flax smoke": (0x7B, 0x82, 0x65),
585 "flax": (0xEE, 0xDC, 0x82),
586 "flesh": (0xFF, 0xCB, 0xA4),
587 "flint": (0x6F, 0x6A, 0x61),
588 "flirt": (0xA2, 0x00, 0x6D),
589 "floral white": (0xFF, 0xFA, 0xF0),
590 "flush mahogany": (0xCA, 0x34, 0x35),
591 "flush orange": (0xFF, 0x7F, 0x00),
592 "foam": (0xD8, 0xFC, 0xFA),
593 "fog": (0xD7, 0xD0, 0xFF),
594 "foggy gray": (0xCB, 0xCA, 0xB6),
595 "forest green": (0x22, 0x8B, 0x22),
596 "forget me not": (0xFF, 0xF1, 0xEE),
597 "fountain blue": (0x56, 0xB4, 0xBE),
598 "frangipani": (0xFF, 0xDE, 0xB3),
599 "french gray": (0xBD, 0xBD, 0xC6),
600 "french lilac": (0xEC, 0xC7, 0xEE),
601 "french pass": (0xBD, 0xED, 0xFD),
602 "french rose": (0xF6, 0x4A, 0x8A),
603 "fresh eggplant": (0x99, 0x00, 0x66),
604 "friar gray": (0x80, 0x7E, 0x79),
605 "fringy flower": (0xB1, 0xE2, 0xC1),
606 "froly": (0xF5, 0x75, 0x84),
607 "frost": (0xED, 0xF5, 0xDD),
608 "frosted mint": (0xDB, 0xFF, 0xF8),
609 "frostee": (0xE4, 0xF6, 0xE7),
610 "fruit salad": (0x4F, 0x9D, 0x5D),
611 "fuchsia blue": (0x7A, 0x58, 0xC1),
612 "fuchsia pink": (0xC1, 0x54, 0xC1),
613 "fuchsia": (0xFF, 0x00, 0xFF),
614 "fuego": (0xBE, 0xDE, 0x0D),
615 "fuel yellow": (0xEC, 0xA9, 0x27),
616 "fun blue": (0x19, 0x59, 0xA8),
617 "fun green": (0x01, 0x6D, 0x39),
618 "fuscous gray": (0x54, 0x53, 0x4D),
619 "fuzzy wuzzy brown": (0xC4, 0x56, 0x55),
620 "gable green": (0x16, 0x35, 0x31),
621 "gainsboro": (0xDC, 0xDC, 0xDC),
622 "gallery": (0xEF, 0xEF, 0xEF),
623 "galliano": (0xDC, 0xB2, 0x0C),
624 "gamboge": (0xE4, 0x9B, 0x0F),
625 "geebung": (0xD1, 0x8F, 0x1B),
626 "genoa": (0x15, 0x73, 0x6B),
627 "geraldine": (0xFB, 0x89, 0x89),
628 "geyser": (0xD4, 0xDF, 0xE2),
629 "ghost white": (0xF8, 0xF8, 0xFF),
630 "ghost": (0xC7, 0xC9, 0xD5),
631 "gigas": (0x52, 0x3C, 0x94),
632 "gimblet": (0xB8, 0xB5, 0x6A),
633 "gin fizz": (0xFF, 0xF9, 0xE2),
634 "gin": (0xE8, 0xF2, 0xEB),
635 "givry": (0xF8, 0xE4, 0xBF),
636 "glacier": (0x80, 0xB3, 0xC4),
637 "glade green": (0x61, 0x84, 0x5F),
638 "go ben": (0x72, 0x6D, 0x4E),
639 "goblin": (0x3D, 0x7D, 0x52),
640 "gold drop": (0xF1, 0x82, 0x00),
641 "gold sand": (0xE6, 0xBE, 0x8A),
642 "gold tips": (0xDE, 0xBA, 0x13),
643 "gold": (0xFF, 0xD7, 0x00),
644 "golden bell": (0xE2, 0x89, 0x13),
645 "golden dream": (0xF0, 0xD5, 0x2D),
646 "golden fizz": (0xF5, 0xFB, 0x3D),
647 "golden glow": (0xFD, 0xE2, 0x95),
648 "golden grass": (0xDA, 0xA5, 0x20),
649 "golden sand": (0xF0, 0xDB, 0x7D),
650 "golden tainoi": (0xFF, 0xCC, 0x5C),
651 "goldenrod": (0xFC, 0xD6, 0x67),
652 "gondola": (0x26, 0x14, 0x14),
653 "gordons green": (0x0B, 0x11, 0x07),
654 "gorse": (0xFF, 0xF1, 0x4F),
655 "gossamer": (0x06, 0x9B, 0x81),
656 "gossip": (0xD2, 0xF8, 0xB0),
657 "gothic": (0x6D, 0x92, 0xA1),
658 "governor bay": (0x2F, 0x3C, 0xB3),
659 "grain brown": (0xE4, 0xD5, 0xB7),
660 "grandis": (0xFF, 0xD3, 0x8C),
661 "granite green": (0x8D, 0x89, 0x74),
662 "granny apple": (0xD5, 0xF6, 0xE3),
663 "granny smith apple": (0x9D, 0xE0, 0x93),
664 "granny smith": (0x84, 0xA0, 0xA0),
665 "grape": (0x38, 0x1A, 0x51),
666 "graphite": (0x25, 0x16, 0x07),
667 "gravel": (0x4A, 0x44, 0x4B),
668 "gray asparagus": (0x46, 0x59, 0x45),
669 "gray chateau": (0xA2, 0xAA, 0xB3),
670 "gray nickel": (0xC3, 0xC3, 0xBD),
671 "gray nurse": (0xE7, 0xEC, 0xE6),
672 "gray olive": (0xA9, 0xA4, 0x91),
673 "gray suit": (0xC1, 0xBE, 0xCD),
674 "gray": (0x80, 0x80, 0x80),
675 "green haze": (0x01, 0xA3, 0x68),
676 "green house": (0x24, 0x50, 0x0F),
677 "green kelp": (0x25, 0x31, 0x1C),
678 "green leaf": (0x43, 0x6A, 0x0D),
679 "green mist": (0xCB, 0xD3, 0xB0),
680 "green pea": (0x1D, 0x61, 0x42),
681 "green smoke": (0xA4, 0xAF, 0x6E),
682 "green spring": (0xB8, 0xC1, 0xB1),
683 "green vogue": (0x03, 0x2B, 0x52),
684 "green waterloo": (0x10, 0x14, 0x05),
685 "green white": (0xE8, 0xEB, 0xE0),
686 "green yellow": (0xAD, 0xFF, 0x2F),
687 "green": (0x00, 0xFF, 0x00),
688 "grenadier": (0xD5, 0x46, 0x00),
689 "guardsman red": (0xBA, 0x01, 0x01),
690 "gulf blue": (0x05, 0x16, 0x57),
691 "gulf stream": (0x80, 0xB3, 0xAE),
692 "gull gray": (0x9D, 0xAC, 0xB7),
693 "gum leaf": (0xB6, 0xD3, 0xBF),
694 "gumbo": (0x7C, 0xA1, 0xA6),
695 "gun powder": (0x41, 0x42, 0x57),
696 "gunsmoke": (0x82, 0x86, 0x85),
697 "gurkha": (0x9A, 0x95, 0x77),
698 "hacienda": (0x98, 0x81, 0x1B),
699 "hairy heath": (0x6B, 0x2A, 0x14),
700 "haiti": (0x1B, 0x10, 0x35),
701 "half and half": (0xFF, 0xFE, 0xE1),
702 "half baked": (0x85, 0xC4, 0xCC),
703 "half colonial white": (0xFD, 0xF6, 0xD3),
704 "half dutch white": (0xFE, 0xF7, 0xDE),
705 "half spanish white": (0xFE, 0xF4, 0xDB),
706 "hampton": (0xE5, 0xD8, 0xAF),
707 "harlequin": (0x3F, 0xFF, 0x00),
708 "harp": (0xE6, 0xF2, 0xEA),
709 "harvest gold": (0xE0, 0xB9, 0x74),
710 "havelock blue": (0x55, 0x90, 0xD9),
711 "hawaiian tan": (0x9D, 0x56, 0x16),
712 "hawkes blue": (0xD4, 0xE2, 0xFC),
713 "heath": (0x54, 0x10, 0x12),
714 "heather": (0xB7, 0xC3, 0xD0),
715 "heathered gray": (0xB6, 0xB0, 0x95),
716 "heavy metal": (0x2B, 0x32, 0x28),
717 "heliotrope": (0xDF, 0x73, 0xFF),
718 "hemlock": (0x5E, 0x5D, 0x3B),
719 "hemp": (0x90, 0x78, 0x74),
720 "hibiscus": (0xB6, 0x31, 0x6C),
721 "highland": (0x6F, 0x8E, 0x63),
722 "hillary": (0xAC, 0xA5, 0x86),
723 "himalaya": (0x6A, 0x5D, 0x1B),
724 "hint of green": (0xE6, 0xFF, 0xE9),
725 "hint of red": (0xFB, 0xF9, 0xF9),
726 "hint of yellow": (0xFA, 0xFD, 0xE4),
727 "hippie blue": (0x58, 0x9A, 0xAF),
728 "hippie green": (0x53, 0x82, 0x4B),
729 "hippie pink": (0xAE, 0x45, 0x60),
730 "hit gray": (0xA1, 0xAD, 0xB5),
731 "hit pink": (0xFF, 0xAB, 0x81),
732 "hokey pokey": (0xC8, 0xA5, 0x28),
733 "hoki": (0x65, 0x86, 0x9F),
734 "holly": (0x01, 0x1D, 0x13),
735 "hollywood cerise": (0xF4, 0x00, 0xA1),
736 "honey flower": (0x4F, 0x1C, 0x70),
737 "honeydew": (0xF0, 0xFF, 0xF0),
738 "honeysuckle": (0xED, 0xFC, 0x84),
739 "hopbush": (0xD0, 0x6D, 0xA1),
740 "horizon": (0x5A, 0x87, 0xA0),
741 "horses neck": (0x60, 0x49, 0x13),
742 "hot cinnamon": (0xD2, 0x69, 0x1E),
743 "hot pink": (0xFF, 0x69, 0xB4),
744 "hot toddy": (0xB3, 0x80, 0x07),
745 "humming bird": (0xCF, 0xF9, 0xF3),
746 "hunter green": (0x16, 0x1D, 0x10),
747 "hurricane": (0x87, 0x7C, 0x7B),
748 "husk": (0xB7, 0xA4, 0x58),
749 "ice cold": (0xB1, 0xF4, 0xE7),
750 "iceberg": (0xDA, 0xF4, 0xF0),
751 "illusion": (0xF6, 0xA4, 0xC9),
752 "inch worm": (0xB0, 0xE3, 0x13),
753 "indian khaki": (0xC3, 0xB0, 0x91),
754 "indian red": (0xCD, 0x5C, 0x5C),
755 "indian tan": (0x4D, 0x1E, 0x01),
756 "indigo": (0x4F, 0x69, 0xC6),
757 "indochine": (0xC2, 0x6B, 0x03),
758 "international orange": (0xFF, 0x4F, 0x00),
759 "irish coffee": (0x5F, 0x3D, 0x26),
760 "iroko": (0x43, 0x31, 0x20),
761 "iron": (0xD4, 0xD7, 0xD9),
762 "ironside gray": (0x67, 0x66, 0x62),
763 "ironstone": (0x86, 0x48, 0x3C),
764 "island spice": (0xFF, 0xFC, 0xEE),
765 "ivory": (0xFF, 0xFF, 0xF0),
766 "jacaranda": (0x2E, 0x03, 0x29),
767 "jacarta": (0x3A, 0x2A, 0x6A),
768 "jacko bean": (0x2E, 0x19, 0x05),
769 "jacksons purple": (0x20, 0x20, 0x8D),
770 "jade": (0x00, 0xA8, 0x6B),
771 "jaffa": (0xEF, 0x86, 0x3F),
772 "jagged ice": (0xC2, 0xE8, 0xE5),
773 "jagger": (0x35, 0x0E, 0x57),
774 "jaguar": (0x08, 0x01, 0x10),
775 "jambalaya": (0x5B, 0x30, 0x13),
776 "janna": (0xF4, 0xEB, 0xD3),
777 "japanese laurel": (0x0A, 0x69, 0x06),
778 "japanese maple": (0x78, 0x01, 0x09),
779 "japonica": (0xD8, 0x7C, 0x63),
780 "java": (0x1F, 0xC2, 0xC2),
781 "jazzberry jam": (0xA5, 0x0B, 0x5E),
782 "jelly bean": (0x29, 0x7B, 0x9A),
783 "jet stream": (0xB5, 0xD2, 0xCE),
784 "jewel": (0x12, 0x6B, 0x40),
785 "jon": (0x3B, 0x1F, 0x1F),
786 "jonquil": (0xEE, 0xFF, 0x9A),
787 "jordy blue": (0x8A, 0xB9, 0xF1),
788 "judge gray": (0x54, 0x43, 0x33),
789 "jumbo": (0x7C, 0x7B, 0x82),
790 "jungle green": (0x29, 0xAB, 0x87),
791 "jungle mist": (0xB4, 0xCF, 0xD3),
792 "juniper": (0x6D, 0x92, 0x92),
793 "just right": (0xEC, 0xCD, 0xB9),
794 "kabul": (0x5E, 0x48, 0x3E),
795 "kaitoke green": (0x00, 0x46, 0x20),
796 "kangaroo": (0xC6, 0xC8, 0xBD),
797 "karaka": (0x1E, 0x16, 0x09),
798 "karry": (0xFF, 0xEA, 0xD4),
799 "kashmir blue": (0x50, 0x70, 0x96),
800 "kelp": (0x45, 0x49, 0x36),
801 "kenyan copper": (0x7C, 0x1C, 0x05),
802 "keppel": (0x3A, 0xB0, 0x9E),
803 "key lime pie": (0xBF, 0xC9, 0x21),
804 "khaki": (0xF0, 0xE6, 0x8C),
805 "kidnapper": (0xE1, 0xEA, 0xD4),
806 "kilamanjaro": (0x24, 0x0C, 0x02),
807 "killarney": (0x3A, 0x6A, 0x47),
808 "kimberly": (0x73, 0x6C, 0x9F),
809 "kingfisher daisy": (0x3E, 0x04, 0x80),
810 "kiosk.house": (90, 95, 0),
811 "klein blue": (0x00, 0x2F, 0xA7),
812 "kobi": (0xE7, 0x9F, 0xC4),
813 "kokoda": (0x6E, 0x6D, 0x57),
814 "korma": (0x8F, 0x4B, 0x0E),
815 "koromiko": (0xFF, 0xBD, 0x5F),
816 "kournikova": (0xFF, 0xE7, 0x72),
817 "kumera": (0x88, 0x62, 0x21),
818 "la palma": (0x36, 0x87, 0x16),
819 "la rioja": (0xB3, 0xC1, 0x10),
820 "las palmas": (0xC6, 0xE6, 0x10),
821 "laser lemon": (0xFF, 0xFF, 0x66),
822 "laser": (0xC8, 0xB5, 0x68),
823 "laurel": (0x74, 0x93, 0x78),
824 "lavender blush": (0xFF, 0xF0, 0xF5),
825 "lavender gray": (0xBD, 0xBB, 0xD7),
826 "lavender magenta": (0xEE, 0x82, 0xEE),
827 "lavender pink": (0xFB, 0xAE, 0xD2),
828 "lavender purple": (0x96, 0x7B, 0xB6),
829 "lavender rose": (0xFB, 0xA0, 0xE3),
830 "lavender": (0xB5, 0x7E, 0xDC),
831 "lawn green": (0x7C, 0xFC, 0x00),
832 "leather": (0x96, 0x70, 0x59),
833 "lemon chiffon": (0xFF, 0xFA, 0xCD),
834 "lemon ginger": (0xAC, 0x9E, 0x22),
835 "lemon grass": (0x9B, 0x9E, 0x8F),
836 "lemon": (0xFD, 0xE9, 0x10),
837 "light apricot": (0xFD, 0xD5, 0xB1),
838 "light blue": (0xAD, 0xD8, 0xE6),
839 "light coral": (0xF0, 0x80, 0x80),
840 "light cyan": (0xE0, 0xFF, 0xFF),
841 "light goldenrod": (0xFA, 0xFA, 0xD2),
842 "light gray": (0x26, 0x23, 0x35),
843 "light green": (0x90, 0xEE, 0x90),
844 "light orchid": (0xE2, 0x9C, 0xD2),
845 "light pink": (0xDD, 0xB6, 0xC1),
846 "light salmon": (0xDD, 0xA0, 0x7A),
847 "light sea green": (0x20, 0xB2, 0xAA),
848 "light slate gray": (0x77, 0x88, 0x99),
849 "light steel blue": (0xB0, 0xC4, 0xDE),
850 "light wisteria": (0xC9, 0xA0, 0xDC),
851 "light yellow": (0xFF, 0xFF, 0xE0),
852 "lightning yellow": (0xFC, 0xC0, 0x1E),
853 "lilac bush": (0x98, 0x74, 0xD3),
854 "lilac": (0xC8, 0xA2, 0xC8),
855 "lily white": (0xE7, 0xF8, 0xFF),
856 "lily": (0xC8, 0xAA, 0xBF),
857 "lima": (0x76, 0xBD, 0x17),
858 "lime": (0xBF, 0xFF, 0x00),
859 "limeade": (0x6F, 0x9D, 0x02),
860 "limed ash": (0x74, 0x7D, 0x63),
861 "limed oak": (0xAC, 0x8A, 0x56),
862 "limed spruce": (0x39, 0x48, 0x51),
863 "linen": (0xFA, 0xF0, 0xE6),
864 "link water": (0xD9, 0xE4, 0xF5),
865 "lipstick": (0xAB, 0x05, 0x63),
866 "lisbon brown": (0x42, 0x39, 0x21),
867 "livid brown": (0x4D, 0x28, 0x2E),
868 "loafer": (0xEE, 0xF4, 0xDE),
869 "loblolly": (0xBD, 0xC9, 0xCE),
870 "lochinvar": (0x2C, 0x8C, 0x84),
871 "lochmara": (0x00, 0x7E, 0xC7),
872 "locust": (0xA8, 0xAF, 0x8E),
873 "log cabin": (0x24, 0x2A, 0x1D),
874 "logan": (0xAA, 0xA9, 0xCD),
875 "lola": (0xDF, 0xCF, 0xDB),
876 "london hue": (0xBE, 0xA6, 0xC3),
877 "lonestar": (0x6D, 0x01, 0x01),
878 "lotus": (0x86, 0x3C, 0x3C),
879 "loulou": (0x46, 0x0B, 0x41),
880 "lucky point": (0x1A, 0x1A, 0x68),
881 "lucky": (0xAF, 0x9F, 0x1C),
882 "lunar green": (0x3C, 0x49, 0x3A),
883 "luxor gold": (0xA7, 0x88, 0x2C),
884 "lynch": (0x69, 0x7E, 0x9A),
885 "mabel": (0xD9, 0xF7, 0xFF),
886 "macaroni and cheese": (0xFF, 0xB9, 0x7B),
887 "madang": (0xB7, 0xF0, 0xBE),
888 "madison": (0x09, 0x25, 0x5D),
889 "madras": (0x3F, 0x30, 0x02),
890 "magenta": (0xFF, 0x00, 0xFF),
891 "magic mint": (0xAA, 0xF0, 0xD1),
892 "magnolia": (0xF8, 0xF4, 0xFF),
893 "mahogany": (0x4E, 0x06, 0x06),
894 "mai tai": (0xB0, 0x66, 0x08),
895 "maize": (0xF5, 0xD5, 0xA0),
896 "makara": (0x89, 0x7D, 0x6D),
897 "mako": (0x44, 0x49, 0x54),
898 "malachite": (0x0B, 0xDA, 0x51),
899 "malibu": (0x7D, 0xC8, 0xF7),
900 "mallard": (0x23, 0x34, 0x18),
901 "malta": (0xBD, 0xB2, 0xA1),
902 "mamba": (0x8E, 0x81, 0x90),
903 "manatee": (0x8D, 0x90, 0xA1),
904 "mandalay": (0xAD, 0x78, 0x1B),
905 "mandy": (0xE2, 0x54, 0x65),
906 "mandys pink": (0xF2, 0xC3, 0xB2),
907 "mango tango": (0xE7, 0x72, 0x00),
908 "manhattan": (0xF5, 0xC9, 0x99),
909 "mantis": (0x74, 0xC3, 0x65),
910 "mantle": (0x8B, 0x9C, 0x90),
911 "manz": (0xEE, 0xEF, 0x78),
912 "mardi gras": (0x35, 0x00, 0x36),
913 "marigold yellow": (0xFB, 0xE8, 0x70),
914 "marigold": (0xB9, 0x8D, 0x28),
915 "mariner": (0x28, 0x6A, 0xCD),
916 "maroon flush": (0xC3, 0x21, 0x48),
917 "maroon oak": (0x52, 0x0C, 0x17),
918 "maroon": (0x80, 0x00, 0x00),
919 "marshland": (0x0B, 0x0F, 0x08),
920 "martini": (0xAF, 0xA0, 0x9E),
921 "martinique": (0x36, 0x30, 0x50),
922 "marzipan": (0xF8, 0xDB, 0x9D),
923 "masala": (0x40, 0x3B, 0x38),
924 "matisse": (0x1B, 0x65, 0x9D),
925 "matrix": (0xB0, 0x5D, 0x54),
926 "matterhorn": (0x4E, 0x3B, 0x41),
927 "mauve": (0xE0, 0xB0, 0xFF),
928 "mauvelous": (0xF0, 0x91, 0xA9),
929 "maverick": (0xD8, 0xC2, 0xD5),
930 "medium aquamarine": (0x66, 0xCD, 0xAA),
931 "medium blue": (0x00, 0x00, 0xCD),
932 "medium carmine": (0xAF, 0x40, 0x35),
933 "medium orchid": (0xBA, 0x55, 0xD3),
934 "medium purple": (0x93, 0x70, 0xDB),
935 "medium red violet": (0xBB, 0x33, 0x85),
936 "medium sea green": (0x3C, 0xB3, 0x71),
937 "medium slate blue": (0x7B, 0x68, 0xEE),
938 "medium spring green": (0x00, 0xFA, 0x9A),
939 "medium turquoise": (0x48, 0xD1, 0xCC),
940 "medium violet red": (0xC7, 0x15, 0x85),
941 "meerkat.cabin": (95, 0x00, 95),
942 "melanie": (0xE4, 0xC2, 0xD5),
943 "melanzane": (0x30, 0x05, 0x29),
944 "melon": (0xFE, 0xBA, 0xAD),
945 "melrose": (0xC7, 0xC1, 0xFF),
946 "mercury": (0xE5, 0xE5, 0xE5),
947 "merino": (0xF6, 0xF0, 0xE6),
948 "merlin": (0x41, 0x3C, 0x37),
949 "merlot": (0x83, 0x19, 0x23),
950 "metallic bronze": (0x49, 0x37, 0x1B),
951 "metallic copper": (0x71, 0x29, 0x1D),
952 "meteor": (0xD0, 0x7D, 0x12),
953 "meteorite": (0x3C, 0x1F, 0x76),
954 "mexican red": (0xA7, 0x25, 0x25),
955 "mid gray": (0x5F, 0x5F, 0x6E),
956 "midnight blue": (0x00, 0x33, 0x66),
957 "midnight moss": (0x04, 0x10, 0x04),
958 "midnight": (0x01, 0x16, 0x35),
959 "mikado": (0x2D, 0x25, 0x10),
960 "milan": (0xFA, 0xFF, 0xA4),
961 "milano red": (0xB8, 0x11, 0x04),
962 "milk punch": (0xFF, 0xF6, 0xD4),
963 "millbrook": (0x59, 0x44, 0x33),
964 "mimosa": (0xF8, 0xFD, 0xD3),
965 "mindaro": (0xE3, 0xF9, 0x88),
966 "mine shaft": (0x32, 0x32, 0x32),
967 "mineral green": (0x3F, 0x5D, 0x53),
968 "ming": (0x36, 0x74, 0x7D),
969 "minsk": (0x3F, 0x30, 0x7F),
970 "mint cream": (0xF5, 0xFF, 0xF1),
971 "mint green": (0x98, 0xFF, 0x98),
972 "mint julep": (0xF1, 0xEE, 0xC1),
973 "mint tulip": (0xC4, 0xF4, 0xEB),
974 "mirage": (0x16, 0x19, 0x28),
975 "mischka": (0xD1, 0xD2, 0xDD),
976 "mist gray": (0xC4, 0xC4, 0xBC),
977 "misty rose": (0xFF, 0xE4, 0xE1),
978 "mobster": (0x7F, 0x75, 0x89),
979 "moccaccino": (0x6E, 0x1D, 0x14),
980 "moccasin": (0xFF, 0xE4, 0xB5),
981 "mocha": (0x78, 0x2D, 0x19),
982 "mojo": (0xC0, 0x47, 0x37),
983 "mona lisa": (0xFF, 0xA1, 0x94),
984 "monarch": (0x8B, 0x07, 0x23),
985 "mondo": (0x4A, 0x3C, 0x30),
986 "mongoose": (0xB5, 0xA2, 0x7F),
987 "monsoon": (0x8A, 0x83, 0x89),
988 "monte carlo": (0x83, 0xD0, 0xC6),
989 "monza": (0xC7, 0x03, 0x1E),
990 "moody blue": (0x7F, 0x76, 0xD3),
991 "moon glow": (0xFC, 0xFE, 0xDA),
992 "moon mist": (0xDC, 0xDD, 0xCC),
993 "moon raker": (0xD6, 0xCE, 0xF6),
994 "morning glory": (0x9E, 0xDE, 0xE0),
995 "morocco brown": (0x44, 0x1D, 0x00),
996 "mortar": (0x50, 0x43, 0x51),
997 "mosque": (0x03, 0x6A, 0x6E),
998 "moss green": (0xAD, 0xDF, 0xAD),
999 "mountain meadow": (0x1A, 0xB3, 0x85),
1000 "mountain mist": (0x95, 0x93, 0x96),
1001 "mountbatten pink": (0x99, 0x7A, 0x8D),
1002 "muddy waters": (0xB7, 0x8E, 0x5C),
1003 "muesli": (0xAA, 0x8B, 0x5B),
1004 "mulberry wood": (0x5C, 0x05, 0x36),
1005 "mulberry": (0xC5, 0x4B, 0x8C),
1006 "mule fawn": (0x8C, 0x47, 0x2F),
1007 "mulled wine": (0x4E, 0x45, 0x62),
1008 "mustard": (0xFF, 0xDB, 0x58),
1009 "my pink": (0xD6, 0x91, 0x88),
1010 "my sin": (0xFF, 0xB3, 0x1F),
1011 "mystic": (0xE2, 0xEB, 0xED),
1012 "nandor": (0x4B, 0x5D, 0x52),
1013 "napa": (0xAC, 0xA4, 0x94),
1014 "narvik": (0xED, 0xF9, 0xF1),
1015 "natural gray": (0x8B, 0x86, 0x80),
1016 "navajo white": (0xFF, 0xDE, 0xAD),
1017 "navy blue": (0x00, 0x00, 0x80),
1018 "navy": (0x00, 0x00, 0x80),
1019 "nebula": (0xCB, 0xDB, 0xD6),
1020 "negroni": (0xFF, 0xE2, 0xC5),
1021 "neon carrot": (0xFF, 0x99, 0x33),
1022 "nepal": (0x8E, 0xAB, 0xC1),
1023 "neptune": (0x7C, 0xB7, 0xBB),
1024 "nero": (0x14, 0x06, 0x00),
1025 "nevada": (0x64, 0x6E, 0x75),
1026 "new orleans": (0xF3, 0xD6, 0x9D),
1027 "new york pink": (0xD7, 0x83, 0x7F),
1028 "niagara": (0x06, 0xA1, 0x89),
1029 "night rider": (0x1F, 0x12, 0x0F),
1030 "night shadz": (0xAA, 0x37, 0x5A),
1031 "nile blue": (0x19, 0x37, 0x51),
1032 "nobel": (0xB7, 0xB1, 0xB1),
1033 "nomad": (0xBA, 0xB1, 0xA2),
1034 "norway": (0xA8, 0xBD, 0x9F),
1035 "nugget": (0xC5, 0x99, 0x22),
1036 "nutmeg wood finish": (0x68, 0x36, 0x00),
1037 "nutmeg": (0x81, 0x42, 0x2C),
1038 "oasis": (0xFE, 0xEF, 0xCE),
1039 "observatory": (0x02, 0x86, 0x6F),
1040 "ocean green": (0x41, 0xAA, 0x78),
1041 "ochre": (0xCC, 0x77, 0x22),
1042 "off green": (0xE6, 0xF8, 0xF3),
1043 "off yellow": (0xFE, 0xF9, 0xE3),
1044 "oil": (0x28, 0x1E, 0x15),
1045 "old brick": (0x90, 0x1E, 0x1E),
1046 "old copper": (0x72, 0x4A, 0x2F),
1047 "old gold": (0xCF, 0xB5, 0x3B),
1048 "old lace": (0xFD, 0xF5, 0xE6),
1049 "old lavender": (0x79, 0x68, 0x78),
1050 "old rose": (0xC0, 0x80, 0x81),
1051 "olive drab": (0x6B, 0x8E, 0x23),
1052 "olive green": (0xB5, 0xB3, 0x5C),
1053 "olive haze": (0x8B, 0x84, 0x70),
1054 "olive": (0x80, 0x80, 0x00),
1055 "olivetone": (0x71, 0x6E, 0x10),
1056 "olivine": (0x9A, 0xB9, 0x73),
1057 "onahau": (0xCD, 0xF4, 0xFF),
1058 "onion": (0x2F, 0x27, 0x0E),
1059 "opal": (0xA9, 0xC6, 0xC2),
1060 "opium": (0x8E, 0x6F, 0x70),
1061 "oracle": (0x37, 0x74, 0x75),
1062 "orange peel": (0xFF, 0xA0, 0x00),
1063 "orange red": (0xFF, 0x45, 0x00),
1064 "orange roughy": (0xC4, 0x57, 0x19),
1065 "orange white": (0xFE, 0xFC, 0xED),
1066 "orange": (0xFF, 0x68, 0x1F),
1067 "orchid white": (0xFF, 0xFD, 0xF3),
1068 "orchid": (0xDA, 0x70, 0xD6),
1069 "oregon": (0x9B, 0x47, 0x03),
1070 "orient": (0x01, 0x5E, 0x85),
1071 "oriental pink": (0xC6, 0x91, 0x91),
1072 "orinoco": (0xF3, 0xFB, 0xD4),
1073 "oslo gray": (0x87, 0x8D, 0x91),
1074 "ottoman": (0xE9, 0xF8, 0xED),
1075 "outer space": (0x2D, 0x38, 0x3A),
1076 "outrageous orange": (0xFF, 0x60, 0x37),
1077 "oxford blue": (0x38, 0x45, 0x55),
1078 "oxley": (0x77, 0x9E, 0x86),
1079 "oyster bay": (0xDA, 0xFA, 0xFF),
1080 "oyster pink": (0xE9, 0xCE, 0xCD),
1081 "paarl": (0xA6, 0x55, 0x29),
1082 "pablo": (0x77, 0x6F, 0x61),
1083 "pacific blue": (0x00, 0x9D, 0xC4),
1084 "pacifika": (0x77, 0x81, 0x20),
1085 "paco": (0x41, 0x1F, 0x10),
1086 "padua": (0xAD, 0xE6, 0xC4),
1087 "pale canary": (0xFF, 0xFF, 0x99),
1088 "pale goldenrod": (0xEE, 0xE8, 0xAA),
1089 "pale green": (0x98, 0xFB, 0x98),
1090 "pale leaf": (0xC0, 0xD3, 0xB9),
1091 "pale oyster": (0x98, 0x8D, 0x77),
1092 "pale prim": (0xFD, 0xFE, 0xB8),
1093 "pale rose": (0xFF, 0xE1, 0xF2),
1094 "pale sky": (0x6E, 0x77, 0x83),
1095 "pale slate": (0xC3, 0xBF, 0xC1),
1096 "pale turquoise": (0xAF, 0xEE, 0xEE),
1097 "pale violet red": (0xDB, 0x70, 0x93),
1098 "palm green": (0x09, 0x23, 0x0F),
1099 "palm leaf": (0x19, 0x33, 0x0E),
1100 "pampas": (0xF4, 0xF2, 0xEE),
1101 "panache": (0xEA, 0xF6, 0xEE),
1102 "pancho": (0xED, 0xCD, 0xAB),
1103 "papaya whip": (0xFF, 0xEF, 0xD5),
1104 "paprika": (0x8D, 0x02, 0x26),
1105 "paradiso": (0x31, 0x7D, 0x82),
1106 "parchment": (0xF1, 0xE9, 0xD2),
1107 "paris daisy": (0xFF, 0xF4, 0x6E),
1108 "paris m": (0x26, 0x05, 0x6A),
1109 "paris white": (0xCA, 0xDC, 0xD4),
1110 "parsley": (0x13, 0x4F, 0x19),
1111 "pastel green": (0x77, 0xDD, 0x77),
1112 "pastel pink": (0xFF, 0xD1, 0xDC),
1113 "patina": (0x63, 0x9A, 0x8F),
1114 "pattens blue": (0xDE, 0xF5, 0xFF),
1115 "paua": (0x26, 0x03, 0x68),
1116 "pavlova": (0xD7, 0xC4, 0x98),
1117 "peach cream": (0xFF, 0xF0, 0xDB),
1118 "peach orange": (0xFF, 0xCC, 0x99),
1119 "peach puff": (0xFF, 0xDA, 0xB9),
1120 "peach schnapps": (0xFF, 0xDC, 0xD6),
1121 "peach yellow": (0xFA, 0xDF, 0xAD),
1122 "peach": (0xFF, 0xE5, 0xB4),
1123 "peanut": (0x78, 0x2F, 0x16),
1124 "pear": (0xD1, 0xE2, 0x31),
1125 "pearl bush": (0xE8, 0xE0, 0xD5),
1126 "pearl lusta": (0xFC, 0xF4, 0xDC),
1127 "peat": (0x71, 0x6B, 0x56),
1128 "pelorous": (0x3E, 0xAB, 0xBF),
1129 "peppermint": (0xE3, 0xF5, 0xE1),
1130 "perano": (0xA9, 0xBE, 0xF2),
1131 "perfume": (0xD0, 0xBE, 0xF8),
1132 "periglacial blue": (0xE1, 0xE6, 0xD6),
1133 "periwinkle gray": (0xC3, 0xCD, 0xE6),
1134 "periwinkle": (0xCC, 0xCC, 0xFF),
1135 "persian blue": (0x1C, 0x39, 0xBB),
1136 "persian green": (0x00, 0xA6, 0x93),
1137 "persian indigo": (0x32, 0x12, 0x7A),
1138 "persian pink": (0xF7, 0x7F, 0xBE),
1139 "persian plum": (0x70, 0x1C, 0x1C),
1140 "persian red": (0xCC, 0x33, 0x33),
1141 "persian rose": (0xFE, 0x28, 0xA2),
1142 "persimmon": (0xFF, 0x6B, 0x53),
1143 "peru tan": (0x7F, 0x3A, 0x02),
1144 "peru": (0xCD, 0x85, 0x3F),
1145 "pesto": (0x7C, 0x76, 0x31),
1146 "petite orchid": (0xDB, 0x96, 0x90),
1147 "pewter": (0x96, 0xA8, 0xA1),
1148 "pharlap": (0xA3, 0x80, 0x7B),
1149 "picasso": (0xFF, 0xF3, 0x9D),
1150 "pickled bean": (0x6E, 0x48, 0x26),
1151 "pickled bluewood": (0x31, 0x44, 0x59),
1152 "picton blue": (0x45, 0xB1, 0xE8),
1153 "pig pink": (0xFD, 0xD7, 0xE4),
1154 "pigeon post": (0xAF, 0xBD, 0xD9),
1155 "pigment indigo": (0x4B, 0x00, 0x82),
1156 "pine cone": (0x6D, 0x5E, 0x54),
1157 "pine glade": (0xC7, 0xCD, 0x90),
1158 "pine green": (0x01, 0x79, 0x6F),
1159 "pine tree": (0x17, 0x1F, 0x04),
1160 "pink flamingo": (0xFF, 0x66, 0xFF),
1161 "pink flare": (0xE1, 0xC0, 0xC8),
1162 "pink lace": (0xFF, 0xDD, 0xF4),
1163 "pink lady": (0xFF, 0xF1, 0xD8),
1164 "pink salmon": (0xFF, 0x91, 0xA4),
1165 "pink swan": (0xBE, 0xB5, 0xB7),
1166 "pink": (0xFF, 0xC0, 0xCB),
1167 "piper": (0xC9, 0x63, 0x23),
1168 "pipi": (0xFE, 0xF4, 0xCC),
1169 "pippin": (0xFF, 0xE1, 0xDF),
1170 "pirate gold": (0xBA, 0x7F, 0x03),
1171 "pistachio": (0x9D, 0xC2, 0x09),
1172 "pixie green": (0xC0, 0xD8, 0xB6),
1173 "pizazz": (0xFF, 0x90, 0x00),
1174 "pizza": (0xC9, 0x94, 0x15),
1175 "plantation": (0x27, 0x50, 0x4B),
1176 "plum": (0x84, 0x31, 0x79),
1177 "pohutukawa": (0x8F, 0x02, 0x1C),
1178 "polar": (0xE5, 0xF9, 0xF6),
1179 "polo blue": (0x8D, 0xA8, 0xCC),
1180 "pomegranate": (0xF3, 0x47, 0x23),
1181 "pompadour": (0x66, 0x00, 0x45),
1182 "porcelain": (0xEF, 0xF2, 0xF3),
1183 "porsche": (0xEA, 0xAE, 0x69),
1184 "port gore": (0x25, 0x1F, 0x4F),
1185 "portafino": (0xFF, 0xFF, 0xB4),
1186 "portage": (0x8B, 0x9F, 0xEE),
1187 "portica": (0xF9, 0xE6, 0x63),
1188 "pot pourri": (0xF5, 0xE7, 0xE2),
1189 "potters clay": (0x8C, 0x57, 0x38),
1190 "powder ash": (0xBC, 0xC9, 0xC2),
1191 "powder blue": (0xB0, 0xE0, 0xE6),
1192 "prairie sand": (0x9A, 0x38, 0x20),
1193 "prelude": (0xD0, 0xC0, 0xE5),
1194 "prim": (0xF0, 0xE2, 0xEC),
1195 "primrose": (0xED, 0xEA, 0x99),
1196 "provincial pink": (0xFE, 0xF5, 0xF1),
1197 "prussian blue": (0x00, 0x31, 0x53),
1198 "puce": (0xCC, 0x88, 0x99),
1199 "pueblo": (0x7D, 0x2C, 0x14),
1200 "puerto rico": (0x3F, 0xC1, 0xAA),
1201 "pumice": (0xC2, 0xCA, 0xC4),
1202 "pumpkin skin": (0xB1, 0x61, 0x0B),
1203 "pumpkin": (0xFF, 0x75, 0x18),
1204 "punch": (0xDC, 0x43, 0x33),
1205 "punga": (0x4D, 0x3D, 0x14),
1206 "purple heart": (0x65, 0x2D, 0xC1),
1207 "purple mountain's majesty": (0x96, 0x78, 0xB6),
1208 "purple pizzazz": (0xFF, 0x00, 0xCC),
1209 "purple": (0x66, 0x00, 0x99),
1210 "putty": (0xE7, 0xCD, 0x8C),
1211 "quarter pearl lusta": (0xFF, 0xFD, 0xF4),
1212 "quarter spanish white": (0xF7, 0xF2, 0xE1),
1213 "quicksand": (0xBD, 0x97, 0x8E),
1214 "quill gray": (0xD6, 0xD6, 0xD1),
1215 "quincy": (0x62, 0x3F, 0x2D),
1216 "racing green": (0x0C, 0x19, 0x11),
1217 "radical red": (0xFF, 0x35, 0x5E),
1218 "raffia": (0xEA, 0xDA, 0xB8),
1219 "rainee": (0xB9, 0xC8, 0xAC),
1220 "rajah": (0xF7, 0xB6, 0x68),
1221 "rangitoto": (0x2E, 0x32, 0x22),
1222 "rangoon green": (0x1C, 0x1E, 0x13),
1223 "raven": (0x72, 0x7B, 0x89),
1224 "raw sienna": (0xD2, 0x7D, 0x46),
1225 "raw umber": (0x73, 0x4A, 0x12),
1226 "razzle dazzle rose": (0xFF, 0x33, 0xCC),
1227 "razzmatazz": (0xE3, 0x0B, 0x5C),
1228 "rebecca purple": (0x66, 0x33, 0x99),
1229 "rebel": (0x3C, 0x12, 0x06),
1230 "red beech": (0x7B, 0x38, 0x01),
1231 "red berry": (0x8E, 0x00, 0x00),
1232 "red damask": (0xDA, 0x6A, 0x41),
1233 "red devil": (0x86, 0x01, 0x11),
1234 "red orange": (0xFF, 0x3F, 0x34),
1235 "red oxide": (0x6E, 0x09, 0x02),
1236 "red ribbon": (0xED, 0x0A, 0x3F),
1237 "red robin": (0x80, 0x34, 0x1F),
1238 "red stage": (0xD0, 0x5F, 0x04),
1239 "red violet": (0xC7, 0x15, 0x85),
1240 "red": (0xFF, 0x00, 0x00),
1241 "redwood": (0x5D, 0x1E, 0x0F),
1242 "reef gold": (0x9F, 0x82, 0x1C),
1243 "reef": (0xC9, 0xFF, 0xA2),
1244 "regal blue": (0x01, 0x3F, 0x6A),
1245 "regent gray": (0x86, 0x94, 0x9F),
1246 "regent st blue": (0xAA, 0xD6, 0xE6),
1247 "remy": (0xFE, 0xEB, 0xF3),
1248 "reno sand": (0xA8, 0x65, 0x15),
1249 "resolution blue": (0x00, 0x23, 0x87),
1250 "revolver": (0x2C, 0x16, 0x32),
1251 "rhino": (0x2E, 0x3F, 0x62),
1252 "rice cake": (0xFF, 0xFE, 0xF0),
1253 "rice flower": (0xEE, 0xFF, 0xE2),
1254 "rich gold": (0xA8, 0x53, 0x07),
1255 "rio grande": (0xBB, 0xD0, 0x09),
1256 "ripe lemon": (0xF4, 0xD8, 0x1C),
1257 "ripe plum": (0x41, 0x00, 0x56),
1258 "riptide": (0x8B, 0xE6, 0xD8),
1259 "river bed": (0x43, 0x4C, 0x59),
1260 "rob roy": (0xEA, 0xC6, 0x74),
1261 "robin's egg blue": (0x00, 0xCC, 0xCC),
1262 "rock blue": (0x9E, 0xB1, 0xCD),
1263 "rock spray": (0xBA, 0x45, 0x0C),
1264 "rock": (0x4D, 0x38, 0x33),
1265 "rodeo dust": (0xC9, 0xB2, 0x9B),
1266 "rolling stone": (0x74, 0x7D, 0x83),
1267 "roman coffee": (0x79, 0x5D, 0x4C),
1268 "roman": (0xDE, 0x63, 0x60),
1269 "romance": (0xFF, 0xFE, 0xFD),
1270 "romantic": (0xFF, 0xD2, 0xB7),
1271 "ronchi": (0xEC, 0xC5, 0x4E),
1272 "roof terracotta": (0xA6, 0x2F, 0x20),
1273 "rope": (0x8E, 0x4D, 0x1E),
1274 "rose bud cherry": (0x80, 0x0B, 0x47),
1275 "rose bud": (0xFB, 0xB2, 0xA3),
1276 "rose fog": (0xE7, 0xBC, 0xB4),
1277 "rose of sharon": (0xBF, 0x55, 0x00),
1278 "rose white": (0xFF, 0xF6, 0xF5),
1279 "rose": (0xFF, 0x00, 0x7F),
1280 "rosewood": (0x65, 0x00, 0x0B),
1281 "rosy blue": (0xBC, 0x8F, 0x8F),
1282 "roti": (0xC6, 0xA8, 0x4B),
1283 "rouge": (0xA2, 0x3B, 0x6C),
1284 "royal blue": (0x41, 0x69, 0xE1),
1285 "royal heath": (0xAB, 0x34, 0x72),
1286 "royal purple": (0x6B, 0x3F, 0xA0),
1287 "rpi": (208, 95, 0),
1288 "rum swizzle": (0xF9, 0xF8, 0xE4),
1289 "rum": (0x79, 0x69, 0x89),
1290 "russet": (0x80, 0x46, 0x1B),
1291 "russett": (0x75, 0x5A, 0x57),
1292 "rust": (0xB7, 0x41, 0x0E),
1293 "rustic red": (0x48, 0x04, 0x04),
1294 "rusty nail": (0x86, 0x56, 0x0A),
1295 "saddle brown": (0x58, 0x34, 0x01),
1296 "saddle": (0x4C, 0x30, 0x24),
1297 "saffron mango": (0xF9, 0xBF, 0x58),
1298 "saffron": (0xF4, 0xC4, 0x30),
1299 "sage": (0x9E, 0xA5, 0x87),
1300 "sahara sand": (0xF1, 0xE7, 0x88),
1301 "sahara": (0xB7, 0xA2, 0x14),
1302 "sail": (0xB8, 0xE0, 0xF9),
1303 "salem": (0x09, 0x7F, 0x4B),
1304 "salmon": (0xFF, 0x8C, 0x69),
1305 "salomie": (0xFE, 0xDB, 0x8D),
1306 "salt box": (0x68, 0x5E, 0x6E),
1307 "saltpan": (0xF1, 0xF7, 0xF2),
1308 "sambuca": (0x3A, 0x20, 0x10),
1309 "san felix": (0x0B, 0x62, 0x07),
1310 "san juan": (0x30, 0x4B, 0x6A),
1311 "san marino": (0x45, 0x6C, 0xAC),
1312 "sand dune": (0x82, 0x6F, 0x65),
1313 "sandal": (0xAA, 0x8D, 0x6F),
1314 "sandrift": (0xAB, 0x91, 0x7A),
1315 "sandstone": (0x79, 0x6D, 0x62),
1316 "sandwisp": (0xF5, 0xE7, 0xA2),
1317 "sandy beach": (0xFF, 0xEA, 0xC8),
1318 "sandy brown": (0xF4, 0xA4, 0x60),
1319 "sangria": (0x92, 0x00, 0x0A),
1320 "sanguine brown": (0x8D, 0x3D, 0x38),
1321 "santa fe": (0xB1, 0x6D, 0x52),
1322 "santas gray": (0x9F, 0xA0, 0xB1),
1323 "sapling": (0xDE, 0xD4, 0xA4),
1324 "sapphire": (0x2F, 0x51, 0x9E),
1325 "saratoga": (0x55, 0x5B, 0x10),
1326 "satin linen": (0xE6, 0xE4, 0xD4),
1327 "sauvignon": (0xFF, 0xF5, 0xF3),
1328 "sazerac": (0xFF, 0xF4, 0xE0),
1329 "scampi": (0x67, 0x5F, 0xA6),
1330 "scandal": (0xCF, 0xFA, 0xF4),
1331 "scarlet gum": (0x43, 0x15, 0x60),
1332 "scarlet": (0xFF, 0x24, 0x00),
1333 "scarlett": (0x95, 0x00, 0x15),
1334 "scarpa flow": (0x58, 0x55, 0x62),
1335 "schist": (0xA9, 0xB4, 0x97),
1336 "school bus yellow": (0xFF, 0xD8, 0x00),
1337 "schooner": (0x8B, 0x84, 0x7E),
1338 "science blue": (0x00, 0x66, 0xCC),
1339 "scooter": (0x2E, 0xBF, 0xD4),
1340 "scorpion": (0x69, 0x5F, 0x62),
1341 "scotch mist": (0xFF, 0xFB, 0xDC),
1342 "screamin' green": (0x66, 0xFF, 0x66),
1343 "sea buckthorn": (0xFB, 0xA1, 0x29),
1344 "sea green": (0x2E, 0x8B, 0x57),
1345 "sea mist": (0xC5, 0xDB, 0xCA),
1346 "sea nymph": (0x78, 0xA3, 0x9C),
1347 "sea pink": (0xED, 0x98, 0x9E),
1348 "seagull": (0x80, 0xCC, 0xEA),
1349 "seance": (0x73, 0x1E, 0x8F),
1350 "seashell peach": (0xFF, 0xF5, 0xEE),
1351 "seashell": (0xF1, 0xF1, 0xF1),
1352 "seaweed": (0x1B, 0x2F, 0x11),
1353 "selago": (0xF0, 0xEE, 0xFD),
1354 "selective yellow": (0xFF, 0xBA, 0x00),
1355 "sepia black": (0x2B, 0x02, 0x02),
1356 "sepia skin": (0x9E, 0x5B, 0x40),
1357 "sepia": (0x70, 0x42, 0x14),
1358 "serenade": (0xFF, 0xF4, 0xE8),
1359 "shadow green": (0x9A, 0xC2, 0xB8),
1360 "shadow": (0x83, 0x70, 0x50),
1361 "shady lady": (0xAA, 0xA5, 0xA9),
1362 "shakespeare": (0x4E, 0xAB, 0xD1),
1363 "shalimar": (0xFB, 0xFF, 0xBA),
1364 "shamrock": (0x33, 0xCC, 0x99),
1365 "shark": (0x25, 0x27, 0x2C),
1366 "sherpa blue": (0x00, 0x49, 0x50),
1367 "sherwood green": (0x02, 0x40, 0x2C),
1368 "shilo": (0xE8, 0xB9, 0xB3),
1369 "shingle fawn": (0x6B, 0x4E, 0x31),
1370 "ship cove": (0x78, 0x8B, 0xBA),
1371 "ship gray": (0x3E, 0x3A, 0x44),
1372 "shiraz": (0xB2, 0x09, 0x31),
1373 "shocking pink": (0xFC, 0x0F, 0xC0),
1374 "shocking": (0xE2, 0x92, 0xC0),
1375 "shuttle gray": (0x5F, 0x66, 0x72),
1376 "siam": (0x64, 0x6A, 0x54),
1377 "sidecar": (0xF3, 0xE7, 0xBB),
1378 "sienna": (0xA0, 0x52, 0x2D),
1379 "silk": (0xBD, 0xB1, 0xA8),
1380 "silver chalice": (0xAC, 0xAC, 0xAC),
1381 "silver rust": (0xC9, 0xC0, 0xBB),
1382 "silver sand": (0xBF, 0xC1, 0xC2),
1383 "silver tree": (0x66, 0xB5, 0x8F),
1384 "silver": (0xC0, 0xC0, 0xC0),
1385 "sinbad": (0x9F, 0xD7, 0xD3),
1386 "siren": (0x7A, 0x01, 0x3A),
1387 "sirocco": (0x71, 0x80, 0x80),
1388 "sisal": (0xD3, 0xCB, 0xBA),
1389 "skeptic": (0xCA, 0xE6, 0xDA),
1390 "sky blue": (0x76, 0xD7, 0xEA),
1391 "slate blue": (0x6A, 0x5A, 0xCD),
1392 "slate gray": (0x70, 0x80, 0x90),
1393 "smalt blue": (0x51, 0x80, 0x8F),
1394 "smalt": (0x00, 0x33, 0x99),
1395 "smoky": (0x60, 0x5B, 0x73),
1396 "snow drift": (0xF7, 0xFA, 0xF7),
1397 "snow flurry": (0xE4, 0xFF, 0xD1),
1398 "snow": (0xFF, 0xFA, 0xFA),
1399 "snowy mint": (0xD6, 0xFF, 0xDB),
1400 "snuff": (0xE2, 0xD8, 0xED),
1401 "soapstone": (0xFF, 0xFB, 0xF9),
1402 "soft amber": (0xD1, 0xC6, 0xB4),
1403 "soft peach": (0xF5, 0xED, 0xEF),
1404 "solid pink": (0x89, 0x38, 0x43),
1405 "solitaire": (0xFE, 0xF8, 0xE2),
1406 "solitude": (0xEA, 0xF6, 0xFF),
1407 "sorbus": (0xFD, 0x7C, 0x07),
1408 "sorrell brown": (0xCE, 0xB9, 0x8F),
1409 "soya bean": (0x6A, 0x60, 0x51),
1410 "spanish green": (0x81, 0x98, 0x85),
1411 "spectra": (0x2F, 0x5A, 0x57),
1412 "spice": (0x6A, 0x44, 0x2E),
1413 "spicy mix": (0x88, 0x53, 0x42),
1414 "spicy mustard": (0x74, 0x64, 0x0D),
1415 "spicy pink": (0x81, 0x6E, 0x71),
1416 "spindle": (0xB6, 0xD1, 0xEA),
1417 "spray": (0x79, 0xDE, 0xEC),
1418 "spring green": (0x00, 0xFF, 0x7F),
1419 "spring leaves": (0x57, 0x83, 0x63),
1420 "spring rain": (0xAC, 0xCB, 0xB1),
1421 "spring sun": (0xF6, 0xFF, 0xDC),
1422 "spring wood": (0xF8, 0xF6, 0xF1),
1423 "sprout": (0xC1, 0xD7, 0xB0),
1424 "spun pearl": (0xAA, 0xAB, 0xB7),
1425 "squirrel": (0x8F, 0x81, 0x76),
1426 "st tropaz": (0x2D, 0x56, 0x9B),
1427 "stack": (0x8A, 0x8F, 0x8A),
1428 "star dust": (0x9F, 0x9F, 0x9C),
1429 "stark white": (0xE5, 0xD7, 0xBD),
1430 "starship": (0xEC, 0xF2, 0x45),
1431 "steel blue": (0x46, 0x82, 0xB4),
1432 "steel gray": (0x26, 0x23, 0x35),
1433 "stiletto": (0x9C, 0x33, 0x36),
1434 "stonewall": (0x92, 0x85, 0x73),
1435 "storm dust": (0x64, 0x64, 0x63),
1436 "storm gray": (0x71, 0x74, 0x86),
1437 "stratos": (0x00, 0x07, 0x41),
1438 "straw": (0xD4, 0xBF, 0x8D),
1439 "strikemaster": (0x95, 0x63, 0x87),
1440 "stromboli": (0x32, 0x5D, 0x52),
1441 "studio": (0x71, 0x4A, 0xB2),
1442 "submarine": (0xBA, 0xC7, 0xC9),
1443 "sugar cane": (0xF9, 0xFF, 0xF6),
1444 "sulu": (0xC1, 0xF0, 0x7C),
1445 "summer green": (0x96, 0xBB, 0xAB),
1446 "sun": (0xFB, 0xAC, 0x13),
1447 "sundance": (0xC9, 0xB3, 0x5B),
1448 "sundown": (0xFF, 0xB1, 0xB3),
1449 "sunflower": (0xE4, 0xD4, 0x22),
1450 "sunglo": (0xE1, 0x68, 0x65),
1451 "sunglow": (0xFF, 0xCC, 0x33),
1452 "sunset orange": (0xFE, 0x4C, 0x40),
1453 "sunshade": (0xFF, 0x9E, 0x2C),
1454 "supernova": (0xFF, 0xC9, 0x01),
1455 "surf crest": (0xCF, 0xE5, 0xD2),
1456 "surf": (0xBB, 0xD7, 0xC1),
1457 "surfie green": (0x0C, 0x7A, 0x79),
1458 "sushi": (0x87, 0xAB, 0x39),
1459 "suva gray": (0x88, 0x83, 0x87),
1460 "swamp green": (0xAC, 0xB7, 0x8E),
1461 "swamp": (0x00, 0x1B, 0x1C),
1462 "swans down": (0xDC, 0xF0, 0xEA),
1463 "sweet corn": (0xFB, 0xEA, 0x8C),
1464 "sweet pink": (0xFD, 0x9F, 0xA2),
1465 "swirl": (0xD3, 0xCD, 0xC5),
1466 "swiss coffee": (0xDD, 0xD6, 0xD5),
1467 "sycamore": (0x90, 0x8D, 0x39),
1468 "tabasco": (0xA0, 0x27, 0x12),
1469 "tacao": (0xED, 0xB3, 0x81),
1470 "tacha": (0xD6, 0xC5, 0x62),
1471 "tahiti gold": (0xE9, 0x7C, 0x07),
1472 "tahuna sands": (0xEE, 0xF0, 0xC8),
1473 "tall poppy": (0xB3, 0x2D, 0x29),
1474 "tallow": (0xA8, 0xA5, 0x89),
1475 "tamarillo": (0x99, 0x16, 0x13),
1476 "tamarind": (0x34, 0x15, 0x15),
1477 "tan hide": (0xFA, 0x9D, 0x5A),
1478 "tan": (0xD2, 0xB4, 0x8C),
1479 "tana": (0xD9, 0xDC, 0xC1),
1480 "tangaroa": (0x03, 0x16, 0x3C),
1481 "tangerine": (0xF2, 0x85, 0x00),
1482 "tango": (0xED, 0x7A, 0x1C),
1483 "tapa": (0x7B, 0x78, 0x74),
1484 "tapestry": (0xB0, 0x5E, 0x81),
1485 "tara": (0xE1, 0xF6, 0xE8),
1486 "tarawera": (0x07, 0x3A, 0x50),
1487 "tasman": (0xCF, 0xDC, 0xCF),
1488 "taupe gray": (0xB3, 0xAF, 0x95),
1489 "taupe": (0x48, 0x3C, 0x32),
1490 "tawny port": (0x69, 0x25, 0x45),
1491 "te papa green": (0x1E, 0x43, 0x3C),
1492 "tea green": (0xD0, 0xF0, 0xC0),
1493 "tea": (0xC1, 0xBA, 0xB0),
1494 "teak": (0xB1, 0x94, 0x61),
1495 "teal blue": (0x04, 0x42, 0x59),
1496 "teal": (0x00, 0x80, 0x80),
1497 "temptress": (0x3B, 0x00, 0x0B),
1498 "tenn": (0xCD, 0x57, 0x00),
1499 "tequila": (0xFF, 0xE6, 0xC7),
1500 "terracotta": (0xE2, 0x72, 0x5B),
1501 "texas rose": (0xFF, 0xB5, 0x55),
1502 "texas": (0xF8, 0xF9, 0x9C),
1503 "thatch green": (0x40, 0x3D, 0x19),
1504 "thatch": (0xB6, 0x9D, 0x98),
1505 "thistle green": (0xCC, 0xCA, 0xA8),
1506 "thistle": (0xD8, 0xBF, 0xD8),
1507 "thunder": (0x33, 0x29, 0x2F),
1508 "thunderbird": (0xC0, 0x2B, 0x18),
1509 "tia maria": (0xC1, 0x44, 0x0E),
1510 "tiara": (0xC3, 0xD1, 0xD1),
1511 "tiber": (0x06, 0x35, 0x37),
1512 "tickle me pink": (0xFC, 0x80, 0xA5),
1513 "tidal": (0xF1, 0xFF, 0xAD),
1514 "tide": (0xBF, 0xB8, 0xB0),
1515 "timber green": (0x16, 0x32, 0x2C),
1516 "timberwolf": (0xD9, 0xD6, 0xCF),
1517 "titan white": (0xF0, 0xEE, 0xFF),
1518 "toast": (0x9A, 0x6E, 0x61),
1519 "tobacco brown": (0x71, 0x5D, 0x47),
1520 "toledo": (0x3A, 0x00, 0x20),
1521 "tolopea": (0x1B, 0x02, 0x45),
1522 "tom thumb": (0x3F, 0x58, 0x3B),
1523 "tomato": (0xFF, 0x63, 0x47),
1524 "tonys pink": (0xE7, 0x9F, 0x8C),
1525 "topaz": (0x7C, 0x77, 0x8A),
1526 "torch red": (0xFD, 0x0E, 0x35),
1527 "torea bay": (0x0F, 0x2D, 0x9E),
1528 "tory blue": (0x14, 0x50, 0xAA),
1529 "tosca": (0x8D, 0x3F, 0x3F),
1530 "totem pole": (0x99, 0x1B, 0x07),
1531 "tower gray": (0xA9, 0xBD, 0xBF),
1532 "tradewind": (0x5F, 0xB3, 0xAC),
1533 "tranquil": (0xE6, 0xFF, 0xFF),
1534 "travertine": (0xFF, 0xFD, 0xE8),
1535 "tree poppy": (0xFC, 0x9C, 0x1D),
1536 "treehouse": (0x3B, 0x28, 0x20),
1537 "trendy green": (0x7C, 0x88, 0x1A),
1538 "trendy pink": (0x8C, 0x64, 0x95),
1539 "trinidad": (0xE6, 0x4E, 0x03),
1540 "tropical blue": (0xC3, 0xDD, 0xF9),
1541 "tropical rain forest": (0x00, 0x75, 0x5E),
1542 "trout": (0x4A, 0x4E, 0x5A),
1543 "true v": (0x8A, 0x73, 0xD6),
1544 "tuatara": (0x36, 0x35, 0x34),
1545 "tuft bush": (0xFF, 0xDD, 0xCD),
1546 "tulip tree": (0xEA, 0xB3, 0x3B),
1547 "tumbleweed": (0xDE, 0xA6, 0x81),
1548 "tuna": (0x35, 0x35, 0x42),
1549 "tundora": (0x4A, 0x42, 0x44),
1550 "turbo": (0xFA, 0xE6, 0x00),
1551 "turkish rose": (0xB5, 0x72, 0x81),
1552 "turmeric": (0xCA, 0xBB, 0x48),
1553 "turquoise blue": (0x6C, 0xDA, 0xE7),
1554 "turquoise": (0x30, 0xD5, 0xC8),
1555 "turtle green": (0x2A, 0x38, 0x0B),
1556 "tuscany": (0xBD, 0x5E, 0x2E),
1557 "tusk": (0xEE, 0xF3, 0xC3),
1558 "tussock": (0xC5, 0x99, 0x4B),
1559 "tutu": (0xFF, 0xF1, 0xF9),
1560 "twilight blue": (0xEE, 0xFD, 0xFF),
1561 "twilight": (0xE4, 0xCF, 0xDE),
1562 "twine": (0xC2, 0x95, 0x5D),
1563 "tyrian purple": (0x66, 0x02, 0x3C),
1564 "ultramarine": (0x12, 0x0A, 0x8F),
1565 "valencia": (0xD8, 0x44, 0x37),
1566 "valentino": (0x35, 0x0E, 0x42),
1567 "valhalla": (0x2B, 0x19, 0x4F),
1568 "van cleef": (0x49, 0x17, 0x0C),
1569 "vanilla ice": (0xF3, 0xD9, 0xDF),
1570 "vanilla": (0xD1, 0xBE, 0xA8),
1571 "varden": (0xFF, 0xF6, 0xDF),
1572 "venetian red": (0x72, 0x01, 0x0F),
1573 "venice blue": (0x05, 0x59, 0x89),
1574 "venus": (0x92, 0x85, 0x90),
1575 "verdigris": (0x5D, 0x5E, 0x37),
1576 "verdun green": (0x49, 0x54, 0x00),
1577 "vermilion": (0xFF, 0x4D, 0x00),
1578 "vesuvius": (0xB1, 0x4A, 0x0B),
1579 "victoria": (0x53, 0x44, 0x91),
1580 "vida loca": (0x54, 0x90, 0x19),
1581 "viking": (0x64, 0xCC, 0xDB),
1582 "vin rouge": (0x98, 0x3D, 0x61),
1583 "viola": (0xCB, 0x8F, 0xA9),
1584 "violent violet": (0x29, 0x0C, 0x5E),
1585 "violet eggplant": (0x99, 0x11, 0x99),
1586 "violet red": (0xF7, 0x46, 0x8A),
1587 "violet": (0x24, 0x0A, 0x40),
1588 "viridian green": (0x67, 0x89, 0x75),
1589 "viridian": (0x40, 0x82, 0x6D),
1590 "vis vis": (0xFF, 0xEF, 0xA1),
1591 "vista blue": (0x8F, 0xD6, 0xB4),
1592 "vista white": (0xFC, 0xF8, 0xF7),
1593 "vivid tangerine": (0xFF, 0x99, 0x80),
1594 "vivid violet": (0x80, 0x37, 0x90),
1595 "voodoo": (0x53, 0x34, 0x55),
1596 "vulcan": (0x10, 0x12, 0x1D),
1597 "wafer": (0xDE, 0xCB, 0xC6),
1598 "waikawa gray": (0x5A, 0x6E, 0x9C),
1599 "waiouru": (0x36, 0x3C, 0x0D),
1600 "walnut": (0x77, 0x3F, 0x1A),
1601 "wannabe.house": (0x00, 0x00, 95),
1602 "wasabi": (0x78, 0x8A, 0x25),
1603 "water leaf": (0xA1, 0xE9, 0xDE),
1604 "watercourse": (0x05, 0x6F, 0x57),
1605 "waterloo ": (0x7B, 0x7C, 0x94),
1606 "wattle": (0xDC, 0xD7, 0x47),
1607 "watusi": (0xFF, 0xDD, 0xCF),
1608 "wax flower": (0xFF, 0xC0, 0xA8),
1609 "we peep": (0xF7, 0xDB, 0xE6),
1610 "web orange": (0xFF, 0xA5, 0x00),
1611 "wedgewood": (0x4E, 0x7F, 0x9E),
1612 "well read": (0xB4, 0x33, 0x32),
1613 "west coast": (0x62, 0x51, 0x19),
1614 "west side": (0xFF, 0x91, 0x0F),
1615 "westar": (0xDC, 0xD9, 0xD2),
1616 "wewak": (0xF1, 0x9B, 0xAB),
1617 "wheat": (0xF5, 0xDE, 0xB3),
1618 "wheatfield": (0xF3, 0xED, 0xCF),
1619 "whiskey": (0xD5, 0x9A, 0x6F),
1620 "whisper": (0xF7, 0xF5, 0xFA),
1621 "white ice": (0xDD, 0xF9, 0xF1),
1622 "white lilac": (0xF8, 0xF7, 0xFC),
1623 "white linen": (0xF8, 0xF0, 0xE8),
1624 "white pointer": (0xFE, 0xF8, 0xFF),
1625 "white rock": (0xEA, 0xE8, 0xD4),
1626 "white smoke": (0xF5, 0xF5, 0xF5),
1627 "white": (0xFF, 0xFF, 0xFF),
1628 "wild blue yonder": (0x7A, 0x89, 0xB8),
1629 "wild rice": (0xEC, 0xE0, 0x90),
1630 "wild sand": (0xF4, 0xF4, 0xF4),
1631 "wild strawberry": (0xFF, 0x33, 0x99),
1632 "wild watermelon": (0xFD, 0x5B, 0x78),
1633 "wild willow": (0xB9, 0xC4, 0x6A),
1634 "william": (0x3A, 0x68, 0x6C),
1635 "willow brook": (0xDF, 0xEC, 0xDA),
1636 "willow grove": (0x65, 0x74, 0x5D),
1637 "windsor": (0x3C, 0x08, 0x78),
1638 "wine berry": (0x59, 0x1D, 0x35),
1639 "winter hazel": (0xD5, 0xD1, 0x95),
1640 "wisp pink": (0xFE, 0xF4, 0xF8),
1641 "wisteria": (0x97, 0x71, 0xB5),
1642 "wistful": (0xA4, 0xA6, 0xD3),
1643 "witch haze": (0xFF, 0xFC, 0x99),
1644 "wood bark": (0x26, 0x11, 0x05),
1645 "woodland": (0x4D, 0x53, 0x28),
1646 "woodrush": (0x30, 0x2A, 0x0F),
1647 "woodsmoke": (0x0C, 0x0D, 0x0F),
1648 "woody brown": (0x48, 0x31, 0x31),
1649 "xanadu": (0x73, 0x86, 0x78),
1650 "yellow green": (0xC5, 0xE1, 0x7A),
1651 "yellow metal": (0x71, 0x63, 0x38),
1652 "yellow orange": (0xFF, 0xAE, 0x42),
1653 "yellow sea": (0xFE, 0xA9, 0x04),
1654 "yellow": (0xFF, 0xFF, 0x00),
1655 "your pink": (0xFF, 0xC3, 0xC0),
1656 "yukon gold": (0x7B, 0x66, 0x08),
1657 "yuma": (0xCE, 0xC2, 0x91),
1658 "zambezi": (0x68, 0x55, 0x58),
1659 "zanah": (0xDA, 0xEC, 0xD6),
1660 "zest": (0xE5, 0x84, 0x1B),
1661 "zeus": (0x29, 0x23, 0x19),
1662 "ziggurat": (0xBF, 0xDB, 0xE2),
1663 "zinnwaldite": (0xEB, 0xC2, 0xAF),
1664 "zircon": (0xF4, 0xF8, 0xFF),
1665 "zombie": (0xE4, 0xD6, 0x9B),
1666 "zorba": (0xA5, 0x9B, 0x91),
1667 "zuccini": (0x04, 0x40, 0x22),
1668 "zumthor": (0xED, 0xF6, 0xFF),
1673 """Clear screen ANSI escape sequence"""
1674 return "\x1B[H\x1B[2J"
1677 def clear_screen() -> str:
1678 """Clear screen ANSI escape sequence"""
1679 return "\x1B[H\x1B[2J"
1682 def clear_line() -> str:
1683 """Clear the current line ANSI escape sequence"""
1688 """Reset text attributes to 'normal'"""
1692 def normal() -> str:
1693 """Reset text attributes to 'normal'"""
1698 """Set text to bold"""
1702 def italic() -> str:
1703 """Set text to italic"""
1707 def italics() -> str:
1708 """Set text to italic"""
1712 def underline() -> str:
1713 """Set text to underline"""
1717 def strikethrough() -> str:
1718 """Set text to strikethrough"""
1722 def strike_through() -> str:
1723 """Set text to strikethrough"""
1724 return strikethrough()
1727 def is_16color(num: int) -> bool:
1728 """Is num a valid 16 color number?"""
1729 return num in (255, 128)
1732 def is_216color(num: int) -> bool:
1733 """Is num a valid 256 color number?"""
1734 return num in set([0, 95, 135, 175, 223, 255])
1737 def _simple_color_number(red: int, green: int, blue: int) -> int:
1738 """Construct a simple color number"""
1742 return b << 2 | g << 1 | r
1745 def fg_16color(red: int, green: int, blue: int) -> str:
1746 """Set foreground color using 16 color mode"""
1747 code = _simple_color_number(red, green, blue) + 30
1755 if bright_count > 1:
1757 return f"\x1B[{code}m"
1760 def bg_16color(red: int, green: int, blue: int) -> str:
1761 """Set background using 16 color mode"""
1762 code = _simple_color_number(red, green, blue) + 40
1770 if bright_count > 1:
1772 return f"\x1B[{code}m"
1775 def _pixel_to_216color(n: int) -> int:
1789 def fg_216color(red: int, green: int, blue: int) -> str:
1790 """Set foreground using 216 color mode"""
1791 r = _pixel_to_216color(red)
1792 g = _pixel_to_216color(green)
1793 b = _pixel_to_216color(blue)
1794 code = 16 + r * 36 + g * 6 + b
1795 return f"\x1B[38;5;{code}m"
1798 def bg_216color(red: int, green: int, blue: int) -> str:
1799 """Set background using 216 color mode"""
1800 r = _pixel_to_216color(red)
1801 g = _pixel_to_216color(green)
1802 b = _pixel_to_216color(blue)
1803 code = 16 + r * 36 + g * 6 + b
1804 return f"\x1B[48;5;{code}m"
1807 def fg_24bit(red: int, green: int, blue: int) -> str:
1808 """Set foreground using 24bit color mode"""
1809 return f"\x1B[38;2;{red};{green};{blue}m"
1812 def bg_24bit(red: int, green: int, blue: int) -> str:
1813 """Set background using 24bit color mode"""
1814 return f"\x1B[48;2;{red};{green};{blue}m"
1817 def _find_color_by_name(name: str) -> Tuple[int, int, int]:
1818 rgb = COLOR_NAMES_TO_RGB.get(name.lower(), None)
1820 name = guess_name(name)
1821 rgb = COLOR_NAMES_TO_RGB.get(name.lower(), None)
1822 assert rgb is not None
1826 @logging_utils.squelch_repeated_log_messages(1)
1828 name: Optional[str] = "",
1829 red: Optional[int] = None,
1830 green: Optional[int] = None,
1831 blue: Optional[int] = None,
1833 force_16color: bool = False,
1834 force_216color: bool = False,
1836 """Return the ANSI escape sequence to change the foreground color
1837 being printed. Target colors may be indicated by name or R/G/B.
1838 Result will use the 16 or 216 color scheme if force_16color or
1839 force_216color are passed (respectively). Otherwise the code will
1840 do what it thinks best.
1843 name: the name of the color to set
1844 red: the color to set's red component value
1845 green: the color to set's green component value
1846 blue: the color to set's blue component value
1847 force_16color: force fg to use 16 color mode
1848 force_216color: force fg to use 216 color mode
1851 String containing the ANSI escape sequence to set desired foreground
1853 >>> import string_utils as su
1854 >>> su.to_base64(fg('blue'))
1855 b'G1szODs1OzIxbQ==\\n'
1857 if name is not None and name == 'reset':
1860 if name is not None and string_utils.is_full_string(name):
1861 rgb = _find_color_by_name(name)
1867 force_16color=force_16color,
1868 force_216color=force_216color,
1877 if (is_16color(red) and is_16color(green) and is_16color(blue)) or force_16color:
1878 logger.debug("Using 16-color strategy")
1879 return fg_16color(red, green, blue)
1881 is_216color(red) and is_216color(green) and is_216color(blue)
1882 ) or force_216color:
1883 logger.debug("Using 216-color strategy")
1884 return fg_216color(red, green, blue)
1885 logger.debug("Using 24-bit color strategy")
1886 return fg_24bit(red, green, blue)
1890 """Returns: an ANSI escape code to reset just the foreground color while
1891 preserving the background color and any other formatting (bold, italics, etc...)"""
1895 def _rgb_to_yiq(rgb: Tuple[int, int, int]) -> int:
1896 return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) // 1000
1899 def _contrast(rgb: Tuple[int, int, int]) -> Tuple[int, int, int]:
1900 if _rgb_to_yiq(rgb) < 128:
1901 return (0xFF, 0xFF, 0xFF)
1905 def pick_contrasting_color(
1906 name: Optional[str] = "",
1907 red: Optional[int] = None,
1908 green: Optional[int] = None,
1909 blue: Optional[int] = None,
1910 ) -> Tuple[int, int, int]:
1911 """This method will return a red, green, blue tuple representing a
1912 contrasting color given the red, green, blue of a background
1913 color or a color name of the background color.
1916 name: the name of the color to contrast
1917 red: the color to contrast's red component value
1918 green: the color to contrast's green component value
1919 blue: the color to contrast's blue component value
1922 An RGB tuple containing a contrasting color
1924 >>> pick_contrasting_color(None, 20, 20, 20)
1927 >>> pick_contrasting_color("white")
1931 if name is not None and string_utils.is_full_string(name):
1932 rgb = _find_color_by_name(name)
1934 r = red if red is not None else 0
1935 g = green if green is not None else 0
1936 b = blue if blue is not None else 0
1938 assert rgb is not None
1939 return _contrast(rgb)
1942 def guess_name(name: str) -> str:
1943 """Try to guess what color the user is talking about"""
1946 for possibility in COLOR_NAMES_TO_RGB:
1947 r = difflib.SequenceMatcher(None, name, possibility).ratio()
1948 if max_ratio is None or r > max_ratio:
1950 best_guess = possibility
1951 assert best_guess is not None
1952 logger.debug("Best guess at color name is %s", best_guess)
1956 @logging_utils.squelch_repeated_log_messages(1)
1958 name: Optional[str] = "",
1959 red: Optional[int] = None,
1960 green: Optional[int] = None,
1961 blue: Optional[int] = None,
1963 force_16color: bool = False,
1964 force_216color: bool = False,
1966 """Returns an ANSI color code for changing the current background
1970 name: the name of the color to set
1971 red: the color to set's red component value
1972 green: the color to set's green component value
1973 blue: the color to set's blue component value
1974 force_16color: force bg to use 16 color mode
1975 force_216color: force bg to use 216 color mode
1978 A string containing the requested escape sequence
1980 >>> import string_utils as su
1981 >>> su.to_base64(bg("red")) # b'\x1b[48;5;196m'
1982 b'G1s0ODs1OzE5Nm0=\\n'
1984 if name is not None and name == 'reset':
1987 if name is not None and string_utils.is_full_string(name):
1988 rgb = _find_color_by_name(name)
1994 force_16color=force_16color,
1995 force_216color=force_216color,
2003 if (is_16color(red) and is_16color(green) and is_16color(blue)) or force_16color:
2004 logger.debug("Using 16-color strategy")
2005 return bg_16color(red, green, blue)
2007 is_216color(red) and is_216color(green) and is_216color(blue)
2008 ) or force_216color:
2009 logger.debug("Using 216-color strategy")
2010 return bg_216color(red, green, blue)
2011 logger.debug("Using 24-bit color strategy")
2012 return bg_24bit(red, green, blue)
2019 class StdoutInterceptor(io.TextIOBase, contextlib.AbstractContextManager):
2020 """An interceptor for data written to stdout. Use as a context."""
2024 self.saved_stdout: io.TextIO = None
2028 def write(self, s: str):
2031 def __enter__(self):
2032 self.saved_stdout = sys.stdout
2036 def __exit__(self, *args) -> Literal[False]:
2037 sys.stdout = self.saved_stdout
2042 class ProgrammableColorizer(StdoutInterceptor):
2043 """A colorizing interceptor; pass it re.Patterns -> methods that do
2044 something (usually add color to) the match.
2050 patterns: Iterable[Tuple[re.Pattern, Callable[[Any, re.Pattern], str]]],
2053 self.patterns = list(patterns)
2056 def write(self, s: str):
2057 for pattern in self.patterns:
2058 s = pattern[0].sub(pattern[1], s)
2062 if __name__ == '__main__':
2069 name = " ".join(sys.argv[1:])
2070 for possibility in COLOR_NAMES_TO_RGB:
2071 if name in possibility:
2074 _ = pick_contrasting_color(possibility)
2075 xf = fg(None, _[0], _[1], _[2])
2076 xb = bg(None, _[0], _[1], _[2])
2078 f'{f}{xb}{possibility}{reset()}\t\t\t'
2079 f'{b}{xf}{possibility}{reset()}'