summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/MochiKit/Color.js
Unidiff
Diffstat (limited to 'frontend/gamma/js/MochiKit/Color.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/js/MochiKit/Color.js17
1 files changed, 4 insertions, 13 deletions
diff --git a/frontend/gamma/js/MochiKit/Color.js b/frontend/gamma/js/MochiKit/Color.js
index 27dc2d0..f2a0f67 100644
--- a/frontend/gamma/js/MochiKit/Color.js
+++ b/frontend/gamma/js/MochiKit/Color.js
@@ -1,211 +1,211 @@
1/*** 1/***
2 2
3MochiKit.Color 1.5 3MochiKit.Color 1.5
4 4
5See <http://mochikit.com/> for documentation, downloads, license, etc. 5See <http://mochikit.com/> for documentation, downloads, license, etc.
6 6
7(c) 2005 Bob Ippolito and others. All rights Reserved. 7(c) 2005 Bob Ippolito and others. All rights Reserved.
8 8
9***/ 9***/
10 10
11MochiKit.Base._module('Color', '1.5', ['Base', 'DOM', 'Style']); 11MochiKit.Base.module(MochiKit, 'Color', '1.5', ['Base', 'DOM', 'Style']);
12 12
13/** @id MochiKit.Color.Color */ 13/** @id MochiKit.Color.Color */
14MochiKit.Color.Color = function (red, green, blue, alpha) { 14MochiKit.Color.Color = function (red, green, blue, alpha) {
15 if (typeof(alpha) == 'undefined' || alpha === null) { 15 if (typeof(alpha) == 'undefined' || alpha === null) {
16 alpha = 1.0; 16 alpha = 1.0;
17 } 17 }
18 this.rgb = { 18 this.rgb = {
19 r: red, 19 r: red,
20 g: green, 20 g: green,
21 b: blue, 21 b: blue,
22 a: alpha 22 a: alpha
23 }; 23 };
24}; 24};
25 25
26 26
27// Prototype methods 27// Prototype methods
28 28
29MochiKit.Color.Color.prototype = { 29MochiKit.Color.Color.prototype = {
30 30
31 __class__: MochiKit.Color.Color, 31 __class__: MochiKit.Color.Color,
32 32
33 /** @id MochiKit.Color.Color.prototype.colorWithAlpha */ 33 /** @id MochiKit.Color.Color.prototype.colorWithAlpha */
34 colorWithAlpha: function (alpha) { 34 colorWithAlpha: function (alpha) {
35 var rgb = this.rgb; 35 var rgb = this.rgb;
36 var m = MochiKit.Color; 36 var m = MochiKit.Color;
37 return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha); 37 return m.Color.fromRGB(rgb.r, rgb.g, rgb.b, alpha);
38 }, 38 },
39 39
40 /** @id MochiKit.Color.Color.prototype.colorWithHue */ 40 /** @id MochiKit.Color.Color.prototype.colorWithHue */
41 colorWithHue: function (hue) { 41 colorWithHue: function (hue) {
42 // get an HSL model, and set the new hue... 42 // get an HSL model, and set the new hue...
43 var hsl = this.asHSL(); 43 var hsl = this.asHSL();
44 hsl.h = hue; 44 hsl.h = hue;
45 var m = MochiKit.Color; 45 var m = MochiKit.Color;
46 // convert back to RGB... 46 // convert back to RGB...
47 return m.Color.fromHSL(hsl); 47 return m.Color.fromHSL(hsl);
48 }, 48 },
49 49
50 /** @id MochiKit.Color.Color.prototype.colorWithSaturation */ 50 /** @id MochiKit.Color.Color.prototype.colorWithSaturation */
51 colorWithSaturation: function (saturation) { 51 colorWithSaturation: function (saturation) {
52 // get an HSL model, and set the new hue... 52 // get an HSL model, and set the new hue...
53 var hsl = this.asHSL(); 53 var hsl = this.asHSL();
54 hsl.s = saturation; 54 hsl.s = saturation;
55 var m = MochiKit.Color; 55 var m = MochiKit.Color;
56 // convert back to RGB... 56 // convert back to RGB...
57 return m.Color.fromHSL(hsl); 57 return m.Color.fromHSL(hsl);
58 }, 58 },
59 59
60 /** @id MochiKit.Color.Color.prototype.colorWithLightness */ 60 /** @id MochiKit.Color.Color.prototype.colorWithLightness */
61 colorWithLightness: function (lightness) { 61 colorWithLightness: function (lightness) {
62 // get an HSL model, and set the new hue... 62 // get an HSL model, and set the new hue...
63 var hsl = this.asHSL(); 63 var hsl = this.asHSL();
64 hsl.l = lightness; 64 hsl.l = lightness;
65 var m = MochiKit.Color; 65 var m = MochiKit.Color;
66 // convert back to RGB... 66 // convert back to RGB...
67 return m.Color.fromHSL(hsl); 67 return m.Color.fromHSL(hsl);
68 }, 68 },
69 69
70 /** @id MochiKit.Color.Color.prototype.darkerColorWithLevel */ 70 /** @id MochiKit.Color.Color.prototype.darkerColorWithLevel */
71 darkerColorWithLevel: function (level) { 71 darkerColorWithLevel: function (level) {
72 var hsl = this.asHSL(); 72 var hsl = this.asHSL();
73 hsl.l = Math.max(hsl.l - level, 0); 73 hsl.l = Math.max(hsl.l - level, 0);
74 var m = MochiKit.Color; 74 var m = MochiKit.Color;
75 return m.Color.fromHSL(hsl); 75 return m.Color.fromHSL(hsl);
76 }, 76 },
77 77
78 /** @id MochiKit.Color.Color.prototype.lighterColorWithLevel */ 78 /** @id MochiKit.Color.Color.prototype.lighterColorWithLevel */
79 lighterColorWithLevel: function (level) { 79 lighterColorWithLevel: function (level) {
80 var hsl = this.asHSL(); 80 var hsl = this.asHSL();
81 hsl.l = Math.min(hsl.l + level, 1); 81 hsl.l = Math.min(hsl.l + level, 1);
82 var m = MochiKit.Color; 82 var m = MochiKit.Color;
83 return m.Color.fromHSL(hsl); 83 return m.Color.fromHSL(hsl);
84 }, 84 },
85 85
86 /** @id MochiKit.Color.Color.prototype.blendedColor */ 86 /** @id MochiKit.Color.Color.prototype.blendedColor */
87 blendedColor: function (other, /* optional */ fraction) { 87 blendedColor: function (other, /* optional */ fraction) {
88 if (typeof(fraction) == 'undefined' || fraction === null) { 88 if (typeof(fraction) == 'undefined' || fraction === null) {
89 fraction = 0.5; 89 fraction = 0.5;
90 } 90 }
91 var sf = 1.0 - fraction; 91 var sf = 1.0 - fraction;
92 var s = this.rgb; 92 var s = this.rgb;
93 var d = other.rgb; 93 var d = other.rgb;
94 var df = fraction; 94 var df = fraction;
95 return MochiKit.Color.Color.fromRGB( 95 return MochiKit.Color.Color.fromRGB(
96 (s.r * sf) + (d.r * df), 96 (s.r * sf) + (d.r * df),
97 (s.g * sf) + (d.g * df), 97 (s.g * sf) + (d.g * df),
98 (s.b * sf) + (d.b * df), 98 (s.b * sf) + (d.b * df),
99 (s.a * sf) + (d.a * df) 99 (s.a * sf) + (d.a * df)
100 ); 100 );
101 }, 101 },
102 102
103 /** @id MochiKit.Color.Color.prototype.compareRGB */ 103 /** @id MochiKit.Color.Color.prototype.compareRGB */
104 compareRGB: function (other) { 104 compareRGB: function (other) {
105 var a = this.asRGB(); 105 var a = this.asRGB();
106 var b = other.asRGB(); 106 var b = other.asRGB();
107 return MochiKit.Base.compare( 107 return MochiKit.Base.compare(
108 [a.r, a.g, a.b, a.a], 108 [a.r, a.g, a.b, a.a],
109 [b.r, b.g, b.b, b.a] 109 [b.r, b.g, b.b, b.a]
110 ); 110 );
111 }, 111 },
112 112
113 /** @id MochiKit.Color.Color.prototype.isLight */ 113 /** @id MochiKit.Color.Color.prototype.isLight */
114 isLight: function () { 114 isLight: function () {
115 return this.asHSL().b > 0.5; 115 return this.asHSL().l > 0.5;
116 }, 116 },
117 117
118 /** @id MochiKit.Color.Color.prototype.isDark */ 118 /** @id MochiKit.Color.Color.prototype.isDark */
119 isDark: function () { 119 isDark: function () {
120 return (!this.isLight()); 120 return (!this.isLight());
121 }, 121 },
122 122
123 /** @id MochiKit.Color.Color.prototype.toHSLString */ 123 /** @id MochiKit.Color.Color.prototype.toHSLString */
124 toHSLString: function () { 124 toHSLString: function () {
125 var c = this.asHSL(); 125 var c = this.asHSL();
126 var ccc = MochiKit.Color.clampColorComponent; 126 var ccc = MochiKit.Color.clampColorComponent;
127 var rval = this._hslString; 127 var rval = this._hslString;
128 if (!rval) { 128 if (!rval) {
129 var mid = ( 129 var mid = (
130 ccc(c.h, 360).toFixed(0) 130 ccc(c.h, 360).toFixed(0)
131 + "," + ccc(c.s, 100).toPrecision(4) + "%" 131 + "," + ccc(c.s, 100).toPrecision(4) + "%"
132 + "," + ccc(c.l, 100).toPrecision(4) + "%" 132 + "," + ccc(c.l, 100).toPrecision(4) + "%"
133 ); 133 );
134 var a = c.a; 134 var a = c.a;
135 if (a >= 1) { 135 if (a >= 1) {
136 a = 1; 136 a = 1;
137 rval = "hsl(" + mid + ")"; 137 rval = "hsl(" + mid + ")";
138 } else { 138 } else {
139 if (a <= 0) { 139 if (a <= 0) {
140 a = 0; 140 a = 0;
141 } 141 }
142 rval = "hsla(" + mid + "," + a + ")"; 142 rval = "hsla(" + mid + "," + a + ")";
143 } 143 }
144 this._hslString = rval; 144 this._hslString = rval;
145 } 145 }
146 return rval; 146 return rval;
147 }, 147 },
148 148
149 /** @id MochiKit.Color.Color.prototype.toRGBString */ 149 /** @id MochiKit.Color.Color.prototype.toRGBString */
150 toRGBString: function () { 150 toRGBString: function () {
151 var c = this.rgb; 151 var c = this.rgb;
152 var ccc = MochiKit.Color.clampColorComponent; 152 var ccc = MochiKit.Color.clampColorComponent;
153 var rval = this._rgbString; 153 var rval = this._rgbString;
154 if (!rval) { 154 if (!rval) {
155 var mid = ( 155 var mid = (
156 ccc(c.r, 255).toFixed(0) 156 ccc(c.r, 255).toFixed(0)
157 + "," + ccc(c.g, 255).toFixed(0) 157 + "," + ccc(c.g, 255).toFixed(0)
158 + "," + ccc(c.b, 255).toFixed(0) 158 + "," + ccc(c.b, 255).toFixed(0)
159 ); 159 );
160 if (c.a != 1) { 160 if (c.a != 1) {
161 rval = "rgba(" + mid + "," + c.a + ")"; 161 rval = "rgba(" + mid + "," + c.a + ")";
162 } else { 162 } else {
163 rval = "rgb(" + mid + ")"; 163 rval = "rgb(" + mid + ")";
164 } 164 }
165 this._rgbString = rval; 165 this._rgbString = rval;
166 } 166 }
167 return rval; 167 return rval;
168 }, 168 },
169 169
170 /** @id MochiKit.Color.Color.prototype.asRGB */ 170 /** @id MochiKit.Color.Color.prototype.asRGB */
171 asRGB: function () { 171 asRGB: function () {
172 return MochiKit.Base.clone(this.rgb); 172 return MochiKit.Base.clone(this.rgb);
173 }, 173 },
174 174
175 /** @id MochiKit.Color.Color.prototype.toHexString */ 175 /** @id MochiKit.Color.Color.prototype.toHexString */
176 toHexString: function () { 176 toHexString: function () {
177 var m = MochiKit.Color; 177 var m = MochiKit.Color;
178 var c = this.rgb; 178 var c = this.rgb;
179 var ccc = MochiKit.Color.clampColorComponent; 179 var ccc = MochiKit.Color.clampColorComponent;
180 var rval = this._hexString; 180 var rval = this._hexString;
181 if (!rval) { 181 if (!rval) {
182 rval = ("#" + 182 rval = ("#" +
183 m.toColorPart(ccc(c.r, 255)) + 183 m.toColorPart(ccc(c.r, 255)) +
184 m.toColorPart(ccc(c.g, 255)) + 184 m.toColorPart(ccc(c.g, 255)) +
185 m.toColorPart(ccc(c.b, 255)) 185 m.toColorPart(ccc(c.b, 255))
186 ); 186 );
187 this._hexString = rval; 187 this._hexString = rval;
188 } 188 }
189 return rval; 189 return rval;
190 }, 190 },
191 191
192 /** @id MochiKit.Color.Color.prototype.asHSV */ 192 /** @id MochiKit.Color.Color.prototype.asHSV */
193 asHSV: function () { 193 asHSV: function () {
194 var hsv = this.hsv; 194 var hsv = this.hsv;
195 var c = this.rgb; 195 var c = this.rgb;
196 if (typeof(hsv) == 'undefined' || hsv === null) { 196 if (typeof(hsv) == 'undefined' || hsv === null) {
197 hsv = MochiKit.Color.rgbToHSV(this.rgb); 197 hsv = MochiKit.Color.rgbToHSV(this.rgb);
198 this.hsv = hsv; 198 this.hsv = hsv;
199 } 199 }
200 return MochiKit.Base.clone(hsv); 200 return MochiKit.Base.clone(hsv);
201 }, 201 },
202 202
203 /** @id MochiKit.Color.Color.prototype.asHSL */ 203 /** @id MochiKit.Color.Color.prototype.asHSL */
204 asHSL: function () { 204 asHSL: function () {
205 var hsl = this.hsl; 205 var hsl = this.hsl;
206 var c = this.rgb; 206 var c = this.rgb;
207 if (typeof(hsl) == 'undefined' || hsl === null) { 207 if (typeof(hsl) == 'undefined' || hsl === null) {
208 hsl = MochiKit.Color.rgbToHSL(this.rgb); 208 hsl = MochiKit.Color.rgbToHSL(this.rgb);
209 this.hsl = hsl; 209 this.hsl = hsl;
210 } 210 }
211 return MochiKit.Base.clone(hsl); 211 return MochiKit.Base.clone(hsl);
@@ -548,205 +548,196 @@ MochiKit.Base.update(MochiKit.Color, {
548 var hue; 548 var hue;
549 var saturation; 549 var saturation;
550 var lightness = (max + min) / 2.0; 550 var lightness = (max + min) / 2.0;
551 var delta = max - min; 551 var delta = max - min;
552 if (delta === 0) { 552 if (delta === 0) {
553 hue = 0; 553 hue = 0;
554 saturation = 0; 554 saturation = 0;
555 } else { 555 } else {
556 if (lightness <= 0.5) { 556 if (lightness <= 0.5) {
557 saturation = delta / (max + min); 557 saturation = delta / (max + min);
558 } else { 558 } else {
559 saturation = delta / (2 - max - min); 559 saturation = delta / (2 - max - min);
560 } 560 }
561 if (red == max) { 561 if (red == max) {
562 hue = (green - blue) / delta; 562 hue = (green - blue) / delta;
563 } else if (green == max) { 563 } else if (green == max) {
564 hue = 2 + ((blue - red) / delta); 564 hue = 2 + ((blue - red) / delta);
565 } else { 565 } else {
566 hue = 4 + ((red - green) / delta); 566 hue = 4 + ((red - green) / delta);
567 } 567 }
568 hue /= 6; 568 hue /= 6;
569 if (hue < 0) { 569 if (hue < 0) {
570 hue += 1; 570 hue += 1;
571 } 571 }
572 if (hue > 1) { 572 if (hue > 1) {
573 hue -= 1; 573 hue -= 1;
574 } 574 }
575 575
576 } 576 }
577 return { 577 return {
578 h: hue, 578 h: hue,
579 s: saturation, 579 s: saturation,
580 l: lightness, 580 l: lightness,
581 a: alpha 581 a: alpha
582 }; 582 };
583 }, 583 },
584 584
585 /** @id MochiKit.Color.toColorPart */ 585 /** @id MochiKit.Color.toColorPart */
586 toColorPart: function (num) { 586 toColorPart: function (num) {
587 num = Math.round(num); 587 num = Math.round(num);
588 var digits = num.toString(16); 588 var digits = num.toString(16);
589 if (num < 16) { 589 if (num < 16) {
590 return '0' + digits; 590 return '0' + digits;
591 } 591 }
592 return digits; 592 return digits;
593 }, 593 },
594 594
595 __new__: function () { 595 __new__: function () {
596 var m = MochiKit.Base; 596 var m = MochiKit.Base;
597 /** @id MochiKit.Color.Color.fromRGBString */ 597 /** @id MochiKit.Color.Color.fromRGBString */
598 this.Color.fromRGBString = m.bind( 598 this.Color.fromRGBString = m.bind(
599 this.Color._fromColorString, this.Color, "rgb", "fromRGB", 599 this.Color._fromColorString, this.Color, "rgb", "fromRGB",
600 [1.0/255.0, 1.0/255.0, 1.0/255.0, 1] 600 [1.0/255.0, 1.0/255.0, 1.0/255.0, 1]
601 ); 601 );
602 /** @id MochiKit.Color.Color.fromHSLString */ 602 /** @id MochiKit.Color.Color.fromHSLString */
603 this.Color.fromHSLString = m.bind( 603 this.Color.fromHSLString = m.bind(
604 this.Color._fromColorString, this.Color, "hsl", "fromHSL", 604 this.Color._fromColorString, this.Color, "hsl", "fromHSL",
605 [1.0/360.0, 0.01, 0.01, 1] 605 [1.0/360.0, 0.01, 0.01, 1]
606 ); 606 );
607 607
608 var third = 1.0 / 3.0; 608 var third = 1.0 / 3.0;
609 /** @id MochiKit.Color.colors */ 609 /** @id MochiKit.Color.colors */
610 var colors = { 610 var colors = {
611 // NSColor colors plus transparent 611 // NSColor colors plus transparent
612 /** @id MochiKit.Color.blackColor */ 612 /** @id MochiKit.Color.blackColor */
613 black: [0, 0, 0], 613 black: [0, 0, 0],
614 /** @id MochiKit.Color.blueColor */ 614 /** @id MochiKit.Color.blueColor */
615 blue: [0, 0, 1], 615 blue: [0, 0, 1],
616 /** @id MochiKit.Color.brownColor */ 616 /** @id MochiKit.Color.brownColor */
617 brown: [0.6, 0.4, 0.2], 617 brown: [0.6, 0.4, 0.2],
618 /** @id MochiKit.Color.cyanColor */ 618 /** @id MochiKit.Color.cyanColor */
619 cyan: [0, 1, 1], 619 cyan: [0, 1, 1],
620 /** @id MochiKit.Color.darkGrayColor */ 620 /** @id MochiKit.Color.darkGrayColor */
621 darkGray: [third, third, third], 621 darkGray: [third, third, third],
622 /** @id MochiKit.Color.grayColor */ 622 /** @id MochiKit.Color.grayColor */
623 gray: [0.5, 0.5, 0.5], 623 gray: [0.5, 0.5, 0.5],
624 /** @id MochiKit.Color.greenColor */ 624 /** @id MochiKit.Color.greenColor */
625 green: [0, 1, 0], 625 green: [0, 1, 0],
626 /** @id MochiKit.Color.lightGrayColor */ 626 /** @id MochiKit.Color.lightGrayColor */
627 lightGray: [2 * third, 2 * third, 2 * third], 627 lightGray: [2 * third, 2 * third, 2 * third],
628 /** @id MochiKit.Color.magentaColor */ 628 /** @id MochiKit.Color.magentaColor */
629 magenta: [1, 0, 1], 629 magenta: [1, 0, 1],
630 /** @id MochiKit.Color.orangeColor */ 630 /** @id MochiKit.Color.orangeColor */
631 orange: [1, 0.5, 0], 631 orange: [1, 0.5, 0],
632 /** @id MochiKit.Color.purpleColor */ 632 /** @id MochiKit.Color.purpleColor */
633 purple: [0.5, 0, 0.5], 633 purple: [0.5, 0, 0.5],
634 /** @id MochiKit.Color.redColor */ 634 /** @id MochiKit.Color.redColor */
635 red: [1, 0, 0], 635 red: [1, 0, 0],
636 /** @id MochiKit.Color.transparentColor */ 636 /** @id MochiKit.Color.transparentColor */
637 transparent: [0, 0, 0, 0], 637 transparent: [0, 0, 0, 0],
638 /** @id MochiKit.Color.whiteColor */ 638 /** @id MochiKit.Color.whiteColor */
639 white: [1, 1, 1], 639 white: [1, 1, 1],
640 /** @id MochiKit.Color.yellowColor */ 640 /** @id MochiKit.Color.yellowColor */
641 yellow: [1, 1, 0] 641 yellow: [1, 1, 0]
642 }; 642 };
643 643
644 var makeColor = function (name, r, g, b, a) {
645 var rval = this.fromRGB(r, g, b, a);
646 this[name] = function () { return rval; };
647 return rval;
648 };
649
650 for (var k in colors) { 644 for (var k in colors) {
651 var name = k + "Color"; 645 var name = k + "Color";
652 var bindArgs = m.concat( 646 var value = this.Color.fromRGB.apply(this.Color, colors[k]);
653 [makeColor, this.Color, name], 647 this.Color[name] = m.partial(m.operator.identity, value);
654 colors[k]
655 );
656 this.Color[name] = m.bind.apply(null, bindArgs);
657 } 648 }
658 649
659 var isColor = function () { 650 var isColor = function () {
660 for (var i = 0; i < arguments.length; i++) { 651 for (var i = 0; i < arguments.length; i++) {
661 if (!(arguments[i] instanceof MochiKit.Color.Color)) { 652 if (!(arguments[i] instanceof MochiKit.Color.Color)) {
662 return false; 653 return false;
663 } 654 }
664 } 655 }
665 return true; 656 return true;
666 }; 657 };
667 658
668 var compareColor = function (a, b) { 659 var compareColor = function (a, b) {
669 return a.compareRGB(b); 660 return a.compareRGB(b);
670 }; 661 };
671 662
672 m.nameFunctions(this); 663 m.nameFunctions(this);
673 664
674 m.registerComparator(this.Color.NAME, isColor, compareColor); 665 m.registerComparator(this.Color.NAME, isColor, compareColor);
675 } 666 }
676}); 667});
677 668
678MochiKit.Color.__new__(); 669MochiKit.Color.__new__();
679 670
680// Full table of css3 X11 colors <http://www.w3.org/TR/css3-color/#X11COLORS> 671// Full table of css3 X11 colors <http://www.w3.org/TR/css3-color/#X11COLORS>
681 672
682MochiKit.Color.Color._namedColors = { 673MochiKit.Color.Color._namedColors = {
683 aliceblue: "#f0f8ff", 674 aliceblue: "#f0f8ff",
684 antiquewhite: "#faebd7", 675 antiquewhite: "#faebd7",
685 aqua: "#00ffff", 676 aqua: "#00ffff",
686 aquamarine: "#7fffd4", 677 aquamarine: "#7fffd4",
687 azure: "#f0ffff", 678 azure: "#f0ffff",
688 beige: "#f5f5dc", 679 beige: "#f5f5dc",
689 bisque: "#ffe4c4", 680 bisque: "#ffe4c4",
690 black: "#000000", 681 black: "#000000",
691 blanchedalmond: "#ffebcd", 682 blanchedalmond: "#ffebcd",
692 blue: "#0000ff", 683 blue: "#0000ff",
693 blueviolet: "#8a2be2", 684 blueviolet: "#8a2be2",
694 brown: "#a52a2a", 685 brown: "#a52a2a",
695 burlywood: "#deb887", 686 burlywood: "#deb887",
696 cadetblue: "#5f9ea0", 687 cadetblue: "#5f9ea0",
697 chartreuse: "#7fff00", 688 chartreuse: "#7fff00",
698 chocolate: "#d2691e", 689 chocolate: "#d2691e",
699 coral: "#ff7f50", 690 coral: "#ff7f50",
700 cornflowerblue: "#6495ed", 691 cornflowerblue: "#6495ed",
701 cornsilk: "#fff8dc", 692 cornsilk: "#fff8dc",
702 crimson: "#dc143c", 693 crimson: "#dc143c",
703 cyan: "#00ffff", 694 cyan: "#00ffff",
704 darkblue: "#00008b", 695 darkblue: "#00008b",
705 darkcyan: "#008b8b", 696 darkcyan: "#008b8b",
706 darkgoldenrod: "#b8860b", 697 darkgoldenrod: "#b8860b",
707 darkgray: "#a9a9a9", 698 darkgray: "#a9a9a9",
708 darkgreen: "#006400", 699 darkgreen: "#006400",
709 darkgrey: "#a9a9a9", 700 darkgrey: "#a9a9a9",
710 darkkhaki: "#bdb76b", 701 darkkhaki: "#bdb76b",
711 darkmagenta: "#8b008b", 702 darkmagenta: "#8b008b",
712 darkolivegreen: "#556b2f", 703 darkolivegreen: "#556b2f",
713 darkorange: "#ff8c00", 704 darkorange: "#ff8c00",
714 darkorchid: "#9932cc", 705 darkorchid: "#9932cc",
715 darkred: "#8b0000", 706 darkred: "#8b0000",
716 darksalmon: "#e9967a", 707 darksalmon: "#e9967a",
717 darkseagreen: "#8fbc8f", 708 darkseagreen: "#8fbc8f",
718 darkslateblue: "#483d8b", 709 darkslateblue: "#483d8b",
719 darkslategray: "#2f4f4f", 710 darkslategray: "#2f4f4f",
720 darkslategrey: "#2f4f4f", 711 darkslategrey: "#2f4f4f",
721 darkturquoise: "#00ced1", 712 darkturquoise: "#00ced1",
722 darkviolet: "#9400d3", 713 darkviolet: "#9400d3",
723 deeppink: "#ff1493", 714 deeppink: "#ff1493",
724 deepskyblue: "#00bfff", 715 deepskyblue: "#00bfff",
725 dimgray: "#696969", 716 dimgray: "#696969",
726 dimgrey: "#696969", 717 dimgrey: "#696969",
727 dodgerblue: "#1e90ff", 718 dodgerblue: "#1e90ff",
728 firebrick: "#b22222", 719 firebrick: "#b22222",
729 floralwhite: "#fffaf0", 720 floralwhite: "#fffaf0",
730 forestgreen: "#228b22", 721 forestgreen: "#228b22",
731 fuchsia: "#ff00ff", 722 fuchsia: "#ff00ff",
732 gainsboro: "#dcdcdc", 723 gainsboro: "#dcdcdc",
733 ghostwhite: "#f8f8ff", 724 ghostwhite: "#f8f8ff",
734 gold: "#ffd700", 725 gold: "#ffd700",
735 goldenrod: "#daa520", 726 goldenrod: "#daa520",
736 gray: "#808080", 727 gray: "#808080",
737 green: "#008000", 728 green: "#008000",
738 greenyellow: "#adff2f", 729 greenyellow: "#adff2f",
739 grey: "#808080", 730 grey: "#808080",
740 honeydew: "#f0fff0", 731 honeydew: "#f0fff0",
741 hotpink: "#ff69b4", 732 hotpink: "#ff69b4",
742 indianred: "#cd5c5c", 733 indianred: "#cd5c5c",
743 indigo: "#4b0082", 734 indigo: "#4b0082",
744 ivory: "#fffff0", 735 ivory: "#fffff0",
745 khaki: "#f0e68c", 736 khaki: "#f0e68c",
746 lavender: "#e6e6fa", 737 lavender: "#e6e6fa",
747 lavenderblush: "#fff0f5", 738 lavenderblush: "#fff0f5",
748 lawngreen: "#7cfc00", 739 lawngreen: "#7cfc00",
749 lemonchiffon: "#fffacd", 740 lemonchiffon: "#fffacd",
750 lightblue: "#add8e6", 741 lightblue: "#add8e6",
751 lightcoral: "#f08080", 742 lightcoral: "#f08080",
752 lightcyan: "#e0ffff", 743 lightcyan: "#e0ffff",