From: guigues Date: Tue, 25 Mar 2008 10:31:18 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: r0.6.1~93 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=7447035e9cd3af93bb4e18183b7f08403c242349;p=bbtk.git *** empty log message *** --- diff --git a/kernel/cmake/BBTKCreatePackageBBdoc.cmake b/kernel/cmake/BBTKCreatePackageBBdoc.cmake index bd089db..b220f47 100644 --- a/kernel/cmake/BBTKCreatePackageBBdoc.cmake +++ b/kernel/cmake/BBTKCreatePackageBBdoc.cmake @@ -32,7 +32,7 @@ MACRO(BBTK_CREATE_PACKAGE_BBDOC PACKAGE_NAME) FILE(TO_NATIVE_PATH ${BBTK_BIN_PATH}/bb${BBTK_PACKAGE_NAME}.dll pathCommand2 ) set(command1 cd "${BBTK_BIN_PATH}/../bbs/") set(command2 copy ${pathCommand2} . ) - set(command3 ${BBTK_BBI} -n ${OUTPUT_FILE}) + set(command3 ${BBTK_BBI} -N ${OUTPUT_FILE}) set(command4 del bb${BBTK_PACKAGE_NAME}.dll) ADD_CUSTOM_COMMAND( @@ -46,7 +46,7 @@ MACRO(BBTK_CREATE_PACKAGE_BBDOC PACKAGE_NAME) ADD_CUSTOM_COMMAND( OUTPUT ${DOC_OUTPUT} COMMAND - cd ${BBTK_BIN_PATH} && ${BBTK_BBI} -n ${OUTPUT_FILE} + cd ${BBTK_BIN_PATH} && ${BBTK_BBI} -N ${OUTPUT_FILE} DEPENDS bb${PACKAGE_NAME} ) ENDIF(WIN32) diff --git a/kernel/src/bbtkWxGUIScriptingInterface.cxx b/kernel/src/bbtkWxGUIScriptingInterface.cxx index 8654ed2..a1d274d 100644 --- a/kernel/src/bbtkWxGUIScriptingInterface.cxx +++ b/kernel/src/bbtkWxGUIScriptingInterface.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIScriptingInterface.cxx,v $ Language: C++ - Date: $Date: 2008/03/21 14:59:39 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/03/25 10:31:18 $ + Version: $Revision: 1.3 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -53,7 +53,12 @@ namespace bbtk ID_Menu_CreateBlackBox, ID_Menu_ShowImageGraph, ID_Menu_CreateIndex, - ID_Button_Run + ID_Menu_Windows_Files, + ID_Menu_Windows_Help, + ID_Menu_Windows_Messages, + ID_Menu_Windows_Command, + ID_Menu_Windows_Save + // ID_Button_Run }; @@ -84,10 +89,23 @@ namespace bbtk menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last image graph") ); menuTools->Append( ID_Menu_CreateIndex, _T("&Generate index") ); + wxMenu *menuWindows = new wxMenu; + menuWindows->AppendCheckItem(ID_Menu_Windows_Files, + _T("Show 'files' panel") )->Check(); + menuWindows->AppendCheckItem(ID_Menu_Windows_Help, + _T("Show 'help' panel") )->Check(); + menuWindows->AppendCheckItem(ID_Menu_Windows_Messages, + _T("Show 'messages' panel") )->Check(); + menuWindows->AppendCheckItem(ID_Menu_Windows_Command, + _T("Show 'command' panel") )->Check(); + menuWindows->AppendSeparator(); + menuWindows->Append ( ID_Menu_Windows_Save, _T("Save interface configuration")); + wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( menuFile, _T("&File") ); menuBar->Append( menuTools, _T("&Tools") ); + menuBar->Append( menuWindows, _T("&Windows") ); menuBar->Append( menuAbout, _T("About") ); SetMenuBar( menuBar ); @@ -125,6 +143,7 @@ namespace bbtk .MinimizeButton(true) .MaximizeButton(true) .Center() + .MinSize(wxSize(100,100)) ); m_mgr.AddPane(mWxGUIHtmlBrowser, wxAuiPaneInfo().Name(wxT("browser_content")) @@ -132,6 +151,7 @@ namespace bbtk .MinimizeButton(true) .MaximizeButton(true) .Right() + .MinSize(wxSize(100,100)) ); m_mgr.AddPane(mWxGUIOutputMessages, wxAuiPaneInfo().Name(wxT("messages_content")) @@ -139,6 +159,7 @@ namespace bbtk .MinimizeButton(true) .MaximizeButton(true) .Bottom() + .MinSize(wxSize(100,100)) ); m_mgr.AddPane(mWxGUICommand, wxAuiPaneInfo().Name(wxT("command_content")) @@ -147,7 +168,8 @@ namespace bbtk .MaximizeButton(true) .Bottom() .Position(1) -); + .MinSize(wxSize(100,100)) + ); // m_mgr.AddPane(mwxButtonRun, // wxAuiPaneInfo().Name(wxT("button_run_content"))); @@ -207,9 +229,6 @@ namespace bbtk //================================================================ void WxGUIScriptingInterface::WxGUITextEditorRun() { - // wxString per = m_mgr.SavePerspective(); - // std::cout << per<< std::endl; - // wxString temp = mWxGUIHtmlBrowser->GetCurrentPage(); std::stringstream* buf = new std::stringstream; (*buf) << mWxGUITextEditor->GetCurrentPage()->GetText(); @@ -400,6 +419,66 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); } //================================================================ + void WxGUIScriptingInterface::OnMenuWindowsCheck( wxCommandEvent& event, + wxWindow* w) + { + bool checked = event.IsChecked(); + bool shown = m_mgr.GetPane(w).IsShown(); + // std::cout << "checked = "<name<<"'"<Add( mwxButtonOpen ); + wxBitmap bmp_close(cc_stop_xpm); + mwxButtonClose = new wxBitmapButton( btnsCtrlPanel,ID_ButtonClose,bmp_close);//,_T("Open") ); + btnsSizer->Add( mwxButtonClose ); wxBitmap bmp_save(cc_save_xpm); mwxButtonSave = new wxBitmapButton( btnsCtrlPanel,ID_ButtonSave,bmp_save);//_T("Save") ); btnsSizer->Add( mwxButtonSave ); + wxBitmap bmp_saveas(cc_save_as_xpm); + mwxButtonSaveAs = new wxBitmapButton( btnsCtrlPanel,ID_ButtonSaveAs,bmp_saveas);//_T("Save") ); + btnsSizer->Add( mwxButtonSaveAs ); wxBitmap bmp_run(cc_run_xpm); mwxButtonRun = new wxBitmapButton( btnsCtrlPanel,ID_ButtonRun,bmp_run);//_T("Run") ); @@ -352,6 +360,34 @@ namespace bbtk } //================================================================ + //================================================================ + void WxGUITextEditor::OnButtonClose(wxCommandEvent& event) + { + std::cout << "-------------- CLOSE ---------------"<GetPageCount()==0) return; + if (GetCurrentPage()->IsModified()) + { + wxMessageDialog* d = + new wxMessageDialog(this, + _T("Buffer modified. Save it ?"), + _T("Save buffer"), + wxYES_NO | wxCANCEL | wxICON_QUESTION); + switch (d->ShowModal()) + { + case wxID_CANCEL : + return; + break; + case wxID_YES : + GetCurrentPage()->Save(mFileNameFilter); + break; + case wxID_NO : ; + } + } + mwxNotebook->DeletePage(mwxNotebook->GetSelection()); + FocusOnCurrentPage(); + } + //================================================================ + //================================================================ void WxGUITextEditor::OnButtonSave(wxCommandEvent& event) { @@ -367,6 +403,15 @@ namespace bbtk } //================================================================ + //================================================================ + void WxGUITextEditor::OnButtonSaveAs(wxCommandEvent& event) + { + if (mwxNotebook->GetPageCount()==0) return; + GetCurrentPage()->SetAskFilename(true); + Save(); + } + //================================================================ + //================================================================ void WxGUITextEditor::OnPageClose(wxAuiNotebookEvent& evt) { @@ -395,6 +440,7 @@ namespace bbtk //================================================================ + /* //================================================================ void WxGUITextEditor::OnButtonQuit(wxCommandEvent& event) @@ -413,7 +459,8 @@ namespace bbtk //================================================================ void WxGUITextEditor::OnButtonRun(wxCommandEvent& event) { - if (mUser!=0) mUser->WxGUITextEditorRun(); + if ((mUser!=0) && (mwxNotebook->GetPageCount()>0)) + mUser->WxGUITextEditorRun(); FocusOnCurrentPage(); } @@ -526,7 +573,9 @@ namespace bbtk // EVT_CHAR(WxGUITextEditor::OnKeyPress) EVT_BUTTON(WxGUITextEditor::ID_ButtonNew, WxGUITextEditor::OnButtonNew) EVT_BUTTON(WxGUITextEditor::ID_ButtonOpen, WxGUITextEditor::OnButtonOpen) + EVT_BUTTON(WxGUITextEditor::ID_ButtonClose, WxGUITextEditor::OnButtonClose) EVT_BUTTON(WxGUITextEditor::ID_ButtonSave, WxGUITextEditor::OnButtonSave) + EVT_BUTTON(WxGUITextEditor::ID_ButtonSaveAs, WxGUITextEditor::OnButtonSaveAs) EVT_BUTTON(WxGUITextEditor::ID_ButtonRun, WxGUITextEditor::OnButtonRun) // EVT_BUTTON(WxGUITextEditor::ID_ButtonQuit, WxGUITextEditor::OnButtonQuit) EVT_AUINOTEBOOK_PAGE_CLOSE(wxID_ANY, WxGUITextEditor::OnPageClose) diff --git a/kernel/src/bbtkWxGUITextEditor.h b/kernel/src/bbtkWxGUITextEditor.h index 0f08e15..cf97f64 100644 --- a/kernel/src/bbtkWxGUITextEditor.h +++ b/kernel/src/bbtkWxGUITextEditor.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUITextEditor.h,v $ Language: C++ - Date: $Date: 2008/03/21 14:59:39 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/03/25 10:31:18 $ + Version: $Revision: 1.3 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -73,6 +73,7 @@ namespace bbtk const std::string& GetPageName() const { return mName; } bool AskFilename() const { return mAskFilename; } + void SetAskFilename(bool a) { mAskFilename=a; } WxTextCtrlGettingKeyEvents* GetTextCtrl() { return mwxInputText; } @@ -115,7 +116,9 @@ namespace bbtk void OnButtonNew(wxCommandEvent& event); void OnButtonOpen(wxCommandEvent& event); + void OnButtonClose(wxCommandEvent& event); void OnButtonSave(wxCommandEvent& event); + void OnButtonSaveAs(wxCommandEvent& event); void OnButtonRun(wxCommandEvent& event); // void OnButtonQuit(wxCommandEvent& event); void OnPageClose(wxAuiNotebookEvent& evt); @@ -148,7 +151,9 @@ namespace bbtk wxButton * mwxButtonNew; wxButton * mwxButtonOpen; + wxButton * mwxButtonClose; wxButton * mwxButtonSave; + wxButton * mwxButtonSaveAs; wxButton * mwxButtonRun; // wxButton * mwxButtonQuit; wxStaticText* mwxPosition; @@ -161,7 +166,9 @@ namespace bbtk { ID_ButtonNew, ID_ButtonOpen, + ID_ButtonClose, ID_ButtonSave, + ID_ButtonSaveAs, ID_ButtonRun // ID_ButtonQuit }; diff --git a/kernel/src/icons/cc_save_as.xpm b/kernel/src/icons/cc_save_as.xpm new file mode 100644 index 0000000..3978476 --- /dev/null +++ b/kernel/src/icons/cc_save_as.xpm @@ -0,0 +1,302 @@ +/* XPM */ +static char * cc_save_as_xpm[] = { +"32 32 267 2", +" c None", +". c #020202", +"+ c #010101", +"@ c #000000", +"# c #181818", +"$ c #606060", +"% c #777777", +"& c #858585", +"* c #868686", +"= c #878787", +"- c #888888", +"; c #898989", +"> c #848484", +", c #808080", +"' c #7F7F7F", +") c #7E7E7E", +"! c #7A7A7A", +"~ c #787878", +"{ c #767676", +"] c #717171", +"^ c #707070", +"/ c #6E6E6E", +"( c #6C6C6C", +"_ c #545454", +": c #3E3E3E", +"< c #090909", +"[ c #2D2D2D", +"} c #929292", +"| c #C9C9C9", +"1 c #E9E9E9", +"2 c #EBEBEB", +"3 c #ECECEC", +"4 c #EEEEEE", +"5 c #EFEFEF", +"6 c #F0F0F0", +"7 c #F1F1F1", +"8 c #EDEDED", +"9 c #EAEAEA", +"0 c #E7E7E7", +"a c #E5E5E5", +"b c #DFDFDF", +"c c #A7A7A7", +"d c #191919", +"e c #393939", +"f c #E8E8E8", +"g c #E2E2E2", +"h c #A3A3A3", +"i c #1D1D1D", +"j c #424242", +"k c #7D7D7D", +"l c #CACACA", +"m c #E6E6E6", +"n c #E3E3E3", +"o c #646464", +"p c #101010", +"q c #747474", +"r c #CECECE", +"s c #F2F2F2", +"t c #F4F4F4", +"u c #F3F3F3", +"v c #E4E4E4", +"w c #AFAFAF", +"x c #3C3C3C", +"y c #030303", +"z c #3F3F3F", +"A c #6B6B6B", +"B c #D1D1D1", +"C c #AEAEAE", +"D c #151515", +"E c #050505", +"F c #D5D5D5", +"G c #F5F5F5", +"H c #F6F6F6", +"I c #A5A5A5", +"J c #0D0D0D", +"K c #060606", +"L c #333333", +"M c #5F5F5F", +"N c #D8D8D8", +"O c #141414", +"P c #0B0B0B", +"Q c #2F2F2F", +"R c #DCDCDC", +"S c #DADADA", +"T c #BCBCBC", +"U c #202020", +"V c #2B2B2B", +"W c #E0E0E0", +"X c #F7F7F7", +"Y c #F9F9F9", +"Z c #FAFAFA", +"` c #FBFBFB", +" . c #C7C7C7", +".. c #080808", +"+. c #161616", +"@. c #272727", +"#. c #DEDEDE", +"$. c #CDCDCD", +"%. c #3D3D3D", +"&. c #1C1C1C", +"*. c #242424", +"=. c #7C7C7C", +"-. c #D9D9D9", +";. c #474747", +">. c #0E0E0E", +",. c #212121", +"'. c #232323", +"). c #303030", +"!. c #484848", +"~. c #4A4A4A", +"{. c #494949", +"]. c #4D4D4D", +"^. c #4E4E4E", +"/. c #4F4F4F", +"(. c #525252", +"_. c #515151", +":. c #4C4C4C", +"<. c #4B4B4B", +"[. c #464646", +"}. c #222222", +"|. c #1B1B1B", +"1. c #262626", +"2. c #252525", +"3. c #1E1E1E", +"4. c #1A1A1A", +"5. c #1F1F1F", +"6. c #454545", +"7. c #434343", +"8. c #414141", +"9. c #282828", +"0. c #2E2E2E", +"a. c #353535", +"b. c #959595", +"c. c #B4B4B4", +"d. c #ACACAC", +"e. c #BABABA", +"f. c #BDBDBD", +"g. c #BFBFBF", +"h. c #C1C1C1", +"i. c #C2C2C2", +"j. c #C4C4C4", +"k. c #C5C5C5", +"l. c #969696", +"m. c #535353", +"n. c #292929", +"o. c #363636", +"p. c #343434", +"q. c #B5B5B5", +"r. c #B1B1B1", +"s. c #656565", +"t. c #6A6A6A", +"u. c #DDDDDD", +"v. c #444444", +"w. c #2C2C2C", +"x. c #3B3B3B", +"y. c #313131", +"z. c #9C9C9C", +"A. c #B7B7B7", +"B. c #D7D7D7", +"C. c #BEBEBE", +"D. c #464546", +"E. c #4A494A", +"F. c #4B4C4B", +"G. c #403F40", +"H. c #383838", +"I. c #404040", +"J. c #505050", +"K. c #D3D3D3", +"L. c #DBDBDB", +"M. c #E1E1E1", +"N. c #515251", +"O. c #334733", +"P. c #245824", +"Q. c #245F24", +"R. c #205720", +"S. c #2C492C", +"T. c #3B3F3B", +"U. c #3A3A3A", +"V. c #C0C0C0", +"W. c #CFCFCF", +"X. c #D4D4D4", +"Y. c #D6D6D6", +"Z. c #CCCCCC", +"`. c #B9BBB9", +" + c #346334", +".+ c #359435", +"++ c #8CD08C", +"@+ c #ABDFAB", +"#+ c #A1D9A1", +"$+ c #5BAF5B", +"%+ c #1D5E1D", +"&+ c #171717", +"*+ c #5E5E5E", +"=+ c #5C5C5C", +"-+ c #5B5B5B", +";+ c #686868", +">+ c #D0D0D0", +",+ c #D2D2D2", +"'+ c #6F956F", +")+ c #40A540", +"!+ c #9DE69D", +"~+ c #B6EFB6", +"{+ c #B5EEB5", +"]+ c #AFEEAF", +"^+ c #6EC56E", +"/+ c #106210", +"(+ c #919191", +"_+ c #C8CEC8", +":+ c #328932", +"<+ c #61D361", +"[+ c #7BE07B", +"}+ c #79DF79", +"|+ c #77DE77", +"1+ c #68D968", +"2+ c #1D951D", +"3+ c #5D5D5D", +"4+ c #9D9D9D", +"5+ c #B8B8B8", +"6+ c #B6B6B6", +"7+ c #B2B2B2", +"8+ c #A9A9A9", +"9+ c #A0A0A0", +"0+ c #979797", +"a+ c #939393", +"b+ c #8F8F8F", +"c+ c #8C8B8C", +"d+ c #627162", +"e+ c #1A961A", +"f+ c #3FD03F", +"g+ c #42D042", +"h+ c #37CA37", +"i+ c #1CBC1C", +"j+ c #0AB50A", +"k+ c #02A102", +"l+ c #005100", +"m+ c #079407", +"n+ c #13C313", +"o+ c #13C113", +"p+ c #0EBB0E", +"q+ c #04B304", +"r+ c #00B000", +"s+ c #00B200", +"t+ c #00A300", +"u+ c #008000", +"v+ c #01BD01", +"w+ c #01BE01", +"x+ c #00BD00", +"y+ c #00BF00", +"z+ c #009E00", +"A+ c #014F01", +"B+ c #0AAE0A", +"C+ c #0EC90E", +"D+ c #0EC80E", +"E+ c #0CC00C", +"F+ c #036E03", +"G+ c #086108", +"H+ c #1DB21D", +"I+ c #28CD28", +"J+ c #2AD12A", +"K+ c #29CF29", +"L+ c #22C022", +"M+ c #0E7C0E", +"N+ c #084508", +"O+ c #136F13", +"P+ c #1A7F1A", +"Q+ c #167816", +"R+ c #0B550B", +" ", +" ", +" ", +" . . . . . . . + @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", +" # $ % & * = - ; & > , ' ) ) ) ! ~ { ] ^ / ( _ : < ", +" [ } | 1 2 3 4 5 6 7 6 7 6 6 5 5 8 3 9 0 a b c , d ", +" @ e & | f 1 3 8 4 5 6 6 7 7 6 6 5 4 3 2 1 0 g h ~ i ", +" @ j k l m m 0 f 9 9 2 2 3 3 2 2 9 1 f 0 a n g c o p ", +" + j q r 1 2 8 5 7 s t t t t t u s 6 5 3 9 0 v w x . ", +" y z A B v a 0 f 1 9 2 2 2 2 2 9 9 1 0 m v g g C D @ @ ", +" E e o F 1 2 4 6 u t G H H H G t t s 6 4 2 f m I J @ @ ", +" K L M N f 2 4 6 s u G H H H G t u s 6 8 9 m b w O @ @ ", +" P Q $ R 0 9 8 6 s u G G G G G t u 7 6 8 9 g S T U + y ", +" p V ( W 2 4 s G X Y Z ` ` ` Z Z Y H t 7 2 v b .[ E .. ", +" +.@.! #.n m 1 2 8 5 5 5 6 6 5 5 4 3 9 v W R N $.%.< J ", +" &.*.=.-.#.n 0 9 3 4 5 6 6 G G t s 6 4 9 m W S $.;.>.O ", +" p ,.'.).!.~.{.].^./././././._ _ (.(._./.^.].:.<.[.}.+.|. ", +" d 1.2.3.&.4.5.6.^.^.^.^.].:.<.<.<.<.<.!.!.7.j 7.8.9.i *.# ", +" '.0.0.1.'.,.a.b.c.d.d.w e.f.g.h.i.j.k. .| l.m._._.x n.0.U ", +" [ o.o.p.V 1.z q.r.s.$ t.i.u.b g a f 9 8 s j.m.~.<.v.o.o.w. ", +" o.z z z x.y.v.q.z.;.v./.A.B.-.R b g a f f C.(.D.E.F.z G.H. ", +" I.{.!.!.!.v.J.A.l.v.8.:.c.K.F N L.#.M.#.K.e.N.O.P.Q.R.S.T. ", +" U._ (._._.J.$ V.} j z {.r.W.B X.Y.Y.B Z.Z.`. +.+++@+#+$+%+ ", +" &+z M *+=+-+( .h s.$ ;+f.>+>+>+>+>+B ,+B '+)+!+~+{+~+]+^+/+ ", +" +.7.A ~ =.(+g f R L.#.1 9 1 f f f 0 0 _+:+<+[+}+}+}+|+1+2+ ", +" L 6.].3+4+5+6+7+C 8+I 9+z.0+a+b+c+d+e+f+g+g+g+h+i+j+k+l+", +" m+n+o+o+p+q+r+s+t+l+", +" u+v+w+w+x+x+x+y+z+ ", +" A+B+C+D+D+D+C+E+F+ ", +" G+H+I+J+K+L+M+ ", +" N+O+P+Q+R+ ", +" "}; diff --git a/kernel/src/icons/cc_stop.xpm b/kernel/src/icons/cc_stop.xpm new file mode 100644 index 0000000..aa8af9f --- /dev/null +++ b/kernel/src/icons/cc_stop.xpm @@ -0,0 +1,434 @@ +/* XPM */ +static char * cc_stop_xpm[] = { +"32 32 399 2", +" c None", +". c #D40505", +"+ c #EC1F1F", +"@ c #EE2727", +"# c #EE2626", +"$ c #E71313", +"% c #DD0A0A", +"& c #F85F5F", +"* c #FFB3B3", +"= c #FFBABA", +"- c #FE9B9B", +"; c #EF2F2F", +"> c #E41313", +", c #FB7474", +"' c #FFC4C4", +") c #FFCDCD", +"! c #FFCCCC", +"~ c #FFAEAE", +"{ c #F44141", +"] c #D40404", +"^ c #E91E1E", +"/ c #FD8686", +"( c #FFC3C3", +"_ c #FFC5C5", +": c #FFC6C6", +"< c #FFB6B6", +"[ c #F85858", +"} c #DB0A0A", +"| c #EF2B2B", +"1 c #FE9494", +"2 c #FFBEBE", +"3 c #FFC1C1", +"4 c #FFD6D6", +"5 c #FFBDBD", +"6 c #FFCFCF", +"7 c #FFBFBF", +"8 c #FFB8B8", +"9 c #FB6F6F", +"0 c #E31313", +"a c #D40303", +"b c #F43B3B", +"c c #FF9E9E", +"d c #FFB9B9", +"e c #FFBCBC", +"f c #FFE2E2", +"g c #FFFDFD", +"h c #FFEDED", +"i c #FFB7B7", +"j c #FFD3D3", +"k c #FFF9F9", +"l c #FFF7F7", +"m c #FD8080", +"n c #EB1F1F", +"o c #DD0808", +"p c #F74F4F", +"q c #FFA3A3", +"r c #FFB2B2", +"s c #FFE4E4", +"t c #FFFEFE", +"u c #FFFFFF", +"v c #FFF0F0", +"w c #FFB0B0", +"x c #FFB1B1", +"y c #FFD4D4", +"z c #FFFAFA", +"A c #FE8E8E", +"B c #F02D2D", +"C c #D10101", +"D c #E30909", +"E c #FB5F5F", +"F c #FFA4A4", +"G c #FFABAB", +"H c #FDD7D7", +"I c #FFF2F2", +"J c #FFC0C0", +"K c #FFAAAA", +"L c #FFADAD", +"M c #FFD7D7", +"N c #FFFBFB", +"O c #FEF6F6", +"P c #FEBBBB", +"Q c #FFA9A9", +"R c #FFACAC", +"S c #FF9696", +"T c #F53B3B", +"U c #D40202", +"V c #F42121", +"W c #FF9999", +"X c #FFA5A5", +"Y c #F9B0B0", +"Z c #F9E4E4", +"` c #FFF4F4", +" . c #FFD9D9", +".. c #FFFCFC", +"+. c #FDFAFA", +"@. c #F6CBCB", +"#. c #FCA7A7", +"$. c #FFA7A7", +"%. c #FF8282", +"&. c #E70E0E", +"*. c #F42323", +"=. c #FF9494", +"-. c #FF9D9D", +";. c #FE9C9C", +">. c #F8A6A6", +",. c #F8DCDC", +"'. c #FFC9C9", +"). c #FFDDDD", +"!. c #FDF7F7", +"~. c #F5C2C2", +"{. c #FB9F9F", +"]. c #FF9393", +"^. c #FF3D3D", +"/. c #ED0202", +"(. c #F62121", +"_. c #FF8E8E", +":. c #F89E9E", +"<. c #F6D2D2", +"[. c #FEFCFC", +"}. c #FCF3F3", +"|. c #F4B9B9", +"1. c #FC9B9B", +"2. c #FF8585", +"3. c #FF3535", +"4. c #FF0303", +"5. c #EF0000", +"6. c #F62323", +"7. c #FF8A8A", +"8. c #FF8F8F", +"9. c #FF9090", +"0. c #FF9191", +"a. c #FF9292", +"b. c #F99898", +"c. c #F6CACA", +"d. c #FEFBFB", +"e. c #FBEEEE", +"f. c #F4B1B1", +"g. c #FC9797", +"h. c #FF9797", +"i. c #FF6E6E", +"j. c #FF2424", +"k. c #FF0101", +"l. c #F00000", +"m. c #B50000", +"n. c #F72222", +"o. c #FF8484", +"p. c #FF8989", +"q. c #FF8B8B", +"r. c #FF8D8D", +"s. c #FA9494", +"t. c #F7BEBE", +"u. c #FEF9F9", +"v. c #FBEAEA", +"w. c #F5A8A8", +"x. c #FD9595", +"y. c #FF8080", +"z. c #FF4747", +"A. c #FF1919", +"B. c #FF0B0B", +"C. c #FF0808", +"D. c #FF0505", +"E. c #F20202", +"F. c #B60000", +"G. c #F72020", +"H. c #FF7E7E", +"I. c #FF8383", +"J. c #FF8787", +"K. c #FCAFAF", +"L. c #FEF5F5", +"M. c #FCE0E0", +"N. c #FE9E9E", +"O. c #FF8181", +"P. c #FF5353", +"Q. c #FF2D2D", +"R. c #FF1A1A", +"S. c #FF1616", +"T. c #FF1212", +"U. c #FF0E0E", +"V. c #FF0A0A", +"W. c #F30606", +"X. c #BB0000", +"Y. c #F72323", +"Z. c #FF7A7A", +"`. c #FF8686", +" + c #FF8888", +".+ c #FFDBDB", +"++ c #FF6969", +"@+ c #FF3737", +"#+ c #FF2A2A", +"$+ c #FF2626", +"%+ c #FF2222", +"&+ c #FF1E1E", +"*+ c #FF1414", +"=+ c #FF1010", +"-+ c #F50A0A", +";+ c #C00000", +">+ c #F91C1C", +",+ c #FF5C5C", +"'+ c #FF6C6C", +")+ c #FF7575", +"!+ c #FF7C7C", +"~+ c #FFF5F5", +"{+ c #FF5858", +"]+ c #FF3333", +"^+ c #FF2F2F", +"/+ c #FF2B2B", +"(+ c #FF2020", +"_+ c #FF1B1B", +":+ c #FF1515", +"<+ c #F60F0F", +"[+ c #C50101", +"}+ c #F90707", +"|+ c #FF1111", +"1+ c #FF1C1C", +"2+ c #FF2929", +"3+ c #FF3F3F", +"4+ c #FF4E4E", +"5+ c #FFF8F8", +"6+ c #FEA6A6", +"7+ c #FECECE", +"8+ c #FF6767", +"9+ c #FF3838", +"0+ c #FF3434", +"a+ c #FF2E2E", +"b+ c #FF2828", +"c+ c #F71414", +"d+ c #CE0303", +"e+ c #FB0909", +"f+ c #FF0F0F", +"g+ c #FF3131", +"h+ c #FF9A9A", +"i+ c #FFF6F6", +"j+ c #FF4D4D", +"k+ c #FF5A5A", +"l+ c #FFE3E3", +"m+ c #FF7474", +"n+ c #FF3636", +"o+ c #F81919", +"p+ c #C60606", +"q+ c #F71212", +"r+ c #FF2121", +"s+ c #FD9292", +"t+ c #FF6565", +"u+ c #FF6363", +"v+ c #FF5E5E", +"w+ c #FEE5E5", +"x+ c #FE6565", +"y+ c #FF3030", +"z+ c #F22727", +"A+ c #A80101", +"B+ c #CC0C0C", +"C+ c #F52020", +"D+ c #FF2727", +"E+ c #F45151", +"F+ c #FAD0D0", +"G+ c #FFECEC", +"H+ c #FF6464", +"I+ c #FF6F6F", +"J+ c #FF7272", +"K+ c #FEADAD", +"L+ c #ED9C9C", +"M+ c #F85050", +"N+ c #FF3A3A", +"O+ c #F23737", +"P+ c #C31313", +"Q+ c #B70000", +"R+ c #C80D0D", +"S+ c #F12D2D", +"T+ c #FD3939", +"U+ c #FBC4C4", +"V+ c #FF7F7F", +"W+ c #FF7777", +"X+ c #FE6B6B", +"Y+ c #FCA3A3", +"Z+ c #FDF5F5", +"`+ c #F09191", +" @ c #F45353", +".@ c #FE5656", +"+@ c #FF4F4F", +"@@ c #EE4242", +"#@ c #C21111", +"$@ c #B10000", +"%@ c #AF0000", +"&@ c #BD0000", +"*@ c #C80C0C", +"=@ c #ED3737", +"-@ c #FF4343", +";@ c #FF4444", +">@ c #FE4A4A", +",@ c #FB5454", +"'@ c #FDA0A0", +")@ c #FF8C8C", +"!@ c #FC7474", +"~@ c #F78E8E", +"{@ c #F28383", +"]@ c #F86262", +"^@ c #FF6161", +"/@ c #FE6060", +"(@ c #E94747", +"_@ c #C30E0E", +":@ c #9C0000", +"<@ c #AB0000", +"[@ c #C40000", +"}@ c #CA0A0A", +"|@ c #E93C3C", +"1@ c #FE5555", +"2@ c #FF5555", +"3@ c #FE5A5A", +"4@ c #FF6D6D", +"5@ c #FF9C9C", +"6@ c #FF9F9F", +"7@ c #FFA0A0", +"8@ c #FB7C7C", +"9@ c #FB7777", +"0@ c #FF7D7D", +"a@ c #FD7474", +"b@ c #E54848", +"c@ c #C50A0A", +"d@ c #BC0000", +"e@ c #960000", +"f@ c #A50000", +"g@ c #C90000", +"h@ c #CD0606", +"i@ c #E53A3A", +"j@ c #FD6868", +"k@ c #FF6868", +"l@ c #FF7171", +"m@ c #FF9B9B", +"n@ c #FFAFAF", +"o@ c #FC8787", +"p@ c #E24545", +"q@ c #C90606", +"r@ c #C10000", +"s@ c #910000", +"t@ c #9B0000", +"u@ c #CE0000", +"v@ c #D20303", +"w@ c #E33535", +"x@ c #FFC2C2", +"y@ c #FFA8A8", +"z@ c #FB9595", +"A@ c #E03F3F", +"B@ c #CE0404", +"C@ c #C50000", +"D@ c #D20000", +"E@ c #D70101", +"F@ c #E32C2C", +"G@ c #F77F7F", +"H@ c #FB9D9D", +"I@ c #FBA6A6", +"J@ c #FBAEAE", +"K@ c #FBB6B6", +"L@ c #FBBBBB", +"M@ c #FBBFBF", +"N@ c #FBC0C0", +"O@ c #FBB5B5", +"P@ c #FBAFAF", +"Q@ c #F79898", +"R@ c #E03535", +"S@ c #C70000", +"T@ c #D00606", +"U@ c #DD0202", +"V@ c #E00F0F", +"W@ c #E31616", +"X@ c #E41717", +"Y@ c #E41818", +"Z@ c #E41919", +"`@ c #E51A1A", +" # c #E51B1B", +".# c #E41B1B", +"+# c #E31B1B", +"@# c #E11A1A", +"## c #E01919", +"$# c #DD1212", +"%# c #D90101", +"&# c #CD0F0F", +"*# c #E20404", +"=# c #E40000", +"-# c #E50101", +";# c #E60101", +"># c #E70101", +",# c #E60000", +"'# c #E50000", +")# c #E30000", +"!# c #E10000", +"~# c #DF0000", +"{# c #B51717", +"]# c #CB1B1B", +"^# c #CC2121", +"/# c #CC2727", +"(# c #CC2C2C", +"_# c #CD2C2C", +":# c #CD2727", +"<# c #CD2121", +"[# c #CC1B1B", +"}# c #CC1414", +"|# c #CB0E0E", +"1# c #CB0707", +"2# c #CA0101", +" ", +" . + @ @ @ @ @ @ @ @ @ # $ ", +" % & * = = = = = = = = = = - ; ", +" > , ' ) ! ! ! ! ! ! ! ! ! ! ) ~ { ] ", +" ^ / ( _ ' ' ' ' ' ' ' ' ' ' ' ' : < [ } ", +" | 1 2 3 4 : 5 2 2 2 2 2 2 2 2 2 6 ) 7 8 9 0 ", +" a b c d e f g h ( < i i i i i i 8 j k l 6 8 i m n ", +" o p q r d s t u u v 3 w x x x x r y z u u k 6 * r A B C ", +" D E F G G H t u u u u I J K K K L M N u u u u O P Q R S T U ", +" V W X F F Y Z t u u u u ` 3 X K ...u u u u +.@.#.F F $.%.&. ", +" *.=.c -.-.;.>.,.t u u u u l '.).g u u u u !.~.{.-.-.c ].^./. ", +" (._.S S S S S :.<.[.u u u u ..t u u u u }.|.1.W W W 2.3.4.5. ", +" 6.7.8.8.9.0.a.].b.c.d.u u u u u u u u e.f.g.h.h.].i.j.4.k.l. ", +"m.n.o.p.7.q.r._.9.0.s.t.u.u u u u u u v.w.x.h.].y.z.A.B.C.D.E. ", +"F.G.H.I.2.J.p.q.r.8.9.K.L.u u u u u u M.N.0.O.P.Q.R.S.T.U.V.W. ", +"X.Y.Z.y.O.o.`. +7.r.r I u u u u u u u u .+++@+#+$+%+&+A.*+=+-+ ", +";+>+,+'+)+!+O.o.p.d ~+u u u u u u u u u t ) {+]+^+/+$+(+_+:+<+ ", +"[+}+|+1+2+3.3+4+R k u u u u 5+6+7+u u u u u .8+9+0+a+b+%+1+c+ ", +"d+e+f+*+R.(+g+h+i+u u u u i+a.j+k+' t u u u u l+m+^.n+^+2+%+o+ ", +"p+q+*+R.r+2+s+z u u u u I 9.k+t+u+v+d g u u u u w+x+^.@+y+#+z+ ", +"A+B+C+%+D+a+E+F+u u u G+7.H+I+J+)+J+t+K+z u u u.L+M+z.3+N+O+P+ ", +" Q+R+S+g+3.T+p U+u s V+++W+!+y.%.I.y.X+Y+5+Z+`+ @.@+@j+@@#@$@ ", +" %@&@*@=@-@;@>@,@'@m+'+!+I.p._.0.a.9.)@!@~@{@]@++^@/@(@_@Q+:@ ", +" <@[@}@|@1@2@,+3@4@H.J.8.S 5@6@7@6@5@S 8@9@0@m+a@b@c@d@e@ ", +" f@g@h@i@j@k@l@!+J.a.m@q K ~ n@~ K q m@0.p.o@p@q@r@s@ ", +" t@u@v@w@9@H.J.].c Q r = J x@J = r y@7@z@A@B@C@ ", +" D@E@F@G@z@H@I@J@K@L@M@N@M@L@O@P@Q@R@U S@ ", +" T@U@V@W@X@Y@Z@`@ #.#.#.#+#@###$#%#S@ ", +" &#*#=#-#;#;#>#>#,#,#'#=#)#!#~#C@ ", +" {#]#^#/#(#_#:#<#[#}#|#1#2#%@ ", +" ", +" "};