1/***********************************************************
2
3Copyright 1987, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
26
27                        All Rights Reserved
28
29Permission to use, copy, modify, and distribute this software and its
30documentation for any purpose and without fee is hereby granted,
31provided that the above copyright notice appear in all copies and that
32both that copyright notice and this permission notice appear in
33supporting documentation, and that the name of Digital not be
34used in advertising or publicity pertaining to distribution of the
35software without specific, written prior permission.
36
37DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
38ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
39DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
40ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
41WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
42ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
43SOFTWARE.
44
45******************************************************************/
46
47#ifdef HAVE_DIX_CONFIG_H
48#include <dix-config.h>
49#endif
50
51#include <X11/keysym.h>
52#include "dix.h"
53#include "os.h"
54
55typedef struct _builtinColor {
56    unsigned char red;
57    unsigned char green;
58    unsigned char blue;
59    unsigned short name;
60} BuiltinColor;
61
62static const char BuiltinColorNames[] = {
63    "alice blue\0"
64        "AliceBlue\0"
65        "antique white\0"
66        "AntiqueWhite\0"
67        "AntiqueWhite1\0"
68        "AntiqueWhite2\0"
69        "AntiqueWhite3\0"
70        "AntiqueWhite4\0"
71        "aqua\0"
72        "aquamarine\0"
73        "aquamarine1\0"
74        "aquamarine2\0"
75        "aquamarine3\0"
76        "aquamarine4\0"
77        "azure\0"
78        "azure1\0"
79        "azure2\0"
80        "azure3\0"
81        "azure4\0"
82        "beige\0"
83        "bisque\0"
84        "bisque1\0"
85        "bisque2\0"
86        "bisque3\0"
87        "bisque4\0"
88        "black\0"
89        "blanched almond\0"
90        "BlanchedAlmond\0"
91        "blue\0"
92        "blue violet\0"
93        "blue1\0"
94        "blue2\0"
95        "blue3\0"
96        "blue4\0"
97        "BlueViolet\0"
98        "brown\0"
99        "brown1\0"
100        "brown2\0"
101        "brown3\0"
102        "brown4\0"
103        "burlywood\0"
104        "burlywood1\0"
105        "burlywood2\0"
106        "burlywood3\0"
107        "burlywood4\0"
108        "cadet blue\0"
109        "CadetBlue\0"
110        "CadetBlue1\0"
111        "CadetBlue2\0"
112        "CadetBlue3\0"
113        "CadetBlue4\0"
114        "chartreuse\0"
115        "chartreuse1\0"
116        "chartreuse2\0"
117        "chartreuse3\0"
118        "chartreuse4\0"
119        "chocolate\0"
120        "chocolate1\0"
121        "chocolate2\0"
122        "chocolate3\0"
123        "chocolate4\0"
124        "coral\0"
125        "coral1\0"
126        "coral2\0"
127        "coral3\0"
128        "coral4\0"
129        "cornflower blue\0"
130        "CornflowerBlue\0"
131        "cornsilk\0"
132        "cornsilk1\0"
133        "cornsilk2\0"
134        "cornsilk3\0"
135        "cornsilk4\0"
136        "crimson\0"
137        "cyan\0"
138        "cyan1\0"
139        "cyan2\0"
140        "cyan3\0"
141        "cyan4\0"
142        "dark blue\0"
143        "dark cyan\0"
144        "dark goldenrod\0"
145        "dark gray\0"
146        "dark green\0"
147        "dark grey\0"
148        "dark khaki\0"
149        "dark magenta\0"
150        "dark olive green\0"
151        "dark orange\0"
152        "dark orchid\0"
153        "dark red\0"
154        "dark salmon\0"
155        "dark sea green\0"
156        "dark slate blue\0"
157        "dark slate gray\0"
158        "dark slate grey\0"
159        "dark turquoise\0"
160        "dark violet\0"
161        "DarkBlue\0"
162        "DarkCyan\0"
163        "DarkGoldenrod\0"
164        "DarkGoldenrod1\0"
165        "DarkGoldenrod2\0"
166        "DarkGoldenrod3\0"
167        "DarkGoldenrod4\0"
168        "DarkGray\0"
169        "DarkGreen\0"
170        "DarkGrey\0"
171        "DarkKhaki\0"
172        "DarkMagenta\0"
173        "DarkOliveGreen\0"
174        "DarkOliveGreen1\0"
175        "DarkOliveGreen2\0"
176        "DarkOliveGreen3\0"
177        "DarkOliveGreen4\0"
178        "DarkOrange\0"
179        "DarkOrange1\0"
180        "DarkOrange2\0"
181        "DarkOrange3\0"
182        "DarkOrange4\0"
183        "DarkOrchid\0"
184        "DarkOrchid1\0"
185        "DarkOrchid2\0"
186        "DarkOrchid3\0"
187        "DarkOrchid4\0"
188        "DarkRed\0"
189        "DarkSalmon\0"
190        "DarkSeaGreen\0"
191        "DarkSeaGreen1\0"
192        "DarkSeaGreen2\0"
193        "DarkSeaGreen3\0"
194        "DarkSeaGreen4\0"
195        "DarkSlateBlue\0"
196        "DarkSlateGray\0"
197        "DarkSlateGray1\0"
198        "DarkSlateGray2\0"
199        "DarkSlateGray3\0"
200        "DarkSlateGray4\0"
201        "DarkSlateGrey\0"
202        "DarkTurquoise\0"
203        "DarkViolet\0"
204        "deep pink\0"
205        "deep sky blue\0"
206        "DeepPink\0"
207        "DeepPink1\0"
208        "DeepPink2\0"
209        "DeepPink3\0"
210        "DeepPink4\0"
211        "DeepSkyBlue\0"
212        "DeepSkyBlue1\0"
213        "DeepSkyBlue2\0"
214        "DeepSkyBlue3\0"
215        "DeepSkyBlue4\0"
216        "dim gray\0"
217        "dim grey\0"
218        "DimGray\0"
219        "DimGrey\0"
220        "dodger blue\0"
221        "DodgerBlue\0"
222        "DodgerBlue1\0"
223        "DodgerBlue2\0"
224        "DodgerBlue3\0"
225        "DodgerBlue4\0"
226        "firebrick\0"
227        "firebrick1\0"
228        "firebrick2\0"
229        "firebrick3\0"
230        "firebrick4\0"
231        "floral white\0"
232        "FloralWhite\0"
233        "forest green\0"
234        "ForestGreen\0"
235        "fuchsia\0"
236        "gainsboro\0"
237        "ghost white\0"
238        "GhostWhite\0"
239        "gold\0"
240        "gold1\0"
241        "gold2\0"
242        "gold3\0"
243        "gold4\0"
244        "goldenrod\0"
245        "goldenrod1\0"
246        "goldenrod2\0"
247        "goldenrod3\0"
248        "goldenrod4\0"
249        "gray\0"
250        "gray0\0"
251        "gray1\0"
252        "gray10\0"
253        "gray100\0"
254        "gray11\0"
255        "gray12\0"
256        "gray13\0"
257        "gray14\0"
258        "gray15\0"
259        "gray16\0"
260        "gray17\0"
261        "gray18\0"
262        "gray19\0"
263        "gray2\0"
264        "gray20\0"
265        "gray21\0"
266        "gray22\0"
267        "gray23\0"
268        "gray24\0"
269        "gray25\0"
270        "gray26\0"
271        "gray27\0"
272        "gray28\0"
273        "gray29\0"
274        "gray3\0"
275        "gray30\0"
276        "gray31\0"
277        "gray32\0"
278        "gray33\0"
279        "gray34\0"
280        "gray35\0"
281        "gray36\0"
282        "gray37\0"
283        "gray38\0"
284        "gray39\0"
285        "gray4\0"
286        "gray40\0"
287        "gray41\0"
288        "gray42\0"
289        "gray43\0"
290        "gray44\0"
291        "gray45\0"
292        "gray46\0"
293        "gray47\0"
294        "gray48\0"
295        "gray49\0"
296        "gray5\0"
297        "gray50\0"
298        "gray51\0"
299        "gray52\0"
300        "gray53\0"
301        "gray54\0"
302        "gray55\0"
303        "gray56\0"
304        "gray57\0"
305        "gray58\0"
306        "gray59\0"
307        "gray6\0"
308        "gray60\0"
309        "gray61\0"
310        "gray62\0"
311        "gray63\0"
312        "gray64\0"
313        "gray65\0"
314        "gray66\0"
315        "gray67\0"
316        "gray68\0"
317        "gray69\0"
318        "gray7\0"
319        "gray70\0"
320        "gray71\0"
321        "gray72\0"
322        "gray73\0"
323        "gray74\0"
324        "gray75\0"
325        "gray76\0"
326        "gray77\0"
327        "gray78\0"
328        "gray79\0"
329        "gray8\0"
330        "gray80\0"
331        "gray81\0"
332        "gray82\0"
333        "gray83\0"
334        "gray84\0"
335        "gray85\0"
336        "gray86\0"
337        "gray87\0"
338        "gray88\0"
339        "gray89\0"
340        "gray9\0"
341        "gray90\0"
342        "gray91\0"
343        "gray92\0"
344        "gray93\0"
345        "gray94\0"
346        "gray95\0"
347        "gray96\0"
348        "gray97\0"
349        "gray98\0"
350        "gray99\0"
351        "green\0"
352        "green yellow\0"
353        "green1\0"
354        "green2\0"
355        "green3\0"
356        "green4\0"
357        "GreenYellow\0"
358        "grey\0"
359        "grey0\0"
360        "grey1\0"
361        "grey10\0"
362        "grey100\0"
363        "grey11\0"
364        "grey12\0"
365        "grey13\0"
366        "grey14\0"
367        "grey15\0"
368        "grey16\0"
369        "grey17\0"
370        "grey18\0"
371        "grey19\0"
372        "grey2\0"
373        "grey20\0"
374        "grey21\0"
375        "grey22\0"
376        "grey23\0"
377        "grey24\0"
378        "grey25\0"
379        "grey26\0"
380        "grey27\0"
381        "grey28\0"
382        "grey29\0"
383        "grey3\0"
384        "grey30\0"
385        "grey31\0"
386        "grey32\0"
387        "grey33\0"
388        "grey34\0"
389        "grey35\0"
390        "grey36\0"
391        "grey37\0"
392        "grey38\0"
393        "grey39\0"
394        "grey4\0"
395        "grey40\0"
396        "grey41\0"
397        "grey42\0"
398        "grey43\0"
399        "grey44\0"
400        "grey45\0"
401        "grey46\0"
402        "grey47\0"
403        "grey48\0"
404        "grey49\0"
405        "grey5\0"
406        "grey50\0"
407        "grey51\0"
408        "grey52\0"
409        "grey53\0"
410        "grey54\0"
411        "grey55\0"
412        "grey56\0"
413        "grey57\0"
414        "grey58\0"
415        "grey59\0"
416        "grey6\0"
417        "grey60\0"
418        "grey61\0"
419        "grey62\0"
420        "grey63\0"
421        "grey64\0"
422        "grey65\0"
423        "grey66\0"
424        "grey67\0"
425        "grey68\0"
426        "grey69\0"
427        "grey7\0"
428        "grey70\0"
429        "grey71\0"
430        "grey72\0"
431        "grey73\0"
432        "grey74\0"
433        "grey75\0"
434        "grey76\0"
435        "grey77\0"
436        "grey78\0"
437        "grey79\0"
438        "grey8\0"
439        "grey80\0"
440        "grey81\0"
441        "grey82\0"
442        "grey83\0"
443        "grey84\0"
444        "grey85\0"
445        "grey86\0"
446        "grey87\0"
447        "grey88\0"
448        "grey89\0"
449        "grey9\0"
450        "grey90\0"
451        "grey91\0"
452        "grey92\0"
453        "grey93\0"
454        "grey94\0"
455        "grey95\0"
456        "grey96\0"
457        "grey97\0"
458        "grey98\0"
459        "grey99\0"
460        "honeydew\0"
461        "honeydew1\0"
462        "honeydew2\0"
463        "honeydew3\0"
464        "honeydew4\0"
465        "hot pink\0"
466        "HotPink\0"
467        "HotPink1\0"
468        "HotPink2\0"
469        "HotPink3\0"
470        "HotPink4\0"
471        "indian red\0"
472        "IndianRed\0"
473        "IndianRed1\0"
474        "IndianRed2\0"
475        "IndianRed3\0"
476        "IndianRed4\0"
477        "indigo\0"
478        "ivory\0"
479        "ivory1\0"
480        "ivory2\0"
481        "ivory3\0"
482        "ivory4\0"
483        "khaki\0"
484        "khaki1\0"
485        "khaki2\0"
486        "khaki3\0"
487        "khaki4\0"
488        "lavender\0"
489        "lavender blush\0"
490        "LavenderBlush\0"
491        "LavenderBlush1\0"
492        "LavenderBlush2\0"
493        "LavenderBlush3\0"
494        "LavenderBlush4\0"
495        "lawn green\0"
496        "LawnGreen\0"
497        "lemon chiffon\0"
498        "LemonChiffon\0"
499        "LemonChiffon1\0"
500        "LemonChiffon2\0"
501        "LemonChiffon3\0"
502        "LemonChiffon4\0"
503        "light blue\0"
504        "light coral\0"
505        "light cyan\0"
506        "light goldenrod\0"
507        "light goldenrod yellow\0"
508        "light gray\0"
509        "light green\0"
510        "light grey\0"
511        "light pink\0"
512        "light salmon\0"
513        "light sea green\0"
514        "light sky blue\0"
515        "light slate blue\0"
516        "light slate gray\0"
517        "light slate grey\0"
518        "light steel blue\0"
519        "light yellow\0"
520        "LightBlue\0"
521        "LightBlue1\0"
522        "LightBlue2\0"
523        "LightBlue3\0"
524        "LightBlue4\0"
525        "LightCoral\0"
526        "LightCyan\0"
527        "LightCyan1\0"
528        "LightCyan2\0"
529        "LightCyan3\0"
530        "LightCyan4\0"
531        "LightGoldenrod\0"
532        "LightGoldenrod1\0"
533        "LightGoldenrod2\0"
534        "LightGoldenrod3\0"
535        "LightGoldenrod4\0"
536        "LightGoldenrodYellow\0"
537        "LightGray\0"
538        "LightGreen\0"
539        "LightGrey\0"
540        "LightPink\0"
541        "LightPink1\0"
542        "LightPink2\0"
543        "LightPink3\0"
544        "LightPink4\0"
545        "LightSalmon\0"
546        "LightSalmon1\0"
547        "LightSalmon2\0"
548        "LightSalmon3\0"
549        "LightSalmon4\0"
550        "LightSeaGreen\0"
551        "LightSkyBlue\0"
552        "LightSkyBlue1\0"
553        "LightSkyBlue2\0"
554        "LightSkyBlue3\0"
555        "LightSkyBlue4\0"
556        "LightSlateBlue\0"
557        "LightSlateGray\0"
558        "LightSlateGrey\0"
559        "LightSteelBlue\0"
560        "LightSteelBlue1\0"
561        "LightSteelBlue2\0"
562        "LightSteelBlue3\0"
563        "LightSteelBlue4\0"
564        "LightYellow\0"
565        "LightYellow1\0"
566        "LightYellow2\0"
567        "LightYellow3\0"
568        "LightYellow4\0"
569        "lime\0"
570        "lime green\0"
571        "LimeGreen\0"
572        "linen\0"
573        "magenta\0"
574        "magenta1\0"
575        "magenta2\0"
576        "magenta3\0"
577        "magenta4\0"
578        "maroon\0"
579        "maroon1\0"
580        "maroon2\0"
581        "maroon3\0"
582        "maroon4\0"
583        "medium aquamarine\0"
584        "medium blue\0"
585        "medium orchid\0"
586        "medium purple\0"
587        "medium sea green\0"
588        "medium slate blue\0"
589        "medium spring green\0"
590        "medium turquoise\0"
591        "medium violet red\0"
592        "MediumAquamarine\0"
593        "MediumBlue\0"
594        "MediumOrchid\0"
595        "MediumOrchid1\0"
596        "MediumOrchid2\0"
597        "MediumOrchid3\0"
598        "MediumOrchid4\0"
599        "MediumPurple\0"
600        "MediumPurple1\0"
601        "MediumPurple2\0"
602        "MediumPurple3\0"
603        "MediumPurple4\0"
604        "MediumSeaGreen\0"
605        "MediumSlateBlue\0"
606        "MediumSpringGreen\0"
607        "MediumTurquoise\0"
608        "MediumVioletRed\0"
609        "midnight blue\0"
610        "MidnightBlue\0"
611        "mint cream\0"
612        "MintCream\0"
613        "misty rose\0"
614        "MistyRose\0"
615        "MistyRose1\0"
616        "MistyRose2\0"
617        "MistyRose3\0"
618        "MistyRose4\0"
619        "moccasin\0"
620        "navajo white\0"
621        "NavajoWhite\0"
622        "NavajoWhite1\0"
623        "NavajoWhite2\0"
624        "NavajoWhite3\0"
625        "NavajoWhite4\0"
626        "navy\0"
627        "navy blue\0"
628        "NavyBlue\0"
629        "old lace\0"
630        "OldLace\0"
631        "olive\0"
632        "olive drab\0"
633        "OliveDrab\0"
634        "OliveDrab1\0"
635        "OliveDrab2\0"
636        "OliveDrab3\0"
637        "OliveDrab4\0"
638        "orange\0"
639        "orange red\0"
640        "orange1\0"
641        "orange2\0"
642        "orange3\0"
643        "orange4\0"
644        "OrangeRed\0"
645        "OrangeRed1\0"
646        "OrangeRed2\0"
647        "OrangeRed3\0"
648        "OrangeRed4\0"
649        "orchid\0"
650        "orchid1\0"
651        "orchid2\0"
652        "orchid3\0"
653        "orchid4\0"
654        "pale goldenrod\0"
655        "pale green\0"
656        "pale turquoise\0"
657        "pale violet red\0"
658        "PaleGoldenrod\0"
659        "PaleGreen\0"
660        "PaleGreen1\0"
661        "PaleGreen2\0"
662        "PaleGreen3\0"
663        "PaleGreen4\0"
664        "PaleTurquoise\0"
665        "PaleTurquoise1\0"
666        "PaleTurquoise2\0"
667        "PaleTurquoise3\0"
668        "PaleTurquoise4\0"
669        "PaleVioletRed\0"
670        "PaleVioletRed1\0"
671        "PaleVioletRed2\0"
672        "PaleVioletRed3\0"
673        "PaleVioletRed4\0"
674        "papaya whip\0"
675        "PapayaWhip\0"
676        "peach puff\0"
677        "PeachPuff\0"
678        "PeachPuff1\0"
679        "PeachPuff2\0"
680        "PeachPuff3\0"
681        "PeachPuff4\0"
682        "peru\0"
683        "pink\0"
684        "pink1\0"
685        "pink2\0"
686        "pink3\0"
687        "pink4\0"
688        "plum\0"
689        "plum1\0"
690        "plum2\0"
691        "plum3\0"
692        "plum4\0"
693        "powder blue\0"
694        "PowderBlue\0"
695        "purple\0"
696        "purple1\0"
697        "purple2\0"
698        "purple3\0"
699        "purple4\0"
700        "rebecca purple\0"
701        "RebeccaPurple\0"
702        "red\0"
703        "red1\0"
704        "red2\0"
705        "red3\0"
706        "red4\0"
707        "rosy brown\0"
708        "RosyBrown\0"
709        "RosyBrown1\0"
710        "RosyBrown2\0"
711        "RosyBrown3\0"
712        "RosyBrown4\0"
713        "royal blue\0"
714        "RoyalBlue\0"
715        "RoyalBlue1\0"
716        "RoyalBlue2\0"
717        "RoyalBlue3\0"
718        "RoyalBlue4\0"
719        "saddle brown\0"
720        "SaddleBrown\0"
721        "salmon\0"
722        "salmon1\0"
723        "salmon2\0"
724        "salmon3\0"
725        "salmon4\0"
726        "sandy brown\0"
727        "SandyBrown\0"
728        "sea green\0"
729        "SeaGreen\0"
730        "SeaGreen1\0"
731        "SeaGreen2\0"
732        "SeaGreen3\0"
733        "SeaGreen4\0"
734        "seashell\0"
735        "seashell1\0"
736        "seashell2\0"
737        "seashell3\0"
738        "seashell4\0"
739        "sienna\0"
740        "sienna1\0"
741        "sienna2\0"
742        "sienna3\0"
743        "sienna4\0"
744        "silver\0"
745        "sky blue\0"
746        "SkyBlue\0"
747        "SkyBlue1\0"
748        "SkyBlue2\0"
749        "SkyBlue3\0"
750        "SkyBlue4\0"
751        "slate blue\0"
752        "slate gray\0"
753        "slate grey\0"
754        "SlateBlue\0"
755        "SlateBlue1\0"
756        "SlateBlue2\0"
757        "SlateBlue3\0"
758        "SlateBlue4\0"
759        "SlateGray\0"
760        "SlateGray1\0"
761        "SlateGray2\0"
762        "SlateGray3\0"
763        "SlateGray4\0"
764        "SlateGrey\0"
765        "snow\0"
766        "snow1\0"
767        "snow2\0"
768        "snow3\0"
769        "snow4\0"
770        "spring green\0"
771        "SpringGreen\0"
772        "SpringGreen1\0"
773        "SpringGreen2\0"
774        "SpringGreen3\0"
775        "SpringGreen4\0"
776        "steel blue\0"
777        "SteelBlue\0"
778        "SteelBlue1\0"
779        "SteelBlue2\0"
780        "SteelBlue3\0"
781        "SteelBlue4\0"
782        "tan\0"
783        "tan1\0"
784        "tan2\0"
785        "tan3\0"
786        "tan4\0"
787        "teal\0"
788        "thistle\0"
789        "thistle1\0"
790        "thistle2\0"
791        "thistle3\0"
792        "thistle4\0"
793        "tomato\0"
794        "tomato1\0"
795        "tomato2\0"
796        "tomato3\0"
797        "tomato4\0"
798        "turquoise\0"
799        "turquoise1\0"
800        "turquoise2\0"
801        "turquoise3\0"
802        "turquoise4\0"
803        "violet\0"
804        "violet red\0"
805        "VioletRed\0"
806        "VioletRed1\0"
807        "VioletRed2\0"
808        "VioletRed3\0"
809        "VioletRed4\0"
810        "web gray\0"
811        "web green\0"
812        "web grey\0"
813        "web maroon\0"
814        "web purple\0"
815        "WebGray\0"
816        "WebGreen\0"
817        "WebGrey\0"
818        "WebMaroon\0"
819        "WebPurple\0"
820        "wheat\0"
821        "wheat1\0"
822        "wheat2\0"
823        "wheat3\0"
824        "wheat4\0"
825        "white\0"
826        "white smoke\0"
827        "WhiteSmoke\0"
828        "x11 gray\0"
829        "x11 green\0"
830        "x11 grey\0"
831        "x11 maroon\0"
832        "x11 purple\0"
833        "X11Gray\0"
834        "X11Green\0"
835        "X11Grey\0"
836        "X11Maroon\0"
837        "X11Purple\0"
838        "yellow\0"
839        "yellow green\0"
840        "yellow1\0"
841        "yellow2\0"
842        "yellow3\0"
843        "yellow4\0"
844        "YellowGreen\0"
845};
846
847static const BuiltinColor BuiltinColors[] = {
848    {240, 248, 255, 0},         /* alice blue */
849    {240, 248, 255, 11},        /* AliceBlue */
850    {250, 235, 215, 21},        /* antique white */
851    {250, 235, 215, 35},        /* AntiqueWhite */
852    {255, 239, 219, 48},        /* AntiqueWhite1 */
853    {238, 223, 204, 62},        /* AntiqueWhite2 */
854    {205, 192, 176, 76},        /* AntiqueWhite3 */
855    {139, 131, 120, 90},        /* AntiqueWhite4 */
856    {0, 255, 255, 104},         /* aqua */
857    {127, 255, 212, 109},       /* aquamarine */
858    {127, 255, 212, 120},       /* aquamarine1 */
859    {118, 238, 198, 132},       /* aquamarine2 */
860    {102, 205, 170, 144},       /* aquamarine3 */
861    {69, 139, 116, 156},        /* aquamarine4 */
862    {240, 255, 255, 168},       /* azure */
863    {240, 255, 255, 174},       /* azure1 */
864    {224, 238, 238, 181},       /* azure2 */
865    {193, 205, 205, 188},       /* azure3 */
866    {131, 139, 139, 195},       /* azure4 */
867    {245, 245, 220, 202},       /* beige */
868    {255, 228, 196, 208},       /* bisque */
869    {255, 228, 196, 215},       /* bisque1 */
870    {238, 213, 183, 223},       /* bisque2 */
871    {205, 183, 158, 231},       /* bisque3 */
872    {139, 125, 107, 239},       /* bisque4 */
873    {0, 0, 0, 247},             /* black */
874    {255, 235, 205, 253},       /* blanched almond */
875    {255, 235, 205, 269},       /* BlanchedAlmond */
876    {0, 0, 255, 284},           /* blue */
877    {138, 43, 226, 289},        /* blue violet */
878    {0, 0, 255, 301},           /* blue1 */
879    {0, 0, 238, 307},           /* blue2 */
880    {0, 0, 205, 313},           /* blue3 */
881    {0, 0, 139, 319},           /* blue4 */
882    {138, 43, 226, 325},        /* BlueViolet */
883    {165, 42, 42, 336},         /* brown */
884    {255, 64, 64, 342},         /* brown1 */
885    {238, 59, 59, 349},         /* brown2 */
886    {205, 51, 51, 356},         /* brown3 */
887    {139, 35, 35, 363},         /* brown4 */
888    {222, 184, 135, 370},       /* burlywood */
889    {255, 211, 155, 380},       /* burlywood1 */
890    {238, 197, 145, 391},       /* burlywood2 */
891    {205, 170, 125, 402},       /* burlywood3 */
892    {139, 115, 85, 413},        /* burlywood4 */
893    {95, 158, 160, 424},        /* cadet blue */
894    {95, 158, 160, 435},        /* CadetBlue */
895    {152, 245, 255, 445},       /* CadetBlue1 */
896    {142, 229, 238, 456},       /* CadetBlue2 */
897    {122, 197, 205, 467},       /* CadetBlue3 */
898    {83, 134, 139, 478},        /* CadetBlue4 */
899    {127, 255, 0, 489},         /* chartreuse */
900    {127, 255, 0, 500},         /* chartreuse1 */
901    {118, 238, 0, 512},         /* chartreuse2 */
902    {102, 205, 0, 524},         /* chartreuse3 */
903    {69, 139, 0, 536},          /* chartreuse4 */
904    {210, 105, 30, 548},        /* chocolate */
905    {255, 127, 36, 558},        /* chocolate1 */
906    {238, 118, 33, 569},        /* chocolate2 */
907    {205, 102, 29, 580},        /* chocolate3 */
908    {139, 69, 19, 591},         /* chocolate4 */
909    {255, 127, 80, 602},        /* coral */
910    {255, 114, 86, 608},        /* coral1 */
911    {238, 106, 80, 615},        /* coral2 */
912    {205, 91, 69, 622},         /* coral3 */
913    {139, 62, 47, 629},         /* coral4 */
914    {100, 149, 237, 636},       /* cornflower blue */
915    {100, 149, 237, 652},       /* CornflowerBlue */
916    {255, 248, 220, 667},       /* cornsilk */
917    {255, 248, 220, 676},       /* cornsilk1 */
918    {238, 232, 205, 686},       /* cornsilk2 */
919    {205, 200, 177, 696},       /* cornsilk3 */
920    {139, 136, 120, 706},       /* cornsilk4 */
921    {220, 20, 60, 716},         /* crimson */
922    {0, 255, 255, 724},         /* cyan */
923    {0, 255, 255, 729},         /* cyan1 */
924    {0, 238, 238, 735},         /* cyan2 */
925    {0, 205, 205, 741},         /* cyan3 */
926    {0, 139, 139, 747},         /* cyan4 */
927    {0, 0, 139, 753},           /* dark blue */
928    {0, 139, 139, 763},         /* dark cyan */
929    {184, 134, 11, 773},        /* dark goldenrod */
930    {169, 169, 169, 788},       /* dark gray */
931    {0, 100, 0, 798},           /* dark green */
932    {169, 169, 169, 809},       /* dark grey */
933    {189, 183, 107, 819},       /* dark khaki */
934    {139, 0, 139, 830},         /* dark magenta */
935    {85, 107, 47, 843},         /* dark olive green */
936    {255, 140, 0, 860},         /* dark orange */
937    {153, 50, 204, 872},        /* dark orchid */
938    {139, 0, 0, 884},           /* dark red */
939    {233, 150, 122, 893},       /* dark salmon */
940    {143, 188, 143, 905},       /* dark sea green */
941    {72, 61, 139, 920},         /* dark slate blue */
942    {47, 79, 79, 936},          /* dark slate gray */
943    {47, 79, 79, 952},          /* dark slate grey */
944    {0, 206, 209, 968},         /* dark turquoise */
945    {148, 0, 211, 983},         /* dark violet */
946    {0, 0, 139, 995},           /* DarkBlue */
947    {0, 139, 139, 1004},        /* DarkCyan */
948    {184, 134, 11, 1013},       /* DarkGoldenrod */
949    {255, 185, 15, 1027},       /* DarkGoldenrod1 */
950    {238, 173, 14, 1042},       /* DarkGoldenrod2 */
951    {205, 149, 12, 1057},       /* DarkGoldenrod3 */
952    {139, 101, 8, 1072},        /* DarkGoldenrod4 */
953    {169, 169, 169, 1087},      /* DarkGray */
954    {0, 100, 0, 1096},          /* DarkGreen */
955    {169, 169, 169, 1106},      /* DarkGrey */
956    {189, 183, 107, 1115},      /* DarkKhaki */
957    {139, 0, 139, 1125},        /* DarkMagenta */
958    {85, 107, 47, 1137},        /* DarkOliveGreen */
959    {202, 255, 112, 1152},      /* DarkOliveGreen1 */
960    {188, 238, 104, 1168},      /* DarkOliveGreen2 */
961    {162, 205, 90, 1184},       /* DarkOliveGreen3 */
962    {110, 139, 61, 1200},       /* DarkOliveGreen4 */
963    {255, 140, 0, 1216},        /* DarkOrange */
964    {255, 127, 0, 1227},        /* DarkOrange1 */
965    {238, 118, 0, 1239},        /* DarkOrange2 */
966    {205, 102, 0, 1251},        /* DarkOrange3 */
967    {139, 69, 0, 1263},         /* DarkOrange4 */
968    {153, 50, 204, 1275},       /* DarkOrchid */
969    {191, 62, 255, 1286},       /* DarkOrchid1 */
970    {178, 58, 238, 1298},       /* DarkOrchid2 */
971    {154, 50, 205, 1310},       /* DarkOrchid3 */
972    {104, 34, 139, 1322},       /* DarkOrchid4 */
973    {139, 0, 0, 1334},          /* DarkRed */
974    {233, 150, 122, 1342},      /* DarkSalmon */
975    {143, 188, 143, 1353},      /* DarkSeaGreen */
976    {193, 255, 193, 1366},      /* DarkSeaGreen1 */
977    {180, 238, 180, 1380},      /* DarkSeaGreen2 */
978    {155, 205, 155, 1394},      /* DarkSeaGreen3 */
979    {105, 139, 105, 1408},      /* DarkSeaGreen4 */
980    {72, 61, 139, 1422},        /* DarkSlateBlue */
981    {47, 79, 79, 1436},         /* DarkSlateGray */
982    {151, 255, 255, 1450},      /* DarkSlateGray1 */
983    {141, 238, 238, 1465},      /* DarkSlateGray2 */
984    {121, 205, 205, 1480},      /* DarkSlateGray3 */
985    {82, 139, 139, 1495},       /* DarkSlateGray4 */
986    {47, 79, 79, 1510},         /* DarkSlateGrey */
987    {0, 206, 209, 1524},        /* DarkTurquoise */
988    {148, 0, 211, 1538},        /* DarkViolet */
989    {255, 20, 147, 1549},       /* deep pink */
990    {0, 191, 255, 1559},        /* deep sky blue */
991    {255, 20, 147, 1573},       /* DeepPink */
992    {255, 20, 147, 1582},       /* DeepPink1 */
993    {238, 18, 137, 1592},       /* DeepPink2 */
994    {205, 16, 118, 1602},       /* DeepPink3 */
995    {139, 10, 80, 1612},        /* DeepPink4 */
996    {0, 191, 255, 1622},        /* DeepSkyBlue */
997    {0, 191, 255, 1634},        /* DeepSkyBlue1 */
998    {0, 178, 238, 1647},        /* DeepSkyBlue2 */
999    {0, 154, 205, 1660},        /* DeepSkyBlue3 */
1000    {0, 104, 139, 1673},        /* DeepSkyBlue4 */
1001    {105, 105, 105, 1686},      /* dim gray */
1002    {105, 105, 105, 1695},      /* dim grey */
1003    {105, 105, 105, 1704},      /* DimGray */
1004    {105, 105, 105, 1712},      /* DimGrey */
1005    {30, 144, 255, 1720},       /* dodger blue */
1006    {30, 144, 255, 1732},       /* DodgerBlue */
1007    {30, 144, 255, 1743},       /* DodgerBlue1 */
1008    {28, 134, 238, 1755},       /* DodgerBlue2 */
1009    {24, 116, 205, 1767},       /* DodgerBlue3 */
1010    {16, 78, 139, 1779},        /* DodgerBlue4 */
1011    {178, 34, 34, 1791},        /* firebrick */
1012    {255, 48, 48, 1801},        /* firebrick1 */
1013    {238, 44, 44, 1812},        /* firebrick2 */
1014    {205, 38, 38, 1823},        /* firebrick3 */
1015    {139, 26, 26, 1834},        /* firebrick4 */
1016    {255, 250, 240, 1845},      /* floral white */
1017    {255, 250, 240, 1858},      /* FloralWhite */
1018    {34, 139, 34, 1870},        /* forest green */
1019    {34, 139, 34, 1883},        /* ForestGreen */
1020    {255, 0, 255, 1895},        /* fuchsia */
1021    {220, 220, 220, 1903},      /* gainsboro */
1022    {248, 248, 255, 1913},      /* ghost white */
1023    {248, 248, 255, 1925},      /* GhostWhite */
1024    {255, 215, 0, 1936},        /* gold */
1025    {255, 215, 0, 1941},        /* gold1 */
1026    {238, 201, 0, 1947},        /* gold2 */
1027    {205, 173, 0, 1953},        /* gold3 */
1028    {139, 117, 0, 1959},        /* gold4 */
1029    {218, 165, 32, 1965},       /* goldenrod */
1030    {255, 193, 37, 1975},       /* goldenrod1 */
1031    {238, 180, 34, 1986},       /* goldenrod2 */
1032    {205, 155, 29, 1997},       /* goldenrod3 */
1033    {139, 105, 20, 2008},       /* goldenrod4 */
1034    {190, 190, 190, 2019},      /* gray */
1035    {0, 0, 0, 2024},            /* gray0 */
1036    {3, 3, 3, 2030},            /* gray1 */
1037    {26, 26, 26, 2036},         /* gray10 */
1038    {255, 255, 255, 2043},      /* gray100 */
1039    {28, 28, 28, 2051},         /* gray11 */
1040    {31, 31, 31, 2058},         /* gray12 */
1041    {33, 33, 33, 2065},         /* gray13 */
1042    {36, 36, 36, 2072},         /* gray14 */
1043    {38, 38, 38, 2079},         /* gray15 */
1044    {41, 41, 41, 2086},         /* gray16 */
1045    {43, 43, 43, 2093},         /* gray17 */
1046    {46, 46, 46, 2100},         /* gray18 */
1047    {48, 48, 48, 2107},         /* gray19 */
1048    {5, 5, 5, 2114},            /* gray2 */
1049    {51, 51, 51, 2120},         /* gray20 */
1050    {54, 54, 54, 2127},         /* gray21 */
1051    {56, 56, 56, 2134},         /* gray22 */
1052    {59, 59, 59, 2141},         /* gray23 */
1053    {61, 61, 61, 2148},         /* gray24 */
1054    {64, 64, 64, 2155},         /* gray25 */
1055    {66, 66, 66, 2162},         /* gray26 */
1056    {69, 69, 69, 2169},         /* gray27 */
1057    {71, 71, 71, 2176},         /* gray28 */
1058    {74, 74, 74, 2183},         /* gray29 */
1059    {8, 8, 8, 2190},            /* gray3 */
1060    {77, 77, 77, 2196},         /* gray30 */
1061    {79, 79, 79, 2203},         /* gray31 */
1062    {82, 82, 82, 2210},         /* gray32 */
1063    {84, 84, 84, 2217},         /* gray33 */
1064    {87, 87, 87, 2224},         /* gray34 */
1065    {89, 89, 89, 2231},         /* gray35 */
1066    {92, 92, 92, 2238},         /* gray36 */
1067    {94, 94, 94, 2245},         /* gray37 */
1068    {97, 97, 97, 2252},         /* gray38 */
1069    {99, 99, 99, 2259},         /* gray39 */
1070    {10, 10, 10, 2266},         /* gray4 */
1071    {102, 102, 102, 2272},      /* gray40 */
1072    {105, 105, 105, 2279},      /* gray41 */
1073    {107, 107, 107, 2286},      /* gray42 */
1074    {110, 110, 110, 2293},      /* gray43 */
1075    {112, 112, 112, 2300},      /* gray44 */
1076    {115, 115, 115, 2307},      /* gray45 */
1077    {117, 117, 117, 2314},      /* gray46 */
1078    {120, 120, 120, 2321},      /* gray47 */
1079    {122, 122, 122, 2328},      /* gray48 */
1080    {125, 125, 125, 2335},      /* gray49 */
1081    {13, 13, 13, 2342},         /* gray5 */
1082    {127, 127, 127, 2348},      /* gray50 */
1083    {130, 130, 130, 2355},      /* gray51 */
1084    {133, 133, 133, 2362},      /* gray52 */
1085    {135, 135, 135, 2369},      /* gray53 */
1086    {138, 138, 138, 2376},      /* gray54 */
1087    {140, 140, 140, 2383},      /* gray55 */
1088    {143, 143, 143, 2390},      /* gray56 */
1089    {145, 145, 145, 2397},      /* gray57 */
1090    {148, 148, 148, 2404},      /* gray58 */
1091    {150, 150, 150, 2411},      /* gray59 */
1092    {15, 15, 15, 2418},         /* gray6 */
1093    {153, 153, 153, 2424},      /* gray60 */
1094    {156, 156, 156, 2431},      /* gray61 */
1095    {158, 158, 158, 2438},      /* gray62 */
1096    {161, 161, 161, 2445},      /* gray63 */
1097    {163, 163, 163, 2452},      /* gray64 */
1098    {166, 166, 166, 2459},      /* gray65 */
1099    {168, 168, 168, 2466},      /* gray66 */
1100    {171, 171, 171, 2473},      /* gray67 */
1101    {173, 173, 173, 2480},      /* gray68 */
1102    {176, 176, 176, 2487},      /* gray69 */
1103    {18, 18, 18, 2494},         /* gray7 */
1104    {179, 179, 179, 2500},      /* gray70 */
1105    {181, 181, 181, 2507},      /* gray71 */
1106    {184, 184, 184, 2514},      /* gray72 */
1107    {186, 186, 186, 2521},      /* gray73 */
1108    {189, 189, 189, 2528},      /* gray74 */
1109    {191, 191, 191, 2535},      /* gray75 */
1110    {194, 194, 194, 2542},      /* gray76 */
1111    {196, 196, 196, 2549},      /* gray77 */
1112    {199, 199, 199, 2556},      /* gray78 */
1113    {201, 201, 201, 2563},      /* gray79 */
1114    {20, 20, 20, 2570},         /* gray8 */
1115    {204, 204, 204, 2576},      /* gray80 */
1116    {207, 207, 207, 2583},      /* gray81 */
1117    {209, 209, 209, 2590},      /* gray82 */
1118    {212, 212, 212, 2597},      /* gray83 */
1119    {214, 214, 214, 2604},      /* gray84 */
1120    {217, 217, 217, 2611},      /* gray85 */
1121    {219, 219, 219, 2618},      /* gray86 */
1122    {222, 222, 222, 2625},      /* gray87 */
1123    {224, 224, 224, 2632},      /* gray88 */
1124    {227, 227, 227, 2639},      /* gray89 */
1125    {23, 23, 23, 2646},         /* gray9 */
1126    {229, 229, 229, 2652},      /* gray90 */
1127    {232, 232, 232, 2659},      /* gray91 */
1128    {235, 235, 235, 2666},      /* gray92 */
1129    {237, 237, 237, 2673},      /* gray93 */
1130    {240, 240, 240, 2680},      /* gray94 */
1131    {242, 242, 242, 2687},      /* gray95 */
1132    {245, 245, 245, 2694},      /* gray96 */
1133    {247, 247, 247, 2701},      /* gray97 */
1134    {250, 250, 250, 2708},      /* gray98 */
1135    {252, 252, 252, 2715},      /* gray99 */
1136    {0, 255, 0, 2722},          /* green */
1137    {173, 255, 47, 2728},       /* green yellow */
1138    {0, 255, 0, 2741},          /* green1 */
1139    {0, 238, 0, 2748},          /* green2 */
1140    {0, 205, 0, 2755},          /* green3 */
1141    {0, 139, 0, 2762},          /* green4 */
1142    {173, 255, 47, 2769},       /* GreenYellow */
1143    {190, 190, 190, 2781},      /* grey */
1144    {0, 0, 0, 2786},            /* grey0 */
1145    {3, 3, 3, 2792},            /* grey1 */
1146    {26, 26, 26, 2798},         /* grey10 */
1147    {255, 255, 255, 2805},      /* grey100 */
1148    {28, 28, 28, 2813},         /* grey11 */
1149    {31, 31, 31, 2820},         /* grey12 */
1150    {33, 33, 33, 2827},         /* grey13 */
1151    {36, 36, 36, 2834},         /* grey14 */
1152    {38, 38, 38, 2841},         /* grey15 */
1153    {41, 41, 41, 2848},         /* grey16 */
1154    {43, 43, 43, 2855},         /* grey17 */
1155    {46, 46, 46, 2862},         /* grey18 */
1156    {48, 48, 48, 2869},         /* grey19 */
1157    {5, 5, 5, 2876},            /* grey2 */
1158    {51, 51, 51, 2882},         /* grey20 */
1159    {54, 54, 54, 2889},         /* grey21 */
1160    {56, 56, 56, 2896},         /* grey22 */
1161    {59, 59, 59, 2903},         /* grey23 */
1162    {61, 61, 61, 2910},         /* grey24 */
1163    {64, 64, 64, 2917},         /* grey25 */
1164    {66, 66, 66, 2924},         /* grey26 */
1165    {69, 69, 69, 2931},         /* grey27 */
1166    {71, 71, 71, 2938},         /* grey28 */
1167    {74, 74, 74, 2945},         /* grey29 */
1168    {8, 8, 8, 2952},            /* grey3 */
1169    {77, 77, 77, 2958},         /* grey30 */
1170    {79, 79, 79, 2965},         /* grey31 */
1171    {82, 82, 82, 2972},         /* grey32 */
1172    {84, 84, 84, 2979},         /* grey33 */
1173    {87, 87, 87, 2986},         /* grey34 */
1174    {89, 89, 89, 2993},         /* grey35 */
1175    {92, 92, 92, 3000},         /* grey36 */
1176    {94, 94, 94, 3007},         /* grey37 */
1177    {97, 97, 97, 3014},         /* grey38 */
1178    {99, 99, 99, 3021},         /* grey39 */
1179    {10, 10, 10, 3028},         /* grey4 */
1180    {102, 102, 102, 3034},      /* grey40 */
1181    {105, 105, 105, 3041},      /* grey41 */
1182    {107, 107, 107, 3048},      /* grey42 */
1183    {110, 110, 110, 3055},      /* grey43 */
1184    {112, 112, 112, 3062},      /* grey44 */
1185    {115, 115, 115, 3069},      /* grey45 */
1186    {117, 117, 117, 3076},      /* grey46 */
1187    {120, 120, 120, 3083},      /* grey47 */
1188    {122, 122, 122, 3090},      /* grey48 */
1189    {125, 125, 125, 3097},      /* grey49 */
1190    {13, 13, 13, 3104},         /* grey5 */
1191    {127, 127, 127, 3110},      /* grey50 */
1192    {130, 130, 130, 3117},      /* grey51 */
1193    {133, 133, 133, 3124},      /* grey52 */
1194    {135, 135, 135, 3131},      /* grey53 */
1195    {138, 138, 138, 3138},      /* grey54 */
1196    {140, 140, 140, 3145},      /* grey55 */
1197    {143, 143, 143, 3152},      /* grey56 */
1198    {145, 145, 145, 3159},      /* grey57 */
1199    {148, 148, 148, 3166},      /* grey58 */
1200    {150, 150, 150, 3173},      /* grey59 */
1201    {15, 15, 15, 3180},         /* grey6 */
1202    {153, 153, 153, 3186},      /* grey60 */
1203    {156, 156, 156, 3193},      /* grey61 */
1204    {158, 158, 158, 3200},      /* grey62 */
1205    {161, 161, 161, 3207},      /* grey63 */
1206    {163, 163, 163, 3214},      /* grey64 */
1207    {166, 166, 166, 3221},      /* grey65 */
1208    {168, 168, 168, 3228},      /* grey66 */
1209    {171, 171, 171, 3235},      /* grey67 */
1210    {173, 173, 173, 3242},      /* grey68 */
1211    {176, 176, 176, 3249},      /* grey69 */
1212    {18, 18, 18, 3256},         /* grey7 */
1213    {179, 179, 179, 3262},      /* grey70 */
1214    {181, 181, 181, 3269},      /* grey71 */
1215    {184, 184, 184, 3276},      /* grey72 */
1216    {186, 186, 186, 3283},      /* grey73 */
1217    {189, 189, 189, 3290},      /* grey74 */
1218    {191, 191, 191, 3297},      /* grey75 */
1219    {194, 194, 194, 3304},      /* grey76 */
1220    {196, 196, 196, 3311},      /* grey77 */
1221    {199, 199, 199, 3318},      /* grey78 */
1222    {201, 201, 201, 3325},      /* grey79 */
1223    {20, 20, 20, 3332},         /* grey8 */
1224    {204, 204, 204, 3338},      /* grey80 */
1225    {207, 207, 207, 3345},      /* grey81 */
1226    {209, 209, 209, 3352},      /* grey82 */
1227    {212, 212, 212, 3359},      /* grey83 */
1228    {214, 214, 214, 3366},      /* grey84 */
1229    {217, 217, 217, 3373},      /* grey85 */
1230    {219, 219, 219, 3380},      /* grey86 */
1231    {222, 222, 222, 3387},      /* grey87 */
1232    {224, 224, 224, 3394},      /* grey88 */
1233    {227, 227, 227, 3401},      /* grey89 */
1234    {23, 23, 23, 3408},         /* grey9 */
1235    {229, 229, 229, 3414},      /* grey90 */
1236    {232, 232, 232, 3421},      /* grey91 */
1237    {235, 235, 235, 3428},      /* grey92 */
1238    {237, 237, 237, 3435},      /* grey93 */
1239    {240, 240, 240, 3442},      /* grey94 */
1240    {242, 242, 242, 3449},      /* grey95 */
1241    {245, 245, 245, 3456},      /* grey96 */
1242    {247, 247, 247, 3463},      /* grey97 */
1243    {250, 250, 250, 3470},      /* grey98 */
1244    {252, 252, 252, 3477},      /* grey99 */
1245    {240, 255, 240, 3484},      /* honeydew */
1246    {240, 255, 240, 3493},      /* honeydew1 */
1247    {224, 238, 224, 3503},      /* honeydew2 */
1248    {193, 205, 193, 3513},      /* honeydew3 */
1249    {131, 139, 131, 3523},      /* honeydew4 */
1250    {255, 105, 180, 3533},      /* hot pink */
1251    {255, 105, 180, 3542},      /* HotPink */
1252    {255, 110, 180, 3550},      /* HotPink1 */
1253    {238, 106, 167, 3559},      /* HotPink2 */
1254    {205, 96, 144, 3568},       /* HotPink3 */
1255    {139, 58, 98, 3577},        /* HotPink4 */
1256    {205, 92, 92, 3586},        /* indian red */
1257    {205, 92, 92, 3597},        /* IndianRed */
1258    {255, 106, 106, 3607},      /* IndianRed1 */
1259    {238, 99, 99, 3618},        /* IndianRed2 */
1260    {205, 85, 85, 3629},        /* IndianRed3 */
1261    {139, 58, 58, 3640},        /* IndianRed4 */
1262    {75, 0, 130, 3651},         /* indigo */
1263    {255, 255, 240, 3658},      /* ivory */
1264    {255, 255, 240, 3664},      /* ivory1 */
1265    {238, 238, 224, 3671},      /* ivory2 */
1266    {205, 205, 193, 3678},      /* ivory3 */
1267    {139, 139, 131, 3685},      /* ivory4 */
1268    {240, 230, 140, 3692},      /* khaki */
1269    {255, 246, 143, 3698},      /* khaki1 */
1270    {238, 230, 133, 3705},      /* khaki2 */
1271    {205, 198, 115, 3712},      /* khaki3 */
1272    {139, 134, 78, 3719},       /* khaki4 */
1273    {230, 230, 250, 3726},      /* lavender */
1274    {255, 240, 245, 3735},      /* lavender blush */
1275    {255, 240, 245, 3750},      /* LavenderBlush */
1276    {255, 240, 245, 3764},      /* LavenderBlush1 */
1277    {238, 224, 229, 3779},      /* LavenderBlush2 */
1278    {205, 193, 197, 3794},      /* LavenderBlush3 */
1279    {139, 131, 134, 3809},      /* LavenderBlush4 */
1280    {124, 252, 0, 3824},        /* lawn green */
1281    {124, 252, 0, 3835},        /* LawnGreen */
1282    {255, 250, 205, 3845},      /* lemon chiffon */
1283    {255, 250, 205, 3859},      /* LemonChiffon */
1284    {255, 250, 205, 3872},      /* LemonChiffon1 */
1285    {238, 233, 191, 3886},      /* LemonChiffon2 */
1286    {205, 201, 165, 3900},      /* LemonChiffon3 */
1287    {139, 137, 112, 3914},      /* LemonChiffon4 */
1288    {173, 216, 230, 3928},      /* light blue */
1289    {240, 128, 128, 3939},      /* light coral */
1290    {224, 255, 255, 3951},      /* light cyan */
1291    {238, 221, 130, 3962},      /* light goldenrod */
1292    {250, 250, 210, 3978},      /* light goldenrod yellow */
1293    {211, 211, 211, 4001},      /* light gray */
1294    {144, 238, 144, 4012},      /* light green */
1295    {211, 211, 211, 4024},      /* light grey */
1296    {255, 182, 193, 4035},      /* light pink */
1297    {255, 160, 122, 4046},      /* light salmon */
1298    {32, 178, 170, 4059},       /* light sea green */
1299    {135, 206, 250, 4075},      /* light sky blue */
1300    {132, 112, 255, 4090},      /* light slate blue */
1301    {119, 136, 153, 4107},      /* light slate gray */
1302    {119, 136, 153, 4124},      /* light slate grey */
1303    {176, 196, 222, 4141},      /* light steel blue */
1304    {255, 255, 224, 4158},      /* light yellow */
1305    {173, 216, 230, 4171},      /* LightBlue */
1306    {191, 239, 255, 4181},      /* LightBlue1 */
1307    {178, 223, 238, 4192},      /* LightBlue2 */
1308    {154, 192, 205, 4203},      /* LightBlue3 */
1309    {104, 131, 139, 4214},      /* LightBlue4 */
1310    {240, 128, 128, 4225},      /* LightCoral */
1311    {224, 255, 255, 4236},      /* LightCyan */
1312    {224, 255, 255, 4246},      /* LightCyan1 */
1313    {209, 238, 238, 4257},      /* LightCyan2 */
1314    {180, 205, 205, 4268},      /* LightCyan3 */
1315    {122, 139, 139, 4279},      /* LightCyan4 */
1316    {238, 221, 130, 4290},      /* LightGoldenrod */
1317    {255, 236, 139, 4305},      /* LightGoldenrod1 */
1318    {238, 220, 130, 4321},      /* LightGoldenrod2 */
1319    {205, 190, 112, 4337},      /* LightGoldenrod3 */
1320    {139, 129, 76, 4353},       /* LightGoldenrod4 */
1321    {250, 250, 210, 4369},      /* LightGoldenrodYellow */
1322    {211, 211, 211, 4390},      /* LightGray */
1323    {144, 238, 144, 4400},      /* LightGreen */
1324    {211, 211, 211, 4411},      /* LightGrey */
1325    {255, 182, 193, 4421},      /* LightPink */
1326    {255, 174, 185, 4431},      /* LightPink1 */
1327    {238, 162, 173, 4442},      /* LightPink2 */
1328    {205, 140, 149, 4453},      /* LightPink3 */
1329    {139, 95, 101, 4464},       /* LightPink4 */
1330    {255, 160, 122, 4475},      /* LightSalmon */
1331    {255, 160, 122, 4487},      /* LightSalmon1 */
1332    {238, 149, 114, 4500},      /* LightSalmon2 */
1333    {205, 129, 98, 4513},       /* LightSalmon3 */
1334    {139, 87, 66, 4526},        /* LightSalmon4 */
1335    {32, 178, 170, 4539},       /* LightSeaGreen */
1336    {135, 206, 250, 4553},      /* LightSkyBlue */
1337    {176, 226, 255, 4566},      /* LightSkyBlue1 */
1338    {164, 211, 238, 4580},      /* LightSkyBlue2 */
1339    {141, 182, 205, 4594},      /* LightSkyBlue3 */
1340    {96, 123, 139, 4608},       /* LightSkyBlue4 */
1341    {132, 112, 255, 4622},      /* LightSlateBlue */
1342    {119, 136, 153, 4637},      /* LightSlateGray */
1343    {119, 136, 153, 4652},      /* LightSlateGrey */
1344    {176, 196, 222, 4667},      /* LightSteelBlue */
1345    {202, 225, 255, 4682},      /* LightSteelBlue1 */
1346    {188, 210, 238, 4698},      /* LightSteelBlue2 */
1347    {162, 181, 205, 4714},      /* LightSteelBlue3 */
1348    {110, 123, 139, 4730},      /* LightSteelBlue4 */
1349    {255, 255, 224, 4746},      /* LightYellow */
1350    {255, 255, 224, 4758},      /* LightYellow1 */
1351    {238, 238, 209, 4771},      /* LightYellow2 */
1352    {205, 205, 180, 4784},      /* LightYellow3 */
1353    {139, 139, 122, 4797},      /* LightYellow4 */
1354    {0, 255, 0, 4810},          /* lime */
1355    {50, 205, 50, 4815},        /* lime green */
1356    {50, 205, 50, 4826},        /* LimeGreen */
1357    {250, 240, 230, 4836},      /* linen */
1358    {255, 0, 255, 4842},        /* magenta */
1359    {255, 0, 255, 4850},        /* magenta1 */
1360    {238, 0, 238, 4859},        /* magenta2 */
1361    {205, 0, 205, 4868},        /* magenta3 */
1362    {139, 0, 139, 4877},        /* magenta4 */
1363    {176, 48, 96, 4886},        /* maroon */
1364    {255, 52, 179, 4893},       /* maroon1 */
1365    {238, 48, 167, 4901},       /* maroon2 */
1366    {205, 41, 144, 4909},       /* maroon3 */
1367    {139, 28, 98, 4917},        /* maroon4 */
1368    {102, 205, 170, 4925},      /* medium aquamarine */
1369    {0, 0, 205, 4943},          /* medium blue */
1370    {186, 85, 211, 4955},       /* medium orchid */
1371    {147, 112, 219, 4969},      /* medium purple */
1372    {60, 179, 113, 4983},       /* medium sea green */
1373    {123, 104, 238, 5000},      /* medium slate blue */
1374    {0, 250, 154, 5018},        /* medium spring green */
1375    {72, 209, 204, 5038},       /* medium turquoise */
1376    {199, 21, 133, 5055},       /* medium violet red */
1377    {102, 205, 170, 5073},      /* MediumAquamarine */
1378    {0, 0, 205, 5090},          /* MediumBlue */
1379    {186, 85, 211, 5101},       /* MediumOrchid */
1380    {224, 102, 255, 5114},      /* MediumOrchid1 */
1381    {209, 95, 238, 5128},       /* MediumOrchid2 */
1382    {180, 82, 205, 5142},       /* MediumOrchid3 */
1383    {122, 55, 139, 5156},       /* MediumOrchid4 */
1384    {147, 112, 219, 5170},      /* MediumPurple */
1385    {171, 130, 255, 5183},      /* MediumPurple1 */
1386    {159, 121, 238, 5197},      /* MediumPurple2 */
1387    {137, 104, 205, 5211},      /* MediumPurple3 */
1388    {93, 71, 139, 5225},        /* MediumPurple4 */
1389    {60, 179, 113, 5239},       /* MediumSeaGreen */
1390    {123, 104, 238, 5254},      /* MediumSlateBlue */
1391    {0, 250, 154, 5270},        /* MediumSpringGreen */
1392    {72, 209, 204, 5288},       /* MediumTurquoise */
1393    {199, 21, 133, 5304},       /* MediumVioletRed */
1394    {25, 25, 112, 5320},        /* midnight blue */
1395    {25, 25, 112, 5334},        /* MidnightBlue */
1396    {245, 255, 250, 5347},      /* mint cream */
1397    {245, 255, 250, 5358},      /* MintCream */
1398    {255, 228, 225, 5368},      /* misty rose */
1399    {255, 228, 225, 5379},      /* MistyRose */
1400    {255, 228, 225, 5389},      /* MistyRose1 */
1401    {238, 213, 210, 5400},      /* MistyRose2 */
1402    {205, 183, 181, 5411},      /* MistyRose3 */
1403    {139, 125, 123, 5422},      /* MistyRose4 */
1404    {255, 228, 181, 5433},      /* moccasin */
1405    {255, 222, 173, 5442},      /* navajo white */
1406    {255, 222, 173, 5455},      /* NavajoWhite */
1407    {255, 222, 173, 5467},      /* NavajoWhite1 */
1408    {238, 207, 161, 5480},      /* NavajoWhite2 */
1409    {205, 179, 139, 5493},      /* NavajoWhite3 */
1410    {139, 121, 94, 5506},       /* NavajoWhite4 */
1411    {0, 0, 128, 5519},          /* navy */
1412    {0, 0, 128, 5524},          /* navy blue */
1413    {0, 0, 128, 5534},          /* NavyBlue */
1414    {253, 245, 230, 5543},      /* old lace */
1415    {253, 245, 230, 5552},      /* OldLace */
1416    {128, 128, 0, 5560},        /* olive */
1417    {107, 142, 35, 5566},       /* olive drab */
1418    {107, 142, 35, 5577},       /* OliveDrab */
1419    {192, 255, 62, 5587},       /* OliveDrab1 */
1420    {179, 238, 58, 5598},       /* OliveDrab2 */
1421    {154, 205, 50, 5609},       /* OliveDrab3 */
1422    {105, 139, 34, 5620},       /* OliveDrab4 */
1423    {255, 165, 0, 5631},        /* orange */
1424    {255, 69, 0, 5638},         /* orange red */
1425    {255, 165, 0, 5649},        /* orange1 */
1426    {238, 154, 0, 5657},        /* orange2 */
1427    {205, 133, 0, 5665},        /* orange3 */
1428    {139, 90, 0, 5673},         /* orange4 */
1429    {255, 69, 0, 5681},         /* OrangeRed */
1430    {255, 69, 0, 5691},         /* OrangeRed1 */
1431    {238, 64, 0, 5702},         /* OrangeRed2 */
1432    {205, 55, 0, 5713},         /* OrangeRed3 */
1433    {139, 37, 0, 5724},         /* OrangeRed4 */
1434    {218, 112, 214, 5735},      /* orchid */
1435    {255, 131, 250, 5742},      /* orchid1 */
1436    {238, 122, 233, 5750},      /* orchid2 */
1437    {205, 105, 201, 5758},      /* orchid3 */
1438    {139, 71, 137, 5766},       /* orchid4 */
1439    {238, 232, 170, 5774},      /* pale goldenrod */
1440    {152, 251, 152, 5789},      /* pale green */
1441    {175, 238, 238, 5800},      /* pale turquoise */
1442    {219, 112, 147, 5815},      /* pale violet red */
1443    {238, 232, 170, 5831},      /* PaleGoldenrod */
1444    {152, 251, 152, 5845},      /* PaleGreen */
1445    {154, 255, 154, 5855},      /* PaleGreen1 */
1446    {144, 238, 144, 5866},      /* PaleGreen2 */
1447    {124, 205, 124, 5877},      /* PaleGreen3 */
1448    {84, 139, 84, 5888},        /* PaleGreen4 */
1449    {175, 238, 238, 5899},      /* PaleTurquoise */
1450    {187, 255, 255, 5913},      /* PaleTurquoise1 */
1451    {174, 238, 238, 5928},      /* PaleTurquoise2 */
1452    {150, 205, 205, 5943},      /* PaleTurquoise3 */
1453    {102, 139, 139, 5958},      /* PaleTurquoise4 */
1454    {219, 112, 147, 5973},      /* PaleVioletRed */
1455    {255, 130, 171, 5987},      /* PaleVioletRed1 */
1456    {238, 121, 159, 6002},      /* PaleVioletRed2 */
1457    {205, 104, 137, 6017},      /* PaleVioletRed3 */
1458    {139, 71, 93, 6032},        /* PaleVioletRed4 */
1459    {255, 239, 213, 6047},      /* papaya whip */
1460    {255, 239, 213, 6059},      /* PapayaWhip */
1461    {255, 218, 185, 6070},      /* peach puff */
1462    {255, 218, 185, 6081},      /* PeachPuff */
1463    {255, 218, 185, 6091},      /* PeachPuff1 */
1464    {238, 203, 173, 6102},      /* PeachPuff2 */
1465    {205, 175, 149, 6113},      /* PeachPuff3 */
1466    {139, 119, 101, 6124},      /* PeachPuff4 */
1467    {205, 133, 63, 6135},       /* peru */
1468    {255, 192, 203, 6140},      /* pink */
1469    {255, 181, 197, 6145},      /* pink1 */
1470    {238, 169, 184, 6151},      /* pink2 */
1471    {205, 145, 158, 6157},      /* pink3 */
1472    {139, 99, 108, 6163},       /* pink4 */
1473    {221, 160, 221, 6169},      /* plum */
1474    {255, 187, 255, 6174},      /* plum1 */
1475    {238, 174, 238, 6180},      /* plum2 */
1476    {205, 150, 205, 6186},      /* plum3 */
1477    {139, 102, 139, 6192},      /* plum4 */
1478    {176, 224, 230, 6198},      /* powder blue */
1479    {176, 224, 230, 6210},      /* PowderBlue */
1480    {160, 32, 240, 6221},       /* purple */
1481    {155, 48, 255, 6228},       /* purple1 */
1482    {145, 44, 238, 6236},       /* purple2 */
1483    {125, 38, 205, 6244},       /* purple3 */
1484    {85, 26, 139, 6252},        /* purple4 */
1485    {102, 51, 153, 6260},       /* rebecca purple */
1486    {102, 51, 153, 6275},       /* RebeccaPurple */
1487    {255, 0, 0, 6289},          /* red */
1488    {255, 0, 0, 6293},          /* red1 */
1489    {238, 0, 0, 6298},          /* red2 */
1490    {205, 0, 0, 6303},          /* red3 */
1491    {139, 0, 0, 6308},          /* red4 */
1492    {188, 143, 143, 6313},      /* rosy brown */
1493    {188, 143, 143, 6324},      /* RosyBrown */
1494    {255, 193, 193, 6334},      /* RosyBrown1 */
1495    {238, 180, 180, 6345},      /* RosyBrown2 */
1496    {205, 155, 155, 6356},      /* RosyBrown3 */
1497    {139, 105, 105, 6367},      /* RosyBrown4 */
1498    {65, 105, 225, 6378},       /* royal blue */
1499    {65, 105, 225, 6389},       /* RoyalBlue */
1500    {72, 118, 255, 6399},       /* RoyalBlue1 */
1501    {67, 110, 238, 6410},       /* RoyalBlue2 */
1502    {58, 95, 205, 6421},        /* RoyalBlue3 */
1503    {39, 64, 139, 6432},        /* RoyalBlue4 */
1504    {139, 69, 19, 6443},        /* saddle brown */
1505    {139, 69, 19, 6456},        /* SaddleBrown */
1506    {250, 128, 114, 6468},      /* salmon */
1507    {255, 140, 105, 6475},      /* salmon1 */
1508    {238, 130, 98, 6483},       /* salmon2 */
1509    {205, 112, 84, 6491},       /* salmon3 */
1510    {139, 76, 57, 6499},        /* salmon4 */
1511    {244, 164, 96, 6507},       /* sandy brown */
1512    {244, 164, 96, 6519},       /* SandyBrown */
1513    {46, 139, 87, 6530},        /* sea green */
1514    {46, 139, 87, 6540},        /* SeaGreen */
1515    {84, 255, 159, 6549},       /* SeaGreen1 */
1516    {78, 238, 148, 6559},       /* SeaGreen2 */
1517    {67, 205, 128, 6569},       /* SeaGreen3 */
1518    {46, 139, 87, 6579},        /* SeaGreen4 */
1519    {255, 245, 238, 6589},      /* seashell */
1520    {255, 245, 238, 6598},      /* seashell1 */
1521    {238, 229, 222, 6608},      /* seashell2 */
1522    {205, 197, 191, 6618},      /* seashell3 */
1523    {139, 134, 130, 6628},      /* seashell4 */
1524    {160, 82, 45, 6638},        /* sienna */
1525    {255, 130, 71, 6645},       /* sienna1 */
1526    {238, 121, 66, 6653},       /* sienna2 */
1527    {205, 104, 57, 6661},       /* sienna3 */
1528    {139, 71, 38, 6669},        /* sienna4 */
1529    {192, 192, 192, 6677},      /* silver */
1530    {135, 206, 235, 6684},      /* sky blue */
1531    {135, 206, 235, 6693},      /* SkyBlue */
1532    {135, 206, 255, 6701},      /* SkyBlue1 */
1533    {126, 192, 238, 6710},      /* SkyBlue2 */
1534    {108, 166, 205, 6719},      /* SkyBlue3 */
1535    {74, 112, 139, 6728},       /* SkyBlue4 */
1536    {106, 90, 205, 6737},       /* slate blue */
1537    {112, 128, 144, 6748},      /* slate gray */
1538    {112, 128, 144, 6759},      /* slate grey */
1539    {106, 90, 205, 6770},       /* SlateBlue */
1540    {131, 111, 255, 6780},      /* SlateBlue1 */
1541    {122, 103, 238, 6791},      /* SlateBlue2 */
1542    {105, 89, 205, 6802},       /* SlateBlue3 */
1543    {71, 60, 139, 6813},        /* SlateBlue4 */
1544    {112, 128, 144, 6824},      /* SlateGray */
1545    {198, 226, 255, 6834},      /* SlateGray1 */
1546    {185, 211, 238, 6845},      /* SlateGray2 */
1547    {159, 182, 205, 6856},      /* SlateGray3 */
1548    {108, 123, 139, 6867},      /* SlateGray4 */
1549    {112, 128, 144, 6878},      /* SlateGrey */
1550    {255, 250, 250, 6888},      /* snow */
1551    {255, 250, 250, 6893},      /* snow1 */
1552    {238, 233, 233, 6899},      /* snow2 */
1553    {205, 201, 201, 6905},      /* snow3 */
1554    {139, 137, 137, 6911},      /* snow4 */
1555    {0, 255, 127, 6917},        /* spring green */
1556    {0, 255, 127, 6930},        /* SpringGreen */
1557    {0, 255, 127, 6942},        /* SpringGreen1 */
1558    {0, 238, 118, 6955},        /* SpringGreen2 */
1559    {0, 205, 102, 6968},        /* SpringGreen3 */
1560    {0, 139, 69, 6981},         /* SpringGreen4 */
1561    {70, 130, 180, 6994},       /* steel blue */
1562    {70, 130, 180, 7005},       /* SteelBlue */
1563    {99, 184, 255, 7015},       /* SteelBlue1 */
1564    {92, 172, 238, 7026},       /* SteelBlue2 */
1565    {79, 148, 205, 7037},       /* SteelBlue3 */
1566    {54, 100, 139, 7048},       /* SteelBlue4 */
1567    {210, 180, 140, 7059},      /* tan */
1568    {255, 165, 79, 7063},       /* tan1 */
1569    {238, 154, 73, 7068},       /* tan2 */
1570    {205, 133, 63, 7073},       /* tan3 */
1571    {139, 90, 43, 7078},        /* tan4 */
1572    {0, 128, 128, 7083},        /* teal */
1573    {216, 191, 216, 7088},      /* thistle */
1574    {255, 225, 255, 7096},      /* thistle1 */
1575    {238, 210, 238, 7105},      /* thistle2 */
1576    {205, 181, 205, 7114},      /* thistle3 */
1577    {139, 123, 139, 7123},      /* thistle4 */
1578    {255, 99, 71, 7132},        /* tomato */
1579    {255, 99, 71, 7139},        /* tomato1 */
1580    {238, 92, 66, 7147},        /* tomato2 */
1581    {205, 79, 57, 7155},        /* tomato3 */
1582    {139, 54, 38, 7163},        /* tomato4 */
1583    {64, 224, 208, 7171},       /* turquoise */
1584    {0, 245, 255, 7181},        /* turquoise1 */
1585    {0, 229, 238, 7192},        /* turquoise2 */
1586    {0, 197, 205, 7203},        /* turquoise3 */
1587    {0, 134, 139, 7214},        /* turquoise4 */
1588    {238, 130, 238, 7225},      /* violet */
1589    {208, 32, 144, 7232},       /* violet red */
1590    {208, 32, 144, 7243},       /* VioletRed */
1591    {255, 62, 150, 7253},       /* VioletRed1 */
1592    {238, 58, 140, 7264},       /* VioletRed2 */
1593    {205, 50, 120, 7275},       /* VioletRed3 */
1594    {139, 34, 82, 7286},        /* VioletRed4 */
1595    {128, 128, 128, 7297},      /* web gray */
1596    {0, 128, 0, 7306},          /* web green */
1597    {128, 128, 128, 7316},      /* web grey */
1598    {128, 0, 0, 7325},          /* web maroon */
1599    {128, 0, 128, 7336},        /* web purple */
1600    {128, 128, 128, 7347},      /* WebGray */
1601    {0, 128, 0, 7355},          /* WebGreen */
1602    {128, 128, 128, 7364},      /* WebGrey */
1603    {128, 0, 0, 7372},          /* WebMaroon */
1604    {128, 0, 128, 7382},        /* WebPurple */
1605    {245, 222, 179, 7392},      /* wheat */
1606    {255, 231, 186, 7398},      /* wheat1 */
1607    {238, 216, 174, 7405},      /* wheat2 */
1608    {205, 186, 150, 7412},      /* wheat3 */
1609    {139, 126, 102, 7419},      /* wheat4 */
1610    {255, 255, 255, 7426},      /* white */
1611    {245, 245, 245, 7432},      /* white smoke */
1612    {245, 245, 245, 7444},      /* WhiteSmoke */
1613    {190, 190, 190, 7455},      /* x11 gray */
1614    {0, 255, 0, 7464},          /* x11 green */
1615    {190, 190, 190, 7474},      /* x11 grey */
1616    {176, 48, 96, 7483},        /* x11 maroon */
1617    {160, 32, 240, 7494},       /* x11 purple */
1618    {190, 190, 190, 7505},      /* X11Gray */
1619    {0, 255, 0, 7513},          /* X11Green */
1620    {190, 190, 190, 7522},      /* X11Grey */
1621    {176, 48, 96, 7530},        /* X11Maroon */
1622    {160, 32, 240, 7540},       /* X11Purple */
1623    {255, 255, 0, 7550},        /* yellow */
1624    {154, 205, 50, 7557},       /* yellow green */
1625    {255, 255, 0, 7570},        /* yellow1 */
1626    {238, 238, 0, 7578},        /* yellow2 */
1627    {205, 205, 0, 7586},        /* yellow3 */
1628    {139, 139, 0, 7594},        /* yellow4 */
1629    {154, 205, 50, 7602},       /* YellowGreen */
1630};
1631
1632Bool
1633OsLookupColor(int screen,
1634              char *name,
1635              unsigned int len,
1636              unsigned short *pred,
1637              unsigned short *pgreen, unsigned short *pblue)
1638{
1639    const BuiltinColor *c;
1640    int low, mid, high;
1641    int r;
1642
1643    low = 0;
1644    high = ARRAY_SIZE(BuiltinColors) - 1;
1645    while (high >= low) {
1646        mid = (low + high) / 2;
1647        c = &BuiltinColors[mid];
1648        r = strncasecmp(&BuiltinColorNames[c->name], name, len);
1649        if (r == 0 && len == strlen(&BuiltinColorNames[c->name])) {
1650            *pred = c->red * 0x101;
1651            *pgreen = c->green * 0x101;
1652            *pblue = c->blue * 0x101;
1653            return TRUE;
1654        }
1655        if (r < 0)
1656            low = mid + 1;
1657        else
1658            high = mid - 1;
1659    }
1660    return FALSE;
1661}
1662