summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Common/Src/MemoryUtil.cpp2
-rw-r--r--Source/Core/Core/Src/Boot/Boot.cpp2
-rw-r--r--Source/Core/Core/Src/Debugger/Debugger_BreakPoints.cpp30
-rw-r--r--Source/Core/Core/Src/Debugger/Debugger_BreakPoints.h26
-rw-r--r--Source/Core/Core/Src/Debugger/GClibloc.cpp3
-rw-r--r--Source/Core/Core/Src/HW/Memmap.cpp3
-rw-r--r--Source/Core/Core/Src/HW/SerialInterface_Devices.cpp28
-rw-r--r--Source/Core/Core/Src/Host.h1
-rw-r--r--Source/Core/DebuggerWX/DebuggerWX.vcproj18
-rw-r--r--Source/Core/DebuggerWX/resources/toolbar_add_breakpoint.c306
-rw-r--r--Source/Core/DebuggerWX/resources/toolbar_add_memorycheck.c239
-rw-r--r--Source/Core/DebuggerWX/resources/toolbar_delete.c244
-rw-r--r--Source/Core/DebuggerWX/src/BreakpointView.cpp77
-rw-r--r--Source/Core/DebuggerWX/src/BreakpointView.h41
-rw-r--r--Source/Core/DebuggerWX/src/BreakpointWindow.cpp160
-rw-r--r--Source/Core/DebuggerWX/src/BreakpointWindow.h65
-rw-r--r--Source/Core/DebuggerWX/src/CodeWindow.cpp48
-rw-r--r--Source/Core/DebuggerWX/src/CodeWindow.h3
-rw-r--r--Source/Core/DolphinWX/src/Globals.h1
-rw-r--r--Source/Core/DolphinWX/src/Main.cpp11
20 files changed, 1270 insertions, 38 deletions
diff --git a/Source/Core/Common/Src/MemoryUtil.cpp b/Source/Core/Common/Src/MemoryUtil.cpp
index 318e7361a1..4694f3ca13 100644
--- a/Source/Core/Common/Src/MemoryUtil.cpp
+++ b/Source/Core/Common/Src/MemoryUtil.cpp
@@ -41,7 +41,7 @@ void* AllocateExecutableMemory(int size)
if ((u64)ptr >= 0x80000000)
{
- PanicAlert("Executable memory ended up above 2GB! WTF!");
+ PanicAlert("Executable memory ended up above 2GB!");
// If this happens, we have to implement a free ram search scheme. ector knows how.
}
diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp
index b20460dfd5..8e7b575b55 100644
--- a/Source/Core/Core/Src/Boot/Boot.cpp
+++ b/Source/Core/Core/Src/Boot/Boot.cpp
@@ -318,7 +318,7 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug)
u32 iAppLoaderSize = VolumeHandler::Read32(iAppLoaderOffset + 0x14);
if ((iAppLoaderEntry == (u32)-1) || (iAppLoaderSize == (u32)-1))
{
- LOG(BOOT, "Invalid apploader. WTF.");
+ LOG(BOOT, "Invalid apploader. Probably your image is corrupted.");
return false;
}
VolumeHandler::ReadToPtr(Memory::GetPointer(0x81200000), iAppLoaderOffset + 0x20, iAppLoaderSize);
diff --git a/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.cpp b/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.cpp
index 20ed25a91f..fe7477fe75 100644
--- a/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.cpp
+++ b/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.cpp
@@ -21,14 +21,15 @@
#include "Common.h"
#include "../HW/CPU.h"
+#include "../Host.h"
#include "Debugger_SymbolMap.h"
#include "Debugger_BreakPoints.h"
using namespace Debugger;
-std::vector<TBreakPoint> CBreakPoints::m_iBreakPoints;
-std::vector<TMemCheck> CBreakPoints::MemChecks;
+CBreakPoints::TBreakPoints CBreakPoints::m_BreakPoints;
+CBreakPoints::TMemChecks CBreakPoints::m_MemChecks;
u32 CBreakPoints::m_iBreakOnCount = 0;
TMemCheck::TMemCheck()
@@ -54,7 +55,7 @@ bool CBreakPoints::IsAddressBreakPoint(u32 _iAddress)
{
std::vector<TBreakPoint>::iterator iter;
- for (iter = m_iBreakPoints.begin(); iter != m_iBreakPoints.end(); ++iter)
+ for (iter = m_BreakPoints.begin(); iter != m_BreakPoints.end(); ++iter)
if ((*iter).iAddress == _iAddress)
return true;
@@ -65,7 +66,7 @@ bool CBreakPoints::IsTempBreakPoint(u32 _iAddress)
{
std::vector<TBreakPoint>::iterator iter;
- for (iter = m_iBreakPoints.begin(); iter != m_iBreakPoints.end(); ++iter)
+ for (iter = m_BreakPoints.begin(); iter != m_BreakPoints.end(); ++iter)
if ((*iter).iAddress == _iAddress && (*iter).bTemporary)
return true;
@@ -75,7 +76,7 @@ bool CBreakPoints::IsTempBreakPoint(u32 _iAddress)
TMemCheck *CBreakPoints::GetMemCheck(u32 address)
{
std::vector<TMemCheck>::iterator iter;
- for (iter = MemChecks.begin(); iter != MemChecks.end(); ++iter)
+ for (iter = m_MemChecks.begin(); iter != m_MemChecks.end(); ++iter)
{
if ((*iter).bRange)
{
@@ -102,7 +103,9 @@ void CBreakPoints::AddBreakPoint(u32 _iAddress, bool temp)
pt.bTemporary = temp;
pt.iAddress = _iAddress;
- m_iBreakPoints.push_back(pt);
+ m_BreakPoints.push_back(pt);
+
+ Host_UpdateBreakPointView();
}
}
@@ -110,19 +113,28 @@ void CBreakPoints::RemoveBreakPoint(u32 _iAddress)
{
std::vector<TBreakPoint>::iterator iter;
- for (iter = m_iBreakPoints.begin(); iter != m_iBreakPoints.end(); ++iter)
+ for (iter = m_BreakPoints.begin(); iter != m_BreakPoints.end(); ++iter)
{
if ((*iter).iAddress == _iAddress)
{
- m_iBreakPoints.erase(iter);
+ m_BreakPoints.erase(iter);
break;
}
}
+
+ Host_UpdateBreakPointView();
}
void CBreakPoints::ClearAllBreakPoints()
{
- m_iBreakPoints.clear();
+ m_BreakPoints.clear();
+ Host_UpdateBreakPointView();
+}
+
+void CBreakPoints::AddMemoryCheck(const TMemCheck& _rMemoryCheck)
+{
+ m_MemChecks.push_back(_rMemoryCheck);
+ Host_UpdateBreakPointView();
}
void CBreakPoints::AddAutoBreakpoints()
diff --git a/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.h b/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.h
index d281f2a50c..9c7d287e32 100644
--- a/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.h
+++ b/Source/Core/Core/Src/Debugger/Debugger_BreakPoints.h
@@ -14,6 +14,7 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
+
#ifndef _DEBUGGER_BREAKPOINTS_H
#define _DEBUGGER_BREAKPOINTS_H
@@ -50,17 +51,13 @@ struct TMemCheck
class CBreakPoints
{
-private:
+public:
- enum { MAX_NUMBER_OF_CALLSTACK_ENTRIES = 16384};
- enum { MAX_NUMBER_OF_BREAKPOINTS = 16};
-
- static std::vector<TBreakPoint> m_iBreakPoints;
+ typedef std::vector<TBreakPoint> TBreakPoints;
+ typedef std::vector<TMemCheck> TMemChecks;
- static u32 m_iBreakOnCount;
-
-public:
- static std::vector<TMemCheck> MemChecks;
+ static const TBreakPoints& GetBreakPoints() { return m_BreakPoints; }
+ static const TMemChecks& GetMemChecks() { return m_MemChecks; }
// is address breakpoint
static bool IsAddressBreakPoint(u32 _iAddress);
@@ -80,9 +77,20 @@ public:
// Remove Breakpoint
static void RemoveBreakPoint(u32 _iAddress);
+ static void AddMemoryCheck(const TMemCheck& _rMemoryCheck);
+
static void ClearAllBreakPoints();
static void AddAutoBreakpoints();
+
+private:
+
+ static TBreakPoints m_BreakPoints;
+
+ static TMemChecks m_MemChecks;
+
+ static u32 m_iBreakOnCount;
+
};
#endif
diff --git a/Source/Core/Core/Src/Debugger/GClibloc.cpp b/Source/Core/Core/Src/Debugger/GClibloc.cpp
index 74744fd383..3a3fad22c5 100644
--- a/Source/Core/Core/Src/Debugger/GClibloc.cpp
+++ b/Source/Core/Core/Src/Debugger/GClibloc.cpp
@@ -270,7 +270,8 @@ int LoadSymbolsFromO(const char* filename, unsigned int base, unsigned int count
fseek (ifil, ELF_SH.offset, SEEK_SET);
if (ELF_SH.size<0 || ELF_SH.size>0x10000000)
{
- PanicAlert("WTF??");
+ PanicAlert("Failed to load symbols from object file.\n"
+ "Header size is invalid");
}
abuf = (unsigned char *)malloc (ELF_SH.size);
fread (abuf, 1, ELF_SH.size, ifil);
diff --git a/Source/Core/Core/Src/HW/Memmap.cpp b/Source/Core/Core/Src/HW/Memmap.cpp
index ba9c331524..8452a35ca9 100644
--- a/Source/Core/Core/Src/HW/Memmap.cpp
+++ b/Source/Core/Core/Src/HW/Memmap.cpp
@@ -46,7 +46,8 @@ namespace Memory
// GLOABL DEFINES
-#define NOCHECK
+// #define NOCHECK
+
static const bool bFakeVMEM = false;
#ifndef LOGGING
diff --git a/Source/Core/Core/Src/HW/SerialInterface_Devices.cpp b/Source/Core/Core/Src/HW/SerialInterface_Devices.cpp
index 0833390bfb..cad7dc2977 100644
--- a/Source/Core/Core/Src/HW/SerialInterface_Devices.cpp
+++ b/Source/Core/Core/Src/HW/SerialInterface_Devices.cpp
@@ -99,23 +99,23 @@ int CSIDevice_GCController::RunBuffer(u8* _pBuffer, int _iLength)
switch(command)
{
case CMD_RESET:
- {
- *(u32*)&_pBuffer[0] = SI_GC_CONTROLLER; // | SI_GC_NOMOTOR;
- iPosition = _iLength; // break the while loop
- }
- break;
+ {
+ *(u32*)&_pBuffer[0] = SI_GC_CONTROLLER; // | SI_GC_NOMOTOR;
+ iPosition = _iLength; // break the while loop
+ }
+ break;
case CMD_ORIGIN:
- {
- LOG(SERIALINTERFACE, "SI - Get Origin");
- u8* pCalibration = reinterpret_cast<u8*>(&m_origin);
- for (int i = 0; i < (int)sizeof(SOrigin); i++)
{
- _pBuffer[i ^ 3] = *pCalibration++;
- }
- }
- iPosition = _iLength;
- break;
+ LOG(SERIALINTERFACE, "SI - Get Origin");
+ u8* pCalibration = reinterpret_cast<u8*>(&m_origin);
+ for (int i = 0; i < (int)sizeof(SOrigin); i++)
+ {
+ _pBuffer[i ^ 3] = *pCalibration++;
+ }
+ }
+ iPosition = _iLength;
+ break;
// Recalibrate (FiRES: i am not 100 percent sure about this)
case CMD_RECALIBRATE:
diff --git a/Source/Core/Core/Src/Host.h b/Source/Core/Core/Src/Host.h
index cc177f2baa..243da88fde 100644
--- a/Source/Core/Core/Src/Host.h
+++ b/Source/Core/Core/Src/Host.h
@@ -43,6 +43,7 @@ void Host_UpdateDisasmDialog();
void Host_UpdateLogDisplay();
void Host_UpdateMemoryView();
void Host_NotifyMapLoaded();
+void Host_UpdateBreakPointView();
void Host_SetDebugMode(bool enable);
void Host_SetWaitCursor(bool enable);
diff --git a/Source/Core/DebuggerWX/DebuggerWX.vcproj b/Source/Core/DebuggerWX/DebuggerWX.vcproj
index 8f8f38e1d0..64693dfc19 100644
--- a/Source/Core/DebuggerWX/DebuggerWX.vcproj
+++ b/Source/Core/DebuggerWX/DebuggerWX.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="8.00"
+ Version="8,00"
Name="DebuggerWX"
ProjectGUID="{4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}"
RootNamespace="DebuggerWX"
@@ -420,6 +420,14 @@
Name="Controls"
>
<File
+ RelativePath=".\src\BreakpointView.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\BreakpointView.h"
+ >
+ </File>
+ <File
RelativePath=".\src\CodeView.cpp"
>
</File>
@@ -437,6 +445,14 @@
</File>
</Filter>
<File
+ RelativePath=".\src\BreakpointWindow.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\BreakpointWindow.h"
+ >
+ </File>
+ <File
RelativePath=".\src\CodeWindow.cpp"
>
</File>
diff --git a/Source/Core/DebuggerWX/resources/toolbar_add_breakpoint.c b/Source/Core/DebuggerWX/resources/toolbar_add_breakpoint.c
new file mode 100644
index 0000000000..b145d12891
--- /dev/null
+++ b/Source/Core/DebuggerWX/resources/toolbar_add_breakpoint.c
@@ -0,0 +1,306 @@
+static const unsigned char toolbar_add_breakpoint_png[] = {
+0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
+0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
+0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00,
+0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
+0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b,
+0x12, 0x00, 0x00, 0x0b, 0x12, 0x01, 0xd2, 0xdd, 0x7e, 0xfc, 0x00, 0x00,
+0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
+0x72, 0x65, 0x00, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x69,
+0x61, 0x20, 0x46, 0x69, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20,
+0x4d, 0x58, 0x20, 0x32, 0x30, 0x30, 0x34, 0x87, 0x76, 0xac, 0xcf, 0x00,
+0x00, 0x00, 0x15, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74,
+0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x31,
+0x30, 0x2f, 0x30, 0x34, 0xb6, 0xfa, 0x8a, 0x30, 0x00, 0x00, 0x0d, 0x8f,
+0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x9a, 0x7b, 0x70, 0x5c, 0xd5,
+0x79, 0xc0, 0x7f, 0xe7, 0xdc, 0x7b, 0xf7, 0xee, 0x43, 0x4f, 0x5b, 0x46,
+0xb2, 0x8d, 0xf1, 0x82, 0x4d, 0x31, 0x31, 0x83, 0xd7, 0x35, 0xa4, 0xc0,
+0x34, 0xb5, 0x30, 0x34, 0x9d, 0x90, 0x92, 0x38, 0x0d, 0x9d, 0x96, 0x86,
+0x26, 0xea, 0x3f, 0x5a, 0x13, 0xa7, 0x18, 0x93, 0xb4, 0x03, 0x34, 0xc4,
+0x32, 0xd3, 0xa6, 0xd3, 0x32, 0xc5, 0xf6, 0xd0, 0x92, 0xec, 0x86, 0x06,
+0x98, 0x4e, 0x4b, 0xa7, 0x21, 0x05, 0x3c, 0x93, 0xc4, 0x34, 0x0c, 0x96,
+0x0b, 0xc5, 0x6d, 0x20, 0xb0, 0x56, 0x81, 0xd6, 0xef, 0x15, 0x46, 0x92,
+0x1f, 0xb2, 0xb4, 0x5a, 0x69, 0x1f, 0x77, 0xef, 0xe3, 0xeb, 0x1f, 0x77,
+0x57, 0x96, 0xfc, 0x80, 0x64, 0xac, 0x94, 0xe9, 0x4c, 0xbf, 0x9d, 0x33,
+0x7b, 0x57, 0xf7, 0x9e, 0x7b, 0xbe, 0xdf, 0xf9, 0xbe, 0xf3, 0x9d, 0xef,
+0x9c, 0x23, 0x25, 0x22, 0xfc, 0x5f, 0x16, 0xfd, 0x51, 0x2b, 0x70, 0xb1,
+0x62, 0x7e, 0xd8, 0x03, 0x6a, 0x93, 0x4a, 0xa2, 0x59, 0x5f, 0x2f, 0x4b,
+0xd1, 0x24, 0xd1, 0x80, 0x26, 0x8f, 0x62, 0x1f, 0x9a, 0x7e, 0x34, 0x4f,
+0x49, 0x9f, 0x14, 0x7e, 0xf1, 0xea, 0x9e, 0x47, 0xbf, 0x0b, 0xb9, 0x90,
+0xfa, 0x8a, 0x6a, 0x43, 0xd3, 0x87, 0x66, 0x53, 0x5d, 0xe1, 0x33, 0x45,
+0x9d, 0xf5, 0x3b, 0x2c, 0x4f, 0xa3, 0xe9, 0x93, 0x3f, 0x91, 0xfc, 0xff,
+0x8a, 0xe6, 0x0d, 0x3d, 0xcf, 0x07, 0xa0, 0x36, 0xaa, 0x36, 0x34, 0xbb,
+0x51, 0xa4, 0xb0, 0x80, 0x76, 0x58, 0x71, 0xc5, 0x0a, 0x6e, 0x5c, 0x7e,
+0x03, 0xf3, 0xa3, 0xed, 0x58, 0x86, 0xc1, 0xc9, 0xa9, 0x93, 0xbc, 0x79,
+0xec, 0x0d, 0x0e, 0x0f, 0x1d, 0xa5, 0x58, 0xa8, 0x34, 0x20, 0x0a, 0x68,
+0xb6, 0xca, 0x03, 0xb2, 0xfd, 0x03, 0x1b, 0xfd, 0xb6, 0xea, 0x01, 0x72,
+0xb2, 0x41, 0x72, 0xbf, 0x28, 0x80, 0xb7, 0xd0, 0xa4, 0xb0, 0x61, 0xc5,
+0x9a, 0xab, 0xd8, 0xf6, 0x9b, 0xdb, 0x59, 0xd2, 0xbc, 0x04, 0x8d, 0xc6,
+0xc0, 0x40, 0xd7, 0x3f, 0x06, 0x06, 0xef, 0x4d, 0x1d, 0xe5, 0x07, 0xf9,
+0xef, 0x93, 0xdd, 0xf3, 0x14, 0xe3, 0x85, 0xa9, 0x06, 0x48, 0x3f, 0x9a,
+0xcf, 0xc9, 0x1f, 0xcd, 0x76, 0x2b, 0xf5, 0xd7, 0x2a, 0x89, 0xe6, 0x49,
+0x14, 0xdd, 0x28, 0x7a, 0x64, 0x83, 0x3c, 0x3d, 0xe7, 0x00, 0x6a, 0x83,
+0xda, 0x86, 0xe6, 0x5e, 0x2c, 0xf8, 0xcc, 0xed, 0x9f, 0xe1, 0xe1, 0x5b,
+0x1f, 0xc6, 0xc0, 0xe0, 0xa5, 0xfc, 0x8b, 0x1c, 0x2c, 0xbc, 0xc3, 0xa4,
+0x3f, 0x86, 0x6d, 0x46, 0xb0, 0x0c, 0x83, 0xcb, 0x9b, 0xaf, 0x64, 0xcd,
+0xbc, 0x9b, 0xb8, 0xba, 0x79, 0x15, 0xc3, 0xe5, 0x41, 0x1e, 0xdd, 0xf7,
+0xa7, 0x3c, 0xfb, 0xea, 0x8b, 0xd4, 0x7c, 0x0f, 0x34, 0x39, 0x34, 0x37,
+0xcb, 0xd7, 0x42, 0x08, 0xb5, 0x43, 0xf5, 0xa1, 0xd8, 0x82, 0x22, 0x74,
+0x41, 0xe8, 0x93, 0xaf, 0xc8, 0xd6, 0x39, 0x05, 0x50, 0x69, 0x95, 0x42,
+0xf1, 0x16, 0x1a, 0xae, 0x5b, 0xbb, 0x86, 0xec, 0xef, 0x7c, 0x87, 0x81,
+0x13, 0xfb, 0xd8, 0xf1, 0xd3, 0x47, 0xa8, 0xa9, 0x49, 0xda, 0xe2, 0x71,
+0xe2, 0xb6, 0x4d, 0xd4, 0xb2, 0xb0, 0x4c, 0x13, 0x53, 0x6b, 0xb4, 0xd6,
+0xcc, 0xb7, 0x16, 0x70, 0x5b, 0xe7, 0x9d, 0xdc, 0xd0, 0x7a, 0x2b, 0x4f,
+0x1e, 0x79, 0x94, 0x87, 0x7f, 0xb0, 0x8d, 0x62, 0xa9, 0x1c, 0x42, 0x28,
+0xb6, 0xa2, 0xd9, 0x82, 0x22, 0xd5, 0x1a, 0x6d, 0xe5, 0xf7, 0xaf, 0xff,
+0x3c, 0xff, 0xf4, 0xee, 0xb3, 0x9c, 0x2c, 0x14, 0xb7, 0xcb, 0x26, 0xd9,
+0x7c, 0xb1, 0x00, 0x67, 0x87, 0xd1, 0x6d, 0x08, 0x90, 0x80, 0xfb, 0x6e,
+0xfd, 0x2a, 0xbb, 0x0e, 0xff, 0x90, 0x07, 0xfe, 0xf5, 0x3e, 0x5c, 0x35,
+0xc9, 0xbc, 0xa6, 0x26, 0x9a, 0xa3, 0x51, 0x22, 0xe6, 0x99, 0xc0, 0x65,
+0x1a, 0x06, 0xf1, 0x48, 0x84, 0x9a, 0x39, 0xc5, 0xce, 0xd3, 0xdf, 0xe1,
+0x89, 0x91, 0x87, 0xb9, 0x2b, 0xb9, 0x91, 0x17, 0x7a, 0xfe, 0x91, 0xae,
+0xf6, 0x56, 0x08, 0x48, 0x11, 0xf0, 0x1c, 0x3e, 0xa9, 0x55, 0xf3, 0x57,
+0xb1, 0xf7, 0x8b, 0xaf, 0xf0, 0xb9, 0x6b, 0x7f, 0x9d, 0x98, 0x69, 0x83,
+0x47, 0xea, 0x62, 0x95, 0x9f, 0x05, 0xa0, 0xd2, 0x2a, 0x09, 0x74, 0x03,
+0xdc, 0x7e, 0xcb, 0xed, 0x94, 0xdc, 0x29, 0x76, 0xbc, 0xf1, 0x08, 0x2d,
+0xb1, 0x18, 0x2d, 0xf1, 0x38, 0x11, 0xd3, 0xa4, 0x52, 0x73, 0xc9, 0x1f,
+0x3c, 0xc9, 0xbf, 0xbf, 0x7c, 0x88, 0x57, 0x7e, 0xfc, 0x5f, 0x0c, 0xe4,
+0xde, 0x63, 0xac, 0x50, 0x02, 0x11, 0x2c, 0xd3, 0xe4, 0x7d, 0xef, 0x00,
+0xdb, 0x8e, 0xdf, 0xc3, 0x92, 0xe8, 0x15, 0x3c, 0x7b, 0xd7, 0x33, 0x2c,
+0x9c, 0xd7, 0x0e, 0x3e, 0xa4, 0x3a, 0x52, 0xbc, 0x72, 0xd7, 0x1e, 0x96,
+0x37, 0xad, 0xc0, 0xd0, 0x1a, 0xe5, 0x03, 0xde, 0x5c, 0xa8, 0x3f, 0xdb,
+0x02, 0x9b, 0x00, 0x94, 0x0d, 0xbf, 0x77, 0xfd, 0x9d, 0x3c, 0xfa, 0x1f,
+0x7f, 0x41, 0x53, 0x34, 0x4a, 0x73, 0x2c, 0x86, 0x65, 0x18, 0x4c, 0x95,
+0x2b, 0x1c, 0x7c, 0x7d, 0x84, 0x43, 0xfb, 0x8e, 0x73, 0xfa, 0x54, 0x91,
+0xd1, 0x53, 0x93, 0xfc, 0xf7, 0x3b, 0x43, 0xbc, 0xf4, 0xe2, 0x00, 0xaf,
+0xff, 0xf4, 0x30, 0xa5, 0x8a, 0x03, 0x80, 0x23, 0x15, 0xbe, 0x7b, 0xfa,
+0x61, 0x16, 0x45, 0x92, 0x3c, 0xb2, 0x7e, 0x2b, 0x1f, 0x5f, 0xb4, 0x86,
+0xfe, 0x2f, 0xbd, 0xcc, 0xa4, 0x1a, 0x65, 0x77, 0xed, 0xef, 0x59, 0xa4,
+0xae, 0xe4, 0xb2, 0xae, 0x05, 0xe0, 0x87, 0x9d, 0x35, 0x97, 0x00, 0xeb,
+0x01, 0x16, 0x2e, 0x5b, 0xc4, 0xab, 0xc7, 0x5e, 0x61, 0xd2, 0x2b, 0xd0,
+0x14, 0x8b, 0x11, 0x8f, 0x44, 0xa8, 0xb8, 0x2e, 0xef, 0xbd, 0x35, 0xca,
+0xc9, 0xa1, 0x22, 0x4e, 0xd5, 0x23, 0xf0, 0x04, 0xf1, 0x04, 0xaf, 0xe6,
+0x53, 0x9a, 0xac, 0xf2, 0xce, 0xc0, 0x31, 0x76, 0xbe, 0xf0, 0x3a, 0xc7,
+0x86, 0x4f, 0x53, 0xf3, 0x3c, 0xa6, 0xdc, 0x49, 0xb2, 0xa3, 0x5b, 0xb8,
+0xb1, 0xfd, 0x16, 0x76, 0x7d, 0x71, 0x17, 0xb9, 0x5a, 0x3f, 0xdf, 0x2e,
+0xdc, 0xcf, 0x81, 0xf2, 0x00, 0xae, 0x78, 0x78, 0xae, 0x3f, 0xb7, 0x16,
+0xa8, 0xbb, 0x4f, 0x12, 0xe0, 0xfa, 0xab, 0xd7, 0xf0, 0xf2, 0xe0, 0xbf,
+0x90, 0xb0, 0x6d, 0x9a, 0x6c, 0x1b, 0xad, 0x14, 0x85, 0x91, 0x12, 0x85,
+0xe3, 0x65, 0xbc, 0x9a, 0x0f, 0x01, 0xb3, 0x8a, 0xf8, 0xe0, 0x3a, 0x3e,
+0xe3, 0x63, 0x25, 0x76, 0xfd, 0xf0, 0x2d, 0x06, 0xde, 0x1e, 0xa4, 0xe2,
+0xba, 0x4c, 0xd4, 0x8a, 0x3c, 0x33, 0xba, 0x83, 0x17, 0x0a, 0x7f, 0xcb,
+0x3f, 0x9f, 0x7e, 0x82, 0xc9, 0x72, 0x99, 0xc3, 0x53, 0xfb, 0xd1, 0xd8,
+0x61, 0x10, 0xf2, 0x41, 0x7d, 0x43, 0x5d, 0xf4, 0x38, 0x68, 0x58, 0x60,
+0x2d, 0x80, 0x52, 0xa0, 0x62, 0x9a, 0x49, 0x77, 0x9c, 0x44, 0x34, 0x4a,
+0xdc, 0xb6, 0x11, 0xa0, 0x34, 0x5a, 0xc5, 0x75, 0x3c, 0xf0, 0x81, 0x80,
+0x1c, 0x3e, 0xc9, 0xcc, 0xb6, 0x5e, 0x95, 0xf9, 0xab, 0x5e, 0x85, 0x4f,
+0x1f, 0x3e, 0x85, 0xc0, 0x15, 0x9c, 0x8a, 0xcb, 0x4f, 0x5e, 0x3b, 0xc4,
+0xde, 0xd7, 0xf6, 0xe3, 0xd4, 0x6a, 0xe4, 0x4b, 0x87, 0xf8, 0xb7, 0xf1,
+0x1f, 0x53, 0xaa, 0x56, 0x99, 0x74, 0x1c, 0x8a, 0x95, 0x0a, 0x45, 0xb7,
+0x40, 0xa2, 0xc9, 0x0e, 0x2d, 0xe0, 0xd3, 0x7a, 0xb1, 0x00, 0x8d, 0x90,
+0x12, 0xf6, 0x44, 0xb3, 0x62, 0xb4, 0x7c, 0x82, 0x98, 0x6d, 0x93, 0xb0,
+0x6d, 0x62, 0x91, 0x08, 0x8e, 0xeb, 0xe2, 0x4c, 0xb8, 0xf8, 0x6e, 0x3d,
+0xdc, 0x0a, 0x7d, 0xf2, 0x2d, 0x19, 0x9c, 0x7e, 0xc3, 0x36, 0xb6, 0xa6,
+0x37, 0x65, 0xb7, 0xa3, 0xc8, 0x21, 0x24, 0x03, 0x84, 0x53, 0xc3, 0x93,
+0x14, 0x27, 0x2a, 0xb4, 0xb4, 0xc6, 0x08, 0x82, 0x00, 0x3f, 0x08, 0xf0,
+0x7d, 0x9f, 0x40, 0x84, 0x11, 0x67, 0x88, 0x8a, 0x53, 0x6b, 0xb8, 0x50,
+0x12, 0xd8, 0x73, 0x31, 0x00, 0x0d, 0x0b, 0xa4, 0x00, 0x94, 0x52, 0xe4,
+0x27, 0x8e, 0x10, 0xb5, 0x2c, 0xe2, 0x91, 0x08, 0xb6, 0x65, 0x21, 0x80,
+0x37, 0xe5, 0x23, 0x22, 0x20, 0x90, 0xf9, 0x56, 0xef, 0x0b, 0x8d, 0xca,
+0x59, 0xd2, 0xe1, 0x85, 0xcf, 0x76, 0x15, 0x90, 0x34, 0x95, 0xc1, 0xc2,
+0x85, 0xed, 0xfc, 0xda, 0x6f, 0xac, 0xa0, 0xbd, 0x3d, 0x81, 0x69, 0x18,
+0x28, 0xa5, 0x10, 0x11, 0xdc, 0x20, 0xa0, 0xea, 0xba, 0x1c, 0x99, 0xda,
+0xcf, 0x82, 0xa6, 0x4e, 0x54, 0x00, 0xf8, 0xa1, 0xdb, 0x5e, 0x8c, 0x34,
+0x2c, 0xd0, 0x06, 0xa0, 0x9b, 0xe1, 0xd2, 0x96, 0xc5, 0x78, 0x56, 0x91,
+0x68, 0x24, 0x42, 0xc4, 0x34, 0xd1, 0x4a, 0x11, 0x04, 0x17, 0x7e, 0x41,
+0x7a, 0x43, 0xb6, 0x47, 0x69, 0x7a, 0x4c, 0xc3, 0x60, 0xc9, 0xf2, 0x0e,
+0x56, 0x5e, 0x77, 0x29, 0x2d, 0x89, 0x38, 0xb6, 0x65, 0x11, 0x88, 0x84,
+0xca, 0xd7, 0x21, 0x3c, 0xdf, 0xe7, 0x50, 0xf1, 0x00, 0xf3, 0x12, 0x0b,
+0x42, 0x0b, 0x48, 0xd8, 0xee, 0x5c, 0x00, 0x4c, 0x5b, 0xa0, 0xea, 0x57,
+0x88, 0xc7, 0x4c, 0x6c, 0xd3, 0xc4, 0x32, 0x8c, 0xfa, 0x6c, 0x7b, 0x01,
+0xe5, 0xd3, 0xd9, 0x6e, 0xe0, 0x49, 0x02, 0x45, 0xeb, 0xe5, 0x09, 0xe6,
+0x5d, 0x99, 0xc0, 0x27, 0xa0, 0xe4, 0x38, 0x78, 0x41, 0x50, 0x87, 0x0f,
+0xc2, 0x22, 0x82, 0x17, 0x04, 0x1c, 0x2a, 0x1e, 0xa4, 0xc3, 0x5a, 0x0c,
+0x9e, 0x02, 0x91, 0xf3, 0x0e, 0xe2, 0x69, 0xcb, 0xce, 0x90, 0x5e, 0x32,
+0x1f, 0x08, 0x10, 0x8a, 0x52, 0x8c, 0x56, 0x4f, 0x71, 0x45, 0x6b, 0x27,
+0x96, 0x61, 0x84, 0x00, 0xa6, 0x89, 0x19, 0x33, 0x50, 0x13, 0x61, 0x2f,
+0x4e, 0x3f, 0x9a, 0x56, 0x29, 0xe0, 0xb9, 0xf0, 0x97, 0x30, 0x71, 0xa4,
+0xc4, 0xa1, 0x09, 0x8f, 0x91, 0xe6, 0x02, 0x89, 0x76, 0x1b, 0x3b, 0x62,
+0x11, 0x6f, 0x8b, 0x60, 0x18, 0x06, 0x66, 0xdc, 0x00, 0x25, 0xd4, 0x3c,
+0x8f, 0x8a, 0xeb, 0x12, 0x4f, 0xcc, 0x27, 0x92, 0x30, 0x70, 0x26, 0xce,
+0x8d, 0xa5, 0x59, 0xd2, 0xa4, 0x37, 0x66, 0xdb, 0x08, 0x58, 0x8f, 0x90,
+0x44, 0x28, 0x00, 0xfd, 0x64, 0xc8, 0x9d, 0x0f, 0x44, 0x89, 0x08, 0x2a,
+0xad, 0x04, 0x20, 0x72, 0x99, 0x49, 0xd7, 0xd5, 0x6d, 0x2c, 0xeb, 0xec,
+0x64, 0x49, 0x47, 0x07, 0x09, 0xdb, 0x66, 0x78, 0x6c, 0x8c, 0xd7, 0x5f,
+0x3e, 0xcc, 0xf1, 0xc3, 0x13, 0x04, 0xa1, 0x2f, 0xad, 0x06, 0xf2, 0xc0,
+0x6e, 0x98, 0x9d, 0x0e, 0x28, 0xa5, 0x50, 0x4a, 0xa1, 0xf5, 0xec, 0x6f,
+0x15, 0x26, 0x6f, 0xe8, 0xa8, 0x02, 0x53, 0xe1, 0x2b, 0x1f, 0xb7, 0xe8,
+0xe1, 0x57, 0x05, 0xc9, 0x88, 0x9a, 0xa5, 0xfc, 0xa6, 0x6c, 0x8a, 0x80,
+0xe7, 0x14, 0x24, 0x15, 0x0a, 0xf1, 0x01, 0x11, 0x24, 0xa0, 0x1f, 0xd8,
+0x9a, 0xc9, 0xf4, 0xf6, 0xcf, 0x84, 0x98, 0x0d, 0xb0, 0xd8, 0xa4, 0xf3,
+0x9a, 0x36, 0xae, 0xec, 0xea, 0x62, 0x69, 0x47, 0x07, 0x4d, 0xb1, 0x18,
+0xa7, 0x8a, 0x45, 0xde, 0xd8, 0x7b, 0x98, 0xc1, 0xdc, 0x29, 0x5c, 0xd7,
+0x07, 0xe8, 0x96, 0x8c, 0xec, 0x51, 0x69, 0xb5, 0x94, 0x30, 0x8a, 0xa4,
+0x08, 0xc7, 0x50, 0x77, 0xfd, 0xfb, 0x82, 0xb1, 0x5d, 0xa9, 0x33, 0xd7,
+0x0d, 0x63, 0xce, 0x04, 0x50, 0x5f, 0x55, 0x29, 0x02, 0x76, 0x2b, 0x54,
+0x5b, 0x34, 0x66, 0x11, 0x9d, 0x1f, 0x41, 0x5c, 0xa1, 0x7a, 0xb2, 0x46,
+0xcd, 0x09, 0x27, 0x50, 0x60, 0x87, 0x64, 0xe4, 0xde, 0x46, 0x9d, 0x86,
+0x0b, 0xe5, 0x81, 0xa4, 0x94, 0x05, 0x09, 0x02, 0x04, 0x50, 0x5a, 0x63,
+0x6a, 0x4d, 0xc2, 0xb6, 0x69, 0xee, 0x88, 0x61, 0x18, 0xc6, 0x34, 0x00,
+0xb0, 0x47, 0x32, 0x32, 0x08, 0x0c, 0x72, 0x26, 0x0c, 0x4e, 0xa7, 0xc6,
+0x33, 0xe0, 0x1a, 0x25, 0x05, 0xb4, 0x89, 0x9c, 0x9b, 0x3e, 0xa8, 0xb4,
+0x4a, 0x49, 0x46, 0x72, 0x59, 0xd2, 0xa0, 0x79, 0x52, 0x69, 0xda, 0x6c,
+0xcb, 0x62, 0xd1, 0xea, 0x79, 0x74, 0x5e, 0xd2, 0x8a, 0x88, 0x30, 0x3a,
+0x56, 0xe4, 0xf8, 0x3b, 0x13, 0x94, 0x8e, 0x3b, 0x04, 0x5e, 0xb0, 0x49,
+0xa5, 0x55, 0xab, 0x64, 0xe4, 0x0f, 0xce, 0x05, 0xa8, 0x0a, 0xbe, 0x08,
+0x41, 0x10, 0x20, 0x22, 0x28, 0xa5, 0x88, 0x47, 0x22, 0xb4, 0xce, 0x8f,
+0x11, 0x89, 0x18, 0x38, 0x0e, 0x88, 0x90, 0xca, 0x92, 0xbe, 0xe0, 0xa0,
+0xaa, 0xf7, 0xea, 0xd9, 0x70, 0x33, 0x15, 0x6e, 0xad, 0x03, 0x35, 0xe0,
+0xc6, 0x01, 0xd2, 0x0f, 0x64, 0xd7, 0x62, 0x90, 0x52, 0x28, 0x12, 0x0b,
+0x6d, 0x96, 0x2c, 0x9c, 0xc7, 0x65, 0x0b, 0x16, 0x20, 0x22, 0xb4, 0xc4,
+0xe3, 0x04, 0x26, 0x8c, 0xe8, 0x31, 0x2a, 0x43, 0x35, 0x24, 0xa0, 0x47,
+0xa5, 0xd5, 0x66, 0xc9, 0x48, 0xa1, 0x01, 0x90, 0x03, 0xba, 0x03, 0x07,
+0x6a, 0x8e, 0x47, 0xb5, 0x56, 0xa3, 0xe6, 0xba, 0xb8, 0x9e, 0x87, 0x00,
+0xb6, 0x1d, 0x21, 0xd2, 0x6e, 0xc2, 0xa4, 0x02, 0xce, 0x1f, 0x39, 0x7e,
+0x56, 0x91, 0x8c, 0x4c, 0xd4, 0xc1, 0x66, 0xc3, 0x69, 0xf2, 0x48, 0xe3,
+0x52, 0x11, 0x8d, 0x44, 0x68, 0x8e, 0xc5, 0x50, 0x80, 0x1f, 0x04, 0x14,
+0x9a, 0x9a, 0x28, 0x2c, 0x2d, 0x51, 0x3d, 0xee, 0x21, 0x12, 0x80, 0xf0,
+0x59, 0xe0, 0xe9, 0x46, 0x80, 0xcc, 0x01, 0x88, 0x04, 0x54, 0x8e, 0x38,
+0x9c, 0x9e, 0x9a, 0x62, 0xac, 0x54, 0x62, 0xa2, 0x52, 0x61, 0xaa, 0x5a,
+0xa5, 0xe6, 0xba, 0x88, 0x35, 0xed, 0xc3, 0xc9, 0x74, 0x3a, 0x9b, 0xbc,
+0x18, 0x88, 0xf3, 0x49, 0xe6, 0xcf, 0x7a, 0x07, 0xd1, 0xe4, 0x45, 0x09,
+0x4e, 0xd1, 0xc3, 0xa9, 0xb9, 0x68, 0x20, 0x62, 0x9a, 0xd8, 0x96, 0x15,
+0xce, 0x4b, 0xb6, 0x89, 0x8e, 0x42, 0x7d, 0x55, 0x97, 0x82, 0x33, 0x2e,
+0xf4, 0x7c, 0x08, 0x00, 0xd5, 0x11, 0x8f, 0x93, 0xba, 0x88, 0x89, 0x66,
+0xb2, 0x52, 0x41, 0x6b, 0xcd, 0xf1, 0x53, 0x05, 0x2a, 0x27, 0x6a, 0x33,
+0xc3, 0xe8, 0x52, 0x20, 0xaf, 0xfe, 0x52, 0x25, 0xd1, 0xf4, 0xa0, 0xc8,
+0xd7, 0x4b, 0x2e, 0xb3, 0xb9, 0xf7, 0x43, 0xb7, 0x57, 0xce, 0xe7, 0x7e,
+0xbd, 0x64, 0x48, 0xab, 0x6c, 0x4e, 0x20, 0x59, 0xf3, 0x3c, 0x26, 0x0a,
+0x15, 0x2a, 0x0b, 0xdd, 0xe9, 0xd9, 0x5c, 0x6b, 0x8d, 0xa1, 0x14, 0xca,
+0x56, 0x50, 0x3e, 0x0b, 0x40, 0x32, 0x32, 0xa1, 0xd2, 0xea, 0x29, 0xa0,
+0x27, 0x08, 0x02, 0xa6, 0x86, 0xaa, 0xbc, 0x37, 0x3e, 0xca, 0xa9, 0xce,
+0x22, 0xca, 0xd6, 0x54, 0x86, 0x1d, 0xaa, 0xa5, 0x5a, 0x23, 0x72, 0xe4,
+0x24, 0x23, 0xa1, 0xf9, 0x0d, 0x5a, 0x51, 0x6c, 0x69, 0x6c, 0xb5, 0x28,
+0x05, 0xe9, 0xc7, 0xb2, 0x10, 0xba, 0x47, 0x01, 0x21, 0x87, 0x90, 0x47,
+0xc8, 0x13, 0x90, 0xcf, 0xdc, 0xd7, 0x9b, 0x87, 0xd9, 0x13, 0xd5, 0x2c,
+0x18, 0x4d, 0x8e, 0x80, 0xf5, 0x7e, 0xe0, 0x33, 0x59, 0xac, 0x50, 0x72,
+0x1c, 0x62, 0x91, 0x48, 0x38, 0x1e, 0x09, 0x03, 0x8b, 0xb2, 0x55, 0xc3,
+0x02, 0x49, 0x38, 0x77, 0x4d, 0xbc, 0x0d, 0xb8, 0x17, 0xc2, 0x98, 0x6e,
+0x18, 0xe1, 0x93, 0xe1, 0x6c, 0x2a, 0x00, 0x05, 0xc2, 0x30, 0xba, 0x6f,
+0xba, 0xce, 0x76, 0x25, 0x4a, 0x83, 0xb6, 0x34, 0x86, 0xa1, 0xc3, 0xb8,
+0x5f, 0xbf, 0x27, 0x02, 0xe2, 0x0b, 0x12, 0x08, 0x81, 0x2f, 0xe1, 0xb5,
+0x2f, 0x39, 0x09, 0x98, 0x40, 0xe8, 0x27, 0xa0, 0x40, 0x40, 0x8e, 0x80,
+0xbc, 0x3c, 0x24, 0x79, 0xb5, 0x45, 0xad, 0x25, 0xa0, 0x5f, 0xa3, 0x59,
+0xb8, 0xb8, 0x8d, 0xeb, 0x7e, 0x65, 0x19, 0x8b, 0xdb, 0xdb, 0x29, 0x39,
+0x0e, 0xef, 0x8d, 0x8e, 0x72, 0xe8, 0xc4, 0x09, 0x4e, 0x1c, 0x2c, 0x50,
+0x3b, 0xe6, 0x85, 0xa9, 0xfc, 0xe3, 0xa2, 0x66, 0xcd, 0xc4, 0x92, 0x91,
+0xcd, 0x2a, 0xad, 0x9e, 0x07, 0xfa, 0x44, 0xa4, 0xdb, 0xf3, 0x66, 0xed,
+0x58, 0xe4, 0x81, 0xf5, 0x33, 0x95, 0x0f, 0x09, 0xc0, 0x30, 0x35, 0xdd,
+0x57, 0x7d, 0x82, 0xc3, 0x13, 0xef, 0x12, 0xb3, 0x6d, 0x22, 0xa6, 0x19,
+0x8e, 0x47, 0x01, 0xd7, 0xf5, 0x71, 0x3d, 0x8f, 0xaa, 0xe3, 0x52, 0xad,
+0xba, 0x54, 0x2a, 0x4e, 0xaa, 0x5a, 0xae, 0xe1, 0xbb, 0xc1, 0xda, 0x19,
+0x6f, 0xcf, 0xa9, 0xad, 0xaa, 0x1b, 0x28, 0xa0, 0x40, 0x24, 0x4c, 0xcd,
+0xab, 0xae, 0x8b, 0x1b, 0x04, 0x78, 0xf5, 0x54, 0x64, 0xd6, 0x0e, 0x4a,
+0xbd, 0x97, 0xce, 0xd9, 0x5a, 0x94, 0x8c, 0xec, 0xc9, 0x92, 0xbe, 0x39,
+0x9d, 0xce, 0xae, 0xe2, 0xcc, 0xe4, 0x94, 0x07, 0x9e, 0xaf, 0x47, 0x90,
+0xb3, 0x2a, 0xd0, 0xef, 0xfb, 0xd2, 0x1d, 0x8f, 0x44, 0x68, 0x49, 0x24,
+0x68, 0x8e, 0x46, 0x69, 0x8a, 0x46, 0xc3, 0x41, 0x67, 0x18, 0x98, 0x86,
+0x41, 0x20, 0x82, 0xe3, 0xba, 0x14, 0xcb, 0x65, 0x4e, 0x4e, 0x4c, 0x30,
+0x74, 0x62, 0x9c, 0xf1, 0x93, 0xa5, 0x90, 0x30, 0xb4, 0x6a, 0x8f, 0x6c,
+0x91, 0x89, 0x2c, 0xe9, 0x7d, 0xe9, 0x87, 0xb2, 0x48, 0x20, 0x78, 0x8e,
+0x8f, 0xe7, 0x79, 0x78, 0x9e, 0x87, 0xeb, 0xfb, 0x78, 0xf5, 0x74, 0x7c,
+0x1a, 0x42, 0x2e, 0x00, 0x00, 0xa1, 0x5f, 0xf6, 0x66, 0x32, 0xfb, 0x80,
+0x7d, 0xe7, 0xbb, 0x3f, 0x4b, 0x82, 0xf0, 0x6d, 0x51, 0xcb, 0x66, 0x55,
+0xc7, 0x6a, 0x06, 0xcb, 0xfb, 0xd1, 0x4a, 0x61, 0x6a, 0x4d, 0xb4, 0x9e,
+0x92, 0x6b, 0xa5, 0xc2, 0x75, 0x85, 0xeb, 0x32, 0x59, 0xa8, 0x32, 0x79,
+0xba, 0x0a, 0x41, 0x98, 0x9e, 0x23, 0xac, 0x97, 0x87, 0x42, 0xab, 0xf6,
+0x92, 0x21, 0x4d, 0x36, 0x7c, 0xad, 0x1f, 0x26, 0x7f, 0xae, 0xef, 0x53,
+0x73, 0x5d, 0x6a, 0x75, 0x88, 0xce, 0x96, 0x2e, 0xde, 0x67, 0x68, 0xba,
+0xf9, 0x8b, 0xdf, 0x9d, 0x0e, 0x57, 0x68, 0x38, 0x6e, 0x99, 0xe5, 0xad,
+0x57, 0x61, 0x1a, 0x06, 0xa2, 0x14, 0x7e, 0x3d, 0x7d, 0xf6, 0x3c, 0x0f,
+0xc7, 0x75, 0x99, 0x28, 0x95, 0x79, 0xf7, 0xc0, 0x10, 0x43, 0xc3, 0xe3,
+0x78, 0x35, 0x0f, 0x09, 0x97, 0xa4, 0x3d, 0x99, 0xaf, 0xf7, 0x4e, 0xcf,
+0x07, 0x59, 0xd2, 0x0d, 0x28, 0x54, 0x7d, 0xec, 0x39, 0x9e, 0x47, 0xb5,
+0x0e, 0xef, 0xfa, 0x3e, 0x09, 0xbf, 0xa9, 0xf1, 0x4c, 0x6e, 0x6e, 0x00,
+0x7c, 0x0a, 0xe2, 0xc3, 0x60, 0xf1, 0x08, 0x97, 0xc6, 0x17, 0x87, 0x6e,
+0x03, 0x20, 0x82, 0xef, 0xfb, 0x38, 0x9e, 0xc7, 0x58, 0xb1, 0xc4, 0x9b,
+0x6f, 0x1f, 0x65, 0x68, 0x64, 0x0c, 0xcf, 0x99, 0x56, 0xfe, 0xa9, 0xcc,
+0xd7, 0x7b, 0x9f, 0x3e, 0x27, 0xa4, 0x06, 0xa0, 0x44, 0x61, 0x46, 0x42,
+0xd5, 0x6a, 0xae, 0x4b, 0xd9, 0x71, 0xa8, 0xd6, 0x6a, 0xac, 0x9c, 0x7f,
+0x0d, 0x07, 0x86, 0x0e, 0x34, 0x00, 0x0a, 0x73, 0x05, 0x90, 0xc7, 0x83,
+0x98, 0x15, 0x61, 0x59, 0xf3, 0x55, 0xc4, 0x6c, 0x1b, 0xdb, 0xb6, 0xb1,
+0x4c, 0x13, 0xad, 0xc3, 0xa8, 0x14, 0x8d, 0x84, 0xeb, 0x8b, 0xfa, 0x9a,
+0x3a, 0xac, 0xe3, 0xb3, 0x19, 0xce, 0x84, 0xd4, 0x2c, 0x69, 0xd2, 0x0f,
+0x66, 0x3f, 0x4b, 0x00, 0x5a, 0x29, 0x22, 0x71, 0x0b, 0xa5, 0x35, 0x95,
+0x3a, 0x40, 0xb9, 0x56, 0xe3, 0xf2, 0xb6, 0xe5, 0x30, 0x25, 0x73, 0x6c,
+0x01, 0x8f, 0x3c, 0x3e, 0x04, 0xae, 0xd0, 0x62, 0xb6, 0xd1, 0x1c, 0x8b,
+0xd1, 0x5c, 0x5f, 0x53, 0x5f, 0xd3, 0xba, 0x9a, 0xae, 0xf8, 0x22, 0x9a,
+0x62, 0x51, 0x6e, 0x5c, 0x73, 0x15, 0x2b, 0x97, 0x5f, 0x4a, 0x44, 0x9b,
+0xa8, 0x40, 0x25, 0xf1, 0x39, 0x9a, 0x7e, 0x28, 0xdb, 0x37, 0xad, 0xfc,
+0x03, 0xd9, 0x24, 0x01, 0x7d, 0x4a, 0xc0, 0x32, 0x4c, 0x5a, 0x3a, 0x62,
+0x68, 0xa0, 0xec, 0x38, 0x4c, 0x39, 0x0e, 0x95, 0x5a, 0x8d, 0x84, 0x4a,
+0xd4, 0xd3, 0x6b, 0xa0, 0x9e, 0x3d, 0x7c, 0xe8, 0x01, 0xc7, 0x87, 0x8a,
+0x1f, 0x9a, 0xd2, 0xad, 0x7a, 0xf8, 0xd4, 0x58, 0xd2, 0xb4, 0x84, 0x62,
+0x70, 0x9a, 0x75, 0x2d, 0x77, 0xb0, 0xae, 0xe5, 0x0e, 0x86, 0x6b, 0x47,
+0x79, 0xe2, 0xc4, 0x56, 0x2a, 0x41, 0x89, 0x1b, 0xd6, 0xfc, 0x12, 0x8b,
+0x3a, 0xdb, 0xd9, 0xbb, 0xf7, 0x00, 0x93, 0x93, 0x95, 0x36, 0x3f, 0x08,
+0xb6, 0xa4, 0x1f, 0xc8, 0x6e, 0x69, 0xf8, 0x3d, 0x01, 0x68, 0xad, 0x69,
+0x6b, 0x8f, 0x33, 0xaf, 0xb3, 0x89, 0x00, 0x28, 0x55, 0xab, 0x94, 0x1c,
+0x87, 0xee, 0xcb, 0x6e, 0x65, 0xe8, 0xc4, 0x70, 0x3d, 0x68, 0x00, 0xd0,
+0x0f, 0x73, 0x60, 0x01, 0xd9, 0x2a, 0xfb, 0xf0, 0xc1, 0x52, 0x06, 0x11,
+0x6d, 0xf2, 0xb1, 0xa6, 0x14, 0x1b, 0x3a, 0xb7, 0x72, 0x53, 0xfc, 0xd3,
+0x6c, 0xda, 0xf9, 0x87, 0x1c, 0x73, 0xf6, 0xd3, 0xd3, 0x79, 0x3f, 0x51,
+0xcb, 0x22, 0x66, 0x59, 0x2c, 0x4f, 0x2e, 0xe4, 0xf6, 0xdb, 0xd6, 0xb0,
+0x2c, 0xd9, 0x45, 0xcc, 0xb2, 0x31, 0xd1, 0xa8, 0x00, 0x54, 0x00, 0x96,
+0x36, 0x68, 0x6f, 0x49, 0xb0, 0xe4, 0x63, 0x1d, 0xc4, 0x22, 0x11, 0xaa,
+0xae, 0xcb, 0x64, 0xb5, 0x8a, 0x0e, 0x4c, 0xee, 0xb8, 0xfa, 0xb7, 0xe9,
+0x7f, 0x6d, 0x77, 0xa3, 0xd9, 0x7c, 0x3d, 0xe3, 0x9d, 0x03, 0x0b, 0x00,
+0x78, 0x30, 0x36, 0x3a, 0xc5, 0xb0, 0x77, 0x90, 0xf5, 0x2d, 0x77, 0x53,
+0xf5, 0xca, 0x74, 0x3f, 0xbe, 0x8e, 0x81, 0x91, 0x01, 0x76, 0x1d, 0xd9,
+0xc9, 0xf7, 0x7b, 0x9f, 0x61, 0xe3, 0x25, 0x8f, 0xf0, 0xdd, 0xd3, 0x7d,
+0x94, 0xfd, 0x12, 0xf3, 0xda, 0x9a, 0x59, 0xb7, 0xee, 0x1a, 0x46, 0x46,
+0xc6, 0x39, 0xb0, 0x7f, 0x84, 0xe1, 0xc1, 0x71, 0x10, 0xe8, 0x5c, 0xda,
+0xca, 0xa2, 0xe5, 0xed, 0x44, 0x22, 0x26, 0x15, 0xd7, 0x0d, 0xf7, 0x93,
+0xaa, 0x55, 0xee, 0xf9, 0xe5, 0xaf, 0xd1, 0xbf, 0xbf, 0x9f, 0xc9, 0xb1,
+0xa9, 0x46, 0x8b, 0xcf, 0x37, 0x2e, 0xe6, 0x06, 0xc0, 0xa7, 0xdf, 0xa9,
+0x78, 0xdd, 0x86, 0xd6, 0x54, 0xbc, 0x12, 0x37, 0x3f, 0x76, 0x0b, 0x03,
+0x23, 0x03, 0x20, 0x30, 0x32, 0x34, 0xce, 0xe7, 0x1f, 0xff, 0x5d, 0xbe,
+0x77, 0xf7, 0x3f, 0xd0, 0x33, 0xef, 0x21, 0x9e, 0x1d, 0x7b, 0x9c, 0xa1,
+0xda, 0x51, 0x0c, 0xad, 0xe9, 0xea, 0x6a, 0xa3, 0x6d, 0x7e, 0x82, 0xea,
+0xf5, 0x2e, 0x35, 0xcf, 0x9b, 0xde, 0x43, 0x2a, 0xd7, 0x6a, 0x94, 0x2a,
+0x15, 0x8a, 0x95, 0x0a, 0x9b, 0xd7, 0xfc, 0x31, 0x37, 0x2d, 0xf9, 0x55,
+0x6e, 0xfb, 0xbb, 0xdb, 0x66, 0xb6, 0x38, 0x7d, 0x02, 0x34, 0x37, 0xa7,
+0x94, 0x5e, 0xb8, 0xc5, 0xb8, 0xf7, 0xe0, 0x4f, 0xe8, 0xde, 0xbe, 0x8e,
+0x81, 0x63, 0x03, 0x8d, 0x9d, 0x37, 0xf0, 0x61, 0x64, 0xa8, 0xc0, 0x6f,
+0x3d, 0x76, 0x27, 0x6f, 0x8e, 0xbf, 0xc6, 0xdd, 0x9d, 0x7f, 0xce, 0x27,
+0x5b, 0xee, 0x42, 0x79, 0x16, 0x8e, 0xe7, 0x21, 0x22, 0x18, 0x5a, 0x63,
+0x68, 0x4d, 0x20, 0x42, 0xd9, 0x71, 0x28, 0x96, 0xcb, 0xb8, 0x9e, 0xc1,
+0x83, 0x1f, 0xdf, 0xca, 0xa7, 0x96, 0x7d, 0x9a, 0x2d, 0x3f, 0xfa, 0x06,
+0x53, 0xc7, 0xa7, 0x7b, 0xbf, 0xbf, 0xe1, 0x3e, 0xf0, 0x01, 0x87, 0x7c,
+0x3f, 0x8f, 0xa8, 0x7b, 0xce, 0x24, 0x81, 0x33, 0x24, 0x07, 0x6c, 0x21,
+0x5c, 0x6a, 0xa6, 0x10, 0xb0, 0xa3, 0x26, 0x1b, 0xbf, 0xf0, 0x05, 0xee,
+0x5e, 0x79, 0x3f, 0x6d, 0x56, 0x07, 0xaf, 0x8d, 0xbf, 0xc4, 0xfe, 0xc9,
+0x7d, 0x9c, 0x70, 0x8e, 0xf3, 0xf6, 0xd8, 0x5b, 0x2c, 0xb0, 0x2e, 0x45,
+0x89, 0xc5, 0x8d, 0x97, 0xdc, 0xcc, 0x75, 0x5d, 0x37, 0x12, 0xb7, 0xe2,
+0x3c, 0xb8, 0xfb, 0x41, 0x76, 0x7e, 0x6f, 0x67, 0xd8, 0x19, 0xa1, 0xa4,
+0x66, 0x25, 0x93, 0x73, 0x02, 0xf0, 0x65, 0xb5, 0x05, 0xe8, 0x0b, 0x7f,
+0x00, 0xd0, 0x27, 0x7f, 0x13, 0x1e, 0x1f, 0xa9, 0x2f, 0xab, 0x56, 0xc2,
+0x88, 0x91, 0x6a, 0xe4, 0x2f, 0x2b, 0xaf, 0xbd, 0x82, 0x8d, 0x9f, 0xda,
+0xc0, 0x27, 0x16, 0x7e, 0x92, 0x76, 0xbb, 0x83, 0x80, 0x00, 0x1f, 0x7f,
+0xd6, 0xf7, 0xfb, 0x53, 0xc7, 0xf8, 0xe6, 0xab, 0xdf, 0xe4, 0xe5, 0x5d,
+0xbb, 0xa1, 0x32, 0xdd, 0xd4, 0x76, 0xc9, 0xcc, 0x3e, 0xd5, 0x99, 0x1b,
+0x80, 0xb4, 0xfa, 0x12, 0xf0, 0x54, 0x5d, 0xd1, 0x9e, 0x99, 0x26, 0xae,
+0xdf, 0x6f, 0x25, 0x1c, 0x78, 0xdd, 0x33, 0xff, 0xde, 0xb5, 0xac, 0x8d,
+0xd5, 0x2b, 0xaf, 0x65, 0xed, 0x8a, 0x75, 0xb8, 0xbe, 0x47, 0x2d, 0xf0,
+0x70, 0x7d, 0x8f, 0xff, 0x1c, 0x7e, 0x9b, 0x1f, 0xed, 0x7d, 0x91, 0xe0,
+0xb8, 0xcc, 0xec, 0xf9, 0x9c, 0x64, 0x64, 0xf5, 0x39, 0x6d, 0xcf, 0x11,
+0xc0, 0x2a, 0x42, 0xd3, 0x7e, 0xe0, 0xa9, 0xa3, 0x4a, 0xab, 0x4d, 0x84,
+0x96, 0x3a, 0x67, 0x4b, 0x51, 0x9b, 0x0a, 0x1d, 0xd5, 0x78, 0x53, 0xfe,
+0x39, 0xf5, 0xa8, 0xaf, 0xd9, 0xcf, 0x97, 0x0d, 0xcf, 0x09, 0xc0, 0xcf,
+0x23, 0xf5, 0x2d, 0x97, 0x3e, 0xa0, 0xe7, 0x67, 0xac, 0xb2, 0x1d, 0xe8,
+0x3b, 0x6f, 0x2a, 0xcf, 0x47, 0x00, 0x30, 0xdd, 0x70, 0xe8, 0x56, 0x3d,
+0x84, 0x6e, 0xd5, 0xd8, 0x66, 0x81, 0x70, 0xed, 0x91, 0x27, 0x74, 0xb9,
+0xe7, 0xcf, 0x76, 0xc7, 0x73, 0xde, 0xf3, 0xff, 0xff, 0xad, 0xf2, 0x11,
+0xcb, 0xff, 0x00, 0x23, 0xdd, 0xb3, 0x7f, 0xe6, 0x37, 0xca, 0x79, 0x00,
+0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
+};
diff --git a/Source/Core/DebuggerWX/resources/toolbar_add_memorycheck.c b/Source/Core/DebuggerWX/resources/toolbar_add_memorycheck.c
new file mode 100644
index 0000000000..0dac310112
--- /dev/null
+++ b/Source/Core/DebuggerWX/resources/toolbar_add_memorycheck.c
@@ -0,0 +1,239 @@
+static const unsigned char toolbar_add_memcheck_png[] = {
+0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
+0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
+0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00,
+0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64,
+0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b,
+0x12, 0x00, 0x00, 0x0b, 0x12, 0x01, 0xd2, 0xdd, 0x7e, 0xfc, 0x00, 0x00,
+0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
+0x72, 0x65, 0x00, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x69,
+0x61, 0x20, 0x46, 0x69, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20,
+0x4d, 0x58, 0x20, 0x32, 0x30, 0x30, 0x34, 0x87, 0x76, 0xac, 0xcf, 0x00,
+0x00, 0x00, 0x15, 0x74, 0x45, 0x58, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74,
+0x69, 0x6f, 0x6e, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x00, 0x39, 0x2f, 0x31,
+0x31, 0x2f, 0x30, 0x34, 0x0e, 0x46, 0xed, 0x55, 0x00, 0x00, 0x0a, 0x6a,
+0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xd5, 0x9a, 0x5f, 0x8c, 0x5c, 0xd7,
+0x5d, 0xc7, 0x3f, 0xe7, 0xdc, 0x7b, 0xe7, 0xde, 0x99, 0xd9, 0x3f, 0xb3,
+0xb1, 0xbd, 0x76, 0xdc, 0x84, 0xac, 0x31, 0xa4, 0x89, 0xe8, 0x9f, 0x15,
+0x15, 0x22, 0x45, 0x21, 0xb1, 0x1b, 0x25, 0x8a, 0x02, 0x28, 0xe6, 0x89,
+0x07, 0x5a, 0x39, 0x7d, 0xe1, 0x01, 0x24, 0x12, 0x1e, 0x10, 0x52, 0xd5,
+0x07, 0xf3, 0x08, 0xa8, 0x28, 0x41, 0x6a, 0xc0, 0x48, 0x34, 0x81, 0x8a,
+0x06, 0x90, 0x4a, 0x8c, 0x10, 0x14, 0x89, 0x56, 0x5d, 0x22, 0x51, 0xda,
+0xaa, 0x21, 0x9b, 0xe0, 0xa4, 0x69, 0x12, 0xdb, 0xeb, 0x64, 0xbd, 0xf6,
+0xee, 0x7a, 0xff, 0xcd, 0xee, 0xcc, 0xce, 0xcc, 0x39, 0xbf, 0xf3, 0xe3,
+0xe1, 0xdc, 0xd9, 0x5d, 0x68, 0xa5, 0xcc, 0xce, 0x5a, 0xa9, 0x7a, 0xa5,
+0x9f, 0xe6, 0xce, 0x8e, 0xe6, 0xde, 0xef, 0xe7, 0xfc, 0xbe, 0xe7, 0xf7,
+0x3b, 0xe7, 0xce, 0x1a, 0x55, 0xe5, 0x27, 0xf9, 0xb0, 0x3f, 0x6e, 0x01,
+0x07, 0x3d, 0xd2, 0x5b, 0x75, 0xa1, 0xb5, 0xbf, 0xf8, 0x54, 0x43, 0x24,
+0x9c, 0xf1, 0x5e, 0xce, 0x78, 0x91, 0x8f, 0x3b, 0x2f, 0x53, 0xce, 0x0b,
+0xde, 0xcb, 0x9c, 0xf3, 0xf2, 0xaa, 0xf7, 0x72, 0xc1, 0x79, 0xb9, 0x70,
+0xdf, 0x1f, 0xbf, 0xb9, 0x7e, 0xab, 0xee, 0x09, 0x60, 0x6e, 0x85, 0x85,
+0xda, 0x5f, 0x7a, 0xe4, 0x9c, 0x97, 0xf0, 0xa4, 0xf7, 0xd2, 0xf0, 0x5e,
+0x70, 0x65, 0xfc, 0xd0, 0xb9, 0x93, 0x75, 0xe7, 0xe5, 0x99, 0xfb, 0xff,
+0xf4, 0xad, 0x73, 0x07, 0x97, 0x1e, 0x8f, 0x03, 0x01, 0xf8, 0x2f, 0x3f,
+0xd6, 0xc0, 0x98, 0x17, 0x45, 0xe4, 0xd4, 0x1e, 0x91, 0x38, 0x2f, 0x24,
+0x63, 0x35, 0xbc, 0x17, 0x36, 0x17, 0xd7, 0x76, 0x20, 0x5c, 0xf9, 0xb9,
+0xf7, 0x32, 0xe3, 0xbc, 0xfc, 0xfa, 0xc3, 0xcf, 0xce, 0x1d, 0x38, 0x1b,
+0x43, 0x03, 0x74, 0x9e, 0x7f, 0xb4, 0x91, 0xa5, 0xc9, 0x37, 0x8d, 0x35,
+0xd3, 0xbe, 0x14, 0x6d, 0x8e, 0x1f, 0xa1, 0x72, 0xd7, 0x31, 0xd2, 0xd1,
+0xdb, 0x40, 0x2b, 0xe0, 0xba, 0xb0, 0x75, 0x93, 0xce, 0xb5, 0x6b, 0x2c,
+0x5e, 0x5a, 0xe0, 0xc6, 0xfc, 0x6a, 0x1f, 0x00, 0xe7, 0x65, 0xd6, 0x79,
+0x7f, 0xfa, 0xb1, 0xbf, 0x9c, 0x3f, 0x10, 0xc4, 0xd0, 0x73, 0x20, 0xa8,
+0xbe, 0x28, 0x21, 0x4c, 0x13, 0x20, 0xa4, 0x96, 0xe2, 0x97, 0x3f, 0x41,
+0x32, 0xf9, 0x61, 0x28, 0x7e, 0x1e, 0xd2, 0x11, 0xa0, 0x0b, 0x74, 0x80,
+0x0e, 0xc5, 0xcf, 0x5c, 0xe3, 0xae, 0x3b, 0xff, 0x8b, 0x89, 0x8b, 0xaf,
+0xf2, 0xc6, 0xec, 0x55, 0xbc, 0x17, 0x80, 0x69, 0xe0, 0x45, 0xe0, 0xf4,
+0x41, 0x00, 0x86, 0xca, 0xc0, 0xfa, 0xf9, 0x4f, 0x9d, 0x4d, 0x92, 0xe4,
+0xf9, 0xc4, 0x1a, 0x4c, 0x96, 0x91, 0x3f, 0xfc, 0x4b, 0xd8, 0xc9, 0x5f,
+0x05, 0x7b, 0x72, 0x57, 0xf8, 0xf6, 0x65, 0x68, 0x5f, 0x03, 0xe9, 0x40,
+0x5e, 0x83, 0xf1, 0x06, 0x5c, 0xbb, 0x48, 0xeb, 0x3f, 0xfe, 0x95, 0x57,
+0x5e, 0xbe, 0x4a, 0xbb, 0xdd, 0xeb, 0xdb, 0xea, 0x89, 0x33, 0xcf, 0x5d,
+0xff, 0xeb, 0x61, 0x01, 0x86, 0xca, 0x80, 0x48, 0x38, 0x07, 0x10, 0x82,
+0xa1, 0xfe, 0xe0, 0x2f, 0x60, 0x27, 0x1f, 0x01, 0xfb, 0x51, 0xd0, 0x4d,
+0xd8, 0xfe, 0x6f, 0xd8, 0xf8, 0x2e, 0xb4, 0x9b, 0xd0, 0xe9, 0x40, 0xb7,
+0x1b, 0x23, 0x00, 0x77, 0xde, 0x4b, 0xfd, 0x93, 0x0f, 0xf0, 0x91, 0xce,
+0x37, 0xf8, 0xee, 0xcb, 0x73, 0xf1, 0x62, 0xaa, 0xe7, 0x80, 0xa1, 0x01,
+0xf6, 0xdd, 0x07, 0x16, 0x9e, 0xbe, 0xff, 0x71, 0x2f, 0x61, 0xca, 0xfb,
+0x80, 0x99, 0x18, 0x23, 0x3d, 0x7a, 0x0f, 0xd8, 0x7b, 0x41, 0x5b, 0xb0,
+0xf5, 0x55, 0xd8, 0xfa, 0x0e, 0xf8, 0x0e, 0xa8, 0xc6, 0x08, 0x21, 0xbe,
+0x8a, 0x83, 0xcb, 0xb3, 0xd0, 0xde, 0xa4, 0x71, 0xcf, 0x49, 0x0e, 0xdd,
+0x36, 0x82, 0xa2, 0xa8, 0x32, 0xf5, 0x0f, 0xbf, 0x79, 0xe4, 0xf1, 0x0f,
+0x0c, 0xa0, 0xac, 0xf5, 0x38, 0x2f, 0x54, 0x4e, 0x1c, 0x87, 0xec, 0x6e,
+0xa0, 0x07, 0x9b, 0xff, 0x08, 0xdb, 0x0b, 0xe0, 0x7d, 0x0c, 0x91, 0x28,
+0xbe, 0x0f, 0x60, 0x2d, 0x24, 0x09, 0xac, 0xde, 0x00, 0xf1, 0xdc, 0x75,
+0x47, 0x03, 0x8c, 0x45, 0x55, 0x51, 0xd5, 0x33, 0xc3, 0x02, 0xec, 0xdb,
+0x42, 0x5e, 0x64, 0xda, 0xaa, 0xc5, 0x06, 0xa5, 0x98, 0x3c, 0x02, 0xf9,
+0xed, 0xd0, 0x7e, 0x0d, 0xb6, 0xae, 0x44, 0xb1, 0x7d, 0x80, 0x7e, 0xf4,
+0x01, 0x8c, 0x81, 0x34, 0x8d, 0x20, 0xce, 0x71, 0xf8, 0xe8, 0x38, 0x58,
+0x4b, 0x88, 0x00, 0xd3, 0xc3, 0x02, 0xec, 0x3b, 0x03, 0x5e, 0xc2, 0xb4,
+0xf7, 0x42, 0x32, 0x5e, 0x07, 0x33, 0x02, 0xf4, 0xe0, 0xe6, 0x7f, 0xee,
+0xfa, 0xbd, 0xd7, 0x8b, 0xe1, 0xdc, 0x2e, 0x40, 0x5f, 0x7c, 0xa5, 0x02,
+0x45, 0x11, 0x23, 0xcb, 0x38, 0xd4, 0x28, 0x50, 0x20, 0x1c, 0x00, 0x60,
+0xff, 0x19, 0xf0, 0x82, 0x35, 0x06, 0x71, 0x3e, 0xd6, 0x79, 0xb7, 0x0c,
+0xad, 0x9b, 0xf1, 0x43, 0xd5, 0x68, 0x9d, 0xbd, 0x36, 0x52, 0x8d, 0xd6,
+0xa9, 0x54, 0x20, 0xcf, 0xe3, 0x39, 0x44, 0x20, 0x63, 0x08, 0x41, 0x09,
+0x61, 0xf8, 0x66, 0x3a, 0x14, 0x80, 0xb1, 0x06, 0xf1, 0x25, 0x40, 0x6b,
+0x21, 0x8e, 0x3c, 0xec, 0x99, 0xb0, 0xa5, 0xff, 0xfb, 0x42, 0xb3, 0x0c,
+0xaa, 0xd5, 0x08, 0x60, 0x4c, 0xcc, 0x0e, 0x10, 0x24, 0x10, 0x42, 0x38,
+0x10, 0xc0, 0x30, 0x16, 0x9a, 0xf1, 0x3e, 0xb0, 0x71, 0x73, 0x03, 0xb6,
+0x56, 0x61, 0x6b, 0x61, 0xd7, 0x2e, 0x7b, 0x85, 0x5b, 0x1b, 0x85, 0x17,
+0x05, 0xd4, 0x6a, 0x31, 0x8a, 0x62, 0x37, 0x03, 0x22, 0xdc, 0xb8, 0xd9,
+0x8a, 0x00, 0x1a, 0x66, 0x3e, 0x30, 0x00, 0xe7, 0x65, 0xce, 0x97, 0xeb,
+0x9e, 0xf6, 0xc2, 0x42, 0xbc, 0x42, 0x5f, 0x78, 0xbf, 0xd2, 0xa4, 0x69,
+0x1c, 0xed, 0x5a, 0x0d, 0xea, 0x75, 0x18, 0x1d, 0x8d, 0x19, 0x48, 0xd3,
+0x98, 0xa1, 0x6e, 0x97, 0xcd, 0xb5, 0x2d, 0x9c, 0x73, 0x88, 0x28, 0x21,
+0xe8, 0xdc, 0x07, 0x06, 0xe0, 0xbd, 0xcc, 0xf4, 0xcb, 0xe8, 0xcd, 0x77,
+0x97, 0x61, 0xe9, 0x52, 0xfc, 0xa0, 0x6f, 0x95, 0xa2, 0x88, 0xa2, 0x47,
+0x46, 0xa2, 0xf0, 0xd1, 0xd1, 0x08, 0x52, 0xa9, 0x44, 0xf1, 0xbd, 0x1e,
+0xb4, 0x5a, 0x5c, 0x9d, 0x5b, 0x46, 0x7a, 0x3e, 0x66, 0x40, 0x86, 0xcf,
+0xc0, 0x30, 0x73, 0xe0, 0x82, 0x31, 0x66, 0xdd, 0x18, 0xd3, 0xb8, 0x3e,
+0xbf, 0xc2, 0xf1, 0xa5, 0xeb, 0xa4, 0x13, 0xe3, 0xbb, 0xe2, 0xf3, 0x3c,
+0x9e, 0xf7, 0x81, 0x92, 0x64, 0xd7, 0xf7, 0xdd, 0x2e, 0x6c, 0x6e, 0xe2,
+0x56, 0xd6, 0x78, 0xeb, 0xf2, 0x12, 0x5e, 0x04, 0x09, 0x61, 0x3d, 0xa8,
+0x5e, 0x18, 0x16, 0x60, 0xdf, 0x19, 0x78, 0xe0, 0xe9, 0x77, 0x36, 0xbc,
+0x97, 0x0b, 0xde, 0x0b, 0x9d, 0xed, 0x1e, 0x6f, 0xbf, 0x72, 0x09, 0x36,
+0x9b, 0x71, 0x0e, 0x18, 0x13, 0x05, 0x67, 0xd9, 0xae, 0x78, 0x88, 0xe2,
+0xdb, 0x6d, 0x68, 0x36, 0x61, 0x65, 0x85, 0xef, 0x7d, 0xef, 0x32, 0xad,
+0xcd, 0x0e, 0x22, 0x01, 0x91, 0x70, 0xe1, 0xb7, 0xfe, 0xb9, 0xbd, 0xf1,
+0x81, 0x01, 0x00, 0x38, 0x91, 0x73, 0xce, 0x0b, 0xbd, 0x9e, 0x67, 0xe1,
+0xda, 0x1a, 0x8b, 0x97, 0x16, 0x60, 0x63, 0x23, 0x8a, 0xec, 0xf7, 0x00,
+0xe7, 0x62, 0x6f, 0x68, 0xb5, 0xa2, 0xf0, 0xb5, 0x35, 0x58, 0x5a, 0xe2,
+0xbd, 0xef, 0xbf, 0xcb, 0xe5, 0xcb, 0x4b, 0x38, 0xe7, 0x11, 0x09, 0x00,
+0xe7, 0x86, 0x15, 0x3f, 0x34, 0xc0, 0x23, 0xcf, 0x5e, 0xbd, 0xfa, 0xd6,
+0x68, 0xb8, 0xe0, 0xbd, 0xd0, 0xeb, 0xf6, 0x98, 0x9d, 0x7d, 0x8f, 0xf9,
+0xd7, 0xaf, 0xc0, 0xf5, 0xeb, 0xb0, 0xb4, 0x04, 0xab, 0xab, 0x51, 0xf0,
+0xda, 0x1a, 0xac, 0xac, 0xc0, 0x8d, 0x1b, 0x30, 0x3f, 0xcf, 0xa5, 0x57,
+0xde, 0xe1, 0xa5, 0x6f, 0xbd, 0x4d, 0xb7, 0xeb, 0x10, 0x09, 0x7c, 0xe3,
+0x28, 0x7c, 0xee, 0xa3, 0x7c, 0xf6, 0x20, 0x00, 0x43, 0x2d, 0xa7, 0x4f,
+0xbf, 0x70, 0xe2, 0x09, 0x55, 0x7d, 0xee, 0xd3, 0xdf, 0x71, 0x4c, 0x6e,
+0x29, 0x60, 0xb0, 0x89, 0x61, 0xf2, 0xc8, 0x18, 0x77, 0xff, 0xec, 0x24,
+0x8d, 0x23, 0xe5, 0x9c, 0x00, 0x70, 0x8e, 0x95, 0xc5, 0x75, 0x2e, 0xbe,
+0x7e, 0x8d, 0x77, 0xdf, 0x5b, 0xc1, 0x79, 0x41, 0xbc, 0x70, 0xbd, 0x80,
+0x2f, 0x7e, 0xd8, 0x94, 0x55, 0x28, 0xcc, 0x8a, 0xe8, 0xe9, 0x8d, 0x3f,
+0xe9, 0xec, 0x7b, 0x73, 0xb3, 0x6f, 0x80, 0x87, 0xfe, 0xfe, 0xa7, 0x9f,
+0x00, 0x9e, 0x0b, 0x41, 0xc9, 0x7a, 0x81, 0xcf, 0xbe, 0xd4, 0x25, 0x77,
+0xca, 0xce, 0x55, 0xac, 0xa1, 0x5e, 0x2f, 0xa8, 0xd7, 0x52, 0x42, 0x50,
+0x9a, 0x9b, 0x5d, 0x36, 0x9a, 0xdb, 0x88, 0xf3, 0x71, 0xd2, 0x4a, 0xa0,
+0x93, 0xc2, 0xd3, 0x1f, 0x49, 0x68, 0xa1, 0xfd, 0x32, 0x8a, 0x48, 0x98,
+0x0d, 0x41, 0x4f, 0x6f, 0x7e, 0xa1, 0xbb, 0x2f, 0x88, 0x7d, 0x01, 0x9c,
+0x7e, 0xe1, 0xc4, 0xb4, 0xb5, 0xe6, 0x9b, 0x40, 0x23, 0x04, 0xc5, 0x26,
+0x86, 0xa9, 0x4a, 0xca, 0x03, 0x2f, 0x39, 0xf2, 0x1b, 0x4d, 0x50, 0xe2,
+0xea, 0x12, 0x83, 0x6a, 0x29, 0x4c, 0xc3, 0xff, 0xe9, 0xb8, 0xcb, 0x87,
+0x2c, 0x5f, 0x7b, 0xb0, 0xc2, 0x7c, 0xaa, 0xb8, 0x05, 0xa1, 0xd7, 0x94,
+0x72, 0x32, 0x2b, 0x21, 0xe8, 0xcc, 0xe6, 0x17, 0xba, 0xfb, 0xda, 0xa1,
+0xed, 0x6b, 0x0e, 0x84, 0xa0, 0xcf, 0x89, 0x68, 0x43, 0x44, 0xc9, 0xf2,
+0x84, 0xa9, 0x7b, 0x1a, 0x3c, 0xfa, 0xc9, 0xdf, 0xe1, 0x57, 0xfe, 0x70,
+0x86, 0x3b, 0x1e, 0xfe, 0x4c, 0xb9, 0xc3, 0x0a, 0x38, 0xe7, 0x63, 0x78,
+0x8f, 0x2f, 0xf7, 0xc0, 0x21, 0x28, 0xaf, 0x7e, 0x2c, 0xe7, 0xab, 0xbf,
+0x56, 0x65, 0xf5, 0x70, 0x4a, 0x3e, 0x9e, 0x51, 0xbd, 0x3b, 0x23, 0xbf,
+0x33, 0xc3, 0x5a, 0xd3, 0xbf, 0xc5, 0xa9, 0xda, 0x53, 0x95, 0xb3, 0xfb,
+0xd1, 0x34, 0x70, 0x06, 0xee, 0xff, 0x9b, 0x9f, 0x7a, 0xd2, 0x18, 0xf3,
+0xb4, 0x31, 0x50, 0x54, 0x53, 0x4e, 0xde, 0x7b, 0x1b, 0x9f, 0xfe, 0xd0,
+0xe7, 0xf9, 0xc5, 0xb1, 0xc7, 0xe8, 0x69, 0x8f, 0xd7, 0xb7, 0xbe, 0xcd,
+0xd7, 0xdf, 0xfc, 0x2b, 0xda, 0x5f, 0x9f, 0x61, 0x62, 0x6e, 0x9b, 0xb1,
+0x1b, 0x3d, 0x82, 0x2a, 0x6b, 0x47, 0x52, 0xae, 0xdf, 0x91, 0xf1, 0xda,
+0xc7, 0x2a, 0xac, 0xd5, 0xc0, 0xc7, 0xe5, 0x33, 0xc6, 0x58, 0xc0, 0xe2,
+0x83, 0xd0, 0x5c, 0xec, 0xd0, 0x7e, 0xbb, 0x8b, 0x73, 0x81, 0x10, 0x74,
+0x3d, 0x84, 0x70, 0xa2, 0xf3, 0x67, 0x7e, 0x20, 0x2b, 0x0d, 0xd4, 0xc8,
+0xee, 0xfb, 0xd2, 0x1d, 0x0d, 0x63, 0xcc, 0x39, 0x63, 0x20, 0x49, 0x0d,
+0x47, 0xa7, 0x46, 0x78, 0xe8, 0xd0, 0x67, 0xf8, 0xc4, 0xd8, 0xc3, 0x78,
+0x1c, 0xff, 0x7e, 0xf3, 0x05, 0xfe, 0x6e, 0xfe, 0x19, 0xbc, 0x0d, 0xf8,
+0x87, 0xc6, 0x71, 0x32, 0x82, 0x0b, 0x01, 0x2f, 0x01, 0x27, 0x01, 0x1f,
+0x04, 0x27, 0x01, 0x95, 0x80, 0x86, 0x80, 0xb1, 0x09, 0x49, 0x92, 0x90,
+0x25, 0x29, 0xd6, 0xe4, 0x98, 0x63, 0x16, 0x59, 0x0b, 0xf8, 0x1b, 0x3d,
+0x20, 0x34, 0x54, 0x79, 0x9c, 0x01, 0xb7, 0x99, 0x03, 0x01, 0x84, 0xa0,
+0x67, 0x8d, 0xa1, 0x61, 0x8c, 0xd2, 0x38, 0x52, 0xe3, 0x58, 0xed, 0x04,
+0xa7, 0x0e, 0xff, 0x06, 0xed, 0xd0, 0xe2, 0xcb, 0xef, 0xfe, 0x11, 0xdf,
+0x5a, 0xfd, 0x37, 0x24, 0x28, 0x12, 0x02, 0x3e, 0x84, 0xf2, 0x3c, 0x46,
+0xd0, 0xe8, 0xfd, 0xa0, 0xbb, 0x61, 0x51, 0x52, 0x6b, 0xa9, 0xa4, 0x19,
+0x79, 0x96, 0x91, 0xa6, 0x09, 0xbd, 0x93, 0x42, 0x67, 0xd5, 0xe1, 0xdb,
+0x40, 0xec, 0x0d, 0x03, 0x01, 0x0c, 0x34, 0x07, 0x44, 0xf4, 0x29, 0x11,
+0x85, 0xc4, 0x90, 0x37, 0x12, 0x1e, 0x3d, 0x7a, 0x96, 0x6d, 0x69, 0xf3,
+0xb5, 0xc5, 0xaf, 0x30, 0xb3, 0xfc, 0x2f, 0x74, 0xbd, 0xa7, 0xe7, 0x3d,
+0x3d, 0x11, 0x7a, 0x22, 0xb8, 0x20, 0x78, 0x89, 0x30, 0x3e, 0x28, 0x7e,
+0x07, 0x28, 0x20, 0xaa, 0x44, 0xd7, 0x5a, 0xf2, 0x2c, 0xa5, 0x5e, 0x14,
+0x8c, 0x55, 0xeb, 0x8c, 0x8f, 0xd6, 0xc8, 0x6f, 0xcf, 0x00, 0x83, 0x2a,
+0x53, 0xe9, 0x6f, 0xdb, 0x81, 0x36, 0x39, 0xef, 0x9b, 0x81, 0xe9, 0x67,
+0x8f, 0x4d, 0x1b, 0x63, 0xa6, 0x8c, 0x51, 0xf2, 0xdb, 0x32, 0x3e, 0x54,
+0xdc, 0xcd, 0xf1, 0xda, 0x49, 0xde, 0xde, 0xba, 0xc8, 0xdf, 0x5e, 0xf9,
+0x62, 0x7f, 0x63, 0x5e, 0x8e, 0x6e, 0xd8, 0x15, 0x1a, 0xb4, 0x04, 0x08,
+0x31, 0x33, 0x12, 0x5f, 0x43, 0x09, 0x90, 0x24, 0x96, 0x4a, 0x96, 0x51,
+0xcb, 0x73, 0x82, 0x2a, 0x1d, 0xef, 0xc8, 0x27, 0x9b, 0xd8, 0x2b, 0x1d,
+0xbc, 0x57, 0x54, 0x79, 0x10, 0x98, 0x3d, 0x30, 0x80, 0x88, 0x3e, 0x6e,
+0x4c, 0x5c, 0xe6, 0x68, 0x55, 0xf9, 0xb9, 0xc6, 0x7d, 0xb4, 0xa5, 0xc5,
+0x57, 0xae, 0xfc, 0x39, 0x1d, 0xe7, 0x50, 0xd8, 0x03, 0x50, 0x46, 0x39,
+0xd2, 0x7d, 0xf1, 0x12, 0x34, 0x02, 0x94, 0x05, 0xc3, 0x5a, 0x4b, 0x25,
+0x49, 0xa9, 0x56, 0x72, 0x6a, 0x79, 0x0e, 0x40, 0xd7, 0x79, 0xf2, 0x5a,
+0x86, 0x29, 0x2c, 0xda, 0x15, 0x54, 0x39, 0x05, 0x3c, 0x73, 0x60, 0x80,
+0x10, 0xf4, 0x94, 0x31, 0x8a, 0xad, 0x59, 0x9c, 0x06, 0x8e, 0xd5, 0xa6,
+0xf8, 0x9f, 0xb5, 0x97, 0x79, 0x63, 0xed, 0x22, 0xfd, 0x0a, 0x56, 0xee,
+0x6b, 0x63, 0xed, 0xd7, 0x5d, 0xef, 0xef, 0xcd, 0x46, 0x28, 0x37, 0xf6,
+0x59, 0x92, 0x52, 0x54, 0x2a, 0xd4, 0x8a, 0x82, 0xb1, 0x6a, 0x95, 0x91,
+0xa2, 0x40, 0x24, 0x50, 0xc9, 0x32, 0x2a, 0x69, 0x86, 0xa9, 0x02, 0x1b,
+0x8a, 0xaa, 0x4e, 0xbd, 0x9f, 0xb6, 0x81, 0x00, 0x44, 0x74, 0xca, 0x18,
+0x30, 0x05, 0xf8, 0x00, 0x79, 0x5a, 0xe5, 0xdb, 0xf3, 0x2f, 0x11, 0x94,
+0xb2, 0x51, 0x29, 0xaa, 0x01, 0x51, 0xca, 0xdd, 0x95, 0xee, 0xd8, 0xa4,
+0x0f, 0x85, 0x31, 0x58, 0x6b, 0x49, 0x93, 0x84, 0x6a, 0xa5, 0x60, 0xac,
+0x56, 0x67, 0xa2, 0x3e, 0xc2, 0x58, 0xad, 0x4e, 0xad, 0x52, 0xa1, 0xe3,
+0x1c, 0xa9, 0xb5, 0x24, 0xd6, 0x62, 0xaa, 0xb6, 0x9c, 0x23, 0xdc, 0x9a,
+0x39, 0x10, 0x42, 0x98, 0x02, 0x83, 0x0d, 0x71, 0xb9, 0xd0, 0xd5, 0x6d,
+0xde, 0xdb, 0xbe, 0x4c, 0x9a, 0x66, 0x88, 0x04, 0x34, 0x08, 0x12, 0x4c,
+0xf9, 0xe8, 0x04, 0x50, 0xc5, 0x98, 0x78, 0x1e, 0x17, 0xd3, 0x86, 0xc4,
+0x5a, 0xb2, 0x34, 0xa5, 0xc8, 0x2a, 0x8c, 0x56, 0x6b, 0x4c, 0x8c, 0x8c,
+0x70, 0x68, 0x74, 0x94, 0xb1, 0x5a, 0x8d, 0xc4, 0x18, 0x7a, 0xde, 0xef,
+0xc0, 0x6b, 0xd9, 0xcd, 0x07, 0x3d, 0x06, 0xc9, 0x00, 0xc6, 0x28, 0xbe,
+0x6b, 0xc1, 0x58, 0x7e, 0xd0, 0xbc, 0x88, 0x37, 0x1d, 0x46, 0x8a, 0x2a,
+0x12, 0x02, 0x4e, 0x04, 0x5f, 0x56, 0x9d, 0xa0, 0x71, 0xe9, 0x40, 0xf9,
+0x18, 0xc8, 0x60, 0x49, 0x12, 0xbb, 0x63, 0x9b, 0x7a, 0x5e, 0x30, 0x56,
+0xab, 0x31, 0x51, 0xaf, 0x33, 0x56, 0xab, 0x92, 0x67, 0x95, 0x58, 0xbd,
+0xbc, 0x67, 0xdb, 0x39, 0xba, 0xce, 0x21, 0x1d, 0x19, 0x58, 0xfc, 0xa0,
+0x00, 0x73, 0xc6, 0x30, 0x65, 0xda, 0x42, 0xd7, 0x0b, 0x3f, 0xd8, 0x78,
+0x8d, 0x6a, 0x25, 0x27, 0x4b, 0x53, 0x8c, 0x31, 0xd1, 0xe3, 0x22, 0x3b,
+0x15, 0x27, 0x8e, 0x5e, 0xec, 0xb4, 0x89, 0x4d, 0xc8, 0xd2, 0x84, 0x3c,
+0x8d, 0xd5, 0xa6, 0x9e, 0xe7, 0xd4, 0x8b, 0x9c, 0x5a, 0xf9, 0x7d, 0x09,
+0x81, 0x76, 0xb7, 0xcb, 0xc6, 0xf6, 0x36, 0x1b, 0xad, 0x16, 0xad, 0x4e,
+0x07, 0xb7, 0x26, 0x7d, 0x0b, 0xcd, 0xdd, 0x12, 0x80, 0x10, 0xc2, 0x2c,
+0x98, 0x29, 0xda, 0x81, 0xed, 0xe5, 0x2e, 0x6f, 0xe4, 0xdf, 0xe7, 0x78,
+0xe3, 0x30, 0x69, 0x92, 0x90, 0x67, 0x29, 0xd6, 0xd8, 0x58, 0xa1, 0xe2,
+0xaa, 0x1a, 0x00, 0x4b, 0xe9, 0x79, 0x6b, 0x49, 0x92, 0x84, 0x4a, 0x9a,
+0x92, 0xa5, 0x69, 0x7c, 0x4d, 0x12, 0x4c, 0x69, 0x9b, 0x56, 0xa7, 0xc3,
+0xca, 0xe6, 0x26, 0xcb, 0xcd, 0x26, 0x8b, 0xcd, 0x26, 0x9b, 0x0b, 0x1d,
+0x64, 0x3b, 0xf4, 0x6f, 0xfd, 0xbe, 0x25, 0x74, 0x20, 0x00, 0x11, 0xbd,
+0x00, 0x7a, 0x26, 0x04, 0x08, 0xd7, 0x61, 0x29, 0xdb, 0x40, 0x55, 0x99,
+0x1c, 0x1f, 0x07, 0x53, 0xa3, 0xc8, 0x2c, 0x59, 0x92, 0x90, 0xd8, 0x84,
+0xc4, 0x5a, 0xac, 0xd9, 0x23, 0xbe, 0x0c, 0x5b, 0xfe, 0xdd, 0x00, 0xae,
+0xb4, 0xcc, 0x56, 0xb7, 0xcb, 0xfa, 0xd6, 0x16, 0x8b, 0xcd, 0x26, 0xd7,
+0x56, 0x57, 0x59, 0x5e, 0xdc, 0x60, 0xfb, 0x52, 0x6f, 0xaf, 0xff, 0x07,
+0xda, 0x27, 0x0f, 0x04, 0x60, 0x0c, 0xeb, 0x40, 0x43, 0xbb, 0x9e, 0xf4,
+0x8a, 0xb2, 0xd8, 0x5a, 0xa7, 0x79, 0x7b, 0x87, 0xc3, 0x63, 0x63, 0x4c,
+0xd4, 0xeb, 0x8c, 0xe4, 0x39, 0x45, 0xa5, 0xb2, 0x33, 0xc2, 0x18, 0x13,
+0x6b, 0x7e, 0x7f, 0x62, 0x8a, 0x10, 0x42, 0xc0, 0x8b, 0xd0, 0x75, 0x8e,
+0x56, 0x69, 0x9b, 0x9b, 0xcd, 0x26, 0x8b, 0x1b, 0x1b, 0xac, 0x5c, 0xdb,
+0xa4, 0xf5, 0x66, 0x87, 0xe0, 0x76, 0x46, 0x7f, 0x7d, 0x50, 0x80, 0x81,
+0x56, 0xa3, 0x93, 0x9f, 0x1f, 0x79, 0x10, 0x98, 0x31, 0x7d, 0x8b, 0x58,
+0x43, 0x52, 0x4b, 0x31, 0x93, 0x86, 0x62, 0x22, 0x67, 0xb4, 0x5e, 0x65,
+0xb4, 0x5a, 0xa5, 0x9e, 0xe7, 0xd4, 0x4a, 0x90, 0x24, 0x49, 0xb0, 0xc4,
+0x1e, 0xd1, 0x9f, 0xec, 0x9d, 0x5e, 0x8f, 0xad, 0x6e, 0x97, 0xcd, 0x76,
+0x3b, 0xfa, 0x7e, 0xbd, 0xc5, 0xd6, 0x3b, 0x5d, 0x3a, 0x4b, 0x8e, 0x10,
+0xc2, 0xde, 0x5b, 0x9e, 0xd1, 0xf3, 0xfa, 0x4f, 0xb7, 0x0c, 0x00, 0xe0,
+0xf0, 0xe7, 0x6a, 0x67, 0x81, 0xe7, 0x77, 0xbe, 0x68, 0xc0, 0x18, 0x83,
+0xb5, 0x09, 0x66, 0xdc, 0x60, 0x47, 0x13, 0xb2, 0x7a, 0x42, 0x3a, 0x92,
+0x90, 0xa5, 0xe9, 0x8e, 0x9d, 0x20, 0xf6, 0x03, 0x27, 0x42, 0xcf, 0x7b,
+0xba, 0x5b, 0x8e, 0xce, 0x6a, 0x8f, 0xee, 0xb2, 0xa7, 0xb7, 0x1a, 0xf7,
+0xc6, 0xff, 0x4f, 0xc2, 0x53, 0x7a, 0x5e, 0xdf, 0xb7, 0x03, 0xef, 0x1b,
+0x00, 0x60, 0xe2, 0x0f, 0xaa, 0x1f, 0x2f, 0x21, 0x76, 0x9a, 0x4c, 0xff,
+0xc9, 0x79, 0x84, 0x32, 0x3b, 0x11, 0x6a, 0xfd, 0xb6, 0x50, 0x76, 0xe7,
+0x6d, 0x25, 0x74, 0x04, 0xef, 0xcb, 0xa5, 0xc6, 0x0f, 0x0b, 0x07, 0x78,
+0x42, 0xcf, 0xeb, 0xbe, 0x7e, 0xad, 0x19, 0x6a, 0x53, 0x3f, 0xfe, 0xfb,
+0xc5, 0x93, 0xaa, 0x9c, 0x03, 0x1a, 0xa0, 0x3b, 0x42, 0xfa, 0x4d, 0xa8,
+0x5f, 0x95, 0xfa, 0xef, 0xe3, 0x33, 0xdf, 0x72, 0x59, 0x1d, 0x7e, 0x64,
+0xa3, 0x9a, 0x2d, 0xc5, 0xbf, 0xba, 0x5f, 0x2d, 0x07, 0xfa, 0x9d, 0xb8,
+0xfe, 0x7b, 0x95, 0xb3, 0xc0, 0x19, 0xe0, 0x4c, 0xbc, 0xcc, 0x6e, 0x27,
+0xdd, 0x0b, 0xd0, 0x7f, 0xff, 0x23, 0x9e, 0x42, 0xcf, 0x00, 0xcf, 0xef,
+0x77, 0xd4, 0xf7, 0x1e, 0xb7, 0xe4, 0x97, 0xfa, 0xe2, 0x77, 0xd3, 0x71,
+0x55, 0xa6, 0x81, 0x53, 0xaa, 0x9c, 0x2a, 0x05, 0x9f, 0xda, 0x05, 0x51,
+0x88, 0x8d, 0x69, 0x8e, 0x38, 0xda, 0xb3, 0xc0, 0x8c, 0x9e, 0xd7, 0xab,
+0x07, 0xbd, 0xf7, 0x2d, 0x01, 0xf8, 0x71, 0x1e, 0x3f, 0xf1, 0xff, 0xad,
+0xf2, 0xbf, 0xbd, 0x42, 0x09, 0x81, 0x50, 0xaf, 0xf9, 0xba, 0x00, 0x00,
+0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
+};
diff --git a/Source/Core/DebuggerWX/resources/toolbar_delete.c b/Source/Core/DebuggerWX/resources/toolbar_delete.c
new file mode 100644
index 0000000000..90a4f853e8
--- /dev/null
+++ b/Source/Core/DebuggerWX/resources/toolbar_delete.c
@@ -0,0 +1,244 @@
+static const unsigned char toolbar_delete_png[] = {
+0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
+0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
+0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x00,
+0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
+0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
+0xa0, 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73,
+0x00, 0x00, 0x0b, 0x12, 0x00, 0x00, 0x0b, 0x12, 0x01, 0xd2, 0xdd, 0x7e,
+0xfc, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd8, 0x03,
+0x16, 0x0a, 0x1d, 0x39, 0xad, 0x95, 0x27, 0xb3, 0x00, 0x00, 0x0a, 0xd8,
+0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x99, 0x4b, 0x6c, 0x5c, 0x55,
+0xb6, 0x86, 0xbf, 0x7d, 0x1e, 0x55, 0x75, 0xaa, 0xec, 0x7a, 0x04, 0x63,
+0x85, 0x58, 0x76, 0x8c, 0x70, 0x26, 0x0c, 0x88, 0x6f, 0x2c, 0x4b, 0x91,
+0x12, 0xab, 0x6d, 0xae, 0x10, 0x77, 0x80, 0x44, 0x9a, 0x48, 0x28, 0x19,
+0x98, 0x38, 0x01, 0xcc, 0x53, 0x10, 0x26, 0x88, 0x47, 0x44, 0xa7, 0xc7,
+0x48, 0x90, 0x48, 0x4c, 0x91, 0xd3, 0xaa, 0x49, 0x04, 0x12, 0x97, 0x86,
+0x11, 0x08, 0x70, 0x5a, 0x4c, 0x1c, 0x45, 0xe9, 0xb8, 0x13, 0x84, 0x15,
+0x24, 0x8c, 0x1f, 0x89, 0x1d, 0x97, 0x53, 0xe5, 0x53, 0xa7, 0xde, 0x8f,
+0x73, 0xce, 0x1d, 0xdc, 0xda, 0x5b, 0x27, 0x26, 0x49, 0x5f, 0x3b, 0xe9,
+0xa4, 0xef, 0x96, 0xb6, 0xe4, 0x2a, 0x9f, 0xb3, 0x6b, 0xff, 0x6b, 0xfd,
+0x6b, 0xad, 0x7f, 0xaf, 0x2d, 0x7c, 0xdf, 0xe7, 0xff, 0xf3, 0x30, 0xee,
+0xf6, 0x82, 0xcf, 0x3d, 0xf7, 0xdc, 0x30, 0xd0, 0xeb, 0xfb, 0x7e, 0x6f,
+0xeb, 0xab, 0x69, 0x60, 0x2e, 0x9d, 0x4e, 0x4f, 0xff, 0x2b, 0x00, 0x88,
+0xbb, 0xe1, 0x81, 0x23, 0x47, 0x8e, 0x0c, 0x03, 0x63, 0xbe, 0xef, 0x3f,
+0x0d, 0x24, 0x7d, 0xdf, 0x27, 0x38, 0x5b, 0xc3, 0x06, 0xfe, 0x02, 0x9c,
+0x48, 0xa7, 0xd3, 0x73, 0xff, 0x16, 0x00, 0x5e, 0x78, 0xe1, 0x85, 0x7e,
+0xe0, 0x63, 0x60, 0x18, 0x50, 0x9b, 0x5d, 0x0f, 0x60, 0x1d, 0x10, 0x80,
+0x93, 0xc0, 0xf1, 0x74, 0x3a, 0x6d, 0xdf, 0x57, 0x00, 0xe3, 0xe3, 0xe3,
+0x93, 0x72, 0xf3, 0x72, 0xe3, 0x96, 0x65, 0x11, 0x8f, 0xc7, 0x09, 0x87,
+0xc3, 0x18, 0x86, 0x81, 0xe7, 0x79, 0x54, 0x2a, 0x15, 0x8a, 0xc5, 0x22,
+0x6b, 0x6b, 0x6b, 0x78, 0x9e, 0x27, 0x1f, 0x9f, 0x03, 0xfe, 0x78, 0xa7,
+0xd4, 0xba, 0x23, 0x00, 0x2f, 0xbf, 0xfc, 0xf2, 0x1f, 0x80, 0x33, 0xf2,
+0x73, 0x34, 0x1a, 0x65, 0x60, 0x60, 0x80, 0xed, 0xdb, 0xb7, 0xd3, 0xd1,
+0xd1, 0x81, 0x65, 0x59, 0x78, 0x9e, 0x47, 0xb1, 0x58, 0xe4, 0xda, 0xb5,
+0x6b, 0x5c, 0xbc, 0x78, 0x91, 0x5f, 0x7f, 0xfd, 0x95, 0x62, 0xb1, 0xa8,
+0x68, 0xa5, 0x69, 0xda, 0xe3, 0xa7, 0x4e, 0x9d, 0xba, 0x70, 0xdf, 0x62,
+0xe0, 0xd5, 0x57, 0x5f, 0xfd, 0x6f, 0x60, 0x1f, 0x40, 0x22, 0x91, 0xe0,
+0xcd, 0x37, 0xdf, 0xc4, 0xf7, 0x7d, 0x3c, 0xcf, 0x23, 0x97, 0xcb, 0x61,
+0x18, 0x86, 0x02, 0x52, 0xab, 0xd5, 0xb8, 0x70, 0xe1, 0x02, 0x53, 0x53,
+0x53, 0x14, 0x0a, 0x05, 0x49, 0x2d, 0xdb, 0x30, 0x8c, 0xff, 0xfc, 0xf4,
+0xd3, 0x4f, 0xff, 0x7e, 0x5f, 0x00, 0xbc, 0xfe, 0xfa, 0xeb, 0xdb, 0x5b,
+0x74, 0xc0, 0xf7, 0x7d, 0x76, 0xed, 0xda, 0x45, 0x28, 0x14, 0x22, 0x97,
+0xcb, 0xe1, 0xba, 0x2e, 0x9e, 0xe7, 0xa1, 0x69, 0x1a, 0xdb, 0xb6, 0x6d,
+0xe3, 0xd1, 0x47, 0x1f, 0x25, 0x16, 0x8b, 0x71, 0xee, 0xdc, 0x39, 0xce,
+0x9d, 0x3b, 0x87, 0x6d, 0xdb, 0x78, 0x9e, 0x87, 0xef, 0xfb, 0x73, 0x89,
+0x44, 0x62, 0xe0, 0xe4, 0xc9, 0x93, 0xb9, 0x8d, 0xfe, 0xbe, 0x76, 0xbb,
+0x7f, 0xbe, 0xf4, 0xd2, 0x4b, 0xfd, 0xaf, 0xbc, 0xf2, 0xca, 0xd8, 0xed,
+0x9e, 0xf9, 0xe4, 0x93, 0x4f, 0xe6, 0x35, 0x4d, 0x3b, 0xa1, 0x69, 0x1a,
+0x9a, 0xa6, 0x71, 0xe1, 0xc2, 0x05, 0xb2, 0xd9, 0x2c, 0x9a, 0xa6, 0xa1,
+0xeb, 0x3a, 0x9a, 0xa6, 0xe1, 0xba, 0x2e, 0x0b, 0x0b, 0x0b, 0x7c, 0xf7,
+0xdd, 0x77, 0xcc, 0xcd, 0xcd, 0x31, 0x38, 0x38, 0xc8, 0xae, 0x5d, 0xbb,
+0x88, 0xc5, 0x62, 0x98, 0xa6, 0x89, 0xae, 0xeb, 0xbd, 0x8e, 0xe3, 0x7c,
+0xbc, 0x19, 0x03, 0x6a, 0xb7, 0xdb, 0xbc, 0xa6, 0x69, 0x93, 0x42, 0x88,
+0x89, 0xd7, 0x5e, 0x7b, 0x6d, 0xdf, 0x6d, 0x17, 0xd1, 0xb4, 0xe3, 0x9a,
+0xa6, 0xd9, 0x12, 0x84, 0x04, 0x10, 0x9c, 0xba, 0xae, 0x03, 0x70, 0xf1,
+0xe2, 0x45, 0x16, 0x17, 0x17, 0x19, 0x18, 0x18, 0xa0, 0xa7, 0xa7, 0x07,
+0xd3, 0x34, 0x31, 0x0c, 0x03, 0xe0, 0xb9, 0x43, 0x87, 0x0e, 0x8d, 0xdc,
+0x15, 0x00, 0xe3, 0xe3, 0xe3, 0xbd, 0x42, 0x88, 0x49, 0x21, 0x44, 0x52,
+0x08, 0x81, 0xa6, 0x69, 0x13, 0x6f, 0xbc, 0xf1, 0x46, 0xff, 0xad, 0x16,
+0x39, 0x71, 0xe2, 0x44, 0x3e, 0xe8, 0x85, 0x7c, 0x3e, 0xaf, 0xa8, 0xb3,
+0x1e, 0x84, 0x69, 0x9a, 0xcc, 0xcc, 0xcc, 0x60, 0xdb, 0x36, 0x03, 0x03,
+0x03, 0x24, 0x93, 0x49, 0x0c, 0xc3, 0x40, 0xd7, 0x75, 0x7c, 0xdf, 0xff,
+0xe0, 0xae, 0x00, 0x10, 0x42, 0x4c, 0xc8, 0xcd, 0xb7, 0x66, 0x52, 0xd3,
+0xb4, 0x89, 0xb7, 0xde, 0x7a, 0x2b, 0x79, 0xab, 0x85, 0x3e, 0xfa, 0xe8,
+0xa3, 0x3f, 0x6b, 0x9a, 0x36, 0x27, 0x37, 0xbb, 0xba, 0xba, 0x4a, 0xe0,
+0x7d, 0x74, 0x5d, 0xc7, 0x30, 0x0c, 0x4c, 0xd3, 0x24, 0x1c, 0x0e, 0x33,
+0x3b, 0x3b, 0x4b, 0x67, 0x67, 0x27, 0x9d, 0x9d, 0x9d, 0x92, 0x46, 0x08,
+0x21, 0x86, 0x47, 0x47, 0x47, 0xfb, 0xef, 0x08, 0xc0, 0xf8, 0xf8, 0xf8,
+0x21, 0x21, 0xc4, 0x70, 0xf0, 0xc7, 0x5b, 0xb3, 0x5f, 0xd3, 0xb4, 0x89,
+0x7f, 0x42, 0xa5, 0xa3, 0x2d, 0x8f, 0xe1, 0x38, 0x0e, 0xcd, 0x66, 0x13,
+0xf9, 0x59, 0x08, 0x81, 0x61, 0x18, 0x84, 0x42, 0x21, 0x55, 0x23, 0x32,
+0x99, 0x0c, 0x7d, 0x7d, 0x7d, 0x41, 0x00, 0x00, 0x87, 0xee, 0x08, 0x80,
+0x10, 0xe2, 0xb8, 0xdc, 0x74, 0x38, 0x1c, 0xe6, 0xe1, 0x87, 0x1f, 0x0e,
+0x82, 0xd8, 0xf7, 0xf6, 0xdb, 0x6f, 0xff, 0xe9, 0x56, 0x8b, 0x7d, 0xf8,
+0xe1, 0x87, 0x7f, 0xd5, 0x34, 0xed, 0x8c, 0x7c, 0x3e, 0x9b, 0xcd, 0xaa,
+0x77, 0x0d, 0xc3, 0x50, 0x00, 0x22, 0x91, 0x08, 0x91, 0x48, 0x04, 0xc7,
+0x71, 0x78, 0xe0, 0x81, 0x07, 0x88, 0xc5, 0x62, 0x0a, 0xa4, 0x4c, 0xc9,
+0x9b, 0x02, 0xf0, 0xe2, 0x8b, 0x2f, 0x0e, 0x03, 0xbd, 0x2d, 0x6b, 0xb2,
+0x67, 0xcf, 0x1e, 0x0e, 0x1c, 0x38, 0xc0, 0x43, 0x0f, 0x3d, 0x14, 0x04,
+0x71, 0xfc, 0xdd, 0x77, 0xdf, 0xbd, 0xe5, 0x8f, 0x08, 0x21, 0x7a, 0xe5,
+0xb3, 0xb6, 0x6d, 0xd3, 0x68, 0x34, 0xd0, 0x75, 0x1d, 0x5d, 0xd7, 0x09,
+0x85, 0x42, 0xca, 0x03, 0xa1, 0x50, 0x08, 0x5d, 0xd7, 0xa9, 0x54, 0x2a,
+0x44, 0x22, 0x11, 0x34, 0x4d, 0x6d, 0xa5, 0x77, 0x74, 0x74, 0x34, 0xb9,
+0x59, 0x0f, 0x3c, 0x2d, 0xff, 0xb0, 0x2c, 0x8b, 0xae, 0xae, 0x2e, 0xc2,
+0xe1, 0x30, 0x63, 0x63, 0x63, 0x58, 0x96, 0x15, 0x04, 0x31, 0xf1, 0xfe,
+0xfb, 0xef, 0xff, 0x8e, 0xab, 0xef, 0xbc, 0xf3, 0xce, 0x84, 0x34, 0x80,
+0x34, 0x42, 0xad, 0x56, 0x43, 0xd3, 0xb4, 0xdf, 0x59, 0x3f, 0x14, 0x0a,
+0x61, 0x18, 0x06, 0x8d, 0x46, 0x03, 0xd3, 0x34, 0xd7, 0x2f, 0xb5, 0x73,
+0xb3, 0x00, 0x86, 0x5b, 0x6e, 0x24, 0x14, 0x0a, 0xd1, 0xd5, 0xd5, 0xc5,
+0xe5, 0xcb, 0x97, 0x29, 0x97, 0xcb, 0x1c, 0x39, 0x72, 0x84, 0x48, 0x24,
+0x22, 0x9f, 0x4b, 0x0a, 0x21, 0x26, 0x3e, 0xf8, 0xe0, 0x83, 0x24, 0xc0,
+0xb1, 0x63, 0xc7, 0x86, 0xdf, 0x7b, 0xef, 0xbd, 0x49, 0x60, 0x4c, 0xbe,
+0x0f, 0xd0, 0xdd, 0xdd, 0x4d, 0x22, 0x91, 0x50, 0x81, 0x1b, 0x89, 0x44,
+0xb0, 0x2c, 0x8b, 0x70, 0x38, 0x8c, 0x69, 0x9a, 0x68, 0x9a, 0x46, 0xbd,
+0x5e, 0xbf, 0x99, 0xd8, 0xdb, 0x74, 0x0c, 0xf4, 0xfb, 0xbe, 0x8f, 0x10,
+0x82, 0x8e, 0x8e, 0x0e, 0x1a, 0x8d, 0x06, 0xe7, 0xcf, 0x9f, 0x67, 0x6a,
+0x6a, 0x8a, 0x78, 0x3c, 0xce, 0xfe, 0xfd, 0xfb, 0x83, 0x6a, 0xb3, 0xdf,
+0xf3, 0xbc, 0x0b, 0xc7, 0x8e, 0x1d, 0xfb, 0xcd, 0xf7, 0xfd, 0xc9, 0xa0,
+0x22, 0xb5, 0x2c, 0x8b, 0x27, 0x9e, 0x78, 0x82, 0xc7, 0x1f, 0x7f, 0x5c,
+0x59, 0xde, 0xb2, 0x2c, 0x2c, 0xcb, 0x22, 0x12, 0x89, 0x10, 0x0e, 0x87,
+0x55, 0x5d, 0x28, 0x95, 0x4a, 0x34, 0x9b, 0xcd, 0xa0, 0xc8, 0xdb, 0x1c,
+0x80, 0xe7, 0x9f, 0x7f, 0xbe, 0xbf, 0xc5, 0x61, 0x00, 0xda, 0xdb, 0xdb,
+0xb9, 0x74, 0xe9, 0x92, 0xe2, 0xf2, 0xf7, 0xdf, 0x7f, 0x4f, 0x77, 0x77,
+0x37, 0xfb, 0xf7, 0xef, 0x57, 0x16, 0xf3, 0x3c, 0xaf, 0xd7, 0xf7, 0xfd,
+0x5e, 0xf9, 0xb9, 0xb3, 0xb3, 0x93, 0xa7, 0x9e, 0x7a, 0x8a, 0xa3, 0x47,
+0x8f, 0xb2, 0x73, 0xe7, 0x4e, 0x66, 0x66, 0x66, 0x08, 0x87, 0xc3, 0x58,
+0x96, 0x45, 0x34, 0x1a, 0x25, 0x1a, 0x8d, 0x62, 0x59, 0x96, 0xda, 0xbc,
+0xe7, 0x79, 0xb8, 0xae, 0x4b, 0xb5, 0x5a, 0xc5, 0x75, 0xdd, 0x4d, 0x79,
+0x21, 0x78, 0x22, 0x4b, 0x04, 0x02, 0x91, 0xf6, 0xf6, 0x76, 0xae, 0x5e,
+0xbd, 0xaa, 0xb2, 0x83, 0x6d, 0xdb, 0x9c, 0x3f, 0x7f, 0x9e, 0xdd, 0xbb,
+0x77, 0x33, 0x34, 0x34, 0xc4, 0x8f, 0x3f, 0xfe, 0xa8, 0x62, 0x65, 0xc7,
+0x8e, 0x1d, 0x0c, 0x0e, 0x0e, 0xf2, 0xe0, 0x83, 0x0f, 0xe2, 0x79, 0x1e,
+0x99, 0x4c, 0x86, 0x9f, 0x7e, 0xfa, 0x09, 0xd7, 0x75, 0xb1, 0x2c, 0x8b,
+0x58, 0x2c, 0x46, 0x2c, 0x16, 0x23, 0x1a, 0x8d, 0x62, 0x18, 0x06, 0xae,
+0xeb, 0xe2, 0xba, 0x2e, 0xf5, 0x7a, 0x9d, 0x46, 0xa3, 0x41, 0xb1, 0x58,
+0x54, 0xba, 0x29, 0x20, 0xb5, 0x37, 0x06, 0x20, 0x88, 0x5e, 0x06, 0x9f,
+0xeb, 0xba, 0x37, 0xe4, 0xe8, 0xf9, 0xf9, 0x79, 0x84, 0x10, 0x0c, 0x0d,
+0x0d, 0xfd, 0x6f, 0x20, 0x24, 0x93, 0xec, 0xd8, 0xb1, 0x83, 0x70, 0x38,
+0x8c, 0xef, 0xfb, 0xac, 0xac, 0xac, 0x70, 0xf9, 0xf2, 0x65, 0xd6, 0xd6,
+0xd6, 0x30, 0x4d, 0x53, 0x59, 0xbd, 0xad, 0xad, 0x8d, 0x58, 0x2c, 0x46,
+0x28, 0x14, 0xc2, 0xf7, 0x7d, 0xea, 0xf5, 0x3a, 0xf5, 0x7a, 0x9d, 0x5a,
+0xad, 0x86, 0x6d, 0xdb, 0x54, 0xab, 0xd5, 0xe0, 0xe6, 0xed, 0x74, 0x3a,
+0x3d, 0xbf, 0x29, 0x00, 0x12, 0x84, 0x10, 0x82, 0x7c, 0x3e, 0xaf, 0xaa,
+0xa7, 0x4c, 0x83, 0xbe, 0xef, 0x73, 0xf5, 0xea, 0x55, 0x7e, 0xfb, 0xed,
+0x37, 0xf6, 0xec, 0xd9, 0xa3, 0x16, 0x99, 0x9f, 0x9f, 0x67, 0x7e, 0x7e,
+0x5e, 0xc9, 0xe7, 0x68, 0x34, 0xaa, 0xa8, 0x23, 0x2d, 0x2f, 0x13, 0x40,
+0xad, 0x56, 0xa3, 0x5a, 0xad, 0x52, 0xa9, 0x54, 0xa8, 0x56, 0xab, 0x5c,
+0xbf, 0x7e, 0x9d, 0x46, 0xa3, 0x11, 0xa4, 0xd0, 0x99, 0x4d, 0x51, 0xc8,
+0xf7, 0xfd, 0xb9, 0xe0, 0xf1, 0x6f, 0x69, 0x69, 0x89, 0x9e, 0x9e, 0x1e,
+0x55, 0xfe, 0xa5, 0x17, 0x7c, 0xdf, 0xe7, 0xe7, 0x9f, 0x7f, 0xc6, 0x75,
+0x5d, 0xca, 0xe5, 0x32, 0x2b, 0x2b, 0x2b, 0xd4, 0x6a, 0x35, 0x84, 0x10,
+0x44, 0xa3, 0x51, 0x95, 0x71, 0x64, 0xd0, 0x46, 0xa3, 0x51, 0x42, 0xa1,
+0x10, 0x42, 0x08, 0xea, 0xf5, 0x3a, 0xd5, 0x6a, 0x95, 0x72, 0xb9, 0x4c,
+0xa9, 0x54, 0x62, 0x6d, 0x6d, 0x0d, 0xdb, 0xb6, 0xd7, 0x07, 0xf1, 0x97,
+0x9b, 0x3e, 0x0f, 0x1c, 0x3e, 0x7c, 0xd8, 0x37, 0x0c, 0x43, 0xa5, 0xbc,
+0xee, 0xee, 0x6e, 0x52, 0xa9, 0x14, 0x91, 0x48, 0xe4, 0x77, 0x20, 0x5a,
+0x3a, 0xfe, 0x06, 0xad, 0x63, 0x9a, 0xa6, 0x2a, 0x54, 0xc1, 0x74, 0x09,
+0xd0, 0x68, 0x34, 0x28, 0x95, 0x4a, 0x38, 0x8e, 0x83, 0x6d, 0xdb, 0xe4,
+0xf3, 0x79, 0x66, 0x66, 0x66, 0x70, 0x1c, 0x87, 0x5a, 0xad, 0x26, 0xd7,
+0x5b, 0x4a, 0xa7, 0xd3, 0x5d, 0x9b, 0x4e, 0xa3, 0xbe, 0xef, 0x4f, 0xfb,
+0xbe, 0xaf, 0x82, 0xcc, 0xb6, 0x6d, 0x5c, 0xd7, 0x05, 0x50, 0x95, 0x34,
+0x12, 0x89, 0x10, 0x8b, 0xc5, 0x68, 0x6f, 0x6f, 0x27, 0x1e, 0x8f, 0x13,
+0x8f, 0xc7, 0x49, 0x26, 0x93, 0x37, 0xcc, 0x44, 0x22, 0xa1, 0x2c, 0x0f,
+0x50, 0xaf, 0xd7, 0x29, 0x97, 0xcb, 0x14, 0x0a, 0x05, 0x1c, 0xc7, 0xa1,
+0x58, 0x2c, 0xb2, 0xb0, 0xb0, 0x40, 0xb1, 0x58, 0xa4, 0xd1, 0x68, 0x28,
+0x63, 0x78, 0x9e, 0x97, 0x3c, 0x70, 0xe0, 0x40, 0xff, 0x1d, 0x01, 0x90,
+0x9b, 0x97, 0x16, 0xcb, 0xe7, 0xf3, 0x8a, 0xa3, 0x42, 0x08, 0x45, 0x11,
+0x09, 0x22, 0x91, 0x48, 0x28, 0x20, 0x6d, 0x6d, 0x6d, 0x6a, 0xe3, 0xba,
+0xae, 0xab, 0x14, 0x29, 0xd7, 0xc9, 0xe7, 0xf3, 0x38, 0x8e, 0xc3, 0xf2,
+0xf2, 0x32, 0x99, 0x4c, 0x86, 0x7a, 0xbd, 0x7e, 0x43, 0xfa, 0x14, 0x42,
+0x44, 0x75, 0x5d, 0x9f, 0x3c, 0x78, 0xf0, 0x60, 0xff, 0xa6, 0x00, 0x78,
+0x9e, 0x77, 0xc6, 0xf3, 0x3c, 0x9a, 0xcd, 0x26, 0xcd, 0x66, 0x93, 0x5a,
+0xad, 0xc6, 0xea, 0xea, 0x2a, 0x85, 0x42, 0x81, 0x5a, 0xad, 0x46, 0xad,
+0x56, 0xa3, 0xd9, 0x6c, 0xaa, 0x4c, 0x25, 0xe3, 0x43, 0x6a, 0x1c, 0xc3,
+0x30, 0x10, 0x42, 0xa8, 0xf3, 0xaf, 0xa4, 0xcc, 0xda, 0xda, 0x1a, 0x6b,
+0x6b, 0x6b, 0xe4, 0xf3, 0x79, 0x56, 0x56, 0x56, 0x58, 0x58, 0x58, 0x50,
+0x59, 0x2e, 0x98, 0x38, 0x5a, 0x27, 0xb8, 0xa4, 0xa6, 0x69, 0x13, 0x07,
+0x0f, 0x1e, 0x4c, 0x6e, 0xb4, 0x0e, 0x00, 0x7c, 0xe9, 0x79, 0x1e, 0x42,
+0x08, 0x1a, 0x8d, 0x06, 0x42, 0x08, 0x4a, 0xa5, 0x12, 0x57, 0xae, 0x5c,
+0x51, 0xdc, 0xbf, 0x59, 0xaf, 0x47, 0xc6, 0x84, 0x2c, 0x4e, 0x12, 0xbc,
+0xb4, 0xbe, 0x9c, 0x8b, 0x8b, 0x8b, 0x64, 0x32, 0x19, 0xb5, 0x79, 0x49,
+0x9d, 0xbd, 0x7b, 0xf7, 0xb2, 0xb4, 0xb4, 0xc4, 0xc2, 0xc2, 0x82, 0x2c,
+0xa4, 0xfd, 0xbe, 0xef, 0x4f, 0x00, 0x7f, 0xdc, 0xf0, 0xa1, 0x7e, 0x74,
+0x74, 0xf4, 0x63, 0xe0, 0xa8, 0x4c, 0x9d, 0x41, 0xca, 0x6c, 0xdd, 0xba,
+0x95, 0x2d, 0x5b, 0xb6, 0x28, 0x49, 0x10, 0x0a, 0x85, 0xd4, 0x91, 0x50,
+0x5a, 0x5e, 0x16, 0xa8, 0x5a, 0xad, 0xa6, 0x52, 0x65, 0xa1, 0x50, 0x60,
+0x61, 0x61, 0xe1, 0x06, 0x3a, 0xca, 0xcd, 0x3f, 0xf3, 0xcc, 0x33, 0x3c,
+0xf9, 0xe4, 0x93, 0x9c, 0x3d, 0x7b, 0x96, 0x6f, 0xbe, 0xf9, 0x86, 0x95,
+0x95, 0x15, 0x15, 0x83, 0xae, 0xeb, 0x1e, 0x3d, 0x7d, 0xfa, 0xf4, 0xc9,
+0x8d, 0xf6, 0x46, 0x8f, 0x03, 0xfb, 0x5c, 0xd7, 0xed, 0x0d, 0x48, 0x06,
+0x5c, 0xd7, 0xa5, 0x56, 0xab, 0xe1, 0x38, 0x0e, 0x9d, 0x9d, 0x9d, 0x2a,
+0x65, 0xca, 0x3a, 0x11, 0x94, 0x06, 0x8d, 0x46, 0x43, 0xa5, 0xcc, 0xd5,
+0xd5, 0x55, 0x95, 0x6a, 0x65, 0xba, 0x94, 0xeb, 0xf6, 0xf5, 0xf5, 0x51,
+0xa9, 0x54, 0x10, 0x42, 0xb0, 0x7b, 0xf7, 0x6e, 0xb2, 0xd9, 0x2c, 0x3f,
+0xfc, 0xf0, 0x03, 0xa5, 0x52, 0x49, 0x49, 0xf7, 0x67, 0x9f, 0x7d, 0xf6,
+0xaf, 0x9f, 0x7d, 0xf6, 0xd9, 0xdc, 0x86, 0xda, 0x2a, 0xa3, 0xa3, 0xa3,
+0x3b, 0x5b, 0x05, 0x45, 0x9e, 0x89, 0x95, 0x37, 0xa4, 0x38, 0x4b, 0x24,
+0x12, 0xb4, 0xb7, 0xb7, 0x2b, 0x20, 0x92, 0x4a, 0xcd, 0x66, 0x53, 0x05,
+0x6d, 0x2e, 0x97, 0xa3, 0xd1, 0x68, 0xd0, 0x6c, 0x36, 0x6f, 0xb0, 0xba,
+0x61, 0x18, 0xf4, 0xf4, 0xf4, 0xd0, 0xd1, 0xd1, 0xa1, 0xfe, 0xde, 0xbb,
+0x77, 0x2f, 0x8e, 0xe3, 0x70, 0xfa, 0xf4, 0x69, 0x2e, 0x5d, 0xba, 0x14,
+0xf4, 0xc2, 0xa9, 0xcf, 0x3f, 0xff, 0xfc, 0xf0, 0x86, 0xfb, 0x42, 0x2d,
+0x10, 0x5f, 0x4a, 0x7d, 0x1f, 0xcc, 0xf7, 0x72, 0x1a, 0x86, 0x11, 0x3c,
+0x49, 0xe1, 0x79, 0x9e, 0xf2, 0x82, 0x9c, 0xf2, 0x3b, 0xf9, 0x3b, 0xf1,
+0x78, 0x9c, 0xbe, 0xbe, 0x3e, 0xa5, 0x89, 0xe4, 0xba, 0x83, 0x83, 0x83,
+0x6c, 0xdb, 0xb6, 0x8d, 0xd9, 0xd9, 0x59, 0xbe, 0xfa, 0xea, 0x2b, 0x32,
+0x99, 0x4c, 0x70, 0x9d, 0x87, 0xbf, 0xf8, 0xe2, 0x8b, 0xb9, 0x0d, 0xb5,
+0x55, 0xd2, 0xe9, 0xf4, 0x3f, 0x80, 0x7e, 0x59, 0x19, 0x25, 0x95, 0x9a,
+0xcd, 0x26, 0x8d, 0x46, 0x43, 0x71, 0x3c, 0x38, 0x65, 0xe0, 0x4a, 0x91,
+0x26, 0x2d, 0x2f, 0x37, 0xff, 0xd8, 0x63, 0x8f, 0x31, 0x34, 0x34, 0x44,
+0x32, 0x99, 0x54, 0x31, 0x23, 0xe9, 0x36, 0x35, 0x35, 0x85, 0xe3, 0x38,
+0xa4, 0x52, 0x29, 0x7a, 0x7b, 0x7b, 0xd7, 0x27, 0x8d, 0x3f, 0xdd, 0x51,
+0x67, 0x6e, 0x74, 0x74, 0xf4, 0x0f, 0xad, 0xd8, 0x18, 0xde, 0x8c, 0x66,
+0xef, 0xea, 0xea, 0x62, 0x60, 0x60, 0x80, 0x44, 0x22, 0x41, 0xb5, 0x5a,
+0xc5, 0x71, 0x1c, 0x1c, 0xc7, 0xa1, 0x52, 0xa9, 0xdc, 0x50, 0xc8, 0x1e,
+0x79, 0xe4, 0x11, 0xb6, 0x6f, 0xdf, 0xce, 0xf2, 0xf2, 0x32, 0xdf, 0x7e,
+0xfb, 0x2d, 0xd9, 0x6c, 0x36, 0xe8, 0xd1, 0xd4, 0xd7, 0x5f, 0x7f, 0x6d,
+0x6f, 0xa8, 0x33, 0x17, 0xf0, 0xc6, 0xdf, 0xd2, 0xe9, 0xf4, 0x48, 0xcb,
+0x23, 0xa7, 0xfe, 0x2f, 0x72, 0x57, 0x66, 0x9b, 0x54, 0x2a, 0x45, 0x77,
+0x77, 0xb7, 0xea, 0xd0, 0x49, 0xa9, 0x62, 0x9a, 0xe6, 0xef, 0xbc, 0x30,
+0x3b, 0x3b, 0xab, 0xce, 0xc8, 0x5b, 0xb6, 0x6c, 0x51, 0xf4, 0x6b, 0x01,
+0x7c, 0xfa, 0x8e, 0x6f, 0x68, 0x5a, 0xb4, 0x3a, 0xdc, 0xf2, 0xca, 0xf6,
+0x56, 0x7c, 0xf4, 0x06, 0xce, 0xc1, 0xd3, 0xd9, 0x6c, 0xf6, 0xe5, 0x4a,
+0xa5, 0xf2, 0x5f, 0xb2, 0xa9, 0x1b, 0x89, 0x44, 0x58, 0x59, 0x59, 0x21,
+0x1e, 0x8f, 0x63, 0x9a, 0xa6, 0x9a, 0xe1, 0x70, 0x98, 0x4a, 0xa5, 0x02,
+0xa0, 0xa8, 0x56, 0xad, 0x56, 0xc9, 0x64, 0x32, 0x98, 0xa6, 0x49, 0x22,
+0x91, 0x40, 0xd7, 0x75, 0x9a, 0xcd, 0xa6, 0xa4, 0xef, 0xbe, 0xd6, 0x05,
+0xc9, 0xdd, 0xb9, 0x62, 0x6a, 0x69, 0xf6, 0x79, 0xe0, 0x6f, 0xc1, 0xef,
+0x47, 0x46, 0x46, 0xa6, 0x81, 0x69, 0xd7, 0x75, 0x93, 0xf5, 0x7a, 0x9d,
+0x62, 0xb1, 0x48, 0x2e, 0x97, 0xe3, 0xfa, 0xf5, 0xeb, 0x4a, 0x95, 0xea,
+0xba, 0x4e, 0x38, 0x1c, 0x56, 0x20, 0x84, 0x10, 0xaa, 0xfa, 0x2f, 0x2e,
+0x2e, 0xb2, 0x75, 0xeb, 0x56, 0xf5, 0x6c, 0xc0, 0x03, 0xfd, 0x1b, 0x6e,
+0xee, 0x6e, 0x66, 0x4c, 0x4e, 0x4e, 0xce, 0x03, 0x27, 0x64, 0x4a, 0x2d,
+0x97, 0xcb, 0xe4, 0xf3, 0x79, 0x96, 0x96, 0x96, 0xc8, 0xe7, 0xf3, 0x54,
+0xab, 0x55, 0x7c, 0xdf, 0xc7, 0x34, 0x4d, 0xe5, 0xa1, 0x56, 0x6f, 0x54,
+0x55, 0xf0, 0x4a, 0xa5, 0x82, 0xe7, 0x79, 0xea, 0x82, 0xa4, 0x35, 0x7b,
+0xef, 0x09, 0x80, 0x16, 0x88, 0x3f, 0xb7, 0xbc, 0x40, 0xbd, 0x5e, 0xa7,
+0x50, 0x28, 0x90, 0xcd, 0x66, 0xb9, 0x72, 0xe5, 0x0a, 0x85, 0x42, 0x81,
+0x4a, 0xa5, 0xa2, 0xea, 0x41, 0xb0, 0x43, 0x21, 0x53, 0xaa, 0x1c, 0x12,
+0x88, 0x9c, 0xf7, 0x0c, 0x40, 0x6b, 0x8c, 0x01, 0xb6, 0xe4, 0xb6, 0xe3,
+0x38, 0x5c, 0xbb, 0x76, 0xed, 0x06, 0x10, 0xae, 0xeb, 0xa2, 0x69, 0x9a,
+0x8a, 0x0b, 0x5d, 0xd7, 0x89, 0xc7, 0xe3, 0x00, 0xe4, 0x72, 0x39, 0xca,
+0xe5, 0x72, 0x10, 0x80, 0x7d, 0x4f, 0x01, 0x4c, 0x4e, 0x4e, 0xfe, 0x03,
+0x38, 0x2a, 0xb3, 0x4c, 0xa9, 0x54, 0x22, 0x97, 0xcb, 0xb1, 0xb8, 0xb8,
+0xc8, 0xfc, 0xfc, 0x3c, 0xb6, 0x6d, 0x53, 0x2a, 0x95, 0xa8, 0xd7, 0xeb,
+0x48, 0x01, 0x99, 0x4a, 0xa5, 0xb0, 0x2c, 0x8b, 0x72, 0xb9, 0xcc, 0x2f,
+0xbf, 0xfc, 0xa2, 0x52, 0x68, 0x0b, 0xc0, 0x99, 0x7b, 0x72, 0x4f, 0xbc,
+0x0e, 0xc4, 0x5f, 0x46, 0x46, 0x46, 0x86, 0x3d, 0xcf, 0x1b, 0x93, 0x20,
+0xa4, 0xd4, 0x2e, 0x14, 0x0a, 0x74, 0x74, 0x74, 0xa8, 0xe6, 0x56, 0x22,
+0x91, 0x20, 0x95, 0x4a, 0x91, 0xcd, 0x66, 0x39, 0x7b, 0xf6, 0xac, 0x6a,
+0xd1, 0x07, 0x54, 0xef, 0x97, 0xff, 0xb2, 0x7b, 0xe2, 0x7f, 0x36, 0x46,
+0x46, 0x46, 0x26, 0x80, 0xb1, 0x20, 0x5d, 0xe4, 0x19, 0xa2, 0xad, 0xad,
+0x8d, 0x54, 0x2a, 0x45, 0x28, 0x14, 0x62, 0x69, 0x69, 0x89, 0xe5, 0xe5,
+0xe5, 0x9b, 0x75, 0xeb, 0xa6, 0x27, 0x27, 0x27, 0xff, 0xe3, 0xbe, 0x01,
+0x08, 0x82, 0x90, 0xe2, 0x50, 0x0a, 0xc4, 0xa0, 0x64, 0x08, 0xaa, 0xd5,
+0xc0, 0xb0, 0x81, 0xfe, 0x56, 0x76, 0xbb, 0x7f, 0x00, 0x5a, 0x20, 0x3e,
+0x06, 0x8e, 0x06, 0x1b, 0x68, 0xeb, 0x8e, 0xb4, 0xeb, 0x5f, 0x99, 0x06,
+0xc6, 0x5a, 0xf1, 0x74, 0xcf, 0xb3, 0xd0, 0xcd, 0x62, 0xe2, 0xad, 0x96,
+0x9e, 0x9a, 0xbe, 0xd9, 0x8d, 0xfe, 0xfa, 0x9b, 0x2b, 0x60, 0xf8, 0x76,
+0x9b, 0xbf, 0xe7, 0x1e, 0x58, 0xe7, 0x8d, 0xa7, 0x5b, 0xa9, 0xb6, 0x3f,
+0x20, 0x45, 0xce, 0xb4, 0xc0, 0x9d, 0xb8, 0x15, 0x65, 0xfe, 0x6d, 0x00,
+0xdc, 0xad, 0xf1, 0x3f, 0x1b, 0xc1, 0xe6, 0x81, 0xe7, 0x14, 0x15, 0x38,
+0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
+};
diff --git a/Source/Core/DebuggerWX/src/BreakpointView.cpp b/Source/Core/DebuggerWX/src/BreakpointView.cpp
new file mode 100644
index 0000000000..bcb86e2a4a
--- /dev/null
+++ b/Source/Core/DebuggerWX/src/BreakpointView.cpp
@@ -0,0 +1,77 @@
+// Copyright (C) 2003-2008 Dolphin Project.
+
+// 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, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+
+#include "Debugger.h"
+#include "Common.h"
+
+#include "BreakpointView.h"
+#include "Debugger/Debugger_BreakPoints.h"
+#include "Debugger/Debugger_SymbolMap.h"
+
+BEGIN_EVENT_TABLE(CBreakPointView, wxListCtrl)
+
+END_EVENT_TABLE()
+
+CBreakPointView::CBreakPointView(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
+ : wxListCtrl(parent, id, pos, size, style)
+{
+ SetFont(wxFont(9, wxSWISS, wxNORMAL, wxNORMAL, false, wxT("Segoe UI")));
+
+ Refresh();
+}
+
+
+void
+CBreakPointView::Update()
+{
+ ClearAll();
+
+ InsertColumn(0, wxT("Active"), wxLIST_FORMAT_LEFT, 50);
+ InsertColumn(1, wxT("Type"), wxLIST_FORMAT_LEFT, 50);
+ InsertColumn(2, wxT("Function"), wxLIST_FORMAT_CENTER, 200);
+
+ const CBreakPoints::TBreakPoints& rBreakPoints = CBreakPoints::GetBreakPoints();
+ for (size_t i=0; i<rBreakPoints.size(); i++)
+ {
+ const TBreakPoint& rBP = rBreakPoints[i];
+ if (!rBP.bTemporary)
+ {
+ int Item = InsertItem(0, rBP.bOn ? "on" : " ");
+ SetItem(Item, 1, "BP");
+
+ Debugger::XSymbolIndex index = Debugger::FindSymbol(rBP.iAddress);
+ if (index > 0)
+ {
+ SetItem(Item, 2, Debugger::GetDescription(rBP.iAddress));
+ }
+ else
+ {
+ char szBuffer[32];
+ sprintf(szBuffer, "0x%08x", rBP.iAddress);
+ SetItem(Item, 2, szBuffer);
+ }
+ }
+ }
+
+
+ Refresh();
+}
+
+void CBreakPointView::DeleteCurrentSelection()
+{
+
+} \ No newline at end of file
diff --git a/Source/Core/DebuggerWX/src/BreakpointView.h b/Source/Core/DebuggerWX/src/BreakpointView.h
new file mode 100644
index 0000000000..5a44d87c89
--- /dev/null
+++ b/Source/Core/DebuggerWX/src/BreakpointView.h
@@ -0,0 +1,41 @@
+// Copyright (C) 2003-2008 Dolphin Project.
+
+// 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, version 2.0.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License 2.0 for more details.
+
+// A copy of the GPL 2.0 should have been included with the program.
+// If not, see http://www.gnu.org/licenses/
+
+// Official SVN repository and contact information can be found at
+// http://code.google.com/p/dolphin-emu/
+
+#ifndef __BREAKPOINTVIEW_h__
+#define __BREAKPOINTVIEW_h__
+
+#include <wx/listctrl.h>
+
+#include "Common.h"
+
+class CBreakPointView
+ : public wxListCtrl
+{
+ public:
+
+ CBreakPointView(wxWindow* parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style);
+
+ void Update();
+
+ void DeleteCurrentSelection();
+
+ private:
+
+ DECLARE_EVENT_TABLE()
+};
+
+#endif
diff --git a/Source/Core/DebuggerWX/src/BreakpointWindow.cpp b/Source/Core/DebuggerWX/src/BreakpointWindow.cpp
new file mode 100644
index 0000000000..fbcf1ad4bd
--- /dev/null
+++ b/Source/Core/DebuggerWX/src/BreakpointWindow.cpp
@@ -0,0 +1,160 @@
+//__________________________________________________________________________________________________
+// F|RES and ector 2003-2008
+//
+
+#include "Debugger.h"
+#include "BreakPointWindow.h"
+#include "BreakpointView.h"
+
+#include "wx/mstream.h"
+
+extern "C" {
+#include "../resources/toolbar_add_breakpoint.c"
+#include "../resources/toolbar_add_memorycheck.c"
+#include "../resources/toolbar_delete.c"
+}
+
+static const long TOOLBAR_STYLE = wxTB_FLAT | wxTB_DOCKABLE | wxTB_TEXT;
+
+BEGIN_EVENT_TABLE(CBreakPointWindow, wxFrame)
+ EVT_CLOSE(CBreakPointWindow::OnClose)
+ EVT_MENU(IDM_DELETE, CBreakPointWindow::OnDelete)
+ EVT_MENU(IDM_ADD_BREAKPOINT, CBreakPointWindow::OnAddBreakPoint)
+ EVT_MENU(IDM_ADD_MEMORYCHECK, CBreakPointWindow::OnAddMemoryCheck)
+END_EVENT_TABLE()
+
+
+#define wxGetBitmapFromMemory(name) _wxGetBitmapFromMemory(name, sizeof(name))
+inline wxBitmap _wxGetBitmapFromMemory(const unsigned char* data, int length)
+{
+ wxMemoryInputStream is(data, length);
+ return(wxBitmap(wxImage(is, wxBITMAP_TYPE_ANY, -1), -1));
+}
+
+
+CBreakPointWindow::CBreakPointWindow(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& position, const wxSize& size, long style)
+ : wxFrame(parent, id, title, position, size, style)
+ , m_BreakPointListView(NULL)
+{
+ InitBitmaps();
+
+ CreateGUIControls();
+
+ // Create the toolbar
+ RecreateToolbar();
+
+}
+
+
+CBreakPointWindow::~CBreakPointWindow()
+{}
+
+
+void
+CBreakPointWindow::CreateGUIControls()
+{
+ SetTitle(wxT("Breakpoints"));
+ SetIcon(wxNullIcon);
+ SetSize(8, 8, 400, 370);
+ Center();
+
+ m_BreakPointListView = new CBreakPointView(this, ID_BPS, wxDefaultPosition, GetSize(),
+ wxLC_REPORT | wxSUNKEN_BORDER | wxLC_ALIGN_LEFT | wxLC_SINGLE_SEL | wxLC_SORT_ASCENDING);
+
+ NotifyUpdate();
+}
+
+
+void
+CBreakPointWindow::PopulateToolbar(wxToolBar* toolBar)
+{
+ int w = m_Bitmaps[Toolbar_Delete].GetWidth(),
+ h = m_Bitmaps[Toolbar_Delete].GetHeight();
+
+ toolBar->SetToolBitmapSize(wxSize(w, h));
+ toolBar->AddTool(IDM_DELETE, _T("Delete"), m_Bitmaps[Toolbar_Delete], _T("Refresh"));
+ toolBar->AddSeparator();
+ toolBar->AddTool(IDM_ADD_BREAKPOINT, _T("BP"), m_Bitmaps[Toolbar_Add_BreakPoint], _T("Open file..."));
+ toolBar->AddTool(IDM_ADD_MEMORYCHECK, _T("MemCheck"), m_Bitmaps[Toolbar_Add_Memcheck], _T("Refresh"));
+
+ // after adding the buttons to the toolbar, must call Realize() to reflect
+ // the changes
+ toolBar->Realize();
+}
+
+
+void
+CBreakPointWindow::RecreateToolbar()
+{
+ // delete and recreate the toolbar
+ wxToolBarBase* toolBar = GetToolBar();
+ long style = toolBar ? toolBar->GetWindowStyle() : TOOLBAR_STYLE;
+
+ delete toolBar;
+ SetToolBar(NULL);
+
+ style &= ~(wxTB_HORIZONTAL | wxTB_VERTICAL | wxTB_BOTTOM | wxTB_RIGHT | wxTB_HORZ_LAYOUT | wxTB_TOP);
+ wxToolBar* theToolBar = CreateToolBar(style, ID_TOOLBAR);
+
+ PopulateToolbar(theToolBar);
+ SetToolBar(theToolBar);
+}
+
+
+void
+CBreakPointWindow::InitBitmaps()
+{
+ // load orignal size 48x48
+ m_Bitmaps[Toolbar_Delete] = wxGetBitmapFromMemory(toolbar_delete_png);
+ m_Bitmaps[Toolbar_Add_BreakPoint] = wxGetBitmapFromMemory(toolbar_add_breakpoint_png);
+ m_Bitmaps[Toolbar_Add_Memcheck] = wxGetBitmapFromMemory(toolbar_add_memcheck_png);
+
+ // scale to 24x24 for toolbar
+ for (size_t n = Toolbar_Delete; n < WXSIZEOF(m_Bitmaps); n++)
+ {
+ m_Bitmaps[n] = wxBitmap(m_Bitmaps[n].ConvertToImage().Scale(16, 16));
+ }
+}
+
+
+void
+CBreakPointWindow::OnClose(wxCloseEvent& /*event*/)
+{
+ Hide();
+}
+
+
+void CBreakPointWindow::NotifyUpdate()
+{
+ if (m_BreakPointListView != NULL)
+ {
+ m_BreakPointListView->Update();
+ }
+}
+
+
+void
+CBreakPointWindow::OnDelete(wxCommandEvent& event)
+{
+ if (m_BreakPointListView)
+ {
+ m_BreakPointListView->DeleteCurrentSelection();
+ }
+}
+
+
+void
+CBreakPointWindow::OnAddBreakPoint(wxCommandEvent& event)
+{
+
+}
+
+
+void
+CBreakPointWindow::OnAddMemoryCheck(wxCommandEvent& event)
+{
+
+}
+
+
+
diff --git a/Source/Core/DebuggerWX/src/BreakpointWindow.h b/Source/Core/DebuggerWX/src/BreakpointWindow.h
new file mode 100644
index 0000000000..6b7caf3f1b
--- /dev/null
+++ b/Source/Core/DebuggerWX/src/BreakpointWindow.h
@@ -0,0 +1,65 @@
+//__________________________________________________________________________________________________
+// F|RES and ector 2003-2008
+//
+
+#ifndef __BREAKPOINTWINDOW_h__
+#define __BREAKPOINTWINDOW_h__
+
+class CBreakPointView;
+
+#undef BREAKPOINT_WINDOW_STYLE
+#define BREAKPOINT_WINDOW_STYLE wxCAPTION | wxSYSTEM_MENU | wxCLOSE_BOX | wxRESIZE_BORDER
+
+class CBreakPointWindow
+ : public wxFrame
+{
+ private:
+
+ DECLARE_EVENT_TABLE();
+
+ public:
+
+ CBreakPointWindow(wxWindow* parent, wxWindowID id = 1, const wxString& title = wxT("Breakpoints"),
+ const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(400, 250),
+ long style = BREAKPOINT_WINDOW_STYLE);
+
+ virtual ~CBreakPointWindow();
+
+ void NotifyUpdate();
+
+
+ private:
+
+ enum
+ {
+ ID_TOOLBAR = 500,
+ ID_BPS = 1002,
+ IDM_DELETE,
+ IDM_ADD_BREAKPOINT,
+ IDM_ADD_MEMORYCHECK
+ };
+
+ enum
+ {
+ Toolbar_Delete,
+ Toolbar_Add_BreakPoint,
+ Toolbar_Add_Memcheck,
+ Bitmaps_max
+ };
+
+ CBreakPointView* m_BreakPointListView;
+ wxBitmap m_Bitmaps[Bitmaps_max];
+
+ void OnClose(wxCloseEvent& event);
+ void CreateGUIControls();
+
+ void RecreateToolbar();
+ void PopulateToolbar(wxToolBar* toolBar);
+ void InitBitmaps();
+
+ void OnDelete(wxCommandEvent& event);
+ void OnAddBreakPoint(wxCommandEvent& event);
+ void OnAddMemoryCheck(wxCommandEvent& event);
+};
+
+#endif
diff --git a/Source/Core/DebuggerWX/src/CodeWindow.cpp b/Source/Core/DebuggerWX/src/CodeWindow.cpp
index fc71e769d7..269917aad0 100644
--- a/Source/Core/DebuggerWX/src/CodeWindow.cpp
+++ b/Source/Core/DebuggerWX/src/CodeWindow.cpp
@@ -19,6 +19,7 @@
#include "RegisterWindow.h"
#include "LogWindow.h"
+#include "BreakpointWindow.h"
#include "wx/button.h"
#include "wx/textctrl.h"
@@ -62,7 +63,8 @@ enum
IDM_INTERPRETER,
IDM_DUALCORE,
IDM_LOGWINDOW,
- IDM_REGISTERWINDOW
+ IDM_REGISTERWINDOW,
+ IDM_BREAKPOINTWINDOW
};
BEGIN_EVENT_TABLE(CCodeWindow, wxFrame)
@@ -78,6 +80,7 @@ EVT_LISTBOX(IDM_CALLSTACKLIST, CCodeWindow::OnCallstackListChange)
EVT_HOST_COMMAND(wxID_ANY, CCodeWindow::OnHostMessage)
EVT_MENU(IDM_LOGWINDOW, CCodeWindow::OnToggleLogWindow)
EVT_MENU(IDM_REGISTERWINDOW, CCodeWindow::OnToggleRegisterWindow)
+EVT_MENU(IDM_BREAKPOINTWINDOW, CCodeWindow::OnToggleBreakPointWindow)
END_EVENT_TABLE()
@@ -130,6 +133,9 @@ CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter
m_RegisterWindow = new CRegisterWindow(this);
m_RegisterWindow->Show(true);
+ m_BreakpointWindow = new CBreakPointWindow(this);
+ m_BreakpointWindow->Show(true);
+
UpdateButtonStates();
}
@@ -162,6 +168,9 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
wxMenuItem* pRegister = pDebugDialogs->Append(IDM_REGISTERWINDOW, _T("&Registers"), wxEmptyString, wxITEM_CHECK);
pRegister->Check(true);
+ wxMenuItem* pBreakPoints = pDebugDialogs->Append(IDM_BREAKPOINTWINDOW, _T("&BreakPoints"), wxEmptyString, wxITEM_CHECK);
+ pBreakPoints->Check(true);
+
pMenuBar->Append(pDebugDialogs, _T("&Dialogs"));
}
@@ -420,6 +429,33 @@ void CCodeWindow::OnToggleRegisterWindow(wxCommandEvent& event)
}
}
+void CCodeWindow::OnToggleBreakPointWindow(wxCommandEvent& event)
+{
+ bool show = GetMenuBar()->IsChecked(event.GetId());
+
+ if (show)
+ {
+ if (!m_BreakpointWindow)
+ {
+ m_BreakpointWindow = new CBreakPointWindow(this);
+ }
+
+ m_BreakpointWindow->Show(true);
+ }
+ else // hide
+ {
+ // If m_dialog is NULL, then possibly the system
+ // didn't report the checked menu item status correctly.
+ // It should be true just after the menu item was selected,
+ // if there was no modeless dialog yet.
+ wxASSERT(m_BreakpointWindow != NULL);
+
+ if (m_BreakpointWindow)
+ {
+ m_BreakpointWindow->Hide();
+ }
+ }
+}
void CCodeWindow::OnHostMessage(wxCommandEvent& event)
{
@@ -447,6 +483,16 @@ void CCodeWindow::OnHostMessage(wxCommandEvent& event)
}
break;
+
+ case IDM_UPDATEBREAKPOINTS:
+
+ if (m_BreakpointWindow)
+ {
+ m_BreakpointWindow->NotifyUpdate();
+ }
+
+ break;
+
}
}
diff --git a/Source/Core/DebuggerWX/src/CodeWindow.h b/Source/Core/DebuggerWX/src/CodeWindow.h
index 46d840ad65..ff711633ac 100644
--- a/Source/Core/DebuggerWX/src/CodeWindow.h
+++ b/Source/Core/DebuggerWX/src/CodeWindow.h
@@ -29,6 +29,7 @@
class CRegisterWindow;
class CLogWindow;
+class CBreakPointWindow;
class CCodeWindow
: public wxFrame
@@ -54,6 +55,7 @@ class CCodeWindow
// sub dialogs
CLogWindow* m_logwindow;
CRegisterWindow* m_RegisterWindow;
+ CBreakPointWindow* m_BreakpointWindow;
CCodeView* codeview;
wxListBox* callstack;
@@ -75,6 +77,7 @@ class CCodeWindow
void OnAddrBoxChange(wxCommandEvent& event);
void OnToggleRegisterWindow(wxCommandEvent& event);
+ void OnToggleBreakPointWindow(wxCommandEvent& event);
void OnToggleLogWindow(wxCommandEvent& event);
void OnHostMessage(wxCommandEvent& event);
diff --git a/Source/Core/DolphinWX/src/Globals.h b/Source/Core/DolphinWX/src/Globals.h
index 80453fc89f..f4f1f4890b 100644
--- a/Source/Core/DolphinWX/src/Globals.h
+++ b/Source/Core/DolphinWX/src/Globals.h
@@ -36,6 +36,7 @@ enum
IDM_UPDATEDISASMDIALOG,
IDM_UPDATEGUI,
IDM_UPDATESTATUSBAR,
+ IDM_UPDATEBREAKPOINTS,
IDM_HOST_MESSAGE,
IDM_BOOTING_STARTED,
IDM_BOOTING_ENDED,
diff --git a/Source/Core/DolphinWX/src/Main.cpp b/Source/Core/DolphinWX/src/Main.cpp
index 4d9c18cdbe..774e9144a0 100644
--- a/Source/Core/DolphinWX/src/Main.cpp
+++ b/Source/Core/DolphinWX/src/Main.cpp
@@ -188,6 +188,17 @@ void Host_UpdateMainFrame()
}
}
+void Host_UpdateBreakPointView()
+{
+ wxCommandEvent event(wxEVT_HOST_COMMAND, IDM_UPDATEBREAKPOINTS);
+ wxPostEvent(main_frame, event);
+
+ if (code_frame)
+ {
+ wxPostEvent(code_frame, event);
+ }
+}
+
void Host_UpdateMemoryView()
{}