diff -Nabur oxyplot-develop/Source/OxyPlot/Rendering/OxyColor.cs src/OxyPlot/Rendering/OxyColor.cs
--- oxyplot-develop/Source/OxyPlot/Rendering/OxyColor.cs	2015-10-05 21:14:37.000000000 +0300
+++ src/OxyPlot/Rendering/OxyColor.cs	2015-11-10 21:31:50.380023990 +0300
@@ -11,6 +11,7 @@
 {
     using System;
     using System.Globalization;
+    using System.Reflection;
 
     /// <summary>
     /// Describes a color in terms of alpha, red, green, and blue channels.
@@ -41,6 +42,12 @@
         /// <value>The red value.</value>
         public byte R { get; private set; }
 
+        public bool HasCmyk { get; private set; }
+        public float C { get; private set; }
+        public float M { get; private set; }
+        public float Y { get; private set; }
+        public float K { get; private set; }
+
         /// <summary>
         /// Parse a string.
         /// </summary>
@@ -235,7 +242,8 @@
         /// <returns>A color.</returns>
         public static OxyColor FromAColor(byte a, OxyColor color)
         {
-            return FromArgb(a, color.R, color.G, color.B);
+            return new OxyColor { A = a, R = color.R, G = color.G, B = color.B, 
+            	HasCmyk = color.HasCmyk, C=color.C, M=color.M, Y=color.Y, K=color.K };
         }
 
         /// <summary>
@@ -248,7 +256,8 @@
         /// <returns>A color.</returns>
         public static OxyColor FromArgb(byte a, byte r, byte g, byte b)
         {
-            return new OxyColor { A = a, R = r, G = g, B = b };
+            return new OxyColor { A = a, R = r, G = g, B = b, 
+            	HasCmyk = false, C=0, M=0, Y=0, K=0 };
         }
 
         /// <summary>
@@ -261,7 +270,30 @@
         public static OxyColor FromRgb(byte r, byte g, byte b)
         {
             // ReSharper restore InconsistentNaming
-            return new OxyColor { A = 255, R = r, G = g, B = b };
+            return new OxyColor { A = 255, R = r, G = g, B = b,
+            	HasCmyk = false, C=0, M=0, Y=0, K=0 };
+        }
+
+        public static OxyColor FromUint32(uint argb, int c, int m, int y, int k)
+        {
+            var a = (byte)((argb & -16777216) >> 0x18);
+            var r = (byte)((argb & 0xff0000) >> 0x10);
+            var g = (byte)((argb & 0xff00) >> 8);
+            var b = (byte)(argb & 0xff);
+
+            return new OxyColor { A = a, R = r, G = g, B = b,
+            	HasCmyk = true, C=c/255f, M=m/255f, Y=y/255f, K=k/255f };
+        }
+
+        public static OxyColor FromUint32(uint argb, float c, float m, float y, float k)
+        {
+            var a = (byte)((argb & -16777216) >> 0x18);
+            var r = (byte)((argb & 0xff0000) >> 0x10);
+            var g = (byte)((argb & 0xff00) >> 8);
+            var b = (byte)(argb & 0xff);
+
+            return new OxyColor { A = a, R = r, G = g, B = b,
+            	HasCmyk = true, C=c, M=m, Y=y, K=k };
         }
 
         /// <summary>
@@ -354,8 +386,44 @@
         /// <returns>A <see cref="System.String" /> that represents this instance.</returns>
         public override string ToString()
         {
-            return string.Format(
-                CultureInfo.InvariantCulture, "#{0:x2}{1:x2}{2:x2}{3:x2}", this.A, this.R, this.G, this.B);
+            string z = string.Format(CultureInfo.InvariantCulture, "#{0:x2}{1:x2}{2:x2}{3:x2}", this.A, this.R, this.G, this.B);
+            checkIfWhiteOrBlack();
+            if(HasCmyk) { /* VK: disable icc for browsers */
+				z += string.Format(CultureInfo.InvariantCulture, " icc-color(CMYK,{0:0.0###},{0:0.0###},{0:0.0###},{0:0.0###})", 
+					C, M, Y, K);
+			}
+			return z;
+        }
+
+        public string ToSvgString()
+        {
+            string z = string.Format(CultureInfo.InvariantCulture, "rgb({0},{1},{2})", this.R, this.G, this.B);
+            checkIfWhiteOrBlack();
+            if(false && HasCmyk) { /* VK: disable icc for browsers */
+				z += string.Format(CultureInfo.InvariantCulture, " icc-color(CMYK,{0:0.0###},{1:0.0###},{2:0.0###},{3:0.0###})", 
+					C, M, Y, K);
+			}
+			return z;
+        }
+
+		private void checkIfWhiteOrBlack() 
+		{
+            Type t = typeof(OxyColors);
+            FieldInfo[] colors = t.GetFields(BindingFlags.Public | BindingFlags.Static);
+            foreach (var color in colors)
+            {
+                object c = color.GetValue(null);
+                if (this.Equals(c))
+                {
+                	OxyColor cc = (OxyColor)c;
+					C = cc.C;
+					M = cc.M;
+					Y = cc.Y;
+					K = cc.K;
+					HasCmyk = cc.HasCmyk;
+					break;
+                }
+            }
         }
 
         /// <summary>
diff -Nabur oxyplot-develop/Source/OxyPlot/Rendering/OxyColors.cs src/OxyPlot/Rendering/OxyColors.cs
--- oxyplot-develop/Source/OxyPlot/Rendering/OxyColors.cs	2015-10-05 21:14:37.000000000 +0300
+++ src/OxyPlot/Rendering/OxyColors.cs	2015-11-10 22:06:01.084123203 +0300
@@ -14,719 +14,683 @@
     /// </summary>
     public static class OxyColors
     {
-        /// <summary>
-        /// The undefined color.
-        /// </summary>
+    	// Utility colors
         public static readonly OxyColor Undefined = OxyColor.FromUInt32(0x00000000);
-
-        /// <summary>
-        /// The automatic color.
-        /// </summary>
         public static readonly OxyColor Automatic = OxyColor.FromUInt32(0x00000001);
+        public static readonly OxyColor Transparent = OxyColor.FromUInt32(0x00FFFFFF);
 
-        /// <summary>
-        /// The alice blue.
-        /// </summary>
-        public static readonly OxyColor AliceBlue = OxyColor.FromUInt32(0xFFF0F8FF);
-
-        /// <summary>
-        /// The antique white.
-        /// </summary>
-        public static readonly OxyColor AntiqueWhite = OxyColor.FromUInt32(0xFFFAEBD7);
+        // Colors with CMYK pairs
+    	public static readonly OxyColor AliceBlue = OxyColor.FromUint32(0xFFF0F8FF, 15,6,0,0);
+    	public static readonly OxyColor AntiqueWhite = OxyColor.FromUint32(0xFFFAEBD7, 0,14,34,5);
+    	public static readonly OxyColor AntiqueWhite1 = OxyColor.FromUint32(0xFFFFEEDB, 0,16,35,0);
+    	public static readonly OxyColor AntiqueWhite2 = OxyColor.FromUint32(0xFFEEDECC, 0,15,33,16);
+    	public static readonly OxyColor AntiqueWhite3 = OxyColor.FromUint32(0xFFCDBFB0, 0,13,28,49);
+    	public static readonly OxyColor AntiqueWhite4 = OxyColor.FromUint32(0xFF8B8278, 0,8,18,116);
+    	public static readonly OxyColor Aquamarine = OxyColor.FromUint32(0xFF7FFFD3, 128,0,43,0);
+    	public static readonly OxyColor Aquamarine1 = OxyColor.FromUint32(0xFF7FFFD3, 128,0,43,0);
+    	public static readonly OxyColor Aquamarine2 = OxyColor.FromUint32(0xFF76EEC5, 119,0,40,16);
+    	public static readonly OxyColor Aquamarine3 = OxyColor.FromUint32(0xFF66CDA9, 102,0,35,49);
+    	public static readonly OxyColor Aquamarine4 = OxyColor.FromUint32(0xFF458B73, 69,0,23,116);
+    	public static readonly OxyColor Azure = OxyColor.FromUint32(0xFFF0FFFE, 15,0,0,0);
+    	public static readonly OxyColor Azure1 = OxyColor.FromUint32(0xFFF0FFFE, 15,0,0,0);
+    	public static readonly OxyColor Azure2 = OxyColor.FromUint32(0xFFE0EEED, 14,0,0,16);
+    	public static readonly OxyColor Azure3 = OxyColor.FromUint32(0xFFC1CDCC, 11,0,0,49);
+    	public static readonly OxyColor Azure4 = OxyColor.FromUint32(0xFF838B8A, 7,0,0,116);
+    	public static readonly OxyColor Beige = OxyColor.FromUint32(0xFFF5F4DC, 0,0,24,9);
+    	public static readonly OxyColor Bisque = OxyColor.FromUint32(0xFFFFE4C5, 0,26,57,0);
+    	public static readonly OxyColor Bisque1 = OxyColor.FromUint32(0xFFFFE4C5, 0,26,57,0);
+    	public static readonly OxyColor Bisque2 = OxyColor.FromUint32(0xFFEED5B7, 0,24,54,16);
+    	public static readonly OxyColor Bisque3 = OxyColor.FromUint32(0xFFCDB69E, 0,22,46,49);
+    	public static readonly OxyColor Bisque4 = OxyColor.FromUint32(0xFF8B7C6B, 0,14,31,116);
+    	public static readonly OxyColor Black = OxyColor.FromUint32(0xFF000000, 0,0,0,255);
+    	public static readonly OxyColor BlancheDalmond = OxyColor.FromUint32(0xFFFFEACE, 0,20,48,0);
+    	public static readonly OxyColor Blue = OxyColor.FromUint32(0xFF0000FF, 255,255,0,0);
+    	public static readonly OxyColor Blue1 = OxyColor.FromUint32(0xFF0000FF, 255,255,0,0);
+    	public static readonly OxyColor Blue2 = OxyColor.FromUint32(0xFF0000EE, 238,238,0,16);
+    	public static readonly OxyColor Blue3 = OxyColor.FromUint32(0xFF0000CD, 205,205,0,49);
+    	public static readonly OxyColor Blue4 = OxyColor.FromUint32(0xFF00008B, 139,139,0,116);
+    	public static readonly OxyColor DarkBlue = OxyColor.FromUint32(0xFF00008B, 139,139,0,116);
+    	public static readonly OxyColor BlueViolet = OxyColor.FromUint32(0xFF892BE2, 88,182,0,29);
+    	public static readonly OxyColor Brown = OxyColor.FromUint32(0xFFA52A2A, 0,122,122,89);
+    	public static readonly OxyColor Brown1 = OxyColor.FromUint32(0xFFFF4040, 0,191,191,0);
+    	public static readonly OxyColor Brown2 = OxyColor.FromUint32(0xFFEE3B3B, 0,178,178,16);
+    	public static readonly OxyColor Brown3 = OxyColor.FromUint32(0xFFCD3333, 0,153,153,49);
+    	public static readonly OxyColor Brown4 = OxyColor.FromUint32(0xFF8B2323, 0,103,103,116);
+    	public static readonly OxyColor Burlywood = OxyColor.FromUint32(0xFFDEB687, 0,39,86,32);
+    	public static readonly OxyColor Burlywood1 = OxyColor.FromUint32(0xFFFFD19B, 0,45,99,0);
+    	public static readonly OxyColor Burlywood2 = OxyColor.FromUint32(0xFFEEC391, 0,42,92,16);
+    	public static readonly OxyColor Burlywood3 = OxyColor.FromUint32(0xFFCDA87D, 0,36,79,49);
+    	public static readonly OxyColor Burlywood4 = OxyColor.FromUint32(0xFF8B7255, 0,24,53,116);
+    	public static readonly OxyColor CadetBlue = OxyColor.FromUint32(0xFF5F9FA0, 64,0,0,95);
+    	public static readonly OxyColor CadetBlue1 = OxyColor.FromUint32(0xFF98F6FF, 103,8,0,0);
+    	public static readonly OxyColor CadetBlue2 = OxyColor.FromUint32(0xFF8EE6EE, 95,7,0,16);
+    	public static readonly OxyColor CadetBlue3 = OxyColor.FromUint32(0xFF7AC6CD, 82,6,0,49);
+    	public static readonly OxyColor CadetBlue4 = OxyColor.FromUint32(0xFF53868B, 55,4,0,116);
+    	public static readonly OxyColor Chartreuse = OxyColor.FromUint32(0xFF83FF00, 123,0,255,0);
+    	public static readonly OxyColor Chartreuse1 = OxyColor.FromUint32(0xFF83FF00, 123,0,255,0);
+    	public static readonly OxyColor Chartreuse2 = OxyColor.FromUint32(0xFF7BEE00, 114,0,238,16);
+    	public static readonly OxyColor Chartreuse3 = OxyColor.FromUint32(0xFF6ACD00, 98,0,205,49);
+    	public static readonly OxyColor Chartreuse4 = OxyColor.FromUint32(0xFF478B00, 67,0,139,116);
+    	public static readonly OxyColor Chocolate = OxyColor.FromUint32(0xFFD2661E, 0,107,179,45);
+    	public static readonly OxyColor Chocolate1 = OxyColor.FromUint32(0xFFFF7B24, 0,131,219,0);
+    	public static readonly OxyColor Chocolate2 = OxyColor.FromUint32(0xFFEE7321, 0,122,204,16);
+    	public static readonly OxyColor Chocolate3 = OxyColor.FromUint32(0xFFCD631D, 0,105,175,49);
+    	public static readonly OxyColor Chocolate4 = OxyColor.FromUint32(0xFF8B4313, 0,71,119,116);
+    	public static readonly OxyColor Coral = OxyColor.FromUint32(0xFFFF7D50, 0,129,175,0);
+    	public static readonly OxyColor Coral1 = OxyColor.FromUint32(0xFFFF7156, 0,141,169,0);
+    	public static readonly OxyColor Coral2 = OxyColor.FromUint32(0xFFEE6650, 0,135,157,16);
+    	public static readonly OxyColor Coral3 = OxyColor.FromUint32(0xFFCD5845, 0,116,135,49);
+    	public static readonly OxyColor Coral4 = OxyColor.FromUint32(0xFF8B3C2F, 0,78,91,116);
+    	public static readonly OxyColor CornFlowerBlue = OxyColor.FromUint32(0xFF6497ED, 136,85,0,17);
+    	public static readonly OxyColor CornSilk = OxyColor.FromUint32(0xFFFFF7DD, 0,7,33,0);
+    	public static readonly OxyColor CornSilk1 = OxyColor.FromUint32(0xFFFFF7DD, 0,7,33,0);
+    	public static readonly OxyColor CornSilk2 = OxyColor.FromUint32(0xFFEEE7CD, 0,6,32,16);
+    	public static readonly OxyColor CornSilk3 = OxyColor.FromUint32(0xFFCDC7B1, 0,5,27,49);
+    	public static readonly OxyColor CornSilk4 = OxyColor.FromUint32(0xFF8B8778, 0,3,18,116);
+    	public static readonly OxyColor Crimson = OxyColor.FromUint32(0xFFDC143E, 0,199,157,34);
+    	public static readonly OxyColor Cyan = OxyColor.FromUint32(0xFF00FFFC, 255,0,2,0);
+    	public static readonly OxyColor Cyan1 = OxyColor.FromUint32(0xFF00FFFC, 255,0,2,0);
+    	public static readonly OxyColor Cyan2 = OxyColor.FromUint32(0xFF00EEEB, 238,0,2,16);
+    	public static readonly OxyColor Cyan3 = OxyColor.FromUint32(0xFF00CDCA, 205,0,2,49);
+    	public static readonly OxyColor Cyan4 = OxyColor.FromUint32(0xFF008B89, 139,0,1,116);
+    	public static readonly OxyColor DarkGoldenrod = OxyColor.FromUint32(0xFFB8850B, 0,50,172,71);
+    	public static readonly OxyColor DarkGoldenRod = OxyColor.FromUint32(0xFFB8850B, 0,50,172,71);
+    	public static readonly OxyColor DarkGoldenRod1 = OxyColor.FromUint32(0xFFFFB80F, 0,70,240,0);
+    	public static readonly OxyColor DarkGoldenRod2 = OxyColor.FromUint32(0xFFEEAC0E, 0,65,224,16);
+    	public static readonly OxyColor DarkGoldenRod3 = OxyColor.FromUint32(0xFFCD940C, 0,56,192,49);
+    	public static readonly OxyColor DarkGoldenRod4 = OxyColor.FromUint32(0xFF8B6408, 0,38,130,116);
+    	public static readonly OxyColor DarkGreen = OxyColor.FromUint32(0xFF006400, 99,0,99,155);
+    	public static readonly OxyColor DarkKhaki = OxyColor.FromUint32(0xFFBDB66B, 0,6,81,65);
+    	public static readonly OxyColor DarkOliveGreen = OxyColor.FromUint32(0xFF556B2F, 21,0,59,147);
+    	public static readonly OxyColor DarkOliveGreen1 = OxyColor.FromUint32(0xFFCAFF70, 52,0,143,0);
+    	public static readonly OxyColor DarkOliveGreen2 = OxyColor.FromUint32(0xFFBDEE68, 48,0,133,16);
+    	public static readonly OxyColor DarkOliveGreen3 = OxyColor.FromUint32(0xFFA3CD5A, 41,0,114,49);
+    	public static readonly OxyColor DarkOliveGreen4 = OxyColor.FromUint32(0xFF6E8B3D, 28,0,77,116);
+    	public static readonly OxyColor DarkOrange = OxyColor.FromUint32(0xFFFF8A00, 0,117,255,0);
+    	public static readonly OxyColor DarkOrange1 = OxyColor.FromUint32(0xFFFF7E00, 0,129,255,0);
+    	public static readonly OxyColor DarkOrange2 = OxyColor.FromUint32(0xFFEE7500, 0,120,238,16);
+    	public static readonly OxyColor DarkOrange3 = OxyColor.FromUint32(0xFFCD6500, 0,103,205,49);
+    	public static readonly OxyColor DarkOrange4 = OxyColor.FromUint32(0xFF8B4400, 0,70,139,116);
+    	public static readonly OxyColor DarkOrchid = OxyColor.FromUint32(0xFF9732CC, 52,153,0,50);
+    	public static readonly OxyColor DarkOrchid1 = OxyColor.FromUint32(0xFFBD3EFF, 65,193,0,0);
+    	public static readonly OxyColor DarkOrchid2 = OxyColor.FromUint32(0xFFB03AEE, 61,179,0,16);
+    	public static readonly OxyColor DarkOrchid3 = OxyColor.FromUint32(0xFF9832CD, 52,154,0,49);
+    	public static readonly OxyColor DarkOrchid4 = OxyColor.FromUint32(0xFF67228B, 35,104,0,116);
+    	public static readonly OxyColor DarkSalmon = OxyColor.FromUint32(0xFFE9947A, 0,84,110,22);
+    	public static readonly OxyColor DarkSeaGreen = OxyColor.FromUint32(0xFF8FBC8F, 44,0,44,66);
+    	public static readonly OxyColor DarkSeaGreen1 = OxyColor.FromUint32(0xFFC1FFC1, 62,0,62,0);
+    	public static readonly OxyColor DarkSeaGreen2 = OxyColor.FromUint32(0xFFB4EEB4, 57,0,57,16);
+    	public static readonly OxyColor DarkSeaGreen3 = OxyColor.FromUint32(0xFF9BCD9B, 49,0,49,49);
+    	public static readonly OxyColor DarkSeaGreen4 = OxyColor.FromUint32(0xFF698B69, 33,0,33,116);
+    	public static readonly OxyColor DarkSlateBlue = OxyColor.FromUint32(0xFF463D8B, 68,77,0,116);
+    	public static readonly OxyColor DarkSlateGray = OxyColor.FromUint32(0xFF2F4F4E, 31,0,0,176);
+    	public static readonly OxyColor DarkSlateGray1 = OxyColor.FromUint32(0xFF97FFFD, 104,0,1,0);
+    	public static readonly OxyColor DarkSlateGray2 = OxyColor.FromUint32(0xFF8DEEEC, 96,0,1,16);
+    	public static readonly OxyColor DarkSlateGray3 = OxyColor.FromUint32(0xFF79CDCC, 83,0,0,49);
+    	public static readonly OxyColor DarkSlateGray4 = OxyColor.FromUint32(0xFF528B8A, 56,0,0,116);
+    	public static readonly OxyColor DarkSlateGrey = OxyColor.FromUint32(0xFF2F4F4E, 31,0,0,176);
+    	public static readonly OxyColor DarkTurquoise = OxyColor.FromUint32(0xFF00CED1, 209,2,0,46);
+    	public static readonly OxyColor DarkViolet = OxyColor.FromUint32(0xFF8F00D3, 67,211,0,44);
+    	public static readonly OxyColor DeepPink = OxyColor.FromUint32(0xFFFF1493, 0,235,107,0);
+    	public static readonly OxyColor DeepPink1 = OxyColor.FromUint32(0xFFFF1493, 0,235,107,0);
+    	public static readonly OxyColor DeepPink2 = OxyColor.FromUint32(0xFFEE1289, 0,219,100,16);
+    	public static readonly OxyColor DeepPink3 = OxyColor.FromUint32(0xFFCD1076, 0,188,86,49);
+    	public static readonly OxyColor DeepPink4 = OxyColor.FromUint32(0xFF8B0A53, 0,128,55,116);
+    	public static readonly OxyColor DeepSkyBlue = OxyColor.FromUint32(0xFF00C0FF, 255,63,0,0);
+    	public static readonly OxyColor DeepSkyBlue1 = OxyColor.FromUint32(0xFF00C0FF, 255,63,0,0);
+    	public static readonly OxyColor DeepSkyBlue2 = OxyColor.FromUint32(0xFF00B3EE, 238,58,0,16);
+    	public static readonly OxyColor DeepSkyBlue3 = OxyColor.FromUint32(0xFF009ACD, 205,50,0,49);
+    	public static readonly OxyColor DeepSkyBlue4 = OxyColor.FromUint32(0xFF00688B, 139,34,0,116);
+    	public static readonly OxyColor DimGray = OxyColor.FromUint32(0xFF696969, 0,0,0,150);
+    	public static readonly OxyColor DimGrey = OxyColor.FromUint32(0xFF696969, 0,0,0,150);
+    	public static readonly OxyColor DodgerBlue = OxyColor.FromUint32(0xFF1E92FF, 225,108,0,0);
+    	public static readonly OxyColor DodgerBlue1 = OxyColor.FromUint32(0xFF1E92FF, 225,108,0,0);
+    	public static readonly OxyColor DodgerBlue2 = OxyColor.FromUint32(0xFF1C88EE, 210,101,0,16);
+    	public static readonly OxyColor DodgerBlue3 = OxyColor.FromUint32(0xFF1875CD, 180,87,0,49);
+    	public static readonly OxyColor DodgerBlue4 = OxyColor.FromUint32(0xFF104F8B, 122,59,0,116);
+    	public static readonly OxyColor Firebrick = OxyColor.FromUint32(0xFFB22222, 0,143,143,77);
+    	public static readonly OxyColor Firebrick1 = OxyColor.FromUint32(0xFFFF3030, 0,207,207,0);
+    	public static readonly OxyColor Firebrick2 = OxyColor.FromUint32(0xFFEE2C2C, 0,193,193,16);
+    	public static readonly OxyColor Firebrick3 = OxyColor.FromUint32(0xFFCD2626, 0,166,166,49);
+    	public static readonly OxyColor Firebrick4 = OxyColor.FromUint32(0xFF8B1A1A, 0,112,112,116);
+    	public static readonly OxyColor FloralWhite = OxyColor.FromUint32(0xFFFFF9F0, 0,5,15,0);
+    	public static readonly OxyColor ForestGreen = OxyColor.FromUint32(0xFF228B22, 104,0,104,116);
+    	public static readonly OxyColor Gainsboro = OxyColor.FromUint32(0xFFDCDCDC, 0,0,0,34);
+    	public static readonly OxyColor GhostWhite = OxyColor.FromUint32(0xFFF8F8FF, 7,7,0,0);
+    	public static readonly OxyColor Gold = OxyColor.FromUint32(0xFFFFD200, 0,44,255,0);
+    	public static readonly OxyColor Gold1 = OxyColor.FromUint32(0xFFFFD200, 0,44,255,0);
+    	public static readonly OxyColor Gold2 = OxyColor.FromUint32(0xFFEEC400, 0,41,238,16);
+    	public static readonly OxyColor Gold3 = OxyColor.FromUint32(0xFFCDA800, 0,36,205,49);
+    	public static readonly OxyColor Gold4 = OxyColor.FromUint32(0xFF8B7200, 0,24,139,116);
+    	public static readonly OxyColor Goldenrod = OxyColor.FromUint32(0xFFDAA320, 0,54,185,37);
+    	public static readonly OxyColor GoldenRod = OxyColor.FromUint32(0xFFDAA320, 0,54,185,37);
+    	public static readonly OxyColor GoldenRod1 = OxyColor.FromUint32(0xFFFFBE25, 0,64,218,0);
+    	public static readonly OxyColor GoldenRod2 = OxyColor.FromUint32(0xFFEEB222, 0,59,203,16);
+    	public static readonly OxyColor GoldenRod3 = OxyColor.FromUint32(0xFFCD991D, 0,51,175,49);
+    	public static readonly OxyColor GoldenRod4 = OxyColor.FromUint32(0xFF8B6814, 0,34,118,116);
+    	public static readonly OxyColor Gray = OxyColor.FromUint32(0xFFC0C0C0, 0,0,0,63);
+    	public static readonly OxyColor Gray0 = OxyColor.FromUint32(0xFF000000, 0,0,0,255);
+    	public static readonly OxyColor Gray1 = OxyColor.FromUint32(0xFF030303, 0,0,0,252);
+    	public static readonly OxyColor Gray10 = OxyColor.FromUint32(0xFF1A1A1A, 0,0,0,229);
+    	public static readonly OxyColor Gray100 = OxyColor.FromUint32(0xFFFFFFFF, 0,0,0,0);
+    	public static readonly OxyColor Gray11 = OxyColor.FromUint32(0xFF1C1C1C, 0,0,0,227);
+    	public static readonly OxyColor Gray12 = OxyColor.FromUint32(0xFF1F1F1F, 0,0,0,224);
+    	public static readonly OxyColor Gray13 = OxyColor.FromUint32(0xFF212121, 0,0,0,222);
+    	public static readonly OxyColor Gray14 = OxyColor.FromUint32(0xFF242424, 0,0,0,219);
+    	public static readonly OxyColor Gray15 = OxyColor.FromUint32(0xFF262626, 0,0,0,217);
+    	public static readonly OxyColor Gray16 = OxyColor.FromUint32(0xFF292929, 0,0,0,214);
+    	public static readonly OxyColor Gray17 = OxyColor.FromUint32(0xFF2B2B2B, 0,0,0,211);
+    	public static readonly OxyColor Gray18 = OxyColor.FromUint32(0xFF2E2E2E, 0,0,0,209);
+    	public static readonly OxyColor Gray19 = OxyColor.FromUint32(0xFF303030, 0,0,0,207);
+    	public static readonly OxyColor Gray2 = OxyColor.FromUint32(0xFF050505, 0,0,0,250);
+    	public static readonly OxyColor Gray20 = OxyColor.FromUint32(0xFF333333, 0,0,0,204);
+    	public static readonly OxyColor Gray21 = OxyColor.FromUint32(0xFF363636, 0,0,0,201);
+    	public static readonly OxyColor Gray22 = OxyColor.FromUint32(0xFF383838, 0,0,0,199);
+    	public static readonly OxyColor Gray23 = OxyColor.FromUint32(0xFF3B3B3B, 0,0,0,195);
+    	public static readonly OxyColor Gray24 = OxyColor.FromUint32(0xFF3D3D3D, 0,0,0,194);
+    	public static readonly OxyColor Gray25 = OxyColor.FromUint32(0xFF404040, 0,0,0,191);
+    	public static readonly OxyColor Gray26 = OxyColor.FromUint32(0xFF424242, 0,0,0,189);
+    	public static readonly OxyColor Gray27 = OxyColor.FromUint32(0xFF454545, 0,0,0,186);
+    	public static readonly OxyColor Gray28 = OxyColor.FromUint32(0xFF474747, 0,0,0,184);
+    	public static readonly OxyColor Gray29 = OxyColor.FromUint32(0xFF4A4A4A, 0,0,0,180);
+    	public static readonly OxyColor Gray3 = OxyColor.FromUint32(0xFF080808, 0,0,0,247);
+    	public static readonly OxyColor Gray30 = OxyColor.FromUint32(0xFF4D4D4D, 0,0,0,178);
+    	public static readonly OxyColor Gray31 = OxyColor.FromUint32(0xFF4F4F4F, 0,0,0,176);
+    	public static readonly OxyColor Gray32 = OxyColor.FromUint32(0xFF525252, 0,0,0,173);
+    	public static readonly OxyColor Gray33 = OxyColor.FromUint32(0xFF545454, 0,0,0,171);
+    	public static readonly OxyColor Gray34 = OxyColor.FromUint32(0xFF575757, 0,0,0,168);
+    	public static readonly OxyColor Gray35 = OxyColor.FromUint32(0xFF595959, 0,0,0,166);
+    	public static readonly OxyColor Gray36 = OxyColor.FromUint32(0xFF5C5C5C, 0,0,0,163);
+    	public static readonly OxyColor Gray37 = OxyColor.FromUint32(0xFF5E5E5E, 0,0,0,161);
+    	public static readonly OxyColor Gray38 = OxyColor.FromUint32(0xFF616161, 0,0,0,158);
+    	public static readonly OxyColor Gray39 = OxyColor.FromUint32(0xFF636363, 0,0,0,156);
+    	public static readonly OxyColor Gray4 = OxyColor.FromUint32(0xFF0A0A0A, 0,0,0,245);
+    	public static readonly OxyColor Gray40 = OxyColor.FromUint32(0xFF666666, 0,0,0,153);
+    	public static readonly OxyColor Gray41 = OxyColor.FromUint32(0xFF696969, 0,0,0,150);
+    	public static readonly OxyColor Gray42 = OxyColor.FromUint32(0xFF6B6B6B, 0,0,0,147);
+    	public static readonly OxyColor Gray43 = OxyColor.FromUint32(0xFF6E6E6E, 0,0,0,145);
+    	public static readonly OxyColor Gray44 = OxyColor.FromUint32(0xFF707070, 0,0,0,143);
+    	public static readonly OxyColor Gray45 = OxyColor.FromUint32(0xFF737373, 0,0,0,140);
+    	public static readonly OxyColor Gray46 = OxyColor.FromUint32(0xFF757575, 0,0,0,138);
+    	public static readonly OxyColor Gray47 = OxyColor.FromUint32(0xFF787878, 0,0,0,135);
+    	public static readonly OxyColor Gray48 = OxyColor.FromUint32(0xFF7A7A7A, 0,0,0,132);
+    	public static readonly OxyColor Gray49 = OxyColor.FromUint32(0xFF7D7D7D, 0,0,0,130);
+    	public static readonly OxyColor Gray5 = OxyColor.FromUint32(0xFF0D0D0D, 0,0,0,242);
+    	public static readonly OxyColor Gray50 = OxyColor.FromUint32(0xFF7F7F7F, 0,0,0,128);
+    	public static readonly OxyColor Gray51 = OxyColor.FromUint32(0xFF828282, 0,0,0,125);
+    	public static readonly OxyColor Gray52 = OxyColor.FromUint32(0xFF858585, 0,0,0,121);
+    	public static readonly OxyColor Gray53 = OxyColor.FromUint32(0xFF878787, 0,0,0,120);
+    	public static readonly OxyColor Gray54 = OxyColor.FromUint32(0xFF8A8A8A, 0,0,0,117);
+    	public static readonly OxyColor Gray55 = OxyColor.FromUint32(0xFF8C8C8C, 0,0,0,114);
+    	public static readonly OxyColor Gray56 = OxyColor.FromUint32(0xFF8F8F8F, 0,0,0,112);
+    	public static readonly OxyColor Gray57 = OxyColor.FromUint32(0xFF919191, 0,0,0,110);
+    	public static readonly OxyColor Gray58 = OxyColor.FromUint32(0xFF949494, 0,0,0,106);
+    	public static readonly OxyColor Gray59 = OxyColor.FromUint32(0xFF969696, 0,0,0,105);
+    	public static readonly OxyColor Gray6 = OxyColor.FromUint32(0xFF0F0F0F, 0,0,0,240);
+    	public static readonly OxyColor Gray60 = OxyColor.FromUint32(0xFF999999, 0,0,0,102);
+    	public static readonly OxyColor Gray61 = OxyColor.FromUint32(0xFF9C9C9C, 0,0,0,98);
+    	public static readonly OxyColor Gray62 = OxyColor.FromUint32(0xFF9E9E9E, 0,0,0,97);
+    	public static readonly OxyColor Gray63 = OxyColor.FromUint32(0xFFA1A1A1, 0,0,0,94);
+    	public static readonly OxyColor Gray64 = OxyColor.FromUint32(0xFFA3A3A3, 0,0,0,92);
+    	public static readonly OxyColor Gray65 = OxyColor.FromUint32(0xFFA6A6A6, 0,0,0,89);
+    	public static readonly OxyColor Gray66 = OxyColor.FromUint32(0xFFA8A8A8, 0,0,0,87);
+    	public static readonly OxyColor Gray67 = OxyColor.FromUint32(0xFFABABAB, 0,0,0,84);
+    	public static readonly OxyColor Gray68 = OxyColor.FromUint32(0xFFADADAD, 0,0,0,81);
+    	public static readonly OxyColor Gray69 = OxyColor.FromUint32(0xFFB0B0B0, 0,0,0,79);
+    	public static readonly OxyColor Gray7 = OxyColor.FromUint32(0xFF121212, 0,0,0,237);
+    	public static readonly OxyColor Gray70 = OxyColor.FromUint32(0xFFB3B3B3, 0,0,0,76);
+    	public static readonly OxyColor Gray71 = OxyColor.FromUint32(0xFFB5B5B5, 0,0,0,73);
+    	public static readonly OxyColor Gray72 = OxyColor.FromUint32(0xFFB8B8B8, 0,0,0,71);
+    	public static readonly OxyColor Gray73 = OxyColor.FromUint32(0xFFBABABA, 0,0,0,69);
+    	public static readonly OxyColor Gray74 = OxyColor.FromUint32(0xFFBDBDBD, 0,0,0,65);
+    	public static readonly OxyColor Gray75 = OxyColor.FromUint32(0xFFBFBFBF, 0,0,0,64);
+    	public static readonly OxyColor Gray76 = OxyColor.FromUint32(0xFFC2C2C2, 0,0,0,61);
+    	public static readonly OxyColor Gray77 = OxyColor.FromUint32(0xFFC4C4C4, 0,0,0,58);
+    	public static readonly OxyColor Gray78 = OxyColor.FromUint32(0xFFC7C7C7, 0,0,0,56);
+    	public static readonly OxyColor Gray79 = OxyColor.FromUint32(0xFFC9C9C9, 0,0,0,54);
+    	public static readonly OxyColor Gray8 = OxyColor.FromUint32(0xFF141414, 0,0,0,235);
+    	public static readonly OxyColor Gray80 = OxyColor.FromUint32(0xFFCCCCCC, 0,0,0,50);
+    	public static readonly OxyColor Gray81 = OxyColor.FromUint32(0xFFCFCFCF, 0,0,0,48);
+    	public static readonly OxyColor Gray82 = OxyColor.FromUint32(0xFFD1D1D1, 0,0,0,46);
+    	public static readonly OxyColor Gray83 = OxyColor.FromUint32(0xFFD4D4D4, 0,0,0,42);
+    	public static readonly OxyColor Gray84 = OxyColor.FromUint32(0xFFD6D6D6, 0,0,0,40);
+    	public static readonly OxyColor Gray85 = OxyColor.FromUint32(0xFFD9D9D9, 0,0,0,38);
+    	public static readonly OxyColor Gray86 = OxyColor.FromUint32(0xFFDBDBDB, 0,0,0,36);
+    	public static readonly OxyColor Gray87 = OxyColor.FromUint32(0xFFDEDEDE, 0,0,0,32);
+    	public static readonly OxyColor Gray88 = OxyColor.FromUint32(0xFFE0E0E0, 0,0,0,31);
+    	public static readonly OxyColor Gray89 = OxyColor.FromUint32(0xFFE3E3E3, 0,0,0,28);
+    	public static readonly OxyColor Gray9 = OxyColor.FromUint32(0xFF171717, 0,0,0,232);
+    	public static readonly OxyColor Gray90 = OxyColor.FromUint32(0xFFE5E5E5, 0,0,0,25);
+    	public static readonly OxyColor Gray91 = OxyColor.FromUint32(0xFFE8E8E8, 0,0,0,23);
+    	public static readonly OxyColor Gray92 = OxyColor.FromUint32(0xFFEBEBEB, 0,0,0,20);
+    	public static readonly OxyColor Gray93 = OxyColor.FromUint32(0xFFEDEDED, 0,0,0,17);
+    	public static readonly OxyColor Gray94 = OxyColor.FromUint32(0xFFF0F0F0, 0,0,0,15);
+    	public static readonly OxyColor Gray95 = OxyColor.FromUint32(0xFFF2F2F2, 0,0,0,13);
+    	public static readonly OxyColor Gray96 = OxyColor.FromUint32(0xFFF5F5F5, 0,0,0,9);
+    	public static readonly OxyColor Gray97 = OxyColor.FromUint32(0xFFF7F7F7, 0,0,0,8);
+    	public static readonly OxyColor Gray98 = OxyColor.FromUint32(0xFFFAFAFA, 0,0,0,5);
+    	public static readonly OxyColor Gray99 = OxyColor.FromUint32(0xFFFCFCFC, 0,0,0,2);
+    	public static readonly OxyColor Green = OxyColor.FromUint32(0xFF00FF00, 255,0,255,0);
+    	public static readonly OxyColor Green1 = OxyColor.FromUint32(0xFF00FF00, 255,0,255,0);
+    	public static readonly OxyColor Green2 = OxyColor.FromUint32(0xFF00EE00, 238,0,238,16);
+    	public static readonly OxyColor Green3 = OxyColor.FromUint32(0xFF00CD00, 205,0,205,49);
+    	public static readonly OxyColor Green4 = OxyColor.FromUint32(0xFF008B00, 139,0,139,116);
+    	public static readonly OxyColor GreenYellow = OxyColor.FromUint32(0xFFAEFF2F, 80,0,208,0);
+    	public static readonly OxyColor Grey = OxyColor.FromUint32(0xFFC0C0C0, 0,0,0,63);
+    	public static readonly OxyColor Grey0 = OxyColor.FromUint32(0xFF000000, 0,0,0,255);
+    	public static readonly OxyColor Grey1 = OxyColor.FromUint32(0xFF030303, 0,0,0,252);
+    	public static readonly OxyColor Grey10 = OxyColor.FromUint32(0xFF1A1A1A, 0,0,0,229);
+    	public static readonly OxyColor Grey100 = OxyColor.FromUint32(0xFFFFFFFF, 0,0,0,0);
+    	public static readonly OxyColor Grey11 = OxyColor.FromUint32(0xFF1C1C1C, 0,0,0,227);
+    	public static readonly OxyColor Grey12 = OxyColor.FromUint32(0xFF1F1F1F, 0,0,0,224);
+    	public static readonly OxyColor Grey13 = OxyColor.FromUint32(0xFF212121, 0,0,0,222);
+    	public static readonly OxyColor Grey14 = OxyColor.FromUint32(0xFF242424, 0,0,0,219);
+    	public static readonly OxyColor Grey15 = OxyColor.FromUint32(0xFF262626, 0,0,0,217);
+    	public static readonly OxyColor Grey16 = OxyColor.FromUint32(0xFF292929, 0,0,0,214);
+    	public static readonly OxyColor Grey17 = OxyColor.FromUint32(0xFF2B2B2B, 0,0,0,211);
+    	public static readonly OxyColor Grey18 = OxyColor.FromUint32(0xFF2E2E2E, 0,0,0,209);
+    	public static readonly OxyColor Grey19 = OxyColor.FromUint32(0xFF303030, 0,0,0,207);
+    	public static readonly OxyColor Grey2 = OxyColor.FromUint32(0xFF050505, 0,0,0,250);
+    	public static readonly OxyColor Grey20 = OxyColor.FromUint32(0xFF333333, 0,0,0,204);
+    	public static readonly OxyColor Grey21 = OxyColor.FromUint32(0xFF363636, 0,0,0,201);
+    	public static readonly OxyColor Grey22 = OxyColor.FromUint32(0xFF383838, 0,0,0,199);
+    	public static readonly OxyColor Grey23 = OxyColor.FromUint32(0xFF3B3B3B, 0,0,0,195);
+    	public static readonly OxyColor Grey24 = OxyColor.FromUint32(0xFF3D3D3D, 0,0,0,194);
+    	public static readonly OxyColor Grey25 = OxyColor.FromUint32(0xFF404040, 0,0,0,191);
+    	public static readonly OxyColor Grey26 = OxyColor.FromUint32(0xFF424242, 0,0,0,189);
+    	public static readonly OxyColor Grey27 = OxyColor.FromUint32(0xFF454545, 0,0,0,186);
+    	public static readonly OxyColor Grey28 = OxyColor.FromUint32(0xFF474747, 0,0,0,184);
+    	public static readonly OxyColor Grey29 = OxyColor.FromUint32(0xFF4A4A4A, 0,0,0,180);
+    	public static readonly OxyColor Grey3 = OxyColor.FromUint32(0xFF080808, 0,0,0,247);
+    	public static readonly OxyColor Grey30 = OxyColor.FromUint32(0xFF4D4D4D, 0,0,0,178);
+    	public static readonly OxyColor Grey31 = OxyColor.FromUint32(0xFF4F4F4F, 0,0,0,176);
+    	public static readonly OxyColor Grey32 = OxyColor.FromUint32(0xFF525252, 0,0,0,173);
+    	public static readonly OxyColor Grey33 = OxyColor.FromUint32(0xFF545454, 0,0,0,171);
+    	public static readonly OxyColor Grey34 = OxyColor.FromUint32(0xFF575757, 0,0,0,168);
+    	public static readonly OxyColor Grey35 = OxyColor.FromUint32(0xFF595959, 0,0,0,166);
+    	public static readonly OxyColor Grey36 = OxyColor.FromUint32(0xFF5C5C5C, 0,0,0,163);
+    	public static readonly OxyColor Grey37 = OxyColor.FromUint32(0xFF5E5E5E, 0,0,0,161);
+    	public static readonly OxyColor Grey38 = OxyColor.FromUint32(0xFF616161, 0,0,0,158);
+    	public static readonly OxyColor Grey39 = OxyColor.FromUint32(0xFF636363, 0,0,0,156);
+    	public static readonly OxyColor Grey4 = OxyColor.FromUint32(0xFF0A0A0A, 0,0,0,245);
+    	public static readonly OxyColor Grey40 = OxyColor.FromUint32(0xFF666666, 0,0,0,153);
+    	public static readonly OxyColor Grey41 = OxyColor.FromUint32(0xFF696969, 0,0,0,150);
+    	public static readonly OxyColor Grey42 = OxyColor.FromUint32(0xFF6B6B6B, 0,0,0,147);
+    	public static readonly OxyColor Grey43 = OxyColor.FromUint32(0xFF6E6E6E, 0,0,0,145);
+    	public static readonly OxyColor Grey44 = OxyColor.FromUint32(0xFF707070, 0,0,0,143);
+    	public static readonly OxyColor Grey45 = OxyColor.FromUint32(0xFF737373, 0,0,0,140);
+    	public static readonly OxyColor Grey46 = OxyColor.FromUint32(0xFF757575, 0,0,0,138);
+    	public static readonly OxyColor Grey47 = OxyColor.FromUint32(0xFF787878, 0,0,0,135);
+    	public static readonly OxyColor Grey48 = OxyColor.FromUint32(0xFF7A7A7A, 0,0,0,132);
+    	public static readonly OxyColor Grey49 = OxyColor.FromUint32(0xFF7D7D7D, 0,0,0,130);
+    	public static readonly OxyColor Grey5 = OxyColor.FromUint32(0xFF0D0D0D, 0,0,0,242);
+    	public static readonly OxyColor Grey50 = OxyColor.FromUint32(0xFF7F7F7F, 0,0,0,128);
+    	public static readonly OxyColor Grey51 = OxyColor.FromUint32(0xFF828282, 0,0,0,125);
+    	public static readonly OxyColor Grey52 = OxyColor.FromUint32(0xFF858585, 0,0,0,121);
+    	public static readonly OxyColor Grey53 = OxyColor.FromUint32(0xFF878787, 0,0,0,120);
+    	public static readonly OxyColor Grey54 = OxyColor.FromUint32(0xFF8A8A8A, 0,0,0,117);
+    	public static readonly OxyColor Grey55 = OxyColor.FromUint32(0xFF8C8C8C, 0,0,0,114);
+    	public static readonly OxyColor Grey56 = OxyColor.FromUint32(0xFF8F8F8F, 0,0,0,112);
+    	public static readonly OxyColor Grey57 = OxyColor.FromUint32(0xFF919191, 0,0,0,110);
+    	public static readonly OxyColor Grey58 = OxyColor.FromUint32(0xFF949494, 0,0,0,106);
+    	public static readonly OxyColor Grey59 = OxyColor.FromUint32(0xFF969696, 0,0,0,105);
+    	public static readonly OxyColor Grey6 = OxyColor.FromUint32(0xFF0F0F0F, 0,0,0,240);
+    	public static readonly OxyColor Grey60 = OxyColor.FromUint32(0xFF999999, 0,0,0,102);
+    	public static readonly OxyColor Grey61 = OxyColor.FromUint32(0xFF9C9C9C, 0,0,0,98);
+    	public static readonly OxyColor Grey62 = OxyColor.FromUint32(0xFF9E9E9E, 0,0,0,97);
+    	public static readonly OxyColor Grey63 = OxyColor.FromUint32(0xFFA1A1A1, 0,0,0,94);
+    	public static readonly OxyColor Grey64 = OxyColor.FromUint32(0xFFA3A3A3, 0,0,0,92);
+    	public static readonly OxyColor Grey65 = OxyColor.FromUint32(0xFFA6A6A6, 0,0,0,89);
+    	public static readonly OxyColor Grey66 = OxyColor.FromUint32(0xFFA8A8A8, 0,0,0,87);
+    	public static readonly OxyColor Grey67 = OxyColor.FromUint32(0xFFABABAB, 0,0,0,84);
+    	public static readonly OxyColor Grey68 = OxyColor.FromUint32(0xFFADADAD, 0,0,0,81);
+    	public static readonly OxyColor Grey69 = OxyColor.FromUint32(0xFFB0B0B0, 0,0,0,79);
+    	public static readonly OxyColor Grey7 = OxyColor.FromUint32(0xFF121212, 0,0,0,237);
+    	public static readonly OxyColor Grey70 = OxyColor.FromUint32(0xFFB3B3B3, 0,0,0,76);
+    	public static readonly OxyColor Grey71 = OxyColor.FromUint32(0xFFB5B5B5, 0,0,0,73);
+    	public static readonly OxyColor Grey72 = OxyColor.FromUint32(0xFFB8B8B8, 0,0,0,71);
+    	public static readonly OxyColor Grey73 = OxyColor.FromUint32(0xFFBABABA, 0,0,0,69);
+    	public static readonly OxyColor Grey74 = OxyColor.FromUint32(0xFFBDBDBD, 0,0,0,65);
+    	public static readonly OxyColor Grey75 = OxyColor.FromUint32(0xFFBFBFBF, 0,0,0,64);
+    	public static readonly OxyColor Grey76 = OxyColor.FromUint32(0xFFC2C2C2, 0,0,0,61);
+    	public static readonly OxyColor Grey77 = OxyColor.FromUint32(0xFFC4C4C4, 0,0,0,58);
+    	public static readonly OxyColor Grey78 = OxyColor.FromUint32(0xFFC7C7C7, 0,0,0,56);
+    	public static readonly OxyColor Grey79 = OxyColor.FromUint32(0xFFC9C9C9, 0,0,0,54);
+    	public static readonly OxyColor Grey8 = OxyColor.FromUint32(0xFF141414, 0,0,0,235);
+    	public static readonly OxyColor Grey80 = OxyColor.FromUint32(0xFFCCCCCC, 0,0,0,50);
+    	public static readonly OxyColor Grey81 = OxyColor.FromUint32(0xFFCFCFCF, 0,0,0,48);
+    	public static readonly OxyColor Grey82 = OxyColor.FromUint32(0xFFD1D1D1, 0,0,0,46);
+    	public static readonly OxyColor Grey83 = OxyColor.FromUint32(0xFFD4D4D4, 0,0,0,42);
+    	public static readonly OxyColor Grey84 = OxyColor.FromUint32(0xFFD6D6D6, 0,0,0,40);
+    	public static readonly OxyColor Grey85 = OxyColor.FromUint32(0xFFD9D9D9, 0,0,0,38);
+    	public static readonly OxyColor Grey86 = OxyColor.FromUint32(0xFFDBDBDB, 0,0,0,36);
+    	public static readonly OxyColor Grey87 = OxyColor.FromUint32(0xFFDEDEDE, 0,0,0,32);
+    	public static readonly OxyColor Grey88 = OxyColor.FromUint32(0xFFE0E0E0, 0,0,0,31);
+    	public static readonly OxyColor Grey89 = OxyColor.FromUint32(0xFFE3E3E3, 0,0,0,28);
+    	public static readonly OxyColor Grey9 = OxyColor.FromUint32(0xFF171717, 0,0,0,232);
+    	public static readonly OxyColor Grey90 = OxyColor.FromUint32(0xFFE5E5E5, 0,0,0,25);
+    	public static readonly OxyColor Grey91 = OxyColor.FromUint32(0xFFE8E8E8, 0,0,0,23);
+    	public static readonly OxyColor Grey92 = OxyColor.FromUint32(0xFFEBEBEB, 0,0,0,20);
+    	public static readonly OxyColor Grey93 = OxyColor.FromUint32(0xFFEDEDED, 0,0,0,17);
+    	public static readonly OxyColor Grey94 = OxyColor.FromUint32(0xFFF0F0F0, 0,0,0,15);
+    	public static readonly OxyColor Grey95 = OxyColor.FromUint32(0xFFF2F2F2, 0,0,0,13);
+    	public static readonly OxyColor Grey96 = OxyColor.FromUint32(0xFFF5F5F5, 0,0,0,9);
+    	public static readonly OxyColor Grey97 = OxyColor.FromUint32(0xFFF7F7F7, 0,0,0,8);
+    	public static readonly OxyColor Grey98 = OxyColor.FromUint32(0xFFFAFAFA, 0,0,0,5);
+    	public static readonly OxyColor Grey99 = OxyColor.FromUint32(0xFFFCFCFC, 0,0,0,2);
+    	public static readonly OxyColor Honeydew = OxyColor.FromUint32(0xFFF0FFF0, 15,0,15,0);
+    	public static readonly OxyColor HoneyDew = OxyColor.FromUint32(0xFFF0FFF0, 15,0,15,0);
+    	public static readonly OxyColor HoneyDew1 = OxyColor.FromUint32(0xFFF0FFF0, 15,0,15,0);
+    	public static readonly OxyColor HoneyDew2 = OxyColor.FromUint32(0xFFE0EEE0, 14,0,14,16);
+    	public static readonly OxyColor HoneyDew3 = OxyColor.FromUint32(0xFFC1CDC1, 11,0,11,49);
+    	public static readonly OxyColor HoneyDew4 = OxyColor.FromUint32(0xFF838B83, 7,0,7,116);
+    	public static readonly OxyColor HotPink = OxyColor.FromUint32(0xFFFF69B6, 0,150,72,0);
+    	public static readonly OxyColor HotPink1 = OxyColor.FromUint32(0xFFFF6EB5, 0,145,73,0);
+    	public static readonly OxyColor HotPink2 = OxyColor.FromUint32(0xFFEE6AA8, 0,131,69,16);
+    	public static readonly OxyColor HotPink3 = OxyColor.FromUint32(0xFFCD6090, 0,108,60,49);
+    	public static readonly OxyColor HotPink4 = OxyColor.FromUint32(0xFF8B3A62, 0,80,40,116);
+    	public static readonly OxyColor IndianRed = OxyColor.FromUint32(0xFFCD5C5C, 0,112,112,49);
+    	public static readonly OxyColor IndianRed1 = OxyColor.FromUint32(0xFFFF6A6A, 0,148,148,0);
+    	public static readonly OxyColor IndianRed2 = OxyColor.FromUint32(0xFFEE6363, 0,138,138,16);
+    	public static readonly OxyColor IndianRed3 = OxyColor.FromUint32(0xFFCD5555, 0,119,119,49);
+    	public static readonly OxyColor IndianRed4 = OxyColor.FromUint32(0xFF8B3A3A, 0,80,80,116);
+    	public static readonly OxyColor Indigo = OxyColor.FromUint32(0xFF490082, 56,130,0,125);
+    	public static readonly OxyColor Ivory = OxyColor.FromUint32(0xFFFFFEF0, 0,0,15,0);
+    	public static readonly OxyColor Ivory1 = OxyColor.FromUint32(0xFFFFFEF0, 0,0,15,0);
+    	public static readonly OxyColor Ivory2 = OxyColor.FromUint32(0xFFEEEDE0, 0,0,14,16);
+    	public static readonly OxyColor Ivory3 = OxyColor.FromUint32(0xFFCDCCC1, 0,0,11,49);
+    	public static readonly OxyColor Ivory4 = OxyColor.FromUint32(0xFF8B8A83, 0,0,7,116);
+    	public static readonly OxyColor Khaki = OxyColor.FromUint32(0xFFF0E58C, 0,10,99,15);
+    	public static readonly OxyColor Khaki1 = OxyColor.FromUint32(0xFFFFF58F, 0,9,112,0);
+    	public static readonly OxyColor Khaki2 = OxyColor.FromUint32(0xFFEEE585, 0,8,104,16);
+    	public static readonly OxyColor Khaki3 = OxyColor.FromUint32(0xFFCDC573, 0,7,89,49);
+    	public static readonly OxyColor Khaki4 = OxyColor.FromUint32(0xFF8B864E, 0,4,60,116);
+    	public static readonly OxyColor Lavender = OxyColor.FromUint32(0xFFE6E6FA, 19,19,0,5);
+    	public static readonly OxyColor LavenderBlush = OxyColor.FromUint32(0xFFFFF0F5, 0,15,9,0);
+    	public static readonly OxyColor LavenderBlush1 = OxyColor.FromUint32(0xFFFFF0F5, 0,15,9,0);
+    	public static readonly OxyColor LavenderBlush2 = OxyColor.FromUint32(0xFFEEE0E5, 0,14,8,16);
+    	public static readonly OxyColor LavenderBlush3 = OxyColor.FromUint32(0xFFCDC1C5, 0,11,7,49);
+    	public static readonly OxyColor LavenderBlush4 = OxyColor.FromUint32(0xFF8B8386, 0,7,4,116);
+    	public static readonly OxyColor LawnGreen = OxyColor.FromUint32(0xFF7CFC00, 127,0,252,2);
+    	public static readonly OxyColor LemonChiffon = OxyColor.FromUint32(0xFFFFF9CE, 0,5,48,0);
+    	public static readonly OxyColor LemonChiffon1 = OxyColor.FromUint32(0xFFFFF9CE, 0,5,48,0);
+    	public static readonly OxyColor LemonChiffon2 = OxyColor.FromUint32(0xFFEEE7BF, 0,6,46,16);
+    	public static readonly OxyColor LemonChiffon3 = OxyColor.FromUint32(0xFFCDC8A5, 0,4,39,49);
+    	public static readonly OxyColor LemonChiffon4 = OxyColor.FromUint32(0xFF8B8870, 0,2,26,116);
+    	public static readonly OxyColor LightBlue = OxyColor.FromUint32(0xFFADD9E6, 56,12,0,24);
+    	public static readonly OxyColor LightBlue1 = OxyColor.FromUint32(0xFFBFEFFF, 64,15,0,0);
+    	public static readonly OxyColor LightBlue2 = OxyColor.FromUint32(0xFFB2DFEE, 59,14,0,16);
+    	public static readonly OxyColor LightBlue3 = OxyColor.FromUint32(0xFF9AC0CD, 50,12,0,49);
+    	public static readonly OxyColor LightBlue4 = OxyColor.FromUint32(0xFF68838B, 34,7,0,116);
+    	public static readonly OxyColor LightCoral = OxyColor.FromUint32(0xFFF08080, 0,112,112,15);
+    	public static readonly OxyColor LightCyan = OxyColor.FromUint32(0xFFE0FFFE, 31,0,0,0);
+    	public static readonly OxyColor LightCyan1 = OxyColor.FromUint32(0xFFE0FFFE, 31,0,0,0);
+    	public static readonly OxyColor LightCyan2 = OxyColor.FromUint32(0xFFD1EEED, 28,0,0,16);
+    	public static readonly OxyColor LightCyan3 = OxyColor.FromUint32(0xFFB4CDCC, 24,0,0,49);
+    	public static readonly OxyColor LightCyan4 = OxyColor.FromUint32(0xFF7A8B8A, 16,0,0,116);
+    	public static readonly OxyColor LightGoldenrod = OxyColor.FromUint32(0xFFEEDB82, 0,18,107,16);
+    	public static readonly OxyColor LightGoldenRod = OxyColor.FromUint32(0xFFEEDB82, 0,18,107,16);
+    	public static readonly OxyColor LightGoldenRod1 = OxyColor.FromUint32(0xFFFFEA8B, 0,20,115,0);
+    	public static readonly OxyColor LightGoldenRod2 = OxyColor.FromUint32(0xFFEEDB82, 0,18,107,16);
+    	public static readonly OxyColor LightGoldenRod3 = OxyColor.FromUint32(0xFFCDBC70, 0,16,92,49);
+    	public static readonly OxyColor LightGoldenRod4 = OxyColor.FromUint32(0xFF8B7F4C, 0,11,62,116);
+    	public static readonly OxyColor LightGoldenrodYellow = OxyColor.FromUint32(0xFFFAF9D2, 0,0,39,5);
+    	public static readonly OxyColor LightGoldenRodYellow = OxyColor.FromUint32(0xFFFAF9D2, 0,0,39,5);
+    	public static readonly OxyColor LightGray = OxyColor.FromUint32(0xFFD3D3D3, 0,0,0,44);
+    	public static readonly OxyColor LightGrey = OxyColor.FromUint32(0xFFD3D3D3, 0,0,0,44);
+    	public static readonly OxyColor LightPink = OxyColor.FromUint32(0xFFFFB6C2, 0,73,60,0);
+    	public static readonly OxyColor LightPink1 = OxyColor.FromUint32(0xFFFFAEB9, 0,81,69,0);
+    	public static readonly OxyColor LightPink2 = OxyColor.FromUint32(0xFFEEA2AE, 0,75,63,16);
+    	public static readonly OxyColor LightPink3 = OxyColor.FromUint32(0xFFCD8C95, 0,64,55,49);
+    	public static readonly OxyColor LightPink4 = OxyColor.FromUint32(0xFF8B5F65, 0,43,37,116);
+    	public static readonly OxyColor LightSalmon = OxyColor.FromUint32(0xFFFFA07A, 0,94,132,0);
+    	public static readonly OxyColor LightSalmon1 = OxyColor.FromUint32(0xFFFFA07A, 0,94,132,0);
+    	public static readonly OxyColor LightSalmon2 = OxyColor.FromUint32(0xFFEE9272, 0,91,123,16);
+    	public static readonly OxyColor LightSalmon3 = OxyColor.FromUint32(0xFFCD8062, 0,76,106,49);
+    	public static readonly OxyColor LightSalmon4 = OxyColor.FromUint32(0xFF8B5642, 0,52,72,116);
+    	public static readonly OxyColor LightSeaGreen = OxyColor.FromUint32(0xFF20B2A9, 145,0,8,77);
+    	public static readonly OxyColor LightSkyBlue = OxyColor.FromUint32(0xFF87D0FA, 114,41,0,5);
+    	public static readonly OxyColor LightSkyBlue1 = OxyColor.FromUint32(0xFFB0E2FF, 79,28,0,0);
+    	public static readonly OxyColor LightSkyBlue2 = OxyColor.FromUint32(0xFFA4D3EE, 73,26,0,16);
+    	public static readonly OxyColor LightSkyBlue3 = OxyColor.FromUint32(0xFF8DB7CD, 63,21,0,49);
+    	public static readonly OxyColor LightSkyBlue4 = OxyColor.FromUint32(0xFF607B8B, 42,15,0,116);
+    	public static readonly OxyColor LightSlateBlue = OxyColor.FromUint32(0xFF8070FF, 126,143,0,0);
+    	public static readonly OxyColor LightSlateGray = OxyColor.FromUint32(0xFF778899, 33,16,0,102);
+    	public static readonly OxyColor LightSlateGrey = OxyColor.FromUint32(0xFF778899, 33,16,0,102);
+    	public static readonly OxyColor LightSteelBlue = OxyColor.FromUint32(0xFFB0C4DE, 45,25,0,32);
+    	public static readonly OxyColor LightSteelBlue1 = OxyColor.FromUint32(0xFFCAE1FF, 53,29,0,0);
+    	public static readonly OxyColor LightSteelBlue2 = OxyColor.FromUint32(0xFFBCD2EE, 49,27,0,16);
+    	public static readonly OxyColor LightSteelBlue3 = OxyColor.FromUint32(0xFFA2B5CD, 42,23,0,49);
+    	public static readonly OxyColor LightSteelBlue4 = OxyColor.FromUint32(0xFF6E7B8B, 28,15,0,116);
+    	public static readonly OxyColor LightYellow = OxyColor.FromUint32(0xFFFFFEE0, 0,0,31,0);
+    	public static readonly OxyColor LightYellow1 = OxyColor.FromUint32(0xFFFFFEE0, 0,0,31,0);
+    	public static readonly OxyColor LightYellow2 = OxyColor.FromUint32(0xFFEEEDD1, 0,0,28,16);
+    	public static readonly OxyColor LightYellow3 = OxyColor.FromUint32(0xFFCDCCB4, 0,0,24,49);
+    	public static readonly OxyColor LightYellow4 = OxyColor.FromUint32(0xFF8B8A7A, 0,0,16,116);
+    	public static readonly OxyColor LimeGreen = OxyColor.FromUint32(0xFF32CD32, 154,0,154,49);
+    	public static readonly OxyColor Linen = OxyColor.FromUint32(0xFFFAF0E6, 0,9,19,5);
+    	public static readonly OxyColor Magenta = OxyColor.FromUint32(0xFFFC00FF, 2,255,0,0);
+    	public static readonly OxyColor Magenta1 = OxyColor.FromUint32(0xFFFC00FF, 2,255,0,0);
+    	public static readonly OxyColor Magenta2 = OxyColor.FromUint32(0xFFEB00EE, 2,238,0,16);
+    	public static readonly OxyColor Magenta3 = OxyColor.FromUint32(0xFFCA00CD, 2,205,0,49);
+    	public static readonly OxyColor Magenta4 = OxyColor.FromUint32(0xFF89008B, 1,139,0,116);
+    	public static readonly OxyColor Maroon = OxyColor.FromUint32(0xFFB03060, 0,127,79,79);
+    	public static readonly OxyColor Maroon1 = OxyColor.FromUint32(0xFFFF34B4, 0,203,74,0);
+    	public static readonly OxyColor Maroon2 = OxyColor.FromUint32(0xFFEE30A8, 0,189,69,16);
+    	public static readonly OxyColor Maroon3 = OxyColor.FromUint32(0xFFCD2891, 0,164,59,49);
+    	public static readonly OxyColor Maroon4 = OxyColor.FromUint32(0xFF8B1C62, 0,110,40,116);
+    	public static readonly OxyColor MediumAquamarine = OxyColor.FromUint32(0xFF66CDA9, 102,0,35,49);
+    	public static readonly OxyColor MediumBlue = OxyColor.FromUint32(0xFF0000CD, 205,205,0,49);
+    	public static readonly OxyColor MediumOrchid = OxyColor.FromUint32(0xFFB955D3, 25,125,0,44);
+    	public static readonly OxyColor MediumOrchid1 = OxyColor.FromUint32(0xFFDC66FF, 34,153,0,0);
+    	public static readonly OxyColor MediumOrchid2 = OxyColor.FromUint32(0xFFCE5FEE, 31,142,0,16);
+    	public static readonly OxyColor MediumOrchid3 = OxyColor.FromUint32(0xFFB152CD, 27,123,0,49);
+    	public static readonly OxyColor MediumOrchid4 = OxyColor.FromUint32(0xFF78378B, 18,83,0,116);
+    	public static readonly OxyColor MediumPurple = OxyColor.FromUint32(0xFF9170DB, 73,106,0,36);
+    	public static readonly OxyColor MediumPurple1 = OxyColor.FromUint32(0xFFA882FF, 86,125,0,0);
+    	public static readonly OxyColor MediumPurple2 = OxyColor.FromUint32(0xFF9D79EE, 80,116,0,16);
+    	public static readonly OxyColor MediumPurple3 = OxyColor.FromUint32(0xFF8768CD, 69,100,0,49);
+    	public static readonly OxyColor MediumPurple4 = OxyColor.FromUint32(0xFF5C478B, 46,67,0,116);
+    	public static readonly OxyColor MediumSeaGreen = OxyColor.FromUint32(0xFF3CB36E, 118,0,68,76);
+    	public static readonly OxyColor MediumSlateBlue = OxyColor.FromUint32(0xFF7B68EE, 114,133,0,16);
+    	public static readonly OxyColor MediumSpringGreen = OxyColor.FromUint32(0xFF00FA98, 250,0,97,5);
+    	public static readonly OxyColor MediumTurquoise = OxyColor.FromUint32(0xFF48D1C8, 136,0,8,46);
+    	public static readonly OxyColor MediumVioletRed = OxyColor.FromUint32(0xFFC71586, 0,177,64,56);
+    	public static readonly OxyColor MidnightBlue = OxyColor.FromUint32(0xFF191970, 86,86,0,143);
+    	public static readonly OxyColor MintCream = OxyColor.FromUint32(0xFFF6FFFA, 8,0,4,0);
+    	public static readonly OxyColor MistyRose = OxyColor.FromUint32(0xFFFFE3E1, 0,27,30,0);
+    	public static readonly OxyColor MistyRose1 = OxyColor.FromUint32(0xFFFFE3E1, 0,27,30,0);
+    	public static readonly OxyColor MistyRose2 = OxyColor.FromUint32(0xFFEED4D2, 0,25,28,16);
+    	public static readonly OxyColor MistyRose3 = OxyColor.FromUint32(0xFFCDB7B5, 0,21,23,49);
+    	public static readonly OxyColor MistyRose4 = OxyColor.FromUint32(0xFF8B7D7B, 0,13,15,116);
+    	public static readonly OxyColor Moccasin = OxyColor.FromUint32(0xFFFFE2B6, 0,28,73,0);
+    	public static readonly OxyColor NavajoWhite = OxyColor.FromUint32(0xFFFFDDAE, 0,33,81,0);
+    	public static readonly OxyColor NavajoWhite1 = OxyColor.FromUint32(0xFFFFDDAE, 0,33,81,0);
+    	public static readonly OxyColor NavajoWhite2 = OxyColor.FromUint32(0xFFEECEA1, 0,31,76,16);
+    	public static readonly OxyColor NavajoWhite3 = OxyColor.FromUint32(0xFFCDB18B, 0,27,65,49);
+    	public static readonly OxyColor NavajoWhite4 = OxyColor.FromUint32(0xFF8B785E, 0,18,44,116);
+    	public static readonly OxyColor Navy = OxyColor.FromUint32(0xFF000080, 128,128,0,127);
+    	public static readonly OxyColor NavyBlue = OxyColor.FromUint32(0xFF000080, 128,128,0,127);
+    	public static readonly OxyColor OldLace = OxyColor.FromUint32(0xFFFDF4E6, 0,8,22,1);
+    	public static readonly OxyColor OliveDrab = OxyColor.FromUint32(0xFF6C8E23, 33,0,106,113);
+    	public static readonly OxyColor OliveDrab1 = OxyColor.FromUint32(0xFFC1FF3E, 61,0,193,0);
+    	public static readonly OxyColor OliveDrab2 = OxyColor.FromUint32(0xFFB5EE3A, 56,0,179,16);
+    	public static readonly OxyColor OliveDrab3 = OxyColor.FromUint32(0xFF9BCD32, 49,0,154,49);
+    	public static readonly OxyColor OliveDrab4 = OxyColor.FromUint32(0xFF698B22, 33,0,104,116);
+    	public static readonly OxyColor Orange = OxyColor.FromUint32(0xFFFFA200, 0,93,255,0);
+    	public static readonly OxyColor Orange1 = OxyColor.FromUint32(0xFFFFA200, 0,93,255,0);
+    	public static readonly OxyColor Orange2 = OxyColor.FromUint32(0xFFEE9700, 0,86,238,16);
+    	public static readonly OxyColor Orange3 = OxyColor.FromUint32(0xFFCD8200, 0,74,205,49);
+    	public static readonly OxyColor Orange4 = OxyColor.FromUint32(0xFF8B5800, 0,50,139,116);
+    	public static readonly OxyColor OrangeRed = OxyColor.FromUint32(0xFFFF4100, 0,189,255,0);
+    	public static readonly OxyColor OrangeRed1 = OxyColor.FromUint32(0xFFFF4100, 0,189,255,0);
+    	public static readonly OxyColor OrangeRed2 = OxyColor.FromUint32(0xFFEE3D00, 0,176,238,16);
+    	public static readonly OxyColor OrangeRed3 = OxyColor.FromUint32(0xFFCD3500, 0,151,205,49);
+    	public static readonly OxyColor OrangeRed4 = OxyColor.FromUint32(0xFF8B2300, 0,103,139,116);
+    	public static readonly OxyColor Orchid = OxyColor.FromUint32(0xFFDA70D6, 0,105,3,37);
+    	public static readonly OxyColor Orchid1 = OxyColor.FromUint32(0xFFFF83FA, 0,124,4,0);
+    	public static readonly OxyColor Orchid2 = OxyColor.FromUint32(0xFFEE7AE9, 0,115,4,16);
+    	public static readonly OxyColor Orchid3 = OxyColor.FromUint32(0xFFCD69C9, 0,99,3,49);
+    	public static readonly OxyColor Orchid4 = OxyColor.FromUint32(0xFF8B478A, 0,67,0,116);
+    	public static readonly OxyColor PaleGoldenrod = OxyColor.FromUint32(0xFFEEE6AA, 0,7,67,16);
+    	public static readonly OxyColor PaleGoldenRod = OxyColor.FromUint32(0xFFEEE6AA, 0,7,67,16);
+    	public static readonly OxyColor PaleGreen = OxyColor.FromUint32(0xFF98FB98, 98,0,98,4);
+    	public static readonly OxyColor PaleGreen1 = OxyColor.FromUint32(0xFF9AFF9A, 100,0,100,0);
+    	public static readonly OxyColor PaleGreen2 = OxyColor.FromUint32(0xFF90EE90, 93,0,93,16);
+    	public static readonly OxyColor PaleGreen3 = OxyColor.FromUint32(0xFF7CCD7C, 80,0,80,49);
+    	public static readonly OxyColor PaleGreen4 = OxyColor.FromUint32(0xFF548B54, 54,0,54,116);
+    	public static readonly OxyColor PaleTurquoise = OxyColor.FromUint32(0xFFAFEEED, 62,0,0,16);
+    	public static readonly OxyColor PaleTurquoise1 = OxyColor.FromUint32(0xFFBBFFFE, 67,0,0,0);
+    	public static readonly OxyColor PaleTurquoise2 = OxyColor.FromUint32(0xFFAEEEED, 63,0,0,16);
+    	public static readonly OxyColor PaleTurquoise3 = OxyColor.FromUint32(0xFF96CDCC, 54,0,0,49);
+    	public static readonly OxyColor PaleTurquoise4 = OxyColor.FromUint32(0xFF668B8A, 36,0,0,116);
+    	public static readonly OxyColor PaleVioletRed = OxyColor.FromUint32(0xFFDB7093, 0,106,71,36);
+    	public static readonly OxyColor PaleVioletRed1 = OxyColor.FromUint32(0xFFFF82AB, 0,125,83,0);
+    	public static readonly OxyColor PaleVioletRed2 = OxyColor.FromUint32(0xFFEE799F, 0,116,78,16);
+    	public static readonly OxyColor PaleVioletRed3 = OxyColor.FromUint32(0xFFCD6889, 0,100,67,49);
+    	public static readonly OxyColor PaleVioletRed4 = OxyColor.FromUint32(0xFF8B475D, 0,67,45,116);
+    	public static readonly OxyColor PapayaWhip = OxyColor.FromUint32(0xFFFFEFD6, 0,15,40,0);
+    	public static readonly OxyColor PeachPuff = OxyColor.FromUint32(0xFFFFD9B9, 0,37,70,0);
+    	public static readonly OxyColor PeachPuff1 = OxyColor.FromUint32(0xFFFFD9B9, 0,37,70,0);
+    	public static readonly OxyColor PeachPuff2 = OxyColor.FromUint32(0xFFEECAAD, 0,35,64,16);
+    	public static readonly OxyColor PeachPuff3 = OxyColor.FromUint32(0xFFCDAE95, 0,30,55,49);
+    	public static readonly OxyColor PeachPuff4 = OxyColor.FromUint32(0xFF8B7765, 0,19,37,116);
+    	public static readonly OxyColor Peru = OxyColor.FromUint32(0xFFCD823F, 0,74,141,49);
+    	public static readonly OxyColor Pink = OxyColor.FromUint32(0xFFFFC0CB, 0,63,51,0);
+    	public static readonly OxyColor Pink1 = OxyColor.FromUint32(0xFFFFB6C7, 0,73,55,0);
+    	public static readonly OxyColor Pink2 = OxyColor.FromUint32(0xFFEEA9B9, 0,68,52,16);
+    	public static readonly OxyColor Pink3 = OxyColor.FromUint32(0xFFCD919F, 0,59,45,49);
+    	public static readonly OxyColor Pink4 = OxyColor.FromUint32(0xFF8B636C, 0,39,30,116);
+    	public static readonly OxyColor Plum = OxyColor.FromUint32(0xFFDCA0DD, 0,60,0,33);
+    	public static readonly OxyColor Plum1 = OxyColor.FromUint32(0xFFFEBBFF, 0,67,0,0);
+    	public static readonly OxyColor Plum2 = OxyColor.FromUint32(0xFFEDAEEE, 0,63,0,16);
+    	public static readonly OxyColor Plum3 = OxyColor.FromUint32(0xFFCC96CD, 0,54,0,49);
+    	public static readonly OxyColor Plum4 = OxyColor.FromUint32(0xFF8A668B, 0,36,0,116);
+    	public static readonly OxyColor PowderBlue = OxyColor.FromUint32(0xFFB0E0E6, 53,5,0,24);
+    	public static readonly OxyColor Purple = OxyColor.FromUint32(0xFF9F1FF0, 80,208,0,15);
+    	public static readonly OxyColor Purple1 = OxyColor.FromUint32(0xFF9630FF, 104,207,0,0);
+    	public static readonly OxyColor Purple2 = OxyColor.FromUint32(0xFF902CEE, 93,193,0,16);
+    	public static readonly OxyColor Purple3 = OxyColor.FromUint32(0xFF7C26CD, 80,166,0,49);
+    	public static readonly OxyColor Purple4 = OxyColor.FromUint32(0xFF541A8B, 54,112,0,116);
+    	public static readonly OxyColor Red = OxyColor.FromUint32(0xFFFF0000, 0,255,255,0);
+    	public static readonly OxyColor Red1 = OxyColor.FromUint32(0xFFFF0000, 0,255,255,0);
+    	public static readonly OxyColor Red2 = OxyColor.FromUint32(0xFFEE0000, 0,238,238,16);
+    	public static readonly OxyColor Red3 = OxyColor.FromUint32(0xFFCD0000, 0,205,205,49);
+    	public static readonly OxyColor Red4 = OxyColor.FromUint32(0xFF8B0000, 0,139,139,116);
+    	public static readonly OxyColor DarkRed = OxyColor.FromUint32(0xFF8B0000, 0,139,139,116);
+    	public static readonly OxyColor RosyBrown = OxyColor.FromUint32(0xFFBC8F8F, 0,44,44,66);
+    	public static readonly OxyColor RosyBrown1 = OxyColor.FromUint32(0xFFFFC1C1, 0,62,62,0);
+    	public static readonly OxyColor RosyBrown2 = OxyColor.FromUint32(0xFFEEB4B4, 0,57,57,16);
+    	public static readonly OxyColor RosyBrown3 = OxyColor.FromUint32(0xFFCD9B9B, 0,49,49,49);
+    	public static readonly OxyColor RosyBrown4 = OxyColor.FromUint32(0xFF8B6969, 0,33,33,116);
+    	public static readonly OxyColor RoyalBlue = OxyColor.FromUint32(0xFF416AE1, 159,118,0,30);
+    	public static readonly OxyColor RoyalBlue1 = OxyColor.FromUint32(0xFF4877FF, 183,135,0,0);
+    	public static readonly OxyColor RoyalBlue2 = OxyColor.FromUint32(0xFF436FEE, 170,126,0,16);
+    	public static readonly OxyColor RoyalBlue3 = OxyColor.FromUint32(0xFF3A60CD, 146,108,0,49);
+    	public static readonly OxyColor RoyalBlue4 = OxyColor.FromUint32(0xFF27418B, 99,73,0,116);
+    	public static readonly OxyColor SaddleBrown = OxyColor.FromUint32(0xFF8B4313, 0,71,119,116);
+    	public static readonly OxyColor Salmon = OxyColor.FromUint32(0xFFFA7F72, 0,122,135,5);
+    	public static readonly OxyColor Salmon1 = OxyColor.FromUint32(0xFFFF8869, 0,118,150,0);
+    	public static readonly OxyColor Salmon2 = OxyColor.FromUint32(0xFFEE7F61, 0,110,140,16);
+    	public static readonly OxyColor Salmon3 = OxyColor.FromUint32(0xFFCD6D54, 0,95,120,49);
+    	public static readonly OxyColor Salmon4 = OxyColor.FromUint32(0xFF8B4A39, 0,64,81,116);
+    	public static readonly OxyColor SandyBrown = OxyColor.FromUint32(0xFFF4A260, 0,81,147,10);
+    	public static readonly OxyColor SeaGreen = OxyColor.FromUint32(0xFF2E8B55, 92,0,53,116);
+    	public static readonly OxyColor SeaGreen1 = OxyColor.FromUint32(0xFF54FF9C, 171,0,98,0);
+    	public static readonly OxyColor SeaGreen2 = OxyColor.FromUint32(0xFF4EEE91, 159,0,92,16);
+    	public static readonly OxyColor SeaGreen3 = OxyColor.FromUint32(0xFF43CD7D, 137,0,79,49);
+    	public static readonly OxyColor SeaGreen4 = OxyColor.FromUint32(0xFF2E8B55, 92,0,53,116);
+    	public static readonly OxyColor SeaShell = OxyColor.FromUint32(0xFFFFF5EF, 0,9,16,0);
+    	public static readonly OxyColor SeaShell1 = OxyColor.FromUint32(0xFFFFF5EF, 0,9,16,0);
+    	public static readonly OxyColor SeaShell2 = OxyColor.FromUint32(0xFFEEE4DE, 0,9,15,16);
+    	public static readonly OxyColor SeaShell3 = OxyColor.FromUint32(0xFFCDC5BF, 0,7,13,49);
+    	public static readonly OxyColor SeaShell4 = OxyColor.FromUint32(0xFF8B8582, 0,5,8,116);
+    	public static readonly OxyColor Sienna = OxyColor.FromUint32(0xFFA0502D, 0,79,114,95);
+    	public static readonly OxyColor Sienna1 = OxyColor.FromUint32(0xFFFF7F47, 0,127,184,0);
+    	public static readonly OxyColor Sienna2 = OxyColor.FromUint32(0xFFEE7642, 0,119,171,16);
+    	public static readonly OxyColor Sienna3 = OxyColor.FromUint32(0xFFCD6639, 0,102,147,49);
+    	public static readonly OxyColor Sienna4 = OxyColor.FromUint32(0xFF8B4526, 0,69,100,116);
+    	public static readonly OxyColor SkyBlue = OxyColor.FromUint32(0xFF87D0EB, 99,26,0,20);
+    	public static readonly OxyColor SkyBlue1 = OxyColor.FromUint32(0xFF87D0FF, 120,46,0,0);
+    	public static readonly OxyColor SkyBlue2 = OxyColor.FromUint32(0xFF7EC2EE, 112,43,0,16);
+    	public static readonly OxyColor SkyBlue3 = OxyColor.FromUint32(0xFF6CA7CD, 96,37,0,49);
+    	public static readonly OxyColor SkyBlue4 = OxyColor.FromUint32(0xFF4A708B, 64,26,0,116);
+    	public static readonly OxyColor SlateBlue = OxyColor.FromUint32(0xFF675ACD, 101,114,0,49);
+    	public static readonly OxyColor SlateBlue1 = OxyColor.FromUint32(0xFF7F6FFF, 127,144,0,0);
+    	public static readonly OxyColor SlateBlue2 = OxyColor.FromUint32(0xFF7767EE, 118,134,0,16);
+    	public static readonly OxyColor SlateBlue3 = OxyColor.FromUint32(0xFF6659CD, 102,115,0,49);
+    	public static readonly OxyColor SlateBlue4 = OxyColor.FromUint32(0xFF453C8B, 69,78,0,116);
+    	public static readonly OxyColor SlateGray = OxyColor.FromUint32(0xFF708090, 31,15,0,111);
+    	public static readonly OxyColor SlateGray1 = OxyColor.FromUint32(0xFFC7E2FF, 56,28,0,0);
+    	public static readonly OxyColor SlateGray2 = OxyColor.FromUint32(0xFFB9D3EE, 52,26,0,16);
+    	public static readonly OxyColor SlateGray3 = OxyColor.FromUint32(0xFF9FB6CD, 45,22,0,49);
+    	public static readonly OxyColor SlateGray4 = OxyColor.FromUint32(0xFF6C7B8B, 30,15,0,116);
+    	public static readonly OxyColor SlateGrey = OxyColor.FromUint32(0xFF708090, 31,15,0,111);
+    	public static readonly OxyColor Snow = OxyColor.FromUint32(0xFFFFFAFA, 0,5,5,0);
+    	public static readonly OxyColor Snow1 = OxyColor.FromUint32(0xFFFFFAFA, 0,5,5,0);
+    	public static readonly OxyColor Snow2 = OxyColor.FromUint32(0xFFEEE9E9, 0,4,4,16);
+    	public static readonly OxyColor Snow3 = OxyColor.FromUint32(0xFFCDC9C9, 0,3,3,49);
+    	public static readonly OxyColor Snow4 = OxyColor.FromUint32(0xFF8B8989, 0,1,1,116);
+    	public static readonly OxyColor SpringGreen = OxyColor.FromUint32(0xFF00FF7E, 255,0,129,0);
+    	public static readonly OxyColor SpringGreen1 = OxyColor.FromUint32(0xFF00FF7E, 255,0,129,0);
+    	public static readonly OxyColor SpringGreen2 = OxyColor.FromUint32(0xFF00EE75, 238,0,120,16);
+    	public static readonly OxyColor SpringGreen3 = OxyColor.FromUint32(0xFF00CD65, 205,0,103,49);
+    	public static readonly OxyColor SpringGreen4 = OxyColor.FromUint32(0xFF008B44, 139,0,70,116);
+    	public static readonly OxyColor SteelBlue = OxyColor.FromUint32(0xFF4684B4, 109,47,0,74);
+    	public static readonly OxyColor SteelBlue1 = OxyColor.FromUint32(0xFF62BBFF, 156,67,0,0);
+    	public static readonly OxyColor SteelBlue2 = OxyColor.FromUint32(0xFF5CAEEE, 145,63,0,16);
+    	public static readonly OxyColor SteelBlue3 = OxyColor.FromUint32(0xFF4F96CD, 125,54,0,49);
+    	public static readonly OxyColor SteelBlue4 = OxyColor.FromUint32(0xFF36648B, 84,38,0,116);
+    	public static readonly OxyColor Tan = OxyColor.FromUint32(0xFFD2B38C, 0,30,69,45);
+    	public static readonly OxyColor Tan1 = OxyColor.FromUint32(0xFFFFA14F, 0,93,176,0);
+    	public static readonly OxyColor Tan2 = OxyColor.FromUint32(0xFFEE9749, 0,86,164,16);
+    	public static readonly OxyColor Tan3 = OxyColor.FromUint32(0xFFCD823F, 0,74,141,49);
+    	public static readonly OxyColor Tan4 = OxyColor.FromUint32(0xFF8B582B, 0,50,95,116);
+    	public static readonly OxyColor Thistle = OxyColor.FromUint32(0xFFD7BFD8, 0,24,0,39);
+    	public static readonly OxyColor Thistle1 = OxyColor.FromUint32(0xFFFEE1FF, 0,30,0,0);
+    	public static readonly OxyColor Thistle2 = OxyColor.FromUint32(0xFFEDD2EE, 0,28,0,16);
+    	public static readonly OxyColor Thistle3 = OxyColor.FromUint32(0xFFCCB5CD, 0,23,0,49);
+    	public static readonly OxyColor Thistle4 = OxyColor.FromUint32(0xFF8A7B8B, 0,15,0,116);
+    	public static readonly OxyColor Tomato = OxyColor.FromUint32(0xFFFF6047, 0,158,184,0);
+    	public static readonly OxyColor Tomato1 = OxyColor.FromUint32(0xFFFF6047, 0,158,184,0);
+    	public static readonly OxyColor Tomato2 = OxyColor.FromUint32(0xFFEE5A42, 0,147,171,16);
+    	public static readonly OxyColor Tomato3 = OxyColor.FromUint32(0xFFCD4D39, 0,127,147,49);
+    	public static readonly OxyColor Tomato4 = OxyColor.FromUint32(0xFF8B3426, 0,86,100,116);
+    	public static readonly OxyColor Turquoise = OxyColor.FromUint32(0xFF40E0CF, 159,0,16,31);
+    	public static readonly OxyColor Turquoise1 = OxyColor.FromUint32(0xFF00F6FF, 255,8,0,0);
+    	public static readonly OxyColor Turquoise2 = OxyColor.FromUint32(0xFF00E5EE, 238,8,0,16);
+    	public static readonly OxyColor Turquoise3 = OxyColor.FromUint32(0xFF00C5CD, 205,7,0,49);
+    	public static readonly OxyColor Turquoise4 = OxyColor.FromUint32(0xFF00868B, 139,4,0,116);
+    	public static readonly OxyColor Violet = OxyColor.FromUint32(0xFFEC82EE, 1,107,0,16);
+    	public static readonly OxyColor VioletRed = OxyColor.FromUint32(0xFFD02094, 0,175,59,47);
+    	public static readonly OxyColor VioletRed1 = OxyColor.FromUint32(0xFFFF3E98, 0,193,102,0);
+    	public static readonly OxyColor VioletRed2 = OxyColor.FromUint32(0xFFEE3A8F, 0,179,94,16);
+    	public static readonly OxyColor VioletRed3 = OxyColor.FromUint32(0xFFCD327B, 0,154,81,49);
+    	public static readonly OxyColor VioletRed4 = OxyColor.FromUint32(0xFF8B2253, 0,104,55,116);
+    	public static readonly OxyColor Wheat = OxyColor.FromUint32(0xFFF5DDB3, 0,23,65,9);
+    	public static readonly OxyColor Wheat1 = OxyColor.FromUint32(0xFFFFE5BA, 0,25,68,0);
+    	public static readonly OxyColor Wheat2 = OxyColor.FromUint32(0xFFEED6AE, 0,23,63,16);
+    	public static readonly OxyColor Wheat3 = OxyColor.FromUint32(0xFFCDB996, 0,19,54,49);
+    	public static readonly OxyColor Wheat4 = OxyColor.FromUint32(0xFF8B7D66, 0,13,36,116);
+    	public static readonly OxyColor White = OxyColor.FromUint32(0xFFFFFFFF, 0,0,0,0);
+    	public static readonly OxyColor WhiteSmoke = OxyColor.FromUint32(0xFFF5F5F5, 0,0,0,9);
+    	public static readonly OxyColor Yellow = OxyColor.FromUint32(0xFFFFFC00, 0,2,255,0);
+    	public static readonly OxyColor Yellow1 = OxyColor.FromUint32(0xFFFFFC00, 0,2,255,0);
+    	public static readonly OxyColor Yellow2 = OxyColor.FromUint32(0xFFEEEB00, 0,2,238,16);
+    	public static readonly OxyColor Yellow3 = OxyColor.FromUint32(0xFFCDCA00, 0,2,205,49);
+    	public static readonly OxyColor Yellow4 = OxyColor.FromUint32(0xFF8B8900, 0,1,139,116);
+    	public static readonly OxyColor YellowGreen = OxyColor.FromUint32(0xFF9BCD32, 49,0,154,49);
 
-        /// <summary>
-        /// The aqua.
-        /// </summary>
+    	// Colors w/o CMYK pair
         public static readonly OxyColor Aqua = OxyColor.FromUInt32(0xFF00FFFF);
-
-        /// <summary>
-        /// The aquamarine.
-        /// </summary>
-        public static readonly OxyColor Aquamarine = OxyColor.FromUInt32(0xFF7FFFD4);
-
-        /// <summary>
-        /// The azure.
-        /// </summary>
-        public static readonly OxyColor Azure = OxyColor.FromUInt32(0xFFF0FFFF);
-
-        /// <summary>
-        /// The beige.
-        /// </summary>
-        public static readonly OxyColor Beige = OxyColor.FromUInt32(0xFFF5F5DC);
-
-        /// <summary>
-        /// The bisque.
-        /// </summary>
-        public static readonly OxyColor Bisque = OxyColor.FromUInt32(0xFFFFE4C4);
-
-        /// <summary>
-        /// The black.
-        /// </summary>
-        public static readonly OxyColor Black = OxyColor.FromUInt32(0xFF000000);
-
-        /// <summary>
-        /// The blanched almond.
-        /// </summary>
-        public static readonly OxyColor BlanchedAlmond = OxyColor.FromUInt32(0xFFFFEBCD);
-
-        /// <summary>
-        /// The blue.
-        /// </summary>
-        public static readonly OxyColor Blue = OxyColor.FromUInt32(0xFF0000FF);
-
-        /// <summary>
-        /// The blue violet.
-        /// </summary>
-        public static readonly OxyColor BlueViolet = OxyColor.FromUInt32(0xFF8A2BE2);
-
-        /// <summary>
-        /// The brown.
-        /// </summary>
-        public static readonly OxyColor Brown = OxyColor.FromUInt32(0xFFA52A2A);
-
-        /// <summary>
-        /// The burly wood.
-        /// </summary>
-        public static readonly OxyColor BurlyWood = OxyColor.FromUInt32(0xFFDEB887);
-
-        /// <summary>
-        /// The cadet blue.
-        /// </summary>
-        public static readonly OxyColor CadetBlue = OxyColor.FromUInt32(0xFF5F9EA0);
-
-        /// <summary>
-        /// The chartreuse.
-        /// </summary>
-        public static readonly OxyColor Chartreuse = OxyColor.FromUInt32(0xFF7FFF00);
-
-        /// <summary>
-        /// The chocolate.
-        /// </summary>
-        public static readonly OxyColor Chocolate = OxyColor.FromUInt32(0xFFD2691E);
-
-        /// <summary>
-        /// The coral.
-        /// </summary>
-        public static readonly OxyColor Coral = OxyColor.FromUInt32(0xFFFF7F50);
-
-        /// <summary>
-        /// The cornflower blue.
-        /// </summary>
-        public static readonly OxyColor CornflowerBlue = OxyColor.FromUInt32(0xFF6495ED);
-
-        /// <summary>
-        /// The cornsilk.
-        /// </summary>
-        public static readonly OxyColor Cornsilk = OxyColor.FromUInt32(0xFFFFF8DC);
-
-        /// <summary>
-        /// The crimson.
-        /// </summary>
-        public static readonly OxyColor Crimson = OxyColor.FromUInt32(0xFFDC143C);
-
-        /// <summary>
-        /// The cyan.
-        /// </summary>
-        public static readonly OxyColor Cyan = OxyColor.FromUInt32(0xFF00FFFF);
-
-        /// <summary>
-        /// The dark blue.
-        /// </summary>
-        public static readonly OxyColor DarkBlue = OxyColor.FromUInt32(0xFF00008B);
-
-        /// <summary>
-        /// The dark cyan.
-        /// </summary>
         public static readonly OxyColor DarkCyan = OxyColor.FromUInt32(0xFF008B8B);
-
-        /// <summary>
-        /// The dark goldenrod.
-        /// </summary>
-        public static readonly OxyColor DarkGoldenrod = OxyColor.FromUInt32(0xFFB8860B);
-
-        /// <summary>
-        /// The dark gray.
-        /// </summary>
         public static readonly OxyColor DarkGray = OxyColor.FromUInt32(0xFFA9A9A9);
-
-        /// <summary>
-        /// The dark green.
-        /// </summary>
-        public static readonly OxyColor DarkGreen = OxyColor.FromUInt32(0xFF006400);
-
-        /// <summary>
-        /// The dark khaki.
-        /// </summary>
-        public static readonly OxyColor DarkKhaki = OxyColor.FromUInt32(0xFFBDB76B);
-
-        /// <summary>
-        /// The dark magenta.
-        /// </summary>
         public static readonly OxyColor DarkMagenta = OxyColor.FromUInt32(0xFF8B008B);
-
-        /// <summary>
-        /// The dark olive green.
-        /// </summary>
-        public static readonly OxyColor DarkOliveGreen = OxyColor.FromUInt32(0xFF556B2F);
-
-        /// <summary>
-        /// The dark orange.
-        /// </summary>
-        public static readonly OxyColor DarkOrange = OxyColor.FromUInt32(0xFFFF8C00);
-
-        /// <summary>
-        /// The dark orchid.
-        /// </summary>
-        public static readonly OxyColor DarkOrchid = OxyColor.FromUInt32(0xFF9932CC);
-
-        /// <summary>
-        /// The dark red.
-        /// </summary>
-        public static readonly OxyColor DarkRed = OxyColor.FromUInt32(0xFF8B0000);
-
-        /// <summary>
-        /// The dark salmon.
-        /// </summary>
-        public static readonly OxyColor DarkSalmon = OxyColor.FromUInt32(0xFFE9967A);
-
-        /// <summary>
-        /// The dark sea green.
-        /// </summary>
-        public static readonly OxyColor DarkSeaGreen = OxyColor.FromUInt32(0xFF8FBC8F);
-
-        /// <summary>
-        /// The dark slate blue.
-        /// </summary>
-        public static readonly OxyColor DarkSlateBlue = OxyColor.FromUInt32(0xFF483D8B);
-
-        /// <summary>
-        /// The dark slate gray.
-        /// </summary>
-        public static readonly OxyColor DarkSlateGray = OxyColor.FromUInt32(0xFF2F4F4F);
-
-        /// <summary>
-        /// The dark turquoise.
-        /// </summary>
-        public static readonly OxyColor DarkTurquoise = OxyColor.FromUInt32(0xFF00CED1);
-
-        /// <summary>
-        /// The dark violet.
-        /// </summary>
-        public static readonly OxyColor DarkViolet = OxyColor.FromUInt32(0xFF9400D3);
-
-        /// <summary>
-        /// The deep pink.
-        /// </summary>
-        public static readonly OxyColor DeepPink = OxyColor.FromUInt32(0xFFFF1493);
-
-        /// <summary>
-        /// The deep sky blue.
-        /// </summary>
-        public static readonly OxyColor DeepSkyBlue = OxyColor.FromUInt32(0xFF00BFFF);
-
-        /// <summary>
-        /// The dim gray.
-        /// </summary>
-        public static readonly OxyColor DimGray = OxyColor.FromUInt32(0xFF696969);
-
-        /// <summary>
-        /// The dodger blue.
-        /// </summary>
-        public static readonly OxyColor DodgerBlue = OxyColor.FromUInt32(0xFF1E90FF);
-
-        /// <summary>
-        /// The firebrick.
-        /// </summary>
-        public static readonly OxyColor Firebrick = OxyColor.FromUInt32(0xFFB22222);
-
-        /// <summary>
-        /// The floral white.
-        /// </summary>
-        public static readonly OxyColor FloralWhite = OxyColor.FromUInt32(0xFFFFFAF0);
-
-        /// <summary>
-        /// The forest green.
-        /// </summary>
-        public static readonly OxyColor ForestGreen = OxyColor.FromUInt32(0xFF228B22);
-
-        /// <summary>
-        /// The fuchsia.
-        /// </summary>
         public static readonly OxyColor Fuchsia = OxyColor.FromUInt32(0xFFFF00FF);
-
-        /// <summary>
-        /// The gainsboro.
-        /// </summary>
-        public static readonly OxyColor Gainsboro = OxyColor.FromUInt32(0xFFDCDCDC);
-
-        /// <summary>
-        /// The ghost white.
-        /// </summary>
-        public static readonly OxyColor GhostWhite = OxyColor.FromUInt32(0xFFF8F8FF);
-
-        /// <summary>
-        /// The gold.
-        /// </summary>
-        public static readonly OxyColor Gold = OxyColor.FromUInt32(0xFFFFD700);
-
-        /// <summary>
-        /// The goldenrod.
-        /// </summary>
-        public static readonly OxyColor Goldenrod = OxyColor.FromUInt32(0xFFDAA520);
-
-        /// <summary>
-        /// The gray.
-        /// </summary>
-        public static readonly OxyColor Gray = OxyColor.FromUInt32(0xFF808080);
-
-        /// <summary>
-        /// The green.
-        /// </summary>
-        public static readonly OxyColor Green = OxyColor.FromUInt32(0xFF008000);
-
-        /// <summary>
-        /// The green yellow.
-        /// </summary>
-        public static readonly OxyColor GreenYellow = OxyColor.FromUInt32(0xFFADFF2F);
-
-        /// <summary>
-        /// The honeydew.
-        /// </summary>
-        public static readonly OxyColor Honeydew = OxyColor.FromUInt32(0xFFF0FFF0);
-
-        /// <summary>
-        /// The hot pink.
-        /// </summary>
-        public static readonly OxyColor HotPink = OxyColor.FromUInt32(0xFFFF69B4);
-
-        /// <summary>
-        /// The indian red.
-        /// </summary>
-        public static readonly OxyColor IndianRed = OxyColor.FromUInt32(0xFFCD5C5C);
-
-        /// <summary>
-        /// The indigo.
-        /// </summary>
-        public static readonly OxyColor Indigo = OxyColor.FromUInt32(0xFF4B0082);
-
-        /// <summary>
-        /// The ivory.
-        /// </summary>
-        public static readonly OxyColor Ivory = OxyColor.FromUInt32(0xFFFFFFF0);
-
-        /// <summary>
-        /// The khaki.
-        /// </summary>
-        public static readonly OxyColor Khaki = OxyColor.FromUInt32(0xFFF0E68C);
-
-        /// <summary>
-        /// The lavender.
-        /// </summary>
-        public static readonly OxyColor Lavender = OxyColor.FromUInt32(0xFFE6E6FA);
-
-        /// <summary>
-        /// The lavender blush.
-        /// </summary>
-        public static readonly OxyColor LavenderBlush = OxyColor.FromUInt32(0xFFFFF0F5);
-
-        /// <summary>
-        /// The lawn green.
-        /// </summary>
-        public static readonly OxyColor LawnGreen = OxyColor.FromUInt32(0xFF7CFC00);
-
-        /// <summary>
-        /// The lemon chiffon.
-        /// </summary>
-        public static readonly OxyColor LemonChiffon = OxyColor.FromUInt32(0xFFFFFACD);
-
-        /// <summary>
-        /// The light blue.
-        /// </summary>
-        public static readonly OxyColor LightBlue = OxyColor.FromUInt32(0xFFADD8E6);
-
-        /// <summary>
-        /// The light coral.
-        /// </summary>
-        public static readonly OxyColor LightCoral = OxyColor.FromUInt32(0xFFF08080);
-
-        /// <summary>
-        /// The light cyan.
-        /// </summary>
-        public static readonly OxyColor LightCyan = OxyColor.FromUInt32(0xFFE0FFFF);
-
-        /// <summary>
-        /// The light goldenrod yellow.
-        /// </summary>
-        public static readonly OxyColor LightGoldenrodYellow = OxyColor.FromUInt32(0xFFFAFAD2);
-
-        /// <summary>
-        /// The light gray.
-        /// </summary>
-        public static readonly OxyColor LightGray = OxyColor.FromUInt32(0xFFD3D3D3);
-
-        /// <summary>
-        /// The light green.
-        /// </summary>
         public static readonly OxyColor LightGreen = OxyColor.FromUInt32(0xFF90EE90);
-
-        /// <summary>
-        /// The light pink.
-        /// </summary>
-        public static readonly OxyColor LightPink = OxyColor.FromUInt32(0xFFFFB6C1);
-
-        /// <summary>
-        /// The light salmon.
-        /// </summary>
-        public static readonly OxyColor LightSalmon = OxyColor.FromUInt32(0xFFFFA07A);
-
-        /// <summary>
-        /// The light sea green.
-        /// </summary>
-        public static readonly OxyColor LightSeaGreen = OxyColor.FromUInt32(0xFF20B2AA);
-
-        /// <summary>
-        /// The light sky blue.
-        /// </summary>
-        public static readonly OxyColor LightSkyBlue = OxyColor.FromUInt32(0xFF87CEFA);
-
-        /// <summary>
-        /// The light slate gray.
-        /// </summary>
-        public static readonly OxyColor LightSlateGray = OxyColor.FromUInt32(0xFF778899);
-
-        /// <summary>
-        /// The light steel blue.
-        /// </summary>
-        public static readonly OxyColor LightSteelBlue = OxyColor.FromUInt32(0xFFB0C4DE);
-
-        /// <summary>
-        /// The light yellow.
-        /// </summary>
-        public static readonly OxyColor LightYellow = OxyColor.FromUInt32(0xFFFFFFE0);
-
-        /// <summary>
-        /// The lime.
-        /// </summary>
         public static readonly OxyColor Lime = OxyColor.FromUInt32(0xFF00FF00);
-
-        /// <summary>
-        /// The lime green.
-        /// </summary>
-        public static readonly OxyColor LimeGreen = OxyColor.FromUInt32(0xFF32CD32);
-
-        /// <summary>
-        /// The linen.
-        /// </summary>
-        public static readonly OxyColor Linen = OxyColor.FromUInt32(0xFFFAF0E6);
-
-        /// <summary>
-        /// The magenta.
-        /// </summary>
-        public static readonly OxyColor Magenta = OxyColor.FromUInt32(0xFFFF00FF);
-
-        /// <summary>
-        /// The maroon.
-        /// </summary>
-        public static readonly OxyColor Maroon = OxyColor.FromUInt32(0xFF800000);
-
-        /// <summary>
-        /// The medium aquamarine.
-        /// </summary>
-        public static readonly OxyColor MediumAquamarine = OxyColor.FromUInt32(0xFF66CDAA);
-
-        /// <summary>
-        /// The medium blue.
-        /// </summary>
-        public static readonly OxyColor MediumBlue = OxyColor.FromUInt32(0xFF0000CD);
-
-        /// <summary>
-        /// The medium orchid.
-        /// </summary>
-        public static readonly OxyColor MediumOrchid = OxyColor.FromUInt32(0xFFBA55D3);
-
-        /// <summary>
-        /// The medium purple.
-        /// </summary>
-        public static readonly OxyColor MediumPurple = OxyColor.FromUInt32(0xFF9370DB);
-
-        /// <summary>
-        /// The medium sea green.
-        /// </summary>
-        public static readonly OxyColor MediumSeaGreen = OxyColor.FromUInt32(0xFF3CB371);
-
-        /// <summary>
-        /// The medium slate blue.
-        /// </summary>
-        public static readonly OxyColor MediumSlateBlue = OxyColor.FromUInt32(0xFF7B68EE);
-
-        /// <summary>
-        /// The medium spring green.
-        /// </summary>
-        public static readonly OxyColor MediumSpringGreen = OxyColor.FromUInt32(0xFF00FA9A);
-
-        /// <summary>
-        /// The medium turquoise.
-        /// </summary>
-        public static readonly OxyColor MediumTurquoise = OxyColor.FromUInt32(0xFF48D1CC);
-
-        /// <summary>
-        /// The medium violet red.
-        /// </summary>
-        public static readonly OxyColor MediumVioletRed = OxyColor.FromUInt32(0xFFC71585);
-
-        /// <summary>
-        /// The midnight blue.
-        /// </summary>
-        public static readonly OxyColor MidnightBlue = OxyColor.FromUInt32(0xFF191970);
-
-        /// <summary>
-        /// The mint cream.
-        /// </summary>
-        public static readonly OxyColor MintCream = OxyColor.FromUInt32(0xFFF5FFFA);
-
-        /// <summary>
-        /// The misty rose.
-        /// </summary>
-        public static readonly OxyColor MistyRose = OxyColor.FromUInt32(0xFFFFE4E1);
-
-        /// <summary>
-        /// The moccasin.
-        /// </summary>
-        public static readonly OxyColor Moccasin = OxyColor.FromUInt32(0xFFFFE4B5);
-
-        /// <summary>
-        /// The navajo white.
-        /// </summary>
-        public static readonly OxyColor NavajoWhite = OxyColor.FromUInt32(0xFFFFDEAD);
-
-        /// <summary>
-        /// The navy.
-        /// </summary>
-        public static readonly OxyColor Navy = OxyColor.FromUInt32(0xFF000080);
-
-        /// <summary>
-        /// The old lace.
-        /// </summary>
-        public static readonly OxyColor OldLace = OxyColor.FromUInt32(0xFFFDF5E6);
-
-        /// <summary>
-        /// The olive.
-        /// </summary>
         public static readonly OxyColor Olive = OxyColor.FromUInt32(0xFF808000);
-
-        /// <summary>
-        /// The olive drab.
-        /// </summary>
-        public static readonly OxyColor OliveDrab = OxyColor.FromUInt32(0xFF6B8E23);
-
-        /// <summary>
-        /// The orange.
-        /// </summary>
-        public static readonly OxyColor Orange = OxyColor.FromUInt32(0xFFFFA500);
-
-        /// <summary>
-        /// The orange red.
-        /// </summary>
-        public static readonly OxyColor OrangeRed = OxyColor.FromUInt32(0xFFFF4500);
-
-        /// <summary>
-        /// The orchid.
-        /// </summary>
-        public static readonly OxyColor Orchid = OxyColor.FromUInt32(0xFFDA70D6);
-
-        /// <summary>
-        /// The pale goldenrod.
-        /// </summary>
-        public static readonly OxyColor PaleGoldenrod = OxyColor.FromUInt32(0xFFEEE8AA);
-
-        /// <summary>
-        /// The pale green.
-        /// </summary>
-        public static readonly OxyColor PaleGreen = OxyColor.FromUInt32(0xFF98FB98);
-
-        /// <summary>
-        /// The pale turquoise.
-        /// </summary>
-        public static readonly OxyColor PaleTurquoise = OxyColor.FromUInt32(0xFFAFEEEE);
-
-        /// <summary>
-        /// The pale violet red.
-        /// </summary>
-        public static readonly OxyColor PaleVioletRed = OxyColor.FromUInt32(0xFFDB7093);
-
-        /// <summary>
-        /// The papaya whip.
-        /// </summary>
-        public static readonly OxyColor PapayaWhip = OxyColor.FromUInt32(0xFFFFEFD5);
-
-        /// <summary>
-        /// The peach puff.
-        /// </summary>
-        public static readonly OxyColor PeachPuff = OxyColor.FromUInt32(0xFFFFDAB9);
-
-        /// <summary>
-        /// The peru.
-        /// </summary>
-        public static readonly OxyColor Peru = OxyColor.FromUInt32(0xFFCD853F);
-
-        /// <summary>
-        /// The pink.
-        /// </summary>
-        public static readonly OxyColor Pink = OxyColor.FromUInt32(0xFFFFC0CB);
-
-        /// <summary>
-        /// The plum.
-        /// </summary>
-        public static readonly OxyColor Plum = OxyColor.FromUInt32(0xFFDDA0DD);
-
-        /// <summary>
-        /// The powder blue.
-        /// </summary>
-        public static readonly OxyColor PowderBlue = OxyColor.FromUInt32(0xFFB0E0E6);
-
-        /// <summary>
-        /// The purple.
-        /// </summary>
-        public static readonly OxyColor Purple = OxyColor.FromUInt32(0xFF800080);
-
-        /// <summary>
-        /// The red.
-        /// </summary>
-        public static readonly OxyColor Red = OxyColor.FromUInt32(0xFFFF0000);
-
-        /// <summary>
-        /// The rosy brown.
-        /// </summary>
-        public static readonly OxyColor RosyBrown = OxyColor.FromUInt32(0xFFBC8F8F);
-
-        /// <summary>
-        /// The royal blue.
-        /// </summary>
-        public static readonly OxyColor RoyalBlue = OxyColor.FromUInt32(0xFF4169E1);
-
-        /// <summary>
-        /// The saddle brown.
-        /// </summary>
-        public static readonly OxyColor SaddleBrown = OxyColor.FromUInt32(0xFF8B4513);
-
-        /// <summary>
-        /// The salmon.
-        /// </summary>
-        public static readonly OxyColor Salmon = OxyColor.FromUInt32(0xFFFA8072);
-
-        /// <summary>
-        /// The sandy brown.
-        /// </summary>
-        public static readonly OxyColor SandyBrown = OxyColor.FromUInt32(0xFFF4A460);
-
-        /// <summary>
-        /// The sea green.
-        /// </summary>
-        public static readonly OxyColor SeaGreen = OxyColor.FromUInt32(0xFF2E8B57);
-
-        /// <summary>
-        /// The sea shell.
-        /// </summary>
-        public static readonly OxyColor SeaShell = OxyColor.FromUInt32(0xFFFFF5EE);
-
-        /// <summary>
-        /// The sienna.
-        /// </summary>
-        public static readonly OxyColor Sienna = OxyColor.FromUInt32(0xFFA0522D);
-
-        /// <summary>
-        /// The silver.
-        /// </summary>
         public static readonly OxyColor Silver = OxyColor.FromUInt32(0xFFC0C0C0);
-
-        /// <summary>
-        /// The sky blue.
-        /// </summary>
-        public static readonly OxyColor SkyBlue = OxyColor.FromUInt32(0xFF87CEEB);
-
-        /// <summary>
-        /// The slate blue.
-        /// </summary>
-        public static readonly OxyColor SlateBlue = OxyColor.FromUInt32(0xFF6A5ACD);
-
-        /// <summary>
-        /// The slate gray.
-        /// </summary>
-        public static readonly OxyColor SlateGray = OxyColor.FromUInt32(0xFF708090);
-
-        /// <summary>
-        /// The snow.
-        /// </summary>
-        public static readonly OxyColor Snow = OxyColor.FromUInt32(0xFFFFFAFA);
-
-        /// <summary>
-        /// The spring green.
-        /// </summary>
-        public static readonly OxyColor SpringGreen = OxyColor.FromUInt32(0xFF00FF7F);
-
-        /// <summary>
-        /// The steel blue.
-        /// </summary>
-        public static readonly OxyColor SteelBlue = OxyColor.FromUInt32(0xFF4682B4);
-
-        /// <summary>
-        /// The tan.
-        /// </summary>
-        public static readonly OxyColor Tan = OxyColor.FromUInt32(0xFFD2B48C);
-
-        /// <summary>
-        /// The teal.
-        /// </summary>
         public static readonly OxyColor Teal = OxyColor.FromUInt32(0xFF008080);
-
-        /// <summary>
-        /// The thistle.
-        /// </summary>
-        public static readonly OxyColor Thistle = OxyColor.FromUInt32(0xFFD8BFD8);
-
-        /// <summary>
-        /// The tomato.
-        /// </summary>
-        public static readonly OxyColor Tomato = OxyColor.FromUInt32(0xFFFF6347);
-
-        /// <summary>
-        /// The transparent.
-        /// </summary>
-        public static readonly OxyColor Transparent = OxyColor.FromUInt32(0x00FFFFFF);
-
-        /// <summary>
-        /// The turquoise.
-        /// </summary>
-        public static readonly OxyColor Turquoise = OxyColor.FromUInt32(0xFF40E0D0);
-
-        /// <summary>
-        /// The violet.
-        /// </summary>
-        public static readonly OxyColor Violet = OxyColor.FromUInt32(0xFFEE82EE);
-
-        /// <summary>
-        /// The wheat.
-        /// </summary>
-        public static readonly OxyColor Wheat = OxyColor.FromUInt32(0xFFF5DEB3);
-
-        /// <summary>
-        /// The white.
-        /// </summary>
-        public static readonly OxyColor White = OxyColor.FromUInt32(0xFFFFFFFF);
-
-        /// <summary>
-        /// The white smoke.
-        /// </summary>
-        public static readonly OxyColor WhiteSmoke = OxyColor.FromUInt32(0xFFF5F5F5);
-
-        /// <summary>
-        /// The yellow.
-        /// </summary>
-        public static readonly OxyColor Yellow = OxyColor.FromUInt32(0xFFFFFF00);
-
-        /// <summary>
-        /// The yellow green.
-        /// </summary>
-        public static readonly OxyColor YellowGreen = OxyColor.FromUInt32(0xFF9ACD32);
     }
 }
\ No newline at end of file
diff -Nabur oxyplot-develop/Source/OxyPlot/Rendering/RenderContext/IRenderContext.cs src/OxyPlot/Rendering/RenderContext/IRenderContext.cs
--- oxyplot-develop/Source/OxyPlot/Rendering/RenderContext/IRenderContext.cs	2015-10-05 21:14:37.000000000 +0300
+++ src/OxyPlot/Rendering/RenderContext/IRenderContext.cs	2015-11-10 21:20:18.767990000 +0300
@@ -221,5 +221,15 @@
         /// Resets the clipping rectangle.
         /// </summary>
         void ResetClip();
+
+        /// <summary>
+        /// Specifies custom font for further text drawings (SVG only)
+        /// </summary>
+        string AddCustomFont(string srcUri);
+
+        /// <summary>
+        /// Specifies custom font for further text drawings (SVG only) with alias
+        /// </summary>
+        string AddCustomFont(string fontFamily, string srcUri);
     }
 }
\ No newline at end of file
diff -Nabur oxyplot-develop/Source/OxyPlot/Rendering/RenderContext/RenderContextBase.cs src/OxyPlot/Rendering/RenderContext/RenderContextBase.cs
--- oxyplot-develop/Source/OxyPlot/Rendering/RenderContext/RenderContextBase.cs	2015-10-05 21:14:37.000000000 +0300
+++ src/OxyPlot/Rendering/RenderContext/RenderContextBase.cs	2015-11-10 21:12:24.943967000 +0300
@@ -308,5 +308,15 @@
                            new ScreenPoint(rect.Right, rect.Bottom), new ScreenPoint(rect.Right, rect.Top)
                        };
         }
+
+        public virtual string AddCustomFont(string srcUri)
+        {
+        	return "";
+        }
+
+        public virtual string AddCustomFont(string fontFamily, string srcUri)
+        {
+        	return fontFamily;
+        }
     }
 }
\ No newline at end of file
diff -Nabur oxyplot-develop/Source/OxyPlot/Svg/SvgRenderContext.cs src/OxyPlot/Svg/SvgRenderContext.cs
--- oxyplot-develop/Source/OxyPlot/Svg/SvgRenderContext.cs	2015-10-05 21:14:37.000000000 +0300
+++ src/OxyPlot/Svg/SvgRenderContext.cs	2015-11-10 22:20:35.537165509 +0300
@@ -19,6 +19,21 @@
     /// </summary>
     public class SvgRenderContext : RenderContextBase, IDisposable
     {
+		private class FontDescriptor
+		{
+			public FontDescriptor(String fontFamily, String fontSrc)
+			{
+				FontFamily = fontFamily;
+				FontSrc = fontSrc;
+			}
+
+			public String FontFamily { get; set; }
+			public String FontSrc { get; set; }
+		}
+
+        private Dictionary<string, FontDescriptor> customFontsTable;
+        private static Dictionary<string, OxyFontHolder> customFontDataTable = new Dictionary<string, OxyFontHolder>();
+
         /// <summary>
         /// The writer.
         /// </summary>
@@ -51,6 +66,7 @@
             {
                 this.w.WriteRectangle(0, 0, width, height, this.w.CreateStyle(background, OxyColors.Undefined, 0));
             }
+			this.customFontsTable = new Dictionary<string, FontDescriptor>();
         }
 
         /// <summary>
@@ -72,6 +88,7 @@
         /// </summary>
         public void Complete()
         {
+        	Defs();
             this.w.Complete();
         }
 
@@ -180,6 +197,17 @@
                 return;
             }
 
+			String fontUri = null;
+			if (customFontsTable.ContainsKey(fontFamily))
+			{
+				fontUri = customFontsTable[fontFamily].FontSrc;
+				fontFamily = customFontsTable[fontFamily].FontFamily;
+			}
+
+			if (fontFamily.Contains("/")) {
+				fontFamily = AddCustomFont(fontFamily);
+			}
+
             var lines = Regex.Split(text, "\r\n");
             if (valign == VerticalAlignment.Bottom)
             {
@@ -227,9 +255,71 @@
                 return OxySize.Empty;
             }
 
+			if (fontFamily.Contains("/")) {
+				fontFamily = AddCustomFont(fontFamily);
+			}
+
+			if (customFontsTable.ContainsKey(fontFamily))
+			{
+				fontFamily = customFontsTable[fontFamily].FontFamily;
+
+               	OxyFontHolder fh = customFontDataTable[fontFamily];
+               	if(fh == null) {
             return this.TextMeasurer.MeasureText(text, fontFamily, fontSize, fontWeight);
         }
 
+               	fh = new OxyFontHolder(fh, (float)fontSize, (float)fontWeight);
+               	fh.register(text);
+
+                var lines = Regex.Split(text, "\r\n");
+    			var lineSpacing = fh.Height / 3.0;
+    			OxySize result = new OxySize(0, -lineSpacing);
+
+                foreach (var line in lines)
+                {
+    				result.Height += fh.Height + lineSpacing;
+                    result.Width = Math.Max(fh.MeasureTextWidth(line), result.Width);
+                }
+
+                return result;
+			}
+            
+            return this.TextMeasurer.MeasureText(text, fontFamily, fontSize, fontWeight);
+        }
+
+        /// <summary>
+		/// Add custom font to render context.
+		/// </summary>
+		/// <param name="fontUri">Uri where file located.</param>
+		/// <returns>Font family name.</returns>
+		public override string AddCustomFont(string fontUri)
+		{
+		    IEnumerator<string> i = customFontsTable.Keys.GetEnumerator();
+		    while(i.MoveNext()) {
+		    	var fd = customFontsTable[i.Current];
+		    	if(fd.FontSrc == fontUri) return fd.FontFamily;
+		    }
+
+        	var fh = new OxyFontHolder(fontUri, 1.0f);
+        	var fontFamily = fh.SvgFontName;
+        	customFontDataTable.Add(fontFamily, fh);
+			customFontsTable.Add(fontFamily, new FontDescriptor(fontFamily, fontUri));
+            return fontFamily;
+		}
+
+        public override string AddCustomFont(string aliasName, string fontUri)
+        {
+		    IEnumerator<string> i = customFontsTable.Keys.GetEnumerator();
+		    while(i.MoveNext()) {
+		    	var fd = customFontsTable[i.Current];
+		    	if(fd.FontSrc == fontUri) return fd.FontFamily;
+		    }
+
+		    var fontFamily = AddCustomFont(fontUri);
+			customFontsTable.Add(aliasName, new FontDescriptor(fontFamily, fontUri));
+            return fontFamily;
+        }
+
         /// <summary>
         /// Draws the specified portion of the specified <see cref="OxyImage" /> at the specified location and with the specified size.
         /// </summary>
@@ -276,5 +366,19 @@
 
             this.disposed = true;
         }
+
+        private void Defs() 
+        {
+        	w.WriteStartElementP("defs");
+        	IEnumerator<string> i = customFontsTable.Keys.GetEnumerator();
+        	while(i.MoveNext()) {
+        		var faceName = customFontsTable[i.Current].FontFamily;
+               	OxyFontHolder fh = customFontDataTable[faceName];
+               	if(fh != null) {
+	               	fh.dumpFontGlyphs(w);
+	            }
+        	}
+            w.WriteEndElementP();
+        }
     }
 }
\ No newline at end of file
diff -Nabur oxyplot-develop/Source/OxyPlot/Svg/SvgWriter.cs src/OxyPlot/Svg/SvgWriter.cs
--- oxyplot-develop/Source/OxyPlot/Svg/SvgWriter.cs	2015-10-05 21:14:37.000000000 +0300
+++ src/OxyPlot/Svg/SvgWriter.cs	2015-11-10 22:26:08.837181634 +0300
@@ -15,6 +15,376 @@
     using System.IO;
     using System.Text;
 
+	using System.Drawing;
+	using System.Drawing.Drawing2D;
+	using fonts.freetype;
+
+	class OxyFontHolder : IDisposable
+	{
+	    private FreetypeFontSupplier fsup = null;
+	    private Matrix defaultMatrix = null; 
+	    private List<char> chars = null;
+
+    	private readonly float _emSize;
+		private readonly String _pathToFont;
+		private readonly float _weight;
+	    
+        private const float EXTRA_LIGHT = 0.5f;
+        private const float LIGHT = 0.75f;
+        private const float DEMILIGHT = 0.875f;
+        private const float REGULAR = 1.0f;
+        private const float SEMIBOLD = 1.25f;
+        private const float MEDIUM = 1.5f;
+        private const float DEMIBOLD = 1.75f;
+        private const float BOLD = 2.0f;
+        private const float HEAVY = 2.25f;
+        private const float EXTRABOLD = 2.5f;
+        private const float ULTRABOLD = 2.75f;
+
+        private const float POSTURE_REGULAR = 0.0f;
+        private const float POSTURE_OBLIQUE = 0.20f;
+        
+        private const float WIDTH_CONDENSED = 0.75f;
+        private const float WIDTH_SEMI_CONDENSED = 0.875f;
+        private const float WIDTH_REGULAR = 1.0f;
+        private const float WIDTH_SEMI_EXTENDED = 1.25f;
+        private const float WIDTH_EXTENDED = 1.5f;
+        
+        private static readonly float[] fontWeights = { 
+        	EXTRA_LIGHT + (LIGHT - EXTRA_LIGHT)/2f,
+            LIGHT + (DEMILIGHT - LIGHT)/2f,
+            DEMILIGHT + (REGULAR - DEMILIGHT)/2f,
+            REGULAR + (SEMIBOLD - REGULAR)/2f,
+            SEMIBOLD + (MEDIUM - SEMIBOLD)/2f,
+            MEDIUM + (DEMIBOLD - MEDIUM)/2f,
+            DEMIBOLD + (BOLD - DEMIBOLD)/2f,
+            BOLD + (HEAVY - BOLD)/2f,
+            HEAVY + (EXTRABOLD - HEAVY)/2f,
+            EXTRABOLD + (ULTRABOLD - EXTRABOLD)
+        };
+
+        private static readonly String[] svgWeights = {
+            /*EXTRA_LIGHT*/ "100",
+            /*LIGHT*/       "200",
+            /*DEMILIGHT*/   "300",
+            /*REGULAR*/     "normal",
+            /*SEMIBOLD*/    "500",
+            /*MEDIUM*/      "500",
+            /*DEMIBOLD*/    "600",
+            /*BOLD*/        "bold",
+            /*HEAVY*/       "800",
+            /*EXTRABOLD*/   "800",
+            /*ULTRABOLD*/   "900"
+        };
+
+        private static readonly float[] fontStyles = {
+            POSTURE_REGULAR + (POSTURE_OBLIQUE - POSTURE_REGULAR)/2
+        };
+
+        private static readonly String[] svgStyles = {
+            /*POSTURE_REGULAR*/   "normal",
+            /*POSTURE_OBLIQUE*/   "italic"
+        };
+
+        private const int COMMON_FONT_SIZE = 100;
+
+	    protected FreetypeFontSupplier FontSup 
+	    {
+	    	get 
+	    	{
+	    		lock(GetType()) 
+	    		{
+	    			if(fsup == null) 
+	    			{
+	    				defaultMatrix = new Matrix(1f/COMMON_FONT_SIZE, 0, 0, 1f/COMMON_FONT_SIZE, 0, 0);
+		    			fsup = new FreetypeFontSupplier(File.ReadAllBytes(PathToFont), defaultMatrix);
+		    		}
+	    		}
+	    		return fsup;
+	    	}
+	    }
+
+	    public void register(String s) {
+	    	for(int k = 0; k < s.Length; ++k) {
+	    		char cc = s[k];
+	    		if(!chars.Contains(cc)) chars.Add(cc);
+	    	}
+	    }
+
+		public OxyFontHolder(String pathToFont, float emSize)
+		{
+			this._pathToFont = pathToFont;
+			this._emSize = emSize;
+			chars = new List<char>();
+		}
+
+		public OxyFontHolder(String pathToFont, float emSize, float weight)
+			: this(pathToFont, emSize)
+		{
+			this._weight = weight;
+		}
+
+		internal OxyFontHolder(OxyFontHolder fh, float emSize, float weight)
+		{
+			this._pathToFont = fh.PathToFont;
+			this._emSize = emSize;
+			this._weight = weight;
+
+			// fdsup and chars are shared
+			this.fsup = fh.FontSup;
+			this.chars = fh.chars;
+			this.defaultMatrix = fh.defaultMatrix;
+		}
+
+		private GlyphInfo getGlyph(char c) {
+			return FontSup.getGlyph(c);
+		}
+
+		public String PathToFont
+		{
+			get { return _pathToFont; }
+		}
+
+		public String SvgFontName 
+		{
+			get { return "Font_" + PathToFont.GetHashCode(); }
+		}
+		
+        private float EmSize // in canvas
+        {
+            get { return _emSize * 96.0f / 72.0f; }
+        }
+
+        private float EmSizePt // in SVG
+        {
+            get { return _emSize * 72.0f / 96.0f; }
+        }
+
+		public float Weight
+		{
+			get { return _weight; }
+		}
+
+		public GraphicsUnit Unit
+		{
+			get { return GraphicsUnit.Point; }
+		}
+
+		public float Height 
+		{
+			get { return FontSup.fontHeight * EmSize; }
+		}
+        
+		public float Ascent 
+		{
+			get { return FontSup.fontAscent * EmSize; }
+		}
+
+		public List<char> KnownChars 
+		{ 
+			get { return chars; } 
+		}
+
+		public void Dispose()
+		{
+			if(fsup != null) fsup = null;
+		}
+
+		private void computeW(float[] w, float[] maxW, char cc) 
+		{
+			int code  = (int)cc;
+			GlyphInfo gi = FontSup.getGlyph(code);
+			if(cc == '\n' || cc == '\r') {
+				maxW[0] = Math.Max(maxW[0], w[0]);
+				w[0] = 0;
+			}
+			else if(gi != null) 
+				w[0] += gi.advance.X;
+		}
+
+		public float MeasureTextWidth(String text)
+		{
+		    float[] width = new float[1];
+		    float[] maxW  = new float[1];
+		    width[0] = maxW[0] = 0;
+
+		    register(text);
+		    
+			for(int k = 0; k < text.Length; ++k) {
+				char cc = text[k];
+				computeW(width, maxW, cc);
+			}
+		    width[0] = Math.Max(maxW[0], width[0]);
+			return width[0] * EmSize;
+		}
+
+		private int countCRs(String s ) {
+			int c = 0;
+			for(int k = 0; k < s.Length; ++k)
+				if(s[k] == '\n') ++c;
+			return c;
+		}
+
+	    private String SvgWeight
+	    {
+		    get
+			{
+            	float weight = Weight;
+		        int i = 0;
+    	    	for (i=0; i < fontWeights.Length; i++) {
+        	    	if (weight<=fontWeights[i])
+            	    	break;
+	        	}
+	       		return svgWeights[i];
+    		}
+    	}
+
+    	private String SvgStyle
+    	{
+        	get 
+        	{
+            	float style = POSTURE_REGULAR;
+    	        int i = 0;
+        	    for (i=0; i< fontStyles.Length; i++) {
+            	    if (style <= fontStyles[i])
+                	    break;
+    	        }
+
+        	    return svgStyles[i];
+    	    }
+    	}
+	    
+    	private String toSVGPathData(GraphicsPath s) 
+    	{
+			StringBuilder d = new StringBuilder();
+		
+			float lastX = 0;
+			float lastY = 0;
+			
+			int strIdx;
+			int pathType;
+			float x1, y1, x2, y2, x3, y3;
+			int iptr;
+
+			for (iptr = 0; iptr < s.PathData.Types.Length;)
+			{
+				pathType = (int)s.PathData.Types[iptr];
+				strIdx = iptr;
+				bool close = (pathType & (int)PathPointType.CloseSubpath) == (int)PathPointType.CloseSubpath;
+				bool dashed= (pathType & (int)PathPointType.DashMode) == (int)PathPointType.DashMode;
+
+				pathType &= (int)PathPointType.PathTypeMask;
+				switch((PathPointType)pathType) 
+				{
+					/* PathPointType.Bezier3 == PathPointType.Bezier */
+					case PathPointType.Bezier3:
+						x1 = s.PathData.Points[strIdx].X;
+						y1 = s.PathData.Points[strIdx].Y;
+						x2 = s.PathData.Points[strIdx+1].X;
+						y2 = s.PathData.Points[strIdx+1].Y;
+						x3 = s.PathData.Points[strIdx+2].X;
+						y3 = s.PathData.Points[strIdx+2].Y;
+						lastX = x3;
+						lastY = y3;
+                		d.Append("C ");
+               			appendPoint(d, x1, y1);
+                		appendPoint(d, x2, y2);
+                		appendPoint(d, x3, y3);
+						iptr += 3;
+						break;
+					case PathPointType.Line:
+						lastX = s.PathData.Points[strIdx].X;
+						lastY = s.PathData.Points[strIdx].Y;
+                		d.Append("L ");
+                		appendPoint(d, lastX, lastY);
+						++iptr;
+						break;
+					case PathPointType.Start: 
+						lastX = s.PathData.Points[strIdx].X;
+						lastY = s.PathData.Points[strIdx].Y;
+                		d.Append("M ");
+                		appendPoint(d, lastX, lastY);
+						++iptr;
+						break;
+				}
+
+				if(close)
+					d.Append("Z ");
+			}
+
+        	if (d.Length > 0)
+            	return d.ToString().Trim();
+        	else // emty path
+            	return "";
+    	}
+
+    	private void appendPoint(StringBuilder d, float x, float y) {
+        	d.Append(x);
+        	d.Append(' ');
+        	d.Append(y);
+        	d.Append(' ');
+    	}
+
+    	private void appendAttr(StringBuilder sb, String k, String v) {
+    		sb.Append(' ');
+    		sb.Append(k);
+    		sb.Append('=');
+    		sb.Append('\"');
+    		sb.Append(v);
+    		sb.Append('\"');
+    	}
+
+	    public void dumpGlyphBody(SvgWriter w, char c) 
+		{
+        	if('\uFF00' == c) 
+	            w.WriteStartElementP("missing-glyph");
+        	else {
+	            w.WriteStartElementP("glyph");
+        		w.WriteAttributeStringP("unicode", "" + c);
+        	}
+
+	    	GlyphInfo gi = getGlyph(c);
+	    	GraphicsPath gp;
+	    	if(gi == null) {
+	    		w.WriteAttributeStringP("horiz-adv-x", "" + (10 * FontSup.unitsPerEm / COMMON_FONT_SIZE));
+	    	    gp = new GraphicsPath();
+	    	    gp.AddRectangle(new RectangleF(0.0f, 0.0f, COMMON_FONT_SIZE, COMMON_FONT_SIZE));
+	    	    gp.AddLine(0, 0, COMMON_FONT_SIZE, COMMON_FONT_SIZE);
+	    	    gp.AddLine(COMMON_FONT_SIZE, 0, COMMON_FONT_SIZE, 0);
+	    	}
+	    	else {
+	    		gp = (GraphicsPath)gi.gp.Clone();
+		        Matrix at = new Matrix();
+    		    at.Scale(1 * COMMON_FONT_SIZE, 1 * COMMON_FONT_SIZE);
+        		gp.Transform(at);
+	    		w.WriteAttributeStringP("horiz-adv-x", gi.advance.X * FontSup.unitsPerEm);
+            }
+            w.WriteAttributeStringP("d", toSVGPathData(gp) );
+            w.WriteEndElementP();
+    	}
+
+	    // now font glyphs definition
+    	public void dumpFontGlyphs(SvgWriter w)
+    	{
+        	w.WriteStartElementP("font");
+        	w.WriteAttributeStringP("id", SvgFontName);
+        	w.WriteStartElementP("font-face");
+        	w.WriteAttributeStringP("ascent",  FontSup.fontAscent * COMMON_FONT_SIZE);
+        	w.WriteAttributeStringP("descent", FontSup.fontDescent * COMMON_FONT_SIZE);
+        	w.WriteAttributeStringP("units-per-em", "" + FontSup.unitsPerEm /*  * COMMON_FONT_SIZE / 1000.0f */);
+        	w.WriteAttributeStringP("height", FontSup.fontHeight * COMMON_FONT_SIZE);
+        	w.WriteAttributeStringP("font-style", SvgStyle);
+        	w.WriteAttributeStringP("font-family", SvgFontName);
+        	w.WriteAttributeStringP("font-weight", "normal");
+            w.WriteEndElementP();
+
+        	dumpGlyphBody(w, '\uFF00');
+        	for(int k = 0; k < KnownChars.Count; ++k) 
+            	dumpGlyphBody(w, KnownChars[k]) ;
+            w.WriteEndElementP();
+        }
+	}
+
     /// <summary>
     /// Represents a writer that provides easy generation of Scalable Vector Graphics files.
     /// </summary>
@@ -46,7 +416,7 @@
             : base(stream)
         {
             this.IsDocument = isDocument;
-            this.NumberFormat = "0.####";
+            this.NumberFormat = "f4";
             this.WriteHeader(width, height);
         }
 
@@ -441,8 +811,7 @@
                 return "black";
             }
 
-            var formatString = "rgb({0:" + this.NumberFormat + "},{1:" + this.NumberFormat + "},{2:" + this.NumberFormat + "})";
-            return string.Format(formatString, color.R, color.G, color.B);
+            return color.ToSvgString();
         }
 
         /// <summary>
@@ -522,5 +891,26 @@
             this.WriteAttributeString("version", "1.1");
             this.WriteAttributeString("xmlns", "xlink", null, "http://www.w3.org/1999/xlink");
         }
+
+        // Wrappers for "so close" isolation levels.
+        public void WriteAttributeStringP(string name, string value)
+        {
+            WriteAttributeString(name, value);
+        }
+
+        public void WriteAttributeStringP(string name, float value)
+        {
+            WriteAttributeString(name, "" + value);
+        }
+
+        public void WriteEndElementP()
+        {
+            WriteEndElement();
+        }
+
+        public void WriteStartElementP(string name)
+        {
+            WriteStartElement(name);
+        }
     }
 }
\ No newline at end of file
