summaryrefslogtreecommitdiff
path: root/LiteEditor
diff options
context:
space:
mode:
authorAlessio Treglia <alessio@debian.org>2010-07-29 14:07:51 +0200
committerAlessio Treglia <alessio@debian.org>2010-07-29 14:07:51 +0200
commit3aaf99776a19410a065e341fa5ffd35aa26f8b9a (patch)
treef4f25d175c172e6c309e3feac13aae49f6cb38d5 /LiteEditor
parentbd7ae7fd2a68eeb7067bd7e4edf978a78ed231ba (diff)
Imported Upstream version 2.6.0.4189~dfsg
Diffstat (limited to 'LiteEditor')
-rw-r--r--LiteEditor/LiteEditor.project4
-rw-r--r--LiteEditor/app.cpp2
-rw-r--r--LiteEditor/cc_box.cpp1431
-rw-r--r--LiteEditor/cc_box.h244
-rw-r--r--LiteEditor/cc_boxbase.cpp35
-rw-r--r--LiteEditor/cc_boxbase.h67
-rw-r--r--LiteEditor/ccvirtuallistctrl.cpp10
-rw-r--r--LiteEditor/ccvirtuallistctrl.h57
-rw-r--r--LiteEditor/cl_editor.cpp166
-rw-r--r--LiteEditor/cl_editor.h46
-rw-r--r--LiteEditor/clang_code_completion.cpp428
-rw-r--r--LiteEditor/clang_code_completion.h58
-rw-r--r--LiteEditor/context_cpp.cpp328
-rw-r--r--LiteEditor/fileview.cpp101
-rw-r--r--LiteEditor/findinfilesdlg.cpp12
-rw-r--r--LiteEditor/findresultstab.cpp5
-rw-r--r--LiteEditor/frame.cpp116
-rw-r--r--LiteEditor/frame.h3
-rw-r--r--LiteEditor/lexer_page.cpp18
-rw-r--r--LiteEditor/mainbook.cpp65
-rw-r--r--LiteEditor/mainbook.h24
-rw-r--r--LiteEditor/manager.cpp20
-rw-r--r--LiteEditor/menu_event_handlers.cpp3
-rw-r--r--LiteEditor/newquickwatch.cpp1
-rw-r--r--LiteEditor/newquickwatch.fbp2
-rw-r--r--LiteEditor/output_pane.cpp20
-rw-r--r--LiteEditor/output_pane.h74
-rw-r--r--LiteEditor/quickfindbar.cpp33
-rw-r--r--LiteEditor/quickoutlinedlg.cpp6
-rw-r--r--LiteEditor/res/16/help_browser.pngbin0 -> 970 bytes
-rw-r--r--LiteEditor/res/16/note.pngbin0 -> 539 bytes
-rw-r--r--LiteEditor/res/cursor.pngbin0 -> 354 bytes
-rw-r--r--LiteEditor/res/folder_orange.pngbin0 -> 396 bytes
-rw-r--r--LiteEditor/resources.cpp2597
-rw-r--r--LiteEditor/resources.xrc4
-rw-r--r--LiteEditor/svninfo.cpp2
-rw-r--r--LiteEditor/syntaxhighlightdlg.cpp8
-rw-r--r--LiteEditor/tabgroupspane.cpp2
-rw-r--r--LiteEditor/tags_options_base_dlg.cpp13
-rw-r--r--LiteEditor/tags_options_base_dlg.h4
-rw-r--r--LiteEditor/tags_options_dlg.cpp10
-rw-r--r--LiteEditor/webupdatethread.cpp67
-rw-r--r--LiteEditor/workspace_pane.cpp171
-rw-r--r--LiteEditor/workspace_pane.h21
-rw-r--r--LiteEditor/workspacetab.cpp2
45 files changed, 3791 insertions, 2489 deletions
diff --git a/LiteEditor/LiteEditor.project b/LiteEditor/LiteEditor.project
index 9a478857..f50c8359 100644
--- a/LiteEditor/LiteEditor.project
+++ b/LiteEditor/LiteEditor.project
@@ -711,6 +711,10 @@
<Project Name="Subversion2"/>
<Project Name="SymbolView"/>
</Dependencies>
+ <VirtualDirectory Name="ClangCodeCompletion">
+ <File Name="clang_code_completion.h"/>
+ <File Name="clang_code_completion.cpp"/>
+ </VirtualDirectory>
<Settings Type="Executable">
<Configuration Name="Unix" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
<Compiler Options="$(shell wx-config --cxxflags --debug=no --unicode=yes);-O2;$(shell pkg-config --cflags gtk+-2.0);-Wall;-fno-strict-aliasing" Required="yes" PreCompiledHeader="">
diff --git a/LiteEditor/app.cpp b/LiteEditor/app.cpp
index 38ac5668..4ebb1ecc 100644
--- a/LiteEditor/app.cpp
+++ b/LiteEditor/app.cpp
@@ -63,7 +63,7 @@
// Define the version string for this codelite
//////////////////////////////////////////////
extern wxChar *SvnRevision;
-wxString CODELITE_VERSION_STR = wxString::Format(wxT("v2.5.3.%s"), SvnRevision);
+wxString CODELITE_VERSION_STR = wxString::Format(wxT("v2.6.0.%s"), SvnRevision);
#if defined(__WXMAC__)||defined(__WXGTK__)
#include <signal.h> // sigprocmask
diff --git a/LiteEditor/cc_box.cpp b/LiteEditor/cc_box.cpp
index c1d0a91f..cff40ada 100644
--- a/LiteEditor/cc_box.cpp
+++ b/LiteEditor/cc_box.cpp
@@ -1,536 +1,897 @@
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-//
-// copyright : (C) 2008 by Eran Ifrah
-// file name : cc_box.cpp
-//
-// -------------------------------------------------------------------------
-// A
-// _____ _ _ _ _
-// / __ \ | | | | (_) |
-// | / \/ ___ __| | ___| | _| |_ ___
-// | | / _ \ / _ |/ _ \ | | | __/ _ )
-// | \__/\ (_) | (_| | __/ |___| | || __/
-// \____/\___/ \__,_|\___\_____/_|\__\___|
-//
-// F i l e
-//
-// 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.
-//
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-#include "cc_box.h"
-#include "editor_config.h"
-#include "cl_editor_tip_window.h"
-#include "cl_editor.h"
-#include "globals.h"
-#include <wx/imaglist.h>
-#include <wx/xrc/xmlres.h>
-#include "entry.h"
-#include "plugin.h"
-
-#define BOX_HEIGHT 250
-#define BOX_WIDTH 400
-
-CCBox::CCBox(LEditor* parent, bool autoHide, bool autoInsertSingleChoice)
- :
- CCBoxBase(parent, wxID_ANY, wxDefaultPosition, wxSize(0, 0))
- , m_showFullDecl(false)
- , m_height(BOX_HEIGHT)
- , m_autoHide(autoHide)
- , m_insertSingleChoice(autoInsertSingleChoice)
- , m_owner(NULL)
-{
- m_constructing = true;
- HideCCBox();
-
- // load all the CC images
- wxImageList *il = new wxImageList(16, 16, true);
-
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("class")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("struct")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("namespace")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_public")));
-
- wxBitmap m_tpyedefBmp = wxXmlResource::Get()->LoadBitmap(wxT("typedef"));
- m_tpyedefBmp.SetMask(new wxMask(m_tpyedefBmp, wxColor(0, 128, 128)));
- il->Add(m_tpyedefBmp);
-
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_private")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_public")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_protected")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("func_private")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("func_public")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("func_protected")));
- wxBitmap m_macroBmp = wxXmlResource::Get()->LoadBitmap(wxT("typedef"));
- m_macroBmp.SetMask(new wxMask(m_macroBmp, wxColor(0, 128, 128)));
- il->Add(m_macroBmp);
-
- wxBitmap m_enumBmp = wxXmlResource::Get()->LoadBitmap(wxT("enum"));
- m_enumBmp.SetMask(new wxMask(m_enumBmp, wxColor(0, 128, 128)));
- il->Add(m_enumBmp);
-
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("enumerator")));
-
- //Initialise the file bitmaps
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_cplusplus")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_h")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_text")));
- il->Add(wxXmlResource::Get()->LoadBitmap(wxT("cpp_keyword")));
-
- // assign the image list and let the control take owner ship (i.e. delete it)
- m_listCtrl->AssignImageList(il, wxIMAGE_LIST_SMALL);
- m_listCtrl->InsertColumn(0, wxT("Name"));
- m_listCtrl->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
- m_listCtrl->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT));
-
- m_listCtrl->SetFocus();
- // return the focus to scintilla
- parent->SetActive();
- m_constructing = false;
-}
-
-void CCBox::OnItemActivated( wxListEvent& event )
-{
- m_selectedItem = event.m_itemIndex;
- InsertSelection();
- HideCCBox();
-
- LEditor *editor = (LEditor*)GetParent();
- if (editor) {
- editor->SetActive();
- }
-}
-
-void CCBox::OnItemDeSelected( wxListEvent& event )
-{
-#ifdef __WXMAC__
- m_listCtrl->Select(event.m_itemIndex, false);
-#endif
- m_selectedItem = wxNOT_FOUND;
-}
-
-void CCBox::OnItemSelected( wxListEvent& event )
-{
- m_selectedItem = event.m_itemIndex;
-}
-
-void CCBox::Show(const std::vector<TagEntryPtr> &tags, const wxString &word, bool showFullDecl, wxEvtHandler *owner)
-{
- if (tags.empty()) {
- return;
- }
-
- //m_height = BOX_HEIGHT;
- m_tags = tags;
- m_showFullDecl = showFullDecl;
- m_owner = owner;
- Show(word);
-}
-
-void CCBox::Adjust()
-{
- LEditor *parent = (LEditor*)GetParent();
-
- int point = parent->GetCurrentPos();
- wxPoint pt = parent->PointFromPosition(point);
-
- // add the line height
- int hh = parent->GetCurrLineHeight();
- pt.y += hh;
-
- wxSize size = parent->GetClientSize();
- int diff = size.y - pt.y;
- m_height = BOX_HEIGHT;
- if (diff < BOX_HEIGHT) {
- pt.y -= BOX_HEIGHT;
- pt.y -= hh;
-
- if (pt.y < 0) {
- // the completion box is out of screen, resotre original size
- pt.y += BOX_HEIGHT;
- pt.y += hh;
- m_height = diff;
- }
- }
-
- // adjust the X axis
- if (size.x - pt.x < BOX_WIDTH) {
- // the box is too wide to fit the screen
- if (size.x > BOX_WIDTH) {
- // the screen can contain the completion box
- pt.x = size.x - BOX_WIDTH;
- } else {
- // this will provive the maximum visible area
- pt.x = 0;
- }
- }
- Move(pt);
-}
-
-bool CCBox::SelectWord(const wxString& word)
-{
- bool fullMatch;
- long item = m_listCtrl->FindMatch(word, fullMatch);
- if (item != wxNOT_FOUND) {
- // first unselect the current item
- if (m_selectedItem != wxNOT_FOUND && m_selectedItem != item) {
- m_listCtrl->Select(m_selectedItem, false);
- }
-
- m_selectedItem = item;
- SelectItem(m_selectedItem);
-
- if(fullMatch) {
- // Incase we got a full match, insert the selection and release the completion box
- InsertSelection();
-
- LEditor *editor = dynamic_cast<LEditor*>( GetParent() );
- if (editor) {
- editor->SetActive();
- }
- }
-
- } else {
- if (GetAutoHide()) {
- HideCCBox();
- }
- }
- return fullMatch;
-}
-
-void CCBox::Next()
-{
- if (m_selectedItem != wxNOT_FOUND) {
- if (m_selectedItem + 1 < m_listCtrl->GetItemCount()) {
-#ifdef __WXMAC__
- // unselect current item
- m_listCtrl->Select(m_selectedItem, false);
-#endif
- m_selectedItem++;
- // select next item
- SelectItem(m_selectedItem);
- }
- }
-}
-
-void CCBox::Previous()
-{
- if (m_selectedItem != wxNOT_FOUND) {
- if (m_selectedItem - 1 >= 0) {
-#ifdef __WXMAC__
- // unselect current item
- m_listCtrl->Select(m_selectedItem, false);
-#endif
- m_selectedItem--;
-
- // select previous item
- SelectItem(m_selectedItem);
- }
- }
-}
-
-void CCBox::SelectItem(long item)
-{
- m_listCtrl->Select(item);
- m_listCtrl->EnsureVisible(item);
-}
-
-void CCBox::Show(const wxString& word)
-{
- wxString lastName;
- size_t i(0);
- std::vector<CCItemInfo> _tags;
-
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//
+// copyright : (C) 2008 by Eran Ifrah
+// file name : cc_box.cpp
+//
+// -------------------------------------------------------------------------
+// A
+// _____ _ _ _ _
+// / __ \ | | | | (_) |
+// | / \/ ___ __| | ___| | _| |_ ___
+// | | / _ \ / _ |/ _ \ | | | __/ _ )
+// | \__/\ (_) | (_| | __/ |___| | || __/
+// \____/\___/ \__,_|\___\_____/_|\__\___|
+//
+// F i l e
+//
+// 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.
+//
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+#include "cc_box.h"
+#include "frame.h"
+#include "comment_parser.h"
+#include "ctags_manager.h"
+#include <wx/wupdlock.h>
+#include "editor_config.h"
+#include "cl_editor_tip_window.h"
+#include "cl_editor.h"
+#include "globals.h"
+#include <wx/imaglist.h>
+#include <wx/xrc/xmlres.h>
+#include "entry.h"
+#include "plugin.h"
+#include <wx/tooltip.h>
+#include <wx/tipwin.h>
+
+#ifndef wxScintillaEventHandler
+#define wxScintillaEventHandler(func) \
+ (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxScintillaEventFunction, &func)
+#endif
+
+CCBox::CCBox(LEditor* parent, bool autoHide, bool autoInsertSingleChoice)
+#if CC_USES_POPUPWIN
+ : CCBoxBase(wxTheApp->GetTopWindow(), wxID_ANY, wxDefaultPosition, wxSize(0, 0))
+#else
+ : CCBoxBase(parent, wxID_ANY, wxDefaultPosition, wxSize(0, 0))
+#endif
+ , m_showFullDecl(false)
+ , m_height(BOX_HEIGHT)
+ , m_autoHide(autoHide)
+ , m_insertSingleChoice(autoInsertSingleChoice)
+ , m_owner(NULL)
+ , m_hideExtInfoPane(true)
+ , m_startPos(wxNOT_FOUND)
+ , m_editor(parent)
+{
+ m_constructing = true;
+ HideCCBox();
+
+ // load all the CC images
+ wxImageList *il = new wxImageList(16, 16, true);
+
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("class")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("struct")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("namespace")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_public")));
+
+ wxBitmap m_tpyedefBmp = wxXmlResource::Get()->LoadBitmap(wxT("typedef"));
+ m_tpyedefBmp.SetMask(new wxMask(m_tpyedefBmp, wxColor(0, 128, 128)));
+ il->Add(m_tpyedefBmp);
+
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_private")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_public")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("member_protected")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("func_private")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("func_public")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("func_protected")));
+ wxBitmap m_macroBmp = wxXmlResource::Get()->LoadBitmap(wxT("typedef"));
+ m_macroBmp.SetMask(new wxMask(m_macroBmp, wxColor(0, 128, 128)));
+ il->Add(m_macroBmp);
+
+ wxBitmap m_enumBmp = wxXmlResource::Get()->LoadBitmap(wxT("enum"));
+ m_enumBmp.SetMask(new wxMask(m_enumBmp, wxColor(0, 128, 128)));
+ il->Add(m_enumBmp);
+
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("enumerator")));
+
+ //Initialise the file bitmaps
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_cplusplus")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_h")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("page_white_text")));
+ il->Add(wxXmlResource::Get()->LoadBitmap(wxT("cpp_keyword")));
+
+ // assign the image list and let the control take owner ship (i.e. delete it)
+ m_listCtrl->AssignImageList(il, wxIMAGE_LIST_SMALL);
+ m_listCtrl->InsertColumn(0, wxT("Name"));
+
+ m_isTipBgDark = DrawingUtils::IsDark(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
+
+ if ( !m_isTipBgDark ) {
+ m_listCtrl->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
+ m_listCtrl->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT));
+ GetEditor()->m_isTipBgDark = false;
+
+ } else {
+ // the tooltip colour is dark
+ GetEditor()->CallTipSetForegroundHighlight(wxT("YELLOW"));
+ GetEditor()->m_isTipBgDark = true;
+ if( DrawingUtils::IsDark(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)) == false ) {
+ m_listCtrl->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
+ }
+ }
+
+ m_listCtrl->SetFocus();
+ // return the focus to scintilla
+ GetEditor()->SetActive();
+ m_constructing = false;
+
+ GetParent()->Connect(wxEVT_SCI_CALLTIP_CLICK, wxScintillaEventHandler(CCBox::OnTipClicked), NULL, this);
+}
+
+CCBox::~CCBox()
+{
+ EditorConfigST::Get()->SaveLongValue(wxT("CC_Show_Item_Commetns"), LEditor::m_ccShowItemsComments ? 1 : 0);
+ EditorConfigST::Get()->SaveLongValue(wxT("CC_Show_All_Members"), LEditor::m_ccShowPrivateMembers ? 1 : 0);
+}
+
+void CCBox::OnItemActivated( wxListEvent& event )
+{
+ m_selectedItem = event.m_itemIndex;
+ InsertSelection();
+ HideCCBox();
+
+ LEditor *editor = GetEditor();
+ if (editor) {
+ editor->SetActive();
+ }
+}
+
+void CCBox::OnItemDeSelected( wxListEvent& event )
+{
+#ifdef __WXMAC__
+ m_listCtrl->Select(event.m_itemIndex, false);
+#endif
+ m_selectedItem = wxNOT_FOUND;
+}
+
+void CCBox::OnItemSelected( wxListEvent& event )
+{
+ m_selectedItem = event.m_itemIndex;
+ CCItemInfo tag;
+ if(m_listCtrl->GetItemTagEntry(m_selectedItem, tag)) {
+ DoFormatDescriptionPage( tag );
+ }
+}
+
+void CCBox::Show(const std::vector<TagEntryPtr> &tags, const wxString &word, bool showFullDecl, wxEvtHandler *owner)
+{
+ if (tags.empty()) {
+ return;
+ }
+
+ //m_height = BOX_HEIGHT;
+ m_tags = tags;
+ m_showFullDecl = showFullDecl;
+ m_owner = owner;
+ Show(word);
+}
+
+void CCBox::Adjust()
+{
+ LEditor *editor = GetEditor();
+
+ int point = editor->GetCurrentPos();
+ wxPoint pt = editor->PointFromPosition(point); // Point is in editor's coordinates
+ int lineHeight = editor->GetCurrLineHeight();
+
+ // add the line height
+ pt.y += lineHeight;
+
+#if CC_USES_POPUPWIN
+ wxSize size = ::wxGetDisplaySize();
+
+ // the completion box is child of the main frame
+ wxPoint ccPoint = pt;
+ // Make sure that CC box remains is fully visible
+ ccPoint = editor->ClientToScreen(pt);
+ int diff = ccPoint.x + BOX_WIDTH - size.x;
+ // Handle the X axis
+ if(ccPoint.x + BOX_WIDTH > size.x) {
+ ccPoint.x -= diff;
+ pt.x -= diff;
+ }
+
+ if(ccPoint.y + BOX_HEIGHT > size.y) {
+ ccPoint.y -= BOX_HEIGHT;
+ ccPoint.y -= lineHeight;
+
+ pt.y -= BOX_HEIGHT;
+ pt.y -= lineHeight;
+ }
+#ifdef __WXMSW__
+ ccPoint = GetParent()->ScreenToClient(ccPoint);
+#endif
+ Move(ccPoint);
+ editor->m_ccPoint = pt;
+ editor->m_ccPoint.x += 2;
+
+#else
+ wxSize size = GetParent()->GetClientSize();
+ int diff = size.y - pt.y;
+ m_height = BOX_HEIGHT;
+
+ if (diff < BOX_HEIGHT) {
+ pt.y -= BOX_HEIGHT;
+ pt.y -= lineHeight;
+
+ if (pt.y < 0) {
+ // the completion box is out of screen, resotre original size
+ pt.y += BOX_HEIGHT;
+ pt.y += lineHeight;
+ m_height = diff;
+ }
+ }
+
+ // adjust the X axis
+ if (size.x - pt.x < BOX_WIDTH) {
+ // the box is too wide to fit the screen
+ if (size.x > BOX_WIDTH) {
+ // the screen can contain the completion box
+ pt.x = size.x - BOX_WIDTH;
+ } else {
+ // this will provive the maximum visible area
+ pt.x = 0;
+ }
+ }
+ editor->m_ccPoint = pt;
+ Move(pt);
+#endif
+}
+
+bool CCBox::SelectWord(const wxString& word)
+{
+ bool fullMatch;
+ long item = m_listCtrl->FindMatch(word, fullMatch);
+ if (item != wxNOT_FOUND) {
+ // first unselect the current item
+ if (m_selectedItem != wxNOT_FOUND && m_selectedItem != item) {
+ m_listCtrl->Select(m_selectedItem, false);
+ }
+
+ m_selectedItem = item;
+ SelectItem(m_selectedItem);
+
+ if(fullMatch) {
+ // Incase we got a full match, insert the selection and release the completion box
+ InsertSelection();
+
+ LEditor *editor = GetEditor();
+ if (editor) {
+ editor->SetActive();
+ }
+ }
+
+ } else {
+ if (GetAutoHide()) {
+ HideCCBox();
+ }
+ }
+ return fullMatch;
+}
+
+void CCBox::Next()
+{
+ if (m_selectedItem != wxNOT_FOUND) {
+ if (m_selectedItem + 1 < m_listCtrl->GetItemCount()) {
+#ifdef __WXMAC__
+ // unselect current item
+ m_listCtrl->Select(m_selectedItem, false);
+#endif
+ m_selectedItem++;
+ // select next item
+ SelectItem(m_selectedItem);
+ }
+ }
+}
+
+void CCBox::Previous()
+{
+ if (m_selectedItem != wxNOT_FOUND) {
+ if (m_selectedItem - 1 >= 0) {
+#ifdef __WXMAC__
+ // unselect current item
+ m_listCtrl->Select(m_selectedItem, false);
+#endif
+ m_selectedItem--;
+
+ // select previous item
+ SelectItem(m_selectedItem);
+ }
+ }
+}
+
+void CCBox::SelectItem(long item)
+{
+ m_listCtrl->Select(item);
+ m_listCtrl->EnsureVisible(item);
+
+ CCItemInfo tag;
+ if(m_listCtrl->GetItemTagEntry(item, tag)) {
+ DoFormatDescriptionPage( tag );
+ }
+
+}
+
+void CCBox::Show(const wxString& word)
+{
+ wxString lastName;
+ size_t i(0);
+ std::vector<CCItemInfo> _tags;
+
+ m_listCtrl->SetCursor( wxCursor(wxCURSOR_ARROW) );
+ m_toolBar1->SetCursor( wxCursor(wxCURSOR_ARROW) );
+ this->SetCursor( wxCursor(wxCURSOR_ARROW) );
+
long checkIt (0);
- EditorConfigST::Get()->GetLongValue(wxT("CC_Show_All_Members"), checkIt);
- m_toolBar1->ToggleTool(TOOL_SHOW_PRIVATE_MEMBERS, checkIt);
-
- CCItemInfo item;
- m_listCtrl->DeleteAllItems();
-
- bool showPrivateMembers ( checkIt );
-
- // Get the associated editor
- LEditor *editor = dynamic_cast<LEditor*>(GetParent());
- if (m_tags.empty() == false) {
- for (; i<m_tags.size(); i++) {
- TagEntryPtr tag = m_tags.at(i);
- bool isVisible = m_tags.at(i)->GetAccess() == wxT("private") || m_tags.at(i)->GetAccess() == wxT("protected");
- bool isInScope = (editor && (m_tags.at(i)->GetParent() == editor->GetContext()->GetCurrentScopeName()));
- if (lastName != m_tags.at(i)->GetName()) {
- if( (!isVisible && !showPrivateMembers) || (showPrivateMembers) || (isInScope) ) {
-
- item.displayName = tag->GetName();
- item.imgId = GetImageId(*m_tags.at(i));
- _tags.push_back(item);
-
- lastName = tag->GetName();
-
- }
- }
-
- if (m_showFullDecl) {
- //collect only declarations
- if (m_tags.at(i)->GetKind() == wxT("prototype")) {
-
- if( (!isVisible && !showPrivateMembers) || (showPrivateMembers) || (isInScope) ) {
- item.displayName = tag->GetName()+tag->GetSignature();
- item.imgId = GetImageId(*m_tags.at(i));
- _tags.push_back(item);
- }
-
- }
- }
- }
- }
-
- if (_tags.size() == 1 && m_insertSingleChoice) {
- m_selectedItem = 0;
- DoInsertSelection(_tags.at(0).displayName, false);
-
- // return without calling to wxWindow::Show()
- // also, make sure we are hidden
- if ( IsShown() ) {
- HideCCBox();
- }
- return;
- }
-
- m_listCtrl->SetColumnWidth(0, BOX_WIDTH);
- m_listCtrl->SetItems(_tags);
- m_listCtrl->SetItemCount(_tags.size());
-
- m_selectedItem = 0;
-
- bool fullMatch;
- m_selectedItem = m_listCtrl->FindMatch(word, fullMatch);
- if ( m_selectedItem == wxNOT_FOUND && GetAutoHide() ) {
- // return without calling wxWindow::Show
- return;
- }
-
- if (m_selectedItem == wxNOT_FOUND) {
- m_selectedItem = 0;
- }
-
- SetSize(BOX_WIDTH, m_height);
- GetSizer()->Layout();
- wxWindow::Show();
-
- SelectItem(m_selectedItem);
-}
-
-void CCBox::DoInsertSelection(const wxString& word, bool triggerTip)
-{
- if (m_owner) {
-
- // simply send an event and dismiss the dialog
- wxCommandEvent e(wxEVT_CCBOX_SELECTION_MADE);
- e.SetClientData( (void*)&word );
- m_owner->ProcessEvent(e);
-
- } else {
- LEditor *editor = (LEditor*)GetParent();
- int insertPos = editor->WordStartPosition(editor->GetCurrentPos(), true);
-
- editor->SetSelection(insertPos, editor->GetCurrentPos());
- editor->ReplaceSelection(word);
-
- // incase we are adding a function, add '()' at the end of the function name and place the caret in the middle
- int img_id = m_listCtrl->OnGetItemImage(m_selectedItem);
- if (img_id >= 8 && img_id <= 10) {
-
- // if full declaration was selected, dont do anything,
- // otherwise, append '()' to the inserted string, place the caret
- // in the middle, and trigger the function tooltip
-
- if (word.Find(wxT("(")) == wxNOT_FOUND && triggerTip) {
- // image id in range of 8-10 is function
- editor->InsertText(editor->GetCurrentPos(), wxT("()"));
- editor->CharRight();
- int pos = editor->GetCurrentPos();
- editor->SetSelectionStart(pos);
- editor->SetSelectionEnd(pos);
- editor->SetIndicatorCurrent(MATCH_INDICATOR);
- editor->IndicatorFillRange(pos, 1);
- // trigger function tip
- editor->CodeComplete();
-
- wxString tipContent = editor->GetContext()->CallTipContent();
- int where = tipContent.Find(wxT(" : "));
- if (where != wxNOT_FOUND) {
- tipContent = tipContent.Mid(where + 3);
- }
-
- if (tipContent.Trim().Trim(false) == wxT("()")) {
- // dont place the caret in the middle of the braces,
- // and it is OK to cancel the function calltip
- int new_pos = editor->GetCurrentPos() + 1;
- editor->SetCurrentPos(new_pos);
- editor->SetSelectionStart(new_pos);
- editor->SetSelectionEnd(new_pos);
-
- // remove the current tip that we just activated.
- // if this was the last tip, it will also make it go away
- editor->GetFunctionTip()->Remove();
- }
- }
- }
- }
-}
-
-void CCBox::InsertSelection()
-{
- if (m_selectedItem == wxNOT_FOUND) {
- return;
- }
-
- // get the selected word
- wxString word = GetColumnText(m_listCtrl, m_selectedItem, 0);
- DoInsertSelection(word);
-}
-
-int CCBox::GetImageId(const TagEntry &entry)
-{
- if (entry.GetKind() == wxT("class"))
- return 0;
-
- if (entry.GetKind() == wxT("struct"))
- return 1;
-
- if (entry.GetKind() == wxT("namespace"))
- return 2;
-
- if (entry.GetKind() == wxT("variable"))
- return 3;
-
- if (entry.GetKind() == wxT("typedef"))
- return 4;
-
- if (entry.GetKind() == wxT("member") && entry.GetAccess().Contains(wxT("private")))
- return 5;
-
- if (entry.GetKind() == wxT("member") && entry.GetAccess().Contains(wxT("public")))
- return 6;
-
- if (entry.GetKind() == wxT("member") && entry.GetAccess().Contains(wxT("protected")))
- return 7;
-
- //member with no access? (maybe part of namespace??)
- if (entry.GetKind() == wxT("member"))
- return 6;
-
- if ((entry.GetKind() == wxT("function") || entry.GetKind() == wxT("prototype")) && entry.GetAccess().Contains(wxT("private")))
- return 8;
-
- if ((entry.GetKind() == wxT("function") || entry.GetKind() == wxT("prototype")) && (entry.GetAccess().Contains(wxT("public")) || entry.GetAccess().IsEmpty()))
- return 9;
-
- if ((entry.GetKind() == wxT("function") || entry.GetKind() == wxT("prototype")) && entry.GetAccess().Contains(wxT("protected")))
- return 10;
-
- if (entry.GetKind() == wxT("macro"))
- return 11;
-
- if (entry.GetKind() == wxT("enum"))
- return 12;
-
- if (entry.GetKind() == wxT("enumerator"))
- return 13;
-
- if (entry.GetKind() == wxT("cpp_keyword"))
- return 17;
-
- // try the user defined images
- std::map<wxString, int>::iterator iter = m_userImages.find(entry.GetKind());
- if (iter != m_userImages.end()) {
- return iter->second;
- }
- return wxNOT_FOUND;
-}
-
-void CCBox::RegisterImageForKind(const wxString& kind, const wxBitmap& bmp)
-{
- wxImageList *il = m_listCtrl->GetImageList(wxIMAGE_LIST_SMALL);
- if (il && bmp.IsOk()) {
- std::map<wxString, int>::iterator iter = m_userImages.find(kind);
-
- if (iter == m_userImages.end()) {
- int id = il->Add(bmp);
- m_userImages[kind] = id;
- } else {
- // an entry for this kind already exist, replace the current image with new one
- il->Replace(iter->second, bmp);
- }
- }
-}
-
-void CCBox::NextPage()
-{
- if (m_selectedItem != wxNOT_FOUND) {
- if (m_selectedItem + 1 < m_listCtrl->GetItemCount()) {
-#ifdef __WXMAC__
-// unselect current item
- m_listCtrl->Select(m_selectedItem, false);
-#endif
- m_selectedItem += 10;
-// select next item
- SelectItem(m_selectedItem);
- } else {
-#ifdef __WXMAC__
-// unselect current item
- m_listCtrl->Select(m_selectedItem, false);
-#endif
- m_selectedItem = m_listCtrl->GetItemCount() - 1;
-// select next item
- SelectItem(m_selectedItem);
- }
- }
-}
-
-void CCBox::PreviousPage()
-{
- if (m_selectedItem != wxNOT_FOUND) {
- if (m_selectedItem - 10 >= 0) {
-#ifdef __WXMAC__
-// unselect current item
- m_listCtrl->Select(m_selectedItem, false);
-#endif
- m_selectedItem -= 10;
-
-// select previous item
- SelectItem(m_selectedItem);
- } else {
-#ifdef __WXMAC__
-// unselect current item
- m_listCtrl->Select(m_selectedItem, false);
-#endif
- m_selectedItem = 0;
-
-// select previous item
- SelectItem(m_selectedItem);
- }
- }
-}
-
-void CCBox::HideCCBox()
-{
- if( IsShown() ) {
- Hide();
- if( !m_constructing ) {
- bool checked = m_toolBar1->FindById(TOOL_SHOW_PRIVATE_MEMBERS)->IsToggled();
- EditorConfigST::Get()->SaveLongValue(wxT("CC_Show_All_Members"), checked ? 1 : 0);
- }
- }
-}
-
-void CCBox::OnShowPublicItems(wxCommandEvent& event)
-{
- wxUnusedVar(event);
- HideCCBox();
-}
-
+ if(LEditor::m_ccInitialized == false) {
+ if(EditorConfigST::Get()->GetLongValue(wxT("CC_Show_All_Members"), checkIt)) {
+ LEditor::m_ccShowPrivateMembers = (bool)checkIt;
+ }
+
+ if(EditorConfigST::Get()->GetLongValue(wxT("CC_Show_Item_Commetns"), checkIt)) {
+ LEditor::m_ccShowItemsComments = (bool)checkIt;
+ }
+ LEditor::m_ccInitialized = true;
+ }
+
+ m_toolBar1->ToggleTool(TOOL_SHOW_PRIVATE_MEMBERS, LEditor::m_ccShowPrivateMembers);
+ m_toolBar1->ToggleTool(TOOL_SHOW_ITEM_COMMENTS, LEditor::m_ccShowItemsComments);
+
+ CCItemInfo item;
+ wxWindowUpdateLocker locker(m_listCtrl);
+ m_listCtrl->DeleteAllItems();
+
+ // Get the associated editor
+ LEditor *editor = GetEditor();
+ wxString scopeName = editor->GetContext()->GetCurrentScopeName();
+ if (m_tags.empty() == false) {
+ _tags.reserve(m_tags.size());
+ for (; i<m_tags.size(); i++) {
+
+ const TagEntryPtr& tag = m_tags.at(i);
+ wxString access = tag->GetAccess();
+ bool isVisible = access == wxT("private") || access == wxT("protected");
+ bool isInScope = (editor && (tag->GetParent() == scopeName));
+ bool collectIt = (!isVisible && !LEditor::m_ccShowPrivateMembers) || (LEditor::m_ccShowPrivateMembers) || (isInScope);
+
+ if(collectIt) {
+
+ if (item.displayName != tag->GetName()) {// Starting a new group or it is first time
+ if( item.IsOk() ) {
+ // we got a group of tags stored in 'item' add it
+ // to the _tags before we continue
+ DoFilterCompletionEntries(item);
+ _tags.push_back(item);
+ }
+
+ // start a new group
+ item.Reset();
+
+ item.displayName = tag->GetName();
+ item.imgId = GetImageId(tag);
+ item.tag = *tag;
+ item.listOfTags.push_back( *tag );
+
+ } else {
+ item.listOfTags.push_back( *tag );
+ }
+ }
+ }
+ }
+
+ if(item.IsOk()) {
+ DoFilterCompletionEntries(item);
+ _tags.push_back(item);
+ }
+
+ if (_tags.size() == 1 && m_insertSingleChoice) {
+ m_selectedItem = 0;
+ DoInsertSelection(_tags.at(0).displayName, false);
+
+ // return without calling to wxWindow::Show()
+ // also, make sure we are hidden
+ if ( IsShown() ) {
+ HideCCBox();
+ }
+ DoHideCCHelpTab();
+ return;
+ }
+
+ m_listCtrl->SetColumnWidth(0, BOX_WIDTH);
+ m_listCtrl->SetItems(_tags);
+ m_listCtrl->SetItemCount(_tags.size());
+
+ m_selectedItem = 0;
+
+ bool fullMatch;
+ m_selectedItem = m_listCtrl->FindMatch(word, fullMatch);
+ if ( m_selectedItem == wxNOT_FOUND && GetAutoHide() ) {
+ // return without calling wxWindow::Show
+ DoHideCCHelpTab();
+ return;
+ }
+ if (m_selectedItem == wxNOT_FOUND) {
+ m_selectedItem = 0;
+ }
+
+#if !CC_USES_POPUPWIN
+ SetSize(BOX_WIDTH, m_height);
+#endif
+
+#if CC_USES_POPUPWIN
+ m_mainPanel->GetSizer()->Fit(m_mainPanel);
+ m_mainPanel->GetSizer()->Fit(this);
+
+
+#ifdef __WXGTK__
+ wxPopupWindow::Show();
+ Frame::Get()->Raise();
+ GetEditor()->SetFocus();
+ GetEditor()->SetSCIFocus(true);
+#else // Windows
+ wxPopupTransientWindow::Show();
+#endif
+
+#else
+ wxWindow::Show();
+#endif
+ SelectItem(m_selectedItem);
+}
+
+void CCBox::DoInsertSelection(const wxString& word, bool triggerTip)
+{
+ if (m_owner) {
+
+ // simply send an event and dismiss the dialog
+ wxCommandEvent e(wxEVT_CCBOX_SELECTION_MADE);
+ e.SetClientData( (void*)&word );
+ m_owner->ProcessEvent(e);
+
+ } else {
+ LEditor *editor = GetEditor();
+ int insertPos = editor->WordStartPosition(editor->GetCurrentPos(), true);
+
+ editor->SetSelection(insertPos, editor->GetCurrentPos());
+ editor->ReplaceSelection(word);
+
+ // incase we are adding a function, add '()' at the end of the function name and place the caret in the middle
+ int img_id = m_listCtrl->OnGetItemImage(m_selectedItem);
+ if (img_id >= 8 && img_id <= 10) {
+
+ // if full declaration was selected, dont do anything,
+ // otherwise, append '()' to the inserted string, place the caret
+ // in the middle, and trigger the function tooltip
+
+ if (word.Find(wxT("(")) == wxNOT_FOUND && triggerTip) {
+ // ima)ge id in range of 8-10 is function
+ editor->InsertText(editor->GetCurrentPos(), wxT("()"));
+ editor->CharRight();
+ int pos = editor->GetCurrentPos();
+ editor->SetSelectionStart(pos);
+ editor->SetSelectionEnd(pos);
+ editor->SetIndicatorCurrent(MATCH_INDICATOR);
+ editor->IndicatorFillRange(pos, 1);
+ // trigger function tip
+ editor->CodeComplete();
+
+ wxString tipContent = editor->GetContext()->CallTipContent();
+ int where = tipContent.Find(wxT(" : "));
+ if (where != wxNOT_FOUND) {
+ tipContent = tipContent.Mid(where + 3);
+ }
+
+ if (tipContent.Trim().Trim(false) == wxT("()")) {
+ // dont place the caret in the middle of the braces,
+ // and it is OK to cancel the function calltip
+ int new_pos = editor->GetCurrentPos() + 1;
+ editor->SetCurrentPos(new_pos);
+ editor->SetSelectionStart(new_pos);
+ editor->SetSelectionEnd(new_pos);
+
+ // remove the current tip that we just activated.
+ // if this was the last tip, it will also make it go away
+ editor->GetFunctionTip()->Remove();
+ }
+ }
+ }
+ }
+}
+
+void CCBox::InsertSelection()
+{
+ if (m_selectedItem == wxNOT_FOUND) {
+ return;
+ }
+
+ // get the selected word
+ wxString word = GetColumnText(m_listCtrl, m_selectedItem, 0);
+ DoInsertSelection(word);
+}
+
+int CCBox::GetImageId(TagEntryPtr entry)
+{
+ wxString kind = entry->GetKind();
+ wxString access = entry->GetAccess();
+ if (kind == wxT("class"))
+ return 0;
+
+ if (kind == wxT("struct"))
+ return 1;
+
+ if (kind == wxT("namespace"))
+ return 2;
+
+ if (kind == wxT("variable"))
+ return 3;
+
+ if (kind == wxT("typedef"))
+ return 4;
+
+ if (kind == wxT("member") && access.Contains(wxT("private")))
+ return 5;
+
+ if (kind == wxT("member") && access.Contains(wxT("public")))
+ return 6;
+
+ if (kind == wxT("member") && access.Contains(wxT("protected")))
+ return 7;
+
+ //member with no access? (maybe part of namespace??)
+ if (kind == wxT("member"))
+ return 6;
+
+ if ((kind == wxT("function") || kind == wxT("prototype")) && access.Contains(wxT("private")))
+ return 8;
+
+ if ((kind == wxT("function") || kind == wxT("prototype")) && (access.Contains(wxT("public")) || access.IsEmpty()))
+ return 9;
+
+ if ((kind == wxT("function") || kind == wxT("prototype")) && access.Contains(wxT("protected")))
+ return 10;
+
+ if (kind == wxT("macro"))
+ return 11;
+
+ if (kind == wxT("enum"))
+ return 12;
+
+ if (kind == wxT("enumerator"))
+ return 13;
+
+ if (kind == wxT("cpp_keyword"))
+ return 17;
+
+ // try the user defined images
+ std::map<wxString, int>::iterator iter = m_userImages.find(kind);
+ if (iter != m_userImages.end()) {
+ return iter->second;
+ }
+ return wxNOT_FOUND;
+}
+
+void CCBox::RegisterImageForKind(const wxString& kind, const wxBitmap& bmp)
+{
+ wxImageList *il = m_listCtrl->GetImageList(wxIMAGE_LIST_SMALL);
+ if (il && bmp.IsOk()) {
+ std::map<wxString, int>::iterator iter = m_userImages.find(kind);
+
+ if (iter == m_userImages.end()) {
+ int id = il->Add(bmp);
+ m_userImages[kind] = id;
+ } else {
+ // an entry for this kind already exist, replace the current image with new one
+ il->Replace(iter->second, bmp);
+ }
+ }
+}
+
+void CCBox::NextPage()
+{
+ if (m_selectedItem != wxNOT_FOUND) {
+ if (m_selectedItem + 1 < m_listCtrl->GetItemCount()) {
+#ifdef __WXMAC__
+// unselect current item
+ m_listCtrl->Select(m_selectedItem, false);
+#endif
+ m_selectedItem += 10;
+// select next item
+ SelectItem(m_selectedItem);
+ } else {
+#ifdef __WXMAC__
+// unselect current item
+ m_listCtrl->Select(m_selectedItem, false);
+#endif
+ m_selectedItem = m_listCtrl->GetItemCount() - 1;
+// select next item
+ SelectItem(m_selectedItem);
+ }
+ }
+}
+
+void CCBox::PreviousPage()
+{
+ if (m_selectedItem != wxNOT_FOUND) {
+ if (m_selectedItem - 10 >= 0) {
+#ifdef __WXMAC__
+// unselect current item
+ m_listCtrl->Select(m_selectedItem, false);
+#endif
+ m_selectedItem -= 10;
+
+// select previous item
+ SelectItem(m_selectedItem);
+ } else {
+#ifdef __WXMAC__
+// unselect current item
+ m_listCtrl->Select(m_selectedItem, false);
+#endif
+ m_selectedItem = 0;
+
+// select previous item
+ SelectItem(m_selectedItem);
+ }
+ }
+}
+
+void CCBox::HideCCBox()
+{
+ if( IsShown() ) {
+ Hide();
+ DoHideCCHelpTab();
+ if( !m_constructing ) {
+ bool checked;
+ checked = m_toolBar1->FindById(TOOL_SHOW_PRIVATE_MEMBERS)->IsToggled();
+ LEditor::m_ccShowPrivateMembers = checked ? 1 : 0;
+
+ checked = m_toolBar1->FindById(TOOL_SHOW_ITEM_COMMENTS)->IsToggled();
+ LEditor::m_ccShowItemsComments = checked ? 1 : 0;
+ }
+ }
+}
+
+void CCBox::OnShowPublicItems(wxCommandEvent& event)
+{
+ wxUnusedVar(event);
+ HideCCBox();
+}
+
+void CCBox::DoShowTagTip()
+{
+ LEditor *editor = GetEditor();
+ if( !editor ) {
+ return;
+ }
+
+ if(m_currentItem.listOfTags.empty())
+ return;
+
+ if(m_currentItem.currentIndex >= (int)m_currentItem.listOfTags.size()) {
+ m_currentItem.currentIndex = 0;
+ }
+
+ if(m_currentItem.currentIndex < 0) {
+ m_currentItem.currentIndex = m_currentItem.listOfTags.size() - 1;
+ }
+
+ wxString prefix;
+ TagEntry tag = m_currentItem.listOfTags.at(m_currentItem.currentIndex);
+ if(m_currentItem.listOfTags.size() > 1) {
+ prefix << wxT(" \002 ") << m_currentItem.currentIndex+1 << wxT(" of ") << m_currentItem.listOfTags.size() << wxT("\001 ");
+ prefix << wxT("\n@@LINE@@\n");
+ }
+
+ if( tag.IsMethod() ) {
+
+ if(tag.IsConstructor())
+ prefix << wxT("[Constructor]\n");
+
+ else if( tag.IsDestructor())
+ prefix << wxT("[Destructor]\n");
+
+ TagEntryPtr p(new TagEntry(tag));
+ prefix << TagsManagerST::Get()->FormatFunction(p, FunctionFormat_WithVirtual|FunctionFormat_Arg_Per_Line) << wxT("\n");
+
+ } else if( tag.IsClass() ) {
+
+ prefix << wxT("Kind: ");
+ prefix << wxString::Format(wxT("%s\n"), tag.GetKind().c_str() );
+
+ if(tag.GetInherits().IsEmpty() == false) {
+ prefix << wxT("Inherits: ");
+ prefix << tag.GetInherits() << wxT("\n");
+ }
+
+ } else if(tag.IsMacro() || tag.IsTypedef() || tag.IsContainer() || tag.GetKind() == wxT("member") || tag.GetKind() == wxT("variable")) {
+
+ prefix << wxT("Kind : ");
+ prefix << wxString::Format(wxT("%s\n"), tag.GetKind().c_str() );
+
+ prefix << wxT("Match Pattern: ");
+
+ // Prettify the match pattern
+ wxString matchPattern(tag.GetPattern());
+ matchPattern.Trim().Trim(false);
+
+ if(matchPattern.StartsWith(wxT("/^"))) {
+ matchPattern.Replace(wxT("/^"), wxT(""));
+ }
+
+ if(matchPattern.EndsWith(wxT("$/"))) {
+ matchPattern.Replace(wxT("$/"), wxT(""));
+ }
+
+ matchPattern.Replace(wxT("\t"), wxT(" "));
+ while(matchPattern.Replace(wxT(" "), wxT(" "))) {}
+
+ matchPattern.Trim().Trim(false);
+ prefix << matchPattern << wxT("\n");
+
+ } else {
+ // non valid tag entry
+ return;
+ }
+
+ // Add comment section
+ wxString filename (m_comments.getFilename().c_str(), wxConvUTF8);
+ if(filename != tag.GetFile()) {
+ m_comments.clear();
+ ParseComments(tag.GetFile().mb_str(wxConvUTF8).data(), m_comments);
+ m_comments.setFilename(tag.GetFile().mb_str(wxConvUTF8).data());
+ }
+
+ wxString tagComment;
+ bool foundComment(false);
+
+ std::string comment;
+ // search for comment in the current line, the line above it and 2 above it
+ // use the first match we got
+ for(size_t i=0; i<3; i++) {
+ comment = m_comments.getCommentForLine(tag.GetLine() - i);
+ if(comment.empty() == false) {
+ foundComment = true;
+ break;
+ }
+ }
+
+ if( foundComment ) {
+ wxString theComment(comment.c_str(), wxConvUTF8);
+ theComment.Trim(false);
+ tagComment = wxString::Format(wxT("%s\n"), theComment.c_str());
+ if(prefix.IsEmpty() == false) {
+ prefix.Trim().Trim(false);
+ prefix << wxT("\n\n@@LINE@@\n");
+ }
+ prefix << tagComment;
+ }
+
+ editor->CallTipCancel();
+ m_startPos == wxNOT_FOUND ? m_startPos = editor->GetCurrentPos() : m_startPos;
+
+ // if nothing to display skip this
+ prefix.Trim().Trim(false);
+ if(prefix.IsEmpty()) {
+ return;
+ }
+ editor->CallTipShowExt( m_startPos, prefix);
+ int hightlightFrom = prefix.Find(tag.GetName());
+ if(hightlightFrom != wxNOT_FOUND) {
+ int highlightLen = tag.GetName().Length();
+ editor->CallTipSetHighlight(hightlightFrom, hightlightFrom + highlightLen);
+ }
+}
+
+void CCBox::DoFormatDescriptionPage(const CCItemInfo& item)
+{
+ LEditor *editor = GetEditor();
+ if( !editor ) {
+ return;
+ }
+
+ if(LEditor::m_ccShowItemsComments == false) {
+ editor->CallTipCancel();
+ return;
+ }
+
+ m_currentItem = item;
+ if(m_currentItem.listOfTags.empty()) {
+ editor->CallTipCancel();
+ return;
+ }
+
+ m_currentItem.currentIndex = 0;
+ DoShowTagTip();
+}
+
+void CCBox::EnableExtInfoPane()
+{
+ m_hideExtInfoPane = false;
+}
+
+void CCBox::DoHideCCHelpTab()
+{
+ m_hideExtInfoPane = true;
+ m_startPos = wxNOT_FOUND;
+ m_currentItem.Reset();
+ LEditor *editor = GetEditor();
+ if(editor)
+ editor->CallTipCancel();
+}
+
+void CCBox::OnShowComments(wxCommandEvent& event)
+{
+ LEditor::m_ccShowItemsComments = event.IsChecked();
+ if( LEditor::m_ccShowItemsComments == false ) {
+ DoFormatDescriptionPage( CCItemInfo() );
+ } else {
+ CCItemInfo tag;
+ if(m_listCtrl->GetItemTagEntry(m_selectedItem, tag)) {
+ DoFormatDescriptionPage( tag );
+ }
+ }
+ event.Skip();
+}
+
+void CCBox::OnTipClicked(wxScintillaEvent& event)
+{
+ event.Skip();
+ if(event.GetPosition() == 1) { // Up
+ m_currentItem.currentIndex++;
+ DoShowTagTip();
+ } else if(event.GetPosition() == 2) {// down
+ m_currentItem.currentIndex--;
+ DoShowTagTip();
+ }
+}
+
+void CCBox::DoFilterCompletionEntries(CCItemInfo& item)
+{
+ std::map<wxString, TagEntry> uniqueList;
+
+ // filter our some of the duplicate results
+ // (e.g. dont show prototpe + impl as 2 entries)
+ for(size_t i=0; i<item.listOfTags.size(); i++) {
+ const TagEntry& t = item.listOfTags.at(i);
+ const wxString& name = t.GetName();
+
+ if(t.IsMethod()) {
+ wxString signature = t.GetSignature();
+ if(t.IsFunction()) {
+ if(uniqueList.find(name + signature) == uniqueList.end())
+ uniqueList[name + signature] = t;
+
+ } else {
+ // override any existing item
+ uniqueList[name + signature] = t;
+ }
+ } else {
+ uniqueList[name] = t;
+ }
+ }
+
+ item.listOfTags.clear();
+ item.listOfTags.reserve( uniqueList.size() );
+ std::map<wxString, TagEntry>::iterator iter = uniqueList.begin();
+ for(; iter != uniqueList.end(); iter++ ) {
+ item.listOfTags.push_back( iter->second );
+ }
+}
+
+LEditor* CCBox::GetEditor()
+{
+#if !CC_USES_POPUPWIN
+ if(m_editor == NULL)
+ m_editor = dynamic_cast<LEditor*>( GetParent() );
+#endif
+ return m_editor;
+}
+
+
+void CCBox::OnKeyDown(wxListEvent& event)
+{
+ event.Skip();
+}
diff --git a/LiteEditor/cc_box.h b/LiteEditor/cc_box.h
index 449cfc30..6ca7a6a6 100644
--- a/LiteEditor/cc_box.h
+++ b/LiteEditor/cc_box.h
@@ -1,112 +1,132 @@
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-//
-// copyright : (C) 2008 by Eran Ifrah
-// file name : cc_box.h
-//
-// -------------------------------------------------------------------------
-// A
-// _____ _ _ _ _
-// / __ \ | | | | (_) |
-// | / \/ ___ __| | ___| | _| |_ ___
-// | | / _ \ / _ |/ _ \ | | | __/ _ )
-// | \__/\ (_) | (_| | __/ |___| | || __/
-// \____/\___/ \__,_|\___\_____/_|\__\___|
-//
-// F i l e
-//
-// 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.
-//
-//////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////
-#ifndef __cc_box__
-#define __cc_box__
-
-/**
-@file
-Subclass of CCBoxBase, which is generated by wxFormBuilder.
-*/
-
-#include "cc_boxbase.h"
-#include "entry.h"
-#include <vector>
-#include <map>
-
-class LEditor;
-
-/** Implementing CCBoxBase */
-class CCBox : public CCBoxBase {
- int m_selectedItem;
- std::vector<TagEntryPtr> m_tags;
- bool m_showFullDecl;
- int m_height;
- bool m_autoHide;
- bool m_insertSingleChoice;
- std::map<wxString, int> m_userImages;
- wxEvtHandler * m_owner;
- bool m_constructing;
-
-protected:
- // Handlers for CCBoxBase events.
- void OnItemActivated( wxListEvent& event );
- void OnItemDeSelected( wxListEvent& event );
- void OnItemSelected( wxListEvent& event );
-
- void OnShowPublicItems(wxCommandEvent& event);
-
-protected:
- // helper methods
- int GetImageId(const TagEntry &entry);
- void SelectItem(long item);
- void Show(const wxString &word);
- void DoInsertSelection(const wxString &word, bool triggerTip = true);
-
-public:
-
- /** Constructor */
- CCBox(LEditor* parent, bool autoHide = true, bool autoInsertSingleChoice = true);
-
- void HideCCBox();
- void Show(const std::vector<TagEntryPtr> &tags, const wxString &word, bool showFullDecl, wxEvtHandler *owner = NULL);
- void InsertSelection();
-
- void Adjust();
-
- // can this window have focus? (no)
- bool AcceptsFocus() const {
- return false;
- }
-
- bool SelectWord(const wxString &word);
- void Next();
- void Previous();
-
- //Setters
- void SetAutoHide(const bool& autoHide) {
- this->m_autoHide = autoHide;
- }
- void SetInsertSingleChoice(const bool& insertSingleChoice) {
- this->m_insertSingleChoice = insertSingleChoice;
- }
- //Getters
- const bool& GetAutoHide() const {
- return m_autoHide;
- }
- const bool& GetInsertSingleChoice() const {
- return m_insertSingleChoice;
- }
-
- /**
- * @brief register new user image fot TagEntry kind
- * @param kind the kind string that will be associated with the bitmap (TagEntry::GetKind())
- * @param bmp 16x16 bitmap
- */
- void RegisterImageForKind(const wxString &kind, const wxBitmap &bmp);
- void NextPage();
- void PreviousPage();
-};
-
-#endif // __cc_box__
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+//
+// copyright : (C) 2008 by Eran Ifrah
+// file name : cc_box.h
+//
+// -------------------------------------------------------------------------
+// A
+// _____ _ _ _ _
+// / __ \ | | | | (_) |
+// | / \/ ___ __| | ___| | _| |_ ___
+// | | / _ \ / _ |/ _ \ | | | __/ _ )
+// | \__/\ (_) | (_| | __/ |___| | || __/
+// \____/\___/ \__,_|\___\_____/_|\__\___|
+//
+// F i l e
+//
+// 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.
+//
+//////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
+#ifndef __cc_box__
+#define __cc_box__
+
+/**
+@file
+Subclass of CCBoxBase, which is generated by wxFormBuilder.
+*/
+
+#include "cc_boxbase.h"
+#include "comment_parser.h"
+#include "entry.h"
+#include <vector>
+#include <map>
+#include "wx/wxscintilla.h"
+
+class LEditor;
+
+/** Implementing CCBoxBase */
+class CCBox : public CCBoxBase
+{
+ int m_selectedItem;
+ std::vector<TagEntryPtr> m_tags;
+ bool m_showFullDecl;
+ int m_height;
+ bool m_autoHide;
+ bool m_insertSingleChoice;
+ std::map<wxString, int> m_userImages;
+ wxEvtHandler * m_owner;
+ bool m_constructing;
+ bool m_hideExtInfoPane;
+ CommentParseResult m_comments;
+ int m_startPos;
+ bool m_isTipBgDark;
+ CCItemInfo m_currentItem;
+ LEditor* m_editor;
+
+protected:
+ LEditor* GetEditor();
+
+protected:
+ // Handlers for CCBoxBase events.
+ void OnItemActivated( wxListEvent& event );
+ void OnItemDeSelected( wxListEvent& event );
+ void OnItemSelected( wxListEvent& event );
+
+ void OnShowPublicItems(wxCommandEvent& event);
+ void OnShowComments(wxCommandEvent& event);
+ void OnTipClicked(wxScintillaEvent &event);
+
+ void OnKeyDown(wxListEvent& event);
+
+protected:
+ // helper methods
+ int GetImageId(TagEntryPtr entry);
+ void SelectItem(long item);
+ void Show(const wxString &word);
+ void DoInsertSelection(const wxString &word, bool triggerTip = true);
+ void DoFormatDescriptionPage(const CCItemInfo& tag);
+ void DoShowTagTip();
+ void DoHideCCHelpTab();
+ void DoFilterCompletionEntries(CCItemInfo& item);
+public:
+ /** Constructor */
+ CCBox(LEditor* parent, bool autoHide = true, bool autoInsertSingleChoice = true);
+ virtual ~CCBox();
+
+ void HideCCBox();
+ void Show(const std::vector<TagEntryPtr> &tags, const wxString &word, bool showFullDecl, wxEvtHandler *owner = NULL);
+ void InsertSelection();
+
+ void Adjust();
+
+ // can this window have focus? (no)
+ bool AcceptsFocus() const {
+ return false;
+ }
+
+ void EnableExtInfoPane();
+ bool SelectWord(const wxString &word);
+ void Next();
+ void Previous();
+
+ //Setters
+ void SetAutoHide(const bool& autoHide) {
+ this->m_autoHide = autoHide;
+ }
+ void SetInsertSingleChoice(const bool& insertSingleChoice) {
+ this->m_insertSingleChoice = insertSingleChoice;
+ }
+ //Getters
+ const bool& GetAutoHide() const {
+ return m_autoHide;
+ }
+ const bool& GetInsertSingleChoice() const {
+ return m_insertSingleChoice;
+ }
+
+ /**
+ * @brief register new user image fot TagEntry kind
+ * @param kind the kind string that will be associated with the bitmap (TagEntry::GetKind())
+ * @param bmp 16x16 bitmap
+ */
+ void RegisterImageForKind(const wxString &kind, const wxBitmap &bmp);
+ void NextPage();
+ void PreviousPage();
+};
+
+#endif // __cc_box__
diff --git a/LiteEditor/cc_boxbase.cpp b/LiteEditor/cc_boxbase.cpp
index a5d85af4..4a1a868b 100644
--- a/LiteEditor/cc_boxbase.cpp
+++ b/LiteEditor/cc_boxbase.cpp
@@ -10,23 +10,33 @@
///////////////////////////////////////////////////////////////////////////
-CCBoxBase::CCBoxBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
+CCBoxBase::CCBoxBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
+#if CC_USES_POPUPWIN
+ : CCBoxParent( parent, CC_STYLE )
+#else
+ : wxPanel( parent, id, pos, size, style )
+#endif
{
- wxBoxSizer* bSizer1;
- bSizer1 = new wxBoxSizer( wxVERTICAL );
+ SetSizeHints(BOX_WIDTH, BOX_HEIGHT);
+ wxBoxSizer* topSizer = new wxBoxSizer( wxHORIZONTAL );
+ m_mainPanel = new wxPanel(this);
- m_listCtrl = new CCVirtualListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_HEADER|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VIRTUAL );
- bSizer1->Add( m_listCtrl, 1, wxEXPAND|wxALL, 2 );
+ m_listCtrl = new CCVirtualListCtrl( m_mainPanel, wxID_ANY, wxDefaultPosition, wxSize(BOX_WIDTH - 25, BOX_HEIGHT), wxLC_NO_HEADER|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VIRTUAL|wxBORDER_NONE );
- wxBitmap bmp = wxXmlResource::Get()->LoadBitmap(wxT("cc_private_members"));
- m_toolBar1 = new wxToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL|wxSIMPLE_BORDER|wxTB_FLAT|wxTB_NODIVIDER );
- m_toolBar1->AddTool( TOOL_SHOW_PRIVATE_MEMBERS, wxT("Show Protected / Private Items"), bmp, bmp, wxITEM_CHECK, wxT("Show Protected / Private Items"), wxEmptyString );
+ wxBitmap bmp = wxXmlResource::Get()->LoadBitmap(wxT("cc_private_members"));
+ wxBitmap commentsBmp = wxXmlResource::Get()->LoadBitmap(wxT("note"));
+ m_toolBar1 = new wxToolBar( m_mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_FLAT|wxTB_VERTICAL|wxSIMPLE_BORDER|wxTB_NODIVIDER );
+ m_toolBar1->AddTool( TOOL_SHOW_PRIVATE_MEMBERS, wxT("Show Protected / Private Items"), bmp, bmp, wxITEM_CHECK, wxT("Show Only Public Items"), wxEmptyString );
+ m_toolBar1->AddTool( TOOL_SHOW_ITEM_COMMENTS, wxT("Show Item Comments"), commentsBmp, commentsBmp, wxITEM_CHECK, wxT("Show Item Comments"), wxEmptyString );
m_toolBar1->Realize();
- bSizer1->Add( m_toolBar1, 0, wxEXPAND|wxRIGHT|wxLEFT, 2 );
+ topSizer->Add( m_listCtrl, 1, wxEXPAND, 2 );
+ topSizer->Add( m_toolBar1, 0, wxEXPAND, 2 );
- this->SetSizer( bSizer1 );
- this->Layout();
+ m_mainPanel->SetAutoLayout( true );
+ m_mainPanel->SetSizer( topSizer );
+ topSizer->Fit(m_mainPanel);
+ topSizer->Fit(this);
// Connect Events
m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CCBoxBase::OnItemActivated ), NULL, this );
@@ -34,6 +44,7 @@ CCBoxBase::CCBoxBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const
m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CCBoxBase::OnItemSelected ), NULL, this );
m_listCtrl->Connect( wxEVT_COMMAND_LIST_KEY_DOWN, wxListEventHandler( CCBoxBase::OnKeyDown ), NULL, this );
this->Connect( TOOL_SHOW_PRIVATE_MEMBERS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CCBoxBase::OnShowPublicItems ) );
+ this->Connect( TOOL_SHOW_ITEM_COMMENTS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CCBoxBase::OnShowComments ) );
}
CCBoxBase::~CCBoxBase()
@@ -44,5 +55,5 @@ CCBoxBase::~CCBoxBase()
m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CCBoxBase::OnItemSelected ), NULL, this );
m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_KEY_DOWN, wxListEventHandler( CCBoxBase::OnKeyDown ), NULL, this );
this->Disconnect( TOOL_SHOW_PRIVATE_MEMBERS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CCBoxBase::OnShowPublicItems ) );
-
+ this->Disconnect( TOOL_SHOW_ITEM_COMMENTS, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CCBoxBase::OnShowComments ) );
}
diff --git a/LiteEditor/cc_boxbase.h b/LiteEditor/cc_boxbase.h
index d6f71928..09adf7cc 100644
--- a/LiteEditor/cc_boxbase.h
+++ b/LiteEditor/cc_boxbase.h
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 25 2009)
+// C++ code generated with wxFormBuilder (version May 4 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -25,30 +25,67 @@
///////////////////////////////////////////////////////////////////////////
#define TOOL_SHOW_PRIVATE_MEMBERS 1000
+#define TOOL_SHOW_ITEM_COMMENTS 1001
+
+#ifdef __WXMAC__
+# define CC_USES_POPUPWIN 0
+#else
+# define CC_USES_POPUPWIN 1
+#endif
+
+#if CC_USES_POPUPWIN
+#ifdef __WXGTK__
+# define CCBoxParent wxPopupWindow
+# define CC_STYLE wxBORDER_SIMPLE
+#else
+# define CCBoxParent wxPopupTransientWindow
+# define CC_STYLE wxBORDER_SIMPLE
+#endif
+# include <wx/popupwin.h>
+#else
+# define CCBoxParent wxPanel
+#endif
+
+#define BOX_HEIGHT 250
+#define BOX_WIDTH 250
///////////////////////////////////////////////////////////////////////////////
/// Class CCBoxBase
///////////////////////////////////////////////////////////////////////////////
-class CCBoxBase : public wxPanel
+class CCBoxBase : public CCBoxParent
{
- private:
+private:
- protected:
- CCVirtualListCtrl* m_listCtrl;
- wxToolBar* m_toolBar1;
+protected:
+ CCVirtualListCtrl* m_listCtrl;
+ wxToolBar* m_toolBar1;
+ wxPanel* m_mainPanel;
- // Virtual event handlers, overide them in your derived class
- virtual void OnItemActivated( wxListEvent& event ) { event.Skip(); }
- virtual void OnItemDeSelected( wxListEvent& event ) { event.Skip(); }
- virtual void OnItemSelected( wxListEvent& event ) { event.Skip(); }
- virtual void OnKeyDown( wxListEvent& event ) { event.Skip(); }
- virtual void OnShowPublicItems( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnItemActivated( wxListEvent& event ) {
+ event.Skip();
+ }
+ virtual void OnItemDeSelected( wxListEvent& event ) {
+ event.Skip();
+ }
+ virtual void OnItemSelected( wxListEvent& event ) {
+ event.Skip();
+ }
+ virtual void OnKeyDown( wxListEvent& event ) {
+ event.Skip();
+ }
+ virtual void OnShowPublicItems( wxCommandEvent& event ) {
+ event.Skip();
+ }
+ virtual void OnShowComments( wxCommandEvent& event ) {
+ event.Skip();
+ }
- public:
+public:
- CCBoxBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 486,300 ), long style = wxRAISED_BORDER|wxTAB_TRAVERSAL );
- ~CCBoxBase();
+ CCBoxBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 486,300 ), long style = wxRAISED_BORDER|wxTAB_TRAVERSAL );
+ ~CCBoxBase();
};
diff --git a/LiteEditor/ccvirtuallistctrl.cpp b/LiteEditor/ccvirtuallistctrl.cpp
index 2234b8ff..ce1fd1f9 100644
--- a/LiteEditor/ccvirtuallistctrl.cpp
+++ b/LiteEditor/ccvirtuallistctrl.cpp
@@ -135,3 +135,13 @@ int CCVirtualListCtrl::FindMatch(const wxString& word, bool &fullMatch)
return wxNOT_FOUND;
}
+
+bool CCVirtualListCtrl::GetItemTagEntry(int index, CCItemInfo& tag)
+{
+ if(index < 0 || (size_t)index >= m_tags.size()) {
+ return false;
+ }
+
+ tag = m_tags.at(index);
+ return true;
+}
diff --git a/LiteEditor/ccvirtuallistctrl.h b/LiteEditor/ccvirtuallistctrl.h
index 86de80bc..c58b486b 100644
--- a/LiteEditor/ccvirtuallistctrl.h
+++ b/LiteEditor/ccvirtuallistctrl.h
@@ -1,25 +1,25 @@
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
-// copyright : (C) 2008 by Eran Ifrah
-// file name : ccvirtuallistctrl.h
-//
+// copyright : (C) 2008 by Eran Ifrah
+// file name : ccvirtuallistctrl.h
+//
// -------------------------------------------------------------------------
-// A
-// _____ _ _ _ _
-// / __ \ | | | | (_) |
-// | / \/ ___ __| | ___| | _| |_ ___
-// | | / _ \ / _ |/ _ \ | | | __/ _ )
-// | \__/\ (_) | (_| | __/ |___| | || __/
-// \____/\___/ \__,_|\___\_____/_|\__\___|
-//
-// F i l e
-//
-// 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.
-//
+// A
+// _____ _ _ _ _
+// / __ \ | | | | (_) |
+// | / \/ ___ __| | ___| | _| |_ ___
+// | | / _ \ / _ |/ _ \ | | | __/ _ )
+// | \__/\ (_) | (_| | __/ |___| | || __/
+// \____/\___/ \__,_|\___\_____/_|\__\___|
+//
+// F i l e
+//
+// 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.
+//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#ifndef __ccvirtuallistctrl__
@@ -27,14 +27,23 @@
#include <wx/listctrl.h>
#include <vector>
+#include "entry.h"
-struct CCItemInfo {
- int imgId;
- wxString displayName;
-
+class CCItemInfo {
+public:
+ int imgId;
+ wxString displayName;
+ TagEntry tag;
+ std::vector<TagEntry> listOfTags;
+ int currentIndex;
+
+ CCItemInfo() : imgId(wxNOT_FOUND), displayName(wxT("")), currentIndex(0) {}
+ bool IsOk() const { return displayName.IsEmpty() == false; }
void Reset() {
imgId = wxNOT_FOUND;
displayName = wxEmptyString;
+ tag = TagEntry();
+ listOfTags.clear();
}
};
@@ -47,12 +56,12 @@ public:
public:
void SetItems(const std::vector<CCItemInfo> &tags) { m_tags = tags; }
-
+ bool GetItemTagEntry(int index, CCItemInfo &tag);
virtual wxListItemAttr* OnGetItemAttr(long item) const;
virtual int OnGetItemColumnImage(long item, long column) const;
virtual int OnGetItemImage(long item) const;
virtual wxString OnGetItemText(long item, long column) const;
int FindMatch(const wxString &word, bool &fullMatch);
-
+
};
#endif // __ccvirtuallistctrl__
diff --git a/LiteEditor/cl_editor.cpp b/LiteEditor/cl_editor.cpp
index 94673586..eda54064 100644
--- a/LiteEditor/cl_editor.cpp
+++ b/LiteEditor/cl_editor.cpp
@@ -132,9 +132,12 @@ BEGIN_EVENT_TABLE(LEditor, wxScintilla)
END_EVENT_TABLE()
// Instantiate statics
-FindReplaceDialog* LEditor::m_findReplaceDlg = NULL;
-FindReplaceData LEditor::m_findReplaceData;
-std::map<wxString, int> LEditor::ms_bookmarkShapes;
+FindReplaceDialog* LEditor::m_findReplaceDlg = NULL ;
+FindReplaceData LEditor::m_findReplaceData ;
+std::map<wxString, int> LEditor::ms_bookmarkShapes ;
+bool LEditor::m_ccShowPrivateMembers = true ;
+bool LEditor::m_ccShowItemsComments = true ;
+bool LEditor::m_ccInitialized = false;
LEditor::LEditor(wxWindow* parent)
: wxScintilla (parent, wxID_ANY, wxDefaultPosition, wxSize(1, 1), wxSTATIC_BORDER)
@@ -994,6 +997,22 @@ bool LEditor::SaveFileAs()
return false;
}
+#ifdef __WXGTK__
+//--------------------------------
+// GTK only get permissions method
+//--------------------------------
+mode_t GTKGetFilePermissions(const wxString &filename)
+{
+ // keep the original file permissions
+ struct stat b;
+ mode_t permissions(0);
+ if(stat(filename.mb_str(wxConvUTF8).data(), &b) == 0) {
+ permissions = b.st_mode;
+ }
+ return permissions;
+}
+#endif
+
// an internal function that does the actual file writing to disk
bool LEditor::SaveToFile(const wxFileName &fileName)
{
@@ -1050,11 +1069,32 @@ bool LEditor::SaveToFile(const wxFileName &fileName)
file.Write(theText, fontEncConv);
file.Close();
+#ifdef __WXGTK__
+ // keep the original file permissions
+ mode_t origPermissions = GTKGetFilePermissions(fileName.GetFullPath());
+#endif
+
// if the saving was done to a temporary file, override it
if (tmp_file.IsEmpty() == false) {
if (wxRenameFile(tmp_file, fileName.GetFullPath(), true) == false) {
wxMessageBox(wxString::Format(wxT("Failed to override read-only file")), wxT("CodeLite"), wxOK|wxICON_WARNING);
return false;
+ } else {
+ // override was successful, restore execute permissions
+#ifdef __WXGTK__
+ mode_t newFilePermissions = GTKGetFilePermissions(fileName.GetFullPath());
+
+ if(origPermissions & S_IXUSR)
+ newFilePermissions |= S_IXUSR;
+
+ if(origPermissions & S_IXGRP)
+ newFilePermissions |= S_IXGRP;
+
+ if(origPermissions & S_IXOTH)
+ newFilePermissions |= S_IXOTH;
+
+ ::chmod(fileName.GetFullPath().mb_str(wxConvUTF8), newFilePermissions);
+#endif
}
}
@@ -1419,28 +1459,43 @@ void LEditor::RecalcHorizontalScrollbar()
//--------------------------------------------------------
// Brace match
//--------------------------------------------------------
+
+bool LEditor::IsCloseBrace(int position)
+{
+ return GetCharAt(position) == '}' ||
+ GetCharAt(position) == ']' ||
+ GetCharAt(position) == ')';
+}
+
+bool LEditor::IsOpenBrace(int position)
+{
+ return GetCharAt(position) == '{' ||
+ GetCharAt(position) == '[' ||
+ GetCharAt(position) == '(';
+}
+
void LEditor::MatchBraceAndSelect(bool selRegion)
{
// Get current position
long pos = GetCurrentPos();
- if (GetCharAt(pos) == '{' && !m_context->IsCommentOrString(pos)) {
+ if (IsOpenBrace(pos) && !m_context->IsCommentOrString(pos)) {
BraceMatch(selRegion);
return;
}
- if (GetCharAt(PositionBefore(pos)) == '{' && !m_context->IsCommentOrString(PositionBefore(pos))) {
+ if (IsOpenBrace(PositionBefore(pos)) && !m_context->IsCommentOrString(PositionBefore(pos))) {
SetCurrentPos(PositionBefore(pos));
BraceMatch(selRegion);
return;
}
- if (GetCharAt(pos) == '}' && !m_context->IsCommentOrString(pos)) {
+ if (IsCloseBrace(pos) && !m_context->IsCommentOrString(pos)) {
BraceMatch(selRegion);
return;
}
- if (GetCharAt(PositionBefore(pos)) == '}' && !m_context->IsCommentOrString(PositionBefore(pos))) {
+ if (IsCloseBrace(PositionBefore(pos)) && !m_context->IsCommentOrString(PositionBefore(pos))) {
SetCurrentPos(PositionBefore(pos));
BraceMatch(selRegion);
return;
@@ -2140,17 +2195,29 @@ void LEditor::InsertTextWithIndentation(const wxString &text, int lineno)
InsertText(PositionFromLine(lineno), textTag);
}
-wxString LEditor::FormatTextKeepIndent(const wxString &text, int pos)
+wxString LEditor::FormatTextKeepIndent(const wxString &text, int pos, size_t flags)
{
//keep the page idnetation level
wxString textToInsert(text);
+ wxString indentBlock;
- int indentSize = GetIndent();
- int indent = GetLineIndentation(LineFromPosition(pos));
+ int indentSize = 0;
+ int indent = 0;
+
+ if(flags & Format_Text_Indent_Prev_Line) {
+ indentSize = GetIndent();
+ int foldLevel = (GetFoldLevel(LineFromPosition(pos)) & wxSCI_FOLDLEVELNUMBERMASK) - wxSCI_FOLDLEVELBASE;
+ indent = foldLevel*indentSize;
+
+ } else {
+ indentSize = GetIndent();
+ indent = GetLineIndentation(LineFromPosition(pos));
+ }
- wxString indentBlock;
if (GetUseTabs()) {
- indent = indent / indentSize;
+ if(indentSize)
+ indent = indent / indentSize;
+
for (int i=0; i<indent; i++) {
indentBlock << wxT("\t");
}
@@ -2161,7 +2228,6 @@ wxString LEditor::FormatTextKeepIndent(const wxString &text, int pos)
}
wxString eol = GetEolString();
-
textToInsert.Replace(wxT("\r"), wxT("\n"));
wxArrayString lines = wxStringTokenize(textToInsert, wxT("\n"), wxTOKEN_STRTOK);
@@ -2170,7 +2236,6 @@ wxString LEditor::FormatTextKeepIndent(const wxString &text, int pos)
textToInsert << indentBlock;
textToInsert << lines.Item(i) << eol;
}
-
return textToInsert;
}
@@ -2379,6 +2444,8 @@ void LEditor::OnLeftDown(wxMouseEvent &event)
if (!value) {
DoMarkHyperlink(event, false);
}
+
+ SetActive();
PostCmdEvent(wxEVT_EDITOR_CLICKED, NULL);
event.Skip();
}
@@ -2768,9 +2835,31 @@ void LEditor::ShowCompletionBox(const std::vector<TagEntryPtr>& tags, const wxSt
m_ccBox = new CCBox(this);
}
+ if(tags.empty()) {
+ return;
+ }
+
m_ccBox->SetAutoHide(false);
m_ccBox->SetInsertSingleChoice(false);
+ // Show extra info pane for C++ tags
+ bool showExtInfoPane = (tags.at(0)->GetKind() == wxT("function") ||
+ tags.at(0)->GetKind() == wxT("prototype") ||
+ tags.at(0)->GetKind() == wxT("class") ||
+ tags.at(0)->GetKind() == wxT("struct") ||
+ tags.at(0)->GetKind() == wxT("union") ||
+ tags.at(0)->GetKind() == wxT("namespace") ||
+ tags.at(0)->GetKind() == wxT("member") ||
+ tags.at(0)->GetKind() == wxT("variable") ||
+ tags.at(0)->GetKind() == wxT("typedef") ||
+ tags.at(0)->GetKind() == wxT("macro") ||
+ tags.at(0)->GetKind() == wxT("enum") ||
+ tags.at(0)->GetKind() == wxT("enumerator"));
+ if(showExtInfoPane) {
+ // it will be disabled automatically when the CC box is dissmissed
+ m_ccBox->EnableExtInfoPane();
+ }
+
// If the number of elements exceeds the maximum query result,
// alert the user
int limit ( TagsManagerST::Get()->GetDatabase()->GetSingleSearchLimit() );
@@ -2786,12 +2875,34 @@ void LEditor::ShowCompletionBox(const std::vector<TagEntryPtr>& tags, const wxSt
{
if ( m_ccBox == NULL ) {
// create new completion box
- m_ccBox = new CCBox(this);
+ m_ccBox = new CCBox( this );
+ }
+
+ if(tags.empty()) {
+ return;
}
m_ccBox->SetAutoHide(autoHide);
m_ccBox->SetInsertSingleChoice(autoInsertSingleChoice);
+ // Show extra info pane for C++ tags
+ bool showExtInfoPane = (tags.at(0)->GetKind() == wxT("function") ||
+ tags.at(0)->GetKind() == wxT("prototype") ||
+ tags.at(0)->GetKind() == wxT("class") ||
+ tags.at(0)->GetKind() == wxT("struct") ||
+ tags.at(0)->GetKind() == wxT("union") ||
+ tags.at(0)->GetKind() == wxT("namespace") ||
+ tags.at(0)->GetKind() == wxT("member") ||
+ tags.at(0)->GetKind() == wxT("variable") ||
+ tags.at(0)->GetKind() == wxT("typedef") ||
+ tags.at(0)->GetKind() == wxT("macro") ||
+ tags.at(0)->GetKind() == wxT("enum") ||
+ tags.at(0)->GetKind() == wxT("enumerator"));
+ if(showExtInfoPane) {
+ // it will be disabled automatically when the CC box is dissmissed
+ m_ccBox->EnableExtInfoPane();
+ }
+
// If the number of elements exceeds the maximum query result,
// alert the user
int limit ( TagsManagerST::Get()->GetDatabase()->GetSingleSearchLimit() );
@@ -3031,7 +3142,7 @@ void LEditor::RegisterImageForKind(const wxString& kind, const wxBitmap& bmp)
{
if ( m_ccBox == NULL ) {
// create new completion box
- m_ccBox = new CCBox(this);
+ m_ccBox = new CCBox( this );
}
m_ccBox->RegisterImageForKind(kind, bmp);
@@ -3520,7 +3631,7 @@ void LEditor::HighlightWord(StringHighlightOutput* highlightOutput)
}
}
-void LEditor::ChangeCase(bool toLower)
+void LEditor::ChangeCase(bool toLower)
{
bool hasSelection = (GetSelectedText().IsEmpty() == false);
@@ -3539,4 +3650,25 @@ void LEditor::ChangeCase(bool toLower)
toLower ? LowerCase() : UpperCase();
CharRight();
}
+}
+
+int LEditor::LineFromPos(int pos)
+{
+ return wxScintilla::LineFromPosition(pos);
+}
+
+int LEditor::PosFromLine(int line)
+{
+ return wxScintilla::PositionFromLine(line);
+}
+
+int LEditor::LineEnd(int line)
+{
+ int pos = wxScintilla::PositionFromLine(line);
+ return pos + wxScintilla::LineLength(line);
+}
+
+wxString LEditor::GetTextRange(int startPos, int endPos)
+{
+ return wxScintilla::GetTextRange(startPos, endPos);
}
diff --git a/LiteEditor/cl_editor.h b/LiteEditor/cl_editor.h
index 0b2d08e8..151d1abe 100644
--- a/LiteEditor/cl_editor.h
+++ b/LiteEditor/cl_editor.h
@@ -138,7 +138,11 @@ class LEditor : public wxScintilla, public IEditor
clEditorTipWindow* m_functionTip;
wxChar m_lastCharEntered;
int m_lastCharEnteredPos;
-// DisplayVariableDlg* m_debuggerTip;
+
+public:
+ static bool m_ccShowPrivateMembers;
+ static bool m_ccShowItemsComments;
+ static bool m_ccInitialized;
public:
static FindReplaceData &GetFindReplaceData() {
@@ -156,10 +160,6 @@ public:
return m_functionTip;
}
-// DisplayVariableDlg *GetDebuggerTip() {
-// return m_debuggerTip;
-// }
-
public:
/// Construct a LEditor object
LEditor(wxWindow* parent);
@@ -570,11 +570,40 @@ public:
virtual int WordEndPos (int pos, bool onlyWordCharacters);
/**
- * Insert text to the editor and keeping the indentation
+ * Prepend the indentation level found at line at 'pos' to each line in the input string
* \param text text to enter
* \param pos position to insert the text
+ * \param flags formatting flags
+ */
+ virtual wxString FormatTextKeepIndent(const wxString &text, int pos, size_t flags = 0);
+
+
+ /**
+ * @brief return the line numebr containing 'pos'
+ * @param pos the position
+ */
+ virtual int LineFromPos(int pos);
+
+ /**
+ * @brief return the start pos of line nummber
+ * @param line the line number
+ * @return line nummber or 0 if the document is empty
+ */
+ virtual int PosFromLine(int line);
+
+ /**
+ * @brief return the END position of 'line'
+ * @param line the line number
+ */
+ virtual int LineEnd(int line);
+
+ /**
+ * @brief return text from a given pos -> endPos
+ * @param startPos
+ * @param endPos
+ * @return
*/
- virtual wxString FormatTextKeepIndent(const wxString &text, int pos);
+ virtual wxString GetTextRange(int startPos, int endPos);
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
@@ -599,12 +628,13 @@ private:
BPtoMarker GetMarkerForBreakpt(enum BreakpointType bp_type);
void SetProperties();
void DefineMarker(int marker, int markerType, wxColor fore, wxColor back);
- void SetLineNumberWidth();
bool SaveToFile(const wxFileName &fileName);
void BraceMatch(const bool& bSelRegion);
void BraceMatch(long pos);
void DoHighlightWord();
void DoSetStatusMessage(const wxString &msg, int col);
+ bool IsOpenBrace (int position);
+ bool IsCloseBrace(int position);
// Conevert FindReplaceDialog flags to wxSD flags
size_t SearchFlags(const FindReplaceData &data);
diff --git a/LiteEditor/clang_code_completion.cpp b/LiteEditor/clang_code_completion.cpp
new file mode 100644
index 00000000..ed04816b
--- /dev/null
+++ b/LiteEditor/clang_code_completion.cpp
@@ -0,0 +1,428 @@
+#include "clang_code_completion.h"
+#include "environmentconfig.h"
+#include "processreaderthread.h"
+#include "globals.h"
+#include "jobqueue.h"
+#include "fileextmanager.h"
+#include <wx/tokenzr.h>
+#include "ieditor.h"
+#include "imanager.h"
+#include "workspace.h"
+#include "project.h"
+#include <wx/filename.h>
+#include <wx/dir.h>
+#include <wx/arrstr.h>
+#include "procutils.h"
+
+static wxStopWatch gStopWatch;
+
+BEGIN_EVENT_TABLE(ClangCodeCompletion, wxEvtHandler)
+EVT_COMMAND(wxID_ANY, wxEVT_PROC_DATA_READ, ClangCodeCompletion::OnProcessOutput)
+EVT_COMMAND(wxID_ANY, wxEVT_PROC_TERMINATED, ClangCodeCompletion::OnProcessTerminated)
+END_EVENT_TABLE()
+
+ClangCodeCompletion* ClangCodeCompletion::ms_instance = 0;
+
+ClangCodeCompletion::ClangCodeCompletion()
+ : m_manager (NULL)
+ , m_process (NULL)
+ , m_activationPos (wxNOT_FOUND)
+ , m_activationEditor(NULL)
+{
+}
+
+ClangCodeCompletion::~ClangCodeCompletion()
+{
+}
+
+void ClangCodeCompletion::Initialize(IManager* manager)
+{
+ m_manager = manager;
+}
+
+ClangCodeCompletion* ClangCodeCompletion::Instance()
+{
+ if(ms_instance == 0) {
+ ms_instance = new ClangCodeCompletion();
+ }
+ return ms_instance;
+}
+
+void ClangCodeCompletion::Release()
+{
+ if(ms_instance) {
+ delete ms_instance;
+ }
+ ms_instance = 0;
+}
+
+void ClangCodeCompletion::CodeComplete(IEditor* editor)
+{
+ // TODO :: this code works but for now we disable it until we
+ // add an option in the UI for it
+#if 0
+ // Sanity:
+ if(!editor || !m_manager || !m_manager->GetWorkspace() || !m_manager->IsWorkspaceOpen())
+ return;
+
+ // clang process is already running
+ if(m_process)
+ return;
+
+ // First, we need to build the command line
+ // try to locate the basic include paths:
+ wxArrayString args = GetStandardIncludePathsArgs();
+
+ // Next apppend the user include paths
+ wxString errMsg;
+
+ // First, we need to find the currently active workspace configuration
+ BuildMatrixPtr matrix = m_manager->GetWorkspace()->GetBuildMatrix();
+ if(!matrix) {
+ return;
+ }
+
+ wxString workspaceSelConf = matrix->GetSelectedConfigurationName();
+
+ // Now that we got the selected workspace configuration, extract the related project configuration
+ ProjectPtr proj = m_manager->GetWorkspace()->FindProjectByName(editor->GetProjectName(), errMsg);
+ if(!proj) {
+ return;
+ }
+
+ wxString currentBuffer = editor->GetTextRange(0, editor->GetCurrentPosition());
+ if(currentBuffer.IsEmpty())
+ return;
+
+ wxString projectSelConf = matrix->GetProjectSelectedConf(workspaceSelConf, proj->GetName());
+ BuildConfigPtr dependProjbldConf = m_manager->GetWorkspace()->GetProjBuildConf(proj->GetName(), projectSelConf);
+ if(dependProjbldConf && dependProjbldConf->IsCustomBuild() == false) {
+ // Get the include paths and add them
+ wxString projectIncludePaths = dependProjbldConf->GetIncludePath();
+ wxArrayString projectIncludePathsArr = wxStringTokenize(projectIncludePaths, wxT(";"), wxTOKEN_STRTOK);
+ for(size_t i=0; i<projectIncludePathsArr.GetCount(); i++) {
+ args.Add( wxString::Format(wxT("-I%s"), projectIncludePathsArr[i].c_str()) );
+ }
+
+ // get the compiler options and add them
+ wxString projectCompileOptions = dependProjbldConf->GetCompileOptions();
+ wxArrayString projectCompileOptionsArr = wxStringTokenize(projectCompileOptions, wxT(";"), wxTOKEN_STRTOK);
+ for(size_t i=0; i<projectCompileOptionsArr.GetCount(); i++) {
+ wxString cmpOption (projectCompileOptionsArr.Item(i));
+ cmpOption.Trim().Trim(false);
+
+ wxString tmp;
+ // Expand backticks / $(shell ...) syntax supported by codelite
+ if(cmpOption.StartsWith(wxT("$(shell "), &tmp) || cmpOption.StartsWith(wxT("`"), &tmp)) {
+ cmpOption = tmp;
+
+ tmp.Clear();
+ if(cmpOption.EndsWith(wxT(")"), &tmp) || cmpOption.EndsWith(wxT("`"), &tmp)) {
+ cmpOption = tmp;
+ }
+
+ if(m_backticks.find(cmpOption) == m_backticks.end()) {
+
+ // Expand the backticks into their value
+ wxArrayString outArr;
+ // Apply the environment before executing the command
+ EnvSetter setter( EnvironmentConfig::Instance() );
+ ProcUtils::SafeExecuteCommand(cmpOption, outArr);
+ wxString expandedValue;
+ for(size_t j=0; j<outArr.size(); j++)
+ {
+ expandedValue << outArr.Item(j) << wxT(" ");
+ }
+ m_backticks[cmpOption] = expandedValue;
+ cmpOption = expandedValue;
+ } else {
+ cmpOption = m_backticks.find(cmpOption)->second;
+ }
+ }
+ args.Add( cmpOption );
+ }
+
+ // get the compiler preprocessor and add them as well
+ wxString projectPreps = dependProjbldConf->GetPreprocessor();
+ wxArrayString projectPrepsArr = wxStringTokenize(projectPreps, wxT(";"), wxTOKEN_STRTOK);
+ for(size_t i=0; i<projectPrepsArr.GetCount(); i++) {
+ args.Add( wxString::Format(wxT("-D%s"), projectPrepsArr[i].c_str()) );
+ }
+
+ wxString filterWord;
+
+ // Move backward until we found our -> or :: or .
+ for(size_t i=currentBuffer.Length() - 1; i>0; i--) {
+ if(currentBuffer.EndsWith(wxT("->")) || currentBuffer.EndsWith(wxT(".")) || currentBuffer.EndsWith(wxT("::"))) {
+ break;
+ } else {
+ filterWord.Prepend(currentBuffer.GetChar(i));
+ currentBuffer.Truncate(currentBuffer.Length() - 1);
+ }
+ }
+
+ // Get the current line's starting pos
+ int lineStartPos = editor->PosFromLine( editor->GetCurrentLine() );
+ int column = editor->GetCurrentPosition() - lineStartPos + 1;
+ int line = editor->GetCurrentLine() + 1;
+
+ column -= (int)filterWord.Length();
+
+ // Create temp file
+ m_tmpfile.clear();
+ m_tmpfile << editor->GetFileName().GetPath(wxPATH_GET_SEPARATOR|wxPATH_GET_VOLUME) << editor->GetFileName().GetName() << wxT("_clang_tmp") << wxT(".cpp");
+
+ wxString command;
+
+ command << wxT("clang -w -fsyntax-only -Xclang -code-completion-at=");
+ FileExtManager::FileType type = FileExtManager::GetType(editor->GetFileName().GetFullPath());
+ if(type == FileExtManager::TypeSourceC || type == FileExtManager::TypeSourceCpp) {
+ if(!WriteFileWithBackup(m_tmpfile, currentBuffer, false)) {
+ wxLogMessage(wxT("Failed to write temp file: %s"), m_tmpfile.c_str());
+ return;
+ }
+ wxString completefileName;
+ completefileName << editor->GetFileName().GetName() << wxT("_clang_tmp") << wxT(".cpp");
+ command << completefileName << wxT(":") << line << wxT(":") << column << wxT(" ") << completefileName;
+
+ } else {
+ wxString implFile;
+ implFile << wxT("#include <") << editor->GetFileName().GetFullName() << wxT(">\n");
+ if(!WriteFileWithBackup(m_tmpfile, implFile, false)) {
+ wxLogMessage(wxT("Failed to write temp file: %s"), implFile.c_str());
+ return;
+ }
+ wxString completefileName;
+ completefileName << editor->GetFileName().GetName() << wxT("_clang_tmp") << wxT(".cpp");
+ command << editor->GetFileName().GetFullPath() << wxT(":") << line << wxT(":") << column << wxT(" ") << completefileName;
+ }
+
+ // Add the arguments
+ wxString argString;
+ for(size_t i=0; i<args.size(); i++) {
+ argString << wxT(" ") << args.Item(i);
+ }
+
+ command << argString;
+ if(m_process) {
+ DoCleanUp();
+ }
+
+ command.Replace(wxT("\n"), wxT(" "));
+ command.Replace(wxT("\r"), wxT(" "));
+
+ m_process = CreateAsyncProcess(this, command, editor->GetFileName().GetPath(wxPATH_GET_SEPARATOR|wxPATH_GET_VOLUME));
+ if(! m_process ) {
+ wxLogMessage(wxT("Failed to start process: %s"), command.c_str());
+ return;
+ }
+
+ m_activationEditor = editor;
+ m_activationPos = lineStartPos + column - 1;
+
+ gStopWatch.Start();
+ }
+#endif
+}
+
+wxArrayString ClangCodeCompletion::GetStandardIncludePathsArgs()
+{
+ static wxArrayString paths;
+#ifdef __WXMSW__
+ if(paths.IsEmpty() == false)
+ return paths;
+
+ wxString standardIncludeBase;
+ wxGetEnv(wxT("MINGW_INCL_HOME"), &standardIncludeBase);
+ if (standardIncludeBase.IsEmpty() == false && wxDir::Exists(standardIncludeBase)) {
+
+ wxString mingwBaseDir (standardIncludeBase );
+
+ // "C:/MinGW-4.4.1/include"
+ standardIncludeBase.Prepend(wxT("-I"));
+ paths.Add(standardIncludeBase + wxT("\\include"));
+ standardIncludeBase << wxT("\\lib\\gcc\\mingw32\\");
+ mingwBaseDir << wxT("\\lib\\gcc\\mingw32\\");
+
+ long highestVersion(0);
+ wxString sHighestVersion;
+ wxArrayString files;
+
+ if (wxDir::Exists( mingwBaseDir ) ) {
+ wxDir::GetAllFiles(mingwBaseDir, &files, wxEmptyString, wxDIR_DIRS|wxDIR_FILES);
+
+ //filter out all non-directories
+ for (size_t i=0; i<files.GetCount(); i++) {
+ wxFileName fn(files.Item(i));
+
+ wxString p = fn.GetPath().Mid( mingwBaseDir.Length() );
+ wxString tmp_p(p);
+ tmp_p.Replace(wxT("."), wxT(""));
+ long number(0);
+ tmp_p.ToLong( &number );
+ if (number && number > highestVersion) {
+ sHighestVersion = p.BeforeFirst(wxFileName::GetPathSeparator());
+ highestVersion = number;
+ }
+ }
+
+ if (sHighestVersion.IsEmpty() == false) {
+ standardIncludeBase << sHighestVersion << wxT("\\include");
+ paths.Add( standardIncludeBase );
+ paths.Add( standardIncludeBase + wxT("\\c++") );
+ paths.Add( standardIncludeBase + wxT("\\c++\\mingw32") );
+ }
+ }
+ }
+ return paths;
+#else
+ return paths;
+#endif
+}
+
+void ClangCodeCompletion::OnProcessTerminated(wxCommandEvent& e)
+{
+ ProcessEventData *ped = (ProcessEventData*) e.GetClientData();
+ delete ped;
+
+ //wxLogMessage(wxT("clang process ended after %d ms"), gStopWatch.Time());
+
+ // Parse the output
+ if(m_output.IsEmpty() == false) {
+ DoParseOutput();
+ }
+ DoCleanUp();
+}
+
+void ClangCodeCompletion::OnProcessOutput(wxCommandEvent& e)
+{
+ ProcessEventData *ped = (ProcessEventData*) e.GetClientData();
+ if(ped) {
+ m_output << ped->GetData();
+ delete ped;
+ }
+ e.Skip();
+}
+
+void ClangCodeCompletion::DoParseOutput()
+{
+ // Sanity
+ if(m_output.IsEmpty() || !m_activationEditor || m_activationPos == wxNOT_FOUND)
+ return;
+
+ wxArrayString entries = wxStringTokenize(m_output, wxT("\n\r"), wxTOKEN_STRTOK);
+ std::vector<TagEntryPtr> tags;
+ tags.reserve( entries.size() );
+
+ for(size_t i=0; i<entries.GetCount(); i++) {
+ entries.Item(i).Trim().Trim(false);
+ if(entries.Item(i).IsEmpty())
+ continue;
+
+ TagEntryPtr tag = ClangEntryToTagEntry( entries.Item(i) );
+ if(tag) {
+ tags.push_back( tag );
+ }
+
+ }
+
+ if(tags.empty() == false) {
+ int curline = m_activationEditor->GetCurrentLine();
+ int actline = m_activationEditor->LineFromPos(m_activationPos);
+ if(curline != actline)
+ return;
+ // we are still on the same line
+
+ // We need to make sure that the caret is still infront of the completion char
+ if(m_activationEditor->GetCurrentPosition() < m_activationPos)
+ return;
+
+ // Get the text between the current position and the activation pos and filter all results
+ // that dont match
+ wxString filter = m_activationEditor->GetTextRange(m_activationPos, m_activationEditor->GetCurrentPosition());
+ if(filter.IsEmpty() == false) {
+ filter.MakeLower();
+
+ std::vector<TagEntryPtr> filteredTags;
+ filteredTags.reserve( tags.size() );
+ for(size_t i=0; i<tags.size(); i++) {
+ wxString n = tags.at(i)->GetName();
+ n.MakeLower();
+
+ if(n.StartsWith(filter)) {
+ filteredTags.push_back(tags.at(i));
+ }
+ }
+
+ if(filteredTags.empty() == false) {
+ m_activationEditor->ShowCompletionBox(filteredTags, filter, NULL);
+ }
+ } else {
+ m_activationEditor->ShowCompletionBox(tags, wxEmptyString, NULL);
+ }
+ }
+}
+
+TagEntryPtr ClangCodeCompletion::ClangEntryToTagEntry(const wxString& line)
+{
+ // an example of line:
+ // COMPLETION: OpenFile : [#bool#]OpenFile(<#class wxString const &fileName#>{#, <#class wxString const &projectName#>{#, <#int lineno#>#}#})
+ wxString tmp;
+ if(line.StartsWith(wxT("COMPLETION: "), &tmp) == false)
+ return NULL;
+
+ if(line.Contains(wxT("(Hidden)")))
+ return NULL;
+
+ // Next comes the name of the entry
+ wxString name = tmp.BeforeFirst(wxT(':'));
+ name.Trim().Trim(false);
+
+ if(name.IsEmpty())
+ return NULL;
+
+ TagEntry *t = new TagEntry();
+ TagEntryPtr tag(t);
+ tag->SetName( name );
+
+ tmp = tmp.AfterFirst(wxT(':'));
+ tmp.Trim().Trim(false);
+
+ // determine the kind
+ tag->SetKind(wxT("prototype")); // default
+
+ if(tmp == name) {
+ // this a type (enum/typedef/internal class)
+ tag->SetKind(wxT("class"));
+ } else if(tmp.Contains(wxT("("))) {
+ // definitly a method, do nothing
+ } else {
+ tag->SetKind(wxT("member"));
+ }
+
+ return tag;
+}
+
+void ClangCodeCompletion::DoCleanUp()
+{
+ delete m_process;
+ m_process = NULL;
+
+ // remove the temporary file
+ if(m_tmpfile.IsEmpty() == false) {
+#ifndef __WXMSW__
+ ::unlink( m_tmpfile.mb_str(wxConvUTF8).data() );
+#endif
+ wxRemoveFile( m_tmpfile );
+ m_tmpfile.Clear();
+ }
+
+ m_output.Clear();
+ m_activationEditor = NULL;
+ m_activationPos = wxNOT_FOUND;
+}
+
+void ClangCodeCompletion::CancelCodeComplete()
+{
+ DoCleanUp();
+}
diff --git a/LiteEditor/clang_code_completion.h b/LiteEditor/clang_code_completion.h
new file mode 100644
index 00000000..2ac45a09
--- /dev/null
+++ b/LiteEditor/clang_code_completion.h
@@ -0,0 +1,58 @@
+#ifndef CLANGCODECOMPLETION_H
+#define CLANGCODECOMPLETION_H
+
+#include <wx/event.h>
+#include "asyncprocess.h"
+#include <map>
+#include "entry.h"
+
+class IEditor;
+class IManager;
+
+/**
+ * @class ClangCodeCompletion
+ * @author eran
+ * @date 07/18/10
+ * @file clang_code_completion.h
+ * @brief codelite's interface to clang's code completion
+ */
+class ClangCodeCompletion : public wxEvtHandler
+{
+
+ static ClangCodeCompletion* ms_instance;
+ IManager * m_manager;
+ IProcess* m_process;
+ wxString m_output;
+ wxString m_tmpfile;
+ std::map<wxString,wxString> m_backticks;
+ int m_activationPos;
+ IEditor* m_activationEditor;
+
+public:
+ static ClangCodeCompletion* Instance();
+ static void Release();
+ void Initialize(IManager *manager);
+ /**
+ * @brief perform code completion
+ * @param editor
+ */
+ void CodeComplete(IEditor *editor);
+ void CancelCodeComplete();
+
+protected:
+ wxArrayString GetStandardIncludePathsArgs();
+ void DoParseOutput();
+ void DoCleanUp();
+ TagEntryPtr ClangEntryToTagEntry(const wxString &line);
+
+protected:
+ DECLARE_EVENT_TABLE()
+ void OnProcessTerminated(wxCommandEvent &e);
+ void OnProcessOutput (wxCommandEvent &e);
+
+private:
+ ClangCodeCompletion();
+ ~ClangCodeCompletion();
+};
+
+#endif // CLANGCODECOMPLETION_H
diff --git a/LiteEditor/context_cpp.cpp b/LiteEditor/context_cpp.cpp
index d95b4b96..3c2ae96a 100644
--- a/LiteEditor/context_cpp.cpp
+++ b/LiteEditor/context_cpp.cpp
@@ -25,6 +25,7 @@
#include "pluginmanager.h"
+#include "clang_code_completion.h"
#include "drawingutils.h"
#include "buildtabsettingsdata.h"
#include "cl_editor_tip_window.h"
@@ -495,165 +496,6 @@ void ContextCpp::RemoveDuplicates(std::vector<TagEntryPtr>& src, std::vector<Tag
}
}
-wxString ContextCpp::GetExpression(long pos, bool onlyWord, LEditor *editor, bool forCC)
-{
- bool cont(true);
- int depth(0);
-
- LEditor *ctrl(NULL);
- if (!editor) {
- ctrl = &GetCtrl();
- } else {
- ctrl = editor;
- }
-
- int position( pos );
- int at(position);
- bool prevGt(false);
- bool prevColon(false);
- while (cont && depth >= 0) {
- wxChar ch =ctrl->PreviousChar(position, at, true);
- position = at;
- //Eof?
- if (ch == 0) {
- at = 0;
- break;
- }
-
- //Comment?
- int style = ctrl->GetStyleAt(pos);
- if (style == wxSCI_C_COMMENT ||
- style == wxSCI_C_COMMENTLINE ||
- style == wxSCI_C_COMMENTDOC ||
- style == wxSCI_C_COMMENTLINEDOC ||
- style == wxSCI_C_COMMENTDOCKEYWORD ||
- style == wxSCI_C_COMMENTDOCKEYWORDERROR ||
- style == wxSCI_C_STRING ||
- style == wxSCI_C_STRINGEOL ||
- style == wxSCI_C_CHARACTER) {
- continue;
- }
-
- switch (ch) {
- case wxT(';'):
- // dont include this token
- at = ctrl->PositionAfter(at);
- cont = false;
- prevColon = false;
- break;
- case wxT('-'):
- if (prevGt) {
- prevGt = false;
- //if previous char was '>', we found an arrow so reduce the depth
- //which was increased
- depth--;
- } else {
- if (depth <= 0) {
- //dont include this token
- at =ctrl->PositionAfter(at);
- cont = false;
- }
- }
- prevColon = false;
- break;
- case wxT(' '):
- case wxT('\n'):
- case wxT('\v'):
- case wxT('\t'):
- case wxT('\r'):
- prevGt = false;
- prevColon = false;
- if (depth <= 0) {
- cont = false;
- break;
- }
- break;
- case wxT('{'):
- case wxT('='):
- prevGt = false;
- prevColon = false;
- cont = false;
- break;
- case wxT('('):
- case wxT('['):
- depth--;
- prevGt = false;
- prevColon = false;
- if (depth < 0) {
- //dont include this token
- at =ctrl->PositionAfter(at);
- cont = false;
- }
- break;
- case wxT(','):
- case wxT('*'):
- case wxT('&'):
- case wxT('!'):
- case wxT('~'):
- case wxT('+'):
- case wxT('^'):
- case wxT('|'):
- case wxT('%'):
- case wxT('?'):
- prevGt = false;
- prevColon = false;
- if (depth <= 0) {
-
- //dont include this token
- at =ctrl->PositionAfter(at);
- cont = false;
- }
- break;
- case wxT('>'):
- prevGt = true;
- prevColon = false;
- depth++;
- break;
- case wxT('<'):
- prevGt = false;
- prevColon = false;
- depth--;
- if (depth < 0) {
-
- //dont include this token
- at =ctrl->PositionAfter(at);
- cont = false;
- }
- break;
- case wxT(')'):
- case wxT(']'):
- prevGt = false;
- prevColon = false;
- depth++;
- break;
- default:
- prevGt = false;
- prevColon = false;
- break;
- }
- }
-
- if (at < 0) at = 0;
- wxString expr = ctrl->GetTextRange(at, pos);
- if ( !forCC ) {
- // If we do not require the expression for CodeCompletion
- // return the un-touched buffer
- return expr;
- }
-
- //remove comments from it
- CppScanner sc;
- sc.SetText(_C(expr));
- wxString expression;
- int type=0;
- while ( (type = sc.yylex()) != 0 ) {
- wxString token = _U(sc.YYText());
- expression += token;
- expression += wxT(" ");
- }
- return expression;
-}
-
wxString ContextCpp::GetWordUnderCaret()
{
LEditor &rCtrl = GetCtrl();
@@ -864,8 +706,10 @@ void ContextCpp::CompleteWord()
DoSetProjectPaths();
if (mgr->WordCompletionCandidates(rCtrl.GetFileName(), lineNum, expr, text, word, candidates)) {
DisplayCompletionBox(candidates, word, false);
+ } else {
+ // Incase code completion fails, use clang to complete
+ ClangCodeCompletion::Instance()->CodeComplete( &rCtrl );
}
-
}
void ContextCpp::DisplayCompletionBox(const std::vector<TagEntryPtr> &tags, const wxString &word, bool showFullDecl)
@@ -2620,9 +2464,10 @@ void ContextCpp::DoCodeComplete(long pos)
DoSetProjectPaths();
if (TagsManagerST::Get()->AutoCompleteCandidates(rCtrl.GetFileName(), line, expr, text, candidates)) {
DisplayCompletionBox(candidates, wxEmptyString, showFullDecl);
+ } else {
+ ClangCodeCompletion::Instance()->CodeComplete( &rCtrl );
}
}
-
}
int ContextCpp::GetHyperlinkRange(int pos, int &start, int &end)
@@ -2765,7 +2610,7 @@ void ContextCpp::OnGotoNextFunction(wxCommandEvent& event)
void ContextCpp::OnCallTipClick(wxScintillaEvent& e)
{
- wxUnusedVar(e);
+ e.Skip();
}
void ContextCpp::OnCalltipCancel()
@@ -2888,3 +2733,162 @@ wxString ContextCpp::GetCurrentScopeName()
}
return wxEmptyString;
}
+
+wxString ContextCpp::GetExpression(long pos, bool onlyWord, LEditor *editor, bool forCC)
+{
+ bool cont(true);
+ int depth(0);
+
+ LEditor *ctrl(NULL);
+ if (!editor) {
+ ctrl = &GetCtrl();
+ } else {
+ ctrl = editor;
+ }
+
+ int position( pos );
+ int at(position);
+ bool prevGt(false);
+ bool prevColon(false);
+ while (cont && depth >= 0) {
+ wxChar ch =ctrl->PreviousChar(position, at, true);
+ position = at;
+ //Eof?
+ if (ch == 0) {
+ at = 0;
+ break;
+ }
+
+ //Comment?
+ int style = ctrl->GetStyleAt(pos);
+ if (style == wxSCI_C_COMMENT ||
+ style == wxSCI_C_COMMENTLINE ||
+ style == wxSCI_C_COMMENTDOC ||
+ style == wxSCI_C_COMMENTLINEDOC ||
+ style == wxSCI_C_COMMENTDOCKEYWORD ||
+ style == wxSCI_C_COMMENTDOCKEYWORDERROR ||
+ style == wxSCI_C_STRING ||
+ style == wxSCI_C_STRINGEOL ||
+ style == wxSCI_C_CHARACTER) {
+ continue;
+ }
+
+ switch (ch) {
+ case wxT(';'):
+ // dont include this token
+ at = ctrl->PositionAfter(at);
+ cont = false;
+ prevColon = false;
+ break;
+ case wxT('-'):
+ if (prevGt) {
+ prevGt = false;
+ //if previous char was '>', we found an arrow so reduce the depth
+ //which was increased
+ depth--;
+ } else {
+ if (depth <= 0) {
+ //dont include this token
+ at =ctrl->PositionAfter(at);
+ cont = false;
+ }
+ }
+ prevColon = false;
+ break;
+ case wxT(' '):
+ case wxT('\n'):
+ case wxT('\v'):
+ case wxT('\t'):
+ case wxT('\r'):
+ prevGt = false;
+ prevColon = false;
+ if (depth <= 0) {
+ cont = false;
+ break;
+ }
+ break;
+ case wxT('{'):
+ case wxT('='):
+ prevGt = false;
+ prevColon = false;
+ cont = false;
+ break;
+ case wxT('('):
+ case wxT('['):
+ depth--;
+ prevGt = false;
+ prevColon = false;
+ if (depth < 0) {
+ //dont include this token
+ at =ctrl->PositionAfter(at);
+ cont = false;
+ }
+ break;
+ case wxT(','):
+ case wxT('*'):
+ case wxT('&'):
+ case wxT('!'):
+ case wxT('~'):
+ case wxT('+'):
+ case wxT('^'):
+ case wxT('|'):
+ case wxT('%'):
+ case wxT('?'):
+ prevGt = false;
+ prevColon = false;
+ if (depth <= 0) {
+
+ //dont include this token
+ at =ctrl->PositionAfter(at);
+ cont = false;
+ }
+ break;
+ case wxT('>'):
+ prevGt = true;
+ prevColon = false;
+ depth++;
+ break;
+ case wxT('<'):
+ prevGt = false;
+ prevColon = false;
+ depth--;
+ if (depth < 0) {
+
+ //dont include this token
+ at =ctrl->PositionAfter(at);
+ cont = false;
+ }
+ break;
+ case wxT(')'):
+ case wxT(']'):
+ prevGt = false;
+ prevColon = false;
+ depth++;
+ break;
+ default:
+ prevGt = false;
+ prevColon = false;
+ break;
+ }
+ }
+
+ if (at < 0) at = 0;
+ wxString expr = ctrl->GetTextRange(at, pos);
+ if ( !forCC ) {
+ // If we do not require the expression for CodeCompletion
+ // return the un-touched buffer
+ return expr;
+ }
+
+ //remove comments from it
+ CppScanner sc;
+ sc.SetText(_C(expr));
+ wxString expression;
+ int type=0;
+ while ( (type = sc.yylex()) != 0 ) {
+ wxString token = _U(sc.YYText());
+ expression += token;
+ expression += wxT(" ");
+ }
+ return expression;
+}
diff --git a/LiteEditor/fileview.cpp b/LiteEditor/fileview.cpp
index e68e1eab..30c64a8b 100644
--- a/LiteEditor/fileview.cpp
+++ b/LiteEditor/fileview.cpp
@@ -146,6 +146,8 @@ FileViewTree::FileViewTree( wxWindow *parent, const wxWindowID id, const wxPoint
images->Add( wxXmlResource::Get()->LoadBitmap( wxT( "page_white_text" ) ) ); //5
images->Add( wxXmlResource::Get()->LoadBitmap( wxT( "workspace" ) ) ); //6
images->Add( wxXmlResource::Get()->LoadBitmap( wxT( "formbuilder" ) ) ); //7
+ images->Add( wxXmlResource::Get()->LoadBitmap( wxT( "active_project" ) ) ); //8
+
AssignImageList( images );
Connect( GetId(), wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, wxTreeEventHandler( FileViewTree::OnPopupMenu ) );
@@ -165,15 +167,13 @@ void FileViewTree::Create( wxWindow *parent, const wxWindowID id, const wxPoint&
{
bool multi (false);
long val (0);
- if(EditorConfigST::Get()->GetLongValue(wxT("WspTreeMultipleSelection"), val) == false) {val = 0;}
+ if(EditorConfigST::Get()->GetLongValue(wxT("WspTreeMultipleSelection"), val) == false) {
+ val = 0;
+ }
val ? multi = true : multi = false;
-#ifndef __WXGTK__
- style |= ( wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT );
-#else
- style |= ( wxTR_HAS_BUTTONS );
-#endif
- if (multi) style |= wxTR_MULTIPLE;
+ style |= ( wxTR_HAS_BUTTONS | wxTR_FULL_ROW_HIGHLIGHT | wxTR_NO_LINES);
+ if (multi) style |= wxTR_MULTIPLE ;
wxTreeCtrl::Create( parent, id, pos, size, style );
@@ -191,7 +191,9 @@ void FileViewTree::BuildTree()
{
bool multi (false);
long val (0);
- if(EditorConfigST::Get()->GetLongValue(wxT("WspTreeMultipleSelection"), val) == false) {val = 0;}
+ if(EditorConfigST::Get()->GetLongValue(wxT("WspTreeMultipleSelection"), val) == false) {
+ val = 0;
+ }
val ? multi = true : multi = false;
DeleteAllItems();
@@ -327,10 +329,10 @@ void FileViewTree::BuildProjectNode( const wxString &projectName )
}
wxTreeItemId hti = AppendItem( parentHti, // parent
- node->GetData().GetDisplayName(), // display name
- GetIconIndex( node->GetData() ), // item image index
- GetIconIndex( node->GetData() ), // selected item image
- new FilewViewTreeItemData( node->GetData() ) );
+ node->GetData().GetDisplayName(), // display name
+ GetIconIndex( node->GetData() ), // item image index
+ GetIconIndex( node->GetData() ), // selected item image
+ new FilewViewTreeItemData( node->GetData() ) );
m_itemsToSort[parentHti.m_pItem] = true;
// Set active project with bold
@@ -339,6 +341,9 @@ void FileViewTree::BuildProjectNode( const wxString &projectName )
if ( parentHti == GetRootItem() && displayName == activeProjectName) {
SetItemBold( hti );
+ SetItemImage(hti, 8);
+ SetItemImage(hti, 8, wxTreeItemIcon_Selected);
+ SetItemImage(hti, 8, wxTreeItemIcon_SelectedExpanded);
}
items[node->GetKey()] = hti;
@@ -553,7 +558,7 @@ void FileViewTree::OnExportMakefile( wxCommandEvent &event )
wxTreeItemId item = GetSingleSelection();
if ( item.IsOk() ) {
wxString projectName, errMsg;
- BuilderPtr builder = BuildManagerST::Get()->GetSelectedBuilder(); // use current builder
+ BuilderPtr builder = BuildManagerST::Get()->GetSelectedBuilder(); // use current builder
projectName = GetItemText( item );
if ( !builder->Export( projectName, wxEmptyString, false, true, errMsg ) ) {
wxMessageBox( errMsg, wxT( "CodeLite" ), wxICON_HAND );
@@ -598,10 +603,10 @@ bool FileViewTree::AddFilesToVirtualFolder(const wxString& vdFullPath, wxArraySt
ProjectItem projItem( path, fnFileName.GetFullName(), fnFileName.GetFullPath(), ProjectItem::TypeFile );
wxTreeItemId hti = AppendItem( item, // parent
- projItem.GetDisplayName(), // display name
- GetIconIndex( projItem ), // item image index
- GetIconIndex( projItem ), // selected item image
- new FilewViewTreeItemData( projItem ) );
+ projItem.GetDisplayName(), // display name
+ GetIconIndex( projItem ), // item image index
+ GetIconIndex( projItem ), // selected item image
+ new FilewViewTreeItemData( projItem ) );
wxUnusedVar( hti );
}
@@ -689,10 +694,10 @@ bool FileViewTree::AddFilesToVirtualFolder(wxTreeItemId &item, wxArrayString &pa
ProjectItem projItem( path, fnFileName.GetFullName(), fnFileName.GetFullPath(), ProjectItem::TypeFile );
wxTreeItemId hti = AppendItem( item, // parent
- projItem.GetDisplayName(), // display name
- GetIconIndex( projItem ), // item image index
- GetIconIndex( projItem ), // selected item image
- new FilewViewTreeItemData( projItem ) );
+ projItem.GetDisplayName(), // display name
+ GetIconIndex( projItem ), // item image index
+ GetIconIndex( projItem ), // selected item image
+ new FilewViewTreeItemData( projItem ) );
wxUnusedVar( hti );
}
@@ -780,6 +785,9 @@ void FileViewTree::DoSetProjectActive( wxTreeItemId &item )
FilewViewTreeItemData *childData = static_cast<FilewViewTreeItemData*>( GetItemData( child ) );
if ( childData && childData->GetData().GetDisplayName() == curActiveProj ) {
SetItemBold( child, false );
+ SetItemImage(child, 0);
+ SetItemImage(child, 0, wxTreeItemIcon_Selected);
+ SetItemImage(child, 0, wxTreeItemIcon_SelectedExpanded);
break;
}
child = GetNextChild( GetRootItem(), cookie );
@@ -787,9 +795,11 @@ void FileViewTree::DoSetProjectActive( wxTreeItemId &item )
ManagerST::Get()->SetActiveProject( data->GetData().GetDisplayName() );
SetItemBold( item );
+ SetItemImage(item, 8);
+ SetItemImage(item, 8, wxTreeItemIcon_Selected);
+ SetItemImage(item, 8, wxTreeItemIcon_SelectedExpanded);
}
}
-
}
void FileViewTree::OnRemoveVirtualFolder( wxCommandEvent & WXUNUSED( event ) )
@@ -957,7 +967,7 @@ void FileViewTree::OnLocalPrefs( wxCommandEvent& event )
}
wxXmlNode* lwsnode = LocalWorkspaceST::Get()->GetLocalWorkspaceOptionsNode();
- // Don't check lwsnode: it'll be NULL if there are currently no local workspace options
+ // Don't check lwsnode: it'll be NULL if there are currently no local workspace options
// Start by getting the global settings
OptionsConfigPtr higherOptions = EditorConfigST::Get()->GetOptions();
@@ -966,7 +976,7 @@ void FileViewTree::OnLocalPrefs( wxCommandEvent& event )
if (event.GetId() == XRCID("local_workspace_prefs")) {
EditorSettingsLocal dlg(higherOptions, lwsnode, pLevel_workspace, this);
if (dlg.ShowModal() == wxID_OK &&
- LocalWorkspaceST::Get()->SetWorkspaceOptions(dlg.GetLocalOpts()) ) {
+ LocalWorkspaceST::Get()->SetWorkspaceOptions(dlg.GetLocalOpts()) ) {
Frame::Get()->GetMainBook()->ApplySettingsChanges();
// Notify plugins that some settings have changed
PostCmdEvent( wxEVT_EDITOR_SETTINGS_CHANGED );
@@ -987,12 +997,12 @@ void FileViewTree::OnLocalPrefs( wxCommandEvent& event )
EditorSettingsLocal dlg(higherOptions, lpnode, pLevel_project, this);
if (dlg.ShowModal() == wxID_OK &&
- LocalWorkspaceST::Get()->SetProjectOptions(dlg.GetLocalOpts(), GetItemText(item)) ) {
- Frame::Get()->GetMainBook()->ApplySettingsChanges();
- // Notify plugins that some settings have changed
- PostCmdEvent( wxEVT_EDITOR_SETTINGS_CHANGED );
- }
+ LocalWorkspaceST::Get()->SetProjectOptions(dlg.GetLocalOpts(), GetItemText(item)) ) {
+ Frame::Get()->GetMainBook()->ApplySettingsChanges();
+ // Notify plugins that some settings have changed
+ PostCmdEvent( wxEVT_EDITOR_SETTINGS_CHANGED );
}
+}
void FileViewTree::OnProjectProperties( wxCommandEvent & WXUNUSED( event ) )
{
@@ -1037,7 +1047,7 @@ int FileViewTree::OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId&
{
// used for SortChildren, reroute to our sort routine
FilewViewTreeItemData *a = (FilewViewTreeItemData *)GetItemData(item1),
- *b = (FilewViewTreeItemData *)GetItemData(item2);
+ *b = (FilewViewTreeItemData *)GetItemData(item2);
if (a && b)
return OnCompareItems(a,b);
@@ -1048,7 +1058,7 @@ int FileViewTree::OnCompareItems(const FilewViewTreeItemData *a, const FilewView
{
// if dir and other is not, dir has preference
if (a->GetData().GetKind() == ProjectItem::TypeVirtualDirectory &&
- b->GetData().GetKind() == ProjectItem::TypeFile)
+ b->GetData().GetKind() == ProjectItem::TypeFile)
return -1;
else if (b->GetData().GetKind() == ProjectItem::TypeVirtualDirectory &&
a->GetData().GetKind() == ProjectItem::TypeFile)
@@ -1510,16 +1520,15 @@ void FileViewTree::OnImportDirectory(wxCommandEvent &e)
/* always excluded by default */
wxString filepath = fn.GetPath();
if( filepath.Contains(wxT(".svn")) || filepath.Contains(wxT(".cvs")) ||
- filepath.Contains(wxT(".arch-ids")) || filepath.Contains(wxT("arch-inventory")) ||
- filepath.Contains(wxT("autom4te.cache")) || filepath.Contains(wxT("BitKeeper")) ||
- filepath.Contains(wxT(".bzr")) || filepath.Contains(wxT(".bzrignore")) ||
- filepath.Contains(wxT("CVS")) || filepath.Contains(wxT(".cvsignore")) ||
- filepath.Contains(wxT("_darcs")) || filepath.Contains(wxT(".deps")) ||
- filepath.Contains(wxT("EIFGEN")) || filepath.Contains(wxT(".git")) ||
- filepath.Contains(wxT(".hg")) || filepath.Contains(wxT("PENDING")) ||
- filepath.Contains(wxT("RCS")) || filepath.Contains(wxT("RESYNC")) ||
- filepath.Contains(wxT("SCCS")) || filepath.Contains(wxT("{arch}")))
- {
+ filepath.Contains(wxT(".arch-ids")) || filepath.Contains(wxT("arch-inventory")) ||
+ filepath.Contains(wxT("autom4te.cache")) || filepath.Contains(wxT("BitKeeper")) ||
+ filepath.Contains(wxT(".bzr")) || filepath.Contains(wxT(".bzrignore")) ||
+ filepath.Contains(wxT("CVS")) || filepath.Contains(wxT(".cvsignore")) ||
+ filepath.Contains(wxT("_darcs")) || filepath.Contains(wxT(".deps")) ||
+ filepath.Contains(wxT("EIFGEN")) || filepath.Contains(wxT(".git")) ||
+ filepath.Contains(wxT(".hg")) || filepath.Contains(wxT("PENDING")) ||
+ filepath.Contains(wxT("RCS")) || filepath.Contains(wxT("RESYNC")) ||
+ filepath.Contains(wxT("SCCS")) || filepath.Contains(wxT("{arch}"))) {
continue;
}
@@ -1803,10 +1812,10 @@ bool FileViewTree::DoAddNewItem(wxTreeItemId& item, const wxString& filename, co
ProjectItem projItem( path, fnFileName.GetFullName(), fnFileName.GetFullPath(), ProjectItem::TypeFile );
wxTreeItemId hti = AppendItem( item, // parent
- projItem.GetDisplayName(), // display name
- GetIconIndex( projItem ), // item image index
- GetIconIndex( projItem ), // selected item image
- new FilewViewTreeItemData( projItem ) );
+ projItem.GetDisplayName(), // display name
+ GetIconIndex( projItem ), // item image index
+ GetIconIndex( projItem ), // selected item image
+ new FilewViewTreeItemData( projItem ) );
wxUnusedVar( hti );
SortItem(item);
Expand( item );
@@ -1844,7 +1853,7 @@ void FileViewTree::OnLocalWorkspaceSettings(wxCommandEvent& e)
bool retagRequires;
WorkspaceSettingsDlg dlg(Frame::Get(), LocalWorkspaceST::Get());
if(dlg.ShowModal() == wxID_OK) {
-
+
Frame::Get()->SetEnvStatusMessage();
// Update the new paths
retagRequires = ManagerST::Get()->UpdateParserPaths();
diff --git a/LiteEditor/findinfilesdlg.cpp b/LiteEditor/findinfilesdlg.cpp
index ebda2cab..dabf81e8 100644
--- a/LiteEditor/findinfilesdlg.cpp
+++ b/LiteEditor/findinfilesdlg.cpp
@@ -42,6 +42,7 @@ FindInFilesDialog::FindInFilesDialog(wxWindow* parent, wxWindowID id, const Find
choices.Add(SEARCH_IN_PROJECT);
choices.Add(SEARCH_IN_WORKSPACE);
choices.Add(SEARCH_IN_CURR_FILE_PROJECT);
+ choices.Add(SEARCH_IN_CURRENT_FILE);
for (size_t i = 0; i < m_data.GetSearchPaths().GetCount(); ++i) {
choices.Add(m_data.GetSearchPaths().Item(i));
}
@@ -230,6 +231,12 @@ SearchData FindInFilesDialog::DoGetSearchData()
project = ManagerST::Get()->GetProjectNameByFile(activeFile.GetFullPath());
}
ManagerST::Get()->GetProjectFiles(project, files);
+
+ } else if ( rootDir == SEARCH_IN_CURRENT_FILE ) {
+ LEditor *editor = Frame::Get()->GetMainBook()->GetActiveEditor();
+ if(editor) {
+ files.Add(editor->GetFileName().GetFullPath());
+ }
}
}
data.SetFiles(files);
@@ -388,6 +395,7 @@ bool FindInFilesDialog::Show()
void FindInFilesDialog::DoSaveSearchPaths()
{
wxArrayString paths = m_dirPicker->GetValues();
+
int where = paths.Index(SEARCH_IN_PROJECT);
if (where != wxNOT_FOUND) {
paths.RemoveAt(where);
@@ -401,6 +409,10 @@ void FindInFilesDialog::DoSaveSearchPaths()
paths.RemoveAt(where);
}
+ where = paths.Index(SEARCH_IN_CURRENT_FILE);
+ if (where != wxNOT_FOUND) {
+ paths.RemoveAt(where);
+ }
m_data.SetSearchPaths(paths);
}
diff --git a/LiteEditor/findresultstab.cpp b/LiteEditor/findresultstab.cpp
index 6056f27d..b841b599 100644
--- a/LiteEditor/findresultstab.cpp
+++ b/LiteEditor/findresultstab.cpp
@@ -189,14 +189,13 @@ void FindResultsTab::SetStyles(wxScintilla *sci)
sci->IndicatorSetForeground(1, wxT("FOREST GREEN"));
- sci->SetMarginType(1, wxSCI_MARGIN_SYMBOL);
- sci->SetMarginMask(4, wxSCI_MASK_FOLDERS);
-
sci->SetMarginWidth(0, 0);
sci->SetMarginWidth(1, 16);
sci->SetMarginWidth(2, 0);
sci->SetMarginWidth(3, 0);
sci->SetMarginWidth(4, 0);
+
+ sci->SetMarginSensitive(1, true);
}
size_t FindResultsTab::GetPageCount() const
diff --git a/LiteEditor/frame.cpp b/LiteEditor/frame.cpp
index 9bac38fb..f7774d72 100644
--- a/LiteEditor/frame.cpp
+++ b/LiteEditor/frame.cpp
@@ -118,12 +118,15 @@
#include "tabgroupdlg.h"
#include "tabgroupmanager.h"
#include "tabgroupspane.h"
+#include "clang_code_completion.h"
#include "cl_defs.h"
// from auto-generated file svninfo.cpp:
extern wxString CODELITE_VERSION_STR;
extern const wxChar *SvnRevision;
+static wxStopWatch gStopWatch;
+
// from iconsextra.cpp:
extern char *cubes_xpm[];
extern unsigned char cubes_alpha[];
@@ -138,6 +141,13 @@ const wxEventType wxEVT_LOAD_PERSPECTIVE = XRCID("load_perspective");
return;\
}\
}
+#ifdef __WXGTK__
+# define FACTOR_1 0.0
+# define FACTOR_2 0.0
+#else
+# define FACTOR_1 2.0
+# define FACTOR_2 2.0
+#endif
//----------------------------------------------------------------
// Our main frame
@@ -484,6 +494,9 @@ BEGIN_EVENT_TABLE(Frame, wxFrame)
EVT_COMMAND(wxID_ANY, wxEVT_PARSE_THREAD_UPDATED_FILE_SYMBOLS, Frame::OnParsingThreadDone )
EVT_COMMAND(wxID_ANY, wxEVT_PARSE_THREAD_MESSAGE , Frame::OnParsingThreadMessage)
EVT_COMMAND(wxID_ANY, wxEVT_PARSE_THREAD_CLEAR_TAGS_CACHE, Frame::OnClearTagsCache)
+ EVT_COMMAND(wxID_ANY, wxEVT_PARSE_THREAD_RETAGGING_COMPLETED, Frame::OnRetaggingCompelted)
+ EVT_COMMAND(wxID_ANY, wxEVT_PARSE_THREAD_RETAGGING_PROGRESS, Frame::OnRetaggingProgress)
+
EVT_COMMAND(wxID_ANY, wxEVT_UPDATE_STATUS_BAR, Frame::OnSetStatusMessage)
EVT_COMMAND(wxID_ANY, wxEVT_TAGS_DB_UPGRADE, Frame::OnDatabaseUpgrade )
EVT_COMMAND(wxID_ANY, wxEVT_SHELL_COMMAND_PROCESS_ENDED, Frame::OnBuildEnded)
@@ -636,11 +649,6 @@ void Frame::Initialize(bool loadLastSession)
wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, XRCID("go_home"));
m_theFrame->GetFileExplorer()->GetEventHandler()->ProcessEvent(e);
- //load last session?
- if (m_theFrame->m_frameGeneralInfo.GetFlags() & CL_LOAD_LAST_SESSION && loadLastSession) {
- m_theFrame->LoadSession(SessionManager::Get().GetLastSession());
- }
-
m_theFrame->SendSizeEvent();
m_theFrame->StartTimer();
@@ -660,6 +668,8 @@ Frame* Frame::Get()
void Frame::CreateGUIControls(void)
{
+ this->Freeze();
+
#ifdef __WXMSW__
SetIcon(wxICON(aaaaa));
#else
@@ -682,14 +692,16 @@ void Frame::CreateGUIControls(void)
// Mac / Linux
m_mgr.SetFlags(m_mgr.GetFlags() | wxAUI_MGR_ALLOW_ACTIVE_PANE);
+ m_mgr.GetArtProvider()->SetMetric(wxAUI_DOCKART_GRADIENT_TYPE, wxAUI_GRADIENT_VERTICAL);
+
+#ifndef __WXGTK__
wxColor col1 = DrawingUtils::DarkColour(DrawingUtils::GetPanelBgColour(), 5.0);
wxColor col2 = DrawingUtils::DarkColour(DrawingUtils::GetPanelBgColour(), 2.0);
-
- m_mgr.GetArtProvider()->SetMetric(wxAUI_DOCKART_GRADIENT_TYPE, wxAUI_GRADIENT_VERTICAL);
- m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR, col2);
- m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR, col2);
- m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR, col1);
- m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR, col1);
+// m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR, col2);
+// m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR, col2);
+// m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR, col1);
+// m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR, col1);
+#endif
m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR, wxSystemSettings::GetColour(wxSYS_COLOUR_CAPTIONTEXT));
m_mgr.GetArtProvider()->SetColor(wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR, wxSystemSettings::GetColour(wxSYS_COLOUR_INACTIVECAPTIONTEXT));
@@ -824,6 +836,8 @@ void Frame::CreateGUIControls(void)
CreateToolbars24();
}
+ ClangCodeCompletion::Instance()->Initialize(PluginManager::Get());
+
GetWorkspacePane()->GetNotebook()->SetRightClickMenu( wxXmlResource::Get()->LoadMenu(wxT("workspace_view_rmenu")) );
GetDebuggerPane()->GetNotebook()->SetRightClickMenu(wxXmlResource::Get()->LoadMenu( wxT("debugger_view_rmenu") ) );
@@ -876,6 +890,12 @@ void Frame::CreateViewAsSubMenu()
EditorConfig::ConstIterator iter = EditorConfigST::Get()->LexerBegin();
for (; iter != EditorConfigST::Get()->LexerEnd(); iter++) {
LexerConfPtr lex = iter->second;
+ wxString lexName = lex->GetName();
+ lexName.Trim().Trim(false);
+
+ if(lexName.IsEmpty())
+ continue;
+
item = new wxMenuItem(submenu, minId, lex->GetName(), wxEmptyString, wxITEM_CHECK);
m_viewAsMap[minId] = lex->GetName();
minId++;
@@ -1390,8 +1410,6 @@ void Frame::LoadSession(const wxString &sessionName)
{
SessionEntry session;
- wxWindowUpdateLocker locker(this);
-
if (SessionManager::Get().FindSession(sessionName, session)) {
wxString wspFile = session.GetWorkspaceName();
if (wspFile.IsEmpty() == false && wspFile != wxT("Default")) {
@@ -2238,6 +2256,16 @@ void Frame::OnTimer(wxTimerEvent &event)
if (GetMainBook()->GetCurrentPage() == 0) {
NavMgr::Get()->Clear();
}
+
+ // Load last session?
+ if (m_frameGeneralInfo.GetFlags() & CL_LOAD_LAST_SESSION) {
+ wxWindowUpdateLocker locker(this);
+ LoadSession(SessionManager::Get().GetLastSession());
+ }
+
+ // For some reason, under Linux we need to force the menu accelerator again
+ // otherwise some shortcuts are getting lose (e.g. Ctrl-/ to comment line)
+ ManagerST::Get()->UpdateMenuAccelerators();
event.Skip();
}
@@ -2790,9 +2818,12 @@ void Frame::CompleteInitialization()
OutputViewControlBar* outputViewControlBar = new OutputViewControlBar(this, GetOutputPane()->GetNotebook(), &m_mgr, wxID_ANY);
outputViewControlBar->AddAllButtons();
+
GetSizer()->Add(outputViewControlBar, 0, wxEXPAND);
Layout();
SetEnvStatusMessage();
+
+ this->Thaw();
}
void Frame::OnAppActivated(wxActivateEvent &e)
@@ -2800,6 +2831,13 @@ void Frame::OnAppActivated(wxActivateEvent &e)
if (m_theFrame && e.GetActive()) {
m_theFrame->ReloadExternallyModifiedProjectFiles();
m_theFrame->GetMainBook()->ReloadExternallyModified(true);
+ } else if(m_theFrame) {
+ LEditor *editor = GetMainBook()->GetActiveEditor();
+ if(editor) {
+ // we are loosing the focus
+ editor->CallTipCancel();
+ editor->HideCompletionBox();
+ }
}
e.Skip();
}
@@ -3081,7 +3119,7 @@ void Frame::OnNewVersionAvailable(wxCommandEvent& e)
btn.isDefault = true;
btn.window = this;
- GetMainBook()->ShowMessage(wxT("A new version of CodeLite is available. Download it?"), true, wxXmlResource::Get()->LoadBitmap(wxT("message_pane_software_update")), btn);
+ GetMainBook()->ShowMessage(wxT("A new version of CodeLite is available. Would you like to download it?"), true, wxXmlResource::Get()->LoadBitmap(wxT("message_pane_software_update")), btn);
} else {
if (!data->GetShowMessage()) {
@@ -3722,13 +3760,11 @@ void Frame::OnShowActiveProjectSettingsUI(wxUpdateUIEvent& e)
void Frame::StartTimer()
{
- m_timer->Start(2500, true);
+ m_timer->Start(2000, true);
}
void Frame::OnLoadPerspective(wxCommandEvent& e)
{
- wxWindowUpdateLocker locker(this);
-
long loadIt(1);
EditorConfigST::Get()->GetLongValue(wxT("LoadSavedPrespective"), loadIt);
if (loadIt) {
@@ -3742,6 +3778,7 @@ void Frame::OnLoadPerspective(wxCommandEvent& e)
ReadFileWithConversion(file_name, pers);
}
+ //wxWindowUpdateLocker locker(this);
if ( pers.IsEmpty() == false && EditorConfigST::Get()->GetRevision() == SvnRevision) {
m_mgr.LoadPerspective(pers);
@@ -3889,3 +3926,48 @@ void Frame::UpdateAUI()
m_mgr.Update();
}
}
+
+void Frame::OnRetaggingCompelted(wxCommandEvent& e)
+{
+ e.Skip();
+#if USE_PARSER_TREAD_FOR_RETAGGING_WORKSPACE
+ SetStatusMessage(wxT("Done"), 0);
+ GetWorkspacePane()->ClearProgress();
+
+ // Clear all cached tags now that we got our database updated
+ TagsManagerST::Get()->ClearAllCaches();
+
+ // Send event notifying parsing completed
+ std::vector<std::string>* files = (std::vector<std::string>*) e.GetClientData();
+ if(files) {
+
+ // Print the parsing end time
+ wxLogMessage(wxT("INFO: Retag workspace completed in %d seconds (%d files were scanned)"), gStopWatch.Time()/1000, files->size());
+
+ std::vector<wxFileName> taggedFiles;
+ for(size_t i=0; i<files->size(); i++) {
+ taggedFiles.push_back( wxFileName(wxString(files->at(i).c_str(), wxConvUTF8)) );
+ }
+
+ SendCmdEvent ( wxEVT_FILE_RETAGGED, ( void* ) &taggedFiles );
+ delete files;
+
+ } else {
+
+ wxLogMessage(wxT("INFO: Retag workspace completed in %d seconds (%d files were scanned)"), gStopWatch.Time()/1000, 0);
+ }
+#endif
+}
+
+void Frame::OnRetaggingProgress(wxCommandEvent& e)
+{
+ e.Skip();
+#if USE_PARSER_TREAD_FOR_RETAGGING_WORKSPACE
+ if(e.GetInt() == 1) {
+ // parsing started
+ gStopWatch.Start();
+ }
+
+ GetWorkspacePane()->UpdateProgress( e.GetInt() );
+#endif
+}
diff --git a/LiteEditor/frame.h b/LiteEditor/frame.h
index 122cbd76..81e7ee51 100644
--- a/LiteEditor/frame.h
+++ b/LiteEditor/frame.h
@@ -389,6 +389,9 @@ protected:
void OnParsingThreadMessage (wxCommandEvent &e);
void OnDatabaseUpgrade (wxCommandEvent &e);
void OnClearTagsCache (wxCommandEvent &e);
+ void OnRetaggingCompelted (wxCommandEvent &e);
+ void OnRetaggingProgress (wxCommandEvent &e);
+
void OnRecentFile(wxCommandEvent &event);
void OnRecentWorkspace(wxCommandEvent &event);
void OnBackwardForward(wxCommandEvent &event);
diff --git a/LiteEditor/lexer_page.cpp b/LiteEditor/lexer_page.cpp
index f1d7e26a..5cb3a92b 100644
--- a/LiteEditor/lexer_page.cpp
+++ b/LiteEditor/lexer_page.cpp
@@ -53,7 +53,8 @@ LexerPage::LexerPage( wxWindow* parent, LexerConfPtr lexer, int id, wxPoint pos,
}
}
- m_properties->SetSelection(0);
+ if(m_properties->GetCount())
+ m_properties->SetSelection(0);
wxString initialColor = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT).GetAsString();
wxString bgInitialColor = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW).GetAsString();
@@ -266,7 +267,8 @@ void LexerPage::OnEolFilled(wxCommandEvent& event)
m_isModified = true;
std::list<StyleProperty>::iterator iter = GetSelectedStyle();
- iter->SetEolFilled(event.IsChecked());
+ if(iter != m_propertyList.end())
+ iter->SetEolFilled(event.IsChecked());
}
void LexerPage::OnStyleWithinPreprocessor(wxCommandEvent& event)
@@ -278,12 +280,14 @@ void LexerPage::OnStyleWithinPreprocessor(wxCommandEvent& event)
void LexerPage::OnStyleWithingPreProcessorUI(wxUpdateUIEvent& event)
{
std::list<StyleProperty>::iterator iter = GetSelectedStyle();
+ if(iter == m_propertyList.end())
+ event.Enable(false);
- if (iter->GetName() == wxT("Preprocessor")) {
+ else if (iter->GetName() == wxT("Preprocessor"))
event.Enable(true);
- } else {
+
+ else
event.Enable(false);
- }
}
void LexerPage::OnAlphaChanged(wxScrollEvent& event)
@@ -300,6 +304,10 @@ void LexerPage::OnSelTextChanged(wxColourPickerEvent& event)
std::list<StyleProperty>::iterator LexerPage::GetSelectedStyle()
{
+ if(m_properties->GetCount() <= (size_t)m_selection || m_selection < 0) {
+ return m_propertyList.end();
+ }
+
wxString styleName = m_properties->GetString(m_selection);
if(styleName.IsEmpty())
return m_propertyList.begin();
diff --git a/LiteEditor/mainbook.cpp b/LiteEditor/mainbook.cpp
index 96218e78..919e54fa 100644
--- a/LiteEditor/mainbook.cpp
+++ b/LiteEditor/mainbook.cpp
@@ -29,6 +29,7 @@
#include "frame.h"
#include <wx/wupdlock.h>
#include "manager.h"
+#include "clang_code_completion.h"
#include "close_all_dlg.h"
#include "filechecklist.h"
#include "editor_config.h"
@@ -75,6 +76,7 @@ void MainBook::ConnectEvents()
m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CLOSING, NotebookEventHandler(MainBook::OnPageClosing), NULL, this);
m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CLOSED, NotebookEventHandler(MainBook::OnPageClosed), NULL, this);
m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CHANGED, NotebookEventHandler(MainBook::OnPageChanged), NULL, this);
+ m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_CHANGING, NotebookEventHandler(MainBook::OnPageChanging), NULL, this);
m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_X_CLICKED, NotebookEventHandler(MainBook::OnClosePage), NULL, this);
m_book->Connect(wxEVT_COMMAND_BOOK_PAGE_MIDDLE_CLICKED, NotebookEventHandler(MainBook::OnClosePage), NULL, this);
m_book->Connect(wxEVT_COMMAND_BOOK_BG_DCLICK, NotebookEventHandler(MainBook::OnMouseDClick), NULL, this);
@@ -116,9 +118,12 @@ void MainBook::OnMouseDClick(NotebookEvent& e)
void MainBook::OnPageClosing(NotebookEvent &e)
{
LEditor *editor = dynamic_cast<LEditor*>(m_book->GetPage(e.GetSelection()));
- if (!editor) {
- ; // the page is not an editor
- } else if (AskUserToSave(editor)) {
+ if (!editor)
+ return;
+
+ ClangCodeCompletion::Instance()->CancelCodeComplete();
+
+ if (AskUserToSave(editor)) {
SendCmdEvent(wxEVT_EDITOR_CLOSING, (IEditor*)editor);
} else {
e.Veto();
@@ -537,7 +542,7 @@ bool MainBook::AddPage(wxWindow *win, const wxString &text, const wxBitmap &bmp,
// We got at least one page, close the last used
wxWindow *tab = static_cast<wxWindow*>(arr.Item(arr.GetCount()-1));
ClosePage(tab);
- }
+ }
}
#ifdef __WXMAC__
@@ -705,6 +710,8 @@ bool MainBook::CloseAll(bool cancellable)
// Delete the files without notifications (it will be faster)
wxWindowUpdateLocker locker(this);
+ ClangCodeCompletion::Instance()->CancelCodeComplete();
+
m_book->DeleteAllPages(false);
// Since we got no more editors opened,
@@ -878,12 +885,12 @@ bool MainBook::DoSelectPage(wxWindow* win)
return true;
}
-void MainBook::ShowMessage(const wxString &message, bool showHideButton, const wxBitmap &bmp, const ButtonDetails &btn1, const ButtonDetails &btn2, const ButtonDetails &btn3)
+void MainBook::ShowMessage(const wxString &message, bool showHideButton, const wxBitmap &bmp, const ButtonDetails &btn1, const ButtonDetails &btn2, const ButtonDetails &btn3)
{
m_messagePane->ShowMessage(message, showHideButton, bmp, btn1, btn2, btn3);
-}
+}
-void MainBook::OnPageChanged(NotebookEvent& e)
+void MainBook::OnPageChanged(NotebookEvent& e)
{
int newSel = e.GetSelection();
if(newSel != wxNOT_FOUND) {
@@ -893,15 +900,15 @@ void MainBook::OnPageChanged(NotebookEvent& e)
}
}
e.Skip();
-}
+}
-wxWindow* MainBook::GetCurrentPage()
+wxWindow* MainBook::GetCurrentPage()
{
- return m_book->GetCurrentPage();
-}
-
+ return m_book->GetCurrentPage();
+}
+
-void MainBook::OnClosePage(NotebookEvent& e)
+void MainBook::OnClosePage(NotebookEvent& e)
{
wxWindowUpdateLocker locker( this );
int where = e.GetSelection();
@@ -910,10 +917,10 @@ void MainBook::OnClosePage(NotebookEvent& e)
}
wxWindow *page = m_book->GetPage((size_t)where);
if(page)
- ClosePage(page);
-}
+ ClosePage(page);
+}
-void MainBook::DoPositionFindBar(int where)
+void MainBook::DoPositionFindBar(int where)
{
wxWindowUpdateLocker locker(this);
// the find bar is already placed on the MainBook, detach it
@@ -925,18 +932,18 @@ void MainBook::DoPositionFindBar(int where)
else
GetSizer()->Insert(where, m_quickFindBar, 0, wxTOP|wxBOTTOM|wxEXPAND);
GetSizer()->Layout();
-}
+}
-void MainBook::OnDebugEnded(wxCommandEvent& e)
+void MainBook::OnDebugEnded(wxCommandEvent& e)
{
std::vector<LEditor*> editors;
GetAllEditors(editors);
ManagerST::Get()->GetDebuggerTip()->HideDialog();
- e.Skip();
-}
+ e.Skip();
+}
-void MainBook::DoHandleFrameMenu(LEditor* editor)
+void MainBook::DoHandleFrameMenu(LEditor* editor)
{
// Incase of no editor or an editor with context other than C++
// remove the context menu from the main frame
@@ -946,9 +953,9 @@ void MainBook::DoHandleFrameMenu(LEditor* editor)
delete Frame::Get()->GetMenuBar()->Remove(idx);
}
}
-}
+}
-void MainBook::OnStringHighlight(wxCommandEvent& e)
+void MainBook::OnStringHighlight(wxCommandEvent& e)
{
StringHighlightOutput *result = reinterpret_cast<StringHighlightOutput*>( e.GetClientData() );
if(result) {
@@ -959,5 +966,15 @@ void MainBook::OnStringHighlight(wxCommandEvent& e)
editor->HighlightWord( result );
}
delete result;
- }
+ }
+}
+
+void MainBook::OnPageChanging(NotebookEvent& e)
+{
+ LEditor *editor = GetActiveEditor();
+ if(editor) {
+ editor->HideCompletionBox();
+ editor->CallTipCancel();
+ }
+ e.Skip();
}
diff --git a/LiteEditor/mainbook.h b/LiteEditor/mainbook.h
index 25a43328..dc3eab5d 100644
--- a/LiteEditor/mainbook.h
+++ b/LiteEditor/mainbook.h
@@ -48,18 +48,18 @@ private:
void CreateGuiControls();
void ConnectEvents ();
- void OnMouseDClick (NotebookEvent &e);
- void OnPageClosing (NotebookEvent &e);
- void OnPageClosed (NotebookEvent &e);
- void OnPageChanged (NotebookEvent &e);
- void OnClosePage (NotebookEvent &e);
-
- void OnProjectFileAdded (wxCommandEvent &e);
- void OnProjectFileRemoved(wxCommandEvent &e);
- void OnWorkspaceLoaded (wxCommandEvent &e);
- void OnWorkspaceClosed (wxCommandEvent &e);
- void OnDebugEnded (wxCommandEvent &e);
- void OnStringHighlight (wxCommandEvent &e);
+ void OnMouseDClick (NotebookEvent &e);
+ void OnPageClosing (NotebookEvent &e);
+ void OnPageClosed (NotebookEvent &e);
+ void OnPageChanged (NotebookEvent &e);
+ void OnClosePage (NotebookEvent &e);
+ void OnPageChanging (NotebookEvent &e);
+ void OnProjectFileAdded (wxCommandEvent &e);
+ void OnProjectFileRemoved (wxCommandEvent &e);
+ void OnWorkspaceLoaded (wxCommandEvent &e);
+ void OnWorkspaceClosed (wxCommandEvent &e);
+ void OnDebugEnded (wxCommandEvent &e);
+ void OnStringHighlight (wxCommandEvent &e);
bool AskUserToSave(LEditor *editor);
bool DoSelectPage (wxWindow *win );
diff --git a/LiteEditor/manager.cpp b/LiteEditor/manager.cpp
index 03502873..18abf629 100644
--- a/LiteEditor/manager.cpp
+++ b/LiteEditor/manager.cpp
@@ -27,6 +27,7 @@
#include "evnvarlist.h"
#include "crawler_include.h"
#include "renamefiledlg.h"
+#include "clang_code_completion.h"
#include "localstable.h"
#include "new_quick_watch_dlg.h"
#include "debuggerconfigtool.h"
@@ -213,7 +214,8 @@ Manager::~Manager ( void )
SearchThreadST::Free();
MenuManager::Free();
EnvironmentConfig::Release();
-
+ ClangCodeCompletion::Release();
+
if ( m_shellProcess ) {
delete m_shellProcess;
m_shellProcess = NULL;
@@ -233,6 +235,7 @@ bool Manager::IsWorkspaceOpen() const
void Manager::CreateWorkspace ( const wxString &name, const wxString &path )
{
+
// make sure that the workspace pane is visible
ShowWorkspacePane (Frame::Get()->GetWorkspaceTab()->GetCaption());
@@ -342,9 +345,19 @@ void Manager::CloseWorkspace()
wxSetWorkingDirectory ( GetStarupDirectory() );
#endif
+ /////////////////////////////////////////////////////////////////
+ // set back the "Default" environment variable as the active set
+ /////////////////////////////////////////////////////////////////
+
+ EvnVarList vars = EnvironmentConfig::Instance()->GetSettings();
+ if(vars.IsSetExist(wxT("Default"))) {
+ vars.SetActiveSet(wxT("Default"));
+ }
+ EnvironmentConfig::Instance()->SetSettings(vars);
+ Frame::Get()->SetEnvStatusMessage();
+
UpdateParserPaths();
m_workspceClosing = false;
-
}
void Manager::AddToRecentlyOpenedWorkspaces ( const wxString &fileName )
@@ -3087,10 +3100,13 @@ void Manager::OnIncludeFilesScanDone(wxCommandEvent& event)
// -----------------------------------------------
TagsManagerST::Get()->RetagFiles ( projectFiles, event.GetInt() );
+
+#if !USE_PARSER_TREAD_FOR_RETAGGING_WORKSPACE
long end = sw.Time();
Frame::Get()->SetStatusMessage(wxT("Done"), 0);
wxLogMessage(wxT("INFO: Retag workspace completed in %d seconds (%d files were scanned)"), (end)/1000, projectFiles.size());
SendCmdEvent ( wxEVT_FILE_RETAGGED, ( void* ) &projectFiles );
+#endif
delete fileSet;
}
diff --git a/LiteEditor/menu_event_handlers.cpp b/LiteEditor/menu_event_handlers.cpp
index bb0af4c1..19243824 100644
--- a/LiteEditor/menu_event_handlers.cpp
+++ b/LiteEditor/menu_event_handlers.cpp
@@ -40,7 +40,8 @@ void EditHandler::ProcessCommandEvent(wxWindow *owner, wxCommandEvent &event)
if (event.GetId() == wxID_COPY) {
// if the selection is empty, copy the line content
if(editor->GetSelectedText().IsEmpty()) {
- editor->LineCopy();
+ editor->CopyAllowLine();
+
} else {
editor->Copy();
}
diff --git a/LiteEditor/newquickwatch.cpp b/LiteEditor/newquickwatch.cpp
index a72716b7..320c2563 100644
--- a/LiteEditor/newquickwatch.cpp
+++ b/LiteEditor/newquickwatch.cpp
@@ -21,6 +21,7 @@ NewQuickWatch::NewQuickWatch( wxWindow* parent, wxWindowID id, const wxString& t
bSizer5 = new wxBoxSizer( wxVERTICAL );
m_treeCtrl = new wxTreeCtrl( m_mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxTR_SINGLE|wxNO_BORDER );
+ m_treeCtrl->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOTEXT ) );
m_treeCtrl->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOBK ) );
bSizer5->Add( m_treeCtrl, 1, wxEXPAND, 0 );
diff --git a/LiteEditor/newquickwatch.fbp b/LiteEditor/newquickwatch.fbp
index 26acd4bc..0a67910c 100644
--- a/LiteEditor/newquickwatch.fbp
+++ b/LiteEditor/newquickwatch.fbp
@@ -146,7 +146,7 @@
<property name="bg">wxSYS_COLOUR_INFOBK</property>
<property name="context_help"></property>
<property name="enabled">1</property>
- <property name="fg"></property>
+ <property name="fg">wxSYS_COLOUR_INFOTEXT</property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
diff --git a/LiteEditor/output_pane.cpp b/LiteEditor/output_pane.cpp
index ce4c68da..b0813bab 100644
--- a/LiteEditor/output_pane.cpp
+++ b/LiteEditor/output_pane.cpp
@@ -44,25 +44,6 @@ const wxString OutputPane::REPLACE_IN_FILES = wxT("Replace");
const wxString OutputPane::TASKS = wxT("Tasks");
const wxString OutputPane::TRACE_TAB = wxT("Trace");
-
-//#if wxCHECK_VERSION(2, 9, 0)
-//# if defined(__WXMSW__)
-//# define USE_TOOLBOOK 0
-//# define BOOK_ORIENTATION wxBK_TOP
-//# else
-//# define USE_TOOLBOOK 0
-//# define BOOK_ORIENTATION wxBK_BOTTOM
-//# endif
-//#else // wx2.8
-//# if defined(__WXMSW__)||defined(__WXGTK__)
-//# define USE_TOOLBOOK 1
-//# define BOOK_ORIENTATION wxBK_RIGHT
-//# else
-//# define USE_TOOLBOOK 0
-//# define BOOK_ORIENTATION wxBK_BOTTOM
-//# endif
-//#endif
-
OutputPane::OutputPane(wxWindow *parent, const wxString &caption)
: wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(200, 200))
, m_caption(caption)
@@ -110,7 +91,6 @@ void OutputPane::CreateGUIControls()
wxTextCtrl *text = new wxTextCtrl(m_book, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RICH2 | wxTE_MULTILINE | wxTE_READONLY| wxHSCROLL);
m_book->AddPage(text, TRACE_TAB, false, wxXmlResource::Get()->LoadBitmap(wxT("debug_window")));
-
m_logTargetOld = wxLog::SetActiveTarget( new wxLogTextCtrl(text) );
m_taskPanel = new TaskPanel(m_book, wxID_ANY, TASKS);
diff --git a/LiteEditor/output_pane.h b/LiteEditor/output_pane.h
index 48a32ead..396a22e4 100644
--- a/LiteEditor/output_pane.h
+++ b/LiteEditor/output_pane.h
@@ -1,25 +1,25 @@
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
-// copyright : (C) 2008 by Eran Ifrah
-// file name : output_pane.h
-//
+// copyright : (C) 2008 by Eran Ifrah
+// file name : output_pane.h
+//
// -------------------------------------------------------------------------
-// A
-// _____ _ _ _ _
-// / __ \ | | | | (_) |
-// | / \/ ___ __| | ___| | _| |_ ___
-// | | / _ \ / _ |/ _ \ | | | __/ _ )
-// | \__/\ (_) | (_| | __/ |___| | || __/
-// \____/\___/ \__,_|\___\_____/_|\__\___|
-//
-// F i l e
-//
-// 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.
-//
+// A
+// _____ _ _ _ _
+// / __ \ | | | | (_) |
+// | / \/ ___ __| | ___| | _| |_ ___
+// | | / _ \ / _ |/ _ \ | | | __/ _ )
+// | \__/\ (_) | (_| | __/ |___| | || __/
+// \____/\___/ \__,_|\___\_____/_|\__\___|
+//
+// F i l e
+//
+// 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.
+//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#ifndef OUTPUT_PANE_H
@@ -52,9 +52,9 @@ class OutputPaneBook;
* any damage to your computer, causes your pet to fall ill, increases baldness
* or makes your car start emitting strange noises when you start it up.
* This code has no bugs, just undocumented features!
- *
+ *
*/
-class OutputPane : public wxPanel
+class OutputPane : public wxPanel
{
public:
static const wxString FIND_IN_FILES_WIN;
@@ -69,16 +69,16 @@ public:
private:
wxString m_caption;
wxLog *m_logTargetOld;
-
- OutputPaneBook *m_book;
- FindResultsTab *m_findResultsTab;
- ReplaceInFilesPanel *m_replaceResultsTab;
- BuildTab *m_buildWin;
- ErrorsTab *m_errorsWin;
- ShellTab *m_outputWind;
- DebugTab *m_outputDebug;
- TaskPanel *m_taskPanel;
-
+
+ OutputPaneBook *m_book;
+ FindResultsTab *m_findResultsTab;
+ ReplaceInFilesPanel *m_replaceResultsTab;
+ BuildTab *m_buildWin;
+ ErrorsTab *m_errorsWin;
+ ShellTab *m_outputWind;
+ DebugTab *m_outputDebug;
+ TaskPanel *m_taskPanel;
+
void CreateGUIControls();
public:
@@ -96,13 +96,13 @@ public:
OutputPaneBook *GetNotebook() { return m_book; }
const wxString & GetCaption () const { return m_caption; }
-
- FindResultsTab *GetFindResultsTab () { return m_findResultsTab; }
- ReplaceInFilesPanel *GetReplaceResultsTab() { return m_replaceResultsTab; }
- BuildTab *GetBuildTab () { return m_buildWin; }
- ErrorsTab *GetErrorsTab () { return m_errorsWin; }
- ShellTab *GetOutputWindow () { return m_outputWind; }
- DebugTab *GetDebugWindow () { return m_outputDebug; }
+
+ FindResultsTab *GetFindResultsTab () { return m_findResultsTab; }
+ ReplaceInFilesPanel *GetReplaceResultsTab() { return m_replaceResultsTab; }
+ BuildTab *GetBuildTab () { return m_buildWin; }
+ ErrorsTab *GetErrorsTab () { return m_errorsWin; }
+ ShellTab *GetOutputWindow () { return m_outputWind; }
+ DebugTab *GetDebugWindow () { return m_outputDebug; }
};
#endif // OUTPUT_PANE_H
diff --git a/LiteEditor/quickfindbar.cpp b/LiteEditor/quickfindbar.cpp
index f120ae9d..38ecddcc 100644
--- a/LiteEditor/quickfindbar.cpp
+++ b/LiteEditor/quickfindbar.cpp
@@ -24,6 +24,7 @@
//////////////////////////////////////////////////////////////////////////////
#include <wx/xrc/xmlres.h>
#include "threebuttondlg.h"
+#include <wx/regex.h>
#include "editor_config.h"
#include <wx/statline.h>
#include "manager.h"
@@ -248,6 +249,12 @@ void QuickFindBar::OnReplace(wxCommandEvent& e)
wxString find = m_findWhat->GetValue();
wxString replaceWith = m_replaceWith->GetValue();
+#ifndef __WXMAC__
+ int re_flags = wxRE_ADVANCED;
+#else
+ int re_flags = wxRE_DEFAULT;
+#endif
+
bool caseSearch = m_flags & wxSD_MATCHCASE;
if ( !caseSearch ) {
selectionText.MakeLower();
@@ -258,11 +265,33 @@ void QuickFindBar::OnReplace(wxCommandEvent& e)
return;
// do we got a match?
- if (selectionText != find)
+ if ((selectionText != find) && !(m_flags & wxSD_REGULAREXPRESSION)) {
DoSearch(true, true);
- else {
+ } else if(m_flags & wxSD_REGULAREXPRESSION) {
+ // regular expression search
+ wxString selectedText = m_sci->GetSelectedText();
+
+ // handle back references (\1 \2 etc)
+ if( m_sci && selectedText.IsEmpty() == false) {
+
+ // search was regular expression search
+ // handle any back references
+ caseSearch == false ? re_flags |= wxRE_ICASE : re_flags;
+ wxRegEx re(find, re_flags);
+ if(re.IsValid() && re.Matches(selectedText)) {
+ re.Replace(&selectedText, replaceWith);
+ }
+
+ m_sci->ReplaceSelection(selectedText);
+ }
+
+ // and search again
+ DoSearch(true, true);
+ } else {
+ // Normal replacement
m_sci->ReplaceSelection(replaceWith);
+
// and search again
DoSearch(true, true);
}
diff --git a/LiteEditor/quickoutlinedlg.cpp b/LiteEditor/quickoutlinedlg.cpp
index cdeb343d..1f7c2213 100644
--- a/LiteEditor/quickoutlinedlg.cpp
+++ b/LiteEditor/quickoutlinedlg.cpp
@@ -64,8 +64,11 @@ QuickOutlineDlg::QuickOutlineDlg(wxWindow* parent, const wxString &fileName, int
wxBoxSizer* bSizer1;
bSizer1 = new wxBoxSizer( wxVERTICAL );
- m_textFilter = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
+ m_textFilter = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER |wxTE_RICH2);
+
m_textFilter->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOBK ) );
+ m_textFilter->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOTEXT ) );
+
bSizer1->Add( m_textFilter, 0, wxALL|wxEXPAND, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
m_staticline1->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOBK ) );
@@ -74,6 +77,7 @@ QuickOutlineDlg::QuickOutlineDlg(wxWindow* parent, const wxString &fileName, int
//build the outline view
m_treeOutline = new CppSymbolTree( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxNO_BORDER);
m_treeOutline->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOBK ) );
+ m_treeOutline->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_INFOTEXT ) );
m_treeOutline->SetSymbolsImages(CreateSymbolTreeImages());
Connect(wxEVT_CMD_CPP_SYMBOL_ITEM_SELECTED, wxCommandEventHandler(QuickOutlineDlg::OnItemSelected), NULL, this);
diff --git a/LiteEditor/res/16/help_browser.png b/LiteEditor/res/16/help_browser.png
new file mode 100644
index 00000000..1eaae074
--- /dev/null
+++ b/LiteEditor/res/16/help_browser.png
Binary files differ
diff --git a/LiteEditor/res/16/note.png b/LiteEditor/res/16/note.png
new file mode 100644
index 00000000..7ce1b241
--- /dev/null
+++ b/LiteEditor/res/16/note.png
Binary files differ
diff --git a/LiteEditor/res/cursor.png b/LiteEditor/res/cursor.png
new file mode 100644
index 00000000..532f532d
--- /dev/null
+++ b/LiteEditor/res/cursor.png
Binary files differ
diff --git a/LiteEditor/res/folder_orange.png b/LiteEditor/res/folder_orange.png
new file mode 100644
index 00000000..2731f042
--- /dev/null
+++ b/LiteEditor/res/folder_orange.png
Binary files differ
diff --git a/LiteEditor/resources.cpp b/LiteEditor/resources.cpp
index bf1440bd..cf0eeccf 100644
--- a/LiteEditor/resources.cpp
+++ b/LiteEditor/resources.cpp
@@ -3401,9 +3401,31 @@ static unsigned char xml_res_file_27[] = {
254,84,188,96,167,143,20,222,100,130,66,38,142,205,179,101,195,92,235,59,
255,2,240,138,183,135,205,242,179,133,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_28 = 688;
+static size_t xml_res_size_28 = 396;
static unsigned char xml_res_file_28[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
+0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,1,9,73,68,65,84,56,141,165,147,49,74,4,
+81,16,68,171,251,247,244,204,206,128,136,184,98,226,25,140,77,12,52,53,
+50,242,22,130,129,193,222,193,64,132,189,130,96,238,9,92,244,28,102,162,
+130,34,255,143,59,51,187,191,13,6,89,76,100,255,110,133,5,85,20,143,110,
+50,51,172,35,1,128,249,227,229,45,177,158,245,150,189,197,250,227,84,142,
+198,147,165,11,48,111,247,152,232,215,27,82,81,61,196,201,197,191,65,139,
+221,189,59,188,57,161,207,187,227,209,244,75,207,99,164,157,148,233,204,
+246,90,108,180,215,244,126,149,63,115,86,236,18,177,166,20,152,197,54,118,
+211,23,113,89,225,89,20,32,78,201,3,22,65,128,23,167,85,96,118,192,130,
+193,178,19,64,206,5,17,29,248,180,228,66,12,245,226,180,242,22,103,132,
+212,115,32,16,177,120,113,90,132,56,107,18,1,244,3,88,242,32,174,220,14,
+104,106,70,250,4,118,121,25,196,182,246,107,180,117,34,193,190,193,180,
+172,197,55,20,50,221,92,1,1,208,53,93,32,0,37,128,3,0,131,196,142,111,0,
+79,180,238,55,174,66,255,143,126,0,254,73,89,35,233,168,39,46,0,0,0,0,73,
+69,78,68,174,66,96,130};
+
+static size_t xml_res_size_29 = 688;
+static unsigned char xml_res_file_29[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,43,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,68,105,32,49,56,32,70,101,98,32,50,48,48,51,32,50,49,58,
51,52,58,50,55,32,43,48,49,48,48,71,119,141,63,0,0,0,7,116,73,77,69,7,211,
@@ -3437,8 +3459,8 @@ static unsigned char xml_res_file_28[] = {
197,156,60,95,243,50,249,128,255,95,191,0,245,142,251,88,112,106,209,242,
0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_29 = 514;
-static unsigned char xml_res_file_29[] = {
+static size_t xml_res_size_30 = 514;
+static unsigned char xml_res_file_30[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -3465,8 +3487,8 @@ static unsigned char xml_res_file_29[] = {
20,70,145,95,1,6,0,60,10,174,84,253,86,25,93,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_30 = 713;
-static unsigned char xml_res_file_30[] = {
+static size_t xml_res_size_31 = 713;
+static unsigned char xml_res_file_31[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -3503,8 +3525,8 @@ static unsigned char xml_res_file_30[] = {
32,177,182,238,95,1,6,0,177,199,15,69,241,57,108,150,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_31 = 705;
-static unsigned char xml_res_file_31[] = {
+static size_t xml_res_size_32 = 705;
+static unsigned char xml_res_file_32[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,43,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,77,111,32,50,52,32,70,101,98,32,50,48,48,51,32,49,55,58,
@@ -3540,8 +3562,8 @@ static unsigned char xml_res_file_31[] = {
196,182,183,241,127,163,217,42,88,252,1,243,93,220,79,105,182,126,216,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_32 = 545;
-static unsigned char xml_res_file_32[] = {
+static size_t xml_res_size_33 = 545;
+static unsigned char xml_res_file_33[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -3569,8 +3591,8 @@ static unsigned char xml_res_file_32[] = {
134,125,224,133,78,250,27,221,191,41,203,241,27,35,191,152,22,126,165,13,
36,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_33 = 385;
-static unsigned char xml_res_file_33[] = {
+static size_t xml_res_size_34 = 385;
+static unsigned char xml_res_file_34[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -3590,8 +3612,8 @@ static unsigned char xml_res_file_33[] = {
40,192,24,56,4,70,133,4,13,240,44,235,182,113,200,241,126,233,27,81,98,
87,31,74,147,58,41,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_34 = 655;
-static unsigned char xml_res_file_34[] = {
+static size_t xml_res_size_35 = 655;
+static unsigned char xml_res_file_35[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -3625,8 +3647,8 @@ static unsigned char xml_res_file_34[] = {
133,99,188,108,253,6,114,187,164,199,219,237,190,20,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_35 = 792;
-static unsigned char xml_res_file_35[] = {
+static size_t xml_res_size_36 = 792;
+static unsigned char xml_res_file_36[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,43,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,68,105,32,51,48,32,83,101,112,32,50,48,48,51,32,50,51,
@@ -3666,8 +3688,8 @@ static unsigned char xml_res_file_35[] = {
19,58,221,192,171,43,64,104,219,254,222,191,141,62,42,191,243,181,250,120,
0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_36 = 870;
-static unsigned char xml_res_file_36[] = {
+static size_t xml_res_size_37 = 870;
+static unsigned char xml_res_file_37[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -3711,8 +3733,8 @@ static unsigned char xml_res_file_36[] = {
183,79,79,79,239,164,148,234,255,0,199,244,50,234,252,75,165,219,0,0,0,
0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_37 = 627;
-static unsigned char xml_res_file_37[] = {
+static size_t xml_res_size_38 = 627;
+static unsigned char xml_res_file_38[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0,
0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72,
89,115,0,0,6,236,0,0,6,236,1,30,117,56,53,0,0,0,25,116,69,88,116,83,111,
@@ -3741,8 +3763,59 @@ static unsigned char xml_res_file_37[] = {
67,59,2,79,44,55,200,199,73,128,140,231,7,217,152,7,0,225,35,224,32,124,
4,92,248,2,207,199,24,197,87,247,22,178,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_38 = 444;
-static unsigned char xml_res_file_38[] = {
+static size_t xml_res_size_39 = 970;
+static unsigned char xml_res_file_39[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0,
+0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72,
+89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,111,
+102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,
+111,114,103,155,238,60,26,0,0,1,224,80,76,84,69,50,50,50,255,255,255,50,
+50,50,207,73,19,50,50,50,207,73,19,207,73,19,50,50,50,50,50,50,61,53,49,
+167,115,94,170,170,170,50,50,50,160,160,160,156,156,156,169,67,26,156,156,
+156,87,87,87,90,90,90,130,70,42,163,163,163,180,69,24,174,72,24,152,152,
+152,156,156,156,164,160,159,170,169,169,164,164,164,162,156,154,154,143,
+142,167,167,167,164,164,164,165,67,27,175,82,38,174,81,43,154,155,154,163,
+141,139,144,123,117,159,135,123,148,75,23,170,154,149,153,130,122,150,77,
+30,132,107,96,134,74,43,131,118,113,154,146,144,162,75,35,180,99,55,152,
+134,126,172,87,46,171,95,64,159,75,39,86,98,139,160,127,114,135,131,145,
+140,134,145,132,124,133,138,128,135,149,148,166,169,167,174,156,159,173,
+157,144,150,93,93,125,93,94,127,137,95,71,207,188,182,186,70,23,186,173,
+167,202,91,37,208,101,46,165,74,44,187,172,166,192,162,150,153,80,54,172,
+84,50,201,106,38,168,86,63,212,127,73,195,116,49,188,97,47,195,85,34,209,
+116,63,197,104,46,206,86,31,198,90,39,160,119,102,202,72,20,213,89,32,216,
+151,102,219,109,13,224,99,10,184,110,80,191,144,116,202,90,20,229,142,82,
+213,105,50,205,73,19,224,164,131,232,108,12,233,164,123,124,170,229,135,
+178,233,136,178,234,149,187,239,167,118,91,172,124,101,183,134,91,184,137,
+112,187,139,96,190,148,119,195,110,69,195,162,136,200,148,123,201,166,137,
+209,128,69,211,229,255,215,231,255,216,231,255,216,232,255,218,121,54,219,
+233,255,220,125,84,220,234,255,222,96,35,224,237,255,226,97,10,226,145,
+81,228,139,63,232,101,8,232,132,81,234,143,97,239,243,249,240,137,73,243,
+143,56,243,246,251,244,150,86,244,247,251,245,159,96,246,195,146,247,117,
+3,247,194,143,247,205,167,249,157,77,249,203,159,249,207,167,249,251,253,
+251,174,111,252,155,63,253,163,78,253,184,121,253,185,122,253,186,123,255,
+127,2,255,142,32,255,156,59,255,158,64,255,166,80,255,169,85,255,190,127,
+118,45,115,86,0,0,0,101,116,82,78,83,0,0,1,1,2,2,3,4,15,15,15,15,22,27,
+41,43,45,50,55,88,113,124,126,133,136,138,140,143,144,146,151,153,154,154,
+158,159,166,170,170,172,175,179,181,183,183,186,192,192,194,201,202,208,
+210,213,216,217,218,219,219,220,221,222,222,224,224,224,227,228,228,228,
+228,231,233,234,235,235,235,238,238,239,240,240,240,242,247,248,249,249,
+249,249,249,249,250,251,252,252,253,254,254,254,254,7,17,146,119,0,0,0,
+235,73,68,65,84,24,211,99,96,100,100,228,147,147,212,180,181,86,145,18,
+1,178,25,25,128,88,70,41,188,170,165,189,57,194,152,13,34,192,31,86,211,
+49,161,186,188,123,126,135,43,63,72,128,213,57,103,122,91,176,149,101,64,
+242,236,233,110,172,64,1,133,252,162,40,45,14,38,38,14,157,184,153,211,
+20,25,25,24,98,242,166,168,131,76,99,228,118,172,155,19,47,207,32,91,216,
+231,207,14,22,96,100,247,170,159,168,193,96,211,89,102,193,8,5,246,25,181,
+78,12,118,147,74,204,97,2,14,233,213,46,12,170,77,189,62,204,80,1,247,138,
+2,53,6,241,144,25,61,98,96,174,180,97,86,110,36,59,131,132,126,235,220,
+104,81,86,70,70,46,179,196,198,169,6,140,12,2,202,129,147,103,53,122,155,
+154,250,102,54,206,242,227,4,58,140,87,59,180,107,94,67,90,106,113,118,
+127,144,48,196,115,60,38,9,41,149,165,73,177,70,60,80,223,50,178,8,233,
+122,122,232,9,178,128,216,0,164,83,53,173,39,231,96,77,0,0,0,0,73,69,78,
+68,174,66,96,130};
+
+static size_t xml_res_size_40 = 444;
+static unsigned char xml_res_file_40[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -3766,8 +3839,8 @@ static unsigned char xml_res_file_38[] = {
239,33,205,130,15,118,205,227,18,99,124,149,175,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_39 = 631;
-static unsigned char xml_res_file_39[] = {
+static size_t xml_res_size_41 = 631;
+static unsigned char xml_res_file_41[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -3800,8 +3873,8 @@ static unsigned char xml_res_file_39[] = {
223,248,19,19,249,133,146,234,21,229,237,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_40 = 678;
-static unsigned char xml_res_file_40[] = {
+static size_t xml_res_size_42 = 678;
+static unsigned char xml_res_file_42[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -3836,8 +3909,8 @@ static unsigned char xml_res_file_40[] = {
192,79,96,245,23,33,215,35,139,26,116,42,232,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_41 = 623;
-static unsigned char xml_res_file_41[] = {
+static size_t xml_res_size_43 = 623;
+static unsigned char xml_res_file_43[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -3869,8 +3942,8 @@ static unsigned char xml_res_file_41[] = {
244,2,122,183,70,1,14,112,12,180,128,175,64,89,41,229,252,1,240,126,200,
57,208,143,162,187,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_42 = 56752;
-static unsigned char xml_res_file_42[] = {
+static size_t xml_res_size_44 = 56752;
+static unsigned char xml_res_file_44[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,199,0,0,1,90,8,6,0,
0,0,170,138,73,239,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,
71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,14,196,
@@ -6677,8 +6750,8 @@ static unsigned char xml_res_file_42[] = {
56,46,235,178,46,198,113,89,151,245,17,235,255,3,170,68,49,97,147,119,15,
95,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_43 = 733;
-static unsigned char xml_res_file_43[] = {
+static size_t xml_res_size_45 = 733;
+static unsigned char xml_res_file_45[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -6715,8 +6788,8 @@ static unsigned char xml_res_file_43[] = {
103,0,44,160,249,219,54,55,96,156,192,73,20,0,243,247,131,218,63,48,56,
26,248,105,235,157,94,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_44 = 894;
-static unsigned char xml_res_file_44[] = {
+static size_t xml_res_size_46 = 894;
+static unsigned char xml_res_file_46[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,43,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,70,114,32,49,50,32,68,101,122,32,50,48,48,51,32,50,49,
@@ -6761,8 +6834,8 @@ static unsigned char xml_res_file_44[] = {
15,250,23,121,158,31,145,101,185,91,201,66,112,183,9,222,86,191,1,216,18,
102,195,252,90,176,179,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_45 = 735;
-static unsigned char xml_res_file_45[] = {
+static size_t xml_res_size_47 = 735;
+static unsigned char xml_res_file_47[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -6799,8 +6872,8 @@ static unsigned char xml_res_file_45[] = {
77,242,234,191,164,128,8,168,0,33,80,174,171,100,173,173,254,6,207,154,
227,149,127,20,234,56,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_46 = 506;
-static unsigned char xml_res_file_46[] = {
+static size_t xml_res_size_48 = 506;
+static unsigned char xml_res_file_48[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -6826,8 +6899,8 @@ static unsigned char xml_res_file_46[] = {
195,139,83,4,224,19,64,193,169,60,128,130,57,147,191,0,30,99,118,114,243,
123,34,116,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_47 = 479;
-static unsigned char xml_res_file_47[] = {
+static size_t xml_res_size_49 = 479;
+static unsigned char xml_res_file_49[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,4,0,0,
0,181,250,55,234,0,0,0,2,115,66,73,84,8,8,85,236,70,4,0,0,0,9,112,72,89,
115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,111,
@@ -6852,8 +6925,8 @@ static unsigned char xml_res_file_47[] = {
217,245,202,112,251,248,195,246,171,215,67,224,63,88,118,169,59,145,118,
103,111,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_48 = 504;
-static unsigned char xml_res_file_48[] = {
+static size_t xml_res_size_50 = 504;
+static unsigned char xml_res_file_50[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,4,0,0,
0,181,250,55,234,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,2,98,75,71,
68,0,255,135,143,204,191,0,0,0,9,112,72,89,115,0,0,1,187,0,0,1,187,1,58,
@@ -6879,8 +6952,8 @@ static unsigned char xml_res_file_48[] = {
244,222,224,197,201,242,245,112,169,144,47,119,190,45,207,124,200,143,252,
95,244,150,165,237,114,41,24,7,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_49 = 1288;
-static unsigned char xml_res_file_49[] = {
+static size_t xml_res_size_51 = 1288;
+static unsigned char xml_res_file_51[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,16,6,0,
0,0,79,99,35,34,0,0,0,9,112,72,89,115,0,0,55,92,0,0,55,92,1,203,199,164,
185,0,0,0,9,118,112,65,103,0,0,0,16,0,0,0,16,0,92,198,173,195,0,0,0,6,98,
@@ -6944,8 +7017,8 @@ static unsigned char xml_res_file_49[] = {
97,114,101,0,0,120,218,43,47,47,215,203,204,203,46,78,78,44,72,213,203,
47,74,7,0,54,216,6,88,16,83,202,92,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_50 = 3479;
-static unsigned char xml_res_file_50[] = {
+static size_t xml_res_size_52 = 3479;
+static unsigned char xml_res_file_52[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -7116,8 +7189,8 @@ static unsigned char xml_res_file_50[] = {
183,253,159,245,129,20,72,128,16,144,69,189,1,94,3,151,139,236,0,254,27,
0,117,73,16,195,100,100,116,215,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_51 = 887;
-static unsigned char xml_res_file_51[] = {
+static size_t xml_res_size_53 = 887;
+static unsigned char xml_res_file_53[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,42,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,83,111,32,52,32,74,97,110,32,50,48,48,52,32,49,57,58,48,
@@ -7162,8 +7235,8 @@ static unsigned char xml_res_file_51[] = {
246,229,127,169,223,158,105,64,153,156,76,148,88,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_52 = 681;
-static unsigned char xml_res_file_52[] = {
+static size_t xml_res_size_54 = 681;
+static unsigned char xml_res_file_54[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,45,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,106,101,117,46,32,53,32,100,233,99,46,32,50,48,48,50,32,
@@ -7198,8 +7271,8 @@ static unsigned char xml_res_file_52[] = {
176,179,179,225,180,177,182,84,197,149,216,134,17,0,0,4,223,217,134,133,
215,167,132,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_53 = 367;
-static unsigned char xml_res_file_53[] = {
+static size_t xml_res_size_55 = 367;
+static unsigned char xml_res_file_55[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0,
0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72,
89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,111,
@@ -7218,8 +7291,8 @@ static unsigned char xml_res_file_53[] = {
241,250,1,182,226,6,248,21,16,99,252,44,131,7,217,234,22,224,97,207,36,
126,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_54 = 745;
-static unsigned char xml_res_file_54[] = {
+static size_t xml_res_size_56 = 745;
+static unsigned char xml_res_file_56[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,42,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,68,111,32,56,32,74,97,110,32,50,48,48,52,32,49,49,58,49,
@@ -7256,8 +7329,8 @@ static unsigned char xml_res_file_54[] = {
11,81,220,131,231,176,95,142,23,47,100,51,120,121,203,69,243,160,63,248,
159,241,23,68,229,79,41,23,72,123,24,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_55 = 62919;
-static unsigned char xml_res_file_55[] = {
+static size_t xml_res_size_57 = 62919;
+static unsigned char xml_res_file_57[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,242,0,0,1,242,8,2,0,
0,0,94,125,4,71,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,0,7,116,73,77,69,7,215,11,11,18,54,5,133,234,34,195,0,0,0,7,116,69,
@@ -10339,8 +10412,8 @@ static unsigned char xml_res_file_55[] = {
5,2,19,226,127,88,68,206,162,106,244,2,253,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_56 = 3129;
-static unsigned char xml_res_file_56[] = {
+static size_t xml_res_size_58 = 3129;
+static unsigned char xml_res_file_58[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,43,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,77,105,32,50,54,32,70,101,98,32,50,48,48,51,32,49,48,58,
@@ -10495,8 +10568,8 @@ static unsigned char xml_res_file_56[] = {
45,143,32,4,10,144,196,106,134,97,255,216,220,124,207,153,47,26,211,231,
42,255,1,197,242,58,57,228,221,196,12,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_57 = 3445;
-static unsigned char xml_res_file_57[] = {
+static size_t xml_res_size_59 = 3445;
+static unsigned char xml_res_file_59[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -10666,8 +10739,8 @@ static unsigned char xml_res_file_57[] = {
106,201,100,50,28,0,252,25,0,39,105,40,55,164,45,1,11,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_58 = 683;
-static unsigned char xml_res_file_58[] = {
+static size_t xml_res_size_60 = 683;
+static unsigned char xml_res_file_60[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -10702,8 +10775,8 @@ static unsigned char xml_res_file_58[] = {
126,53,218,173,70,43,215,81,216,108,156,127,2,159,164,108,180,35,52,212,
126,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_59 = 704;
-static unsigned char xml_res_file_59[] = {
+static size_t xml_res_size_61 = 704;
+static unsigned char xml_res_file_61[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -10739,8 +10812,8 @@ static unsigned char xml_res_file_59[] = {
199,17,4,250,21,150,233,108,21,203,106,24,63,6,144,255,125,231,159,170,
154,75,27,99,123,197,90,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_60 = 639;
-static unsigned char xml_res_file_60[] = {
+static size_t xml_res_size_62 = 639;
+static unsigned char xml_res_file_62[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
@@ -10773,8 +10846,8 @@ static unsigned char xml_res_file_60[] = {
73,14,172,255,2,12,0,63,205,231,104,37,153,30,32,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_61 = 7960;
-static unsigned char xml_res_file_61[] = {
+static size_t xml_res_size_63 = 7960;
+static unsigned char xml_res_file_63[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,231,0,0,0,66,8,2,0,
0,0,226,201,137,234,0,0,0,9,112,72,89,115,0,0,14,196,0,0,14,196,1,149,43,
14,27,0,0,0,7,116,73,77,69,7,215,12,11,20,30,26,227,18,33,62,0,0,0,7,116,
@@ -11164,8 +11237,8 @@ static unsigned char xml_res_file_61[] = {
91,91,163,209,104,70,18,255,13,1,101,50,84,72,18,31,168,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_62 = 6936;
-static unsigned char xml_res_file_62[] = {
+static size_t xml_res_size_64 = 6936;
+static unsigned char xml_res_file_64[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,231,0,0,0,32,8,2,0,
0,0,167,245,39,187,0,0,0,9,112,72,89,115,0,0,14,196,0,0,14,196,1,149,43,
14,27,0,0,0,7,116,73,77,69,7,215,12,23,13,52,14,159,155,73,179,0,0,0,7,
@@ -11504,8 +11577,8 @@ static unsigned char xml_res_file_62[] = {
34,41,233,142,30,237,0,192,255,3,111,169,68,2,248,173,80,128,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_63 = 966;
-static unsigned char xml_res_file_63[] = {
+static size_t xml_res_size_65 = 966;
+static unsigned char xml_res_file_65[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -11554,8 +11627,8 @@ static unsigned char xml_res_file_63[] = {
120,48,52,248,13,139,240,202,68,196,151,235,84,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_64 = 761;
-static unsigned char xml_res_file_64[] = {
+static size_t xml_res_size_66 = 761;
+static unsigned char xml_res_file_66[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -11594,8 +11667,8 @@ static unsigned char xml_res_file_64[] = {
140,249,243,23,177,87,216,253,35,48,36,45,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_65 = 700;
-static unsigned char xml_res_file_65[] = {
+static size_t xml_res_size_67 = 700;
+static unsigned char xml_res_file_67[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,1,187,0,
@@ -11630,8 +11703,8 @@ static unsigned char xml_res_file_65[] = {
64,53,89,54,222,136,1,212,1,84,1,156,1,168,52,28,197,113,92,251,11,177,
244,190,246,26,73,129,97,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_66 = 418;
-static unsigned char xml_res_file_66[] = {
+static size_t xml_res_size_68 = 418;
+static unsigned char xml_res_file_68[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,6,98,75,71,68,0,190,0,190,0,190,181,173,64,155,0,
0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,
@@ -11652,8 +11725,8 @@ static unsigned char xml_res_file_66[] = {
75,96,137,242,24,32,65,246,238,23,214,30,191,236,253,143,250,4,75,21,73,
91,156,122,54,46,0,0,0,0,73,69,78,68,174,66,96,130,10,32,9,32,32,9,32,10};
-static size_t xml_res_size_67 = 762;
-static unsigned char xml_res_file_67[] = {
+static size_t xml_res_size_69 = 762;
+static unsigned char xml_res_file_69[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -11692,8 +11765,8 @@ static unsigned char xml_res_file_67[] = {
60,128,165,191,15,190,146,37,238,39,97,94,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_68 = 795;
-static unsigned char xml_res_file_68[] = {
+static size_t xml_res_size_70 = 795;
+static unsigned char xml_res_file_70[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -11734,8 +11807,8 @@ static unsigned char xml_res_file_68[] = {
156,255,0,33,111,198,143,231,146,204,102,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_69 = 752;
-static unsigned char xml_res_file_69[] = {
+static size_t xml_res_size_71 = 752;
+static unsigned char xml_res_file_71[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -11773,8 +11846,8 @@ static unsigned char xml_res_file_69[] = {
72,150,109,50,36,195,24,33,203,204,75,94,185,138,83,58,1,134,149,59,15,
197,141,229,135,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_70 = 547;
-static unsigned char xml_res_file_70[] = {
+static size_t xml_res_size_72 = 547;
+static unsigned char xml_res_file_72[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -11802,8 +11875,8 @@ static unsigned char xml_res_file_70[] = {
238,172,213,109,32,0,12,32,64,1,228,64,182,168,159,170,234,126,1,210,87,
39,71,27,86,23,36,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_71 = 3329;
-static unsigned char xml_res_file_71[] = {
+static size_t xml_res_size_73 = 3329;
+static unsigned char xml_res_file_73[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -11967,8 +12040,8 @@ static unsigned char xml_res_file_71[] = {
143,207,146,149,86,126,59,88,39,132,220,138,137,200,7,177,191,6,0,68,27,
254,238,54,119,61,0,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_72 = 437;
-static unsigned char xml_res_file_72[] = {
+static size_t xml_res_size_74 = 437;
+static unsigned char xml_res_file_74[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -11991,8 +12064,8 @@ static unsigned char xml_res_file_72[] = {
194,171,237,207,111,194,91,233,173,202,37,121,23,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_73 = 731;
-static unsigned char xml_res_file_73[] = {
+static size_t xml_res_size_75 = 731;
+static unsigned char xml_res_file_75[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12029,8 +12102,57 @@ static unsigned char xml_res_file_73[] = {
198,199,199,95,105,154,150,0,80,151,57,19,7,240,19,192,47,0,156,136,82,
191,1,15,132,144,175,125,174,182,28,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_74 = 613;
-static unsigned char xml_res_file_74[] = {
+static size_t xml_res_size_76 = 354;
+static unsigned char xml_res_file_76[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,4,0,0,
+0,181,250,55,234,0,0,0,4,103,65,77,65,0,0,175,200,55,5,138,233,0,0,0,25,
+116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,
+97,103,101,82,101,97,100,121,113,201,101,60,0,0,0,244,73,68,65,84,40,207,
+125,209,49,75,2,113,28,198,241,255,36,220,212,218,212,203,232,117,248,6,
+122,25,66,65,105,135,98,41,92,40,166,57,152,56,4,162,32,210,96,17,81,112,
+80,81,232,224,18,34,14,218,165,253,35,212,228,16,212,65,191,13,162,104,
+119,39,207,240,123,134,207,240,192,79,32,230,41,123,23,109,61,203,242,202,
+179,186,17,60,81,231,49,176,1,232,140,120,231,230,196,17,60,48,226,151,
+42,197,176,3,184,99,72,151,30,101,178,97,91,80,194,228,27,201,15,47,164,
+53,27,112,205,128,54,6,6,18,157,68,196,2,10,244,249,160,73,11,73,155,123,
+206,98,255,64,14,147,14,6,159,196,135,209,138,54,9,17,140,173,129,43,106,
+92,142,171,244,137,206,180,109,4,66,85,188,202,10,200,144,146,201,221,243,
+102,29,157,80,198,102,100,234,45,185,131,136,184,11,152,4,166,234,150,5,
+92,40,243,123,42,27,220,114,116,108,1,139,248,247,242,52,56,48,61,46,7,
+224,115,29,126,237,87,60,203,207,254,1,68,64,48,239,127,84,49,47,0,0,0,
+0,73,69,78,68,174,66,96,130};
+
+static size_t xml_res_size_77 = 539;
+static unsigned char xml_res_file_77[] = {
+137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
+0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
+72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
+111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,
+46,111,114,103,155,238,60,26,0,0,1,152,73,68,65,84,56,141,157,145,177,110,
+19,65,20,69,207,125,243,118,189,182,215,118,32,32,155,150,134,15,72,5,109,
+168,144,80,10,58,62,128,14,190,128,31,161,224,7,232,16,117,90,58,62,128,
+6,9,137,2,20,132,73,156,144,120,179,59,67,177,78,178,16,57,68,92,105,52,
+210,72,247,204,189,239,105,235,30,55,31,63,96,155,255,208,187,247,236,250,
+211,135,60,121,254,242,245,171,212,204,65,134,172,135,60,71,150,163,108,
+34,249,6,132,9,178,18,52,0,173,238,116,192,232,197,230,51,71,24,205,15,
+113,186,7,114,240,30,216,24,124,138,108,0,54,66,54,105,223,52,6,42,136,
+223,32,46,64,152,3,32,3,57,10,25,202,110,161,124,138,178,219,224,155,40,
+220,128,48,1,245,32,206,33,254,108,79,58,6,192,1,154,249,27,226,242,19,
+10,57,242,62,230,3,148,13,176,188,196,188,143,188,184,212,63,217,157,11,
+128,242,18,75,99,100,190,130,20,152,23,200,50,206,66,94,86,186,0,88,54,
+36,165,18,153,131,101,173,57,20,45,108,29,32,253,13,96,4,10,237,28,44,107,
+205,33,95,227,77,36,234,78,5,31,34,149,171,97,134,182,202,218,232,64,106,
+32,86,93,64,177,218,177,144,108,189,17,72,41,146,154,138,88,31,118,0,22,
+32,133,43,141,231,209,227,41,177,58,36,86,157,4,215,81,107,174,73,213,17,
+241,248,59,205,178,253,240,234,188,221,216,177,34,85,11,154,95,123,212,
+139,47,72,203,127,3,206,127,173,79,136,39,251,52,71,95,169,15,62,67,220,
+199,251,116,42,132,233,31,38,72,112,182,170,216,14,44,86,21,205,50,96,189,
+25,222,159,17,134,119,129,143,232,209,125,102,219,91,236,92,119,22,93,237,
+126,224,237,111,173,70,148,16,87,126,248,41,0,0,0,0,73,69,78,68,174,66,
+96,130};
+
+static size_t xml_res_size_78 = 613;
+static unsigned char xml_res_file_78[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12062,8 +12184,8 @@ static unsigned char xml_res_file_74[] = {
200,244,255,255,255,255,1,0,247,32,231,81,28,227,104,151,0,0,0,0,73,69,
78,68,174,66,96,130};
-static size_t xml_res_size_75 = 668;
-static unsigned char xml_res_file_75[] = {
+static size_t xml_res_size_79 = 668;
+static unsigned char xml_res_file_79[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -12097,8 +12219,8 @@ static unsigned char xml_res_file_75[] = {
252,237,51,241,63,226,43,167,214,235,43,196,150,253,13,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_76 = 639;
-static unsigned char xml_res_file_76[] = {
+static size_t xml_res_size_80 = 639;
+static unsigned char xml_res_file_80[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -12130,8 +12252,8 @@ static unsigned char xml_res_file_76[] = {
85,175,76,31,95,36,254,171,76,159,127,183,27,143,109,51,127,0,129,235,219,
126,70,148,146,27,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_77 = 602;
-static unsigned char xml_res_file_77[] = {
+static size_t xml_res_size_81 = 602;
+static unsigned char xml_res_file_81[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12162,8 +12284,8 @@ static unsigned char xml_res_file_77[] = {
159,0,46,252,187,16,7,128,0,248,0,142,230,220,39,162,0,0,254,2,173,12,111,
120,140,61,160,217,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_78 = 462;
-static unsigned char xml_res_file_78[] = {
+static size_t xml_res_size_82 = 462;
+static unsigned char xml_res_file_82[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12187,8 +12309,8 @@ static unsigned char xml_res_file_78[] = {
64,29,168,107,247,229,79,130,224,146,92,229,52,192,112,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_79 = 464;
-static unsigned char xml_res_file_79[] = {
+static size_t xml_res_size_83 = 464;
+static unsigned char xml_res_file_83[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12212,8 +12334,8 @@ static unsigned char xml_res_file_79[] = {
2,1,163,93,121,7,222,128,87,96,0,12,220,184,242,39,54,24,92,226,117,142,
168,99,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_80 = 625;
-static unsigned char xml_res_file_80[] = {
+static size_t xml_res_size_84 = 625;
+static unsigned char xml_res_file_84[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12245,8 +12367,8 @@ static unsigned char xml_res_file_80[] = {
159,243,68,249,243,32,173,2,159,162,115,169,223,246,29,234,98,221,146,156,
119,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_81 = 672;
-static unsigned char xml_res_file_81[] = {
+static size_t xml_res_size_85 = 672;
+static unsigned char xml_res_file_85[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12280,8 +12402,8 @@ static unsigned char xml_res_file_81[] = {
241,104,243,95,81,6,80,137,59,71,241,7,28,152,90,249,152,21,25,66,0,0,0,
0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_82 = 548;
-static unsigned char xml_res_file_82[] = {
+static size_t xml_res_size_86 = 548;
+static unsigned char xml_res_file_86[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12309,8 +12431,8 @@ static unsigned char xml_res_file_82[] = {
229,139,84,124,206,183,227,230,191,226,20,248,220,42,199,248,13,95,198,
189,161,61,78,40,59,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_83 = 650;
-static unsigned char xml_res_file_83[] = {
+static size_t xml_res_size_87 = 650;
+static unsigned char xml_res_file_87[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12344,8 +12466,8 @@ static unsigned char xml_res_file_83[] = {
73,206,49,254,0,61,39,6,79,174,139,88,136,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_84 = 743;
-static unsigned char xml_res_file_84[] = {
+static size_t xml_res_size_88 = 743;
+static unsigned char xml_res_file_88[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12383,8 +12505,8 @@ static unsigned char xml_res_file_84[] = {
10,231,169,246,167,187,76,140,192,63,96,9,16,191,0,100,58,117,67,48,81,
51,243,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_85 = 821;
-static unsigned char xml_res_file_85[] = {
+static size_t xml_res_size_89 = 821;
+static unsigned char xml_res_file_89[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12426,8 +12548,8 @@ static unsigned char xml_res_file_85[] = {
22,68,134,99,87,222,255,6,129,62,148,253,161,228,14,253,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_86 = 597;
-static unsigned char xml_res_file_86[] = {
+static size_t xml_res_size_90 = 597;
+static unsigned char xml_res_file_90[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12458,8 +12580,8 @@ static unsigned char xml_res_file_86[] = {
157,127,233,100,93,127,1,128,105,83,176,4,248,205,20,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_87 = 1854;
-static unsigned char xml_res_file_87[] = {
+static size_t xml_res_size_91 = 1854;
+static unsigned char xml_res_file_91[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,16,6,0,
0,0,79,99,35,34,0,0,0,9,112,72,89,115,0,0,55,92,0,0,55,92,1,203,199,164,
185,0,0,0,9,118,112,65,103,0,0,0,16,0,0,0,16,0,92,198,173,195,0,0,0,6,98,
@@ -12552,8 +12674,8 @@ static unsigned char xml_res_file_87[] = {
47,215,203,204,203,46,78,78,44,72,213,203,47,74,7,0,54,216,6,88,16,83,202,
92,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_88 = 720;
-static unsigned char xml_res_file_88[] = {
+static size_t xml_res_size_92 = 720;
+static unsigned char xml_res_file_92[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12590,8 +12712,8 @@ static unsigned char xml_res_file_88[] = {
102,129,92,109,114,141,191,63,50,244,146,208,89,162,221,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_89 = 563;
-static unsigned char xml_res_file_89[] = {
+static size_t xml_res_size_93 = 563;
+static unsigned char xml_res_file_93[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12620,8 +12742,8 @@ static unsigned char xml_res_file_89[] = {
234,119,254,88,189,252,87,61,3,63,188,115,85,127,1,148,24,195,12,193,108,
182,40,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_90 = 572;
-static unsigned char xml_res_file_90[] = {
+static size_t xml_res_size_94 = 572;
+static unsigned char xml_res_file_94[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12651,8 +12773,8 @@ static unsigned char xml_res_file_90[] = {
42,185,157,63,83,241,253,31,62,79,218,54,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_91 = 722;
-static unsigned char xml_res_file_91[] = {
+static size_t xml_res_size_95 = 722;
+static unsigned char xml_res_file_95[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12689,8 +12811,8 @@ static unsigned char xml_res_file_91[] = {
64,130,127,75,2,95,165,148,46,127,233,39,76,96,41,157,161,183,243,24,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_92 = 663;
-static unsigned char xml_res_file_92[] = {
+static size_t xml_res_size_96 = 663;
+static unsigned char xml_res_file_96[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -12724,8 +12846,8 @@ static unsigned char xml_res_file_92[] = {
165,84,115,101,235,95,184,3,126,62,39,3,252,1,217,225,10,185,26,200,210,
115,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_93 = 605;
-static unsigned char xml_res_file_93[] = {
+static size_t xml_res_size_97 = 605;
+static unsigned char xml_res_file_97[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -12756,8 +12878,8 @@ static unsigned char xml_res_file_93[] = {
141,55,231,159,211,206,255,117,93,144,8,34,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_94 = 495;
-static unsigned char xml_res_file_94[] = {
+static size_t xml_res_size_98 = 495;
+static unsigned char xml_res_file_98[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -12783,8 +12905,8 @@ static unsigned char xml_res_file_94[] = {
170,5,164,189,158,125,2,195,50,200,239,96,19,35,169,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_95 = 742;
-static unsigned char xml_res_file_95[] = {
+static size_t xml_res_size_99 = 742;
+static unsigned char xml_res_file_99[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -12822,8 +12944,8 @@ static unsigned char xml_res_file_95[] = {
72,248,132,71,184,199,112,136,131,62,238,95,13,240,27,4,60,172,21,245,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_96 = 893;
-static unsigned char xml_res_file_96[] = {
+static size_t xml_res_size_100 = 893;
+static unsigned char xml_res_file_100[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -12868,8 +12990,8 @@ static unsigned char xml_res_file_96[] = {
78,90,233,77,123,20,252,237,38,146,180,2,0,196,0,32,8,0,33,0,248,253,7,
78,234,252,238,128,2,237,175,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_97 = 1535;
-static unsigned char xml_res_file_97[] = {
+static size_t xml_res_size_101 = 1535;
+static unsigned char xml_res_file_101[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,5,198,73,68,65,84,72,137,141,85,91,108,84,85,20,93,
231,49,119,238,60,238,109,75,71,135,233,67,90,121,4,218,210,66,169,148,
@@ -12946,8 +13068,8 @@ static unsigned char xml_res_file_97[] = {
154,76,147,82,202,123,255,7,247,47,167,133,32,16,88,94,2,114,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_98 = 1078;
-static unsigned char xml_res_file_98[] = {
+static size_t xml_res_size_102 = 1078;
+static unsigned char xml_res_file_102[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -13002,8 +13124,8 @@ static unsigned char xml_res_file_98[] = {
211,127,1,127,143,219,220,231,242,161,125,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_99 = 593;
-static unsigned char xml_res_file_99[] = {
+static size_t xml_res_size_103 = 593;
+static unsigned char xml_res_file_103[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13034,8 +13156,8 @@ static unsigned char xml_res_file_99[] = {
128,67,85,45,255,0,245,68,157,27,107,34,150,91,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_100 = 1331;
-static unsigned char xml_res_file_100[] = {
+static size_t xml_res_size_104 = 1331;
+static unsigned char xml_res_file_104[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,
65,100,111,98,101,32,73,109,97,103,101,82,101,97,100,121,113,201,101,60,
@@ -13102,8 +13224,8 @@ static unsigned char xml_res_file_100[] = {
135,102,151,2,27,103,8,118,150,254,51,248,119,1,6,0,54,69,72,250,51,250,
54,92,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_101 = 1036;
-static unsigned char xml_res_file_101[] = {
+static size_t xml_res_size_105 = 1036;
+static unsigned char xml_res_file_105[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13155,8 +13277,8 @@ static unsigned char xml_res_file_101[] = {
192,169,146,29,85,118,150,70,27,144,3,44,96,7,200,150,108,149,198,242,183,
252,63,181,31,212,79,121,5,161,161,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_102 = 1233;
-static unsigned char xml_res_file_102[] = {
+static size_t xml_res_size_106 = 1233;
+static unsigned char xml_res_file_106[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13218,8 +13340,8 @@ static unsigned char xml_res_file_102[] = {
214,173,91,185,149,254,6,87,106,169,175,154,44,16,48,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_103 = 576;
-static unsigned char xml_res_file_103[] = {
+static size_t xml_res_size_107 = 576;
+static unsigned char xml_res_file_107[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,4,0,0,
0,110,189,164,176,0,0,0,2,115,66,73,84,8,8,85,236,70,4,0,0,0,9,112,72,89,
115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,25,116,69,88,116,83,111,
@@ -13249,8 +13371,8 @@ static unsigned char xml_res_file_103[] = {
179,203,93,1,57,67,29,1,115,92,190,159,166,4,26,40,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_104 = 644;
-static unsigned char xml_res_file_104[] = {
+static size_t xml_res_size_108 = 644;
+static unsigned char xml_res_file_108[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13283,8 +13405,8 @@ static unsigned char xml_res_file_104[] = {
65,134,73,179,92,176,166,180,102,77,88,179,55,20,69,247,33,113,137,79,149,
0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_105 = 816;
-static unsigned char xml_res_file_105[] = {
+static size_t xml_res_size_109 = 816;
+static unsigned char xml_res_file_109[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -13325,8 +13447,8 @@ static unsigned char xml_res_file_105[] = {
188,102,198,187,247,31,206,124,94,252,248,102,110,110,190,28,55,247,31,
29,22,232,186,57,45,40,146,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_106 = 1220;
-static unsigned char xml_res_file_106[] = {
+static size_t xml_res_size_110 = 1220;
+static unsigned char xml_res_file_110[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13388,8 +13510,8 @@ static unsigned char xml_res_file_106[] = {
219,248,255,224,79,31,179,109,71,71,13,121,16,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_107 = 1245;
-static unsigned char xml_res_file_107[] = {
+static size_t xml_res_size_111 = 1245;
+static unsigned char xml_res_file_111[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13452,8 +13574,8 @@ static unsigned char xml_res_file_107[] = {
81,160,224,17,241,63,244,131,35,251,91,74,77,71,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_108 = 1136;
-static unsigned char xml_res_file_108[] = {
+static size_t xml_res_size_112 = 1136;
+static unsigned char xml_res_file_112[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13510,8 +13632,8 @@ static unsigned char xml_res_file_108[] = {
212,135,54,38,218,159,123,204,126,180,209,8,78,237,29,174,253,64,84,113,
3,240,254,3,232,17,205,208,250,0,94,34,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_109 = 1605;
-static unsigned char xml_res_file_109[] = {
+static size_t xml_res_size_113 = 1605;
+static unsigned char xml_res_file_113[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,6,12,73,68,65,84,120,218,117,149,9,80,83,87,24,133,
127,4,100,171,168,224,130,32,34,117,1,151,201,72,113,235,74,177,118,106,
@@ -13593,8 +13715,8 @@ static unsigned char xml_res_file_109[] = {
114,255,228,252,1,144,84,9,87,144,77,161,244,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_110 = 1233;
-static unsigned char xml_res_file_110[] = {
+static size_t xml_res_size_114 = 1233;
+static unsigned char xml_res_file_114[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -13656,8 +13778,8 @@ static unsigned char xml_res_file_110[] = {
61,111,110,62,217,245,182,188,119,130,255,171,253,11,59,245,161,176,24,
239,51,67,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_111 = 922;
-static unsigned char xml_res_file_111[] = {
+static size_t xml_res_size_115 = 922;
+static unsigned char xml_res_file_115[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13704,8 +13826,8 @@ static unsigned char xml_res_file_111[] = {
135,254,243,224,95,17,89,104,231,193,255,1,85,77,78,90,241,237,154,60,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_112 = 959;
-static unsigned char xml_res_file_112[] = {
+static size_t xml_res_size_116 = 959;
+static unsigned char xml_res_file_116[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13754,8 +13876,8 @@ static unsigned char xml_res_file_112[] = {
235,45,128,127,183,111,231,51,91,173,254,188,23,236,238,213,207,244,14,
143,253,122,160,254,148,121,89,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_113 = 798;
-static unsigned char xml_res_file_113[] = {
+static size_t xml_res_size_117 = 798;
+static unsigned char xml_res_file_117[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -13796,8 +13918,8 @@ static unsigned char xml_res_file_113[] = {
198,12,176,92,138,40,31,217,159,233,31,164,187,80,151,255,239,226,128,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_114 = 1455;
-static unsigned char xml_res_file_114[] = {
+static size_t xml_res_size_118 = 1455;
+static unsigned char xml_res_file_118[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,3,0,0,
0,215,169,205,202,0,0,3,0,80,76,84,69,0,0,0,128,0,0,0,128,0,128,128,0,0,
0,128,128,0,128,0,128,128,192,192,192,192,220,192,166,202,240,0,0,0,0,0,
@@ -13855,8 +13977,8 @@ static unsigned char xml_res_file_114[] = {
206,169,219,253,0,34,114,235,26,76,191,236,97,186,71,30,173,57,109,236,
2,134,169,26,64,30,137,104,190,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_115 = 1133;
-static unsigned char xml_res_file_115[] = {
+static size_t xml_res_size_119 = 1133;
+static unsigned char xml_res_file_119[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -13913,8 +14035,8 @@ static unsigned char xml_res_file_115[] = {
119,74,234,50,174,231,191,110,255,209,55,62,164,141,255,39,249,15,175,168,
8,24,253,245,35,25,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_116 = 959;
-static unsigned char xml_res_file_116[] = {
+static size_t xml_res_size_120 = 959;
+static unsigned char xml_res_file_120[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,3,134,73,68,65,84,120,218,181,149,107,76,147,87,24,
199,155,104,116,198,104,162,115,102,153,82,47,195,180,165,64,21,105,49,
@@ -13963,8 +14085,8 @@ static unsigned char xml_res_file_116[] = {
248,8,198,150,175,244,78,123,119,237,91,162,105,120,83,149,55,114,163,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_117 = 705;
-static unsigned char xml_res_file_117[] = {
+static size_t xml_res_size_121 = 705;
+static unsigned char xml_res_file_121[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,3,0,0,
0,243,106,156,9,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72,
89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,83,
@@ -14000,8 +14122,8 @@ static unsigned char xml_res_file_117[] = {
178,57,61,220,152,70,76,194,152,227,56,190,15,67,5,0,0,0,0,0,252,3,117,
159,97,32,249,119,37,12,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_118 = 1217;
-static unsigned char xml_res_file_118[] = {
+static size_t xml_res_size_122 = 1217;
+static unsigned char xml_res_file_122[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -14062,8 +14184,8 @@ static unsigned char xml_res_file_118[] = {
232,233,215,5,66,32,15,116,129,109,96,3,104,2,29,32,248,7,9,91,24,112,214,
171,56,112,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_119 = 1253;
-static unsigned char xml_res_file_119[] = {
+static size_t xml_res_size_123 = 1253;
+static unsigned char xml_res_file_123[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,4,172,73,68,65,84,120,218,173,149,11,76,147,87,20,
199,187,108,162,34,58,97,201,54,133,85,29,136,128,128,44,186,177,177,217,
@@ -14127,8 +14249,8 @@ static unsigned char xml_res_file_119[] = {
136,182,136,236,173,172,172,44,88,224,87,231,115,254,27,31,117,206,23,193,
15,59,58,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_120 = 1073;
-static unsigned char xml_res_file_120[] = {
+static size_t xml_res_size_124 = 1073;
+static unsigned char xml_res_file_124[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,3,248,73,68,65,84,120,218,173,148,107,72,84,105,24,
199,143,37,19,109,69,223,219,173,140,214,178,240,131,212,135,8,10,130,162,
@@ -14183,8 +14305,8 @@ static unsigned char xml_res_file_120[] = {
33,191,32,55,57,238,223,72,142,187,247,63,38,28,236,199,119,126,212,128,
0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_121 = 1016;
-static unsigned char xml_res_file_121[] = {
+static size_t xml_res_size_125 = 1016;
+static unsigned char xml_res_file_125[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -14236,8 +14358,8 @@ static unsigned char xml_res_file_121[] = {
5,240,129,32,30,149,56,54,230,212,127,38,246,153,23,175,107,146,193,0,0,
0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_122 = 942;
-static unsigned char xml_res_file_122[] = {
+static size_t xml_res_size_126 = 942;
+static unsigned char xml_res_file_126[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,3,0,0,
0,243,106,156,9,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72,
89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,25,116,69,88,116,83,
@@ -14281,8 +14403,8 @@ static unsigned char xml_res_file_122[] = {
6,116,106,213,50,30,175,193,6,66,45,227,147,199,249,54,227,182,233,95,241,
5,50,224,131,57,134,44,229,10,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_123 = 3816;
-static unsigned char xml_res_file_123[] = {
+static size_t xml_res_size_127 = 3816;
+static unsigned char xml_res_file_127[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,
24,0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,
@@ -14471,8 +14593,8 @@ static unsigned char xml_res_file_123[] = {
4,131,65,254,30,0,13,164,183,74,221,48,55,185,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_124 = 813;
-static unsigned char xml_res_file_124[] = {
+static size_t xml_res_size_128 = 813;
+static unsigned char xml_res_file_128[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,3,118,0,0,3,118,1,125,213,130,204,0,0,0,25,116,69,88,116,
@@ -14514,8 +14636,8 @@ static unsigned char xml_res_file_124[] = {
52,176,99,102,237,123,126,10,249,84,233,61,233,68,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_125 = 975;
-static unsigned char xml_res_file_125[] = {
+static size_t xml_res_size_129 = 975;
+static unsigned char xml_res_file_129[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,3,118,0,
@@ -14565,8 +14687,8 @@ static unsigned char xml_res_file_125[] = {
46,96,247,166,255,192,59,17,3,67,192,200,223,141,74,44,172,152,138,19,39,
0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_126 = 940;
-static unsigned char xml_res_file_126[] = {
+static size_t xml_res_size_130 = 940;
+static unsigned char xml_res_file_130[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,
0,0,0,9,112,72,89,115,0,0,9,132,0,0,9,132,1,170,226,99,121,0,0,0,7,116,
@@ -14614,8 +14736,8 @@ static unsigned char xml_res_file_126[] = {
101,241,191,214,159,23,222,188,175,185,200,240,65,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_127 = 907;
-static unsigned char xml_res_file_127[] = {
+static size_t xml_res_size_131 = 907;
+static unsigned char xml_res_file_131[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,
0,0,0,9,112,72,89,115,0,0,9,132,0,0,9,132,1,170,226,99,121,0,0,0,7,116,
@@ -14661,8 +14783,8 @@ static unsigned char xml_res_file_127[] = {
13,185,207,253,236,187,14,252,55,250,2,157,199,94,6,80,228,102,155,0,0,
0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_128 = 1510;
-static unsigned char xml_res_file_128[] = {
+static size_t xml_res_size_132 = 1510;
+static unsigned char xml_res_file_132[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,5,173,73,68,65,84,72,137,141,150,109,140,84,87,25,
199,127,231,220,123,103,238,188,238,204,190,117,119,217,93,96,187,236,74,
@@ -14739,8 +14861,8 @@ static unsigned char xml_res_file_128[] = {
169,219,173,253,31,151,169,176,141,218,30,108,211,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_129 = 1759;
-static unsigned char xml_res_file_129[] = {
+static size_t xml_res_size_133 = 1759;
+static unsigned char xml_res_file_133[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,6,166,73,68,65,84,120,218,165,150,11,80,149,199,25,
134,127,77,38,17,17,47,220,196,115,196,11,130,226,5,17,10,38,20,3,42,245,
@@ -14829,8 +14951,8 @@ static unsigned char xml_res_file_129[] = {
189,242,47,51,165,69,159,12,127,147,26,255,15,119,77,151,39,146,238,48,
214,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_130 = 1316;
-static unsigned char xml_res_file_130[] = {
+static size_t xml_res_size_134 = 1316;
+static unsigned char xml_res_file_134[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,4,235,73,68,65,84,72,137,141,150,109,108,84,85,26,
128,159,115,238,189,211,59,51,119,166,51,5,74,91,104,145,90,10,70,80,179,
@@ -14897,8 +15019,8 @@ static unsigned char xml_res_file_130[] = {
87,42,13,201,238,173,233,179,173,253,25,145,180,96,102,170,35,60,27,0,0,
0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_131 = 1528;
-static unsigned char xml_res_file_131[] = {
+static size_t xml_res_size_135 = 1528;
+static unsigned char xml_res_file_135[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,5,191,73,68,65,84,72,137,141,150,109,140,92,85,25,
199,127,231,190,204,222,153,185,51,59,179,221,93,246,189,116,217,110,69,
@@ -14976,8 +15098,8 @@ static unsigned char xml_res_file_131[] = {
236,203,92,111,239,127,0,47,28,209,136,136,133,235,226,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_132 = 741;
-static unsigned char xml_res_file_132[] = {
+static size_t xml_res_size_136 = 741;
+static unsigned char xml_res_file_136[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,2,172,73,68,65,84,120,218,237,149,75,76,19,65,24,199,
33,169,145,32,80,172,45,22,23,202,163,44,45,244,69,67,105,49,45,45,132,
@@ -15015,8 +15137,8 @@ static unsigned char xml_res_file_132[] = {
19,142,23,228,181,236,128,146,202,98,244,201,29,27,126,17,243,101,218,168,
92,191,0,183,96,17,141,7,40,45,86,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_133 = 733;
-static unsigned char xml_res_file_133[] = {
+static size_t xml_res_size_137 = 733;
+static unsigned char xml_res_file_137[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,2,164,73,68,65,84,120,218,99,96,24,5,20,2,22,32,110,
7,226,231,64,92,135,36,14,98,191,0,226,46,32,102,165,196,130,102,32,254,
@@ -15053,8 +15175,8 @@ static unsigned char xml_res_file_133[] = {
160,122,37,12,44,92,152,193,113,34,33,241,171,90,76,236,57,165,230,1,0,
34,72,18,70,202,150,34,141,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_134 = 645;
-static unsigned char xml_res_file_134[] = {
+static size_t xml_res_size_138 = 645;
+static unsigned char xml_res_file_138[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,2,76,73,68,65,84,120,218,99,96,24,5,20,2,22,32,110,
7,226,231,64,92,135,36,14,98,191,0,226,46,32,102,165,196,130,102,32,254,
@@ -15087,8 +15209,8 @@ static unsigned char xml_res_file_134[] = {
223,132,54,134,131,45,0,166,121,131,28,49,96,186,199,109,56,0,189,144,255,
225,162,220,100,224,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_135 = 1279;
-static unsigned char xml_res_file_135[] = {
+static size_t xml_res_size_139 = 1279;
+static unsigned char xml_res_file_139[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,4,198,73,68,65,84,120,218,221,84,107,76,147,103,20,
102,127,150,232,244,215,150,161,83,71,147,141,197,9,3,5,164,32,182,148,
@@ -15153,8 +15275,8 @@ static unsigned char xml_res_file_135[] = {
34,130,131,159,251,19,173,74,154,35,111,149,1,82,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_136 = 1250;
-static unsigned char xml_res_file_136[] = {
+static size_t xml_res_size_140 = 1250;
+static unsigned char xml_res_file_140[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,4,169,73,68,65,84,120,218,221,149,125,76,212,117,28,
199,253,219,13,41,195,6,242,116,138,136,10,66,76,33,76,61,48,192,104,247,
@@ -15217,8 +15339,8 @@ static unsigned char xml_res_file_136[] = {
68,162,250,23,69,162,109,204,214,239,118,127,5,166,232,158,119,93,196,182,
196,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_137 = 1216;
-static unsigned char xml_res_file_137[] = {
+static size_t xml_res_size_141 = 1216;
+static unsigned char xml_res_file_141[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,4,135,73,68,65,84,120,218,221,149,89,76,84,103,24,
134,185,51,33,33,26,139,194,8,3,51,128,35,198,104,26,18,43,3,134,176,53,
@@ -15280,8 +15402,8 @@ static unsigned char xml_res_file_137[] = {
177,26,255,79,157,69,188,157,159,192,74,242,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_138 = 1599;
-static unsigned char xml_res_file_138[] = {
+static size_t xml_res_size_142 = 1599;
+static unsigned char xml_res_file_142[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,10,240,0,
@@ -15362,8 +15484,8 @@ static unsigned char xml_res_file_138[] = {
221,252,191,245,119,65,46,42,38,225,66,19,131,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_139 = 1602;
-static unsigned char xml_res_file_139[] = {
+static size_t xml_res_size_143 = 1602;
+static unsigned char xml_res_file_143[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,0,42,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,70,114,32,57,32,74,97,110,32,50,48,48,52,32,48,48,58,49,
@@ -15443,8 +15565,8 @@ static unsigned char xml_res_file_139[] = {
152,147,113,133,158,207,30,215,230,127,130,63,0,104,13,82,3,7,95,47,134,
0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_140 = 1089;
-static unsigned char xml_res_file_140[] = {
+static size_t xml_res_size_144 = 1089;
+static unsigned char xml_res_file_144[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,10,240,0,
@@ -15499,8 +15621,8 @@ static unsigned char xml_res_file_140[] = {
43,227,237,142,216,232,149,233,58,234,242,247,181,135,253,3,203,50,147,
100,183,187,84,212,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_141 = 882;
-static unsigned char xml_res_file_141[] = {
+static size_t xml_res_size_145 = 882;
+static unsigned char xml_res_file_145[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,22,8,6,0,0,
0,196,180,108,59,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,2,97,0,0,2,97,1,193,48,85,250,0,0,0,25,116,69,88,116,83,111,
@@ -15544,8 +15666,8 @@ static unsigned char xml_res_file_141[] = {
73,0,113,0,137,99,99,34,29,63,138,37,1,200,191,0,169,11,160,10,71,151,219,
128,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_142 = 1566;
-static unsigned char xml_res_file_142[] = {
+static size_t xml_res_size_146 = 1566;
+static unsigned char xml_res_file_146[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,24,0,0,0,24,8,6,0,0,
0,224,119,61,248,0,0,5,229,73,68,65,84,72,137,125,149,121,140,149,87,21,
192,127,247,126,203,219,190,183,205,188,89,88,134,97,134,173,45,42,206,
@@ -15624,8 +15746,8 @@ static unsigned char xml_res_file_142[] = {
126,81,78,201,126,169,221,234,252,255,1,92,191,178,62,219,85,42,35,0,0,
0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_143 = 424;
-static unsigned char xml_res_file_143[] = {
+static size_t xml_res_size_147 = 424;
+static unsigned char xml_res_file_147[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -15647,8 +15769,8 @@ static unsigned char xml_res_file_143[] = {
41,151,206,5,48,192,6,88,3,113,170,165,181,214,188,3,210,251,123,115,6,
128,157,149,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_144 = 549;
-static unsigned char xml_res_file_144[] = {
+static size_t xml_res_size_148 = 549;
+static unsigned char xml_res_file_148[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -15676,8 +15798,8 @@ static unsigned char xml_res_file_144[] = {
138,246,73,234,123,24,24,73,154,44,79,134,167,22,157,117,222,0,226,170,
166,156,164,72,155,69,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_145 = 639;
-static unsigned char xml_res_file_145[] = {
+static size_t xml_res_size_149 = 639;
+static unsigned char xml_res_file_149[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -15710,8 +15832,8 @@ static unsigned char xml_res_file_145[] = {
2,48,0,252,6,240,231,47,250,19,99,204,180,175,12,240,0,0,0,0,73,69,78,68,
174,66,96,130};
-static size_t xml_res_size_146 = 3572;
-static unsigned char xml_res_file_146[] = {
+static size_t xml_res_size_150 = 3572;
+static unsigned char xml_res_file_150[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -15887,8 +16009,8 @@ static unsigned char xml_res_file_146[] = {
82,36,18,89,137,68,34,43,28,199,245,182,195,253,55,0,235,12,32,181,63,194,
72,200,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_147 = 722;
-static unsigned char xml_res_file_147[] = {
+static size_t xml_res_size_151 = 722;
+static unsigned char xml_res_file_151[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -15925,8 +16047,8 @@ static unsigned char xml_res_file_147[] = {
163,224,127,234,47,178,42,31,70,85,64,167,30,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_148 = 438;
-static unsigned char xml_res_file_148[] = {
+static size_t xml_res_size_152 = 438;
+static unsigned char xml_res_file_152[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,25,116,69,88,116,
@@ -15949,8 +16071,8 @@ static unsigned char xml_res_file_148[] = {
51,141,15,151,82,41,36,209,126,3,225,11,88,131,102,170,5,191,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_149 = 3498;
-static unsigned char xml_res_file_149[] = {
+static size_t xml_res_size_153 = 3498;
+static unsigned char xml_res_file_153[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -16122,8 +16244,8 @@ static unsigned char xml_res_file_149[] = {
200,29,165,41,241,63,249,31,126,15,0,158,170,158,59,85,250,179,97,0,0,0,
0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_150 = 714;
-static unsigned char xml_res_file_150[] = {
+static size_t xml_res_size_154 = 714;
+static unsigned char xml_res_file_154[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16160,8 +16282,8 @@ static unsigned char xml_res_file_150[] = {
5,173,181,255,15,157,65,220,45,65,210,154,106,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_151 = 860;
-static unsigned char xml_res_file_151[] = {
+static size_t xml_res_size_155 = 860;
+static unsigned char xml_res_file_155[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16205,8 +16327,8 @@ static unsigned char xml_res_file_151[] = {
213,124,29,157,59,57,236,121,30,239,179,111,0,253,150,112,159,202,2,243,
234,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_152 = 368;
-static unsigned char xml_res_file_152[] = {
+static size_t xml_res_size_156 = 368;
+static unsigned char xml_res_file_156[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,4,0,0,
0,181,250,55,234,0,0,0,2,115,66,73,84,8,8,85,236,70,4,0,0,0,9,112,72,89,
115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,25,116,69,88,116,83,111,
@@ -16226,8 +16348,8 @@ static unsigned char xml_res_file_152[] = {
115,114,11,191,244,156,228,139,176,237,40,145,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_153 = 514;
-static unsigned char xml_res_file_153[] = {
+static size_t xml_res_size_157 = 514;
+static unsigned char xml_res_file_157[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16254,8 +16376,8 @@ static unsigned char xml_res_file_153[] = {
108,246,72,141,185,142,253,2,129,148,157,172,56,170,73,206,0,0,0,0,73,69,
78,68,174,66,96,130};
-static size_t xml_res_size_154 = 567;
-static unsigned char xml_res_file_154[] = {
+static size_t xml_res_size_158 = 567;
+static unsigned char xml_res_file_158[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16284,8 +16406,8 @@ static unsigned char xml_res_file_154[] = {
244,47,89,253,113,124,116,122,245,243,234,210,223,127,1,166,98,32,109,8,
153,168,211,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_155 = 875;
-static unsigned char xml_res_file_155[] = {
+static size_t xml_res_size_159 = 875;
+static unsigned char xml_res_file_159[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16329,8 +16451,8 @@ static unsigned char xml_res_file_155[] = {
69,102,26,13,230,40,67,131,91,247,232,249,19,255,214,60,145,224,255,120,
0,227,204,107,75,213,215,75,15,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_156 = 817;
-static unsigned char xml_res_file_156[] = {
+static size_t xml_res_size_160 = 817;
+static unsigned char xml_res_file_160[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16371,8 +16493,8 @@ static unsigned char xml_res_file_156[] = {
175,104,133,195,59,178,116,127,248,213,63,197,219,0,255,83,191,0,165,237,
69,58,115,178,162,143,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_157 = 775;
-static unsigned char xml_res_file_157[] = {
+static size_t xml_res_size_161 = 775;
+static unsigned char xml_res_file_161[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16411,8 +16533,8 @@ static unsigned char xml_res_file_157[] = {
0,188,238,93,177,228,182,14,157,188,113,175,60,2,84,140,49,254,47,12,126,
47,155,76,57,134,95,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_158 = 734;
-static unsigned char xml_res_file_158[] = {
+static size_t xml_res_size_162 = 734;
+static unsigned char xml_res_file_162[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,2,165,73,68,65,84,120,218,125,147,111,72,147,65,28,
199,127,186,9,70,212,86,42,69,101,32,20,73,41,56,36,68,50,3,65,233,69,224,
@@ -16450,8 +16572,8 @@ static unsigned char xml_res_file_158[] = {
45,107,140,162,61,100,186,225,251,255,170,253,11,30,31,23,81,83,145,18,
32,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_159 = 820;
-static unsigned char xml_res_file_159[] = {
+static size_t xml_res_size_163 = 820;
+static unsigned char xml_res_file_163[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16492,8 +16614,8 @@ static unsigned char xml_res_file_159[] = {
13,149,4,169,104,51,58,221,177,233,161,161,161,252,95,203,244,47,243,29,
14,68,10,133,228,73,176,157,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_160 = 609;
-static unsigned char xml_res_file_160[] = {
+static size_t xml_res_size_164 = 609;
+static unsigned char xml_res_file_164[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16524,8 +16646,8 @@ static unsigned char xml_res_file_160[] = {
227,78,6,214,20,17,123,218,53,254,7,128,200,8,116,169,200,4,246,0,0,0,0,
73,69,78,68,174,66,96,130};
-static size_t xml_res_size_161 = 651;
-static unsigned char xml_res_file_161[] = {
+static size_t xml_res_size_165 = 651;
+static unsigned char xml_res_file_165[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16559,8 +16681,8 @@ static unsigned char xml_res_file_161[] = {
153,199,5,254,1,128,195,118,101,234,21,93,140,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_162 = 583;
-static unsigned char xml_res_file_162[] = {
+static size_t xml_res_size_166 = 583;
+static unsigned char xml_res_file_166[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16590,8 +16712,8 @@ static unsigned char xml_res_file_162[] = {
157,29,236,130,221,7,48,135,253,206,63,1,251,210,30,246,119,77,78,189,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_163 = 1241;
-static unsigned char xml_res_file_163[] = {
+static size_t xml_res_size_167 = 1241;
+static unsigned char xml_res_file_167[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0,
0,40,45,15,83,0,0,0,21,116,69,88,116,67,114,101,97,116,105,111,110,32,84,
105,109,101,0,7,210,11,5,15,3,38,244,81,164,212,0,0,0,7,116,73,77,69,7,
@@ -16640,8 +16762,8 @@ static unsigned char xml_res_file_163[] = {
217,199,231,38,96,218,127,204,5,93,229,97,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_164 = 800;
-static unsigned char xml_res_file_164[] = {
+static size_t xml_res_size_168 = 800;
+static unsigned char xml_res_file_168[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16682,8 +16804,8 @@ static unsigned char xml_res_file_164[] = {
30,135,205,127,164,245,187,216,65,116,186,33,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_165 = 660;
-static unsigned char xml_res_file_165[] = {
+static size_t xml_res_size_169 = 660;
+static unsigned char xml_res_file_169[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,2,91,73,68,65,84,120,218,157,210,221,75,211,81,24,7,
240,243,31,216,69,86,4,213,50,82,39,249,182,108,195,156,47,108,211,77,242,
@@ -16718,8 +16840,8 @@ static unsigned char xml_res_file_165[] = {
12,6,67,132,227,184,198,63,63,34,251,59,19,238,234,169,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_166 = 586;
-static unsigned char xml_res_file_166[] = {
+static size_t xml_res_size_170 = 586;
+static unsigned char xml_res_file_170[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0,
0,40,45,15,83,0,0,0,3,115,66,73,84,8,8,8,219,225,79,224,0,0,0,9,112,72,
89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,111,
@@ -16750,8 +16872,8 @@ static unsigned char xml_res_file_166[] = {
62,107,221,14,171,241,31,92,154,77,35,153,199,126,105,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_167 = 800;
-static unsigned char xml_res_file_167[] = {
+static size_t xml_res_size_171 = 800;
+static unsigned char xml_res_file_171[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16792,8 +16914,8 @@ static unsigned char xml_res_file_167[] = {
252,252,123,32,176,214,22,127,1,60,54,74,27,103,163,71,101,0,0,0,0,73,69,
78,68,174,66,96,130};
-static size_t xml_res_size_168 = 854;
-static unsigned char xml_res_file_168[] = {
+static size_t xml_res_size_172 = 854;
+static unsigned char xml_res_file_172[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,3,29,73,68,65,84,120,218,125,83,107,72,147,97,20,254,
134,244,67,67,26,24,104,235,170,224,141,105,101,73,154,26,166,195,66,141,
@@ -16837,8 +16959,8 @@ static unsigned char xml_res_file_168[] = {
216,128,119,20,139,242,249,247,242,47,226,170,10,175,205,251,124,67,0,0,
0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_169 = 803;
-static unsigned char xml_res_file_169[] = {
+static size_t xml_res_size_173 = 803;
+static unsigned char xml_res_file_173[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,2,234,73,68,65,84,120,218,125,83,91,72,147,97,24,158,
222,121,26,19,173,169,160,76,80,196,67,36,36,68,132,199,5,221,85,224,109,
@@ -16880,8 +17002,8 @@ static unsigned char xml_res_file_169[] = {
179,217,225,154,232,104,249,79,110,216,23,154,137,154,77,210,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_170 = 759;
-static unsigned char xml_res_file_170[] = {
+static size_t xml_res_size_174 = 759;
+static unsigned char xml_res_file_174[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -16920,8 +17042,8 @@ static unsigned char xml_res_file_170[] = {
214,58,248,11,48,63,32,228,198,114,139,82,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_171 = 3321;
-static unsigned char xml_res_file_171[] = {
+static size_t xml_res_size_175 = 3321;
+static unsigned char xml_res_file_175[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -17085,8 +17207,8 @@ static unsigned char xml_res_file_171[] = {
200,252,53,0,4,47,133,233,161,207,37,213,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_172 = 550;
-static unsigned char xml_res_file_172[] = {
+static size_t xml_res_size_176 = 550;
+static unsigned char xml_res_file_176[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,25,116,69,88,116,
@@ -17114,8 +17236,8 @@ static unsigned char xml_res_file_172[] = {
177,170,33,185,119,40,226,19,126,64,250,173,185,253,25,215,37,192,28,248,
250,7,244,95,147,93,241,192,85,97,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_173 = 604;
-static unsigned char xml_res_file_173[] = {
+static size_t xml_res_size_177 = 604;
+static unsigned char xml_res_file_177[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,13,215,0,
@@ -17146,8 +17268,8 @@ static unsigned char xml_res_file_173[] = {
229,181,21,29,145,230,247,78,52,119,171,159,180,205,89,253,13,5,251,163,
198,168,104,252,6,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_174 = 721;
-static unsigned char xml_res_file_174[] = {
+static size_t xml_res_size_178 = 721;
+static unsigned char xml_res_file_178[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,3,0,0,
0,40,45,15,83,0,0,0,9,112,72,89,115,0,0,6,236,0,0,6,236,1,30,117,56,53,
0,0,0,7,116,73,77,69,7,215,12,28,16,47,45,87,53,68,121,0,0,1,125,80,76,
@@ -17183,8 +17305,8 @@ static unsigned char xml_res_file_174[] = {
70,56,204,32,203,69,150,23,201,161,172,86,22,226,28,200,46,103,147,16,96,
192,5,0,23,1,31,48,63,73,216,189,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_175 = 634;
-static unsigned char xml_res_file_175[] = {
+static size_t xml_res_size_179 = 634;
+static unsigned char xml_res_file_179[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,
0,0,9,112,72,89,115,0,0,27,175,0,0,27,175,1,94,26,145,28,0,0,0,7,116,73,
@@ -17216,8 +17338,8 @@ static unsigned char xml_res_file_175[] = {
193,206,65,8,120,197,183,4,127,67,143,239,31,213,187,50,57,252,47,27,174,
203,224,54,187,79,117,128,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_176 = 3638;
-static unsigned char xml_res_file_176[] = {
+static size_t xml_res_size_180 = 3638;
+static unsigned char xml_res_file_180[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -17397,8 +17519,8 @@ static unsigned char xml_res_file_176[] = {
251,46,60,212,174,7,255,12,0,109,178,105,24,153,112,202,26,0,0,0,0,73,69,
78,68,174,66,96,130};
-static size_t xml_res_size_177 = 898;
-static unsigned char xml_res_file_177[] = {
+static size_t xml_res_size_181 = 898;
+static unsigned char xml_res_file_181[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,3,73,73,68,65,84,120,218,133,147,15,76,212,85,28,192,
223,42,34,163,32,28,141,70,39,201,196,200,9,37,29,71,6,3,153,70,40,117,
@@ -17445,8 +17567,8 @@ static unsigned char xml_res_file_177[] = {
23,188,178,208,39,252,23,98,111,36,184,212,235,88,204,0,0,0,0,73,69,78,
68,174,66,96,130};
-static size_t xml_res_size_178 = 3589;
-static unsigned char xml_res_file_178[] = {
+static size_t xml_res_size_182 = 3589;
+static unsigned char xml_res_file_182[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -17623,8 +17745,8 @@ static unsigned char xml_res_file_178[] = {
171,48,25,118,173,1,16,130,255,6,0,37,40,77,179,16,173,251,96,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_179 = 3661;
-static unsigned char xml_res_file_179[] = {
+static size_t xml_res_size_183 = 3661;
+static unsigned char xml_res_file_183[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -17805,8 +17927,8 @@ static unsigned char xml_res_file_179[] = {
113,47,166,68,113,14,143,65,8,254,29,0,250,249,144,17,223,227,177,29,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_180 = 416;
-static unsigned char xml_res_file_180[] = {
+static size_t xml_res_size_184 = 416;
+static unsigned char xml_res_file_184[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,1,103,73,68,65,84,120,218,99,96,24,172,192,19,136,31,
3,113,9,16,151,2,241,83,32,246,33,197,0,144,230,207,64,204,8,197,32,246,
@@ -17828,8 +17950,8 @@ static unsigned char xml_res_file_180[] = {
5,24,136,47,128,129,24,73,180,1,157,175,50,80,162,145,36,0,243,10,177,154,
1,197,12,167,40,229,119,150,173,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_181 = 418;
-static unsigned char xml_res_file_181[] = {
+static size_t xml_res_size_185 = 418;
+static unsigned char xml_res_file_185[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,1,105,73,68,65,84,120,218,99,96,24,172,192,19,136,31,
3,113,9,16,151,2,241,83,32,246,33,197,0,144,230,207,64,204,8,197,32,246,
@@ -17851,8 +17973,8 @@ static unsigned char xml_res_file_181[] = {
84,52,30,2,26,2,162,201,202,65,200,9,137,88,61,0,166,250,162,56,97,21,12,
77,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_182 = 411;
-static unsigned char xml_res_file_182[] = {
+static size_t xml_res_size_186 = 411;
+static unsigned char xml_res_file_186[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,1,98,73,68,65,84,120,218,99,96,24,172,192,19,136,31,
3,113,9,16,151,2,241,83,32,246,33,197,0,144,230,207,64,204,8,197,32,246,
@@ -17874,8 +17996,8 @@ static unsigned char xml_res_file_182[] = {
1,189,76,137,255,250,217,18,24,1,7,0,92,33,145,101,187,113,10,195,0,0,0,
0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_183 = 854;
-static unsigned char xml_res_file_183[] = {
+static size_t xml_res_size_187 = 854;
+static unsigned char xml_res_file_187[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,3,29,73,68,65,84,120,218,141,147,93,72,147,81,24,199,
189,12,52,44,112,78,221,92,211,173,77,87,126,244,165,21,137,218,7,209,136,
@@ -17919,8 +18041,8 @@ static unsigned char xml_res_file_183[] = {
25,233,236,106,78,147,170,152,150,73,98,139,255,0,210,253,89,143,10,247,
12,107,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_184 = 821;
-static unsigned char xml_res_file_184[] = {
+static size_t xml_res_size_188 = 821;
+static unsigned char xml_res_file_188[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,2,252,73,68,65,84,120,218,141,147,109,72,83,97,20,199,
253,174,180,32,117,97,95,202,233,102,33,22,6,77,44,34,2,43,205,200,44,163,
@@ -17962,8 +18084,8 @@ static unsigned char xml_res_file_184[] = {
110,51,94,186,212,118,209,104,140,58,201,173,74,45,209,168,21,237,47,21,
167,109,111,34,144,29,1,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_185 = 806;
-static unsigned char xml_res_file_185[] = {
+static size_t xml_res_size_189 = 806;
+static unsigned char xml_res_file_189[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,2,237,73,68,65,84,120,218,141,146,75,76,19,81,20,134,
89,243,72,35,1,74,10,155,42,148,38,40,186,99,3,43,54,184,193,8,86,118,10,
@@ -18004,8 +18126,8 @@ static unsigned char xml_res_file_185[] = {
231,246,145,145,5,155,205,54,91,81,81,161,87,243,127,1,102,233,136,211,
176,128,135,51,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_186 = 969;
-static unsigned char xml_res_file_186[] = {
+static size_t xml_res_size_190 = 969;
+static unsigned char xml_res_file_190[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,10,240,0,
@@ -18054,8 +18176,8 @@ static unsigned char xml_res_file_186[] = {
95,84,190,255,244,227,85,184,112,28,65,252,15,127,1,38,45,76,178,153,198,
223,212,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_187 = 894;
-static unsigned char xml_res_file_187[] = {
+static size_t xml_res_size_191 = 894;
+static unsigned char xml_res_file_191[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,42,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,70,114,32,57,32,74,97,110,32,50,48,48,52,32,48,48,58,49,
@@ -18100,8 +18222,8 @@ static unsigned char xml_res_file_187[] = {
0,199,113,239,254,247,7,103,216,119,56,78,44,233,53,64,55,155,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_188 = 589;
-static unsigned char xml_res_file_188[] = {
+static size_t xml_res_size_192 = 589;
+static unsigned char xml_res_file_192[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,43,116,69,88,116,67,114,101,97,116,105,111,110,32,
84,105,109,101,0,77,111,32,49,55,32,70,101,98,32,50,48,48,51,32,49,56,58,
@@ -18131,8 +18253,8 @@ static unsigned char xml_res_file_188[] = {
249,27,230,97,254,125,162,129,181,239,131,254,23,124,0,39,57,137,112,18,
125,249,136,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_189 = 602;
-static unsigned char xml_res_file_189[] = {
+static size_t xml_res_size_193 = 602;
+static unsigned char xml_res_file_193[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,
72,89,115,0,0,1,187,0,0,1,187,1,58,236,227,226,0,0,0,25,116,69,88,116,83,
@@ -18163,8 +18285,8 @@ static unsigned char xml_res_file_189[] = {
159,0,46,252,187,16,7,128,0,248,0,142,230,220,39,162,0,0,254,2,173,12,111,
120,140,61,160,217,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_190 = 3618;
-static unsigned char xml_res_file_190[] = {
+static size_t xml_res_size_194 = 3618;
+static unsigned char xml_res_file_194[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,
0,0,10,79,105,67,67,80,80,104,111,116,111,115,104,111,112,32,73,67,67,32,
@@ -18342,8 +18464,8 @@ static unsigned char xml_res_file_190[] = {
205,83,169,55,40,20,217,184,61,145,157,41,92,51,143,169,133,229,220,127,
6,0,96,206,107,68,194,186,229,33,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_191 = 502;
-static unsigned char xml_res_file_191[] = {
+static size_t xml_res_size_195 = 502;
+static unsigned char xml_res_file_195[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,18,0,
@@ -18369,8 +18491,8 @@ static unsigned char xml_res_file_191[] = {
226,219,77,202,146,80,235,67,191,178,206,158,158,181,247,215,159,0,0,0,
0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_192 = 485;
-static unsigned char xml_res_file_192[] = {
+static size_t xml_res_size_196 = 485;
+static unsigned char xml_res_file_196[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,18,0,
@@ -18395,8 +18517,8 @@ static unsigned char xml_res_file_192[] = {
30,167,82,181,147,124,190,174,55,26,53,127,240,13,44,239,164,46,170,244,
5,121,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_193 = 401;
-static unsigned char xml_res_file_193[] = {
+static size_t xml_res_size_197 = 401;
+static unsigned char xml_res_file_197[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -18417,8 +18539,8 @@ static unsigned char xml_res_file_193[] = {
234,207,102,55,218,253,14,240,9,98,242,76,49,228,70,246,254,0,0,0,0,73,
69,78,68,174,66,96,130};
-static size_t xml_res_size_194 = 3820;
-static unsigned char xml_res_file_194[] = {
+static size_t xml_res_size_198 = 3820;
+static unsigned char xml_res_file_198[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
89,115,0,0,5,49,0,0,5,49,1,183,237,40,82,0,0,0,25,116,69,88,116,83,111,
@@ -18607,8 +18729,8 @@ static unsigned char xml_res_file_194[] = {
238,241,119,88,2,52,46,221,184,132,227,26,240,150,220,93,64,173,228,216,
255,13,214,124,188,157,10,82,15,170,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_195 = 2893;
-static unsigned char xml_res_file_195[] = {
+static size_t xml_res_size_199 = 2893;
+static unsigned char xml_res_file_199[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,
0,0,9,112,72,89,115,0,0,27,175,0,0,27,175,1,94,26,145,28,0,0,0,7,116,73,
@@ -18750,8 +18872,8 @@ static unsigned char xml_res_file_195[] = {
81,252,159,217,191,0,127,176,247,110,53,31,71,140,0,0,0,0,73,69,78,68,174,
66,96,130};
-static size_t xml_res_size_196 = 2675;
-static unsigned char xml_res_file_196[] = {
+static size_t xml_res_size_200 = 2675;
+static unsigned char xml_res_file_200[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
89,115,0,0,5,49,0,0,5,49,1,183,237,40,82,0,0,0,25,116,69,88,116,83,111,
@@ -18883,8 +19005,8 @@ static unsigned char xml_res_file_196[] = {
254,196,96,31,177,223,179,142,244,242,132,63,152,95,34,255,5,180,137,28,
120,253,62,112,13,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_197 = 2741;
-static unsigned char xml_res_file_197[] = {
+static size_t xml_res_size_201 = 2741;
+static unsigned char xml_res_file_201[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
89,115,0,0,5,49,0,0,5,49,1,183,237,40,82,0,0,0,25,116,69,88,116,83,111,
@@ -19019,8 +19141,8 @@ static unsigned char xml_res_file_197[] = {
157,15,116,62,112,91,133,124,175,235,139,16,40,188,54,159,49,150,7,250,
63,122,44,83,66,223,104,136,99,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_198 = 4999;
-static unsigned char xml_res_file_198[] = {
+static size_t xml_res_size_202 = 4999;
+static unsigned char xml_res_file_202[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,
89,115,0,0,5,49,0,0,5,49,1,183,237,40,82,0,0,0,25,116,69,88,116,83,111,
@@ -19269,8 +19391,8 @@ static unsigned char xml_res_file_198[] = {
245,232,201,92,94,127,154,246,255,0,250,150,127,45,151,155,240,89,0,0,0,
0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_199 = 2754;
-static unsigned char xml_res_file_199[] = {
+static size_t xml_res_size_203 = 2754;
+static unsigned char xml_res_file_203[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,48,0,0,0,48,8,6,0,0,
0,87,2,249,135,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,68,
0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,5,49,0,0,5,
@@ -19408,8 +19530,8 @@ static unsigned char xml_res_file_199[] = {
244,163,160,220,147,123,114,79,238,201,255,187,252,8,83,140,247,188,84,
157,89,126,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_200 = 679;
-static unsigned char xml_res_file_200[] = {
+static size_t xml_res_size_204 = 679;
+static unsigned char xml_res_file_204[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,18,0,0,0,18,8,6,0,0,
0,86,206,142,87,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -19444,8 +19566,8 @@ static unsigned char xml_res_file_200[] = {
243,111,228,39,174,154,235,43,132,43,14,142,0,0,0,0,73,69,78,68,174,66,
96,130};
-static size_t xml_res_size_201 = 663;
-static unsigned char xml_res_file_201[] = {
+static size_t xml_res_size_205 = 663;
+static unsigned char xml_res_file_205[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,18,0,0,0,18,8,6,0,0,
0,86,206,142,87,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -19479,8 +19601,8 @@ static unsigned char xml_res_file_201[] = {
127,35,63,1,75,167,234,160,65,174,56,118,0,0,0,0,73,69,78,68,174,66,96,
130};
-static size_t xml_res_size_202 = 553;
-static unsigned char xml_res_file_202[] = {
+static size_t xml_res_size_206 = 553;
+static unsigned char xml_res_file_206[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,14,0,0,0,14,8,6,0,0,
0,31,72,45,209,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,68,
0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,
@@ -19508,8 +19630,8 @@ static unsigned char xml_res_file_202[] = {
115,168,202,29,157,158,53,69,79,75,206,147,235,254,127,149,252,23,161,121,
197,107,235,253,133,138,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_203 = 551;
-static unsigned char xml_res_file_203[] = {
+static size_t xml_res_size_207 = 551;
+static unsigned char xml_res_file_207[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,14,0,0,0,14,8,6,0,0,
0,31,72,45,209,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,68,
0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,
@@ -19537,8 +19659,8 @@ static unsigned char xml_res_file_203[] = {
215,179,182,24,169,247,108,38,50,47,42,249,95,253,76,222,210,180,178,153,
82,0,0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_204 = 592;
-static unsigned char xml_res_file_204[] = {
+static size_t xml_res_size_208 = 592;
+static unsigned char xml_res_file_208[] = {
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,
0,31,243,255,97,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,6,98,75,71,
68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,11,19,0,
@@ -19568,8 +19690,8 @@ static unsigned char xml_res_file_204[] = {
213,253,210,63,29,211,209,207,233,232,55,141,13,213,63,55,216,169,183,0,
0,0,0,73,69,78,68,174,66,96,130};
-static size_t xml_res_size_205 = 19937;
-static unsigned char xml_res_file_205[] = {
+static size_t xml_res_size_209 = 20277;
+static unsigned char xml_res_file_209[] = {
60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,
110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101,
115,111,117,114,99,101,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
@@ -19698,867 +19820,884 @@ static unsigned char xml_res_file_205[] = {
114,95,100,101,118,101,108,111,112,109,101,110,116,46,112,110,103,60,47,
111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
-103,108,111,98,97,108,115,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,99,117,98,101,95,103,114,101,101,110,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,110,97,109,101,115,112,97,99,101,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,110,97,109,101,115,112,97,99,
-101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
-32,110,97,109,101,61,34,115,116,114,117,99,116,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,98,117,116,95,103,114,101,
-101,110,95,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
-97,112,34,32,110,97,109,101,61,34,98,111,111,107,109,97,114,107,95,98,108,
-117,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,109,101,100,105,97,95,115,116,111,112,46,112,110,103,60,47,111,98,
-106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
-61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,119,111,
-114,107,115,112,97,99,101,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,102,111,108,100,101,114,95,104,111,109,101,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,102,111,108,100,101,114,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,102,111,108,100,101,114,46,112,
+97,99,116,105,118,101,95,112,114,111,106,101,99,116,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,102,111,108,100,101,
+114,95,111,114,97,110,103,101,46,112,110,103,60,47,111,98,106,101,99,116,
+62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,103,108,111,98,97,108,
+115,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
+95,99,117,98,101,95,103,114,101,101,110,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,97,109,
+101,115,112,97,99,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,110,97,109,101,115,112,97,99,101,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,115,116,114,117,99,116,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,98,117,116,95,103,114,101,101,110,95,115,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,99,114,111,115,115,34,62,114,101,115,111,117,114,99,101,115,46,
-99,112,112,36,114,101,115,95,99,114,111,115,115,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,
-111,99,117,109,101,110,116,95,100,101,108,101,116,101,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,99,108,101,97,110,
-46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,98,117,105,108,100,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,114,101,98,117,105,108,100,46,112,110,
+101,61,34,98,111,111,107,109,97,114,107,95,98,108,117,101,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,101,100,
+105,97,95,115,116,111,112,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,119,111,114,107,115,112,97,
+99,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
+115,95,102,111,108,100,101,114,95,104,111,109,101,46,112,110,103,60,47,
+111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
+102,111,108,100,101,114,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,102,111,108,100,101,114,46,112,110,103,60,47,
+111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
+99,114,111,115,115,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,99,114,111,115,115,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,111,99,117,
+109,101,110,116,95,100,101,108,101,116,101,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,99,108,101,97,110,46,112,110,
103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,102,105,110,100,95,114,101,115,117,108,116,115,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,
-105,110,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+101,61,34,98,117,105,108,100,34,62,114,101,115,111,117,114,99,101,115,46,
+99,112,112,36,114,101,115,95,114,101,98,117,105,108,100,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,102,105,110,100,95,114,101,115,117,108,116,115,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,105,
+110,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,99,99,95,104,101,108,112,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,104,101,108,
+112,95,98,114,111,119,115,101,114,46,112,110,103,60,47,111,98,106,101,99,
+116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,108,97,115,115,
+95,118,105,101,119,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,99,104,97,114,116,95,111,114,103,97,110,105,115,97,116,
+105,111,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
-112,34,32,110,97,109,101,61,34,99,108,97,115,115,95,118,105,101,119,34,
-62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,99,
-104,97,114,116,95,111,114,103,97,110,105,115,97,116,105,111,110,46,112,
-110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
-32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,112,97,103,101,95,111,112,101,110,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,102,111,108,100,101,114,46,112,
+112,34,32,110,97,109,101,61,34,112,97,103,101,95,111,112,101,110,34,62,
+114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,102,
+111,108,100,101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,119,111,114,100,95,119,114,97,112,
+34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
+119,114,97,112,95,97,114,114,111,119,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,117,116,112,
+117,116,95,119,105,110,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,99,111,109,109,97,110,100,112,114,111,109,112,116,
+46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,100,101,98,117,103,95,119,105,110,100,111,119,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,116,114,
+97,99,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
+112,34,32,110,97,109,101,61,34,115,121,109,95,119,105,122,95,98,109,112,
+34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
+115,121,109,95,119,105,122,95,98,109,112,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,
+117,103,103,101,114,95,116,97,98,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,100,101,98,117,103,95,119,105,110,100,111,
+119,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,104,101,108,112,95,105,99,111,110,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,104,101,
+108,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,115,118,110,95,105,110,102,111,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,104,101,108,
+112,95,97,98,111,117,116,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,115,118,110,95,114,101,102,
+114,101,115,104,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,114,101,108,111,97,100,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,118,110,
+95,114,101,112,111,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,115,118,110,95,114,101,112,111,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,
+118,110,95,99,104,101,99,107,111,117,116,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,115,118,110,95,99,104,101,99,
+107,111,117,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,115,118,110,95,115,101,116,116,105,
+110,103,115,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,99,111,110,102,105,103,117,114,101,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,
+111,99,117,109,101,110,116,95,114,111,111,116,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,100,114,105,118,101,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,119,111,114,100,95,119,114,97,112,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,119,114,97,112,95,97,114,114,
-111,119,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
-106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
-34,32,110,97,109,101,61,34,111,117,116,112,117,116,95,119,105,110,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,99,111,
-109,109,97,110,100,112,114,111,109,112,116,46,112,110,103,60,47,111,98,
-106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
-61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,
-98,117,103,95,119,105,110,100,111,119,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,116,114,97,99,101,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,115,121,109,95,119,105,122,95,98,109,112,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,115,121,109,95,119,105,122,
-95,98,109,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+101,61,34,108,111,99,97,108,115,95,118,105,101,119,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,108,111,99,97,108,115,
+95,118,105,101,119,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,119,97,116,99,104,101,115,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,119,97,116,
+99,104,101,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
-97,112,34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,116,
-97,98,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,100,101,98,117,103,95,119,105,110,100,111,119,115,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,104,101,108,112,95,105,99,111,110,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,104,101,108,112,46,112,110,103,
+97,112,34,32,110,97,109,101,61,34,102,114,97,109,101,115,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,119,105,110,
+100,111,119,95,100,117,112,108,105,99,97,116,101,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,114,
+101,97,107,112,111,105,110,116,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,98,114,101,97,107,112,111,105,110,116,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,110,101,119,95,112,108,117,103,105,110,95,119,105,122,
+95,98,109,112,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,112,117,122,122,108,101,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,113,117,101,
+115,116,105,111,110,95,97,110,100,95,97,110,115,119,101,114,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,113,117,101,
+115,116,105,111,110,95,97,110,100,95,97,110,115,119,101,114,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,99,115,99,111,112,101,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,107,115,116,97,114,115,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,116,104,114,101,97,100,115,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,116,104,114,101,97,100,115,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,115,118,110,95,105,110,102,111,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,104,101,108,112,95,97,98,111,117,116,
+61,34,111,112,101,110,101,100,95,119,105,110,100,111,119,115,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,112,105,
+99,116,117,114,101,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,116,101,120,116,95,111,107,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,112,
+97,103,101,95,103,114,101,101,110,46,112,110,103,60,47,111,98,106,101,99,
+116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,101,119,95,99,
+108,97,115,115,95,116,105,116,108,101,34,62,114,101,115,111,117,114,99,
+101,115,46,99,112,112,36,114,101,115,95,110,101,119,95,99,108,97,115,115,
46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,115,118,110,95,114,101,102,114,101,115,104,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,114,101,108,
-111,97,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
-98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
-112,34,32,110,97,109,101,61,34,115,118,110,95,114,101,112,111,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,115,118,
-110,95,114,101,112,111,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+97,109,101,61,34,119,120,95,112,114,111,106,101,99,116,95,104,101,97,100,
+101,114,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
+115,95,119,120,112,114,111,106,101,99,116,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,108,
+111,117,114,105,115,101,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,112,97,99,107,97,103,101,95,117,116,105,108,105,
+116,105,101,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,99,111,108,108,97,112,115,101,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,99,
+111,108,108,97,112,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,101,120,112,97,110,100,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,101,
+120,112,97,110,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,103,111,104,111,109,101,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,103,111,
+104,111,109,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,112,114,111,106,101,99,116,95,99,
+111,110,102,108,105,99,116,34,62,114,101,115,111,117,114,99,101,115,46,
+99,112,112,36,114,101,115,95,109,101,115,115,97,103,101,98,111,120,95,119,
+97,114,110,105,110,103,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,115,118,110,95,99,104,101,99,
-107,111,117,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,115,118,110,95,99,104,101,99,107,111,117,116,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,115,118,110,95,115,101,116,116,105,110,103,115,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,99,111,110,102,
-105,103,117,114,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+116,109,97,112,34,32,110,97,109,101,61,34,102,105,108,101,115,95,117,110,
+118,101,114,115,105,111,110,101,100,34,62,114,101,115,111,117,114,99,101,
+115,46,99,112,112,36,114,101,115,95,109,101,115,115,97,103,101,98,111,120,
+95,105,110,102,111,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
-109,97,112,34,32,110,97,109,101,61,34,100,111,99,117,109,101,110,116,95,
-114,111,111,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,100,114,105,118,101,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
-119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,108,111,99,97,
-108,115,95,118,105,101,119,34,62,114,101,115,111,117,114,99,101,115,46,
-99,112,112,36,114,101,115,95,108,111,99,97,108,115,95,118,105,101,119,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,119,97,116,99,104,101,115,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,119,97,116,99,104,101,115,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,102,114,97,109,101,115,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,119,105,110,100,111,119,95,100,
-117,112,108,105,99,97,116,101,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,114,101,97,107,112,
-111,105,110,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,98,114,101,97,107,112,111,105,110,116,46,112,110,103,
+109,97,112,34,32,110,97,109,101,61,34,101,114,114,111,114,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,97,105,108,
+95,109,97,114,107,95,105,109,112,111,114,116,97,110,116,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,110,101,119,95,112,108,117,103,105,110,95,119,105,122,95,98,109,112,
-34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
-112,117,122,122,108,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,113,117,101,115,116,105,111,110,
-95,97,110,100,95,97,110,115,119,101,114,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,113,117,101,115,116,105,111,110,
-95,97,110,100,95,97,110,115,119,101,114,46,112,110,103,60,47,111,98,106,
+61,34,116,101,120,116,95,118,105,101,119,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,118,105,101,119,95,116,101,120,
+116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
+101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
+32,110,97,109,101,61,34,101,100,105,116,95,97,100,100,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,101,100,105,116,
+95,97,100,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,101,100,105,116,95,100,101,108,101,116,
+101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
+95,101,100,105,116,95,100,101,108,101,116,101,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,
+114,97,115,101,114,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,101,114,97,115,101,114,46,112,110,103,60,47,111,98,106,
101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,115,99,111,
-112,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,107,115,116,97,114,115,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,104,114,101,97,100,
-115,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,116,104,114,101,97,100,115,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,112,101,110,101,100,
-95,119,105,110,100,111,119,115,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,112,105,99,116,117,114,101,115,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,116,101,120,116,95,111,107,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,112,97,103,101,95,103,114,101,101,110,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,117,114,
+115,111,114,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,99,117,114,115,111,114,46,112,110,103,60,47,111,98,106,101,99,
+116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,111,116,101,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,
+54,95,110,111,116,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,33,45,45,32,81,117,105,99,107,32,70,105,110,100,32,66,97,114,32,
+45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,101,110,99,105,
+108,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
+95,81,117,105,99,107,70,105,110,100,66,97,114,95,112,101,110,99,105,108,
46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,110,101,119,95,99,108,97,115,115,95,116,105,116,108,101,
-34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
-110,101,119,95,99,108,97,115,115,46,112,110,103,60,47,111,98,106,101,99,
-116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
-120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,119,120,95,112,114,
-111,106,101,99,116,95,104,101,97,100,101,114,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,119,120,112,114,111,106,
-101,99,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
-98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
-112,34,32,110,97,109,101,61,34,99,111,108,111,117,114,105,115,101,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,112,
-97,99,107,97,103,101,95,117,116,105,108,105,116,105,101,115,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,99,111,108,108,97,112,115,101,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,99,111,108,108,97,112,115,101,46,
+97,109,101,61,34,112,97,110,101,95,99,108,111,115,101,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,81,117,105,99,107,
+70,105,110,100,66,97,114,95,102,105,108,101,99,108,111,115,101,45,99,101,
+110,116,101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,112,97,110,101,95,99,108,111,115,
+101,95,114,101,100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,81,117,105,99,107,70,105,110,100,66,97,114,95,102,105,
+108,101,99,108,111,115,101,45,99,101,110,116,101,114,45,114,101,100,46,
112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,101,120,112,97,110,100,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,101,120,112,97,110,100,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,103,111,104,111,109,101,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,103,111,104,111,109,101,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,112,114,111,106,101,99,116,95,99,111,110,102,108,105,99,116,34,
+97,109,101,61,34,104,105,103,108,105,103,104,116,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,81,117,105,99,107,70,
+105,110,100,66,97,114,95,105,110,107,116,117,98,101,46,112,110,103,60,47,
+111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
+110,101,120,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,81,117,105,99,107,70,105,110,100,66,97,114,95,110,101,
+120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,112,114,101,118,105,111,117,115,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,81,117,105,99,
+107,70,105,110,100,66,97,114,95,112,114,101,118,105,111,117,115,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,45,45,32,77,105,109,
+101,116,121,112,101,32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,112,97,103,101,95,119,104,105,116,101,95,99,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,101,116,
+121,112,101,95,112,97,103,101,95,119,104,105,116,101,95,99,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,112,97,103,101,95,119,104,105,116,101,95,99,112,108,117,115,112,108,
+117,115,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
+115,95,109,105,109,101,116,121,112,101,95,112,97,103,101,95,119,104,105,
+116,101,95,99,112,108,117,115,112,108,117,115,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,
+97,103,101,95,119,104,105,116,101,95,104,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,
+101,95,112,97,103,101,95,119,104,105,116,101,95,104,46,112,110,103,60,47,
+111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
+112,97,103,101,95,119,104,105,116,101,95,116,101,120,116,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,
+101,116,121,112,101,95,112,97,103,101,95,119,104,105,116,101,95,116,101,
+120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,99,111,109,112,114,101,115,115,101,100,95,102,
+105,108,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,109,105,109,101,116,121,112,101,95,97,112,112,108,105,99,97,
+116,105,111,110,95,120,95,99,111,109,112,114,101,115,115,101,100,95,116,
+97,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,101,120,101,99,117,116,97,98,108,101,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,
+109,101,116,121,112,101,95,97,112,112,108,105,99,97,116,105,111,110,95,
+120,95,109,115,95,100,111,115,95,101,120,101,99,117,116,97,98,108,101,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,102,105,108,101,95,112,104,112,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,
+112,101,95,97,112,112,108,105,99,97,116,105,111,110,95,120,95,112,104,112,
+46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
+99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,115,104,97,114,101,100,95,108,105,98,114,97,114,121,34,
62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,
-101,115,115,97,103,101,98,111,120,95,119,97,114,110,105,110,103,46,112,
+105,109,101,116,121,112,101,95,97,112,112,108,105,99,97,116,105,111,110,
+95,120,95,115,104,97,114,101,100,108,105,98,46,112,110,103,60,47,111,98,
+106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
+61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,105,
+120,109,97,112,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,109,105,109,101,116,121,112,101,95,105,109,97,103,101,95,
+120,95,120,112,105,120,109,97,112,46,112,110,103,60,47,111,98,106,101,99,
+116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,104,101,108,108,
+115,99,114,105,112,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,115,104,101,108,
+108,115,99,114,105,112,116,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,108,101,95,120,109,
+108,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
+95,109,105,109,101,116,121,112,101,95,120,109,108,46,112,110,103,60,47,
+111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
+102,105,108,101,95,104,116,109,108,34,62,114,101,115,111,117,114,99,101,
+115,46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,
+97,112,112,108,105,99,97,116,105,111,110,95,120,95,109,115,119,105,110,
+117,114,108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
+112,34,32,110,97,109,101,61,34,109,97,107,101,102,105,108,101,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,
+109,101,116,121,112,101,95,109,97,107,101,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,111,114,
+109,98,117,105,108,100,101,114,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,102,
+111,114,109,98,117,105,108,100,101,114,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,33,45,45,10,9,9,84,111,111,108,98,97,114,32,98,
+105,116,109,97,112,115,32,40,50,52,120,50,52,41,10,9,45,45,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,113,117,105,99,107,102,105,110,100,
+101,114,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,50,52,95,113,117,105,99,107,102,105,110,100,101,114,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,102,105,108,101,115,95,117,110,118,101,114,115,105,111,110,101,
-100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,109,101,115,115,97,103,101,98,111,120,95,105,110,102,111,46,112,110,
+101,61,34,111,117,116,108,105,110,101,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,116,101,120,116,95,
+116,114,101,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,99,111,110,102,105,103,117,114,101,
+95,101,120,116,95,116,111,111,108,115,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,101,120,116,101,114,
+110,97,108,95,116,111,111,108,115,50,52,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,120,116,
+95,116,111,111,108,95,100,101,102,97,117,108,116,50,52,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,103,101,
+97,114,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,115,116,111,112,95,101,120,116,101,114,
+110,97,108,95,116,111,111,108,50,52,34,62,114,101,115,111,117,114,99,101,
+115,46,99,112,112,36,114,101,115,95,50,52,95,112,114,111,99,101,115,115,
+95,115,116,111,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,102,111,108,100,101,114,50,52,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,
+52,95,102,111,108,100,101,114,50,52,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,102,114,
+101,115,104,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,50,52,95,114,101,102,114,101,115,104,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,114,101,108,111,97,100,50,52,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,50,52,95,114,101,118,101,114,116,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,115,97,118,101,95,97,115,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,115,97,118,101,95,97,
+115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
+101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
+32,110,97,109,101,61,34,99,117,116,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,99,117,116,46,112,110,
103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,101,114,114,111,114,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,109,97,105,108,95,109,97,114,107,95,105,
-109,112,111,114,116,97,110,116,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,101,120,116,95,118,
-105,101,119,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,118,105,101,119,95,116,101,120,116,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,
-100,105,116,95,97,100,100,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,101,100,105,116,95,97,100,100,46,112,110,103,
+101,61,34,99,111,112,121,50,52,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,50,52,95,99,111,112,121,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,101,100,105,116,95,100,101,108,101,116,101,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,101,100,105,116,95,100,
-101,108,101,116,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
-32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
-109,97,112,34,32,110,97,109,101,61,34,101,114,97,115,101,114,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,101,114,
-97,115,101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
-33,45,45,32,81,117,105,99,107,32,70,105,110,100,32,66,97,114,32,45,45,62,
-10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
-105,116,109,97,112,34,32,110,97,109,101,61,34,112,101,110,99,105,108,34,
-62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,81,
-117,105,99,107,70,105,110,100,66,97,114,95,112,101,110,99,105,108,46,112,
-110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
-32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,112,97,110,101,95,99,108,111,115,101,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,81,117,105,99,107,70,105,
-110,100,66,97,114,95,102,105,108,101,99,108,111,115,101,45,99,101,110,116,
-101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
-106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
-34,32,110,97,109,101,61,34,112,97,110,101,95,99,108,111,115,101,95,114,
-101,100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,81,117,105,99,107,70,105,110,100,66,97,114,95,102,105,108,101,99,
-108,111,115,101,45,99,101,110,116,101,114,45,114,101,100,46,112,110,103,
+61,34,112,97,115,116,101,50,52,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,50,52,95,112,97,115,116,101,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,117,110,100,111,50,52,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,50,52,95,117,110,100,111,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,104,105,103,108,105,103,104,116,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,81,117,105,99,107,70,105,110,100,
-66,97,114,95,105,110,107,116,117,98,101,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,101,120,
-116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,81,117,105,99,107,70,105,110,100,66,97,114,95,110,101,120,116,46,112,
-110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
-32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,112,114,101,118,105,111,117,115,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,81,117,105,99,107,70,105,110,
-100,66,97,114,95,112,114,101,118,105,111,117,115,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,33,45,45,32,77,105,109,101,116,121,112,
-101,32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
-61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,103,
-101,95,119,104,105,116,101,95,99,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,112,
-97,103,101,95,119,104,105,116,101,95,99,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,103,
-101,95,119,104,105,116,101,95,99,112,108,117,115,112,108,117,115,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,
-105,109,101,116,121,112,101,95,112,97,103,101,95,119,104,105,116,101,95,
-99,112,108,117,115,112,108,117,115,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
-119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,103,101,
-95,119,104,105,116,101,95,104,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,112,
-97,103,101,95,119,104,105,116,101,95,104,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,103,
-101,95,119,104,105,116,101,95,116,101,120,116,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,
-112,101,95,112,97,103,101,95,119,104,105,116,101,95,116,101,120,116,46,
+61,34,114,101,100,111,50,52,34,62,114,101,115,111,117,114,99,101,115,46,
+99,112,112,36,114,101,115,95,50,52,95,114,101,100,111,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,98,111,111,107,109,97,114,107,50,52,34,62,114,101,115,111,117,114,99,
+101,115,46,99,112,112,36,114,101,115,95,50,52,95,98,111,111,107,109,97,
+114,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,99,108,97,115,115,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,99,108,97,115,
+115,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
+112,34,32,110,97,109,101,61,34,112,97,103,101,95,99,108,111,115,101,50,
+52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
+95,50,52,95,102,105,108,101,99,108,111,115,101,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,
+97,103,101,95,110,101,119,50,52,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,50,52,95,102,105,108,101,110,101,119,46,
112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,99,111,109,112,114,101,115,115,101,100,95,102,105,108,
-101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,109,105,109,101,116,121,112,101,95,97,112,112,108,105,99,97,116,105,
-111,110,95,120,95,99,111,109,112,114,101,115,115,101,100,95,116,97,114,
-46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,101,120,101,99,117,116,97,98,108,101,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,101,
-116,121,112,101,95,97,112,112,108,105,99,97,116,105,111,110,95,120,95,109,
-115,95,100,111,115,95,101,120,101,99,117,116,97,98,108,101,46,112,110,103,
+97,109,101,61,34,115,97,118,101,95,97,108,108,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,115,97,118,
+101,95,97,108,108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
+60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,112,97,103,101,95,115,97,118,101,
+50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
+115,95,50,52,95,112,97,103,101,95,115,97,118,101,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,
+101,119,95,119,120,95,112,114,111,106,101,99,116,50,52,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,119,120,
+50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,112,108,117,103,105,110,50,52,34,62,114,101,
+115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,112,
+108,117,103,105,110,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,100,101,95,102,111,
+114,109,97,116,95,111,112,116,105,111,110,115,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,102,111,114,
+109,97,116,116,101,114,95,115,101,116,116,105,110,103,115,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,102,105,108,101,95,112,104,112,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,
-97,112,112,108,105,99,97,116,105,111,110,95,120,95,112,104,112,46,112,110,
+61,34,99,111,100,101,95,102,111,114,109,97,116,50,52,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,102,111,
+114,109,97,116,116,101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,105,108,100,95,97,
+99,116,105,118,101,95,112,114,111,106,101,99,116,50,52,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,99,111,
+109,112,102,105,108,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,115,116,111,112,95,98,117,105,
+108,100,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,50,52,95,112,114,111,99,101,115,115,95,115,116,111,112,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,101,120,101,99,117,116,101,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,103,101,97,
+114,95,114,117,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,115,116,111,112,95,101,120,101,99,
+117,116,101,100,95,112,114,111,103,114,97,109,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,103,101,97,
+114,95,115,116,111,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,99,108,101,97,110,50,52,34,62,
+114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,
+95,101,109,112,116,121,116,114,97,115,104,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,110,
+100,95,105,110,95,102,105,108,101,115,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,102,105,110,100,46,
+112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
+116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
+97,109,101,61,34,102,105,110,100,95,97,110,100,95,114,101,112,108,97,99,
+101,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,50,52,95,115,101,97,114,99,104,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,112,101,
+110,95,114,101,115,111,117,114,99,101,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,111,112,101,110,95,
+114,101,115,111,117,114,99,101,46,112,110,103,60,47,111,98,106,101,99,116,
+62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,112,101,110,95,116,
+121,112,101,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,50,52,95,111,112,101,110,95,116,121,112,101,46,112,110,
103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,115,104,97,114,101,100,95,108,105,98,114,97,114,121,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,
-109,101,116,121,112,101,95,97,112,112,108,105,99,97,116,105,111,110,95,
-120,95,115,104,97,114,101,100,108,105,98,46,112,110,103,60,47,111,98,106,
+101,61,34,97,114,114,111,119,95,110,101,120,116,50,52,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,110,101,
+120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,97,114,114,111,119,95,98,97,99,107,50,52,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,
+52,95,112,114,101,118,105,111,117,115,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,
+103,103,101,114,95,115,116,97,114,116,50,52,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,100,101,98,117,103,
+103,101,114,95,115,116,97,114,116,46,112,110,103,60,47,111,98,106,101,99,
+116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,103,
+103,101,114,95,114,101,115,116,97,114,116,50,52,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,100,101,98,117,
+103,103,101,114,95,114,101,115,116,97,114,116,46,112,110,103,60,47,111,
+98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,
+101,98,117,103,103,101,114,95,115,116,111,112,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,100,101,98,
+117,103,103,101,114,95,115,116,111,112,46,112,110,103,60,47,111,98,106,
101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,105,120,
-109,97,112,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,109,105,109,101,116,121,112,101,95,105,109,97,103,101,95,120,
-95,120,112,105,120,109,97,112,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,104,101,108,108,115,
-99,114,105,112,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,109,105,109,101,116,121,112,101,95,115,104,101,108,108,
-115,99,114,105,112,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,102,105,108,101,95,120,109,108,
-34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
-109,105,109,101,116,121,112,101,95,120,109,108,46,112,110,103,60,47,111,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,
+117,103,103,101,114,95,112,97,117,115,101,50,52,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,100,101,98,117,
+103,103,101,114,95,112,97,117,115,101,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,
+103,103,101,114,95,115,116,101,112,105,110,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,100,101,98,
+117,103,103,101,114,95,115,116,101,112,105,110,46,112,110,103,60,47,111,
98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,
-105,108,101,95,104,116,109,108,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,97,112,
-112,108,105,99,97,116,105,111,110,95,120,95,109,115,119,105,110,117,114,
-108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
-32,110,97,109,101,61,34,109,97,107,101,102,105,108,101,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,105,109,101,
-116,121,112,101,95,109,97,107,101,46,112,110,103,60,47,111,98,106,101,99,
-116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
-120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,111,114,109,98,
-117,105,108,100,101,114,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,109,105,109,101,116,121,112,101,95,102,111,114,
-109,98,117,105,108,100,101,114,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,33,45,45,10,9,9,84,111,111,108,98,97,114,32,98,105,116,109,
-97,112,115,32,40,50,52,120,50,52,41,10,9,45,45,62,10,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
-32,110,97,109,101,61,34,113,117,105,99,107,102,105,110,100,101,114,50,52,
+115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,
+101,98,117,103,103,101,114,95,115,116,101,112,111,117,116,50,52,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,
+100,101,98,117,103,103,101,114,95,115,116,101,112,111,117,116,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,100,101,98,117,103,103,101,114,95,110,101,120,116,50,52,34,62,
+114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,
+95,100,101,98,117,103,103,101,114,95,110,101,120,116,46,112,110,103,60,
+47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
+97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
+34,99,115,99,111,112,101,95,102,105,110,100,95,115,121,109,98,111,108,50,
+52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
+95,50,52,95,102,117,110,99,95,102,105,110,100,50,52,46,112,110,103,60,47,
+111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
+115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
+99,115,99,111,112,101,95,102,117,110,99,95,99,97,108,108,101,100,50,52,
34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
-50,52,95,113,117,105,99,107,102,105,110,100,101,114,46,112,110,103,60,47,
+50,52,95,102,117,110,99,95,99,97,108,108,105,110,103,50,52,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,99,115,99,111,112,101,95,102,117,110,99,95,99,97,108,108,105,110,
+103,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,50,52,95,102,117,110,99,95,99,97,108,108,101,100,50,52,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,114,101,102,95,97,110,97,108,121,122,101,114,50,52,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,
+114,101,102,95,97,110,97,108,121,122,101,114,50,52,46,112,110,103,60,47,
111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
-111,117,116,108,105,110,101,50,52,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,50,52,95,116,101,120,116,95,116,114,
-101,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+114,101,102,95,97,110,97,108,121,122,101,114,95,115,101,116,116,105,110,
+103,115,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,50,52,95,114,101,102,95,97,110,97,121,108,122,101,114,95,
+115,101,116,116,105,110,103,115,50,52,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,114,114,111,
+119,95,103,114,101,101,110,95,114,105,103,104,116,50,52,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,97,114,
+114,111,119,95,103,114,101,101,110,95,114,105,103,104,116,50,52,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,104,105,103,104,108,105,103,104,116,50,52,34,62,114,101,115,111,
+117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,104,105,103,
+104,108,105,103,104,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
+116,109,97,112,34,32,110,97,109,101,61,34,114,117,110,95,117,110,105,116,
+95,116,101,115,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,50,52,95,114,117,110,95,117,110,105,116,95,116,
+101,115,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,
+45,45,10,9,9,84,111,111,108,98,97,114,32,98,105,116,109,97,112,115,32,40,
+49,54,120,49,54,41,10,9,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,113,117,105,99,107,102,105,110,100,101,114,49,54,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,113,117,
+105,99,107,102,105,110,100,101,114,46,112,110,103,60,47,111,98,106,101,
+99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
+119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,117,116,108,
+105,110,101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,49,54,95,116,101,120,116,95,116,114,101,101,46,112,110,
+103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
+99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,99,111,110,102,105,103,117,114,101,95,101,120,116,95,116,111,
+111,108,115,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,49,54,95,101,120,116,101,114,110,97,108,95,116,111,111,
+108,115,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,101,120,116,95,116,111,111,108,95,100,
+101,102,97,117,108,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,
+99,112,112,36,114,101,115,95,49,54,95,103,101,97,114,49,54,46,112,110,103,
+60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
+108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
+61,34,115,116,111,112,95,101,120,116,101,114,110,97,108,95,116,111,111,
+108,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,49,54,95,112,114,111,99,101,115,115,95,115,116,111,112,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
+32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
+101,61,34,102,111,108,100,101,114,49,54,34,62,114,101,115,111,117,114,99,
+101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,111,108,100,101,114,
+50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
-34,32,110,97,109,101,61,34,99,111,110,102,105,103,117,114,101,95,101,120,
-116,95,116,111,111,108,115,50,52,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,50,52,95,101,120,116,101,114,110,97,108,
-95,116,111,111,108,115,50,52,46,112,110,103,60,47,111,98,106,101,99,116,
+34,32,110,97,109,101,61,34,114,101,102,114,101,115,104,49,54,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,
+114,101,102,114,101,115,104,46,112,110,103,60,47,111,98,106,101,99,116,
62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,120,116,95,116,111,
-111,108,95,100,101,102,97,117,108,116,50,52,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,103,101,97,114,50,52,
-46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,115,116,111,112,95,101,120,116,101,114,110,97,108,95,116,
-111,111,108,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,50,52,95,112,114,111,99,101,115,115,95,115,116,111,112,
-46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,102,111,108,100,101,114,50,52,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,102,111,108,100,
-101,114,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
-97,112,34,32,110,97,109,101,61,34,114,101,102,114,101,115,104,50,52,34,
-62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,
-52,95,114,101,102,114,101,115,104,46,112,110,103,60,47,111,98,106,101,99,
-116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
-120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,108,111,97,
-100,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,50,52,95,114,101,118,101,114,116,46,112,110,103,60,47,111,98,
-106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
-61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,97,118,
-101,95,97,115,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,115,97,118,101,95,97,115,46,112,110,103,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,108,111,97,100,
+49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
+115,95,49,54,95,114,101,118,101,114,116,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
+34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,97,118,
+101,95,97,115,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,115,97,118,101,95,97,115,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,99,117,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,99,117,116,46,112,110,103,60,47,111,98,106,
+61,34,99,117,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,99,117,116,46,112,110,103,60,47,111,98,106,
101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,112,
-121,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,50,52,95,99,111,112,121,46,112,110,103,60,47,111,98,106,101,
+121,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,49,54,95,99,111,112,121,46,112,110,103,60,47,111,98,106,101,
99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,115,116,
-101,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,50,52,95,112,97,115,116,101,46,112,110,103,60,47,111,98,106,
+101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,49,54,95,112,97,115,116,101,46,112,110,103,60,47,111,98,106,
101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,117,110,100,
-111,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,50,52,95,117,110,100,111,46,112,110,103,60,47,111,98,106,101,
+111,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,49,54,95,117,110,100,111,46,112,110,103,60,47,111,98,106,101,
99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,100,111,
-50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,50,52,95,114,101,100,111,46,112,110,103,60,47,111,98,106,101,99,
+49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
+115,95,49,54,95,114,101,100,111,46,112,110,103,60,47,111,98,106,101,99,
116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,98,111,111,107,109,
-97,114,107,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,50,52,95,98,111,111,107,109,97,114,107,46,112,110,103,
+97,114,107,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,49,54,95,98,111,111,107,109,97,114,107,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,99,108,97,115,115,50,52,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,50,52,95,99,108,97,115,115,50,52,46,112,
+61,34,99,108,97,115,115,49,54,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,49,54,95,99,108,97,115,115,50,52,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,112,97,103,101,95,99,108,111,115,101,50,52,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,102,105,
+101,61,34,112,97,103,101,95,99,108,111,115,101,49,54,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,105,
108,101,99,108,111,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,
10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
105,116,109,97,112,34,32,110,97,109,101,61,34,112,97,103,101,95,110,101,
-119,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,50,52,95,102,105,108,101,110,101,119,46,112,110,103,60,47,111,
+119,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,49,54,95,102,105,108,101,110,101,119,46,112,110,103,60,47,111,
98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,115,
-97,118,101,95,97,108,108,50,52,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,50,52,95,115,97,118,101,95,97,108,108,46,
+97,118,101,95,97,108,108,49,54,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,49,54,95,115,97,118,101,95,97,108,108,46,
112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,112,97,103,101,95,115,97,118,101,50,52,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,112,97,
+97,109,101,61,34,112,97,103,101,95,115,97,118,101,49,54,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,112,97,
103,101,95,115,97,118,101,46,112,110,103,60,47,111,98,106,101,99,116,62,
10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
105,116,109,97,112,34,32,110,97,109,101,61,34,110,101,119,95,119,120,95,
-112,114,111,106,101,99,116,50,52,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,50,52,95,119,120,50,52,46,112,110,103,60,
+112,114,111,106,101,99,116,49,54,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,49,54,95,119,120,50,52,46,112,110,103,60,
47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,112,108,117,103,105,110,50,52,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,50,52,95,112,108,117,103,105,110,50,52,
+34,112,108,117,103,105,110,49,54,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,49,54,95,112,108,117,103,105,110,50,52,
46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
97,109,101,61,34,99,111,100,101,95,102,111,114,109,97,116,95,111,112,116,
-105,111,110,115,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,102,111,114,109,97,116,116,101,114,95,115,
+105,111,110,115,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,102,111,114,109,97,116,116,101,114,95,115,
101,116,116,105,110,103,115,46,112,110,103,60,47,111,98,106,101,99,116,
62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,100,101,95,102,
-111,114,109,97,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,50,52,95,102,111,114,109,97,116,116,101,114,46,
+111,114,109,97,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,49,54,95,102,111,114,109,97,116,116,101,114,46,
112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
97,109,101,61,34,98,117,105,108,100,95,97,99,116,105,118,101,95,112,114,
-111,106,101,99,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,50,52,95,99,111,109,112,102,105,108,101,46,112,
+111,106,101,99,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,49,54,95,99,111,109,112,102,105,108,101,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,115,116,111,112,95,98,117,105,108,100,50,52,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,112,114,
+101,61,34,115,116,111,112,95,98,117,105,108,100,49,54,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,112,114,
111,99,101,115,115,95,115,116,111,112,46,112,110,103,60,47,111,98,106,101,
99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,101,120,101,99,
-117,116,101,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,50,52,95,103,101,97,114,95,114,117,110,46,112,110,103,
+117,116,101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,49,54,95,103,101,97,114,95,114,117,110,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
61,34,115,116,111,112,95,101,120,101,99,117,116,101,100,95,112,114,111,
-103,114,97,109,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,103,101,97,114,95,115,116,111,112,46,112,
+103,114,97,109,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,103,101,97,114,95,115,116,111,112,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,99,108,101,97,110,50,52,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,50,52,95,101,109,112,116,121,116,114,
+101,61,34,99,108,101,97,110,49,54,34,62,114,101,115,111,117,114,99,101,
+115,46,99,112,112,36,114,101,115,95,49,54,95,101,109,112,116,121,116,114,
97,115,104,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
112,34,32,110,97,109,101,61,34,102,105,110,100,95,105,110,95,102,105,108,
-101,115,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
-114,101,115,95,50,52,95,102,105,110,100,46,112,110,103,60,47,111,98,106,
+101,115,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,49,54,95,102,105,110,100,46,112,110,103,60,47,111,98,106,
101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,110,
-100,95,97,110,100,95,114,101,112,108,97,99,101,50,52,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,115,101,
+100,95,97,110,100,95,114,101,112,108,97,99,101,49,54,34,62,114,101,115,
+111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,115,101,
97,114,99,104,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
97,112,34,32,110,97,109,101,61,34,111,112,101,110,95,114,101,115,111,117,
-114,99,101,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,50,52,95,111,112,101,110,95,114,101,115,111,117,114,99,
+114,99,101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,49,54,95,111,112,101,110,95,114,101,115,111,117,114,99,
101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
-32,110,97,109,101,61,34,111,112,101,110,95,116,121,112,101,50,52,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,
+32,110,97,109,101,61,34,111,112,101,110,95,116,121,112,101,49,54,34,62,
+114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,
95,111,112,101,110,95,116,121,112,101,46,112,110,103,60,47,111,98,106,101,
99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,114,114,111,
-119,95,110,101,120,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,
-99,112,112,36,114,101,115,95,50,52,95,110,101,120,116,46,112,110,103,60,
+119,95,110,101,120,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,
+99,112,112,36,114,101,115,95,49,54,95,110,101,120,116,46,112,110,103,60,
47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,97,114,114,111,119,95,98,97,99,107,50,52,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,112,114,101,118,105,
+34,97,114,114,111,119,95,98,97,99,107,49,54,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,112,114,101,118,105,
111,117,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
112,34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,115,116,
-97,114,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,115,116,97,
+97,114,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,115,116,97,
114,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,114,101,115,
-116,97,114,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,114,101,
+116,97,114,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,114,101,
115,116,97,114,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,
-115,116,111,112,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,115,116,
+115,116,111,112,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,115,116,
111,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,112,97,117,
-115,101,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
-114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,112,97,117,115,
+115,101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,112,97,117,115,
101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,115,116,101,112,
-105,110,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
-114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,115,116,101,112,
+105,110,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,115,116,101,112,
105,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,115,116,101,
-112,111,117,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,115,116,
+112,111,117,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,115,116,
101,112,111,117,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,103,103,101,114,95,
-110,101,120,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,100,101,98,117,103,103,101,114,95,110,101,
+110,101,120,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,100,101,98,117,103,103,101,114,95,110,101,
120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
34,32,110,97,109,101,61,34,99,115,99,111,112,101,95,102,105,110,100,95,
-115,121,109,98,111,108,50,52,34,62,114,101,115,111,117,114,99,101,115,46,
-99,112,112,36,114,101,115,95,50,52,95,102,117,110,99,95,102,105,110,100,
+115,121,109,98,111,108,49,54,34,62,114,101,115,111,117,114,99,101,115,46,
+99,112,112,36,114,101,115,95,49,54,95,102,117,110,99,95,102,105,110,100,
50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
34,32,110,97,109,101,61,34,99,115,99,111,112,101,95,102,117,110,99,95,99,
-97,108,108,101,100,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,50,52,95,102,117,110,99,95,99,97,108,108,105,
+97,108,108,101,100,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,49,54,95,102,117,110,99,95,99,97,108,108,105,
110,103,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
97,112,34,32,110,97,109,101,61,34,99,115,99,111,112,101,95,102,117,110,
-99,95,99,97,108,108,105,110,103,50,52,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,50,52,95,102,117,110,99,95,99,97,
+99,95,99,97,108,108,105,110,103,49,54,34,62,114,101,115,111,117,114,99,
+101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,117,110,99,95,99,97,
108,108,101,100,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
116,109,97,112,34,32,110,97,109,101,61,34,114,101,102,95,97,110,97,108,
-121,122,101,114,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,50,52,95,114,101,102,95,97,110,97,108,121,122,101,
+121,122,101,114,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,49,54,95,114,101,102,95,97,110,97,108,121,122,101,
114,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
112,34,32,110,97,109,101,61,34,114,101,102,95,97,110,97,108,121,122,101,
-114,95,115,101,116,116,105,110,103,115,50,52,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,114,101,102,95,
+114,95,115,101,116,116,105,110,103,115,49,54,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,114,101,102,95,
97,110,97,121,108,122,101,114,95,115,101,116,116,105,110,103,115,50,52,
46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
97,109,101,61,34,97,114,114,111,119,95,103,114,101,101,110,95,114,105,103,
-104,116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
-114,101,115,95,50,52,95,97,114,114,111,119,95,103,114,101,101,110,95,114,
-105,103,104,116,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
+104,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,49,54,95,97,114,114,111,119,95,114,105,103,104,116,95,103,
+114,101,101,110,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
116,109,97,112,34,32,110,97,109,101,61,34,104,105,103,104,108,105,103,104,
-116,50,52,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,50,52,95,104,105,103,104,108,105,103,104,116,46,112,110,103,
+116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,49,54,95,104,105,103,104,108,105,103,104,116,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,114,117,110,95,117,110,105,116,95,116,101,115,116,50,52,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,50,52,95,
+61,34,114,117,110,95,117,110,105,116,95,116,101,115,116,49,54,34,62,114,
+101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,
114,117,110,95,117,110,105,116,95,116,101,115,116,46,112,110,103,60,47,
-111,98,106,101,99,116,62,10,32,32,60,33,45,45,10,9,9,84,111,111,108,98,
-97,114,32,98,105,116,109,97,112,115,32,40,49,54,120,49,54,41,10,9,45,45,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,113,117,105,99,107,102,
-105,110,100,101,114,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,49,54,95,113,117,105,99,107,102,105,110,100,101,
-114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,
-101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,
-32,110,97,109,101,61,34,111,117,116,108,105,110,101,49,54,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,116,
-101,120,116,95,116,114,101,101,46,112,110,103,60,47,111,98,106,101,99,116,
-62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,110,102,105,103,
-117,114,101,95,101,120,116,95,116,111,111,108,115,49,54,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,101,120,
-116,101,114,110,97,108,95,116,111,111,108,115,49,54,46,112,110,103,60,47,
-111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
-115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
-101,120,116,95,116,111,111,108,95,100,101,102,97,117,108,116,49,54,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,
-95,103,101,97,114,49,54,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,115,116,111,112,95,101,120,116,
-101,114,110,97,108,95,116,111,111,108,49,54,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,112,114,111,99,101,
-115,115,95,115,116,111,112,46,112,110,103,60,47,111,98,106,101,99,116,62,
-10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
-105,116,109,97,112,34,32,110,97,109,101,61,34,102,111,108,100,101,114,49,
-54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,49,54,95,102,111,108,100,101,114,50,52,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,114,101,102,
-114,101,115,104,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
-112,36,114,101,115,95,49,54,95,114,101,102,114,101,115,104,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,114,101,108,111,97,100,49,54,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,49,54,95,114,101,118,101,114,116,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,115,97,118,101,95,97,115,49,54,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,115,97,118,101,
-95,97,115,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
-98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
-112,34,32,110,97,109,101,61,34,99,117,116,49,54,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,99,117,116,46,112,
-110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
+111,98,106,101,99,116,62,10,32,32,60,33,45,45,32,79,118,101,114,108,97,
+121,32,105,99,111,110,115,32,45,45,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,99,111,112,121,49,54,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,49,54,95,99,111,112,121,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,112,97,115,116,101,49,54,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,49,54,95,112,97,115,116,101,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,117,110,100,111,49,54,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,49,54,95,117,110,100,111,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,114,101,100,111,49,54,34,62,114,101,115,111,117,114,99,101,115,46,
-99,112,112,36,114,101,115,95,49,54,95,114,101,100,111,46,112,110,103,60,
+101,61,34,111,118,101,114,108,97,121,95,111,107,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,111,107,46,112,110,103,60,
47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,98,111,111,107,109,97,114,107,49,54,34,62,114,101,115,111,117,114,99,
-101,115,46,99,112,112,36,114,101,115,95,49,54,95,98,111,111,107,109,97,
-114,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
-106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
-34,32,110,97,109,101,61,34,99,108,97,115,115,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,99,108,97,115,
-115,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
-98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
-112,34,32,110,97,109,101,61,34,112,97,103,101,95,99,108,111,115,101,49,
-54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,49,54,95,102,105,108,101,99,108,111,115,101,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,112,
-97,103,101,95,110,101,119,49,54,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,49,54,95,102,105,108,101,110,101,119,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,115,97,118,101,95,97,108,108,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,115,97,118,
-101,95,97,108,108,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,
-60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
-109,97,112,34,32,110,97,109,101,61,34,112,97,103,101,95,115,97,118,101,
-49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,49,54,95,112,97,103,101,95,115,97,118,101,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,110,
-101,119,95,119,120,95,112,114,111,106,101,99,116,49,54,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,119,120,
-50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
-106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
-34,32,110,97,109,101,61,34,112,108,117,103,105,110,49,54,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,112,
-108,117,103,105,110,50,52,46,112,110,103,60,47,111,98,106,101,99,116,62,
-10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
-105,116,109,97,112,34,32,110,97,109,101,61,34,99,111,100,101,95,102,111,
-114,109,97,116,95,111,112,116,105,111,110,115,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,111,114,
-109,97,116,116,101,114,95,115,101,116,116,105,110,103,115,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,99,111,100,101,95,102,111,114,109,97,116,49,54,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,111,
-114,109,97,116,116,101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,
-10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
-105,116,109,97,112,34,32,110,97,109,101,61,34,98,117,105,108,100,95,97,
-99,116,105,118,101,95,112,114,111,106,101,99,116,49,54,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,99,111,
-109,112,102,105,108,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,115,116,111,112,95,98,117,105,
-108,100,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
-114,101,115,95,49,54,95,112,114,111,99,101,115,115,95,115,116,111,112,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,101,120,101,99,117,116,101,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,103,101,97,
-114,95,114,117,110,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
-32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
-109,97,112,34,32,110,97,109,101,61,34,115,116,111,112,95,101,120,101,99,
-117,116,101,100,95,112,114,111,103,114,97,109,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,103,101,97,
-114,95,115,116,111,112,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,99,108,101,97,110,49,54,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,
-95,101,109,112,116,121,116,114,97,115,104,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,102,105,110,
-100,95,105,110,95,102,105,108,101,115,49,54,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,102,105,110,100,46,
-112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,
-116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,102,105,110,100,95,97,110,100,95,114,101,112,108,97,99,
-101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,49,54,95,115,101,97,114,99,104,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,112,101,
-110,95,114,101,115,111,117,114,99,101,49,54,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,111,112,101,110,95,
-114,101,115,111,117,114,99,101,46,112,110,103,60,47,111,98,106,101,99,116,
+34,111,118,101,114,108,97,121,95,109,111,100,105,102,105,101,100,34,62,
+114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,109,
+111,100,105,102,105,101,100,46,112,110,103,60,47,111,98,106,101,99,116,
62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
-66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,112,101,110,95,116,
-121,112,101,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
-36,114,101,115,95,49,54,95,111,112,101,110,95,116,121,112,101,46,112,110,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,111,118,101,114,108,97,
+121,95,99,111,110,102,108,105,99,116,34,62,114,101,115,111,117,114,99,101,
+115,46,99,112,112,36,114,101,115,95,99,111,110,102,108,105,99,116,46,112,
+110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,45,45,32,77,101,115,
+115,97,103,101,32,80,97,110,101,32,105,99,111,110,115,32,45,45,62,10,32,
+32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
+109,97,112,34,32,110,97,109,101,61,34,109,101,115,115,97,103,101,95,112,
+97,110,101,95,105,110,102,34,62,114,101,115,111,117,114,99,101,115,46,99,
+112,112,36,114,101,115,95,77,101,115,115,97,103,101,80,97,110,101,95,109,
+101,115,115,97,103,101,95,112,97,110,101,95,105,110,102,111,46,112,110,
103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,97,114,114,111,119,95,110,101,120,116,49,54,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,110,101,
-120,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
-106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
-34,32,110,97,109,101,61,34,97,114,114,111,119,95,98,97,99,107,49,54,34,
-62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,
-54,95,112,114,101,118,105,111,117,115,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
-119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,
-103,103,101,114,95,115,116,97,114,116,49,54,34,62,114,101,115,111,117,114,
-99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,100,101,98,117,103,
-103,101,114,95,115,116,97,114,116,46,112,110,103,60,47,111,98,106,101,99,
+101,61,34,109,101,115,115,97,103,101,95,112,97,110,101,95,114,101,115,116,
+97,114,116,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,77,101,115,115,97,103,101,80,97,110,101,95,115,121,115,116,101,
+109,95,114,101,115,116,97,114,116,46,112,110,103,60,47,111,98,106,101,99,
116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,
-120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,103,
-103,101,114,95,114,101,115,116,97,114,116,49,54,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,100,101,98,117,
-103,103,101,114,95,114,101,115,116,97,114,116,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,
-101,98,117,103,103,101,114,95,115,116,111,112,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,100,101,98,
-117,103,103,101,114,95,115,116,111,112,46,112,110,103,60,47,111,98,106,
-101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,
-34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,
-117,103,103,101,114,95,112,97,117,115,101,49,54,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,100,101,98,117,
-103,103,101,114,95,112,97,117,115,101,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
-119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,101,98,117,
-103,103,101,114,95,115,116,101,112,105,110,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,100,101,98,
-117,103,103,101,114,95,115,116,101,112,105,110,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,100,
-101,98,117,103,103,101,114,95,115,116,101,112,111,117,116,49,54,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,
-100,101,98,117,103,103,101,114,95,115,116,101,112,111,117,116,46,112,110,
-103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,
-99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,100,101,98,117,103,103,101,114,95,110,101,120,116,49,54,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,
-95,100,101,98,117,103,103,101,114,95,110,101,120,116,46,112,110,103,60,
-47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
-97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,99,115,99,111,112,101,95,102,105,110,100,95,115,121,109,98,111,108,49,
-54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,49,54,95,102,117,110,99,95,102,105,110,100,50,52,46,112,110,103,60,47,
-111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
-115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
-99,115,99,111,112,101,95,102,117,110,99,95,99,97,108,108,101,100,49,54,
-34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
-49,54,95,102,117,110,99,95,99,97,108,108,105,110,103,50,52,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,99,115,99,111,112,101,95,102,117,110,99,95,99,97,108,108,105,110,
-103,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
-101,115,95,49,54,95,102,117,110,99,95,99,97,108,108,101,100,50,52,46,112,
-110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
-32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,114,101,102,95,97,110,97,108,121,122,101,114,49,54,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,
-114,101,102,95,97,110,97,108,121,122,101,114,50,52,46,112,110,103,60,47,
-111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,
-115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,
-114,101,102,95,97,110,97,108,121,122,101,114,95,115,101,116,116,105,110,
-103,115,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
-114,101,115,95,49,54,95,114,101,102,95,97,110,97,121,108,122,101,114,95,
-115,101,116,116,105,110,103,115,50,52,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
-119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,97,114,114,111,
-119,95,103,114,101,101,110,95,114,105,103,104,116,49,54,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,97,114,
-114,111,119,95,114,105,103,104,116,95,103,114,101,101,110,49,54,46,112,
+120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,101,115,115,97,
+103,101,95,112,97,110,101,95,102,105,120,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,77,101,115,115,97,103,101,80,
+97,110,101,95,112,114,101,102,101,114,101,110,99,101,115,95,111,116,104,
+101,114,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,
+106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,
+34,32,110,97,109,101,61,34,109,101,115,115,97,103,101,95,112,97,110,101,
+95,119,97,114,110,105,110,103,34,62,114,101,115,111,117,114,99,101,115,
+46,99,112,112,36,114,101,115,95,77,101,115,115,97,103,101,80,97,110,101,
+95,119,97,114,110,105,110,103,46,112,110,103,60,47,111,98,106,101,99,116,
+62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,
+66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,101,115,115,97,103,
+101,95,112,97,110,101,95,115,111,102,116,119,97,114,101,95,117,112,100,
+97,116,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,77,101,115,115,97,103,101,80,97,110,101,95,115,121,115,116,101,
+109,95,115,111,102,116,119,97,114,101,95,117,112,100,97,116,101,46,112,
110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,
32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,
-101,61,34,104,105,103,104,108,105,103,104,116,49,54,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,49,54,95,104,105,103,
-104,108,105,103,104,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,114,117,110,95,117,110,105,116,
-95,116,101,115,116,49,54,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,49,54,95,114,117,110,95,117,110,105,116,95,116,
-101,115,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,
-45,45,32,79,118,101,114,108,97,121,32,105,99,111,110,115,32,45,45,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,111,118,101,114,108,97,121,95,
-111,107,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,
-115,95,111,107,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
-111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
-97,112,34,32,110,97,109,101,61,34,111,118,101,114,108,97,121,95,109,111,
-100,105,102,105,101,100,34,62,114,101,115,111,117,114,99,101,115,46,99,
-112,112,36,114,101,115,95,109,111,100,105,102,105,101,100,46,112,110,103,
-60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
-108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
-61,34,111,118,101,114,108,97,121,95,99,111,110,102,108,105,99,116,34,62,
-114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,99,111,
-110,102,108,105,99,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,33,45,45,32,77,101,115,115,97,103,101,32,80,97,110,101,32,105,
-99,111,110,115,32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
-97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,109,101,115,115,97,103,101,95,112,97,110,101,95,105,110,102,34,62,114,
-101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,77,101,115,
-115,97,103,101,80,97,110,101,95,109,101,115,115,97,103,101,95,112,97,110,
-101,95,105,110,102,111,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,109,101,115,115,97,103,101,95,
-112,97,110,101,95,114,101,115,116,97,114,116,34,62,114,101,115,111,117,
-114,99,101,115,46,99,112,112,36,114,101,115,95,77,101,115,115,97,103,101,
-80,97,110,101,95,115,121,115,116,101,109,95,114,101,115,116,97,114,116,
-46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,
-99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,
-97,109,101,61,34,109,101,115,115,97,103,101,95,112,97,110,101,95,102,105,
-120,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,77,101,115,115,97,103,101,80,97,110,101,95,112,114,101,102,101,114,101,
-110,99,101,115,95,111,116,104,101,114,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,
-119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,109,101,115,115,
-97,103,101,95,112,97,110,101,95,119,97,114,110,105,110,103,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,77,101,115,115,
-97,103,101,80,97,110,101,95,119,97,114,110,105,110,103,46,112,110,103,60,
-47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
-97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,109,101,115,115,97,103,101,95,112,97,110,101,95,115,111,102,116,119,
-97,114,101,95,117,112,100,97,116,101,34,62,114,101,115,111,117,114,99,101,
-115,46,99,112,112,36,114,101,115,95,77,101,115,115,97,103,101,80,97,110,
-101,95,115,121,115,116,101,109,95,115,111,102,116,119,97,114,101,95,117,
-112,100,97,116,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,
-32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,
-109,97,112,34,32,110,97,109,101,61,34,109,101,115,115,97,103,101,95,112,
-97,110,101,95,114,101,108,111,97,100,95,119,111,114,107,115,112,97,99,101,
-34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,
-77,101,115,115,97,103,101,80,97,110,101,95,102,111,108,100,101,114,95,104,
-111,109,101,95,114,101,108,111,97,100,46,112,110,103,60,47,111,98,106,101,
-99,116,62,10,32,32,60,33,45,45,32,78,111,116,101,98,111,111,107,32,105,
-99,111,110,115,32,45,45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,
-97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,
-34,116,97,98,95,120,95,99,108,111,115,101,34,62,114,101,115,111,117,114,
+101,61,34,109,101,115,115,97,103,101,95,112,97,110,101,95,114,101,108,111,
+97,100,95,119,111,114,107,115,112,97,99,101,34,62,114,101,115,111,117,114,
+99,101,115,46,99,112,112,36,114,101,115,95,77,101,115,115,97,103,101,80,
+97,110,101,95,102,111,108,100,101,114,95,104,111,109,101,95,114,101,108,
+111,97,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,33,
+45,45,32,78,111,116,101,98,111,111,107,32,105,99,111,110,115,32,45,45,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,
+111,115,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,
+101,115,95,110,111,116,101,98,111,111,107,95,102,105,108,101,99,108,111,
+115,101,45,98,108,117,101,46,112,110,103,60,47,111,98,106,101,99,116,62,
+10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,
+105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,
+111,115,101,95,112,114,101,115,115,101,100,34,62,114,101,115,111,117,114,
99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111,111,107,
-95,102,105,108,101,99,108,111,115,101,45,98,108,117,101,46,112,110,103,
+95,102,105,108,101,99,108,111,115,101,45,112,114,101,115,115,101,100,45,
+98,108,117,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,
+111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,
+97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,115,101,
+95,114,101,100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,
+114,101,115,95,110,111,116,101,98,111,111,107,95,102,105,108,101,99,108,
+111,115,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
+112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,115,101,95,
+97,99,116,105,118,101,34,62,114,101,115,111,117,114,99,101,115,46,99,112,
+112,36,114,101,115,95,110,111,116,101,98,111,111,107,95,102,105,108,101,
+99,108,111,115,101,45,104,105,103,104,108,105,103,104,116,46,112,110,103,
60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,
108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,
61,34,116,97,98,95,120,95,99,108,111,115,101,95,112,114,101,115,115,101,
-100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,110,111,116,101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,
-45,112,114,101,115,115,101,100,45,98,108,117,101,46,112,110,103,60,47,111,
+100,95,114,101,100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,
+36,114,101,115,95,110,111,116,101,98,111,111,107,95,102,105,108,101,99,
+108,111,115,101,45,112,114,101,115,115,101,100,46,112,110,103,60,47,111,
98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,
-97,98,95,120,95,99,108,111,115,101,95,114,101,100,34,62,114,101,115,111,
-117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111,
-111,107,95,102,105,108,101,99,108,111,115,101,46,112,110,103,60,47,111,
-98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,
-115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,
-97,98,95,120,95,99,108,111,115,101,95,97,99,116,105,118,101,34,62,114,101,
-115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,
-101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,45,104,105,103,
-104,108,105,103,104,116,46,112,110,103,60,47,111,98,106,101,99,116,62,10,
-32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,
-116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,
-115,101,95,112,114,101,115,115,101,100,95,114,101,100,34,62,114,101,115,
-111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,
-98,111,111,107,95,102,105,108,101,99,108,111,115,101,45,112,114,101,115,
-115,101,100,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
+97,98,95,120,95,99,108,111,115,101,95,100,105,115,97,98,108,101,100,34,
+62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,95,110,
+111,116,101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,45,98,
+108,117,101,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,
98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,
112,34,32,110,97,109,101,61,34,116,97,98,95,120,95,99,108,111,115,101,95,
-100,105,115,97,98,108,101,100,34,62,114,101,115,111,117,114,99,101,115,
-46,99,112,112,36,114,101,115,95,110,111,116,101,98,111,111,107,95,102,105,
-108,101,99,108,111,115,101,45,98,108,117,101,46,112,110,103,60,47,111,98,
-106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,
-61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,116,97,98,
-95,120,95,99,108,111,115,101,95,100,105,115,97,98,108,101,100,95,114,101,
-100,34,62,114,101,115,111,117,114,99,101,115,46,99,112,112,36,114,101,115,
-95,110,111,116,101,98,111,111,107,95,102,105,108,101,99,108,111,115,101,
-46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47,114,101,115,111,
-117,114,99,101,62,10};
+100,105,115,97,98,108,101,100,95,114,101,100,34,62,114,101,115,111,117,
+114,99,101,115,46,99,112,112,36,114,101,115,95,110,111,116,101,98,111,111,
+107,95,102,105,108,101,99,108,111,115,101,46,112,110,103,60,47,111,98,106,
+101,99,116,62,10,60,47,114,101,115,111,117,114,99,101,62,10};
void InitXmlResource()
{
@@ -20601,183 +20740,187 @@ void InitXmlResource()
XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_class.png"), xml_res_file_25, xml_res_size_25, _T("image/png"));
XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_typedef.xpm"), xml_res_file_26, xml_res_size_26, _T(""));
XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_folder_development.png"), xml_res_file_27, xml_res_size_27, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_cube_green.png"), xml_res_file_28, xml_res_size_28, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_namespace.png"), xml_res_file_29, xml_res_size_29, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_but_green_s.png"), xml_res_file_30, xml_res_size_30, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_media_stop.png"), xml_res_file_31, xml_res_size_31, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_folder_home.png"), xml_res_file_32, xml_res_size_32, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_folder.png"), xml_res_file_33, xml_res_size_33, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_cross.png"), xml_res_file_34, xml_res_size_34, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_clean.png"), xml_res_file_35, xml_res_size_35, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_rebuild.png"), xml_res_file_36, xml_res_size_36, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_find.png"), xml_res_file_37, xml_res_size_37, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_chart_organisation.png"), xml_res_file_38, xml_res_size_38, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_wrap_arrow.png"), xml_res_file_39, xml_res_size_39, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_commandprompt.png"), xml_res_file_40, xml_res_size_40, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_trace.png"), xml_res_file_41, xml_res_size_41, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_sym_wiz_bmp.png"), xml_res_file_42, xml_res_size_42, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_debug_windows.png"), xml_res_file_43, xml_res_size_43, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_help.png"), xml_res_file_44, xml_res_size_44, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_help_about.png"), xml_res_file_45, xml_res_size_45, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_reload.png"), xml_res_file_46, xml_res_size_46, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_svn_repo.png"), xml_res_file_47, xml_res_size_47, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_svn_checkout.png"), xml_res_file_48, xml_res_size_48, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_configure.png"), xml_res_file_49, xml_res_size_49, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_drive.png"), xml_res_file_50, xml_res_size_50, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_locals_view.png"), xml_res_file_51, xml_res_size_51, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_watches.png"), xml_res_file_52, xml_res_size_52, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_window_duplicate.png"), xml_res_file_53, xml_res_size_53, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_breakpoint.png"), xml_res_file_54, xml_res_size_54, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_puzzle.png"), xml_res_file_55, xml_res_size_55, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_question_and_answer.png"), xml_res_file_56, xml_res_size_56, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_kstars.png"), xml_res_file_57, xml_res_size_57, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_threads.png"), xml_res_file_58, xml_res_size_58, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_pictures.png"), xml_res_file_59, xml_res_size_59, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_page_green.png"), xml_res_file_60, xml_res_size_60, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_new_class.png"), xml_res_file_61, xml_res_size_61, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_wxproject.png"), xml_res_file_62, xml_res_size_62, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_package_utilities.png"), xml_res_file_63, xml_res_size_63, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_collapse.png"), xml_res_file_64, xml_res_size_64, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_expand.png"), xml_res_file_65, xml_res_size_65, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_gohome.png"), xml_res_file_66, xml_res_size_66, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_messagebox_warning.png"), xml_res_file_67, xml_res_size_67, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_messagebox_info.png"), xml_res_file_68, xml_res_size_68, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mail_mark_important.png"), xml_res_file_69, xml_res_size_69, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_view_text.png"), xml_res_file_70, xml_res_size_70, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_edit_add.png"), xml_res_file_71, xml_res_size_71, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_edit_delete.png"), xml_res_file_72, xml_res_size_72, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_eraser.png"), xml_res_file_73, xml_res_size_73, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_pencil.png"), xml_res_file_74, xml_res_size_74, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_fileclose-center.png"), xml_res_file_75, xml_res_size_75, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_fileclose-center-red.png"), xml_res_file_76, xml_res_size_76, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_inktube.png"), xml_res_file_77, xml_res_size_77, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_next.png"), xml_res_file_78, xml_res_size_78, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_previous.png"), xml_res_file_79, xml_res_size_79, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_c.png"), xml_res_file_80, xml_res_size_80, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_cplusplus.png"), xml_res_file_81, xml_res_size_81, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_h.png"), xml_res_file_82, xml_res_size_82, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_text.png"), xml_res_file_83, xml_res_size_83, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_compressed_tar.png"), xml_res_file_84, xml_res_size_84, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_ms_dos_executable.png"), xml_res_file_85, xml_res_size_85, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_php.png"), xml_res_file_86, xml_res_size_86, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_sharedlib.png"), xml_res_file_87, xml_res_size_87, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_image_x_xpixmap.png"), xml_res_file_88, xml_res_size_88, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_shellscript.png"), xml_res_file_89, xml_res_size_89, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_xml.png"), xml_res_file_90, xml_res_size_90, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_mswinurl.png"), xml_res_file_91, xml_res_size_91, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_make.png"), xml_res_file_92, xml_res_size_92, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_formbuilder.png"), xml_res_file_93, xml_res_size_93, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_quickfinder.png"), xml_res_file_94, xml_res_size_94, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_text_tree.png"), xml_res_file_95, xml_res_size_95, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_external_tools24.png"), xml_res_file_96, xml_res_size_96, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_gear24.png"), xml_res_file_97, xml_res_size_97, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_process_stop.png"), xml_res_file_98, xml_res_size_98, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_folder24.png"), xml_res_file_99, xml_res_size_99, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_refresh.png"), xml_res_file_100, xml_res_size_100, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_revert.png"), xml_res_file_101, xml_res_size_101, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_save_as.png"), xml_res_file_102, xml_res_size_102, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_cut.png"), xml_res_file_103, xml_res_size_103, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_copy.png"), xml_res_file_104, xml_res_size_104, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_paste.png"), xml_res_file_105, xml_res_size_105, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_undo.png"), xml_res_file_106, xml_res_size_106, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_redo.png"), xml_res_file_107, xml_res_size_107, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_bookmark.png"), xml_res_file_108, xml_res_size_108, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_class24.png"), xml_res_file_109, xml_res_size_109, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_fileclose.png"), xml_res_file_110, xml_res_size_110, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_filenew.png"), xml_res_file_111, xml_res_size_111, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_save_all.png"), xml_res_file_112, xml_res_size_112, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_page_save.png"), xml_res_file_113, xml_res_size_113, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_wx24.png"), xml_res_file_114, xml_res_size_114, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_plugin24.png"), xml_res_file_115, xml_res_size_115, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter_settings.png"), xml_res_file_116, xml_res_size_116, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter.png"), xml_res_file_117, xml_res_size_117, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_compfile.png"), xml_res_file_118, xml_res_size_118, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_gear_run.png"), xml_res_file_119, xml_res_size_119, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_gear_stop.png"), xml_res_file_120, xml_res_size_120, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_emptytrash.png"), xml_res_file_121, xml_res_size_121, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_find.png"), xml_res_file_122, xml_res_size_122, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_search.png"), xml_res_file_123, xml_res_size_123, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_open_resource.png"), xml_res_file_124, xml_res_size_124, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_open_type.png"), xml_res_file_125, xml_res_size_125, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_next.png"), xml_res_file_126, xml_res_size_126, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_previous.png"), xml_res_file_127, xml_res_size_127, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_start.png"), xml_res_file_128, xml_res_size_128, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_restart.png"), xml_res_file_129, xml_res_size_129, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_stop.png"), xml_res_file_130, xml_res_size_130, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_pause.png"), xml_res_file_131, xml_res_size_131, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_stepin.png"), xml_res_file_132, xml_res_size_132, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_stepout.png"), xml_res_file_133, xml_res_size_133, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_next.png"), xml_res_file_134, xml_res_size_134, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_func_find24.png"), xml_res_file_135, xml_res_size_135, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_func_calling24.png"), xml_res_file_136, xml_res_size_136, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_func_called24.png"), xml_res_file_137, xml_res_size_137, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_ref_analyzer24.png"), xml_res_file_138, xml_res_size_138, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_ref_anaylzer_settings24.png"), xml_res_file_139, xml_res_size_139, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_arrow_green_right24.png"), xml_res_file_140, xml_res_size_140, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_highlight.png"), xml_res_file_141, xml_res_size_141, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_run_unit_test.png"), xml_res_file_142, xml_res_size_142, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_quickfinder.png"), xml_res_file_143, xml_res_size_143, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_text_tree.png"), xml_res_file_144, xml_res_size_144, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_external_tools16.png"), xml_res_file_145, xml_res_size_145, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_gear16.png"), xml_res_file_146, xml_res_size_146, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_process_stop.png"), xml_res_file_147, xml_res_size_147, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_folder24.png"), xml_res_file_148, xml_res_size_148, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_refresh.png"), xml_res_file_149, xml_res_size_149, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_revert.png"), xml_res_file_150, xml_res_size_150, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_save_as.png"), xml_res_file_151, xml_res_size_151, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_cut.png"), xml_res_file_152, xml_res_size_152, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_copy.png"), xml_res_file_153, xml_res_size_153, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_paste.png"), xml_res_file_154, xml_res_size_154, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_undo.png"), xml_res_file_155, xml_res_size_155, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_redo.png"), xml_res_file_156, xml_res_size_156, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_bookmark.png"), xml_res_file_157, xml_res_size_157, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_class24.png"), xml_res_file_158, xml_res_size_158, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_fileclose.png"), xml_res_file_159, xml_res_size_159, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_filenew.png"), xml_res_file_160, xml_res_size_160, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_save_all.png"), xml_res_file_161, xml_res_size_161, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_page_save.png"), xml_res_file_162, xml_res_size_162, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_wx24.png"), xml_res_file_163, xml_res_size_163, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_plugin24.png"), xml_res_file_164, xml_res_size_164, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter_settings.png"), xml_res_file_165, xml_res_size_165, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter.png"), xml_res_file_166, xml_res_size_166, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_compfile.png"), xml_res_file_167, xml_res_size_167, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_gear_run.png"), xml_res_file_168, xml_res_size_168, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_gear_stop.png"), xml_res_file_169, xml_res_size_169, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_emptytrash.png"), xml_res_file_170, xml_res_size_170, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_search.png"), xml_res_file_171, xml_res_size_171, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_open_resource.png"), xml_res_file_172, xml_res_size_172, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_open_type.png"), xml_res_file_173, xml_res_size_173, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_next.png"), xml_res_file_174, xml_res_size_174, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_previous.png"), xml_res_file_175, xml_res_size_175, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_start.png"), xml_res_file_176, xml_res_size_176, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_restart.png"), xml_res_file_177, xml_res_size_177, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_stop.png"), xml_res_file_178, xml_res_size_178, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_pause.png"), xml_res_file_179, xml_res_size_179, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_stepin.png"), xml_res_file_180, xml_res_size_180, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_stepout.png"), xml_res_file_181, xml_res_size_181, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_next.png"), xml_res_file_182, xml_res_size_182, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_func_find24.png"), xml_res_file_183, xml_res_size_183, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_func_calling24.png"), xml_res_file_184, xml_res_size_184, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_func_called24.png"), xml_res_file_185, xml_res_size_185, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_ref_analyzer24.png"), xml_res_file_186, xml_res_size_186, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_ref_anaylzer_settings24.png"), xml_res_file_187, xml_res_size_187, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_arrow_right_green16.png"), xml_res_file_188, xml_res_size_188, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_highlight.png"), xml_res_file_189, xml_res_size_189, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_run_unit_test.png"), xml_res_file_190, xml_res_size_190, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_ok.png"), xml_res_file_191, xml_res_size_191, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_modified.png"), xml_res_file_192, xml_res_size_192, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_conflict.png"), xml_res_file_193, xml_res_size_193, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_message_pane_info.png"), xml_res_file_194, xml_res_size_194, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_system_restart.png"), xml_res_file_195, xml_res_size_195, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_preferences_other.png"), xml_res_file_196, xml_res_size_196, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_warning.png"), xml_res_file_197, xml_res_size_197, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_system_software_update.png"), xml_res_file_198, xml_res_size_198, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_folder_home_reload.png"), xml_res_file_199, xml_res_size_199, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-blue.png"), xml_res_file_200, xml_res_size_200, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-pressed-blue.png"), xml_res_file_201, xml_res_size_201, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose.png"), xml_res_file_202, xml_res_size_202, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-highlight.png"), xml_res_file_203, xml_res_size_203, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-pressed.png"), xml_res_file_204, xml_res_size_204, _T("image/png"));
- XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$._resources.xrc"), xml_res_file_205, xml_res_size_205, _T("text/xml"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_folder_orange.png"), xml_res_file_28, xml_res_size_28, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_cube_green.png"), xml_res_file_29, xml_res_size_29, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_namespace.png"), xml_res_file_30, xml_res_size_30, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_but_green_s.png"), xml_res_file_31, xml_res_size_31, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_media_stop.png"), xml_res_file_32, xml_res_size_32, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_folder_home.png"), xml_res_file_33, xml_res_size_33, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_folder.png"), xml_res_file_34, xml_res_size_34, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_cross.png"), xml_res_file_35, xml_res_size_35, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_clean.png"), xml_res_file_36, xml_res_size_36, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_rebuild.png"), xml_res_file_37, xml_res_size_37, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_find.png"), xml_res_file_38, xml_res_size_38, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_help_browser.png"), xml_res_file_39, xml_res_size_39, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_chart_organisation.png"), xml_res_file_40, xml_res_size_40, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_wrap_arrow.png"), xml_res_file_41, xml_res_size_41, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_commandprompt.png"), xml_res_file_42, xml_res_size_42, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_trace.png"), xml_res_file_43, xml_res_size_43, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_sym_wiz_bmp.png"), xml_res_file_44, xml_res_size_44, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_debug_windows.png"), xml_res_file_45, xml_res_size_45, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_help.png"), xml_res_file_46, xml_res_size_46, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_help_about.png"), xml_res_file_47, xml_res_size_47, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_reload.png"), xml_res_file_48, xml_res_size_48, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_svn_repo.png"), xml_res_file_49, xml_res_size_49, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_svn_checkout.png"), xml_res_file_50, xml_res_size_50, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_configure.png"), xml_res_file_51, xml_res_size_51, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_drive.png"), xml_res_file_52, xml_res_size_52, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_locals_view.png"), xml_res_file_53, xml_res_size_53, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_watches.png"), xml_res_file_54, xml_res_size_54, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_window_duplicate.png"), xml_res_file_55, xml_res_size_55, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_breakpoint.png"), xml_res_file_56, xml_res_size_56, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_puzzle.png"), xml_res_file_57, xml_res_size_57, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_question_and_answer.png"), xml_res_file_58, xml_res_size_58, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_kstars.png"), xml_res_file_59, xml_res_size_59, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_threads.png"), xml_res_file_60, xml_res_size_60, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_pictures.png"), xml_res_file_61, xml_res_size_61, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_page_green.png"), xml_res_file_62, xml_res_size_62, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_new_class.png"), xml_res_file_63, xml_res_size_63, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_wxproject.png"), xml_res_file_64, xml_res_size_64, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_package_utilities.png"), xml_res_file_65, xml_res_size_65, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_collapse.png"), xml_res_file_66, xml_res_size_66, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_expand.png"), xml_res_file_67, xml_res_size_67, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_gohome.png"), xml_res_file_68, xml_res_size_68, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_messagebox_warning.png"), xml_res_file_69, xml_res_size_69, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_messagebox_info.png"), xml_res_file_70, xml_res_size_70, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mail_mark_important.png"), xml_res_file_71, xml_res_size_71, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_view_text.png"), xml_res_file_72, xml_res_size_72, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_edit_add.png"), xml_res_file_73, xml_res_size_73, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_edit_delete.png"), xml_res_file_74, xml_res_size_74, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_eraser.png"), xml_res_file_75, xml_res_size_75, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_cursor.png"), xml_res_file_76, xml_res_size_76, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_note.png"), xml_res_file_77, xml_res_size_77, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_pencil.png"), xml_res_file_78, xml_res_size_78, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_fileclose-center.png"), xml_res_file_79, xml_res_size_79, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_fileclose-center-red.png"), xml_res_file_80, xml_res_size_80, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_inktube.png"), xml_res_file_81, xml_res_size_81, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_next.png"), xml_res_file_82, xml_res_size_82, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_QuickFindBar_previous.png"), xml_res_file_83, xml_res_size_83, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_c.png"), xml_res_file_84, xml_res_size_84, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_cplusplus.png"), xml_res_file_85, xml_res_size_85, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_h.png"), xml_res_file_86, xml_res_size_86, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_page_white_text.png"), xml_res_file_87, xml_res_size_87, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_compressed_tar.png"), xml_res_file_88, xml_res_size_88, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_ms_dos_executable.png"), xml_res_file_89, xml_res_size_89, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_php.png"), xml_res_file_90, xml_res_size_90, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_sharedlib.png"), xml_res_file_91, xml_res_size_91, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_image_x_xpixmap.png"), xml_res_file_92, xml_res_size_92, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_shellscript.png"), xml_res_file_93, xml_res_size_93, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_xml.png"), xml_res_file_94, xml_res_size_94, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_application_x_mswinurl.png"), xml_res_file_95, xml_res_size_95, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_make.png"), xml_res_file_96, xml_res_size_96, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_mimetype_formbuilder.png"), xml_res_file_97, xml_res_size_97, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_quickfinder.png"), xml_res_file_98, xml_res_size_98, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_text_tree.png"), xml_res_file_99, xml_res_size_99, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_external_tools24.png"), xml_res_file_100, xml_res_size_100, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_gear24.png"), xml_res_file_101, xml_res_size_101, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_process_stop.png"), xml_res_file_102, xml_res_size_102, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_folder24.png"), xml_res_file_103, xml_res_size_103, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_refresh.png"), xml_res_file_104, xml_res_size_104, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_revert.png"), xml_res_file_105, xml_res_size_105, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_save_as.png"), xml_res_file_106, xml_res_size_106, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_cut.png"), xml_res_file_107, xml_res_size_107, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_copy.png"), xml_res_file_108, xml_res_size_108, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_paste.png"), xml_res_file_109, xml_res_size_109, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_undo.png"), xml_res_file_110, xml_res_size_110, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_redo.png"), xml_res_file_111, xml_res_size_111, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_bookmark.png"), xml_res_file_112, xml_res_size_112, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_class24.png"), xml_res_file_113, xml_res_size_113, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_fileclose.png"), xml_res_file_114, xml_res_size_114, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_filenew.png"), xml_res_file_115, xml_res_size_115, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_save_all.png"), xml_res_file_116, xml_res_size_116, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_page_save.png"), xml_res_file_117, xml_res_size_117, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_wx24.png"), xml_res_file_118, xml_res_size_118, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_plugin24.png"), xml_res_file_119, xml_res_size_119, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter_settings.png"), xml_res_file_120, xml_res_size_120, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_formatter.png"), xml_res_file_121, xml_res_size_121, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_compfile.png"), xml_res_file_122, xml_res_size_122, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_gear_run.png"), xml_res_file_123, xml_res_size_123, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_gear_stop.png"), xml_res_file_124, xml_res_size_124, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_emptytrash.png"), xml_res_file_125, xml_res_size_125, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_find.png"), xml_res_file_126, xml_res_size_126, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_search.png"), xml_res_file_127, xml_res_size_127, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_open_resource.png"), xml_res_file_128, xml_res_size_128, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_open_type.png"), xml_res_file_129, xml_res_size_129, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_next.png"), xml_res_file_130, xml_res_size_130, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_previous.png"), xml_res_file_131, xml_res_size_131, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_start.png"), xml_res_file_132, xml_res_size_132, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_restart.png"), xml_res_file_133, xml_res_size_133, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_stop.png"), xml_res_file_134, xml_res_size_134, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_pause.png"), xml_res_file_135, xml_res_size_135, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_stepin.png"), xml_res_file_136, xml_res_size_136, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_stepout.png"), xml_res_file_137, xml_res_size_137, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_debugger_next.png"), xml_res_file_138, xml_res_size_138, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_func_find24.png"), xml_res_file_139, xml_res_size_139, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_func_calling24.png"), xml_res_file_140, xml_res_size_140, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_func_called24.png"), xml_res_file_141, xml_res_size_141, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_ref_analyzer24.png"), xml_res_file_142, xml_res_size_142, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_ref_anaylzer_settings24.png"), xml_res_file_143, xml_res_size_143, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_arrow_green_right24.png"), xml_res_file_144, xml_res_size_144, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_highlight.png"), xml_res_file_145, xml_res_size_145, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_24_run_unit_test.png"), xml_res_file_146, xml_res_size_146, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_quickfinder.png"), xml_res_file_147, xml_res_size_147, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_text_tree.png"), xml_res_file_148, xml_res_size_148, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_external_tools16.png"), xml_res_file_149, xml_res_size_149, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_gear16.png"), xml_res_file_150, xml_res_size_150, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_process_stop.png"), xml_res_file_151, xml_res_size_151, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_folder24.png"), xml_res_file_152, xml_res_size_152, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_refresh.png"), xml_res_file_153, xml_res_size_153, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_revert.png"), xml_res_file_154, xml_res_size_154, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_save_as.png"), xml_res_file_155, xml_res_size_155, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_cut.png"), xml_res_file_156, xml_res_size_156, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_copy.png"), xml_res_file_157, xml_res_size_157, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_paste.png"), xml_res_file_158, xml_res_size_158, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_undo.png"), xml_res_file_159, xml_res_size_159, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_redo.png"), xml_res_file_160, xml_res_size_160, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_bookmark.png"), xml_res_file_161, xml_res_size_161, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_class24.png"), xml_res_file_162, xml_res_size_162, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_fileclose.png"), xml_res_file_163, xml_res_size_163, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_filenew.png"), xml_res_file_164, xml_res_size_164, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_save_all.png"), xml_res_file_165, xml_res_size_165, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_page_save.png"), xml_res_file_166, xml_res_size_166, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_wx24.png"), xml_res_file_167, xml_res_size_167, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_plugin24.png"), xml_res_file_168, xml_res_size_168, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter_settings.png"), xml_res_file_169, xml_res_size_169, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_formatter.png"), xml_res_file_170, xml_res_size_170, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_compfile.png"), xml_res_file_171, xml_res_size_171, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_gear_run.png"), xml_res_file_172, xml_res_size_172, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_gear_stop.png"), xml_res_file_173, xml_res_size_173, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_emptytrash.png"), xml_res_file_174, xml_res_size_174, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_search.png"), xml_res_file_175, xml_res_size_175, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_open_resource.png"), xml_res_file_176, xml_res_size_176, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_open_type.png"), xml_res_file_177, xml_res_size_177, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_next.png"), xml_res_file_178, xml_res_size_178, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_previous.png"), xml_res_file_179, xml_res_size_179, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_start.png"), xml_res_file_180, xml_res_size_180, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_restart.png"), xml_res_file_181, xml_res_size_181, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_stop.png"), xml_res_file_182, xml_res_size_182, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_pause.png"), xml_res_file_183, xml_res_size_183, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_stepin.png"), xml_res_file_184, xml_res_size_184, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_stepout.png"), xml_res_file_185, xml_res_size_185, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_debugger_next.png"), xml_res_file_186, xml_res_size_186, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_func_find24.png"), xml_res_file_187, xml_res_size_187, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_func_calling24.png"), xml_res_file_188, xml_res_size_188, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_func_called24.png"), xml_res_file_189, xml_res_size_189, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_ref_analyzer24.png"), xml_res_file_190, xml_res_size_190, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_ref_anaylzer_settings24.png"), xml_res_file_191, xml_res_size_191, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_arrow_right_green16.png"), xml_res_file_192, xml_res_size_192, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_highlight.png"), xml_res_file_193, xml_res_size_193, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_16_run_unit_test.png"), xml_res_file_194, xml_res_size_194, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_ok.png"), xml_res_file_195, xml_res_size_195, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_modified.png"), xml_res_file_196, xml_res_size_196, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_conflict.png"), xml_res_file_197, xml_res_size_197, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_message_pane_info.png"), xml_res_file_198, xml_res_size_198, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_system_restart.png"), xml_res_file_199, xml_res_size_199, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_preferences_other.png"), xml_res_file_200, xml_res_size_200, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_warning.png"), xml_res_file_201, xml_res_size_201, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_system_software_update.png"), xml_res_file_202, xml_res_size_202, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_MessagePane_folder_home_reload.png"), xml_res_file_203, xml_res_size_203, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-blue.png"), xml_res_file_204, xml_res_size_204, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-pressed-blue.png"), xml_res_file_205, xml_res_size_205, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose.png"), xml_res_file_206, xml_res_size_206, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-highlight.png"), xml_res_file_207, xml_res_size_207, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$res_notebook_fileclose-pressed.png"), xml_res_file_208, xml_res_size_208, _T("image/png"));
+ XRC_ADD_FILE(wxT("XRC_resource/resources.cpp$._resources.xrc"), xml_res_file_209, xml_res_size_209, _T("text/xml"));
wxXmlResource::Get()->Load(wxT("memory:XRC_resource/resources.cpp$._resources.xrc"));
}
diff --git a/LiteEditor/resources.xrc b/LiteEditor/resources.xrc
index 6f1cc288..ea5ce705 100644
--- a/LiteEditor/resources.xrc
+++ b/LiteEditor/resources.xrc
@@ -27,6 +27,7 @@
<object class="wxBitmap" name="class">res/class.png</object>
<object class="wxBitmap" name="typedef">res/typedef.xpm</object>
<object class="wxBitmap" name="project">res/folder_development.png</object>
+ <object class="wxBitmap" name="active_project">res/folder_orange.png</object>
<object class="wxBitmap" name="globals">res/cube_green.png</object>
<object class="wxBitmap" name="namespace">res/namespace.png</object>
<object class="wxBitmap" name="struct">res/but_green_s.png</object>
@@ -37,6 +38,7 @@
<object class="wxBitmap" name="document_delete">res/clean.png</object>
<object class="wxBitmap" name="build">res/rebuild.png</object>
<object class="wxBitmap" name="find_results">res/16/find.png</object>
+ <object class="wxBitmap" name="cc_help">res/16/help_browser.png</object>
<object class="wxBitmap" name="class_view">res/chart_organisation.png</object>
<object class="wxBitmap" name="page_open">res/folder.png</object>
<object class="wxBitmap" name="word_wrap">res/wrap_arrow.png</object>
@@ -74,6 +76,8 @@
<object class="wxBitmap" name="edit_add">res/edit_add.png</object>
<object class="wxBitmap" name="edit_delete">res/edit_delete.png</object>
<object class="wxBitmap" name="eraser">res/eraser.png</object>
+ <object class="wxBitmap" name="cursor">res/cursor.png</object>
+ <object class="wxBitmap" name="note">res/16/note.png</object>
<!-- Quick Find Bar -->
<object class="wxBitmap" name="pencil">res/QuickFindBar/pencil.png</object>
diff --git a/LiteEditor/svninfo.cpp b/LiteEditor/svninfo.cpp
index 7414be2f..7023ae78 100644
--- a/LiteEditor/svninfo.cpp
+++ b/LiteEditor/svninfo.cpp
@@ -1,3 +1,3 @@
#include <wx/string.h>
-const wxChar * SvnRevision = wxT("4075");
+const wxChar * SvnRevision = wxT("4189");
diff --git a/LiteEditor/syntaxhighlightdlg.cpp b/LiteEditor/syntaxhighlightdlg.cpp
index 67068f18..3eb1e43f 100644
--- a/LiteEditor/syntaxhighlightdlg.cpp
+++ b/LiteEditor/syntaxhighlightdlg.cpp
@@ -149,7 +149,13 @@ void SyntaxHighlightDlg::LoadLexers(const wxString& theme)
std::map<wxString, LexerConfPtr>::const_iterator iter = EditorConfigST::Get()->LexerBegin();
for (; iter != EditorConfigST::Get()->LexerEnd(); iter++) {
- LexerConfPtr lexer = iter->second;
+ LexerConfPtr lexer = iter->second;
+
+ wxString lexName = lexer->GetName();
+ lexName.Trim().Trim(false);
+ if(lexName.IsEmpty())
+ continue;
+
m_lexersBook->AddPage(CreateLexerPage(m_lexersBook, lexer), lexer->GetName(), selected);
selected = false;
}
diff --git a/LiteEditor/tabgroupspane.cpp b/LiteEditor/tabgroupspane.cpp
index dd48e22d..0e8e684b 100644
--- a/LiteEditor/tabgroupspane.cpp
+++ b/LiteEditor/tabgroupspane.cpp
@@ -270,7 +270,7 @@ void TabgroupsPane::OnItemRtClick(wxTreeEvent& event) {
}
TabGrpTreeItemData* data = (TabGrpTreeItemData*)m_tree->GetItemData(item);
- wxMenu menu(_("Tabgroup Menu"));
+ wxMenu menu; // Tabgroup Menu
if (data->GetType() == TGT_group) {
menu.Append(TGM_ID_Add, wxT("&Add a new item to this tabgroup"));
if (m_node) {
diff --git a/LiteEditor/tags_options_base_dlg.cpp b/LiteEditor/tags_options_base_dlg.cpp
index fdb1a20e..077ce7d0 100644
--- a/LiteEditor/tags_options_base_dlg.cpp
+++ b/LiteEditor/tags_options_base_dlg.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 25 2009)
+// C++ code generated with wxFormBuilder (version May 4 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -50,16 +50,6 @@ TagsOptionsBaseDlg::TagsOptionsBaseDlg( wxWindow* parent, wxWindowID id, const w
m_checkBoxretagWorkspaceOnStartup = new wxCheckBox( m_generalPage, wxID_ANY, wxT("Retag workspace on workspace startup"), wxDefaultPosition, wxDefaultSize, 0 );
fgSizer31->Add( m_checkBoxretagWorkspaceOnStartup, 0, wxALL, 5 );
- m_checkParseComments = new wxCheckBox( m_generalPage, wxID_ANY, wxT("Parse comments"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkParseComments->Enable( false );
-
- fgSizer31->Add( m_checkParseComments, 0, wxALL, 5 );
-
- m_checkDisplayComments = new wxCheckBox( m_generalPage, wxID_ANY, wxT("Display comments in tooltip"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkDisplayComments->Enable( false );
-
- fgSizer31->Add( m_checkDisplayComments, 0, wxALL, 5 );
-
m_checkDisplayTypeInfo = new wxCheckBox( m_generalPage, wxID_ANY, wxT("Display type info tooltips"), wxDefaultPosition, wxDefaultSize, 0 );
fgSizer31->Add( m_checkDisplayTypeInfo, 0, wxALL, 5 );
@@ -388,4 +378,5 @@ TagsOptionsBaseDlg::~TagsOptionsBaseDlg()
m_buttonClearAllExcludPath->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( TagsOptionsBaseDlg::OnClearAllExcludePaths ), NULL, this );
m_buttonClearAllExcludPath->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TagsOptionsBaseDlg::OnClearAllExcludePathsUI ), NULL, this );
m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( TagsOptionsBaseDlg::OnButtonOK ), NULL, this );
+
}
diff --git a/LiteEditor/tags_options_base_dlg.h b/LiteEditor/tags_options_base_dlg.h
index 38042c65..fc1cd212 100644
--- a/LiteEditor/tags_options_base_dlg.h
+++ b/LiteEditor/tags_options_base_dlg.h
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Aug 25 2009)
+// C++ code generated with wxFormBuilder (version May 4 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -46,8 +46,6 @@ class TagsOptionsBaseDlg : public wxDialog
wxCheckBox* m_checkBoxMarkTagsFilesInBold;
wxCheckBox* m_checkDisableParseOnSave;
wxCheckBox* m_checkBoxretagWorkspaceOnStartup;
- wxCheckBox* m_checkParseComments;
- wxCheckBox* m_checkDisplayComments;
wxCheckBox* m_checkDisplayTypeInfo;
wxCheckBox* m_checkDisplayFunctionTip;
wxCheckBox* m_checkCppKeywordAssist;
diff --git a/LiteEditor/tags_options_dlg.cpp b/LiteEditor/tags_options_dlg.cpp
index 61fd874d..8f26b2af 100644
--- a/LiteEditor/tags_options_dlg.cpp
+++ b/LiteEditor/tags_options_dlg.cpp
@@ -69,10 +69,8 @@ TagsOptionsDlg::~TagsOptionsDlg()
void TagsOptionsDlg::InitValues()
{
//initialize the CodeLite page
- m_checkParseComments->SetValue (m_data.GetFlags() & CC_PARSE_COMMENTS ? true : false);
m_checkDisplayFunctionTip->SetValue (m_data.GetFlags() & CC_DISP_FUNC_CALLTIP ? true : false);
m_checkDisplayTypeInfo->SetValue (m_data.GetFlags() & CC_DISP_TYPE_INFO ? true : false);
- m_checkDisplayComments->SetValue (m_data.GetFlags() & CC_DISP_COMMENTS ? true : false);
m_checkFilesWithoutExt->SetValue (m_data.GetFlags() & CC_PARSE_EXT_LESS_FILES ? true : false);
m_checkColourLocalVars->SetValue (m_data.GetFlags() & CC_COLOUR_VARS ? true : false);
m_checkColourProjTags->SetValue (m_data.GetFlags() & CC_COLOUR_WORKSPACE_TAGS ? true : false);
@@ -99,7 +97,7 @@ void TagsOptionsDlg::InitValues()
m_spinCtrlMaxItemToColour->SetValue (m_data.GetMaxItemToColour() );
m_textPrep->SetValue (m_data.GetTokens());
m_textTypes->SetValue (m_data.GetTypes());
-
+
m_textFileSpec->SetValue(m_data.GetFileSpec());
m_comboBoxLang->Clear();
m_comboBoxLang->Append(m_data.GetLanguages());
@@ -132,10 +130,8 @@ void TagsOptionsDlg::OnButtonAdd(wxCommandEvent &event)
void TagsOptionsDlg::CopyData()
{
//save data to the interal member m_data
- SetFlag(CC_DISP_COMMENTS, m_checkDisplayComments->IsChecked());
SetFlag(CC_DISP_FUNC_CALLTIP, m_checkDisplayFunctionTip->IsChecked());
SetFlag(CC_DISP_TYPE_INFO, m_checkDisplayTypeInfo->IsChecked());
- SetFlag(CC_PARSE_COMMENTS, m_checkParseComments->IsChecked());
SetFlag(CC_PARSE_EXT_LESS_FILES, m_checkFilesWithoutExt->IsChecked());
SetFlag(CC_COLOUR_VARS, m_checkColourLocalVars->IsChecked());
SetFlag(CC_CPP_KEYWORD_ASISST, m_checkCppKeywordAssist->IsChecked());
@@ -144,7 +140,7 @@ void TagsOptionsDlg::CopyData()
SetFlag(CC_MARK_TAGS_FILES_IN_BOLD, m_checkBoxMarkTagsFilesInBold->IsChecked());
SetFlag(CC_RETAG_WORKSPACE_ON_STARTUP, m_checkBoxretagWorkspaceOnStartup->IsChecked());
SetFlag(CC_DEEP_SCAN_USING_NAMESPACE_RESOLVING, m_checkBoxDeepUsingNamespaceResolving->IsChecked());
-
+
SetColouringFlag(CC_COLOUR_CLASS, m_checkBoxClass->IsChecked());
SetColouringFlag(CC_COLOUR_ENUM, m_checkBoxEnum->IsChecked());
SetColouringFlag(CC_COLOUR_FUNCTION, m_checkBoxFunction->IsChecked());
@@ -159,7 +155,7 @@ void TagsOptionsDlg::CopyData()
SetColouringFlag(CC_COLOUR_MEMBER, m_checkBoxMember->IsChecked());
m_data.SetFileSpec(m_textFileSpec->GetValue());
-
+
m_data.SetTokens(m_textPrep->GetValue());
m_data.SetTypes(m_textTypes->GetValue());
m_data.SetLanguages(m_comboBoxLang->GetStrings());
diff --git a/LiteEditor/webupdatethread.cpp b/LiteEditor/webupdatethread.cpp
index 85727ae6..5a25661d 100644
--- a/LiteEditor/webupdatethread.cpp
+++ b/LiteEditor/webupdatethread.cpp
@@ -1,25 +1,25 @@
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
-// copyright : (C) 2008 by Eran Ifrah
-// file name : webupdatethread.cpp
-//
+// copyright : (C) 2008 by Eran Ifrah
+// file name : webupdatethread.cpp
+//
// -------------------------------------------------------------------------
-// A
-// _____ _ _ _ _
-// / __ \ | | | | (_) |
-// | / \/ ___ __| | ___| | _| |_ ___
-// | | / _ \ / _ |/ _ \ | | | __/ _ )
-// | \__/\ (_) | (_| | __/ |___| | || __/
-// \____/\___/ \__,_|\___\_____/_|\__\___|
-//
-// F i l e
-//
-// 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.
-//
+// A
+// _____ _ _ _ _
+// / __ \ | | | | (_) |
+// | / \/ ___ __| | ___| | _| |_ ___
+// | | / _ \ / _ |/ _ \ | | | __/ _ )
+// | \__/\ (_) | (_| | __/ |___| | || __/
+// \____/\___/ \__,_|\___\_____/_|\__\___|
+//
+// F i l e
+//
+// 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.
+//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
@@ -74,29 +74,38 @@ void WebUpdateJob::Process(wxThread* thread)
// wxURL url(wxT("http://codelite.org/packages_test.txt"));
wxURL url(wxT("http://codelite.org/packages.txt"));
if (url.GetError() == wxURL_NOERR) {
-
+
wxInputStream *in_stream = url.GetInputStream();
if (!in_stream) {
return;
}
+ bool shutdownRequest(false);
unsigned char buffer[DLBUFSIZE+1];
do {
-
+
in_stream->Read(buffer, DLBUFSIZE);
size_t bytes_read = in_stream->LastRead();
if (bytes_read > 0) {
-
+
buffer[bytes_read] = 0;
wxString buffRead((const char*)buffer, wxConvUTF8);
m_dataRead.Append(buffRead);
}
-
+
+ // Check termination request from time to time
+ if(thread->TestDestroy()) {
+ shutdownRequest = true;
+ break;
+ }
+
} while ( !in_stream->Eof() );
-
- delete in_stream;
-
- ParseFile();
+
+
+ if(shutdownRequest == false) {
+ delete in_stream;
+ ParseFile();
+ }
}
}
@@ -123,7 +132,7 @@ void WebUpdateJob::ParseFile()
#elif defined(__WXMAC__)
packageName = wxT("MAC");
#endif
-
+
// diffrentiate between the 64bit and the 32bit packages
#ifdef ON_64_BIT
packageName << wxT("_64");
@@ -135,7 +144,7 @@ void WebUpdateJob::ParseFile()
line = line.Trim().Trim(false);
if (line.StartsWith(wxT("#"))) {
//comment line
- continue;
+ continue;
}
// parse the line
@@ -146,7 +155,7 @@ void WebUpdateJob::ParseFile()
wxString url = tokens.Item(2).Trim().Trim(false);
wxString rev = tokens.Item(1).Trim().Trim(false);
wxString releaseNotesUrl = tokens.Item(3).Trim().Trim(false);
-
+
long currev;
long webrev(0);
diff --git a/LiteEditor/workspace_pane.cpp b/LiteEditor/workspace_pane.cpp
index f84a6cdc..b4dbe361 100644
--- a/LiteEditor/workspace_pane.cpp
+++ b/LiteEditor/workspace_pane.cpp
@@ -85,7 +85,7 @@ void WorkspacePane::CreateGUIControls()
#endif
// add notebook for tabs
- long bookStyle = wxVB_LEFT | wxAUI_NB_SCROLL_BUTTONS;
+ long bookStyle = wxVB_LEFT | wxAUI_NB_WINDOWLIST_BUTTON;
m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, bookStyle);
// Calculate the widthest tab (the one with the 'Workspcae' label)
@@ -95,6 +95,15 @@ void WorkspacePane::CreateGUIControls()
mainSizer->Add(m_book, 1, wxEXPAND | wxALL, 0);
+ // Add the parsing progress controls
+ m_staticText = new wxStaticText(this, wxID_ANY, wxT("Parsing workspace..."));
+ mainSizer->Add(m_staticText, 0, wxEXPAND|wxALL, 2);
+
+ m_parsingProgress = new wxGauge(this, wxID_ANY, 100, wxDefaultPosition, wxSize(-1, 15), wxGA_HORIZONTAL|wxGA_SMOOTH);
+ mainSizer->Add(m_parsingProgress, 0, wxEXPAND|wxALL, 1);
+ m_parsingProgress->Hide();
+ m_staticText->Hide();
+
// create tabs (possibly detached)
DetachedPanesInfo dpi;
EditorConfigST::Get()->ReadObject(wxT("DetachedPanesList"), &dpi);
@@ -127,17 +136,6 @@ void WorkspacePane::CreateGUIControls()
m_book->AddPage(m_explorer, name, false);
}
- // Add the Outline tab
- name = wxT("Outline");
- if(IS_DETACHED(name)) {
- DockablePane *cp = new DockablePane(GetParent(), m_book, name, wxNullBitmap, wxSize(200, 200));
- m_winStack = new WindowStack(cp);
- cp->SetChildNoReparent(m_winStack);
- } else {
- m_winStack = new WindowStack(m_book);
- m_book->AddPage(m_winStack, name, false);
- }
-
// Add the Open Windows Panel (Tabs)
name = wxT("Tabs");
if(IS_DETACHED(name)) {
@@ -171,134 +169,10 @@ void WorkspacePane::Connect()
wxTheApp->Connect(wxEVT_WORKSPACE_LOADED, wxCommandEventHandler(WorkspacePane::OnWorkspaceConfig), NULL, this);
wxTheApp->Connect(wxEVT_WORKSPACE_CONFIG_CHANGED, wxCommandEventHandler(WorkspacePane::OnWorkspaceConfig), NULL, this);
wxTheApp->Connect(wxEVT_WORKSPACE_CLOSED, wxCommandEventHandler(WorkspacePane::OnWorkspaceClosed), NULL, this);
- wxTheApp->Connect(wxEVT_PROJ_FILE_ADDED, wxCommandEventHandler(WorkspacePane::OnProjectFileAdded), NULL, this);
- wxTheApp->Connect(wxEVT_PROJ_FILE_REMOVED, wxCommandEventHandler(WorkspacePane::OnProjectFileRemoved), NULL, this);
- wxTheApp->Connect(wxEVT_SYNBOL_TREE_UPDATE_ITEM, wxCommandEventHandler(WorkspacePane::OnSymbolsUpdated), NULL, this);
- wxTheApp->Connect(wxEVT_SYNBOL_TREE_DELETE_ITEM, wxCommandEventHandler(WorkspacePane::OnSymbolsDeleted), NULL, this);
- wxTheApp->Connect(wxEVT_SYNBOL_TREE_ADD_ITEM, wxCommandEventHandler(WorkspacePane::OnSymbolsAdded), NULL, this);
- wxTheApp->Connect(wxEVT_FILE_RETAGGED, wxCommandEventHandler(WorkspacePane::OnFileRetagged), NULL, this);
- wxTheApp->Connect(wxEVT_ACTIVE_EDITOR_CHANGED, wxCommandEventHandler(WorkspacePane::OnActiveEditorChanged), NULL, this);
- wxTheApp->Connect(wxEVT_EDITOR_CLOSING, wxCommandEventHandler(WorkspacePane::OnEditorClosing), NULL, this);
- wxTheApp->Connect(wxEVT_ALL_EDITORS_CLOSED, wxCommandEventHandler(WorkspacePane::OnAllEditorsClosed), NULL, this);
-
wxTheApp->Connect(XRCID("configuration_manager"), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (WorkspacePane::OnConfigurationManager), NULL, this);
wxTheApp->Connect(XRCID("configuration_manager"), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(WorkspacePane::OnConfigurationManagerUI), NULL, this);
}
-
-extern wxImageList* CreateSymbolTreeImages();
-
-void WorkspacePane::ShowCurrentOutline()
-{
- LEditor *editor = Frame::Get()->GetMainBook()->GetActiveEditor();
- if (!editor || editor->GetProjectName().IsEmpty()) {
- m_winStack->SelectNone();
- return;
- }
- wxString path = editor->GetFileName().GetFullPath();
- if (m_winStack->GetSelectedKey() != path) {
- m_winStack->Freeze();
- if (m_winStack->Find(path) == NULL) {
- CppSymbolTree *tree = new CppSymbolTree(m_winStack, wxID_ANY);
- tree->SetSymbolsImages(CreateSymbolTreeImages());
- tree->BuildTree(path);
- m_winStack->Add(tree, path);
- }
- m_winStack->Select(path);
- m_winStack->Thaw();
- }
-}
-
-void WorkspacePane::OnActiveEditorChanged(wxCommandEvent& e)
-{
- e.Skip();
- ShowCurrentOutline();
-}
-
-void WorkspacePane::OnAllEditorsClosed(wxCommandEvent& e)
-{
- e.Skip();
- m_winStack->Clear();
-}
-
-void WorkspacePane::OnEditorClosing(wxCommandEvent& e)
-{
- e.Skip();
- IEditor *editor = (IEditor*) e.GetClientData();
- if (editor && !editor->GetProjectName().IsEmpty()) {
- m_winStack->Delete(editor->GetFileName().GetFullPath());
- }
-}
-
-void WorkspacePane::OnFileRetagged(wxCommandEvent& e)
-{
- e.Skip();
- std::vector<wxFileName> *files = (std::vector<wxFileName>*) e.GetClientData();
- if (files && !files->empty()) {
- m_winStack->Freeze();
- // toss out any out-of-date outlines
- for (size_t i = 0; i < files->size(); i++) {
- m_winStack->Delete(files->at(i).GetFullPath());
- }
- ShowCurrentOutline(); // in case active editor's file was one of them
- m_winStack->Thaw();
- }
-}
-
-void WorkspacePane::OnProjectFileAdded(wxCommandEvent& e)
-{
- e.Skip();
- ShowCurrentOutline(); // in case the active editor's file is now tagged
-}
-
-void WorkspacePane::OnProjectFileRemoved(wxCommandEvent& e)
-{
- e.Skip();
- wxArrayString *files = (wxArrayString*) e.GetClientData();
- if (files && !files->IsEmpty()) {
- for (size_t i = 0; i < files->Count(); i++) {
- m_winStack->Delete(files->Item(i));
- }
- ShowCurrentOutline(); // in case active editor's file is no longer tagged
- }
-}
-
-void WorkspacePane::OnSymbolsAdded(wxCommandEvent& e)
-{
- e.Skip();
- ParseThreadEventData *data = (ParseThreadEventData*) e.GetClientData();
- if (data && !data->GetItems().empty()) {
- CppSymbolTree *tree = (CppSymbolTree*) m_winStack->Find(data->GetFileName());
- if (tree) {
- tree->AddSymbols(data->GetItems());
- }
- }
-}
-
-void WorkspacePane::OnSymbolsDeleted(wxCommandEvent& e)
-{
- e.Skip();
- ParseThreadEventData *data = (ParseThreadEventData*) e.GetClientData();
- if (data && !data->GetItems().empty()) {
- CppSymbolTree *tree = (CppSymbolTree*) m_winStack->Find(data->GetFileName());
- if (tree) {
- tree->DeleteSymbols(data->GetItems());
- }
- }
-}
-
-void WorkspacePane::OnSymbolsUpdated(wxCommandEvent& e)
-{
- e.Skip();
- ParseThreadEventData *data = (ParseThreadEventData*) e.GetClientData();
- if (data && !data->GetItems().empty()) {
- CppSymbolTree *tree = (CppSymbolTree*) m_winStack->Find(data->GetFileName());
- if (tree) {
- tree->UpdateSymbols(data->GetItems());
- }
- }
-}
-
void WorkspacePane::OnWorkspaceConfig(wxCommandEvent& e)
{
e.Skip();
@@ -324,7 +198,6 @@ void WorkspacePane::OnWorkspaceClosed(wxCommandEvent& e)
e.Skip();
m_workspaceConfig->Clear();
m_workspaceConfig->Enable(false);
- m_winStack->Clear();
}
void WorkspacePane::OnConfigurationManagerUI(wxUpdateUIEvent& e)
@@ -362,3 +235,27 @@ void WorkspacePane::OnConfigurationManager(wxCommandEvent& e)
BuildMatrixPtr matrix = ManagerST::Get()->GetWorkspaceBuildMatrix();
m_workspaceConfig->SetStringSelection(matrix->GetSelectedConfigurationName());
}
+
+void WorkspacePane::ClearProgress()
+{
+ m_parsingProgress->SetValue(0);
+ m_parsingProgress->Hide();
+
+ m_staticText->SetLabel(wxT("Parsing workspace..."));
+ m_staticText->Hide();
+ Layout();
+}
+
+void WorkspacePane::UpdateProgress(int val)
+{
+ if(m_parsingProgress->IsShown() == false) {
+ m_parsingProgress->Show();
+ m_staticText->Show();
+ Layout();
+ }
+
+ m_staticText->SetLabel(wxString::Format(wxT("Parsing workspace: %d%% completed"), val));
+ m_parsingProgress->SetValue(val);
+ m_parsingProgress->Update();
+}
+
diff --git a/LiteEditor/workspace_pane.h b/LiteEditor/workspace_pane.h
index 25d07020..96188652 100644
--- a/LiteEditor/workspace_pane.h
+++ b/LiteEditor/workspace_pane.h
@@ -31,11 +31,11 @@
// Forward Declarations
class FileViewTree;
-class WindowStack;
class OpenWindowsPanel;
class FileExplorer;
class WorkspaceTab;
class TabgroupsPane;
+class wxGauge;
class WorkspacePane : public wxPanel
{
@@ -43,30 +43,20 @@ private:
wxString m_caption;
wxChoice *m_workspaceConfig;
wxAuiManager *m_mgr;
-
+ wxGauge *m_parsingProgress;
+ wxStaticText *m_staticText;
Notebook *m_book;
- WindowStack *m_winStack;
- TabgroupsPane *m_TabgroupsPane;
+ TabgroupsPane *m_TabgroupsPane;
OpenWindowsPanel *m_openWindowsPane;
FileExplorer *m_explorer;
WorkspaceTab *m_workspaceTab;
void CreateGUIControls();
void Connect();
- void ShowCurrentOutline();
// Workspace event handlers
void OnWorkspaceConfig (wxCommandEvent &e);
void OnWorkspaceClosed (wxCommandEvent &e);
- void OnFileRetagged (wxCommandEvent &e);
- void OnProjectFileAdded (wxCommandEvent &e);
- void OnProjectFileRemoved (wxCommandEvent &e);
- void OnSymbolsUpdated (wxCommandEvent &e);
- void OnSymbolsDeleted (wxCommandEvent &e);
- void OnSymbolsAdded (wxCommandEvent &e);
- void OnActiveEditorChanged(wxCommandEvent &e);
- void OnEditorClosing (wxCommandEvent &e);
- void OnAllEditorsClosed (wxCommandEvent &e);
// Configuration mgr handlers
void OnConfigurationManager (wxCommandEvent &e);
@@ -77,6 +67,9 @@ public:
WorkspacePane(wxWindow *parent, const wxString &caption, wxAuiManager *mgr);
~WorkspacePane();
+ void UpdateProgress(int val);
+ void ClearProgress ();
+
// Getters
const wxString &GetCaption () const { return m_caption; }
Notebook *GetNotebook () { return m_book; }
diff --git a/LiteEditor/workspacetab.cpp b/LiteEditor/workspacetab.cpp
index 747a4eaf..be3ad6d5 100644
--- a/LiteEditor/workspacetab.cpp
+++ b/LiteEditor/workspacetab.cpp
@@ -91,7 +91,7 @@ void WorkspaceTab::CreateGUIControls()
long val (0);
if(EditorConfigST::Get()->GetLongValue(wxT("WspTreeMultipleSelection"), val) == false) {val = 0;}
- tb->AddTool(XRCID("set_multi_selection"), wxEmptyString, wxXmlResource::Get()->LoadBitmap(wxT("outline16")), wxT("Toggle Multiple / Single Selection"), wxITEM_CHECK);
+ tb->AddTool(XRCID("set_multi_selection"), wxEmptyString, wxXmlResource::Get()->LoadBitmap(wxT("cursor")), wxT("Toggle Multiple / Single Selection"), wxITEM_CHECK);
tb->ToggleTool(XRCID("set_multi_selection"), val ? true : false);
tb->Realize();
sz->Add(tb, 0, wxEXPAND, 0);