]> Creatis software - creaImageIO.git/commitdiff
Added settings and tools tools.
authorcaballero <caballero>
Wed, 6 May 2009 17:09:02 +0000 (17:09 +0000)
committercaballero <caballero>
Wed, 6 May 2009 17:09:02 +0000 (17:09 +0000)
appli/TestWxGimmickReaderDialog/main.cxx
src2/creaImageIOWxGimmickView.cpp
src2/creaImageIOWxGimmickView.h
src2/creaImageIOWxTreeView.cpp
src2/creaImageIOWxViewer.cpp
src2/icons/settings-40x40.png [new file with mode: 0644]
src2/icons/settings.xpm [new file with mode: 0644]
src2/icons/tools-48x48.png [new file with mode: 0644]
src2/icons/tools.xpm [new file with mode: 0644]

index 45c72d69daadde5abd1005ea23bcc43a0060bb7c..b313e90d0e3ee3a8104dd0f01fbc56c24c1bd9cf 100644 (file)
@@ -38,7 +38,7 @@ bool myApp::OnInit( )
                                        -1,
                                        _T("Select image(s)        - Gimmick! (c) CREATIS-LRMN 2008"),
                                        wxDefaultPosition,
-                                       wxSize(635,750),
+                                       wxSize(810,750),
                                        min_dim,
                                        max_dim,
                                        output_dim,
index 0664caf2269cd0c170f60800172d23c40ce66621..4fdf0fc3fc71b47227d11eeb20e2509d385b1908 100644 (file)
@@ -12,6 +12,8 @@ using namespace crea;
 #include "icons/create-database.xpm"
 #include "icons/help.xpm"
 #include "icons/synchronize.xpm"
+#include "icons/settings.xpm"
+#include "icons/tools.xpm"
 
 #include <wx/imaglist.h>
 #include <wx/popupwin.h>
@@ -30,13 +32,15 @@ namespace creaImageIO
          TOOL_ADDDATABASE_ID = 4,
       TOOL_REMOVE_ID = 5,
          TOOL_SYNCHRONIZE_ID = 6,
-      TOOL_HELP_ID = 7
+      TOOL_HELP_ID = 7,
+         TOOL_SETTINGS_ID = 8,
+         TOOL_TOOLS_ID = 9
     };
   //======================================================================
 
   //================================================================
   // 
-  const int icon_number = 9;
+  const int icon_number = 11;
   // Icon ids
   typedef enum
     {
@@ -48,7 +52,9 @@ namespace creaImageIO
          Icon_database_add,
       Icon_remove,
          Icon_synchronize,
-      Icon_help
+      Icon_help,
+         Icon_settings,
+      Icon_tools
     }
     icon_id;
   //================================================================
@@ -214,6 +220,16 @@ namespace creaImageIO
                                      mIcon->GetBitmap(Icon_help),
                                      _T("Open help window")
                                      );
+       mToolSettings = mToolBar->AddTool( TOOL_SETTINGS_ID, 
+                                     _T("System settings"),
+                                     mIcon->GetBitmap(Icon_settings),
+                                     _T("Allows the modification of various system settings")
+                                     );
+       mToolTools = mToolBar->AddTool( TOOL_TOOLS_ID, 
+                                     _T("Tools"),
+                                     mIcon->GetBitmap(Icon_tools),
+                                     _T("Applies tools to images")
+                                     );
     //const wxBitmap& bitmap1, const wxString& shortHelpString = "", wxItemKind kind = wxITEM_NORMAL)
 
     mToolBar->Realize();
@@ -283,6 +299,8 @@ namespace creaImageIO
     icons[Icon_help] = wxIcon(help_xpm);
        icons[Icon_synchronize] = wxIcon(synchronize_xpm);
        icons[Icon_create_database] = wxIcon(create_database_xpm);
+       icons[Icon_settings] = wxIcon(settings_xpm);
+       icons[Icon_tools] = wxIcon(tools_xpm);
 
     //   unsigned int NbIcons = 8;
     // Make an image list containing small icons
@@ -652,6 +670,50 @@ namespace creaImageIO
   }
   //=================================================
 
+  //=================================================
+  void WxGimmickView::OnSettings(wxCommandEvent& event)
+  {
+         wxDialog* dial= new wxDialog (this,-1,"System Settings",wxDefaultPosition, wxSize(450,600));
+         wxBoxSizer    *siz = new wxBoxSizer(wxVERTICAL);
+         // Notebook
+      wxNotebook* nb= new wxNotebook(dial,
+                              -1,wxDefaultPosition, wxDefaultSize, 0);
+
+         siz->Add( nb,1,wxGROW  ,0);  
+         CreateSettingsDialog(nb);
+         dial->SetSizer(siz);
+         dial->ShowModal();
+  }
+  //=================================================
+
+    //=================================================
+  void WxGimmickView::OnTools(wxCommandEvent& event)
+  {
+         wxDialog* dial= new wxDialog (this,-1,"Tools",wxDefaultPosition, wxDefaultSize);
+         wxBoxSizer    *siz = new wxBoxSizer(wxVERTICAL);
+         dial->SetSizer(siz);
+         dial->ShowModal();
+  }
+  //=================================================
+
+  void WxGimmickView::CreateSettingsDialog(wxNotebook* nb)
+  {
+         //First page: Customization of configurations
+         wxPanel* customConfig=new wxPanel(nb);
+         nb->AddPage( customConfig, crea::std2wx("Customize Configuration") );
+         //Second page: Creation of Databases
+         wxPanel* databaseCreation=new wxPanel(nb);
+         nb->AddPage( databaseCreation, crea::std2wx("Create Database") );
+         //Third page: CD/DVD Watch
+         wxPanel* cdWatch=new wxPanel(nb);
+         nb->AddPage( cdWatch, crea::std2wx("CD/DVD") );
+         //Fourth page: Selection of attributes to show (edit)
+         wxPanel* attSelection=new wxPanel(nb);
+         nb->AddPage( attSelection, crea::std2wx("Selection of Attributes") );
+
+  }
+
+
   //=================================================
   /// AddProgress Gimmick callback
   void WxGimmickView::OnAddProgress( Gimmick::AddProgress& p)
@@ -793,6 +855,8 @@ namespace creaImageIO
        EVT_TOOL(TOOL_ADDDATABASE_ID, WxGimmickView::OnAddDB)
        EVT_TOOL(TOOL_REMOVE_ID, WxGimmickView::OnRemove)
        EVT_TOOL(TOOL_SYNCHRONIZE_ID, WxGimmickView::OnSynchronize)
+       EVT_TOOL(TOOL_SETTINGS_ID, WxGimmickView::OnSettings)
+       EVT_TOOL(TOOL_TOOLS_ID, WxGimmickView::OnTools)
   END_EVENT_TABLE()
   //=================================================
 
index 3881c8543c1e07f1be260a0d14fe9c50134bd4e7..a9cef83f9a04602bc098e4e0a5068f0b444609f4 100644 (file)
@@ -93,6 +93,8 @@ namespace creaImageIO
     wxToolBarToolBase* mToolAddDatabase;
     wxToolBarToolBase* mToolHelp;
        wxToolBarToolBase* mToolSynchronize;
+       wxToolBarToolBase* mToolSettings;
+       wxToolBarToolBase* mToolTools;
     
     wxSplitterWindow* mSplitter;
     wxPanel*          mBottomPanel;
@@ -110,8 +112,14 @@ namespace creaImageIO
     void OnAddDir(wxCommandEvent& event);
     /// Callback for removing files
     void OnRemove(wxCommandEvent& event);
-       /// Callback for removing files
+       /// Callback for synchronization
     void OnSynchronize(wxCommandEvent& event);
+       /// Callback for settings edition
+    void OnSettings(wxCommandEvent& event);
+       /// Callback for settings edition
+    void OnTools(wxCommandEvent& event);
+       ///Creates the settings dialog (the pages inside and the information)
+       void CreateSettingsDialog(wxNotebook* nb);
     
     /// Display a message box with the last addition statistics
     void DisplayAddSummary();
index cb8f81df99ba4f7b76efd86347f771d6ec40e5d2..a2604c779865fd34b30a5dabcddcfb3cd538c005 100644 (file)
@@ -272,7 +272,6 @@ namespace creaImageIO
     int l = level - 1;
     // the selection of upper level
        std::vector<tree::Node*>& sel(mLevelList[l].Selected);
-       std::cout<<l<<std::endl;
     sel.clear();
          if (level == 1) 
       {
index d14e4bb485f9eb7bc8c28360d60d26a4b9a07cde..420096352729b592f721385bd77f6e69d3d137b5 100644 (file)
@@ -271,7 +271,7 @@ namespace creaImageIO
                        ::wxWakeUpIdle();
                        clock_t endwait;
                        endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
-                       while (clock() < endwait) {}
+                       while (clock() < endwait ) {}
                        
       }
     return 0;
diff --git a/src2/icons/settings-40x40.png b/src2/icons/settings-40x40.png
new file mode 100644 (file)
index 0000000..d15e144
Binary files /dev/null and b/src2/icons/settings-40x40.png differ
diff --git a/src2/icons/settings.xpm b/src2/icons/settings.xpm
new file mode 100644 (file)
index 0000000..a26cfed
--- /dev/null
@@ -0,0 +1,115 @@
+/* XPM */
+static char *settings_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"40 40 69 1",
+"  c #474A4A",
+". c #494D4D",
+"X c #575B5B",
+"o c #5B5F5F",
+"O c #5D6262",
+"+ c #626565",
+"@ c #656969",
+"# c #696D6D",
+"$ c #6D7171",
+"% c #727777",
+"& c #757A7A",
+"* c #7A7E7E",
+"= c #7C8282",
+"- c #828787",
+"; c #858A8A",
+": c #898E8E",
+"> c #818E92",
+", c #859295",
+"< c #8C9292",
+"1 c #899699",
+"2 c #8D999C",
+"3 c #919696",
+"4 c #949A9B",
+"5 c #9A9E9E",
+"6 c #949FA1",
+"7 c #999FA0",
+"8 c #95A2A4",
+"9 c #9CA3A3",
+"0 c #99A6A9",
+"q c #9DAAAD",
+"w c #A1A6A6",
+"e c #A4AAAB",
+"r c #A9ADAD",
+"t c #A2AEB1",
+"y c #A5B2B4",
+"u c #ABB2B3",
+"i c #ACB7B9",
+"p c #AEBABC",
+"a c #B1B6B6",
+"s c #B4BBBC",
+"d c #BABEBE",
+"f c #B4BEC0",
+"g c #B8BFC0",
+"h c #B6C1C3",
+"j c #BBC3C4",
+"k c #BBC6C8",
+"l c #BEC9CB",
+"z c #C2C5C5",
+"x c #C5CBCB",
+"c c #CACDCD",
+"v c #C3CED0",
+"b c #C6D1D3",
+"n c #CCD3D4",
+"m c #CCD7D9",
+"M c #CED9DB",
+"N c #D2D5D5",
+"B c #D5DADB",
+"V c #DBDDDD",
+"C c #D5DFE0",
+"Z c #D7E1E3",
+"A c #DDE1E1",
+"S c #E2E5E5",
+"D c #E5E8E8",
+"F c #EAEDED",
+"G c #EEF1F1",
+"H c #F3F5F5",
+"J c #F6F9F9",
+"K c #FAFBFB",
+"L c None",
+/* pixels */
+"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLLihlbmxLLLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLLhbmVANLLLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLLlmCSSVdLLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLjmAAASAzLLLLLLLLLLLLLLLL",
+"LLLLLLLL80eLLLLkbVSSSSSVcLLLLxVVLLLLLLLL",
+"LLLLLL8880yiihMCAAAVBASSSSccBDDDScLLLLLL",
+"LLLLLL68qyphlnZANhewwrdNSSSSDDDDDSzLLLLL",
+"LLLLL40qypklmndw<;------5dVDDDDDDDaLLLLL",
+"LLLLL<tyfhlbzw<<3:;;;;;;;:rNDDDDDV-LLLLL",
+"LLLLLL4pkxmh<::3raaw53<;<<3wNDDDSrLLLLLL",
+"LLLLLL=uvmj6<:<9VDVVNNcu37wwaNDDn-LLLLLL",
+"LLLLLLLkmn53<<rNDDNzaarjzrrrrdSDBrLLLLLL",
+"LLLLLLsmMs444wcVKJxw55-*5arraaNSSxLLLLLL",
+"LLLLLLbCxw55wsrxjLLLLLL@#&aaaszVDVLLLLLL",
+"LLLLsjVAdw99r54;LLLLLLLLO+<addzNDSNnLLLL",
+"LrhbNVSVrwee5&LLLLLLLLLLLL%wdzzcDDDDAAhL",
+"LibmAAANurra*+LLLLLLLLLLLL@3zzccDDDDDZkL",
+"LsBZASSNauas+LLLLLLLLLLLLLL*ccccAFDAZMpL",
+"LsAAAAAcaaaa+LLLLLLLLLLLLLL&ccNcADAZMbyL",
+"LdAASVSNaddd+LLLLLLLLLLLLLL*NNNcSAZMlkeL",
+"LwNVASAVazdd&LLLLLLLLLLLLLL3NVNcZZmlkf4L",
+"L#*:rdAAazzze$LLLLLLLLLLLL&aVVNcMbdy9=@L",
+"LLLL$-VAzzccz;LLLLLLLLLLLL5NVAccbl<*LLLL",
+"LLLLLLdANacNVc:LLLLLLLLLL5VSSVdzksLLLLLL",
+"LLLLLL4VSazVVScrLLLLLLLLsNSDSchjp5LLLLLL",
+"LLLLLL:cVSaNSSSSnzLLLLxNDDDDnfgpy=LLLLLL",
+"LLLLLLdBSSNaVSDDDSASFGFFDDDNsgiyq4LLLLLL",
+"LLLLLLVSSVVSdcSDDFFFHJHGDAxffiq068LLLLLL",
+"LLLLLcSVVSSVVczNDFDHHJHGBlffyt06216LLLLL",
+"LLLLLzVVSVVSSVVNzcBSGHGClhfy0861,>,LLLLL",
+"LLLL+-BSVVSVNVVSVVNVSFZmffyy061,>1%LLLLL",
+"LLLLL.-zVVx4o:xNVAAAZZBliy:O;21>2= LLLLL",
+"LLLLLL+5Bz:oL+:<cVCBmMmk;=XLO:q04#LLLLLL",
+"LLLLLLL:a:LLLLLLeVMbllbqLLLLLLea%LLLLLLL",
+"LLLLLLLLLLLLLLLL4bxkhpk4LLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLL;ghpyqs9LLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLLeshshxLLLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLL#4ryzNLLLLLLLLLLLLLLLLL",
+"LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL"
+};
diff --git a/src2/icons/tools-48x48.png b/src2/icons/tools-48x48.png
new file mode 100644 (file)
index 0000000..289bc71
Binary files /dev/null and b/src2/icons/tools-48x48.png differ
diff --git a/src2/icons/tools.xpm b/src2/icons/tools.xpm
new file mode 100644 (file)
index 0000000..e8e8627
--- /dev/null
@@ -0,0 +1,308 @@
+/* XPM */
+static char *tools_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"48 48 254 2",
+"   c #435C69",
+".  c #47606D",
+"X  c #49626E",
+"o  c #4B6370",
+"O  c #546D7A",
+"+  c #57707D",
+"@  c #59717E",
+"#  c #008636",
+"$  c #058D3A",
+"%  c #0C8E3E",
+"&  c #029037",
+"*  c #0B933D",
+"=  c #0E9B3C",
+"-  c #20A23E",
+";  c #4CAE3D",
+":  c #52B030",
+">  c #5DB435",
+",  c #56B33D",
+"<  c #7EBF25",
+"1  c #74BC2D",
+"2  c #7DBF2B",
+"3  c #73BC34",
+"4  c #78BE3B",
+"5  c #7FC028",
+"6  c #7FC136",
+"7  c #7DC03D",
+"8  c #128F41",
+"9  c #139344",
+"0  c #199346",
+"q  c #119941",
+"w  c #1C9B4D",
+"e  c #21974D",
+"r  c #20994F",
+"t  c #249B53",
+"y  c #2A9F57",
+"u  c #1BA04A",
+"i  c #29A440",
+"p  c #21A04F",
+"a  c #3BAA4D",
+"s  c #29A256",
+"d  c #2DA35A",
+"f  c #3AA957",
+"g  c #32A55D",
+"h  c #33AA5D",
+"j  c #3CAD5D",
+"k  c #4EAF41",
+"l  c #57B44C",
+"z  c #41AC57",
+"x  c #43AE5B",
+"c  c #47B05C",
+"v  c #4CB15D",
+"b  c #5AB557",
+"n  c #53B35C",
+"m  c #5AB65B",
+"M  c #5FB85B",
+"N  c #6CBB43",
+"B  c #76BF42",
+"V  c #74BD49",
+"C  c #66BB55",
+"Z  c #6BBC54",
+"A  c #64BA5B",
+"S  c #6BBD5B",
+"D  c #71BF5E",
+"F  c #43A567",
+"G  c #48A86C",
+"H  c #4DB36E",
+"J  c #5EB862",
+"K  c #5BB76A",
+"L  c #57B375",
+"P  c #62BC7D",
+"I  c #79C044",
+"U  c #7EC150",
+"Y  c #75C061",
+"T  c #7AC265",
+"R  c #7FC469",
+"E  c #76C172",
+"W  c #70C07C",
+"Q  c #82C024",
+"!  c #83C229",
+"~  c #8BC536",
+"^  c #83C33B",
+"/  c #85C443",
+"(  c #8CC745",
+")  c #87C64B",
+"_  c #8AC74B",
+"`  c #8DC84D",
+"'  c #96CB45",
+"]  c #91C94D",
+"[  c #9BCE4E",
+"{  c #8ECA51",
+"}  c #92CA50",
+"|  c #95CB5B",
+" . c #98CD5D",
+".. c #82C66B",
+"X. c #99CD66",
+"o. c #9FD06C",
+"O. c #81C771",
+"+. c #8CCA75",
+"@. c #8ACA7A",
+"#. c #A2D36E",
+"$. c #ABD669",
+"%. c #5D7582",
+"&. c #5F7988",
+"*. c #5E7F91",
+"=. c #617580",
+"-. c #617986",
+";. c #647C89",
+":. c #687F8C",
+">. c #607F91",
+",. c #6B818D",
+"<. c #638495",
+"1. c #6B8694",
+"2. c #6E8897",
+"3. c #668698",
+"4. c #6C8B9C",
+"5. c #728793",
+"6. c #758A95",
+"7. c #768C9A",
+"8. c #798E9A",
+"9. c #7E929E",
+"0. c #66B881",
+"q. c #69BB82",
+"w. c #728FA0",
+"e. c #7592A4",
+"r. c #7C96A5",
+"t. c #7B98A9",
+"y. c #75C08C",
+"u. c #7AC391",
+"i. c #82939D",
+"p. c #8496A1",
+"a. c #8399A7",
+"s. c #8C9BA4",
+"d. c #819DAE",
+"f. c #8C9DA8",
+"g. c #909EA5",
+"h. c #8FA1AC",
+"j. c #93A3AD",
+"k. c #9AA7AD",
+"l. c #9BA8AF",
+"z. c #87A1B1",
+"x. c #8BA5B5",
+"c. c #93A5B0",
+"v. c #94A8B5",
+"b. c #9AA9B2",
+"n. c #93ACBB",
+"m. c #99AFBD",
+"M. c #99B0BF",
+"N. c #A2AEB4",
+"B. c #A2B2BC",
+"V. c #ABB5BB",
+"C. c #AEB8BE",
+"Z. c #B1BABF",
+"A. c #82C786",
+"S. c #97D087",
+"D. c #9BD084",
+"F. c #90CE9B",
+"G. c #A4D387",
+"H. c #B1D986",
+"J. c #B3DA8A",
+"K. c #AFD993",
+"L. c #A5D79C",
+"P. c #A7D89C",
+"I. c #ADD99D",
+"U. c #B1DA94",
+"Y. c #BADE9E",
+"T. c #90CEA2",
+"R. c #98CEA9",
+"E. c #93D1A0",
+"W. c #A0D5A6",
+"Q. c #ADD9A2",
+"!. c #B1DBA6",
+"~. c #BCDFA9",
+"^. c #A2D5B3",
+"/. c #A3D9B6",
+"(. c #ADDBB4",
+"). c #B0DABC",
+"_. c #BFE2B4",
+"`. c #C1E2AD",
+"'. c #CBE5A8",
+"]. c #CEE7B6",
+"[. c #D1E9BC",
+"{. c #9DB4C2",
+"}. c #A1B6C3",
+"|. c #A4B9C7",
+" X c #ABBAC3",
+".X c #A6BAC9",
+"XX c #ABBECD",
+"oX c #B3BDC2",
+"OX c #ABC1C0",
+"+X c #AEC1CE",
+"@X c #B9C2C7",
+"#X c #B3C2CC",
+"$X c #BCC5CB",
+"%X c #AFDEC1",
+"&X c #B7DCC1",
+"*X c #B9DDC3",
+"=X c #B5C7D3",
+"-X c #B9C7D0",
+";X c #B7C8D4",
+":X c #BACBD5",
+">X c #BFCFD9",
+",X c #C0C7CC",
+"<X c #C3CBCE",
+"1X c #C7D1CB",
+"2X c #CCD4CE",
+"3X c #C3CDD3",
+"4X c #C8CFD3",
+"5X c #CAD1D5",
+"6X c #C2D1DB",
+"7X c #CAD6DD",
+"8X c #CFD9DF",
+"9X c #D7DDD3",
+"0X c #DADDD5",
+"qX c #D1D7DA",
+"wX c #D4DADE",
+"eX c #D9DCDC",
+"rX c #C6E4CE",
+"tX c #D7ECC5",
+"yX c #D8ECC6",
+"uX c #D7ECCF",
+"iX c #D1EAD7",
+"pX c #DCEED6",
+"aX c #D4EADA",
+"sX c #E2E4DE",
+"dX c #E6EBDE",
+"fX c #E4F2DA",
+"gX c #CDD8E0",
+"hX c #D3DDE4",
+"jX c #D9DDE0",
+"kX c #D6E0E6",
+"lX c #DBE1E5",
+"zX c #DCE4E9",
+"xX c #E3E4E4",
+"cX c #E2EFE5",
+"vX c #E1E7EB",
+"bX c #E4EAEE",
+"nX c #EBECED",
+"mX c #E2F2E4",
+"MX c #EEF6E4",
+"NX c #E6F4EC",
+"BX c #EDF4ED",
+"VX c #EFF8ED",
+"CX c #F1F8E7",
+"ZX c #F2F8ED",
+"AX c #E6ECF0",
+"SX c #EAEEF1",
+"DX c #EDF1F3",
+"FX c #F2F4F5",
+"GX c #F5F9F4",
+"HX c #F9FBF7",
+"JX c #F4F6F8",
+"KX c #F7F9FA",
+"LX c #FDFDFD",
+"PX c None",
+/* pixels */
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPX@XoXoXoX@X$X$XoXoXC.@XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPX X4XjXnXnXbXlXqX4X<X,X,X,X,X<X5XeXvXnXbXlX5XV.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXoXjXDXjXoXN.N.N.C.@X,X4X5X5X4X:X$X#X XB.b.j.j.l. XqXnXlX@XPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPX@XSXwXV.l.oXgXAXDXFXJXJXFXDXSXbXzXzXhXgXgX7X>X;X=X+X}.v.s.k.4XFX$XPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX5XnXV. X7XlXvXbXSXDXKXKXKXJXDXDXAXzXzXhXgXgXgX>X:X=X#XXXXX|.{.x.j.lXjXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXLX X3XgXhXlXzXAXSXDXJXKXKXJXDXSXAXvXzXkXgXgX6X>X:X=X+XXX.X|.|.{.m.j.LXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXLXhXgXhXhXkXzXbXSXDXJXJXJXJXDXAXAXzXkXhXhXgX6X>X:X=X+XXXXX|.|.{.{.{.KXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX>XJXhXgXhXkXzXbXAXSXDXSXDXDXDXAXvXzXkXhXgXgX6X>X:X=X+XXX.X|.}.{.|.AXSXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX<.XXGXDXzXkXzXzXvXAXAXSXSXAXAXbXvXzXhXgXgXgX6X:X;X+X+XXX{..X+XhXKXzX+XPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX;.<.4..XvXKXDXDXAXAXvXAXAXAXvXzXzXkXhXgXgXgX6X:X;X;X>XgXkXJXKXvX>X+X|.PXPXPXPXPXPXPXPXPXPXPX",
+"PXPX<.<.3.4.w.z..XhXAXJXKXKXJXSXDXDXDXAXAXbXAXAXAXDXJXKXKXKXDXvXhXgX:X+X|.PXPXPXPXPXPXPXPXPXPXPX",
+"PXPX&.<.3.4.4.e.r.t.t.n.|.+X:XgXkXzXvXAXAXDXDXJXKXLXLXJXDXAXvXkXgXgX:X+X|.PXPXPXPXPXPXPXPXPXPXPX",
+"PXPX*.<.<.4.4.e.e.t.d.x.x.{.{.{..X+X=X>XgXkXzXSXFXLXKXJXDXAXzXkXhXgX:X+X|.PXPXPXPXPXPXPXPXPXPXPX",
+"PXPX*.<.3.3.4.w.e.t.d.z.x.n.{.{..X+X=X>XgXkXvXSXFXLXLXJXDXAXzXzXhX6X:XXX|.PXPXPXPXPXPXPXPXPXPXPX",
+"PXPX<.<.3.4.4.e.t.t.d.z.x.n.{.{..X+X=X>XgXkXvXSXFXLXLXJXDXAXvXkXhXgX:X+X|.PXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPX<.3.4.4.e.e.t.d.x.x.{.{.{..X+X=X6XgXkXvXAXFXLXKXJXDXAXzXzXhX7X:X+XPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPX7.r.w.e.e.t.d.x.z.{.{.}..X+X=X6XgXhXbXSXJXKXKXJXDXbXvXhXjXgX-XPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXC.bX5Xw.>.w.t.d.x.x.x.{.}..XXX=X>XgXhXbXSXJXLXLXJXDXAXzXoXN.<XSXoXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX,XnXg.=.    . %.&.:.r.d.x.{.|.XX=X6XhXhXjXxXzXjX7XC.s.5.o X   @ i.xXeXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXLXg.%.O %.%.O %.O %.O %.%.=.&.;.>.<.:.:.:.;.-.%.+ + O O O %.@ O @ 6.LXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXLXs.:.:.:.:.-.:.:.:.:.:.:.:.:.:.:.:.:.:.;.:.:.:.:.:.:.:.:.:.:.:.:.5.KXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX7XbXj.i.i.i.r.w.i.i.i.i.r.8.8.r.i.i.i.r.r.i.9.9.9.9.p.j.C.$X<X4X,X5XnXOXPXPXPXPXPXPXPXPXPXPX",
+"PXPX<.#XSXgX Xv.c.j.j.j.j.j.c.c.c.j.c.c.f.j.c.c.c.c.l.@XxXFXnXaX*X).iXcXFXxX1XPXPXPXPXPXPXPXPXPX",
+"PXPX*.<.p.XXnXDXjX3XXX}.}.}.}.}.}.}.}.B.}.}.}.V.}.$XnXGX^.G 8 # # # # % F R.VXxXPXPXPXPXPXPXPXPX",
+"PXPX*.<.<.4.w.x.XXhXSXFXDXAXvXzXhXhXhXgXhXhXhXjXjXKX).e $ 8 w y d d d t 0 $ 0 ^.nX2XPXPXPXPXPXPX",
+"PXPX*.<.3.3.4.e.e.t.z.{.|.=X6XgXhXzXbXSXSXDXJXFXLXq.$ 9 s g g g h g g g g d w $ q.BX2XPXPXPXPXPX",
+"PXPX*.<.3.3.4.e.t.t.t.x.x.{.{.{..XXX=X6XgXhXbXHXq.* w g h h h /.%X%X/.d g h g s % L GX1XPXPXPXPX",
+"PXPX*.<.4.3.4.e.t.t.d.z.x.{.x.{.|.=X=X6XgXzXHXT.$ p h j c c v BXLXLXNXg F c h h d * u.nXPXPXPXPX",
+"PXPX*.<.3.4.4.e.t.t.d.x.x.n.{.{.|.XX;X6XgXSXaXq u j c v n m M BXLXLXBXf m n v c j s = rX0XPXPXPX",
+"PXPXPX<.3.3.4.e.e.t.d.z.x.n.{.{..XXX;X6XhXKXP = c v m m A S Y VXLXLXNXz S M M m v j w H FXPXPXPX",
+"PXPXPXPX4.w.4.e.e.t.t.z.x.{.{.{..XXX;X>XcXmXu a n b A Y U Y Y NXLXLXNXc Y Y A J m n z - iX2XPXPX",
+"PXPXPXV.zX4X9.1.e.t.d.z.x.n.{.}..XXX=X6XDX(.: I M Y Y T E R ..VXLXLXNXv T T Y U A A A , E.xXPXPX",
+"PXPX@XDXk.@ o     O %.2.r.z.n.}..XXX;X7XJXA.3 [ T P.Q.!.!.!.!.HXLXLXGXF.!.!.Q.Q.P.J { I W nXPXPX",
+"PXPXLXs.+ O + O O O O O O O O + %.-.:.p.LXD ^ [ #.GXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXK [ ) b FXPXPX",
+"PXPXLXp.-.;.;.;.;.;.;.;.;.-.;.;.;.;.;.i.KXD / [ $.HXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXK [ ` l FXPXPX",
+"PXPXqXcXs.7.7.7.8.8.8.7.8.8.8.8.7.7.8.s.LXO.^ [ $.HXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXK [ ` C FXPXPX",
+"PXPX<.:XFX5XB.h.j.f.f.f.f.f.x.g.h.h.h.b.JXS.6 [ ' J.J.J.J.Y.'.GXLXLXGXR.Y.J.H.H.H.N [ / +.FXPXPX",
+"PXPX*.<.t.-XSXbXjX:X X}.B.B.B.B.B.B.M.B.SX_.4 ' Q Q Q Q Q Q ~ CXLXLXNXk ! ! Q Q Q Q ~ B I.xXPXPX",
+"PXPX*.<.3.4.e.v.=XzXJXJXSXvXhXhXhX7X7X7XnXmXV ! Q Q Q Q Q Q Q CXLXLXBX; Q Q Q Q Q Q ! N pX9XPXPX",
+"PXPX*.<.3.4.4.e.e.t.d.v.XX:XgXhXzXvXbXDXDXLXD.2 Q Q Q Q Q Q Q CXLXLXNX; Q Q Q Q Q Q 1 +.FXPXPXPX",
+"PXPX*.<.3.4.w.w.e.t.d.z.n.n.{.{..XXX;X6XgXDXdXU Q Q Q Q Q Q Q MXLXLXNX; Q Q Q Q Q 5 B uXxXPXPXPX",
+"PXPX*.<.3.4.4.w.e.t.d.z.x.{.{.{..XXX;X6XgXzXKX~./ Q Q Q Q Q Q CXLXHXNX; Q Q Q Q 5 4 I.FXPXPXPXPX",
+"PXPX<.<.3.3.4.e.r.t.d.x.x.n.{.{.|.XX=X6XgXhXSXLXK./ Q Q Q Q Q '.[.[.`.> Q Q Q < 7 G.GX0XPXPXPXPX",
+"PXPX1.<.3.4.4.e.e.t.d.x.x.x.{.{.|.XX=X6XgXhXbXJXHXY.} Q Q Q Q Q Q Q Q Q Q Q < ) K.GXsXPXPXPXPXPX",
+"PXPXPX5.5.4.4.w.e.t.d.x.x.x.{.{..XXX;X6XgXzXvXSXFXHXyXo.( Q Q Q Q Q Q Q < / X.[.HXsXPXPXPXPXPXPX",
+"PXPXPXPXPX6.7.7.e.t.d.z.n.{.{.{..XXX;X6XgXhXvXnXFXKXKXHX[.J. .] ( ( `  .H.].GXFXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPX8.8.r.a.z.x.{.{.|.XX=X6XgXhXzXbXnXFXvXeXFXHXZXfXyXyXfXZXKXGXsXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXp.w.i.i.p.s.s.s.s.s.N.PXPXPXPXPXdXnXnXnXnXdXPXPXPXPXPXPXPXPXPXPXPXPX"
+};