diff --git a/Code/Mantid/MantidPlot/CMakeLists.txt b/Code/Mantid/MantidPlot/CMakeLists.txt
index 8eca506905980c79020a937dad9a45ab2442d0e6..5a25d851c98d85a747a669921d852786c74dd243 100644
--- a/Code/Mantid/MantidPlot/CMakeLists.txt
+++ b/Code/Mantid/MantidPlot/CMakeLists.txt
@@ -10,7 +10,7 @@ set ( QTIPLOT_SRCS src/ApplicationWindow.cpp
                    src/ArrowMarker.cpp
                    src/AssociationsDialog.cpp
                    src/AxesDialog.cpp
-                   src/AxisAxisDetails.cpp
+                   src/AxisDetails.cpp
                    src/Bar.cpp
                    src/BoxCurve.cpp
                    src/CanvasPicker.cpp
@@ -99,7 +99,7 @@ set ( QTIPLOT_SRCS src/ApplicationWindow.cpp
                    src/QwtPieCurve.cpp
                    src/RangeSelectorTool.cpp
                    src/RenameWindowDialog.cpp
-                   src/ScaleAxisDetails.cpp
+                   src/ScaleDetails.cpp
                    src/ScaleDraw.cpp
                    src/ScalePicker.cpp
                    src/ScreenPickerTool.cpp
@@ -242,7 +242,7 @@ set ( QTIPLOT_HDRS src/ApplicationWindow.h
                    src/ArrowMarker.h
                    src/AssociationsDialog.h
                    src/AxesDialog.h
-                   src/AxisAxisDetails.h
+                   src/AxisDetails.h
                    src/Bar.h
                    src/BoxCurve.h
                    src/CanvasPicker.h
@@ -339,7 +339,7 @@ set ( QTIPLOT_HDRS src/ApplicationWindow.h
                    src/RangeSelectorTool.h
                    src/RenameWindowDialog.h
                    src/resource.h
-                   src/ScaleAxisDetails.h
+                   src/ScaleDetails.h
                    src/ScaleDraw.h
                    src/ScalePicker.h
                    src/ScreenPickerTool.h
@@ -548,7 +548,7 @@ include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} )
 set ( QTIPLOT_MOC_FILES src/ApplicationWindow.h
                         src/AssociationsDialog.h
                         src/AxesDialog.h
-                        src/AxisAxisDetails.h
+                        src/AxisDetails.h
                         src/CanvasPicker.h
                         src/ColorMapDialog.h
                         src/CommandLineInterpreter.h
@@ -621,7 +621,7 @@ set ( QTIPLOT_MOC_FILES src/ApplicationWindow.h
                         src/QwtPieCurve.h
                         src/RangeSelectorTool.h
                         src/RenameWindowDialog.h
-                   	src/ScaleAxisDetails.h
+                   	src/ScaleDetails.h
                         src/ScalePicker.h
                         src/ScreenPickerTool.h
                         src/Script.h
diff --git a/Code/Mantid/MantidPlot/src/AxesDialog.cpp b/Code/Mantid/MantidPlot/src/AxesDialog.cpp
index a2cec4190766afa5d74303eddbeabbe67f258f6a..c689362384f525b0b29ce71284e6093f6e20af9f 100644
--- a/Code/Mantid/MantidPlot/src/AxesDialog.cpp
+++ b/Code/Mantid/MantidPlot/src/AxesDialog.cpp
@@ -1,31 +1,31 @@
 /***************************************************************************
- File                 : AxesDialog.cpp
- Project              : QtiPlot
- --------------------------------------------------------------------
- Copyright            : (C) 2006 by Ion Vasilief, Tilman Hoener zu Siederdissen
- Email (use @ for *)  : ion_vasilief*yahoo.fr, thzs*gmx.net
- Description          : General plot options dialog
+File                 : AxesDialog.cpp
+Project              : QtiPlot
+--------------------------------------------------------------------
+Copyright            : (C) 2006 by Ion Vasilief, Tilman Hoener zu Siederdissen
+Email (use @ for *)  : ion_vasilief*yahoo.fr, thzs*gmx.net
+Description          : General plot options dialog
 
- ***************************************************************************/
+***************************************************************************/
 
 /***************************************************************************
- *                                                                         *
- *  This program is free software; you can redistribute it and/or modify   *
- *  it under the terms of the GNU General Public License as published by   *
- *  the Free Software Foundation; either version 2 of the License, or      *
- *  (at your option) any later version.                                    *
- *                                                                         *
- *  This program is distributed in the hope that it will be useful,        *
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
- *  GNU General Public License for more details.                           *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the Free Software           *
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor,                    *
- *   Boston, MA  02110-1301  USA                                           *
- *                                                                         *
- ***************************************************************************/
+*                                                                         *
+*  This program is free software; you can redistribute it and/or modify   *
+*  it under the terms of the GNU General Public License as published by   *
+*  the Free Software Foundation; either version 2 of the License, or      *
+*  (at your option) any later version.                                    *
+*                                                                         *
+*  This program is distributed in the hope that it will be useful,        *
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
+*  GNU General Public License for more details.                           *
+*                                                                         *
+*   You should have received a copy of the GNU General Public License     *
+*   along with this program; if not, write to the Free Software           *
+*   Foundation, Inc., 51 Franklin Street, Fifth Floor,                    *
+*   Boston, MA  02110-1301  USA                                           *
+*                                                                         *
+***************************************************************************/
 #include "qwt_compat.h"
 #include "AxesDialog.h"
 #include "ApplicationWindow.h"
@@ -66,558 +66,558 @@
 
 /* XPM */
 static const char* bottom_scl_xpm[] = { "36 38 75 1", " 	c None", ".	c #FFFFFF",
-    "+	c #818181", "@	c #070707", "#	c #101010", "$	c #EEEEEE", "%	c #1D1D1D",
-    "&	c #ACACAC", "*	c #151515", "=	c #121212", "-	c #929292", ";	c #242424",
-    ">	c #D5D5D5", ",	c #C9C9C9", "'	c #2A2A2A", ")	c #5E5E5E", "!	c #000000",
-    "~	c #C8C8C8", "{	c #D2D2D2", "]	c #090909", "^	c #060606", "/	c #FEFEFE",
-    "(	c #FCFCFC", "_	c #F7F7F7", ":	c #CECECE", "<	c #444444", "[	c #E0E0E0",
-    "}	c #464646", "|	c #E8E8E8", "1	c #282828", "2	c #D3D3D3", "3	c #D1D1D1",
-    "4	c #A4A4A4", "5	c #484848", "6	c #EBEBEB", "7	c #7D7D7D", "8	c #050505",
-    "9	c #7F7F7F", "0	c #FDFDFD", "a	c #7D6F6F", "b	c #F38C82", "c	c #E71E09",
-    "d	c #E82612", "e	c #FDEFEE", "f	c #E9321F", "g	c #F7B3AC", "h	c #E82B17",
-    "i	c #E82814", "j	c #F49C93", "k	c #EA3826", "l	c #FBD8D5", "m	c #F9CEC9",
-    "n	c #EA3E2C", "o	c #EF6D5F", "p	c #E71803", "q	c #F9CDC8", "r	c #FAD6D2",
-    "s	c #E7200B", "t	c #E71D08", "u	c #FEFCFC", "v	c #FEF7F7", "w	c #FAD2CE",
-    "x	c #ED5546", "y	c #FCE2E0", "z	c #ED5748", "A	c #FCEAE8", "B	c #EA3C2A",
-    "C	c #FAD7D3", "D	c #FAD5D1", "E	c #F6ACA5", "F	c #ED594A", "G	c #FDECEB",
-    "H	c #F2897E", "I	c #E71C07", "J	c #F28B80",
-    "....................................",
-    "......+@#+......$%......&*=-........",
-    "......;>,'......)!......%~{]........",
-    "......^/(^......_!........:<........",
-    "......^((^.......!.......[}|........",
-    "......123;.......!......456.........",
-    "......78^9.......!......*!!!........",
-    "+@#+................................",
-    ";>,'...(!0.......!.......!.....+@#+.",
-    "^/(^...!!!!!!!!!!!!!!!!!!!!!!..;>,'.",
-    "^((^...!aaaaaaaaaaaaaaaaaaaa!..^/(^.",
-    "123;..!!aaaaaaaaaaaaaaaaaaaa!!.^((^.",
-    "78^9...!aaaaaaaaaaaaaaaaaaaa!..123;.",
-    ".......!aaaaaaaaaaaaaaaaaaaa!..78^9.",
-    ".......!aaaaaaaaaaaaaaaaaaaa!.......",
-    "$%.....!aaaaaaaaaaaaaaaaaaaa!.......",
-    ")!.....!aaaaaaaaaaaaaaaaaaaa!..$%...",
-    "_!.....!aaaaaaaaaaaaaaaaaaaa!..)!...",
-    ".!....!!aaaaaaaaaaaaaaaaaaaa!!._!...",
-    ".!.....!aaaaaaaaaaaaaaaaaaaa!...!...",
-    ".!.....!aaaaaaaaaaaaaaaaaaaa!...!...",
-    ".......!aaaaaaaaaaaaaaaaaaaa!...!...",
-    "&*=-...!aaaaaaaaaaaaaaaaaaaa!.......",
-    "%~{]...!aaaaaaaaaaaaaaaaaaaa!..&*=-.",
-    "..:<...!aaaaaaaaaaaaaaaaaaaa!..%~{].",
-    ".[}|..!!aaaaaaaaaaaaaaaaaaaa!!...:<.",
-    "456....!aaaaaaaaaaaaaaaaaaaa!...[}|.",
-    "*!!!...!aaaaaaaaaaaaaaaaaaaa!..456..",
-    ".......!!!!!!!!!!!!!!!!!!!!!!..*!!!.",
-    ".........!........!.......!.........",
-    "....................................",
-    "........bcdb.....ef......ghij.......",
-    "........klmn.....op......fqrs.......",
-    "........t/ut.....vp........wx.......",
-    "........tuut......p.......yzA.......",
-    "........BCDk......p......EFG........",
-    "........HItJ......p......hppp.......",
-    "...................................." };
+  "+	c #818181", "@	c #070707", "#	c #101010", "$	c #EEEEEE", "%	c #1D1D1D",
+  "&	c #ACACAC", "*	c #151515", "=	c #121212", "-	c #929292", ";	c #242424",
+  ">	c #D5D5D5", ",	c #C9C9C9", "'	c #2A2A2A", ")	c #5E5E5E", "!	c #000000",
+  "~	c #C8C8C8", "{	c #D2D2D2", "]	c #090909", "^	c #060606", "/	c #FEFEFE",
+  "(	c #FCFCFC", "_	c #F7F7F7", ":	c #CECECE", "<	c #444444", "[	c #E0E0E0",
+  "}	c #464646", "|	c #E8E8E8", "1	c #282828", "2	c #D3D3D3", "3	c #D1D1D1",
+  "4	c #A4A4A4", "5	c #484848", "6	c #EBEBEB", "7	c #7D7D7D", "8	c #050505",
+  "9	c #7F7F7F", "0	c #FDFDFD", "a	c #7D6F6F", "b	c #F38C82", "c	c #E71E09",
+  "d	c #E82612", "e	c #FDEFEE", "f	c #E9321F", "g	c #F7B3AC", "h	c #E82B17",
+  "i	c #E82814", "j	c #F49C93", "k	c #EA3826", "l	c #FBD8D5", "m	c #F9CEC9",
+  "n	c #EA3E2C", "o	c #EF6D5F", "p	c #E71803", "q	c #F9CDC8", "r	c #FAD6D2",
+  "s	c #E7200B", "t	c #E71D08", "u	c #FEFCFC", "v	c #FEF7F7", "w	c #FAD2CE",
+  "x	c #ED5546", "y	c #FCE2E0", "z	c #ED5748", "A	c #FCEAE8", "B	c #EA3C2A",
+  "C	c #FAD7D3", "D	c #FAD5D1", "E	c #F6ACA5", "F	c #ED594A", "G	c #FDECEB",
+  "H	c #F2897E", "I	c #E71C07", "J	c #F28B80",
+  "....................................",
+  "......+@#+......$%......&*=-........",
+  "......;>,'......)!......%~{]........",
+  "......^/(^......_!........:<........",
+  "......^((^.......!.......[}|........",
+  "......123;.......!......456.........",
+  "......78^9.......!......*!!!........",
+  "+@#+................................",
+  ";>,'...(!0.......!.......!.....+@#+.",
+  "^/(^...!!!!!!!!!!!!!!!!!!!!!!..;>,'.",
+  "^((^...!aaaaaaaaaaaaaaaaaaaa!..^/(^.",
+  "123;..!!aaaaaaaaaaaaaaaaaaaa!!.^((^.",
+  "78^9...!aaaaaaaaaaaaaaaaaaaa!..123;.",
+  ".......!aaaaaaaaaaaaaaaaaaaa!..78^9.",
+  ".......!aaaaaaaaaaaaaaaaaaaa!.......",
+  "$%.....!aaaaaaaaaaaaaaaaaaaa!.......",
+  ")!.....!aaaaaaaaaaaaaaaaaaaa!..$%...",
+  "_!.....!aaaaaaaaaaaaaaaaaaaa!..)!...",
+  ".!....!!aaaaaaaaaaaaaaaaaaaa!!._!...",
+  ".!.....!aaaaaaaaaaaaaaaaaaaa!...!...",
+  ".!.....!aaaaaaaaaaaaaaaaaaaa!...!...",
+  ".......!aaaaaaaaaaaaaaaaaaaa!...!...",
+  "&*=-...!aaaaaaaaaaaaaaaaaaaa!.......",
+  "%~{]...!aaaaaaaaaaaaaaaaaaaa!..&*=-.",
+  "..:<...!aaaaaaaaaaaaaaaaaaaa!..%~{].",
+  ".[}|..!!aaaaaaaaaaaaaaaaaaaa!!...:<.",
+  "456....!aaaaaaaaaaaaaaaaaaaa!...[}|.",
+  "*!!!...!aaaaaaaaaaaaaaaaaaaa!..456..",
+  ".......!!!!!!!!!!!!!!!!!!!!!!..*!!!.",
+  ".........!........!.......!.........",
+  "....................................",
+  "........bcdb.....ef......ghij.......",
+  "........klmn.....op......fqrs.......",
+  "........t/ut.....vp........wx.......",
+  "........tuut......p.......yzA.......",
+  "........BCDk......p......EFG........",
+  "........HItJ......p......hppp.......",
+  "...................................." };
 
 /* XPM */
 static const char* top_scl_xpm[] = { "36 38 75 1", " 	c None", ".	c #FFFFFF",
-    "+	c #F38C82", "@	c #E71E09", "#	c #E82612", "$	c #FEFAFA", "%	c #E9321F",
-    "&	c #F7B3AC", "*	c #E82B17", "=	c #E82814", "-	c #F49C93", ";	c #EA3826",
-    ">	c #FBD8D5", ",	c #F9CEC9", "'	c #EA3E2C", ")	c #EF6D5F", "!	c #E71803",
-    "~	c #F9CDC8", "{	c #FAD6D2", "]	c #E7200B", "^	c #E71D08", "/	c #FEFEFE",
-    "(	c #FEFCFC", "_	c #FAD2CE", ":	c #ED5546", "<	c #FCE2E0", "[	c #ED5748",
-    "}	c #FCEAE8", "|	c #EA3C2A", "1	c #FAD7D3", "2	c #FAD5D1", "3	c #F6ACA5",
-    "4	c #ED594A", "5	c #FDF2F1", "6	c #F2897E", "7	c #E71C07", "8	c #F28B80",
-    "9	c #818181", "0	c #070707", "a	c #101010", "b	c #242424", "c	c #D5D5D5",
-    "d	c #C9C9C9", "e	c #2A2A2A", "f	c #000000", "g	c #060606", "h	c #FCFCFC",
-    "i	c #7D6F6F", "j	c #282828", "k	c #D3D3D3", "l	c #D1D1D1", "m	c #7D7D7D",
-    "n	c #050505", "o	c #7F7F7F", "p	c #FAFAFA", "q	c #1D1D1D", "r	c #5E5E5E",
-    "s	c #ACACAC", "t	c #151515", "u	c #121212", "v	c #929292", "w	c #C8C8C8",
-    "x	c #D2D2D2", "y	c #090909", "z	c #CECECE", "A	c #444444", "B	c #E0E0E0",
-    "C	c #464646", "D	c #E8E8E8", "E	c #A4A4A4", "F	c #484848", "G	c #F1F1F1",
-    "H	c #EEEEEE", "I	c #F7F7F7", "J	c #EBEBEB",
-    "....................................",
-    ".......+@#+.....$%......&*=-........",
-    ".......;>,'.....)!......%~{]........",
-    ".......^/(^......!........_:........",
-    ".......^((^......!.......<[}........",
-    ".......|12;......!......345.........",
-    ".......67^8......!......*!!!........",
-    "90a9................................",
-    "bcde....f........f.......f.....90a9.",
-    "g/hg...ffffffffffffffffffffff..bcde.",
-    "ghhg...fiiiiiiiiiiiiiiiiiiiif..g/hg.",
-    "jklb..ffiiiiiiiiiiiiiiiiiiiiff.ghhg.",
-    "mngo...fiiiiiiiiiiiiiiiiiiiif..jklb.",
-    ".......fiiiiiiiiiiiiiiiiiiiif..mngo.",
-    ".......fiiiiiiiiiiiiiiiiiiiif.......",
-    "pq.....fiiiiiiiiiiiiiiiiiiiif.......",
-    "rf.....fiiiiiiiiiiiiiiiiiiiif..pq...",
-    ".f.....fiiiiiiiiiiiiiiiiiiiif..rf...",
-    ".f....ffiiiiiiiiiiiiiiiiiiiiff..f...",
-    ".f.....fiiiiiiiiiiiiiiiiiiiif...f...",
-    ".f.....fiiiiiiiiiiiiiiiiiiiif...f...",
-    ".......fiiiiiiiiiiiiiiiiiiiif...f...",
-    "stuv...fiiiiiiiiiiiiiiiiiiiif.......",
-    "qwxy...fiiiiiiiiiiiiiiiiiiiif..stuv.",
-    "..zA...fiiiiiiiiiiiiiiiiiiiif..qwxy.",
-    ".BCD..ffiiiiiiiiiiiiiiiiiiiiff...zA.",
-    "EFG....fiiiiiiiiiiiiiiiiiiiif...BCD.",
-    "tfff...fiiiiiiiiiiiiiiiiiiiif..EFG..",
-    ".......ffffffffffffffffffffff..tfff.",
-    ".........f........f.......f.........",
-    "....................................",
-    ".......90a9......Hq......stuv.......",
-    ".......bcde......rf......qwxy.......",
-    ".......g/hg......If........zA.......",
-    ".......ghhg.......f.......BCD.......",
-    ".......jklb.......f......EFJ........",
-    ".......mngo.......f......tfff.......",
-    "...................................." };
+  "+	c #F38C82", "@	c #E71E09", "#	c #E82612", "$	c #FEFAFA", "%	c #E9321F",
+  "&	c #F7B3AC", "*	c #E82B17", "=	c #E82814", "-	c #F49C93", ";	c #EA3826",
+  ">	c #FBD8D5", ",	c #F9CEC9", "'	c #EA3E2C", ")	c #EF6D5F", "!	c #E71803",
+  "~	c #F9CDC8", "{	c #FAD6D2", "]	c #E7200B", "^	c #E71D08", "/	c #FEFEFE",
+  "(	c #FEFCFC", "_	c #FAD2CE", ":	c #ED5546", "<	c #FCE2E0", "[	c #ED5748",
+  "}	c #FCEAE8", "|	c #EA3C2A", "1	c #FAD7D3", "2	c #FAD5D1", "3	c #F6ACA5",
+  "4	c #ED594A", "5	c #FDF2F1", "6	c #F2897E", "7	c #E71C07", "8	c #F28B80",
+  "9	c #818181", "0	c #070707", "a	c #101010", "b	c #242424", "c	c #D5D5D5",
+  "d	c #C9C9C9", "e	c #2A2A2A", "f	c #000000", "g	c #060606", "h	c #FCFCFC",
+  "i	c #7D6F6F", "j	c #282828", "k	c #D3D3D3", "l	c #D1D1D1", "m	c #7D7D7D",
+  "n	c #050505", "o	c #7F7F7F", "p	c #FAFAFA", "q	c #1D1D1D", "r	c #5E5E5E",
+  "s	c #ACACAC", "t	c #151515", "u	c #121212", "v	c #929292", "w	c #C8C8C8",
+  "x	c #D2D2D2", "y	c #090909", "z	c #CECECE", "A	c #444444", "B	c #E0E0E0",
+  "C	c #464646", "D	c #E8E8E8", "E	c #A4A4A4", "F	c #484848", "G	c #F1F1F1",
+  "H	c #EEEEEE", "I	c #F7F7F7", "J	c #EBEBEB",
+  "....................................",
+  ".......+@#+.....$%......&*=-........",
+  ".......;>,'.....)!......%~{]........",
+  ".......^/(^......!........_:........",
+  ".......^((^......!.......<[}........",
+  ".......|12;......!......345.........",
+  ".......67^8......!......*!!!........",
+  "90a9................................",
+  "bcde....f........f.......f.....90a9.",
+  "g/hg...ffffffffffffffffffffff..bcde.",
+  "ghhg...fiiiiiiiiiiiiiiiiiiiif..g/hg.",
+  "jklb..ffiiiiiiiiiiiiiiiiiiiiff.ghhg.",
+  "mngo...fiiiiiiiiiiiiiiiiiiiif..jklb.",
+  ".......fiiiiiiiiiiiiiiiiiiiif..mngo.",
+  ".......fiiiiiiiiiiiiiiiiiiiif.......",
+  "pq.....fiiiiiiiiiiiiiiiiiiiif.......",
+  "rf.....fiiiiiiiiiiiiiiiiiiiif..pq...",
+  ".f.....fiiiiiiiiiiiiiiiiiiiif..rf...",
+  ".f....ffiiiiiiiiiiiiiiiiiiiiff..f...",
+  ".f.....fiiiiiiiiiiiiiiiiiiiif...f...",
+  ".f.....fiiiiiiiiiiiiiiiiiiiif...f...",
+  ".......fiiiiiiiiiiiiiiiiiiiif...f...",
+  "stuv...fiiiiiiiiiiiiiiiiiiiif.......",
+  "qwxy...fiiiiiiiiiiiiiiiiiiiif..stuv.",
+  "..zA...fiiiiiiiiiiiiiiiiiiiif..qwxy.",
+  ".BCD..ffiiiiiiiiiiiiiiiiiiiiff...zA.",
+  "EFG....fiiiiiiiiiiiiiiiiiiiif...BCD.",
+  "tfff...fiiiiiiiiiiiiiiiiiiiif..EFG..",
+  ".......ffffffffffffffffffffff..tfff.",
+  ".........f........f.......f.........",
+  "....................................",
+  ".......90a9......Hq......stuv.......",
+  ".......bcde......rf......qwxy.......",
+  ".......g/hg......If........zA.......",
+  ".......ghhg.......f.......BCD.......",
+  ".......jklb.......f......EFJ........",
+  ".......mngo.......f......tfff.......",
+  "...................................." };
 
 /* XPM */
 static const char* left_scl_xpm[] = { "36 36 72 1", " 	c None", ".	c #FFFFFF",
-    "+	c #818181", "@	c #070707", "#	c #101010", "$	c #FAFAFA", "%	c #1D1D1D",
-    "&	c #ACACAC", "*	c #151515", "=	c #121212", "-	c #929292", ";	c #242424",
-    ">	c #D5D5D5", ",	c #C9C9C9", "'	c #2A2A2A", ")	c #5E5E5E", "!	c #000000",
-    "~	c #C8C8C8", "{	c #D2D2D2", "]	c #090909", "^	c #060606", "/	c #FEFEFE",
-    "(	c #FCFCFC", "_	c #CECECE", ":	c #444444", "<	c #E0E0E0", "[	c #464646",
-    "}	c #E8E8E8", "|	c #282828", "1	c #D3D3D3", "2	c #D1D1D1", "3	c #A4A4A4",
-    "4	c #484848", "5	c #F1F1F1", "6	c #7D7D7D", "7	c #050505", "8	c #7F7F7F",
-    "9	c #F38C82", "0	c #E71E09", "a	c #E82612", "b	c #EA3826", "c	c #FBD8D5",
-    "d	c #F9CEC9", "e	c #EA3E2C", "f	c #E71D08", "g	c #FEFCFC", "h	c #7D6F6F",
-    "i	c #EA3C2A", "j	c #FAD7D3", "k	c #FAD5D1", "l	c #F2897E", "m	c #E71C07",
-    "n	c #F28B80", "o	c #FEFAFA", "p	c #E9321F", "q	c #EF6D5F", "r	c #E71803",
-    "s	c #F7B3AC", "t	c #E82B17", "u	c #E82814", "v	c #F49C93", "w	c #F9CDC8",
-    "x	c #FAD6D2", "y	c #E7200B", "z	c #FAD2CE", "A	c #ED5546", "B	c #FCE2E0",
-    "C	c #ED5748", "D	c #FCEAE8", "E	c #F6ACA5", "F	c #ED594A", "G	c #FDF2F1",
-    ".......+@#+......$%......&*=-.......",
-    ".......;>,'......)!......%~{].......",
-    ".......^/(^.......!........_:.......",
-    ".......^((^.......!.......<[}.......",
-    ".......|12;.......!......345........",
-    ".......67^8.......!......*!!!.......",
-    "....................................",
-    ".90a9...!........!.......!.....+@#+.",
-    ".bcde..!!!!!!!!!!!!!!!!!!!!!!..;>,'.",
-    ".f/gf..!hhhhhhhhhhhhhhhhhhhh!..^/(^.",
-    ".fggf.!!hhhhhhhhhhhhhhhhhhhh!!.^((^.",
-    ".ijkb..!hhhhhhhhhhhhhhhhhhhh!..|12;.",
-    ".lmfn..!hhhhhhhhhhhhhhhhhhhh!..67^8.",
-    ".......!hhhhhhhhhhhhhhhhhhhh!.......",
-    ".......!hhhhhhhhhhhhhhhhhhhh!.......",
-    "..op...!hhhhhhhhhhhhhhhhhhhh!...%...",
-    "..qr...!hhhhhhhhhhhhhhhhhhhh!..)!...",
-    "...r..!!hhhhhhhhhhhhhhhhhhhh!!..!...",
-    "...r...!hhhhhhhhhhhhhhhhhhhh!...!...",
-    "...r...!hhhhhhhhhhhhhhhhhhhh!...!...",
-    "...r...!hhhhhhhhhhhhhhhhhhhh!...!...",
-    ".......!hhhhhhhhhhhhhhhhhhhh!.......",
-    ".stuv..!hhhhhhhhhhhhhhhhhhhh!..&*=-.",
-    ".pwxy..!hhhhhhhhhhhhhhhhhhhh!..%~{].",
-    "...zA.!!hhhhhhhhhhhhhhhhhhhh!!..._:.",
-    "..BCD..!hhhhhhhhhhhhhhhhhhhh!...<[}.",
-    ".EFG...!hhhhhhhhhhhhhhhhhhhh!..34...",
-    ".trrr..!!!!!!!!!!!!!!!!!!!!!!..*!!!.",
-    ".........!........!.......!.........",
-    "....................................",
-    ".......+@#+......$%......&*=-.......",
-    ".......;>,'......)!......%~{].......",
-    ".......^/(^.......!........_:.......",
-    ".......^((^.......!.......<[}.......",
-    ".......|12;.......!......345........",
-    ".......67^8.......!......*!!!......." };
+  "+	c #818181", "@	c #070707", "#	c #101010", "$	c #FAFAFA", "%	c #1D1D1D",
+  "&	c #ACACAC", "*	c #151515", "=	c #121212", "-	c #929292", ";	c #242424",
+  ">	c #D5D5D5", ",	c #C9C9C9", "'	c #2A2A2A", ")	c #5E5E5E", "!	c #000000",
+  "~	c #C8C8C8", "{	c #D2D2D2", "]	c #090909", "^	c #060606", "/	c #FEFEFE",
+  "(	c #FCFCFC", "_	c #CECECE", ":	c #444444", "<	c #E0E0E0", "[	c #464646",
+  "}	c #E8E8E8", "|	c #282828", "1	c #D3D3D3", "2	c #D1D1D1", "3	c #A4A4A4",
+  "4	c #484848", "5	c #F1F1F1", "6	c #7D7D7D", "7	c #050505", "8	c #7F7F7F",
+  "9	c #F38C82", "0	c #E71E09", "a	c #E82612", "b	c #EA3826", "c	c #FBD8D5",
+  "d	c #F9CEC9", "e	c #EA3E2C", "f	c #E71D08", "g	c #FEFCFC", "h	c #7D6F6F",
+  "i	c #EA3C2A", "j	c #FAD7D3", "k	c #FAD5D1", "l	c #F2897E", "m	c #E71C07",
+  "n	c #F28B80", "o	c #FEFAFA", "p	c #E9321F", "q	c #EF6D5F", "r	c #E71803",
+  "s	c #F7B3AC", "t	c #E82B17", "u	c #E82814", "v	c #F49C93", "w	c #F9CDC8",
+  "x	c #FAD6D2", "y	c #E7200B", "z	c #FAD2CE", "A	c #ED5546", "B	c #FCE2E0",
+  "C	c #ED5748", "D	c #FCEAE8", "E	c #F6ACA5", "F	c #ED594A", "G	c #FDF2F1",
+  ".......+@#+......$%......&*=-.......",
+  ".......;>,'......)!......%~{].......",
+  ".......^/(^.......!........_:.......",
+  ".......^((^.......!.......<[}.......",
+  ".......|12;.......!......345........",
+  ".......67^8.......!......*!!!.......",
+  "....................................",
+  ".90a9...!........!.......!.....+@#+.",
+  ".bcde..!!!!!!!!!!!!!!!!!!!!!!..;>,'.",
+  ".f/gf..!hhhhhhhhhhhhhhhhhhhh!..^/(^.",
+  ".fggf.!!hhhhhhhhhhhhhhhhhhhh!!.^((^.",
+  ".ijkb..!hhhhhhhhhhhhhhhhhhhh!..|12;.",
+  ".lmfn..!hhhhhhhhhhhhhhhhhhhh!..67^8.",
+  ".......!hhhhhhhhhhhhhhhhhhhh!.......",
+  ".......!hhhhhhhhhhhhhhhhhhhh!.......",
+  "..op...!hhhhhhhhhhhhhhhhhhhh!...%...",
+  "..qr...!hhhhhhhhhhhhhhhhhhhh!..)!...",
+  "...r..!!hhhhhhhhhhhhhhhhhhhh!!..!...",
+  "...r...!hhhhhhhhhhhhhhhhhhhh!...!...",
+  "...r...!hhhhhhhhhhhhhhhhhhhh!...!...",
+  "...r...!hhhhhhhhhhhhhhhhhhhh!...!...",
+  ".......!hhhhhhhhhhhhhhhhhhhh!.......",
+  ".stuv..!hhhhhhhhhhhhhhhhhhhh!..&*=-.",
+  ".pwxy..!hhhhhhhhhhhhhhhhhhhh!..%~{].",
+  "...zA.!!hhhhhhhhhhhhhhhhhhhh!!..._:.",
+  "..BCD..!hhhhhhhhhhhhhhhhhhhh!...<[}.",
+  ".EFG...!hhhhhhhhhhhhhhhhhhhh!..34...",
+  ".trrr..!!!!!!!!!!!!!!!!!!!!!!..*!!!.",
+  ".........!........!.......!.........",
+  "....................................",
+  ".......+@#+......$%......&*=-.......",
+  ".......;>,'......)!......%~{].......",
+  ".......^/(^.......!........_:.......",
+  ".......^((^.......!.......<[}.......",
+  ".......|12;.......!......345........",
+  ".......67^8.......!......*!!!......." };
 
 /* XPM */
 static const char* right_scl_xpm[] = { "36 36 72 1", " 	c None", ".	c #FFFFFF",
-    "+	c #818181", "@	c #070707", "#	c #101010", "$	c #FAFAFA", "%	c #1D1D1D",
-    "&	c #ACACAC", "*	c #151515", "=	c #121212", "-	c #929292", ";	c #242424",
-    ">	c #D5D5D5", ",	c #C9C9C9", "'	c #2A2A2A", ")	c #5E5E5E", "!	c #000000",
-    "~	c #C8C8C8", "{	c #D2D2D2", "]	c #090909", "^	c #060606", "/	c #FEFEFE",
-    "(	c #FCFCFC", "_	c #CECECE", ":	c #444444", "<	c #E0E0E0", "[	c #464646",
-    "}	c #E8E8E8", "|	c #282828", "1	c #D3D3D3", "2	c #D1D1D1", "3	c #A4A4A4",
-    "4	c #484848", "5	c #F1F1F1", "6	c #7D7D7D", "7	c #050505", "8	c #7F7F7F",
-    "9	c #F38C82", "0	c #E71E09", "a	c #E82612", "b	c #EA3826", "c	c #FBD8D5",
-    "d	c #F9CEC9", "e	c #EA3E2C", "f	c #7D6F6F", "g	c #E71D08", "h	c #FEFCFC",
-    "i	c #EA3C2A", "j	c #FAD7D3", "k	c #FAD5D1", "l	c #F2897E", "m	c #E71C07",
-    "n	c #F28B80", "o	c #FEFAFA", "p	c #E9321F", "q	c #EF6D5F", "r	c #E71803",
-    "s	c #F7B3AC", "t	c #E82B17", "u	c #E82814", "v	c #F49C93", "w	c #F9CDC8",
-    "x	c #FAD6D2", "y	c #E7200B", "z	c #FAD2CE", "A	c #ED5546", "B	c #FCE2E0",
-    "C	c #ED5748", "D	c #FCEAE8", "E	c #F6ACA5", "F	c #ED594A", "G	c #FDF2F1",
-    ".......+@#+......$%......&*=-.......",
-    ".......;>,'......)!......%~{].......",
-    ".......^/(^.......!........_:.......",
-    ".......^((^.......!.......<[}.......",
-    ".......|12;.......!......345........",
-    ".......67^8.......!......*!!!.......",
-    "....................................",
-    ".+@#+...!........!.......!.....90a9.",
-    ".;>,'..!!!!!!!!!!!!!!!!!!!!!!..bcde.",
-    ".^/(^..!ffffffffffffffffffff!..g/hg.",
-    ".^((^.!!ffffffffffffffffffff!!.ghhg.",
-    ".|12;..!ffffffffffffffffffff!..ijkb.",
-    ".67^8..!ffffffffffffffffffff!..lmgn.",
-    ".......!ffffffffffffffffffff!.......",
-    ".......!ffffffffffffffffffff!.......",
-    ".$%....!ffffffffffffffffffff!...op..",
-    ".)!....!ffffffffffffffffffff!...qr..",
-    "..!...!!ffffffffffffffffffff!!...r..",
-    "..!....!ffffffffffffffffffff!....r..",
-    "..!....!ffffffffffffffffffff!....r..",
-    "..!....!ffffffffffffffffffff!....r..",
-    ".......!ffffffffffffffffffff!.......",
-    ".&*=-..!ffffffffffffffffffff!..stuv.",
-    ".%~{]..!ffffffffffffffffffff!..pwxy.",
-    "..._:.!!ffffffffffffffffffff!!...zA.",
-    "..<[}..!ffffffffffffffffffff!...BCD.",
-    ".345...!ffffffffffffffffffff!..EFG..",
-    ".*!!!..!!!!!!!!!!!!!!!!!!!!!!..trrr.",
-    ".........!........!.......!.........",
-    "....................................",
-    ".......+@#+......$%......&*=-.......",
-    ".......;>,'......)!......%~{].......",
-    ".......^/(^.......!........_:.......",
-    ".......^((^.......!.......<[}.......",
-    ".......|12;.......!......345........",
-    ".......67^8.......!......*!!!......." };
+  "+	c #818181", "@	c #070707", "#	c #101010", "$	c #FAFAFA", "%	c #1D1D1D",
+  "&	c #ACACAC", "*	c #151515", "=	c #121212", "-	c #929292", ";	c #242424",
+  ">	c #D5D5D5", ",	c #C9C9C9", "'	c #2A2A2A", ")	c #5E5E5E", "!	c #000000",
+  "~	c #C8C8C8", "{	c #D2D2D2", "]	c #090909", "^	c #060606", "/	c #FEFEFE",
+  "(	c #FCFCFC", "_	c #CECECE", ":	c #444444", "<	c #E0E0E0", "[	c #464646",
+  "}	c #E8E8E8", "|	c #282828", "1	c #D3D3D3", "2	c #D1D1D1", "3	c #A4A4A4",
+  "4	c #484848", "5	c #F1F1F1", "6	c #7D7D7D", "7	c #050505", "8	c #7F7F7F",
+  "9	c #F38C82", "0	c #E71E09", "a	c #E82612", "b	c #EA3826", "c	c #FBD8D5",
+  "d	c #F9CEC9", "e	c #EA3E2C", "f	c #7D6F6F", "g	c #E71D08", "h	c #FEFCFC",
+  "i	c #EA3C2A", "j	c #FAD7D3", "k	c #FAD5D1", "l	c #F2897E", "m	c #E71C07",
+  "n	c #F28B80", "o	c #FEFAFA", "p	c #E9321F", "q	c #EF6D5F", "r	c #E71803",
+  "s	c #F7B3AC", "t	c #E82B17", "u	c #E82814", "v	c #F49C93", "w	c #F9CDC8",
+  "x	c #FAD6D2", "y	c #E7200B", "z	c #FAD2CE", "A	c #ED5546", "B	c #FCE2E0",
+  "C	c #ED5748", "D	c #FCEAE8", "E	c #F6ACA5", "F	c #ED594A", "G	c #FDF2F1",
+  ".......+@#+......$%......&*=-.......",
+  ".......;>,'......)!......%~{].......",
+  ".......^/(^.......!........_:.......",
+  ".......^((^.......!.......<[}.......",
+  ".......|12;.......!......345........",
+  ".......67^8.......!......*!!!.......",
+  "....................................",
+  ".+@#+...!........!.......!.....90a9.",
+  ".;>,'..!!!!!!!!!!!!!!!!!!!!!!..bcde.",
+  ".^/(^..!ffffffffffffffffffff!..g/hg.",
+  ".^((^.!!ffffffffffffffffffff!!.ghhg.",
+  ".|12;..!ffffffffffffffffffff!..ijkb.",
+  ".67^8..!ffffffffffffffffffff!..lmgn.",
+  ".......!ffffffffffffffffffff!.......",
+  ".......!ffffffffffffffffffff!.......",
+  ".$%....!ffffffffffffffffffff!...op..",
+  ".)!....!ffffffffffffffffffff!...qr..",
+  "..!...!!ffffffffffffffffffff!!...r..",
+  "..!....!ffffffffffffffffffff!....r..",
+  "..!....!ffffffffffffffffffff!....r..",
+  "..!....!ffffffffffffffffffff!....r..",
+  ".......!ffffffffffffffffffff!.......",
+  ".&*=-..!ffffffffffffffffffff!..stuv.",
+  ".%~{]..!ffffffffffffffffffff!..pwxy.",
+  "..._:.!!ffffffffffffffffffff!!...zA.",
+  "..<[}..!ffffffffffffffffffff!...BCD.",
+  ".345...!ffffffffffffffffffff!..EFG..",
+  ".*!!!..!!!!!!!!!!!!!!!!!!!!!!..trrr.",
+  ".........!........!.......!.........",
+  "....................................",
+  ".......+@#+......$%......&*=-.......",
+  ".......;>,'......)!......%~{].......",
+  ".......^/(^.......!........_:.......",
+  ".......^((^.......!.......<[}.......",
+  ".......|12;.......!......345........",
+  ".......67^8.......!......*!!!......." };
 
 static const char* image2_data[] =
-    { "74 77 171 2", "  	c None", ". 	c #FFFFFF", "+ 	c #E0E0E0",
-        "@ 	c #FAFAFA", "# 	c #363636", "$ 	c #ABABAB", "% 	c #000000",
-        "& 	c #BDBDBD", "* 	c #737373", "= 	c #858585", "- 	c #FFE8E8",
-        "; 	c #FFF7F7", "> 	c #FFD1D1", ", 	c #FFF0F0", "' 	c #E6E6E6",
-        ") 	c #FFB2B2", "! 	c #FFE6E6", "~ 	c #FF6666", "{ 	c #FFCCCC",
-        "] 	c #C9C9C9", "^ 	c #939493", "/ 	c #808080", "( 	c #878787",
-        "_ 	c #D6D6D6", ": 	c #969696", "< 	c #030303", "[ 	c #383838",
-        "} 	c #4C4C4C", "| 	c #1A1A1A", "1 	c #080808", "2 	c #C2C2C2",
-        "3 	c #EBEBEB", "4 	c #F0F0F0", "5 	c #8C8C8C", "6 	c #7A7A7A",
-        "7 	c #A3A3A3", "8 	c #999999", "9 	c #A1A1A1", "0 	c #828282",
-        "a 	c #949494", "b 	c #F2F2F2", "c 	c #474747", "d 	c #545454",
-        "e 	c #0F0F0F", "f 	c #B5B5B5", "g 	c #CFCFCF", "h 	c #262626",
-        "i 	c #333333", "j 	c #DEDEDE", "k 	c #FDFDFD", "l 	c #D7D7D7",
-        "m 	c #B7B7B7", "n 	c #C4C4C4", "o 	c #F7F7F7", "p 	c #CCCCCC",
-        "q 	c #2E2E2E", "r 	c #B2B2B2", "s 	c #DFDFDF", "t 	c #ACACAC",
-        "u 	c #ADADAD", "v 	c #D3D3D3", "w 	c #CDCDCD", "x 	c #AAAAAA",
-        "y 	c #D4C3C3", "z 	c #A9A9A9", "A 	c #AAA8A8", "B 	c #DB7F7F",
-        "C 	c #E3E3E3", "D 	c #E5E5E5", "E 	c #F2DADA", "F 	c #B19999",
-        "G 	c #FFC4C4", "H 	c #D2D2D2", "I 	c #FFD4D4", "J 	c #EA6565",
-        "K 	c #E2E2E2", "L 	c #FFA1A1", "M 	c #C8C8C8", "N 	c #AFAFAF",
-        "O 	c #FF9999", "P 	c #F5C6C6", "Q 	c #E9E9E9", "R 	c #B6B6B6",
-        "S 	c #CFB4B4", "T 	c #B9B9B9", "U 	c #F5F5F5", "V 	c #ACA7A7",
-        "W 	c #EAEAEA", "X 	c #F9F9F9", "Y 	c #B8B8B8", "Z 	c #C0A6A6",
-        "` 	c #B4B4B4", " .	c #EFEFEF", "..	c #F2C3C3", "+.	c #EEEEEE",
-        "@.	c #BCBCBC", "#.	c #C5C5C5", "$.	c #DADADA", "%.	c #BEBEBE",
-        "&.	c #B0B0B0", "*.	c #FBFBFB", "=.	c #C6C6C6", "-.	c #B1B1B1",
-        ";.	c #BABABA", ">.	c #AEAEAE", ",.	c #D0D0D0", "'.	c #FCFCFC",
-        ").	c #141414", "!.	c #D8D8D8", "~.	c #C7C7C7", "{.	c #575757",
-        "].	c #3D3D3D", "^.	c #C3C3C3", "/.	c #5E5E5E", "(.	c #7D7D7D",
-        "_.	c #B3B3B3", ":.	c #F6C8C8", "<.	c #757575", "[.	c #919191",
-        "}.	c #CAB3B3", "|.	c #EDEDED", "1.	c #ADA8A8", "2.	c #666666",
-        "3.	c #2B2B2B", "4.	c #BBBBBB", "5.	c #C9AAAA", "6.	c #292929",
-        "7.	c #D4D4D4", "8.	c #FBC9C9", "9.	c #E8E8E8", "0.	c #9C9C9C",
-        "a.	c #E4E4E4", "b.	c #E7E7E7", "c.	c #CACACA", "d.	c #C1C1C1",
-        "e.	c #E39090", "f.	c #CBCBCB", "g.	c #ADA3A3", "h.	c #C8B0B0",
-        "i.	c #F59A9A", "j.	c #C0A9A9", "k.	c #C9BFBF", "l.	c #7A4747",
-        "m.	c #A18C8C", "n.	c #8C8282", "o.	c #332929", "p.	c #242424",
-        "q.	c #0A0A0A", "r.	c #454545", "s.	c #595959", "t.	c #525252",
-        "u.	c #5C5C5C", "v.	c #D9D9D9", "w.	c #121212", "x.	c #8A8A8A",
-        "y.	c #171717", "z.	c #A8A8A8", "A.	c #696969", "B.	c #707070",
-        "C.	c #9E9E9E", "D.	c #404040", "E.	c #616161", "F.	c #8F8F8F",
-        "G.	c #4F4F4F", "H.	c #050505", "I.	c #DBDBDB", "J.	c #4A4A4A",
-        "K.	c #212121", "L.	c #3B3B3B", "M.	c #636363", "N.	c #D1D1D1",
-        ". . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . @ # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . $ % & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . * % = . . . . . . . . . . . - . . . . . . . . . . . ; > . . . . . . . . . . . . , . . . . . . . . . . . - - . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . ] ^ / ( _ . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . : < [ } | 1 ] ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . 2 ' . . 3 % / ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . . . 4 % 5 ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . . . 6 1 + ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . . 7 < 8 @ 5 % 9 . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . 0 < a . b c % d . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . b d e f . . . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". g h i j . . . . ' % . . . . . . . . . . . . ) . . . . k l m m m n o ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        "p 1 q $ r r r g . ' % . . . . . . . . . . . . ) . . . s t u ] v w r x y ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        "7 i i i i i i : . ' % . . . . . . . . . . . . ) . . p z _ . . . . . l A B . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . ) . C x D . . . . . . . E F ] . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . G . u H . . . . . . . . I J x K . . . . . . . . . . { . . . . . . . . . . . L G . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { M N . . . . . . . . . { ~ _ $ o . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . P x Q . . . . . . . . . { ~ . & R . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . S T . . . . . . . . . . { ~ . U $ _ . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . 4 V W . . . . . . . . . . { ~ . . K x X . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . Y Z . . . . . . . . . . . { ~ . . . ` n . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . .  .x ... . . . . . . . . . . { ~ . . . +.$ +.. . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . @.n { . . . . . . . . . . . { ~ . . . . #.R . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . x +.{ . . . . . . . . . . . { ~ . . . . X z o . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . $.u . { . . . . . . . . . . . { ~ . . . . . %.&.*.. . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . ` =.. { . . . . . . . . . . . { ~ . . . . . . -.=.. . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . 4 z X . { . . . . . . . . . . . { ~ . . . . . . + t . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . #.;.. . { . . . . . . . . . . . { ~ . . . . . . . >.v . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . u $.. . { . . . . . . . . . . . { ~ . . . . . . . _ t . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . n 2 . ' % . . . . . . . + t k . . { . . . . . . . . . . . { ~ . . . . . . . . t ,.. . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . '.& ).5 . ' % . . . . . . . m #.. . . { . . . . . . . . . . . { ~ . . . . . . . . !.t . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . f % % % ~.. ' % . . . . . . . x W . . . { . . . . . . . . . . . { ~ . . . . . . . . . N ] . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . a 1 @ . ' % . . . . . . s u . . . . { . . . . . . . . . . . { ~ . . . . . . . . . l u k { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . {.].. . ' % . . . . . . %.%.. . . . { . . . . . . . . . . . { ~ . . . . . . . . . . r ^.{ . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . | 6 . U /.% (.. . . . . _.' . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . 4 u :.. . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . + % r . o <.% [.. . . . o $ '.. . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . ^.}.. . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . 7 % |.. . ' % . . . . . ,._.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . o 1.D . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . 2.3.. . . ' % . . . . . 4.=.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . 5.-.. . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . p p 6.} p + . ' % . . . . . _.7.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . 8.t ,.. . . . . . . . . O { . . . . . . . . . . . ",
-        ". 9.i i i i i 0.. ' % . . . . . x +.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { C x a.. . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . x . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . ,.u . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . b.t . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . &.4.. . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . ^.T . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . X u c.. . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . m H . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . +.$ p . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . t C . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . +.x _ . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . z X . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . + x _ . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . U x . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . K x H . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . a.f . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . ' &.d.X O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . $.-.. . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . X _.>.e.{ . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . M 4.. . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . f.g.h.U . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . $.,.. . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . i.j.x Y b . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { b.@.x &.~.D . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . U f.m @.. . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
-        ". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . k.l.. . . . . . . . . . . . { . . . . . . . . . . . m.n.. . . . . . . 2 C . . ",
-        ". . . . . . . . . ' % i i i i i i i i i i i i o.i i i i i i i i i i i p.q.i i i i i i i i i i i i o.i i i i i i i i i i i | ).i i i i i i i ).< r.~.",
-        ". . . . . . . . . . Y r r r r r r r r r r r r r r r r r r r r r r r r (.p.r r r r r r r r r r r r r r r r r r r r r r r r s.c r r r r r r r t.u.2 . ",
-        ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ] . . . . . . . . . . . . . . . . . . . . . . . . + v.. . . . . . . . . . . ",
-        ". . . . '.= ).% w.[.. . . . . . . . . . . . . . . . . . . . . . . . . . x.8 . . . . . . . . . . . . . . . . . . . . . ~.2.[ i c 2 . . . . . . . . . ",
-        ". . . . 2.y.z.p A.< j . . . . . . . . . . . . . . . . . . . . . . b &.B.< C.. . . . . . . . . . . . . . . . . . . . . D.t.[.a 3.1 9.. . . . . . . . ",
-        ". . . p % &.. . + % r . . . . . . . . . . . . . . . . . . . . . . 2 } i % v.. . . . . . . . . . . . . . . . . . . . . 3 . . . &.% p . . . . . . . . ",
-        ". . . E.h . . . ' % r . . . . . . . . . . . . . . . . . . . . . . . . / ).. . . . . . . . . . . . . . . . . . . . . . . . . . F.< 9.. . . . . . . . ",
-        ". . . | * . . . ~.% ~.. . . . . . . . . . . . . . . . . . . . . . . . c G.. . . . . . . . . . . . . . . . . . . . . . . . . + ).E.. . . . . . . . . ",
-        ". . j % &.. . . a H.U . . . . . . . . . . . . . . . . . . . . . . . '.q.x.. . . . . . . . . . . . . . . . . . . . . . . . j h # U . . . . . . . . . ",
-        ". . Y % I.. . . G.D.. . . . . . . . . . . . . . . . . . . . . . . . p % ~.. . . . . . . . . . . . . . . . . . . . . . . n y.J.4 . . . . . . . . . . ",
-        ". . r % ' . . 9.1 8 . . . . . . . . . . . . . . . . . . . . . . . . a 1 o . . . . . . . . . . . . . . . . . . . . . . [.H.<.'.. . . . . . . . . . . ",
-        ". . & % 2 . '.s.K.U . . . . . . . . . . . . . . . . . . . . . . . . d L.. . . . . . . . . . . . . . . . . . . . . |.t.w.r . . . . . . . . . . . . . ",
-        ". . @ 6.).} h y.p . . . . . . . . . . . . . . . . . . . . . . @ / / ).# / Y . . . . . . . . . . . . . . . . . . . M.% J.2.2.2.2.N.. . . . . . . . . ",
-        ". . . 3 F./ a 4 . . . . . . . . . . . . . . . . . . . . . . . |./ / / / / n . . . . . . . . . . . . . . . . . . . 0./ / / / / / 9.. . . . . . . . . " };
+{ "74 77 171 2", "  	c None", ". 	c #FFFFFF", "+ 	c #E0E0E0",
+"@ 	c #FAFAFA", "# 	c #363636", "$ 	c #ABABAB", "% 	c #000000",
+"& 	c #BDBDBD", "* 	c #737373", "= 	c #858585", "- 	c #FFE8E8",
+"; 	c #FFF7F7", "> 	c #FFD1D1", ", 	c #FFF0F0", "' 	c #E6E6E6",
+") 	c #FFB2B2", "! 	c #FFE6E6", "~ 	c #FF6666", "{ 	c #FFCCCC",
+"] 	c #C9C9C9", "^ 	c #939493", "/ 	c #808080", "( 	c #878787",
+"_ 	c #D6D6D6", ": 	c #969696", "< 	c #030303", "[ 	c #383838",
+"} 	c #4C4C4C", "| 	c #1A1A1A", "1 	c #080808", "2 	c #C2C2C2",
+"3 	c #EBEBEB", "4 	c #F0F0F0", "5 	c #8C8C8C", "6 	c #7A7A7A",
+"7 	c #A3A3A3", "8 	c #999999", "9 	c #A1A1A1", "0 	c #828282",
+"a 	c #949494", "b 	c #F2F2F2", "c 	c #474747", "d 	c #545454",
+"e 	c #0F0F0F", "f 	c #B5B5B5", "g 	c #CFCFCF", "h 	c #262626",
+"i 	c #333333", "j 	c #DEDEDE", "k 	c #FDFDFD", "l 	c #D7D7D7",
+"m 	c #B7B7B7", "n 	c #C4C4C4", "o 	c #F7F7F7", "p 	c #CCCCCC",
+"q 	c #2E2E2E", "r 	c #B2B2B2", "s 	c #DFDFDF", "t 	c #ACACAC",
+"u 	c #ADADAD", "v 	c #D3D3D3", "w 	c #CDCDCD", "x 	c #AAAAAA",
+"y 	c #D4C3C3", "z 	c #A9A9A9", "A 	c #AAA8A8", "B 	c #DB7F7F",
+"C 	c #E3E3E3", "D 	c #E5E5E5", "E 	c #F2DADA", "F 	c #B19999",
+"G 	c #FFC4C4", "H 	c #D2D2D2", "I 	c #FFD4D4", "J 	c #EA6565",
+"K 	c #E2E2E2", "L 	c #FFA1A1", "M 	c #C8C8C8", "N 	c #AFAFAF",
+"O 	c #FF9999", "P 	c #F5C6C6", "Q 	c #E9E9E9", "R 	c #B6B6B6",
+"S 	c #CFB4B4", "T 	c #B9B9B9", "U 	c #F5F5F5", "V 	c #ACA7A7",
+"W 	c #EAEAEA", "X 	c #F9F9F9", "Y 	c #B8B8B8", "Z 	c #C0A6A6",
+"` 	c #B4B4B4", " .	c #EFEFEF", "..	c #F2C3C3", "+.	c #EEEEEE",
+"@.	c #BCBCBC", "#.	c #C5C5C5", "$.	c #DADADA", "%.	c #BEBEBE",
+"&.	c #B0B0B0", "*.	c #FBFBFB", "=.	c #C6C6C6", "-.	c #B1B1B1",
+";.	c #BABABA", ">.	c #AEAEAE", ",.	c #D0D0D0", "'.	c #FCFCFC",
+").	c #141414", "!.	c #D8D8D8", "~.	c #C7C7C7", "{.	c #575757",
+"].	c #3D3D3D", "^.	c #C3C3C3", "/.	c #5E5E5E", "(.	c #7D7D7D",
+"_.	c #B3B3B3", ":.	c #F6C8C8", "<.	c #757575", "[.	c #919191",
+"}.	c #CAB3B3", "|.	c #EDEDED", "1.	c #ADA8A8", "2.	c #666666",
+"3.	c #2B2B2B", "4.	c #BBBBBB", "5.	c #C9AAAA", "6.	c #292929",
+"7.	c #D4D4D4", "8.	c #FBC9C9", "9.	c #E8E8E8", "0.	c #9C9C9C",
+"a.	c #E4E4E4", "b.	c #E7E7E7", "c.	c #CACACA", "d.	c #C1C1C1",
+"e.	c #E39090", "f.	c #CBCBCB", "g.	c #ADA3A3", "h.	c #C8B0B0",
+"i.	c #F59A9A", "j.	c #C0A9A9", "k.	c #C9BFBF", "l.	c #7A4747",
+"m.	c #A18C8C", "n.	c #8C8282", "o.	c #332929", "p.	c #242424",
+"q.	c #0A0A0A", "r.	c #454545", "s.	c #595959", "t.	c #525252",
+"u.	c #5C5C5C", "v.	c #D9D9D9", "w.	c #121212", "x.	c #8A8A8A",
+"y.	c #171717", "z.	c #A8A8A8", "A.	c #696969", "B.	c #707070",
+"C.	c #9E9E9E", "D.	c #404040", "E.	c #616161", "F.	c #8F8F8F",
+"G.	c #4F4F4F", "H.	c #050505", "I.	c #DBDBDB", "J.	c #4A4A4A",
+"K.	c #212121", "L.	c #3B3B3B", "M.	c #636363", "N.	c #D1D1D1",
+". . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . @ # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . $ % & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . * % = . . . . . . . . . . . - . . . . . . . . . . . ; > . . . . . . . . . . . . , . . . . . . . . . . . - - . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . ] ^ / ( _ . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . : < [ } | 1 ] ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . 2 ' . . 3 % / ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . . . 4 % 5 ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . . . 6 1 + ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . . 7 < 8 @ 5 % 9 . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . 0 < a . b c % d . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . b d e f . . . ' % . . . . . . . . . . . . ) . . . . . . . . . . . ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". g h i j . . . . ' % . . . . . . . . . . . . ) . . . . k l m m m n o ! ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+"p 1 q $ r r r g . ' % . . . . . . . . . . . . ) . . . s t u ] v w r x y ~ . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+"7 i i i i i i : . ' % . . . . . . . . . . . . ) . . p z _ . . . . . l A B . . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . ) . C x D . . . . . . . E F ] . . . . . . . . . . . { . . . . . . . . . . . ) ) . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . G . u H . . . . . . . . I J x K . . . . . . . . . . { . . . . . . . . . . . L G . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { M N . . . . . . . . . { ~ _ $ o . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . P x Q . . . . . . . . . { ~ . & R . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . S T . . . . . . . . . . { ~ . U $ _ . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . 4 V W . . . . . . . . . . { ~ . . K x X . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . Y Z . . . . . . . . . . . { ~ . . . ` n . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . .  .x ... . . . . . . . . . . { ~ . . . +.$ +.. . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . @.n { . . . . . . . . . . . { ~ . . . . #.R . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . x +.{ . . . . . . . . . . . { ~ . . . . X z o . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . $.u . { . . . . . . . . . . . { ~ . . . . . %.&.*.. . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . ` =.. { . . . . . . . . . . . { ~ . . . . . . -.=.. . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . 4 z X . { . . . . . . . . . . . { ~ . . . . . . + t . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . #.;.. . { . . . . . . . . . . . { ~ . . . . . . . >.v . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . u $.. . { . . . . . . . . . . . { ~ . . . . . . . _ t . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . n 2 . ' % . . . . . . . + t k . . { . . . . . . . . . . . { ~ . . . . . . . . t ,.. . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . '.& ).5 . ' % . . . . . . . m #.. . . { . . . . . . . . . . . { ~ . . . . . . . . !.t . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . f % % % ~.. ' % . . . . . . . x W . . . { . . . . . . . . . . . { ~ . . . . . . . . . N ] . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . a 1 @ . ' % . . . . . . s u . . . . { . . . . . . . . . . . { ~ . . . . . . . . . l u k { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . {.].. . ' % . . . . . . %.%.. . . . { . . . . . . . . . . . { ~ . . . . . . . . . . r ^.{ . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . | 6 . U /.% (.. . . . . _.' . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . 4 u :.. . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . + % r . o <.% [.. . . . o $ '.. . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . ^.}.. . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . 7 % |.. . ' % . . . . . ,._.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . o 1.D . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . 2.3.. . . ' % . . . . . 4.=.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . 5.-.. . . . . . . . . . O { . . . . . . . . . . . ",
+". . p p 6.} p + . ' % . . . . . _.7.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . 8.t ,.. . . . . . . . . O { . . . . . . . . . . . ",
+". 9.i i i i i 0.. ' % . . . . . x +.. . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { C x a.. . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . x . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . ,.u . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . b.t . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . &.4.. . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . ^.T . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . X u c.. . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . m H . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . +.$ p . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . t C . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . +.x _ . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . z X . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . + x _ . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . U x . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . K x H . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . a.f . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . ' &.d.X O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . $.-.. . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . X _.>.e.{ . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . M 4.. . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . f.g.h.U . . . . . . . . . . ",
+". . . . . . . . . ' % . . . $.,.. . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . i.j.x Y b . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { b.@.x &.~.D . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . U f.m @.. . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . { ~ . . . . . . . . . . . . { . . . . . . . . . . . O { . . . . . . . . . . . ",
+". . . . . . . . . ' % . . . . . . . . . . . . { . . . . . . . . . . . k.l.. . . . . . . . . . . . { . . . . . . . . . . . m.n.. . . . . . . 2 C . . ",
+". . . . . . . . . ' % i i i i i i i i i i i i o.i i i i i i i i i i i p.q.i i i i i i i i i i i i o.i i i i i i i i i i i | ).i i i i i i i ).< r.~.",
+". . . . . . . . . . Y r r r r r r r r r r r r r r r r r r r r r r r r (.p.r r r r r r r r r r r r r r r r r r r r r r r r s.c r r r r r r r t.u.2 . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 ] . . . . . . . . . . . . . . . . . . . . . . . . + v.. . . . . . . . . . . ",
+". . . . '.= ).% w.[.. . . . . . . . . . . . . . . . . . . . . . . . . . x.8 . . . . . . . . . . . . . . . . . . . . . ~.2.[ i c 2 . . . . . . . . . ",
+". . . . 2.y.z.p A.< j . . . . . . . . . . . . . . . . . . . . . . b &.B.< C.. . . . . . . . . . . . . . . . . . . . . D.t.[.a 3.1 9.. . . . . . . . ",
+". . . p % &.. . + % r . . . . . . . . . . . . . . . . . . . . . . 2 } i % v.. . . . . . . . . . . . . . . . . . . . . 3 . . . &.% p . . . . . . . . ",
+". . . E.h . . . ' % r . . . . . . . . . . . . . . . . . . . . . . . . / ).. . . . . . . . . . . . . . . . . . . . . . . . . . F.< 9.. . . . . . . . ",
+". . . | * . . . ~.% ~.. . . . . . . . . . . . . . . . . . . . . . . . c G.. . . . . . . . . . . . . . . . . . . . . . . . . + ).E.. . . . . . . . . ",
+". . j % &.. . . a H.U . . . . . . . . . . . . . . . . . . . . . . . '.q.x.. . . . . . . . . . . . . . . . . . . . . . . . j h # U . . . . . . . . . ",
+". . Y % I.. . . G.D.. . . . . . . . . . . . . . . . . . . . . . . . p % ~.. . . . . . . . . . . . . . . . . . . . . . . n y.J.4 . . . . . . . . . . ",
+". . r % ' . . 9.1 8 . . . . . . . . . . . . . . . . . . . . . . . . a 1 o . . . . . . . . . . . . . . . . . . . . . . [.H.<.'.. . . . . . . . . . . ",
+". . & % 2 . '.s.K.U . . . . . . . . . . . . . . . . . . . . . . . . d L.. . . . . . . . . . . . . . . . . . . . . |.t.w.r . . . . . . . . . . . . . ",
+". . @ 6.).} h y.p . . . . . . . . . . . . . . . . . . . . . . @ / / ).# / Y . . . . . . . . . . . . . . . . . . . M.% J.2.2.2.2.N.. . . . . . . . . ",
+". . . 3 F./ a 4 . . . . . . . . . . . . . . . . . . . . . . . |./ / / / / n . . . . . . . . . . . . . . . . . . . 0./ / / / / / 9.. . . . . . . . . " };
 
 static const char* image3_data[] =
-    { "74 77 168 2", "  	c None", ". 	c #FFFFFF", "+ 	c #E0E0E0",
-        "@ 	c #FAFAFA", "# 	c #363636", "$ 	c #ABABAB", "% 	c #000000",
-        "& 	c #BDBDBD", "* 	c #737373", "= 	c #858585", "- 	c #E6E6E6",
-        "; 	c #C9C9C9", "> 	c #939493", ", 	c #808080", "' 	c #878787",
-        ") 	c #D6D6D6", "! 	c #969696", "~ 	c #030303", "{ 	c #383838",
-        "] 	c #4C4C4C", "^ 	c #1A1A1A", "/ 	c #080808", "( 	c #C2C2C2",
-        "_ 	c #EBEBEB", ": 	c #F0F0F0", "< 	c #8C8C8C", "[ 	c #7A7A7A",
-        "} 	c #A3A3A3", "| 	c #999999", "1 	c #A1A1A1", "2 	c #FFE6E6",
-        "3 	c #FFF0F0", "4 	c #828282", "5 	c #949494", "6 	c #F2F2F2",
-        "7 	c #474747", "8 	c #545454", "9 	c #FF8080", "0 	c #FFB2B2",
-        "a 	c #0F0F0F", "b 	c #B5B5B5", "c 	c #CFCFCF", "d 	c #262626",
-        "e 	c #333333", "f 	c #DEDEDE", "g 	c #FDFDFD", "h 	c #D7D7D7",
-        "i 	c #B7B7B7", "j 	c #C4C4C4", "k 	c #F7F7F7", "l 	c #CCCCCC",
-        "m 	c #2E2E2E", "n 	c #B2B2B2", "o 	c #DFDFDF", "p 	c #ACACAC",
-        "q 	c #ADADAD", "r 	c #D3D3D3", "s 	c #CDCDCD", "t 	c #AAAAAA",
-        "u 	c #D4D4D4", "v 	c #A9A9A9", "w 	c #DBDBDB", "x 	c #E3E3E3",
-        "y 	c #E5E5E5", "z 	c #B1B1B1", "A 	c #D2D2D2", "B 	c #EAEAEA",
-        "C 	c #E2E2E2", "D 	c #C8C8C8", "E 	c #AFAFAF", "F 	c #F5F5F5",
-        "G 	c #E9E9E9", "H 	c #B6B6B6", "I 	c #B9B9B9", "J 	c #F9F9F9",
-        "K 	c #B8B8B8", "L 	c #C0C0C0", "M 	c #B4B4B4", "N 	c #EFD9D9",
-        "O 	c #AAA8A8", "P 	c #F2DBDB", "Q 	c #EED6D6", "R 	c #ABA8A8",
-        "S 	c #EED8D8", "T 	c #BCB1B1", "U 	c #C4B6B6", "V 	c #C5B7B7",
-        "W 	c #B6ADAD", "X 	c #EEEEEE", "Y 	c #DADADA", "Z 	c #BEBEBE",
-        "` 	c #B0B0B0", " .	c #FBFBFB", "..	c #C6C6C6", "+.	c #C5C5C5",
-        "@.	c #BABABA", "#.	c #AEAEAE", "$.	c #D0D0D0", "%.	c #FCFCFC",
-        "&.	c #141414", "*.	c #D8D8D8", "=.	c #C7C7C7", "-.	c #575757",
-        ";.	c #3D3D3D", ">.	c #C3C3C3", ",.	c #5E5E5E", "'.	c #7D6E6E",
-        ").	c #FF9999", "!.	c #B39D9D", "~.	c #E69292", "{.	c #F09393",
-        "].	c #ADA2A2", "^.	c #F49999", "/.	c #FFC2C2", "(.	c #757575",
-        "_.	c #918787", ":.	c #F7AEAE", "<.	c #ABA6A6", "[.	c #FCB2B2",
-        "}.	c #C3A0A0", "|.	c #C7A4A4", "1.	c #FFD1D1", "2.	c #EDEDED",
-        "3.	c #B3B3B3", "4.	c #666666", "5.	c #2B2B2B", "6.	c #BBBBBB",
-        "7.	c #292929", "8.	c #E8E8E8", "9.	c #9C9C9C", "0.	c #E4E4E4",
-        "a.	c #E7E7E7", "b.	c #CACACA", "c.	c #E4A7A7", "d.	c #B59F9F",
-        "e.	c #E6A7A7", "f.	c #B0A3A3", "g.	c #C19E9E", "h.	c #F9B0B0",
-        "i.	c #CBCBCB", "j.	c #F4F4F4", "k.	c #BCBCBC", "l.	c #707070",
-        "m.	c #242424", "n.	c #0A0A0A", "o.	c #454545", "p.	c #7D7D7D",
-        "q.	c #595959", "r.	c #525252", "s.	c #5C5C5C", "t.	c #D9D9D9",
-        "u.	c #121212", "v.	c #919191", "w.	c #8A8A8A", "x.	c #171717",
-        "y.	c #A8A8A8", "z.	c #696969", "A.	c #9E9E9E", "B.	c #404040",
-        "C.	c #616161", "D.	c #8F8F8F", "E.	c #4F4F4F", "F.	c #050505",
-        "G.	c #4A4A4A", "H.	c #212121", "I.	c #3B3B3B", "J.	c #636363",
-        "K.	c #D1D1D1",
-        ". . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . @ # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . $ % & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . * % = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . ; > , ' ) . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . ! ~ { ] ^ / ; - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . ( - . . _ % , - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . : % < - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . [ / + - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . } ~ | @ < % 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 . . . ",
-        ". . . . 4 ~ 5 . 6 7 % 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 0 . . . ",
-        ". . 6 8 a b . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". c d e f . . . . - % . . . . . . . . . . . . . . . . . g h i i i j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        "l / m $ n n n c . - % . . . . . . . . . . . . . . . . o p q ; r s n t u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        "} e e e e e e ! . - % . . . . . . . . . . . . . . . l v ) . . . . . h t w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . x t y . . . . . . . 6 z ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . q A . . . . . . . . . B t C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . D E . . . . . . . . . . . ) $ k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . F t G . . . . . . . . . . . . & H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . c I . . . . . . . . . . . . . F $ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . : p B . . . . . . . . . . . . . . C t J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . K L . . . . . . . . . . . . . . . . M j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % 2 2 2 2 2 2 2 2 2 2 N O P 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Q R S 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 . . . ",
-        ". . . . . . . . . - % 2 2 2 2 2 2 2 2 2 2 T U 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 V W 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . t X . . . . . . . . . . . . . . . . . . J v k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . Y q . . . . . . . . . . . . . . . . . . . . Z `  .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . M ... . . . . . . . . . . . . . . . . . . . . z ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . : v J . . . . . . . . . . . . . . . . . . . . . + p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . +.@.. . . . . . . . . . . . . . . . . . . . . . . #.r . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . q Y . . . . . . . . . . . . . . . . . . . . . . . ) p . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . j ( . - % . . . . . . . + p g . . . . . . . . . . . . . . . . . . . . . . . . p $.. . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . %.& &.< . - % . . . . . . . i +.. . . . . . . . . . . . . . . . . . . . . . . . . *.p . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . b % % % =.. - % . . . . . . . t B . . . . . . . . . . . . . . . . . . . . . . . . . . E ; . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . 5 / @ . - % . . . . . . o q . . . . . . . . . . . . . . . . . . . . . . . . . . . h q g . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . -.;.. . - % . . . . . . Z Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . n >.. . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . ^ [ . F ,.% '.).).).).).!.~.).).).).).).).).).).).).).).).).).).).).).).).).).).).).{.].^.).).).).).).).).).).).).).).).).).).).)./.. . . ",
-        ". . . . + % n . k (.% _.0 0 0 0 :.<.[.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }.|.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.. . . ",
-        ". . . . } % 2.. . - % . . . . . $.3.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k p y . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . 4.5.. . . - % . . . . . 6.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; z . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . l l 7.] l + . - % . . . . . 3.u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .p $.. . . . . . . . . . . . . . . . . . . . . . ",
-        ". 8.e e e e e 9.. - % . . . . . t X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x t 0.. . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.q . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . a.p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ` 6.. . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . >.I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J q b.. . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . i A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X $ l . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . p x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X t ) . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . v J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + t ) . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . F t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C t A . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % 0 0 0 c.d.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e.f.g.h.0 0 0 0 0 0 0 0 0 1.. . . ",
-        ". . . . . . . . . - % . . . Y z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J 3.#.x . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . D 6.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i.p D F . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . Y $.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j.L t K 6 . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a.k.t ` =.y . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F i.i k.. . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-        ". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . ; l.. . . . . . . . . . . . . . . . . . . . . . . . 1 < . . . . . . . ( x . . ",
-        ". . . . . . . . . - % e e e e e e e e e e e e e e e e e e e e e e e e m.n.e e e e e e e e e e e e e e e e e e e e e e e e ^ &.e e e e e e e &.~ o.=.",
-        ". . . . . . . . . . K n n n n n n n n n n n n n n n n n n n n n n n n p.m.n n n n n n n n n n n n n n n n n n n n n n n n q.7 n n n n n n n r.s.( . ",
-        ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : ; . . . . . . . . . . . . . . . . . . . . . . . . + t.. . . . . . . . . . . ",
-        ". . . . %.= &.% u.v.. . . . . . . . . . . . . . . . . . . . . . . . . . w.| . . . . . . . . . . . . . . . . . . . . . =.4.{ e 7 ( . . . . . . . . . ",
-        ". . . . 4.x.y.l z.~ f . . . . . . . . . . . . . . . . . . . . . . 6 ` l.~ A.. . . . . . . . . . . . . . . . . . . . . B.r.v.5 5./ 8.. . . . . . . . ",
-        ". . . l % ` . . + % n . . . . . . . . . . . . . . . . . . . . . . ( ] e % t.. . . . . . . . . . . . . . . . . . . . . _ . . . ` % l . . . . . . . . ",
-        ". . . C.d . . . - % n . . . . . . . . . . . . . . . . . . . . . . . . , &.. . . . . . . . . . . . . . . . . . . . . . . . . . D.~ 8.. . . . . . . . ",
-        ". . . ^ * . . . =.% =.. . . . . . . . . . . . . . . . . . . . . . . . 7 E.. . . . . . . . . . . . . . . . . . . . . . . . . + &.C.. . . . . . . . . ",
-        ". . f % ` . . . 5 F.F . . . . . . . . . . . . . . . . . . . . . . . %.n.w.. . . . . . . . . . . . . . . . . . . . . . . . f d # F . . . . . . . . . ",
-        ". . K % w . . . E.B.. . . . . . . . . . . . . . . . . . . . . . . . l % =.. . . . . . . . . . . . . . . . . . . . . . . j x.G.: . . . . . . . . . . ",
-        ". . n % - . . 8./ | . . . . . . . . . . . . . . . . . . . . . . . . 5 / k . . . . . . . . . . . . . . . . . . . . . . v.F.(.%.. . . . . . . . . . . ",
-        ". . & % ( . %.q.H.F . . . . . . . . . . . . . . . . . . . . . . . . 8 I.. . . . . . . . . . . . . . . . . . . . . 2.r.u.n . . . . . . . . . . . . . ",
-        ". . @ 7.&.] d x.l . . . . . . . . . . . . . . . . . . . . . . @ , , &.# , K . . . . . . . . . . . . . . . . . . . J.% G.4.4.4.4.K.. . . . . . . . . ",
-        ". . . _ D., 5 : . . . . . . . . . . . . . . . . . . . . . . . 2., , , , , j . . . . . . . . . . . . . . . . . . . 9., , , , , , 8.. . . . . . . . . " };
+{ "74 77 168 2", "  	c None", ". 	c #FFFFFF", "+ 	c #E0E0E0",
+"@ 	c #FAFAFA", "# 	c #363636", "$ 	c #ABABAB", "% 	c #000000",
+"& 	c #BDBDBD", "* 	c #737373", "= 	c #858585", "- 	c #E6E6E6",
+"; 	c #C9C9C9", "> 	c #939493", ", 	c #808080", "' 	c #878787",
+") 	c #D6D6D6", "! 	c #969696", "~ 	c #030303", "{ 	c #383838",
+"] 	c #4C4C4C", "^ 	c #1A1A1A", "/ 	c #080808", "( 	c #C2C2C2",
+"_ 	c #EBEBEB", ": 	c #F0F0F0", "< 	c #8C8C8C", "[ 	c #7A7A7A",
+"} 	c #A3A3A3", "| 	c #999999", "1 	c #A1A1A1", "2 	c #FFE6E6",
+"3 	c #FFF0F0", "4 	c #828282", "5 	c #949494", "6 	c #F2F2F2",
+"7 	c #474747", "8 	c #545454", "9 	c #FF8080", "0 	c #FFB2B2",
+"a 	c #0F0F0F", "b 	c #B5B5B5", "c 	c #CFCFCF", "d 	c #262626",
+"e 	c #333333", "f 	c #DEDEDE", "g 	c #FDFDFD", "h 	c #D7D7D7",
+"i 	c #B7B7B7", "j 	c #C4C4C4", "k 	c #F7F7F7", "l 	c #CCCCCC",
+"m 	c #2E2E2E", "n 	c #B2B2B2", "o 	c #DFDFDF", "p 	c #ACACAC",
+"q 	c #ADADAD", "r 	c #D3D3D3", "s 	c #CDCDCD", "t 	c #AAAAAA",
+"u 	c #D4D4D4", "v 	c #A9A9A9", "w 	c #DBDBDB", "x 	c #E3E3E3",
+"y 	c #E5E5E5", "z 	c #B1B1B1", "A 	c #D2D2D2", "B 	c #EAEAEA",
+"C 	c #E2E2E2", "D 	c #C8C8C8", "E 	c #AFAFAF", "F 	c #F5F5F5",
+"G 	c #E9E9E9", "H 	c #B6B6B6", "I 	c #B9B9B9", "J 	c #F9F9F9",
+"K 	c #B8B8B8", "L 	c #C0C0C0", "M 	c #B4B4B4", "N 	c #EFD9D9",
+"O 	c #AAA8A8", "P 	c #F2DBDB", "Q 	c #EED6D6", "R 	c #ABA8A8",
+"S 	c #EED8D8", "T 	c #BCB1B1", "U 	c #C4B6B6", "V 	c #C5B7B7",
+"W 	c #B6ADAD", "X 	c #EEEEEE", "Y 	c #DADADA", "Z 	c #BEBEBE",
+"` 	c #B0B0B0", " .	c #FBFBFB", "..	c #C6C6C6", "+.	c #C5C5C5",
+"@.	c #BABABA", "#.	c #AEAEAE", "$.	c #D0D0D0", "%.	c #FCFCFC",
+"&.	c #141414", "*.	c #D8D8D8", "=.	c #C7C7C7", "-.	c #575757",
+";.	c #3D3D3D", ">.	c #C3C3C3", ",.	c #5E5E5E", "'.	c #7D6E6E",
+").	c #FF9999", "!.	c #B39D9D", "~.	c #E69292", "{.	c #F09393",
+"].	c #ADA2A2", "^.	c #F49999", "/.	c #FFC2C2", "(.	c #757575",
+"_.	c #918787", ":.	c #F7AEAE", "<.	c #ABA6A6", "[.	c #FCB2B2",
+"}.	c #C3A0A0", "|.	c #C7A4A4", "1.	c #FFD1D1", "2.	c #EDEDED",
+"3.	c #B3B3B3", "4.	c #666666", "5.	c #2B2B2B", "6.	c #BBBBBB",
+"7.	c #292929", "8.	c #E8E8E8", "9.	c #9C9C9C", "0.	c #E4E4E4",
+"a.	c #E7E7E7", "b.	c #CACACA", "c.	c #E4A7A7", "d.	c #B59F9F",
+"e.	c #E6A7A7", "f.	c #B0A3A3", "g.	c #C19E9E", "h.	c #F9B0B0",
+"i.	c #CBCBCB", "j.	c #F4F4F4", "k.	c #BCBCBC", "l.	c #707070",
+"m.	c #242424", "n.	c #0A0A0A", "o.	c #454545", "p.	c #7D7D7D",
+"q.	c #595959", "r.	c #525252", "s.	c #5C5C5C", "t.	c #D9D9D9",
+"u.	c #121212", "v.	c #919191", "w.	c #8A8A8A", "x.	c #171717",
+"y.	c #A8A8A8", "z.	c #696969", "A.	c #9E9E9E", "B.	c #404040",
+"C.	c #616161", "D.	c #8F8F8F", "E.	c #4F4F4F", "F.	c #050505",
+"G.	c #4A4A4A", "H.	c #212121", "I.	c #3B3B3B", "J.	c #636363",
+"K.	c #D1D1D1",
+". . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . @ # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . $ % & . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . * % = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . ; > , ' ) . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . ! ~ { ] ^ / ; - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . ( - . . _ % , - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . : % < - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . [ / + - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . } ~ | @ < % 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 . . . ",
+". . . . 4 ~ 5 . 6 7 % 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 0 . . . ",
+". . 6 8 a b . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". c d e f . . . . - % . . . . . . . . . . . . . . . . . g h i i i j k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+"l / m $ n n n c . - % . . . . . . . . . . . . . . . . o p q ; r s n t u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+"} e e e e e e ! . - % . . . . . . . . . . . . . . . l v ) . . . . . h t w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . x t y . . . . . . . 6 z ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . q A . . . . . . . . . B t C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . D E . . . . . . . . . . . ) $ k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . F t G . . . . . . . . . . . . & H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . c I . . . . . . . . . . . . . F $ ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . : p B . . . . . . . . . . . . . . C t J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . K L . . . . . . . . . . . . . . . . M j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % 2 2 2 2 2 2 2 2 2 2 N O P 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Q R S 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 . . . ",
+". . . . . . . . . - % 2 2 2 2 2 2 2 2 2 2 T U 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 V W 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 . . . ",
+". . . . . . . . . - % . . . . . . . . . . t X . . . . . . . . . . . . . . . . . . J v k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . Y q . . . . . . . . . . . . . . . . . . . . Z `  .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . M ... . . . . . . . . . . . . . . . . . . . . z ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . : v J . . . . . . . . . . . . . . . . . . . . . + p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . +.@.. . . . . . . . . . . . . . . . . . . . . . . #.r . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . q Y . . . . . . . . . . . . . . . . . . . . . . . ) p . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . j ( . - % . . . . . . . + p g . . . . . . . . . . . . . . . . . . . . . . . . p $.. . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . %.& &.< . - % . . . . . . . i +.. . . . . . . . . . . . . . . . . . . . . . . . . *.p . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . b % % % =.. - % . . . . . . . t B . . . . . . . . . . . . . . . . . . . . . . . . . . E ; . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . 5 / @ . - % . . . . . . o q . . . . . . . . . . . . . . . . . . . . . . . . . . . h q g . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . -.;.. . - % . . . . . . Z Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . n >.. . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . ^ [ . F ,.% '.).).).).).!.~.).).).).).).).).).).).).).).).).).).).).).).).).).).).).{.].^.).).).).).).).).).).).).).).).).).).).)./.. . . ",
+". . . . + % n . k (.% _.0 0 0 0 :.<.[.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }.|.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.. . . ",
+". . . . } % 2.. . - % . . . . . $.3.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . k p y . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . 4.5.. . . - % . . . . . 6.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; z . . . . . . . . . . . . . . . . . . . . . . . ",
+". . l l 7.] l + . - % . . . . . 3.u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .p $.. . . . . . . . . . . . . . . . . . . . . . ",
+". 8.e e e e e 9.. - % . . . . . t X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x t 0.. . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . $.q . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . a.p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ` 6.. . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . >.I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J q b.. . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . i A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X $ l . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . p x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X t ) . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . v J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + t ) . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . F t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C t A . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % 0 0 0 c.d.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e.f.g.h.0 0 0 0 0 0 0 0 0 1.. . . ",
+". . . . . . . . . - % . . . Y z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J 3.#.x . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . D 6.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i.p D F . . . . . . . . . . ",
+". . . . . . . . . - % . . . Y $.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j.L t K 6 . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a.k.t ` =.y . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F i.i k.. . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . - % . . . . . . . . . . . . . . . . . . . . . . . . ; l.. . . . . . . . . . . . . . . . . . . . . . . . 1 < . . . . . . . ( x . . ",
+". . . . . . . . . - % e e e e e e e e e e e e e e e e e e e e e e e e m.n.e e e e e e e e e e e e e e e e e e e e e e e e ^ &.e e e e e e e &.~ o.=.",
+". . . . . . . . . . K n n n n n n n n n n n n n n n n n n n n n n n n p.m.n n n n n n n n n n n n n n n n n n n n n n n n q.7 n n n n n n n r.s.( . ",
+". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : ; . . . . . . . . . . . . . . . . . . . . . . . . + t.. . . . . . . . . . . ",
+". . . . %.= &.% u.v.. . . . . . . . . . . . . . . . . . . . . . . . . . w.| . . . . . . . . . . . . . . . . . . . . . =.4.{ e 7 ( . . . . . . . . . ",
+". . . . 4.x.y.l z.~ f . . . . . . . . . . . . . . . . . . . . . . 6 ` l.~ A.. . . . . . . . . . . . . . . . . . . . . B.r.v.5 5./ 8.. . . . . . . . ",
+". . . l % ` . . + % n . . . . . . . . . . . . . . . . . . . . . . ( ] e % t.. . . . . . . . . . . . . . . . . . . . . _ . . . ` % l . . . . . . . . ",
+". . . C.d . . . - % n . . . . . . . . . . . . . . . . . . . . . . . . , &.. . . . . . . . . . . . . . . . . . . . . . . . . . D.~ 8.. . . . . . . . ",
+". . . ^ * . . . =.% =.. . . . . . . . . . . . . . . . . . . . . . . . 7 E.. . . . . . . . . . . . . . . . . . . . . . . . . + &.C.. . . . . . . . . ",
+". . f % ` . . . 5 F.F . . . . . . . . . . . . . . . . . . . . . . . %.n.w.. . . . . . . . . . . . . . . . . . . . . . . . f d # F . . . . . . . . . ",
+". . K % w . . . E.B.. . . . . . . . . . . . . . . . . . . . . . . . l % =.. . . . . . . . . . . . . . . . . . . . . . . j x.G.: . . . . . . . . . . ",
+". . n % - . . 8./ | . . . . . . . . . . . . . . . . . . . . . . . . 5 / k . . . . . . . . . . . . . . . . . . . . . . v.F.(.%.. . . . . . . . . . . ",
+". . & % ( . %.q.H.F . . . . . . . . . . . . . . . . . . . . . . . . 8 I.. . . . . . . . . . . . . . . . . . . . . 2.r.u.n . . . . . . . . . . . . . ",
+". . @ 7.&.] d x.l . . . . . . . . . . . . . . . . . . . . . . @ , , &.# , K . . . . . . . . . . . . . . . . . . . J.% G.4.4.4.4.K.. . . . . . . . . ",
+". . . _ D., 5 : . . . . . . . . . . . . . . . . . . . . . . . 2., , , , , j . . . . . . . . . . . . . . . . . . . 9., , , , , , 8.. . . . . . . . . " };
 
 static const char* image4_data[] =
-    { "35 32 4 1", "# c #000000", "a c #bfbfbf", "b c #ff0000", ". c #ffffff",
-        "...................................",
-        ".........#.....#.....#.....#.......",
-        ".....#.#.#.#.#.#.#.#.#.#.#.#.......",
-        ".....#.#.#.#.#.#.#.#.#.#.#.#.......",
-        "....##########################.....",
-        "....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
-        "..###aaaaaaaaaaaaaaaaaaaaaaaa###...",
-        "....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
-        "..###aaaaaaaaaaaaaaaaaaaaaaaa###...",
-        "....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
-        ".####aaaaaaaaaaaaaaaa#aaaaaaa####..",
-        "....#aaaaaaaaaaaaaaa#a#aaaaaa#.....",
-        "..###aaaaaaaaaaaaaaa#a#aaaaaa###...",
-        "....#aaaaaaaaaaaaaa#aaa#aaaaa#.....",
-        "..###aaaaaaa#aaaaaa#aaa#aaaaa###...",
-        "....#aaaaaa#a#aaaa#aaaaa#aaaa#.....",
-        ".####aaaaaa#a#aaaa#aaaaa#aaaa####..",
-        "....#aaaaa#aaa#aa#aaaaaaa#aaa#.....",
-        "..###aaaaa#aaa###aaaaaaaaa######...",
-        "....#aaaa#aaaaa#aaaaaaaaaaaaa#.....",
-        "..###aaaa#aaaaa#aaaaaaaaaaaaa###...",
-        "....#aaa#aaaaaaa#aaaaaaaaaaaa#.....",
-        ".#######aaaaaaaaa#####aaaaaaa####..",
-        "....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
-        "..###aaaaaaaaaaaaaaaaaaaaaaaa###...",
-        "....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
-        "....bbbbbbbbbbbbbbbbbbbbbbbbbb.....",
-        "....bbbbbbbbbbbbbbbbbbbbbbbbbb.....",
-        ".....b.b.b.b.b.b.b.b.b.b.b.b.......",
-        ".....b.b.b.b.b.b.b.b.b.b.b.b.......",
-        ".........b.....b.....b.....b.......",
-        "..................................." };
+{ "35 32 4 1", "# c #000000", "a c #bfbfbf", "b c #ff0000", ". c #ffffff",
+"...................................",
+".........#.....#.....#.....#.......",
+".....#.#.#.#.#.#.#.#.#.#.#.#.......",
+".....#.#.#.#.#.#.#.#.#.#.#.#.......",
+"....##########################.....",
+"....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
+"..###aaaaaaaaaaaaaaaaaaaaaaaa###...",
+"....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
+"..###aaaaaaaaaaaaaaaaaaaaaaaa###...",
+"....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
+".####aaaaaaaaaaaaaaaa#aaaaaaa####..",
+"....#aaaaaaaaaaaaaaa#a#aaaaaa#.....",
+"..###aaaaaaaaaaaaaaa#a#aaaaaa###...",
+"....#aaaaaaaaaaaaaa#aaa#aaaaa#.....",
+"..###aaaaaaa#aaaaaa#aaa#aaaaa###...",
+"....#aaaaaa#a#aaaa#aaaaa#aaaa#.....",
+".####aaaaaa#a#aaaa#aaaaa#aaaa####..",
+"....#aaaaa#aaa#aa#aaaaaaa#aaa#.....",
+"..###aaaaa#aaa###aaaaaaaaa######...",
+"....#aaaa#aaaaa#aaaaaaaaaaaaa#.....",
+"..###aaaa#aaaaa#aaaaaaaaaaaaa###...",
+"....#aaa#aaaaaaa#aaaaaaaaaaaa#.....",
+".#######aaaaaaaaa#####aaaaaaa####..",
+"....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
+"..###aaaaaaaaaaaaaaaaaaaaaaaa###...",
+"....#aaaaaaaaaaaaaaaaaaaaaaaa#.....",
+"....bbbbbbbbbbbbbbbbbbbbbbbbbb.....",
+"....bbbbbbbbbbbbbbbbbbbbbbbbbb.....",
+".....b.b.b.b.b.b.b.b.b.b.b.b.......",
+".....b.b.b.b.b.b.b.b.b.b.b.b.......",
+".........b.....b.....b.....b.......",
+"..................................." };
 
 static const char* image5_data[] = { "33 32 4 1", "# c #000000", "b c #bfbfbf",
-    "a c #ff0000", ". c #ffffff", ".................................",
-    ".........#.....#.....#.....#.....", ".....#.#.#.#.#.#.#.#.#.#.#.#.....",
-    ".....#.#.#.#.#.#.#.#.#.#.#.#.....", "....aa########################...",
-    "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "..aaaabbbbbbbbbbbbbbbbbbbbbbb###.",
-    "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "..aaaabbbbbbbbbbbbbbbbbbbbbbb###.",
-    "....aabbbbbbbbbbbbbbbbbbbbbbb#...", ".aaaaabbbbbbbbbbbbbbb#bbbbbbb####",
-    "....aabbbbbbbbbbbbbb#b#bbbbbb#...", "..aaaabbbbbbbbbbbbbb#b#bbbbbb###.",
-    "....aabbbbbbbbbbbbb#bbb#bbbbb#...", "..aaaabbbbbb#bbbbbb#bbb#bbbbb###.",
-    "....aabbbbb#b#bbbb#bbbbb#bbbb#...", ".aaaaabbbbb#b#bbbb#bbbbb#bbbb####",
-    "....aabbbb#bbb#bb#bbbbbbb#bbb#...", "..aaaabbbb#bbb###bbbbbbbbb######.",
-    "....aabbb#bbbbb#bbbbbbbbbbbbb#...", "..aaaabbb#bbbbb#bbbbbbbbbbbbb###.",
-    "....aabb#bbbbbbb#bbbbbbbbbbbb#...", ".aaaaa##bbbbbbbbb#####bbbbbbb####",
-    "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "..aaaabbbbbbbbbbbbbbbbbbbbbbb###.",
-    "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "....aabbbbbbbbbbbbbbbbbbbbbbb#...",
-    "....aa########################...", ".....#.#.#.#.#.#.#.#.#.#.#.#.....",
-    ".....#.#.#.#.#.#.#.#.#.#.#.#.....", ".........#.....#.....#.....#.....",
-    "................................." };
+  "a c #ff0000", ". c #ffffff", ".................................",
+  ".........#.....#.....#.....#.....", ".....#.#.#.#.#.#.#.#.#.#.#.#.....",
+  ".....#.#.#.#.#.#.#.#.#.#.#.#.....", "....aa########################...",
+  "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "..aaaabbbbbbbbbbbbbbbbbbbbbbb###.",
+  "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "..aaaabbbbbbbbbbbbbbbbbbbbbbb###.",
+  "....aabbbbbbbbbbbbbbbbbbbbbbb#...", ".aaaaabbbbbbbbbbbbbbb#bbbbbbb####",
+  "....aabbbbbbbbbbbbbb#b#bbbbbb#...", "..aaaabbbbbbbbbbbbbb#b#bbbbbb###.",
+  "....aabbbbbbbbbbbbb#bbb#bbbbb#...", "..aaaabbbbbb#bbbbbb#bbb#bbbbb###.",
+  "....aabbbbb#b#bbbb#bbbbb#bbbb#...", ".aaaaabbbbb#b#bbbb#bbbbb#bbbb####",
+  "....aabbbb#bbb#bb#bbbbbbb#bbb#...", "..aaaabbbb#bbb###bbbbbbbbb######.",
+  "....aabbb#bbbbb#bbbbbbbbbbbbb#...", "..aaaabbb#bbbbb#bbbbbbbbbbbbb###.",
+  "....aabb#bbbbbbb#bbbbbbbbbbbb#...", ".aaaaa##bbbbbbbbb#####bbbbbbb####",
+  "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "..aaaabbbbbbbbbbbbbbbbbbbbbbb###.",
+  "....aabbbbbbbbbbbbbbbbbbbbbbb#...", "....aabbbbbbbbbbbbbbbbbbbbbbb#...",
+  "....aa########################...", ".....#.#.#.#.#.#.#.#.#.#.#.#.....",
+  ".....#.#.#.#.#.#.#.#.#.#.#.#.....", ".........#.....#.....#.....#.....",
+  "................................." };
 
 static const char* image6_data[] = { "34 34 4 1", "a c #000000", "b c #bfbfbf",
-    "# c #ff0000", ". c #ffffff", "..................................",
-    "..................................", ".........#.....#.....#.....#......",
-    ".....#.#.#.#.#.#.#.#.#.#.#.#......", ".....#.#.#.#.#.#.#.#.#.#.#.#......",
-    "....##########################....", "....##########################....",
-    "..aaabbbbbbbbbbbbbbbbbbbbbbbbaaa..", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
-    "..aaabbbbbbbbbbbbbbbbbbbbbbbbaaa..", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
-    ".aaaabbbbbbbbbbbbbbbbabbbbbbbaaaa.", "....abbbbbbbbbbbbbbbababbbbbba....",
-    "..aaabbbbbbbbbbbbbbbababbbbbbaaa..", "....abbbbbbbbbbbbbbabbbabbbbba....",
-    "..aaabbbbbbbabbbbbbabbbabbbbbaaa..", "....abbbbbbababbbbabbbbbabbbba....",
-    ".aaaabbbbbbababbbbabbbbbabbbbaaaa.", "....abbbbbabbbabbabbbbbbbabbba....",
-    "..aaabbbbbabbbaaabbbbbbbbbaaaaaa..", "....abbbbabbbbbabbbbbbbbbbbbba....",
-    "..aaabbbbabbbbbabbbbbbbbbbbbbaaa..", "....abbbabbbbbbbabbbbbbbbbbbba....",
-    ".aaaaaaabbbbbbbbbaaaaabbbbbbbaaaa.", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
-    "..aaabbbbbbbbbbbbbbbbbbbbbbbbaaa..", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
-    "....abbbbbbbbbbbbbbbbbbbbbbbba....", "....aaaaaaaaaaaaaaaaaaaaaaaaaa....",
-    ".....a.a.a.a.a.a.a.a.a.a.a.a......", ".....a.a.a.a.a.a.a.a.a.a.a.a......",
-    ".........a.....a.....a.....a......", "..................................",
-    ".................................." };
+  "# c #ff0000", ". c #ffffff", "..................................",
+  "..................................", ".........#.....#.....#.....#......",
+  ".....#.#.#.#.#.#.#.#.#.#.#.#......", ".....#.#.#.#.#.#.#.#.#.#.#.#......",
+  "....##########################....", "....##########################....",
+  "..aaabbbbbbbbbbbbbbbbbbbbbbbbaaa..", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
+  "..aaabbbbbbbbbbbbbbbbbbbbbbbbaaa..", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
+  ".aaaabbbbbbbbbbbbbbbbabbbbbbbaaaa.", "....abbbbbbbbbbbbbbbababbbbbba....",
+  "..aaabbbbbbbbbbbbbbbababbbbbbaaa..", "....abbbbbbbbbbbbbbabbbabbbbba....",
+  "..aaabbbbbbbabbbbbbabbbabbbbbaaa..", "....abbbbbbababbbbabbbbbabbbba....",
+  ".aaaabbbbbbababbbbabbbbbabbbbaaaa.", "....abbbbbabbbabbabbbbbbbabbba....",
+  "..aaabbbbbabbbaaabbbbbbbbbaaaaaa..", "....abbbbabbbbbabbbbbbbbbbbbba....",
+  "..aaabbbbabbbbbabbbbbbbbbbbbbaaa..", "....abbbabbbbbbbabbbbbbbbbbbba....",
+  ".aaaaaaabbbbbbbbbaaaaabbbbbbbaaaa.", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
+  "..aaabbbbbbbbbbbbbbbbbbbbbbbbaaa..", "....abbbbbbbbbbbbbbbbbbbbbbbba....",
+  "....abbbbbbbbbbbbbbbbbbbbbbbba....", "....aaaaaaaaaaaaaaaaaaaaaaaaaa....",
+  ".....a.a.a.a.a.a.a.a.a.a.a.a......", ".....a.a.a.a.a.a.a.a.a.a.a.a......",
+  ".........a.....a.....a.....a......", "..................................",
+  ".................................." };
 
 static const char* image7_data[] = { "32 32 4 1", "# c #000000", "b c #bfbfbf",
-    "a c #ff0000", ". c #ffffff", "................................",
-    "........#.....#.....#.....#.....", "....#.#.#.#.#.#.#.#.#.#.#.#.....",
-    "....#.#.#.#.#.#.#.#.#.#.#.#.....", "...########################aa...",
-    "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", ".###bbbbbbbbbbbbbbbbbbbbbbbaaaa.",
-    "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", ".###bbbbbbbbbbbbbbbbbbbbbbbaaaa.",
-    "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", "####bbbbbbbbbbbbbbbb#bbbbbbaaaaa",
-    "...#bbbbbbbbbbbbbbb#b#bbbbbaa...", ".###bbbbbbbbbbbbbbb#b#bbbbbaaaa.",
-    "...#bbbbbbbbbbbbbb#bbb#bbbbaa...", ".###bbbbbbb#bbbbbb#bbb#bbbbaaaa.",
-    "...#bbbbbb#b#bbbb#bbbbb#bbbaa...", "####bbbbbb#b#bbbb#bbbbb#bbbaaaaa",
-    "...#bbbbb#bbb#bb#bbbbbbb#bbaa...", ".###bbbbb#bbb###bbbbbbbbb##aaaa.",
-    "...#bbbb#bbbbb#bbbbbbbbbbbbaa...", ".###bbbb#bbbbb#bbbbbbbbbbbbaaaa.",
-    "...#bbb#bbbbbbb#bbbbbbbbbbbaa...", "#######bbbbbbbbb#####bbbbbbaaaaa",
-    "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", ".###bbbbbbbbbbbbbbbbbbbbbbbaaaa.",
-    "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", "...#bbbbbbbbbbbbbbbbbbbbbbbaa...",
-    "...########################aa...", "....#.#.#.#.#.#.#.#.#.#.#.#.....",
-    "....#.#.#.#.#.#.#.#.#.#.#.#.....", "........#.....#.....#.....#.....",
-    "................................" };
+  "a c #ff0000", ". c #ffffff", "................................",
+  "........#.....#.....#.....#.....", "....#.#.#.#.#.#.#.#.#.#.#.#.....",
+  "....#.#.#.#.#.#.#.#.#.#.#.#.....", "...########################aa...",
+  "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", ".###bbbbbbbbbbbbbbbbbbbbbbbaaaa.",
+  "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", ".###bbbbbbbbbbbbbbbbbbbbbbbaaaa.",
+  "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", "####bbbbbbbbbbbbbbbb#bbbbbbaaaaa",
+  "...#bbbbbbbbbbbbbbb#b#bbbbbaa...", ".###bbbbbbbbbbbbbbb#b#bbbbbaaaa.",
+  "...#bbbbbbbbbbbbbb#bbb#bbbbaa...", ".###bbbbbbb#bbbbbb#bbb#bbbbaaaa.",
+  "...#bbbbbb#b#bbbb#bbbbb#bbbaa...", "####bbbbbb#b#bbbb#bbbbb#bbbaaaaa",
+  "...#bbbbb#bbb#bb#bbbbbbb#bbaa...", ".###bbbbb#bbb###bbbbbbbbb##aaaa.",
+  "...#bbbb#bbbbb#bbbbbbbbbbbbaa...", ".###bbbb#bbbbb#bbbbbbbbbbbbaaaa.",
+  "...#bbb#bbbbbbb#bbbbbbbbbbbaa...", "#######bbbbbbbbb#####bbbbbbaaaaa",
+  "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", ".###bbbbbbbbbbbbbbbbbbbbbbbaaaa.",
+  "...#bbbbbbbbbbbbbbbbbbbbbbbaa...", "...#bbbbbbbbbbbbbbbbbbbbbbbaa...",
+  "...########################aa...", "....#.#.#.#.#.#.#.#.#.#.#.#.....",
+  "....#.#.#.#.#.#.#.#.#.#.#.#.....", "........#.....#.....#.....#.....",
+  "................................" };
 
 #ifndef M_PI
 #define M_PI	3.141592653589793238462643
@@ -629,7 +629,7 @@ static const char* image7_data[] = { "32 32 4 1", "# c #000000", "b c #bfbfbf",
 ///////////////////
 
 AxesDialog::AxesDialog(ApplicationWindow* app, Graph* g, Qt::WFlags fl) :
-    QDialog(g, fl), d_app(app), d_graph(NULL), m_updatePlot(false)
+  QDialog(g, fl), d_app(app), d_graph(NULL), m_updatePlot(false)
 {
   QPixmap image4((const char**) image4_data);
   QPixmap image5((const char**) image5_data);
@@ -672,7 +672,12 @@ AxesDialog::AxesDialog(ApplicationWindow* app, Graph* g, Qt::WFlags fl) :
   connect(buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ));
   connect(buttonApply, SIGNAL( clicked() ), this, SLOT(apply() ));
   connect(generalDialog, SIGNAL( currentChanged ( QWidget * ) ), this,
-      SLOT(pageChanged ( QWidget * ) ));
+    SLOT(pageChanged ( QWidget * ) ));
+}
+
+AxesDialog::~AxesDialog()
+{
+
 }
 
 void AxesDialog::showAxesPage()
@@ -708,18 +713,18 @@ void AxesDialog::setCurrentScale(int axisPos)
   int axis = -1;
   switch (axisPos)
   {
-    case QwtScaleDraw::LeftScale:
-      axis = 1;
-      break;
-    case QwtScaleDraw::BottomScale:
-      axis = 0;
-      break;
-    case QwtScaleDraw::RightScale:
-      axis = 3;
-      break;
-    case QwtScaleDraw::TopScale:
-      axis = 2;
-      break;
+  case QwtScaleDraw::LeftScale:
+    axis = 1;
+    break;
+  case QwtScaleDraw::BottomScale:
+    axis = 0;
+    break;
+  case QwtScaleDraw::RightScale:
+    axis = 3;
+    break;
+  case QwtScaleDraw::TopScale:
+    axis = 2;
+    break;
   }
   if (generalDialog->currentPage() == dynamic_cast<QWidget*>(scalesPage))
     axesList->setCurrentRow(axis);
@@ -748,10 +753,10 @@ void AxesDialog::initScalesPage()
   QListWidgetItem* listTop = new QListWidgetItem(image2, tr("Top"));
   QListWidgetItem* listRight = new QListWidgetItem(image3, tr("Right"));
 
-  ScaleAxisDetails* prefsBottom = new ScaleAxisDetails(d_app, d_graph, QwtPlot::xBottom);
-  ScaleAxisDetails* prefsLeft = new ScaleAxisDetails(d_app, d_graph, QwtPlot::yLeft);
-  ScaleAxisDetails* prefsTop = new ScaleAxisDetails(d_app, d_graph, QwtPlot::xTop);
-  ScaleAxisDetails* prefsRight = new ScaleAxisDetails(d_app, d_graph, QwtPlot::yRight);
+  ScaleDetails* prefsBottom = new ScaleDetails(d_app, d_graph, QwtPlot::xBottom);
+  ScaleDetails* prefsLeft = new ScaleDetails(d_app, d_graph, QwtPlot::yLeft);
+  ScaleDetails* prefsTop = new ScaleDetails(d_app, d_graph, QwtPlot::xTop);
+  ScaleDetails* prefsRight = new ScaleDetails(d_app, d_graph, QwtPlot::yRight);
 
   scalePrefsArea->addWidget(prefsBottom);
   scalePrefsArea->addWidget(prefsLeft);
@@ -763,10 +768,10 @@ void AxesDialog::initScalesPage()
   axesList->addItem(listTop);
   axesList->addItem(listRight);
 
-  m_Scale_map.insert(listBottom,prefsBottom);
-  m_Scale_map.insert(listLeft,prefsLeft);
-  m_Scale_map.insert(listTop,prefsTop);
-  m_Scale_map.insert(listRight,prefsRight);
+  m_Scale_list.append(prefsBottom);
+  m_Scale_list.append(prefsLeft);
+  m_Scale_list.append(prefsTop);
+  m_Scale_list.append(prefsRight);
 
   axesList->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding));
   axesList->setIconSize(image0.size());
@@ -797,99 +802,15 @@ void AxesDialog::initScalesPage()
 
 void AxesDialog::initGridPage()
 {
+  Grid *grd = dynamic_cast<Grid *>(d_graph->plotWidget()->grid());
+  if (!grd)
+  {
+    return;
+  }
   gridPage = new QWidget();
 
+  QVBoxLayout* gridPageLayout = new QVBoxLayout(gridPage);
   QGroupBox * rightBox = new QGroupBox(QString());
-  QGridLayout * rightLayout = new QGridLayout(rightBox);
-
-  boxMajorGrid = new QCheckBox();
-  boxMajorGrid->setText(tr("Major Grids"));
-  boxMajorGrid->setChecked(true);
-  rightLayout->addWidget(boxMajorGrid, 0, 1);
-
-  boxMinorGrid = new QCheckBox();
-  boxMinorGrid->setText(tr("Minor Grids"));
-  boxMinorGrid->setChecked(false);
-  rightLayout->addWidget(boxMinorGrid, 0, 2);
-
-  rightLayout->addWidget(new QLabel(tr("Line Color")), 1, 0);
-
-  boxColorMajor = new ColorBox(0);
-  rightLayout->addWidget(boxColorMajor, 1, 1);
-
-  boxColorMinor = new ColorBox(0);
-  boxColorMinor->setDisabled(true);
-  rightLayout->addWidget(boxColorMinor, 1, 2);
-
-  rightLayout->addWidget(new QLabel(tr("Line Type")), 2, 0);
-
-  boxTypeMajor = new QComboBox();
-  boxTypeMajor->addItem("_____");
-  boxTypeMajor->addItem("- - -");
-  boxTypeMajor->addItem(".....");
-  boxTypeMajor->addItem("_._._");
-  boxTypeMajor->addItem("_.._..");
-  rightLayout->addWidget(boxTypeMajor, 2, 1);
-
-  boxTypeMinor = new QComboBox();
-  boxTypeMinor->addItem("_____");
-  boxTypeMinor->addItem("- - -");
-  boxTypeMinor->addItem(".....");
-  boxTypeMinor->addItem("_._._");
-  boxTypeMinor->addItem("_.._..");
-  boxTypeMinor->setDisabled(true);
-  rightLayout->addWidget(boxTypeMinor, 2, 2);
-
-  rightLayout->addWidget(new QLabel(tr("Thickness")), 3, 0);
-
-  boxWidthMajor = new DoubleSpinBox('f');
-  boxWidthMajor->setLocale(d_app->locale());
-  boxWidthMajor->setSingleStep(0.1);
-  boxWidthMajor->setRange(0.1, 20);
-  boxWidthMajor->setValue(1);
-  rightLayout->addWidget(boxWidthMajor, 3, 1);
-
-  boxWidthMinor = new DoubleSpinBox('f');
-  boxWidthMinor->setLocale(d_app->locale());
-  boxWidthMinor->setSingleStep(0.1);
-  boxWidthMinor->setRange(0.1, 20);
-  boxWidthMinor->setValue(1);
-  boxWidthMinor->setDisabled(true);
-  rightLayout->addWidget(boxWidthMinor, 3, 2);
-
-  rightLayout->addWidget(new QLabel(tr("Axes")), 4, 0);
-
-  boxGridXAxis = new QComboBox();
-  boxGridXAxis->insertItem(tr("Bottom"));
-  boxGridXAxis->insertItem(tr("Top"));
-  rightLayout->addWidget(boxGridXAxis, 4, 1);
-
-  boxGridYAxis = new QComboBox();
-  boxGridYAxis->insertItem(tr("Left"));
-  boxGridYAxis->insertItem(tr("Right"));
-  rightLayout->addWidget(boxGridYAxis, 4, 2);
-
-  rightLayout->addWidget(new QLabel(tr("Additional lines")), 5, 0);
-
-  boxXLine = new QCheckBox(tr("X=0"));
-  boxXLine->setDisabled(true);
-  rightLayout->addWidget(boxXLine, 5, 1);
-
-  boxYLine = new QCheckBox(tr("Y=0"));
-  rightLayout->addWidget(boxYLine, 5, 2);
-
-  rightLayout->addWidget(new QLabel(tr("Apply To")), 6, 0);
-  boxApplyGridFormat = new QComboBox();
-  boxApplyGridFormat->insertItem(tr("This Layer"));
-  boxApplyGridFormat->insertItem(tr("This Window"));
-  boxApplyGridFormat->insertItem(tr("All Windows"));
-  rightLayout->addWidget(boxApplyGridFormat, 6, 1);
-
-  boxAntialiseGrid = new QCheckBox(tr("An&tialised"));
-  rightLayout->addWidget(boxAntialiseGrid, 6, 2);
-
-  rightLayout->setRowStretch(7, 1);
-  rightLayout->setColumnStretch(4, 1);
 
   QPixmap image2((const char**) image2_data);
   QPixmap image3((const char**) image3_data);
@@ -899,49 +820,61 @@ void AxesDialog::initGridPage()
   axesGridList->addItem(new QListWidgetItem(image2, tr("Vertical")));
   axesGridList->setIconSize(image3.size());
   //axesGridList->setCurrentRow(0);
-
   // calculate a sensible width for the items list
   // (default QListWidget size is 256 which looks too big)
   QFontMetrics fm(axesGridList->font());
   int width = 32, i;
   for (i = 0; i < axesGridList->count(); i++)
+  {
     if (fm.width(axesGridList->item(i)->text()) > width)
+    {
       width = fm.width(axesGridList->item(i)->text());
+    }
+  }
 
   axesGridList->setMaximumWidth(axesGridList->iconSize().width() + width + 50);
   // resize the list to the maximum width
   axesGridList->resize(axesGridList->maximumWidth(), axesGridList->height());
 
-  QHBoxLayout* mainLayout2 = new QHBoxLayout(gridPage);
-  mainLayout2->addWidget(axesGridList);
-  mainLayout2->addWidget(rightBox);
+  gridPrefsArea = new QStackedLayout(rightBox);
+
+  GridDetails* prefsHor = new GridDetails(d_app, d_graph, 0);
+  GridDetails* prefsVert = new GridDetails(d_app, d_graph, 1);
+
+  gridPrefsArea->addWidget(prefsHor);
+  gridPrefsArea->addWidget(prefsVert);
+
+  m_Grid_list.append(prefsHor);
+  m_Grid_list.append(prefsVert);
+
+  QGridLayout* bottombox = new QGridLayout();
+
+  bottombox->addWidget(new QLabel(tr("Apply To")), 0, 0, Qt::AlignRight);
+  boxApplyGridFormat = new QComboBox();
+  boxApplyGridFormat->insertItem(tr("This Layer"));
+  boxApplyGridFormat->insertItem(tr("This Window"));
+  boxApplyGridFormat->insertItem(tr("All Windows"));
+  bottombox->addWidget(boxApplyGridFormat, 0, 1, Qt::AlignLeft);
+
+  boxAntialiseGrid = new QCheckBox(tr("An&tialised"));
+  bottombox->addWidget(boxAntialiseGrid, 0, 2, Qt::AlignLeft);
+  boxAntialiseGrid->setChecked(grd->testRenderHint(QwtPlotItem::RenderAntialiased));
+
+  QHBoxLayout* topBox = new QHBoxLayout();
+  topBox->addWidget(axesGridList);
+  topBox->addWidget(rightBox);
+
+  gridPageLayout->addLayout(topBox);
+  gridPageLayout->addLayout(bottombox);
 
   generalDialog->addTab(gridPage, tr("Grid"));
 
-  showGridOptions(axesGridList->currentRow());
+  //showGridOptions(axesGridList->currentRow());
 
   //grid page slot connections
-  connect(axesGridList, SIGNAL(currentRowChanged(int)), this,
-      SLOT(showGridOptions(int)));
-
-  //these bypass apply()
-  /*
-  connect(boxMajorGrid, SIGNAL(toggled(bool)), this,
-      SLOT(majorGridEnabled(bool)));
-  connect(boxMinorGrid, SIGNAL(toggled(bool)), this,
-      SLOT(minorGridEnabled(bool)));
-  connect(boxAntialiseGrid, SIGNAL(toggled(bool)), this, SLOT(updateGrid()));
-  connect(boxColorMajor, SIGNAL(activated(int)), this, SLOT(updateGrid()));
-  connect(boxColorMinor, SIGNAL(activated(int)), this, SLOT(updateGrid()));
-  connect(boxTypeMajor, SIGNAL(activated(int)), this, SLOT(updateGrid()));
-  connect(boxTypeMinor, SIGNAL(activated(int)), this, SLOT(updateGrid()));
-  connect(boxWidthMajor, SIGNAL(valueChanged(double)), this,
-      SLOT(updateGrid()));
-  connect(boxWidthMinor, SIGNAL(valueChanged(double)), this,
-      SLOT(updateGrid()));
-  connect(boxXLine, SIGNAL(clicked()), this, SLOT(apply()));
-  connect(boxYLine, SIGNAL(clicked()), this, SLOT(apply()));
-  */
+  connect(axesGridList, SIGNAL(currentRowChanged(int)),  gridPrefsArea, SLOT(setCurrentIndex(int)));
+  connect(boxAntialiseGrid, SIGNAL(clicked()),prefsHor,SLOT(setModified()));
+  connect(boxAntialiseGrid, SIGNAL(clicked()),prefsVert,SLOT(setModified()));
 }
 
 void AxesDialog::initAxesPage()
@@ -961,10 +894,10 @@ void AxesDialog::initAxesPage()
   QListWidgetItem* listTop = new QListWidgetItem(image6, tr("Top"));
   QListWidgetItem* listRight = new QListWidgetItem(image7, tr("Right"));
 
-  AxisAxisDetails* prefsBottom = new AxisAxisDetails(d_app, d_graph, QwtPlot::xBottom);
-  AxisAxisDetails* prefsLeft = new AxisAxisDetails(d_app, d_graph, QwtPlot::yLeft);
-  AxisAxisDetails* prefsTop = new AxisAxisDetails(d_app, d_graph, QwtPlot::xTop);
-  AxisAxisDetails* prefsRight = new AxisAxisDetails(d_app, d_graph, QwtPlot::yRight);
+  AxisDetails* prefsBottom = new AxisDetails(d_app, d_graph, QwtPlot::xBottom);
+  AxisDetails* prefsLeft = new AxisDetails(d_app, d_graph, QwtPlot::yLeft);
+  AxisDetails* prefsTop = new AxisDetails(d_app, d_graph, QwtPlot::xTop);
+  AxisDetails* prefsRight = new AxisDetails(d_app, d_graph, QwtPlot::yRight);
 
   axesPrefsArea->addWidget(prefsBottom);
   axesPrefsArea->addWidget(prefsLeft);
@@ -976,14 +909,14 @@ void AxesDialog::initAxesPage()
   axesTitlesList->addItem(listTop);
   axesTitlesList->addItem(listRight);
 
-  m_Axis_map.insert(listBottom,prefsBottom);
-  m_Axis_map.insert(listLeft,prefsLeft);
-  m_Axis_map.insert(listTop,prefsTop);
-  m_Axis_map.insert(listRight,prefsRight);
+  m_Axis_list.append(prefsBottom);
+  m_Axis_list.append(prefsLeft);
+  m_Axis_list.append(prefsTop);
+  m_Axis_list.append(prefsRight);
 
   axesTitlesList->setIconSize(image6.size());
   axesTitlesList->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding));
-  
+
   // calculate a sensible width for the items list
   // (default QListWidget size is 256 which looks too big)
   QFontMetrics fm(axesTitlesList->font());
@@ -1072,19 +1005,19 @@ void AxesDialog::initGeneralPage()
   /*
   //All of these bypass apply()
   connect(boxFrameColor, SIGNAL(colorChanged()), this,
-      SLOT(pickCanvasFrameColor()));
+  SLOT(pickCanvasFrameColor()));
   connect(boxBackbones, SIGNAL(toggled(bool)), this,
-      SLOT(drawAxesBackbones(bool)));
+  SLOT(drawAxesBackbones(bool)));
   connect(boxFramed, SIGNAL(toggled(bool)), this, SLOT(drawFrame(bool)));
   connect(boxFrameWidth, SIGNAL(valueChanged (int)), this,
-      SLOT(updateFrame(int)));
+  SLOT(updateFrame(int)));
   connect(boxAxesLinewidth, SIGNAL(valueChanged (int)), this,
-      SLOT(changeAxesLinewidth(int)));
+  SLOT(changeAxesLinewidth(int)));
   connect(boxMajorTicksLength, SIGNAL(valueChanged (int)), this,
-      SLOT(changeMajorTicksLength(int)));
+  SLOT(changeMajorTicksLength(int)));
   connect(boxMinorTicksLength, SIGNAL(valueChanged (int)), this,
-      SLOT(changeMinorTicksLength(int)));
-      */
+  SLOT(changeMinorTicksLength(int)));
+  */
 }
 
 void AxesDialog::accept()
@@ -1093,96 +1026,6 @@ void AxesDialog::accept()
     close();
 }
 
-void AxesDialog::showGridOptions(int axis)
-{
-  Grid *grd = dynamic_cast<Grid *>(d_graph->plotWidget()->grid());
-  if (!grd)
-    return;
-
-  boxMajorGrid->blockSignals(true);
-  boxMinorGrid->blockSignals(true);
-  boxWidthMajor->blockSignals(true);
-  boxWidthMinor->blockSignals(true);
-  boxColorMajor->blockSignals(true);
-  boxColorMinor->blockSignals(true);
-  boxTypeMajor->blockSignals(true);
-  boxTypeMinor->blockSignals(true);
-  boxAntialiseGrid->blockSignals(true);
-
-  if (axis == 1)
-  {
-    boxMajorGrid->setChecked(grd->xEnabled());
-    boxMinorGrid->setChecked(grd->xMinEnabled());
-
-    boxXLine->setEnabled(true);
-    boxYLine->setDisabled(true);
-
-    boxGridXAxis->setEnabled(true);
-    boxGridYAxis->setDisabled(true);
-
-    QPen majPenX = grd->majPenX();
-    boxTypeMajor->setCurrentIndex(majPenX.style() - 1);
-    boxColorMajor->setColor(majPenX.color());
-    boxWidthMajor->setValue(majPenX.widthF());
-
-    QPen minPenX = grd->minPenX();
-    boxTypeMinor->setCurrentItem(minPenX.style() - 1);
-    boxColorMinor->setColor(minPenX.color());
-    boxWidthMinor->setValue(minPenX.widthF());
-  }
-  else if (axis == 0)
-  {
-    boxMajorGrid->setChecked(grd->yEnabled());
-    boxMinorGrid->setChecked(grd->yMinEnabled());
-
-    boxXLine->setDisabled(true);
-    boxYLine->setEnabled(true);
-
-    boxGridXAxis->setDisabled(true);
-    boxGridYAxis->setEnabled(true);
-
-    QPen majPenY = grd->majPenY();
-    boxTypeMajor->setCurrentIndex(majPenY.style() - 1);
-    boxColorMajor->setColor(majPenY.color());
-    boxWidthMajor->setValue(majPenY.widthF());
-
-    QPen minPenY = grd->minPenY();
-    boxTypeMinor->setCurrentItem(minPenY.style() - 1);
-    boxColorMinor->setColor(minPenY.color());
-    boxWidthMinor->setValue(minPenY.widthF());
-  }
-
-  bool majorOn = boxMajorGrid->isChecked();
-  boxTypeMajor->setEnabled(majorOn);
-  boxColorMajor->setEnabled(majorOn);
-  boxWidthMajor->setEnabled(majorOn);
-
-  bool minorOn = boxMinorGrid->isChecked();
-  boxTypeMinor->setEnabled(minorOn);
-  boxColorMinor->setEnabled(minorOn);
-  boxWidthMinor->setEnabled(minorOn);
-
-  boxGridXAxis->setCurrentIndex(grd->xAxis() - 2);
-  boxGridYAxis->setCurrentIndex(grd->yAxis());
-
-  boxXLine->setChecked(grd->xZeroLineEnabled());
-  boxYLine->setChecked(grd->yZeroLineEnabled());
-
-  boxAntialiseGrid->setChecked(
-      grd->testRenderHint(QwtPlotItem::RenderAntialiased));
-
-  boxAntialiseGrid->blockSignals(false);
-  boxWidthMajor->blockSignals(false);
-  boxWidthMinor->blockSignals(false);
-  boxColorMajor->blockSignals(false);
-  boxColorMinor->blockSignals(false);
-  boxTypeMajor->blockSignals(false);
-  boxTypeMinor->blockSignals(false);
-  boxMajorGrid->blockSignals(false);
-  boxMinorGrid->blockSignals(false);
-}
-
-
 void AxesDialog::setGraph(Graph *g)
 {
   if (!d_app)
@@ -1206,18 +1049,18 @@ int AxesDialog::mapToQwtAxis(int axis)
   int a = -1;
   switch (axis)
   {
-    case 0:
-      a = QwtPlot::xBottom;
-      break;
-    case 1:
-      a = QwtPlot::yLeft;
-      break;
-    case 2:
-      a = QwtPlot::xTop;
-      break;
-    case 3:
-      a = QwtPlot::yRight;
-      break;
+  case 0:
+    a = QwtPlot::xBottom;
+    break;
+  case 1:
+    a = QwtPlot::yLeft;
+    break;
+  case 2:
+    a = QwtPlot::xTop;
+    break;
+  case 3:
+    a = QwtPlot::yRight;
+    break;
   }
   return a;
 }
@@ -1227,7 +1070,7 @@ void AxesDialog::updateScale()
 
   //QList<QListWidgetItem*> selection = axesList->selectedItems();
   //if (selection.isEmpty())
-    //return;
+  //return;
 
   // Remove the current widget if one exists in the scroll area
   //if( scalePrefsArea->widget() ) scalePrefsArea->takeWidget();
@@ -1241,31 +1084,31 @@ void AxesDialog::updateScale()
   std::cerr << "Return from takeat() - " << takereturn << std::endl;
   if (takereturn)
   {
-    auto returnwidget = takereturn->widget();
-    std::cerr << "Return from widget() - " << returnwidget << std::endl;
-	m_Scale_map.value[axesList->item(oldaxis)] = takereturn->widget();
+  auto returnwidget = takereturn->widget();
+  std::cerr << "Return from widget() - " << returnwidget << std::endl;
+  m_Scale_list.value[axesList->item(oldaxis)] = takereturn->widget();
   }
   int testrow = axesList->currentRow();
   std::cerr << "Return from currentRow() - " << testrow << std::endl;
   QListWidgetItem *item = axesList->currentItem();
   std::cerr << "Return from axesList->currentItem() address of list item - " << item << std::endl;
-  ScaleAxisDetails *obj = NULL;
+  ScaleDetails *obj = NULL;
   std::cerr << "Address of obj NULL - " << obj << std::endl;
-  if (m_Scale_map.contains(item))
+  if (m_Scale_list.contains(item))
   {
-    obj = m_Scale_map.value(item);
-    obj->initWidgets();
-    std::cerr << "Address of obj from map - " << obj << std::endl;
-	std::cerr << "Contents of dspnStart - " << obj->testreturn() << std::endl;
+  obj = m_Scale_list.value(item);
+  obj->initWidgets();
+  std::cerr << "Address of obj from map - " << obj << std::endl;
+  std::cerr << "Contents of dspnStart - " << obj->testreturn() << std::endl;
 
   }
   else
   {
-    obj = new ScaleAxisDetails(d_app, d_graph,
-        mapToQwtAxis(axesList->currentRow()));
-    m_Scale_map.insert(item, obj);
-    obj->initWidgets();
-    std::cerr << "Address of obj from map - " << obj << std::endl;
+  obj = new ScaleDetails(d_app, d_graph,
+  mapToQwtAxis(axesList->currentRow()));
+  m_Scale_list.insert(item, obj);
+  obj->initWidgets();
+  std::cerr << "Address of obj from map - " << obj << std::endl;
   }
   //Set it as the currently displayed widget
 
@@ -1278,153 +1121,153 @@ void AxesDialog::updateScale()
 
 
   /*
-   int axis = axesList->currentRow();
-   boxStart->clear();
-   boxEnd->clear();
-   boxStep->clear();
-   boxUnit->hide();
-   boxUnit->clear();
-
-   Plot *d_plot = d_graph->plotWidget();
-   int a = mapToQwtAxis(axis);
-   const QwtScaleDiv *scDiv = d_plot->axisScaleDiv(a);
-   double start = QMIN(scDiv->lBound(), scDiv->hBound());
-   double end = QMAX(scDiv->lBound(), scDiv->hBound());
-   ScaleDraw::ScaleType type = d_graph->axisType(a);
-   if (type == ScaleDraw::Date){
-   ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(a));
-   QDateTime origin = sclDraw->dateTimeOrigin();
-
-   boxStart->hide();
-   boxStartTime->hide();
-   boxStartDateTime->show();
-   boxStartDateTime->setDisplayFormat(sclDraw->format());
-   boxStartDateTime->setDateTime(origin.addSecs((int)start));
-
-   boxEnd->hide();
-   boxEndTime->hide();
-   boxEndDateTime->show();
-   boxEndDateTime->setDisplayFormat(sclDraw->format());
-   boxEndDateTime->setDateTime(origin.addSecs((int)end));
-
-   boxUnit->show();
-   boxUnit->insertItem(tr("days"));
-   boxUnit->insertItem(tr("weeks"));
-   boxStep->setValue(d_graph->axisStep(a)/86400.0);
-   boxStep->setSingleStep(1);
-   } else if (type == ScaleDraw::Time){
-   ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(a));
-   QTime origin = sclDraw->dateTimeOrigin().time();
-
-   boxStart->hide();
-   boxStartDateTime->hide();
-   boxStartTime->show();
-   boxStartTime->setDisplayFormat(sclDraw->format());
-   boxStartTime->setTime(origin.addMSecs((int)start));
-
-   boxEnd->hide();
-   boxEndDateTime->hide();
-   boxEndTime->show();
-   boxEndTime->setDisplayFormat(sclDraw->format());
-   boxEndTime->setTime(origin.addMSecs((int)end));
-
-   boxUnit->show();
-   boxUnit->insertItem(tr("millisec."));
-   boxUnit->insertItem(tr("sec."));
-   boxUnit->insertItem(tr("min."));
-   boxUnit->insertItem(tr("hours"));
-   boxUnit->setCurrentIndex(1);
-   boxStep->setValue(d_graph->axisStep(a)/1e3);
-   boxStep->setSingleStep(1000);
-   } else {
-   boxStart->show();
-   boxStart->setValue(start);
-   boxStartTime->hide();
-   boxStartDateTime->hide();
-   boxEnd->show();
-   boxEnd->setValue(end);
-   boxEndTime->hide();
-   boxEndDateTime->hide();
-   boxStep->setValue(d_graph->axisStep(a));
-   boxStep->setSingleStep(0.1);
-   }
-
-   double range = fabs(scDiv->range());
-   QwtScaleEngine *qwtsc_engine = d_plot->axisScaleEngine(a);
-   ScaleEngine* sc_engine=dynamic_cast<ScaleEngine*>(qwtsc_engine);
-   if(sc_engine)
-   {
-   if (sc_engine->axisBreakLeft() > -DBL_MAX)
-   boxBreakStart->setValue(sc_engine->axisBreakLeft());
-   else
-   boxBreakStart->setValue(start + 0.25*range);
-
-   if (sc_engine->axisBreakRight() < DBL_MAX)
-   boxBreakEnd->setValue(sc_engine->axisBreakRight());
-   else
-   boxBreakEnd->setValue(start + 0.75*range);
-
-   boxAxesBreaks->setChecked(sc_engine->hasBreak());
-
-   boxBreakPosition->setValue(sc_engine->breakPosition());
-   boxBreakWidth->setValue(sc_engine->breakWidth());
-   boxStepBeforeBreak->setValue(sc_engine->stepBeforeBreak());
-   boxStepAfterBreak->setValue(sc_engine->stepAfterBreak());
-
-   QwtScaleTransformation::Type scale_type = sc_engine->type();
-   boxMinorTicksBeforeBreak->clear();
-   if (scale_type == QwtScaleTransformation::Log10)
-   boxMinorTicksBeforeBreak->addItems(QStringList()<<"0"<<"2"<<"4"<<"8");
-   else
-   boxMinorTicksBeforeBreak->addItems(QStringList()<<"0"<<"1"<<"4"<<"9"<<"14"<<"19");
-   boxMinorTicksBeforeBreak->setEditText(QString::number(sc_engine->minTicksBeforeBreak()));
-
-
-   boxMinorTicksAfterBreak->setEditText(QString::number(sc_engine->minTicksAfterBreak()));
-   boxLog10AfterBreak->setChecked(sc_engine->log10ScaleAfterBreak());
-   boxBreakDecoration->setChecked(sc_engine->hasBreakDecoration());
-   btnInvert->setChecked(sc_engine->testAttribute(QwtScaleEngine::Inverted));
-   boxScaleType->setCurrentItem(scale_type);
-   boxMinorValue->clear();
-   if (scale_type == QwtScaleTransformation::Log10)
-   boxMinorValue->addItems(QStringList()<<"0"<<"2"<<"4"<<"8");
-   else
-   boxMinorValue->addItems(QStringList()<<"0"<<"1"<<"4"<<"9"<<"14"<<"19");
-
-   boxMinorValue->setEditText(QString::number(d_plot->axisMaxMinor(a)));
-
-   bool isColorMap = d_graph->isColorBarEnabled(mapToQwtAxis(axis));
-   boxAxesBreaks->setEnabled (!isColorMap);
-   if (isColorMap)
-   {
-   boxAxesBreaks->setChecked (false);
-   }
-
-   }
-   else
-   {
-   boxAxesBreaks->setChecked(false);
-   boxAxesBreaks->setEnabled (false);
-   }
-
-   QwtValueList lst = scDiv->ticks (QwtScaleDiv::MajorTick);
-   boxMajorValue->setValue(lst.count());
-
-   if (d_graph->axisStep(a) != 0.0){
-   btnStep->setChecked(true);
-   boxStep->setEnabled(true);
-   boxUnit->setEnabled(true);
-
-   btnMajor->setChecked(false);
-   boxMajorValue->setEnabled(false);
-   } else{
-   btnStep->setChecked(false);
-   boxStep->setEnabled(false);
-   boxUnit->setEnabled(false);
-   btnMajor->setChecked(true);
-   boxMajorValue->setEnabled(true);
-   }
-   */
+  int axis = axesList->currentRow();
+  boxStart->clear();
+  boxEnd->clear();
+  boxStep->clear();
+  boxUnit->hide();
+  boxUnit->clear();
+
+  Plot *d_plot = d_graph->plotWidget();
+  int a = mapToQwtAxis(axis);
+  const QwtScaleDiv *scDiv = d_plot->axisScaleDiv(a);
+  double start = QMIN(scDiv->lBound(), scDiv->hBound());
+  double end = QMAX(scDiv->lBound(), scDiv->hBound());
+  ScaleDraw::ScaleType type = d_graph->axisType(a);
+  if (type == ScaleDraw::Date){
+  ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(a));
+  QDateTime origin = sclDraw->dateTimeOrigin();
+
+  boxStart->hide();
+  boxStartTime->hide();
+  boxStartDateTime->show();
+  boxStartDateTime->setDisplayFormat(sclDraw->format());
+  boxStartDateTime->setDateTime(origin.addSecs((int)start));
+
+  boxEnd->hide();
+  boxEndTime->hide();
+  boxEndDateTime->show();
+  boxEndDateTime->setDisplayFormat(sclDraw->format());
+  boxEndDateTime->setDateTime(origin.addSecs((int)end));
+
+  boxUnit->show();
+  boxUnit->insertItem(tr("days"));
+  boxUnit->insertItem(tr("weeks"));
+  boxStep->setValue(d_graph->axisStep(a)/86400.0);
+  boxStep->setSingleStep(1);
+  } else if (type == ScaleDraw::Time){
+  ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(a));
+  QTime origin = sclDraw->dateTimeOrigin().time();
+
+  boxStart->hide();
+  boxStartDateTime->hide();
+  boxStartTime->show();
+  boxStartTime->setDisplayFormat(sclDraw->format());
+  boxStartTime->setTime(origin.addMSecs((int)start));
+
+  boxEnd->hide();
+  boxEndDateTime->hide();
+  boxEndTime->show();
+  boxEndTime->setDisplayFormat(sclDraw->format());
+  boxEndTime->setTime(origin.addMSecs((int)end));
+
+  boxUnit->show();
+  boxUnit->insertItem(tr("millisec."));
+  boxUnit->insertItem(tr("sec."));
+  boxUnit->insertItem(tr("min."));
+  boxUnit->insertItem(tr("hours"));
+  boxUnit->setCurrentIndex(1);
+  boxStep->setValue(d_graph->axisStep(a)/1e3);
+  boxStep->setSingleStep(1000);
+  } else {
+  boxStart->show();
+  boxStart->setValue(start);
+  boxStartTime->hide();
+  boxStartDateTime->hide();
+  boxEnd->show();
+  boxEnd->setValue(end);
+  boxEndTime->hide();
+  boxEndDateTime->hide();
+  boxStep->setValue(d_graph->axisStep(a));
+  boxStep->setSingleStep(0.1);
+  }
+
+  double range = fabs(scDiv->range());
+  QwtScaleEngine *qwtsc_engine = d_plot->axisScaleEngine(a);
+  ScaleEngine* sc_engine=dynamic_cast<ScaleEngine*>(qwtsc_engine);
+  if(sc_engine)
+  {
+  if (sc_engine->axisBreakLeft() > -DBL_MAX)
+  boxBreakStart->setValue(sc_engine->axisBreakLeft());
+  else
+  boxBreakStart->setValue(start + 0.25*range);
+
+  if (sc_engine->axisBreakRight() < DBL_MAX)
+  boxBreakEnd->setValue(sc_engine->axisBreakRight());
+  else
+  boxBreakEnd->setValue(start + 0.75*range);
+
+  boxAxesBreaks->setChecked(sc_engine->hasBreak());
+
+  boxBreakPosition->setValue(sc_engine->breakPosition());
+  boxBreakWidth->setValue(sc_engine->breakWidth());
+  boxStepBeforeBreak->setValue(sc_engine->stepBeforeBreak());
+  boxStepAfterBreak->setValue(sc_engine->stepAfterBreak());
+
+  QwtScaleTransformation::Type scale_type = sc_engine->type();
+  boxMinorTicksBeforeBreak->clear();
+  if (scale_type == QwtScaleTransformation::Log10)
+  boxMinorTicksBeforeBreak->addItems(QStringList()<<"0"<<"2"<<"4"<<"8");
+  else
+  boxMinorTicksBeforeBreak->addItems(QStringList()<<"0"<<"1"<<"4"<<"9"<<"14"<<"19");
+  boxMinorTicksBeforeBreak->setEditText(QString::number(sc_engine->minTicksBeforeBreak()));
+
+
+  boxMinorTicksAfterBreak->setEditText(QString::number(sc_engine->minTicksAfterBreak()));
+  boxLog10AfterBreak->setChecked(sc_engine->log10ScaleAfterBreak());
+  boxBreakDecoration->setChecked(sc_engine->hasBreakDecoration());
+  btnInvert->setChecked(sc_engine->testAttribute(QwtScaleEngine::Inverted));
+  boxScaleType->setCurrentItem(scale_type);
+  boxMinorValue->clear();
+  if (scale_type == QwtScaleTransformation::Log10)
+  boxMinorValue->addItems(QStringList()<<"0"<<"2"<<"4"<<"8");
+  else
+  boxMinorValue->addItems(QStringList()<<"0"<<"1"<<"4"<<"9"<<"14"<<"19");
+
+  boxMinorValue->setEditText(QString::number(d_plot->axisMaxMinor(a)));
+
+  bool isColorMap = d_graph->isColorBarEnabled(mapToQwtAxis(axis));
+  boxAxesBreaks->setEnabled (!isColorMap);
+  if (isColorMap)
+  {
+  boxAxesBreaks->setChecked (false);
+  }
+
+  }
+  else
+  {
+  boxAxesBreaks->setChecked(false);
+  boxAxesBreaks->setEnabled (false);
+  }
+
+  QwtValueList lst = scDiv->ticks (QwtScaleDiv::MajorTick);
+  boxMajorValue->setValue(lst.count());
+
+  if (d_graph->axisStep(a) != 0.0){
+  btnStep->setChecked(true);
+  boxStep->setEnabled(true);
+  boxUnit->setEnabled(true);
+
+  btnMajor->setChecked(false);
+  boxMajorValue->setEnabled(false);
+  } else{
+  btnStep->setChecked(false);
+  boxStep->setEnabled(false);
+  boxUnit->setEnabled(false);
+  btnMajor->setChecked(true);
+  boxMajorValue->setEnabled(true);
+  }
+  */
 }
 
 void AxesDialog::pageChanged(QWidget *page)
@@ -1443,104 +1286,129 @@ void AxesDialog::pageChanged(QWidget *page)
 
 void AxesDialog::updateGrid()
 {
-  if (generalDialog->currentWidget() != gridPage)
-    return;
-
+  bool antiAlias = boxAntialiseGrid->isChecked();
   switch (boxApplyGridFormat->currentIndex())
   {
-    case 0:
+  case 0:
     {
-      applyChangesToGrid(d_graph->plotWidget()->grid());
-      d_graph->replot();
-      d_graph->notifyChanges();
-    }
+      for (auto gridItr = m_Grid_list.begin(); gridItr != m_Grid_list.end(); gridItr++)
+      {
+        if ((*gridItr)->modified())
+        {
+          (*gridItr)->apply(d_graph->plotWidget()->grid(),antiAlias);
+          d_graph->replot();
+          d_graph->notifyChanges();
+        }
+      }
       break;
+    }
 
-    case 1:
+  case 1:
     {
       MultiLayer *plot = d_graph->multiLayer();
       if (!plot)
+      {
         return;
-
-      QList<Graph *> layers = plot->layersList();
-      foreach(Graph *g, layers)
+      }
+      for (auto gridItr = m_Grid_list.begin(); gridItr != m_Grid_list.end(); gridItr++)
       {
-        if (g->isPiePlot())
-          continue;
-
-        applyChangesToGrid(g->plotWidget()->grid());
-        g->replot();
+        if ((*gridItr)->modified())
+        {
+          QList<Graph *> layers = plot->layersList();
+          foreach(Graph *g, layers)
+          {
+            if (g->isPiePlot())
+            {
+              continue;
+            }
+            (*gridItr)->apply(g->plotWidget()->grid(),antiAlias);
+            g->replot();
+          }
+        }
       }
       plot->applicationWindow()->modifiedProject();
-    }
       break;
+    }
 
-    case 2:
+  case 2:
     {
       if (!d_app)
+      {
         return;
+      }
 
-      QList<MdiSubWindow *> windows = d_app->windowsList();
-      foreach(MdiSubWindow *w, windows)
+      for (auto gridItr = m_Grid_list.begin(); gridItr != m_Grid_list.end(); gridItr++)
       {
-        if (w->isA("MultiLayer"))
+        if ((*gridItr)->modified())
         {
-          QList<Graph *> layers = (dynamic_cast<MultiLayer*>(w))->layersList();
-          foreach(Graph *g, layers)
+          QList<MdiSubWindow *> windows = d_app->windowsList();
+          for (auto gridItr = m_Grid_list.begin(); gridItr != m_Grid_list.end(); gridItr++)
           {
-            if (g->isPiePlot())
-              continue;
-            applyChangesToGrid(g->plotWidget()->grid());
-            g->replot();
+            foreach(MdiSubWindow *w, windows)
+            {
+              if (w->isA("MultiLayer"))
+              {
+                QList<Graph *> layers = (dynamic_cast<MultiLayer*>(w))->layersList();
+                foreach(Graph *g, layers)
+                {
+                  if (g->isPiePlot())
+                  {
+                    continue;
+                  }
+                  (*gridItr)->apply(g->plotWidget()->grid(),antiAlias);
+                  g->replot();
+                }
+              }
+            }
           }
         }
       }
       d_app->modifiedProject();
-    }
       break;
+    }
   }
 }
 
-void AxesDialog::applyChangesToGrid(Grid *grid)
-{
-  if (!grid)
-    return;
-
-  if (axesGridList->currentRow() == 1)
-  {
-    grid->enableX(boxMajorGrid->isChecked());
-    grid->enableXMin(boxMinorGrid->isChecked());
-
-    grid->setMajPenX(
-        QPen(ColorBox::color(boxColorMajor->currentIndex()),
-            boxWidthMajor->value(),
-            Graph::getPenStyle(boxTypeMajor->currentIndex())));
-    grid->setMinPenX(
-        QPen(ColorBox::color(boxColorMinor->currentIndex()),
-            boxWidthMinor->value(),
-            Graph::getPenStyle(boxTypeMinor->currentIndex())));
-  }
-  else
-  {
-    grid->enableY(boxMajorGrid->isChecked());
-    grid->enableYMin(boxMinorGrid->isChecked());
-
-    grid->setMajPenY(
-        QPen(ColorBox::color(boxColorMajor->currentIndex()),
-            boxWidthMajor->value(),
-            Graph::getPenStyle(boxTypeMajor->currentIndex())));
-    grid->setMinPenY(
-        QPen(ColorBox::color(boxColorMinor->currentIndex()),
-            boxWidthMinor->value(),
-            Graph::getPenStyle(boxTypeMinor->currentIndex())));
-  }
-
-  grid->enableZeroLineX(boxXLine->isChecked());
-  grid->enableZeroLineY(boxYLine->isChecked());
-  grid->setAxis(boxGridXAxis->currentIndex() + 2, boxGridYAxis->currentIndex());
-  grid->setRenderHint(QwtPlotItem::RenderAntialiased,
-      boxAntialiseGrid->isChecked());
-}
+//void AxesDialog::applyChangesToGrid(Grid *grid)
+//{
+//  if (!grid)
+//    return;
+//
+//  if (axesGridList->currentRow() == 1)
+//  {
+//    grid->enableX(boxMajorGrid->isChecked());
+//    grid->enableXMin(boxMinorGrid->isChecked());
+//
+//    grid->setMajPenX(
+//        QPen(ColorBox::color(boxColorMajor->currentIndex()),
+//            boxWidthMajor->value(),
+//            Graph::getPenStyle(boxTypeMajor->currentIndex())));
+//    grid->setMinPenX(
+//        QPen(ColorBox::color(boxColorMinor->currentIndex()),
+//            boxWidthMinor->value(),
+//            Graph::getPenStyle(boxTypeMinor->currentIndex())));
+//  }
+//  else
+//  {
+//    grid->enableY(boxMajorGrid->isChecked());
+//    grid->enableYMin(boxMinorGrid->isChecked());
+//
+//    grid->setMajPenY(
+//        QPen(ColorBox::color(boxColorMajor->currentIndex()),
+//            boxWidthMajor->value(),
+//            Graph::getPenStyle(boxTypeMajor->currentIndex())));
+//    grid->setMinPenY(
+//        QPen(ColorBox::color(boxColorMinor->currentIndex()),
+//            boxWidthMinor->value(),
+//            Graph::getPenStyle(boxTypeMinor->currentIndex())));
+//  }
+//
+//  grid->enableZeroLineX(boxXLine->isChecked());
+//  grid->enableZeroLineY(boxYLine->isChecked());
+//  grid->setAxis(boxGridXAxis->currentIndex() + 2, boxGridYAxis->currentIndex());
+//  grid->setRenderHint(QwtPlotItem::RenderAntialiased,
+//      boxAntialiseGrid->isChecked());
+//}
 
 
 void AxesDialog::changeMinorTicksLength(int minLength)
@@ -1601,193 +1469,197 @@ void AxesDialog::pickCanvasFrameColor()
   d_graph->setCanvasFrame(boxFrameWidth->value(), boxFrameColor->color());
 }
 
-void AxesDialog::majorGridEnabled(bool on)
-{
-  boxTypeMajor->setEnabled(on);
-  boxColorMajor->setEnabled(on);
-  boxWidthMajor->setEnabled(on);
-
-  updateGrid();
-}
-
-void AxesDialog::minorGridEnabled(bool on)
-{
-  boxTypeMinor->setEnabled(on);
-  boxColorMinor->setEnabled(on);
-  boxWidthMinor->setEnabled(on);
-
-  updateGrid();
-}
+//void AxesDialog::majorGridEnabled(bool on)
+//{
+//  boxTypeMajor->setEnabled(on);
+//  boxColorMajor->setEnabled(on);
+//  boxWidthMajor->setEnabled(on);
+//
+//  updateGrid();
+//}
+//
+//void AxesDialog::minorGridEnabled(bool on)
+//{
+//  boxTypeMinor->setEnabled(on);
+//  boxColorMinor->setEnabled(on);
+//  boxWidthMinor->setEnabled(on);
+//
+//  updateGrid();
+//}
 
 bool AxesDialog::apply()
 {
-/*
-auto anaxis = axesPrefsArea->itemAt(mapToQwtAxis(axesTitlesList->currentRow()));
-auto awidget = anaxis->widget();
+  /*
+  auto anaxis = axesPrefsArea->itemAt(mapToQwtAxis(axesTitlesList->currentRow()));
+  auto awidget = anaxis->widget();
 
-  if (axesPrefsArea->currentWidget()==dynamic_cast<AxisAxisDetails*>(awidget))
+  if (axesPrefsArea->currentWidget()==dynamic_cast<AxisDetails*>(awidget))
   {
-    AxisAxisDetails *currentaxis = dynamic_cast<AxisAxisDetails*>(awidget);
+  AxisDetails *currentaxis = dynamic_cast<AxisDetails*>(awidget);
   }
   */
-  for (auto axisItr = m_Axis_map.begin(); axisItr != m_Axis_map.end(); axisItr++)
+  updateGrid();
+  for (auto axisItr = m_Axis_list.begin(); axisItr != m_Axis_list.end(); axisItr++)
+  {
+    (*axisItr)->apply();
+  }
+  for (auto scaleItr = m_Scale_list.begin(); scaleItr != m_Scale_list.end(); scaleItr++)
   {
-    AxisAxisDetails *axis = axisItr.value();
-    axis->apply();
+    (*scaleItr)->apply();
   }
-//this is gettign rewritten to check and press ALL tabs when apply or ok is pressed
+  //this is gettign rewritten to check and press ALL tabs when apply or ok is pressed
 
   /*
 
   if (generalDialog->currentWidget()==dynamic_cast<QWidget*>(scalesPage))
   {
 
-    int a = mapToQwtAxis(axesList->currentRow());
-    ScaleDraw::ScaleType type = d_graph->axisType(a);
-
-    double start = 0.0, end = 0.0;
-    if (type == ScaleDraw::Date){
-      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(a));
-      QDateTime origin = sclDraw->dateTimeOrigin();
-      start = (double)origin.secsTo(boxStartDateTime->dateTime());
-      end = (double)origin.secsTo(boxEndDateTime->dateTime());
-    } else if (type == ScaleDraw::Time){
-      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(a));
-      QTime origin = sclDraw->dateTimeOrigin().time();
-      start = (double)origin.msecsTo(boxStartTime->time());
-      end = (double)origin.msecsTo(boxEndTime->time());
-    } else {
-      start = boxStart->value();
-      end = boxEnd->value();
-    }
+  int a = mapToQwtAxis(axesList->currentRow());
+  ScaleDraw::ScaleType type = d_graph->axisType(a);
+
+  double start = 0.0, end = 0.0;
+  if (type == ScaleDraw::Date){
+  ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(a));
+  QDateTime origin = sclDraw->dateTimeOrigin();
+  start = (double)origin.secsTo(boxStartDateTime->dateTime());
+  end = (double)origin.secsTo(boxEndDateTime->dateTime());
+  } else if (type == ScaleDraw::Time){
+  ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(a));
+  QTime origin = sclDraw->dateTimeOrigin().time();
+  start = (double)origin.msecsTo(boxStartTime->time());
+  end = (double)origin.msecsTo(boxEndTime->time());
+  } else {
+  start = boxStart->value();
+  end = boxEnd->value();
+  }
 
-    if (start >= end){
-      QMessageBox::warning(this,tr("MantidPlot - Error"),
-        "Invalid option to set the 'From' greater than 'To' for the scale settings.\nOperation aborted! ");
-      return false;
-    }
+  if (start >= end){
+  QMessageBox::warning(this,tr("MantidPlot - Error"),
+  "Invalid option to set the 'From' greater than 'To' for the scale settings.\nOperation aborted! ");
+  return false;
+  }
 
-    double step = 0.0;
-    if (btnStep->isChecked()){
-      step = boxStep->value();
-      if (type == ScaleDraw::Time){
-        switch (boxUnit->currentIndex())
-        {
-        case 0:
-          break;
-        case 1:
-          step *= 1e3;
-          break;
-        case 2:
-          step *= 6e4;
-          break;
-        case 3:
-          step *= 36e5;
-          break;
-        }
-      } else if (type == ScaleDraw::Date){
-        switch (boxUnit->currentIndex())
-        {
-        case 0:
-          step *= 86400;
-          break;
-        case 1:
-          step *= 604800;
-          break;
-        }
-      }
-    }
+  double step = 0.0;
+  if (btnStep->isChecked()){
+  step = boxStep->value();
+  if (type == ScaleDraw::Time){
+  switch (boxUnit->currentIndex())
+  {
+  case 0:
+  break;
+  case 1:
+  step *= 1e3;
+  break;
+  case 2:
+  step *= 6e4;
+  break;
+  case 3:
+  step *= 36e5;
+  break;
+  }
+  } else if (type == ScaleDraw::Date){
+  switch (boxUnit->currentIndex())
+  {
+  case 0:
+  step *= 86400;
+  break;
+  case 1:
+  step *= 604800;
+  break;
+  }
+  }
+  }
 
-    double breakLeft = -DBL_MAX, breakRight = DBL_MAX;
-    if (boxAxesBreaks->isChecked()){
-      breakLeft = qMin(boxBreakStart->value(), boxBreakEnd->value());
-      breakRight = qMax(boxBreakStart->value(), boxBreakEnd->value());
-    }
-    d_graph->setScale(a, start, end, step, boxMajorValue->value(), boxMinorValue->currentText().toInt(),
-      boxScaleType->currentIndex(), btnInvert->isChecked(), breakLeft, breakRight,
-      boxBreakPosition->value(), boxStepBeforeBreak->value(), boxStepAfterBreak->value(),
-      boxMinorTicksBeforeBreak->currentText().toInt(), boxMinorTicksAfterBreak->currentText().toInt(),
-      boxLog10AfterBreak->isChecked(), boxBreakWidth->value(), boxBreakDecoration->isChecked());
-    d_graph->notifyChanges();
+  double breakLeft = -DBL_MAX, breakRight = DBL_MAX;
+  if (boxAxesBreaks->isChecked()){
+  breakLeft = qMin(boxBreakStart->value(), boxBreakEnd->value());
+  breakRight = qMax(boxBreakStart->value(), boxBreakEnd->value());
+  }
+  d_graph->setScale(a, start, end, step, boxMajorValue->value(), boxMinorValue->currentText().toInt(),
+  boxScaleType->currentIndex(), btnInvert->isChecked(), breakLeft, breakRight,
+  boxBreakPosition->value(), boxStepBeforeBreak->value(), boxStepAfterBreak->value(),
+  boxMinorTicksBeforeBreak->currentText().toInt(), boxMinorTicksAfterBreak->currentText().toInt(),
+  boxLog10AfterBreak->isChecked(), boxBreakWidth->value(), boxBreakDecoration->isChecked());
+  d_graph->notifyChanges();
   }
   else if (generalDialog->currentWidget() == gridPage)
-    updateGrid();
+  updateGrid();
   else if (generalDialog->currentWidget() == dynamic_cast<QWidget*>(axesPage))
   {
-    int axis = mapToQwtAxisId();
-    int format = cmbAxisType->currentIndex();
+  int axis = mapToQwtAxisId();
+  int format = cmbAxisType->currentIndex();
 
-    int baseline = spnBaseline->value();
-    axesBaseline[axis] = baseline;
+  int baseline = spnBaseline->value();
+  axesBaseline[axis] = baseline;
 
-    QString formatInfo = QString::null;
-    if (format == ScaleDraw::Numeric)
-    {
-      if (boxShowFormula->isChecked())
-      {
-        QString formula = txtFormula->text().lower();
-        try
-        {
-          double value = 1.0;
-          MyParser parser;
-          if (formula.contains("x"))
-            parser.DefineVar("x", &value);
-          else if (formula.contains("y"))
-            parser.DefineVar("y", &value);
-          parser.SetExpr(formula.ascii());
-          parser.Eval();
-        }
-        catch(mu::ParserError &e)
-        {
-          QMessageBox::critical(this, tr("MantidPlot - Formula input error"), QString::fromStdString(e.GetMsg())+"\n"+
-            tr("Valid variables are 'x' for Top/Bottom axes and 'y' for Left/Right axes!"));
-          txtFormula->setFocus();
-          m_updatePlot=false;
-          return m_updatePlot;
-          //return false;
-        }
-      }
-    } else if (format == ScaleDraw::Time || format == ScaleDraw::Date){
-      QStringList lst = d_graph->axisFormatInfo(axis).split(";", QString::KeepEmptyParts);
-      if ((int)lst.count() >= 2)
-        lst[1] = cmbFormat->currentText();
-      formatInfo = lst.join(";");
-    } else if (format == ScaleDraw::Day || format == ScaleDraw::Month)
-      formatInfo = QString::number(cmbFormat->currentIndex());
-    else if (format == ScaleDraw::ColHeader)
-      formatInfo = cmbTableName->currentText();
-    else
-      formatInfo = cmbColName->currentText();
-
-    if (d_graph->axisTitle(axis) != txtTitle->text())
-      d_graph->setAxisTitle(axis, txtTitle->text());
-
-    if (axis == QwtPlot::xBottom)
-      xBottomLabelsRotation=spnAngle->value();
-    else if (axis == QwtPlot::xTop)
-      xTopLabelsRotation=spnAngle->value();
-
-    QString formula = txtFormula->text();
-    if (!boxShowFormula->isChecked())
-      formula = QString();
-    showAxis(axis, format, formatInfo, boxShowAxis->isChecked(), cmbMajorTicksType->currentIndex(), cmbMinorTicksType->currentIndex(),
-      grpShowLabels->isChecked(), cbtnAxisColor->color(), cmbFormat->currentIndex(),
-      spnPrecision->value(), spnAngle->value(), baseline, formula, cbtnAxisNumColor->color());
+  QString formatInfo = QString::null;
+  if (format == ScaleDraw::Numeric)
+  {
+  if (boxShowFormula->isChecked())
+  {
+  QString formula = txtFormula->text().lower();
+  try
+  {
+  double value = 1.0;
+  MyParser parser;
+  if (formula.contains("x"))
+  parser.DefineVar("x", &value);
+  else if (formula.contains("y"))
+  parser.DefineVar("y", &value);
+  parser.SetExpr(formula.ascii());
+  parser.Eval();
+  }
+  catch(mu::ParserError &e)
+  {
+  QMessageBox::critical(this, tr("MantidPlot - Formula input error"), QString::fromStdString(e.GetMsg())+"\n"+
+  tr("Valid variables are 'x' for Top/Bottom axes and 'y' for Left/Right axes!"));
+  txtFormula->setFocus();
+  m_updatePlot=false;
+  return m_updatePlot;
+  //return false;
+  }
+  }
+  } else if (format == ScaleDraw::Time || format == ScaleDraw::Date){
+  QStringList lst = d_graph->axisFormatInfo(axis).split(";", QString::KeepEmptyParts);
+  if ((int)lst.count() >= 2)
+  lst[1] = cmbFormat->currentText();
+  formatInfo = lst.join(";");
+  } else if (format == ScaleDraw::Day || format == ScaleDraw::Month)
+  formatInfo = QString::number(cmbFormat->currentIndex());
+  else if (format == ScaleDraw::ColHeader)
+  formatInfo = cmbTableName->currentText();
+  else
+  formatInfo = cmbColName->currentText();
+
+  if (d_graph->axisTitle(axis) != txtTitle->text())
+  d_graph->setAxisTitle(axis, txtTitle->text());
+
+  if (axis == QwtPlot::xBottom)
+  xBottomLabelsRotation=spnAngle->value();
+  else if (axis == QwtPlot::xTop)
+  xTopLabelsRotation=spnAngle->value();
+
+  QString formula = txtFormula->text();
+  if (!boxShowFormula->isChecked())
+  formula = QString();
+  showAxis(axis, format, formatInfo, boxShowAxis->isChecked(), cmbMajorTicksType->currentIndex(), cmbMinorTicksType->currentIndex(),
+  grpShowLabels->isChecked(), cbtnAxisColor->color(), cmbFormat->currentIndex(),
+  spnPrecision->value(), spnAngle->value(), baseline, formula, cbtnAxisNumColor->color());
   }
   else if (generalDialog->currentWidget()==dynamic_cast<QWidget*>(generalPage)){
-    d_graph->setAxesLinewidth(boxAxesLinewidth->value());
-    d_graph->changeTicksLength(boxMinorTicksLength->value(), boxMajorTicksLength->value());
-    if (boxFramed->isChecked())
-      d_graph->setCanvasFrame(boxFrameWidth->value(), boxFrameColor->color());
-    else
-      d_graph->setCanvasFrame(0);
-    d_graph->drawAxesBackbones(boxBackbones->isChecked());
-    d_graph->replot();
+  d_graph->setAxesLinewidth(boxAxesLinewidth->value());
+  d_graph->changeTicksLength(boxMinorTicksLength->value(), boxMajorTicksLength->value());
+  if (boxFramed->isChecked())
+  d_graph->setCanvasFrame(boxFrameWidth->value(), boxFrameColor->color());
+  else
+  d_graph->setCanvasFrame(0);
+  d_graph->drawAxesBackbones(boxBackbones->isChecked());
+  d_graph->replot();
   }
   m_updatePlot=true;
   return m_updatePlot;
   //return true;
-   */
+  */
   //Disablign this code for now as it needs rewriting and probably renaming
   return true;
 }
\ No newline at end of file
diff --git a/Code/Mantid/MantidPlot/src/AxesDialog.h b/Code/Mantid/MantidPlot/src/AxesDialog.h
index f6004898be56dee23f4b29fb673830f4a9c5b73b..d5b371c98e0e0955c1ac3db3d886c8871d16ebb9 100644
--- a/Code/Mantid/MantidPlot/src/AxesDialog.h
+++ b/Code/Mantid/MantidPlot/src/AxesDialog.h
@@ -33,8 +33,9 @@
 #include <QLabel>
 #include <QList>
 #include <QTextEdit>
-#include "AxisAxisDetails.h"
-#include "ScaleAxisDetails.h"
+#include "AxisDetails.h"
+#include "ScaleDetails.h"
+#include "GridDetails.h"
 //#include "MantidKernel/Logger.h"
 
 class QTimeEdit;
@@ -77,7 +78,7 @@ class AxesDialog: public QDialog
      * @param fl :: window flags
      */
     AxesDialog(ApplicationWindow* app, Graph* g, Qt::WFlags fl = 0);
-
+    virtual ~AxesDialog();
   public slots:
     void setCurrentScale(int axisPos);
     void showGeneralPage();
@@ -95,9 +96,9 @@ class AxesDialog: public QDialog
   private slots:
     bool apply();
     void updateScale();
-    void majorGridEnabled(bool on);
-    void minorGridEnabled(bool on);
-    void showGridOptions(int axis);
+    //void majorGridEnabled(bool on);
+    //void minorGridEnabled(bool on);
+    //void showGridOptions(int axis);
     void accept();
     void drawFrame(bool framed);
     int mapToQwtAxis(int axis);
@@ -121,13 +122,13 @@ class AxesDialog: public QDialog
     //! generate UI for the general page
     void initGeneralPage();
     //! Modifies the grid
-    void applyChangesToGrid(Grid *grid);
+    //void applyChangesToGrid(Grid *grid);
     void setGraph(Graph *g);
 
     ApplicationWindow* d_app;
     Graph *d_graph;
     //QFrame *scalePrefsArea, *axesPrefsArea;
-	  QStackedLayout *scalePrefsArea, *axesPrefsArea;
+	  QStackedLayout *scalePrefsArea, *axesPrefsArea, *gridPrefsArea;
 //common widgets
     QPushButton* buttonApply, *buttonOk, *buttonCancel;
     QTabWidget* generalDialog;
@@ -135,28 +136,15 @@ class AxesDialog: public QDialog
 
     QHBoxLayout *scalesLayout, *axesLayout;
     QListWidget* axesList;
-    QCheckBox* boxMajorGrid;
-    QCheckBox* boxMinorGrid;
-    QComboBox* boxTypeMajor;
-    ColorBox* boxColorMinor;
-    ColorBox* boxColorMajor;
     ColorButton *boxCanvasColor;
-    DoubleSpinBox* boxWidthMajor;
-    QComboBox* boxTypeMinor;
-    DoubleSpinBox* boxWidthMinor;
-    QCheckBox* boxXLine;
-    QCheckBox* boxYLine;
     QListWidget* axesGridList;
     QListWidget* axesTitlesList;
 
     QSpinBox *boxFrameWidth, *boxAxesLinewidth;
-    QCheckBox *boxBackbones;
+    QCheckBox *boxBackbones, *boxAntialiseGrid;
     QGroupBox *boxFramed;
     QSpinBox *boxMajorTicksLength, *boxMinorTicksLength, *boxBorderWidth;
-    QComboBox *boxGridXAxis, *boxGridYAxis;
     ColorButton *boxFrameColor;
-
-    QCheckBox *boxAntialiseGrid;
     QComboBox *boxApplyGridFormat;
     //! Last selected tab
     QWidget* lastPage;
@@ -167,9 +155,11 @@ class AxesDialog: public QDialog
   private:
 
     ///A map of QListWidgetItem objects to their Axis details objects
-    QMap<QListWidgetItem*, AxisAxisDetails*> m_Axis_map;
+    QList<AxisDetails*> m_Axis_list;
+    ///A map of QListWidgetItem objects to their Scale details objects
+    QList<ScaleDetails*> m_Scale_list;
     ///A map of QListWidgetItem objects to their Scale details objects
-    QMap<QListWidgetItem*, ScaleAxisDetails*> m_Scale_map;
+    QList<GridDetails*> m_Grid_list;
 	int oldaxis;
 };
 
diff --git a/Code/Mantid/MantidPlot/src/AxisAxisDetails.cpp b/Code/Mantid/MantidPlot/src/AxisDetails.cpp
similarity index 84%
rename from Code/Mantid/MantidPlot/src/AxisAxisDetails.cpp
rename to Code/Mantid/MantidPlot/src/AxisDetails.cpp
index 54dcac6139f065675cf5e33f24c0be47f155de43..49c722a5ccd5c4b1d252180e0d999dd2c88d4781 100644
--- a/Code/Mantid/MantidPlot/src/AxisAxisDetails.cpp
+++ b/Code/Mantid/MantidPlot/src/AxisDetails.cpp
@@ -2,7 +2,7 @@
 // Includes
 //--------------------------
 
-#include "AxisAxisDetails.h"
+#include "AxisDetails.h"
 #include "ApplicationWindow.h"
 #include "DoubleSpinBox.h"
 #include <qwt_scale_widget.h>
@@ -13,8 +13,8 @@
 
 #include <QWidget>
 #include <QSpinBox>
-#include <QCheckBox>
 #include <QRadioButton>
+#include <QCheckBox>
 #include <QGroupBox>
 #include <QComboBox>
 #include <QLabel>
@@ -33,7 +33,7 @@
 #include <ColorButton.h>
 #include <QFontDialog>
 
-AxisAxisDetails::AxisAxisDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent) : QWidget(parent)
+AxisDetails::AxisDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent) : QWidget(parent)
 {
   d_app = app;
   d_graph = graph;
@@ -43,7 +43,6 @@ AxisAxisDetails::AxisAxisDetails(ApplicationWindow* app, Graph* graph, int mappe
   QHBoxLayout * topLayout = new QHBoxLayout();
 
   chkShowAxis = new QCheckBox(tr("Show"));
-  //chkShowAxis->setChecked(true);
   topLayout->addWidget(chkShowAxis);
 
   grpTitle = new QGroupBox(tr("Title"));
@@ -195,12 +194,12 @@ AxisAxisDetails::AxisAxisDetails(ApplicationWindow* app, Graph* graph, int mappe
   initWidgets();
 }
 
-AxisAxisDetails::~AxisAxisDetails()
+AxisDetails::~AxisDetails()
 {
 
 }
 
-void AxisAxisDetails::initWidgets()
+void AxisDetails::initWidgets()
 {
   if (m_initialised)
   {
@@ -277,20 +276,17 @@ void AxisAxisDetails::initWidgets()
 
     QString formula = d_graph->axisFormula(m_mappedaxis);
     txtFormula->setFixedWidth(150);
-    //change this, txtFormula should always be visible if it's numeric, but disabled if the checkbox is out and shouldn't clear
+
     if (!formula.isEmpty())
     {
       chkShowFormula->setChecked(true);
       txtFormula->setEnabled(true);
-      //txtFormula->show();
       txtFormula->setText(formula);
     }
     else
     {
       chkShowFormula->setChecked(false);
       txtFormula->setEnabled(false);
-      //txtFormula->clear();
-      //txtFormula->hide();
     }
     showAxis();
 
@@ -326,18 +322,87 @@ void AxisAxisDetails::initWidgets()
   }
 }
 
-void AxisAxisDetails::setLabelFont()
+void AxisDetails::setModified()
 {
-  bool okF;
-  QFont oldFont = d_graph->axisTitleFont(m_mappedaxis);
-  QFont fnt = QFontDialog::getFont(&okF, oldFont, this);
-  if (okF && fnt != oldFont)
+  m_modified = true;
+}
+
+bool AxisDetails::valid()
+{
+  Table *w = d_app->table(cmbColName->currentText());
+  return m_initialised && d_app && d_graph && !((cmbAxisType->currentIndex() == ScaleDraw::Text || cmbAxisType->currentIndex() == ScaleDraw::ColHeader) && !w);
+}
+
+void AxisDetails::apply()
+{
+  if (m_modified && valid())
   {
-    m_labelFont = fnt;
+    Table *w = d_app->table(cmbColName->currentText());
+
+    QString formula = txtFormula->text();
+    if (!chkShowFormula->isChecked())
+    {
+      formula = QString();
+    }
+
+    int type = cmbAxisType->currentIndex();
+    QString formatInfo = cmbColName->currentText();
+    if (type == ScaleDraw::Day || type == ScaleDraw::Month)
+    {
+      formatInfo = QString::number(cmbFormat->currentIndex());
+    }
+    else if (type == ScaleDraw::Time || type == ScaleDraw::Date)
+    {
+      QStringList lst = d_graph->axisFormatInfo(m_mappedaxis).split(";", QString::SkipEmptyParts);
+      lst[1] = cmbFormat->currentText();
+      formatInfo = lst.join(";");
+    }
+
+    d_graph->showAxis(m_mappedaxis, cmbAxisType->currentIndex(), formatInfo, w, chkShowAxis->isChecked(), cmbMajorTicksType->currentIndex(),
+      cmbMinorTicksType->currentIndex(), grpShowLabels->isChecked(), cbtnAxisColor->color(), cmbFormat->currentIndex(), spnPrecision->value(), spnAngle->value(), spnBaseline->value(), formula,
+      cbtnAxisNumColor->color());
+    d_graph->setAxisTitle(m_mappedaxis, txtTitle->text());
+    d_graph->setAxisFont(m_mappedaxis, m_scaleFont);
+    d_graph->setAxisTitleFont(m_mappedaxis, m_labelFont);
+    m_modified = false;
+  }
+}
+
+void AxisDetails::showAxis()
+{
+  bool shown = chkShowAxis->isChecked();
+  bool labels = grpShowLabels->isChecked();
+
+  grpShowLabels->setEnabled(shown);
+  grpAxisDisplay->setEnabled(shown);
+  grpTitle->setEnabled(shown);
+
+  if (shown)
+  {
+    cmbFormat->setEnabled(labels);
+    cmbColName->setEnabled(labels);
+    chkShowFormula->setEnabled(labels);
+    txtFormula->setEnabled(labels);
+
+    //this should so the work of the below IF but on one line and slightly more efficently as i assume setDisabled negates that given to it
+    spnAngle->setEnabled((m_mappedaxis == QwtPlot::xBottom || m_mappedaxis == QwtPlot::xTop) && labels);
+    /*
+    if (m_mappedaxis == QwtPlot::xBottom || m_mappedaxis == QwtPlot::xTop)
+    {
+    spnAngle->setEnabled(labels);
+    }
+    else
+    {
+    spnAngle->setDisabled(true);
+    }
+    */
+    spnPrecision->setEnabled(labels && (cmbAxisType->currentIndex() == ScaleDraw::Numeric) && (cmbFormat->currentIndex() != 0));
+
+    enableFormulaBox();
   }
 }
 
-void AxisAxisDetails::setAxisFormatOptions(int type)
+void AxisDetails::setAxisFormatOptions(int type)
 {
   cmbFormat->clear();
   cmbFormat->setEditable(false);
@@ -464,133 +529,36 @@ void AxisAxisDetails::setAxisFormatOptions(int type)
   }
 }
 
-void AxisAxisDetails::showAxis()
-{
-  //this is needed
-  bool shown = chkShowAxis->isChecked();
-  bool labels = grpShowLabels->isChecked();
-
-  //this needs reducing and the parenting feature can take care of most of this
-
-  //it should jsut need these three
-  grpShowLabels->setEnabled(shown);
-  grpAxisDisplay->setEnabled(shown);
-  grpTitle->setEnabled(shown);
-
-  /*
-  txtTitle->setEnabled(shown);
-  cbtnAxisColor->setEnabled(shown);
-  cbtnAxisNumColor->setEnabled(shown);
-  btnAxesFont->setEnabled(shown);
-  cmbMajorTicksType->setEnabled(shown);
-  cmbMinorTicksType->setEnabled(shown);
-  cmbAxisType->setEnabled(shown);
-  spnBaseline->setEnabled(shown);
-  */
-
-  if (shown)
-  {
-    //all of these previously relied on shown
-    cmbFormat->setEnabled(labels);
-    cmbColName->setEnabled(labels);
-    chkShowFormula->setEnabled(labels);
-    txtFormula->setEnabled(labels);
-
-    //this should so the work of the below IF but on one line and slightly more efficently as i assume setDisabled negates that given to it
-    spnAngle->setEnabled((m_mappedaxis == QwtPlot::xBottom || m_mappedaxis == QwtPlot::xTop) && labels);
-    /*
-    if (m_mappedaxis == QwtPlot::xBottom || m_mappedaxis == QwtPlot::xTop)
-    {
-    spnAngle->setEnabled(labels);
-    }
-    else
-    {
-    spnAngle->setDisabled(true);
-    }
-    */
-    spnPrecision->setEnabled(labels && (cmbAxisType->currentIndex() == ScaleDraw::Numeric) && (cmbFormat->currentIndex() != 0));
-
-    if (chkShowFormula->isChecked())
-    {
-      txtFormula->setEnabled(true);
-      //txtFormula->show();
-    }
-    else
-    {
-      txtFormula->setEnabled(false);
-      //txtFormula->hide();
-    }
-  }
-}
-
-void AxisAxisDetails::enableFormulaBox()
+void AxisDetails::enableFormulaBox()
 {
   if (chkShowFormula->isChecked())
   {
     txtFormula->setEnabled(true);
-    //txtFormula->show();
   }
   else
   {
     txtFormula->setEnabled(false);
-    //txtFormula->hide();
   }
 }
 
-void AxisAxisDetails::setScaleFont()
+void AxisDetails::setLabelFont()
 {
   bool okF;
-  QFont oldFont = d_graph->axisFont(m_mappedaxis);
+  QFont oldFont = d_graph->axisTitleFont(m_mappedaxis);
   QFont fnt = QFontDialog::getFont(&okF, oldFont, this);
   if (okF && fnt != oldFont)
   {
-    m_scaleFont = fnt;
-  }  
-}
-
-void AxisAxisDetails::setModified()
-{
-  m_modified = true;
-}
-
-//to be merged into an apply method
-bool AxisAxisDetails::valid()
-{
-  Table *w = d_app->table(cmbColName->currentText());
-  return !((cmbAxisType->currentIndex() == ScaleDraw::Text || cmbAxisType->currentIndex() == ScaleDraw::ColHeader) && !w);
+    m_labelFont = fnt;
+  }
 }
 
-void AxisAxisDetails::apply()
+void AxisDetails::setScaleFont()
 {
-  if (!(d_app && d_graph && valid()) || !m_modified)
-    return;
-
-  Table *w = d_app->table(cmbColName->currentText());
-
-  QString formula = txtFormula->text();
-  if (!chkShowFormula->isChecked())
-  {
-    formula = QString();
-  }
-
-  int type = cmbAxisType->currentIndex();
-  QString formatInfo = cmbColName->currentText();
-  if (type == ScaleDraw::Day || type == ScaleDraw::Month)
-  {
-    formatInfo = QString::number(cmbFormat->currentIndex());
-  }
-  else if (type == ScaleDraw::Time || type == ScaleDraw::Date)
+  bool okF;
+  QFont oldFont = d_graph->axisFont(m_mappedaxis);
+  QFont fnt = QFontDialog::getFont(&okF, oldFont, this);
+  if (okF && fnt != oldFont)
   {
-    QStringList lst = d_graph->axisFormatInfo(m_mappedaxis).split(";", QString::SkipEmptyParts);
-    lst[1] = cmbFormat->currentText();
-    formatInfo = lst.join(";");
-  }
-
-  d_graph->showAxis(m_mappedaxis, cmbAxisType->currentIndex(), formatInfo, w, chkShowAxis->isChecked(), cmbMajorTicksType->currentIndex(),
-    cmbMinorTicksType->currentIndex(), grpShowLabels->isChecked(), cbtnAxisColor->color(), cmbFormat->currentIndex(), spnPrecision->value(), spnAngle->value(), spnBaseline->value(), formula,
-    cbtnAxisNumColor->color());
-  d_graph->setAxisTitle(m_mappedaxis, txtTitle->text());
-  d_graph->setAxisFont(m_mappedaxis, m_scaleFont);
-  d_graph->setAxisTitleFont(m_mappedaxis, m_labelFont);
-  m_modified = false;
+    m_scaleFont = fnt;
+  }  
 }
\ No newline at end of file
diff --git a/Code/Mantid/MantidPlot/src/AxisAxisDetails.h b/Code/Mantid/MantidPlot/src/AxisDetails.h
similarity index 91%
rename from Code/Mantid/MantidPlot/src/AxisAxisDetails.h
rename to Code/Mantid/MantidPlot/src/AxisDetails.h
index 2fe3370e7d0ed947563ac9b91b6f8ddafa4d8980..9d868c33f457819d36c39c1233b6dc686e9b3d91 100644
--- a/Code/Mantid/MantidPlot/src/AxisAxisDetails.h
+++ b/Code/Mantid/MantidPlot/src/AxisDetails.h
@@ -25,8 +25,8 @@ File change history is stored at: <https://github.com/mantidproject/mantid>
 Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 
-#ifndef AXISAXISDETAILS_H_
-#define AXISAXISDETAILS_H_
+#ifndef AXISDETAILS_H_
+#define AXISDETAILS_H_
 
 #include <QWidget>
 #include <QList>
@@ -48,15 +48,15 @@ class Graph;
 class TextFormatButtons;
 class ColorButton;
 
-class AxisAxisDetails: public QWidget
+class AxisDetails: public QWidget
 {
   Q_OBJECT
     //details for each axis in the Axis tab
 public:
-  AxisAxisDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent = 0); // populate and fill in with existing data
-  virtual ~AxisAxisDetails();
+  AxisDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent = 0); // populate and fill in with existing data
+  virtual ~AxisDetails();
   void initWidgets();
-  bool modified();
+  bool modified(){return m_modified;}
   void apply();
   bool valid();
 
@@ -110,4 +110,4 @@ QFont m_labelFont, m_scaleFont;
   void updateLabelsFormat(int);
   void setBaselineDist(int);
 };
-#endif /* AXISAXISDETAILS_H_ */
\ No newline at end of file
+#endif /* AxisDetails_H_ */
\ No newline at end of file
diff --git a/Code/Mantid/MantidPlot/src/GridDetails.cpp b/Code/Mantid/MantidPlot/src/GridDetails.cpp
index 0fb65e1546fc84059401b9f10e9c945d2ce202ca..1689fbbe621a297459dd77590c45188bae2070c1 100644
--- a/Code/Mantid/MantidPlot/src/GridDetails.cpp
+++ b/Code/Mantid/MantidPlot/src/GridDetails.cpp
@@ -9,14 +9,103 @@
 #include "qwt_compat.h"
 #include "Plot.h"
 #include "plot2D/ScaleEngine.h"
+#include "DoubleSpinBox.h"
 
 #include <QWidget>
+#include <QCheckBox>
+#include <QComboBox>
+#include <QLabel>
+#include <QGridLayout>
+#include <ColorBox.h>
+#include <Grid.h>
 
-GridDetails::GridDetails(ApplicationWindow* app, Graph* graph, QWidget *parent) : QWidget(parent)
+GridDetails::GridDetails(ApplicationWindow* app, Graph* graph, int alignment, QWidget *parent) : QWidget(parent)
 {
   d_app = app;
   d_graph = graph;
   m_initialised = false;
+  m_alignment = alignment;
+
+  QGridLayout * rightLayout = new QGridLayout(this);
+
+  boxMajorGrid = new QCheckBox();
+  boxMajorGrid->setText(tr("Major Grids"));
+  boxMajorGrid->setChecked(true);
+  rightLayout->addWidget(boxMajorGrid, 0, 1);
+
+  boxMinorGrid = new QCheckBox();
+  boxMinorGrid->setText(tr("Minor Grids"));
+  boxMinorGrid->setChecked(false);
+  rightLayout->addWidget(boxMinorGrid, 0, 2);
+
+  rightLayout->addWidget(new QLabel(tr("Line Color")), 1, 0);
+
+  boxColorMajor = new ColorBox(0);
+  rightLayout->addWidget(boxColorMajor, 1, 1);
+
+  boxColorMinor = new ColorBox(0);
+  boxColorMinor->setDisabled(true);
+  rightLayout->addWidget(boxColorMinor, 1, 2);
+
+  rightLayout->addWidget(new QLabel(tr("Line Type")), 2, 0);
+
+  boxTypeMajor = new QComboBox();
+  boxTypeMajor->addItem("_____");
+  boxTypeMajor->addItem("- - -");
+  boxTypeMajor->addItem(".....");
+  boxTypeMajor->addItem("_._._");
+  boxTypeMajor->addItem("_.._..");
+  rightLayout->addWidget(boxTypeMajor, 2, 1);
+
+  boxTypeMinor = new QComboBox();
+  boxTypeMinor->addItem("_____");
+  boxTypeMinor->addItem("- - -");
+  boxTypeMinor->addItem(".....");
+  boxTypeMinor->addItem("_._._");
+  boxTypeMinor->addItem("_.._..");
+  boxTypeMinor->setDisabled(true);
+  rightLayout->addWidget(boxTypeMinor, 2, 2);
+
+  rightLayout->addWidget(new QLabel(tr("Thickness")), 3, 0);
+
+  boxWidthMajor = new DoubleSpinBox('f');
+  boxWidthMajor->setLocale(d_app->locale());
+  boxWidthMajor->setSingleStep(0.1);
+  boxWidthMajor->setRange(0.1, 20);
+  boxWidthMajor->setValue(1);
+  rightLayout->addWidget(boxWidthMajor, 3, 1);
+
+  boxWidthMinor = new DoubleSpinBox('f');
+  boxWidthMinor->setLocale(d_app->locale());
+  boxWidthMinor->setSingleStep(0.1);
+  boxWidthMinor->setRange(0.1, 20);
+  boxWidthMinor->setValue(1);
+  boxWidthMinor->setDisabled(true);
+  rightLayout->addWidget(boxWidthMinor, 3, 2);
+
+  rightLayout->addWidget(new QLabel(tr("Axis")), 4, 0);
+
+  boxGridAxis = new QComboBox();
+  if (m_alignment == 1)
+  {
+    boxGridAxis->insertItem(tr("Bottom"));
+    boxGridAxis->insertItem(tr("Top"));
+    boxZeroLine = new QCheckBox(tr("X=0"));
+  }
+  else
+  {
+    boxGridAxis->insertItem(tr("Left"));
+    boxGridAxis->insertItem(tr("Right"));
+    boxZeroLine = new QCheckBox(tr("Y=0"));
+  }
+  rightLayout->addWidget(boxGridAxis, 4, 1);
+
+  rightLayout->addWidget(new QLabel(tr("Additional lines")), 5, 0);
+
+  rightLayout->addWidget(boxZeroLine, 5, 1);
+
+  rightLayout->setRowStretch(7, 1);
+  rightLayout->setColumnStretch(4, 1);
 
   initWidgets();
 }
@@ -35,8 +124,68 @@ void GridDetails::initWidgets()
   else
   {
     Plot *p = d_graph->plotWidget();
-    
+    Grid *grd = dynamic_cast<Grid *>(d_graph->plotWidget()->grid());
+    if (!grd)
+    {
+      return;
+    }
+
+    if (m_alignment == 1)
+    {
+      boxMajorGrid->setChecked(grd->xEnabled());
+      boxMinorGrid->setChecked(grd->xMinEnabled());
+
+      QPen majPenX = grd->majPenX();
+      boxTypeMajor->setCurrentIndex(majPenX.style() - 1);
+      boxColorMajor->setColor(majPenX.color());
+      boxWidthMajor->setValue(majPenX.widthF());
+
+      QPen minPenX = grd->minPenX();
+      boxTypeMinor->setCurrentItem(minPenX.style() - 1);
+      boxColorMinor->setColor(minPenX.color());
+      boxWidthMinor->setValue(minPenX.widthF());
+
+      boxGridAxis->setCurrentIndex(grd->xAxis() - 2);
+      boxZeroLine->setChecked(grd->xZeroLineEnabled());
+    }
+    else
+    {
+      boxMajorGrid->setChecked(grd->yEnabled());
+      boxMinorGrid->setChecked(grd->yMinEnabled());
+
+      QPen majPenY = grd->majPenY();
+      boxTypeMajor->setCurrentIndex(majPenY.style() - 1);
+      boxColorMajor->setColor(majPenY.color());
+      boxWidthMajor->setValue(majPenY.widthF());
+
+      QPen minPenY = grd->minPenY();
+      boxTypeMinor->setCurrentItem(minPenY.style() - 1);
+      boxColorMinor->setColor(minPenY.color());
+      boxWidthMinor->setValue(minPenY.widthF());
+
+      boxGridAxis->setCurrentIndex(grd->yAxis());
+      boxZeroLine->setChecked(grd->yZeroLineEnabled());
+    }
+
+    bool majorOn = boxMajorGrid->isChecked();
+    majorGridEnabled(majorOn);
+
+    bool minorOn = boxMinorGrid->isChecked();
+    minorGridEnabled(minorOn);
 
+    connect(boxMajorGrid, SIGNAL(toggled(bool)), this, SLOT(majorGridEnabled(bool)));
+    connect(boxMinorGrid, SIGNAL(toggled(bool)), this, SLOT(minorGridEnabled(bool)));
+
+    connect(boxMajorGrid, SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(boxMinorGrid, SIGNAL(clicked()), this, SLOT(setModified()));  
+    connect(boxZeroLine, SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(boxColorMinor, SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(boxColorMajor, SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(boxTypeMajor, SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));  
+    connect(boxTypeMinor, SIGNAL(currentIndexChanged(int)), this, SLOT(setModified())); 
+    connect(boxGridAxis, SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(boxWidthMajor, SIGNAL(valueChanged(double)), this, SLOT(setModified())); 
+    connect(boxWidthMinor, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
 
     m_modified = false;
     m_initialised = true;
@@ -48,15 +197,46 @@ void GridDetails::setModified()
   m_modified = true;
 }
 
-bool GridDetails::valid()
+void GridDetails::apply(Grid *grid, bool antialias)
 {
-  return true;
+  if (m_modified && grid)
+  {
+    if (m_alignment == 1)
+    {
+      grid->enableX(boxMajorGrid->isChecked());
+      grid->enableXMin(boxMinorGrid->isChecked());
+      grid->setXAxis(boxGridAxis->currentIndex() + 2);
+
+      grid->setMajPenX(QPen(ColorBox::color(boxColorMajor->currentIndex()), boxWidthMajor->value(), Graph::getPenStyle(boxTypeMajor->currentIndex())));
+      grid->setMinPenX(QPen(ColorBox::color(boxColorMinor->currentIndex()), boxWidthMinor->value(), Graph::getPenStyle(boxTypeMinor->currentIndex())));
+      grid->enableZeroLineX(boxZeroLine->isChecked());
+    }
+    else
+    {
+      grid->enableY(boxMajorGrid->isChecked());
+      grid->enableYMin(boxMinorGrid->isChecked());
+      grid->setYAxis(boxGridAxis->currentIndex());
+
+      grid->setMajPenY(QPen(ColorBox::color(boxColorMajor->currentIndex()), boxWidthMajor->value(), Graph::getPenStyle(boxTypeMajor->currentIndex())));
+      grid->setMinPenY(QPen(ColorBox::color(boxColorMinor->currentIndex()), boxWidthMinor->value(), Graph::getPenStyle(boxTypeMinor->currentIndex())));
+      grid->enableZeroLineY(boxZeroLine->isChecked());
+    }
+
+    grid->setRenderHint(QwtPlotItem::RenderAntialiased, antialias);
+    m_modified = false;
+  }
 }
 
-void GridDetails::apply()
+void GridDetails::majorGridEnabled(bool on)
 {
-  if (!(d_app && d_graph && valid()) || !m_modified)
-    return;
+  boxTypeMajor->setEnabled(on);
+  boxColorMajor->setEnabled(on);
+  boxWidthMajor->setEnabled(on);
+}
 
-  m_modified = false;
+void GridDetails::minorGridEnabled(bool on)
+{
+  boxTypeMinor->setEnabled(on);
+  boxColorMinor->setEnabled(on);
+  boxWidthMinor->setEnabled(on);
 }
\ No newline at end of file
diff --git a/Code/Mantid/MantidPlot/src/GridDetails.h b/Code/Mantid/MantidPlot/src/GridDetails.h
index 9b73d18a877d5bd5d77fe317fe0e2ed858a96ae3..f54a8a164ce889923502345287bf2d774c9438d4 100644
--- a/Code/Mantid/MantidPlot/src/GridDetails.h
+++ b/Code/Mantid/MantidPlot/src/GridDetails.h
@@ -30,28 +30,40 @@ Code Documentation is available at: <http://doxygen.mantidproject.org>
 
 #include <QWidget>
 #include <QList>
+#include <DoubleSpinBox.h>
 class ApplicationWindow;
 class Graph;
+class QCheckBox;
+class ColorBox;
+class QComboBox;
+class DoubleSpinBox;
+class Grid;
 //The grid tab
 class GridDetails: public QWidget
 {
   Q_OBJECT
 public:
-  GridDetails(ApplicationWindow* app, Graph* graph, QWidget *parent = 0); // populate and fill in with existing data
+  GridDetails(ApplicationWindow* app, Graph* graph, int alignment, QWidget *parent = 0); // populate and fill in with existing data
   virtual ~GridDetails();
   void initWidgets();
-  bool modified(){return m_modified;};
-  void apply();
-  bool valid();
+  bool modified(){return m_modified;}
+  void apply(Grid *grid, bool antialias);
 public slots:
+  void setModified();
 
 private slots:
-  void setModified();
+  void majorGridEnabled(bool on);
+  void minorGridEnabled(bool on);
 
 private:
   bool m_modified, m_initialised;
+  QCheckBox *boxMajorGrid, *boxMinorGrid, *boxZeroLine;
+  ColorBox *boxColorMinor, *boxColorMajor;
+  QComboBox *boxTypeMajor, *boxTypeMinor, *boxGridAxis;
+  DoubleSpinBox *boxWidthMajor, *boxWidthMinor;
 
   ApplicationWindow* d_app;
   Graph* d_graph;
+  int m_alignment; //0 = horzontal, 1 = vertical, anything else sets this to 0;
 };
 #endif /* GRIDDETAILS_H_ */
\ No newline at end of file
diff --git a/Code/Mantid/MantidPlot/src/ScaleAxisDetails.cpp b/Code/Mantid/MantidPlot/src/ScaleDetails.cpp
similarity index 63%
rename from Code/Mantid/MantidPlot/src/ScaleAxisDetails.cpp
rename to Code/Mantid/MantidPlot/src/ScaleDetails.cpp
index 9a8bfdbd4226118520fe780a02bc3aa977efb055..c2ac05f2e25b1f661df343a8c08f4d4d03b2a7ea 100644
--- a/Code/Mantid/MantidPlot/src/ScaleAxisDetails.cpp
+++ b/Code/Mantid/MantidPlot/src/ScaleDetails.cpp
@@ -2,7 +2,7 @@
 // Includes
 //--------------------------
 
-#include "ScaleAxisDetails.h"
+#include "ScaleDetails.h"
 #include "ApplicationWindow.h"
 #include "DoubleSpinBox.h"
 #include <qwt_scale_widget.h>
@@ -14,9 +14,9 @@
 #include <QWidget>
 #include <QSpinBox>
 #include <QCheckBox>
-#include <QRadioButton>
-#include <QGroupBox>
 #include <QComboBox>
+#include <QGroupBox>
+#include <QRadioButton>
 #include <QLabel>
 #include <QDateTimeEdit>
 #include <QTimeEdit>
@@ -33,12 +33,14 @@
 #include <ColorButton.h>
 #include <QFontDialog>
 
-ScaleAxisDetails::ScaleAxisDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent) : QWidget(parent)
+ScaleDetails::ScaleDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent) : QWidget(parent)
 {
   d_app = app;
   d_graph = graph;
   m_mappedaxis = mappedaxis;
   m_initialised = false;
+  m_modified = false;
+
   QGroupBox * middleBox = new QGroupBox(QString());
   QGridLayout * middleLayout = new QGridLayout(middleBox);
 
@@ -197,73 +199,18 @@ ScaleAxisDetails::ScaleAxisDetails(ApplicationWindow* app, Graph* graph, int map
   vl->addLayout(hl);
   vl->addWidget(grpAxesBreaks);
 
-  //// these bypass Apply()
-  //connect(chkInvert,SIGNAL(clicked()), this, SLOT(updatePlot()));
-  //connect(cmbScaleType,SIGNAL(activated(int)), this, SLOT(updateMinorTicksList(int)));
-  //connect(dspnEnd, SIGNAL(valueChanged(double)), this, SLOT(endvalueChanged(double)));
-  //connect(dspnStart, SIGNAL(valueChanged(double)), this, SLOT(startvalueChanged(double)));
-  ////
   connect(radStep, SIGNAL(clicked()), this, SLOT(radiosSwitched()));
   connect(radMajor, SIGNAL(clicked()), this, SLOT(radiosSwitched()));
+
   initWidgets();
 }
-ScaleAxisDetails::~ScaleAxisDetails()
-{
 
-}
-void ScaleAxisDetails::setModified()
+ScaleDetails::~ScaleDetails()
 {
-  m_modified = true;
-}
 
-void ScaleAxisDetails::radiosSwitched()
-{
-  if (radStep->isChecked())
-  {
-    dspnStep->setEnabled(true);
-    spnMajorValue->setEnabled(false);
-  }
-  else if (radStep->isChecked())
-  {
-
-    dspnStep->setEnabled(false);
-    spnMajorValue->setEnabled(true);
-  }
-  else
-  {
-    radStep->setChecked(true);
-    dspnStep->setEnabled(true);
-    spnMajorValue->setEnabled(false);
-  }
-}
-
-/**
-slot called when the  To spinbox value changed
-*/
-/*
-void ScaleAxisDetails::endvalueChanged(double endVal)
-{
-//these bypass apply
-(void) endVal;
-if(d_graph)
-d_graph->changeIntensity( true);
 }
 
-void ScaleAxisDetails::startvalueChanged(double startVal)
-{
-//is this even doing anything?
-(void) startVal;
-if(d_graph)
-d_graph->changeIntensity( true);
-}
-void ScaleAxisDetails::updateMinorTicksList(int scaleType)
-{
-//is this even doing anything?
-(void) scaleType;
-}
-*/
-
-void ScaleAxisDetails::initWidgets()
+void ScaleDetails::initWidgets()
 {
   if (m_initialised)
   {
@@ -278,8 +225,7 @@ void ScaleAxisDetails::initWidgets()
     ScaleDraw::ScaleType type = d_graph->axisType(m_mappedaxis);
     if (type == ScaleDraw::Date)
     {
-      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(
-        m_mappedaxis));
+      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(m_mappedaxis));
       QDateTime origin = sclDraw->dateTimeOrigin();
 
       dspnStart->hide();
@@ -302,8 +248,7 @@ void ScaleAxisDetails::initWidgets()
     }
     else if (type == ScaleDraw::Time)
     {
-      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(
-        m_mappedaxis));
+      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_plot->axisScaleDraw(m_mappedaxis));
       QTime origin = sclDraw->dateTimeOrigin().time();
 
       dspnStart->hide();
@@ -347,15 +292,22 @@ void ScaleAxisDetails::initWidgets()
     if (sc_engine)
     {
       if (sc_engine->axisBreakLeft() > -DBL_MAX)
+      {
         dspnBreakStart->setValue(sc_engine->axisBreakLeft());
+      }
       else
+      {
         dspnBreakStart->setValue(start + 0.25 * range);
+      }
 
       if (sc_engine->axisBreakRight() < DBL_MAX)
+      {
         dspnBreakEnd->setValue(sc_engine->axisBreakRight());
+      }
       else
+      {
         dspnBreakEnd->setValue(start + 0.75 * range);
-
+      }
       grpAxesBreaks->setChecked(sc_engine->hasBreak());
 
       spnBreakPosition->setValue(sc_engine->breakPosition());
@@ -366,29 +318,30 @@ void ScaleAxisDetails::initWidgets()
       QwtScaleTransformation::Type scale_type = sc_engine->type();
       cmbMinorTicksBeforeBreak->clear();
       if (scale_type == QwtScaleTransformation::Log10)
-        cmbMinorTicksBeforeBreak->addItems(
-        QStringList() << "0" << "2" << "4" << "8");
+      {
+        cmbMinorTicksBeforeBreak->addItems(QStringList() << "0" << "2" << "4" << "8");
+      }
       else
-        cmbMinorTicksBeforeBreak->addItems(
-        QStringList() << "0" << "1" << "4" << "9" << "14" << "19");
-      cmbMinorTicksBeforeBreak->setEditText(
-        QString::number(sc_engine->minTicksBeforeBreak()));
+      {
+        cmbMinorTicksBeforeBreak->addItems(QStringList() << "0" << "1" << "4" << "9" << "14" << "19");
+      }
+      cmbMinorTicksBeforeBreak->setEditText(QString::number(sc_engine->minTicksBeforeBreak()));
 
-      cmbMinorTicksAfterBreak->setEditText(
-        QString::number(sc_engine->minTicksAfterBreak()));
+      cmbMinorTicksAfterBreak->setEditText(QString::number(sc_engine->minTicksAfterBreak()));
       chkLog10AfterBreak->setChecked(sc_engine->log10ScaleAfterBreak());
       chkBreakDecoration->setChecked(sc_engine->hasBreakDecoration());
       chkInvert->setChecked(sc_engine->testAttribute(QwtScaleEngine::Inverted));
       cmbScaleType->setCurrentItem(scale_type);
       cmbMinorValue->clear();
       if (scale_type == QwtScaleTransformation::Log10)
+      {
         cmbMinorValue->addItems(QStringList() << "0" << "2" << "4" << "8");
+      }
       else
-        cmbMinorValue->addItems(
-        QStringList() << "0" << "1" << "4" << "9" << "14" << "19");
-
-      cmbMinorValue->setEditText(
-        QString::number(d_plot->axisMaxMinor(m_mappedaxis)));
+      {
+        cmbMinorValue->addItems(QStringList() << "0" << "1" << "4" << "9" << "14" << "19");
+      }
+      cmbMinorValue->setEditText(QString::number(d_plot->axisMaxMinor(m_mappedaxis)));
 
       bool isColorMap = d_graph->isColorBarEnabled(m_mappedaxis);
       grpAxesBreaks->setEnabled(!isColorMap);
@@ -396,7 +349,6 @@ void ScaleAxisDetails::initWidgets()
       {
         grpAxesBreaks->setChecked(false);
       }
-
     }
     else
     {
@@ -408,115 +360,174 @@ void ScaleAxisDetails::initWidgets()
     spnMajorValue->setValue(lst.count());
 
     checkstep();
+
+    connect(grpAxesBreaks,SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(chkInvert,SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(chkLog10AfterBreak,SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(chkBreakDecoration,SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(radStep,SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(radMajor,SIGNAL(clicked()), this, SLOT(setModified()));
+    connect(cmbMinorTicksBeforeBreak,SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(cmbMinorTicksAfterBreak,SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(cmbMinorValue,SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(cmbUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(cmbScaleType,SIGNAL(currentIndexChanged(int)), this, SLOT(setModified()));
+    connect(dspnEnd, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(dspnStart, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(dspnStep, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(dspnBreakStart, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(dspnStepBeforeBreak, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(dspnStepAfterBreak, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(dspnBreakEnd, SIGNAL(valueChanged(double)), this, SLOT(setModified()));
+    connect(spnMajorValue, SIGNAL(valueChanged(int)), this, SLOT(setModified()));
+    connect(spnBreakPosition, SIGNAL(valueChanged(int)), this, SLOT(setModified()));
+    connect(spnBreakWidth, SIGNAL(valueChanged(int)), this, SLOT(setModified()));
+    connect(dteStartDateTime, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(setModified()));
+    connect(dteStartDateTime, SIGNAL(dateChanged(QDate)), this, SLOT(setModified()));
+    connect(dteStartDateTime, SIGNAL(timeChanged(QTime)), this, SLOT(setModified()));
+    connect(dteEndDateTime, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(setModified()));
+    connect(dteEndDateTime, SIGNAL(dateChanged(QDate)), this, SLOT(setModified()));
+    connect(dteEndDateTime, SIGNAL(timeChanged(QTime)), this, SLOT(setModified()));
+    connect(timStartTime, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(setModified()));
+    connect(timStartTime, SIGNAL(dateChanged(QDate)), this, SLOT(setModified()));
+    connect(timStartTime, SIGNAL(timeChanged(QTime)), this, SLOT(setModified()));
+    connect(timEndTime, SIGNAL(dateTimeChanged(QDateTime)), this, SLOT(setModified()));
+    connect(timEndTime, SIGNAL(dateChanged(QDate)), this, SLOT(setModified()));
+    connect(timEndTime, SIGNAL(timeChanged(QTime)), this, SLOT(setModified()));
+
     m_initialised = true;
   }
 }
 
-void ScaleAxisDetails::checkstep()
+bool ScaleDetails::valid()
 {
-  if (dspnStep->value() != 0.0)
-  {
-    radStep->setChecked(true);
-    dspnStep->setEnabled(true);
-    cmbUnit->setEnabled(true);
-
-    radMajor->setChecked(false);
-    spnMajorValue->setEnabled(false);
-  }
-  else
-  {
-    radStep->setChecked(false);
-    dspnStep->setEnabled(false);
-    cmbUnit->setEnabled(false);
-    radMajor->setChecked(true);
-    spnMajorValue->setEnabled(true);
-  }
+  //  QMessageBox::warning(this,tr("MantidPlot - Error"), "Invalid option to set the 'From' greater than 'To' for the scale settings.\nOperation aborted! ");
+  return m_initialised && d_app && d_graph && !(dspnStart->value() >= dspnEnd->value());
 }
 
-void ScaleAxisDetails::apply()
+void ScaleDetails::apply()
 {
-  ScaleDraw::ScaleType type = d_graph->axisType(m_mappedaxis);
-
-  double start = 0.0, end = 0.0;
-  if (type == ScaleDraw::Date)
-  {
-    ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(m_mappedaxis));
-    QDateTime origin = sclDraw->dateTimeOrigin();
-    start = (double)origin.secsTo(dteStartDateTime->dateTime());
-    end = (double)origin.secsTo(dteEndDateTime->dateTime());
-  } 
-  else if (type == ScaleDraw::Time)
-  {
-    ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(m_mappedaxis));
-    QTime origin = sclDraw->dateTimeOrigin().time();
-    start = (double)origin.msecsTo(timStartTime->time());
-    end = (double)origin.msecsTo(timEndTime->time());
-  } 
-  else
+  if (m_modified && valid())
   {
-    start = dspnStart->value();
-    end = dspnEnd->value();
-  }
+    //as the classes are separate now this may cause a problem as ideally i'd get this from the axis tab,
+    //but at the moment there's nothing to cause a problem as the only other cases that are used are Date
+    //and Time and Mantid doesn't support them in data yet i've been told
+    ScaleDraw::ScaleType type = d_graph->axisType(m_mappedaxis);
 
-  if (start >= end)
-  {
-    QMessageBox::warning(this,tr("MantidPlot - Error"),
-      "Invalid option to set the 'From' greater than 'To' for the scale settings.\nOperation aborted! ");
-    
-    //throw? validate?
-    return;
-  }
+    double start = 0.0, end = 0.0, step = 0.0, breakLeft = -DBL_MAX, breakRight = DBL_MAX;
+    if (type == ScaleDraw::Date)
+    {
+      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(m_mappedaxis));
+      QDateTime origin = sclDraw->dateTimeOrigin();
+      start = (double)origin.secsTo(dteStartDateTime->dateTime());
+      end = (double)origin.secsTo(dteEndDateTime->dateTime());
+    } 
+    else if (type == ScaleDraw::Time)
+    {
+      ScaleDraw *sclDraw = dynamic_cast<ScaleDraw *>(d_graph->plotWidget()->axisScaleDraw(m_mappedaxis));
+      QTime origin = sclDraw->dateTimeOrigin().time();
+      start = (double)origin.msecsTo(timStartTime->time());
+      end = (double)origin.msecsTo(timEndTime->time());
+    } 
+    else
+    {
+      start = dspnStart->value();
+      end = dspnEnd->value();
+    }
 
-  double step = 0.0;
-  if (radStep->isChecked())
-  {
-    step = dspnStep->value();
-    if (type == ScaleDraw::Time)
+    if (radStep->isChecked())
     {
-      switch (cmbUnit->currentIndex())
+      step = dspnStep->value();
+      if (type == ScaleDraw::Time)
       {
-      case 0:
-        break;
-      case 1:
-        step *= 1e3;
-        break;
-      case 2:
-        step *= 6e4;
-        break;
-      case 3:
-        step *= 36e5;
-        break;
+        switch (cmbUnit->currentIndex())
+        {
+        case 0:
+          break;
+        case 1:
+          step *= 1e3;
+          break;
+        case 2:
+          step *= 6e4;
+          break;
+        case 3:
+          step *= 36e5;
+          break;
+        }
       }
-    }
-    else if (type == ScaleDraw::Date)
-    {
-      switch (cmbUnit->currentIndex())
+      else if (type == ScaleDraw::Date)
       {
-      case 0:
-        step *= 86400;
-        break;
-      case 1:
-        step *= 604800;
-        break;
+        switch (cmbUnit->currentIndex())
+        {
+        case 0:
+          step *= 86400;
+          break;
+        case 1:
+          step *= 604800;
+          break;
+        }
       }
     }
+
+    if (grpAxesBreaks->isChecked())
+    {
+      breakLeft = qMin(dspnBreakStart->value(), dspnBreakEnd->value());
+      breakRight = qMax(dspnBreakStart->value(), dspnBreakEnd->value());
+    }
+    d_graph->setScale(m_mappedaxis, start, end, step, spnMajorValue->value(), cmbMinorValue->currentText().toInt(),
+      cmbScaleType->currentIndex(), chkInvert->isChecked(), breakLeft, breakRight, spnBreakPosition->value(),
+      dspnStepBeforeBreak->value(),dspnStepAfterBreak->value(), cmbMinorTicksBeforeBreak->currentText().toInt(),
+      cmbMinorTicksAfterBreak->currentText().toInt(), chkLog10AfterBreak->isChecked(), spnBreakWidth->value(), chkBreakDecoration->isChecked());
+    d_graph->changeIntensity(true);
+    d_graph->notifyChanges();
+    m_modified = false;
   }
+}
+
+void ScaleDetails::setModified()
+{
+  m_modified = true;
+}
 
-  double breakLeft = -DBL_MAX, breakRight = DBL_MAX;
-  if (grpAxesBreaks->isChecked())
+void ScaleDetails::radiosSwitched()
+{
+  if (radStep->isChecked())
   {
-    breakLeft = qMin(dspnBreakStart->value(), dspnBreakEnd->value());
-    breakRight = qMax(dspnBreakStart->value(), dspnBreakEnd->value());
+    dspnStep->setEnabled(true);
+    spnMajorValue->setEnabled(false);
   }
+  else if (radStep->isChecked())
+  {
 
-  d_graph->setScale(m_mappedaxis, start, end, step, spnMajorValue->value(), cmbMinorValue->currentText().toInt(),
-    cmbScaleType->currentIndex(), chkInvert->isChecked(), breakLeft, breakRight, spnBreakPosition->value(),
-    dspnStepBeforeBreak->value(),dspnStepAfterBreak->value(), cmbMinorTicksBeforeBreak->currentText().toInt(),
-    cmbMinorTicksAfterBreak->currentText().toInt(), chkLog10AfterBreak->isChecked(), spnBreakWidth->value(), chkBreakDecoration->isChecked());
-  d_graph->notifyChanges();
+    dspnStep->setEnabled(false);
+    spnMajorValue->setEnabled(true);
+  }
+  else
+  {
+    radStep->setChecked(true);
+    dspnStep->setEnabled(true);
+    spnMajorValue->setEnabled(false);
+  }
 }
 
-bool ScaleAxisDetails::valid()
+void ScaleDetails::checkstep()
 {
-return true;
-}
\ No newline at end of file
+  if (dspnStep->value() != 0.0)
+  {
+    radStep->setChecked(true);
+    dspnStep->setEnabled(true);
+    cmbUnit->setEnabled(true);
+
+    radMajor->setChecked(false);
+    spnMajorValue->setEnabled(false);
+  }
+  else
+  {
+    radStep->setChecked(false);
+    dspnStep->setEnabled(false);
+    cmbUnit->setEnabled(false);
+    radMajor->setChecked(true);
+    spnMajorValue->setEnabled(true);
+  }
+}
+
diff --git a/Code/Mantid/MantidPlot/src/ScaleAxisDetails.h b/Code/Mantid/MantidPlot/src/ScaleDetails.h
similarity index 90%
rename from Code/Mantid/MantidPlot/src/ScaleAxisDetails.h
rename to Code/Mantid/MantidPlot/src/ScaleDetails.h
index 75d5a0cf164141c1322d5a6811cc227673423d8a..a9ab056f043fa8a2e9693f8f132b8f75d6673097 100644
--- a/Code/Mantid/MantidPlot/src/ScaleAxisDetails.h
+++ b/Code/Mantid/MantidPlot/src/ScaleDetails.h
@@ -25,8 +25,8 @@ File change history is stored at: <https://github.com/mantidproject/mantid>
 Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 
-#ifndef SCALEAXISDETAILS_H_
-#define SCALEAXISDETAILS_H_
+#ifndef SCALEDETAILS_H_
+#define SCALEDETAILS_H_
 
 #include <QWidget>
 #include <QList>
@@ -48,15 +48,15 @@ class Graph;
 class TextFormatButtons;
 class ColorButton;
 
-class ScaleAxisDetails: public QWidget
+class ScaleDetails: public QWidget
 {
   Q_OBJECT
     //details for each axis in the Scale Tab
 public:
-  ScaleAxisDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent = 0); // populate and fill in with existing data
-  virtual ~ScaleAxisDetails();
+  ScaleDetails(ApplicationWindow* app, Graph* graph, int mappedaxis, QWidget *parent = 0); // populate and fill in with existing data
+  virtual ~ScaleDetails();
   void initWidgets();
-  bool modified();
+  bool modified(){return m_modified;}
   void apply();
   bool valid();
 
@@ -95,4 +95,4 @@ private:
   void checkstep();
 };
 
-#endif /* SCALEAXISDETAILS_H_ */
+#endif /* ScaleDetails_H_ */